diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
index bc3c47344b..eba65e28b0 100644
--- a/.github/workflows/e2e.yml
+++ b/.github/workflows/e2e.yml
@@ -16,7 +16,7 @@ jobs:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node: ['18', '20', '22']
- bundler: ['webpack', 'vite']
+ bundler: ['webpack', 'farm', 'vite']
runs-on: ${{ matrix.os }}
diff --git a/e2e/docs/.vuepress/config.ts b/e2e/docs/.vuepress/config.ts
index 363ef38117..20b67c6263 100644
--- a/e2e/docs/.vuepress/config.ts
+++ b/e2e/docs/.vuepress/config.ts
@@ -1,4 +1,5 @@
import process from 'node:process'
+import { farmBundler } from '@vuepress/bundler-farm'
import { viteBundler } from '@vuepress/bundler-vite'
import { webpackBundler } from '@vuepress/bundler-webpack'
import { defineUserConfig } from 'vuepress'
@@ -62,13 +63,15 @@ export default defineUserConfig({
bundler:
E2E_BUNDLER === 'webpack'
? webpackBundler()
- : viteBundler({
- viteOptions: {
- optimizeDeps: {
- include: ['@vuepress-e2e/conditional-exports'],
+ : E2E_BUNDLER === 'farm'
+ ? farmBundler()
+ : viteBundler({
+ viteOptions: {
+ optimizeDeps: {
+ include: ['@vuepress-e2e/conditional-exports'],
+ },
},
- },
- }),
+ }),
theme: e2eTheme(),
diff --git a/e2e/package.json b/e2e/package.json
index 24c8dbd82d..fecd109e80 100644
--- a/e2e/package.json
+++ b/e2e/package.json
@@ -5,19 +5,24 @@
"type": "module",
"scripts": {
"docs:build": "vuepress build docs --clean-cache --clean-temp",
+ "docs:build-farm": "cross-env E2E_BUNDLER=farm pnpm docs:build",
"docs:build-webpack": "cross-env E2E_BUNDLER=webpack pnpm docs:build",
"docs:clean": "rimraf docs/.vuepress/.temp docs/.vuepress/.cache docs/.vuepress/dist",
"docs:dev": "vuepress dev docs --clean-cache --clean-temp",
+ "docs:dev-farm": "cross-env E2E_BUNDLER=farm pnpm docs:dev",
"docs:dev-webpack": "cross-env E2E_BUNDLER=webpack pnpm docs:dev",
"docs:serve": "anywhere -s -h localhost -p 9080 -d docs/.vuepress/dist",
"e2e:build": "cross-env E2E_COMMAND=build playwright test",
+ "e2e:build-farm": "cross-env E2E_COMMAND=build E2E_BUNDLER=farm playwright test",
"e2e:build-webpack": "cross-env E2E_COMMAND=build E2E_BUNDLER=webpack playwright test",
"e2e:dev": "cross-env E2E_COMMAND=dev playwright test",
+ "e2e:dev-farm": "cross-env E2E_COMMAND=dev E2E_BUNDLER=farm playwright test",
"e2e:dev-webpack": "cross-env E2E_COMMAND=dev E2E_BUNDLER=webpack playwright test"
},
"dependencies": {
"@vuepress-e2e/conditional-exports": "file:./modules/conditional-exports",
"@vuepress-e2e/style-exports": "file:./modules/style-exports",
+ "@vuepress/bundler-farm": "workspace:*",
"@vuepress/bundler-vite": "workspace:*",
"@vuepress/bundler-webpack": "workspace:*",
"sass": "^1.77.6",
diff --git a/package.json b/package.json
index cb2cbead1d..ef2ffeddea 100644
--- a/package.json
+++ b/package.json
@@ -39,6 +39,7 @@
"@vitest/coverage-istanbul": "^1.6.0",
"bumpp": "^9.4.1",
"conventional-changelog-cli": "^5.0.0",
+ "core-js": "^3.37.1",
"eslint": "^8.57.0",
"eslint-config-vuepress": "^4.10.1",
"eslint-config-vuepress-typescript": "^4.10.1",
diff --git a/packages/bundler-farm/README.md b/packages/bundler-farm/README.md
new file mode 100644
index 0000000000..f5aef3ab7f
--- /dev/null
+++ b/packages/bundler-farm/README.md
@@ -0,0 +1,12 @@
+# @vuepress/bundler-farm
+
+[![npm](https://badgen.net/npm/v/@vuepress/bundler-vite/next)](https://www.npmjs.com/package/@vuepress/bundler-farm)
+[![license](https://badgen.net/github/license/vuepress/core)](https://github.com/vuepress/core/blob/main/LICENSE)
+
+## Documentation
+
+https://v2.vuepress.vuejs.org
+
+## License
+
+[MIT](https://github.com/vuepress/core/blob/main/LICENSE)
diff --git a/packages/bundler-farm/client.d.ts b/packages/bundler-farm/client.d.ts
new file mode 100644
index 0000000000..36fb3b9a4f
--- /dev/null
+++ b/packages/bundler-farm/client.d.ts
@@ -0,0 +1 @@
+///
diff --git a/packages/bundler-farm/package.json b/packages/bundler-farm/package.json
new file mode 100644
index 0000000000..a98acfbcff
--- /dev/null
+++ b/packages/bundler-farm/package.json
@@ -0,0 +1,66 @@
+{
+ "name": "@vuepress/bundler-farm",
+ "version": "2.0.0-rc.14",
+ "description": "Bundler farm package of VuePress",
+ "keywords": [
+ "vuepress-bundler",
+ "vuepress",
+ "bundler",
+ "farm"
+ ],
+ "homepage": "https://github.com/vuepress",
+ "bugs": {
+ "url": "https://github.com/vuepress/core/issues"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/vuepress/core.git"
+ },
+ "license": "MIT",
+ "author": "meteorlxy",
+ "type": "module",
+ "exports": {
+ ".": "./dist/index.js",
+ "./client": "./client.d.ts",
+ "./package.json": "./package.json"
+ },
+ "main": "./dist/index.js",
+ "types": "./dist/index.d.ts",
+ "files": [
+ "dist",
+ "client.d.ts"
+ ],
+ "scripts": {
+ "build": "tsup",
+ "clean": "rimraf dist"
+ },
+ "dependencies": {
+ "@farmfe/core": "^1.2.4",
+ "@farmfe/plugin-sass": "^1.0.5",
+ "@vuepress/client": "workspace:*",
+ "@vuepress/core": "workspace:*",
+ "@vuepress/utils": "workspace:*",
+ "@vuepress/vite-kit": "workspace:*",
+ "vue": "^3.4.29"
+ },
+ "devDependencies": {
+ "rollup": "^4.18.0"
+ },
+ "publishConfig": {
+ "access": "public"
+ },
+ "tsup": {
+ "clean": true,
+ "dts": "./src/index.ts",
+ "entry": [
+ "./src/index.ts"
+ ],
+ "format": [
+ "esm"
+ ],
+ "outDir": "./dist",
+ "sourcemap": false,
+ "target": "es2022",
+ "tsconfig": "../../tsconfig.dts.json"
+ }
+}
diff --git a/packages/bundler-farm/src/build.ts b/packages/bundler-farm/src/build.ts
new file mode 100644
index 0000000000..aef9a658e0
--- /dev/null
+++ b/packages/bundler-farm/src/build.ts
@@ -0,0 +1,91 @@
+import { build as farmBuild } from '@farmfe/core'
+import type { App, Bundler } from '@vuepress/core'
+import { debug, fs, withSpinner } from '@vuepress/utils'
+import { resolveFarmConfig } from './resolveFarmConfig.js'
+import type { FarmBundlerOptions } from './types.js'
+
+const log = debug('vuepress:bundler-vite/build')
+
+export const build = async (
+ options: FarmBundlerOptions,
+ app: App,
+): ReturnType => {
+ // plugin hook: extendsBundlerOptions
+ await app.pluginApi.hooks.extendsBundlerOptions.process(options, app)
+
+ // vite compile
+ log('compiling start')
+ await withSpinner('Compiling with farm')(async () => {
+ // create vite config
+ const clientConfig = await resolveFarmConfig({
+ app,
+ options,
+ isBuild: true,
+ isServer: false,
+ })
+ const serverConfig = await resolveFarmConfig({
+ app,
+ options,
+ isBuild: true,
+ isServer: true,
+ })
+
+ await Promise.all([farmBuild(clientConfig), farmBuild(serverConfig)])
+ })
+ log('compiling finish')
+
+ /*
+ // render pages
+ await withSpinner(`Rendering ${app.pages.length} pages`)(async (spinner) => {
+ // get client bundle entry chunk and css asset
+ const clientEntryChunk = clientOutput.output.find(
+ (item) => item.type === 'chunk' && item.isEntry,
+ ) as OutputChunk
+ const clientCssAsset = clientOutput.output.find(
+ (item): item is OutputAsset =>
+ item.type === 'asset' && item.fileName.endsWith('.css'),
+ )
+
+ // get server bundle entry chunk
+ const serverEntryChunk = serverOutput.output.find(
+ (item) => item.type === 'chunk' && item.isEntry,
+ ) as OutputChunk
+
+ // load the compiled server bundle
+ const serverEntryPath = app.dir.temp('.server', serverEntryChunk.fileName)
+ const { createVueApp } = await importFile<{
+ createVueApp: CreateVueAppFunction
+ }>(serverEntryPath)
+ // create vue ssr app
+ const { app: vueApp, router: vueRouter } = await createVueApp()
+ const { renderToString } = await import('vue/server-renderer')
+
+ // load ssr template file
+ const ssrTemplate = await fs.readFile(app.options.templateBuild, {
+ encoding: 'utf8',
+ })
+
+ // pre-render pages to html files
+ for (const page of app.pages) {
+ if (spinner) spinner.text = `Rendering pages ${colors.magenta(page.path)}`
+ await renderPage({
+ app,
+ page,
+ vueApp,
+ vueRouter,
+ renderToString,
+ ssrTemplate,
+ output: clientOutput.output,
+ outputEntryChunk: clientEntryChunk,
+ outputCssAsset: clientCssAsset,
+ })
+ }
+ })
+ */
+
+ // keep the server bundle files in debug mode
+ if (!app.env.isDebug) {
+ // remove server temp directory after pages rendered
+ await fs.remove(app.dir.temp('.server'))
+ }
+}
diff --git a/packages/bundler-farm/src/dev.ts b/packages/bundler-farm/src/dev.ts
new file mode 100644
index 0000000000..5e19973162
--- /dev/null
+++ b/packages/bundler-farm/src/dev.ts
@@ -0,0 +1,30 @@
+import { Compiler, DEFAULT_HMR_OPTIONS, logger, Server } from '@farmfe/core'
+import type { App, Bundler } from '@vuepress/core'
+import { resolveFarmConfig } from './resolveFarmConfig.js'
+import type { FarmBundlerOptions } from './types.js'
+
+export const dev = async (
+ options: FarmBundlerOptions,
+ app: App,
+): ReturnType => {
+ // plugin hook: extendsBundlerOptions
+ await app.pluginApi.hooks.extendsBundlerOptions.process(options, app)
+
+ const farmConfig = await resolveFarmConfig({
+ app,
+ options,
+ isBuild: false,
+ isServer: false,
+ })
+
+ const compiler = new Compiler({ config: farmConfig.compilation })
+ const server = new Server({ compiler, logger })
+ // @ts-expect-error wrong types? todo
+ await server.createDevServer({
+ ...farmConfig.server,
+ hmr: DEFAULT_HMR_OPTIONS,
+ })
+ await server.listen()
+
+ return server.close.bind(server)
+}
diff --git a/packages/bundler-farm/src/farmBundler.ts b/packages/bundler-farm/src/farmBundler.ts
new file mode 100644
index 0000000000..6ec9c4f842
--- /dev/null
+++ b/packages/bundler-farm/src/farmBundler.ts
@@ -0,0 +1,10 @@
+import type { Bundler } from '@vuepress/core'
+import { build } from './build.js'
+import { dev } from './dev.js'
+import type { FarmBundlerOptions } from './types.js'
+
+export const farmBundler = (options: FarmBundlerOptions = {}): Bundler => ({
+ name: '@vuepress/bundler-farm',
+ dev: (app) => dev(options, app),
+ build: (app) => build(options, app),
+})
diff --git a/packages/bundler-farm/src/index.ts b/packages/bundler-farm/src/index.ts
new file mode 100644
index 0000000000..d00d9ca5ed
--- /dev/null
+++ b/packages/bundler-farm/src/index.ts
@@ -0,0 +1,5 @@
+import { farmBundler } from './farmBundler.js'
+
+export * from './types.js'
+export * from './farmBundler.js'
+export default farmBundler
diff --git a/packages/bundler-farm/src/plugins/index.ts b/packages/bundler-farm/src/plugins/index.ts
new file mode 100644
index 0000000000..febec56f2f
--- /dev/null
+++ b/packages/bundler-farm/src/plugins/index.ts
@@ -0,0 +1 @@
+export * from './vuepressUserConfigPlugin.js'
diff --git a/packages/bundler-farm/src/plugins/vuepressUserConfigPlugin.ts b/packages/bundler-farm/src/plugins/vuepressUserConfigPlugin.ts
new file mode 100644
index 0000000000..ec0782815e
--- /dev/null
+++ b/packages/bundler-farm/src/plugins/vuepressUserConfigPlugin.ts
@@ -0,0 +1,12 @@
+import type { JsPlugin } from '@farmfe/core'
+import type { FarmBundlerOptions } from '../types.js'
+
+/**
+ * A plugin to allow user config to override vite config
+ */
+export const vuepressUserConfigPlugin = (
+ options: FarmBundlerOptions,
+): JsPlugin => ({
+ name: 'vuepress:user-config',
+ config: () => options.farmOptions ?? {},
+})
diff --git a/packages/bundler-farm/src/resolveFarmConfig.ts b/packages/bundler-farm/src/resolveFarmConfig.ts
new file mode 100644
index 0000000000..8f98016821
--- /dev/null
+++ b/packages/bundler-farm/src/resolveFarmConfig.ts
@@ -0,0 +1,33 @@
+import type { App } from '@vuepress/core'
+import { vuepressMainPlugin, vuepressVuePlugin } from '@vuepress/vite-kit'
+import { vuepressUserConfigPlugin } from './plugins/index.js'
+import type { FarmBundlerOptions, FarmOptions } from './types.js'
+
+export const resolveFarmConfig = async ({
+ app,
+ options,
+ isBuild,
+ isServer,
+}: {
+ app: App
+ options: FarmBundlerOptions
+ isBuild: boolean
+ isServer: boolean
+}): Promise => {
+ return {
+ clearScreen: false,
+ ...options.farmOptions,
+ plugins: ['@farmfe/plugin-sass', ...(options.farmOptions?.plugins ?? [])],
+ vitePlugins: [
+ vuepressVuePlugin(options.vuePluginOptions ?? {}),
+ vuepressMainPlugin({
+ app,
+ isBuild,
+ isServer,
+ alwaysWriteEntryHtml: true,
+ }),
+ vuepressUserConfigPlugin(options),
+ ...(options.farmOptions?.vitePlugins ?? []),
+ ],
+ }
+}
diff --git a/packages/bundler-farm/src/types.ts b/packages/bundler-farm/src/types.ts
new file mode 100644
index 0000000000..8c985af331
--- /dev/null
+++ b/packages/bundler-farm/src/types.ts
@@ -0,0 +1,15 @@
+import type { Server, start } from '@farmfe/core'
+import type { VuePluginOptions } from '@vuepress/vite-kit'
+
+export type FarmOptions = Exclude[0], undefined>
+export type FarmDevServerOptions = Parameters<
+ InstanceType['createDevServer']
+>[0]
+
+/**
+ * Options for bundler-vite
+ */
+export interface FarmBundlerOptions {
+ farmOptions?: FarmOptions
+ vuePluginOptions?: VuePluginOptions
+}
diff --git a/packages/vite-kit/src/plugins/vuepressMainPlugin.ts b/packages/vite-kit/src/plugins/vuepressMainPlugin.ts
index 05a53d3b0d..b84b3e0f56 100644
--- a/packages/vite-kit/src/plugins/vuepressMainPlugin.ts
+++ b/packages/vite-kit/src/plugins/vuepressMainPlugin.ts
@@ -13,16 +13,18 @@ export const vuepressMainPlugin = ({
app,
isBuild,
isServer,
+ alwaysWriteEntryHtml,
}: {
app: App
isBuild: boolean
isServer: boolean
+ alwaysWriteEntryHtml?: boolean
}): Plugin => ({
name: 'vuepress:main',
config: async () => {
// create a temp index.html as dev entry point
- if (!isBuild) {
+ if (!isBuild || alwaysWriteEntryHtml) {
await app.writeTemp(
'vite-root/index.html',
fs
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 72d6c022ed..42d068e7aa 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -32,6 +32,9 @@ importers:
conventional-changelog-cli:
specifier: ^5.0.0
version: 5.0.0(conventional-commits-filter@5.0.0)
+ core-js:
+ specifier: ^3.37.1
+ version: 3.37.1
eslint:
specifier: ^8.57.0
version: 8.57.0
@@ -86,6 +89,9 @@ importers:
'@vuepress-e2e/style-exports':
specifier: file:./modules/style-exports
version: file:e2e/modules/style-exports
+ '@vuepress/bundler-farm':
+ specifier: workspace:*
+ version: link:../packages/bundler-farm
'@vuepress/bundler-vite':
specifier: workspace:*
version: link:../packages/bundler-vite
@@ -115,6 +121,34 @@ importers:
specifier: ^7.0.3
version: 7.0.3
+ packages/bundler-farm:
+ dependencies:
+ '@farmfe/core':
+ specifier: ^1.2.4
+ version: 1.2.4
+ '@farmfe/plugin-sass':
+ specifier: ^1.0.5
+ version: 1.0.5
+ '@vuepress/client':
+ specifier: workspace:*
+ version: link:../client
+ '@vuepress/core':
+ specifier: workspace:*
+ version: link:../core
+ '@vuepress/utils':
+ specifier: workspace:*
+ version: link:../utils
+ '@vuepress/vite-kit':
+ specifier: workspace:*
+ version: link:../vite-kit
+ vue:
+ specifier: ^3.4.29
+ version: 3.4.29(typescript@5.5.2)
+ devDependencies:
+ rollup:
+ specifier: ^4.18.0
+ version: 4.18.0
+
packages/bundler-vite:
dependencies:
'@vuepress/client':
@@ -781,6 +815,139 @@ packages:
resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@farmfe/core-darwin-arm64@1.2.4':
+ resolution: {integrity: sha512-KPFeiIf6bbBCeWoPJ2VQH/3AGMZS/dR9nLlA+yXon+dUOwX9uVSDSmAIEcHKdUyJ8N8Y+1o2mF0uS0bSIz9YHA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@farmfe/core-darwin-x64@1.2.4':
+ resolution: {integrity: sha512-KbIY1VWXDAviR2e8+YsRqAChEqQZXQJOJK/yVICY0S0mWsxXQAwP3FvwifpqSLTUZb97v2evTUtJGGkTr27FZA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@farmfe/core-linux-arm64-gnu@1.2.4':
+ resolution: {integrity: sha512-oN5H/5cvwqZ4pfyGiySzkEu9ZO/pLgfBymDZw9+h8z7rEKoGvjzc/kvdgGLPKn4XR14hqZlyPP1C7BbBbkdS3g==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@farmfe/core-linux-arm64-musl@1.2.4':
+ resolution: {integrity: sha512-L9XhlrKnocFvv7c6kLSiC/EHIwhIkVCdoQ9UbcT126Tj1EIEb9HwydkAFI0Fpxt4zpixE4xpZ8DdBve2z2EheA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@farmfe/core-linux-x64-gnu@1.2.4':
+ resolution: {integrity: sha512-/WHOM7ToTWCETJ8sfv+qFmHisqntx8xQ8AfRGaPVMBSF8Jce0ww9CziIk6solMvNdFVFqZu2P4lC8eLz/IX5uw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@farmfe/core-linux-x64-musl@1.2.4':
+ resolution: {integrity: sha512-N+W1sqbKO4RC1qk08qO6wilchy0AVVOr2qt8PYDkn3czzsEquY35cgPgclLh9yXW0Cl5cizi4Spnc+U5/xO0ow==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@farmfe/core-win32-arm64-msvc@1.2.4':
+ resolution: {integrity: sha512-LX5lKqTRhqM2qTHbEUlUg0EXOXtyjz2Y1/SsEYZ3GyOJVPAtVA9dnqYezldarLoV/yNj9DzeE0oiijGjlOEcZA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@farmfe/core-win32-ia32-msvc@1.2.4':
+ resolution: {integrity: sha512-XcJ1PqOJ8LzWNCJlJN1lDgn+h9EUZa/Hj3Szw8Mg05sa5DEPzvH6ViYi19GkDUNtzLgfjl3IX/Iq81GqXZKC+g==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@farmfe/core-win32-x64-msvc@1.2.4':
+ resolution: {integrity: sha512-tQrYeRNoDipNsuzU7fpXs8ytRnT6R2qvKYxwaBsmbM7372DzQZSUxSwXHgz1GvEuuvndLcpvErxzXFtOJ9+5XQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@farmfe/core@1.2.4':
+ resolution: {integrity: sha512-EyTU+ZskXAtsAiwuHkN9q9TPc/MwohASzn3eDjgIBAFFNOKtei2Gd0QD/F12H03JsUhcEOsvGbxQMZTrzBVnXQ==}
+ engines: {node: '>=16.15.1'}
+
+ '@farmfe/plugin-sass-darwin-arm64@1.0.5':
+ resolution: {integrity: sha512-0uRiWqEjLUjEQbaJBXFKCdp4P++00vHE0WegUBgA7KpnQ8USWBJEJ+AQklBKuZitjpqlkJqCsq09bEmkwzEVYA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@farmfe/plugin-sass-darwin-x64@1.0.5':
+ resolution: {integrity: sha512-lVogirOJiRMtDUkeEksYpt+40yRn7/syWGPCqBOn489tyKSvr1WMvIICAntqO4+FryVTQU3tgck11XYUd87cMA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@farmfe/plugin-sass-linux-arm64-gnu@1.0.5':
+ resolution: {integrity: sha512-0Iv6bzrTRqaGZ4QKt+aabJrvMRHPa8Vv9kSgGbqhs40Spm1cqUIMoHBfS76L8PX+BG6327C/5iqv4oOERmWoNg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@farmfe/plugin-sass-linux-arm64-musl@1.0.5':
+ resolution: {integrity: sha512-uOjnGp9fxMaIbRo3CPBtH2EivpSHhB1nje+f40JFcbiklPhcEs41/W62ZgSg6NOq2ocNbUbv1sdp1/6eBt0v7Q==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@farmfe/plugin-sass-linux-x64-gnu@1.0.5':
+ resolution: {integrity: sha512-29uzHgjLt0ZdWwthr+VmcWXAj1M9SGMbrt9j4UdPxJcnTdfSKNhrIPkfaQOWOHNvpy4IF2HRb3bdLVC3Nm3qyw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@farmfe/plugin-sass-linux-x64-musl@1.0.5':
+ resolution: {integrity: sha512-FDLnfXk6oGjVbsA4/9ddgpSlAOfC6b+iK5ZlfiN83q4D2twviTQ+/iFLXOlz+U5Wdz8oa250O694iRYEV8qwBA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@farmfe/plugin-sass-win32-arm64-msvc@1.0.5':
+ resolution: {integrity: sha512-PW3XEK+SO3ygIP7mfCn/hM6x5VS70C7CNU50ijLGjm9Fp4S1HKePyGlE0sk5JAqgTpfcPTv8fqgwj2PKFd/byw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@farmfe/plugin-sass-win32-ia32-msvc@1.0.5':
+ resolution: {integrity: sha512-nPuwI7N5ug/niQ+W1IMmGBqAHDi8M47da6OSkpK00HEvSYiqelf5x2dfJNA3ICcVck3tSxp1yrjfpO9Z8TJOuw==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@farmfe/plugin-sass-win32-x64-msvc@1.0.5':
+ resolution: {integrity: sha512-C7kCrWBdHo+EZsMM5sq3IyVLGwCThu3eWA6jAv5PFJoXhQ4jKWq8/PoanIhz5fJU1joJT7tNYVulRzkCAE0pdg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@farmfe/plugin-sass@1.0.5':
+ resolution: {integrity: sha512-uTcXGS3ONqP0aqqFMIrnK9S2fP7IsRlwX9DKUUfHTq5NAi7MkbJ/nz8fnKL7xzKxPzuoxUaWgirmqbtqNlf3vA==}
+ engines: {node: '>=16'}
+
+ '@farmfe/runtime-plugin-hmr@3.5.2':
+ resolution: {integrity: sha512-d2zvBfLtBj0iNxhaRtcLIqnNRUspQLOQTiRZ228rtGtqfZ6CPa6l6d8T530+uaWKR8KD5Rf55ZCglQrkakuPZA==}
+
+ '@farmfe/runtime-plugin-import-meta@0.2.0':
+ resolution: {integrity: sha512-3RXUzeKDmuGiOY7k6OThNok6Dj/Nl2pK62fC7/227O6WEfvWleVxLzXkqLZrMBv1OZNem/cloftMMjYDP/+q8Q==}
+
+ '@farmfe/runtime@0.11.2':
+ resolution: {integrity: sha512-oRcB9437RpCG4+wxc2oZyeqorj2nL/AfBXrUJmUg22em2R3YtlSoBSE4aSp/DG6xqn+buqpHgvW6Rts/WsDZgQ==}
+
+ '@farmfe/utils@0.1.0':
+ resolution: {integrity: sha512-neNJQGqV7XL4XifG1uHOBFSFLy2yx1/DVZNRA7nfeEAXEksVZTwWA+fZrYEaI0w7Sw6K/9NYn9Jgpn+NAT0mcg==}
+
'@humanwhocodes/config-array@0.11.14':
resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
engines: {node: '>=10.10.0'}
@@ -857,6 +1024,10 @@ packages:
peerDependencies:
tslib: '2'
+ '@koa/cors@5.0.0':
+ resolution: {integrity: sha512-x/iUDjcS90W69PryLDIMgFyV21YLTnG9zOpPXS7Bkt2b8AsY3zZsIpOLBkYr9fBcF3HbkKaER5hOBZLfpLgYNw==}
+ engines: {node: '>= 14.0.0'}
+
'@leichtgewicht/ip-codec@2.0.5':
resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==}
@@ -884,6 +1055,9 @@ packages:
'@mdit-vue/types@2.1.0':
resolution: {integrity: sha512-TMBB/BQWVvwtpBdWD75rkZx4ZphQ6MN0O4QB2Bc0oI5PC2uE57QerhNxdRZ7cvBHE2iY2C+BUNUziCfJbjIRRA==}
+ '@mdn/browser-compat-data@5.5.35':
+ resolution: {integrity: sha512-APtxt3S+a64EcXpG7E3a0bLx+CPqEcgN45FY/GEmbBBgX51AGIPkkYFy0JQDuOR0MFCozjo50q5Im74jflrkiQ==}
+
'@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@@ -1001,6 +1175,9 @@ packages:
resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
engines: {node: '>=18'}
+ '@swc/helpers@0.5.11':
+ resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==}
+
'@trysound/sax@0.2.0':
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
@@ -1101,6 +1278,9 @@ packages:
'@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
+ '@types/object-path@0.11.4':
+ resolution: {integrity: sha512-4tgJ1Z3elF/tOMpA8JLVuR9spt9Ynsf7+JjqsQ2IqtiPJtcLoHoXcT6qU4E10cPFqyXX5HDm9QwIzZhBSkLxsw==}
+
'@types/qs@6.9.15':
resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==}
@@ -1125,6 +1305,9 @@ packages:
'@types/sockjs@0.3.36':
resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
+ '@types/ua-parser-js@0.7.39':
+ resolution: {integrity: sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==}
+
'@types/webpack-env@1.18.5':
resolution: {integrity: sha512-wz7kjjRRj8/Lty4B+Kr0LN6Ypc/3SymeCCGSbaXp2leH0ZVg/PriNiOwNj4bD4uphI7A8NXS4b6Gl373sfO5mA==}
@@ -1527,6 +1710,10 @@ packages:
batch@0.6.1:
resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
+ big-integer@1.6.52:
+ resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==}
+ engines: {node: '>=0.6'}
+
big.js@5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
@@ -1544,6 +1731,10 @@ packages:
boolbase@1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+ bplist-parser@0.2.0:
+ resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==}
+ engines: {node: '>= 5.10.0'}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -1578,6 +1769,10 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ bundle-name@3.0.0:
+ resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==}
+ engines: {node: '>=12'}
+
bundle-name@4.1.0:
resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
engines: {node: '>=18'}
@@ -1612,6 +1807,10 @@ packages:
resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==}
engines: {node: '>=0.10.0'}
+ cache-content-type@1.0.1:
+ resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==}
+ engines: {node: '>= 6.0.0'}
+
call-bind@1.0.7:
resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
engines: {node: '>= 0.4'}
@@ -1698,6 +1897,10 @@ packages:
resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
engines: {node: '>=6'}
+ co@4.6.0:
+ resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
+ engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
+
collection-visit@1.0.0:
resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
engines: {node: '>=0.10.0'}
@@ -1877,6 +2080,10 @@ packages:
resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
engines: {node: '>= 0.6'}
+ cookies@0.9.1:
+ resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==}
+ engines: {node: '>= 0.8'}
+
copy-descriptor@0.1.1:
resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
engines: {node: '>=0.10.0'}
@@ -1887,6 +2094,9 @@ packages:
peerDependencies:
webpack: ^5.1.0
+ core-js@3.37.1:
+ resolution: {integrity: sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==}
+
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
@@ -2059,6 +2269,9 @@ packages:
resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==}
engines: {node: '>=6'}
+ deep-equal@1.0.1:
+ resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==}
+
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
@@ -2066,10 +2279,22 @@ packages:
resolution: {integrity: sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==}
engines: {node: '>=0.10.0'}
+ deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+
+ default-browser-id@3.0.0:
+ resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==}
+ engines: {node: '>=12'}
+
default-browser-id@5.0.0:
resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
engines: {node: '>=18'}
+ default-browser@4.0.0:
+ resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==}
+ engines: {node: '>=14.16'}
+
default-browser@5.2.1:
resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
engines: {node: '>=18'}
@@ -2105,6 +2330,9 @@ packages:
defu@6.1.4:
resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
+ delegates@1.0.0:
+ resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
+
depd@1.1.2:
resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
engines: {node: '>= 0.6'}
@@ -2189,6 +2417,10 @@ packages:
resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
engines: {node: '>=8'}
+ dotenv-expand@10.0.0:
+ resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==}
+ engines: {node: '>=12'}
+
dotenv@16.4.5:
resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
engines: {node: '>=12'}
@@ -2452,6 +2684,10 @@ packages:
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
engines: {node: '>=10'}
+ execa@7.2.0:
+ resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==}
+ engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0}
+
execa@8.0.1:
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
engines: {node: '>=16.17'}
@@ -2476,6 +2712,10 @@ packages:
resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
engines: {node: '>=0.10.0'}
+ farm-browserslist-generator@1.0.0:
+ resolution: {integrity: sha512-UGd1eWtSLOqxl0tlexRwpsy1JbHdO39iCDZKzdr7khBKYFXL5PDjjcyj1xelt5YUnLNB2vPAb8P+uD8IqRnBJQ==}
+ engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'}
+
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -2824,13 +3064,25 @@ packages:
htmlparser2@6.1.0:
resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
+ http-assert@1.5.0:
+ resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==}
+ engines: {node: '>= 0.8'}
+
http-deceiver@1.2.7:
resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
+ http-errors@1.4.0:
+ resolution: {integrity: sha512-oLjPqve1tuOl5aRhv8GK5eHpqP1C9fb+Ol+XTLjKfLltE44zdDbEdjPSbU7Ch5rSNsVFqZn97SrMmZLdu1/YMw==}
+ engines: {node: '>= 0.6'}
+
http-errors@1.6.3:
resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
engines: {node: '>= 0.6'}
+ http-errors@1.8.1:
+ resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==}
+ engines: {node: '>= 0.6'}
+
http-errors@2.0.0:
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
engines: {node: '>= 0.8'}
@@ -2859,6 +3111,10 @@ packages:
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
engines: {node: '>=10.17.0'}
+ human-signals@4.3.1:
+ resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==}
+ engines: {node: '>=14.18.0'}
+
human-signals@5.0.0:
resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
engines: {node: '>=16.17.0'}
@@ -2908,6 +3164,9 @@ packages:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
+ inherits@2.0.1:
+ resolution: {integrity: sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==}
+
inherits@2.0.3:
resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
@@ -2987,6 +3246,11 @@ packages:
resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==}
engines: {node: '>= 0.4'}
+ is-docker@2.2.1:
+ resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
+ engines: {node: '>=8'}
+ hasBin: true
+
is-docker@3.0.0:
resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -3016,6 +3280,10 @@ packages:
resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==}
engines: {node: '>=18'}
+ is-generator-function@1.0.10:
+ resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
+ engines: {node: '>= 0.4'}
+
is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
@@ -3069,6 +3337,10 @@ packages:
resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
engines: {node: '>=0.10.0'}
+ is-plain-object@5.0.0:
+ resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
+ engines: {node: '>=0.10.0'}
+
is-regex@1.1.4:
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
engines: {node: '>= 0.4'}
@@ -3116,16 +3388,27 @@ packages:
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
engines: {node: '>=0.10.0'}
+ is-wsl@2.2.0:
+ resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
+ engines: {node: '>=8'}
+
is-wsl@3.1.0:
resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
engines: {node: '>=16'}
+ isarray@0.0.1:
+ resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
+
isarray@1.0.0:
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+ isbot@3.8.0:
+ resolution: {integrity: sha512-vne1mzQUTR+qsMLeCBL9+/tgnDXRyc2pygLGl/WsgA+EZKIiB5Ehu0CiVTHIIk30zhJ24uGz4M5Ppse37aR0Hg==}
+ engines: {node: '>=12'}
+
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
@@ -3234,6 +3517,10 @@ packages:
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
engines: {'0': node >= 0.2.0}
+ keygrip@1.1.0:
+ resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==}
+ engines: {node: '>= 0.6'}
+
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
@@ -3253,6 +3540,37 @@ packages:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: '>=6'}
+ koa-compose@4.1.0:
+ resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==}
+
+ koa-compress@5.1.1:
+ resolution: {integrity: sha512-UgMIN7ZoEP2DuoSQmD6CYvFSLt0NReGlc2qSY4bO4Oq0L56OiD9pDG41Kj/zFmVY/A3Wvmn4BqKcfq5H30LGIg==}
+ engines: {node: '>= 12'}
+
+ koa-convert@2.0.0:
+ resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==}
+ engines: {node: '>= 10'}
+
+ koa-is-json@1.0.0:
+ resolution: {integrity: sha512-+97CtHAlWDx0ndt0J8y3P12EWLwTLMXIfMnYDev3wOTwH/RpBGMlfn4bDXlMEg1u73K6XRE9BbUp+5ZAYoRYWw==}
+
+ koa-proxies@0.12.4:
+ resolution: {integrity: sha512-xxrEtN0e7s7/gNRoOMUltCbuIaCWqTQUTZNWQqet/8MoxSW0hG422lx2Al9FfYO3nCeA+b5c5/YmILRzavivDA==}
+ peerDependencies:
+ koa: '>=2'
+
+ koa-send@5.0.1:
+ resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==}
+ engines: {node: '>= 8'}
+
+ koa-static@5.0.0:
+ resolution: {integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==}
+ engines: {node: '>= 7.6.0'}
+
+ koa@2.15.3:
+ resolution: {integrity: sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==}
+ engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4}
+
launch-editor@2.8.0:
resolution: {integrity: sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==}
@@ -3368,6 +3686,9 @@ packages:
lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+ lodash.debounce@4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+
lodash.isplainobject@4.0.6:
resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
@@ -3409,6 +3730,10 @@ packages:
resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==}
engines: {node: '>=18'}
+ loglevel@1.9.1:
+ resolution: {integrity: sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==}
+ engines: {node: '>= 0.6.0'}
+
loupe@2.3.7:
resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
@@ -3662,6 +3987,10 @@ packages:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: '>= 0.4'}
+ object-path@0.11.8:
+ resolution: {integrity: sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==}
+ engines: {node: '>= 10.12.0'}
+
object-visit@1.0.1:
resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==}
engines: {node: '>=0.10.0'}
@@ -3715,10 +4044,17 @@ packages:
resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
engines: {node: '>=12'}
+ only@0.0.2:
+ resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==}
+
open@10.1.0:
resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
engines: {node: '>=18'}
+ open@9.1.0:
+ resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==}
+ engines: {node: '>=14.16'}
+
optionator@0.9.4:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'}
@@ -3803,6 +4139,9 @@ packages:
resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
engines: {node: '>=12'}
+ path-match@1.2.4:
+ resolution: {integrity: sha512-UWlehEdqu36jmh4h5CWJ7tARp1OEVKGHKm6+dg9qMq5RKUTV5WJrGgaZ3dN2m7WFAXDbjlHzvJvL/IUpy84Ktw==}
+
path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
@@ -3813,6 +4152,9 @@ packages:
path-to-regexp@0.1.7:
resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
+ path-to-regexp@1.8.0:
+ resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
+
path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
@@ -4230,6 +4572,10 @@ packages:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: '>=8'}
+ resolve-path@1.4.0:
+ resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==}
+ engines: {node: '>= 0.8'}
+
resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
@@ -4275,6 +4621,10 @@ packages:
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
+ run-applescript@5.0.0:
+ resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==}
+ engines: {node: '>=12'}
+
run-applescript@7.0.0:
resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
engines: {node: '>=18'}
@@ -4302,6 +4652,48 @@ packages:
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+ sass-embedded-darwin-arm64@1.62.0:
+ resolution: {integrity: sha512-bYEM6DY7kteOd/aJXUisiavm8B1acRhpIn+rhzKZeTn87kUW5RzZv2nKaSmb1vUd4ZptDGaJ144qz/d20rnogQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ sass-embedded-darwin-x64@1.62.0:
+ resolution: {integrity: sha512-2sBQ4uWjZbf8TKXF8Aq7N0p5V2tKUr4zX9gQAiKvm1NBYwsW22+m8D34heOWu50ikpIxebvt7i/z7hafH5kzKg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ sass-embedded-linux-arm64@1.62.0:
+ resolution: {integrity: sha512-FexUt8aE7I7fJub3N6+NsDdbPRP/O8o400qpbEbY7BWgiWEdpr81OBulQZY/2LzZUnz9keUhfpmltNY3SNg3kg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ sass-embedded-linux-ia32@1.62.0:
+ resolution: {integrity: sha512-VpDHtMIwcoWqDsiskjhDYAle0SJV4mUiZJTXg5RkMzoX1ZyNiVz+uNaZ88kDqcGXsWpe2i0sIlljD4ryaiMAhA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [ia32]
+ os: [linux]
+
+ sass-embedded-linux-x64@1.62.0:
+ resolution: {integrity: sha512-dntYMsu0QonlerFB8VDlzxoJcpMEtN9lPHstKOQ6rk6hbSFPvcI8MqqUomlOjmpakKeVrpyZ04nm9jHrzlFmYg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ sass-embedded-win32-ia32@1.62.0:
+ resolution: {integrity: sha512-rTCZCVkQa6XcreyQ8gYqnsEG13HCzqKoN2mCvIuGwJro8IjyT2PzWauouO0M06T0FLH0pc3EvKdKaLdtijf9AQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [ia32]
+ os: [win32]
+
+ sass-embedded-win32-x64@1.62.0:
+ resolution: {integrity: sha512-g6DZBPGfIDKLBarvYRVKJ+7rJAHJXkOQQVrYSWm22klA9ZNZ0CaVyqLqejttZPKGreD8h/xh2uz/s6w/P900Sw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [win32]
+
sass-loader@14.2.1:
resolution: {integrity: sha512-G0VcnMYU18a4N7VoNDegg2OuMjYtxnqzQWARVWCIVSZwJeiL9kg8QMsuIZOplsJgTzZLF6jGxI3AClj8I9nRdQ==}
engines: {node: '>= 18.12.0'}
@@ -4433,6 +4825,9 @@ packages:
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
engines: {node: '>=14.16'}
+ slashes@3.0.12:
+ resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==}
+
slice-ansi@5.0.0:
resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
engines: {node: '>=12'}
@@ -4725,6 +5120,10 @@ packages:
resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==}
engines: {node: '>=14.0.0'}
+ titleize@3.0.0:
+ resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==}
+ engines: {node: '>=12'}
+
to-fast-properties@2.0.0:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
engines: {node: '>=4'}
@@ -4780,6 +5179,10 @@ packages:
tslib@2.6.3:
resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
+ tsscmp@1.0.6:
+ resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==}
+ engines: {node: '>=0.6.x'}
+
tsup@8.1.0:
resolution: {integrity: sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==}
engines: {node: '>=18'}
@@ -4840,6 +5243,9 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
+ ua-parser-js@1.0.38:
+ resolution: {integrity: sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==}
+
uc.micro@2.1.0:
resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
@@ -4877,6 +5283,10 @@ packages:
resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
engines: {node: '>=0.10.0'}
+ untildify@4.0.0:
+ resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
+ engines: {node: '>=8'}
+
upath@2.0.1:
resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==}
engines: {node: '>=4'}
@@ -5169,6 +5579,10 @@ packages:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
+ ylru@1.4.0:
+ resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==}
+ engines: {node: '>= 4.0.0'}
+
yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
@@ -5177,6 +5591,15 @@ packages:
resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
engines: {node: '>=12.20'}
+ zod-validation-error@1.5.0:
+ resolution: {integrity: sha512-/7eFkAI4qV0tcxMBB/3+d2c1P6jzzZYdYSlBuAklzMuCrJu5bzJfHS0yVAS87dRHVlhftd6RFJDIvv03JgkSbw==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ zod: ^3.18.0
+
+ zod@3.23.8:
+ resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
+
snapshots:
'@ampproject/remapping@2.3.0':
@@ -5528,6 +5951,138 @@ snapshots:
'@eslint/js@8.57.0': {}
+ '@farmfe/core-darwin-arm64@1.2.4':
+ optional: true
+
+ '@farmfe/core-darwin-x64@1.2.4':
+ optional: true
+
+ '@farmfe/core-linux-arm64-gnu@1.2.4':
+ optional: true
+
+ '@farmfe/core-linux-arm64-musl@1.2.4':
+ optional: true
+
+ '@farmfe/core-linux-x64-gnu@1.2.4':
+ optional: true
+
+ '@farmfe/core-linux-x64-musl@1.2.4':
+ optional: true
+
+ '@farmfe/core-win32-arm64-msvc@1.2.4':
+ optional: true
+
+ '@farmfe/core-win32-ia32-msvc@1.2.4':
+ optional: true
+
+ '@farmfe/core-win32-x64-msvc@1.2.4':
+ optional: true
+
+ '@farmfe/core@1.2.4':
+ dependencies:
+ '@farmfe/runtime': 0.11.2
+ '@farmfe/runtime-plugin-hmr': 3.5.2
+ '@farmfe/runtime-plugin-import-meta': 0.2.0
+ '@farmfe/utils': 0.1.0
+ '@koa/cors': 5.0.0
+ '@swc/helpers': 0.5.11
+ chokidar: 3.6.0
+ deepmerge: 4.3.1
+ dotenv: 16.4.5
+ dotenv-expand: 10.0.0
+ execa: 7.2.0
+ farm-browserslist-generator: 1.0.0
+ fast-glob: 3.3.2
+ fs-extra: 11.2.0
+ is-plain-object: 5.0.0
+ koa: 2.15.3
+ koa-compress: 5.1.1
+ koa-proxies: 0.12.4(koa@2.15.3)
+ koa-static: 5.0.0
+ lodash.debounce: 4.0.8
+ loglevel: 1.9.1
+ mime-types: 2.1.35
+ open: 9.1.0
+ slashes: 3.0.12
+ ws: 8.17.1
+ zod: 3.23.8
+ zod-validation-error: 1.5.0(zod@3.23.8)
+ optionalDependencies:
+ '@farmfe/core-darwin-arm64': 1.2.4
+ '@farmfe/core-darwin-x64': 1.2.4
+ '@farmfe/core-linux-arm64-gnu': 1.2.4
+ '@farmfe/core-linux-arm64-musl': 1.2.4
+ '@farmfe/core-linux-x64-gnu': 1.2.4
+ '@farmfe/core-linux-x64-musl': 1.2.4
+ '@farmfe/core-win32-arm64-msvc': 1.2.4
+ '@farmfe/core-win32-ia32-msvc': 1.2.4
+ '@farmfe/core-win32-x64-msvc': 1.2.4
+ transitivePeerDependencies:
+ - bufferutil
+ - debug
+ - supports-color
+ - utf-8-validate
+
+ '@farmfe/plugin-sass-darwin-arm64@1.0.5':
+ optional: true
+
+ '@farmfe/plugin-sass-darwin-x64@1.0.5':
+ optional: true
+
+ '@farmfe/plugin-sass-linux-arm64-gnu@1.0.5':
+ optional: true
+
+ '@farmfe/plugin-sass-linux-arm64-musl@1.0.5':
+ optional: true
+
+ '@farmfe/plugin-sass-linux-x64-gnu@1.0.5':
+ optional: true
+
+ '@farmfe/plugin-sass-linux-x64-musl@1.0.5':
+ optional: true
+
+ '@farmfe/plugin-sass-win32-arm64-msvc@1.0.5':
+ optional: true
+
+ '@farmfe/plugin-sass-win32-ia32-msvc@1.0.5':
+ optional: true
+
+ '@farmfe/plugin-sass-win32-x64-msvc@1.0.5':
+ optional: true
+
+ '@farmfe/plugin-sass@1.0.5':
+ optionalDependencies:
+ '@farmfe/plugin-sass-darwin-arm64': 1.0.5
+ '@farmfe/plugin-sass-darwin-x64': 1.0.5
+ '@farmfe/plugin-sass-linux-arm64-gnu': 1.0.5
+ '@farmfe/plugin-sass-linux-arm64-musl': 1.0.5
+ '@farmfe/plugin-sass-linux-x64-gnu': 1.0.5
+ '@farmfe/plugin-sass-linux-x64-musl': 1.0.5
+ '@farmfe/plugin-sass-win32-arm64-msvc': 1.0.5
+ '@farmfe/plugin-sass-win32-ia32-msvc': 1.0.5
+ '@farmfe/plugin-sass-win32-x64-msvc': 1.0.5
+ sass-embedded-darwin-arm64: 1.62.0
+ sass-embedded-darwin-x64: 1.62.0
+ sass-embedded-linux-arm64: 1.62.0
+ sass-embedded-linux-ia32: 1.62.0
+ sass-embedded-linux-x64: 1.62.0
+ sass-embedded-win32-ia32: 1.62.0
+ sass-embedded-win32-x64: 1.62.0
+
+ '@farmfe/runtime-plugin-hmr@3.5.2':
+ dependencies:
+ core-js: 3.37.1
+
+ '@farmfe/runtime-plugin-import-meta@0.2.0':
+ dependencies:
+ core-js: 3.37.1
+
+ '@farmfe/runtime@0.11.2':
+ dependencies:
+ core-js: 3.37.1
+
+ '@farmfe/utils@0.1.0': {}
+
'@humanwhocodes/config-array@0.11.14':
dependencies:
'@humanwhocodes/object-schema': 2.0.3
@@ -5611,6 +6166,10 @@ snapshots:
dependencies:
tslib: 2.6.3
+ '@koa/cors@5.0.0':
+ dependencies:
+ vary: 1.1.2
+
'@leichtgewicht/ip-codec@2.0.5': {}
'@mdit-vue/plugin-component@2.1.3':
@@ -5660,6 +6219,8 @@ snapshots:
'@mdit-vue/types@2.1.0': {}
+ '@mdn/browser-compat-data@5.5.35': {}
+
'@nodelib/fs.scandir@2.1.5':
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -5731,6 +6292,10 @@ snapshots:
'@sindresorhus/merge-streams@2.3.0': {}
+ '@swc/helpers@0.5.11':
+ dependencies:
+ tslib: 2.6.3
+
'@trysound/sax@0.2.0': {}
'@types/body-parser@1.19.5':
@@ -5847,6 +6412,8 @@ snapshots:
'@types/normalize-package-data@2.4.4': {}
+ '@types/object-path@0.11.4': {}
+
'@types/qs@6.9.15': {}
'@types/range-parser@1.2.7': {}
@@ -5874,6 +6441,8 @@ snapshots:
dependencies:
'@types/node': 20.14.7
+ '@types/ua-parser-js@0.7.39': {}
+
'@types/webpack-env@1.18.5': {}
'@types/ws@8.5.10':
@@ -6393,6 +6962,8 @@ snapshots:
batch@0.6.1: {}
+ big-integer@1.6.52: {}
+
big.js@5.2.2: {}
binary-extensions@2.3.0: {}
@@ -6421,6 +6992,10 @@ snapshots:
boolbase@1.0.0: {}
+ bplist-parser@0.2.0:
+ dependencies:
+ big-integer: 1.6.52
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
@@ -6477,6 +7052,10 @@ snapshots:
transitivePeerDependencies:
- magicast
+ bundle-name@3.0.0:
+ dependencies:
+ run-applescript: 5.0.0
+
bundle-name@4.1.0:
dependencies:
run-applescript: 7.0.0
@@ -6521,6 +7100,11 @@ snapshots:
union-value: 1.0.1
unset-value: 1.0.0
+ cache-content-type@1.0.1:
+ dependencies:
+ mime-types: 2.1.35
+ ylru: 1.4.0
+
call-bind@1.0.7:
dependencies:
es-define-property: 1.0.0
@@ -6630,6 +7214,8 @@ snapshots:
kind-of: 6.0.3
shallow-clone: 3.0.1
+ co@4.6.0: {}
+
collection-visit@1.0.0:
dependencies:
map-visit: 1.0.0
@@ -6812,6 +7398,11 @@ snapshots:
cookie@0.6.0: {}
+ cookies@0.9.1:
+ dependencies:
+ depd: 2.0.0
+ keygrip: 1.1.0
+
copy-descriptor@0.1.1: {}
copy-webpack-plugin@12.0.2(webpack@5.92.1(esbuild@0.21.5)):
@@ -6824,6 +7415,8 @@ snapshots:
serialize-javascript: 6.0.2
webpack: 5.92.1(esbuild@0.21.5)
+ core-js@3.37.1: {}
+
core-util-is@1.0.3: {}
cosmiconfig-typescript-loader@5.0.0(@types/node@20.14.7)(cosmiconfig@9.0.0(typescript@5.5.2))(typescript@5.5.2):
@@ -7002,12 +7595,28 @@ snapshots:
dependencies:
type-detect: 4.0.8
+ deep-equal@1.0.1: {}
+
deep-is@0.1.4: {}
deepmerge@1.5.2: {}
+ deepmerge@4.3.1: {}
+
+ default-browser-id@3.0.0:
+ dependencies:
+ bplist-parser: 0.2.0
+ untildify: 4.0.0
+
default-browser-id@5.0.0: {}
+ default-browser@4.0.0:
+ dependencies:
+ bundle-name: 3.0.0
+ default-browser-id: 3.0.0
+ execa: 7.2.0
+ titleize: 3.0.0
+
default-browser@5.2.1:
dependencies:
bundle-name: 4.1.0
@@ -7046,6 +7655,8 @@ snapshots:
defu@6.1.4: {}
+ delegates@1.0.0: {}
+
depd@1.1.2: {}
depd@2.0.0: {}
@@ -7127,6 +7738,8 @@ snapshots:
dependencies:
is-obj: 2.0.0
+ dotenv-expand@10.0.0: {}
+
dotenv@16.4.5: {}
eastasianwidth@0.2.0: {}
@@ -7516,6 +8129,18 @@ snapshots:
signal-exit: 3.0.7
strip-final-newline: 2.0.0
+ execa@7.2.0:
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 6.0.1
+ human-signals: 4.3.1
+ is-stream: 3.0.0
+ merge-stream: 2.0.0
+ npm-run-path: 5.3.0
+ onetime: 6.0.0
+ signal-exit: 3.0.7
+ strip-final-newline: 3.0.0
+
execa@8.0.1:
dependencies:
cross-spawn: 7.0.3
@@ -7598,6 +8223,19 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ farm-browserslist-generator@1.0.0:
+ dependencies:
+ '@mdn/browser-compat-data': 5.5.35
+ '@types/object-path': 0.11.4
+ '@types/semver': 7.5.8
+ '@types/ua-parser-js': 0.7.39
+ browserslist: 4.23.1
+ caniuse-lite: 1.0.30001636
+ isbot: 3.8.0
+ object-path: 0.11.8
+ semver: 7.6.2
+ ua-parser-js: 1.0.38
+
fast-deep-equal@3.1.3: {}
fast-glob@3.3.2:
@@ -7987,8 +8625,18 @@ snapshots:
domutils: 2.8.0
entities: 2.2.0
+ http-assert@1.5.0:
+ dependencies:
+ deep-equal: 1.0.1
+ http-errors: 1.8.1
+
http-deceiver@1.2.7: {}
+ http-errors@1.4.0:
+ dependencies:
+ inherits: 2.0.1
+ statuses: 1.5.0
+
http-errors@1.6.3:
dependencies:
depd: 1.1.2
@@ -7996,6 +8644,14 @@ snapshots:
setprototypeof: 1.1.0
statuses: 1.5.0
+ http-errors@1.8.1:
+ dependencies:
+ depd: 1.1.2
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 1.5.0
+ toidentifier: 1.0.1
+
http-errors@2.0.0:
dependencies:
depd: 2.0.0
@@ -8038,6 +8694,8 @@ snapshots:
human-signals@2.1.0: {}
+ human-signals@4.3.1: {}
+
human-signals@5.0.0: {}
husky@9.0.11: {}
@@ -8072,6 +8730,8 @@ snapshots:
once: 1.4.0
wrappy: 1.0.2
+ inherits@2.0.1: {}
+
inherits@2.0.3: {}
inherits@2.0.4: {}
@@ -8146,6 +8806,8 @@ snapshots:
is-accessor-descriptor: 1.0.1
is-data-descriptor: 1.0.1
+ is-docker@2.2.1: {}
+
is-docker@3.0.0: {}
is-extendable@0.1.1: {}
@@ -8164,6 +8826,10 @@ snapshots:
dependencies:
get-east-asian-width: 1.2.0
+ is-generator-function@1.0.10:
+ dependencies:
+ has-tostringtag: 1.0.2
+
is-glob@4.0.3:
dependencies:
is-extglob: 2.1.1
@@ -8200,6 +8866,8 @@ snapshots:
dependencies:
isobject: 3.0.1
+ is-plain-object@5.0.0: {}
+
is-regex@1.1.4:
dependencies:
call-bind: 1.0.7
@@ -8239,14 +8907,22 @@ snapshots:
is-windows@1.0.2: {}
+ is-wsl@2.2.0:
+ dependencies:
+ is-docker: 2.2.1
+
is-wsl@3.1.0:
dependencies:
is-inside-container: 1.0.0
+ isarray@0.0.1: {}
+
isarray@1.0.0: {}
isarray@2.0.5: {}
+ isbot@3.8.0: {}
+
isexe@2.0.0: {}
isobject@2.1.0:
@@ -8359,6 +9035,10 @@ snapshots:
jsonparse@1.3.1: {}
+ keygrip@1.1.0:
+ dependencies:
+ tsscmp: 1.0.6
+
keyv@4.5.4:
dependencies:
json-buffer: 3.0.1
@@ -8375,6 +9055,74 @@ snapshots:
kleur@3.0.3: {}
+ koa-compose@4.1.0: {}
+
+ koa-compress@5.1.1:
+ dependencies:
+ bytes: 3.1.2
+ compressible: 2.0.18
+ http-errors: 1.8.1
+ koa-is-json: 1.0.0
+
+ koa-convert@2.0.0:
+ dependencies:
+ co: 4.6.0
+ koa-compose: 4.1.0
+
+ koa-is-json@1.0.0: {}
+
+ koa-proxies@0.12.4(koa@2.15.3):
+ dependencies:
+ http-proxy: 1.18.1(debug@2.6.9)
+ koa: 2.15.3
+ path-match: 1.2.4
+ uuid: 8.3.2
+ transitivePeerDependencies:
+ - debug
+
+ koa-send@5.0.1:
+ dependencies:
+ debug: 4.3.5
+ http-errors: 1.8.1
+ resolve-path: 1.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ koa-static@5.0.0:
+ dependencies:
+ debug: 3.2.7
+ koa-send: 5.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ koa@2.15.3:
+ dependencies:
+ accepts: 1.3.8
+ cache-content-type: 1.0.1
+ content-disposition: 0.5.4
+ content-type: 1.0.5
+ cookies: 0.9.1
+ debug: 4.3.5
+ delegates: 1.0.0
+ depd: 2.0.0
+ destroy: 1.2.0
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ fresh: 0.5.2
+ http-assert: 1.5.0
+ http-errors: 1.6.3
+ is-generator-function: 1.0.10
+ koa-compose: 4.1.0
+ koa-convert: 2.0.0
+ on-finished: 2.4.1
+ only: 0.0.2
+ parseurl: 1.3.3
+ statuses: 1.5.0
+ type-is: 1.6.18
+ vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
+
launch-editor@2.8.0:
dependencies:
picocolors: 1.0.1
@@ -8483,6 +9231,8 @@ snapshots:
lodash.camelcase@4.3.0: {}
+ lodash.debounce@4.0.8: {}
+
lodash.isplainobject@4.0.6: {}
lodash.kebabcase@4.1.1: {}
@@ -8518,6 +9268,8 @@ snapshots:
strip-ansi: 7.1.0
wrap-ansi: 9.0.0
+ loglevel@1.9.1: {}
+
loupe@2.3.7:
dependencies:
get-func-name: 2.0.2
@@ -8772,6 +9524,8 @@ snapshots:
object-keys@1.1.1: {}
+ object-path@0.11.8: {}
+
object-visit@1.0.1:
dependencies:
isobject: 3.0.1
@@ -8832,6 +9586,8 @@ snapshots:
dependencies:
mimic-fn: 4.0.0
+ only@0.0.2: {}
+
open@10.1.0:
dependencies:
default-browser: 5.2.1
@@ -8839,6 +9595,13 @@ snapshots:
is-inside-container: 1.0.0
is-wsl: 3.1.0
+ open@9.1.0:
+ dependencies:
+ default-browser: 4.0.0
+ define-lazy-prop: 3.0.0
+ is-inside-container: 1.0.0
+ is-wsl: 2.2.0
+
optionator@0.9.4:
dependencies:
deep-is: 0.1.4
@@ -8931,6 +9694,11 @@ snapshots:
path-key@4.0.0: {}
+ path-match@1.2.4:
+ dependencies:
+ http-errors: 1.4.0
+ path-to-regexp: 1.8.0
+
path-parse@1.0.7: {}
path-scurry@1.11.1:
@@ -8940,6 +9708,10 @@ snapshots:
path-to-regexp@0.1.7: {}
+ path-to-regexp@1.8.0:
+ dependencies:
+ isarray: 0.0.1
+
path-type@4.0.0: {}
path-type@5.0.0: {}
@@ -9314,6 +10086,11 @@ snapshots:
resolve-from@5.0.0: {}
+ resolve-path@1.4.0:
+ dependencies:
+ http-errors: 1.6.3
+ path-is-absolute: 1.0.1
+
resolve-pkg-maps@1.0.0: {}
resolve-url@0.2.1: {}
@@ -9367,6 +10144,10 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.18.0
fsevents: 2.3.3
+ run-applescript@5.0.0:
+ dependencies:
+ execa: 5.1.1
+
run-applescript@7.0.0: {}
run-parallel@1.2.0:
@@ -9396,6 +10177,27 @@ snapshots:
safer-buffer@2.1.2: {}
+ sass-embedded-darwin-arm64@1.62.0:
+ optional: true
+
+ sass-embedded-darwin-x64@1.62.0:
+ optional: true
+
+ sass-embedded-linux-arm64@1.62.0:
+ optional: true
+
+ sass-embedded-linux-ia32@1.62.0:
+ optional: true
+
+ sass-embedded-linux-x64@1.62.0:
+ optional: true
+
+ sass-embedded-win32-ia32@1.62.0:
+ optional: true
+
+ sass-embedded-win32-x64@1.62.0:
+ optional: true
+
sass-loader@14.2.1(sass@1.77.6)(webpack@5.92.1(esbuild@0.21.5)):
dependencies:
neo-async: 2.6.2
@@ -9541,6 +10343,8 @@ snapshots:
slash@5.1.0: {}
+ slashes@3.0.12: {}
+
slice-ansi@5.0.0:
dependencies:
ansi-styles: 6.2.1
@@ -9858,6 +10662,8 @@ snapshots:
tinyspy@2.2.1: {}
+ titleize@3.0.0: {}
+
to-fast-properties@2.0.0: {}
to-object-path@0.3.0:
@@ -9909,6 +10715,8 @@ snapshots:
tslib@2.6.3: {}
+ tsscmp@1.0.6: {}
+
tsup@8.1.0(postcss@8.4.38)(typescript@5.5.2):
dependencies:
bundle-require: 4.2.1(esbuild@0.21.5)
@@ -9981,6 +10789,8 @@ snapshots:
typescript@5.5.2: {}
+ ua-parser-js@1.0.38: {}
+
uc.micro@2.1.0: {}
ufo@1.5.3: {}
@@ -10015,6 +10825,8 @@ snapshots:
has-value: 0.3.1
isobject: 3.0.1
+ untildify@4.0.0: {}
+
upath@2.0.1: {}
update-browserslist-db@1.0.16(browserslist@4.23.1):
@@ -10359,6 +11171,14 @@ snapshots:
y18n: 5.0.8
yargs-parser: 21.1.1
+ ylru@1.4.0: {}
+
yocto-queue@0.1.0: {}
yocto-queue@1.0.0: {}
+
+ zod-validation-error@1.5.0(zod@3.23.8):
+ dependencies:
+ zod: 3.23.8
+
+ zod@3.23.8: {}