reactive-route 0.0.1-alpha.25 → 0.0.1-alpha.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/dist/adapters/vue.d.ts +3 -0
- package/dist/adapters/vue.d.ts.map +1 -0
- package/dist/cjs/adapters/vue/index.js +39 -0
- package/dist/cjs/adapters/vue/package.json +1 -0
- package/dist/cjs/index.js +30 -31
- package/dist/cjs/vue/index.js +116 -0
- package/dist/cjs/vue/package.json +1 -0
- package/dist/core/createRouter.d.ts +1 -1
- package/dist/core/createRouter.d.ts.map +1 -1
- package/dist/core/types/TypeRouter.d.ts +1 -0
- package/dist/core/types/TypeRouter.d.ts.map +1 -1
- package/dist/esm/adapters/vue/index.js +18 -0
- package/dist/esm/adapters/vue/package.json +1 -0
- package/dist/esm/index.js +30 -31
- package/dist/esm/vue/index.js +93 -0
- package/dist/esm/vue/package.json +1 -0
- package/dist/tsconfig.types.react.tsbuildinfo +1 -1
- package/dist/vue/Router.d.ts +4 -0
- package/dist/vue/Router.d.ts.map +1 -0
- package/dist/vue/index.d.ts +2 -0
- package/dist/vue/index.d.ts.map +1 -0
- package/e2e/app.test.ts +130 -0
- package/e2e/teardown.ts +12 -0
- package/package.json +51 -26
- package/playwright.config.ts +52 -0
- package/vitepress/.vitepress/cache/deps/_metadata.json +52 -0
- package/vitepress/.vitepress/cache/deps/chunk-FL23S3EK.js +12705 -0
- package/vitepress/.vitepress/cache/deps/chunk-FL23S3EK.js.map +7 -0
- package/vitepress/.vitepress/cache/deps/chunk-VGAXUAUJ.js +9952 -0
- package/vitepress/.vitepress/cache/deps/chunk-VGAXUAUJ.js.map +7 -0
- package/vitepress/.vitepress/cache/deps/package.json +3 -0
- package/vitepress/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +3844 -0
- package/vitepress/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
- package/vitepress/.vitepress/cache/deps/vitepress___@vueuse_core.js +588 -0
- package/vitepress/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
- package/vitepress/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +1153 -0
- package/vitepress/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +7 -0
- package/vitepress/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +1665 -0
- package/vitepress/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +7 -0
- package/vitepress/.vitepress/cache/deps/vitepress___minisearch.js +1812 -0
- package/vitepress/.vitepress/cache/deps/vitepress___minisearch.js.map +7 -0
- package/vitepress/.vitepress/cache/deps/vue.js +342 -0
- package/vitepress/.vitepress/cache/deps/vue.js.map +7 -0
- package/vitepress/.vitepress/config.mts +72 -0
- package/vitepress/.vitepress/theme/custom.css +9 -0
- package/vitepress/.vitepress/theme/index.ts +5 -0
- package/vitepress/examples/preact.md +22 -0
- package/vitepress/examples/react.md +22 -0
- package/vitepress/examples/solid.md +21 -0
- package/vitepress/file.svg +79 -0
- package/vitepress/guide/advanced.md +131 -0
- package/vitepress/guide/getting-started.md +139 -0
- package/vitepress/guide/index.md +44 -0
- package/vitepress/guide/preact.md +33 -0
- package/vitepress/guide/react.md +33 -0
- package/vitepress/guide/router-component.md +67 -0
- package/vitepress/guide/router-configuration.md +185 -0
- package/vitepress/guide/routes-configuration.md +191 -0
- package/vitepress/guide/solid.md +68 -0
- package/vitepress/guide/ssr.md +70 -0
- package/vitepress/index.md +29 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../packages/vue/Router.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;;kPAoHjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/vue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
package/e2e/app.test.ts
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
const h1 = 'h1';
|
|
4
|
+
|
|
5
|
+
test.describe('App routing E2E', () => {
|
|
6
|
+
test('home redirects to /static', async ({ page }) => {
|
|
7
|
+
await page.goto('/');
|
|
8
|
+
await page.waitForLoadState('networkidle');
|
|
9
|
+
await expect(page).toHaveURL('/static');
|
|
10
|
+
|
|
11
|
+
await expect(page.locator(h1)).toHaveText('Static Page');
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
test('redirect from /static to /page/example works', async ({ page }) => {
|
|
15
|
+
await page.goto('/static');
|
|
16
|
+
await page.waitForLoadState('networkidle');
|
|
17
|
+
await expect(page).toHaveURL('/static');
|
|
18
|
+
|
|
19
|
+
await expect(page.locator(h1)).toHaveText('Static Page');
|
|
20
|
+
|
|
21
|
+
await page.getByText('Go to Dynamic Page').click();
|
|
22
|
+
await page.waitForLoadState('networkidle');
|
|
23
|
+
await expect(page).toHaveURL('/page/example');
|
|
24
|
+
|
|
25
|
+
await expect(page.locator(h1)).toHaveText('Dynamic Page');
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
test('dynamic route with valid param renders and shows params', async ({ page }) => {
|
|
29
|
+
await page.goto('/page/example');
|
|
30
|
+
await page.waitForLoadState('networkidle');
|
|
31
|
+
await expect(page).toHaveURL('/page/example');
|
|
32
|
+
|
|
33
|
+
const preLocator = page.locator('.dynamic-page pre').nth(1);
|
|
34
|
+
|
|
35
|
+
await expect(page.locator(h1)).toHaveText('Dynamic Page');
|
|
36
|
+
await expect(preLocator).toContainText('"foo": "example"');
|
|
37
|
+
|
|
38
|
+
await page.getByText('Go to random dynamic value').click();
|
|
39
|
+
|
|
40
|
+
const randomFoo = ((await preLocator.textContent()) || '').match(/foo": "(\d+)"/)?.[1];
|
|
41
|
+
|
|
42
|
+
await expect(preLocator).toContainText(`"foo": "${randomFoo}"`);
|
|
43
|
+
await expect(page).toHaveURL(`/page/${randomFoo}`);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test('redirect from /static to /query works', async ({ page }) => {
|
|
47
|
+
await page.goto('/static');
|
|
48
|
+
await page.waitForLoadState('networkidle');
|
|
49
|
+
await expect(page).toHaveURL('/static');
|
|
50
|
+
|
|
51
|
+
await expect(page.locator(h1)).toHaveText('Static Page');
|
|
52
|
+
|
|
53
|
+
await page.getByText('Go to Query Page').click();
|
|
54
|
+
await page.waitForLoadState('networkidle');
|
|
55
|
+
await expect(page).toHaveURL('/query?foo=example');
|
|
56
|
+
|
|
57
|
+
await expect(page.locator(h1)).toHaveText('Query Page');
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
test('query route shows params', async ({ page }) => {
|
|
61
|
+
await page.goto('/query?foo=1');
|
|
62
|
+
await page.waitForLoadState('networkidle');
|
|
63
|
+
await expect(page).toHaveURL('/query');
|
|
64
|
+
|
|
65
|
+
const preLocator = page.locator('.query-page pre').nth(1);
|
|
66
|
+
|
|
67
|
+
await expect(page.locator(h1)).toHaveText('Query Page');
|
|
68
|
+
await expect(preLocator).toContainText('{}');
|
|
69
|
+
|
|
70
|
+
await page.getByText('Go to random query value').click();
|
|
71
|
+
|
|
72
|
+
const randomFoo = ((await preLocator.textContent()) || '').match(/foo": "(\d+)"/)?.[1];
|
|
73
|
+
|
|
74
|
+
await expect(preLocator).toContainText(`"foo": "${randomFoo}"`);
|
|
75
|
+
await expect(page).toHaveURL(`/query?foo=${randomFoo}`);
|
|
76
|
+
|
|
77
|
+
await page.goto('/query?foo=bar');
|
|
78
|
+
await page.waitForLoadState('networkidle');
|
|
79
|
+
await expect(page).toHaveURL('/query?foo=bar');
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
test('invalid routes redirect to 404', async ({ page }) => {
|
|
83
|
+
await page.goto('/page/ab');
|
|
84
|
+
await page.waitForLoadState('networkidle');
|
|
85
|
+
|
|
86
|
+
await expect(page.locator('.error-code')).toHaveText('404');
|
|
87
|
+
await expect(page.locator(h1)).toHaveText('Page Not Found');
|
|
88
|
+
await expect(page).toHaveURL('/error404');
|
|
89
|
+
|
|
90
|
+
await page.goto('/ab');
|
|
91
|
+
await page.waitForLoadState('networkidle');
|
|
92
|
+
|
|
93
|
+
await expect(page.locator('.error-code')).toHaveText('404');
|
|
94
|
+
await expect(page.locator(h1)).toHaveText('Page Not Found');
|
|
95
|
+
await expect(page).toHaveURL('/error404');
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
test('prevent: coming from Dynamic to Prevent redirects to Static (beforeEnter)', async ({
|
|
99
|
+
page,
|
|
100
|
+
}) => {
|
|
101
|
+
await page.goto('/page/example');
|
|
102
|
+
await page.waitForLoadState('networkidle');
|
|
103
|
+
|
|
104
|
+
await expect(page.locator(h1)).toHaveText('Dynamic Page');
|
|
105
|
+
|
|
106
|
+
await page
|
|
107
|
+
.getByRole('button', { name: 'Go to Prevent Page (will redirect to Static)' })
|
|
108
|
+
.click();
|
|
109
|
+
await page.waitForLoadState('networkidle');
|
|
110
|
+
|
|
111
|
+
await expect(page.locator(h1)).toHaveText('Static Page');
|
|
112
|
+
await expect(page).toHaveURL('/static');
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
test('prevent: from Prevent trying to go to Query is blocked (beforeLeave) and URL remains the same', async ({
|
|
116
|
+
page,
|
|
117
|
+
}) => {
|
|
118
|
+
await page.goto('/prevent');
|
|
119
|
+
await page.waitForLoadState('networkidle');
|
|
120
|
+
|
|
121
|
+
await expect(page.locator(h1)).toHaveText('Prevent Redirect Page');
|
|
122
|
+
|
|
123
|
+
await page.getByRole('button', { name: 'Try to go to Query Page (will be blocked)' }).click();
|
|
124
|
+
|
|
125
|
+
await page.waitForTimeout(100);
|
|
126
|
+
|
|
127
|
+
await expect(page.locator(h1)).toHaveText('Prevent Redirect Page');
|
|
128
|
+
await expect(page).toHaveURL('/prevent');
|
|
129
|
+
});
|
|
130
|
+
});
|
package/e2e/teardown.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
|
|
4
|
+
export default function teardown() {
|
|
5
|
+
fs.readdirSync(path.resolve('examples')).map((project) =>
|
|
6
|
+
fs
|
|
7
|
+
.readdirSync(path.resolve('examples', project))
|
|
8
|
+
.filter((folderName) => folderName.startsWith('dist'))
|
|
9
|
+
.map((folderName) => path.resolve('examples', project, folderName))
|
|
10
|
+
.forEach((folderPath) => fs.rmSync(folderPath, { recursive: true, force: true }))
|
|
11
|
+
);
|
|
12
|
+
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "reactive-route",
|
|
3
3
|
"author": "Dmitry Kazakov",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "0.0.1-alpha.
|
|
5
|
+
"version": "0.0.1-alpha.27",
|
|
6
6
|
"description": "Reactive Router for different frameworks",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -11,8 +11,6 @@
|
|
|
11
11
|
"scripts": {
|
|
12
12
|
"upd": "rm -rf ./node_modules&&pnpm i --prefer-offline",
|
|
13
13
|
"build": "rm -rf ./dist&&node --import tsx ./scripts/build.ts&&tsc -b ./tsconfig.types.react.json&&tsc -b ./tsconfig.types.solid.json",
|
|
14
|
-
"test": "vitest run&&node --import tsx ./scripts/genCoverageBadge.ts",
|
|
15
|
-
"test-watch": "vitest --coverage=false",
|
|
16
14
|
"npm-publish": "pnpm run build&&pnpm run test&&npm publish --access public",
|
|
17
15
|
"analyze:js": "biome check --no-errors-on-unmatched .",
|
|
18
16
|
"format:js": "biome check --no-errors-on-unmatched --write",
|
|
@@ -20,57 +18,74 @@
|
|
|
20
18
|
"check-types-example": "tsc --project examples/react/tsconfig.json",
|
|
21
19
|
"prepare": "husky",
|
|
22
20
|
"upgrade-examples": "pnpm upgrade -r reactive-route@latest",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
21
|
+
"upgrade-lib": "bash -c 'pnpm upgrade -r $@' bash",
|
|
22
|
+
"test": "vitest run&&node --import tsx ./scripts/genCoverageBadge.ts",
|
|
23
|
+
"test-watch": "vitest --coverage=false",
|
|
24
|
+
"e2e": "playwright test",
|
|
25
|
+
"e2e:ui": "playwright test --ui",
|
|
26
|
+
"e2e:install": "playwright install --with-deps",
|
|
27
|
+
"docs:dev": "vitepress dev vitepress",
|
|
28
|
+
"docs:build": "vitepress build vitepress --outDir docs",
|
|
29
|
+
"docs:preview": "vitepress preview vitepress"
|
|
26
30
|
},
|
|
27
31
|
"lint-staged": {
|
|
28
32
|
"(*.js|*.ts|*.tsx|*.mjs)": [
|
|
29
33
|
"pnpm run format:js"
|
|
30
34
|
]
|
|
31
35
|
},
|
|
36
|
+
"resolutions": {
|
|
37
|
+
"@mongodb-js/zstd": "2.0.1"
|
|
38
|
+
},
|
|
32
39
|
"dependencies": {
|
|
33
40
|
"history": "5.3.0"
|
|
34
41
|
},
|
|
35
42
|
"devDependencies": {
|
|
36
|
-
"@types/babel__core": "7.20.5",
|
|
37
43
|
"@babel/core": "7.28.4",
|
|
38
44
|
"@babel/preset-env": "7.28.3",
|
|
39
45
|
"@babel/preset-typescript": "7.27.1",
|
|
40
|
-
"
|
|
41
|
-
"vite-plugin-babel": "1.3.2",
|
|
42
|
-
"@biomejs/biome": "2.2.2",
|
|
43
|
-
"@espcom/esbuild-plugin-replace": "1.3.1",
|
|
46
|
+
"@biomejs/biome": "2.2.5",
|
|
44
47
|
"@espcom/esbuild-plugin-compress": "1.2.0",
|
|
48
|
+
"@espcom/esbuild-plugin-replace": "1.3.2",
|
|
49
|
+
"playwright": "1.56.1",
|
|
50
|
+
"@playwright/test": "1.56.1",
|
|
51
|
+
"@preact/preset-vite": "2.10.2",
|
|
45
52
|
"@solidjs/testing-library": "0.8.10",
|
|
46
|
-
"@testing-library/react": "16.3.0",
|
|
47
53
|
"@testing-library/preact": "3.2.4",
|
|
48
|
-
"@
|
|
49
|
-
"@
|
|
54
|
+
"@testing-library/react": "16.3.0",
|
|
55
|
+
"@testing-library/vue": "8.1.0",
|
|
56
|
+
"@types/babel__core": "7.20.5",
|
|
57
|
+
"@types/lodash": "4.17.20",
|
|
58
|
+
"@types/node": "24.7.2",
|
|
59
|
+
"@vitejs/plugin-vue": "6.0.1",
|
|
50
60
|
"@vitest/coverage-istanbul": "3.2.4",
|
|
51
|
-
"
|
|
52
|
-
"
|
|
61
|
+
"@vue/test-utils": "2.4.6",
|
|
62
|
+
"babel-preset-solid": "1.9.9",
|
|
53
63
|
"badge-maker": "5.0.2",
|
|
54
|
-
"esbuild": "0.25.
|
|
64
|
+
"esbuild": "0.25.11",
|
|
55
65
|
"husky": "9.1.7",
|
|
56
|
-
"kr-observable": "3.1.
|
|
57
|
-
"lint-staged": "16.
|
|
66
|
+
"kr-observable": "3.1.9",
|
|
67
|
+
"lint-staged": "16.2.4",
|
|
58
68
|
"lodash": "4.17.21",
|
|
59
|
-
"mobx": "6.
|
|
69
|
+
"mobx": "6.15.0",
|
|
60
70
|
"mobx-preact": "3.0.0",
|
|
61
|
-
"mobx-react-lite": "4.1.
|
|
62
|
-
"react": "19.1.1",
|
|
71
|
+
"mobx-react-lite": "4.1.1",
|
|
63
72
|
"preact": "10.27.2",
|
|
64
73
|
"preact-render-to-string": "6.6.1",
|
|
74
|
+
"react": "19.1.1",
|
|
65
75
|
"solid-js": "1.9.9",
|
|
66
|
-
"tsx": "4.20.
|
|
76
|
+
"tsx": "4.20.6",
|
|
67
77
|
"typescript": "5.9.2",
|
|
78
|
+
"vite-plugin-babel": "1.3.2",
|
|
79
|
+
"vite-tsconfig-paths": "5.1.4",
|
|
68
80
|
"vitepress": "2.0.0-alpha.12",
|
|
69
|
-
"vitepress-plugin-group-icons": "1.6.
|
|
81
|
+
"vitepress-plugin-group-icons": "1.6.4",
|
|
70
82
|
"vitest": "3.2.4",
|
|
83
|
+
"vue": "3.5.22",
|
|
71
84
|
"xml-splitter": "1.2.1"
|
|
72
85
|
},
|
|
73
|
-
"
|
|
86
|
+
"engines": {
|
|
87
|
+
"node": ">=22"
|
|
88
|
+
},
|
|
74
89
|
"exports": {
|
|
75
90
|
".": {
|
|
76
91
|
"types": "./dist/core/index.d.ts",
|
|
@@ -92,6 +107,16 @@
|
|
|
92
107
|
"require": "./dist/cjs/solid/index.js",
|
|
93
108
|
"import": "./dist/esm/solid/index.js"
|
|
94
109
|
},
|
|
110
|
+
"./vue": {
|
|
111
|
+
"types": "./dist/vue/index.d.ts",
|
|
112
|
+
"require": "./dist/cjs/vue/index.js",
|
|
113
|
+
"import": "./dist/esm/vue/index.js"
|
|
114
|
+
},
|
|
115
|
+
"./adapters/vue": {
|
|
116
|
+
"types": "./dist/adapters/vue.d.ts",
|
|
117
|
+
"require": "./dist/cjs/adapters/vue/index.js",
|
|
118
|
+
"import": "./dist/esm/adapters/vue/index.js"
|
|
119
|
+
},
|
|
95
120
|
"./adapters/mobx-react": {
|
|
96
121
|
"types": "./dist/adapters/mobx-react.d.ts",
|
|
97
122
|
"require": "./dist/cjs/adapters/mobx-react/index.js",
|
|
@@ -131,4 +156,4 @@
|
|
|
131
156
|
"main": "dist/cjs/index.js",
|
|
132
157
|
"module": "dist/esm/index.js",
|
|
133
158
|
"types": "dist/core/index.d.ts"
|
|
134
|
-
}
|
|
159
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { defineConfig, devices } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
const csrVariants: Array<{ name: string; scriptName: string }> = [
|
|
4
|
+
{ name: '[React+Mobx]', scriptName: './examples/react mobx' },
|
|
5
|
+
{ name: '[React+Observable]', scriptName: './examples/react observable' },
|
|
6
|
+
{ name: '[Preact+Mobx]', scriptName: './examples/preact mobx' },
|
|
7
|
+
{ name: '[Preact+Observable]', scriptName: './examples/preact observable' },
|
|
8
|
+
{ name: '[Solid+Mobx]', scriptName: './examples/solid mobx' },
|
|
9
|
+
{ name: '[Solid+Observable]', scriptName: './examples/solid observable' },
|
|
10
|
+
{ name: '[Solid+Solid]', scriptName: './examples/solid solid' },
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
const ssrVariants: Array<{ name: string; scriptName: string }> = [
|
|
14
|
+
{ name: '[React+Mobx+SSR]', scriptName: './examples/react ssr-mobx' },
|
|
15
|
+
{ name: '[React+Observable+SSR]', scriptName: './examples/react ssr-observable' },
|
|
16
|
+
{ name: '[Preact+Mobx+SSR]', scriptName: './examples/preact ssr-mobx' },
|
|
17
|
+
{ name: '[Preact+Observable+SSR]', scriptName: './examples/preact ssr-observable' },
|
|
18
|
+
{ name: '[Solid+Mobx+SSR]', scriptName: './examples/solid ssr-mobx' },
|
|
19
|
+
{ name: '[Solid+Observable+SSR]', scriptName: './examples/solid ssr-observable' },
|
|
20
|
+
{ name: '[Solid+Solid+SSR]', scriptName: './examples/solid ssr-solid' },
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const variants: Array<{ name: string; port: number; scriptName: string }> = [
|
|
24
|
+
...csrVariants,
|
|
25
|
+
...ssrVariants,
|
|
26
|
+
].map((variant, i) => ({ ...variant, port: 8002 + i * 2 }));
|
|
27
|
+
|
|
28
|
+
export default defineConfig({
|
|
29
|
+
testDir: './e2e',
|
|
30
|
+
fullyParallel: true,
|
|
31
|
+
forbidOnly: false,
|
|
32
|
+
retries: 0,
|
|
33
|
+
// workers: 10,
|
|
34
|
+
reporter: [['list']],
|
|
35
|
+
webServer: variants.map((variant) => ({
|
|
36
|
+
name: variant.name,
|
|
37
|
+
command: `pnpm --filter ${variant.scriptName} ${variant.port} test`,
|
|
38
|
+
port: variant.port,
|
|
39
|
+
reuseExistingServer: false,
|
|
40
|
+
timeout: 10000,
|
|
41
|
+
cwd: __dirname,
|
|
42
|
+
stdout: 'pipe',
|
|
43
|
+
})),
|
|
44
|
+
projects: variants.map((variant) => ({
|
|
45
|
+
name: variant.name,
|
|
46
|
+
use: {
|
|
47
|
+
baseURL: `http://localhost:${variant.port}`,
|
|
48
|
+
...devices['Desktop Chrome'],
|
|
49
|
+
},
|
|
50
|
+
})),
|
|
51
|
+
globalTeardown: require.resolve('./e2e/teardown'),
|
|
52
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hash": "5a633cf9",
|
|
3
|
+
"configHash": "c2aca7c2",
|
|
4
|
+
"lockfileHash": "81207e34",
|
|
5
|
+
"browserHash": "ffb49e63",
|
|
6
|
+
"optimized": {
|
|
7
|
+
"vue": {
|
|
8
|
+
"src": "../../../../node_modules/.pnpm/vue@3.5.22_typescript@5.9.2/node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
|
9
|
+
"file": "vue.js",
|
|
10
|
+
"fileHash": "acc43dc7",
|
|
11
|
+
"needsInterop": false
|
|
12
|
+
},
|
|
13
|
+
"vitepress > @vue/devtools-api": {
|
|
14
|
+
"src": "../../../../node_modules/.pnpm/@vue+devtools-api@8.0.1/node_modules/@vue/devtools-api/dist/index.js",
|
|
15
|
+
"file": "vitepress___@vue_devtools-api.js",
|
|
16
|
+
"fileHash": "f6e97e3d",
|
|
17
|
+
"needsInterop": false
|
|
18
|
+
},
|
|
19
|
+
"vitepress > @vueuse/core": {
|
|
20
|
+
"src": "../../../../node_modules/.pnpm/@vueuse+core@13.9.0_vue@3.5.22_typescript@5.9.2_/node_modules/@vueuse/core/index.mjs",
|
|
21
|
+
"file": "vitepress___@vueuse_core.js",
|
|
22
|
+
"fileHash": "10a3e7ca",
|
|
23
|
+
"needsInterop": false
|
|
24
|
+
},
|
|
25
|
+
"vitepress > @vueuse/integrations/useFocusTrap": {
|
|
26
|
+
"src": "../../../../node_modules/.pnpm/@vueuse+integrations@13.9.0_focus-trap@7.6.5_vue@3.5.22_typescript@5.9.2_/node_modules/@vueuse/integrations/useFocusTrap.mjs",
|
|
27
|
+
"file": "vitepress___@vueuse_integrations_useFocusTrap.js",
|
|
28
|
+
"fileHash": "a8fdd658",
|
|
29
|
+
"needsInterop": false
|
|
30
|
+
},
|
|
31
|
+
"vitepress > mark.js/src/vanilla.js": {
|
|
32
|
+
"src": "../../../../node_modules/.pnpm/mark.js@8.11.1/node_modules/mark.js/src/vanilla.js",
|
|
33
|
+
"file": "vitepress___mark__js_src_vanilla__js.js",
|
|
34
|
+
"fileHash": "be042848",
|
|
35
|
+
"needsInterop": false
|
|
36
|
+
},
|
|
37
|
+
"vitepress > minisearch": {
|
|
38
|
+
"src": "../../../../node_modules/.pnpm/minisearch@7.1.2/node_modules/minisearch/dist/es/index.js",
|
|
39
|
+
"file": "vitepress___minisearch.js",
|
|
40
|
+
"fileHash": "f4e7a04e",
|
|
41
|
+
"needsInterop": false
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"chunks": {
|
|
45
|
+
"chunk-VGAXUAUJ": {
|
|
46
|
+
"file": "chunk-VGAXUAUJ.js"
|
|
47
|
+
},
|
|
48
|
+
"chunk-FL23S3EK": {
|
|
49
|
+
"file": "chunk-FL23S3EK.js"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|