@vezham/config 26.0.0-alpha.5 → 26.0.0-alpha.7

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.
Files changed (169) hide show
  1. package/README.md +14 -0
  2. package/dist/lib/deploy/cli.d.ts +3 -0
  3. package/dist/lib/deploy/cli.d.ts.map +1 -0
  4. package/dist/lib/deploy/cli.js +12 -0
  5. package/dist/lib/deploy/firebase.d.ts +3 -0
  6. package/dist/lib/deploy/firebase.d.ts.map +1 -0
  7. package/dist/lib/deploy/firebase.js +106 -0
  8. package/dist/lib/deploy/index.d.ts +4 -0
  9. package/dist/lib/deploy/index.d.ts.map +1 -0
  10. package/dist/lib/deploy/index.js +42 -0
  11. package/dist/lib/deploy/paths.d.ts +3 -0
  12. package/dist/lib/deploy/paths.d.ts.map +1 -0
  13. package/dist/lib/deploy/paths.js +6 -0
  14. package/dist/lib/deploy/presets.d.ts +5 -0
  15. package/dist/lib/deploy/presets.d.ts.map +1 -0
  16. package/dist/lib/deploy/presets.js +10 -0
  17. package/dist/lib/deploy/types.d.ts +97 -0
  18. package/dist/lib/deploy/types.d.ts.map +1 -0
  19. package/dist/lib/deploy/vercel.d.ts +3 -0
  20. package/dist/lib/deploy/vercel.d.ts.map +1 -0
  21. package/dist/lib/deploy/vercel.js +47 -0
  22. package/dist/lib/framework.d.ts +3 -0
  23. package/dist/lib/framework.d.ts.map +1 -0
  24. package/dist/lib/framework.js +7 -0
  25. package/dist/lib/i18n.d.ts +6 -0
  26. package/dist/lib/i18n.d.ts.map +1 -0
  27. package/dist/lib/i18n.js +11 -0
  28. package/dist/lib/integrations/next/index.d.ts +4 -0
  29. package/dist/lib/integrations/next/index.d.ts.map +1 -0
  30. package/dist/lib/integrations/next/index.js +29 -0
  31. package/dist/lib/integrations/playwright/index.d.ts +11 -0
  32. package/dist/lib/integrations/playwright/index.d.ts.map +1 -0
  33. package/dist/lib/integrations/playwright/index.js +77 -0
  34. package/dist/lib/integrations/playwright/test.d.ts +5 -0
  35. package/dist/lib/integrations/playwright/test.d.ts.map +1 -0
  36. package/dist/lib/integrations/playwright/test.js +23 -0
  37. package/dist/lib/integrations/vite/index.d.ts +12 -0
  38. package/dist/lib/integrations/vite/index.d.ts.map +1 -0
  39. package/dist/lib/integrations/vite/index.js +34 -0
  40. package/dist/lib/integrations/vite-lib/base.d.ts +3 -0
  41. package/dist/lib/integrations/vite-lib/base.d.ts.map +1 -0
  42. package/dist/lib/integrations/vite-lib/base.js +31 -0
  43. package/dist/lib/integrations/vite-lib/index.d.ts +3 -0
  44. package/dist/lib/integrations/vite-lib/index.d.ts.map +1 -0
  45. package/dist/lib/integrations/vite-lib/index.js +50 -0
  46. package/dist/lib/integrations/vite-lib/react.d.ts +3 -0
  47. package/dist/lib/integrations/vite-lib/react.d.ts.map +1 -0
  48. package/dist/lib/integrations/vite-lib/react.js +10 -0
  49. package/dist/lib/integrations/vitest/framework.d.ts +4 -0
  50. package/dist/lib/integrations/vitest/framework.d.ts.map +1 -0
  51. package/dist/lib/integrations/vitest/framework.js +5 -0
  52. package/dist/lib/integrations/vitest/frameworks/docs-plugins.d.ts +3 -0
  53. package/dist/lib/integrations/vitest/frameworks/docs-plugins.d.ts.map +1 -0
  54. package/dist/lib/integrations/vitest/frameworks/docs-plugins.js +27 -0
  55. package/dist/lib/integrations/vitest/frameworks/docs.d.ts +3 -0
  56. package/dist/lib/integrations/vitest/frameworks/docs.d.ts.map +1 -0
  57. package/dist/lib/integrations/vitest/frameworks/docs.js +5 -0
  58. package/dist/lib/integrations/vitest/frameworks/next.d.ts +3 -0
  59. package/dist/lib/integrations/vitest/frameworks/next.d.ts.map +1 -0
  60. package/dist/lib/integrations/vitest/frameworks/next.js +5 -0
  61. package/dist/lib/integrations/vitest/frameworks/react.d.ts +3 -0
  62. package/dist/lib/integrations/vitest/frameworks/react.d.ts.map +1 -0
  63. package/dist/lib/integrations/vitest/frameworks/react.js +5 -0
  64. package/dist/lib/integrations/vitest/index.d.ts +4 -0
  65. package/dist/lib/integrations/vitest/index.d.ts.map +1 -0
  66. package/dist/lib/integrations/vitest/index.js +4 -0
  67. package/dist/lib/integrations/vitest/setup/next.d.ts +2 -0
  68. package/dist/lib/integrations/vitest/setup/next.d.ts.map +1 -0
  69. package/dist/lib/integrations/vitest/setup/next.js +11 -0
  70. package/dist/lib/integrations/vitest/setup/react.d.ts +2 -0
  71. package/dist/lib/integrations/vitest/setup/react.d.ts.map +1 -0
  72. package/dist/lib/integrations/vitest/setup/react.js +36 -0
  73. package/dist/lib/integrations/vitest/shared.d.ts +3 -0
  74. package/dist/lib/integrations/vitest/shared.d.ts.map +1 -0
  75. package/dist/lib/integrations/vitest/shared.js +24 -0
  76. package/dist/lib/metadata/cli.d.ts +3 -0
  77. package/dist/lib/metadata/cli.d.ts.map +1 -0
  78. package/dist/lib/metadata/cli.js +13 -0
  79. package/dist/lib/metadata/env.d.ts +9 -0
  80. package/dist/lib/metadata/env.d.ts.map +1 -0
  81. package/dist/lib/metadata/env.js +36 -0
  82. package/dist/lib/metadata/html.d.ts +3 -0
  83. package/dist/lib/metadata/html.d.ts.map +1 -0
  84. package/dist/lib/metadata/html.js +96 -0
  85. package/dist/lib/metadata/index.d.ts +7 -0
  86. package/dist/lib/metadata/index.d.ts.map +1 -0
  87. package/dist/lib/metadata/index.js +61 -0
  88. package/dist/lib/metadata/next.d.ts +79 -0
  89. package/dist/lib/metadata/next.d.ts.map +1 -0
  90. package/dist/lib/metadata/next.js +106 -0
  91. package/dist/lib/metadata/public.d.ts +3 -0
  92. package/dist/lib/metadata/public.d.ts.map +1 -0
  93. package/dist/lib/metadata/public.js +107 -0
  94. package/dist/lib/metadata/render.d.ts +7 -0
  95. package/dist/lib/metadata/render.d.ts.map +1 -0
  96. package/dist/lib/metadata/render.js +37 -0
  97. package/dist/lib/metadata/runtime.d.ts +68 -0
  98. package/dist/lib/metadata/runtime.d.ts.map +1 -0
  99. package/dist/lib/metadata/runtime.js +134 -0
  100. package/dist/lib/metadata/tanstack.d.ts +71 -0
  101. package/dist/lib/metadata/tanstack.d.ts.map +1 -0
  102. package/dist/lib/metadata/tanstack.js +194 -0
  103. package/dist/lib/metadata/templates/not-found.html +224 -0
  104. package/dist/lib/metadata/templates/offline.html +210 -0
  105. package/dist/lib/metadata/types.d.ts +118 -0
  106. package/dist/lib/metadata/types.d.ts.map +1 -0
  107. package/dist/lib/navigation/app-menu.d.ts +2 -0
  108. package/dist/lib/navigation/app-menu.d.ts.map +1 -0
  109. package/dist/lib/navigation/app-menu.js +45 -0
  110. package/dist/lib/navigation/control-center.d.ts +2 -0
  111. package/dist/lib/navigation/control-center.d.ts.map +1 -0
  112. package/dist/lib/navigation/control-center.js +66 -0
  113. package/dist/lib/navigation/index.d.ts +5 -0
  114. package/dist/lib/navigation/index.d.ts.map +1 -0
  115. package/dist/lib/navigation/index.js +59 -0
  116. package/dist/lib/navigation/toolbar.d.ts +2 -0
  117. package/dist/lib/navigation/toolbar.d.ts.map +1 -0
  118. package/dist/lib/navigation/toolbar.js +78 -0
  119. package/dist/lib/presets/app/index.d.ts +21 -0
  120. package/dist/lib/presets/app/index.d.ts.map +1 -0
  121. package/dist/lib/presets/app/index.js +114 -0
  122. package/dist/lib/presets/cdn/index.d.ts +2 -0
  123. package/dist/lib/presets/cdn/index.d.ts.map +1 -0
  124. package/dist/lib/presets/cdn/index.js +2 -0
  125. package/dist/lib/presets/docs/cli.d.ts +3 -0
  126. package/dist/lib/presets/docs/cli.d.ts.map +1 -0
  127. package/dist/lib/presets/docs/cli.js +18 -0
  128. package/dist/lib/presets/docs/config.d.ts +40 -0
  129. package/dist/lib/presets/docs/config.d.ts.map +1 -0
  130. package/dist/lib/presets/docs/config.js +39 -0
  131. package/dist/lib/presets/docs/files.d.ts +2 -0
  132. package/dist/lib/presets/docs/files.d.ts.map +1 -0
  133. package/dist/lib/presets/docs/files.js +13 -0
  134. package/dist/lib/presets/docs/index.d.ts +7 -0
  135. package/dist/lib/presets/docs/index.d.ts.map +1 -0
  136. package/dist/lib/presets/docs/index.js +6 -0
  137. package/dist/lib/presets/docs/mdx-path.d.ts +7 -0
  138. package/dist/lib/presets/docs/mdx-path.d.ts.map +1 -0
  139. package/dist/lib/presets/docs/mdx-path.js +19 -0
  140. package/dist/lib/presets/docs/og-image.d.ts +9 -0
  141. package/dist/lib/presets/docs/og-image.d.ts.map +1 -0
  142. package/dist/lib/presets/docs/og-image.js +88 -0
  143. package/dist/lib/presets/docs/og-output.d.ts +5 -0
  144. package/dist/lib/presets/docs/og-output.d.ts.map +1 -0
  145. package/dist/lib/presets/docs/og-output.js +34 -0
  146. package/dist/lib/presets/docs/og.d.ts +9 -0
  147. package/dist/lib/presets/docs/og.d.ts.map +1 -0
  148. package/dist/lib/presets/docs/og.js +112 -0
  149. package/dist/lib/presets/docs/openapi.d.ts +3 -0
  150. package/dist/lib/presets/docs/openapi.d.ts.map +1 -0
  151. package/dist/lib/presets/docs/openapi.js +105 -0
  152. package/dist/lib/presets/docs/routes.d.ts +7 -0
  153. package/dist/lib/presets/docs/routes.d.ts.map +1 -0
  154. package/dist/lib/presets/docs/routes.js +109 -0
  155. package/dist/lib/presets/docs/types.d.ts +31 -0
  156. package/dist/lib/presets/docs/types.d.ts.map +1 -0
  157. package/dist/lib/presets/docs/vite.d.ts +11 -0
  158. package/dist/lib/presets/docs/vite.d.ts.map +1 -0
  159. package/dist/lib/presets/docs/vite.js +78 -0
  160. package/dist/lib/presets/files.d.ts +5 -0
  161. package/dist/lib/presets/files.d.ts.map +1 -0
  162. package/dist/lib/presets/files.js +21 -0
  163. package/dist/lib/presets/route-files.d.ts +22 -0
  164. package/dist/lib/presets/route-files.d.ts.map +1 -0
  165. package/dist/lib/presets/route-files.js +49 -0
  166. package/dist/lib/yaml-config.d.ts +2 -0
  167. package/dist/lib/yaml-config.d.ts.map +1 -0
  168. package/dist/lib/yaml-config.js +6 -0
  169. package/package.json +99 -4
