# HG changeset patch
# User drewp@bigasterisk.com
# Date 1679193252 25200
# Node ID d09d690419e0225aeade29aa11b08c8e9441a801
start
diff -r 000000000000 -r d09d690419e0 .hgignore
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,1 @@
+node_modules
diff -r 000000000000 -r d09d690419e0 .npmrc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.npmrc Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,1 @@
+store-dir=/my/serv/.pnpm-store
diff -r 000000000000 -r d09d690419e0 Dockerfile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Dockerfile Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,26 @@
+FROM bang5:5000/base_basic
+
+ENV KEYRING=/usr/share/keyrings/nodesource.gpg
+ENV VERSION=node_16.x
+ENV DISTRO=jammy
+RUN apt-get install -y gpg
+
+RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | tee "$KEYRING" >/dev/null && \
+ echo "deb [signed-by=$KEYRING] https://deb.nodesource.com/$VERSION $DISTRO main" | tee /etc/apt/sources.list.d/nodesource.list && \
+ echo "deb-src [signed-by=$KEYRING] https://deb.nodesource.com/$VERSION $DISTRO main" | tee -a /etc/apt/sources.list.d/nodesource.list && \
+ apt-get update && \
+ apt-get remove -y nodejs libnode-dev libnode72 && \
+ apt-get install -y nodejs && \
+ apt autoremove -y && \
+ echo 2023-03-18 && \
+ pnpm add -g pnpm
+
+RUN pnpm set registry "https://bigasterisk.com/js/"
+
+WORKDIR /opt
+
+COPY package.json ./
+RUN pnpm install --loglevel debug
+
+COPY index.html tsconfig.json vite.config.ts ./
+COPY src ./src
diff -r 000000000000 -r d09d690419e0 deploy.yaml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy.yaml Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,35 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: front-door-display
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: front-door-display
+ template:
+ metadata:
+ labels:
+ app: front-door-display
+ annotations: { prometheus.io/scrape: "false" }
+ spec:
+ containers:
+
+ - name: vite
+ image: bang5:5000/front_door_display_image
+ command:
+ - pnpx
+ - vite
+ ports:
+ - containerPort: 8002
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: front-door-display
+spec:
+ ports:
+ - {port: 80, targetPort: 8000, name: py}
+ - {port: 82, targetPort: 8002, name: vite}
+ selector:
+ app: front-door-display
diff -r 000000000000 -r d09d690419e0 index.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/index.html Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,14 @@
+
+
+
+
+ front-door-display
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r d09d690419e0 ingress.yaml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ingress.yaml Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,25 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: front-door-display
+ annotations:
+ cert-manager.io/cluster-issuer: letsencrypt-prod
+ ingress.pomerium.io/allow_public_unauthenticated_access: "false"
+ ingress.pomerium.io/pass_identity_headers: "true"
+ ingress.pomerium.io/preserve_host_header: "true"
+ ingress.pomerium.io/policy: |
+ allow:
+ or:
+ - { email: { is: "drewpca@gmail.com" }}
+ - { email: { is: "kelsimp@gmail.com" }}
+ ingress.pomerium.io/allow_websockets: "true"
+spec:
+ ingressClassName: pomerium
+ rules:
+ - host: "bigasterisk.com"
+ http:
+ paths:
+ - { pathType: Prefix, path: /front-door-display/, backend: { service: { name: front-door-display, port: { name: vite } } } }
+ tls:
+ - hosts: [bigasterisk.com]
+ secretName: bigasterisk.com-tls
diff -r 000000000000 -r d09d690419e0 package.json
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/package.json Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,20 @@
+{
+ "name": "front-door-display",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "author": "",
+ "license": "ISC",
+ "devDependencies": {
+ "typescript": "^5.0.2",
+ "@types/lodash": "^4.14.191",
+ "@types/n3": "^1.10.4"
+ },
+ "dependencies": {
+ "date-fns": "^2.29.3",
+ "lit": "^2.6.1",
+ "lodash": "^4.17.21",
+ "n3": "^1.16.3",
+ "vite": "^4.2.0"
+ }
+}
diff -r 000000000000 -r d09d690419e0 pnpm-lock.yaml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pnpm-lock.yaml Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,497 @@
+lockfileVersion: 5.4
+
+specifiers:
+ '@types/lodash': ^4.14.191
+ '@types/n3': ^1.10.4
+ date-fns: ^2.29.3
+ lit: ^2.6.1
+ lodash: ^4.17.21
+ n3: ^1.16.3
+ typescript: ^5.0.2
+ vite: ^4.2.0
+
+dependencies:
+ '@types/lodash': 4.14.191
+ '@types/n3': 1.10.4
+ date-fns: 2.29.3
+ lit: 2.6.1
+ lodash: 4.17.21
+ n3: 1.16.3
+ vite: 4.2.0
+
+devDependencies:
+ typescript: 5.0.2
+
+packages:
+
+ /@esbuild/android-arm/0.17.12:
+ resolution: {integrity: sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/android-arm64/0.17.12:
+ resolution: {integrity: sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/android-x64/0.17.12:
+ resolution: {integrity: sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/darwin-arm64/0.17.12:
+ resolution: {integrity: sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/darwin-x64/0.17.12:
+ resolution: {integrity: sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/freebsd-arm64/0.17.12:
+ resolution: {integrity: sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/freebsd-x64/0.17.12:
+ resolution: {integrity: sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/linux-arm/0.17.12:
+ resolution: {integrity: sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/linux-arm64/0.17.12:
+ resolution: {integrity: sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/linux-ia32/0.17.12:
+ resolution: {integrity: sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/linux-loong64/0.17.12:
+ resolution: {integrity: sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/linux-mips64el/0.17.12:
+ resolution: {integrity: sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/linux-ppc64/0.17.12:
+ resolution: {integrity: sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/linux-riscv64/0.17.12:
+ resolution: {integrity: sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/linux-s390x/0.17.12:
+ resolution: {integrity: sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/linux-x64/0.17.12:
+ resolution: {integrity: sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/netbsd-x64/0.17.12:
+ resolution: {integrity: sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/openbsd-x64/0.17.12:
+ resolution: {integrity: sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/sunos-x64/0.17.12:
+ resolution: {integrity: sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/win32-arm64/0.17.12:
+ resolution: {integrity: sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/win32-ia32/0.17.12:
+ resolution: {integrity: sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@esbuild/win32-x64/0.17.12:
+ resolution: {integrity: sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@lit-labs/ssr-dom-shim/1.0.0:
+ resolution: {integrity: sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw==}
+ dev: false
+
+ /@lit/reactive-element/1.6.1:
+ resolution: {integrity: sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA==}
+ dependencies:
+ '@lit-labs/ssr-dom-shim': 1.0.0
+ dev: false
+
+ /@rdfjs/types/1.1.0:
+ resolution: {integrity: sha512-5zm8bN2/CC634dTcn/0AhTRLaQRjXDZs3QfcAsQKNturHT7XVWcKy/8p3P5gXl+YkZTAmy7T5M/LyiT/jbkENw==}
+ dependencies:
+ '@types/node': 18.15.3
+ dev: false
+
+ /@types/lodash/4.14.191:
+ resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==}
+ dev: false
+
+ /@types/n3/1.10.4:
+ resolution: {integrity: sha512-FfRTwcbXcScVHuAjIASveRWL6Fi6fPALl1Ge8tMESYLqU7R42LJvtdBpUi+f9YK0oQPqIN+zFFgMDFJfLMx0bg==}
+ dependencies:
+ '@types/node': 18.15.3
+ rdf-js: 4.0.2
+ dev: false
+
+ /@types/node/18.15.3:
+ resolution: {integrity: sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==}
+ dev: false
+
+ /@types/trusted-types/2.0.3:
+ resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==}
+ dev: false
+
+ /abort-controller/3.0.0:
+ resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
+ engines: {node: '>=6.5'}
+ dependencies:
+ event-target-shim: 5.0.1
+ dev: false
+
+ /base64-js/1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ dev: false
+
+ /buffer/6.0.3:
+ resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+ dev: false
+
+ /date-fns/2.29.3:
+ resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==}
+ engines: {node: '>=0.11'}
+ dev: false
+
+ /esbuild/0.17.12:
+ resolution: {integrity: sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/android-arm': 0.17.12
+ '@esbuild/android-arm64': 0.17.12
+ '@esbuild/android-x64': 0.17.12
+ '@esbuild/darwin-arm64': 0.17.12
+ '@esbuild/darwin-x64': 0.17.12
+ '@esbuild/freebsd-arm64': 0.17.12
+ '@esbuild/freebsd-x64': 0.17.12
+ '@esbuild/linux-arm': 0.17.12
+ '@esbuild/linux-arm64': 0.17.12
+ '@esbuild/linux-ia32': 0.17.12
+ '@esbuild/linux-loong64': 0.17.12
+ '@esbuild/linux-mips64el': 0.17.12
+ '@esbuild/linux-ppc64': 0.17.12
+ '@esbuild/linux-riscv64': 0.17.12
+ '@esbuild/linux-s390x': 0.17.12
+ '@esbuild/linux-x64': 0.17.12
+ '@esbuild/netbsd-x64': 0.17.12
+ '@esbuild/openbsd-x64': 0.17.12
+ '@esbuild/sunos-x64': 0.17.12
+ '@esbuild/win32-arm64': 0.17.12
+ '@esbuild/win32-ia32': 0.17.12
+ '@esbuild/win32-x64': 0.17.12
+ dev: false
+
+ /event-target-shim/5.0.1:
+ resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /events/3.3.0:
+ resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
+ engines: {node: '>=0.8.x'}
+ dev: false
+
+ /fsevents/2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /function-bind/1.1.1:
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+ dev: false
+
+ /has/1.0.3:
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
+ engines: {node: '>= 0.4.0'}
+ dependencies:
+ function-bind: 1.1.1
+ dev: false
+
+ /ieee754/1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+ dev: false
+
+ /is-core-module/2.11.0:
+ resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
+ dependencies:
+ has: 1.0.3
+ dev: false
+
+ /lit-element/3.2.2:
+ resolution: {integrity: sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ==}
+ dependencies:
+ '@lit/reactive-element': 1.6.1
+ lit-html: 2.6.1
+ dev: false
+
+ /lit-html/2.6.1:
+ resolution: {integrity: sha512-Z3iw+E+3KKFn9t2YKNjsXNEu/LRLI98mtH/C6lnFg7kvaqPIzPn124Yd4eT/43lyqrejpc5Wb6BHq3fdv4S8Rw==}
+ dependencies:
+ '@types/trusted-types': 2.0.3
+ dev: false
+
+ /lit/2.6.1:
+ resolution: {integrity: sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw==}
+ dependencies:
+ '@lit/reactive-element': 1.6.1
+ lit-element: 3.2.2
+ lit-html: 2.6.1
+ dev: false
+
+ /lodash/4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ dev: false
+
+ /n3/1.16.3:
+ resolution: {integrity: sha512-9caLSZuMW1kdlPxEN4ka6E4E8a5QKoZ2emxpW+zHMofI+Bo92nJhN//wNub15S5T9I4c6saEqdGEu+YXJqMZVA==}
+ engines: {node: '>=12.0'}
+ dependencies:
+ queue-microtask: 1.2.3
+ readable-stream: 4.2.0
+ dev: false
+
+ /nanoid/3.3.4:
+ resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+ dev: false
+
+ /path-parse/1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ dev: false
+
+ /picocolors/1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+ dev: false
+
+ /postcss/8.4.21:
+ resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.4
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+ dev: false
+
+ /process/0.11.10:
+ resolution: {integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI=}
+ engines: {node: '>= 0.6.0'}
+ dev: false
+
+ /queue-microtask/1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ dev: false
+
+ /rdf-js/4.0.2:
+ resolution: {integrity: sha512-ApvlFa/WsQh8LpPK/6hctQwG06Z9ztQQGWVtrcrf9L6+sejHNXLPOqL+w7q3hF+iL0C4sv3AX1PUtGkLNzyZ0Q==}
+ dependencies:
+ '@rdfjs/types': 1.1.0
+ dev: false
+
+ /readable-stream/4.2.0:
+ resolution: {integrity: sha512-gJrBHsaI3lgBoGMW/jHZsQ/o/TIWiu5ENCJG1BB7fuCKzpFM8GaS2UoBVt9NO+oI+3FcrBNbUkl3ilDe09aY4A==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ abort-controller: 3.0.0
+ buffer: 6.0.3
+ events: 3.3.0
+ process: 0.11.10
+ dev: false
+
+ /resolve/1.22.1:
+ resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.11.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: false
+
+ /rollup/3.19.1:
+ resolution: {integrity: sha512-lAbrdN7neYCg/8WaoWn/ckzCtz+jr70GFfYdlf50OF7387HTg+wiuiqJRFYawwSPpqfqDNYqK7smY/ks2iAudg==}
+ engines: {node: '>=14.18.0', npm: '>=8.0.0'}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: false
+
+ /source-map-js/1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /supports-preserve-symlinks-flag/1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+ dev: false
+
+ /typescript/5.0.2:
+ resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==}
+ engines: {node: '>=12.20'}
+ hasBin: true
+ dev: true
+
+ /vite/4.2.0:
+ resolution: {integrity: sha512-AbDTyzzwuKoRtMIRLGNxhLRuv1FpRgdIw+1y6AQG73Q5+vtecmvzKo/yk8X/vrHDpETRTx01ABijqUHIzBXi0g==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': '>= 14'
+ less: '*'
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ dependencies:
+ esbuild: 0.17.12
+ postcss: 8.4.21
+ resolve: 1.22.1
+ rollup: 3.19.1
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: false
diff -r 000000000000 -r d09d690419e0 skaffold.yaml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/skaffold.yaml Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,21 @@
+apiVersion: skaffold/v3
+kind: Config
+metadata:
+ name: front-door-display
+build:
+ artifacts:
+ - image: bang5:5000/front_door_display_image
+ sync:
+ infer:
+ - index.html
+ - src/*
+ tagPolicy:
+ dateTime:
+ format: 2006-01-02_15-04-05
+ timezone: Local
+manifests:
+ rawYaml:
+ - deploy.yaml
+ - ingress.yaml
+deploy:
+ kubectl: {}
diff -r 000000000000 -r d09d690419e0 src/WeekGuide.ts
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/WeekGuide.ts Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,50 @@
+import { format } from "date-fns";
+import { css, html, LitElement } from "lit";
+import { customElement } from "lit/decorators.js";
+import { shared } from "./shared";
+
+@customElement("fd-week-guide")
+export class WeekGuide extends LitElement {
+ constructor() {
+ super();
+ setInterval(this.requestUpdate.bind(this), 5 * 60 * 1000);
+ }
+ static styles = [
+ shared,
+ css`
+ :host {
+ display: inline-block;
+ }
+ .wday > span {
+ display: inline-block;
+ background: #282a36;
+ padding: 5px;
+ border: 3px outset #333;
+ text-align: center;
+ vertical-align: middle;
+ border-radius: 10px;
+ }
+ .wday > span.today {
+ background: #282a36;
+ border-color: #ff79c6;
+ color: #ff79c6;
+ text-shadow: 0 0 8px #ff79c6;
+ }
+ `,
+ ];
+ render() {
+ const day = format(new Date(), "EEE").toLowerCase();
+
+ return html`
+
+ Sunday
+ Monday
+ Tuesday
+ Wednesday
+ Thursday
+ Friday
+ Saturday
+
+ `;
+ }
+}
diff -r 000000000000 -r d09d690419e0 src/main.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main.css Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,21 @@
+@import url("https://fonts.googleapis.com/css2?family=Acme&family=Oswald&display=swap");
+html,
+body {
+ width: 800px;
+ height: 480px;
+}
+html {
+ background: gray;
+}
+body {
+ background: black;
+ color: #f8f8f2;
+ margin: 0;
+ font-size: 25px;
+ font-family: "Oswald", sans-serif;
+ display: flex;
+ flex-direction: column;
+}
+body > * {
+ /*outline: 1px orange solid;*/
+}
diff -r 000000000000 -r d09d690419e0 src/shared.ts
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/shared.ts Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,32 @@
+import { css } from "lit";
+
+export const shared = css`
+ @import url("https://fonts.googleapis.com/css2?family=Acme&family=Oswald&display=swap");
+
+ h1 {
+ margin: -11px 6px;
+ font-family: "Acme", sans-serif !important;
+ }
+ h1 {
+ order: 2;
+ color: #fde9ff;
+ text-shadow: 3px 1px 1px #4af7ff, 2px 2px 1px #165bfb, 4px 2px 1px #4af7ff, 3px 3px 1px #165bfb, 5px 3px 1px #4af7ff, 4px 4px 1px #165bfb,
+ 6px 4px 1px #4af7ff, 5px 5px 1px #165bfb, 7px 5px 1px #4af7ff, 6px 6px 1px #165bfb, 8px 6px 1px #4af7ff, 7px 7px 1px #165bfb, 9px 7px 1px #4af7ff;
+ }
+ h1 {
+ display: block;
+ position: relative;
+ }
+ h1:before {
+ content: attr(data-text);
+ position: absolute;
+ text-shadow: 2px 2px 1px #e94aa1, -1px -1px 1px #c736f9, -2px 2px 1px #e94aa1, 1px -1px 1px #f736f9;
+ z-index: 1;
+ }
+ h1:nth-child(1) {
+ padding-right: 2.25rem;
+ }
+ h1:nth-child(2) {
+ padding-left: 2.25rem;
+ }
+`;
diff -r 000000000000 -r d09d690419e0 tsconfig.json
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tsconfig.json Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,13 @@
+{
+ "compilerOptions": {
+ "target": "es2020",
+ "module": "es2020",
+ "strict": true,
+ "moduleResolution": "node",
+ "esModuleInterop": true,
+ "experimentalDecorators": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "useDefineForClassFields": false
+ }
+}
diff -r 000000000000 -r d09d690419e0 vite.config.ts
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vite.config.ts Sat Mar 18 19:34:12 2023 -0700
@@ -0,0 +1,30 @@
+import { defineConfig } from "vite";
+
+export default defineConfig({
+ base: "https://bigasterisk.com/front-door-display",
+ server: {
+ host: "0.0.0.0",
+ strictPort: true,
+ port: 8002,
+ hmr: { path: "vite-ws" },
+ fs: { allow: ["src", "node_modules", "."] },
+ },
+ build: {
+ assetsDir: "src",
+ target: "esnext",
+ lib: {
+ entry: "src/main.ts",
+ formats: ["es"],
+ },
+ rollupOptions: {
+ // input: { app: "src/index.html" },
+ external: /^lit/,
+ },
+ },
+ resolve: {
+ alias: [{ find: "rdf-canonize-native", replacement: "" }],
+ },
+ // define: {
+ // global: {},
+ // },
+});