@vezham/start 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 (140) hide show
  1. package/README.md +2 -0
  2. package/dist/lib/layouts/app/index.d.ts +15 -0
  3. package/dist/lib/layouts/app/index.d.ts.map +1 -0
  4. package/dist/lib/layouts/app/index.js +44 -0
  5. package/dist/lib/layouts/docs/components.d.ts +4 -0
  6. package/dist/lib/layouts/docs/components.d.ts.map +1 -0
  7. package/dist/lib/layouts/docs/components.js +29 -0
  8. package/dist/lib/layouts/docs/index.d.ts +3 -0
  9. package/dist/lib/layouts/docs/index.d.ts.map +1 -0
  10. package/dist/lib/layouts/docs/index.js +2 -0
  11. package/dist/lib/layouts/docs/layout-components.d.ts +9 -0
  12. package/dist/lib/layouts/docs/layout-components.d.ts.map +1 -0
  13. package/dist/lib/layouts/docs/layout-components.js +81 -0
  14. package/dist/lib/layouts/docs/layouts.d.ts +6 -0
  15. package/dist/lib/layouts/docs/layouts.d.ts.map +1 -0
  16. package/dist/lib/layouts/docs/layouts.js +11 -0
  17. package/dist/lib/layouts/docs/page-actions.d.ts +4 -0
  18. package/dist/lib/layouts/docs/page-actions.d.ts.map +1 -0
  19. package/dist/lib/layouts/docs/page-actions.js +154 -0
  20. package/dist/lib/layouts/docs/page-actions.variants.d.ts +44 -0
  21. package/dist/lib/layouts/docs/page-actions.variants.d.ts.map +1 -0
  22. package/dist/lib/layouts/docs/page-actions.variants.js +17 -0
  23. package/dist/lib/layouts/docs/page-content.d.ts +11 -0
  24. package/dist/lib/layouts/docs/page-content.d.ts.map +1 -0
  25. package/dist/lib/layouts/docs/page-content.js +13 -0
  26. package/dist/lib/layouts/docs/pages.d.ts +57 -0
  27. package/dist/lib/layouts/docs/pages.d.ts.map +1 -0
  28. package/dist/lib/layouts/docs/pages.js +36 -0
  29. package/dist/lib/layouts/docs/types.d.ts +21 -0
  30. package/dist/lib/layouts/docs/types.d.ts.map +1 -0
  31. package/dist/lib/mdx/index.d.ts +26 -0
  32. package/dist/lib/mdx/index.d.ts.map +1 -0
  33. package/dist/lib/mdx/index.js +10 -0
  34. package/dist/lib/pages/docs/openapi/index.d.ts +2 -0
  35. package/dist/lib/pages/docs/openapi/index.d.ts.map +1 -0
  36. package/dist/lib/pages/docs/openapi/index.js +5 -0
  37. package/dist/lib/pages/docs/route/index.d.ts +35 -0
  38. package/dist/lib/pages/docs/route/index.d.ts.map +1 -0
  39. package/dist/lib/pages/docs/route/index.js +59 -0
  40. package/dist/lib/provider/next/config.d.ts +3 -0
  41. package/dist/lib/provider/next/config.d.ts.map +1 -0
  42. package/dist/lib/provider/next/config.js +6 -0
  43. package/dist/lib/provider/next/index.d.ts +3 -0
  44. package/dist/lib/provider/next/index.d.ts.map +1 -0
  45. package/dist/lib/provider/next/index.js +3 -0
  46. package/dist/lib/provider/next/provider.d.ts +3 -0
  47. package/dist/lib/provider/next/provider.d.ts.map +1 -0
  48. package/dist/lib/provider/next/provider.js +24 -0
  49. package/dist/lib/provider/next/root-document.d.ts +3 -0
  50. package/dist/lib/provider/next/root-document.d.ts.map +1 -0
  51. package/dist/lib/provider/next/root-document.js +27 -0
  52. package/dist/lib/provider/shared/config.d.ts +4 -0
  53. package/dist/lib/provider/shared/config.d.ts.map +1 -0
  54. package/dist/lib/provider/shared/config.js +10 -0
  55. package/dist/lib/provider/shared/devtools.d.ts +10 -0
  56. package/dist/lib/provider/shared/devtools.d.ts.map +1 -0
  57. package/dist/lib/provider/shared/devtools.js +24 -0
  58. package/dist/lib/provider/shared/provider.d.ts +13 -0
  59. package/dist/lib/provider/shared/provider.d.ts.map +1 -0
  60. package/dist/lib/provider/shared/provider.js +40 -0
  61. package/dist/lib/provider/shared/types.d.ts +32 -0
  62. package/dist/lib/provider/shared/types.d.ts.map +1 -0
  63. package/dist/lib/provider/shared/types.js +4 -0
  64. package/dist/lib/provider/tanstack/config.d.ts +4 -0
  65. package/dist/lib/provider/tanstack/config.d.ts.map +1 -0
  66. package/dist/lib/provider/tanstack/config.js +11 -0
  67. package/dist/lib/provider/tanstack/index.d.ts +4 -0
  68. package/dist/lib/provider/tanstack/index.d.ts.map +1 -0
  69. package/dist/lib/provider/tanstack/index.js +4 -0
  70. package/dist/lib/provider/tanstack/provider.d.ts +3 -0
  71. package/dist/lib/provider/tanstack/provider.d.ts.map +1 -0
  72. package/dist/lib/provider/tanstack/provider.js +22 -0
  73. package/dist/lib/provider/tanstack/root-document.d.ts +8 -0
  74. package/dist/lib/provider/tanstack/root-document.d.ts.map +1 -0
  75. package/dist/lib/provider/tanstack/root-document.js +28 -0
  76. package/dist/lib/provider/tanstack-docs/config.d.ts +14 -0
  77. package/dist/lib/provider/tanstack-docs/config.d.ts.map +1 -0
  78. package/dist/lib/provider/tanstack-docs/config.js +39 -0
  79. package/dist/lib/provider/tanstack-docs/i18n.d.ts +4 -0
  80. package/dist/lib/provider/tanstack-docs/i18n.d.ts.map +1 -0
  81. package/dist/lib/provider/tanstack-docs/i18n.js +30 -0
  82. package/dist/lib/provider/tanstack-docs/index.d.ts +5 -0
  83. package/dist/lib/provider/tanstack-docs/index.d.ts.map +1 -0
  84. package/dist/lib/provider/tanstack-docs/index.js +5 -0
  85. package/dist/lib/provider/tanstack-docs/routes.d.ts +13 -0
  86. package/dist/lib/provider/tanstack-docs/routes.d.ts.map +1 -0
  87. package/dist/lib/provider/tanstack-docs/routes.js +23 -0
  88. package/dist/lib/provider/tanstack-docs/search.d.ts +4 -0
  89. package/dist/lib/provider/tanstack-docs/search.d.ts.map +1 -0
  90. package/dist/lib/provider/tanstack-docs/search.js +24 -0
  91. package/dist/lib/provider/vite/config.d.ts +3 -0
  92. package/dist/lib/provider/vite/config.d.ts.map +1 -0
  93. package/dist/lib/provider/vite/config.js +29 -0
  94. package/dist/lib/provider/vite/index.d.ts +4 -0
  95. package/dist/lib/provider/vite/index.d.ts.map +1 -0
  96. package/dist/lib/provider/vite/index.js +4 -0
  97. package/dist/lib/provider/vite/provider.d.ts +3 -0
  98. package/dist/lib/provider/vite/provider.d.ts.map +1 -0
  99. package/dist/lib/provider/vite/provider.js +13 -0
  100. package/dist/lib/router/tanstack/index.d.ts +3 -0
  101. package/dist/lib/router/tanstack/index.d.ts.map +1 -0
  102. package/dist/lib/router/tanstack/index.js +3 -0
  103. package/dist/lib/router/tanstack/root.d.ts +3 -0
  104. package/dist/lib/router/tanstack/root.d.ts.map +1 -0
  105. package/dist/lib/router/tanstack/root.js +22 -0
  106. package/dist/lib/router/tanstack/router.d.ts +3 -0
  107. package/dist/lib/router/tanstack/router.d.ts.map +1 -0
  108. package/dist/lib/router/tanstack/router.js +22 -0
  109. package/dist/lib/runtime/docs/head.d.ts +46 -0
  110. package/dist/lib/runtime/docs/head.d.ts.map +1 -0
  111. package/dist/lib/runtime/docs/head.js +80 -0
  112. package/dist/lib/runtime/docs/i18n.d.ts +33 -0
  113. package/dist/lib/runtime/docs/i18n.d.ts.map +1 -0
  114. package/dist/lib/runtime/docs/i18n.js +41 -0
  115. package/dist/lib/runtime/docs/icons.d.ts +26 -0
  116. package/dist/lib/runtime/docs/icons.d.ts.map +1 -0
  117. package/dist/lib/runtime/docs/icons.js +103 -0
  118. package/dist/lib/runtime/docs/index.d.ts +9 -0
  119. package/dist/lib/runtime/docs/index.d.ts.map +1 -0
  120. package/dist/lib/runtime/docs/index.js +9 -0
  121. package/dist/lib/runtime/docs/openapi.d.ts +41 -0
  122. package/dist/lib/runtime/docs/openapi.d.ts.map +1 -0
  123. package/dist/lib/runtime/docs/openapi.js +40 -0
  124. package/dist/lib/runtime/docs/pages.d.ts +98 -0
  125. package/dist/lib/runtime/docs/pages.d.ts.map +1 -0
  126. package/dist/lib/runtime/docs/pages.js +89 -0
  127. package/dist/lib/runtime/docs/routes.d.ts +17 -0
  128. package/dist/lib/runtime/docs/routes.d.ts.map +1 -0
  129. package/dist/lib/runtime/docs/routes.js +45 -0
  130. package/dist/lib/runtime/docs/runtime.d.ts +185 -0
  131. package/dist/lib/runtime/docs/runtime.d.ts.map +1 -0
  132. package/dist/lib/runtime/docs/runtime.js +55 -0
  133. package/dist/lib/runtime/docs/static.d.ts +16 -0
  134. package/dist/lib/runtime/docs/static.d.ts.map +1 -0
  135. package/dist/lib/runtime/docs/static.js +20 -0
  136. package/dist/lib/story/index.d.ts +2 -0
  137. package/dist/lib/story/index.d.ts.map +1 -0
  138. package/dist/lib/story/index.js +5 -0
  139. package/dist/styles/docs/index.css +2 -0
  140. package/package.json +78 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/runtime/docs/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { createDocsI18n, getDefaultLocaleRedirectHref, isDefaultLocaleParam, isOptionalLocaleParam, localizeRouteBase, localizedRouteParam, localizedUrl, normalizeLocale } from "./i18n.js";
