@vezham/config 0.0.0-stage → 26.0.0-alpha.6

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 (173) hide show
  1. package/LICENSE +173 -0
  2. package/README.md +14 -2
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +0 -0
  6. package/dist/lib/deploy/cli.d.ts +3 -0
  7. package/dist/lib/deploy/cli.d.ts.map +1 -0
  8. package/dist/lib/deploy/cli.js +12 -0
  9. package/dist/lib/deploy/firebase.d.ts +3 -0
  10. package/dist/lib/deploy/firebase.d.ts.map +1 -0
  11. package/dist/lib/deploy/firebase.js +106 -0
  12. package/dist/lib/deploy/index.d.ts +4 -0
  13. package/dist/lib/deploy/index.d.ts.map +1 -0
  14. package/dist/lib/deploy/index.js +42 -0
  15. package/dist/lib/deploy/paths.d.ts +3 -0
  16. package/dist/lib/deploy/paths.d.ts.map +1 -0
  17. package/dist/lib/deploy/paths.js +6 -0
  18. package/dist/lib/deploy/presets.d.ts +5 -0
  19. package/dist/lib/deploy/presets.d.ts.map +1 -0
  20. package/dist/lib/deploy/presets.js +10 -0
  21. package/dist/lib/deploy/types.d.ts +97 -0
  22. package/dist/lib/deploy/types.d.ts.map +1 -0
  23. package/dist/lib/deploy/vercel.d.ts +3 -0
  24. package/dist/lib/deploy/vercel.d.ts.map +1 -0
  25. package/dist/lib/deploy/vercel.js +47 -0
  26. package/dist/lib/framework.d.ts +3 -0
  27. package/dist/lib/framework.d.ts.map +1 -0
  28. package/dist/lib/framework.js +7 -0
  29. package/dist/lib/i18n.d.ts +6 -0
  30. package/dist/lib/i18n.d.ts.map +1 -0
  31. package/dist/lib/i18n.js +11 -0
  32. package/dist/lib/integrations/next/index.d.ts +4 -0
  33. package/dist/lib/integrations/next/index.d.ts.map +1 -0
  34. package/dist/lib/integrations/next/index.js +29 -0
  35. package/dist/lib/integrations/playwright/index.d.ts +11 -0
  36. package/dist/lib/integrations/playwright/index.d.ts.map +1 -0
  37. package/dist/lib/integrations/playwright/index.js +77 -0
  38. package/dist/lib/integrations/playwright/test.d.ts +5 -0
  39. package/dist/lib/integrations/playwright/test.d.ts.map +1 -0
  40. package/dist/lib/integrations/playwright/test.js +23 -0
  41. package/dist/lib/integrations/vite/index.d.ts +12 -0
  42. package/dist/lib/integrations/vite/index.d.ts.map +1 -0
  43. package/dist/lib/integrations/vite/index.js +34 -0
  44. package/dist/lib/integrations/vite-lib/base.d.ts +3 -0
  45. package/dist/lib/integrations/vite-lib/base.d.ts.map +1 -0
  46. package/dist/lib/integrations/vite-lib/base.js +31 -0
  47. package/dist/lib/integrations/vite-lib/index.d.ts +3 -0
  48. package/dist/lib/integrations/vite-lib/index.d.ts.map +1 -0
  49. package/dist/lib/integrations/vite-lib/index.js +42 -0
  50. package/dist/lib/integrations/vite-lib/react.d.ts +3 -0
  51. package/dist/lib/integrations/vite-lib/react.d.ts.map +1 -0
  52. package/dist/lib/integrations/vite-lib/react.js +10 -0
  53. package/dist/lib/integrations/vitest/framework.d.ts +4 -0
  54. package/dist/lib/integrations/vitest/framework.d.ts.map +1 -0
  55. package/dist/lib/integrations/vitest/framework.js +5 -0
  56. package/dist/lib/integrations/vitest/frameworks/docs-plugins.d.ts +3 -0
  57. package/dist/lib/integrations/vitest/frameworks/docs-plugins.d.ts.map +1 -0
  58. package/dist/lib/integrations/vitest/frameworks/docs-plugins.js +27 -0
  59. package/dist/lib/integrations/vitest/frameworks/docs.d.ts +3 -0
  60. package/dist/lib/integrations/vitest/frameworks/docs.d.ts.map +1 -0
  61. package/dist/lib/integrations/vitest/frameworks/docs.js +5 -0
  62. package/dist/lib/integrations/vitest/frameworks/next.d.ts +3 -0
  63. package/dist/lib/integrations/vitest/frameworks/next.d.ts.map +1 -0
  64. package/dist/lib/integrations/vitest/frameworks/next.js +5 -0
  65. package/dist/lib/integrations/vitest/frameworks/react.d.ts +3 -0
  66. package/dist/lib/integrations/vitest/frameworks/react.d.ts.map +1 -0
  67. package/dist/lib/integrations/vitest/frameworks/react.js +5 -0
  68. package/dist/lib/integrations/vitest/index.d.ts +4 -0
  69. package/dist/lib/integrations/vitest/index.d.ts.map +1 -0
  70. package/dist/lib/integrations/vitest/index.js +4 -0
  71. package/dist/lib/integrations/vitest/setup/next.d.ts +2 -0
  72. package/dist/lib/integrations/vitest/setup/next.d.ts.map +1 -0
  73. package/dist/lib/integrations/vitest/setup/next.js +11 -0
  74. package/dist/lib/integrations/vitest/setup/react.d.ts +2 -0
  75. package/dist/lib/integrations/vitest/setup/react.d.ts.map +1 -0
  76. package/dist/lib/integrations/vitest/setup/react.js +36 -0
  77. package/dist/lib/integrations/vitest/shared.d.ts +3 -0
  78. package/dist/lib/integrations/vitest/shared.d.ts.map +1 -0
  79. package/dist/lib/integrations/vitest/shared.js +24 -0
  80. package/dist/lib/metadata/cli.d.ts +3 -0
  81. package/dist/lib/metadata/cli.d.ts.map +1 -0
  82. package/dist/lib/metadata/cli.js +13 -0
  83. package/dist/lib/metadata/env.d.ts +9 -0
  84. package/dist/lib/metadata/env.d.ts.map +1 -0
  85. package/dist/lib/metadata/env.js +36 -0
  86. package/dist/lib/metadata/html.d.ts +3 -0
  87. package/dist/lib/metadata/html.d.ts.map +1 -0
  88. package/dist/lib/metadata/html.js +96 -0
  89. package/dist/lib/metadata/index.d.ts +7 -0
  90. package/dist/lib/metadata/index.d.ts.map +1 -0
  91. package/dist/lib/metadata/index.js +61 -0
  92. package/dist/lib/metadata/next.d.ts +79 -0
  93. package/dist/lib/metadata/next.d.ts.map +1 -0
  94. package/dist/lib/metadata/next.js +106 -0
  95. package/dist/lib/metadata/public.d.ts +3 -0
  96. package/dist/lib/metadata/public.d.ts.map +1 -0
  97. package/dist/lib/metadata/public.js +107 -0
  98. package/dist/lib/metadata/render.d.ts +7 -0
  99. package/dist/lib/metadata/render.d.ts.map +1 -0
  100. package/dist/lib/metadata/render.js +37 -0
  101. package/dist/lib/metadata/runtime.d.ts +68 -0
  102. package/dist/lib/metadata/runtime.d.ts.map +1 -0
  103. package/dist/lib/metadata/runtime.js +134 -0
  104. package/dist/lib/metadata/tanstack.d.ts +71 -0
  105. package/dist/lib/metadata/tanstack.d.ts.map +1 -0
  106. package/dist/lib/metadata/tanstack.js +194 -0
  107. package/dist/lib/metadata/templates/not-found.html +224 -0
  108. package/dist/lib/metadata/templates/offline.html +210 -0
  109. package/dist/lib/metadata/types.d.ts +118 -0
  110. package/dist/lib/metadata/types.d.ts.map +1 -0
  111. package/dist/lib/navigation/app-menu.d.ts +2 -0
  112. package/dist/lib/navigation/app-menu.d.ts.map +1 -0
  113. package/dist/lib/navigation/app-menu.js +45 -0
  114. package/dist/lib/navigation/control-center.d.ts +2 -0
  115. package/dist/lib/navigation/control-center.d.ts.map +1 -0
  116. package/dist/lib/navigation/control-center.js +66 -0
  117. package/dist/lib/navigation/index.d.ts +5 -0
  118. package/dist/lib/navigation/index.d.ts.map +1 -0
  119. package/dist/lib/navigation/index.js +59 -0
  120. package/dist/lib/navigation/toolbar.d.ts +2 -0
  121. package/dist/lib/navigation/toolbar.d.ts.map +1 -0
  122. package/dist/lib/navigation/toolbar.js +78 -0
  123. package/dist/lib/presets/app/index.d.ts +21 -0
  124. package/dist/lib/presets/app/index.d.ts.map +1 -0
  125. package/dist/lib/presets/app/index.js +114 -0
  126. package/dist/lib/presets/cdn/index.d.ts +2 -0
  127. package/dist/lib/presets/cdn/index.d.ts.map +1 -0
  128. package/dist/lib/presets/cdn/index.js +2 -0
  129. package/dist/lib/presets/docs/cli.d.ts +3 -0
  130. package/dist/lib/presets/docs/cli.d.ts.map +1 -0
  131. package/dist/lib/presets/docs/cli.js +18 -0
  132. package/dist/lib/presets/docs/config.d.ts +40 -0
  133. package/dist/lib/presets/docs/config.d.ts.map +1 -0
  134. package/dist/lib/presets/docs/config.js +39 -0
  135. package/dist/lib/presets/docs/files.d.ts +2 -0
  136. package/dist/lib/presets/docs/files.d.ts.map +1 -0
  137. package/dist/lib/presets/docs/files.js +13 -0
  138. package/dist/lib/presets/docs/index.d.ts +7 -0
  139. package/dist/lib/presets/docs/index.d.ts.map +1 -0
  140. package/dist/lib/presets/docs/index.js +6 -0
  141. package/dist/lib/presets/docs/mdx-path.d.ts +7 -0
  142. package/dist/lib/presets/docs/mdx-path.d.ts.map +1 -0
  143. package/dist/lib/presets/docs/mdx-path.js +19 -0
  144. package/dist/lib/presets/docs/og-image.d.ts +9 -0
  145. package/dist/lib/presets/docs/og-image.d.ts.map +1 -0
  146. package/dist/lib/presets/docs/og-image.js +88 -0
  147. package/dist/lib/presets/docs/og-output.d.ts +5 -0
  148. package/dist/lib/presets/docs/og-output.d.ts.map +1 -0
  149. package/dist/lib/presets/docs/og-output.js +34 -0
  150. package/dist/lib/presets/docs/og.d.ts +9 -0
  151. package/dist/lib/presets/docs/og.d.ts.map +1 -0
  152. package/dist/lib/presets/docs/og.js +112 -0
  153. package/dist/lib/presets/docs/openapi.d.ts +3 -0
  154. package/dist/lib/presets/docs/openapi.d.ts.map +1 -0
  155. package/dist/lib/presets/docs/openapi.js +105 -0
  156. package/dist/lib/presets/docs/routes.d.ts +7 -0
  157. package/dist/lib/presets/docs/routes.d.ts.map +1 -0
  158. package/dist/lib/presets/docs/routes.js +109 -0
  159. package/dist/lib/presets/docs/types.d.ts +31 -0
  160. package/dist/lib/presets/docs/types.d.ts.map +1 -0
  161. package/dist/lib/presets/docs/vite.d.ts +11 -0
  162. package/dist/lib/presets/docs/vite.d.ts.map +1 -0
  163. package/dist/lib/presets/docs/vite.js +78 -0
  164. package/dist/lib/presets/files.d.ts +5 -0
  165. package/dist/lib/presets/files.d.ts.map +1 -0
  166. package/dist/lib/presets/files.js +21 -0
  167. package/dist/lib/presets/route-files.d.ts +22 -0
  168. package/dist/lib/presets/route-files.d.ts.map +1 -0
  169. package/dist/lib/presets/route-files.js +49 -0
  170. package/dist/lib/yaml-config.d.ts +2 -0
  171. package/dist/lib/yaml-config.d.ts.map +1 -0
  172. package/dist/lib/yaml-config.js +6 -0
  173. package/package.json +119 -3