package/README.md CHANGED
@@ -1 +1,15 @@
1
1
  # @vezham/config
2
+
3
+ Build, test, metadata, navigation, and deployment presets.
4
+
5
+ Import presets directly from package subpaths, such as
6
+ `@vezham/config/vite` and `@vezham/config/vitest/react`.
7
+
8
+ Package builds use `defineConfig` from `@vezham/config/vite-lib`, or
9
+ `@vezham/config/vite-lib/react` for React packages. Both presets discover source
10
+ entries from package exports and CLI entries, preserve ES modules, keep
11
+ package dependencies external, copy CSS and HTML assets, and generate declarations.
12
+
13
+ Workspace entry points load TypeScript source before the first build. Publishing
14
+ replaces those entries with compiled ESM and declarations; the workspace loader
15
+ and its dependencies are not included in the npm output.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/cli.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ import { generateDeployConfig } from "./index.js";
3
+ //#region src/lib/deploy/cli.ts
4
+ var [, , command = "generate", projectRoot = process.cwd()] = process.argv;
5
+ if (command === "generate") {
6
+ const files = generateDeployConfig({ projectRoot });
7
+ console.log(`Generated ${files.length} deploy files for ${projectRoot}`);
8
+ } else {
9
+ console.error(`Unknown deploy command "${command}". Use "generate".`);
10
+ process.exitCode = 1;
11
+ }
12
+ //#endregion
@@ -0,0 +1,3 @@
1
+ import type { DeployFile, VxAppConfig, VxDeployConfig } from './types';
2
+ export declare const getFirebaseDeployFile: (workspaceRoot: string, projectRoot: string, appConfig: VxAppConfig, deployConfig: VxDeployConfig) => DeployFile;
3
+ //# sourceMappingURL=firebase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firebase.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/firebase.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,UAAU,EAQV,WAAW,EACX,cAAc,EACf,MAAM,SAAS,CAAA;AAiMhB,eAAO,MAAM,qBAAqB,GAChC,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,WAAW,WAAW,EACtB,cAAc,cAAc,KAC3B,UAWF,CAAA"}
@@ -0,0 +1,106 @@
1
+ import { normalizePath, resolveProjectPath } from "./paths.js";
2
+ import { cdnRewrites } from "./presets.js";
3
+ import path from "node:path";
4
+ //#region src/lib/deploy/firebase.ts
5
+ var cacheHeader = (source, value) => ({
6
+ source,
7
+ headers: [{
8
+ key: "Cache-Control",
9
+ value
10
+ }]
11
+ });
12
+ var unique = (values) => [...new Set(values)];
13
+ var firebaseDeployPresets = {
14
+ cdn: {
15
+ public: "dist",
16
+ rewrites: cdnRewrites
17
+ },
18
+ spa: {
19
+ public: "dist",
20
+ fallback: "/index.html"
21
+ },
22
+ "start-spa": {
23
+ public: ".output/public",
24
+ fallback: "/_shell.html"
25
+ }
26
+ };
27
+ var defaultFirebaseDeployPreset = firebaseDeployPresets["start-spa"];
28
+ var getFirebaseDeployPreset = (preset) => {
29
+ if (!preset) return defaultFirebaseDeployPreset;
30
+ if (preset === "next" || preset === "tanstack-start") throw new Error(`The "${preset}" deploy preset supports Vercel only`);
31
+ return firebaseDeployPresets[preset];
32
+ };
33
+ var getDefaultFirebaseHeaders = (appConfig, options = {}, fallback) => {
34
+ const { app = true, docs = Boolean(appConfig.docs), routes = true, static: staticAssets = true } = options;
35
+ const docsRoute = appConfig.docs?.docsRoute ?? "/docs";
36
+ const localizedDocsRoutes = (appConfig.i18n?.languages ?? []).filter((language) => language !== appConfig.i18n?.defaultLanguage).flatMap((language) => {
37
+ const localizedDocsRoute = `/${language}${docsRoute}`;
38
+ return [localizedDocsRoute, `${localizedDocsRoute.replace(/\/$/, "")}/**`];
39
+ });
40
+ const routeSources = unique([
41
+ ...app ? ["/"] : [],
42
+ ...docs ? [
43
+ docsRoute,
44
+ `${docsRoute.replace(/\/$/, "")}/**`,
45
+ ...localizedDocsRoutes
46
+ ] : [],
47
+ ...routes ? (appConfig.routes ?? []).map((route) => route.path).filter((route) => route.startsWith("/api")) : []
48
+ ].filter(Boolean));
49
+ return [...staticAssets ? [
50
+ cacheHeader("/sw.js", "no-cache,no-store,must-revalidate"),
51
+ cacheHeader("/manifest.webmanifest", "public,max-age=300"),
52
+ ...fallback ? [cacheHeader(fallback, "public,max-age=300")] : [],
53
+ cacheHeader("/assets/**", "public,max-age=31536000,immutable"),
54
+ cacheHeader("**/*.@(html|json|txt|md)", "public,max-age=300")
55
+ ] : [], ...routeSources.map((source) => cacheHeader(source, "public,max-age=300"))];
56
+ };
57
+ var getDefaultLanguageRedirects = (appConfig) => {
58
+ const defaultLanguage = appConfig.i18n?.defaultLanguage;
59
+ return defaultLanguage ? [{
60
+ source: `/${defaultLanguage}`,
61
+ destination: "/",
62
+ type: 301
63
+ }, {
64
+ source: `/${defaultLanguage}/:path*`,
65
+ destination: "/:path",
66
+ type: 301
67
+ }] : [];
68
+ };
69
+ var resolveFirebasePublicDir = (workspaceRoot, projectRoot, publicDir = ".output/public") => {
70
+ const resolvedPublicDir = path.isAbsolute(publicDir) ? publicDir : path.join(projectRoot, publicDir);
71
+ return normalizePath(path.relative(workspaceRoot, resolvedPublicDir));
72
+ };
73
+ var getFirebaseConfig = (workspaceRoot, projectRoot, appConfig, deployConfig) => {
74
+ const firebase = deployConfig.firebase ?? {};
75
+ const preset = getFirebaseDeployPreset(deployConfig.preset);
76
+ const headers = firebase.headers === false ? void 0 : Array.isArray(firebase.headers) ? firebase.headers : getDefaultFirebaseHeaders(appConfig, firebase.headers, preset.fallback);
77
+ const redirects = [...firebase.redirects ?? [], ...deployConfig.redirectDefaultLanguage ? getDefaultLanguageRedirects(appConfig) : []];
78
+ const rewrites = firebase.rewrites === false ? void 0 : firebase.rewrites ?? preset.rewrites ?? (preset.fallback ? [{
79
+ source: "**",
80
+ destination: preset.fallback
81
+ }] : void 0);
82
+ return { hosting: {
83
+ public: resolveFirebasePublicDir(workspaceRoot, projectRoot, firebase.public ?? preset.public),
84
+ ignore: firebase.ignore ?? [
85
+ "firebase.json",
86
+ "**/.*",
87
+ "**/node_modules/**",
88
+ "**/*.d.ts",
89
+ "**/*.d.ts.map",
90
+ "**/*.tsbuildinfo"
91
+ ],
92
+ cleanUrls: firebase.cleanUrls ?? true,
93
+ ...headers ? { headers } : {},
94
+ ...redirects.length > 0 ? { redirects } : {},
95
+ ...rewrites ? { rewrites } : {}
96
+ } };
97
+ };
98
+ var getFirebaseDeployFile = (workspaceRoot, projectRoot, appConfig, deployConfig) => {
99
+ const projectPath = resolveProjectPath(workspaceRoot, projectRoot);
100
+ return {
101
+ path: path.join(workspaceRoot, "vx/deploy/firebase", `${projectPath}.json`),
102
+ content: `${JSON.stringify(getFirebaseConfig(workspaceRoot, projectRoot, appConfig, deployConfig), null, 2)}\n`
103
+ };
104
+ };
105
+ //#endregion
106
+ export { getFirebaseDeployFile };
@@ -0,0 +1,4 @@
1
+ import type { GenerateDeployConfigOptions } from './types';
2
+ export type { GenerateDeployConfigOptions } from './types';
3
+ export declare const generateDeployConfig: (options?: GenerateDeployConfigOptions) => string[];
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,2BAA2B,EAG5B,MAAM,SAAS,CAAA;AAGhB,YAAY,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAA;AAwD1D,eAAO,MAAM,oBAAoB,GAC/B,UAAS,2BAAgC,aAoB1C,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { readYamlConfig } from "../yaml-config.js";
2
+ import { getFirebaseDeployFile } from "./firebase.js";
3
+ import { getVercelDeployFile } from "./vercel.js";
4
+ import { existsSync, mkdirSync, writeFileSync } from "node:fs";
5
+ import path from "node:path";
6
+ //#region src/lib/deploy/index.ts
7
+ var writeDeployFile = ({ path: file, content }) => {
8
+ mkdirSync(path.dirname(file), { recursive: true });
9
+ writeFileSync(file, content);
10
+ };
11
+ var findWorkspaceRoot = (projectRoot) => {
12
+ let currentDir = path.resolve(projectRoot);
13
+ while (true) {
14
+ if (existsSync(path.join(currentDir, "nx.json"))) return currentDir;
15
+ const parentDir = path.dirname(currentDir);
16
+ if (parentDir === currentDir) return process.cwd();
17
+ currentDir = parentDir;
18
+ }
19
+ };
20
+ var loadYamlConfig = (projectRoot, fileName) => {
21
+ const configFile = path.resolve(projectRoot, fileName);
22
+ return existsSync(configFile) ? readYamlConfig(configFile) : void 0;
23
+ };
24
+ var getDeployFiles = (appConfig, deployConfig, projectRoot) => {
25
+ const workspaceRoot = findWorkspaceRoot(projectRoot);
26
+ return deployConfig.providers.map((provider) => {
27
+ if (provider === "firebase") return getFirebaseDeployFile(workspaceRoot, projectRoot, appConfig, deployConfig);
28
+ if (provider === "vercel") return getVercelDeployFile(workspaceRoot, projectRoot, deployConfig);
29
+ throw new Error(`Unsupported deploy provider "${provider}"`);
30
+ });
31
+ };
32
+ var generateDeployConfig = (options = {}) => {
33
+ const projectRoot = path.resolve(options.projectRoot ?? process.cwd());
34
+ const appConfig = loadYamlConfig(projectRoot, "vx.app.yaml");
35
+ const deployConfig = loadYamlConfig(projectRoot, "vx.deploy.yaml");
36
+ if (!appConfig || !deployConfig) return [];
37
+ const files = getDeployFiles(appConfig, deployConfig, projectRoot);
38
+ for (const file of files) writeDeployFile(file);
39
+ return files.map((file) => file.path);
40
+ };
41
+ //#endregion
42
+ export { generateDeployConfig };
@@ -0,0 +1,3 @@
1
+ export declare const normalizePath: (value: string) => string;
2
+ export declare const resolveProjectPath: (workspaceRoot: string, projectRoot: string) => string;
3
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/paths.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,WAAoC,CAAA;AAE/E,eAAO,MAAM,kBAAkB,GAC7B,eAAe,MAAM,EACrB,aAAa,MAAM,WACwC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import path from "node:path";
2
+ //#region src/lib/deploy/paths.ts
3
+ var normalizePath = (value) => value.split(path.sep).join("/");
4
+ var resolveProjectPath = (workspaceRoot, projectRoot) => normalizePath(path.relative(workspaceRoot, projectRoot));
5
+ //#endregion
6
+ export { normalizePath, resolveProjectPath };
@@ -0,0 +1,5 @@
1
+ export declare const cdnRewrites: {
2
+ source: string;
3
+ destination: string;
4
+ }[];
5
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/presets.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW;;;GASvB,CAAA"}
@@ -0,0 +1,10 @@
1
+ //#region src/lib/deploy/presets.ts
2
+ var cdnRewrites = [{
3
+ source: "/api/heartbeat",
4
+ destination: "/api/heartbeat.json"
5
+ }, {
6
+ source: "/api/pulse",
7
+ destination: "/api/pulse.txt"
8
+ }];
9
+ //#endregion
10
+ export { cdnRewrites };
@@ -0,0 +1,97 @@
1
+ export type HostingProvider = 'firebase' | 'vercel';
2
+ /**
3
+ * Deployment shapes are provider-specific: static Firebase Hosting, or SSR on
4
+ * Vercel. Choose the preset for the application runtime and routing model.
5
+ */
6
+ export type DeployPreset = 'cdn' | 'spa' | 'start-spa' | 'next' | 'tanstack-start';
7
+ export type FirebaseDeployPresetName = Exclude<DeployPreset, 'next' | 'tanstack-start'>;
8
+ export type VxDeployConfig = {
9
+ preset?: DeployPreset;
10
+ providers: HostingProvider[];
11
+ redirectDefaultLanguage?: boolean;
12
+ firebase?: FirebaseDeployConfig;
13
+ vercel?: VercelDeployConfig;
14
+ };
15
+ export type VxAppConfig = {
16
+ docs?: {
17
+ docsRoute?: string;
18
+ };
19
+ i18n?: {
20
+ defaultLanguage: string;
21
+ languages: string[];
22
+ };
23
+ routes?: RouteConfig[];
24
+ };
25
+ export type RouteConfig = {
26
+ path: string;
27
+ source?: string;
28
+ };
29
+ export type FirebaseDeployConfig = {
30
+ cleanUrls?: boolean;
31
+ headers?: false | FirebaseHeader[] | FirebaseHeaderOptions;
32
+ ignore?: string[];
33
+ public?: string;
34
+ redirects?: FirebaseRedirect[];
35
+ rewrites?: false | FirebaseRewrite[];
36
+ };
37
+ export type FirebaseHeaderOptions = {
38
+ app?: boolean;
39
+ docs?: boolean;
40
+ routes?: boolean;
41
+ static?: boolean;
42
+ };
43
+ export type FirebaseHeader = {
44
+ source: string;
45
+ headers: Array<{
46
+ key: string;
47
+ value: string;
48
+ }>;
49
+ };
50
+ export type FirebaseRedirect = {
51
+ source: string;
52
+ destination: string;
53
+ type: number;
54
+ };
55
+ export type FirebaseRewrite = {
56
+ source: string;
57
+ destination: string;
58
+ };
59
+ export type FirebaseConfig = {
60
+ hosting: {
61
+ public: string;
62
+ ignore: string[];
63
+ cleanUrls?: boolean;
64
+ headers?: FirebaseHeader[];
65
+ redirects?: FirebaseRedirect[];
66
+ rewrites?: FirebaseRewrite[];
67
+ };
68
+ };
69
+ export type VercelDeployConfig = {
70
+ buildCommand?: string;
71
+ };
72
+ export type VercelFramework = 'nextjs' | 'tanstack-start' | 'vite' | null;
73
+ export type VercelConfig = {
74
+ $schema: string;
75
+ buildCommand?: string;
76
+ framework: VercelFramework;
77
+ outputDirectory?: string;
78
+ rewrites?: FirebaseRewrite[];
79
+ };
80
+ export type FirebaseDeployPreset = {
81
+ public: string;
82
+ fallback?: string;
83
+ rewrites?: FirebaseRewrite[];
84
+ };
85
+ export type VercelDeployPreset = {
86
+ framework: VercelFramework;
87
+ outputDirectory?: string;
88
+ rewrites?: FirebaseRewrite[];
89
+ };
90
+ export type GenerateDeployConfigOptions = {
91
+ projectRoot?: string;
92
+ };
93
+ export type DeployFile = {
94
+ path: string;
95
+ content: string;
96
+ };
97
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,CAAA;AAEnD;;;GAGG;AACH,MAAM,MAAM,YAAY,GACtB,KAAK,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,GAAG,gBAAgB,CAAA;AAEzD,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAC5C,YAAY,EACZ,MAAM,GAAG,gBAAgB,CAC1B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,SAAS,EAAE,eAAe,EAAE,CAAA;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,EAAE,oBAAoB,CAAA;IAC/B,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,IAAI,CAAC,EAAE;QACL,eAAe,EAAE,MAAM,CAAA;QACvB,SAAS,EAAE,MAAM,EAAE,CAAA;KACpB,CAAA;IACD,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,KAAK,GAAG,cAAc,EAAE,GAAG,qBAAqB,CAAA;IAC1D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC9B,QAAQ,CAAC,EAAE,KAAK,GAAG,eAAe,EAAE,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,KAAK,CAAC;QACb,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,MAAM,CAAA;KACd,CAAC,CAAA;CACH,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAA;QAC1B,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAA;QAC9B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;KAC7B,CAAA;CACF,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAAA;AAEzE,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,eAAe,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,eAAe,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { DeployFile, VxDeployConfig } from './types';
2
+ export declare const getVercelDeployFile: (workspaceRoot: string, projectRoot: string, deployConfig: VxDeployConfig) => DeployFile;
3
+ //# sourceMappingURL=vercel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/vercel.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,UAAU,EAIV,cAAc,EACf,MAAM,SAAS,CAAA;AAsBhB,eAAO,MAAM,mBAAmB,GAC9B,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,cAAc,cAAc,KAC3B,UAqBF,CAAA"}
@@ -0,0 +1,47 @@
1
+ import { resolveProjectPath } from "./paths.js";
2
+ import { cdnRewrites } from "./presets.js";
3
+ import path from "node:path";
4
+ //#region src/lib/deploy/vercel.ts
5
+ var vercelDeployPresets = {
6
+ cdn: {
7
+ framework: "vite",
8
+ outputDirectory: "dist",
9
+ rewrites: cdnRewrites
10
+ },
11
+ spa: {
12
+ framework: "vite",
13
+ outputDirectory: "dist",
14
+ rewrites: [{
15
+ source: "/(.*)",
16
+ destination: "/index.html"
17
+ }]
18
+ },
19
+ "start-spa": {
20
+ framework: null,
21
+ outputDirectory: ".output/public",
22
+ rewrites: [{
23
+ source: "/(.*)",
24
+ destination: "/_shell.html"
25
+ }]
26
+ },
27
+ next: { framework: "nextjs" },
28
+ "tanstack-start": { framework: "tanstack-start" }
29
+ };
30
+ var getVercelDeployFile = (workspaceRoot, projectRoot, deployConfig) => {
31
+ const projectPath = resolveProjectPath(workspaceRoot, projectRoot);
32
+ const vercel = deployConfig.vercel ?? {};
33
+ const preset = deployConfig.preset ? vercelDeployPresets[deployConfig.preset] : vercelDeployPresets["start-spa"];
34
+ const config = {
35
+ $schema: "https://openapi.vercel.sh/vercel.json",
36
+ framework: preset.framework,
37
+ ...preset.outputDirectory ? { outputDirectory: preset.outputDirectory } : {},
38
+ ...preset.rewrites ? { rewrites: preset.rewrites } : {},
39
+ ...vercel.buildCommand ? { buildCommand: vercel.buildCommand } : {}
40
+ };
41
+ return {
42
+ path: path.join(workspaceRoot, "vx/deploy/vercel", `${projectPath}.json`),
43
+ content: `${JSON.stringify(config, null, 2)}\n`
44
+ };
45
+ };
46
+ //#endregion
47
+ export { getVercelDeployFile };
@@ -0,0 +1,3 @@
1
+ export type Framework = 'vite' | 'tanstack' | 'tanstack-docs' | 'next';
2
+ export declare const validateFramework: (value: unknown) => Framework;
3
+ //# sourceMappingURL=framework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../src/lib/framework.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,eAAe,GAAG,MAAM,CAAA;AAEtE,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,SAWlD,CAAA"}
@@ -0,0 +1,7 @@
1
+ //#region src/lib/framework.ts
2
+ var validateFramework = (value) => {
3
+ if (value === "vite" || value === "tanstack" || value === "tanstack-docs" || value === "next") return value;
4
+ throw new Error("vx.app.yaml framework must be vite, tanstack, tanstack-docs, or next");
5
+ };
6
+ //#endregion
7
+ export { validateFramework };
@@ -0,0 +1,6 @@
1
+ export type I18nConfig = {
2
+ defaultLanguage: string;
3
+ languages: string[];
4
+ };
5
+ export declare const resolveI18n: (i18n?: I18nConfig) => I18nConfig;
6
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/lib/i18n.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,UAAU,KAAG,UAQ/C,CAAA"}
@@ -0,0 +1,11 @@
1
+ //#region src/lib/i18n.ts
2
+ var resolveI18n = (i18n) => {
3
+ const defaultLanguage = i18n?.defaultLanguage ?? "en";
4
+ const configuredLanguages = i18n?.languages ?? [];
5
+ return {
6
+ defaultLanguage,
7
+ languages: configuredLanguages.includes(defaultLanguage) ? configuredLanguages : [...configuredLanguages, defaultLanguage]
8
+ };
9
+ };
10
+ //#endregion
11
+ export { resolveI18n };
@@ -0,0 +1,4 @@
1
+ import type { WithNxOptions } from '@nx/next/plugins/with-nx';
2
+ export type NextConfig = WithNxOptions;
3
+ export declare const defineConfig: (overrides?: NextConfig) => import("@nx/next/src/utils/config").NextConfigFn;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/integrations/next/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE7D,MAAM,MAAM,UAAU,GAAG,aAAa,CAAA;AAYtC,eAAO,MAAM,YAAY,GAAI,YAAW,UAAe,qDAmBtD,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { workspaceRoot } from "@nx/devkit";
2
+ import { composePlugins, withNx } from "@nx/next";
3
+ //#region src/lib/integrations/next/index.ts
4
+ var defaults = {
5
+ nx: {},
6
+ typescript: { tsconfigPath: "tsconfig.app.json" },
7
+ turbopack: { root: workspaceRoot }
8
+ };
9
+ var defineConfig = (overrides = {}) => {
10
+ const config = {
11
+ ...defaults,
12
+ ...overrides,
13
+ nx: {
14
+ ...defaults.nx,
15
+ ...overrides.nx
16
+ },
17
+ typescript: {
18
+ ...defaults.typescript,
19
+ ...overrides.typescript
20
+ },
21
+ turbopack: {
22
+ ...defaults.turbopack,
23
+ ...overrides.turbopack
24
+ }
25
+ };
26
+ return composePlugins(withNx)(config);
27
+ };
28
+ //#endregion
29
+ export { defineConfig };
@@ -0,0 +1,11 @@
1
+ import type { PlaywrightTestConfig } from '@playwright/test';
2
+ type WebServerConfig = Exclude<NonNullable<PlaywrightTestConfig['webServer']>, unknown[]>;
3
+ export type PlaywrightConfig = Omit<PlaywrightTestConfig, 'webServer'> & {
4
+ webServer: WebServerConfig;
5
+ };
6
+ /**
7
+ * See https://playwright.dev/docs/test-configuration.
8
+ */
9
+ export declare const defineConfig: (configFile: string, config: PlaywrightConfig) => PlaywrightTestConfig<{}, {}>;
10
+ export {};
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/integrations/playwright/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAS5D,KAAK,eAAe,GAAG,OAAO,CAC5B,WAAW,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,EAC9C,OAAO,EAAE,CACV,CAAA;AAMD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,GAAG;IACvE,SAAS,EAAE,eAAe,CAAA;CAC3B,CAAA;AAqCD;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,EAAE,QAAQ,gBAAgB,iCAmCxE,CAAA"}
@@ -0,0 +1,77 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { workspaceRoot } from "@nx/devkit";
4
+ import { nxE2EPreset } from "@nx/playwright/preset";
5
+ import { defineConfig as defineConfig$1, devices } from "@playwright/test";
6
+ import { parseEnv } from "node:util";
7
+ //#region src/lib/integrations/playwright/index.ts
8
+ var isCI = Boolean(process.env.CI);
9
+ var testTimeout = isCI ? 18e4 : 12e4;
10
+ var webServerTimeout = isCI ? 4e5 : 3e5;
11
+ var defaultProjects = [
12
+ {
13
+ name: "chromium",
14
+ use: { ...devices["Desktop Chrome"] }
15
+ },
16
+ {
17
+ name: "firefox",
18
+ use: { ...devices["Desktop Firefox"] }
19
+ },
20
+ {
21
+ name: "webkit",
22
+ use: { ...devices["Desktop Safari"] }
23
+ },
24
+ {
25
+ name: "Microsoft Edge",
26
+ use: {
27
+ ...devices["Desktop Edge"],
28
+ channel: "msedge"
29
+ }
30
+ },
31
+ {
32
+ name: "Google Chrome",
33
+ use: {
34
+ ...devices["Desktop Chrome"],
35
+ channel: "chrome"
36
+ }
37
+ },
38
+ {
39
+ name: "Mobile Chrome",
40
+ use: { ...devices["Pixel 5"] }
41
+ },
42
+ {
43
+ name: "Mobile Safari",
44
+ use: { ...devices["iPhone 12"] }
45
+ }
46
+ ];
47
+ /**
48
+ * See https://playwright.dev/docs/test-configuration.
49
+ */
50
+ var defineConfig = (configFile, config) => {
51
+ const envFile = join(dirname(configFile), ".env");
52
+ const env = existsSync(envFile) ? parseEnv(readFileSync(envFile, "utf8")) : {};
53
+ const port = process.env.PRE_PORT || env.PRE_PORT || 8080;
54
+ const baseURL = process.env.BASE_URL || env.BASE_URL || `http://localhost:${port}`;
55
+ const { projects, use, webServer, ...restConfig } = config;
56
+ return defineConfig$1({
57
+ ...nxE2EPreset(configFile, { testDir: "./src" }),
58
+ timeout: testTimeout,
59
+ workers: 1,
60
+ ...restConfig,
61
+ use: {
62
+ baseURL,
63
+ trace: "on-first-retry",
64
+ ...use
65
+ },
66
+ webServer: {
67
+ url: baseURL,
68
+ timeout: webServerTimeout,
69
+ reuseExistingServer: !isCI && process.env.PLAYWRIGHT_REUSE_SERVER !== "false",
70
+ cwd: workspaceRoot,
71
+ ...webServer
72
+ },
73
+ projects: projects ?? defaultProjects
74
+ });
75
+ };
76
+ //#endregion
77
+ export { defineConfig };
@@ -0,0 +1,5 @@
1
+ export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & {
2
+ browserHealth: void;
3
+ }, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
4
+ export { expect } from '@playwright/test';
5
+ //# sourceMappingURL=test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../src/lib/integrations/playwright/test.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI;mBAAgC,IAAI;wGAyCnD,CAAA;AAEF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { expect, expect as expect$1, test as test$1 } from "@playwright/test";
2
+ //#region src/lib/integrations/playwright/test.ts
3
+ var test = test$1.extend({ browserHealth: [async ({ page }, use) => {
4
+ const runtimeErrors = [];
5
+ const consoleErrors = [];
6
+ const notFoundDocuments = /* @__PURE__ */ new Set();
7
+ page.on("pageerror", (error) => runtimeErrors.push(error.message));
8
+ page.on("console", (message) => {
9
+ if (message.type() === "error") consoleErrors.push({
10
+ text: message.text(),
11
+ url: message.location().url
12
+ });
13
+ });
14
+ page.on("response", (response) => {
15
+ const request = response.request();
16
+ if (response.status() === 404 && request.isNavigationRequest() && request.frame() === page.mainFrame()) notFoundDocuments.add(response.url());
17
+ });
18
+ await use();
19
+ const unexpectedErrors = consoleErrors.filter((error) => !(notFoundDocuments.has(error.url) && /^Failed to load resource: the server responded with a status of 404(?: \((?:Not Found)?\))?$/.test(error.text)));
20
+ expect$1([...runtimeErrors, ...unexpectedErrors.map((error) => error.text)]).toEqual([]);
21
+ }, { auto: true }] });
22
+ //#endregion
23
+ export { expect, test };
@@ -0,0 +1,12 @@
1
+ import type { ConfigEnv, UserConfig, UserConfigExport } from 'vite';
2
+ export declare const getProjectPackageName: (projectRoot?: string) => string;
3
+ export declare const getViteCacheDir: (projectRoot?: string) => string;
4
+ export type ViteConfig = UserConfig & {
5
+ test?: Record<string, unknown>;
6
+ };
7
+ export type ViteConfigFactory = (env: ConfigEnv) => ViteConfig | Promise<ViteConfig>;
8
+ export type ViteConfigOverrides = ViteConfig | ViteConfigFactory;
9
+ export declare const getViteConfig: (projectRoot?: string) => ViteConfig;
10
+ export declare const createViteConfig: (getDefaults: (projectRoot: string, env: ConfigEnv) => ViteConfig, overrides?: ViteConfigOverrides) => UserConfigExport;
11
+ export declare const defineConfig: (overrides?: ViteConfigOverrides) => UserConfigExport;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/integrations/vite/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAA;AAgBnE,eAAO,MAAM,qBAAqB,GAAI,oBAA2B,WAYhE,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,oBAA2B,WAKxD,CAAA;AAEH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC9B,GAAG,EAAE,SAAS,KACX,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAErC,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,iBAAiB,CAAA;AAEhE,eAAO,MAAM,aAAa,GAAI,oBAA2B,KAAG,UAI1D,CAAA;AAEF,eAAO,MAAM,gBAAgB,GAC3B,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,KAAK,UAAU,EAChE,YAAW,mBAAwB,KAClC,gBAYC,CAAA;AAEJ,eAAO,MAAM,YAAY,GAAI,YAAW,mBAAwB,qBACpB,CAAA"}