2
+ import { createDocsIconResolver, defaultDocsIconAssetBaseUrl, docsIconsPlugin, docsMetaSchema, docsPageSchema, toDocsIconName } from "./icons.js";
3
+ import { createOpenAPIFromSources, getDocsLLMText, getOpenAPIDocumentId, openAPIDocumentIdFromPath, parseOpenAPIDocument, preloadDocsOpenAPIPage } from "./openapi.js";
4
+ import { decodeMarkdownUrl, defaultDocsImageRoute, defaultDocsRoute, encodeMarkdownUrl, getDocsImageRoute, normalizeDocsRoutePath, replaceDocsRouteBase } from "./routes.js";
5
+ import { createDocsRuntime, createDocsSource, createSearchServer, createStaticDocsRuntimeBase, createStaticDocsSource, getDocsLLMSIndex } from "./runtime.js";
6
+ import { getDocsOgImagePath, getDocsRouteHead } from "./head.js";
7
+ import { createDocsPageRuntime } from "./pages.js";
8
+ import { createStaticDocsRuntime } from "./static.js";
9
+ export { createDocsI18n, createDocsIconResolver, createDocsPageRuntime, createDocsRuntime, createDocsSource, createOpenAPIFromSources, createSearchServer, createStaticDocsRuntime, createStaticDocsRuntimeBase, createStaticDocsSource, decodeMarkdownUrl, defaultDocsIconAssetBaseUrl, defaultDocsImageRoute, defaultDocsRoute, docsIconsPlugin, docsMetaSchema, docsPageSchema, encodeMarkdownUrl, getDefaultLocaleRedirectHref, getDocsImageRoute, getDocsLLMSIndex, getDocsLLMText, getDocsOgImagePath, getDocsRouteHead, getOpenAPIDocumentId, isDefaultLocaleParam, isOptionalLocaleParam, localizeRouteBase, localizedRouteParam, localizedUrl, normalizeDocsRoutePath, normalizeLocale, openAPIDocumentIdFromPath, parseOpenAPIDocument, preloadDocsOpenAPIPage, replaceDocsRouteBase, toDocsIconName };
@@ -0,0 +1,41 @@
1
+ import { OpenAPIOptions, createOpenAPI } from '@vezham/docs-openapi/server';
2
+ type OpenAPIDocument = Exclude<NonNullable<OpenAPIOptions['input']>, string[]>[string];
3
+ export type DocsOpenAPIPlugin = {
4
+ loaderPlugin: () => ReturnType<ReturnType<typeof createOpenAPI>['loaderPlugin']>;
5
+ };
6
+ export type DocsOpenAPIRuntime = {
7
+ getSchema: (documentId: string) => Promise<unknown>;
8
+ };
9
+ export type DocsOpenAPIPreloader = {
10
+ preloadOpenAPIPage: (page: never) => Promise<unknown>;
11
+ };
12
+ export type OpenAPISourceFiles = Record<string, string>;
13
+ export type CreateOpenAPIFromSourcesOptions = {
14
+ files?: OpenAPISourceFiles;
15
+ openapiDir?: string;
16
+ rootDocument?: string;
17
+ rootDocumentId?: string;
18
+ };
19
+ export type DocsPageLike = {
20
+ data: {
21
+ _openapi?: {
22
+ preload?: unknown;
23
+ };
24
+ description?: string;
25
+ getText?: (mode: 'processed' | 'raw') => Promise<string>;
26
+ title?: string;
27
+ };
28
+ locale?: string;
29
+ slugs?: string[];
30
+ url: string;
31
+ };
32
+ export declare const parseOpenAPIDocument: (filePath: string, source: string) => OpenAPIDocument;
33
+ export declare const openAPIDocumentIdFromPath: (filePath: string, openapiDir?: string) => string;
34
+ export declare const createOpenAPIFromSources: ({ files, openapiDir, rootDocument, rootDocumentId }: CreateOpenAPIFromSourcesOptions) => import('@vezham/docs-openapi/server').OpenAPIServer;
35
+ export declare const getOpenAPIDocumentId: (page: DocsPageLike) => string | undefined;
36
+ export declare const preloadDocsOpenAPIPage: <Page extends DocsPageLike>(page: Page, openapi: {
37
+ preloadOpenAPIPage: (page: Page) => Promise<unknown>;
38
+ }) => Promise<unknown>;
39
+ export declare const getDocsLLMText: (page: DocsPageLike, openapi?: Pick<DocsOpenAPIRuntime, "getSchema">) => Promise<string>;
40
+ export {};
41
+ //# sourceMappingURL=openapi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../../../src/lib/runtime/docs/openapi.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAEhF,KAAK,eAAe,GAAG,OAAO,CAC5B,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EACpC,MAAM,EAAE,CACT,CAAC,MAAM,CAAC,CAAA;AAET,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,UAAU,CAC5B,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,cAAc,CAAC,CACjD,CAAA;CACF,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,kBAAkB,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACtD,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEvD,MAAM,MAAM,+BAA+B,GAAG;IAC5C,KAAK,CAAC,EAAE,kBAAkB,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE;QACJ,QAAQ,CAAC,EAAE;YACT,OAAO,CAAC,EAAE,OAAO,CAAA;SAClB,CAAA;QACD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;QACxD,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAMD,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,QAAQ,MAAM,KACb,eAIF,CAAA;AAED,eAAO,MAAM,yBAAyB,GACpC,UAAU,MAAM,EAChB,mBAAsB,WAgBvB,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,qDAKtC,+BAA+B,wDAmBjC,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,MAAM,YAAY,uBAMtD,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAU,IAAI,SAAS,YAAY,EACpE,MAAM,IAAI,EACV,SAAS;IACP,kBAAkB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACrD,qBAKF,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,MAAM,YAAY,EAClB,UAAU,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,oBAiBhD,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { parse } from "yaml";
2
+ import { createOpenAPI } from "@vezham/docs-openapi/server";
3
+ //#region src/lib/runtime/docs/openapi.ts
4
+ var slash = (value) => {
5
+ return value.split("\\").join("/");
6
+ };
7
+ var parseOpenAPIDocument = (filePath, source) => {
8
+ return filePath.endsWith(".json") ? JSON.parse(source) : parse(source);
9
+ };
10
+ var openAPIDocumentIdFromPath = (filePath, openapiDir = "openapi") => {
11
+ const segments = slash(filePath).split("/");
12
+ const openapiDirIndex = segments.lastIndexOf(openapiDir);
13
+ const idSegments = (openapiDirIndex === -1 ? slash(filePath) : segments.slice(openapiDirIndex + 1).join("/")).replace(/\.(?:json|yaml|yml)$/, "").split("/");
14
+ if (idSegments[idSegments.length - 1] === "index") idSegments.pop();
15
+ return idSegments.length === 0 ? "openapi" : idSegments.join("/");
16
+ };
17
+ var createOpenAPIFromSources = ({ files = {}, openapiDir, rootDocument, rootDocumentId = "openapi" }) => {
18
+ return createOpenAPI({ input: {
19
+ ...rootDocument ? { [rootDocumentId]: parseOpenAPIDocument("openapi/index.yaml", rootDocument) } : {},
20
+ ...Object.fromEntries(Object.entries(files).map(([filePath, source]) => [openAPIDocumentIdFromPath(filePath, openapiDir), parseOpenAPIDocument(filePath, source)]))
21
+ } });
22
+ };
23
+ var getOpenAPIDocumentId = (page) => {
24
+ const preload = page.data._openapi?.preload;
25
+ return Array.isArray(preload) && typeof preload[0] === "string" ? preload[0] : void 0;
26
+ };
27
+ var preloadDocsOpenAPIPage = async (page, openapi) => {
28
+ return getOpenAPIDocumentId(page) ? openapi.preloadOpenAPIPage(page) : void 0;
29
+ };
30
+ var getDocsLLMText = async (page, openapi) => {
31
+ const documentId = getOpenAPIDocumentId(page);
32
+ if (documentId && openapi) return JSON.stringify(await openapi.getSchema(documentId), null, 2);
33
+ if (!page.data.getText) throw new Error(`Cannot render LLM text for ${page.url}`);
34
+ const processed = await page.data.getText("processed");
35
+ return `# ${page.data.title ?? "Untitled"} (${page.url})
36
+
37
+ ${processed}`;
38
+ };
39
+ //#endregion
40
+ export { createOpenAPIFromSources, getDocsLLMText, getOpenAPIDocumentId, openAPIDocumentIdFromPath, parseOpenAPIDocument, preloadDocsOpenAPIPage };
@@ -0,0 +1,98 @@
1
+ import { StaticSource } from '@vezham/docs-core/source';
2
+ import { DocsRouteHeadOptions } from './head';
3
+ import { createStaticDocsRuntimeBase } from './runtime';
4
+ export type DocsPageInput = {
5
+ lang?: string;
6
+ pathFormat?: 'slug' | 'markdown-url';
7
+ slugs: string[];
8
+ };
9
+ export declare const createDocsPageRuntime: <Docs extends StaticSource, const Languages extends readonly string[]>({ docs, runtime, head }: {
10
+ docs: {
11
+ getPage: (path: string) => {
12
+ preload: () => unknown;
13
+ } | undefined;
14
+ };
15
+ runtime: ReturnType<typeof createStaticDocsRuntimeBase<Docs, Languages>>;
16
+ head: Omit<DocsRouteHeadOptions, "defaultLanguage" | "languages">;
17
+ }) => {
18
+ getDocsPage: ({ lang, pathFormat, slugs }: DocsPageInput) => {
19
+ locale: Languages[number];
20
+ page: {
21
+ docs: Docs;
22
+ } extends infer T ? T extends {
23
+ docs: Docs;
24
+ } ? T extends Record<infer K extends string, import('@vezham/docs-core/source').SourceUnion<{
25
+ pageData: import('@vezham/docs-core/source').PageData;
26
+ metaData: import('@vezham/docs-core/source').MetaData;
27
+ }>> ? { [k in K]: T[k] extends import('@vezham/docs-core/source').SourceUnion<infer D extends {
28
+ pageData: import('@vezham/docs-core/source').PageData;
29
+ metaData: import('@vezham/docs-core/source').MetaData;
30
+ }> ? import('@vezham/docs-core/source').Page<k, D["pageData"]> : never; }[K] : T extends import('@vezham/docs-core/source').SourceUnion<infer D extends {
31
+ pageData: import('@vezham/docs-core/source').PageData;
32
+ metaData: import('@vezham/docs-core/source').MetaData;
33
+ }> ? import('@vezham/docs-core/source').Page<undefined, D["pageData"]> : never : never : never;
34
+ };
35
+ loadDocsPage: ({ slugs, lang, routeBase }: {
36
+ slugs: string[];
37
+ lang?: string;
38
+ routeBase?: string;
39
+ }) => Promise<{
40
+ locale: Languages[number];
41
+ title: string | undefined;
42
+ description: string | undefined;
43
+ routePath: string;
44
+ path: string;
45
+ markdownUrl: string;
46
+ pageTree: import('@vezham/docs-core/source/client').SerializedPageTree;
47
+ openapiData: unknown;
48
+ }>;
49
+ getDocsRouteHead: (data?: Awaited<ReturnType<({ slugs, lang, routeBase }: {
50
+ slugs: string[];
51
+ lang?: string;
52
+ routeBase?: string;
53
+ }) => Promise<{
54
+ locale: Languages[number];
55
+ title: string | undefined;
56
+ description: string | undefined;
57
+ routePath: string;
58
+ path: string;
59
+ markdownUrl: string;
60
+ pageTree: import('@vezham/docs-core/source/client').SerializedPageTree;
61
+ openapiData: unknown;
62
+ }>>>) => {
63
+ meta?: undefined;
64
+ } | {
65
+ meta: ({
66
+ title: string;
67
+ name?: undefined;
68
+ content?: undefined;
69
+ property?: undefined;
70
+ } | {
71
+ name: string;
72
+ content: string;
73
+ title?: undefined;
74
+ property?: undefined;
75
+ } | {
76
+ property: string;
77
+ content: string;
78
+ title?: undefined;
79
+ name?: undefined;
80
+ })[];
81
+ };
82
+ createDocsLoader: (routeBase?: string) => ({ params }: {
83
+ params: {
84
+ lang?: string;
85
+ _splat?: string;
86
+ };
87
+ }) => Promise<{
88
+ locale: Languages[number];
89
+ title: string | undefined;
90
+ description: string | undefined;
91
+ routePath: string;
92
+ path: string;
93
+ markdownUrl: string;
94
+ pageTree: import('@vezham/docs-core/source/client').SerializedPageTree;
95
+ openapiData: unknown;
96
+ }>;
97
+ };
98
+ //# sourceMappingURL=pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../../../src/lib/runtime/docs/pages.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,EAAE,KAAK,oBAAoB,EAAoB,MAAM,QAAQ,CAAA;AAYpE,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,WAAW,CAAA;AAE5D,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAAA;IACpC,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,IAAI,SAAS,YAAY,EACzB,KAAK,CAAC,SAAS,SAAS,SAAS,MAAM,EAAE,EACzC,yBAIC;IACD,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;YAAE,OAAO,EAAE,MAAM,OAAO,CAAA;SAAE,GAAG,SAAS,CAAA;KAAE,CAAA;IAC3E,OAAO,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;IACxE,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,iBAAiB,GAAG,WAAW,CAAC,CAAA;CAClE;+CAImD,aAAa;;;;;;;;;;;;;;;;;+CAqB5D;QACD,KAAK,EAAE,MAAM,EAAE,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB;;;;;;;;;;8BAgE2B,OAAO,CAAC,UAAU,8BApE3C;QACD,KAAK,EAAE,MAAM,EAAE,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB;;;;;;;;;OAgEkE,CAAC;;;;;;;;;;;;;;;;;;;;+CAQ/D,YAAY;QAAE,MAAM,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;;;;;;;;;;CAOhE,CAAA"}
@@ -0,0 +1,89 @@
1
+ import { isOptionalLocaleParam, localizeRouteBase, normalizeLocale } from "./i18n.js";
2
+ import { decodeMarkdownUrl, encodeMarkdownUrl, replaceDocsRouteBase } from "./routes.js";
3
+ import { getDocsRouteHead } from "./head.js";
4
+ import { notFound } from "@tanstack/react-router";
5
+ //#region src/lib/runtime/docs/pages.ts
6
+ var createDocsPageRuntime = ({ docs, runtime, head }) => {
7
+ const { i18n, source, preloadOpenAPIPage } = runtime;
8
+ const docsRoute = head.docsRoute ?? "/docs";
9
+ const getDocsPage = ({ lang, pathFormat, slugs }) => {
10
+ if (!isOptionalLocaleParam(i18n, lang)) throw notFound();
11
+ const locale = normalizeLocale(i18n, lang);
12
+ const resolvedSlugs = pathFormat === "markdown-url" ? decodeMarkdownUrl(slugs) : slugs;
13
+ const page = source.getPage(resolvedSlugs, locale);
14
+ if (!page) throw notFound();
15
+ return {
16
+ locale,
17
+ page
18
+ };
19
+ };
20
+ const loadDocsPage = async ({ slugs, lang, routeBase = docsRoute }) => {
21
+ const { locale, page } = getDocsPage({
22
+ slugs,
23
+ lang
24
+ });
25
+ const resolvedRouteBase = localizeRouteBase({
26
+ defaultLanguage: i18n.defaultLanguage,
27
+ lang,
28
+ languages: i18n.languages,
29
+ routeBase
30
+ });
31
+ const remapPage = (item) => ({
32
+ ...item,
33
+ url: replaceDocsRouteBase({
34
+ docsRoute,
35
+ languages: i18n.languages,
36
+ pagePath: item.url,
37
+ routeBase: resolvedRouteBase
38
+ })
39
+ });
40
+ const remapNode = (node) => {
41
+ if (node.type === "page") return remapPage(node);
42
+ if (node.type !== "folder") return node;
43
+ return {
44
+ ...node,
45
+ index: node.index ? remapPage(node.index) : void 0,
46
+ children: node.children.map(remapNode)
47
+ };
48
+ };
49
+ const remapTree = (tree) => ({
50
+ ...tree,
51
+ $id: `${tree.$id ?? locale}:${resolvedRouteBase}`,
52
+ children: tree.children.map(remapNode),
53
+ fallback: tree.fallback ? remapTree(tree.fallback) : void 0
54
+ });
55
+ const data = {
56
+ locale,
57
+ title: page.data.title,
58
+ description: page.data.description,
59
+ routePath: replaceDocsRouteBase({
60
+ docsRoute,
61
+ languages: i18n.languages,
62
+ pagePath: page.url,
63
+ routeBase: resolvedRouteBase
64
+ }),
65
+ path: page.path,
66
+ markdownUrl: encodeMarkdownUrl(page.slugs, page.locale, docsRoute, i18n.defaultLanguage),
67
+ pageTree: await source.serializePageTree(routeBase === docsRoute ? source.getPageTree(locale) : remapTree(source.getPageTree(locale))),
68
+ openapiData: await preloadOpenAPIPage(page)
69
+ };
70
+ await docs.getPage(data.path)?.preload();
71
+ return data;
72
+ };
73
+ return {
74
+ getDocsPage,
75
+ loadDocsPage,
76
+ getDocsRouteHead: (data) => getDocsRouteHead(data, {
77
+ ...head,
78
+ defaultLanguage: i18n.defaultLanguage,
79
+ languages: i18n.languages
80
+ }),
81
+ createDocsLoader: (routeBase = docsRoute) => ({ params }) => loadDocsPage({
82
+ slugs: params._splat?.split("/") ?? [],
83
+ lang: params.lang,
84
+ routeBase
85
+ })
86
+ };
87
+ };
88
+ //#endregion
89
+ export { createDocsPageRuntime };
@@ -0,0 +1,17 @@
1
+ export declare const defaultDocsRoute = "/docs";
2
+ export declare const getDocsImageRoute: (docsRoute?: string) => string;
3
+ export declare const defaultDocsImageRoute: string;
4
+ export declare const encodeMarkdownUrl: (slugs: string[], locale?: string, docsRoute?: string, defaultLocale?: string) => string;
5
+ export declare const decodeMarkdownUrl: (segments: string[]) => string[];
6
+ export declare const replaceDocsRouteBase: ({ docsRoute, languages, pagePath, routeBase }: {
7
+ docsRoute?: string;
8
+ languages: readonly string[];
9
+ pagePath: string;
10
+ routeBase: string;
11
+ }) => string;
12
+ export declare const normalizeDocsRoutePath: ({ docsRoute, languages, routePath }: {
13
+ docsRoute?: string;
14
+ languages: readonly string[];
15
+ routePath: string;
16
+ }) => string;
17
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/lib/runtime/docs/routes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,UAAU,CAAA;AAEvC,eAAO,MAAM,iBAAiB,GAAI,kBAA4B,WAE7D,CAAA;AAED,eAAO,MAAM,qBAAqB,QAAsB,CAAA;AAExD,eAAO,MAAM,iBAAiB,GAC5B,OAAO,MAAM,EAAE,EACf,SAAS,MAAM,EACf,kBAA4B,EAC5B,gBAAgB,MAAM,WAiBvB,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,EAAE,aAanD,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,+CAKlC;IACD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB,WA0BA,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,qCAIpC;IACD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;CAClB,WAcA,CAAA"}
@@ -0,0 +1,45 @@
1
+ //#region src/lib/runtime/docs/routes.ts
2
+ var defaultDocsRoute = "/docs";
3
+ var getDocsImageRoute = (docsRoute = defaultDocsRoute) => {
4
+ return `/og${docsRoute}`;
5
+ };
6
+ var defaultDocsImageRoute = getDocsImageRoute();
7
+ var encodeMarkdownUrl = (slugs, locale, docsRoute = defaultDocsRoute, defaultLocale) => {
8
+ const segments = [...slugs];
9
+ const localePrefix = locale && locale !== defaultLocale ? locale : void 0;
10
+ if (segments.length === 0) segments.push("index.md");
11
+ else segments[segments.length - 1] += ".md";
12
+ return "/" + [
13
+ localePrefix,
14
+ ...docsRoute.split("/"),
15
+ ...segments
16
+ ].filter(Boolean).join("/");
17
+ };
18
+ var decodeMarkdownUrl = (segments) => {
19
+ if (segments.length === 0) return [];
20
+ const out = [...segments];
21
+ out[out.length - 1] = out[out.length - 1].replace(/\.md$/, "");
22
+ if (out.length === 1 && out[0] === "index") out.pop();
23
+ return out;
24
+ };
25
+ var replaceDocsRouteBase = ({ docsRoute = defaultDocsRoute, languages, pagePath, routeBase }) => {
26
+ if (routeBase === docsRoute) return pagePath;
27
+ if (pagePath === docsRoute) return routeBase;
28
+ if (pagePath.startsWith(`${docsRoute}/`)) return `${routeBase}${pagePath.slice(docsRoute.length)}`;
29
+ for (const lang of languages) {
30
+ const localizedDocsRoute = `/${lang}${docsRoute}`;
31
+ if (pagePath === localizedDocsRoute) return routeBase;
32
+ if (pagePath.startsWith(`${localizedDocsRoute}/`)) return `${routeBase}${pagePath.slice(localizedDocsRoute.length)}`;
33
+ }
34
+ return pagePath;
35
+ };
36
+ var normalizeDocsRoutePath = ({ docsRoute = defaultDocsRoute, languages, routePath }) => {
37
+ for (const lang of languages) {
38
+ const localizedDocsRoute = `/${lang}${docsRoute}`;
39
+ if (routePath === localizedDocsRoute) return docsRoute;
40
+ if (routePath.startsWith(`${localizedDocsRoute}/`)) return routePath.slice(`/${lang}`.length);
41
+ }
42
+ return routePath;
43
+ };
44
+ //#endregion
45
+ export { decodeMarkdownUrl, defaultDocsImageRoute, defaultDocsRoute, encodeMarkdownUrl, getDocsImageRoute, normalizeDocsRoutePath, replaceDocsRouteBase };
@@ -0,0 +1,185 @@
1
+ import { I18nConfig } from '@vezham/docs-core/i18n';
2
+ import { SearchAPI } from '@vezham/docs-core/search/server';
3
+ import { StaticSource } from '@vezham/docs-core/source';
4
+ import { DocsI18nInput } from './i18n';
5
+ import { DocsOpenAPIPlugin, DocsOpenAPIPreloader, DocsOpenAPIRuntime, OpenAPISourceFiles } from './openapi';
6
+ export type DocsCollectionSource<Docs extends StaticSource = StaticSource> = {
7
+ toDocsSource: () => Docs;
8
+ };
9
+ export declare const createStaticDocsSource: <Docs extends StaticSource>(source: DocsCollectionSource<Docs>) => Docs;
10
+ export type CreateStaticDocsRuntimeOptions<Docs extends StaticSource, Languages extends readonly string[]> = {
11
+ docs: DocsCollectionSource<Docs>;
12
+ docsRoute?: string;
13
+ i18n: DocsI18nInput<Languages>;
14
+ openapiDir?: string;
15
+ openapiFiles?: OpenAPISourceFiles;
16
+ rootDocument?: string;
17
+ rootDocumentId?: string;
18
+ };
19
+ export declare const createStaticDocsRuntimeBase: <Docs extends StaticSource, const Languages extends readonly string[]>({ docs, docsRoute, i18n: i18nConfig, openapiDir, openapiFiles, rootDocument, rootDocumentId }: CreateStaticDocsRuntimeOptions<Docs, Languages>) => {
20
+ source: import('@vezham/docs-core/source').LoaderOutput<{
21
+ meta: {
22
+ docs: Docs;
23
+ } extends infer T ? T extends {
24
+ docs: Docs;
25
+ } ? T extends Record<infer K extends string, import('@vezham/docs-core/source').SourceUnion<{
26
+ pageData: import('@vezham/docs-core/source').PageData;
27
+ metaData: import('@vezham/docs-core/source').MetaData;
28
+ }>> ? { [k in K]: T[k] extends import('@vezham/docs-core/source').SourceUnion<infer D extends {
29
+ pageData: import('@vezham/docs-core/source').PageData;
30
+ metaData: import('@vezham/docs-core/source').MetaData;
31
+ }> ? import('@vezham/docs-core/source').Meta<k, D["metaData"]> : never; }[K] : T extends import('@vezham/docs-core/source').SourceUnion<infer D extends {
32
+ pageData: import('@vezham/docs-core/source').PageData;
33
+ metaData: import('@vezham/docs-core/source').MetaData;
34
+ }> ? import('@vezham/docs-core/source').Meta<undefined, D["metaData"]> : never : never : never;
35
+ page: {
36
+ docs: Docs;
37
+ } extends infer T_1 ? T_1 extends {
38
+ docs: Docs;
39
+ } ? T_1 extends Record<infer K_1 extends string, import('@vezham/docs-core/source').SourceUnion<{
40
+ pageData: import('@vezham/docs-core/source').PageData;
41
+ metaData: import('@vezham/docs-core/source').MetaData;
42
+ }>> ? { [k_1 in K_1]: T_1[k_1] extends import('@vezham/docs-core/source').SourceUnion<infer D_1 extends {
43
+ pageData: import('@vezham/docs-core/source').PageData;
44
+ metaData: import('@vezham/docs-core/source').MetaData;
45
+ }> ? import('@vezham/docs-core/source').Page<k_1, D_1["pageData"]> : never; }[K_1] : T_1 extends import('@vezham/docs-core/source').SourceUnion<infer D_1 extends {
46
+ pageData: import('@vezham/docs-core/source').PageData;
47
+ metaData: import('@vezham/docs-core/source').MetaData;
48
+ }> ? import('@vezham/docs-core/source').Page<undefined, D_1["pageData"]> : never : never : never;
49
+ i18n: import('@vezham/docs-core/i18n').I18nAPI<Languages[number]>;
50
+ }>;
51
+ preloadOpenAPIPage: (page: {
52
+ docs: Docs;
53
+ } extends infer T_2 ? T_2 extends {
54
+ docs: Docs;
55
+ } ? T_2 extends Record<infer K_1 extends string, import('@vezham/docs-core/source').SourceUnion<{
56
+ pageData: import('@vezham/docs-core/source').PageData;
57
+ metaData: import('@vezham/docs-core/source').MetaData;
58
+ }>> ? { [k_2 in K_1]: T_2[k_2] extends import('@vezham/docs-core/source').SourceUnion<infer D_2 extends {
59
+ pageData: import('@vezham/docs-core/source').PageData;
60
+ metaData: import('@vezham/docs-core/source').MetaData;
61
+ }> ? import('@vezham/docs-core/source').Page<k_2, D_2["pageData"]> : never; }[K_1] : T_2 extends import('@vezham/docs-core/source').SourceUnion<infer D_1 extends {
62
+ pageData: import('@vezham/docs-core/source').PageData;
63
+ metaData: import('@vezham/docs-core/source').MetaData;
64
+ }> ? import('@vezham/docs-core/source').Page<undefined, D_1["pageData"]> : never : never : never) => Promise<unknown> | undefined;
65
+ getLLMText: (page: {
66
+ docs: Docs;
67
+ } extends infer T_2 ? T_2 extends {
68
+ docs: Docs;
69
+ } ? T_2 extends Record<infer K_1 extends string, import('@vezham/docs-core/source').SourceUnion<{
70
+ pageData: import('@vezham/docs-core/source').PageData;
71
+ metaData: import('@vezham/docs-core/source').MetaData;
72
+ }>> ? { [k_2 in K_1]: T_2[k_2] extends import('@vezham/docs-core/source').SourceUnion<infer D_2 extends {
73
+ pageData: import('@vezham/docs-core/source').PageData;
74
+ metaData: import('@vezham/docs-core/source').MetaData;
75
+ }> ? import('@vezham/docs-core/source').Page<k_2, D_2["pageData"]> : never; }[K_1] : T_2 extends import('@vezham/docs-core/source').SourceUnion<infer D_1 extends {
76
+ pageData: import('@vezham/docs-core/source').PageData;
77
+ metaData: import('@vezham/docs-core/source').MetaData;
78
+ }> ? import('@vezham/docs-core/source').Page<undefined, D_1["pageData"]> : never : never : never) => Promise<string>;
79
+ i18n: import('@vezham/docs-core/i18n').I18nAPI<Languages[number]>;
80
+ };
81
+ export declare const createDocsSource: <Docs extends StaticSource, I18n extends I18nConfig>({ docs, docsRoute, i18n, openapi }: {
82
+ docs: Docs;
83
+ docsRoute?: string;
84
+ i18n: I18n;
85
+ openapi: DocsOpenAPIPlugin;
86
+ }) => import('@vezham/docs-core/source').LoaderOutput<{
87
+ meta: {
88
+ docs: Docs;
89
+ } extends infer T ? T extends {
90
+ docs: Docs;
91
+ } ? T extends Record<infer K extends string, import('@vezham/docs-core/source').SourceUnion<{
92
+ pageData: import('@vezham/docs-core/source').PageData;
93
+ metaData: import('@vezham/docs-core/source').MetaData;
94
+ }>> ? { [k in K]: T[k] extends import('@vezham/docs-core/source').SourceUnion<infer D extends {
95
+ pageData: import('@vezham/docs-core/source').PageData;
96
+ metaData: import('@vezham/docs-core/source').MetaData;
97
+ }> ? import('@vezham/docs-core/source').Meta<k, D["metaData"]> : never; }[K] : T extends import('@vezham/docs-core/source').SourceUnion<infer D extends {
98
+ pageData: import('@vezham/docs-core/source').PageData;
99
+ metaData: import('@vezham/docs-core/source').MetaData;
100
+ }> ? import('@vezham/docs-core/source').Meta<undefined, D["metaData"]> : never : never : never;
101
+ page: {
102
+ docs: Docs;
103
+ } extends infer T_1 ? T_1 extends {
104
+ docs: Docs;
105
+ } ? T_1 extends Record<infer K_1 extends string, import('@vezham/docs-core/source').SourceUnion<{
106
+ pageData: import('@vezham/docs-core/source').PageData;
107
+ metaData: import('@vezham/docs-core/source').MetaData;
108
+ }>> ? { [k_1 in K_1]: T_1[k_1] extends import('@vezham/docs-core/source').SourceUnion<infer D_1 extends {
109
+ pageData: import('@vezham/docs-core/source').PageData;
110
+ metaData: import('@vezham/docs-core/source').MetaData;
111
+ }> ? import('@vezham/docs-core/source').Page<k_1, D_1["pageData"]> : never; }[K_1] : T_1 extends import('@vezham/docs-core/source').SourceUnion<infer D_1 extends {
112
+ pageData: import('@vezham/docs-core/source').PageData;
113
+ metaData: import('@vezham/docs-core/source').MetaData;
114
+ }> ? import('@vezham/docs-core/source').Page<undefined, D_1["pageData"]> : never : never : never;
115
+ i18n: I18n;
116
+ }>;
117
+ export declare const createDocsRuntime: <Docs extends StaticSource, I18n extends I18nConfig>({ docs, docsRoute, i18n, openapi }: {
118
+ docs: Docs;
119
+ docsRoute?: string;
120
+ i18n: I18n;
121
+ openapi: DocsOpenAPIPlugin & DocsOpenAPIRuntime & DocsOpenAPIPreloader;
122
+ }) => {
123
+ source: import('@vezham/docs-core/source').LoaderOutput<{
124
+ meta: {
125
+ docs: Docs;
126
+ } extends infer T ? T extends {
127
+ docs: Docs;
128
+ } ? T extends Record<infer K extends string, import('@vezham/docs-core/source').SourceUnion<{
129
+ pageData: import('@vezham/docs-core/source').PageData;
130
+ metaData: import('@vezham/docs-core/source').MetaData;
131
+ }>> ? { [k in K]: T[k] extends import('@vezham/docs-core/source').SourceUnion<infer D extends {
132
+ pageData: import('@vezham/docs-core/source').PageData;
133
+ metaData: import('@vezham/docs-core/source').MetaData;
134
+ }> ? import('@vezham/docs-core/source').Meta<k, D["metaData"]> : never; }[K] : T extends import('@vezham/docs-core/source').SourceUnion<infer D extends {
135
+ pageData: import('@vezham/docs-core/source').PageData;
136
+ metaData: import('@vezham/docs-core/source').MetaData;
137
+ }> ? import('@vezham/docs-core/source').Meta<undefined, D["metaData"]> : never : never : never;
138
+ page: {
139
+ docs: Docs;
140
+ } extends infer T_1 ? T_1 extends {
141
+ docs: Docs;
142
+ } ? T_1 extends Record<infer K_1 extends string, import('@vezham/docs-core/source').SourceUnion<{
143
+ pageData: import('@vezham/docs-core/source').PageData;
144
+ metaData: import('@vezham/docs-core/source').MetaData;
145
+ }>> ? { [k_1 in K_1]: T_1[k_1] extends import('@vezham/docs-core/source').SourceUnion<infer D_1 extends {
146
+ pageData: import('@vezham/docs-core/source').PageData;
147
+ metaData: import('@vezham/docs-core/source').MetaData;
148
+ }> ? import('@vezham/docs-core/source').Page<k_1, D_1["pageData"]> : never; }[K_1] : T_1 extends import('@vezham/docs-core/source').SourceUnion<infer D_1 extends {
149
+ pageData: import('@vezham/docs-core/source').PageData;
150
+ metaData: import('@vezham/docs-core/source').MetaData;
151
+ }> ? import('@vezham/docs-core/source').Page<undefined, D_1["pageData"]> : never : never : never;
152
+ i18n: I18n;
153
+ }>;
154
+ preloadOpenAPIPage: (page: {
155
+ docs: Docs;
156
+ } extends infer T_2 ? T_2 extends {
157
+ docs: Docs;
158
+ } ? T_2 extends Record<infer K_1 extends string, import('@vezham/docs-core/source').SourceUnion<{
159
+ pageData: import('@vezham/docs-core/source').PageData;
160
+ metaData: import('@vezham/docs-core/source').MetaData;
161
+ }>> ? { [k_2 in K_1]: T_2[k_2] extends import('@vezham/docs-core/source').SourceUnion<infer D_2 extends {
162
+ pageData: import('@vezham/docs-core/source').PageData;
163
+ metaData: import('@vezham/docs-core/source').MetaData;
164
+ }> ? import('@vezham/docs-core/source').Page<k_2, D_2["pageData"]> : never; }[K_1] : T_2 extends import('@vezham/docs-core/source').SourceUnion<infer D_1 extends {
165
+ pageData: import('@vezham/docs-core/source').PageData;
166
+ metaData: import('@vezham/docs-core/source').MetaData;
167
+ }> ? import('@vezham/docs-core/source').Page<undefined, D_1["pageData"]> : never : never : never) => Promise<unknown> | undefined;
168
+ getLLMText: (page: {
169
+ docs: Docs;
170
+ } extends infer T_2 ? T_2 extends {
171
+ docs: Docs;
172
+ } ? T_2 extends Record<infer K_1 extends string, import('@vezham/docs-core/source').SourceUnion<{
173
+ pageData: import('@vezham/docs-core/source').PageData;
174
+ metaData: import('@vezham/docs-core/source').MetaData;
175
+ }>> ? { [k_2 in K_1]: T_2[k_2] extends import('@vezham/docs-core/source').SourceUnion<infer D_2 extends {
176
+ pageData: import('@vezham/docs-core/source').PageData;
177
+ metaData: import('@vezham/docs-core/source').MetaData;
178
+ }> ? import('@vezham/docs-core/source').Page<k_2, D_2["pageData"]> : never; }[K_1] : T_2 extends import('@vezham/docs-core/source').SourceUnion<infer D_1 extends {
179
+ pageData: import('@vezham/docs-core/source').PageData;
180
+ metaData: import('@vezham/docs-core/source').MetaData;
181
+ }> ? import('@vezham/docs-core/source').Page<undefined, D_1["pageData"]> : never : never : never) => Promise<string>;
182
+ };
183
+ export declare const getDocsLLMSIndex: (source: unknown) => string;
184
+ export declare const createSearchServer: (source: unknown) => SearchAPI;
185
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/lib/runtime/docs/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EACL,KAAK,SAAS,EAEf,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,0BAA0B,CAAA;AAE1E,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,QAAQ,CAAA;AAE3D,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAIxB,MAAM,WAAW,CAAA;AAGlB,MAAM,MAAM,oBAAoB,CAAC,IAAI,SAAS,YAAY,GAAG,YAAY,IAAI;IAC3E,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,IAAI,SAAS,YAAY,EAC9D,QAAQ,oBAAoB,CAAC,IAAI,CAAC,SAGnC,CAAA;AAED,MAAM,MAAM,8BAA8B,CACxC,IAAI,SAAS,YAAY,EACzB,SAAS,SAAS,SAAS,MAAM,EAAE,IACjC;IACF,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,2BAA2B,GACtC,IAAI,SAAS,YAAY,EACzB,KAAK,CAAC,SAAS,SAAS,SAAS,MAAM,EAAE,EACzC,+FAQC,8BAA8B,CAAC,IAAI,EAAE,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBjD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,IAAI,SAAS,YAAY,EACzB,IAAI,SAAS,UAAU,EACvB,oCAKC;IACD,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,iBAAiB,CAAA;CAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWA,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,IAAI,SAAS,YAAY,EACzB,IAAI,SAAS,UAAU,EACvB,oCAKC;IACD,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,oBAAoB,CAAA;CACvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYA,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,OAAO,WAE/C,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,QAAQ,OAAO,KAAG,SAEpD,CAAA"}
@@ -0,0 +1,55 @@
1
+ import { createDocsI18n } from "./i18n.js";
2
+ import { docsIconsPlugin } from "./icons.js";
3
+ import { createOpenAPIFromSources, getDocsLLMText, getOpenAPIDocumentId } from "./openapi.js";
4
+ import { defaultDocsRoute } from "./routes.js";
5
+ import { createFromSource } from "@vezham/docs-core/search/server";
6
+ import { llms, loader } from "@vezham/docs-core/source";
7
+ //#region src/lib/runtime/docs/runtime.ts
8
+ var createStaticDocsSource = (source) => {
9
+ return source.toDocsSource();
10
+ };
11
+ var createStaticDocsRuntimeBase = ({ docs, docsRoute, i18n: i18nConfig, openapiDir, openapiFiles, rootDocument, rootDocumentId }) => {
12
+ const i18n = createDocsI18n(i18nConfig);
13
+ const openapi = createOpenAPIFromSources({
14
+ files: openapiFiles,
15
+ openapiDir,
16
+ rootDocument,
17
+ rootDocumentId
18
+ });
19
+ return {
20
+ i18n,
21
+ ...createDocsRuntime({
22
+ docs: createStaticDocsSource(docs),
23
+ docsRoute,
24
+ i18n,
25
+ openapi
26
+ })
27
+ };
28
+ };
29
+ var createDocsSource = ({ docs, docsRoute = defaultDocsRoute, i18n, openapi }) => {
30
+ return loader({ docs }, {
31
+ baseUrl: docsRoute,
32
+ i18n,
33
+ plugins: [docsIconsPlugin(), openapi.loaderPlugin()]
34
+ });
35
+ };
36
+ var createDocsRuntime = ({ docs, docsRoute, i18n, openapi }) => {
37
+ return {
38
+ source: createDocsSource({
39
+ docs,
40
+ docsRoute,
41
+ i18n,
42
+ openapi
43
+ }),
44
+ preloadOpenAPIPage: (page) => getOpenAPIDocumentId(page) ? openapi.preloadOpenAPIPage(page) : void 0,
45
+ getLLMText: (page) => getDocsLLMText(page, openapi)
46
+ };
47
+ };
48
+ var getDocsLLMSIndex = (source) => {
49
+ return llms(source).index();
50
+ };
51
+ var createSearchServer = (source) => {
52
+ return createFromSource(source);
53
+ };
54
+ //#endregion
55
+ export { createDocsRuntime, createDocsSource, createSearchServer, createStaticDocsRuntimeBase, createStaticDocsSource, getDocsLLMSIndex };
@@ -0,0 +1,16 @@
1
+ import { StaticSource } from '@vezham/docs-core/source';
2
+ import { DocsRouteHeadOptions } from './head';
3
+ import { createDocsPageRuntime } from './pages';
4
+ import { CreateStaticDocsRuntimeOptions, createStaticDocsRuntimeBase } from './runtime';
5
+ type PageOptions = {
6
+ docs: {
7
+ getPage: (path: string) => {
8
+ preload: () => unknown;
9
+ } | undefined;
10
+ };
11
+ head: Omit<DocsRouteHeadOptions, 'defaultLanguage' | 'languages' | 'docsRoute'>;
12
+ };
13
+ export declare function createStaticDocsRuntime<Docs extends StaticSource, const Languages extends readonly string[]>(options: CreateStaticDocsRuntimeOptions<Docs, Languages> & PageOptions): ReturnType<typeof createStaticDocsRuntimeBase<Docs, Languages>> & ReturnType<typeof createDocsPageRuntime<Docs, Languages>>;
14
+ export declare function createStaticDocsRuntime<Docs extends StaticSource, const Languages extends readonly string[]>(options: CreateStaticDocsRuntimeOptions<Docs, Languages>): ReturnType<typeof createStaticDocsRuntimeBase<Docs, Languages>>;
15
+ export {};
16
+ //# sourceMappingURL=static.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../../../src/lib/runtime/docs/static.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EACL,KAAK,8BAA8B,EACnC,2BAA2B,EAC5B,MAAM,WAAW,CAAA;AAElB,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;YAAE,OAAO,EAAE,MAAM,OAAO,CAAA;SAAE,GAAG,SAAS,CAAA;KAAE,CAAA;IAC3E,IAAI,EAAE,IAAI,CACR,oBAAoB,EACpB,iBAAiB,GAAG,WAAW,GAAG,WAAW,CAC9C,CAAA;CACF,CAAA;AAED,wBAAgB,uBAAuB,CACrC,IAAI,SAAS,YAAY,EACzB,KAAK,CAAC,SAAS,SAAS,SAAS,MAAM,EAAE,EAEzC,OAAO,EAAE,8BAA8B,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,WAAW,GACrE,UAAU,CAAC,OAAO,2BAA2B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,GAChE,UAAU,CAAC,OAAO,qBAAqB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;AAE3D,wBAAgB,uBAAuB,CACrC,IAAI,SAAS,YAAY,EACzB,KAAK,CAAC,SAAS,SAAS,SAAS,MAAM,EAAE,EAEzC,OAAO,EAAE,8BAA8B,CAAC,IAAI,EAAE,SAAS,CAAC,GACvD,UAAU,CAAC,OAAO,2BAA2B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA"}