From c13003cd6f6538a4e59669eadc21d8f62d81121d Mon Sep 17 00:00:00 2001 From: Silas Date: Sun, 4 Feb 2024 22:57:52 -0500 Subject: [PATCH] bunch of fixes for PWA, set up web push notifications, add buttons to remove service workers, add settings menu, let settings manage keys, permissions, and service worker registration --- .env.production | 2 + index.html | 2 +- package-lock.json | 60 ++++---- package.json | 9 +- src/{template/faq.ts => components/FAQ.ts} | 0 .../footer.ts => components/Footer.ts} | 12 +- .../header.ts => components/Header.ts} | 2 +- .../HowItWorks.ts} | 0 src/components/Modal.ts | 25 ++++ src/components/Update.ts | 70 +++++++++ .../settings/KeyManager.ts} | 37 ++--- .../settings/NotificationManager.ts | 135 ++++++++++++++++++ src/components/settings/Settings.ts | 56 ++++++++ src/main.ts | 54 +++---- src/routes/request.ts | 35 +++-- src/routes/send.ts | 9 +- src/sw.js | 41 ++++++ src/template/update.ts | 52 ------- src/utils/store.ts | 9 ++ src/utils/vite-env.d.ts | 7 +- vite.config.ts | 48 ++++++- vite.standalone.config.ts | 31 +--- 22 files changed, 506 insertions(+), 190 deletions(-) create mode 100644 .env.production rename src/{template/faq.ts => components/FAQ.ts} (100%) rename src/{template/footer.ts => components/Footer.ts} (73%) rename src/{template/header.ts => components/Header.ts} (78%) rename src/{template/howitworks.ts => components/HowItWorks.ts} (100%) create mode 100644 src/components/Modal.ts create mode 100644 src/components/Update.ts rename src/{template/keyManager.ts => components/settings/KeyManager.ts} (59%) create mode 100644 src/components/settings/NotificationManager.ts create mode 100644 src/components/settings/Settings.ts create mode 100644 src/sw.js delete mode 100644 src/template/update.ts diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..4ed7593 --- /dev/null +++ b/.env.production @@ -0,0 +1,2 @@ +API_BASE_URL=https://yeah.sure.dog +BASE_URL=https://sure.dog diff --git a/index.html b/index.html index 5cb1438..0cb4db4 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ - SURE - Secure URL Requests + SURE DOG - Secure URL Requests diff --git a/package-lock.json b/package-lock.json index d10f3b4..72086fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22 +1,25 @@ { "name": "sure", - "version": "0.1.0", + "version": "0.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "sure", - "version": "0.1.0", + "version": "0.2.0", "dependencies": { "@picocss/pico": "^1.5.11", - "uhtml": "^4.4.7" + "uhtml": "^4.4.7", + "workbox-window": "^7.0.0" }, "devDependencies": { + "@types/workbox-precaching": "^5.0.0", "sass": "^1.70.0", "typescript": "^5.2.2", "vite": "^5.0.8", "vite-plugin-make-offline": "^1.0.0", - "vite-plugin-pwa": "^0.17.5" + "vite-plugin-pwa": "^0.17.5", + "workbox-precaching": "^7.0.0" } }, "node_modules/@ampproject/remapping": { @@ -2387,8 +2390,17 @@ "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "dev": true + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + }, + "node_modules/@types/workbox-precaching": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/workbox-precaching/-/workbox-precaching-5.0.0.tgz", + "integrity": "sha512-Oytxs/I0nE6oM3p4vJsYyLcLldFb9tyG+WBk+UrL2aWizEdpTeVeV+CYG5/lWBhCyXaiEQPgYzWaf3kzLFZAiQ==", + "deprecated": "This is a stub types definition. workbox-precaching provides its own type definitions, so you do not need this installed.", + "dev": true, + "dependencies": { + "workbox-precaching": "*" + } }, "node_modules/@webreflection/signal": { "version": "2.0.0", @@ -4212,12 +4224,12 @@ } }, "node_modules/pretty-bytes": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", - "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, "engines": { - "node": "^14.13.1 || >=16.0.0" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5153,6 +5165,18 @@ "workbox-window": "^7.0.0" } }, + "node_modules/vite-plugin-pwa/node_modules/pretty-bytes": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", + "dev": true, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", @@ -5351,18 +5375,6 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, - "node_modules/workbox-build/node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/workbox-build/node_modules/rollup": { "version": "2.79.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", @@ -5406,8 +5418,7 @@ "node_modules/workbox-core": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.0.0.tgz", - "integrity": "sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==", - "dev": true + "integrity": "sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==" }, "node_modules/workbox-expiration": { "version": "7.0.0", @@ -5512,7 +5523,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.0.0.tgz", "integrity": "sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==", - "dev": true, "dependencies": { "@types/trusted-types": "^2.0.2", "workbox-core": "7.0.0" diff --git a/package.json b/package.json index c1b6dc0..08f5061 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "sure", "private": true, - "version": "0.1.0", + "version": "0.2.0", "type": "module", "scripts": { "dev": "vite", @@ -10,14 +10,17 @@ "preview": "vite preview" }, "devDependencies": { + "@types/workbox-precaching": "^5.0.0", "sass": "^1.70.0", "typescript": "^5.2.2", "vite": "^5.0.8", "vite-plugin-make-offline": "^1.0.0", - "vite-plugin-pwa": "^0.17.5" + "vite-plugin-pwa": "^0.17.5", + "workbox-precaching": "^7.0.0" }, "dependencies": { "@picocss/pico": "^1.5.11", - "uhtml": "^4.4.7" + "uhtml": "^4.4.7", + "workbox-window": "^7.0.0" } } diff --git a/src/template/faq.ts b/src/components/FAQ.ts similarity index 100% rename from src/template/faq.ts rename to src/components/FAQ.ts diff --git a/src/template/footer.ts b/src/components/Footer.ts similarity index 73% rename from src/template/footer.ts rename to src/components/Footer.ts index deb168a..03f7389 100644 --- a/src/template/footer.ts +++ b/src/components/Footer.ts @@ -1,5 +1,5 @@ import { html } from "uhtml"; -import { openKeyManager } from "./keyManager.ts"; +import { openSettings } from "./settings/Settings"; export const Footer = html`