diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1735b361..06103815 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -4,9 +4,17 @@ on: push
jobs:
build_test:
runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ node-version: ['20.x']
+
steps:
- - uses: actions/checkout@v2
- - run: node -v
+ - uses: actions/checkout@v4
+ - name: Use Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v3
+ with:
+ node-version: ${{ matrix.node-version }}
- name: 🌎 install dependencies
run: npm ci --unsafe-perm && cd apps/front && npm ci --unsafe-perm
diff --git a/.nvmrc b/.nvmrc
index 860cc500..07533ba8 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-v18.17.1
+v20.11
diff --git a/README.md b/README.md
index f701ba8a..736c1541 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
🪜 chersite
-chersite is multi apps structure witch include front static-site generator for cher-ami projects
+chersite is multi apps structure witch include a SPA/SSG/SSR front framework for cher-ami projects.
@@ -30,7 +30,7 @@ Each app has his own `package.json` and `node_modules` folder, we build them sep
### Front app
-The front app is a React static-site generator build with [vite](https://vitejs.dev/), [react](https://reactjs.org/),[typescript](https://www.typescriptlang.org/), and [less](https://lesscss.org/), in order to obtain a static server rendering for best performance. The build step prepare a server script, a prerender script and a SPA version to leave choice of use. This one embeds [@cher-ami/router](https://github.com/cher-ami/router) to manage server static props, routes transitions and languages.
+The front app is a React SPA/SSG/SSR builder, scaffold with [vite](https://vitejs.dev/), [react](https://reactjs.org/),[typescript](https://www.typescriptlang.org/), and [sass](https://sass-lang.com/) with [@cher-ami/router](https://github.com/cher-ami/router) on top.
See the [front app documentation](apps/front/README.md)
@@ -124,25 +124,17 @@ Scaffold a new React component called `MyButton` in [apps/front/src/components](
└── src
└── components
└── myButton
- |── MyButton.module.less
+ |── MyButton.module.scss
└── MyButton.tsx
```
Options are defined from [cli/config.js](cli/config.js):
```js
-bundleType: ["react", "dom"]
+bundleType: ["react"]
componentCompatibleFolders: ["components", "pages"]
```
-### back:scaffold-wp
-
-```shell
-npm run back:scaffold-wp
-```
-
-Scaffold Page, Post type, Option pages for Wordpress.By default, it will create files in `apps/back/web/app/themes/CherAmi/`.
-
## Scripts
### Update app version
diff --git a/apps/front/.env b/apps/front/.env
index 3d069b90..43d78567 100644
--- a/apps/front/.env
+++ b/apps/front/.env
@@ -1,16 +1,25 @@
-### BASE
+# ------------------------------------------------------------------------------ BASE
+
# base start & end with slash: /{base}/
VITE_APP_BASE=/
# protocol for server: http or https (default: http)
PROTOCOL=http
-### DOCKER
+# ------------------------------------------------------------------------------ DOCKER
+
# replace HOST value by your local IP if needed (ex: 192.168.1.52)
HOST=localhost
# fix docker apache port - This value need to be sync with docker compose external port
DOCKER_APACHE_PORT=4321
# docker node port
-DOCKER_NODE_PORT=3000
+DOCKER_NODE_PORT=5173
+
+# ------------------------------------------------------------------------------ PRERENDER
+
+# port used by exe-prerender-server script
+PRERENDER_SERVER_NODE_PORT=1234
+
+# ------------------------------------------------------------------------------ HTACCESS
### BUILD HTACCESS
# Encrypted password
diff --git a/apps/front/.gitignore b/apps/front/.gitignore
index 67be514f..d031b980 100644
--- a/apps/front/.gitignore
+++ b/apps/front/.gitignore
@@ -1,6 +1,4 @@
-# Output application depend of project
dist
-
vendor
.env.local
node_modules
@@ -12,4 +10,5 @@ dist-ssr
*.local
.cache
vite.config.ts.timestamp*
-build-stats.html
+stats.html
+tsconfig.tsbuildinfo
diff --git a/apps/front/.prettierignore b/apps/front/.prettierignore
index aa08923d..ad4ca7fe 100644
--- a/apps/front/.prettierignore
+++ b/apps/front/.prettierignore
@@ -1,4 +1,3 @@
dist
node_modules
-src/mixins/mixins.less
index.html
diff --git a/apps/front/README.md b/apps/front/README.md
index 25195987..a4a8b476 100644
--- a/apps/front/README.md
+++ b/apps/front/README.md
@@ -1,158 +1,118 @@
# Chersite front app
- [About](#about)
+- [Builds](#builds)
+ - [SSR build](#SSR-build)
+ - [SSG build](#SSG-build)
+ - [SPA build](#SPA-build)
- [Entry points](#entry-points)
- [Configuration Files](#configuration-files)
-- [Prerender](#prerender)
- [CLI](#cli)
-- [Vite plugins](#vite-plugins)
- [Setup local SSL](#setup-local-ssl)
-- [Workflow](#workflow)
## About
-This front app is a React static-site generator build in order to obtain a static server rendering for best performance. It run with [vite](https://vitejs.dev/), [react](https://reactjs.org/),[typescript](https://www.typescriptlang.org/), and [less](https://lesscss.org/). The build step prepare a server script, a prerender script and a SPA version to leave choice of use. This one embeds [@cher-ami/router](https://github.com/cher-ami/router) to manage server static props, routes transitions and languages.
+Chersite front app is a React SPA/SSG/SSR framework, built with [vite](https://vitejs.dev/), [react](https://reactjs.org/),[typescript](https://www.typescriptlang.org/), [sass](https://sass-lang.com/) and [@cher-ami/router](https://github.com/cher-ami/router) on the top.
-## Entry points
+## Builds
-Two entry points are set:
+When chersite is built, it automatically creates three types of apps. It allows you to choose to use the one that best suits the type of project.
-- server side [src/server/index-server.tsx](src/server/index-server.tsx)
-- client side [src/index.tsx](src/index.tsx)
+### SSR build
-## Configuration Files
+The SSR app provides a `server.prod.js`, to run on production. The client code will hydrate the server response on the fly.
-Vite's configuration is managed by two main files:
+Output:
-- [vite.config.ts](vite.config.ts): contains the whole vite config [(vite config documentation)](https://vitejs.dev/config/)
-- [vite.scripts.config.ts](vite.scripts.config.ts): contains the whole vite scripts config. It built scripts files relative to the SSR and SSG part.
-- [config/config.js](config/config.js): is the internal paths and tasks config file.
+```
+dist/
+ - ssr/
+ - client/ ← SSR client code
+ - scripts/ ← contains the server.prod.js for stating the SSR app with "npm run start"
+```
-## Prerender
+```shell
+npm run build:ssr && npm run start
+```
+
+### SSG build
-The main goal of this app is to generate a static site. The prerender script is used to generate static html files from the server side.
+chersite front allows to generate a static HTML files with `prerender`.
+the main thinks to consider is, the `prerender` fonction needs to know the list of routes to generate as static html files.
You have to list manually all routes you want to prerender in [prerender/urls.ts](prerender/urls.ts):
```ts
return new Promise((resolve) => {
resolve([
- "/",
- // will generate /work/index.html (because "/work/other-route" exists in the list)
- "/work",
- // will generate /work/first-work.html
- "/work/first-work",
- // duplicate route with lang if the router is configured on this way
- "/fr",
- "/fr/work",
- "/fr/work/first-work",
+ "/", // → /index.html
+ "/work", // → /work/index.html
+ "/work/first" // → /work/first.html
])
})
```
-⚠️ **The front application routing is not dependent to the generated html files, so you can add any route you want in
-this list**. In case you use a backend, you will have to get all routes from a backend API call and add them in this list.
+⚠️ **The front application routing is not linked to the generated html files, so you can add any route you want in
+this list**. In case you use a backend, you will have to get all routes from a backend API call and add them in this list too.
By default, the generate command is executed on build step, but you can run it manually:
```shell
-npm run generate
+npm build:static
```
-## CLI
-
-- [dev](#dev)
-- [build](#build)
-- [generate](#generate)
-
-npm scripts command line interface is available from the main [package.json](./package.json).
-Each script can be executed from `npm run {task}` command.
+Output:
-### dev
-
-```shell
-$ npm run dev
```
-
-Start a dev-server with HMR.
-
-### build
-
-```shell
-$ npm run build
+dist/
+ - static/
+ - client/ ← static page generated client code
+ - scripts/ ← contains prerender.js and exe-server-prerender.js used to execute generate task
```
-Build script in selected [config/config.js](config/config.js) `outDir`
-
-### generate
+### SPA build
-Generate static html files from the server side.
+The single page application can be useful in some case (embedded sites for example) but not the best choice for SEO.
```shell
-npm run generate
+npm run build:spa
```
-## Vite plugins
-
-By default, chersite implement:
-
-plugins:
-
-- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc)
-- [@vitejs/plugin-legacy](https://github.com/vitejs/vite/tree/main/packages/plugin-legacy)
-- [vite-plugin-checker](https://github.com/fi3ework/vite-plugin-checker)
+Output:
-Custom plugins:
-
-- [vite-plugin-build-dotenv.ts](config/vite-plugins/vite-plugin-build-dotenv.ts)
-- [vite-plugin-build-htaccess.ts](config/vite-plugins/vite-plugin-build-htaccess.ts)
-
-### Vite plugin build dotenv
-
-[vite-plugin-build-dotenv.ts](config/vite-plugins/vite-plugin-build-dotenv.ts)
-fields the need to expose, in a `.env` file, external environment variables injected into
-process.env by the CI or another task; In addition to the .env files corresponding to the current
-[mode](https://vitejs.dev/guide/env-and-mode.html).
-Once a new file is composed, it is copied to the selected folder(s).
+```
+dist/
+ - spa/ ← single page application
+```
-.env out directory(ies) array is defined from [config/config.js](config/config.js):
+## Entry points
-```js
-buildDotenvOutDir: [resolve("dist/")]
-```
+There is two entry points on the app. Both can be edited, depends of usage
-This plugin is mandatory for the use of the default cher-site config with the PHP micro framework.
+- server side [src/index-server.tsx](src/index-server.tsx): Contains the root tree of the application.
+- client side [src/index-client.tsx](src/index-client.tsx): Contains the client root app witch hydrate the server-side DOM rendering, or create a new root for SPA.
-### Vite plugin build htaccess
+## Configuration Files
-[vite-plugin-build-htaccess.ts](config/vite-plugins/vite-plugin-build-htaccess.ts)
-will copy an .htaccess template in a selected directory.
+Vite's configuration is managed by:
-Options are available in [.env](.env):
+- [vite.config.ts](vite.config.ts): contains the whole vite config [(vite config documentation)](https://vitejs.dev/config/)
+- [vite.ssr-scripts.config.ts](vite.ssr-scripts.config.ts): contains the whole vite scripts config. It built scripts files relative to the SSR.
+- [vite.static-scripts.config.ts](vite.static-scripts.config.ts): contains the whole vite scripts config. It built scripts files relative to the static generator.
+- [config/config.js](config/config.js): contains the internal paths.
-This plugin can scaffold a `.htpasswd` linked to the generated `.htaccess` file.
-It's useful to add password on specific environment deployment.
+## CLI
-```.dotenv
-# Buid .htaccess file from template
-BUILD_HTACCESS=true
-# Build .htpasswd allow to create htaccess password to specific domaine
-HTACCESS_ENABLE_AUTH=false
-# Plain text user. ex: "staging"
-HTACCESS_AUTH_USER=
-# Encrypted password @generator: https://www.web2generators.com/apache-tools/htpasswd-generator
-HTACCESS_AUTH_PASSWORD=
-# ex: "var/www/"
-HTACCESS_SERVER_WEB_ROOT_PATH=
-# Redirect http to https
-HTACCESS_ENABLE_HTTPS_REDIRECTION=false
-```
+npm scripts command line interface is available from the main [package.json](./package.json)
-Second part of the configuration is defined from [config/config.js](config/config.js):
+`npm run ...`:
-```js
-htaccessTemplateFilePath: resolve("src/.htaccess")
-```
+- `dev` - start dev-server
+- `build:spa` - build spa website type
+- `build:ssr` - build SSR website type
+- `build:static` - build static website type
+- `build` - build all website's types
+- `start` - run the SSR prod server
## Setup local SSL
@@ -174,74 +134,7 @@ htaccessTemplateFilePath: resolve("src/.htaccess")
PROTOCOL=https
```
-When you run `npm run dev`, you should see the app running on https://localhost:3000
-
-## Workflow
-
-### CSS workflow
-
-[Less](http://lesscss.org/) is used as css preprocessor. It can be set as `.less` file or `.module.less` for css module;
-Both works by default.
-
-[BEM methodology](http://getbem.com) is used to organize the integration of our templates and components
-but have some differences depend on the use-case:
-
-### BEM for `.module.less`
-
-```less
-/**
- * BEM block is always "root" className
- */
-.root {
-}
-/**
- * BEM element (.camelCase)
- */
-.myButton {
- /**
- * BEM modifier (&_camelCase)
- * sep with "_" allows to target it from template like this: "css.myButton_myModifier"
- */
- &_red {
- }
-}
-```
-
-### BEM for `.less`
-
-```less
-/**
- * BEM block (.PascalCase)
- */
-.Component {
- /**
- * BEM element (.camelCase)
- usage: "Component_myElement"
- */
- &_myElement {
- /**
- * BEM modifier (&_camelCase)
- * sep with "_" allows to target it from template
- * usage: "Component_myElement-myModifier"
- */
- &-red {
- }
- }
-}
-```
-
-### Less Mixins
-
-In order to export fonts, variables and mixins to each style files, each `.module.less` and `.less`
-files contains as reference the same file:
-
-```less
-@import (reference) "src/references.less";
-```
-
-This file import "as reference" variables and mixins files who come from
-[src/fonts](src/fonts), [src/atoms](src/atoms) and [src/mixins](src/mixins). If a new mixin file is create,
-it will be added in [src/references](src/references).
+When you run `npm run dev`, you should see the app running on https://localhost:5173
## Credits
diff --git a/apps/front/config/config.js b/apps/front/config/config.js
index 394da735..14e2151e 100644
--- a/apps/front/config/config.js
+++ b/apps/front/config/config.js
@@ -9,16 +9,18 @@ export default {
// outDir: where files are built
// If this value is change, add this new path in .gitignore
outDir: resolve("dist"),
- outDirScripts: resolve("dist/_scripts"),
- outDirClient: resolve("dist/client"),
- outDirServer: resolve("dist/server"),
- outDirStatic: resolve("dist/static"),
+ outDirSsrScripts: resolve("dist/ssr/scripts"),
+ outDirSsrServer: resolve("dist/ssr/server"),
+ outDirSsrClient: resolve("dist/ssr/client"),
+ outDirSpa: resolve("dist/spa"),
+ outDirStaticClient: resolve("dist/static/client"),
+ outDirStaticScripts: resolve("dist/static/scripts"),
// Input entry files array
// Set the relative paths, don't resolve them.
// This config is used only if the index is not generated by vite
input: [
- // "src/index.tsx",
+ // "src/index-client.tsx",
],
// Build dotenv outDir array
@@ -30,5 +32,5 @@ export default {
// Build htaccess
htaccessTemplateFilePath: resolve(
"config/tasks/build-htaccess/templates/.htaccess.template"
- ),
+ )
}
diff --git a/apps/front/config/tasks/build-htaccess/build-htaccess.js b/apps/front/config/tasks/build-htaccess/build-htaccess.js
index 776cd9fa..4c9d2b40 100644
--- a/apps/front/config/tasks/build-htaccess/build-htaccess.js
+++ b/apps/front/config/tasks/build-htaccess/build-htaccess.js
@@ -39,7 +39,7 @@ const _createHtpasswdFile = async ({ outputPath, user, password }) => {
log("create htpasswd file", {
outputPath,
user,
- password,
+ password
})
if (!outputPath || !user || !password) {
@@ -74,7 +74,7 @@ const _htpasswdLinkInHtaccess = async ({ newHtaccessFilePath, serverWebRootPath
AuthType Basic
AuthName "Restricted Area"
Require valid-user
- `,
+ `
]
.join("\n")
.replace(/ +/g, "")
@@ -90,14 +90,14 @@ const _htpasswdLinkInHtaccess = async ({ newHtaccessFilePath, serverWebRootPath
*/
const _rewriteHttpToHttpsInHtaccess = async (newHtaccessFilePath) => {
debug("rewrite http to https in htaccess", {
- newHtaccessFilePath,
+ newHtaccessFilePath
})
const template = [
`# Force http to https
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
- `,
+ `
]
.join("\n")
.replace(/ +/g, "")
@@ -115,12 +115,12 @@ export default async ({
user,
password,
outputPath,
- htaccessTemplatePath,
+ htaccessTemplatePath
}) => {
// create htaccess file and get returned newHtaccessFilePath
const newHtaccessFilePath = await _createHtaccessFile({
outputPath,
- htaccessTemplatePath,
+ htaccessTemplatePath
})
if (!newHtaccessFilePath) return
diff --git a/apps/front/config/vite-plugins/vite-chersite-custom-logger.ts b/apps/front/config/vite-plugins/vite-chersite-custom-logger.ts
index 3e8fe2c1..536df0b2 100644
--- a/apps/front/config/vite-plugins/vite-chersite-custom-logger.ts
+++ b/apps/front/config/vite-plugins/vite-chersite-custom-logger.ts
@@ -6,7 +6,7 @@ export const viteChersiteCustomLogger = ({
protocol,
host,
port,
- base,
+ base
}: {
protocol: "http" | "https"
host: string
diff --git a/apps/front/config/vite-plugins/vite-plugin-build-dotenv.ts b/apps/front/config/vite-plugins/vite-plugin-build-dotenv.ts
index 270ed540..0321d12d 100644
--- a/apps/front/config/vite-plugins/vite-plugin-build-dotenv.ts
+++ b/apps/front/config/vite-plugins/vite-plugin-build-dotenv.ts
@@ -4,7 +4,7 @@ import buildDotenv from "../tasks/build-dotenv/build-dotenv"
export default function buildDotenvPlugin({
envVars = process.env,
dotenvOutDir,
- additionalVarKeys,
+ additionalVarKeys
}: {
envVars: { [x: string]: any }
dotenvOutDir: string[]
@@ -14,6 +14,6 @@ export default function buildDotenvPlugin({
name: "vite-plugin-dotenv",
buildStart: async () => {
await buildDotenv({ envVars, dotenvOutDir, additionalVarKeys })
- },
+ }
}
}
diff --git a/apps/front/config/vite-plugins/vite-plugin-build-htaccess.ts b/apps/front/config/vite-plugins/vite-plugin-build-htaccess.ts
index db327387..92756aa7 100644
--- a/apps/front/config/vite-plugins/vite-plugin-build-htaccess.ts
+++ b/apps/front/config/vite-plugins/vite-plugin-build-htaccess.ts
@@ -7,7 +7,7 @@ export default function buildHtaccessPlugin({
serverWebRootPath,
htaccessTemplatePath,
outputPath,
- enable,
+ enable
}: {
user: string | undefined
password: string | undefined
@@ -29,8 +29,8 @@ export default function buildHtaccessPlugin({
serverWebRootPath,
password,
htaccessTemplatePath,
- outputPath,
+ outputPath
})
- },
+ }
}
}
diff --git a/apps/front/config/vite-plugins/vite-plugin-html.js b/apps/front/config/vite-plugins/vite-plugin-html.js
index 65aeea7f..64825bd7 100644
--- a/apps/front/config/vite-plugins/vite-plugin-html.js
+++ b/apps/front/config/vite-plugins/vite-plugin-html.js
@@ -3,6 +3,6 @@ export default function htmlPlugin(env) {
name: "html-transform",
transformIndexHtml(html) {
return html.replace(//gm, `${env.VITE_APP_URL}`)
- },
+ }
}
}
diff --git a/apps/front/index.html b/apps/front/index.html
index 38246121..5daa4819 100644
--- a/apps/front/index.html
+++ b/apps/front/index.html
@@ -1,4 +1,4 @@
-
+
@@ -11,6 +11,6 @@
-
+
diff --git a/apps/front/package-lock.json b/apps/front/package-lock.json
index e97ca71b..91f2d189 100644
--- a/apps/front/package-lock.json
+++ b/apps/front/package-lock.json
@@ -10,7 +10,7 @@
"dependencies": {
"@cher-ami/css-flat": "^1.0.1",
"@cher-ami/debug": "^1.2.0",
- "@cher-ami/router": "^3.4.0",
+ "@cher-ami/router": "^3.5.0",
"@cher-ami/utils": "^1.4.1",
"cross-fetch": "^4.0.0",
"history": "^5.3.0",
@@ -19,28 +19,31 @@
},
"devDependencies": {
"@cher-ami/mfs": "^0.2.0",
- "@types/events": "^3.0.2",
- "@types/node": "^20.8.10",
- "@types/react": "^18.2.34",
- "@types/react-dom": "^18.2.14",
- "@vitejs/plugin-legacy": "^4.1.1",
- "@vitejs/plugin-react-swc": "^3.4.1",
- "autoprefixer": "^10.4.16",
+ "@types/events": "^3.0.3",
+ "@types/node": "^20.11.16",
+ "@types/react": "^18.2.55",
+ "@types/react-dom": "^18.2.18",
+ "@vitejs/plugin-legacy": "^5.3.0",
+ "@vitejs/plugin-react-swc": "^3.6.0",
+ "autoprefixer": "^10.4.17",
"chalk": "^5.3.0",
"compression": "^1.7.4",
+ "cross-env": "^7.0.3",
"express": "^4.18.2",
- "husky": "^8.0.3",
+ "husky": "^9.0.10",
"ip": "^1.1.8",
- "less": "^4.2.0",
"portfinder-sync": "^0.0.2",
- "rollup-plugin-visualizer": "^5.9.2",
- "terser": "^5.24.0",
- "typescript": "^5.2.2",
- "vite": "^4.5.0",
- "vite-plugin-checker": "^0.6.2",
- "vitest": "^0.34.6"
+ "rollup-plugin-visualizer": "^5.12.0",
+ "sass": "^1.70.0",
+ "sirv": "^2.0.4",
+ "terser": "^5.27.0",
+ "typescript": "^5.3.3",
+ "vite": "^5.0.12",
+ "vite-plugin-checker": "^0.6.4",
+ "vitest": "^1.2.2"
},
"optionalDependencies": {
+ "@rollup/rollup-linux-x64-gnu": "4.6.1",
"esbuild-android-arm64": "^0.15.18",
"fsevents": "^2.3.3"
}
@@ -59,12 +62,12 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.22.13",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
- "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
"dev": true,
"dependencies": {
- "@babel/highlight": "^7.22.13",
+ "@babel/highlight": "^7.23.4",
"chalk": "^2.4.2"
},
"engines": {
@@ -98,30 +101,30 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz",
- "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
+ "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz",
- "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz",
+ "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
"dev": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.13",
- "@babel/generator": "^7.23.0",
- "@babel/helper-compilation-targets": "^7.22.15",
- "@babel/helper-module-transforms": "^7.23.0",
- "@babel/helpers": "^7.23.2",
- "@babel/parser": "^7.23.0",
- "@babel/template": "^7.22.15",
- "@babel/traverse": "^7.23.2",
- "@babel/types": "^7.23.0",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helpers": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -137,12 +140,12 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
- "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
+ "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.23.0",
+ "@babel/types": "^7.23.6",
"@jridgewell/gen-mapping": "^0.3.2",
"@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1"
@@ -176,14 +179,14 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz",
- "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==",
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+ "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
"dev": true,
"dependencies": {
- "@babel/compat-data": "^7.22.9",
- "@babel/helper-validator-option": "^7.22.15",
- "browserslist": "^4.21.9",
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "browserslist": "^4.22.2",
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
},
@@ -192,17 +195,17 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz",
- "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==",
+ "version": "7.23.10",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz",
+ "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==",
"dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-member-expression-to-functions": "^7.23.0",
"@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.9",
+ "@babel/helper-replace-supers": "^7.22.20",
"@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.22.6",
"semver": "^6.3.1"
@@ -232,9 +235,9 @@
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz",
- "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz",
+ "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==",
"dev": true,
"dependencies": {
"@babel/helper-compilation-targets": "^7.22.6",
@@ -306,9 +309,9 @@
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz",
- "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
"dev": true,
"dependencies": {
"@babel/helper-environment-visitor": "^7.22.20",
@@ -416,9 +419,9 @@
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
@@ -434,9 +437,9 @@
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz",
- "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
"dev": true,
"engines": {
"node": ">=6.9.0"
@@ -457,23 +460,23 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz",
- "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz",
+ "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
"dev": true,
"dependencies": {
- "@babel/template": "^7.22.15",
- "@babel/traverse": "^7.23.2",
- "@babel/types": "^7.23.0"
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
- "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
"dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.22.20",
@@ -511,9 +514,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
- "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
+ "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@@ -523,9 +526,9 @@
}
},
"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz",
- "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz",
+ "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -538,14 +541,14 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz",
- "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz",
+ "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-transform-optional-chaining": "^7.22.15"
+ "@babel/plugin-transform-optional-chaining": "^7.23.3"
},
"engines": {
"node": ">=6.9.0"
@@ -554,6 +557,22 @@
"@babel/core": "^7.13.0"
}
},
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+ "version": "7.23.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz",
+ "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
"node_modules/@babel/plugin-proposal-private-property-in-object": {
"version": "7.21.0-placeholder-for-preset-env.2",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
@@ -630,9 +649,9 @@
}
},
"node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz",
- "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz",
+ "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -645,9 +664,9 @@
}
},
"node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz",
- "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz",
+ "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -802,9 +821,9 @@
}
},
"node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz",
- "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz",
+ "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -817,9 +836,9 @@
}
},
"node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz",
- "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz",
+ "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==",
"dev": true,
"dependencies": {
"@babel/helper-environment-visitor": "^7.22.20",
@@ -835,14 +854,14 @@
}
},
"node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz",
- "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz",
+ "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==",
"dev": true,
"dependencies": {
- "@babel/helper-module-imports": "^7.22.5",
+ "@babel/helper-module-imports": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.5"
+ "@babel/helper-remap-async-to-generator": "^7.22.20"
},
"engines": {
"node": ">=6.9.0"
@@ -852,9 +871,9 @@
}
},
"node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz",
- "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz",
+ "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -867,9 +886,9 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz",
- "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz",
+ "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -882,12 +901,12 @@
}
},
"node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz",
- "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz",
+ "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==",
"dev": true,
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -898,12 +917,12 @@
}
},
"node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz",
- "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz",
+ "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==",
"dev": true,
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.11",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
},
@@ -915,18 +934,17 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz",
- "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==",
+ "version": "7.23.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz",
+ "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==",
"dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.15",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
"@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.9",
+ "@babel/helper-replace-supers": "^7.22.20",
"@babel/helper-split-export-declaration": "^7.22.6",
"globals": "^11.1.0"
},
@@ -938,13 +956,13 @@
}
},
"node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz",
- "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz",
+ "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
- "@babel/template": "^7.22.5"
+ "@babel/template": "^7.22.15"
},
"engines": {
"node": ">=6.9.0"
@@ -954,9 +972,9 @@
}
},
"node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz",
- "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz",
+ "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -969,12 +987,12 @@
}
},
"node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz",
- "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz",
+ "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==",
"dev": true,
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -985,9 +1003,9 @@
}
},
"node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz",
- "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz",
+ "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1000,9 +1018,9 @@
}
},
"node_modules/@babel/plugin-transform-dynamic-import": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz",
- "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz",
+ "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1016,12 +1034,12 @@
}
},
"node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz",
- "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz",
+ "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==",
"dev": true,
"dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5",
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1032,9 +1050,9 @@
}
},
"node_modules/@babel/plugin-transform-export-namespace-from": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz",
- "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz",
+ "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1048,12 +1066,13 @@
}
},
"node_modules/@babel/plugin-transform-for-of": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz",
- "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==",
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz",
+ "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1063,13 +1082,13 @@
}
},
"node_modules/@babel/plugin-transform-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz",
- "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz",
+ "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==",
"dev": true,
"dependencies": {
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-function-name": "^7.23.0",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1080,9 +1099,9 @@
}
},
"node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz",
- "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz",
+ "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1096,9 +1115,9 @@
}
},
"node_modules/@babel/plugin-transform-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz",
- "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz",
+ "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1111,9 +1130,9 @@
}
},
"node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz",
- "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz",
+ "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1127,9 +1146,9 @@
}
},
"node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz",
- "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz",
+ "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1142,12 +1161,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz",
- "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz",
+ "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==",
"dev": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helper-module-transforms": "^7.23.3",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1158,12 +1177,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz",
- "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz",
+ "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==",
"dev": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helper-module-transforms": "^7.23.3",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-simple-access": "^7.22.5"
},
@@ -1175,13 +1194,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz",
- "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz",
+ "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==",
"dev": true,
"dependencies": {
"@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-module-transforms": "^7.23.0",
+ "@babel/helper-module-transforms": "^7.23.3",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-validator-identifier": "^7.22.20"
},
@@ -1193,12 +1212,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz",
- "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz",
+ "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==",
"dev": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.22.5",
+ "@babel/helper-module-transforms": "^7.23.3",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1225,9 +1244,9 @@
}
},
"node_modules/@babel/plugin-transform-new-target": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz",
- "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz",
+ "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1240,9 +1259,9 @@
}
},
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz",
- "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz",
+ "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1256,9 +1275,9 @@
}
},
"node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz",
- "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz",
+ "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1272,16 +1291,16 @@
}
},
"node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz",
- "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz",
+ "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==",
"dev": true,
"dependencies": {
- "@babel/compat-data": "^7.22.9",
+ "@babel/compat-data": "^7.23.3",
"@babel/helper-compilation-targets": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.22.15"
+ "@babel/plugin-transform-parameters": "^7.23.3"
},
"engines": {
"node": ">=6.9.0"
@@ -1291,13 +1310,13 @@
}
},
"node_modules/@babel/plugin-transform-object-super": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz",
- "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz",
+ "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5"
+ "@babel/helper-replace-supers": "^7.22.20"
},
"engines": {
"node": ">=6.9.0"
@@ -1307,9 +1326,9 @@
}
},
"node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz",
- "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz",
+ "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1323,9 +1342,9 @@
}
},
"node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz",
- "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz",
+ "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1340,9 +1359,9 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz",
- "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz",
+ "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1355,12 +1374,12 @@
}
},
"node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz",
- "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz",
+ "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==",
"dev": true,
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1371,13 +1390,13 @@
}
},
"node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz",
- "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz",
+ "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==",
"dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-create-class-features-plugin": "^7.22.11",
+ "@babel/helper-create-class-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
},
@@ -1389,9 +1408,9 @@
}
},
"node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz",
- "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz",
+ "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1404,9 +1423,9 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz",
- "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz",
+ "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1420,9 +1439,9 @@
}
},
"node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz",
- "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz",
+ "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1435,9 +1454,9 @@
}
},
"node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz",
- "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz",
+ "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1450,9 +1469,9 @@
}
},
"node_modules/@babel/plugin-transform-spread": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz",
- "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz",
+ "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
@@ -1466,9 +1485,9 @@
}
},
"node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz",
- "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz",
+ "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1481,9 +1500,9 @@
}
},
"node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz",
- "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz",
+ "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1496,9 +1515,9 @@
}
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz",
- "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz",
+ "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1511,9 +1530,9 @@
}
},
"node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz",
- "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz",
+ "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -1526,12 +1545,12 @@
}
},
"node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz",
- "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz",
+ "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==",
"dev": true,
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1542,12 +1561,12 @@
}
},
"node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz",
- "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz",
+ "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==",
"dev": true,
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1558,12 +1577,12 @@
}
},
"node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz",
- "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz",
+ "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==",
"dev": true,
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-create-regexp-features-plugin": "^7.22.15",
"@babel/helper-plugin-utils": "^7.22.5"
},
"engines": {
@@ -1574,25 +1593,26 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz",
- "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz",
+ "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==",
"dev": true,
"dependencies": {
- "@babel/compat-data": "^7.23.2",
- "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
"@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.15",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15",
+ "@babel/helper-validator-option": "^7.23.5",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7",
"@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
"@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.22.5",
- "@babel/plugin-syntax-import-attributes": "^7.22.5",
+ "@babel/plugin-syntax-import-assertions": "^7.23.3",
+ "@babel/plugin-syntax-import-attributes": "^7.23.3",
"@babel/plugin-syntax-import-meta": "^7.10.4",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
@@ -1604,59 +1624,58 @@
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5",
"@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
- "@babel/plugin-transform-arrow-functions": "^7.22.5",
- "@babel/plugin-transform-async-generator-functions": "^7.23.2",
- "@babel/plugin-transform-async-to-generator": "^7.22.5",
- "@babel/plugin-transform-block-scoped-functions": "^7.22.5",
- "@babel/plugin-transform-block-scoping": "^7.23.0",
- "@babel/plugin-transform-class-properties": "^7.22.5",
- "@babel/plugin-transform-class-static-block": "^7.22.11",
- "@babel/plugin-transform-classes": "^7.22.15",
- "@babel/plugin-transform-computed-properties": "^7.22.5",
- "@babel/plugin-transform-destructuring": "^7.23.0",
- "@babel/plugin-transform-dotall-regex": "^7.22.5",
- "@babel/plugin-transform-duplicate-keys": "^7.22.5",
- "@babel/plugin-transform-dynamic-import": "^7.22.11",
- "@babel/plugin-transform-exponentiation-operator": "^7.22.5",
- "@babel/plugin-transform-export-namespace-from": "^7.22.11",
- "@babel/plugin-transform-for-of": "^7.22.15",
- "@babel/plugin-transform-function-name": "^7.22.5",
- "@babel/plugin-transform-json-strings": "^7.22.11",
- "@babel/plugin-transform-literals": "^7.22.5",
- "@babel/plugin-transform-logical-assignment-operators": "^7.22.11",
- "@babel/plugin-transform-member-expression-literals": "^7.22.5",
- "@babel/plugin-transform-modules-amd": "^7.23.0",
- "@babel/plugin-transform-modules-commonjs": "^7.23.0",
- "@babel/plugin-transform-modules-systemjs": "^7.23.0",
- "@babel/plugin-transform-modules-umd": "^7.22.5",
+ "@babel/plugin-transform-arrow-functions": "^7.23.3",
+ "@babel/plugin-transform-async-generator-functions": "^7.23.9",
+ "@babel/plugin-transform-async-to-generator": "^7.23.3",
+ "@babel/plugin-transform-block-scoped-functions": "^7.23.3",
+ "@babel/plugin-transform-block-scoping": "^7.23.4",
+ "@babel/plugin-transform-class-properties": "^7.23.3",
+ "@babel/plugin-transform-class-static-block": "^7.23.4",
+ "@babel/plugin-transform-classes": "^7.23.8",
+ "@babel/plugin-transform-computed-properties": "^7.23.3",
+ "@babel/plugin-transform-destructuring": "^7.23.3",
+ "@babel/plugin-transform-dotall-regex": "^7.23.3",
+ "@babel/plugin-transform-duplicate-keys": "^7.23.3",
+ "@babel/plugin-transform-dynamic-import": "^7.23.4",
+ "@babel/plugin-transform-exponentiation-operator": "^7.23.3",
+ "@babel/plugin-transform-export-namespace-from": "^7.23.4",
+ "@babel/plugin-transform-for-of": "^7.23.6",
+ "@babel/plugin-transform-function-name": "^7.23.3",
+ "@babel/plugin-transform-json-strings": "^7.23.4",
+ "@babel/plugin-transform-literals": "^7.23.3",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.23.4",
+ "@babel/plugin-transform-member-expression-literals": "^7.23.3",
+ "@babel/plugin-transform-modules-amd": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.23.3",
+ "@babel/plugin-transform-modules-systemjs": "^7.23.9",
+ "@babel/plugin-transform-modules-umd": "^7.23.3",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
- "@babel/plugin-transform-new-target": "^7.22.5",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11",
- "@babel/plugin-transform-numeric-separator": "^7.22.11",
- "@babel/plugin-transform-object-rest-spread": "^7.22.15",
- "@babel/plugin-transform-object-super": "^7.22.5",
- "@babel/plugin-transform-optional-catch-binding": "^7.22.11",
- "@babel/plugin-transform-optional-chaining": "^7.23.0",
- "@babel/plugin-transform-parameters": "^7.22.15",
- "@babel/plugin-transform-private-methods": "^7.22.5",
- "@babel/plugin-transform-private-property-in-object": "^7.22.11",
- "@babel/plugin-transform-property-literals": "^7.22.5",
- "@babel/plugin-transform-regenerator": "^7.22.10",
- "@babel/plugin-transform-reserved-words": "^7.22.5",
- "@babel/plugin-transform-shorthand-properties": "^7.22.5",
- "@babel/plugin-transform-spread": "^7.22.5",
- "@babel/plugin-transform-sticky-regex": "^7.22.5",
- "@babel/plugin-transform-template-literals": "^7.22.5",
- "@babel/plugin-transform-typeof-symbol": "^7.22.5",
- "@babel/plugin-transform-unicode-escapes": "^7.22.10",
- "@babel/plugin-transform-unicode-property-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-sets-regex": "^7.22.5",
+ "@babel/plugin-transform-new-target": "^7.23.3",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4",
+ "@babel/plugin-transform-numeric-separator": "^7.23.4",
+ "@babel/plugin-transform-object-rest-spread": "^7.23.4",
+ "@babel/plugin-transform-object-super": "^7.23.3",
+ "@babel/plugin-transform-optional-catch-binding": "^7.23.4",
+ "@babel/plugin-transform-optional-chaining": "^7.23.4",
+ "@babel/plugin-transform-parameters": "^7.23.3",
+ "@babel/plugin-transform-private-methods": "^7.23.3",
+ "@babel/plugin-transform-private-property-in-object": "^7.23.4",
+ "@babel/plugin-transform-property-literals": "^7.23.3",
+ "@babel/plugin-transform-regenerator": "^7.23.3",
+ "@babel/plugin-transform-reserved-words": "^7.23.3",
+ "@babel/plugin-transform-shorthand-properties": "^7.23.3",
+ "@babel/plugin-transform-spread": "^7.23.3",
+ "@babel/plugin-transform-sticky-regex": "^7.23.3",
+ "@babel/plugin-transform-template-literals": "^7.23.3",
+ "@babel/plugin-transform-typeof-symbol": "^7.23.3",
+ "@babel/plugin-transform-unicode-escapes": "^7.23.3",
+ "@babel/plugin-transform-unicode-property-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-regex": "^7.23.3",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.23.3",
"@babel/preset-modules": "0.1.6-no-external-plugins",
- "@babel/types": "^7.23.0",
- "babel-plugin-polyfill-corejs2": "^0.4.6",
- "babel-plugin-polyfill-corejs3": "^0.8.5",
- "babel-plugin-polyfill-regenerator": "^0.5.3",
+ "babel-plugin-polyfill-corejs2": "^0.4.8",
+ "babel-plugin-polyfill-corejs3": "^0.9.0",
+ "babel-plugin-polyfill-regenerator": "^0.5.5",
"core-js-compat": "^3.31.0",
"semver": "^6.3.1"
},
@@ -1688,9 +1707,9 @@
"dev": true
},
"node_modules/@babel/runtime": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz",
- "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz",
+ "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -1698,40 +1717,35 @@
"node": ">=6.9.0"
}
},
- "node_modules/@babel/runtime/node_modules/regenerator-runtime": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
- "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
- },
"node_modules/@babel/template": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
- "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz",
+ "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.22.13",
- "@babel/parser": "^7.22.15",
- "@babel/types": "^7.22.15"
+ "@babel/code-frame": "^7.23.5",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
- "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz",
+ "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.22.13",
- "@babel/generator": "^7.23.0",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
"@babel/helper-environment-visitor": "^7.22.20",
"@babel/helper-function-name": "^7.23.0",
"@babel/helper-hoist-variables": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.23.0",
- "@babel/types": "^7.23.0",
- "debug": "^4.1.0",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "debug": "^4.3.1",
"globals": "^11.1.0"
},
"engines": {
@@ -1739,12 +1753,12 @@
}
},
"node_modules/@babel/types": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
- "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz",
+ "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
"dev": true,
"dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
+ "@babel/helper-string-parser": "^7.23.4",
"@babel/helper-validator-identifier": "^7.22.20",
"to-fast-properties": "^2.0.0"
},
@@ -1772,9 +1786,9 @@
}
},
"node_modules/@cher-ami/router": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/@cher-ami/router/-/router-3.4.0.tgz",
- "integrity": "sha512-nd/gqlyaTFYPCrA4wnljXQ0yDajhu7/PA3r6gwQCKwDA4gnfY6KUvz9uzN609h2opFivjUzS/3EUBCgUUkEUag==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/@cher-ami/router/-/router-3.5.0.tgz",
+ "integrity": "sha512-c8aU0oDpZE6MTWdvyjZTE0zSBcRPYyWAYFXa52UqccAcua6GMUgfBbZt07KT9kOlyk508R1nVj4RJ1CxuPK4vQ==",
"dependencies": {
"@cher-ami/debug": "^1.2.0",
"history": "^5.3.0",
@@ -1792,10 +1806,26 @@
"resolved": "https://registry.npmjs.org/@cher-ami/utils/-/utils-1.4.1.tgz",
"integrity": "sha512-4FE2ais6TduClhDpOaBCSbwPyJz4iV8za1MDCFKfQ3gU4r3jyQJHiNinjKMvMTwNvytdfM1+NF4xGT4uBdEwZA=="
},
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz",
+ "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/@esbuild/android-arm": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
- "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz",
+ "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==",
"cpu": [
"arm"
],
@@ -1809,9 +1839,9 @@
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
- "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz",
+ "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==",
"cpu": [
"arm64"
],
@@ -1825,9 +1855,9 @@
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
- "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz",
+ "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==",
"cpu": [
"x64"
],
@@ -1841,9 +1871,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
- "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz",
+ "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==",
"cpu": [
"arm64"
],
@@ -1857,9 +1887,9 @@
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
- "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz",
+ "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==",
"cpu": [
"x64"
],
@@ -1873,9 +1903,9 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
- "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz",
+ "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==",
"cpu": [
"arm64"
],
@@ -1889,9 +1919,9 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
- "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz",
+ "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==",
"cpu": [
"x64"
],
@@ -1905,9 +1935,9 @@
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
- "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz",
+ "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==",
"cpu": [
"arm"
],
@@ -1921,9 +1951,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
- "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz",
+ "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==",
"cpu": [
"arm64"
],
@@ -1937,9 +1967,9 @@
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
- "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz",
+ "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==",
"cpu": [
"ia32"
],
@@ -1953,9 +1983,9 @@
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
- "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz",
+ "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==",
"cpu": [
"loong64"
],
@@ -1969,9 +1999,9 @@
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
- "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz",
+ "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==",
"cpu": [
"mips64el"
],
@@ -1985,9 +2015,9 @@
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
- "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz",
+ "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==",
"cpu": [
"ppc64"
],
@@ -2001,9 +2031,9 @@
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
- "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz",
+ "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==",
"cpu": [
"riscv64"
],
@@ -2017,9 +2047,9 @@
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
- "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz",
+ "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==",
"cpu": [
"s390x"
],
@@ -2033,9 +2063,9 @@
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
- "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz",
+ "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==",
"cpu": [
"x64"
],
@@ -2049,9 +2079,9 @@
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
- "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz",
+ "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==",
"cpu": [
"x64"
],
@@ -2065,9 +2095,9 @@
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
- "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz",
+ "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==",
"cpu": [
"x64"
],
@@ -2081,9 +2111,9 @@
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
- "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz",
+ "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==",
"cpu": [
"x64"
],
@@ -2097,9 +2127,9 @@
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
- "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz",
+ "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==",
"cpu": [
"arm64"
],
@@ -2113,9 +2143,9 @@
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
- "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz",
+ "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==",
"cpu": [
"ia32"
],
@@ -2129,9 +2159,9 @@
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
- "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz",
+ "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==",
"cpu": [
"x64"
],
@@ -2205,9 +2235,9 @@
"dev": true
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.20",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
- "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
+ "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
"dev": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
@@ -2249,6 +2279,180 @@
"node": ">= 8"
}
},
+ "node_modules/@polka/url": {
+ "version": "1.0.0-next.24",
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz",
+ "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==",
+ "dev": true
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz",
+ "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz",
+ "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz",
+ "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz",
+ "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz",
+ "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz",
+ "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz",
+ "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz",
+ "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.1.tgz",
+ "integrity": "sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz",
+ "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz",
+ "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz",
+ "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz",
+ "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@@ -2256,9 +2460,9 @@
"dev": true
},
"node_modules/@swc/core": {
- "version": "1.3.95",
- "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.95.tgz",
- "integrity": "sha512-PMrNeuqIusq9DPDooV3FfNEbZuTu5jKAc04N3Hm6Uk2Fl49cqElLFQ4xvl4qDmVDz97n3n/C1RE0/f6WyGPEiA==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.4.0.tgz",
+ "integrity": "sha512-wc5DMI5BJftnK0Fyx9SNJKkA0+BZSJQx8430yutWmsILkHMBD3Yd9GhlMaxasab9RhgKqZp7Ht30hUYO5ZDvQg==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
@@ -2273,16 +2477,16 @@
"url": "https://opencollective.com/swc"
},
"optionalDependencies": {
- "@swc/core-darwin-arm64": "1.3.95",
- "@swc/core-darwin-x64": "1.3.95",
- "@swc/core-linux-arm-gnueabihf": "1.3.95",
- "@swc/core-linux-arm64-gnu": "1.3.95",
- "@swc/core-linux-arm64-musl": "1.3.95",
- "@swc/core-linux-x64-gnu": "1.3.95",
- "@swc/core-linux-x64-musl": "1.3.95",
- "@swc/core-win32-arm64-msvc": "1.3.95",
- "@swc/core-win32-ia32-msvc": "1.3.95",
- "@swc/core-win32-x64-msvc": "1.3.95"
+ "@swc/core-darwin-arm64": "1.4.0",
+ "@swc/core-darwin-x64": "1.4.0",
+ "@swc/core-linux-arm-gnueabihf": "1.4.0",
+ "@swc/core-linux-arm64-gnu": "1.4.0",
+ "@swc/core-linux-arm64-musl": "1.4.0",
+ "@swc/core-linux-x64-gnu": "1.4.0",
+ "@swc/core-linux-x64-musl": "1.4.0",
+ "@swc/core-win32-arm64-msvc": "1.4.0",
+ "@swc/core-win32-ia32-msvc": "1.4.0",
+ "@swc/core-win32-x64-msvc": "1.4.0"
},
"peerDependencies": {
"@swc/helpers": "^0.5.0"
@@ -2294,9 +2498,9 @@
}
},
"node_modules/@swc/core-darwin-arm64": {
- "version": "1.3.95",
- "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.95.tgz",
- "integrity": "sha512-VAuBAP3MNetO/yBIBzvorUXq7lUBwhfpJxYViSxyluMwtoQDhE/XWN598TWMwMl1ZuImb56d7eUsuFdjgY7pJw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.0.tgz",
+ "integrity": "sha512-UTJ/Vz+s7Pagef6HmufWt6Rs0aUu+EJF4Pzuwvr7JQQ5b1DZeAAUeUtkUTFx/PvCbM8Xfw4XdKBUZfrIKCfW8A==",
"cpu": [
"arm64"
],
@@ -2310,9 +2514,9 @@
}
},
"node_modules/@swc/core-darwin-x64": {
- "version": "1.3.95",
- "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.95.tgz",
- "integrity": "sha512-20vF2rvUsN98zGLZc+dsEdHvLoCuiYq/1B+TDeE4oolgTFDmI1jKO+m44PzWjYtKGU9QR95sZ6r/uec0QC5O4Q==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.4.0.tgz",
+ "integrity": "sha512-f8v58u2GsGak8EtZFN9guXqE0Ep10Suny6xriaW2d8FGqESPyNrnBzli3aqkSeQk5gGqu2zJ7WiiKp3XoUOidA==",
"cpu": [
"x64"
],
@@ -2326,9 +2530,9 @@
}
},
"node_modules/@swc/core-linux-arm-gnueabihf": {
- "version": "1.3.95",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.95.tgz",
- "integrity": "sha512-oEudEM8PST1MRNGs+zu0cx5i9uP8TsLE4/L9HHrS07Ck0RJ3DCj3O2fU832nmLe2QxnAGPwBpSO9FntLfOiWEQ==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.0.tgz",
+ "integrity": "sha512-q2KAkBzmPcTnRij/Y1fgHCKAGevUX/H4uUESrw1J5gmUg9Qip6onKV80lTumA1/aooGJ18LOsB31qdbwmZk9OA==",
"cpu": [
"arm"
],
@@ -2342,9 +2546,9 @@
}
},
"node_modules/@swc/core-linux-arm64-gnu": {
- "version": "1.3.95",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.95.tgz",
- "integrity": "sha512-pIhFI+cuC1aYg+0NAPxwT/VRb32f2ia8oGxUjQR6aJg65gLkUYQzdwuUmpMtFR2WVf7WVFYxUnjo4UyMuyh3ng==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.0.tgz",
+ "integrity": "sha512-SknGu96W0mzHtLHWm+62fk5+Omp9fMPFO7AWyGFmz2tr8EgRRXtTSrBUnWhAbgcalnhen48GsvtMdxf1KNputg==",
"cpu": [
"arm64"
],
@@ -2358,9 +2562,9 @@
}
},
"node_modules/@swc/core-linux-arm64-musl": {
- "version": "1.3.95",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.95.tgz",
- "integrity": "sha512-ZpbTr+QZDT4OPJfjPAmScqdKKaT+wGurvMU5AhxLaf85DuL8HwUwwlL0n1oLieLc47DwIJEMuKQkYhXMqmJHlg==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.0.tgz",
+ "integrity": "sha512-/k3TDvpBRMDNskHooNN1KqwUhcwkfBlIYxRTnJvsfT2C7My4pffR+4KXmt0IKynlTTbCdlU/4jgX4801FSuliw==",
"cpu": [
"arm64"
],
@@ -2374,9 +2578,9 @@
}
},
"node_modules/@swc/core-linux-x64-gnu": {
- "version": "1.3.95",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.95.tgz",
- "integrity": "sha512-n9SuHEFtdfSJ+sHdNXNRuIOVprB8nbsz+08apKfdo4lEKq6IIPBBAk5kVhPhkjmg2dFVHVo4Tr/OHXM1tzWCCw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.0.tgz",
+ "integrity": "sha512-GYsTMvNt5+WTVlwwQzOOWsPMw6P/F41u5PGHWmfev8Nd4QJ1h3rWPySKk4mV42IJwH9MgQCVSl3ygwNqwl6kFg==",
"cpu": [
"x64"
],
@@ -2390,9 +2594,9 @@
}
},
"node_modules/@swc/core-linux-x64-musl": {
- "version": "1.3.95",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.95.tgz",
- "integrity": "sha512-L1JrVlsXU3LC0WwmVnMK9HrOT2uhHahAoPNMJnZQpc18a0paO9fqifPG8M/HjNRffMUXR199G/phJsf326UvVg==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.0.tgz",
+ "integrity": "sha512-jGVPdM/VwF7kK/uYRW5N6FwzKf/FnDjGIR3RPvQokjYJy7Auk+3Oj21C0Jev7sIT9RYnO/TrFEoEozKeD/z2Qw==",
"cpu": [
"x64"
],
@@ -2406,9 +2610,9 @@
}
},
"node_modules/@swc/core-win32-arm64-msvc": {
- "version": "1.3.95",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.95.tgz",
- "integrity": "sha512-YaP4x/aZbUyNdqCBpC2zL8b8n58MEpOUpmOIZK6G1SxGi+2ENht7gs7+iXpWPc0sy7X3YPKmSWMAuui0h8lgAA==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.0.tgz",
+ "integrity": "sha512-biHYm1AronEKlt47O/H8sSOBM2BKXMmWT+ApvlxUw50m1RGNnVnE0bgY7tylFuuSiWyXsQPJbmUV708JqORXVg==",
"cpu": [
"arm64"
],
@@ -2422,9 +2626,9 @@
}
},
"node_modules/@swc/core-win32-ia32-msvc": {
- "version": "1.3.95",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.95.tgz",
- "integrity": "sha512-w0u3HI916zT4BC/57gOd+AwAEjXeUlQbGJ9H4p/gzs1zkSHtoDQghVUNy3n/ZKp9KFod/95cA8mbVF9t1+6epQ==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.0.tgz",
+ "integrity": "sha512-TL5L2tFQb19kJwv6+elToGBj74QXCn9j+hZfwQatvZEJRA5rDK16eH6oAE751dGUArhnWlW3Vj65hViPvTuycw==",
"cpu": [
"ia32"
],
@@ -2438,9 +2642,9 @@
}
},
"node_modules/@swc/core-win32-x64-msvc": {
- "version": "1.3.95",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.95.tgz",
- "integrity": "sha512-5RGnMt0S6gg4Gc6QtPUJ3Qs9Un4sKqccEzgH/tj7V/DVTJwKdnBKxFZfgQ34OR2Zpz7zGOn889xwsFVXspVWNA==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.0.tgz",
+ "integrity": "sha512-e2xVezU7XZ2Stzn4i7TOQe2Kn84oYdG0M3A7XI7oTdcpsKCcKwgiMoroiAhqCv+iN20KNqhnWwJiUiTj/qN5AA==",
"cpu": [
"x64"
],
@@ -2454,9 +2658,9 @@
}
},
"node_modules/@swc/counter": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz",
- "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==",
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
+ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
"dev": true
},
"node_modules/@swc/types": {
@@ -2465,46 +2669,37 @@
"integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==",
"dev": true
},
- "node_modules/@types/chai": {
- "version": "4.3.9",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.9.tgz",
- "integrity": "sha512-69TtiDzu0bcmKQv3yg1Zx409/Kd7r0b5F1PfpYJfSHzLGtB53547V4u+9iqKYsTu/O2ai6KTb0TInNpvuQ3qmg==",
+ "node_modules/@types/estree": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
"dev": true
},
- "node_modules/@types/chai-subset": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.4.tgz",
- "integrity": "sha512-CCWNXrJYSUIojZ1149ksLl3AN9cmZ5djf+yUoVVV+NuYrtydItQVlL2ZDqyC6M6O9LWRnVf8yYDxbXHO2TfQZg==",
- "dev": true,
- "dependencies": {
- "@types/chai": "*"
- }
- },
"node_modules/@types/events": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.2.tgz",
- "integrity": "sha512-v4Mr60wJuF069iZZCdY5DKhfj0l6eXNJtbSM/oMDNdRLoBEUsktmKnswkz0X3OAic5W8Qy/YU6owKE4A66Y46A==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.3.tgz",
+ "integrity": "sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==",
"dev": true
},
"node_modules/@types/node": {
- "version": "20.8.10",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz",
- "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==",
+ "version": "20.11.16",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz",
+ "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==",
"dev": true,
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/@types/prop-types": {
- "version": "15.7.9",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz",
- "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==",
+ "version": "15.7.11",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
+ "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==",
"dev": true
},
"node_modules/@types/react": {
- "version": "18.2.34",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.34.tgz",
- "integrity": "sha512-U6eW/alrRk37FU/MS2RYMjx0Va2JGIVXELTODaTIYgvWGCV4Y4TfTUzG8DdmpDNIT0Xpj/R7GfyHOJJrDttcvg==",
+ "version": "18.2.55",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.55.tgz",
+ "integrity": "sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==",
"dev": true,
"dependencies": {
"@types/prop-types": "*",
@@ -2513,65 +2708,66 @@
}
},
"node_modules/@types/react-dom": {
- "version": "18.2.14",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.14.tgz",
- "integrity": "sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==",
+ "version": "18.2.18",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz",
+ "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==",
"dev": true,
"dependencies": {
"@types/react": "*"
}
},
"node_modules/@types/scheduler": {
- "version": "0.16.5",
- "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.5.tgz",
- "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==",
+ "version": "0.16.8",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
+ "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==",
"dev": true
},
"node_modules/@vitejs/plugin-legacy": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz",
- "integrity": "sha512-um3gbVouD2Q/g19C0qpDfHwveXDCAHzs8OC3e9g6aXpKoD1H14himgs7wkMnhAynBJy7QqUoZNAXDuqN8zLR2g==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-5.3.0.tgz",
+ "integrity": "sha512-BhW+WcJmEgW5G/1UQRiVQ7wz9/ZPnxqzExT9n0zAk4RlqQQ/26udIeXzdU8+03AGnaF61wmZlCspexgEnxFWMA==",
"dev": true,
"dependencies": {
- "@babel/core": "^7.22.9",
- "@babel/preset-env": "^7.22.9",
- "browserslist": "^4.21.9",
- "core-js": "^3.31.1",
- "magic-string": "^0.30.1",
- "regenerator-runtime": "^0.13.11",
- "systemjs": "^6.14.1"
+ "@babel/core": "^7.23.7",
+ "@babel/preset-env": "^7.23.8",
+ "browserslist": "^4.22.2",
+ "core-js": "^3.35.0",
+ "esbuild-plugin-browserslist": "^0.10.0",
+ "magic-string": "^0.30.5",
+ "regenerator-runtime": "^0.14.1",
+ "systemjs": "^6.14.3"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": "^18.0.0 || >=20.0.0"
},
"funding": {
"url": "https://github.com/vitejs/vite?sponsor=1"
},
"peerDependencies": {
"terser": "^5.4.0",
- "vite": "^4.0.0"
+ "vite": "^5.0.0"
}
},
"node_modules/@vitejs/plugin-react-swc": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.4.1.tgz",
- "integrity": "sha512-7YQOQcVV5x1luD8nkbCDdyYygFvn1hjqJk68UvNAzY2QG4o4N5EwAhLLFNOcd1HrdMwDl0VElP8VutoWf9IvJg==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.6.0.tgz",
+ "integrity": "sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==",
"dev": true,
"dependencies": {
- "@swc/core": "^1.3.95"
+ "@swc/core": "^1.3.107"
},
"peerDependencies": {
- "vite": "^4"
+ "vite": "^4 || ^5"
}
},
"node_modules/@vitest/expect": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz",
- "integrity": "sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.2.2.tgz",
+ "integrity": "sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==",
"dev": true,
"dependencies": {
- "@vitest/spy": "0.34.6",
- "@vitest/utils": "0.34.6",
+ "@vitest/spy": "1.2.2",
+ "@vitest/utils": "1.2.2",
"chai": "^4.3.10"
},
"funding": {
@@ -2579,13 +2775,13 @@
}
},
"node_modules/@vitest/runner": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz",
- "integrity": "sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.2.2.tgz",
+ "integrity": "sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==",
"dev": true,
"dependencies": {
- "@vitest/utils": "0.34.6",
- "p-limit": "^4.0.0",
+ "@vitest/utils": "1.2.2",
+ "p-limit": "^5.0.0",
"pathe": "^1.1.1"
},
"funding": {
@@ -2593,40 +2789,41 @@
}
},
"node_modules/@vitest/snapshot": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.6.tgz",
- "integrity": "sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.2.2.tgz",
+ "integrity": "sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==",
"dev": true,
"dependencies": {
- "magic-string": "^0.30.1",
+ "magic-string": "^0.30.5",
"pathe": "^1.1.1",
- "pretty-format": "^29.5.0"
+ "pretty-format": "^29.7.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/spy": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.6.tgz",
- "integrity": "sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.2.2.tgz",
+ "integrity": "sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==",
"dev": true,
"dependencies": {
- "tinyspy": "^2.1.1"
+ "tinyspy": "^2.2.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/utils": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz",
- "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.2.2.tgz",
+ "integrity": "sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==",
"dev": true,
"dependencies": {
- "diff-sequences": "^29.4.3",
- "loupe": "^2.3.6",
- "pretty-format": "^29.5.0"
+ "diff-sequences": "^29.6.3",
+ "estree-walker": "^3.0.3",
+ "loupe": "^2.3.7",
+ "pretty-format": "^29.7.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
@@ -2646,9 +2843,9 @@
}
},
"node_modules/acorn": {
- "version": "8.11.2",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
- "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -2658,9 +2855,9 @@
}
},
"node_modules/acorn-walk": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz",
- "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==",
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
+ "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
"dev": true,
"engines": {
"node": ">=0.4.0"
@@ -2740,9 +2937,9 @@
}
},
"node_modules/autoprefixer": {
- "version": "10.4.16",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz",
- "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==",
+ "version": "10.4.17",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz",
+ "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==",
"dev": true,
"funding": [
{
@@ -2759,9 +2956,9 @@
}
],
"dependencies": {
- "browserslist": "^4.21.10",
- "caniuse-lite": "^1.0.30001538",
- "fraction.js": "^4.3.6",
+ "browserslist": "^4.22.2",
+ "caniuse-lite": "^1.0.30001578",
+ "fraction.js": "^4.3.7",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
"postcss-value-parser": "^4.2.0"
@@ -2777,13 +2974,13 @@
}
},
"node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz",
- "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==",
+ "version": "0.4.8",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz",
+ "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==",
"dev": true,
"dependencies": {
"@babel/compat-data": "^7.22.6",
- "@babel/helper-define-polyfill-provider": "^0.4.3",
+ "@babel/helper-define-polyfill-provider": "^0.5.0",
"semver": "^6.3.1"
},
"peerDependencies": {
@@ -2791,25 +2988,25 @@
}
},
"node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.8.6",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz",
- "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==",
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz",
+ "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==",
"dev": true,
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.4.3",
- "core-js-compat": "^3.33.1"
+ "@babel/helper-define-polyfill-provider": "^0.5.0",
+ "core-js-compat": "^3.34.0"
},
"peerDependencies": {
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
"node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz",
- "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==",
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz",
+ "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==",
"dev": true,
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.4.3"
+ "@babel/helper-define-polyfill-provider": "^0.5.0"
},
"peerDependencies": {
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
@@ -2901,9 +3098,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.22.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz",
- "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==",
+ "version": "4.22.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz",
+ "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==",
"dev": true,
"funding": [
{
@@ -2920,9 +3117,9 @@
}
],
"dependencies": {
- "caniuse-lite": "^1.0.30001541",
- "electron-to-chromium": "^1.4.535",
- "node-releases": "^2.0.13",
+ "caniuse-lite": "^1.0.30001580",
+ "electron-to-chromium": "^1.4.648",
+ "node-releases": "^2.0.14",
"update-browserslist-db": "^1.0.13"
},
"bin": {
@@ -2957,23 +3154,27 @@
}
},
"node_modules/call-bind": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
- "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz",
+ "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==",
"dev": true,
"dependencies": {
+ "es-errors": "^1.3.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.1",
- "set-function-length": "^1.1.1"
+ "get-intrinsic": "^1.2.3",
+ "set-function-length": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001559",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001559.tgz",
- "integrity": "sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==",
+ "version": "1.0.30001585",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001585.tgz",
+ "integrity": "sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==",
"dev": true,
"funding": [
{
@@ -2991,9 +3192,9 @@
]
},
"node_modules/chai": {
- "version": "4.3.10",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz",
- "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz",
+ "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==",
"dev": true,
"dependencies": {
"assertion-error": "^1.1.0",
@@ -3033,16 +3234,10 @@
}
},
"node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -3055,6 +3250,9 @@
"engines": {
"node": ">= 8.10.0"
},
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
"optionalDependencies": {
"fsevents": "~2.3.2"
}
@@ -3207,22 +3405,10 @@
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
"dev": true
},
- "node_modules/copy-anything": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz",
- "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==",
- "dev": true,
- "dependencies": {
- "is-what": "^3.14.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/mesqueeb"
- }
- },
"node_modules/core-js": {
- "version": "3.33.2",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.2.tgz",
- "integrity": "sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==",
+ "version": "3.35.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.35.1.tgz",
+ "integrity": "sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==",
"dev": true,
"hasInstallScript": true,
"funding": {
@@ -3231,18 +3417,36 @@
}
},
"node_modules/core-js-compat": {
- "version": "3.33.2",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz",
- "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==",
+ "version": "3.35.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz",
+ "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==",
"dev": true,
"dependencies": {
- "browserslist": "^4.22.1"
+ "browserslist": "^4.22.2"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
}
},
+ "node_modules/cross-env": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
+ "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.1"
+ },
+ "bin": {
+ "cross-env": "src/bin/cross-env.js",
+ "cross-env-shell": "src/bin/cross-env-shell.js"
+ },
+ "engines": {
+ "node": ">=10.14",
+ "npm": ">=6",
+ "yarn": ">=1"
+ }
+ },
"node_modules/cross-fetch": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
@@ -3251,10 +3455,24 @@
"node-fetch": "^2.6.12"
}
},
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/csstype": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
- "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"dev": true
},
"node_modules/debug": {
@@ -3287,14 +3505,15 @@
}
},
"node_modules/define-data-property": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
- "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz",
+ "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==",
"dev": true,
"dependencies": {
- "get-intrinsic": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.2",
"gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
+ "has-property-descriptors": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -3344,9 +3563,9 @@
"dev": true
},
"node_modules/electron-to-chromium": {
- "version": "1.4.574",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.574.tgz",
- "integrity": "sha512-bg1m8L0n02xRzx4LsTTMbBPiUd9yIR+74iPtS/Ao65CuXvhVZHP0ym1kSdDG3yHFDXqHQQBKujlN1AQ8qZnyFg==",
+ "version": "1.4.659",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz",
+ "integrity": "sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg==",
"dev": true
},
"node_modules/emoji-regex": {
@@ -3364,23 +3583,19 @@
"node": ">= 0.8"
}
},
- "node_modules/errno": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
- "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"dev": true,
- "optional": true,
- "dependencies": {
- "prr": "~1.0.1"
- },
- "bin": {
- "errno": "cli.js"
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/esbuild": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
- "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
+ "version": "0.19.12",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz",
+ "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==",
"dev": true,
"hasInstallScript": true,
"bin": {
@@ -3390,28 +3605,29 @@
"node": ">=12"
},
"optionalDependencies": {
- "@esbuild/android-arm": "0.18.20",
- "@esbuild/android-arm64": "0.18.20",
- "@esbuild/android-x64": "0.18.20",
- "@esbuild/darwin-arm64": "0.18.20",
- "@esbuild/darwin-x64": "0.18.20",
- "@esbuild/freebsd-arm64": "0.18.20",
- "@esbuild/freebsd-x64": "0.18.20",
- "@esbuild/linux-arm": "0.18.20",
- "@esbuild/linux-arm64": "0.18.20",
- "@esbuild/linux-ia32": "0.18.20",
- "@esbuild/linux-loong64": "0.18.20",
- "@esbuild/linux-mips64el": "0.18.20",
- "@esbuild/linux-ppc64": "0.18.20",
- "@esbuild/linux-riscv64": "0.18.20",
- "@esbuild/linux-s390x": "0.18.20",
- "@esbuild/linux-x64": "0.18.20",
- "@esbuild/netbsd-x64": "0.18.20",
- "@esbuild/openbsd-x64": "0.18.20",
- "@esbuild/sunos-x64": "0.18.20",
- "@esbuild/win32-arm64": "0.18.20",
- "@esbuild/win32-ia32": "0.18.20",
- "@esbuild/win32-x64": "0.18.20"
+ "@esbuild/aix-ppc64": "0.19.12",
+ "@esbuild/android-arm": "0.19.12",
+ "@esbuild/android-arm64": "0.19.12",
+ "@esbuild/android-x64": "0.19.12",
+ "@esbuild/darwin-arm64": "0.19.12",
+ "@esbuild/darwin-x64": "0.19.12",
+ "@esbuild/freebsd-arm64": "0.19.12",
+ "@esbuild/freebsd-x64": "0.19.12",
+ "@esbuild/linux-arm": "0.19.12",
+ "@esbuild/linux-arm64": "0.19.12",
+ "@esbuild/linux-ia32": "0.19.12",
+ "@esbuild/linux-loong64": "0.19.12",
+ "@esbuild/linux-mips64el": "0.19.12",
+ "@esbuild/linux-ppc64": "0.19.12",
+ "@esbuild/linux-riscv64": "0.19.12",
+ "@esbuild/linux-s390x": "0.19.12",
+ "@esbuild/linux-x64": "0.19.12",
+ "@esbuild/netbsd-x64": "0.19.12",
+ "@esbuild/openbsd-x64": "0.19.12",
+ "@esbuild/sunos-x64": "0.19.12",
+ "@esbuild/win32-arm64": "0.19.12",
+ "@esbuild/win32-ia32": "0.19.12",
+ "@esbuild/win32-x64": "0.19.12"
}
},
"node_modules/esbuild-android-arm64": {
@@ -3429,10 +3645,27 @@
"node": ">=12"
}
},
+ "node_modules/esbuild-plugin-browserslist": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/esbuild-plugin-browserslist/-/esbuild-plugin-browserslist-0.10.0.tgz",
+ "integrity": "sha512-rZWFcp3l+73xDiJB+Vl9UqP1VVs+L4E0lygbwJl6UTmW2qQago7DLT56hBu0vocH/TtZsAcRHj0+qHqkkB5Gww==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4",
+ "zod": "^3.21.4"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "browserslist": "^4.21.8",
+ "esbuild": "~0.19.2"
+ }
+ },
"node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
"dev": true,
"engines": {
"node": ">=6"
@@ -3453,6 +3686,15 @@
"node": ">=0.8.0"
}
},
+ "node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
"node_modules/esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -3471,6 +3713,56 @@
"node": ">= 0.6"
}
},
+ "node_modules/execa": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/execa/node_modules/npm-run-path": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz",
+ "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/execa/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/express": {
"version": "4.18.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
@@ -3555,9 +3847,9 @@
]
},
"node_modules/fast-glob": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
- "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
@@ -3571,9 +3863,9 @@
}
},
"node_modules/fastq": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
- "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
"dev": true,
"dependencies": {
"reusify": "^1.0.4"
@@ -3656,9 +3948,9 @@
}
},
"node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -3719,20 +4011,36 @@
}
},
"node_modules/get-intrinsic": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
- "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
"dev": true,
"dependencies": {
+ "es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
"hasown": "^2.0.0"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-stream": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
@@ -3853,16 +4161,25 @@
"node": ">= 0.8"
}
},
+ "node_modules/human-signals": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16.17.0"
+ }
+ },
"node_modules/husky": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
- "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
+ "version": "9.0.10",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-9.0.10.tgz",
+ "integrity": "sha512-TQGNknoiy6bURzIO77pPRu+XHi6zI7T93rX+QnJsoYFf3xdjKOur+IlfqzJGMHIK/wXrLg+GsvMs8Op7vI2jVA==",
"dev": true,
"bin": {
- "husky": "lib/bin.js"
+ "husky": "bin.mjs"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/typicode"
@@ -3880,18 +4197,11 @@
"node": ">=0.10.0"
}
},
- "node_modules/image-size": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
- "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
- "dev": true,
- "optional": true,
- "bin": {
- "image-size": "bin/image-size.js"
- },
- "engines": {
- "node": ">=0.10.0"
- }
+ "node_modules/immutable": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz",
+ "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==",
+ "dev": true
},
"node_modules/inherits": {
"version": "2.0.4",
@@ -3992,11 +4302,17 @@
"node": ">=0.12.0"
}
},
- "node_modules/is-what": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz",
- "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==",
- "dev": true
+ "node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
"node_modules/is-wsl": {
"version": "2.2.0",
@@ -4010,6 +4326,12 @@
"node": ">=8"
}
},
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -4040,9 +4362,9 @@
}
},
"node_modules/jsonc-parser": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
- "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
+ "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==",
"dev": true
},
"node_modules/jsonfile": {
@@ -4057,37 +4379,15 @@
"graceful-fs": "^4.1.6"
}
},
- "node_modules/less": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz",
- "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==",
+ "node_modules/local-pkg": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz",
+ "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
"dev": true,
"dependencies": {
- "copy-anything": "^2.0.1",
- "parse-node-version": "^1.0.1",
- "tslib": "^2.3.0"
- },
- "bin": {
- "lessc": "bin/lessc"
- },
- "engines": {
- "node": ">=6"
+ "mlly": "^1.4.2",
+ "pkg-types": "^1.0.3"
},
- "optionalDependencies": {
- "errno": "^0.1.1",
- "graceful-fs": "^4.1.2",
- "image-size": "~0.5.0",
- "make-dir": "^2.1.0",
- "mime": "^1.4.1",
- "needle": "^3.1.0",
- "source-map": "~0.6.0"
- }
- },
- "node_modules/local-pkg": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
- "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==",
- "dev": true,
"engines": {
"node": ">=14"
},
@@ -4107,12 +4407,6 @@
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
"dev": true
},
- "node_modules/lodash.pick": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
- "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==",
- "dev": true
- },
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -4143,9 +4437,9 @@
}
},
"node_modules/magic-string": {
- "version": "0.30.5",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
- "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
+ "version": "0.30.7",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz",
+ "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==",
"dev": true,
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.4.15"
@@ -4154,30 +4448,6 @@
"node": ">=12"
}
},
- "node_modules/make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/make-dir/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
- "optional": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -4193,6 +4463,12 @@
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
"dev": true
},
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -4257,6 +4533,18 @@
"node": ">= 0.6"
}
},
+ "node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -4291,15 +4579,24 @@
}
},
"node_modules/mlly": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz",
- "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz",
+ "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==",
"dev": true,
"dependencies": {
- "acorn": "^8.10.0",
- "pathe": "^1.1.1",
+ "acorn": "^8.11.3",
+ "pathe": "^1.1.2",
"pkg-types": "^1.0.3",
- "ufo": "^1.3.0"
+ "ufo": "^1.3.2"
+ }
+ },
+ "node_modules/mrmime": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
+ "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/ms": {
@@ -4309,9 +4606,9 @@
"dev": true
},
"node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"dev": true,
"funding": [
{
@@ -4326,47 +4623,6 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
- "node_modules/needle": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz",
- "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "debug": "^3.2.6",
- "iconv-lite": "^0.6.3",
- "sax": "^1.2.4"
- },
- "bin": {
- "needle": "bin/needle"
- },
- "engines": {
- "node": ">= 4.4.x"
- }
- },
- "node_modules/needle/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/needle/node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/negotiator": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
@@ -4396,9 +4652,9 @@
}
},
"node_modules/node-releases": {
- "version": "2.0.13",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
- "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==",
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
"dev": true
},
"node_modules/normalize-path": {
@@ -4461,6 +4717,21 @@
"node": ">= 0.8"
}
},
+ "node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/open": {
"version": "8.4.2",
"resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
@@ -4479,29 +4750,20 @@
}
},
"node_modules/p-limit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz",
+ "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==",
"dev": true,
"dependencies": {
"yocto-queue": "^1.0.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/parse-node-version": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
- "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@@ -4532,9 +4794,9 @@
"integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw=="
},
"node_modules/pathe": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz",
- "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
"dev": true
},
"node_modules/pathval": {
@@ -4564,16 +4826,6 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true,
- "optional": true,
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/pkg-types": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz",
@@ -4619,9 +4871,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "version": "8.4.35",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
+ "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
"dev": true,
"funding": [
{
@@ -4638,7 +4890,7 @@
}
],
"dependencies": {
- "nanoid": "^3.3.6",
+ "nanoid": "^3.3.7",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
@@ -4679,13 +4931,6 @@
"node": ">= 0.10"
}
},
- "node_modules/prr": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
- "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
- "dev": true,
- "optional": true
- },
"node_modules/qs": {
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
@@ -4814,10 +5059,9 @@
}
},
"node_modules/regenerator-runtime": {
- "version": "0.13.11",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
- "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
- "dev": true
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
"node_modules/regenerator-transform": {
"version": "0.15.2",
@@ -4903,25 +5147,41 @@
}
},
"node_modules/rollup": {
- "version": "3.29.4",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
- "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz",
+ "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==",
"dev": true,
+ "dependencies": {
+ "@types/estree": "1.0.5"
+ },
"bin": {
"rollup": "dist/bin/rollup"
},
"engines": {
- "node": ">=14.18.0",
+ "node": ">=18.0.0",
"npm": ">=8.0.0"
},
"optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.9.6",
+ "@rollup/rollup-android-arm64": "4.9.6",
+ "@rollup/rollup-darwin-arm64": "4.9.6",
+ "@rollup/rollup-darwin-x64": "4.9.6",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.9.6",
+ "@rollup/rollup-linux-arm64-gnu": "4.9.6",
+ "@rollup/rollup-linux-arm64-musl": "4.9.6",
+ "@rollup/rollup-linux-riscv64-gnu": "4.9.6",
+ "@rollup/rollup-linux-x64-gnu": "4.9.6",
+ "@rollup/rollup-linux-x64-musl": "4.9.6",
+ "@rollup/rollup-win32-arm64-msvc": "4.9.6",
+ "@rollup/rollup-win32-ia32-msvc": "4.9.6",
+ "@rollup/rollup-win32-x64-msvc": "4.9.6",
"fsevents": "~2.3.2"
}
},
"node_modules/rollup-plugin-visualizer": {
- "version": "5.9.2",
- "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.2.tgz",
- "integrity": "sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A==",
+ "version": "5.12.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz",
+ "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==",
"dev": true,
"dependencies": {
"open": "^8.4.0",
@@ -4936,7 +5196,7 @@
"node": ">=14"
},
"peerDependencies": {
- "rollup": "2.x || 3.x"
+ "rollup": "2.x || 3.x || 4.x"
},
"peerDependenciesMeta": {
"rollup": {
@@ -4944,14 +5204,18 @@
}
}
},
- "node_modules/rollup-plugin-visualizer/node_modules/source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz",
+ "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "engines": {
- "node": ">= 8"
- }
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
"node_modules/run-parallel": {
"version": "1.2.0",
@@ -4988,12 +5252,22 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true
},
- "node_modules/sax": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
- "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==",
+ "node_modules/sass": {
+ "version": "1.70.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz",
+ "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==",
"dev": true,
- "optional": true
+ "dependencies": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
},
"node_modules/scheduler": {
"version": "0.23.0",
@@ -5073,15 +5347,17 @@
}
},
"node_modules/set-function-length": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
- "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz",
+ "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
"dev": true,
"dependencies": {
- "define-data-property": "^1.1.1",
- "get-intrinsic": "^1.2.1",
+ "define-data-property": "^1.1.2",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.3",
"gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
+ "has-property-descriptors": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -5093,15 +5369,40 @@
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
"dev": true
},
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz",
+ "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -5113,13 +5414,39 @@
"integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
"dev": true
},
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/sirv": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
+ "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
+ "dev": true,
+ "dependencies": {
+ "@polka/url": "^1.0.0-next.24",
+ "mrmime": "^2.0.0",
+ "totalist": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
"node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 8"
}
},
"node_modules/source-map-js": {
@@ -5141,6 +5468,15 @@
"source-map": "^0.6.0"
}
},
+ "node_modules/source-map-support/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/stackback": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
@@ -5157,9 +5493,9 @@
}
},
"node_modules/std-env": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.4.3.tgz",
- "integrity": "sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==",
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz",
+ "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==",
"dev": true
},
"node_modules/string-width": {
@@ -5188,6 +5524,18 @@
"node": ">=8"
}
},
+ "node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/strip-literal": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz",
@@ -5225,15 +5573,15 @@
}
},
"node_modules/systemjs": {
- "version": "6.14.2",
- "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-6.14.2.tgz",
- "integrity": "sha512-1TlOwvKWdXxAY9vba+huLu99zrQURDWA8pUTYsRIYDZYQbGyK+pyEP4h4dlySsqo7ozyJBmYD20F+iUHhAltEg==",
+ "version": "6.14.3",
+ "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-6.14.3.tgz",
+ "integrity": "sha512-hQv45irdhXudAOr8r6SVSpJSGtogdGZUbJBRKCE5nsIS7tsxxvnIHqT4IOPWj+P+HcSzeWzHlGCGpmhPDIKe+w==",
"dev": true
},
"node_modules/terser": {
- "version": "5.24.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz",
- "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==",
+ "version": "5.27.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz",
+ "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==",
"dev": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
@@ -5255,15 +5603,15 @@
"dev": true
},
"node_modules/tinybench": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz",
- "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==",
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz",
+ "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==",
"dev": true
},
"node_modules/tinypool": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz",
- "integrity": "sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==",
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.2.tgz",
+ "integrity": "sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==",
"dev": true,
"engines": {
"node": ">=14.0.0"
@@ -5308,17 +5656,20 @@
"node": ">=0.6"
}
},
+ "node_modules/totalist": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
+ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
- "node_modules/tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
- "dev": true
- },
"node_modules/type-detect": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
@@ -5354,9 +5705,9 @@
}
},
"node_modules/typescript": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
- "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
+ "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -5367,9 +5718,9 @@
}
},
"node_modules/ufo": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.1.tgz",
- "integrity": "sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz",
+ "integrity": "sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==",
"dev": true
},
"node_modules/undici-types": {
@@ -5485,29 +5836,29 @@
}
},
"node_modules/vite": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz",
- "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==",
+ "version": "5.0.12",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz",
+ "integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==",
"dev": true,
"dependencies": {
- "esbuild": "^0.18.10",
- "postcss": "^8.4.27",
- "rollup": "^3.27.1"
+ "esbuild": "^0.19.3",
+ "postcss": "^8.4.32",
+ "rollup": "^4.2.0"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": "^18.0.0 || >=20.0.0"
},
"funding": {
"url": "https://github.com/vitejs/vite?sponsor=1"
},
"optionalDependencies": {
- "fsevents": "~2.3.2"
+ "fsevents": "~2.3.3"
},
"peerDependencies": {
- "@types/node": ">= 14",
+ "@types/node": "^18.0.0 || >=20.0.0",
"less": "*",
"lightningcss": "^1.21.0",
"sass": "*",
@@ -5540,32 +5891,31 @@
}
},
"node_modules/vite-node": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz",
- "integrity": "sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.2.2.tgz",
+ "integrity": "sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==",
"dev": true,
"dependencies": {
"cac": "^6.7.14",
"debug": "^4.3.4",
- "mlly": "^1.4.0",
"pathe": "^1.1.1",
"picocolors": "^1.0.0",
- "vite": "^3.0.0 || ^4.0.0 || ^5.0.0-0"
+ "vite": "^5.0.0"
},
"bin": {
"vite-node": "vite-node.mjs"
},
"engines": {
- "node": ">=v14.18.0"
+ "node": "^18.0.0 || >=20.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/vite-plugin-checker": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.2.tgz",
- "integrity": "sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==",
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz",
+ "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.12.13",
@@ -5575,8 +5925,6 @@
"commander": "^8.0.0",
"fast-glob": "^3.2.7",
"fs-extra": "^11.1.0",
- "lodash.debounce": "^4.0.8",
- "lodash.pick": "^4.4.0",
"npm-run-path": "^4.0.1",
"semver": "^7.5.0",
"strip-ansi": "^6.0.0",
@@ -5707,9 +6055,9 @@
}
},
"node_modules/vite-plugin-checker/node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -5740,59 +6088,57 @@
"dev": true
},
"node_modules/vitest": {
- "version": "0.34.6",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz",
- "integrity": "sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==",
- "dev": true,
- "dependencies": {
- "@types/chai": "^4.3.5",
- "@types/chai-subset": "^1.3.3",
- "@types/node": "*",
- "@vitest/expect": "0.34.6",
- "@vitest/runner": "0.34.6",
- "@vitest/snapshot": "0.34.6",
- "@vitest/spy": "0.34.6",
- "@vitest/utils": "0.34.6",
- "acorn": "^8.9.0",
- "acorn-walk": "^8.2.0",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.2.2.tgz",
+ "integrity": "sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==",
+ "dev": true,
+ "dependencies": {
+ "@vitest/expect": "1.2.2",
+ "@vitest/runner": "1.2.2",
+ "@vitest/snapshot": "1.2.2",
+ "@vitest/spy": "1.2.2",
+ "@vitest/utils": "1.2.2",
+ "acorn-walk": "^8.3.2",
"cac": "^6.7.14",
"chai": "^4.3.10",
"debug": "^4.3.4",
- "local-pkg": "^0.4.3",
- "magic-string": "^0.30.1",
+ "execa": "^8.0.1",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.5",
"pathe": "^1.1.1",
"picocolors": "^1.0.0",
- "std-env": "^3.3.3",
- "strip-literal": "^1.0.1",
- "tinybench": "^2.5.0",
- "tinypool": "^0.7.0",
- "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0",
- "vite-node": "0.34.6",
+ "std-env": "^3.5.0",
+ "strip-literal": "^1.3.0",
+ "tinybench": "^2.5.1",
+ "tinypool": "^0.8.2",
+ "vite": "^5.0.0",
+ "vite-node": "1.2.2",
"why-is-node-running": "^2.2.2"
},
"bin": {
"vitest": "vitest.mjs"
},
"engines": {
- "node": ">=v14.18.0"
+ "node": "^18.0.0 || >=20.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
"@edge-runtime/vm": "*",
- "@vitest/browser": "*",
- "@vitest/ui": "*",
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "@vitest/browser": "^1.0.0",
+ "@vitest/ui": "^1.0.0",
"happy-dom": "*",
- "jsdom": "*",
- "playwright": "*",
- "safaridriver": "*",
- "webdriverio": "*"
+ "jsdom": "*"
},
"peerDependenciesMeta": {
"@edge-runtime/vm": {
"optional": true
},
+ "@types/node": {
+ "optional": true
+ },
"@vitest/browser": {
"optional": true
},
@@ -5804,15 +6150,6 @@
},
"jsdom": {
"optional": true
- },
- "playwright": {
- "optional": true
- },
- "safaridriver": {
- "optional": true
- },
- "webdriverio": {
- "optional": true
}
}
},
@@ -5852,9 +6189,9 @@
}
},
"node_modules/vscode-languageclient/node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -5926,6 +6263,21 @@
"webidl-conversions": "^3.0.0"
}
},
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/why-is-node-running": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz",
@@ -6045,6 +6397,15 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
+ },
+ "node_modules/zod": {
+ "version": "3.22.4",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz",
+ "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
}
}
}
diff --git a/apps/front/package.json b/apps/front/package.json
index 109b08aa..226cbbfb 100644
--- a/apps/front/package.json
+++ b/apps/front/package.json
@@ -1,24 +1,28 @@
{
"name": "chersite-front",
"version": "0.1.0",
- "main": "src/index.tsx",
+ "main": "src/index-client.tsx",
"type": "module",
"scripts": {
- "dev": "node server.js",
- "build:client": "vite build --outDir dist/client",
- "build:server": "vite build --ssr src/server/index-server.tsx --outDir dist/server",
- "build:scripts": "vite build -c vite.scripts.config.ts",
- "build:static": "vite build --outDir dist/static",
- "build": "npm run build:server && npm run build:scripts && npm run build:static && npm run generate",
- "generate": "node dist/_scripts/exe-prerender.js",
- "preview": "serve dist/static",
+ "dev": "node server.dev.js",
+ "build:spa": "cross-env VITE_SPA=true vite build --outDir dist/spa",
+ "build:ssr-scripts": "vite build -c vite.ssr-scripts.config.ts",
+ "build:ssr-client": "vite build --outDir dist/ssr/client",
+ "build:ssr-server": "vite build --ssr src/index-server.tsx --outDir dist/ssr/server",
+ "build:ssr": "npm run build:ssr-scripts && npm run build:ssr-client && npm run build:ssr-server",
+ "build:static-scripts": "vite build -c vite.static-scripts.config.ts",
+ "build:static-client": "vite build --outDir dist/static/client",
+ "build:static": "npm run build:static-scripts && npm run build:static-client && npm run generate",
+ "generate": "node dist/static/scripts/exe-prerender.js",
+ "build": "npm run build:spa && npm run build:ssr && npm run build:static",
+ "start": "cross-env NODE_ENV=production node dist/ssr/scripts/server.prod.js",
"test:watch": "vitest",
"test": "vitest run"
},
"dependencies": {
"@cher-ami/css-flat": "^1.0.1",
"@cher-ami/debug": "^1.2.0",
- "@cher-ami/router": "^3.4.0",
+ "@cher-ami/router": "^3.5.0",
"@cher-ami/utils": "^1.4.1",
"cross-fetch": "^4.0.0",
"history": "^5.3.0",
@@ -27,28 +31,31 @@
},
"devDependencies": {
"@cher-ami/mfs": "^0.2.0",
- "@types/events": "^3.0.2",
- "@types/node": "^20.8.10",
- "@types/react": "^18.2.34",
- "@types/react-dom": "^18.2.14",
- "@vitejs/plugin-legacy": "^4.1.1",
- "@vitejs/plugin-react-swc": "^3.4.1",
- "autoprefixer": "^10.4.16",
+ "@types/events": "^3.0.3",
+ "@types/node": "^20.11.16",
+ "@types/react": "^18.2.55",
+ "@types/react-dom": "^18.2.18",
+ "@vitejs/plugin-legacy": "^5.3.0",
+ "@vitejs/plugin-react-swc": "^3.6.0",
+ "autoprefixer": "^10.4.17",
"chalk": "^5.3.0",
"compression": "^1.7.4",
+ "cross-env": "^7.0.3",
"express": "^4.18.2",
- "husky": "^8.0.3",
+ "husky": "^9.0.10",
"ip": "^1.1.8",
- "less": "^4.2.0",
"portfinder-sync": "^0.0.2",
- "rollup-plugin-visualizer": "^5.9.2",
- "terser": "^5.24.0",
- "typescript": "^5.2.2",
- "vite": "^4.5.0",
- "vite-plugin-checker": "^0.6.2",
- "vitest": "^0.34.6"
+ "rollup-plugin-visualizer": "^5.12.0",
+ "sass": "^1.70.0",
+ "sirv": "^2.0.4",
+ "terser": "^5.27.0",
+ "typescript": "^5.3.3",
+ "vite": "^5.0.12",
+ "vite-plugin-checker": "^0.6.4",
+ "vitest": "^1.2.2"
},
"optionalDependencies": {
+ "@rollup/rollup-linux-x64-gnu": "4.6.1",
"esbuild-android-arm64": "^0.15.18",
"fsevents": "^2.3.3"
},
diff --git a/apps/front/prerender/__tests__/ManifestParser.test.ts b/apps/front/prerender/__tests__/ManifestParser.test.ts
index 3c7b0214..237fabec 100644
--- a/apps/front/prerender/__tests__/ManifestParser.test.ts
+++ b/apps/front/prerender/__tests__/ManifestParser.test.ts
@@ -1,10 +1,14 @@
import { expect, it } from "vitest"
import { ManifestParser } from "../helpers/ManifestParser"
-import * as mfs from "@cher-ami/mfs"
-import config from "../../config/config.js"
+import path from "path"
+import { fileURLToPath } from "url"
+import * as fs from "fs"
+const url = import.meta.url
-// @ts-ignore
-const manifestRaw = await mfs.readFile(`${config.outDirStatic}/manifest.json`)
+const manifestRaw = fs.readFileSync(
+ path.join(path.dirname(fileURLToPath(url)), `fixtures/manifest.json`),
+ { encoding: "utf8" }
+)
it("should return assets list", () => {
const assets = ManifestParser.getAssets(manifestRaw)
diff --git a/apps/front/prerender/exe-prerender-server.ts b/apps/front/prerender/exe-prerender-server.ts
index 9428038f..3834c156 100644
--- a/apps/front/prerender/exe-prerender-server.ts
+++ b/apps/front/prerender/exe-prerender-server.ts
@@ -2,8 +2,12 @@ import express from "express"
import { prerender } from "./prerender"
import chalk from "chalk"
import { fetchAvailableUrls } from "./urls"
+import config from "../config/config"
+import * as process from "process"
+import { loadEnv } from "vite"
-const port = "1234"
+const envs = loadEnv("", process.cwd(), "")
+const port = envs.PRERENDER_SERVER_NODE_PORT || process.env.PRERENDER_SERVER_NODE_PORT
const app = express()
app.get("/generate", async (req, res) => {
@@ -22,18 +26,18 @@ app.get("/generate", async (req, res) => {
// second arg "./static" is matching cher-ami deploy conf
// need to be edited if we want to start this server locally
- await prerender(urlsArray, "./static")
+ await prerender(urlsArray, config.outDirStaticClient)
res?.send("Generated static pages: " + urlsArray.join(", "))
})
app.listen(port, () => {
console.log("")
console.log(
- `> Generate all pages ${chalk.blue(`http://localhost:${port}/generate`)}`
+ `> Generate all pages ${chalk.cyan(`http://localhost:${port}/generate`)}`
)
console.log(
- `> Generate specific page ${chalk.blue(
- `http://localhost:${port}/generate?url=/my-page/url`
+ `> Generate specific page ${chalk.cyan(
+ `http://localhost:${port}/generate?url=/my-page-url`
)}`
)
})
diff --git a/apps/front/prerender/helpers/ManifestParser.ts b/apps/front/prerender/helpers/ManifestParser.ts
index 39797026..0982bca1 100644
--- a/apps/front/prerender/helpers/ManifestParser.ts
+++ b/apps/front/prerender/helpers/ManifestParser.ts
@@ -123,7 +123,7 @@ export class ManifestParser {
} else {
return {
...a,
- [ext]: [b],
+ [ext]: [b]
}
}
}, {})
@@ -157,7 +157,7 @@ export class ManifestParser {
...a,
jsonManifest[b].file,
...(jsonManifest[b]?.assets || []),
- ...(jsonManifest[b]?.css || []),
+ ...(jsonManifest[b]?.css || [])
]
: a,
[]
diff --git a/apps/front/prerender/prerender.ts b/apps/front/prerender/prerender.ts
index 2637f03f..ea83b160 100644
--- a/apps/front/prerender/prerender.ts
+++ b/apps/front/prerender/prerender.ts
@@ -1,5 +1,5 @@
// @ts-ignore
-import { render } from "~/server/index-server"
+import { render } from "~/index-server"
import * as mfs from "@cher-ami/mfs"
import path from "path"
import chalk from "chalk"
@@ -9,7 +9,6 @@ import { isRouteIndex } from "./helpers/isRouteIndex"
import { ManifestParser } from "./helpers/ManifestParser"
import { renderToPipeableStream, renderToString } from "react-dom/server"
import { JSXElementConstructor, ReactElement } from "react"
-import { htmlReplacement } from "~/server/helpers/htmlReplacement"
/**
* Prerender
@@ -17,7 +16,10 @@ import { htmlReplacement } from "~/server/helpers/htmlReplacement"
* @param urls: Urls to generate
* @param outDirStatic: Generation destination directory
*/
-export const prerender = async (urls: string[], outDirStatic = config.outDirStatic) => {
+export const prerender = async (
+ urls: string[],
+ outDirStatic = config.outDirStaticClient
+) => {
const indexTemplateSrc = `${outDirStatic}/index-template.html`
// copy index as template to avoid the override with the generated static index.html bellow
@@ -26,8 +28,8 @@ export const prerender = async (urls: string[], outDirStatic = config.outDirStat
}
// get script tags to inject in render
- const base = process.env.VITE_APP_BASE || loadEnv("", process.cwd(), "").VITE_APP_BASE
- const manifest = (await mfs.readFile(`${outDirStatic}/manifest.json`)) as string
+ const base = loadEnv("", process.cwd(), "").VITE_APP_BASE || process.env.VITE_APP_BASE
+ const manifest = (await mfs.readFile(`${outDirStatic}/.vite/manifest.json`)) as string
const scriptTags = ManifestParser.getScriptTagFromManifest(manifest, base)
// pre-render each route
@@ -36,7 +38,7 @@ export const prerender = async (urls: string[], outDirStatic = config.outDirStat
try {
// Request DOM
- const dom = await render(url, scriptTags, true)
+ const dom = await render(url, scriptTags, true, base)
// create stream and generate current file when all DOM is ready
renderToPipeableStream(dom, {
onAllReady() {
@@ -44,7 +46,7 @@ export const prerender = async (urls: string[], outDirStatic = config.outDirStat
},
onError(x) {
console.error(x)
- },
+ }
})
} catch (e) {
console.log(e)
@@ -73,3 +75,12 @@ const createHtmlFile = async (
await mfs.createFile(htmlFilePath, htmlReplacement(renderToString(dom)))
console.log(chalk.green(` → ${htmlFilePath.split("static")[1]}`))
}
+
+/**
+ * Render string patch middleware
+ */
+const htmlReplacement = (render: string): string =>
+ render
+ .replace(" => {
resolve([
"/",
"/work",
- "/work/first-work",
- "/work/second-work",
+ "/work/first",
+ "/work/second",
"/404"
])
})
diff --git a/apps/front/server.js b/apps/front/server.dev.js
similarity index 61%
rename from apps/front/server.js
rename to apps/front/server.dev.js
index 817fc0e8..e32a2748 100644
--- a/apps/front/server.js
+++ b/apps/front/server.dev.js
@@ -6,42 +6,42 @@ import portFinderSync from "portfinder-sync"
import { renderToPipeableStream } from "react-dom/server"
import { createServer, loadEnv } from "vite"
import config from "./config/config.js"
-
-const log = debug("server:server")
+const log = debug("server:server.dev")
const loadEnvVars = loadEnv(process.env.NODE_ENV, process.cwd(), "")
-const isProduction = process.env.NODE_ENV === "production"
-const port = process.env.DOCKER_NODE_PORT ?? portFinderSync.getPort(3000)
-const protocol = loadEnvVars.PROTOCOL ?? "http"
-const isSSL = protocol === "https"
+const BASE = loadEnvVars.VITE_APP_BASE || process.env.VITE_APP_BASE || "/"
+const PROTOCOL = loadEnvVars.PROTOCOL ?? "http"
+const IS_SSL = PROTOCOL === "https"
+const PORT = process.env.DOCKER_NODE_PORT ?? portFinderSync.getPort(5173)
+const INDEX_SERVER_PATH = `${config.srcDir}/index-server.tsx`
;(async () => {
- // Get cert and key for https
- let key, cert
- if (isSSL) {
+ // --------------------------------------------------------------------------- SSL
+
+ /**
+ * Get cert and key for https
+ */
+ let KEY, CERT
+ if (IS_SSL) {
if (!(await mfs.fileExists("key.pem")) || !(await mfs.fileExists("cert.pem"))) {
console.error(
"You need to generate a key and a cert file with openssl in the apps/front/ directory. Follow the README documentation 'setup-local-ssl'."
)
process.exit(1)
}
- key = await mfs.readFile("key.pem")
- cert = await mfs.readFile("cert.pem")
+ KEY = await mfs.readFile("key.pem")
+ CERT = await mfs.readFile("cert.pem")
}
+ // --------------------------------------------------------------------------- SERVER
+
/**
* Dev server
*
- *
*/
+ // prettier-ignore
async function createDevServer() {
const app = express()
-
- // dev script to inject
- const devScripts = {
- js: [{ tag: "script", attr: { type: "module", src: "/src/index.tsx" } }],
- }
-
// Create Vite server in middleware mode.
// This disables Vite's own HTML serving logic and let the parent server take control.
// https://vitejs.dev/config/server-options.html#server-middlewaremode
@@ -49,10 +49,11 @@ const isSSL = protocol === "https"
logLevel: "info",
server: {
middlewareMode: true,
- https: (isSSL && { key, cert }) || false,
- cors: false,
+ https: (IS_SSL && { key: KEY, cert: CERT }) || false,
+ cors: false
},
appType: "custom",
+ base: BASE
})
// use vite's connect instance as middleware
@@ -60,11 +61,13 @@ const isSSL = protocol === "https"
app.use("*", async (req, res, next) => {
try {
// Transforms the ESM source code to be usable in Node.js
- const { render } = await vite.ssrLoadModule(
- `${config.srcDir}/server/index-server.tsx`
- )
+ const { render } = await vite.ssrLoadModule(INDEX_SERVER_PATH)
+ // dev script to inject
+ const devScripts = {
+ js: [{ tag: "script", attr: { type: "module", src: "/src/index-client.tsx" } }]
+ }
// Get react-dom from the render method
- const dom = await render(req.originalUrl, devScripts, false)
+ const dom = await render(req.originalUrl, devScripts, false, BASE)
// Create stream with renderToPipeableStream to support Suspense API
const stream = renderToPipeableStream(dom, {
onShellReady() {
@@ -75,7 +78,7 @@ const isSSL = protocol === "https"
onError(e) {
res.statusCode = 500
console.error(e)
- },
+ }
})
} catch (e) {
vite.ssrFixStacktrace(e)
@@ -84,29 +87,17 @@ const isSSL = protocol === "https"
})
let sslServer
- if (isSSL) {
- sslServer = https.createServer({ key, cert }, app)
+ if (IS_SSL) {
+ sslServer = https.createServer({ key: KEY, cert: CERT }, app)
sslServer.on("error", (error) => {
log(`Error on server: ${error}`)
})
}
- // return vite, app and server
- return { vite, app, sslServer }
+ return { app, sslServer }
}
- /**
- * Production server
- * TODO
- *
- *
- */
- async function createProdServer() {}
+ // ---------------------------------------------------------------------------
- /**
- * Let's go!
- */
- ;(isProduction ? createProdServer : createDevServer)().then(({ app, sslServer }) =>
- (sslServer ?? app).listen(port)
- )
+ createDevServer().then(({ app, sslServer }) => (sslServer ?? app).listen(PORT))
})()
diff --git a/apps/front/server.prod.js b/apps/front/server.prod.js
new file mode 100644
index 00000000..c4c553c3
--- /dev/null
+++ b/apps/front/server.prod.js
@@ -0,0 +1,70 @@
+import chalk from "chalk"
+import express from "express"
+import fs from "node:fs/promises"
+import portFinderSync from "portfinder-sync"
+import { renderToPipeableStream } from "react-dom/server"
+import { loadEnv } from "vite"
+import config from "./config/config.js"
+
+const loadEnvVars = loadEnv(process.env.NODE_ENV, process.cwd(), "")
+const BASE = loadEnvVars.VITE_APP_BASE || process.env.VITE_APP_BASE || "/"
+const PORT = process.env.DOCKER_NODE_PORT ?? portFinderSync.getPort(5173)
+const MANIFEST_PARSER_PATH = `${config.outDirSsrScripts}/ManifestParser.js`
+const VITE_MANIFEST_PATH = `${config.outDirSsrClient}/.vite/manifest.json`
+const INDEX_SERVER_PATH = `${config.outDirSsrServer}/index-server.js`
+
+;(async () => {
+ // --------------------------------------------------------------------------- SERVER
+
+ /**
+ * Production server
+ *
+ */
+ async function createProdServer() {
+ const app = express()
+ const compression = (await import("compression")).default
+ const sirv = (await import("sirv")).default
+ app.use(compression())
+ app.use(BASE, sirv(config.outDirSsrClient, { extensions: [] }))
+ app.use("*", async (req, res) => {
+ try {
+ // Prepare scripts to inject in template
+ const { ManifestParser } = await import(MANIFEST_PARSER_PATH)
+ const manifest = await fs.readFile(VITE_MANIFEST_PATH, "utf-8")
+ const scriptTags = ManifestParser.getScriptTagFromManifest(manifest, BASE)
+
+ // Prepare & stream the DOM
+ const { render } = await import(INDEX_SERVER_PATH)
+ const dom = await render(req.originalUrl, scriptTags, false, BASE)
+
+ // stream the DOM
+ const stream = renderToPipeableStream(dom, {
+ onShellReady() {
+ res.setHeader("Content-type", "text/html")
+ res.statusCode = 200
+ stream.pipe(res)
+ },
+ onError(e) {
+ res.statusCode = 500
+ console.error(e)
+ }
+ })
+ } catch (e) {
+ console.log(e.stack)
+ res.status(500).end(e.stack)
+ }
+ })
+
+ return { app }
+ }
+
+ // --------------------------------------------------------------------------- START
+
+ createProdServer().then(({ app }) =>
+ app.listen(PORT, () => {
+ console.log(
+ `⚡️ ${chalk.white("server.prod is running in")} ${chalk.cyan(`http://localhost:${PORT}`)}`
+ )
+ })
+ )
+})()
diff --git a/apps/front/src/assets/favicon.png b/apps/front/src/assets/favicon.png
new file mode 100644
index 00000000..487726ee
Binary files /dev/null and b/apps/front/src/assets/favicon.png differ
diff --git a/apps/front/src/components/app/App.module.less b/apps/front/src/components/app/App.module.scss
similarity index 93%
rename from apps/front/src/components/app/App.module.less
rename to apps/front/src/components/app/App.module.scss
index 107c30d5..567a12cf 100644
--- a/apps/front/src/components/app/App.module.less
+++ b/apps/front/src/components/app/App.module.scss
@@ -1,4 +1,4 @@
-@import (reference) "../../references.less";
+@use "../../styles/reference" as *;
/**
* BEM block is always "root" className
diff --git a/apps/front/src/components/app/App.tsx b/apps/front/src/components/app/App.tsx
index c49189f1..923b3da6 100644
--- a/apps/front/src/components/app/App.tsx
+++ b/apps/front/src/components/app/App.tsx
@@ -1,13 +1,11 @@
-import css from "./App.module.less"
+import css from "./App.module.scss"
import React from "react"
import { Link, Stack, TManageTransitions } from "@cher-ami/router"
import debug from "@cher-ami/debug"
import { EPages } from "~/routes"
const log = debug(`front:App`)
-export interface IProps {}
-
-function App(props: IProps) {
+function App() {
/**
* Manage page transitions scenario
* https://github.com/cher-ami/router/tree/main#manage-transitions
@@ -17,7 +15,7 @@ function App(props: IProps) {
const manageTransitions = async ({
previousPage,
currentPage,
- unmountPreviousPage,
+ unmountPreviousPage
}: TManageTransitions): Promise => {
const $current = currentPage?.$element
@@ -42,25 +40,22 @@ function App(props: IProps) {
// ------------------------------------------------------------------------------- RENDER
+ const navExample = (
+
+
+ Home
+
+ {["first", "second"].map((slug) => (
+
+ Work {slug}
+
+ ))}
+
+ )
+
return (
-
-
-
- Home
-
-
-
- Work - id: "first-work"
-
-
-
-
- Work - id: "second-work"
-
-
-
-
+ {navExample}
)
diff --git a/apps/front/src/components/baseButton/BaseButton.module.less b/apps/front/src/components/baseButton/BaseButton.module.scss
similarity index 88%
rename from apps/front/src/components/baseButton/BaseButton.module.less
rename to apps/front/src/components/baseButton/BaseButton.module.scss
index 64b0e221..fa2b7b88 100644
--- a/apps/front/src/components/baseButton/BaseButton.module.less
+++ b/apps/front/src/components/baseButton/BaseButton.module.scss
@@ -1,5 +1,3 @@
-@import (reference) "../../references.less";
-
.root {
cursor: pointer;
--base-background-color: var(--color-bg);
diff --git a/apps/front/src/components/baseButton/BaseButton.tsx b/apps/front/src/components/baseButton/BaseButton.tsx
index 07d94d6d..dc78de45 100644
--- a/apps/front/src/components/baseButton/BaseButton.tsx
+++ b/apps/front/src/components/baseButton/BaseButton.tsx
@@ -1,5 +1,5 @@
import React, { MutableRefObject } from "react"
-import css from "./BaseButton.module.less"
+import css from "./BaseButton.module.scss"
import { Link, openRoute, TOpenRouteParams } from "@cher-ami/router"
import { cls } from "@cher-ami/utils"
import debug from "@cher-ami/debug"
diff --git a/apps/front/src/libs/components/cookiesBanner/CookiesBanner.module.less b/apps/front/src/components/cookiesBanner/CookiesBanner.module.scss
similarity index 90%
rename from apps/front/src/libs/components/cookiesBanner/CookiesBanner.module.less
rename to apps/front/src/components/cookiesBanner/CookiesBanner.module.scss
index e2a5949f..90e11aa1 100644
--- a/apps/front/src/libs/components/cookiesBanner/CookiesBanner.module.less
+++ b/apps/front/src/components/cookiesBanner/CookiesBanner.module.scss
@@ -1,4 +1,4 @@
-@import (reference) "../../../references.less";
+@use "../../styles/reference" as *;
.root {
position: fixed;
@@ -20,7 +20,7 @@
pointer-events: none;
}
- @media (min-width: @breakpoint-tablet) {
+ @media (min-width: $breakpoint-tablet) {
width: 30%;
right: 0;
}
diff --git a/apps/front/src/libs/components/cookiesBanner/CookiesBanner.tsx b/apps/front/src/components/cookiesBanner/CookiesBanner.tsx
similarity index 98%
rename from apps/front/src/libs/components/cookiesBanner/CookiesBanner.tsx
rename to apps/front/src/components/cookiesBanner/CookiesBanner.tsx
index 561cd414..b6b1390e 100644
--- a/apps/front/src/libs/components/cookiesBanner/CookiesBanner.tsx
+++ b/apps/front/src/components/cookiesBanner/CookiesBanner.tsx
@@ -1,4 +1,4 @@
-import css from "./CookiesBanner.module.less"
+import css from "./CookiesBanner.module.scss"
import { cls } from "@cher-ami/utils"
import React, { useEffect, useRef } from "react"
import debug from "@cher-ami/debug"
@@ -12,7 +12,7 @@ const log = debug(`front:${componentName}`)
export enum ETrackingType {
GOOGLE_ANALYTICS,
- GOOGLE_TAG_MANAGER,
+ GOOGLE_TAG_MANAGER
}
export interface ITracking {
@@ -45,7 +45,7 @@ CookiesBanner.defaultProps = {
showPolicyText: "Show our policy",
showPolicyLink: "https://cher-ami.tv",
labelButtonAccept: "yes",
- labelButtonRefuse: "no",
+ labelButtonRefuse: "no"
}
/**
@@ -55,7 +55,7 @@ CookiesBanner.defaultProps = {
*
* 1. Change default texts entries
* 2. Set tracking ID of your Google Analytics
- * 3. Modifie CSS (Less) properties in "CookiesBanner.less" file.
+ * 3. Modifie CSS (sass) properties in "CookiesBanner.module.scss" file.
*/
export function CookiesBanner(props: IProps) {
// target root
@@ -131,7 +131,7 @@ export function CookiesBanner(props: IProps) {
// auto generated when script is injected in DOM, we remove it too.
document.querySelector(
`script[src="https://www.googletagmanager.com/gtm.js?id=${trackingID}"]`
- ),
+ )
]
log("remove script tags from DOM.")
@@ -168,7 +168,7 @@ export function CookiesBanner(props: IProps) {
`window.dataLayer = window.dataLayer || [];`,
`function gtag(){dataLayer.push(arguments);}`,
`gtag('js', new Date());`,
- `gtag('config', '${trackingID}');`,
+ `gtag('config', '${trackingID}');`
].join("\n")
// add ID
trackingScript.setAttribute("id", "__ga_tracking")
@@ -197,7 +197,7 @@ export function CookiesBanner(props: IProps) {
// auto generated when script is injected in DOM, we remove it too.
document.querySelector(
'script[src$="https://www.google-analytics.com/analytics.js"]'
- ),
+ )
]
log("remove script tags from DOM.")
diff --git a/apps/front/src/libs/components/cookiesBanner/CookiesBannerService.ts b/apps/front/src/components/cookiesBanner/CookiesBannerService.ts
similarity index 100%
rename from apps/front/src/libs/components/cookiesBanner/CookiesBannerService.ts
rename to apps/front/src/components/cookiesBanner/CookiesBannerService.ts
diff --git a/apps/front/src/libs/components/lazyImage/LazyImage.module.less b/apps/front/src/components/lazyImage/LazyImage.module.scss
similarity index 66%
rename from apps/front/src/libs/components/lazyImage/LazyImage.module.less
rename to apps/front/src/components/lazyImage/LazyImage.module.scss
index 0128de64..3487bbfa 100644
--- a/apps/front/src/libs/components/lazyImage/LazyImage.module.less
+++ b/apps/front/src/components/lazyImage/LazyImage.module.scss
@@ -1,4 +1,4 @@
-@import (reference) "../../../references.less";
+@use "../../styles/reference" as *;
.root {
width: 100%;
diff --git a/apps/front/src/components/lazyImage/LazyImage.tsx b/apps/front/src/components/lazyImage/LazyImage.tsx
new file mode 100644
index 00000000..97d6bbc8
--- /dev/null
+++ b/apps/front/src/components/lazyImage/LazyImage.tsx
@@ -0,0 +1,95 @@
+import React, { CSSProperties, useEffect, useRef, useState } from "react"
+import css from "./LazyImage.module.scss"
+import { cls } from "@cher-ami/utils"
+
+interface IProps {
+ src?: string
+ dataSrc?: string
+ dataSrcSet?: string
+ className?: string
+ alt?: string
+ aspectRatio?: number
+ style?: CSSProperties
+ onLoaded?: (img: HTMLImageElement) => void
+}
+
+export type Lazy = "lazyload" | "lazyloading" | "lazyloaded"
+
+/**
+ * @name LazyImage
+ */
+function LazyImage(props: IProps) {
+ const imageRef = useRef(null)
+ const [lazyState, setLazyState] = useState("lazyload")
+
+ /**
+ * Preload one image
+ * @param image
+ */
+ const preloadImage = (image: HTMLImageElement): Promise =>
+ new Promise((resolve) => {
+ const dataSrc = image.dataset.src
+ const dataSrcSet = image.dataset.srcset
+ // create void image tag for start preload
+ // const img = document.createElement("img")
+ if (dataSrc) image.src = dataSrc
+ if (dataSrcSet) image.srcset = dataSrcSet
+
+ image.onload = () => {
+ // remove new unused attributes
+ image.removeAttribute("data-src")
+ image.removeAttribute("data-srcset")
+
+ resolve()
+ }
+ })
+
+ /**
+ * Intersection observer
+ */
+
+ const lazyStateRef = useRef("lazyload")
+
+ useEffect(() => {
+ const observer = new IntersectionObserver((entries) => {
+ entries.forEach(async (entry) => {
+ if (entry.isIntersecting) {
+ const image = entry.target as HTMLImageElement
+ if (lazyStateRef.current === "lazyloaded") return
+ lazyStateRef.current = "lazyloading"
+ setLazyState("lazyloading")
+
+ // Start preload
+ await preloadImage(image)
+
+ // end!
+ setLazyState("lazyloaded")
+ props.onLoaded?.(image)
+ observer.disconnect()
+ observer.unobserve(imageRef.current)
+ }
+ })
+ })
+ if (imageRef.current) observer.observe(imageRef.current)
+ return () => {
+ if (imageRef.current) observer.unobserve(imageRef.current)
+ }
+ }, [])
+
+ return (
+
+ )
+}
+
+export default LazyImage
diff --git a/apps/front/src/libs/components/noSSR/NoSSR.tsx b/apps/front/src/components/noSSR/NoSSR.tsx
similarity index 100%
rename from apps/front/src/libs/components/noSSR/NoSSR.tsx
rename to apps/front/src/components/noSSR/NoSSR.tsx
diff --git a/apps/front/src/fonts/fonts.less b/apps/front/src/fonts/fonts.less
deleted file mode 100644
index 3728f24a..00000000
--- a/apps/front/src/fonts/fonts.less
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * Imports all your fonts here
- */
-@import "roboto-regular.less";
diff --git a/apps/front/src/fonts/roboto-regular.less b/apps/front/src/fonts/roboto-regular.less
deleted file mode 100644
index 1d06b48a..00000000
--- a/apps/front/src/fonts/roboto-regular.less
+++ /dev/null
@@ -1,16 +0,0 @@
-@import (reference) "../references";
-
-@font-face {
- font-family: "roboto-regular";
- // prettier-ignore
- src: url("roboto-regular/roboto-regular.woff2") format("woff2"),
- url("roboto-regular/roboto-regular.woff") format("woff"),
- url("roboto-regular/roboto-regular.ttf") format("truetype");
-
- font-weight: normal;
- font-style: normal;
-}
-
-.font-roboto-regular() {
- font-family: "roboto-regular", sans-serif;
-}
diff --git a/apps/front/src/global.d.ts b/apps/front/src/global.d.ts
index 85a4820d..ba9174e0 100644
--- a/apps/front/src/global.d.ts
+++ b/apps/front/src/global.d.ts
@@ -1,4 +1,4 @@
-declare module "*.module.less"
+declare module "*.module.scss"
declare module "*.bmp"
declare module "*.gif"
declare module "*.jpg"
diff --git a/apps/front/src/index.tsx b/apps/front/src/index-client.tsx
similarity index 82%
rename from apps/front/src/index.tsx
rename to apps/front/src/index-client.tsx
index 731cd901..000e5c80 100644
--- a/apps/front/src/index.tsx
+++ b/apps/front/src/index-client.tsx
@@ -1,6 +1,6 @@
-import "./index.less"
+import "./styles/index.scss"
import React from "react"
-import { hydrateRoot } from "react-dom/client"
+import { createRoot, hydrateRoot } from "react-dom/client"
import App from "./components/app/App"
import { routes } from "./routes"
import { LangService, Router } from "@cher-ami/router"
@@ -44,15 +44,16 @@ const history = createBrowserHistory()
const langService = new LangService({
showDefaultLangInUrl,
languages,
- base,
+ base
})
/**
* Render react app wrapped by @cher-ami/router
* @doc https://github.com/cher-ami/router
*/
-hydrateRoot(
- document.getElementById("root"),
+
+const rootEl = document.getElementById("root")
+const render = (
)
+
+/**
+ * Render or hydrate the app, depends on build type
+ */
+if (import.meta.env.VITE_SPA === "true") {
+ createRoot(rootEl).render(render)
+} else {
+ hydrateRoot(rootEl, render)
+}
diff --git a/apps/front/src/server/index-server.tsx b/apps/front/src/index-server.tsx
similarity index 75%
rename from apps/front/src/server/index-server.tsx
rename to apps/front/src/index-server.tsx
index 732ef558..1da0c073 100644
--- a/apps/front/src/server/index-server.tsx
+++ b/apps/front/src/index-server.tsx
@@ -1,17 +1,16 @@
import fetch from "cross-fetch"
import * as React from "react"
import { routes } from "~/routes"
-import App from "../components/app/App"
+import App from "./components/app/App"
import { languages, showDefaultLangInUrl } from "~/languages"
import { LangService, requestStaticPropsFromRoute, Router } from "@cher-ami/router"
import { GlobalDataContext } from "~/store/GlobalDataContext"
-import { loadEnv } from "vite"
-import { TScriptsObj } from "../../prerender/helpers/ManifestParser"
-import { CherScripts } from "~/server/helpers/CherScripts"
-import { RawScript } from "~/server/helpers/RawScript"
-import { ViteDevScripts } from "~/server/helpers/ViteDevScripts"
+import { TScriptsObj } from "../prerender/helpers/ManifestParser"
+import { CherScripts } from "~/libs/core/CherScripts"
+import { RawScript } from "~/libs/core/RawScript"
+import { ViteDevScripts } from "~/libs/core/ViteDevScripts"
import { ReactElement } from "react"
-import { preventSlashes } from "~/server/helpers/preventSlashes"
+import favicon from "./assets/favicon.png"
// ----------------------------------------------------------------------------- PREPARE
@@ -20,27 +19,34 @@ import { preventSlashes } from "~/server/helpers/preventSlashes"
* @param url
* @param isPrerender
* @param scripts
+ * @param base
*/
// prettier-ignore
export async function render(
url: string,
scripts: TScriptsObj,
- isPrerender = false
+ isPrerender = false,
+ base: string
): Promise {
- // prepare base & URL
- const base = process.env.VITE_APP_BASE || loadEnv("", process.cwd(), "").VITE_APP_BASE
- url = preventSlashes(`${isPrerender ? base : ""}${url}`)
+
+ // prepare base & URL, remove trailing slashes
+ url = `${isPrerender ? base : ""}${url}`.replace(/(https?:\/\/)|(\/)+/g, "$1$2")
// Init lang service
const langService = new LangService({
staticLocation: url,
showDefaultLangInUrl,
languages,
- base,
+ base
})
// Request static props
- const ssrStaticProps = await requestStaticPropsFromRoute({ url, base, routes, langService })
+ const ssrStaticProps = await requestStaticPropsFromRoute({
+ url,
+ base,
+ routes,
+ langService
+ })
const meta = ssrStaticProps?.props?.meta
const globalData = { foo: "bar" }
@@ -53,11 +59,11 @@ export async function render(
{meta?.title || "app"}
+
-
-
diff --git a/apps/front/src/index.less b/apps/front/src/index.less
deleted file mode 100644
index 84bad5fa..00000000
--- a/apps/front/src/index.less
+++ /dev/null
@@ -1,17 +0,0 @@
-@import (reference) "./references.less";
-@import (inline) "../node_modules/@cher-ami/css-flat/css-flat.css";
-@import "./fonts/fonts.less";
-@import "./variables/variables";
-
-html {
- // When you use --font-size var, 1px = 1rem
- font-size: var(--font-size);
-}
-
-body {
- font-family: sans-serif;
- .font-roboto-regular();
- background: var(--color-bg);
- color: var(--color-text);
- font-size: 16rem;
-}
diff --git a/apps/front/src/languages.ts b/apps/front/src/languages.ts
index a42541e6..63e2cbc4 100644
--- a/apps/front/src/languages.ts
+++ b/apps/front/src/languages.ts
@@ -7,8 +7,8 @@ import { TLanguage } from "@cher-ami/router"
export const languages: TLanguage[] = [
{
key: "fr",
- default: true,
- },
+ default: true
+ }
// {
// key: "en",
// },
diff --git a/apps/front/src/libs/components/lazyImage/LazyImage.tsx b/apps/front/src/libs/components/lazyImage/LazyImage.tsx
deleted file mode 100644
index fb8459f2..00000000
--- a/apps/front/src/libs/components/lazyImage/LazyImage.tsx
+++ /dev/null
@@ -1,93 +0,0 @@
-import React, { CSSProperties, useRef, useState } from "react"
-import css from "./LazyImage.module.less"
-import { cls } from "@cher-ami/utils"
-import useIntersectionObserver from "~/libs/hooks/useIntersectionObserver"
-import { useAsyncEffect } from "~/libs/hooks/useAsyncEffect"
-
-type TSrc = {
- dataSrc: string
-}
-
-type TSrcset = {
- dataSrcset: string
-}
-
-type TProps = {
- alt: string
- src?: string
- className?: string
- aspectRatio?: number
- style?: CSSProperties
- onLoaded?: (img: HTMLImageElement) => void
-} & (TSrc | TSrcset)
-
-export type Lazy = "lazyload" | "lazyloading" | "lazyloaded"
-
-/**
- * @name LazyImage
- */
-export function LazyImage(props: TProps) {
- const imageRef = useRef(null)
- const [lazyState, setLazyState] = useState("lazyload")
- const observer = useIntersectionObserver(imageRef, {})
- const isVisible = !!observer?.isIntersecting
-
- /**
- * Preload one image
- * @param image
- */
- const preloadImage = (image: HTMLImageElement): Promise =>
- new Promise((resolve) => {
- const dataSrc = image.dataset.src
- const dataSrcSet = image.dataset.srcset
-
- // create void image tag for start preload
- const img = document.createElement("img")
- if (dataSrc) img.src = dataSrc
- if (dataSrcSet) img.srcset = dataSrcSet
-
- // Resolve
- img.onload = () => resolve()
- })
-
- /**
- * Intersection observer
- */
- useAsyncEffect(async () => {
- if (isVisible) {
- if (lazyState === "lazyloaded") return
-
- setLazyState("lazyloading")
-
- // Start preload
- await preloadImage(imageRef.current)
-
- // Set src & srcset, then remove data-attr on DOM
- if (imageRef.current.dataset.src)
- imageRef.current.src = imageRef.current.dataset.src
- if (imageRef.current.dataset.srcset)
- imageRef.current.srcset = imageRef.current.dataset.srcset
- imageRef.current.removeAttribute("data-src")
- imageRef.current.removeAttribute("data-srcset")
-
- // end!
- setLazyState("lazyloaded")
- props.onLoaded?.(imageRef.current)
- }
- }, [isVisible])
-
- return (
-
- )
-}
diff --git a/apps/front/src/server/helpers/CherScripts.tsx b/apps/front/src/libs/core/CherScripts.tsx
similarity index 65%
rename from apps/front/src/server/helpers/CherScripts.tsx
rename to apps/front/src/libs/core/CherScripts.tsx
index 46129354..fb16874e 100644
--- a/apps/front/src/server/helpers/CherScripts.tsx
+++ b/apps/front/src/libs/core/CherScripts.tsx
@@ -1,5 +1,5 @@
-import { TScript } from "../../../prerender/helpers/ManifestParser"
import * as React from "react"
+type TScript = { tag: string; attr: { [x: string]: string } }
export const ScriptTag = ({ tag, attr }: TScript): JSX.Element => {
const T = tag
@@ -9,9 +9,5 @@ export const ScriptTag = ({ tag, attr }: TScript): JSX.Element => {
}
export const CherScripts = ({ scripts }: { scripts: TScript[] }): JSX.Element => (
- <>
- {scripts?.map((script, i) => (
-
- ))}
- >
+ <>{scripts?.map((script, i) => )}>
)
diff --git a/apps/front/src/server/helpers/RawScript.tsx b/apps/front/src/libs/core/RawScript.tsx
similarity index 86%
rename from apps/front/src/server/helpers/RawScript.tsx
rename to apps/front/src/libs/core/RawScript.tsx
index 49612f71..9a8e2601 100644
--- a/apps/front/src/server/helpers/RawScript.tsx
+++ b/apps/front/src/libs/core/RawScript.tsx
@@ -11,7 +11,7 @@ export const RawScript = ({ name, data }) => {
)
diff --git a/apps/front/src/server/helpers/ViteDevScripts.tsx b/apps/front/src/libs/core/ViteDevScripts.tsx
similarity index 93%
rename from apps/front/src/server/helpers/ViteDevScripts.tsx
rename to apps/front/src/libs/core/ViteDevScripts.tsx
index 91843be0..dfb46fc1 100644
--- a/apps/front/src/server/helpers/ViteDevScripts.tsx
+++ b/apps/front/src/libs/core/ViteDevScripts.tsx
@@ -11,7 +11,7 @@ export const ViteDevScripts = () => {
dangerouslySetInnerHTML={{
__html: `
import { inject } from "/@vite-plugin-checker-runtime";
- inject({ overlayConfig: {}, base: "${base}"});`,
+ inject({ overlayConfig: {}, base: "${base}"});`
}}
/>
@@ -27,7 +27,7 @@ export const ViteDevScripts = () => {
refresh.injectIntoGlobalHook(window)
window.$RefreshReg$ = () => {}
window.$RefreshSig$ = () => (type) => type
- window.__vite_plugin_react_preamble_installed__ = true`,
+ window.__vite_plugin_react_preamble_installed__ = true`
}}
/>
>
diff --git a/apps/front/src/libs/dom/MetaManager.ts b/apps/front/src/libs/dom/MetaManager.ts
index d177aa71..b4340a90 100644
--- a/apps/front/src/libs/dom/MetaManager.ts
+++ b/apps/front/src/libs/dom/MetaManager.ts
@@ -99,7 +99,7 @@ export class MetasManager {
values = null,
tags = MetasManager.DEFAULT_META_TAGS,
autoCreateMetaTag = true,
- autoRemoveMetaTag = true,
+ autoRemoveMetaTag = true
}: {
values?: TMetaTags
tags?: TMetaTags
diff --git a/apps/front/src/libs/dom/convertRemToPx.ts b/apps/front/src/libs/dom/convertRemToPx.ts
index 21a56bab..fad33975 100644
--- a/apps/front/src/libs/dom/convertRemToPx.ts
+++ b/apps/front/src/libs/dom/convertRemToPx.ts
@@ -1,6 +1,6 @@
/**
* @name convertRemToPx
- * @description Convert px from Rem from CSS variable calculated in the ratio.less file
+ * @description Convert px from Rem from CSS variable calculated in the _ratio.scss file
* Usefully to get the same value in px that the value we put in rem in our CSS
* @param {number} pxValue
* @returns {number}
@@ -14,7 +14,7 @@ export const convertRemToPx = (pxValue: number): number => {
/**
* @name _convertFontSizeCssVarToPx
- * @description Convert the font size variable, calculated in the ratio.less file to px
+ * @description Convert the font size variable, calculated in the _ratio.scss file to px
* @param cssUnitValue
* @returns
*/
diff --git a/apps/front/src/libs/events/Beeper.ts b/apps/front/src/libs/events/Beeper.ts
index fc1a521c..cc74ef14 100644
--- a/apps/front/src/libs/events/Beeper.ts
+++ b/apps/front/src/libs/events/Beeper.ts
@@ -56,6 +56,6 @@ export function Beeper(initialState: S = null): TBeeper {
},
get initialState() {
return _initialState
- },
+ }
}
}
diff --git a/apps/front/src/libs/hooks/useMinWidth.ts b/apps/front/src/libs/hooks/useMinWidth.ts
index 2c8b0bca..697706e9 100644
--- a/apps/front/src/libs/hooks/useMinWidth.ts
+++ b/apps/front/src/libs/hooks/useMinWidth.ts
@@ -1,6 +1,6 @@
import {
getBreakpointCssVariable,
- TBreakpoint,
+ TBreakpoint
} from "~/libs/dom/getBreakpointCssVariable"
import { browserOnly } from "@cher-ami/utils"
import { useMatchMedia } from "~/libs/hooks/useMatchMedia"
diff --git a/apps/front/src/libs/load/PreloadService.ts b/apps/front/src/libs/load/PreloadService.ts
index 4d1c427e..e0a2b788 100644
--- a/apps/front/src/libs/load/PreloadService.ts
+++ b/apps/front/src/libs/load/PreloadService.ts
@@ -18,7 +18,7 @@ export class PreloadService {
this.onPreloadSignal = Beeper({
complete: false,
counter: 0,
- percent: 0,
+ percent: 0
})
}
@@ -35,7 +35,7 @@ export class PreloadService {
this.onPreloadSignal.dispatch({
complete: true,
percent: 100,
- counter: 0,
+ counter: 0
})
return
}
@@ -84,7 +84,7 @@ export class PreloadService {
const dispatchValue = {
counter,
percent,
- complete,
+ complete
}
log("dispatchValue", dispatchValue)
this.onPreloadSignal.dispatch(dispatchValue)
diff --git a/apps/front/src/mixins/elements.less b/apps/front/src/mixins/elements.less
deleted file mode 100644
index d88c0074..00000000
--- a/apps/front/src/mixins/elements.less
+++ /dev/null
@@ -1 +0,0 @@
-@import (reference) "../references.less";
diff --git a/apps/front/src/mixins/grid.less b/apps/front/src/mixins/grid.less
deleted file mode 100644
index d88c0074..00000000
--- a/apps/front/src/mixins/grid.less
+++ /dev/null
@@ -1 +0,0 @@
-@import (reference) "../references.less";
diff --git a/apps/front/src/mixins/helpers.less b/apps/front/src/mixins/helpers.less
deleted file mode 100644
index 705daa33..00000000
--- a/apps/front/src/mixins/helpers.less
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * Debug an element with an outline with custom size and color.
- */
-.debug (@size: 1px, @color: red) {
- outline: @size solid @color;
-}
-
-/**
- * Set bigger hitzone with :after.
- */
-.hitZone (@horizontalSize: 10px, @verticalSize: 10px, @color: transparent) {
- &:after {
- content: "";
- background-color: @color;
- position: absolute;
- top: -@verticalSize;
- right: -@horizontalSize;
- bottom: -@verticalSize;
- left: -@horizontalSize;
- }
-}
-
-/**
- * Hide text only visually to preserve seo check
- * https://webaim.org/techniques/css/invisiblecontent/#techniques
- * https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
- */
-.visuallyHidden() {
- clip: rect(1px, 1px, 1px, 1px);
- clip-path: inset(50%);
- height: 1px;
- width: 1px;
- margin: -1px;
- overflow: hidden;
- padding: 0;
- position: absolute;
-}
-
-// ----------------------------------------------------------------------------- POSITION AND SIZE
-
-/**
- * Center with absolute and translate yx, y or x.
- * Use with caution, preferable to avoid and use flex most of time.
- */
-.absoluteCenter (@axis:yx) {
- & when (@axis = yx) {
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- }
-
- & when (@axis = y) {
- position: absolute;
- top: 50%;
- left: auto;
- transform: translateY(-50%);
- }
-
- & when (@axis = x) {
- position: absolute;
- top: auto;
- left: 50%;
- transform: translateX(-50%);
- }
-}
-
-/**
- * Remove touch callout on safari mobile
- */
-.disableTouchCallout () {
- -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
-}
-
-// ----------------------------------------------------------------------------- SCROLLS
-
-/**
- * Patch scrolling on iOS
- */
-.hideScrollBar () {
- overflow-scrolling: touch;
- &::-webkit-scrollbar {
- width: 0 !important;
- height: 0 !important;
- }
-}
-
-/**
- * Force scrollBar to be shown
- */
-.showScrollBar () {
- -ms-overflow-style: scrollbar;
- &::-webkit-scrollbar {
- width: auto;
- height: auto;
- }
-}
-
-// ----------------------------------------------------------------------------- FONTS
-
-/**
- * Smooth fonts
- */
-.fontSmooth () {
- font-smooth: always;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- text-rendering: optimizeLegibility;
-}
diff --git a/apps/front/src/mixins/ratio.less b/apps/front/src/mixins/ratio.less
deleted file mode 100644
index 61bfbc34..00000000
--- a/apps/front/src/mixins/ratio.less
+++ /dev/null
@@ -1,185 +0,0 @@
-@import (reference) "../references.less";
-
-/**
-Get VH value from ratio
- */
-.ratioVW(@n1, @n2 : @viewport-reference-width) {
- @isnumber: isnumber(@n1);
- @returns: if((@isnumber), (@n1 / @n2) * 100vw, @n1);
-}
-
-/**
-Get VH value from ratio
- */
-.ratioVH(@n1, @n2 : @viewport-reference-height) {
- @isnumber: isnumber(@n1);
-
- // fallback for old browser who don't support css --var
- @returns: if((@isnumber), (@n1 / @n2) * 100vh, @n1);
- // vh value relative to css --vh variable
- @var: var(--vh, 1vh);
- @returns: if((@isnumber), ~"calc( (@{n1} / @{n2}) * (@{var} * 100) )", @n1);
-}
-
-/**
-Get VW value for property according to value in pixels
- */
-.propertyVW(@property, @n1, @n2 : @viewport-reference-width) {
- @value-length-mobile: length(@n1);
-
- & when (@value-length-mobile = 1) {
- @{property}: .ratioVW(@n1, @n2) [ @returns];
- }
- & when (@value-length-mobile = 2) {
- @{property}: .ratioVW(extract(@n1, 1), @n2) [ @returns] .ratioVW(extract(@n1, 2), @n2)
- [ @returns];
- }
- & when (@value-length-mobile = 3) {
- @{property}: .ratioVW(extract(@n1, 1), @n2) [ @returns] .ratioVW(extract(@n1, 2), @n2)
- [ @returns] .ratioVW(extract(@n1, 3), @n2) [ @returns];
- }
- & when (@value-length-mobile = 4) {
- @{property}: .ratioVW(extract(@n1, 1), @n2) [ @returns] .ratioVW(extract(@n1, 2), @n2)
- [ @returns] .ratioVW(extract(@n1, 3), @n2) [ @returns]
- .ratioVW(extract(@n1, 4), @n2) [ @returns];
- }
-}
-
-/**
-Get VH value for property according to value in pixels
- */
-.propertyVH(@property, @n1, @n2 : @viewport-reference-height, @aspect-ratio: true) {
- @value-length-mobile: length(@n1);
-
- & when (@value-length-mobile = 1) {
- @{property}: .ratioVH(@n1, @n2) [ @returns];
- }
- & when (@value-length-mobile = 2) {
- @{property}: .ratioVH(extract(@n1, 1), @n2) [ @returns] .ratioVH(extract(@n1, 2), @n2)
- [ @returns];
- }
- & when (@value-length-mobile = 3) {
- @{property}: .ratioVH(extract(@n1, 1), @n2) [ @returns] .ratioVH(extract(@n1, 2), @n2)
- [ @returns] .ratioVH(extract(@n1, 3), @n2) [ @returns];
- }
- & when (@value-length-mobile = 4) {
- @{property}: .ratioVH(extract(@n1, 1), @n2) [ @returns] .ratioVH(extract(@n1, 2), @n2)
- [ @returns] .ratioVH(extract(@n1, 3), @n2) [ @returns]
- .ratioVH(extract(@n1, 4), @n2) [ @returns];
- }
-
- & when (@aspect-ratio = true) {
- // calc viewport height
- @local-viewport-height: @viewport-reference-desktop-height + 1;
-
- @media (max-aspect-ratio: ~"@{viewport-reference-desktop-width} / @{local-viewport-height}") {
- .propertyVW(@property, @n1, @n2 : @viewport-reference-desktop-width);
- }
- }
-}
-
-/**
-Responsive Property
-*/
-.propertyViewport(
- @property,
- @value1,
- @value2: @value1,
- @breakpoint: @breakpoint-tablet,
- @capValue: false,
- @aspect-ratio: true
-) {
- .propertyVW(@property, @value1, @n2 : @viewport-reference-width);
- @media (min-width: @breakpoint) {
- .propertyVH(@property, @value2, @n2 : @viewport-reference-desktop-height, @aspect-ratio);
- }
-
- & when(@capValue) {
- @media (min-width: @breakpoint-desktop) {
- @value2-length: length(@value2);
-
- & when (@value2-length = 1) {
- @{property}: .toPx(@value2) [ @returns];
- }
- & when (@value2-length = 2) {
- @{property}: .toPx(extract(@value2, 1)) [ @returns] .toPx(extract(@value2, 2)) [
- @returns];
- }
- & when (@value2-length = 3) {
- @{property}: .toPx(extract(@value2, 1)) [ @returns] .toPx(extract(@value2, 2)) [
- @returns] .toPx(extract(@value2, 3)) [ @returns];
- }
- & when (@value2-length = 4) {
- @{property}: .toPx(extract(@value2, 1)) [ @returns] .toPx(extract(@value2, 2)) [
- @returns] .toPx(extract(@value2, 3)) [ @returns] .toPx(extract(@value2, 4)) [
- @returns];
- }
- }
- }
-}
-
-/**
-Pixel to Rem property, mobile & desktop
-*/
-.rem(@property, @value-mobile, @value-desktop: false, @breakpoint: @breakpoint-tablet) {
- @value-length-mobile: length(@value-mobile);
-
- & when (@value-length-mobile = 1) {
- @{property}: .toRem(@value-mobile) [ @returns];
- }
- & when (@value-length-mobile = 2) {
- @{property}: .toRem(extract(@value-mobile, 1)) [ @returns]
- .toRem(extract(@value-mobile, 2)) [ @returns];
- }
- & when (@value-length-mobile = 3) {
- @{property}: .toRem(extract(@value-mobile, 1)) [ @returns]
- .toRem(extract(@value-mobile, 2)) [ @returns] .toRem(extract(@value-mobile, 3)) [
- @returns];
- }
- & when (@value-length-mobile = 4) {
- @{property}: .toRem(extract(@value-mobile, 1)) [ @returns]
- .toRem(extract(@value-mobile, 2)) [ @returns] .toRem(extract(@value-mobile, 3)) [
- @returns] .toRem(extract(@value-mobile, 4)) [ @returns];
- }
-
- & when (not (@value-desktop = false)) {
- @value-length-desktop: length(@value-desktop);
-
- @media (min-width: @breakpoint) {
- & when (@value-length-desktop = 1) {
- @{property}: .toRem(@value-desktop) [ @returns];
- }
- & when (@value-length-desktop = 2) {
- @{property}: .toRem(extract(@value-desktop, 1)) [ @returns]
- .toRem(extract(@value-desktop, 2)) [ @returns];
- }
- & when (@value-length-desktop = 3) {
- @{property}: .toRem(extract(@value-desktop, 1)) [ @returns]
- .toRem(extract(@value-desktop, 2)) [ @returns]
- .toRem(extract(@value-desktop, 3)) [ @returns];
- }
- & when (@value-length-desktop = 4) {
- @{property}: .toRem(extract(@value-desktop, 1)) [ @returns]
- .toRem(extract(@value-desktop, 2)) [ @returns]
- .toRem(extract(@value-desktop, 3)) [ @returns]
- .toRem(extract(@value-desktop, 4)) [ @returns];
- }
- }
- }
-}
-
-/**
- * Set a property size to rem from px size
- */
-.toRem(@value) {
- @isnumber: isnumber(@value);
- @returns: if(isnumber(@value), unit(@value, rem), @value);
-}
-
-/**
- * Set a property size to rem from px size
- */
-.toPx(@value) {
- @isnumber: isnumber(@value);
- @returns: if(isnumber(@value), unit(@value, px), @value);
-}
diff --git a/apps/front/src/mixins/texts.less b/apps/front/src/mixins/texts.less
deleted file mode 100644
index d88c0074..00000000
--- a/apps/front/src/mixins/texts.less
+++ /dev/null
@@ -1 +0,0 @@
-@import (reference) "../references.less";
diff --git a/apps/front/src/pages/homePage/HomePage.module.less b/apps/front/src/pages/homePage/HomePage.module.less
deleted file mode 100644
index 5d1b31e5..00000000
--- a/apps/front/src/pages/homePage/HomePage.module.less
+++ /dev/null
@@ -1,4 +0,0 @@
-@import (reference) "../../references.less";
-
-.root {
-}
diff --git a/apps/front/src/pages/homePage/HomePage.module.scss b/apps/front/src/pages/homePage/HomePage.module.scss
new file mode 100644
index 00000000..399ecd34
--- /dev/null
+++ b/apps/front/src/pages/homePage/HomePage.module.scss
@@ -0,0 +1,4 @@
+@use "../../styles/reference" as *;
+
+.root {
+}
diff --git a/apps/front/src/pages/homePage/HomePage.tsx b/apps/front/src/pages/homePage/HomePage.tsx
index 341836ab..fbe5aede 100644
--- a/apps/front/src/pages/homePage/HomePage.tsx
+++ b/apps/front/src/pages/homePage/HomePage.tsx
@@ -1,4 +1,4 @@
-import css from "./HomePage.module.less"
+import css from "./HomePage.module.scss"
import React, { ForwardedRef, forwardRef, Suspense, useEffect, useRef } from "react"
import { useStack } from "@cher-ami/router"
import debug from "@cher-ami/debug"
diff --git a/apps/front/src/pages/notFoundPage/NotFoundPage.module.less b/apps/front/src/pages/notFoundPage/NotFoundPage.module.less
deleted file mode 100644
index 5d1b31e5..00000000
--- a/apps/front/src/pages/notFoundPage/NotFoundPage.module.less
+++ /dev/null
@@ -1,4 +0,0 @@
-@import (reference) "../../references.less";
-
-.root {
-}
diff --git a/apps/front/src/pages/notFoundPage/NotFoundPage.module.scss b/apps/front/src/pages/notFoundPage/NotFoundPage.module.scss
new file mode 100644
index 00000000..399ecd34
--- /dev/null
+++ b/apps/front/src/pages/notFoundPage/NotFoundPage.module.scss
@@ -0,0 +1,4 @@
+@use "../../styles/reference" as *;
+
+.root {
+}
diff --git a/apps/front/src/pages/notFoundPage/NotFoundPage.tsx b/apps/front/src/pages/notFoundPage/NotFoundPage.tsx
index 806a802a..293348d1 100644
--- a/apps/front/src/pages/notFoundPage/NotFoundPage.tsx
+++ b/apps/front/src/pages/notFoundPage/NotFoundPage.tsx
@@ -1,4 +1,4 @@
-import css from "./NotFoundPage.module.less"
+import css from "./NotFoundPage.module.scss"
import React, { ForwardedRef, forwardRef, useEffect, useRef } from "react"
import { useStack } from "@cher-ami/router"
import debug from "@cher-ami/debug"
diff --git a/apps/front/src/pages/workPage/WorkPage.module.less b/apps/front/src/pages/workPage/WorkPage.module.less
deleted file mode 100644
index e49d34e6..00000000
--- a/apps/front/src/pages/workPage/WorkPage.module.less
+++ /dev/null
@@ -1,5 +0,0 @@
-@import (reference) "../../references.less";
-
-.root {
- // background: red;
-}
diff --git a/apps/front/src/pages/workPage/WorkPage.module.scss b/apps/front/src/pages/workPage/WorkPage.module.scss
new file mode 100644
index 00000000..399ecd34
--- /dev/null
+++ b/apps/front/src/pages/workPage/WorkPage.module.scss
@@ -0,0 +1,4 @@
+@use "../../styles/reference" as *;
+
+.root {
+}
diff --git a/apps/front/src/pages/workPage/WorkPage.tsx b/apps/front/src/pages/workPage/WorkPage.tsx
index d8f99a95..2c981f55 100644
--- a/apps/front/src/pages/workPage/WorkPage.tsx
+++ b/apps/front/src/pages/workPage/WorkPage.tsx
@@ -1,4 +1,4 @@
-import css from "./WorkPage.module.less"
+import css from "./WorkPage.module.scss"
import React, { ForwardedRef, forwardRef, useEffect, useRef } from "react"
import { useStack } from "@cher-ami/router"
import debug from "@cher-ami/debug"
diff --git a/apps/front/src/references.less b/apps/front/src/references.less
deleted file mode 100644
index 987c2374..00000000
--- a/apps/front/src/references.less
+++ /dev/null
@@ -1,7 +0,0 @@
-@import (reference) "./fonts/fonts";
-@import (reference) "./variables/variables.less";
-@import (reference) "./mixins/helpers.less";
-@import (reference) "./mixins/ratio.less";
-@import (reference) "./mixins/texts.less";
-@import (reference) "./mixins/elements.less";
-@import (reference) "./mixins/grid.less";
diff --git a/apps/front/src/routes.ts b/apps/front/src/routes.ts
index 0b9a1c16..8f1c5d7a 100644
--- a/apps/front/src/routes.ts
+++ b/apps/front/src/routes.ts
@@ -8,7 +8,7 @@ import NotFoundPage from "./pages/notFoundPage/NotFoundPage"
export enum EPages {
HOME = "home",
WORK = "work",
- NOT_FOUND = "not-found",
+ NOT_FOUND = "not-found"
}
export const routes: TRoute[] = [
@@ -22,10 +22,10 @@ export const routes: TRoute[] = [
const meta: TMetaTags = {
title: "Home",
description: "Home description",
- imageUrl: "",
+ imageUrl: ""
}
return { time, meta }
- },
+ }
},
{
path: "/work/:slug?",
@@ -35,10 +35,10 @@ export const routes: TRoute[] = [
const meta: TMetaTags = {
title: `Work - ${props.params.slug}`,
description: "Work description",
- imageUrl: "",
+ imageUrl: ""
}
return { meta }
- },
+ }
},
{
path: "/:rest",
@@ -48,9 +48,9 @@ export const routes: TRoute[] = [
const meta = {
title: `404`,
description: "Not found",
- imageUrl: "",
+ imageUrl: ""
}
return { meta }
- },
- },
+ }
+ }
]
diff --git a/apps/front/src/server/helpers/htmlReplacement.ts b/apps/front/src/server/helpers/htmlReplacement.ts
deleted file mode 100644
index 7aed2afc..00000000
--- a/apps/front/src/server/helpers/htmlReplacement.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Ugly render patch middleware
- * @param render
- */
-export const htmlReplacement = (render: string): string =>
- render
- .replace(" 0 {
+ @media (max-aspect-ratio: #{ #{$ratioVW} / #{$ratioVH+1} }) {
+ #{$property}: #{fn.ratioVW($n1, $ratioVW)};
+ }
+ }
+}
+
+/// Set property calculated with VW ratio
+/// @param {css property} $property
+/// @param {Number} $n1
+/// @param {Number} $ratioVW []
+/// @output
+@mixin propertyVW(
+ $property,
+ $n1,
+ $ratioVW: fn.strip-units(breakpoints.$breakpoint-mobile)
+) {
+ #{$property}: #{fn.ratioVW($n1, $ratioVW)};
+}
+
+/// Set property rem
+/// @param {css property} $property
+/// @param {Number | Number[]} $value1 - desktop value
+/// @param {Number | Number[]} $value2 [] - mobile value
+/// @output
+@mixin propertyRem($property, $value1, $value2: $value1) {
+ @if length($value1) == 1 {
+ #{$property}: fn.toRem($value1);
+ } @else if length($value1) == 2 {
+ #{$property}: fn.toRem(nth($value1, 1)) fn.toRem(nth($value1, 2));
+ } @else if length($value1) == 3 {
+ #{$property}: fn.toRem(nth($value1, 1))
+ fn.toRem(nth($value1, 2))
+ fn.toRem(nth($value1, 3));
+ } @else if length($value1) == 4 {
+ #{$property}: fn.toRem(nth($value1, 1))
+ fn.toRem(nth($value1, 2))
+ fn.toRem(nth($value1, 3))
+ fn.toRem(nth($value1, 4));
+ }
+ @if $value2 != $value1 {
+ @media screen and (max-width: breakpoints.$breakpoint-tablet) {
+ @if length($value2) == 1 {
+ #{$property}: fn.toRem($value2);
+ } @else if length($value2) == 2 {
+ #{$property}: fn.toRem(nth($value2, 1)) fn.toRem(nth($value2, 2));
+ } @else if length($value2) == 3 {
+ #{$property}: fn.toRem(nth($value2, 1))
+ fn.toRem(nth($value2, 2))
+ fn.toRem(nth($value2, 3));
+ } @else if length($value2) == 4 {
+ #{$property}: fn.toRem(nth($value2, 1))
+ fn.toRem(nth($value2, 2))
+ fn.toRem(nth($value2, 3))
+ fn.toRem(nth($value2, 4));
+ }
+ }
+ }
+}
+
+@mixin propertyViewport(
+ $property,
+ $value1,
+ $value2: $value1,
+ $breakpoint: breakpoints.$breakpoint-tablet,
+ $cap: false
+) {
+ @include propertyVH($property, $value1);
+ @media screen and (max-width: breakpoints.$breakpoint-tablet) {
+ @include propertyVW($property, $value2);
+ }
+ @if $cap {
+ @media (min-width: breakpoints.$breakpoint-bigLaptop) {
+ @if length($value1) == 1 {
+ #{$property}: fn.toPx($value1);
+ } @else if length($value1) == 2 {
+ #{$property}: fn.toPx(nth($value1, 1)) fn.toPx(nth($value1, 2));
+ } @else if length($value1) == 3 {
+ #{$property}: fn.toPx(nth($value1, 1))
+ fn.toPx(nth($value1, 2))
+ fn.toPx(nth($value1, 3));
+ } @else if length($value1) == 4 {
+ #{$property}: fn.toPx(nth($value1, 1))
+ fn.toPx(nth($value1, 2))
+ fn.toPx(nth($value1, 3))
+ fn.toPx(nth($value1, 4));
+ }
+ }
+ }
+}
diff --git a/apps/front/src/styles/_references.scss b/apps/front/src/styles/_references.scss
new file mode 100644
index 00000000..f4a565ff
--- /dev/null
+++ b/apps/front/src/styles/_references.scss
@@ -0,0 +1,11 @@
+@forward "./_breakpoints.scss";
+@forward "./_colors.scss";
+@forward "./_ease.scss";
+@forward "./_fonts.scss";
+@forward "./_functions.scss";
+@forward "./_grid.scss";
+@forward "./_ratio.scss";
+@forward "./_reset.scss";
+@forward "./_texts.scss";
+@forward "./_utils.scss";
+@forward "./_viewport.scss";
diff --git a/apps/front/src/styles/_texts.scss b/apps/front/src/styles/_texts.scss
new file mode 100644
index 00000000..7a1bedad
--- /dev/null
+++ b/apps/front/src/styles/_texts.scss
@@ -0,0 +1,4 @@
+@use "./_viewport" as *;
+
+@mixin text-title-1($ratio: 1) {
+}
diff --git a/apps/front/src/styles/_utils.scss b/apps/front/src/styles/_utils.scss
new file mode 100644
index 00000000..4d1fd16e
--- /dev/null
+++ b/apps/front/src/styles/_utils.scss
@@ -0,0 +1,80 @@
+// Debug an element with an outline with custom size and color.
+@mixin debug($size: 1px, $color: red) {
+ outline: $size solid $color;
+}
+
+// Set bigger hit zone with :after.
+@mixin hitZone($horizontalSize: 10px, $verticalSize: 10px, $color: transparent) {
+ &:after {
+ content: "";
+ background-color: $color;
+ position: absolute;
+ top: -$verticalSize;
+ right: -$horizontalSize;
+ bottom: -$verticalSize;
+ left: -$horizontalSize;
+ }
+}
+
+// Hide text only visually to preserve SEO check
+@mixin visuallyHidden() {
+ clip: rect(1px, 1px, 1px, 1px);
+ clip-path: inset(50%);
+ height: 1px;
+ width: 1px;
+ margin: -1px;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+}
+
+// Center with absolute and translate yx, y or x.
+@mixin absoluteCenter($axis: yx) {
+ @if $axis == yx {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ } @else if $axis == y {
+ position: absolute;
+ top: 50%;
+ left: auto;
+ transform: translateY(-50%);
+ } @else if $axis == x {
+ position: absolute;
+ top: auto;
+ left: 50%;
+ transform: translateX(-50%);
+ }
+}
+
+// Remove touch callout on Safari mobile
+@mixin disableTouchCallout() {
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+}
+
+// Patch scrolling on iOS
+@mixin hideScrollBar() {
+ overflow-scrolling: touch;
+ &::-webkit-scrollbar {
+ width: 0 !important;
+ height: 0 !important;
+ }
+}
+
+// Force scrollBar to be shown
+@mixin showScrollBar() {
+ -ms-overflow-style: scrollbar;
+ &::-webkit-scrollbar {
+ width: auto;
+ height: auto;
+ }
+}
+
+// Smooth fonts
+@mixin fontSmooth() {
+ font-smooth: always;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ text-rendering: optimizeLegibility;
+}
diff --git a/apps/front/src/styles/_viewport.scss b/apps/front/src/styles/_viewport.scss
new file mode 100644
index 00000000..dc20a8c4
--- /dev/null
+++ b/apps/front/src/styles/_viewport.scss
@@ -0,0 +1,5 @@
+// Used by ratio
+$viewport-reference-width: 375;
+$viewport-reference-height: 667;
+$viewport-reference-desktop-width: 1440;
+$viewport-reference-desktop-height: 900;
diff --git a/apps/front/src/styles/breakpoints-inline.scss b/apps/front/src/styles/breakpoints-inline.scss
new file mode 100644
index 00000000..6054a6ed
--- /dev/null
+++ b/apps/front/src/styles/breakpoints-inline.scss
@@ -0,0 +1,9 @@
+@use "./_breakpoints" as *;
+
+:root {
+ --breakpoint-mobile: #{$breakpoint-mobile};
+ --breakpoint-tablet: #{$breakpoint-tablet};
+ --breakpoint-laptop: #{$breakpoint-laptop};
+ --breakpoint-bigLaptop: #{$breakpoint-bigLaptop};
+ --breakpoint-desktop: #{$breakpoint-desktop};
+}
diff --git a/apps/front/src/styles/colors-inline.scss b/apps/front/src/styles/colors-inline.scss
new file mode 100644
index 00000000..659945c8
--- /dev/null
+++ b/apps/front/src/styles/colors-inline.scss
@@ -0,0 +1,7 @@
+:root {
+ --color-black: #000;
+ --color-white: #fff;
+ --color-bg: var(--color-white);
+ --color-text: var(--color-black);
+ --color-blue-cher-ami: #2263fd;
+}
diff --git a/apps/front/src/styles/ease-inline.scss b/apps/front/src/styles/ease-inline.scss
new file mode 100644
index 00000000..8db6432e
--- /dev/null
+++ b/apps/front/src/styles/ease-inline.scss
@@ -0,0 +1,27 @@
+:root {
+ // $credit http://matthewlein.com/ceaser/
+ --ease-power1-in: cubic-bezier(0.55, 0.085, 0.68, 0.53);
+ --ease-power1-out: cubic-bezier(0.25, 0.46, 0.45, 0.94);
+ --ease-power1-in-out: cubic-bezier(0.455, 0.03, 0.515, 0.955);
+ --ease-power2-in: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ --ease-power2-out: cubic-bezier(0.215, 0.61, 0.355, 1);
+ --ease-power2-in-out: cubic-bezier(0.645, 0.045, 0.355, 1);
+ --ease-power3-in: cubic-bezier(0.895, 0.03, 0.685, 0.22);
+ --ease-power3-out: cubic-bezier(0.165, 0.84, 0.44, 1);
+ --ease-power3-in-out: cubic-bezier(0.77, 0, 0.175, 1);
+ --ease-power4-in: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ --ease-power4-out: cubic-bezier(0.23, 1, 0.32, 1);
+ --ease-power4-in-out: cubic-bezier(0.86, 0, 0.07, 1);
+ --ease-expo-in: cubic-bezier(0.95, 0.05, 0.795, 0.035);
+ --ease-expo-out: cubic-bezier(0.19, 1, 0.22, 1);
+ --ease-expo-in-out: cubic-bezier(1, 0, 0, 1);
+ --ease-circ-in: cubic-bezier(0.6, 0.04, 0.98, 0.335);
+ --ease-circ-out: cubic-bezier(0.075, 0.82, 0.165, 1);
+ --ease-circ-in-out: cubic-bezier(0.785, 0.135, 0.15, 0.86);
+ --ease-sine-in: cubic-bezier(0.47, 0, 0.745, 0.715);
+ --ease-sine-out: cubic-bezier(0.39, 0.575, 0.565, 1);
+ --ease-sine-in-out: cubic-bezier(0.445, 0.05, 0.55, 0.95);
+ --ease-back-in: cubic-bezier(0.6, -0.28, 0.735, 0.045);
+ --ease-back-out: cubic-bezier(0.175, 0.885, 0.32, 1.275);
+ --ease-back-in-out: cubic-bezier(0.68, -0.55, 0.265, 1.55);
+}
diff --git a/apps/front/src/styles/fonts-inline.scss b/apps/front/src/styles/fonts-inline.scss
new file mode 100644
index 00000000..c95b21bb
--- /dev/null
+++ b/apps/front/src/styles/fonts-inline.scss
@@ -0,0 +1,9 @@
+@font-face {
+ font-family: "roboto-regular";
+ src:
+ url("/src/fonts/roboto-regular/roboto-regular.woff2") format("woff2"),
+ url("/src/fonts/roboto-regular/roboto-regular.woff") format("woff"),
+ url("/src/fonts/roboto-regular/roboto-regular.ttf") format("truetype");
+ font-weight: normal;
+ font-style: normal;
+}
diff --git a/apps/front/src/styles/grid-inline.scss b/apps/front/src/styles/grid-inline.scss
new file mode 100644
index 00000000..42e5114f
--- /dev/null
+++ b/apps/front/src/styles/grid-inline.scss
@@ -0,0 +1,20 @@
+:root {
+ --grid-column-1: 8rem;
+ --grid-column-2: calc(var(--grid-column-1) * 2);
+ --grid-column-3: calc(var(--grid-column-1) * 3);
+ --grid-column-4: calc(var(--grid-column-1) * 4);
+ --grid-column-5: calc(var(--grid-column-1) * 5);
+ --grid-column-6: calc(var(--grid-column-1) * 6);
+ --grid-column-7: calc(var(--grid-column-1) * 7);
+ --grid-column-8: calc(var(--grid-column-1) * 8);
+ --grid-column-9: calc(var(--grid-column-1) * 9);
+ --grid-column-10: calc(var(--grid-column-1) * 10);
+ --grid-column-11: calc(var(--grid-column-1) * 11);
+ --grid-column-12: calc(var(--grid-column-1) * 12);
+ --grid-column-13: calc(var(--grid-column-1) * 13);
+ --grid-column-14: calc(var(--grid-column-1) * 14);
+ --grid-column-15: calc(var(--grid-column-1) * 15);
+ --grid-column-16: calc(var(--grid-column-1) * 16);
+ --grid-column-17: calc(var(--grid-column-1) * 17);
+ --grid-column-18: calc(var(--grid-column-1) * 18);
+}
diff --git a/apps/front/src/styles/index.scss b/apps/front/src/styles/index.scss
new file mode 100644
index 00000000..af4329c7
--- /dev/null
+++ b/apps/front/src/styles/index.scss
@@ -0,0 +1,26 @@
+@use "./reference" as *;
+
+// Inline imports are files included only once in this root file
+@import "./breakpoints-inline";
+@import "./colors-inline";
+@import "./ease-inline";
+@import "./fonts-inline";
+@import "./grid-inline";
+@import "./reset-inline";
+@import "./viewport-inline";
+
+:root {
+ @include propertyViewport(--font-size, 1);
+}
+
+html {
+ font-size: var(--font-size);
+}
+
+body {
+ font-size: 16rem;
+ font-family: sans-serif;
+ @include font-roboto-regular;
+ background: var(--color-bg);
+ color: var(--color-text);
+}
diff --git a/apps/front/src/styles/reference.scss b/apps/front/src/styles/reference.scss
new file mode 100644
index 00000000..533d0594
--- /dev/null
+++ b/apps/front/src/styles/reference.scss
@@ -0,0 +1,6 @@
+@forward "./_breakpoints";
+@forward "./_fonts";
+@forward "./_ratio";
+@forward "./_texts";
+@forward "./_utils";
+@forward "./_viewport";
diff --git a/apps/front/src/styles/reset-inline.scss b/apps/front/src/styles/reset-inline.scss
new file mode 100644
index 00000000..a577e337
--- /dev/null
+++ b/apps/front/src/styles/reset-inline.scss
@@ -0,0 +1,338 @@
+/* ----------------------------------------------------------------------------- GLOBAL */
+
+/**
+ * Hard reset margin and padding
+ */
+* {
+ margin: 0;
+ padding: 0;
+}
+
+/**
+ * Default Box sizing on before & after pseudo elements
+ */
+*,
+*:before,
+*:after {
+ box-sizing: inherit;
+}
+
+/**
+ * Default Box sizing
+ * Correct the line height in all browsers.
+ * Prevent adjustments of font size after orientation changes in iOS.
+ */
+html {
+ box-sizing: border-box;
+ line-height: 1.15;
+ -webkit-text-size-adjust: 100%;
+}
+
+/* ----------------------------------------------------------------------------- SECTION */
+
+/**
+ * Render the `main` element consistently in IE.
+ */
+main {
+ display: block;
+}
+
+/* ----------------------------------------------------------------------------- TEXT */
+
+/**
+ * Remove default title browser margin
+ * Remove default title browser UGLY bold font weight
+ */
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 1em;
+ margin: 0;
+ font-weight: normal;
+}
+
+/**
+ * Remove the gray background on active links in IE 10.
+ * Remove default underline
+ */
+a {
+ background-color: transparent;
+ text-decoration: none;
+}
+
+/**
+ * Init flat font-wheight
+ */
+b,
+strong {
+ font-weight: normal;
+}
+
+/**
+ * Remove list style dote by default
+ */
+ul {
+ list-style: none;
+}
+
+/**
+ * Correct the inheritance and scaling of font size in all browsers.
+ * Correct the odd `em` font sizing in all browsers.
+ * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre
+ */
+pre {
+ font-size: 1em;
+ font-family: inherit;
+ margin: 0;
+}
+
+/**
+ * Correct the inheritance and scaling of font size in all browsers.
+ * Correct the odd `em` font sizing in all browsers.
+ */
+code,
+kbd,
+samp {
+ font-family: inherit;
+ font-size: 1em;
+}
+
+/**
+ * Init the correct font size in all browsers.
+ */
+small {
+ font-size: 1em;
+}
+
+/**
+ * Prevent `sub` and `sup` elements from affecting the line height in
+ * all browsers.
+ */
+sub,
+sup {
+ font-size: 1em;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: 0;
+}
+
+sup {
+ top: 0;
+}
+
+/**
+ * Add the correct box sizing in Firefox.
+ * Show the overflow in Edge and IE.
+ */
+hr {
+ box-sizing: content-box;
+ height: 0;
+ overflow: visible;
+ margin: 0 auto;
+}
+
+/* ----------------------------------------------------------------------------- TEXT CONTENT */
+
+/*
+ * Add the correct display in Edge, IE 10+, and Firefox.
+ */
+details {
+ display: block;
+}
+/*
+ * Add the correct display in all browsers.
+ * Remove outline.
+ */
+summary {
+ display: block;
+ outline: none;
+}
+
+/**
+ * Remove arrow indicatore
+ */
+details summary::-webkit-details-marker {
+ display: none;
+}
+
+/* ----------------------------------------------------------------------------- MEDIA */
+
+/**
+ * Init position
+ * Remove the border on images inside links in IE 10.
+ */
+img {
+ display: block;
+ border-style: none;
+}
+
+/* ----------------------------------------------------------------------------- FORM */
+
+/**
+ * Change the font styles in all browsers.
+ * Remove the margin in Firefox and Safari.
+ * Remove background color
+ * Remove border
+ * Remove outline
+ */
+button,
+input,
+optgroup,
+option,
+select,
+textarea {
+ display: block;
+ margin: 0;
+ border: 0;
+ font-family: inherit;
+ font-size: 1em;
+ font-weight: normal;
+ line-height: normal;
+ color: inherit;
+ background: none;
+ text-transform: none;
+ appearance: none;
+ -webkit-appearance: none;
+ outline: none;
+ overflow: visible;
+}
+
+/**
+ * Correct the inability to style clickable types in iOS and Safari.
+ */
+button,
+[type="button"],
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button;
+}
+
+/**
+ * Remove the inner border and padding in Firefox.
+ */
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+ border-style: none;
+ padding: 0;
+}
+
+/**
+ * Restore the focus styles unset by the previous rule.
+ */
+button:-moz-focusring,
+[type="button"]:-moz-focusring,
+[type="reset"]:-moz-focusring,
+[type="submit"]:-moz-focusring {
+ outline: 1px dotted ButtonText;
+}
+
+/**
+ * Init full style
+ * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Fieldset
+ */
+fieldset {
+ display: block;
+ font-size: 1em;
+ padding: 0;
+ border: 0;
+}
+
+/**
+ * Correct the text wrapping in Edge and IE.
+ * Correct the color inheritance from `fieldset` elements in IE.
+ * Remove the padding so developers are not caught out when they zero out
+ * `fieldset` elements in all browsers.
+ * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend
+ */
+legend {
+ display: block;
+ box-sizing: border-box;
+ color: inherit;
+ border: none;
+ padding: 0;
+ white-space: normal;
+}
+
+/**
+ * Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress
+ */
+progress {
+ vertical-align: baseline;
+}
+
+/**
+ * Remove the default vertical scrollbar in IE 10+.
+ */
+textarea {
+ overflow: auto;
+}
+
+/**
+ * Add the correct box sizing in IE 10.
+ * Remove the padding in IE 10.
+ */
+[type="checkbox"],
+[type="radio"] {
+ box-sizing: border-box;
+ padding: 0;
+}
+
+/**
+ * Correct the cursor style of increment and decrement buttons in Chrome.
+ */
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/**
+ * Correct the odd appearance in Chrome and Safari.
+ * Correct the outline style in Safari.
+ */
+[type="search"] {
+ -webkit-appearance: textfield;
+ outline-offset: -2px;
+}
+
+/**
+ * Remove the inner padding in Chrome and Safari on macOS.
+ */
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * Correct the inability to style clickable types in iOS and Safari.
+ * Change font properties to `inherit` in Safari.
+ */
+::-webkit-file-upload-button {
+ -webkit-appearance: button;
+ font: inherit;
+}
+
+/* ----------------------------------------------------------------------------- MISC */
+
+/**
+ * Add the correct display in IE 10+.
+ * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template
+ */
+template {
+ display: none;
+}
+
+/**
+ * Add the correct display in IE 10.
+ */
+[hidden] {
+ display: none;
+}
diff --git a/apps/front/src/styles/viewport-inline.scss b/apps/front/src/styles/viewport-inline.scss
new file mode 100644
index 00000000..7cbb7c6d
--- /dev/null
+++ b/apps/front/src/styles/viewport-inline.scss
@@ -0,0 +1,6 @@
+:root {
+ --viewport-reference-width: #{$viewport-reference-width};
+ --viewport-reference-height: #{$viewport-reference-height};
+ --viewport-reference-desktop-width: #{$viewport-reference-desktop-width};
+ --viewport-reference-desktop-height: #{$viewport-reference-desktop-height};
+}
diff --git a/apps/front/src/variables/variables.less b/apps/front/src/variables/variables.less
deleted file mode 100644
index 521101a4..00000000
--- a/apps/front/src/variables/variables.less
+++ /dev/null
@@ -1,91 +0,0 @@
-@import (reference) "../references";
-
-// ----------------------------------------------------------------------------- LESS VAR
-
-// Used by ratio.less
-@viewport-reference-width: 375;
-@viewport-reference-height: 667;
-@viewport-reference-desktop-width: 1400;
-@viewport-reference-desktop-height: 900;
-
-// breakpoints
-@breakpoint-mobile: 320px;
-@breakpoint-tablet: 768px;
-@breakpoint-laptop: 1024px;
-@breakpoint-bigLaptop: 1440px;
-@breakpoint-desktop: 1680px;
-
-// ----------------------------------------------------------------------------- CSS VAR
-
-:root {
- // DO NOT TOUCH
- .propertyViewport(--font-size, 1);
-
- // Ratio variables
- --viewport-reference-width: @viewport-reference-width;
- --viewport-reference-height: @viewport-reference-height;
- --viewport-reference-desktop-width: @viewport-reference-desktop-width;
- --viewport-reference-desktop-height: @viewport-reference-desktop-height;
-
- // breakpoints
- --breakpoint-mobile: @breakpoint-mobile;
- --breakpoint-tablet: @breakpoint-tablet;
- --breakpoint-laptop: @breakpoint-laptop;
- --breakpoint-bigLaptop: @breakpoint-bigLaptop;
- --breakpoint-desktop: @breakpoint-desktop;
-
- // Colors
- --color-black: #000;
- --color-white: #fff;
- --color-bg: var(--color-white);
- --color-text: var(--color-black);
- --color-blue-cher-ami: #2263fd;
- // ...
-
- // Grid columns
- --grid-column-1: 8rem;
- --grid-column-2: calc(var(--grid-column-1) * 2);
- --grid-column-3: calc(var(--grid-column-1) * 3);
- --grid-column-4: calc(var(--grid-column-1) * 4);
- --grid-column-5: calc(var(--grid-column-1) * 5);
- --grid-column-6: calc(var(--grid-column-1) * 6);
- --grid-column-7: calc(var(--grid-column-1) * 7);
- --grid-column-8: calc(var(--grid-column-1) * 8);
- --grid-column-9: calc(var(--grid-column-1) * 9);
- --grid-column-10: calc(var(--grid-column-1) * 10);
- --grid-column-11: calc(var(--grid-column-1) * 11);
- --grid-column-12: calc(var(--grid-column-1) * 12);
- --grid-column-13: calc(var(--grid-column-1) * 13);
- --grid-column-14: calc(var(--grid-column-1) * 14);
- --grid-column-15: calc(var(--grid-column-1) * 15);
- --grid-column-16: calc(var(--grid-column-1) * 16);
- --grid-column-17: calc(var(--grid-column-1) * 17);
- --grid-column-18: calc(var(--grid-column-1) * 18);
-
- // ease
- // @credit http://matthewlein.com/ceaser/
- --ease-power1-in: cubic-bezier(0.55, 0.085, 0.68, 0.53);
- --ease-power1-out: cubic-bezier(0.25, 0.46, 0.45, 0.94);
- --ease-power1-in-out: cubic-bezier(0.455, 0.03, 0.515, 0.955);
- --ease-power2-in: cubic-bezier(0.55, 0.055, 0.675, 0.19);
- --ease-power2-out: cubic-bezier(0.215, 0.61, 0.355, 1);
- --ease-power2-in-out: cubic-bezier(0.645, 0.045, 0.355, 1);
- --ease-power3-in: cubic-bezier(0.895, 0.03, 0.685, 0.22);
- --ease-power3-out: cubic-bezier(0.165, 0.84, 0.44, 1);
- --ease-power3-in-out: cubic-bezier(0.77, 0, 0.175, 1);
- --ease-power4-in: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- --ease-power4-out: cubic-bezier(0.23, 1, 0.32, 1);
- --ease-power4-in-out: cubic-bezier(0.86, 0, 0.07, 1);
- --ease-expo-in: cubic-bezier(0.95, 0.05, 0.795, 0.035);
- --ease-expo-out: cubic-bezier(0.19, 1, 0.22, 1);
- --ease-expo-in-out: cubic-bezier(1, 0, 0, 1);
- --ease-circ-in: cubic-bezier(0.6, 0.04, 0.98, 0.335);
- --ease-circ-out: cubic-bezier(0.075, 0.82, 0.165, 1);
- --ease-circ-in-out: cubic-bezier(0.785, 0.135, 0.15, 0.86);
- --ease-sine-in: cubic-bezier(0.47, 0, 0.745, 0.715);
- --ease-sine-out: cubic-bezier(0.39, 0.575, 0.565, 1);
- --ease-sine-in-out: cubic-bezier(0.445, 0.05, 0.55, 0.95);
- --ease-back-in: cubic-bezier(0.6, -0.28, 0.735, 0.045);
- --ease-back-out: cubic-bezier(0.175, 0.885, 0.32, 1.275);
- --ease-back-in-out: cubic-bezier(0.68, -0.55, 0.265, 1.55);
-}
diff --git a/apps/front/tsconfig.json b/apps/front/tsconfig.json
index 94534f51..72460c34 100644
--- a/apps/front/tsconfig.json
+++ b/apps/front/tsconfig.json
@@ -1,16 +1,23 @@
{
"compilerOptions": {
- "module": "ESNext",
"target": "ESNext",
"useDefineForClassFields": true,
- "lib": ["DOM", "DOM.Iterable", "ESNext"],
+ "lib": ["ESNext", "DOM", "DOM.Iterable"],
+ "module": "ESNext",
+ "skipLibCheck": true,
"allowJs": true,
- "skipLibCheck": false,
- "esModuleInterop": false,
- "allowSyntheticDefaultImports": true,
+
+ /* Linting */
"strict": false,
+ "noUnusedLocals": false,
+ "noUnusedParameters": false,
+ "noFallthroughCasesInSwitch": false,
+
+ "composite": true,
+ "allowSyntheticDefaultImports": true,
+ "esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
- "moduleResolution": "Node",
+ "moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
@@ -22,5 +29,5 @@
"~/*": ["./*"]
}
},
- "include": ["./src", "./prerender", "./config"]
+ "include": ["src", "prerender", "config"]
}
diff --git a/apps/front/vite.config.ts b/apps/front/vite.config.ts
index 25e596e0..560d7355 100644
--- a/apps/front/vite.config.ts
+++ b/apps/front/vite.config.ts
@@ -35,12 +35,12 @@ export default defineConfig(({ command, mode }: ConfigEnv): UserConfig => {
// In some case, process.env vars are loaded via external service like gitlab-ci
// and must overwrite .env vars loaded by loadEnv()
...process.env,
- PORT: `${loadEnvVars.DOCKER_NODE_PORT ?? portFinderSync.getPort(3000)}`,
+ PORT: `${loadEnvVars.DOCKER_NODE_PORT ?? portFinderSync.getPort(5173)}`,
HOST: loadEnvVars["HOST"] ?? ipAddress,
PROTOCOL: protocol,
COMMAND: command,
INPUT_FILES: config.input.join(","),
- BUILD_DIRNAME: config.buildDirname,
+ BUILD_DIRNAME: config.buildDirname
}
return {
@@ -50,13 +50,13 @@ export default defineConfig(({ command, mode }: ConfigEnv): UserConfig => {
protocol,
host: process.env.HOST,
port: process.env.PORT,
- base: process.env.VITE_APP_BASE,
- }),
+ base: process.env.VITE_APP_BASE
+ })
}
: {}),
define: {
- "process.env.VITE_APP_BASE": JSON.stringify(process.env.VITE_APP_BASE),
+ "process.env.VITE_APP_BASE": JSON.stringify(process.env.VITE_APP_BASE)
},
// "base" refer to folder where assets are served
base: process.env.VITE_APP_BASE,
@@ -68,21 +68,22 @@ export default defineConfig(({ command, mode }: ConfigEnv): UserConfig => {
cors: true,
host: true,
port: process.env.PORT as any,
+ // @ts-ignore
https: protocol === "https",
origin: `${protocol}://${process.env.HOST}:${process.env.PORT}`,
watch: {
// do not watch .env files to avoid reloading when build-dotenv is processed
- ignored: [...(config.buildDotenvOutDir.map((path) => `${path}/.env`) || [])],
- },
+ ignored: [...(config.buildDotenvOutDir.map((path) => `${path}/.env`) || [])]
+ }
},
css: {
modules: {
- generateScopedName: "[name]__[local]__[hash:base64:5]",
+ generateScopedName: "[name]__[local]__[hash:base64:5]"
},
postcss: {
- plugins: [autoprefixer()],
- },
+ plugins: [autoprefixer()]
+ }
},
build: {
@@ -95,14 +96,14 @@ export default defineConfig(({ command, mode }: ConfigEnv): UserConfig => {
rollupOptions: {
...(config.input?.length > 0
? { input: config.input?.map((el) => resolve(el)) }
- : {}),
- },
+ : {})
+ }
},
resolve: {
alias: {
- "~": resolve(__dirname, "src"),
- },
+ "~": resolve(__dirname, "src")
+ }
},
plugins: [
@@ -122,25 +123,35 @@ export default defineConfig(({ command, mode }: ConfigEnv): UserConfig => {
"COMMAND",
"INPUT_FILES",
"BUILD_DIRNAME",
- "DOCKER_PORT",
- ],
+ "DOCKER_PORT"
+ ]
}),
- // Htaccess dist/ with password
+ // always build htaccess for SPA production
+ buildHtaccessPlugin({
+ enable: loadEnvVars.VITE_SPA === "true",
+ serverWebRootPath: null,
+ user: null,
+ password: null,
+ htaccessTemplatePath: config.htaccessTemplateFilePath,
+ outputPath: "dist/spa"
+ }),
+
+ // Htaccess task set from .env
buildHtaccessPlugin({
enable: process.env.BUILD_HTACCESS === "true",
serverWebRootPath: process.env.HTACCESS_SERVER_WEB_ROOT_PATH,
user: process.env.HTACCESS_AUTH_USER,
password: process.env.HTACCESS_AUTH_PASSWORD,
htaccessTemplatePath: config.htaccessTemplateFilePath,
- outputPath: process.env.HTACCESS_OUTPUT_PATH,
+ outputPath: process.env.HTACCESS_OUTPUT_PATH
}),
visualizer({
- filename: "./build-stats.html",
+ filename: "./stats.html",
gzipSize: true,
- title: "Generated bundle stats",
- }),
- ],
+ title: "Generated bundle stats"
+ })
+ ]
}
})
diff --git a/apps/front/vite.ssr-scripts.config.ts b/apps/front/vite.ssr-scripts.config.ts
new file mode 100644
index 00000000..66e5dbff
--- /dev/null
+++ b/apps/front/vite.ssr-scripts.config.ts
@@ -0,0 +1,50 @@
+// @ts-ignore
+import autoprefixer from "autoprefixer"
+import { resolve } from "path"
+import { defineConfig } from "vite"
+import config from "./config/config.js"
+import debug from "@cher-ami/debug"
+const log = debug("config:vite.config")
+
+export default defineConfig(({ command, mode }) => {
+ return {
+ base: process.env.VITE_APP_BASE,
+
+ build: {
+ assetsDir: "./",
+ write: true,
+ outDir: config.outDirSsrScripts,
+ emptyOutDir: true,
+ manifest: false,
+ assetsInlineLimit: 0,
+ ssr: true,
+ define: {
+ "process.env.VITE_APP_BASE": JSON.stringify(process.env.VITE_APP_BASE)
+ },
+ rollupOptions: {
+ input: [
+ resolve("server.prod.js"),
+ resolve("prerender/helpers/ManifestParser.ts")
+ ],
+ output: {
+ manualChunks: undefined,
+ entryFileNames: `[name].js`,
+ chunkFileNames: `[name].js`
+ }
+ }
+ },
+ css: {
+ modules: {
+ generateScopedName: "[name]__[local]__[hash:base64:5]"
+ },
+ postcss: {
+ plugins: [autoprefixer()]
+ }
+ },
+ resolve: {
+ alias: {
+ "~": resolve(__dirname, "src")
+ }
+ }
+ }
+})
diff --git a/apps/front/vite.scripts.config.ts b/apps/front/vite.static-scripts.config.ts
similarity index 74%
rename from apps/front/vite.scripts.config.ts
rename to apps/front/vite.static-scripts.config.ts
index bb7d696f..00348c1f 100644
--- a/apps/front/vite.scripts.config.ts
+++ b/apps/front/vite.static-scripts.config.ts
@@ -13,40 +13,40 @@ export default defineConfig(({ command, mode }) => {
build: {
assetsDir: "./",
write: true,
- outDir: config.outDirScripts,
+ outDir: config.outDirStaticScripts,
emptyOutDir: true,
manifest: false,
assetsInlineLimit: 0,
ssr: true,
define: {
- "process.env.VITE_APP_BASE": JSON.stringify(process.env.VITE_APP_BASE),
+ "process.env.VITE_APP_BASE": JSON.stringify(process.env.VITE_APP_BASE)
},
rollupOptions: {
input: [
- resolve("server.js"),
resolve("prerender/prerender.ts"),
resolve("prerender/exe-prerender-server.ts"),
resolve("prerender/exe-prerender.ts"),
+ resolve("prerender/helpers/ManifestParser.ts")
],
output: {
manualChunks: undefined,
entryFileNames: `[name].js`,
- chunkFileNames: `[name].js`,
- },
- },
+ chunkFileNames: `[name].js`
+ }
+ }
},
css: {
modules: {
- generateScopedName: "[name]__[local]__[hash:base64:5]",
+ generateScopedName: "[name]__[local]__[hash:base64:5]"
},
postcss: {
- plugins: [autoprefixer()],
- },
+ plugins: [autoprefixer()]
+ }
},
resolve: {
alias: {
- "~": resolve(__dirname, "src"),
- },
- },
+ "~": resolve(__dirname, "src")
+ }
+ }
}
})
diff --git a/cli/config.js b/cli/config.js
index 1d8b29ef..ad678eba 100644
--- a/cli/config.js
+++ b/cli/config.js
@@ -4,10 +4,8 @@ export default {
frontSrcDir: resolve("apps/front/src"),
// Scaffold components
- bundleType: ["react", "dom"],
componentCompatibleFolders: ["components", "pages"],
componentsTemplatesDir: resolve("cli/tasks/scaffold-component/templates"),
- twigTemplates: resolve("apps/back/web/app/themes/CherAmi/templates"),
// Scaffold WP
wpTheme: resolve("apps/back/web/app/themes/CherAmi"),
@@ -16,5 +14,5 @@ export default {
// setup
taskSetupFolder: resolve("cli/tasks/setup"),
installFile: resolve("cli/install"),
- setupFakeMode: false,
+ setupFakeMode: false
}
diff --git a/cli/helpers/create-file.js b/cli/helpers/create-file.js
index abd16141..875a8224 100644
--- a/cli/helpers/create-file.js
+++ b/cli/helpers/create-file.js
@@ -10,7 +10,7 @@ import logs from "./logger.js"
const createFile = async ({
templateFilePath = "",
destinationFilePath = "",
- replaceExpressions = {},
+ replaceExpressions = {}
}) => {
// Check if component already exists
@@ -33,7 +33,7 @@ const createFile = async ({
}
})
resolve(fileContent)
- }),
+ })
})
}
diff --git a/cli/helpers/logger.js b/cli/helpers/logger.js
index 74ae3985..59c8c6ae 100644
--- a/cli/helpers/logger.js
+++ b/cli/helpers/logger.js
@@ -9,5 +9,5 @@ export default {
start: (message = "") => console.log(`\n ${blue(message)}`),
note: (message = "") => console.log(` ${grey(message)}`),
done: (message = "Done.") => console.log(` ${green(message)}`),
- error: (message = "") => console.log(` ${red(message)}`),
+ error: (message = "") => console.log(` ${red(message)}`)
}
diff --git a/cli/tasks/scaffold-component/scaffold-component.js b/cli/tasks/scaffold-component/scaffold-component.js
index 96c57bb2..e852ee9f 100644
--- a/cli/tasks/scaffold-component/scaffold-component.js
+++ b/cli/tasks/scaffold-component/scaffold-component.js
@@ -14,7 +14,7 @@ const _askWhichComponentFolder = (componentCompatibleFolders) => {
type: "list",
name: "subFolder",
message: "Which component folder?",
- choices: componentCompatibleFolders,
+ choices: componentCompatibleFolders
})
}
@@ -22,7 +22,7 @@ const _askComponentName = () => {
return Inquirer.prompt({
type: "input",
message: "Component name?",
- name: "componentName",
+ name: "componentName"
})
}
@@ -33,7 +33,7 @@ const _reactComponentBuilder = async ({
subFolder,
componentPath,
upperComponentName,
- componentsTemplatesDir,
+ componentsTemplatesDir
}) => {
// choose between page and component type
const componentType = subFolder === "pages" ? "page" : "component"
@@ -41,42 +41,13 @@ const _reactComponentBuilder = async ({
await createFile({
templateFilePath: `${componentsTemplatesDir}/react/${componentType}.tsx.template`,
destinationFilePath: `${componentPath}/${upperComponentName}.tsx`,
- replaceExpressions: { upperComponentName },
+ replaceExpressions: { upperComponentName }
})
- // scaffold less module
+ // scaffold scss module
await createFile({
- templateFilePath: `${componentsTemplatesDir}/react/component.less.template`,
- destinationFilePath: `${componentPath}/${upperComponentName}.module.less`,
- replaceExpressions: { upperComponentName },
- })
-}
-
-/**
- * DOM Component builder
- */
-const _domComponentBuilder = async ({
- componentPath,
- upperComponentName,
- componentsTemplatesDir,
- twigComponentPath,
-}) => {
- // scaffold component file
- await createFile({
- templateFilePath: `${componentsTemplatesDir}/dom/component.ts.template`,
- destinationFilePath: `${componentPath}/${upperComponentName}.ts`,
- replaceExpressions: { upperComponentName },
- })
- // scaffold less module
- await createFile({
- templateFilePath: `${componentsTemplatesDir}/dom/component.less.template`,
- destinationFilePath: `${componentPath}/${upperComponentName}.less`,
- replaceExpressions: { upperComponentName },
- })
- // scaffold Twig
- await createFile({
- templateFilePath: `${componentsTemplatesDir}/dom/component.twig.template`,
- destinationFilePath: `${twigComponentPath}/${upperComponentName}.twig`,
- replaceExpressions: { upperComponentName },
+ templateFilePath: `${componentsTemplatesDir}/react/component.scss.template`,
+ destinationFilePath: `${componentPath}/${upperComponentName}.module.scss`,
+ replaceExpressions: { upperComponentName }
})
}
@@ -86,9 +57,9 @@ const _domComponentBuilder = async ({
*/
const _scaffoldComponent = ({
srcDir,
- pComponentType, // dom | react
componentCompatibleFolders,
componentsTemplatesDir,
+ pComponentType // react | ...
}) => {
return new Promise(async (resolve) => {
// Get sub-folder
@@ -104,36 +75,22 @@ const _scaffoldComponent = ({
componentName = answer.componentName
})
- // formated name "lowerCase"
+ // formatted name "lowerCase"
let lowerComponentName = changeCase.camelCase(componentName)
- // formated name "UpperCase"
+ // formatted name "UpperCase"
let upperComponentName = changeCase.pascalCase(componentName)
// Base path of the component (no extension at the end here)
let componentPath = `${srcDir}/${subFolder}/${lowerComponentName}`
- let twigComponentPath = `${config.twigTemplates}/${subFolder}`
log("component will be created here: componentPath", componentPath)
// build REACT component
- if (pComponentType === "react") {
- await _reactComponentBuilder({
- subFolder,
- upperComponentName,
- componentPath,
- componentCompatibleFolders,
- componentsTemplatesDir,
- })
- }
-
- // build DOM component
- if (pComponentType === "dom") {
- await _domComponentBuilder({
- upperComponentName,
- componentPath,
- twigComponentPath,
- componentCompatibleFolders,
- componentsTemplatesDir,
- })
- }
+ await _reactComponentBuilder({
+ subFolder,
+ upperComponentName,
+ componentPath,
+ componentCompatibleFolders,
+ componentsTemplatesDir
+ })
// final log
logs.done("Component created.")
@@ -143,45 +100,11 @@ const _scaffoldComponent = ({
// ----------------------------------------------------------------------------- PUBLIC
-const scaffoldComponent = () => {
- const TYPES = [
- {
- name: "React component",
- exec: () =>
- _scaffoldComponent({
- pComponentType: "react",
- componentCompatibleFolders: config.componentCompatibleFolders,
- componentsTemplatesDir: config.componentsTemplatesDir,
- srcDir: config.frontSrcDir,
- }),
- },
- {
- name: "DOM component",
- exec: () =>
- _scaffoldComponent({
- pComponentType: "dom",
- componentCompatibleFolders: config.componentCompatibleFolders,
- componentsTemplatesDir: config.componentsTemplatesDir,
- srcDir: config.frontSrcDir,
- }),
- },
- ]
-
- let scaffolderTypes = TYPES.map((scaffolder) => scaffolder.name)
-
- // List available scaffolders to user
- Inquirer.prompt({
- type: "list",
- name: "type",
- message: "What kind of component to create?",
- choices: scaffolderTypes,
- pageSize: 20,
- }).then((answer) => {
- // Get scaffolder index
- const scaffolderIndex = scaffolderTypes.indexOf(answer.type)
- // Start this scaffolder
- TYPES[scaffolderIndex].exec()
+;(async () => {
+ await _scaffoldComponent({
+ pComponentType: "react",
+ componentCompatibleFolders: config.componentCompatibleFolders,
+ componentsTemplatesDir: config.componentsTemplatesDir,
+ srcDir: config.frontSrcDir
})
-}
-
-scaffoldComponent()
+})()
diff --git a/cli/tasks/scaffold-component/templates/dom/component.less.template b/cli/tasks/scaffold-component/templates/dom/component.less.template
deleted file mode 100644
index 9d5b76f7..00000000
--- a/cli/tasks/scaffold-component/templates/dom/component.less.template
+++ /dev/null
@@ -1,14 +0,0 @@
-@import (reference) "../../references.less";
-@COMPONENT: %%upperComponentName%%;
-
-.%%upperComponentName%% {
-
-// ----------------------------------------------------------------------------- ELEMENTS
-
-// ----------------------------------------------------------------------------- MODIFIERS
-
-// ----------------------------------------------------------------------------- CHILDREN
-
-// ----------------------------------------------------------------------------- PATCHES
-
-}
diff --git a/cli/tasks/scaffold-component/templates/dom/component.scss.template b/cli/tasks/scaffold-component/templates/dom/component.scss.template
new file mode 100644
index 00000000..e76609e9
--- /dev/null
+++ b/cli/tasks/scaffold-component/templates/dom/component.scss.template
@@ -0,0 +1,5 @@
+@use "../../styles/reference" as *;
+
+.%%upperComponentName%% {
+
+}
diff --git a/cli/tasks/scaffold-component/templates/dom/component.ts.template b/cli/tasks/scaffold-component/templates/dom/component.ts.template
index 198aa220..0d154195 100644
--- a/cli/tasks/scaffold-component/templates/dom/component.ts.template
+++ b/cli/tasks/scaffold-component/templates/dom/component.ts.template
@@ -1,4 +1,4 @@
-import "./%%upperComponentName%%.less"
+import "./%%upperComponentName%%.scss"
import { Component } from "@cher-ami/compose"
import debug from "@cher-ami/debug"
diff --git a/cli/tasks/scaffold-component/templates/react/component.less.template b/cli/tasks/scaffold-component/templates/react/component.less.template
deleted file mode 100644
index 5d1b31e5..00000000
--- a/cli/tasks/scaffold-component/templates/react/component.less.template
+++ /dev/null
@@ -1,4 +0,0 @@
-@import (reference) "../../references.less";
-
-.root {
-}
diff --git a/cli/tasks/scaffold-component/templates/react/component.scss.template b/cli/tasks/scaffold-component/templates/react/component.scss.template
new file mode 100644
index 00000000..399ecd34
--- /dev/null
+++ b/cli/tasks/scaffold-component/templates/react/component.scss.template
@@ -0,0 +1,4 @@
+@use "../../styles/reference" as *;
+
+.root {
+}
diff --git a/cli/tasks/scaffold-component/templates/react/component.tsx.template b/cli/tasks/scaffold-component/templates/react/component.tsx.template
index f9693106..9058a0ad 100644
--- a/cli/tasks/scaffold-component/templates/react/component.tsx.template
+++ b/cli/tasks/scaffold-component/templates/react/component.tsx.template
@@ -1,5 +1,5 @@
import React from 'react';
-import css from './%%upperComponentName%%.module.less';
+import css from './%%upperComponentName%%.module.scss';
import { cls } from "@cher-ami/utils"
import debug from "@cher-ami/debug";
diff --git a/cli/tasks/scaffold-component/templates/react/page.tsx.template b/cli/tasks/scaffold-component/templates/react/page.tsx.template
index 6c879b11..65f30389 100644
--- a/cli/tasks/scaffold-component/templates/react/page.tsx.template
+++ b/cli/tasks/scaffold-component/templates/react/page.tsx.template
@@ -1,4 +1,4 @@
-import css from "./%%upperComponentName%%.module.less";
+import css from "./%%upperComponentName%%.module.scss";
import React, { forwardRef, ForwardedRef, useRef } from "react";
import { useStack } from "@cher-ami/router";
import debug from "@cher-ami/debug"
diff --git a/cli/tasks/scaffold-wp/builders/block.js b/cli/tasks/scaffold-wp/builders/block.js
index 1850ecb5..cc12d49c 100644
--- a/cli/tasks/scaffold-wp/builders/block.js
+++ b/cli/tasks/scaffold-wp/builders/block.js
@@ -10,13 +10,13 @@ const _askBlockName = () => {
{
type: "input",
message: "Block name (dashed lower cased)?",
- name: "blockName",
+ name: "blockName"
},
{
type: "input",
message: "Block title? ",
- name: "blockTitle",
- },
+ name: "blockTitle"
+ }
])
}
@@ -41,15 +41,15 @@ const _blockBuilder = async ({ blockPath, blockName, blockTitle }) => {
blockName,
blockTitle,
pascalCaseBlockName,
- upperCaseBlockName,
- },
+ upperCaseBlockName
+ }
})
// scaffold controller
await createFile({
templateFilePath: `${config.wpTemplatesPath}/block/blockController.php.template`,
destinationFilePath: `${blockPath}/${pascalCaseBlockName}Controller.php`,
- replaceExpressions: { pascalCaseBlockName, camelCaseBlockName, upperCaseBlockName },
+ replaceExpressions: { pascalCaseBlockName, camelCaseBlockName, upperCaseBlockName }
})
}
@@ -78,7 +78,7 @@ const buildBlock = async () => {
await _blockBuilder({
blockPath,
blockName,
- blockTitle,
+ blockTitle
})
} catch (e) {
logs.error(e)
@@ -139,7 +139,7 @@ const buildBlockType = async () => {
return {
name: changeCase.kebabCase(blockName),
upperCaseBlockName: changeCase.constantCase(blockName),
- pasclaCaseName: blockName,
+ pasclaCaseName: blockName
}
})
diff --git a/cli/tasks/scaffold-wp/builders/option-page.js b/cli/tasks/scaffold-wp/builders/option-page.js
index 255e244d..efd0a143 100644
--- a/cli/tasks/scaffold-wp/builders/option-page.js
+++ b/cli/tasks/scaffold-wp/builders/option-page.js
@@ -9,13 +9,13 @@ const _askOptionName = () => {
{
type: "input",
message: "Option page name (dashed lower cased)?",
- name: "pageName",
+ name: "pageName"
},
{
type: "input",
message: "Option page title? ",
- name: "pageTitle",
- },
+ name: "pageTitle"
+ }
])
}
@@ -33,21 +33,21 @@ const _optionPageBuilder = async ({ pagePath, pageName, pageTitle }) => {
await createFile({
templateFilePath: `${config.wpTemplatesPath}/option-page/PageOption.php.template`,
destinationFilePath: `${pagePath}/${pascalCasePageName}Option.php`,
- replaceExpressions: { pageName, pageTitle },
+ replaceExpressions: { pageName, pageTitle }
})
// scaffold controller
await createFile({
templateFilePath: `${config.wpTemplatesPath}/option-page/PageRestController.php.template`,
destinationFilePath: `${pagePath}/${pascalCasePageName}RestController.php`,
- replaceExpressions: { pageName, pascalCasePageName },
+ replaceExpressions: { pageName, pascalCasePageName }
})
// scaffold setup
await createFile({
templateFilePath: `${config.wpTemplatesPath}/option-page/setup.php.template`,
destinationFilePath: `${pagePath}/setup.php`,
- replaceExpressions: { pascalCasePageName },
+ replaceExpressions: { pascalCasePageName }
})
}
@@ -76,7 +76,7 @@ const buildOptionPage = () => {
await _optionPageBuilder({
pagePath,
pageName,
- pageTitle,
+ pageTitle
})
} catch (e) {
console.log(e)
diff --git a/cli/tasks/scaffold-wp/builders/page.js b/cli/tasks/scaffold-wp/builders/page.js
index d7faa21c..e66132d4 100644
--- a/cli/tasks/scaffold-wp/builders/page.js
+++ b/cli/tasks/scaffold-wp/builders/page.js
@@ -9,8 +9,8 @@ const _askPageName = () => {
{
type: "input",
message: "Page name (dashed lower cased) ?",
- name: "pageName",
- },
+ name: "pageName"
+ }
])
}
@@ -19,8 +19,8 @@ const _askIfTemplate = () => {
{
type: "confirm",
message: "Create a template for this page ?",
- name: "createTemplate",
- },
+ name: "createTemplate"
+ }
])
}
@@ -40,22 +40,22 @@ const _pageBuilder = async ({ pagePath, pageName, createTemplate }) => {
await createFile({
templateFilePath: `${config.wpTemplatesPath}/pages/PageRestController.php.template`,
destinationFilePath: `${pagePath}/${pascalCasePageName}RestController.php`,
- replaceExpressions: { pageName, pascalCasePageName },
+ replaceExpressions: { pageName, pascalCasePageName }
})
// scaffold setup
await createFile({
templateFilePath: `${config.wpTemplatesPath}/pages/setup.php.template`,
destinationFilePath: `${pagePath}/setup.php`,
- replaceExpressions: { camelCasePageName, pascalCasePageName },
+ replaceExpressions: { camelCasePageName, pascalCasePageName }
})
-
- if(createTemplate) {
+
+ if (createTemplate) {
// template setup
await createFile({
templateFilePath: `${config.wpTemplatesPath}/pages/page-template.php.template`,
destinationFilePath: `${config.wpTheme}/template-${pascalCasePageName}.php`,
- replaceExpressions: { camelCasePageName, pascalCasePageName },
+ replaceExpressions: { camelCasePageName, pascalCasePageName }
})
}
}
@@ -67,7 +67,7 @@ const buildPage = () => {
// Get page name
let pageName = ""
- let createTemplate;
+ let createTemplate
await _askPageName().then((answer) => {
pageName = changeCase.kebabCase(answer.pageName)
@@ -99,7 +99,7 @@ const buildPage = () => {
}
// final log
- createTemplate ? logs.done("Page and template created.") : logs.done("Page created.")
+ createTemplate ? logs.done("Page and template created.") : logs.done("Page created.")
resolve()
})
}
diff --git a/cli/tasks/scaffold-wp/builders/post-type.js b/cli/tasks/scaffold-wp/builders/post-type.js
index 073ec3f3..de1e5ecf 100644
--- a/cli/tasks/scaffold-wp/builders/post-type.js
+++ b/cli/tasks/scaffold-wp/builders/post-type.js
@@ -9,18 +9,18 @@ const _askPostTypeName = () => {
{
type: "input",
message: "Post type? (dashed lower cased)",
- name: "postTypeName",
+ name: "postTypeName"
},
{
type: "input",
message: "Singular display name? ",
- name: "upperSingularPostTypeName",
+ name: "upperSingularPostTypeName"
},
{
type: "input",
message: "Plural display name? ",
- name: "upperPluralPostTypeName",
- },
+ name: "upperPluralPostTypeName"
+ }
])
}
@@ -37,7 +37,7 @@ const _postTypeBuilder = async ({
postTypePath,
postTypeName,
upperPluralPostTypeName,
- upperSingularPostTypeName,
+ upperSingularPostTypeName
}) => {
// choose between page and postType type
const camelCasePostTypeName = changeCase.camelCase(postTypeName),
@@ -53,8 +53,8 @@ const _postTypeBuilder = async ({
camelCasePostTypeName,
upperPluralPostTypeName,
upperSingularPostTypeName,
- upperCasePostTypeName,
- },
+ upperCasePostTypeName
+ }
})
// scaffold controller
await createFile({
@@ -64,8 +64,8 @@ const _postTypeBuilder = async ({
postTypeName,
pascalCasePostType,
camelCasePostTypeName,
- upperCasePostTypeName,
- },
+ upperCasePostTypeName
+ }
})
// scaffold setup
@@ -76,8 +76,8 @@ const _postTypeBuilder = async ({
postTypeName,
camelCasePostTypeName,
pascalCasePostType,
- upperCasePostTypeName,
- },
+ upperCasePostTypeName
+ }
})
}
@@ -112,7 +112,7 @@ const buildPostType = async () => {
postTypePath,
postTypeName,
upperSingularPostTypeName,
- upperPluralPostTypeName,
+ upperPluralPostTypeName
})
} catch (e) {
logs.error(e)
diff --git a/cli/tasks/scaffold-wp/scaffold-wp.js b/cli/tasks/scaffold-wp/scaffold-wp.js
index 4c802cb8..75325c44 100644
--- a/cli/tasks/scaffold-wp/scaffold-wp.js
+++ b/cli/tasks/scaffold-wp/scaffold-wp.js
@@ -12,20 +12,20 @@ import buildBlock from "./builders/block.js"
const _scaffolders = [
{
name: "Post Type",
- exec: buildPostType,
+ exec: buildPostType
},
{
name: "Page",
- exec: buildPage,
+ exec: buildPage
},
{
name: "Option Page",
- exec: buildOptionPage,
+ exec: buildOptionPage
},
{
name: "Block",
- exec: buildBlock,
- },
+ exec: buildBlock
+ }
]
// ----------------------–----------------------–----------------------–-------- PUBLIC
@@ -49,7 +49,7 @@ const wpScaffold = () => {
name: "type",
message: "What kind of component to create?",
choices: scaffolderTypes,
- pageSize: 20,
+ pageSize: 20
}).then(async (answer) => {
// Get scaffolder index
const scaffolderIndex = scaffolderTypes.indexOf(answer.type)
diff --git a/cli/tasks/setup/modules/reset-git.js b/cli/tasks/setup/modules/reset-git.js
index ec3c6504..2e51c1ae 100644
--- a/cli/tasks/setup/modules/reset-git.js
+++ b/cli/tasks/setup/modules/reset-git.js
@@ -13,7 +13,7 @@ export default async ({ gitDir, fakeMode } = {}) =>
const removeGitAnswer = await Inquirer.prompt({
type: "confirm",
name: "removeGit",
- message: "Do you want to reset the current .git and re-init it?",
+ message: "Do you want to reset the current .git and re-init it?"
})
log("removeGitAnswer", removeGitAnswer["removeGit"])
diff --git a/cli/tasks/setup/modules/setup-package-json.js b/cli/tasks/setup/modules/setup-package-json.js
index 8cd2b98c..b3e7c1ea 100644
--- a/cli/tasks/setup/modules/setup-package-json.js
+++ b/cli/tasks/setup/modules/setup-package-json.js
@@ -23,7 +23,7 @@ export default async ({ packageJson, defaultProjectName, fakeMode } = {}) => {
projectVersion,
projectName,
projectAuthor,
- projectDescription,
+ projectDescription
})
// Get package infos if this is the first setup
@@ -41,7 +41,7 @@ export default async ({ packageJson, defaultProjectName, fakeMode } = {}) => {
await Inquirer.prompt({
type: "input",
message: "What's the project name? (dash-case)",
- name: "projectName",
+ name: "projectName"
}).then((answer) => (projectName = changeCase.kebabCase(answer.projectName)))
log("> new project name:", projectName)
@@ -49,7 +49,7 @@ export default async ({ packageJson, defaultProjectName, fakeMode } = {}) => {
await Inquirer.prompt({
type: "input",
message: "What's the author name?",
- name: "projectAuthor",
+ name: "projectAuthor"
}).then((answer) => (projectAuthor = answer.projectAuthor))
log("> new project author:", projectAuthor)
@@ -57,7 +57,7 @@ export default async ({ packageJson, defaultProjectName, fakeMode } = {}) => {
await Inquirer.prompt({
type: "input",
message: "What's the descripton?",
- name: "projectDescription",
+ name: "projectDescription"
}).then((answer) => (projectDescription = answer.projectDescription))
log("> new project description:", projectDescription)
@@ -88,7 +88,7 @@ export default async ({ packageJson, defaultProjectName, fakeMode } = {}) => {
log("Promise is resolve fn pass new package properties:", {
projectName,
projectAuthor,
- projectDescription,
+ projectDescription
})
resolve({ projectName, projectAuthor, projectDescription })
diff --git a/cli/tasks/setup/modules/setup-readme.js b/cli/tasks/setup/modules/setup-readme.js
index 2428df32..b07af659 100644
--- a/cli/tasks/setup/modules/setup-readme.js
+++ b/cli/tasks/setup/modules/setup-readme.js
@@ -18,7 +18,7 @@ export default async ({
readmeFrameworkFileName = "README-framework.md",
projectName = "[ PROJECT NAME ]",
projectAuthor = "[ PROJECT AUTHOR ]",
- projectDescription = "[ PROJECT DESCRIPTION ]",
+ projectDescription = "[ PROJECT DESCRIPTION ]"
}) => {
return new Promise(async (resolve) => {
logs.start(
@@ -73,7 +73,7 @@ export default async ({
)
})
resolve(fileContent)
- }),
+ })
})
} else {
log("FakeMode is activated, do nothing.")
diff --git a/cli/tasks/setup/setup.js b/cli/tasks/setup/setup.js
index b1361d4c..5b92bcf0 100644
--- a/cli/tasks/setup/setup.js
+++ b/cli/tasks/setup/setup.js
@@ -28,7 +28,7 @@ const setup = () =>
const { projectName, projectDescription, projectAuthor } = await setupPackageJson({
packageJson,
defaultProjectName: "chersite",
- fakeMode: config.setupFakeMode,
+ fakeMode: config.setupFakeMode
})
// setup readme
@@ -38,19 +38,19 @@ const setup = () =>
fakeMode: config.setupFakeMode,
projectName,
projectDescription,
- projectAuthor,
+ projectAuthor
})
// create install file
await createInstallFile({
installFilePath: config.installFile,
- fakeMode: config.setupFakeMode,
+ fakeMode: config.setupFakeMode
})
// remove unused files and directories
await resetGit({
gitDir: path.resolve(".git"),
- fakeMode: config.setupFakeMode,
+ fakeMode: config.setupFakeMode
})
console.log("")
diff --git a/docker-compose.yml b/docker-compose.yml
index f157d3bd..80f54e7c 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,11 +1,11 @@
version: "3.7"
services:
node:
- image: node:18.17.1
+ image: node:20.11
ports:
- - "${DOCKER_NODE_PORT:-3000}:3000"
- - "24678:24678" # vite hot reload port
- - "1234:1234" # expose node server for generating pages
+ - "${DOCKER_NODE_PORT:-5173}:5173" # vite dev server
+ - "24678:24678" # vite HMR
+ - "1234:1234" # expose express server for static page generation
volumes:
- "./:/app"
working_dir: /app
diff --git a/package-lock.json b/package-lock.json
index 99b8f655..72655088 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,11 +12,11 @@
"@cher-ami/debug": "^1.2.0",
"@cher-ami/mfs": "^0.2.0",
"chalk": "^5.3.0",
- "change-case": "^5.1.2",
- "husky": "^8.0.3",
- "inquirer": "^9.2.11",
- "lint-staged": "^15.0.2",
- "prettier": "^3.0.3"
+ "change-case": "^5.4.2",
+ "husky": "^9.0.10",
+ "inquirer": "^9.2.14",
+ "lint-staged": "^15.2.2",
+ "prettier": "^3.2.5"
}
},
"node_modules/@cher-ami/debug": {
@@ -35,12 +35,12 @@
}
},
"node_modules/@ljharb/through": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz",
- "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==",
+ "version": "2.3.12",
+ "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz",
+ "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2"
+ "call-bind": "^1.0.5"
},
"engines": {
"node": ">= 0.4"
@@ -150,14 +150,18 @@
}
},
"node_modules/call-bind": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
- "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz",
+ "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==",
"dev": true,
"dependencies": {
+ "es-errors": "^1.3.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.1",
- "set-function-length": "^1.1.1"
+ "get-intrinsic": "^1.2.3",
+ "set-function-length": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -176,9 +180,9 @@
}
},
"node_modules/change-case": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.1.2.tgz",
- "integrity": "sha512-CAtbGEDulyjzs05RXy3uKcwqeztz/dMEuAc1Xu9NQBsbrhuGMneL0u9Dj5SoutLKBFYun8txxYIwhjtLNfUmCA==",
+ "version": "5.4.2",
+ "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.2.tgz",
+ "integrity": "sha512-WB3UiTDpT+vrTilAWaJS4gaIH/jc1He4H9f6erQvraUYas90uWT0JOYFkG1imdNv710XJ6gJvqynrgOHc4ihDA==",
"dev": true
},
"node_modules/chardet": {
@@ -200,9 +204,9 @@
}
},
"node_modules/cli-spinners": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz",
- "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==",
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
+ "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
"dev": true,
"engines": {
"node": ">=6"
@@ -212,16 +216,16 @@
}
},
"node_modules/cli-truncate": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
- "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz",
+ "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==",
"dev": true,
"dependencies": {
"slice-ansi": "^5.0.0",
- "string-width": "^5.0.0"
+ "string-width": "^7.0.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -240,23 +244,23 @@
}
},
"node_modules/cli-truncate/node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz",
+ "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==",
"dev": true
},
"node_modules/cli-truncate/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz",
+ "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==",
"dev": true,
"dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -372,41 +376,42 @@
}
},
"node_modules/define-data-property": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
- "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz",
+ "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==",
"dev": true,
"dependencies": {
- "get-intrinsic": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.2",
"gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
+ "has-property-descriptors": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
}
},
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
- },
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.8.0"
}
},
"node_modules/eventemitter3": {
@@ -438,18 +443,6 @@
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
- "node_modules/execa/node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/external-editor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
@@ -465,16 +458,15 @@
}
},
"node_modules/figures": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz",
- "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
"dev": true,
"dependencies": {
- "escape-string-regexp": "^5.0.0",
- "is-unicode-supported": "^1.2.0"
+ "escape-string-regexp": "^1.0.5"
},
"engines": {
- "node": ">=14"
+ "node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -493,9 +485,9 @@
}
},
"node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -515,17 +507,33 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-east-asian-width": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz",
+ "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/get-intrinsic": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
- "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
"dev": true,
"dependencies": {
+ "es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
"hasown": "^2.0.0"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -627,15 +635,15 @@
}
},
"node_modules/husky": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
- "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
+ "version": "9.0.10",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-9.0.10.tgz",
+ "integrity": "sha512-TQGNknoiy6bURzIO77pPRu+XHi6zI7T93rX+QnJsoYFf3xdjKOur+IlfqzJGMHIK/wXrLg+GsvMs8Op7vI2jVA==",
"dev": true,
"bin": {
- "husky": "lib/bin.js"
+ "husky": "bin.mjs"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/typicode"
@@ -680,18 +688,18 @@
"dev": true
},
"node_modules/inquirer": {
- "version": "9.2.11",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz",
- "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==",
+ "version": "9.2.14",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.14.tgz",
+ "integrity": "sha512-4ByIMt677Iz5AvjyKrDpzaepIyMewNvDcvwpVVRZNmy9dLakVoVgdCHZXbK1SlVJra1db0JZ6XkJyHsanpdrdQ==",
"dev": true,
"dependencies": {
- "@ljharb/through": "^2.3.9",
+ "@ljharb/through": "^2.3.12",
"ansi-escapes": "^4.3.2",
"chalk": "^5.3.0",
"cli-cursor": "^3.1.0",
"cli-width": "^4.1.0",
"external-editor": "^3.1.0",
- "figures": "^5.0.0",
+ "figures": "^3.2.0",
"lodash": "^4.17.21",
"mute-stream": "1.0.0",
"ora": "^5.4.1",
@@ -702,7 +710,7 @@
"wrap-ansi": "^6.2.0"
},
"engines": {
- "node": ">=14.18.0"
+ "node": ">=18"
}
},
"node_modules/is-fullwidth-code-point": {
@@ -748,12 +756,12 @@
}
},
"node_modules/is-unicode-supported": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz",
- "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==",
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"dev": true,
"engines": {
- "node": ">=12"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -778,30 +786,30 @@
}
},
"node_modules/lilconfig": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
- "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz",
+ "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==",
"dev": true,
"engines": {
- "node": ">=10"
+ "node": ">=14"
}
},
"node_modules/lint-staged": {
- "version": "15.0.2",
- "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.0.2.tgz",
- "integrity": "sha512-vnEy7pFTHyVuDmCAIFKR5QDO8XLVlPFQQyujQ/STOxe40ICWqJ6knS2wSJ/ffX/Lw0rz83luRDh+ET7toN+rOw==",
+ "version": "15.2.2",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.2.tgz",
+ "integrity": "sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==",
"dev": true,
"dependencies": {
"chalk": "5.3.0",
"commander": "11.1.0",
"debug": "4.3.4",
"execa": "8.0.1",
- "lilconfig": "2.1.0",
- "listr2": "7.0.2",
+ "lilconfig": "3.0.0",
+ "listr2": "8.0.1",
"micromatch": "4.0.5",
"pidtree": "0.6.0",
"string-argv": "0.3.2",
- "yaml": "2.3.3"
+ "yaml": "2.3.4"
},
"bin": {
"lint-staged": "bin/lint-staged.js"
@@ -814,20 +822,20 @@
}
},
"node_modules/listr2": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/listr2/-/listr2-7.0.2.tgz",
- "integrity": "sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.0.1.tgz",
+ "integrity": "sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==",
"dev": true,
"dependencies": {
- "cli-truncate": "^3.1.0",
+ "cli-truncate": "^4.0.0",
"colorette": "^2.0.20",
"eventemitter3": "^5.0.1",
- "log-update": "^5.0.1",
+ "log-update": "^6.0.0",
"rfdc": "^1.3.0",
- "wrap-ansi": "^8.1.0"
+ "wrap-ansi": "^9.0.0"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/listr2/node_modules/ansi-regex": {
@@ -843,23 +851,23 @@
}
},
"node_modules/listr2/node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz",
+ "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==",
"dev": true
},
"node_modules/listr2/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz",
+ "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==",
"dev": true,
"dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -881,17 +889,17 @@
}
},
"node_modules/listr2/node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz",
+ "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==",
"dev": true,
"dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
+ "ansi-styles": "^6.2.1",
+ "string-width": "^7.0.0",
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
@@ -950,47 +958,35 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/log-symbols/node_modules/is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/log-update": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz",
- "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz",
+ "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==",
"dev": true,
"dependencies": {
- "ansi-escapes": "^5.0.0",
+ "ansi-escapes": "^6.2.0",
"cli-cursor": "^4.0.0",
- "slice-ansi": "^5.0.0",
- "strip-ansi": "^7.0.1",
- "wrap-ansi": "^8.0.1"
+ "slice-ansi": "^7.0.0",
+ "strip-ansi": "^7.1.0",
+ "wrap-ansi": "^9.0.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/log-update/node_modules/ansi-escapes": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz",
- "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz",
+ "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
"dev": true,
"dependencies": {
- "type-fest": "^1.0.2"
+ "type-fest": "^3.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -1024,11 +1020,26 @@
}
},
"node_modules/log-update/node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz",
+ "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==",
"dev": true
},
+ "node_modules/log-update/node_modules/is-fullwidth-code-point": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz",
+ "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==",
+ "dev": true,
+ "dependencies": {
+ "get-east-asian-width": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/log-update/node_modules/mimic-fn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
@@ -1069,18 +1080,40 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/log-update/node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ },
+ "node_modules/log-update/node_modules/slice-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz",
+ "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.2.1",
+ "is-fullwidth-code-point": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
"node_modules/log-update/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz",
+ "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==",
"dev": true,
"dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -1102,29 +1135,29 @@
}
},
"node_modules/log-update/node_modules/type-fest": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
"dev": true,
"engines": {
- "node": ">=10"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/log-update/node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz",
+ "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==",
"dev": true,
"dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
+ "ansi-styles": "^6.2.1",
+ "string-width": "^7.0.0",
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
@@ -1177,9 +1210,9 @@
}
},
"node_modules/npm-run-path": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
- "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz",
+ "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
"dev": true,
"dependencies": {
"path-key": "^4.0.0"
@@ -1272,18 +1305,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/ora/node_modules/is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
@@ -1327,9 +1348,9 @@
}
},
"node_modules/prettier": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
- "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
+ "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"
@@ -1392,10 +1413,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/restore-cursor/node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ },
"node_modules/rfdc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
- "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz",
+ "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==",
"dev": true
},
"node_modules/run-async": {
@@ -1443,15 +1470,17 @@
"dev": true
},
"node_modules/set-function-length": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
- "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz",
+ "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
"dev": true,
"dependencies": {
- "define-data-property": "^1.1.1",
- "get-intrinsic": "^1.2.1",
+ "define-data-property": "^1.1.2",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.3",
"gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
+ "has-property-descriptors": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -1479,10 +1508,16 @@
}
},
"node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
},
"node_modules/slice-ansi": {
"version": "5.0.0",
@@ -1688,9 +1723,9 @@
}
},
"node_modules/yaml": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.3.tgz",
- "integrity": "sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==",
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
+ "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==",
"dev": true,
"engines": {
"node": ">= 14"
diff --git a/package.json b/package.json
index 7fac7449..8b0c4abe 100644
--- a/package.json
+++ b/package.json
@@ -3,11 +3,12 @@
"description": "Multi apps boilerplate for cher-ami projects.",
"version": "3.1.0",
"author": "cher-ami",
- "main": "src/index.tsx",
+ "main": "src/index-client.tsx",
"type": "module",
"scripts": {
"front:dev": "cd apps/front && npm run dev",
"front:build": "cd apps/front && npm run build",
+ "front:start": "cd apps/front && npm run start",
"front:test": "cd apps/front && npm run test",
"front:scaffold": "node cli/tasks/scaffold-component/scaffold-component.js",
"back:scaffold-wp": "node cli/tasks/scaffold-wp/scaffold-wp.js",
@@ -18,20 +19,21 @@
"devDependencies": {
"@cher-ami/debug": "^1.2.0",
"@cher-ami/mfs": "^0.2.0",
- "change-case": "^5.1.2",
- "lint-staged": "^15.0.2",
- "husky": "^8.0.3",
- "prettier": "^3.0.3",
- "inquirer": "^9.2.11",
+ "change-case": "^5.4.2",
+ "lint-staged": "^15.2.2",
+ "husky": "^9.0.10",
+ "prettier": "^3.2.5",
+ "inquirer": "^9.2.14",
"chalk": "^5.3.0"
},
"lint-staged": {
- "apps/front/**/*.{tsx,ts,jsx,js,less,css,json,md}": [
+ "apps/front/**/*.{tsx,ts,jsx,js,scss,css,json,md}": [
"npx prettier --write ./apps/front/"
]
},
"prettier": {
"printWidth": 90,
- "semi": false
+ "semi": false,
+ "trailingComma": "none"
}
}