From 9445878ca2c26c8898255ab43f6464aab0c3c286 Mon Sep 17 00:00:00 2001 From: Amir Zarrinkafsh Date: Mon, 11 Oct 2021 20:30:02 +1100 Subject: [PATCH] refactor(web): use transformindexhtml vite hook (#2488) --- Dockerfile.coverage | 3 +- Dockerfile.dev | 3 +- cmd/authelia-scripts/cmd_build.go | 7 - internal/suites/environment.go | 2 +- web/index.html | 2 +- web/package.json | 3 +- web/pnpm-lock.yaml | 586 +----------------------------- web/src/react-app-env.d.ts | 1 - web/vite.config.ts | 63 ++-- 9 files changed, 58 insertions(+), 612 deletions(-) delete mode 100644 web/src/react-app-env.d.ts diff --git a/Dockerfile.coverage b/Dockerfile.coverage index 1baf918b..e021aefd 100644 --- a/Dockerfile.coverage +++ b/Dockerfile.coverage @@ -10,8 +10,7 @@ COPY web ./ # Install the dependencies and build RUN yarn global add pnpm && \ - pnpm install --frozen-lockfile && pnpm coverage && \ - sed -i -e 's/{{.[a-zA-Z]*}}/"&"/g' /node/src/internal/server/public_html/index.html + pnpm install --frozen-lockfile && pnpm coverage # ======================================= # ===== Build image for the backend ===== diff --git a/Dockerfile.dev b/Dockerfile.dev index 01934a35..1b76106b 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -8,8 +8,7 @@ WORKDIR /node/src/app COPY web ./ # Install the dependencies and build -RUN yarn install --frozen-lockfile && yarn build && \ - sed -i -e 's/{{.[a-zA-Z]*}}/"&"/g' /node/src/internal/server/public_html/index.html +RUN yarn install --frozen-lockfile && yarn build # ======================================= # ===== Build image for the backend ===== diff --git a/cmd/authelia-scripts/cmd_build.go b/cmd/authelia-scripts/cmd_build.go index 2b71b468..133968da 100644 --- a/cmd/authelia-scripts/cmd_build.go +++ b/cmd/authelia-scripts/cmd_build.go @@ -82,13 +82,6 @@ func buildFrontend(branch string) { if err != nil { log.Fatal(err) } - - cmd = utils.CommandWithStdout("bash", "-c", "sed -i -e 's/{{.[a-zA-Z]*}}/\"&\"/g' internal/server/public_html/index.html") - - err = cmd.Run() - if err != nil { - log.Fatal(err) - } } } diff --git a/internal/suites/environment.go b/internal/suites/environment.go index 371bf080..a5088ce1 100644 --- a/internal/suites/environment.go +++ b/internal/suites/environment.go @@ -55,7 +55,7 @@ func waitUntilAutheliaFrontendIsReady(dockerEnvironment *DockerEnvironment) erro 90*time.Second, dockerEnvironment, "authelia-frontend", - []string{"vite v2.6.3 dev server running at", "ready in"}) + []string{"dev server running at", "ready in"}) } func waitUntilSambaIsReady(dockerEnvironment *DockerEnvironment) error { diff --git a/web/index.html b/web/index.html index ffb65775..b51a1f86 100644 --- a/web/index.html +++ b/web/index.html @@ -13,7 +13,7 @@ Login - Authelia - +
diff --git a/web/package.json b/web/package.json index c2dcd7ac..9b8cf0d3 100644 --- a/web/package.json +++ b/web/package.json @@ -130,6 +130,7 @@ "@types/react-router-dom": "5.3.1", "@typescript-eslint/eslint-plugin": "4.33.0", "@typescript-eslint/parser": "4.33.0", + "@vitejs/plugin-react-refresh": "1.3.6", "esbuild-jest": "0.5.0", "eslint-config-prettier": "8.3.0", "eslint-config-react-app": "6.0.0", @@ -149,9 +150,9 @@ "react-test-renderer": "17.0.2", "typescript": "4.4.3", "vite": "2.6.5", + "vite-plugin-eslint": "1.3.0", "vite-plugin-istanbul": "2.2.0", "vite-plugin-svgr": "0.4.0", - "vite-react": "0.0.41", "vite-tsconfig-paths": "3.3.15" } } diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index a690cd27..12656e26 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -19,6 +19,7 @@ specifiers: '@types/react-router-dom': 5.3.1 '@typescript-eslint/eslint-plugin': 4.33.0 '@typescript-eslint/parser': 4.33.0 + '@vitejs/plugin-react-refresh': 1.3.6 axios: 0.22.0 classnames: 2.3.1 esbuild-jest: 0.5.0 @@ -50,9 +51,9 @@ specifiers: typescript: 4.4.3 u2f-api: 1.2.1 vite: 2.6.5 + vite-plugin-eslint: 1.3.0 vite-plugin-istanbul: 2.2.0 vite-plugin-svgr: 0.4.0 - vite-react: 0.0.41 vite-tsconfig-paths: 3.3.15 dependencies: @@ -88,6 +89,7 @@ devDependencies: '@types/react-router-dom': 5.3.1 '@typescript-eslint/eslint-plugin': 4.33.0_b4fae2aaf9a34e02c9acb1cfc4c88710 '@typescript-eslint/parser': 4.33.0_typescript@4.4.3 + '@vitejs/plugin-react-refresh': 1.3.6 esbuild-jest: 0.5.0 eslint-config-prettier: 8.3.0 eslint-config-react-app: 6.0.0_1ddf688a09a74f726c12a1973105ea5b @@ -107,9 +109,9 @@ devDependencies: react-test-renderer: 17.0.2_react@17.0.2 typescript: 4.4.3 vite: 2.6.5 + vite-plugin-eslint: 1.3.0_vite@2.6.5 vite-plugin-istanbul: 2.2.0 vite-plugin-svgr: 0.4.0_vite@2.6.5 - vite-react: 0.0.41 vite-tsconfig-paths: 3.3.15_vite@2.6.5 packages: @@ -472,11 +474,6 @@ packages: dependencies: regenerator-runtime: 0.13.9 - /@babel/standalone/7.15.8: - resolution: {integrity: sha512-EF2uQLeuwflnPRGetWH2Z400ITOSK7YbkXIKxY91EWSiOJ8xsbupT3sx3sFRwVyQgjsHSILFDzLcSo/rGspLhQ==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/template/7.15.4: resolution: {integrity: sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==} engines: {node: '>=6.9.0'} @@ -777,18 +774,6 @@ packages: engines: {node: '>=8'} dev: true - /@jest/console/27.2.4: - resolution: {integrity: sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.2.4 - '@types/node': 16.10.3 - chalk: 4.1.2 - jest-message-util: 27.2.4 - jest-util: 27.2.4 - slash: 3.0.0 - dev: true - /@jest/console/27.2.5: resolution: {integrity: sha512-smtlRF9vNKorRMCUtJ+yllIoiY8oFmfFG7xlzsAE76nKEwXNhjPOJIsc7Dv+AUitVt76t+KjIpUP9m98Crn2LQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -924,16 +909,6 @@ packages: source-map: 0.6.1 dev: true - /@jest/test-result/27.2.4: - resolution: {integrity: sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.2.4 - '@jest/types': 27.2.4 - '@types/istanbul-lib-coverage': 2.0.3 - collect-v8-coverage: 1.0.1 - dev: true - /@jest/test-result/27.2.5: resolution: {integrity: sha512-ub7j3BrddxZ0BdSnM5JCF6cRZJ/7j3wgdX0+Dtwhw2Po+HKsELCiXUTvh+mgS4/89mpnU1CPhZxe2mTvuLPJJg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -1013,17 +988,6 @@ packages: chalk: 4.1.2 dev: true - /@jest/types/27.2.4: - resolution: {integrity: sha512-IDO2ezTxeMvQAHxzG/ZvEyA47q0aVfzT95rGFl7bZs/Go0aIucvfDbS2rmnoEdXxlLQhcolmoG/wvL/uKx4tKA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/istanbul-lib-coverage': 2.0.3 - '@types/istanbul-reports': 3.0.1 - '@types/node': 16.10.3 - '@types/yargs': 16.0.4 - chalk: 4.1.2 - dev: true - /@jest/types/27.2.5: resolution: {integrity: sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -1293,9 +1257,9 @@ packages: '@types/aria-query': 4.2.2 aria-query: 4.2.2 chalk: 4.1.2 - dom-accessibility-api: 0.5.7 + dom-accessibility-api: 0.5.8 lz-string: 1.4.4 - pretty-format: 27.2.4 + pretty-format: 27.2.5 dev: true /@testing-library/jest-dom/5.14.1: @@ -1308,7 +1272,7 @@ packages: chalk: 3.0.0 css: 3.0.0 css.escape: 1.5.1 - dom-accessibility-api: 0.5.7 + dom-accessibility-api: 0.5.8 lodash: 4.17.21 redent: 3.0.0 dev: true @@ -1393,8 +1357,8 @@ packages: /@types/jest/27.0.2: resolution: {integrity: sha512-4dRxkS/AFX0c5XW6IPMNOydLn2tEhNhJV7DnYK+0bjoJZ+QTmfucBlihX7aoEsh/ocYtkLC73UbnBXBXIxsULA==} dependencies: - jest-diff: 27.2.4 - pretty-format: 27.2.4 + jest-diff: 27.2.5 + pretty-format: 27.2.5 dev: true /@types/json-schema/7.0.9: @@ -1600,20 +1564,6 @@ packages: eslint-visitor-keys: 2.1.0 dev: true - /@vitejs/plugin-legacy/1.6.1_vite@2.6.5: - resolution: {integrity: sha512-isBi2ti+AlCZUpfA1P6L8gseltBy/qi6Rsi92aDzeL2elpwXgN4Hv/xLS2UUSSj9F0mFmxXCYPWlBPaJnlYamQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - vite: ^2.0.0 - dependencies: - '@babel/standalone': 7.15.8 - core-js: 3.18.2 - magic-string: 0.25.7 - regenerator-runtime: 0.13.9 - systemjs: 6.10.3 - vite: 2.6.5_less@4.1.2+sass@1.42.1 - dev: true - /@vitejs/plugin-react-refresh/1.3.6: resolution: {integrity: sha512-iNR/UqhUOmFFxiezt0em9CgmiJBdWR+5jGxB2FihaoJfqGt76kiwaKoVOJVU5NYcDWMdN06LbyN2VIGIoYdsEA==} engines: {node: '>=12.0.0'} @@ -1849,10 +1799,6 @@ packages: engines: {node: '>=8'} dev: true - /async/0.9.2: - resolution: {integrity: sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=} - dev: true - /asynckit/0.4.0: resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} dev: true @@ -2016,11 +1962,6 @@ packages: pascalcase: 0.1.1 dev: true - /binary-extensions/2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -2061,7 +2002,7 @@ packages: hasBin: true dependencies: caniuse-lite: 1.0.30001265 - electron-to-chromium: 1.3.861 + electron-to-chromium: 1.3.864 escalade: 3.1.1 node-releases: 1.1.77 picocolors: 0.2.1 @@ -2104,13 +2045,6 @@ packages: engines: {node: '>=6'} dev: true - /camel-case/4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - dependencies: - pascal-case: 3.1.2 - tslib: 2.3.1 - dev: true - /camelcase-keys/6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} engines: {node: '>=8'} @@ -2134,14 +2068,6 @@ packages: resolution: {integrity: sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==} dev: true - /capital-case/1.0.4: - resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} - dependencies: - no-case: 3.0.4 - tslib: 2.3.1 - upper-case-first: 2.0.2 - dev: true - /capture-exit/2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} engines: {node: 6.* || 8.* || >= 10.*} @@ -2174,23 +2100,6 @@ packages: supports-color: 7.2.0 dev: true - /change-case/4.1.2: - resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} - dependencies: - camel-case: 4.1.2 - capital-case: 1.0.4 - constant-case: 3.0.4 - dot-case: 3.0.4 - header-case: 2.0.4 - no-case: 3.0.4 - param-case: 3.0.4 - pascal-case: 3.1.2 - path-case: 3.0.4 - sentence-case: 3.0.4 - snake-case: 3.0.4 - tslib: 2.3.1 - dev: true - /char-regex/1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -2201,21 +2110,6 @@ packages: engines: {node: '>=12.20'} dev: true - /chokidar/3.5.2: - resolution: {integrity: sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.2 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /ci-info/2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} dev: true @@ -2242,13 +2136,6 @@ packages: resolution: {integrity: sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==} dev: false - /clean-css/4.2.3: - resolution: {integrity: sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==} - engines: {node: '>= 4.0'} - dependencies: - source-map: 0.6.1 - dev: true - /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: @@ -2307,15 +2194,6 @@ packages: delayed-stream: 1.0.0 dev: true - /commander/2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: true - - /commander/4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - dev: true - /compare-func/2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} dependencies: @@ -2335,14 +2213,6 @@ packages: resolution: {integrity: sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==} dev: true - /constant-case/3.0.4: - resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} - dependencies: - no-case: 3.0.4 - tslib: 2.3.1 - upper-case: 2.0.2 - dev: true - /conventional-changelog-angular/5.0.13: resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} engines: {node: '>=10'} @@ -2379,12 +2249,6 @@ packages: safe-buffer: 5.1.2 dev: true - /copy-anything/2.0.3: - resolution: {integrity: sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==} - dependencies: - is-what: 3.14.1 - dev: true - /copy-descriptor/0.1.1: resolution: {integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=} engines: {node: '>=0.10.0'} @@ -2395,11 +2259,6 @@ packages: requiresBuild: true dev: true - /core-js/3.18.2: - resolution: {integrity: sha512-zNhPOUoSgoizoSQFdX1MeZO16ORRb9FFQLts8gSYbZU5FcgXhp24iMWMxnOQo5uIaIG7/6FA/IqJPwev1o9ZXQ==} - requiresBuild: true - dev: true - /cosmiconfig/7.0.1: resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} engines: {node: '>=10'} @@ -2622,8 +2481,8 @@ packages: esutils: 2.0.3 dev: true - /dom-accessibility-api/0.5.7: - resolution: {integrity: sha512-ml3lJIq9YjUfM9TUnEPvEYWFSwivwIGBPKpewX7tii7fwCazA8yCioGdqQcNsItPpfFvSJ3VIdMQPj60LJhcQA==} + /dom-accessibility-api/0.5.8: + resolution: {integrity: sha512-rAfghuBPeJldxqsmZQtBbna4TqMgFe4xhYs24vPULNslbmXUdcga+CXiKWzZxyWw0FCkGKPgmizIysIvsAEN8w==} dev: true /dom-helpers/5.2.1: @@ -2640,13 +2499,6 @@ packages: webidl-conversions: 5.0.0 dev: true - /dot-case/3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dependencies: - no-case: 3.0.4 - tslib: 2.3.1 - dev: true - /dot-prop/5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -2654,25 +2506,8 @@ packages: is-obj: 2.0.0 dev: true - /dotenv-expand/5.1.0: - resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} - dev: true - - /dotenv/10.0.0: - resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} - engines: {node: '>=10'} - dev: true - - /ejs/3.1.6: - resolution: {integrity: sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==} - engines: {node: '>=0.10.0'} - hasBin: true - dependencies: - jake: 10.8.2 - dev: true - - /electron-to-chromium/1.3.861: - resolution: {integrity: sha512-GZyflmpMnZRdZ1e2yAyvuFwz1MPSVQelwHX4TJZyXypB8NcxdPvPNwy5lOTxnlkrK13EiQzyTPugRSnj6cBgKg==} + /electron-to-chromium/1.3.864: + resolution: {integrity: sha512-v4rbad8GO6/yVI92WOeU9Wgxc4NA0n4f6P1FvZTY+jyY7JHEhw3bduYu60v3Q1h81Cg6eo4ApZrFPuycwd5hGw==} dev: true /emittery/0.8.1: @@ -2701,15 +2536,6 @@ packages: ansi-colors: 4.1.1 dev: true - /errno/0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} - hasBin: true - requiresBuild: true - dependencies: - prr: 1.0.1 - dev: true - optional: true - /error-ex/1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: @@ -2742,10 +2568,6 @@ packages: unbox-primitive: 1.0.1 dev: true - /es-module-lexer/0.7.1: - resolution: {integrity: sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==} - dev: true - /es-to-primitive/1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} @@ -3390,12 +3212,6 @@ packages: flat-cache: 3.0.4 dev: true - /filelist/1.0.2: - resolution: {integrity: sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==} - dependencies: - minimatch: 3.0.4 - dev: true - /fill-range/4.0.0: resolution: {integrity: sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=} engines: {node: '>=0.10.0'} @@ -3703,18 +3519,6 @@ packages: function-bind: 1.1.1 dev: true - /he/1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: true - - /header-case/2.0.4: - resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} - dependencies: - capital-case: 1.0.4 - tslib: 2.3.1 - dev: true - /history/4.10.1: resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} dependencies: @@ -3754,20 +3558,6 @@ packages: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true - /html-minifier-terser/5.1.1: - resolution: {integrity: sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==} - engines: {node: '>=6'} - hasBin: true - dependencies: - camel-case: 4.1.2 - clean-css: 4.2.3 - commander: 4.1.1 - he: 1.2.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 4.8.0 - dev: true - /http-proxy-agent/4.0.1: resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} engines: {node: '>= 6'} @@ -3821,14 +3611,6 @@ packages: engines: {node: '>= 4'} dev: true - /image-size/0.5.5: - resolution: {integrity: sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=} - engines: {node: '>=0.10.0'} - hasBin: true - requiresBuild: true - dev: true - optional: true - /import-fresh/3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -3904,13 +3686,6 @@ packages: has-bigints: 1.0.1 dev: true - /is-binary-path/2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - /is-boolean-object/1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} @@ -4123,10 +3898,6 @@ packages: call-bind: 1.0.2 dev: true - /is-what/3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} - dev: true - /is-windows/1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -4201,16 +3972,6 @@ packages: istanbul-lib-report: 3.0.0 dev: true - /jake/10.8.2: - resolution: {integrity: sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==} - hasBin: true - dependencies: - async: 0.9.2 - chalk: 2.4.2 - filelist: 1.0.2 - minimatch: 3.0.4 - dev: true - /jest-changed-files/27.2.5: resolution: {integrity: sha512-jfnNJzF89csUKRPKJ4MwZ1SH27wTmX2xiAIHUHrsb/OYd9Jbo4/SXxJ17/nnx6RIifpthk3Y+LEeOk+/dDeGdw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -4267,7 +4028,7 @@ packages: jest-config: 27.2.5 jest-util: 27.2.5 jest-validate: 27.2.5 - prompts: 2.4.1 + prompts: 2.4.2 yargs: 16.2.0 transitivePeerDependencies: - bufferutil @@ -4314,16 +4075,6 @@ packages: - utf-8-validate dev: true - /jest-diff/27.2.4: - resolution: {integrity: sha512-bLAVlDSCR3gqUPGv+4nzVpEXGsHh98HjUL7Vb2hVyyuBDoQmja8eJb0imUABsuxBeUVmf47taJSAd9nDrwWKEg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 27.0.6 - jest-get-type: 27.0.6 - pretty-format: 27.2.4 - dev: true - /jest-diff/27.2.5: resolution: {integrity: sha512-7gfwwyYkeslOOVQY4tVq5TaQa92mWfC9COsVYMNVYyJTOYAqbIkoD3twi5A+h+tAPtAelRxkqY6/xu+jwTr0dA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -4472,21 +4223,6 @@ packages: pretty-format: 27.2.5 dev: true - /jest-message-util/27.2.4: - resolution: {integrity: sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/code-frame': 7.15.8 - '@jest/types': 27.2.4 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.8 - micromatch: 4.0.4 - pretty-format: 27.2.4 - slash: 3.0.0 - stack-utils: 2.0.5 - dev: true - /jest-message-util/27.2.5: resolution: {integrity: sha512-ggXSLoPfIYcbmZ8glgEJZ8b+e0Msw/iddRmgkoO7lDAr9SmI65IIfv7VnvTnV4FGnIIUIjzM+fHRHO5RBvyAbQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -4691,18 +4427,6 @@ packages: micromatch: 4.0.4 dev: true - /jest-util/27.2.4: - resolution: {integrity: sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.2.4 - '@types/node': 16.10.3 - chalk: 4.1.2 - graceful-fs: 4.2.8 - is-ci: 3.0.0 - picomatch: 2.3.0 - dev: true - /jest-util/27.2.5: resolution: {integrity: sha512-QRhDC6XxISntMzFRd/OQ6TGsjbzA5ONO0tlAj2ElHs155x1aEr0rkYJBEysG6H/gZVH3oGFzCdAB/GA8leh8NQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -4737,25 +4461,12 @@ packages: chalk: 4.1.2 jest: 27.2.5 jest-regex-util: 27.0.6 - jest-watcher: 27.2.4 + jest-watcher: 27.2.5 slash: 4.0.0 string-length: 5.0.1 strip-ansi: 7.0.1 dev: true - /jest-watcher/27.2.4: - resolution: {integrity: sha512-LXC/0+dKxhK7cfF7reflRYlzDIaQE+fL4ynhKhzg8IMILNMuI4xcjXXfUJady7OR4/TZeMg7X8eHx8uan9vqaQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': 27.2.4 - '@jest/types': 27.2.4 - '@types/node': 16.10.3 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - jest-util: 27.2.4 - string-length: 4.0.2 - dev: true - /jest-watcher/27.2.5: resolution: {integrity: sha512-umV4qGozg2Dn6DTTtqAh9puPw+DGLK9AQas7+mWjiK8t0fWMpxKg8ZXReZw7L4C88DqorsGUiDgwHNZ+jkVrkQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -5024,24 +4735,6 @@ packages: language-subtag-registry: 0.3.21 dev: true - /less/4.1.2: - resolution: {integrity: sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==} - engines: {node: '>=6'} - hasBin: true - dependencies: - copy-anything: 2.0.3 - parse-node-version: 1.0.1 - tslib: 2.3.1 - optionalDependencies: - errno: 0.1.8 - graceful-fs: 4.2.8 - image-size: 0.5.5 - make-dir: 2.1.0 - mime: 1.6.0 - needle: 2.9.1 - source-map: 0.6.1 - dev: true - /leven/3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -5125,12 +4818,6 @@ packages: dependencies: js-tokens: 4.0.0 - /lower-case/2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - dependencies: - tslib: 2.3.1 - dev: true - /lru-cache/6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -5143,22 +4830,6 @@ packages: hasBin: true dev: true - /magic-string/0.25.7: - resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==} - dependencies: - sourcemap-codec: 1.4.8 - dev: true - - /make-dir/2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} - requiresBuild: true - dependencies: - pify: 4.0.1 - semver: 5.7.1 - dev: true - optional: true - /make-dir/3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -5263,14 +4934,6 @@ packages: mime-db: 1.50.0 dev: true - /mime/1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - requiresBuild: true - dev: true - optional: true - /mimic-fn/2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -5359,29 +5022,10 @@ packages: resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} dev: true - /needle/2.9.1: - resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} - engines: {node: '>= 4.4.x'} - hasBin: true - requiresBuild: true - dependencies: - debug: 3.2.7 - iconv-lite: 0.4.24 - sax: 1.2.4 - dev: true - optional: true - /nice-try/1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true - /no-case/3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - dependencies: - lower-case: 2.0.2 - tslib: 2.3.1 - dev: true - /node-int64/0.4.0: resolution: {integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=} dev: true @@ -5618,13 +5262,6 @@ packages: engines: {node: '>=6'} dev: true - /param-case/3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} - dependencies: - dot-case: 3.0.4 - tslib: 2.3.1 - dev: true - /parent-module/1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -5650,34 +5287,15 @@ packages: lines-and-columns: 1.1.6 dev: true - /parse-node-version/1.0.1: - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} - engines: {node: '>= 0.10'} - dev: true - /parse5/6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} dev: true - /pascal-case/3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - dependencies: - no-case: 3.0.4 - tslib: 2.3.1 - dev: true - /pascalcase/0.1.1: resolution: {integrity: sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=} engines: {node: '>=0.10.0'} dev: true - /path-case/3.0.4: - resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} - dependencies: - dot-case: 3.0.4 - tslib: 2.3.1 - dev: true - /path-exists/3.0.0: resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} engines: {node: '>=4'} @@ -5739,12 +5357,6 @@ packages: engines: {node: '>=4'} dev: true - /pify/4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - dev: true - optional: true - /pirates/4.0.1: resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==} engines: {node: '>= 6'} @@ -5814,16 +5426,6 @@ packages: hasBin: true dev: true - /pretty-format/27.2.4: - resolution: {integrity: sha512-NUjw22WJHldzxyps2YjLZkUj6q1HvjqFezkB9Y2cklN8NtVZN/kZEXGZdFw4uny3oENzV5EEMESrkI0YDUH8vg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.2.4 - ansi-regex: 5.0.1 - ansi-styles: 5.2.0 - react-is: 17.0.2 - dev: true - /pretty-format/27.2.5: resolution: {integrity: sha512-+nYn2z9GgicO9JiqmY25Xtq8SYfZ/5VCpEU3pppHHNAhd1y+ZXxmNPd1evmNcAd6Hz4iBV2kf0UpGth5A/VJ7g==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -5839,8 +5441,8 @@ packages: engines: {node: '>=0.4.0'} dev: true - /prompts/2.4.1: - resolution: {integrity: sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==} + /prompts/2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} dependencies: kleur: 3.0.3 @@ -5854,11 +5456,6 @@ packages: object-assign: 4.1.1 react-is: 16.13.1 - /prr/1.0.1: - resolution: {integrity: sha1-0/wRS6BplaRexok/SEzrHXj19HY=} - dev: true - optional: true - /psl/1.8.0: resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} dev: true @@ -6086,13 +5683,6 @@ packages: util-deprecate: 1.0.2 dev: true - /readdirp/3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.0 - dev: true - /recrawl-sync/2.2.1: resolution: {integrity: sha512-A2yLDgeXNaduJJMlqyUdIN7fewopnNm/mVeeGytS1d2HLXKpS5EthQ0j8tWeX+as9UXiiwQRwfoslKC+/gjqxg==} dependencies: @@ -6134,11 +5724,6 @@ packages: engines: {node: '>=8'} dev: true - /relateurl/0.2.7: - resolution: {integrity: sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=} - engines: {node: '>= 0.10'} - dev: true - /remove-trailing-separator/1.1.0: resolution: {integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8=} dev: true @@ -6281,19 +5866,6 @@ packages: walker: 1.0.7 dev: true - /sass/1.42.1: - resolution: {integrity: sha512-/zvGoN8B7dspKc5mC6HlaygyCBRvnyzzgD5khiaCfglWztY99cYoiTUksVx11NlnemrcfH5CEaCpsUKoW0cQqg==} - engines: {node: '>=8.9.0'} - hasBin: true - dependencies: - chokidar: 3.5.2 - dev: true - - /sax/1.2.4: - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} - dev: true - optional: true - /saxes/5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} engines: {node: '>=10'} @@ -6325,14 +5897,6 @@ packages: lru-cache: 6.0.0 dev: true - /sentence-case/3.0.4: - resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} - dependencies: - no-case: 3.0.4 - tslib: 2.3.1 - upper-case-first: 2.0.2 - dev: true - /set-value/2.0.1: resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} engines: {node: '>=0.10.0'} @@ -6402,13 +5966,6 @@ packages: is-fullwidth-code-point: 3.0.0 dev: true - /snake-case/3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - dependencies: - dot-case: 3.0.4 - tslib: 2.3.1 - dev: true - /snapdragon-node/2.1.1: resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} engines: {node: '>=0.10.0'} @@ -6487,10 +6044,6 @@ packages: engines: {node: '>= 8'} dev: true - /sourcemap-codec/1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - dev: true - /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: @@ -6700,10 +6253,6 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /systemjs/6.10.3: - resolution: {integrity: sha512-mXwfLJdaADqWg1J5+Z0bGQEdcXSe+ePPTfzffMB29aVls5cXveRl0vneSV/19t3SfuUBsAraLP8W/g5u9cmYXA==} - dev: true - /table/6.7.2: resolution: {integrity: sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==} engines: {node: '>=10.0.0'} @@ -6724,16 +6273,6 @@ packages: supports-hyperlinks: 2.2.0 dev: true - /terser/4.8.0: - resolution: {integrity: sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - commander: 2.20.3 - source-map: 0.6.1 - source-map-support: 0.5.20 - dev: true - /test-exclude/6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -6976,18 +6515,6 @@ packages: isobject: 3.0.1 dev: true - /upper-case-first/2.0.2: - resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} - dependencies: - tslib: 2.3.1 - dev: true - - /upper-case/2.0.2: - resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} - dependencies: - tslib: 2.3.1 - dev: true - /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -7040,25 +6567,11 @@ packages: '@rollup/pluginutils': 4.1.1 eslint: 7.32.0 rollup: 2.58.0 - vite: 2.6.5_less@4.1.2+sass@1.42.1 + vite: 2.6.5 transitivePeerDependencies: - supports-color dev: true - /vite-plugin-html/2.1.1_vite@2.6.5: - resolution: {integrity: sha512-TCLLYzibNDEMwbtRYAYYmI7CqMuU0qFFfoTVhEQ8w4P9Tjfe5Xrh/0+XXydifgd/H7xzuWkFUjSYT6Egy7Y27Q==} - peerDependencies: - vite: '>=2.0.0' - dependencies: - '@rollup/pluginutils': 4.1.1 - dotenv: 10.0.0 - dotenv-expand: 5.1.0 - ejs: 3.1.6 - fs-extra: 10.0.0 - html-minifier-terser: 5.1.1 - vite: 2.6.5_less@4.1.2+sass@1.42.1 - dev: true - /vite-plugin-istanbul/2.2.0: resolution: {integrity: sha512-kcQV/pnYoryslh6q+kywf068LqrsBlEcg9tdMh/ISSXfC7SHhZguDAgdSSdE06v0/diZrrEOw/jTUzhp59TTFQ==} dependencies: @@ -7068,21 +6581,6 @@ packages: - supports-color dev: true - /vite-plugin-style-import/1.2.1_vite@2.6.5: - resolution: {integrity: sha512-N3qH4K/FE9GPs40k1bREEdBqKkAhjQUeLBNDWzDVFpKJ204unjUpJkGjRv6FA0c+uaZZCHwEQRUMKULtZW3kCw==} - peerDependencies: - vite: '>=2.0.0' - dependencies: - '@rollup/pluginutils': 4.1.1 - change-case: 4.1.2 - debug: 4.3.2 - es-module-lexer: 0.7.1 - magic-string: 0.25.7 - vite: 2.6.5_less@4.1.2+sass@1.42.1 - transitivePeerDependencies: - - supports-color - dev: true - /vite-plugin-svgr/0.4.0_vite@2.6.5: resolution: {integrity: sha512-aNhPEYxn2L4m1lOvUpJksMPxNZbYBq1npnMhi6D5HUykBV03bVmcu3WGHZ50lIYr0CC5t+yEvck8hNbHOOgKxg==} peerDependencies: @@ -7094,26 +6592,6 @@ packages: - supports-color dev: true - /vite-react/0.0.41: - resolution: {integrity: sha512-5mO8ZwwbfdsEHoqRjLsLIHfyMh13rJ5gwVuxkABTp9JbY5O3bUiAyhAGJiJeIHg2W8+kPzGttg1sjWGRC42qzg==} - engines: {node: '>=12.0.0'} - hasBin: true - dependencies: - '@vitejs/plugin-legacy': 1.6.1_vite@2.6.5 - '@vitejs/plugin-react-refresh': 1.3.6 - less: 4.1.2 - sass: 1.42.1 - tslib: 2.3.1 - v8-compile-cache: 2.3.0 - vite: 2.6.5_less@4.1.2+sass@1.42.1 - vite-plugin-eslint: 1.3.0_vite@2.6.5 - vite-plugin-html: 2.1.1_vite@2.6.5 - vite-plugin-style-import: 1.2.1_vite@2.6.5 - transitivePeerDependencies: - - stylus - - supports-color - dev: true - /vite-tsconfig-paths/3.3.15_vite@2.6.5: resolution: {integrity: sha512-SFPj6Y5HWB2Vy6eZZSA2VF06Lkg74kkTtMYfs47QJ2z8Fm3qFNggKHWsGDH/gesW56Ly9xmDGr1IBC8o77G+mw==} peerDependencies: @@ -7152,32 +6630,6 @@ packages: fsevents: 2.3.2 dev: true - /vite/2.6.5_less@4.1.2+sass@1.42.1: - resolution: {integrity: sha512-vavXMChDUb4Oh4YunrK9BrH5Ox74cu0eOp0VuyI/iqFz1FqbWD72So2c9I87lLL2n0+6tFPV5ijow60KrtxuZg==} - engines: {node: '>=12.2.0'} - hasBin: true - peerDependencies: - less: '*' - sass: '*' - stylus: '*' - peerDependenciesMeta: - less: - optional: true - sass: - optional: true - stylus: - optional: true - dependencies: - esbuild: 0.13.4 - less: 4.1.2 - postcss: 8.3.9 - resolve: 1.20.0 - rollup: 2.58.0 - sass: 1.42.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /w3c-hr-time/1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} dependencies: diff --git a/web/src/react-app-env.d.ts b/web/src/react-app-env.d.ts deleted file mode 100644 index 6431bc5f..00000000 --- a/web/src/react-app-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/web/vite.config.ts b/web/vite.config.ts index cc666acb..91757360 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -1,34 +1,40 @@ import path from "path"; -import { loadEnv } from "vite"; +import reactRefresh from "@vitejs/plugin-react-refresh"; +import { defineConfig, loadEnv } from "vite"; +import eslintPlugin from "vite-plugin-eslint"; import istanbul from "vite-plugin-istanbul"; import svgr from "vite-plugin-svgr"; -import { defineConfig } from "vite-react"; import tsconfigPaths from "vite-tsconfig-paths"; -const isCoverage = process.env.VITE_COVERAGE === "true"; -const istanbulPlugin = isCoverage - ? istanbul({ - include: "src/*", - exclude: ["node_modules"], - extension: [".js", ".jsx", ".ts", ".tsx"], - requireEnv: true, - }) - : undefined; -const sourcemap = isCoverage ? "inline" : undefined; - +// @ts-ignore export default defineConfig(({ mode }) => { const env = loadEnv(mode, "env"); + const isCoverage = process.env.VITE_COVERAGE === "true"; + const sourcemap = isCoverage ? "inline" : undefined; - function assetOutput(name: string | undefined) { - if (name && name.endsWith(".css")) { - return "static/css/[name].[hash].[ext]"; - } + const htmlPlugin = () => { + return { + name: "html-transform", + transformIndexHtml(html: string) { + return html.replace(/%(.*?)%/g, function (match, p1) { + return env[p1]; + }); + }, + }; + }; - return "static/media/[name].[hash].[ext]"; - } + const istanbulPlugin = isCoverage + ? istanbul({ + include: "src/*", + exclude: ["node_modules"], + extension: [".js", ".jsx", ".ts", ".tsx"], + requireEnv: true, + }) + : undefined; return { + base: "./", build: { sourcemap, outDir: "../internal/server/public_html", @@ -37,19 +43,16 @@ export default defineConfig(({ mode }) => { output: { entryFileNames: `static/js/[name].[hash].js`, chunkFileNames: `static/js/[name].[hash].js`, - assetFileNames: ({ name }) => assetOutput(name), + assetFileNames: ({ name }) => { + if (name && name.endsWith(".css")) { + return "static/css/[name].[hash].[ext]"; + } + + return "static/media/[name].[hash].[ext]"; + }, }, }, }, - envDir: "env", - eslint: { - enable: true, - }, - html: { - injectData: { - ...env, - }, - }, server: { open: false, hmr: { @@ -64,6 +67,6 @@ export default defineConfig(({ mode }) => { }, ], }, - plugins: [istanbulPlugin, svgr(), tsconfigPaths()], + plugins: [eslintPlugin(), htmlPlugin(), istanbulPlugin, reactRefresh(), svgr(), tsconfigPaths()], }; });