diff --git a/Dockerfile b/Dockerfile index cc9b84be..5923db79 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,6 +8,10 @@ COPY package.json ./ COPY pnpm-lock.yaml ./ RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile +ARG PWA_ENABLED="false" + +ENV VITE_PWA_ENABLED=${PWA_ENABLED} + COPY . ./ RUN pnpm run build diff --git a/package.json b/package.json index b4cac548..810a689b 100644 --- a/package.json +++ b/package.json @@ -123,7 +123,8 @@ "vite-plugin-package-version": "^1.1.0", "vite-plugin-pwa": "^0.17.4", "vite-plugin-static-copy": "^1.0.0", - "vitest": "^1.1.0" + "vitest": "^1.1.0", + "workbox-window": "^7.0.0" }, "pnpm": { "overrides": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bd97c001..2ded1fb4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -268,7 +268,7 @@ devDependencies: version: 0.5.9(prettier@3.1.1) rollup-plugin-visualizer: specifier: ^5.11.0 - version: 5.11.0(@rollup/wasm-node@4.10.0) + version: 5.11.0(@rollup/wasm-node@4.12.0) tailwind-scrollbar: specifier: ^3.0.5 version: 3.0.5(tailwindcss@3.4.0) @@ -302,6 +302,9 @@ devDependencies: vitest: specifier: ^1.1.0 version: 1.1.0(@types/node@20.10.5)(jsdom@23.0.1) + workbox-window: + specifier: ^7.0.0 + version: 7.0.0 packages: @@ -2059,7 +2062,7 @@ packages: engines: {node: '>=14.0.0'} dev: false - /@rollup/plugin-babel@5.3.1(@babel/core@7.23.6)(@rollup/wasm-node@4.10.0): + /@rollup/plugin-babel@5.3.1(@babel/core@7.23.6)(@rollup/wasm-node@4.12.0): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -2072,36 +2075,36 @@ packages: dependencies: '@babel/core': 7.23.6 '@babel/helper-module-imports': 7.22.15 - '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.10.0) - rollup: /@rollup/wasm-node@4.10.0 + '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.12.0) + rollup: /@rollup/wasm-node@4.12.0 dev: true - /@rollup/plugin-node-resolve@11.2.1(@rollup/wasm-node@4.10.0): + /@rollup/plugin-node-resolve@11.2.1(@rollup/wasm-node@4.12.0): resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: npm:@rollup/wasm-node dependencies: - '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.10.0) + '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.12.0) '@types/resolve': 1.17.1 builtin-modules: 3.3.0 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.4 - rollup: /@rollup/wasm-node@4.10.0 + rollup: /@rollup/wasm-node@4.12.0 dev: true - /@rollup/plugin-replace@2.4.2(@rollup/wasm-node@4.10.0): + /@rollup/plugin-replace@2.4.2(@rollup/wasm-node@4.12.0): resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} peerDependencies: rollup: npm:@rollup/wasm-node dependencies: - '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.10.0) + '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.12.0) magic-string: 0.25.9 - rollup: /@rollup/wasm-node@4.10.0 + rollup: /@rollup/wasm-node@4.12.0 dev: true - /@rollup/pluginutils@3.1.0(@rollup/wasm-node@4.10.0): + /@rollup/pluginutils@3.1.0(@rollup/wasm-node@4.12.0): resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: @@ -2110,11 +2113,11 @@ packages: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 - rollup: /@rollup/wasm-node@4.10.0 + rollup: /@rollup/wasm-node@4.12.0 dev: true - /@rollup/wasm-node@4.10.0: - resolution: {integrity: sha512-wH/ih4T/iP2PUyTrkyioZqDoFY/gmu63LPLTOM5Q21gSB/D3Ejw3UBpUOMLt86fIbN3mV+wL45MyA71XAj1ytg==} + /@rollup/wasm-node@4.12.0: + resolution: {integrity: sha512-sqy3+YvV/uWX6bPZOR5PlEdH6xyMPXoelllRQ/uZ13tzy9f4pXZTbajnoWN8IHHXwTNKPiLzsePLiDEVmkxMNw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: @@ -5098,7 +5101,7 @@ packages: '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6) '@babel/types': 7.23.6 kleur: 4.1.5 - rollup: /@rollup/wasm-node@4.10.0 + rollup: /@rollup/wasm-node@4.12.0 unplugin: 1.5.1 transitivePeerDependencies: - supports-color @@ -6026,7 +6029,7 @@ packages: glob: 7.2.3 dev: true - /rollup-plugin-terser@7.0.2(@rollup/wasm-node@4.10.0): + /rollup-plugin-terser@7.0.2(@rollup/wasm-node@4.12.0): resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser peerDependencies: @@ -6034,12 +6037,12 @@ packages: dependencies: '@babel/code-frame': 7.23.5 jest-worker: 26.6.2 - rollup: /@rollup/wasm-node@4.10.0 + rollup: /@rollup/wasm-node@4.12.0 serialize-javascript: 4.0.0 terser: 5.19.3 dev: true - /rollup-plugin-visualizer@5.11.0(@rollup/wasm-node@4.10.0): + /rollup-plugin-visualizer@5.11.0(@rollup/wasm-node@4.12.0): resolution: {integrity: sha512-exM0Ms2SN3AgTzMeW7y46neZQcyLY7eKwWAop1ZoRTCZwyrIRdMMJ6JjToAJbML77X/9N8ZEpmXG4Z/Clb9k8g==} engines: {node: '>=14'} hasBin: true @@ -6051,7 +6054,7 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 - rollup: /@rollup/wasm-node@4.10.0 + rollup: /@rollup/wasm-node@4.12.0 source-map: 0.7.4 yargs: 17.7.2 dev: true @@ -7037,7 +7040,7 @@ packages: '@types/node': 20.10.5 esbuild: 0.19.10 postcss: 8.4.32 - rollup: /@rollup/wasm-node@4.10.0 + rollup: /@rollup/wasm-node@4.12.0 optionalDependencies: fsevents: 2.3.3 dev: true @@ -7299,9 +7302,9 @@ packages: '@babel/core': 7.23.6 '@babel/preset-env': 7.23.6(@babel/core@7.23.6) '@babel/runtime': 7.23.6 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.6)(@rollup/wasm-node@4.10.0) - '@rollup/plugin-node-resolve': 11.2.1(@rollup/wasm-node@4.10.0) - '@rollup/plugin-replace': 2.4.2(@rollup/wasm-node@4.10.0) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.6)(@rollup/wasm-node@4.12.0) + '@rollup/plugin-node-resolve': 11.2.1(@rollup/wasm-node@4.12.0) + '@rollup/plugin-replace': 2.4.2(@rollup/wasm-node@4.12.0) '@surma/rollup-plugin-off-main-thread': 2.2.3 ajv: 8.12.0 common-tags: 1.8.2 @@ -7310,8 +7313,8 @@ packages: glob: 7.2.3 lodash: 4.17.21 pretty-bytes: 5.6.0 - rollup: /@rollup/wasm-node@4.10.0 - rollup-plugin-terser: 7.0.2(@rollup/wasm-node@4.10.0) + rollup: /@rollup/wasm-node@4.12.0 + rollup-plugin-terser: 7.0.2(@rollup/wasm-node@4.12.0) source-map: 0.8.0-beta.0 stringify-object: 3.3.0 strip-comments: 2.0.1