@@ -0,0 +1,105 @@
1
+ import { slash, walkFiles, withoutExtension } from "../files.js";
2
+ import { resolveDocsConfig } from "./config.js";
3
+ import { generatedDirectories } from "./files.js";
4
+ import fs from "node:fs";
5
+ import path from "node:path";
6
+ import * as OpenAPI from "@vezham/docs-openapi";
7
+ import { createOpenAPI } from "@vezham/docs-openapi/server";
8
+ //#region src/lib/presets/docs/openapi.ts
9
+ var openapiExtensions = new Set([
10
+ ".json",
11
+ ".yaml",
12
+ ".yml"
13
+ ]);
14
+ var openAPISpecIdFromRelativePath = (relativePath) => {
15
+ const segments = withoutExtension(slash(relativePath)).split("/");
16
+ if (segments[segments.length - 1] === "index") segments.pop();
17
+ return segments.length === 0 ? "openapi" : segments.join("/");
18
+ };
19
+ var assertGeneratedOutput = (docsDir, outputDir) => {
20
+ const relativePath = path.relative(docsDir, outputDir);
21
+ if (relativePath === "" || relativePath.startsWith(`..${path.sep}`) || path.basename(outputDir) !== "(generated)" || !relativePath.startsWith(`openapi${path.sep}`)) throw new Error(`Refusing to clear unexpected generated docs dir: ${outputDir}`);
22
+ };
23
+ var discoverOpenAPISpecs = (projectRoot, docsDir, openapiDirName) => {
24
+ const specs = [];
25
+ const openapiDir = path.join(projectRoot, openapiDirName);
26
+ const folderSpecs = walkFiles(openapiDir).filter((filePath) => openapiExtensions.has(path.extname(filePath))).sort((left, right) => left.localeCompare(right));
27
+ for (const inputPath of folderSpecs) {
28
+ const documentId = openAPISpecIdFromRelativePath(path.relative(openapiDir, inputPath));
29
+ const outputSegments = documentId === "openapi" ? [] : documentId.split("/");
30
+ specs.push({
31
+ documentId,
32
+ inputPath,
33
+ outputDir: path.join(docsDir, "openapi", ...outputSegments, "(generated)")
34
+ });
35
+ }
36
+ const documentIds = /* @__PURE__ */ new Set();
37
+ for (const spec of specs) {
38
+ if (documentIds.has(spec.documentId)) throw new Error(`Duplicate OpenAPI document id: ${spec.documentId}`);
39
+ documentIds.add(spec.documentId);
40
+ }
41
+ return specs;
42
+ };
43
+ var pageNameFromMdx = (fileName, languages) => {
44
+ const withoutMdx = fileName.slice(0, -4);
45
+ for (const language of languages) {
46
+ const suffix = `.${language}`;
47
+ if (withoutMdx.endsWith(suffix)) return withoutMdx.slice(0, -suffix.length);
48
+ }
49
+ return withoutMdx;
50
+ };
51
+ var pagesInDirectory = (dir, languages) => {
52
+ const files = /* @__PURE__ */ new Set();
53
+ const directories = [];
54
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
55
+ if (entry.isFile() && entry.name.endsWith(".mdx")) files.add(pageNameFromMdx(entry.name, languages));
56
+ if (entry.isDirectory()) directories.push(entry.name === "(generated)" ? `...${entry.name}` : entry.name);
57
+ }
58
+ return [...[...files].sort((left, right) => {
59
+ if (left === "index") return -1;
60
+ if (right === "index") return 1;
61
+ return left.localeCompare(right);
62
+ }), ...directories.sort((left, right) => left.localeCompare(right))];
63
+ };
64
+ var synchronizeMetaFiles = (docsDir, outputDirectories, languages) => {
65
+ const metaFiles = new Set(walkFiles(docsDir).filter((filePath) => path.basename(filePath) === "meta.json"));
66
+ for (const outputDirectory of outputDirectories) metaFiles.add(path.join(path.dirname(outputDirectory), "meta.json"));
67
+ for (const metaFile of [...metaFiles].sort()) {
68
+ const pages = pagesInDirectory(path.dirname(metaFile), languages);
69
+ if (pages.length === 0) continue;
70
+ const existingContent = fs.existsSync(metaFile) ? fs.readFileSync(metaFile, "utf8") : void 0;
71
+ const existing = existingContent ? JSON.parse(existingContent) : {};
72
+ const content = `${JSON.stringify({
73
+ ...existing,
74
+ pages
75
+ }, null, 2)}\n`;
76
+ if (existingContent !== content) fs.writeFileSync(metaFile, content);
77
+ }
78
+ };
79
+ var generateDocs = async (projectRoot, config, i18n) => {
80
+ const resolved = resolveDocsConfig(config);
81
+ const docsDir = path.resolve(projectRoot, resolved.docsDir);
82
+ const specs = discoverOpenAPISpecs(projectRoot, docsDir, resolved.openapiDir);
83
+ const generatedRoot = path.join(docsDir, "openapi");
84
+ fs.mkdirSync(docsDir, { recursive: true });
85
+ for (const outputDir of generatedDirectories(generatedRoot)) {
86
+ assertGeneratedOutput(docsDir, outputDir);
87
+ fs.rmSync(outputDir, {
88
+ force: true,
89
+ recursive: true
90
+ });
91
+ }
92
+ await Promise.all(specs.map(async (spec) => {
93
+ assertGeneratedOutput(docsDir, spec.outputDir);
94
+ await OpenAPI.generateFiles({
95
+ input: createOpenAPI({ input: { [spec.documentId]: spec.inputPath } }),
96
+ groupBy: "tag",
97
+ meta: true,
98
+ output: spec.outputDir
99
+ });
100
+ }));
101
+ synchronizeMetaFiles(docsDir, specs.map((spec) => spec.outputDir), i18n.languages);
102
+ return specs.length;
103
+ };
104
+ //#endregion
105
+ export { generateDocs };
@@ -0,0 +1,7 @@
1
+ import { type DocsConfig, type I18nConfig } from './config';
2
+ import { type DocsPrerenderPage, type DocsPrerenderPagesOptions, type DocsStaticPaths, type RouteInput } from './types';
3
+ export declare const getDocsStaticPaths: (projectRoot: string, config: DocsConfig | undefined, i18n: I18nConfig) => DocsStaticPaths;
4
+ export declare const getDocsMirrorRoutes: (routes: RouteInput[]) => string[];
5
+ export declare const getDocsPrerenderPages: (projectRoot: string, config: DocsConfig | undefined, i18n: I18nConfig, { extraPages, includeDocsRoot, includeLocalizedDocsRoots, routes }?: DocsPrerenderPagesOptions) => DocsPrerenderPage[];
6
+ export declare const getPrerenderPages: (projectRoot?: string, options?: DocsPrerenderPagesOptions) => DocsPrerenderPage[];
7
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/lib/presets/docs/routes.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EAGhB,MAAM,UAAU,CAAA;AAEjB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EAEpB,KAAK,UAAU,EAChB,MAAM,SAAS,CAAA;AAwBhB,eAAO,MAAM,kBAAkB,GAC7B,aAAa,MAAM,EACnB,QAAQ,UAAU,YAAK,EACvB,MAAM,UAAU,KACf,eA+BF,CAAA;AAiGD,eAAO,MAAM,mBAAmB,GAAI,QAAQ,UAAU,EAAE,aAQvD,CAAA;AAMD,eAAO,MAAM,qBAAqB,GAChC,aAAa,MAAM,EACnB,QAAQ,UAAU,YAAK,EACvB,MAAM,UAAU,EAChB,qEAKG,yBAA8B,wBA+DlC,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,oBAA2B,EAC3B,UAAS,yBAA8B,wBAQxC,CAAA"}
@@ -0,0 +1,109 @@
1
+ import { unique, walkFiles } from "../files.js";
2
+ import { expandFilesystemRoute, normalizeRoute, routeRootFromGlob } from "../route-files.js";
3
+ import { loadVxDocsConfig, resolveDocsConfig } from "./config.js";
4
+ import { docsPathFromMdx } from "./mdx-path.js";
5
+ import path from "node:path";
6
+ //#region src/lib/presets/docs/routes.ts
7
+ var docsRouteFileOptions = { rootRouteSegments: new Set(["__root__"]) };
8
+ var getNonDefaultLanguages = (i18n) => {
9
+ return i18n.languages.filter((lang) => lang !== i18n.defaultLanguage);
10
+ };
11
+ var getDocsStaticPathsForLocale = (docsDir, docsRoute, i18n, locale) => {
12
+ return unique(walkFiles(docsDir).map((filePath) => docsPathFromMdx(docsDir, docsRoute, i18n, filePath)).filter((entry) => entry?.locale === locale).flatMap((entry) => entry ? [entry.routePath, entry.markdownPath] : []));
13
+ };
14
+ var getDocsStaticPaths = (projectRoot, config = {}, i18n) => {
15
+ const resolved = resolveDocsConfig(config);
16
+ const docsDir = path.resolve(projectRoot, resolved.docsDir);
17
+ const defaultDocsStaticPaths = getDocsStaticPathsForLocale(docsDir, resolved.docsRoute, i18n, i18n.defaultLanguage);
18
+ const openApiStaticPaths = defaultDocsStaticPaths.filter((pagePath) => pagePath.startsWith(`${resolved.docsRoute}/openapi/`));
19
+ return {
20
+ defaultDocsStaticPaths,
21
+ docsShellStaticPaths: defaultDocsStaticPaths.filter((pagePath) => !pagePath.endsWith(".md")),
22
+ docsStaticPathsByLocale: Object.fromEntries(i18n.languages.map((lang) => [lang, unique([...getDocsStaticPathsForLocale(docsDir, resolved.docsRoute, i18n, lang), ...openApiStaticPaths])])),
23
+ openApiStaticPaths
24
+ };
25
+ };
26
+ var shouldWritePrerenderIndex = (pagePath) => {
27
+ return path.extname(pagePath) === "" && !pagePath.startsWith("/api/");
28
+ };
29
+ var isDocsShellPath = (pagePath) => {
30
+ return !pagePath.endsWith(".md");
31
+ };
32
+ var createDocsPrerenderPage = (pagePath) => {
33
+ return {
34
+ path: pagePath,
35
+ prerender: shouldWritePrerenderIndex(pagePath) ? { outputPath: `${pagePath}/index.html` } : void 0
36
+ };
37
+ };
38
+ var normalizeDocsPrerenderPage = (page) => {
39
+ return typeof page === "string" ? createDocsPrerenderPage(page) : page;
40
+ };
41
+ var replaceDocsRoute = (pagePath, docsRoute, nextRoute) => {
42
+ if (pagePath === docsRoute) return nextRoute;
43
+ return pagePath.startsWith(`${docsRoute}/`) ? `${nextRoute}${pagePath.slice(docsRoute.length)}` : pagePath;
44
+ };
45
+ var shouldPrerenderRoute = (route) => {
46
+ return route.prerender !== false;
47
+ };
48
+ var docsMirrorRouteFromRoute = (route) => {
49
+ const routeRoot = routeRootFromGlob(route.path);
50
+ return routeRoot && route.source === "docs" ? routeRoot : void 0;
51
+ };
52
+ var createFilesystemRoutePrerenderPages = (projectRoot, route) => {
53
+ return expandFilesystemRoute(projectRoot, route, docsRouteFileOptions).map((pagePath) => createDocsPrerenderPageFromRoute({
54
+ ...route,
55
+ path: pagePath
56
+ }));
57
+ };
58
+ var shouldGenerateDocsRouteOg = (route) => {
59
+ const hasDocsMirrorGlob = docsMirrorRouteFromRoute(route) !== void 0;
60
+ if (typeof route.og === "object") return false;
61
+ return route.og ?? hasDocsMirrorGlob;
62
+ };
63
+ var assertSupportedRoute = (route) => {
64
+ if (!routeRootFromGlob(route.path) || route.source === "docs" || route.source === "routes") return;
65
+ throw new Error(`Unsupported route source "${route.source ?? "none"}" for glob route "${route.path}". Use source "docs", source "routes", or provide an exact path.`);
66
+ };
67
+ var createDocsPrerenderPageFromRoute = (route) => {
68
+ if (typeof route.prerender === "object" && route.prerender.outputPath) return {
69
+ path: route.path,
70
+ prerender: { outputPath: route.prerender.outputPath }
71
+ };
72
+ return createDocsPrerenderPage(route.path);
73
+ };
74
+ var getDocsMirrorRoutes = (routes) => {
75
+ return unique(routes.map(normalizeRoute).filter(shouldGenerateDocsRouteOg).map(docsMirrorRouteFromRoute).filter((route) => route !== void 0));
76
+ };
77
+ var uniquePrerenderPages = (pages) => {
78
+ return [...new Map(pages.map((page) => [page.path, page])).values()];
79
+ };
80
+ var getDocsPrerenderPages = (projectRoot, config = {}, i18n, { extraPages = [], includeDocsRoot = true, includeLocalizedDocsRoots = true, routes = [] } = {}) => {
81
+ const resolved = resolveDocsConfig(config);
82
+ const { defaultDocsStaticPaths, docsShellStaticPaths, docsStaticPathsByLocale } = getDocsStaticPaths(projectRoot, config, i18n);
83
+ const routeEntries = routes.map(normalizeRoute).filter(shouldPrerenderRoute);
84
+ for (const route of routeEntries) assertSupportedRoute(route);
85
+ const globDocsRoutes = unique([...routeEntries.flatMap((route) => {
86
+ const docsRoute = docsMirrorRouteFromRoute(route);
87
+ return docsRoute ? [docsRoute] : [];
88
+ })]);
89
+ const staticRoutes = routeEntries.filter((route) => !routeRootFromGlob(route.path));
90
+ return uniquePrerenderPages([
91
+ ...includeDocsRoot ? [createDocsPrerenderPage(resolved.docsRoute)] : [],
92
+ ...defaultDocsStaticPaths.map(createDocsPrerenderPage),
93
+ ...globDocsRoutes.flatMap((route) => docsShellStaticPaths.map((pagePath) => createDocsPrerenderPage(replaceDocsRoute(pagePath, resolved.docsRoute, route)))),
94
+ ...getNonDefaultLanguages(i18n).flatMap((lang) => globDocsRoutes.flatMap((route) => docsStaticPathsByLocale[lang].filter(isDocsShellPath).map((pagePath) => createDocsPrerenderPage(`/${lang}${replaceDocsRoute(pagePath, resolved.docsRoute, route)}`)))),
95
+ ...getNonDefaultLanguages(i18n).flatMap((lang) => [...includeLocalizedDocsRoots ? [createDocsPrerenderPage(`/${lang}`), createDocsPrerenderPage(`/${lang}${resolved.docsRoute}`)] : [], ...docsStaticPathsByLocale[lang].map((pagePath) => createDocsPrerenderPage(`/${lang}${pagePath}`))]),
96
+ ...routeEntries.flatMap((route) => createFilesystemRoutePrerenderPages(projectRoot, route)),
97
+ ...staticRoutes.map(createDocsPrerenderPageFromRoute),
98
+ ...extraPages.map(normalizeDocsPrerenderPage)
99
+ ]);
100
+ };
101
+ var getPrerenderPages = (projectRoot = process.cwd(), options = {}) => {
102
+ const { docs, i18n, routes } = loadVxDocsConfig(projectRoot);
103
+ return getDocsPrerenderPages(projectRoot, docs, i18n, {
104
+ ...options,
105
+ routes: [...routes, ...options.routes ?? []]
106
+ });
107
+ };
108
+ //#endregion
109
+ export { getDocsMirrorRoutes, getDocsPrerenderPages, getDocsStaticPaths, getPrerenderPages };
@@ -0,0 +1,31 @@
1
+ export type DocsStaticPaths = {
2
+ defaultDocsStaticPaths: string[];
3
+ docsShellStaticPaths: string[];
4
+ docsStaticPathsByLocale: Record<string, string[]>;
5
+ openApiStaticPaths: string[];
6
+ };
7
+ export type DocsPrerenderPage = {
8
+ path: string;
9
+ prerender?: {
10
+ outputPath: string;
11
+ };
12
+ };
13
+ export type RouteOg = boolean | {
14
+ image?: string;
15
+ };
16
+ export type RouteConfig = {
17
+ og?: RouteOg;
18
+ path: string;
19
+ prerender?: boolean | {
20
+ outputPath?: string;
21
+ };
22
+ source?: 'docs' | 'routes';
23
+ };
24
+ export type RouteInput = RouteConfig | string;
25
+ export type DocsPrerenderPagesOptions = {
26
+ extraPages?: Array<DocsPrerenderPage | string>;
27
+ includeDocsRoot?: boolean;
28
+ includeLocalizedDocsRoots?: boolean;
29
+ routes?: RouteInput[];
30
+ };
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/presets/docs/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,sBAAsB,EAAE,MAAM,EAAE,CAAA;IAChC,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACjD,kBAAkB,EAAE,MAAM,EAAE,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE;QACV,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,OAAO,GACf,OAAO,GACP;IACE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAEL,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EACN,OAAO,GACP;QACE,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACL,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,MAAM,CAAA;AAE7C,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAA;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAA;CACtB,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { type Plugin } from 'vite';
2
+ import { docsMdx as createDocsMdx } from '@vezham/docs-mdx/vite';
3
+ import type { ViteConfigOverrides } from '../../integrations/vite';
4
+ export type DocsMdxMacroImportAliasOptions = {
5
+ rewriteContentBase?: boolean;
6
+ };
7
+ export type DocsMdxOptions = NonNullable<Parameters<typeof createDocsMdx>[0]>;
8
+ export declare const docsMdx: (options?: DocsMdxOptions) => Plugin<any>[];
9
+ export declare const docsMdxMacroImportAlias: (options?: DocsMdxMacroImportAliasOptions) => Plugin;
10
+ export declare const defineConfig: (overrides?: ViteConfigOverrides) => import("vite").UserConfigExport;
11
+ //# sourceMappingURL=vite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../../../../src/lib/presets/docs/vite.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAqC,MAAM,MAAM,CAAA;AAErE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAEhE,OAAO,KAAK,EAAc,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AA4B9E,MAAM,MAAM,8BAA8B,GAAG;IAC3C,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7E,eAAO,MAAM,OAAO,GAAI,UAAS,cAAmB,kBAWnD,CAAA;AAED,eAAO,MAAM,uBAAuB,GAClC,UAAS,8BAAmC,KAC3C,MAsDF,CAAA;AAyDD,eAAO,MAAM,YAAY,GAAI,YAAW,mBAAwB,oCAM5D,CAAA"}
@@ -0,0 +1,78 @@
1
+ import { slash } from "../files.js";
2
+ import { defineConfig as defineConfig$2 } from "../app/index.js";
3
+ import path from "node:path";
4
+ import { mergeConfig } from "vite";
5
+ import { docsMdx } from "@vezham/docs-mdx/vite";
6
+ //#region src/lib/presets/docs/vite.ts
7
+ var docsMdxMacroImport = "@vezham/docs-mdx/macro";
8
+ var docsMdxRuntimeMacroImport = "@vx-oss/docs-mdx/macro";
9
+ var docsMdxGeneratedRuntimeImport = "@vx-oss/docs-mdx/runtime/macro";
10
+ var docsMdxRuntimeImport = "@vezham/docs-mdx/runtime/macro";
11
+ var docsMdxMacroImportPattern = /@vezham\/docs-mdx\/macro|@vx-oss\/docs-mdx\/macro/;
12
+ var docsMdxMacroInclude = [
13
+ "**/*.js",
14
+ "**/*.jsx",
15
+ "**/*.mjs",
16
+ "**/*.ts",
17
+ "**/*.tsx",
18
+ "**/*.mts"
19
+ ];
20
+ var moduleFilePattern = /\.[cm]?[jt]sx?($|\?)/;
21
+ var nodeModulesPattern = /[\\/]node_modules[\\/]/;
22
+ var docsMdx$1 = (options = {}) => {
23
+ return docsMdx({
24
+ ...options,
25
+ macro: options.macro === false ? false : {
26
+ include: docsMdxMacroInclude,
27
+ ...options.macro
28
+ }
29
+ });
30
+ };
31
+ var docsMdxMacroImportAlias = (options = {}) => {
32
+ return {
33
+ name: "@vezham/config:docs-mdx-macro-import-alias",
34
+ enforce: "pre",
35
+ configResolved(config) {
36
+ const contentDir = options.rewriteContentBase ? slash(path.resolve(config.root, "content")) : void 0;
37
+ for (const plugin of config.plugins) {
38
+ if (plugin.name !== "@vx-oss/docs-mdx:macro") continue;
39
+ const transform = typeof plugin.transform === "object" ? plugin.transform : void 0;
40
+ if (!transform?.filter || typeof transform.filter !== "object") continue;
41
+ if (typeof transform.handler !== "function") continue;
42
+ const macroHandler = transform.handler;
43
+ plugin.transform = {
44
+ order: "pre",
45
+ async handler(code, id) {
46
+ if (!moduleFilePattern.test(id) || nodeModulesPattern.test(id) || !docsMdxMacroImportPattern.test(code)) return null;
47
+ return rewriteMacroOutput(await macroHandler.call(this, code.replaceAll(docsMdxMacroImport, docsMdxRuntimeMacroImport), id), contentDir);
48
+ }
49
+ };
50
+ }
51
+ }
52
+ };
53
+ };
54
+ var rewriteMacroOutput = (result, contentDir) => {
55
+ if (typeof result === "string") return rewriteMacroOutputCode(result, contentDir);
56
+ if (typeof result === "object" && result !== null && "code" in result && typeof result.code === "string") return {
57
+ ...result,
58
+ code: rewriteMacroOutputCode(result.code, contentDir)
59
+ };
60
+ return result;
61
+ };
62
+ var rewriteMacroOutputCode = (code, contentDir) => {
63
+ const rewrittenCode = code.replaceAll(docsMdxGeneratedRuntimeImport, docsMdxRuntimeImport);
64
+ if (!contentDir) return rewrittenCode;
65
+ return rewrittenCode.replaceAll("\"base\": \"./../../content/", `"base": "${contentDir}/`);
66
+ };
67
+ var docsViteDefaults = {
68
+ plugins: [docsMdxMacroImportAlias()],
69
+ resolve: {
70
+ alias: { "@vx-oss/docs-mdx/macro": "@vezham/docs-mdx/macro" },
71
+ dedupe: ["@vezham/docs-core", "@vezham/docs-react"]
72
+ }
73
+ };
74
+ var defineConfig$1 = (overrides = {}) => defineConfig$2(async (env) => {
75
+ return mergeConfig(docsViteDefaults, typeof overrides === "function" ? await overrides(env) : overrides);
76
+ });
77
+ //#endregion
78
+ export { defineConfig$1 as defineConfig, docsMdx$1 as docsMdx, docsMdxMacroImportAlias };
@@ -0,0 +1,5 @@
1
+ export declare const unique: <T>(values: T[]) => T[];
2
+ export declare const slash: (value: string) => string;
3
+ export declare const walkFiles: (dir: string) => string[];
4
+ export declare const withoutExtension: (filePath: string) => string;
5
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/lib/presets/files.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,QAEpC,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,WAElC,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,MAAM,EAU7C,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,WAEhD,CAAA"}
@@ -0,0 +1,21 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ //#region src/lib/presets/files.ts
4
+ var unique = (values) => {
5
+ return [...new Set(values)];
6
+ };
7
+ var slash = (value) => {
8
+ return value.split(path.sep).join("/");
9
+ };
10
+ var walkFiles = (dir) => {
11
+ if (!fs.existsSync(dir)) return [];
12
+ return fs.readdirSync(dir, { withFileTypes: true }).flatMap((entry) => {
13
+ const entryPath = path.join(dir, entry.name);
14
+ return entry.isDirectory() ? walkFiles(entryPath) : [entryPath];
15
+ });
16
+ };
17
+ var withoutExtension = (filePath) => {
18
+ return filePath.slice(0, -path.extname(filePath).length);
19
+ };
20
+ //#endregion
21
+ export { slash, unique, walkFiles, withoutExtension };
@@ -0,0 +1,22 @@
1
+ type RouteFileOptions = {
2
+ emptyRoutePath?: string;
3
+ rootRouteSegments: ReadonlySet<string>;
4
+ stripLazySuffix?: boolean;
5
+ };
6
+ type RouteLike = {
7
+ path: string;
8
+ };
9
+ type FilesystemRoute = RouteLike & {
10
+ source?: string;
11
+ prerender?: boolean | {
12
+ outputPath?: string;
13
+ };
14
+ };
15
+ export declare const routeRootFromGlob: (pagePath: string) => string | undefined;
16
+ export declare const normalizeRoute: <Route extends RouteLike>(route: Route | string) => {
17
+ path: string;
18
+ };
19
+ export declare const routePathFromFile: (routesDir: string, filePath: string, { emptyRoutePath, rootRouteSegments, stripLazySuffix }: RouteFileOptions) => string | undefined;
20
+ export declare const expandFilesystemRoute: (projectRoot: string, route: FilesystemRoute, options: RouteFileOptions) => string[];
21
+ export {};
22
+ //# sourceMappingURL=route-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-files.d.ts","sourceRoot":"","sources":["../../../src/lib/presets/route-files.ts"],"names":[],"mappings":"AAIA,KAAK,gBAAgB,GAAG;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACtC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,eAAe,GAAG,SAAS,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,GAAG;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9C,CAAA;AAgBD,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,uBAMjD,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,KAAK,SAAS,SAAS,EACpD,OAAO,KAAK,GAAG,MAAM;;CAGtB,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,wDAAwD,gBAAgB,uBAgCzE,CAAA;AAqBD,eAAO,MAAM,qBAAqB,GAChC,aAAa,MAAM,EACnB,OAAO,eAAe,EACtB,SAAS,gBAAgB,aAa1B,CAAA"}
@@ -0,0 +1,49 @@
1
+ import { slash, unique, walkFiles, withoutExtension } from "./files.js";
2
+ import path from "node:path";
3
+ //#region src/lib/presets/route-files.ts
4
+ var routeFileExtensions = new Set([
5
+ ".js",
6
+ ".jsx",
7
+ ".ts",
8
+ ".tsx"
9
+ ]);
10
+ var decodeRouteSegment = (segment) => {
11
+ return segment.split("[.]").join(".");
12
+ };
13
+ var isPathlessRouteSegment = (segment) => {
14
+ return segment.startsWith("(") && segment.endsWith(")");
15
+ };
16
+ var isDynamicRouteSegment = (segment) => {
17
+ return segment === "$" || segment.includes("$") || segment.includes("{");
18
+ };
19
+ var routeRootFromGlob = (pagePath) => {
20
+ return pagePath.endsWith("/**") ? pagePath.slice(0, -3) : void 0;
21
+ };
22
+ var normalizeRoute = (route) => {
23
+ return typeof route === "string" ? { path: route } : route;
24
+ };
25
+ var routePathFromFile = (routesDir, filePath, { emptyRoutePath, rootRouteSegments, stripLazySuffix }) => {
26
+ if (!routeFileExtensions.has(path.extname(filePath))) return;
27
+ const segments = withoutExtension(slash(path.relative(routesDir, filePath))).split("/").filter((segment) => !rootRouteSegments.has(segment));
28
+ if (stripLazySuffix && segments[segments.length - 1]?.endsWith(".lazy")) {
29
+ const index = segments.length - 1;
30
+ segments[index] = segments[index].slice(0, -5);
31
+ }
32
+ const lastSegment = segments[segments.length - 1];
33
+ if (lastSegment === "index" || lastSegment === "route") segments.pop();
34
+ const routeSegments = segments.filter((segment) => !isPathlessRouteSegment(segment)).map(decodeRouteSegment);
35
+ if (routeSegments.some(isDynamicRouteSegment)) return;
36
+ return routeSegments.length === 0 ? emptyRoutePath : `/${routeSegments.join("/")}`;
37
+ };
38
+ var getStaticFilesystemRoutes = (projectRoot, routeRoot, options) => {
39
+ const routesDir = path.join(projectRoot, "src/routes");
40
+ return unique(walkFiles(routesDir).map((filePath) => routePathFromFile(routesDir, filePath, options)).filter((routePath) => routePath !== void 0).filter((routePath) => routePath === routeRoot || routePath.startsWith(`${routeRoot}/`)).sort((left, right) => left.localeCompare(right)));
41
+ };
42
+ var expandFilesystemRoute = (projectRoot, route, options) => {
43
+ const routeRoot = routeRootFromGlob(route.path);
44
+ if (!routeRoot || route.source !== "routes") return [];
45
+ if (typeof route.prerender === "object" && route.prerender.outputPath) throw new Error(`Unsupported prerender outputPath for filesystem route glob "${route.path}". Use exact paths for custom output paths.`);
46
+ return getStaticFilesystemRoutes(projectRoot, routeRoot, options);
47
+ };
48
+ //#endregion
49
+ export { expandFilesystemRoute, normalizeRoute, routePathFromFile, routeRootFromGlob };
@@ -0,0 +1,2 @@
1
+ export declare const readYamlConfig: <T>(file: string) => T;
2
+ //# sourceMappingURL=yaml-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml-config.d.ts","sourceRoot":"","sources":["../../src/lib/yaml-config.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,MAAM,MAAM,KAAG,CACT,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { parse } from "yaml";
3
+ //#region src/lib/yaml-config.ts
4
+ var readYamlConfig = (file) => parse(readFileSync(file, "utf8"));
5
+ //#endregion
6
+ export { readYamlConfig };
package/package.json CHANGED
@@ -1,6 +1,122 @@
1
1
  {
2
2
  "name": "@vezham/config",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "26.0.0-alpha.6",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "git+https://github.com/vezham/vx-fe-pkgs.git",
7
+ "directory": "packages/config"
8
+ },
9
+ "sideEffects": [
10
+ "./dist/lib/integrations/vitest/setup/*.js"
11
+ ],
12
+ "type": "module",
13
+ "exports": {
14
+ "./vite": {
15
+ "types": "./dist/lib/integrations/vite/index.d.ts",
16
+ "import": "./dist/lib/integrations/vite/index.js",
17
+ "default": "./dist/lib/integrations/vite/index.js"
18
+ },
19
+ "./next": {
20
+ "types": "./dist/lib/integrations/next/index.d.ts",
21
+ "import": "./dist/lib/integrations/next/index.js",
22
+ "default": "./dist/lib/integrations/next/index.js"
23
+ },
24
+ "./vitest": {
25
+ "types": "./dist/lib/integrations/vitest/index.d.ts",
26
+ "import": "./dist/lib/integrations/vitest/index.js",
27
+ "default": "./dist/lib/integrations/vitest/index.js"
28
+ },
29
+ "./vitest/react": {
30
+ "types": "./dist/lib/integrations/vitest/frameworks/react.d.ts",
31
+ "import": "./dist/lib/integrations/vitest/frameworks/react.js",
32
+ "default": "./dist/lib/integrations/vitest/frameworks/react.js"
33
+ },
34
+ "./vitest/next": {
35
+ "types": "./dist/lib/integrations/vitest/frameworks/next.d.ts",
36
+ "import": "./dist/lib/integrations/vitest/frameworks/next.js",
37
+ "default": "./dist/lib/integrations/vitest/frameworks/next.js"
38
+ },
39
+ "./vitest/docs": {
40
+ "types": "./dist/lib/integrations/vitest/frameworks/docs.d.ts",
41
+ "import": "./dist/lib/integrations/vitest/frameworks/docs.js",
42
+ "default": "./dist/lib/integrations/vitest/frameworks/docs.js"
43
+ },
44
+ "./playwright": {
45
+ "types": "./dist/lib/integrations/playwright/index.d.ts",
46
+ "import": "./dist/lib/integrations/playwright/index.js",
47
+ "default": "./dist/lib/integrations/playwright/index.js"
48
+ },
49
+ "./playwright/test": {
50
+ "types": "./dist/lib/integrations/playwright/test.d.ts",
51
+ "import": "./dist/lib/integrations/playwright/test.js",
52
+ "default": "./dist/lib/integrations/playwright/test.js"
53
+ },
54
+ "./presets/app": {
55
+ "types": "./dist/lib/presets/app/index.d.ts",
56
+ "import": "./dist/lib/presets/app/index.js",
57
+ "default": "./dist/lib/presets/app/index.js"
58
+ },
59
+ "./presets/cdn": {
60
+ "types": "./dist/lib/presets/cdn/index.d.ts",
61
+ "import": "./dist/lib/presets/cdn/index.js",
62
+ "default": "./dist/lib/presets/cdn/index.js"
63
+ },
64
+ "./presets/docs": {
65
+ "types": "./dist/lib/presets/docs/index.d.ts",
66
+ "import": "./dist/lib/presets/docs/index.js",
67
+ "default": "./dist/lib/presets/docs/index.js"
68
+ },
69
+ "./metadata": {
70
+ "types": "./dist/lib/metadata/index.d.ts",
71
+ "import": "./dist/lib/metadata/index.js",
72
+ "default": "./dist/lib/metadata/index.js"
73
+ },
74
+ "./deploy": {
75
+ "types": "./dist/lib/deploy/index.d.ts",
76
+ "import": "./dist/lib/deploy/index.js",
77
+ "default": "./dist/lib/deploy/index.js"
78
+ },
79
+ "./vite-lib": {
80
+ "types": "./dist/lib/integrations/vite-lib/index.d.ts",
81
+ "import": "./dist/lib/integrations/vite-lib/index.js",
82
+ "default": "./dist/lib/integrations/vite-lib/index.js"
83
+ },
84
+ "./vite-lib/react": {
85
+ "types": "./dist/lib/integrations/vite-lib/react.d.ts",
86
+ "import": "./dist/lib/integrations/vite-lib/react.js",
87
+ "default": "./dist/lib/integrations/vite-lib/react.js"
88
+ },
89
+ ".": {
90
+ "types": "./dist/index.d.ts",
91
+ "import": "./dist/index.js",
92
+ "default": "./dist/index.js"
93
+ },
94
+ "./package.json": "./package.json",
95
+ "./vitest/setup/react": {
96
+ "types": "./dist/lib/integrations/vitest/setup/react.d.ts",
97
+ "import": "./dist/lib/integrations/vitest/setup/react.js",
98
+ "default": "./dist/lib/integrations/vitest/setup/react.js"
99
+ },
100
+ "./vitest/setup/next": {
101
+ "types": "./dist/lib/integrations/vitest/setup/next.d.ts",
102
+ "import": "./dist/lib/integrations/vitest/setup/next.js",
103
+ "default": "./dist/lib/integrations/vitest/setup/next.js"
104
+ }
105
+ },
106
+ "main": "./dist/index.js",
107
+ "module": "./dist/index.js",
108
+ "types": "./dist/index.d.ts",
109
+ "bin": {
110
+ "vezham-deploy": "./dist/lib/deploy/cli.js",
111
+ "vezham-docs": "./dist/lib/presets/docs/cli.js",
112
+ "vezham-metadata": "./dist/lib/metadata/cli.js"
113
+ },
114
+ "files": [
115
+ "!**/*.tsbuildinfo",
116
+ "dist",
117
+ "LICENSE"
118
+ ],
119
+ "dependencies": {
120
+ "yaml": "2.9.1"
121
+ }
6
122
  }