diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index a2d6c74..08db92e 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -50,3 +50,24 @@ jobs:
- name: Lint
run: pnpm lint
+
+ test-examples:
+ runs-on: ubuntu-latest
+ name: Test build of example projects
+ steps:
+ - name: Checkout unplugin-fluent-vue
+ uses: actions/checkout@v3.0.2
+ - name: Checkout examples
+ uses: actions/checkout@v3.0.2
+ with:
+ repository: fluent-vue/examples
+ path: examples
+ - name: Setup Node.js
+ uses: actions/setup-node@v3.2.0
+ - uses: pnpm/action-setup@v2.2.2
+ with:
+ version: 7.x.x
+ run_install: true
+
+ - name: Test
+ run: node scripts/build-examples.mjs
diff --git a/__tests__/fixtures/blockType.vue b/__tests__/fixtures/blockType.vue
new file mode 100644
index 0000000..414b305
--- /dev/null
+++ b/__tests__/fixtures/blockType.vue
@@ -0,0 +1,7 @@
+
+ {{ $t('test-key') }}
+
+
+
+test-key = test-value
+
diff --git a/__tests__/frameworks/vite/.npmrc b/__tests__/frameworks/vite/.npmrc
deleted file mode 100644
index e63af86..0000000
--- a/__tests__/frameworks/vite/.npmrc
+++ /dev/null
@@ -1 +0,0 @@
-root=true
\ No newline at end of file
diff --git a/__tests__/frameworks/vite/src/__snapshots__/external.spec.ts.snap b/__tests__/frameworks/vite/__snapshots__/external.spec.ts.snap
similarity index 62%
rename from __tests__/frameworks/vite/src/__snapshots__/external.spec.ts.snap
rename to __tests__/frameworks/vite/__snapshots__/external.spec.ts.snap
index 5f5a692..3f3e52b 100644
--- a/__tests__/frameworks/vite/src/__snapshots__/external.spec.ts.snap
+++ b/__tests__/frameworks/vite/__snapshots__/external.spec.ts.snap
@@ -1,10 +1,15 @@
// Vitest Snapshot v1
exports[`Vite external > works 1`] = `
-"import { createHotContext as __vite__createHotContext } from \\"/@vite/client\\";import.meta.hot = __vite__createHotContext(\\"/fixtures/components/external.vue\\");import da_ftl from '/fixtures/ftl/da/components/external.vue.ftl?import';
+"=== /fixtures/components/external.vue ===
+import { createHotContext as __vite__createHotContext } from \\"/@vite/client\\";import.meta.hot = __vite__createHotContext(\\"/fixtures/components/external.vue\\");import da_ftl from '/fixtures/ftl/da/components/external.vue.ftl?import';
import en_ftl from '/fixtures/ftl/en/components/external.vue.ftl?import';
const _sfc_main = {}
-import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \\"/@id/vue\\"
+const _toDisplayString = window['Vue'].toDisplayString
+const _createElementVNode = window['Vue'].createElementVNode
+const _openBlock = window['Vue'].openBlock
+const _createElementBlock = window['Vue'].createElementBlock
+
function _sfc_render(_ctx, _cache) {
return (_openBlock(), _createElementBlock(\\"div\\", null, [
@@ -48,11 +53,24 @@ _sfc_main.fluent['da'] = da_ftl
}
})
}
-export default /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render],['__file',\\"/fixtures/components/external.vue\\"]])"
+export default /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render],['__file',\\"/fixtures/components/external.vue\\"]])
+
+=== /fixtures/ftl/da/components/external.vue.ftl ===
+
+import { FluentResource } from '.vite-plugin-externals/@fluent/bundle.js'
+export default new FluentResource(\\"\\")
+
+
+=== /fixtures/ftl/en/components/external.vue.ftl ===
+
+import { FluentResource } from '.vite-plugin-externals/@fluent/bundle.js'
+export default new FluentResource(\\"# Simple things are simple.\\\\nhello-user = Hello, {$userName}!\\\\n\\\\n# Complex things are possible.\\\\nshared-photos =\\\\n {$userName} {$photoCount ->\\\\n [one] added one photo\\\\n *[other] added {$photoCount} new photo\\\\n }to {$userGender ->\\\\n [male] his stream\\\\n [female] her stream\\\\n *[other] their stream\\\\n }.\\\\n\\")
+"
`;
exports[`Vite external > works with script setup 1`] = `
-"import { createHotContext as __vite__createHotContext } from \\"/@vite/client\\";import.meta.hot = __vite__createHotContext(\\"/fixtures/components/external.setup.vue\\");import en_ftl from '/fixtures/ftl/en/components/external.setup.vue.ftl?import';
+"=== /fixtures/components/external.setup.vue ===
+import { createHotContext as __vite__createHotContext } from \\"/@vite/client\\";import.meta.hot = __vite__createHotContext(\\"/fixtures/components/external.setup.vue\\");import en_ftl from '/fixtures/ftl/en/components/external.setup.vue.ftl?import';
const _sfc_main = {
__name: 'external.setup',
setup(__props, { expose }) {
@@ -66,7 +84,11 @@ return __returned__
}
}
-import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \\"/@id/vue\\"
+const _toDisplayString = window['Vue'].toDisplayString
+const _createElementVNode = window['Vue'].createElementVNode
+const _openBlock = window['Vue'].openBlock
+const _createElementBlock = window['Vue'].createElementBlock
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return (_openBlock(), _createElementBlock(\\"div\\", null, [
@@ -108,5 +130,11 @@ if (__HOT_API__) {
}
})
}
-export default /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render],['__file',\\"/fixtures/components/external.setup.vue\\"]])"
+export default /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render],['__file',\\"/fixtures/components/external.setup.vue\\"]])
+
+=== /fixtures/ftl/en/components/external.setup.vue.ftl ===
+
+import { FluentResource } from '.vite-plugin-externals/@fluent/bundle.js'
+export default new FluentResource(\\"# Simple things are simple.\\\\nhello-user = Hello, {$userName}!\\\\n\\\\n# Complex things are possible.\\\\nshared-photos =\\\\n {$userName} {$photoCount ->\\\\n [one] added one photo\\\\n *[other] added {$photoCount} new photo\\\\n } to {$userGender ->\\\\n [male] his stream\\\\n [female] her stream\\\\n *[other] their stream\\\\n }.\\\\n\\")
+"
`;
diff --git a/__tests__/frameworks/vite/__snapshots__/sfc.spec.ts.snap b/__tests__/frameworks/vite/__snapshots__/sfc.spec.ts.snap
new file mode 100644
index 0000000..d940cd4
--- /dev/null
+++ b/__tests__/frameworks/vite/__snapshots__/sfc.spec.ts.snap
@@ -0,0 +1,87 @@
+// Vitest Snapshot v1
+
+exports[`Vite SFC > generates custom block code 1`] = `
+"=== /fixtures/test.vue ===
+import { createHotContext as __vite__createHotContext } from \\"/@vite/client\\";import.meta.hot = __vite__createHotContext(\\"/fixtures/test.vue\\");const _sfc_main = {}
+const _toDisplayString = window['Vue'].toDisplayString
+const _createElementVNode = window['Vue'].createElementVNode
+const _openBlock = window['Vue'].openBlock
+const _createElementBlock = window['Vue'].createElementBlock
+
+
+function _sfc_render(_ctx, _cache) {
+ return (_openBlock(), _createElementBlock(\\"div\\", null, [
+ _createElementVNode(\\"div\\", null, _toDisplayString(_ctx.$t('hello-user', { userName: _ctx.userName })), 1 /* TEXT */),
+ _createElementVNode(\\"div\\", null, _toDisplayString(_ctx.$t('shared-photos', { userName: _ctx.userName, photoCount: _ctx.photoCount, userGender: _ctx.userGender })), 1 /* TEXT */)
+ ]))
+}
+
+import block0 from \\"/fixtures/test.vue?vue&type=fluent&index=0&locale=en&lang.fluent\\"
+if (typeof block0 === 'function') block0(_sfc_main)
+
+_sfc_main.__hmrId = \\"7e4b934c\\"
+typeof __VUE_HMR_RUNTIME__ !== 'undefined' && __VUE_HMR_RUNTIME__.createRecord(_sfc_main.__hmrId, _sfc_main)
+import.meta.hot.accept(mod => {
+ if (!mod) return
+ const { default: updated, _rerender_only } = mod
+ if (_rerender_only) {
+ __VUE_HMR_RUNTIME__.rerender(updated.__hmrId, updated.render)
+ } else {
+ __VUE_HMR_RUNTIME__.reload(updated.__hmrId, updated)
+ }
+})
+import _export_sfc from '/@id/__x00__plugin-vue:export-helper'
+export default /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render],['__file',\\"/fixtures/test.vue\\"]])
+
+=== /fixtures/test.vue?vue&type=fluent&index=0&locale=en&lang.fluent ===
+
+const FluentResource = window['FluentBundle'].FluentResource
+
+
+export default function (Component) {
+ const target = Component.options || Component
+ target.fluent = target.fluent || {}
+ target.fluent['en'] = new FluentResource(\\"# Simple things are simple.\\\\nhello-user = Hello, {$userName}!\\\\n\\\\n# Complex things are possible.\\\\nshared-photos =\\\\n {$userName} {$photoCount ->\\\\n [one] added one photo\\\\n *[other] added {$photoCount} new photos\\\\n } to {$userGender ->\\\\n [male] his stream\\\\n [female] her stream\\\\n *[other] their stream\\\\n }.\\")
+}
+"
+`;
+
+exports[`Vite SFC > supports custom blockType 1`] = `
+"=== /fixtures/blockType.vue ===
+import { createHotContext as __vite__createHotContext } from \\"/@vite/client\\";import.meta.hot = __vite__createHotContext(\\"/fixtures/blockType.vue\\");const _sfc_main = {}
+const _toDisplayString = window['Vue'].toDisplayString
+
+
+function _sfc_render(_ctx, _cache) {
+ return _toDisplayString(_ctx.$t('test-key'))
+}
+
+import block0 from \\"/fixtures/blockType.vue?vue&type=i18n&index=0&locale=en&lang.i18n\\"
+if (typeof block0 === 'function') block0(_sfc_main)
+
+_sfc_main.__hmrId = \\"8c542073\\"
+typeof __VUE_HMR_RUNTIME__ !== 'undefined' && __VUE_HMR_RUNTIME__.createRecord(_sfc_main.__hmrId, _sfc_main)
+import.meta.hot.accept(mod => {
+ if (!mod) return
+ const { default: updated, _rerender_only } = mod
+ if (_rerender_only) {
+ __VUE_HMR_RUNTIME__.rerender(updated.__hmrId, updated.render)
+ } else {
+ __VUE_HMR_RUNTIME__.reload(updated.__hmrId, updated)
+ }
+})
+import _export_sfc from '/@id/__x00__plugin-vue:export-helper'
+export default /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render],['__file',\\"/fixtures/blockType.vue\\"]])
+
+=== /fixtures/blockType.vue?vue&type=i18n&index=0&locale=en&lang.i18n ===
+
+const FluentResource = window['FluentBundle'].FluentResource
+
+
+export default function (Component) {
+ const target = Component.options || Component
+ target.fluent = target.fluent || {}
+ target.fluent['en'] = new FluentResource(\\"test-key = test-value\\")
+}
+"
+`;
diff --git a/__tests__/frameworks/vite/src/external.spec.ts b/__tests__/frameworks/vite/external.spec.ts
similarity index 91%
rename from __tests__/frameworks/vite/src/external.spec.ts
rename to __tests__/frameworks/vite/external.spec.ts
index b8e9c8a..c467551 100644
--- a/__tests__/frameworks/vite/src/external.spec.ts
+++ b/__tests__/frameworks/vite/external.spec.ts
@@ -4,14 +4,14 @@ import { describe, expect, it } from 'vitest'
import vue3base from '@vitejs/plugin-vue'
import compiler from '@vue/compiler-sfc'
-import { ExternalFluentPlugin } from '../../../../src/vite'
+import { ExternalFluentPlugin } from '../../../src/vite'
import { compile } from './util'
const vue3 = () => vue3base({
compiler,
})
-const baseDir = resolve(__dirname, '../../..')
+const baseDir = resolve(__dirname, '../..')
describe('Vite external', () => {
it('works', async () => {
diff --git a/__tests__/frameworks/vite/package.json b/__tests__/frameworks/vite/package.json
deleted file mode 100644
index e777965..0000000
--- a/__tests__/frameworks/vite/package.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "name": "test-vite",
- "private": true,
- "devDependencies": {
- "@vitejs/plugin-vue": "3.0.1",
- "@vue/compiler-sfc": "3.2.37",
- "vite": "3.0.3",
- "vue": "3.2.37"
- }
-}
diff --git a/__tests__/frameworks/vite/src/sfc.spec.ts b/__tests__/frameworks/vite/sfc.spec.ts
similarity index 90%
rename from __tests__/frameworks/vite/src/sfc.spec.ts
rename to __tests__/frameworks/vite/sfc.spec.ts
index 7f81bc4..1a276be 100644
--- a/__tests__/frameworks/vite/src/sfc.spec.ts
+++ b/__tests__/frameworks/vite/sfc.spec.ts
@@ -1,9 +1,9 @@
import { describe, expect, it } from 'vitest'
import vue3base from '@vitejs/plugin-vue'
-import compiler from '@vue/compiler-sfc'
-import { SFCFluentPlugin } from '../../../../src/vite'
+import compiler from '@vue/compiler-sfc'
+import { SFCFluentPlugin } from '../../../src/vite'
import { compile } from './util'
const vue3 = () => vue3base({
@@ -32,7 +32,7 @@ describe('Vite SFC', () => {
plugins: [
vue3(),
SFCFluentPlugin({
- blockType: 'custom',
+ blockType: 'i18n',
}),
],
}, '/fixtures/blockType.vue')
diff --git a/__tests__/frameworks/vite/src/__snapshots__/sfc.spec.ts.snap b/__tests__/frameworks/vite/src/__snapshots__/sfc.spec.ts.snap
deleted file mode 100644
index 8621303..0000000
--- a/__tests__/frameworks/vite/src/__snapshots__/sfc.spec.ts.snap
+++ /dev/null
@@ -1,32 +0,0 @@
-// Vitest Snapshot v1
-
-exports[`Vite SFC > generates custom block code 1`] = `
-"import { createHotContext as __vite__createHotContext } from \\"/@vite/client\\";import.meta.hot = __vite__createHotContext(\\"/fixtures/test.vue\\");const _sfc_main = {}
-import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \\"/@id/vue\\"
-
-function _sfc_render(_ctx, _cache) {
- return (_openBlock(), _createElementBlock(\\"div\\", null, [
- _createElementVNode(\\"div\\", null, _toDisplayString(_ctx.$t('hello-user', { userName: _ctx.userName })), 1 /* TEXT */),
- _createElementVNode(\\"div\\", null, _toDisplayString(_ctx.$t('shared-photos', { userName: _ctx.userName, photoCount: _ctx.photoCount, userGender: _ctx.userGender })), 1 /* TEXT */)
- ]))
-}
-
-import block0 from \\"/fixtures/test.vue?vue&type=fluent&index=0&locale=en&lang.fluent\\"
-if (typeof block0 === 'function') block0(_sfc_main)
-
-_sfc_main.__hmrId = \\"7e4b934c\\"
-typeof __VUE_HMR_RUNTIME__ !== 'undefined' && __VUE_HMR_RUNTIME__.createRecord(_sfc_main.__hmrId, _sfc_main)
-import.meta.hot.accept(mod => {
- if (!mod) return
- const { default: updated, _rerender_only } = mod
- if (_rerender_only) {
- __VUE_HMR_RUNTIME__.rerender(updated.__hmrId, updated.render)
- } else {
- __VUE_HMR_RUNTIME__.reload(updated.__hmrId, updated)
- }
-})
-import _export_sfc from '/@id/__x00__plugin-vue:export-helper'
-export default /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render],['__file',\\"/fixtures/test.vue\\"]])"
-`;
-
-exports[`Vite SFC > supports custom blockType 1`] = `undefined`;
diff --git a/__tests__/frameworks/vite/src/util.ts b/__tests__/frameworks/vite/src/util.ts
deleted file mode 100644
index b66dd28..0000000
--- a/__tests__/frameworks/vite/src/util.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { resolve, sep } from 'path'
-
-import type { InlineConfig } from 'vite'
-import { createServer } from 'vite'
-
-const baseDir = resolve(__dirname, '../../..')
-
-export async function compile(options: InlineConfig, file: string): Promise {
- const vite = await createServer({
- root: baseDir,
- ...options,
- plugins: [
- ...options.plugins,
- {
- name: 'externals',
- resolveId(id) {
- if (id === 'vue' || id === '@fluent/bundle')
- return id
- },
- load(id) {
- if (id === 'vue' || id === '@fluent/bundle')
- return 'export default {}'
- },
- },
- ],
- })
-
- const output = await vite.transformRequest(file)
- const code = output?.code
-
- // normalize paths
- return code?.replaceAll(baseDir.replaceAll(sep, '/'), '')
-}
diff --git a/__tests__/frameworks/vite/util.ts b/__tests__/frameworks/vite/util.ts
new file mode 100644
index 0000000..b1eff3f
--- /dev/null
+++ b/__tests__/frameworks/vite/util.ts
@@ -0,0 +1,45 @@
+import { resolve, sep } from 'path'
+
+import type { InlineConfig, ModuleNode } from 'vite'
+import { createServer } from 'vite'
+
+import { viteExternalsPlugin } from 'vite-plugin-externals'
+
+const baseDir = resolve(__dirname, '../..')
+
+export async function compile(options: InlineConfig, file: string): Promise {
+ const vite = await createServer({
+ root: baseDir,
+ ...options,
+ plugins: [
+ ...options.plugins,
+ viteExternalsPlugin({
+ 'vue': 'Vue',
+ '@fluent/bundle': 'FluentBundle',
+ }),
+ ],
+ })
+
+ await vite.transformRequest(file)
+
+ const module = await vite.moduleGraph.getModuleByUrl(file)
+
+ const getAllModules = (module: ModuleNode): ModuleNode[] => [module].concat([...module.importedModules.values()].flatMap(getAllModules))
+
+ const modules = await Promise.all(getAllModules(module)
+ .map(async module => ({
+ transform: await vite.transformRequest(module.url),
+ module,
+ })))
+
+ const code = modules
+ .filter(module => module.transform)
+ .filter(module => !module.module.url.includes('node_modules'))
+ .map(module => `=== ${module.module.url} ===\n${module.transform.code}`).join('\n\n')
+
+ // normalize paths
+ return code
+ ?.replaceAll(baseDir.replaceAll(sep, '/'), '')
+ .replace(/\/@(fs|id).*?node_modules\//g, '')
+ .replaceAll('\\r\\n', '\\n')
+}
diff --git a/__tests__/frameworks/webpack/.npmrc b/__tests__/frameworks/webpack/.npmrc
deleted file mode 100644
index e63af86..0000000
--- a/__tests__/frameworks/webpack/.npmrc
+++ /dev/null
@@ -1 +0,0 @@
-root=true
\ No newline at end of file
diff --git a/__tests__/frameworks/webpack/src/__snapshots__/sfc.spec.ts.snap b/__tests__/frameworks/webpack/__snapshots__/sfc.spec.ts.snap
similarity index 100%
rename from __tests__/frameworks/webpack/src/__snapshots__/sfc.spec.ts.snap
rename to __tests__/frameworks/webpack/__snapshots__/sfc.spec.ts.snap
diff --git a/__tests__/frameworks/webpack/package.json b/__tests__/frameworks/webpack/package.json
deleted file mode 100644
index fad619d..0000000
--- a/__tests__/frameworks/webpack/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "test-webpack",
- "private": true,
- "devDependencies": {
- "@vue/compiler-sfc": "3.2.37",
- "memfs": "3.4.7",
- "vue": "3.2.37",
- "vue-loader": "17.0.0",
- "webpack": "5.74.0"
- }
-}
diff --git a/__tests__/frameworks/webpack/src/sfc.spec.ts b/__tests__/frameworks/webpack/sfc.spec.ts
similarity index 100%
rename from __tests__/frameworks/webpack/src/sfc.spec.ts
rename to __tests__/frameworks/webpack/sfc.spec.ts
diff --git a/__tests__/frameworks/webpack/src/util.ts b/__tests__/frameworks/webpack/util.ts
similarity index 87%
rename from __tests__/frameworks/webpack/src/util.ts
rename to __tests__/frameworks/webpack/util.ts
index e352d5e..871fdc7 100644
--- a/__tests__/frameworks/webpack/src/util.ts
+++ b/__tests__/frameworks/webpack/util.ts
@@ -4,12 +4,12 @@ import { Volume, createFsFromVolume } from 'memfs'
import { VueLoaderPlugin } from 'vue-loader'
-import type { SFCPluginOptions } from '../../../../src/webpack'
-import { SFCFluentPlugin } from '../../../../src/webpack'
+import { SFCFluentPlugin } from '../../../src/webpack'
+import type { SFCPluginOptions } from '../../../src/webpack'
export async function compile(fixture: string, options: Partial = {}, hot = false): Promise {
const compilation = webpack({
- context: path.resolve(__dirname, '../../..'),
+ context: path.resolve(__dirname, '../..'),
entry: `./${fixture}`,
externals: {
'vue': 'Vue',
diff --git a/package.json b/package.json
index 93cb6c9..0e790e1 100644
--- a/package.json
+++ b/package.json
@@ -68,14 +68,23 @@
"@antfu/eslint-config-ts": "0.25.2",
"@release-it-plugins/lerna-changelog": "5.0.0",
"@types/node": "18.6.1",
+ "@vitejs/plugin-vue": "^3.0.1",
+ "@vue/compiler-sfc": "^3.2.37",
"c8": "7.12.0",
"eslint": "8.20.0",
+ "execa": "^6.1.0",
"husky": "8.0.1",
"lint-staged": "13.0.3",
+ "memfs": "^3.4.7",
"release-it": "15.2.0",
"tsup": "6.2.0",
"typescript": "4.7.4",
- "vitest": "^0.19.1"
+ "vite": "^3.0.4",
+ "vite-plugin-externals": "^0.5.1",
+ "vitest": "^0.19.1",
+ "vue": "^3.2.37",
+ "vue-loader": "^17.0.0",
+ "webpack": "^5.74.0"
},
"lint-staged": {
"*.js": "eslint --fix",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9d5e857..7632f4c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,32 +8,50 @@ importers:
'@release-it-plugins/lerna-changelog': 5.0.0
'@rollup/pluginutils': ^4.2.1
'@types/node': 18.6.1
+ '@vitejs/plugin-vue': ^3.0.1
+ '@vue/compiler-sfc': ^3.2.37
c8: 7.12.0
eslint: 8.20.0
+ execa: ^6.1.0
husky: 8.0.1
lint-staged: 13.0.3
magic-string: ^0.26.2
+ memfs: ^3.4.7
release-it: 15.2.0
tsup: 6.2.0
typescript: 4.7.4
unplugin: ^0.8.0
+ vite: ^3.0.4
+ vite-plugin-externals: ^0.5.1
vitest: ^0.19.1
+ vue: ^3.2.37
+ vue-loader: ^17.0.0
+ webpack: ^5.74.0
dependencies:
'@rollup/pluginutils': 4.2.1
magic-string: 0.26.2
- unplugin: 0.8.0
+ unplugin: 0.8.0_vite@3.0.4+webpack@5.74.0
devDependencies:
'@antfu/eslint-config-ts': 0.25.2_he2ccbldppg44uulnyq4rwocfa
'@release-it-plugins/lerna-changelog': 5.0.0_release-it@15.2.0
'@types/node': 18.6.1
+ '@vitejs/plugin-vue': 3.0.1_vite@3.0.4+vue@3.2.37
+ '@vue/compiler-sfc': 3.2.37
c8: 7.12.0
eslint: 8.20.0
+ execa: 6.1.0
husky: 8.0.1
lint-staged: 13.0.3
+ memfs: 3.4.7
release-it: 15.2.0
tsup: 6.2.0_typescript@4.7.4
typescript: 4.7.4
+ vite: 3.0.4
+ vite-plugin-externals: 0.5.1_vite@3.0.4
vitest: 0.19.1_c8@7.12.0
+ vue: 3.2.37
+ vue-loader: 17.0.0_webpack@5.74.0
+ webpack: 5.74.0
__tests__/frameworks/vite:
specifiers:
@@ -199,35 +217,29 @@ packages:
'@jridgewell/set-array': 1.1.2
'@jridgewell/sourcemap-codec': 1.4.14
'@jridgewell/trace-mapping': 0.3.14
- dev: true
/@jridgewell/resolve-uri/3.0.8:
resolution: {integrity: sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==}
engines: {node: '>=6.0.0'}
- dev: true
/@jridgewell/set-array/1.1.2:
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
engines: {node: '>=6.0.0'}
- dev: true
/@jridgewell/source-map/0.3.2:
resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==}
dependencies:
'@jridgewell/gen-mapping': 0.3.2
'@jridgewell/trace-mapping': 0.3.14
- dev: true
/@jridgewell/sourcemap-codec/1.4.14:
resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
- dev: true
/@jridgewell/trace-mapping/0.3.14:
resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==}
dependencies:
'@jridgewell/resolve-uri': 3.0.8
'@jridgewell/sourcemap-codec': 1.4.14
- dev: true
/@nodelib/fs.scandir/2.1.5:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
@@ -480,18 +492,15 @@ packages:
dependencies:
'@types/eslint': 8.4.5
'@types/estree': 0.0.51
- dev: true
/@types/eslint/8.4.5:
resolution: {integrity: sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==}
dependencies:
'@types/estree': 0.0.51
'@types/json-schema': 7.0.11
- dev: true
/@types/estree/0.0.51:
resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==}
- dev: true
/@types/http-cache-semantics/4.0.1:
resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==}
@@ -507,7 +516,6 @@ packages:
/@types/json-schema/7.0.11:
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
- dev: true
/@types/json5/0.0.29:
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
@@ -531,7 +539,6 @@ packages:
/@types/node/18.6.1:
resolution: {integrity: sha512-z+2vB6yDt1fNwKOeGbckpmirO+VBDuQqecXkgeIqDlaOtmKn6hPR/viQ8cxCfqLU4fTlvM3+YjM367TukWdxpg==}
- dev: true
/@types/normalize-package-data/2.4.1:
resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
@@ -688,6 +695,17 @@ packages:
vue: 3.2.37
dev: true
+ /@vitejs/plugin-vue/3.0.1_vite@3.0.4+vue@3.2.37:
+ resolution: {integrity: sha512-Ll9JgxG7ONIz/XZv3dssfoMUDu9qAnlJ+km+pBA0teYSXzwPCIzS/e1bmwNYl5dcQGs677D21amgfYAnzMl17A==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ vite: ^3.0.0
+ vue: ^3.2.25
+ dependencies:
+ vite: 3.0.4
+ vue: 3.2.37
+ dev: true
+
/@vue/compiler-core/3.2.37:
resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==}
dependencies:
@@ -776,19 +794,15 @@ packages:
dependencies:
'@webassemblyjs/helper-numbers': 1.11.1
'@webassemblyjs/helper-wasm-bytecode': 1.11.1
- dev: true
/@webassemblyjs/floating-point-hex-parser/1.11.1:
resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==}
- dev: true
/@webassemblyjs/helper-api-error/1.11.1:
resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==}
- dev: true
/@webassemblyjs/helper-buffer/1.11.1:
resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==}
- dev: true
/@webassemblyjs/helper-numbers/1.11.1:
resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==}
@@ -796,11 +810,9 @@ packages:
'@webassemblyjs/floating-point-hex-parser': 1.11.1
'@webassemblyjs/helper-api-error': 1.11.1
'@xtuc/long': 4.2.2
- dev: true
/@webassemblyjs/helper-wasm-bytecode/1.11.1:
resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==}
- dev: true
/@webassemblyjs/helper-wasm-section/1.11.1:
resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==}
@@ -809,23 +821,19 @@ packages:
'@webassemblyjs/helper-buffer': 1.11.1
'@webassemblyjs/helper-wasm-bytecode': 1.11.1
'@webassemblyjs/wasm-gen': 1.11.1
- dev: true
/@webassemblyjs/ieee754/1.11.1:
resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==}
dependencies:
'@xtuc/ieee754': 1.2.0
- dev: true
/@webassemblyjs/leb128/1.11.1:
resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==}
dependencies:
'@xtuc/long': 4.2.2
- dev: true
/@webassemblyjs/utf8/1.11.1:
resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==}
- dev: true
/@webassemblyjs/wasm-edit/1.11.1:
resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==}
@@ -838,7 +846,6 @@ packages:
'@webassemblyjs/wasm-opt': 1.11.1
'@webassemblyjs/wasm-parser': 1.11.1
'@webassemblyjs/wast-printer': 1.11.1
- dev: true
/@webassemblyjs/wasm-gen/1.11.1:
resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==}
@@ -848,7 +855,6 @@ packages:
'@webassemblyjs/ieee754': 1.11.1
'@webassemblyjs/leb128': 1.11.1
'@webassemblyjs/utf8': 1.11.1
- dev: true
/@webassemblyjs/wasm-opt/1.11.1:
resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==}
@@ -857,7 +863,6 @@ packages:
'@webassemblyjs/helper-buffer': 1.11.1
'@webassemblyjs/wasm-gen': 1.11.1
'@webassemblyjs/wasm-parser': 1.11.1
- dev: true
/@webassemblyjs/wasm-parser/1.11.1:
resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==}
@@ -868,22 +873,18 @@ packages:
'@webassemblyjs/ieee754': 1.11.1
'@webassemblyjs/leb128': 1.11.1
'@webassemblyjs/utf8': 1.11.1
- dev: true
/@webassemblyjs/wast-printer/1.11.1:
resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==}
dependencies:
'@webassemblyjs/ast': 1.11.1
'@xtuc/long': 4.2.2
- dev: true
/@xtuc/ieee754/1.2.0:
resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
- dev: true
/@xtuc/long/4.2.2:
resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
- dev: true
/acorn-import-assertions/1.8.0_acorn@8.8.0:
resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==}
@@ -891,7 +892,6 @@ packages:
acorn: ^8
dependencies:
acorn: 8.8.0
- dev: true
/acorn-jsx/5.3.2_acorn@8.8.0:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
@@ -945,7 +945,6 @@ packages:
ajv: ^6.9.1
dependencies:
ajv: 6.12.6
- dev: true
/ajv/6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
@@ -954,7 +953,6 @@ packages:
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- dev: true
/ansi-align/3.0.1:
resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
@@ -1147,11 +1145,9 @@ packages:
electron-to-chromium: 1.4.206
node-releases: 2.0.6
update-browserslist-db: 1.0.5_browserslist@4.21.3
- dev: true
/buffer-from/1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
- dev: true
/buffer/6.0.3:
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
@@ -1273,7 +1269,6 @@ packages:
/caniuse-lite/1.0.30001373:
resolution: {integrity: sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==}
- dev: true
/chai/4.3.6:
resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==}
@@ -1356,7 +1351,6 @@ packages:
/chrome-trace-event/1.0.3:
resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
engines: {node: '>=6.0'}
- dev: true
/ci-info/3.3.2:
resolution: {integrity: sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==}
@@ -1485,7 +1479,6 @@ packages:
/commander/2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
- dev: true
/commander/4.1.1:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
@@ -1765,7 +1758,6 @@ packages:
/electron-to-chromium/1.4.206:
resolution: {integrity: sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==}
- dev: true
/emoji-regex/8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -1800,7 +1792,6 @@ packages:
dependencies:
graceful-fs: 4.2.10
tapable: 2.2.1
- dev: true
/entities/2.2.0:
resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
@@ -1867,9 +1858,12 @@ packages:
isarray: 2.0.5
dev: true
+ /es-module-lexer/0.4.1:
+ resolution: {integrity: sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==}
+ dev: true
+
/es-module-lexer/0.9.3:
resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
- dev: true
/es-shim-unscopables/1.0.0:
resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
@@ -1892,7 +1886,6 @@ packages:
cpu: [x64]
os: [android]
requiresBuild: true
- dev: true
optional: true
/esbuild-android-arm64/0.14.48:
@@ -1901,7 +1894,6 @@ packages:
cpu: [arm64]
os: [android]
requiresBuild: true
- dev: true
optional: true
/esbuild-darwin-64/0.14.48:
@@ -1910,7 +1902,6 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
- dev: true
optional: true
/esbuild-darwin-arm64/0.14.48:
@@ -1919,7 +1910,6 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
- dev: true
optional: true
/esbuild-freebsd-64/0.14.48:
@@ -1928,7 +1918,6 @@ packages:
cpu: [x64]
os: [freebsd]
requiresBuild: true
- dev: true
optional: true
/esbuild-freebsd-arm64/0.14.48:
@@ -1937,7 +1926,6 @@ packages:
cpu: [arm64]
os: [freebsd]
requiresBuild: true
- dev: true
optional: true
/esbuild-linux-32/0.14.48:
@@ -1946,7 +1934,6 @@ packages:
cpu: [ia32]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/esbuild-linux-64/0.14.48:
@@ -1955,7 +1942,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/esbuild-linux-arm/0.14.48:
@@ -1964,7 +1950,6 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/esbuild-linux-arm64/0.14.48:
@@ -1973,7 +1958,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/esbuild-linux-mips64le/0.14.48:
@@ -1982,7 +1966,6 @@ packages:
cpu: [mips64el]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/esbuild-linux-ppc64le/0.14.48:
@@ -1991,7 +1974,6 @@ packages:
cpu: [ppc64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/esbuild-linux-riscv64/0.14.48:
@@ -2000,7 +1982,6 @@ packages:
cpu: [riscv64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/esbuild-linux-s390x/0.14.48:
@@ -2009,7 +1990,6 @@ packages:
cpu: [s390x]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/esbuild-netbsd-64/0.14.48:
@@ -2018,7 +1998,6 @@ packages:
cpu: [x64]
os: [netbsd]
requiresBuild: true
- dev: true
optional: true
/esbuild-openbsd-64/0.14.48:
@@ -2027,7 +2006,6 @@ packages:
cpu: [x64]
os: [openbsd]
requiresBuild: true
- dev: true
optional: true
/esbuild-sunos-64/0.14.48:
@@ -2036,7 +2014,6 @@ packages:
cpu: [x64]
os: [sunos]
requiresBuild: true
- dev: true
optional: true
/esbuild-windows-32/0.14.48:
@@ -2045,7 +2022,6 @@ packages:
cpu: [ia32]
os: [win32]
requiresBuild: true
- dev: true
optional: true
/esbuild-windows-64/0.14.48:
@@ -2054,7 +2030,6 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
- dev: true
optional: true
/esbuild-windows-arm64/0.14.48:
@@ -2063,7 +2038,6 @@ packages:
cpu: [arm64]
os: [win32]
requiresBuild: true
- dev: true
optional: true
/esbuild/0.14.48:
@@ -2092,12 +2066,10 @@ packages:
esbuild-windows-32: 0.14.48
esbuild-windows-64: 0.14.48
esbuild-windows-arm64: 0.14.48
- dev: true
/escalade/3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
- dev: true
/escape-goat/4.0.0:
resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==}
@@ -2330,7 +2302,6 @@ packages:
dependencies:
esrecurse: 4.3.0
estraverse: 4.3.0
- dev: true
/eslint-scope/7.1.1:
resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
@@ -2443,17 +2414,14 @@ packages:
engines: {node: '>=4.0'}
dependencies:
estraverse: 5.3.0
- dev: true
/estraverse/4.3.0:
resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
engines: {node: '>=4.0'}
- dev: true
/estraverse/5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
- dev: true
/estree-walker/2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
@@ -2466,7 +2434,6 @@ packages:
/events/3.3.0:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'}
- dev: true
/execa/5.1.1:
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
@@ -2509,7 +2476,6 @@ packages:
/fast-deep-equal/3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- dev: true
/fast-glob/3.2.11:
resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==}
@@ -2524,7 +2490,6 @@ packages:
/fast-json-stable-stringify/2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- dev: true
/fast-levenshtein/2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
@@ -2634,6 +2599,15 @@ packages:
fetch-blob: 3.2.0
dev: true
+ /fs-extra/10.1.0:
+ resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ graceful-fs: 4.2.10
+ jsonfile: 6.1.0
+ universalify: 2.0.0
+ dev: true
+
/fs-extra/8.1.0:
resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
engines: {node: '>=6 <7 || >=8'}
@@ -2675,7 +2649,6 @@ packages:
/function-bind/1.1.1:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
- dev: true
/function.prototype.name/1.1.5:
resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==}
@@ -2774,7 +2747,6 @@ packages:
/glob-to-regexp/0.4.1:
resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
- dev: true
/glob/7.1.6:
resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
@@ -2856,7 +2828,6 @@ packages:
/graceful-fs/4.2.10:
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
- dev: true
/has-bigints/1.0.2:
resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
@@ -2870,7 +2841,6 @@ packages:
/has-flag/4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines: {node: '>=8'}
- dev: true
/has-property-descriptors/1.0.0:
resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
@@ -2900,7 +2870,6 @@ packages:
engines: {node: '>= 0.4.0'}
dependencies:
function-bind: 1.1.1
- dev: true
/hash-sum/2.0.0:
resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==}
@@ -3176,7 +3145,6 @@ packages:
resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==}
dependencies:
has: 1.0.3
- dev: true
/is-date-object/1.0.5:
resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
@@ -3403,7 +3371,6 @@ packages:
'@types/node': 18.6.1
merge-stream: 2.0.0
supports-color: 8.1.1
- dev: true
/joycon/3.1.1:
resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
@@ -3427,11 +3394,9 @@ packages:
/json-parse-even-better-errors/2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
- dev: true
/json-schema-traverse/0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- dev: true
/json-stable-stringify-without-jsonify/1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
@@ -3466,6 +3431,14 @@ packages:
graceful-fs: 4.2.10
dev: true
+ /jsonfile/6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+ dependencies:
+ universalify: 2.0.0
+ optionalDependencies:
+ graceful-fs: 4.2.10
+ dev: true
+
/keyv/4.3.3:
resolution: {integrity: sha512-AcysI17RvakTh8ir03+a3zJr5r0ovnAH/XTXei/4HIv3bL2K/jzvgivLK9UuI/JbU1aJjM3NSAnVvVVd3n+4DQ==}
dependencies:
@@ -3578,7 +3551,6 @@ packages:
/loader-runner/4.3.0:
resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
engines: {node: '>=6.11.5'}
- dev: true
/loader-utils/2.0.2:
resolution: {integrity: sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==}
@@ -3790,7 +3762,6 @@ packages:
/merge-stream/2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
- dev: true
/merge2/1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
@@ -3993,14 +3964,12 @@ packages:
/mime-db/1.52.0:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines: {node: '>= 0.6'}
- dev: true
/mime-types/2.1.35:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
dependencies:
mime-db: 1.52.0
- dev: true
/mimic-fn/2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
@@ -4130,7 +4099,6 @@ packages:
resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- dev: true
/natural-compare/1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
@@ -4143,7 +4111,6 @@ packages:
/neo-async/2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
- dev: true
/netmask/2.0.2:
resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==}
@@ -4185,7 +4152,6 @@ packages:
/node-releases/2.0.6:
resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
- dev: true
/normalize-package-data/2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
@@ -4524,7 +4490,6 @@ packages:
/path-parse/1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
- dev: true
/path-root-regex/0.1.2:
resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==}
@@ -4549,7 +4514,6 @@ packages:
/picocolors/1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
- dev: true
/picomatch/2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
@@ -4594,7 +4558,6 @@ packages:
nanoid: 3.3.4
picocolors: 1.0.0
source-map-js: 1.0.2
- dev: true
/prelude-ls/1.1.2:
resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==}
@@ -4678,7 +4641,6 @@ packages:
/punycode/2.1.1:
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
engines: {node: '>=6'}
- dev: true
/pupa/3.1.0:
resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
@@ -4700,7 +4662,6 @@ packages:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
dependencies:
safe-buffer: 5.2.1
- dev: true
/raw-body/2.5.1:
resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==}
@@ -4875,7 +4836,6 @@ packages:
is-core-module: 2.9.0
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
- dev: true
/responselike/2.0.1:
resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==}
@@ -4931,7 +4891,6 @@ packages:
hasBin: true
optionalDependencies:
fsevents: 2.3.2
- dev: true
/run-async/2.4.1:
resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
@@ -4963,7 +4922,6 @@ packages:
/safe-buffer/5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
- dev: true
/safe-regex/2.1.1:
resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==}
@@ -4982,7 +4940,6 @@ packages:
'@types/json-schema': 7.0.11
ajv: 6.12.6
ajv-keywords: 3.5.2_ajv@6.12.6
- dev: true
/semver-diff/4.0.0:
resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
@@ -5013,7 +4970,6 @@ packages:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
dependencies:
randombytes: 2.1.0
- dev: true
/setprototypeof/1.2.0:
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
@@ -5127,20 +5083,17 @@ packages:
/source-map-js/1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
- dev: true
/source-map-support/0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
- dev: true
/source-map/0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
requiresBuild: true
- dev: true
/source-map/0.8.0-beta.0:
resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
@@ -5313,17 +5266,14 @@ packages:
engines: {node: '>=10'}
dependencies:
has-flag: 4.0.0
- dev: true
/supports-preserve-symlinks-flag/1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
- dev: true
/tapable/2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'}
- dev: true
/tar/6.1.11:
resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==}
@@ -5359,7 +5309,6 @@ packages:
serialize-javascript: 6.0.0
terser: 5.14.2
webpack: 5.74.0
- dev: true
/terser/5.14.2:
resolution: {integrity: sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==}
@@ -5370,7 +5319,6 @@ packages:
acorn: 8.8.0
commander: 2.20.3
source-map-support: 0.5.21
- dev: true
/test-exclude/6.0.0:
resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
@@ -5634,12 +5582,17 @@ packages:
engines: {node: '>= 4.0.0'}
dev: true
+ /universalify/2.0.0:
+ resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
+ engines: {node: '>= 10.0.0'}
+ dev: true
+
/unpipe/1.0.0:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'}
dev: true
- /unplugin/0.8.0:
+ /unplugin/0.8.0_vite@3.0.4+webpack@5.74.0:
resolution: {integrity: sha512-OzOkJ9XOPlD1Cph6qy/p4i/KSUbs76GToXjH/STHpfo6D7y+EqpfAL6G6HaoOw5QLkt9+KWwcxYUmPFkDf1upQ==}
peerDependencies:
esbuild: '>=0.13'
@@ -5658,6 +5611,8 @@ packages:
dependencies:
acorn: 8.8.0
chokidar: 3.5.3
+ vite: 3.0.4
+ webpack: 5.74.0
webpack-sources: 3.2.3
webpack-virtual-modules: 0.4.4
dev: false
@@ -5671,7 +5626,6 @@ packages:
browserslist: 4.21.3
escalade: 3.1.1
picocolors: 1.0.0
- dev: true
/update-notifier/6.0.2:
resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==}
@@ -5697,7 +5651,6 @@ packages:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.1.1
- dev: true
/url-join/5.0.0:
resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==}
@@ -5747,6 +5700,18 @@ packages:
semver: 7.3.7
dev: true
+ /vite-plugin-externals/0.5.1_vite@3.0.4:
+ resolution: {integrity: sha512-HvRFG5y9wXoJUG9FSbSp9ikOiJRh7EzN6tJC5oIOcEj+19GUw9Z1NNCPFtAmX75Ajcr10FdELKNmuXS3lExkcg==}
+ peerDependencies:
+ vite: '>=2.0.0'
+ dependencies:
+ acorn: 8.8.0
+ es-module-lexer: 0.4.1
+ fs-extra: 10.1.0
+ magic-string: 0.25.9
+ vite: 3.0.4
+ dev: true
+
/vite/3.0.3:
resolution: {integrity: sha512-sDIpIcl3mv1NUaSzZwiXGEy1ZoWwwC2vkxUHY6yiDacR6zf//ZFuBJrozO62gedpE43pmxnLATNR5IYUdAEkMQ==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -5799,7 +5764,6 @@ packages:
rollup: 2.75.7
optionalDependencies:
fsevents: 2.3.2
- dev: true
/vitest/0.19.1_c8@7.12.0:
resolution: {integrity: sha512-E/ZXpFMUahn731wzhMBNzWRp4mGgiZFT0xdHa32cbNO0CSaHpE9hTfteEU247Gi2Dula8uXo5vvrNB6dtszmQA==}
@@ -5880,7 +5844,6 @@ packages:
dependencies:
glob-to-regexp: 0.4.1
graceful-fs: 4.2.10
- dev: true
/wcwidth/1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
@@ -5947,7 +5910,6 @@ packages:
- '@swc/core'
- esbuild
- uglify-js
- dev: true
/whatwg-url/5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
deleted file mode 100644
index f888384..0000000
--- a/pnpm-workspace.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-packages:
- - '__tests__/frameworks/*'
diff --git a/scripts/build-examples.mjs b/scripts/build-examples.mjs
new file mode 100644
index 0000000..c778c26
--- /dev/null
+++ b/scripts/build-examples.mjs
@@ -0,0 +1,28 @@
+import { readdirSync, readFileSync, existsSync } from 'fs'
+import { execa } from 'execa'
+
+const examples = readdirSync('examples')
+ .filter((f) => existsSync(`examples/${f}/package.json`))
+ .map((f) => ({
+ folder: `examples/${f}`,
+ package: JSON.parse(readFileSync(`examples/${f}/package.json`)),
+ }))
+
+async function buildExamples () {
+ await execa('pnpm', ['i'], { stdio: 'inherit' })
+ await execa('pnpm', ['build'], { stdio: 'inherit' })
+
+ for (const example of examples) {
+ console.log(`building ${example.folder}...`)
+ await execa('pnpm', ['add', `file:../../`], { stdio: 'inherit', cwd: example.folder })
+ await execa('pnpm', ['i'], { stdio: 'inherit', cwd: example.folder })
+ await execa('pnpm', ['build'], { stdio: 'inherit', cwd: example.folder })
+ }
+
+ for (const typescriptExample of examples.filter((ex) => ex.package.scripts.typecheck != null)) {
+ console.log(`typechecking ${typescriptExample.folder}...`)
+ await execa('pnpm', ['typecheck'], { stdio: 'inherit', cwd: typescriptExample.folder })
+ }
+}
+
+await buildExamples()
diff --git a/src/plugins/external-plugin.ts b/src/plugins/external-plugin.ts
index 3245ed7..36fc43b 100644
--- a/src/plugins/external-plugin.ts
+++ b/src/plugins/external-plugin.ts
@@ -1,6 +1,5 @@
import { join, relative } from 'path'
import { stat as fsStat } from 'fs/promises'
-import type { VitePlugin } from 'unplugin'
import { createUnplugin } from 'unplugin'
import MagicString from 'magic-string'
@@ -132,6 +131,6 @@ export default new FluentResource(${JSON.stringify(source)})
}
})
-export const vitePlugin: (options?: ExternalPluginOptions) => VitePlugin = unplugin.vite
+export const vitePlugin = unplugin.vite
export const rollupPlugin = unplugin.rollup
export const webpackPlugin = unplugin.webpack
diff --git a/tsconfig.json b/tsconfig.json
index 962492b..fb9659e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,5 +1,6 @@
{
"compilerOptions": {
+ "baseUrl": ".",
"target": "ESNext",
"moduleResolution": "node",
"sourceMap": true,