From 93d9e7d1ad6ae5cc3c8ce5c98e99ec0debb0a195 Mon Sep 17 00:00:00 2001 From: Christiaan Landman Date: Fri, 19 Apr 2024 16:13:47 +0200 Subject: [PATCH] chore added PWA support to Vue demo (#129) Co-authored-by: Christiaan Landman --- .changeset/chatty-news-appear.md | 5 ++ demos/vue-supabase-todolist/.gitignore | 7 +++ demos/vue-supabase-todolist/package.json | 1 + .../public/powersync-logo.svg | 1 + .../public/supabase-logo.png | Bin 0 -> 46427 bytes demos/vue-supabase-todolist/vite.config.ts | 36 +++++++++++++ pnpm-lock.yaml | 51 +++++++++++++----- 7 files changed, 88 insertions(+), 13 deletions(-) create mode 100644 .changeset/chatty-news-appear.md create mode 100644 demos/vue-supabase-todolist/public/powersync-logo.svg create mode 100644 demos/vue-supabase-todolist/public/supabase-logo.png diff --git a/.changeset/chatty-news-appear.md b/.changeset/chatty-news-appear.md new file mode 100644 index 00000000..04748231 --- /dev/null +++ b/.changeset/chatty-news-appear.md @@ -0,0 +1,5 @@ +--- +"vue-supabase-todolist": patch +--- + +Added PWA support. diff --git a/demos/vue-supabase-todolist/.gitignore b/demos/vue-supabase-todolist/.gitignore index a731936f..48d6b341 100644 --- a/demos/vue-supabase-todolist/.gitignore +++ b/demos/vue-supabase-todolist/.gitignore @@ -25,3 +25,10 @@ components.d.ts *.njsproj *.sln *.sw? + +# PWA +**/public/workbox-*.js +**/public/sw.js +**/public/swe-worker-* +**/public/worker-*.js +**/public/fallback-*.js diff --git a/demos/vue-supabase-todolist/package.json b/demos/vue-supabase-todolist/package.json index 19982d75..6205dbd2 100644 --- a/demos/vue-supabase-todolist/package.json +++ b/demos/vue-supabase-todolist/package.json @@ -30,6 +30,7 @@ "unplugin-fonts": "^1.1.1", "unplugin-vue-components": "^0.26.0", "vite": "^5.2.0", + "vite-plugin-pwa": "^0.19.2", "vite-plugin-top-level-await": "^1.4.1", "vite-plugin-vuetify": "^2.0.3", "vite-plugin-wasm": "^3.3.0", diff --git a/demos/vue-supabase-todolist/public/powersync-logo.svg b/demos/vue-supabase-todolist/public/powersync-logo.svg new file mode 100644 index 00000000..32c83dd1 --- /dev/null +++ b/demos/vue-supabase-todolist/public/powersync-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/demos/vue-supabase-todolist/public/supabase-logo.png b/demos/vue-supabase-todolist/public/supabase-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ff8c18e18f13fc62e2dab81ef4f4a0dcb6394600 GIT binary patch literal 46427 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 literal 0 HcmV?d00001 diff --git a/demos/vue-supabase-todolist/vite.config.ts b/demos/vue-supabase-todolist/vite.config.ts index af551a01..783516da 100644 --- a/demos/vue-supabase-todolist/vite.config.ts +++ b/demos/vue-supabase-todolist/vite.config.ts @@ -5,6 +5,7 @@ import Vue from '@vitejs/plugin-vue'; import ViteFonts from 'unplugin-fonts/vite'; import Components from 'unplugin-vue-components/vite'; import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'; +import { VitePWA } from 'vite-plugin-pwa'; // Utilities import { fileURLToPath, URL } from 'node:url'; @@ -29,6 +30,41 @@ export default defineConfig({ } ] } + }), + VitePWA({ + registerType: 'autoUpdate', + includeAssets: ['powersync-logo.svg', 'supabase-logo.png', 'favicon.ico'], + manifest: { + theme_color: '#c44eff', + background_color: '#c44eff', + display: 'standalone', + scope: '/', + start_url: '/', + name: 'PowerSync Vue Demo', + short_name: 'PowerSync Vue', + icons: [ + { + src: '/icons/icon-192x192.png', + sizes: '192x192', + type: 'image/png' + }, + { + src: '/icons/icon-256x256.png', + sizes: '256x256', + type: 'image/png' + }, + { + src: '/icons/icon-384x384.png', + sizes: '384x384', + type: 'image/png' + }, + { + src: '/icons/icon-512x512.png', + sizes: '512x512', + type: 'image/png' + } + ] + } }) ], define: { 'process.env': {} }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 580aab03..00973c8f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -880,13 +880,16 @@ importers: version: 1.1.1(vite@5.2.8) unplugin-vue-components: specifier: ^0.26.0 - version: 0.26.0(vue@3.4.21) + version: 0.26.0(rollup@2.79.1)(vue@3.4.21) vite: specifier: ^5.2.0 version: 5.2.8(sass@1.71.1) + vite-plugin-pwa: + specifier: ^0.19.2 + version: 0.19.2(vite@5.2.8)(workbox-build@7.0.0)(workbox-window@7.0.0) vite-plugin-top-level-await: specifier: ^1.4.1 - version: 1.4.1(vite@5.2.8) + version: 1.4.1(rollup@2.79.1)(vite@5.2.8) vite-plugin-vuetify: specifier: ^2.0.3 version: 2.0.3(vite@5.2.8)(vue@3.4.21)(vuetify@3.5.15) @@ -13706,7 +13709,7 @@ packages: rollup: 2.79.1 dev: true - /@rollup/pluginutils@5.1.0: + /@rollup/pluginutils@5.1.0(rollup@2.79.1): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -13718,6 +13721,7 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 + rollup: 2.79.1 dev: true /@rollup/rollup-android-arm-eabi@4.10.0: @@ -25260,8 +25264,6 @@ packages: peerDependenciesMeta: webpack: optional: true - webpack-sources: - optional: true dependencies: webpack: 5.89.0(esbuild@0.19.11) webpack-sources: 3.2.3 @@ -34232,7 +34234,7 @@ packages: vite: 5.2.8(sass@1.71.1) dev: true - /unplugin-vue-components@0.26.0(vue@3.4.21): + /unplugin-vue-components@0.26.0(rollup@2.79.1)(vue@3.4.21): resolution: {integrity: sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==} engines: {node: '>=14'} peerDependencies: @@ -34246,7 +34248,7 @@ packages: optional: true dependencies: '@antfu/utils': 0.7.7 - '@rollup/pluginutils': 5.1.0 + '@rollup/pluginutils': 5.1.0(rollup@2.79.1) chokidar: 3.6.0 debug: 4.3.4(supports-color@8.1.1) fast-glob: 3.3.2 @@ -34585,6 +34587,28 @@ packages: - supports-color dev: true + /vite-plugin-pwa@0.19.2(vite@5.2.8)(workbox-build@7.0.0)(workbox-window@7.0.0): + resolution: {integrity: sha512-LSQJFPxCAQYbRuSyc9EbRLRqLpaBA9onIZuQFomfUYjWSgHuQLonahetDlPSC9zsxmkSEhQH8dXZN8yL978h3w==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@vite-pwa/assets-generator': ^0.2.4 + vite: ^3.1.0 || ^4.0.0 || ^5.0.0 + workbox-build: ^7.0.0 + workbox-window: ^7.0.0 + peerDependenciesMeta: + '@vite-pwa/assets-generator': + optional: true + dependencies: + debug: 4.3.4(supports-color@8.1.1) + fast-glob: 3.3.2 + pretty-bytes: 6.1.1 + vite: 5.2.8(sass@1.71.1) + workbox-build: 7.0.0 + workbox-window: 7.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /vite-plugin-top-level-await@1.4.1(rollup@2.79.1)(vite@5.1.5): resolution: {integrity: sha512-hogbZ6yT7+AqBaV6lK9JRNvJDn4/IJvHLu6ET06arNfo0t2IsyCaon7el9Xa8OumH+ESuq//SDf8xscZFE0rWw==} peerDependencies: @@ -34613,7 +34637,7 @@ packages: - rollup dev: true - /vite-plugin-top-level-await@1.4.1(vite@5.1.1): + /vite-plugin-top-level-await@1.4.1(rollup@2.79.1)(vite@5.2.8): resolution: {integrity: sha512-hogbZ6yT7+AqBaV6lK9JRNvJDn4/IJvHLu6ET06arNfo0t2IsyCaon7el9Xa8OumH+ESuq//SDf8xscZFE0rWw==} peerDependencies: vite: '>=2.8' @@ -34621,13 +34645,13 @@ packages: '@rollup/plugin-virtual': 3.0.2(rollup@2.79.1) '@swc/core': 1.4.6 uuid: 9.0.1 - vite: 5.1.1(@types/node@20.11.17) + vite: 5.2.8(sass@1.71.1) transitivePeerDependencies: - '@swc/helpers' - rollup dev: true - /vite-plugin-top-level-await@1.4.1(vite@5.1.4): + /vite-plugin-top-level-await@1.4.1(vite@5.1.1): resolution: {integrity: sha512-hogbZ6yT7+AqBaV6lK9JRNvJDn4/IJvHLu6ET06arNfo0t2IsyCaon7el9Xa8OumH+ESuq//SDf8xscZFE0rWw==} peerDependencies: vite: '>=2.8' @@ -34635,13 +34659,13 @@ packages: '@rollup/plugin-virtual': 3.0.2(rollup@2.79.1) '@swc/core': 1.4.6 uuid: 9.0.1 - vite: 5.1.4 + vite: 5.1.1(@types/node@20.11.17) transitivePeerDependencies: - '@swc/helpers' - rollup dev: true - /vite-plugin-top-level-await@1.4.1(vite@5.2.8): + /vite-plugin-top-level-await@1.4.1(vite@5.1.4): resolution: {integrity: sha512-hogbZ6yT7+AqBaV6lK9JRNvJDn4/IJvHLu6ET06arNfo0t2IsyCaon7el9Xa8OumH+ESuq//SDf8xscZFE0rWw==} peerDependencies: vite: '>=2.8' @@ -34649,7 +34673,7 @@ packages: '@rollup/plugin-virtual': 3.0.2(rollup@2.79.1) '@swc/core': 1.4.6 uuid: 9.0.1 - vite: 5.2.8(sass@1.71.1) + vite: 5.1.4 transitivePeerDependencies: - '@swc/helpers' - rollup @@ -35929,6 +35953,7 @@ packages: /workbox-google-analytics@7.0.0: resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} + deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained dependencies: workbox-background-sync: 7.0.0 workbox-core: 7.0.0