@tanstack/start-plugin-core 1.121.20 → 1.121.21

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 (133) hide show
  1. package/dist/cjs/compilers.cjs +416 -0
  2. package/dist/cjs/compilers.cjs.map +1 -0
  3. package/dist/cjs/compilers.d.cts +21 -0
  4. package/dist/cjs/constants.cjs +20 -0
  5. package/dist/cjs/constants.cjs.map +1 -0
  6. package/dist/cjs/constants.d.cts +6 -0
  7. package/dist/cjs/debug.cjs +5 -0
  8. package/dist/cjs/debug.cjs.map +1 -0
  9. package/dist/cjs/debug.d.cts +1 -0
  10. package/dist/cjs/dev-server-plugin/extract-html-scripts.cjs +35 -0
  11. package/dist/cjs/dev-server-plugin/extract-html-scripts.cjs.map +1 -0
  12. package/dist/cjs/dev-server-plugin/extract-html-scripts.d.cts +4 -0
  13. package/dist/cjs/dev-server-plugin/plugin.cjs +136 -0
  14. package/dist/cjs/dev-server-plugin/plugin.cjs.map +1 -0
  15. package/dist/cjs/dev-server-plugin/plugin.d.cts +5 -0
  16. package/dist/cjs/index.cjs +11 -0
  17. package/dist/cjs/index.cjs.map +1 -0
  18. package/dist/cjs/index.d.cts +3 -0
  19. package/dist/cjs/load-env-plugin/plugin.cjs +34 -0
  20. package/dist/cjs/load-env-plugin/plugin.cjs.map +1 -0
  21. package/dist/cjs/load-env-plugin/plugin.d.cts +3 -0
  22. package/dist/cjs/nitro-plugin/build-sitemap.cjs +138 -0
  23. package/dist/cjs/nitro-plugin/build-sitemap.cjs.map +1 -0
  24. package/dist/cjs/nitro-plugin/build-sitemap.d.cts +31 -0
  25. package/dist/cjs/nitro-plugin/plugin.cjs +181 -0
  26. package/dist/cjs/nitro-plugin/plugin.cjs.map +1 -0
  27. package/dist/cjs/nitro-plugin/plugin.d.cts +3 -0
  28. package/dist/cjs/nitro-plugin/prerender.cjs +174 -0
  29. package/dist/cjs/nitro-plugin/prerender.cjs.map +1 -0
  30. package/dist/cjs/nitro-plugin/prerender.d.cts +8 -0
  31. package/dist/cjs/nitro-plugin/queue.cjs +131 -0
  32. package/dist/cjs/nitro-plugin/queue.cjs.map +1 -0
  33. package/dist/cjs/nitro-plugin/queue.d.cts +32 -0
  34. package/dist/cjs/plugin.cjs +197 -0
  35. package/dist/cjs/plugin.cjs.map +1 -0
  36. package/dist/cjs/plugin.d.cts +291 -0
  37. package/dist/cjs/resolve-virtual-entries-plugin/plugin.cjs +66 -0
  38. package/dist/cjs/resolve-virtual-entries-plugin/plugin.cjs.map +1 -0
  39. package/dist/cjs/resolve-virtual-entries-plugin/plugin.d.cts +3 -0
  40. package/dist/cjs/schema.cjs +157 -0
  41. package/dist/cjs/schema.cjs.map +1 -0
  42. package/dist/cjs/schema.d.cts +8779 -0
  43. package/dist/cjs/start-compiler-plugin.cjs +74 -0
  44. package/dist/cjs/start-compiler-plugin.cjs.map +1 -0
  45. package/dist/cjs/start-compiler-plugin.d.cts +13 -0
  46. package/dist/cjs/start-manifest-plugin/plugin.cjs +182 -0
  47. package/dist/cjs/start-manifest-plugin/plugin.cjs.map +1 -0
  48. package/dist/cjs/start-manifest-plugin/plugin.d.cts +3 -0
  49. package/dist/cjs/start-router-plugin/generator-plugins/routes-manifest-plugin.cjs +39 -0
  50. package/dist/cjs/start-router-plugin/generator-plugins/routes-manifest-plugin.cjs.map +1 -0
  51. package/dist/cjs/start-router-plugin/generator-plugins/routes-manifest-plugin.d.cts +6 -0
  52. package/dist/cjs/start-router-plugin/generator-plugins/server-routes-plugin.cjs +121 -0
  53. package/dist/cjs/start-router-plugin/generator-plugins/server-routes-plugin.cjs.map +1 -0
  54. package/dist/cjs/start-router-plugin/generator-plugins/server-routes-plugin.d.cts +2 -0
  55. package/dist/cjs/start-router-plugin/plugin.cjs +21 -0
  56. package/dist/cjs/start-router-plugin/plugin.cjs.map +1 -0
  57. package/dist/cjs/start-router-plugin/plugin.d.cts +3 -0
  58. package/dist/cjs/start-router-plugin/route-tree-client-plugin.cjs +72 -0
  59. package/dist/cjs/start-router-plugin/route-tree-client-plugin.cjs.map +1 -0
  60. package/dist/cjs/start-router-plugin/route-tree-client-plugin.d.cts +6 -0
  61. package/dist/cjs/start-router-plugin/virtual-route-tree-plugin.cjs +30 -0
  62. package/dist/cjs/start-router-plugin/virtual-route-tree-plugin.cjs.map +1 -0
  63. package/dist/cjs/start-router-plugin/virtual-route-tree-plugin.d.cts +4 -0
  64. package/dist/cjs/utils.cjs +18 -0
  65. package/dist/cjs/utils.cjs.map +1 -0
  66. package/dist/cjs/utils.d.cts +8 -0
  67. package/dist/esm/compilers.d.ts +21 -0
  68. package/dist/esm/compilers.js +398 -0
  69. package/dist/esm/compilers.js.map +1 -0
  70. package/dist/esm/constants.d.ts +6 -0
  71. package/dist/esm/constants.js +20 -0
  72. package/dist/esm/constants.js.map +1 -0
  73. package/dist/esm/debug.d.ts +1 -0
  74. package/dist/esm/debug.js +5 -0
  75. package/dist/esm/debug.js.map +1 -0
  76. package/dist/esm/dev-server-plugin/extract-html-scripts.d.ts +4 -0
  77. package/dist/esm/dev-server-plugin/extract-html-scripts.js +18 -0
  78. package/dist/esm/dev-server-plugin/extract-html-scripts.js.map +1 -0
  79. package/dist/esm/dev-server-plugin/plugin.d.ts +5 -0
  80. package/dist/esm/dev-server-plugin/plugin.js +136 -0
  81. package/dist/esm/dev-server-plugin/plugin.js.map +1 -0
  82. package/dist/esm/index.d.ts +3 -0
  83. package/dist/esm/index.js +11 -0
  84. package/dist/esm/index.js.map +1 -0
  85. package/dist/esm/load-env-plugin/plugin.d.ts +3 -0
  86. package/dist/esm/load-env-plugin/plugin.js +17 -0
  87. package/dist/esm/load-env-plugin/plugin.js.map +1 -0
  88. package/dist/esm/nitro-plugin/build-sitemap.d.ts +31 -0
  89. package/dist/esm/nitro-plugin/build-sitemap.js +138 -0
  90. package/dist/esm/nitro-plugin/build-sitemap.js.map +1 -0
  91. package/dist/esm/nitro-plugin/plugin.d.ts +3 -0
  92. package/dist/esm/nitro-plugin/plugin.js +181 -0
  93. package/dist/esm/nitro-plugin/plugin.js.map +1 -0
  94. package/dist/esm/nitro-plugin/prerender.d.ts +8 -0
  95. package/dist/esm/nitro-plugin/prerender.js +174 -0
  96. package/dist/esm/nitro-plugin/prerender.js.map +1 -0
  97. package/dist/esm/nitro-plugin/queue.d.ts +32 -0
  98. package/dist/esm/nitro-plugin/queue.js +131 -0
  99. package/dist/esm/nitro-plugin/queue.js.map +1 -0
  100. package/dist/esm/plugin.d.ts +291 -0
  101. package/dist/esm/plugin.js +180 -0
  102. package/dist/esm/plugin.js.map +1 -0
  103. package/dist/esm/resolve-virtual-entries-plugin/plugin.d.ts +3 -0
  104. package/dist/esm/resolve-virtual-entries-plugin/plugin.js +49 -0
  105. package/dist/esm/resolve-virtual-entries-plugin/plugin.js.map +1 -0
  106. package/dist/esm/schema.d.ts +8779 -0
  107. package/dist/esm/schema.js +157 -0
  108. package/dist/esm/schema.js.map +1 -0
  109. package/dist/esm/start-compiler-plugin.d.ts +13 -0
  110. package/dist/esm/start-compiler-plugin.js +74 -0
  111. package/dist/esm/start-compiler-plugin.js.map +1 -0
  112. package/dist/esm/start-manifest-plugin/plugin.d.ts +3 -0
  113. package/dist/esm/start-manifest-plugin/plugin.js +182 -0
  114. package/dist/esm/start-manifest-plugin/plugin.js.map +1 -0
  115. package/dist/esm/start-router-plugin/generator-plugins/routes-manifest-plugin.d.ts +6 -0
  116. package/dist/esm/start-router-plugin/generator-plugins/routes-manifest-plugin.js +39 -0
  117. package/dist/esm/start-router-plugin/generator-plugins/routes-manifest-plugin.js.map +1 -0
  118. package/dist/esm/start-router-plugin/generator-plugins/server-routes-plugin.d.ts +2 -0
  119. package/dist/esm/start-router-plugin/generator-plugins/server-routes-plugin.js +121 -0
  120. package/dist/esm/start-router-plugin/generator-plugins/server-routes-plugin.js.map +1 -0
  121. package/dist/esm/start-router-plugin/plugin.d.ts +3 -0
  122. package/dist/esm/start-router-plugin/plugin.js +21 -0
  123. package/dist/esm/start-router-plugin/plugin.js.map +1 -0
  124. package/dist/esm/start-router-plugin/route-tree-client-plugin.d.ts +6 -0
  125. package/dist/esm/start-router-plugin/route-tree-client-plugin.js +55 -0
  126. package/dist/esm/start-router-plugin/route-tree-client-plugin.js.map +1 -0
  127. package/dist/esm/start-router-plugin/virtual-route-tree-plugin.d.ts +4 -0
  128. package/dist/esm/start-router-plugin/virtual-route-tree-plugin.js +30 -0
  129. package/dist/esm/start-router-plugin/virtual-route-tree-plugin.js.map +1 -0
  130. package/dist/esm/utils.d.ts +8 -0
  131. package/dist/esm/utils.js +18 -0
  132. package/dist/esm/utils.js.map +1 -0
  133. package/package.json +7 -7
@@ -0,0 +1,291 @@
1
+ import { createTanStackStartOptionsSchema } from './schema.cjs';
2
+ import { PluginOption } from 'vite';
3
+ import { z } from 'zod';
4
+ import { CompileStartFrameworkOptions } from './compilers.cjs';
5
+ export type TanStackStartInputConfig = z.input<ReturnType<typeof createTanStackStartOptionsSchema>>;
6
+ export declare function getTanStackStartOptions(opts?: TanStackStartInputConfig): {
7
+ tsr: {
8
+ target: "react" | "solid";
9
+ routeFileIgnorePrefix: string;
10
+ routesDirectory: string;
11
+ quoteStyle: "single" | "double";
12
+ semicolons: boolean;
13
+ disableLogging: boolean;
14
+ routeTreeFileHeader: string[];
15
+ indexToken: string;
16
+ routeToken: string;
17
+ generatedRouteTree: string;
18
+ disableTypes: boolean;
19
+ addExtensions: boolean;
20
+ enableRouteTreeFormatting: boolean;
21
+ routeTreeFileFooter: string[];
22
+ tmpDir: string;
23
+ virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
24
+ routeFilePrefix?: string | undefined;
25
+ routeFileIgnorePattern?: string | undefined;
26
+ pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
27
+ verboseFileRoutes?: boolean | undefined;
28
+ autoCodeSplitting?: boolean | undefined;
29
+ customScaffolding?: {
30
+ routeTemplate?: string | undefined;
31
+ lazyRouteTemplate?: string | undefined;
32
+ } | undefined;
33
+ experimental?: {
34
+ enableCodeSplitting?: boolean | undefined;
35
+ } | undefined;
36
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
37
+ srcDirectory: string;
38
+ };
39
+ clientEntryPath: string;
40
+ serverEntryPath: string;
41
+ root: string;
42
+ client: {
43
+ base: string;
44
+ entry?: string | undefined;
45
+ };
46
+ server: {
47
+ entry?: string | undefined;
48
+ };
49
+ serverFns: {
50
+ base: string;
51
+ };
52
+ public: {
53
+ base: string;
54
+ dir: string;
55
+ };
56
+ pages: {
57
+ path: string;
58
+ prerender?: {
59
+ enabled?: boolean | undefined;
60
+ outputPath?: string | undefined;
61
+ autoSubfolderIndex?: boolean | undefined;
62
+ crawlLinks?: boolean | undefined;
63
+ retryCount?: number | undefined;
64
+ retryDelay?: number | undefined;
65
+ onSuccess?: ((args_0: {
66
+ page: {
67
+ path: string;
68
+ sitemap?: {
69
+ exclude?: boolean | undefined;
70
+ priority?: number | undefined;
71
+ changefreq?: "always" | "hourly" | "daily" | "weekly" | "monthly" | "yearly" | "never" | undefined;
72
+ lastmod?: string | Date | undefined;
73
+ alternateRefs?: {
74
+ href: string;
75
+ hreflang: string;
76
+ }[] | undefined;
77
+ images?: {
78
+ loc: string;
79
+ caption?: string | undefined;
80
+ title?: string | undefined;
81
+ }[] | undefined;
82
+ news?: {
83
+ title: string;
84
+ publication: {
85
+ name: string;
86
+ language: string;
87
+ };
88
+ publicationDate: string | Date;
89
+ } | undefined;
90
+ } | undefined;
91
+ fromCrawl?: boolean | undefined;
92
+ };
93
+ html: string;
94
+ }, ...args: unknown[]) => any) | undefined;
95
+ } | undefined;
96
+ sitemap?: {
97
+ exclude?: boolean | undefined;
98
+ priority?: number | undefined;
99
+ changefreq?: "always" | "hourly" | "daily" | "weekly" | "monthly" | "yearly" | "never" | undefined;
100
+ lastmod?: string | Date | undefined;
101
+ alternateRefs?: {
102
+ href: string;
103
+ hreflang: string;
104
+ }[] | undefined;
105
+ images?: {
106
+ loc: string;
107
+ caption?: string | undefined;
108
+ title?: string | undefined;
109
+ }[] | undefined;
110
+ news?: {
111
+ title: string;
112
+ publication: {
113
+ name: string;
114
+ language: string;
115
+ };
116
+ publicationDate: string | Date;
117
+ } | undefined;
118
+ } | undefined;
119
+ fromCrawl?: boolean | undefined;
120
+ }[];
121
+ target?: import('nitropack/presets').PresetNameInput | undefined;
122
+ prerender?: ({
123
+ filter?: ((args_0: {
124
+ path: string;
125
+ prerender?: {
126
+ enabled?: boolean | undefined;
127
+ outputPath?: string | undefined;
128
+ autoSubfolderIndex?: boolean | undefined;
129
+ crawlLinks?: boolean | undefined;
130
+ retryCount?: number | undefined;
131
+ retryDelay?: number | undefined;
132
+ onSuccess?: ((args_0: {
133
+ page: {
134
+ path: string;
135
+ sitemap?: {
136
+ exclude?: boolean | undefined;
137
+ priority?: number | undefined;
138
+ changefreq?: "always" | "hourly" | "daily" | "weekly" | "monthly" | "yearly" | "never" | undefined;
139
+ lastmod?: string | Date | undefined;
140
+ alternateRefs?: {
141
+ href: string;
142
+ hreflang: string;
143
+ }[] | undefined;
144
+ images?: {
145
+ loc: string;
146
+ caption?: string | undefined;
147
+ title?: string | undefined;
148
+ }[] | undefined;
149
+ news?: {
150
+ title: string;
151
+ publication: {
152
+ name: string;
153
+ language: string;
154
+ };
155
+ publicationDate: string | Date;
156
+ } | undefined;
157
+ } | undefined;
158
+ fromCrawl?: boolean | undefined;
159
+ };
160
+ html: string;
161
+ }, ...args: unknown[]) => any) | undefined;
162
+ } | undefined;
163
+ sitemap?: {
164
+ exclude?: boolean | undefined;
165
+ priority?: number | undefined;
166
+ changefreq?: "always" | "hourly" | "daily" | "weekly" | "monthly" | "yearly" | "never" | undefined;
167
+ lastmod?: string | Date | undefined;
168
+ alternateRefs?: {
169
+ href: string;
170
+ hreflang: string;
171
+ }[] | undefined;
172
+ images?: {
173
+ loc: string;
174
+ caption?: string | undefined;
175
+ title?: string | undefined;
176
+ }[] | undefined;
177
+ news?: {
178
+ title: string;
179
+ publication: {
180
+ name: string;
181
+ language: string;
182
+ };
183
+ publicationDate: string | Date;
184
+ } | undefined;
185
+ } | undefined;
186
+ fromCrawl?: boolean | undefined;
187
+ }, ...args: unknown[]) => any) | undefined;
188
+ enabled?: boolean | undefined;
189
+ concurrency?: number | undefined;
190
+ failOnError?: boolean | undefined;
191
+ } & {
192
+ enabled?: boolean | undefined;
193
+ outputPath?: string | undefined;
194
+ autoSubfolderIndex?: boolean | undefined;
195
+ crawlLinks?: boolean | undefined;
196
+ retryCount?: number | undefined;
197
+ retryDelay?: number | undefined;
198
+ onSuccess?: ((args_0: {
199
+ page: {
200
+ path: string;
201
+ sitemap?: {
202
+ exclude?: boolean | undefined;
203
+ priority?: number | undefined;
204
+ changefreq?: "always" | "hourly" | "daily" | "weekly" | "monthly" | "yearly" | "never" | undefined;
205
+ lastmod?: string | Date | undefined;
206
+ alternateRefs?: {
207
+ href: string;
208
+ hreflang: string;
209
+ }[] | undefined;
210
+ images?: {
211
+ loc: string;
212
+ caption?: string | undefined;
213
+ title?: string | undefined;
214
+ }[] | undefined;
215
+ news?: {
216
+ title: string;
217
+ publication: {
218
+ name: string;
219
+ language: string;
220
+ };
221
+ publicationDate: string | Date;
222
+ } | undefined;
223
+ } | undefined;
224
+ fromCrawl?: boolean | undefined;
225
+ };
226
+ html: string;
227
+ }, ...args: unknown[]) => any) | undefined;
228
+ }) | undefined;
229
+ sitemap?: {
230
+ enabled: boolean;
231
+ outputPath: string;
232
+ host?: string | undefined;
233
+ } | undefined;
234
+ spa?: {
235
+ prerender: {
236
+ enabled: boolean;
237
+ outputPath: string;
238
+ autoSubfolderIndex?: boolean | undefined;
239
+ crawlLinks: boolean;
240
+ retryCount: number;
241
+ retryDelay?: number | undefined;
242
+ onSuccess?: ((args_0: {
243
+ page: {
244
+ path: string;
245
+ sitemap?: {
246
+ exclude?: boolean | undefined;
247
+ priority?: number | undefined;
248
+ changefreq?: "always" | "hourly" | "daily" | "weekly" | "monthly" | "yearly" | "never" | undefined;
249
+ lastmod?: string | Date | undefined;
250
+ alternateRefs?: {
251
+ href: string;
252
+ hreflang: string;
253
+ }[] | undefined;
254
+ images?: {
255
+ loc: string;
256
+ caption?: string | undefined;
257
+ title?: string | undefined;
258
+ }[] | undefined;
259
+ news?: {
260
+ title: string;
261
+ publication: {
262
+ name: string;
263
+ language: string;
264
+ };
265
+ publicationDate: string | Date;
266
+ } | undefined;
267
+ } | undefined;
268
+ fromCrawl?: boolean | undefined;
269
+ };
270
+ html: string;
271
+ }, ...args: unknown[]) => any) | undefined;
272
+ };
273
+ enabled: boolean;
274
+ maskPath: string;
275
+ } | undefined;
276
+ };
277
+ export type TanStackStartOutputConfig = ReturnType<typeof getTanStackStartOptions>;
278
+ export interface TanStackStartVitePluginCoreOptions {
279
+ framework: CompileStartFrameworkOptions;
280
+ getVirtualServerRootHandler: (ctx: {
281
+ routerFilepath: string;
282
+ serverEntryFilepath: string;
283
+ }) => string;
284
+ getVirtualServerEntry: (ctx: {
285
+ routerFilepath: string;
286
+ }) => string;
287
+ getVirtualClientEntry: (ctx: {
288
+ routerFilepath: string;
289
+ }) => string;
290
+ }
291
+ export declare function TanStackStartVitePluginCore(opts: TanStackStartVitePluginCoreOptions, startConfig: TanStackStartOutputConfig): Array<PluginOption>;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const path = require("node:path");
4
+ const vite = require("vite");
5
+ function _interopNamespaceDefault(e) {
6
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
7
+ if (e) {
8
+ for (const k in e) {
9
+ if (k !== "default") {
10
+ const d = Object.getOwnPropertyDescriptor(e, k);
11
+ Object.defineProperty(n, k, d.get ? d : {
12
+ enumerable: true,
13
+ get: () => e[k]
14
+ });
15
+ }
16
+ }
17
+ }
18
+ n.default = e;
19
+ return Object.freeze(n);
20
+ }
21
+ const vite__namespace = /* @__PURE__ */ _interopNamespaceDefault(vite);
22
+ function resolveVirtualEntriesPlugin(opts, startConfig) {
23
+ let resolvedConfig;
24
+ const modules = /* @__PURE__ */ new Set([
25
+ "/~start/server-entry",
26
+ "/~start/default-server-entry",
27
+ "/~start/default-client-entry"
28
+ ]);
29
+ return {
30
+ name: "tanstack-start-core:resolve-virtual-entries",
31
+ configResolved(config) {
32
+ resolvedConfig = config;
33
+ },
34
+ resolveId(id) {
35
+ if (modules.has(id)) {
36
+ return `${id}.tsx`;
37
+ }
38
+ return void 0;
39
+ },
40
+ load(id) {
41
+ const routerFilepath = vite__namespace.normalizePath(
42
+ path.resolve(startConfig.root, startConfig.tsr.srcDirectory, "router")
43
+ );
44
+ if (id === "/~start/server-entry.tsx") {
45
+ const ssrEntryFilepath = startConfig.serverEntryPath.startsWith(
46
+ "/~start/default-server-entry"
47
+ ) ? startConfig.serverEntryPath : vite__namespace.normalizePath(
48
+ path.resolve(resolvedConfig.root, startConfig.serverEntryPath)
49
+ );
50
+ return opts.getVirtualServerRootHandler({
51
+ routerFilepath,
52
+ serverEntryFilepath: ssrEntryFilepath
53
+ });
54
+ }
55
+ if (id === "/~start/default-client-entry.tsx") {
56
+ return opts.getVirtualClientEntry({ routerFilepath });
57
+ }
58
+ if (id === "/~start/default-server-entry.tsx") {
59
+ return opts.getVirtualServerEntry({ routerFilepath });
60
+ }
61
+ return void 0;
62
+ }
63
+ };
64
+ }
65
+ exports.resolveVirtualEntriesPlugin = resolveVirtualEntriesPlugin;
66
+ //# sourceMappingURL=plugin.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.cjs","sources":["../../../src/resolve-virtual-entries-plugin/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport * as vite from 'vite'\nimport type {\n TanStackStartOutputConfig,\n TanStackStartVitePluginCoreOptions,\n} from '../plugin'\n\nexport function resolveVirtualEntriesPlugin(\n opts: TanStackStartVitePluginCoreOptions,\n startConfig: TanStackStartOutputConfig,\n): vite.Plugin {\n let resolvedConfig: vite.ResolvedConfig\n\n const modules = new Set<string>([\n '/~start/server-entry',\n '/~start/default-server-entry',\n '/~start/default-client-entry',\n ])\n\n return {\n name: 'tanstack-start-core:resolve-virtual-entries',\n configResolved(config) {\n resolvedConfig = config\n },\n resolveId(id) {\n if (modules.has(id)) {\n return `${id}.tsx`\n }\n\n return undefined\n },\n load(id) {\n const routerFilepath = vite.normalizePath(\n path.resolve(startConfig.root, startConfig.tsr.srcDirectory, 'router'),\n )\n\n if (id === '/~start/server-entry.tsx') {\n const ssrEntryFilepath = startConfig.serverEntryPath.startsWith(\n '/~start/default-server-entry',\n )\n ? startConfig.serverEntryPath\n : vite.normalizePath(\n path.resolve(resolvedConfig.root, startConfig.serverEntryPath),\n )\n\n return opts.getVirtualServerRootHandler({\n routerFilepath,\n serverEntryFilepath: ssrEntryFilepath,\n })\n }\n\n if (id === '/~start/default-client-entry.tsx') {\n return opts.getVirtualClientEntry({ routerFilepath })\n }\n\n if (id === '/~start/default-server-entry.tsx') {\n return opts.getVirtualServerEntry({ routerFilepath })\n }\n\n return undefined\n },\n }\n}\n"],"names":["vite"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAOgB,SAAA,4BACd,MACA,aACa;AACT,MAAA;AAEE,QAAA,8BAAc,IAAY;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AAEM,SAAA;AAAA,IACL,MAAM;AAAA,IACN,eAAe,QAAQ;AACJ,uBAAA;AAAA,IACnB;AAAA,IACA,UAAU,IAAI;AACR,UAAA,QAAQ,IAAI,EAAE,GAAG;AACnB,eAAO,GAAG,EAAE;AAAA,MAAA;AAGP,aAAA;AAAA,IACT;AAAA,IACA,KAAK,IAAI;AACP,YAAM,iBAAiBA,gBAAK;AAAA,QAC1B,KAAK,QAAQ,YAAY,MAAM,YAAY,IAAI,cAAc,QAAQ;AAAA,MACvE;AAEA,UAAI,OAAO,4BAA4B;AAC/B,cAAA,mBAAmB,YAAY,gBAAgB;AAAA,UACnD;AAAA,QAAA,IAEE,YAAY,kBACZA,gBAAK;AAAA,UACH,KAAK,QAAQ,eAAe,MAAM,YAAY,eAAe;AAAA,QAC/D;AAEJ,eAAO,KAAK,4BAA4B;AAAA,UACtC;AAAA,UACA,qBAAqB;AAAA,QAAA,CACtB;AAAA,MAAA;AAGH,UAAI,OAAO,oCAAoC;AAC7C,eAAO,KAAK,sBAAsB,EAAE,gBAAgB;AAAA,MAAA;AAGtD,UAAI,OAAO,oCAAoC;AAC7C,eAAO,KAAK,sBAAsB,EAAE,gBAAgB;AAAA,MAAA;AAG/C,aAAA;AAAA,IAAA;AAAA,EAEX;AACF;;"}
@@ -0,0 +1,3 @@
1
+ import { TanStackStartOutputConfig, TanStackStartVitePluginCoreOptions } from '../plugin.cjs';
2
+ import * as vite from 'vite';
3
+ export declare function resolveVirtualEntriesPlugin(opts: TanStackStartVitePluginCoreOptions, startConfig: TanStackStartOutputConfig): vite.Plugin;
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const path = require("node:path");
4
+ const node_fs = require("node:fs");
5
+ const zod = require("zod");
6
+ const routerGenerator = require("@tanstack/router-generator");
7
+ const tsrConfig = routerGenerator.configSchema.omit({ autoCodeSplitting: true }).partial().extend({
8
+ srcDirectory: zod.z.string().optional().default("src")
9
+ });
10
+ function createTanStackConfig(frameworkPlugin) {
11
+ const schema = createTanStackStartOptionsSchema(frameworkPlugin);
12
+ return {
13
+ schema,
14
+ parse: (opts) => {
15
+ const options = schema.parse(opts);
16
+ const srcDirectory = options.tsr.srcDirectory;
17
+ const routesDirectory = options.tsr.routesDirectory ?? path.join(srcDirectory, "routes");
18
+ const generatedRouteTree = options.tsr.generatedRouteTree ?? path.join(srcDirectory, "routeTree.gen.ts");
19
+ const clientEntryPath = (() => {
20
+ if (options.client.entry) {
21
+ return path.join(srcDirectory, options.client.entry);
22
+ }
23
+ if (node_fs.existsSync(path.join(srcDirectory, "client.tsx"))) {
24
+ return path.join(srcDirectory, "client.tsx");
25
+ }
26
+ return "/~start/default-client-entry";
27
+ })();
28
+ const serverEntryPath = (() => {
29
+ if (options.server.entry) {
30
+ return path.join(srcDirectory, options.server.entry);
31
+ }
32
+ if (node_fs.existsSync(path.join(srcDirectory, "server.tsx"))) {
33
+ return path.join(srcDirectory, "server.tsx");
34
+ }
35
+ if (node_fs.existsSync(path.join(srcDirectory, "server.ts"))) {
36
+ return path.join(srcDirectory, "server.ts");
37
+ }
38
+ if (node_fs.existsSync(path.join(srcDirectory, "server.js"))) {
39
+ return path.join(srcDirectory, "server.js");
40
+ }
41
+ return "/~start/default-server-entry";
42
+ })();
43
+ return {
44
+ ...options,
45
+ tsr: {
46
+ ...options.tsr,
47
+ ...routerGenerator.getConfig({
48
+ ...options.tsr,
49
+ routesDirectory,
50
+ generatedRouteTree
51
+ })
52
+ },
53
+ clientEntryPath,
54
+ serverEntryPath
55
+ };
56
+ }
57
+ };
58
+ }
59
+ function createTanStackStartOptionsSchema(frameworkPlugin = {}) {
60
+ return zod.z.object({
61
+ root: zod.z.string().optional().default(process.cwd()),
62
+ target: zod.z.custom().optional(),
63
+ ...frameworkPlugin,
64
+ tsr: tsrConfig.optional().default({}),
65
+ client: zod.z.object({
66
+ entry: zod.z.string().optional(),
67
+ base: zod.z.string().optional().default("/_build")
68
+ }).optional().default({}),
69
+ server: zod.z.object({
70
+ entry: zod.z.string().optional()
71
+ }).optional().default({}),
72
+ serverFns: zod.z.object({
73
+ base: zod.z.string().optional().default("/_serverFn")
74
+ }).optional().default({}),
75
+ public: zod.z.object({
76
+ dir: zod.z.string().optional().default("public"),
77
+ base: zod.z.string().optional().default("/")
78
+ }).optional().default({}),
79
+ pages: zod.z.array(pageSchema).optional().default([]),
80
+ sitemap: zod.z.object({
81
+ enabled: zod.z.boolean().optional().default(true),
82
+ host: zod.z.string().optional(),
83
+ outputPath: zod.z.string().optional().default("sitemap.xml")
84
+ }).optional(),
85
+ prerender: zod.z.object({
86
+ enabled: zod.z.boolean().optional(),
87
+ concurrency: zod.z.number().optional(),
88
+ filter: zod.z.function().args(pageSchema).returns(zod.z.any()).optional(),
89
+ failOnError: zod.z.boolean().optional()
90
+ }).and(pagePrerenderOptionsSchema.optional()).optional(),
91
+ spa: spaSchema.optional()
92
+ }).optional().default({});
93
+ }
94
+ const pageSitemapOptionsSchema = zod.z.object({
95
+ exclude: zod.z.boolean().optional(),
96
+ priority: zod.z.number().min(0).max(1).optional(),
97
+ changefreq: zod.z.enum(["always", "hourly", "daily", "weekly", "monthly", "yearly", "never"]).optional(),
98
+ lastmod: zod.z.union([zod.z.string(), zod.z.date()]).optional(),
99
+ alternateRefs: zod.z.array(
100
+ zod.z.object({
101
+ href: zod.z.string(),
102
+ hreflang: zod.z.string()
103
+ })
104
+ ).optional(),
105
+ images: zod.z.array(
106
+ zod.z.object({
107
+ loc: zod.z.string(),
108
+ caption: zod.z.string().optional(),
109
+ title: zod.z.string().optional()
110
+ })
111
+ ).optional(),
112
+ news: zod.z.object({
113
+ publication: zod.z.object({
114
+ name: zod.z.string(),
115
+ language: zod.z.string()
116
+ }),
117
+ publicationDate: zod.z.union([zod.z.string(), zod.z.date()]),
118
+ title: zod.z.string()
119
+ }).optional()
120
+ });
121
+ const pageBaseSchema = zod.z.object({
122
+ path: zod.z.string(),
123
+ sitemap: pageSitemapOptionsSchema.optional(),
124
+ fromCrawl: zod.z.boolean().optional()
125
+ });
126
+ const pagePrerenderOptionsSchema = zod.z.object({
127
+ enabled: zod.z.boolean().optional(),
128
+ outputPath: zod.z.string().optional(),
129
+ autoSubfolderIndex: zod.z.boolean().optional(),
130
+ crawlLinks: zod.z.boolean().optional(),
131
+ retryCount: zod.z.number().optional(),
132
+ retryDelay: zod.z.number().optional(),
133
+ onSuccess: zod.z.function().args(
134
+ zod.z.object({
135
+ page: pageBaseSchema,
136
+ html: zod.z.string()
137
+ })
138
+ ).returns(zod.z.any()).optional()
139
+ });
140
+ const spaSchema = zod.z.object({
141
+ enabled: zod.z.boolean().optional().default(true),
142
+ maskPath: zod.z.string().optional().default("/"),
143
+ prerender: pagePrerenderOptionsSchema.optional().default({}).transform((opts) => ({
144
+ outputPath: opts.outputPath ?? "/_shell",
145
+ crawlLinks: false,
146
+ retryCount: 0,
147
+ ...opts,
148
+ enabled: true
149
+ }))
150
+ });
151
+ const pageSchema = pageBaseSchema.extend({
152
+ prerender: pagePrerenderOptionsSchema.optional()
153
+ });
154
+ exports.createTanStackConfig = createTanStackConfig;
155
+ exports.createTanStackStartOptionsSchema = createTanStackStartOptionsSchema;
156
+ exports.pageSchema = pageSchema;
157
+ //# sourceMappingURL=schema.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.cjs","sources":["../../src/schema.ts"],"sourcesContent":["import path from 'node:path'\nimport { existsSync } from 'node:fs'\nimport { z } from 'zod'\nimport { configSchema, getConfig } from '@tanstack/router-generator'\nimport type { NitroConfig } from 'nitropack'\n\nconst tsrConfig = configSchema\n .omit({ autoCodeSplitting: true })\n .partial()\n .extend({\n srcDirectory: z.string().optional().default('src'),\n })\n\nexport function createTanStackConfig<\n TFrameworkPlugin extends Record<string, unknown>,\n>(frameworkPlugin?: TFrameworkPlugin) {\n const schema = createTanStackStartOptionsSchema(frameworkPlugin)\n\n return {\n schema,\n parse: (opts?: z.input<typeof schema>) => {\n const options = schema.parse(opts)\n\n const srcDirectory = options.tsr.srcDirectory\n\n const routesDirectory =\n options.tsr.routesDirectory ?? path.join(srcDirectory, 'routes')\n\n const generatedRouteTree =\n options.tsr.generatedRouteTree ??\n path.join(srcDirectory, 'routeTree.gen.ts')\n\n const clientEntryPath = (() => {\n if (options.client.entry) {\n return path.join(srcDirectory, options.client.entry)\n }\n\n if (existsSync(path.join(srcDirectory, 'client.tsx'))) {\n return path.join(srcDirectory, 'client.tsx')\n }\n\n return '/~start/default-client-entry'\n })()\n\n const serverEntryPath = (() => {\n if (options.server.entry) {\n return path.join(srcDirectory, options.server.entry)\n }\n\n if (existsSync(path.join(srcDirectory, 'server.tsx'))) {\n return path.join(srcDirectory, 'server.tsx')\n }\n\n if (existsSync(path.join(srcDirectory, 'server.ts'))) {\n return path.join(srcDirectory, 'server.ts')\n }\n\n if (existsSync(path.join(srcDirectory, 'server.js'))) {\n return path.join(srcDirectory, 'server.js')\n }\n\n return '/~start/default-server-entry'\n })()\n\n return {\n ...options,\n tsr: {\n ...options.tsr,\n ...getConfig({\n ...options.tsr,\n routesDirectory,\n generatedRouteTree,\n }),\n },\n clientEntryPath,\n serverEntryPath,\n }\n },\n }\n}\n\nexport function createTanStackStartOptionsSchema(\n frameworkPlugin: Record<string, unknown> = {},\n) {\n return z\n .object({\n root: z.string().optional().default(process.cwd()),\n target: z.custom<NitroConfig['preset']>().optional(),\n ...frameworkPlugin,\n tsr: tsrConfig.optional().default({}),\n client: z\n .object({\n entry: z.string().optional(),\n base: z.string().optional().default('/_build'),\n })\n .optional()\n .default({}),\n server: z\n .object({\n entry: z.string().optional(),\n })\n .optional()\n .default({}),\n serverFns: z\n .object({\n base: z.string().optional().default('/_serverFn'),\n })\n .optional()\n .default({}),\n public: z\n .object({\n dir: z.string().optional().default('public'),\n base: z.string().optional().default('/'),\n })\n .optional()\n .default({}),\n pages: z.array(pageSchema).optional().default([]),\n sitemap: z\n .object({\n enabled: z.boolean().optional().default(true),\n host: z.string().optional(),\n outputPath: z.string().optional().default('sitemap.xml'),\n })\n .optional(),\n prerender: z\n .object({\n enabled: z.boolean().optional(),\n concurrency: z.number().optional(),\n filter: z.function().args(pageSchema).returns(z.any()).optional(),\n failOnError: z.boolean().optional(),\n })\n .and(pagePrerenderOptionsSchema.optional())\n .optional(),\n spa: spaSchema.optional(),\n })\n .optional()\n .default({})\n}\n\nconst pageSitemapOptionsSchema = z.object({\n exclude: z.boolean().optional(),\n priority: z.number().min(0).max(1).optional(),\n changefreq: z\n .enum(['always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never'])\n .optional(),\n lastmod: z.union([z.string(), z.date()]).optional(),\n alternateRefs: z\n .array(\n z.object({\n href: z.string(),\n hreflang: z.string(),\n }),\n )\n .optional(),\n images: z\n .array(\n z.object({\n loc: z.string(),\n caption: z.string().optional(),\n title: z.string().optional(),\n }),\n )\n .optional(),\n news: z\n .object({\n publication: z.object({\n name: z.string(),\n language: z.string(),\n }),\n publicationDate: z.union([z.string(), z.date()]),\n title: z.string(),\n })\n .optional(),\n})\n\nconst pageBaseSchema = z.object({\n path: z.string(),\n sitemap: pageSitemapOptionsSchema.optional(),\n fromCrawl: z.boolean().optional(),\n})\n\nconst pagePrerenderOptionsSchema = z.object({\n enabled: z.boolean().optional(),\n outputPath: z.string().optional(),\n autoSubfolderIndex: z.boolean().optional(),\n crawlLinks: z.boolean().optional(),\n retryCount: z.number().optional(),\n retryDelay: z.number().optional(),\n onSuccess: z\n .function()\n .args(\n z.object({\n page: pageBaseSchema,\n html: z.string(),\n }),\n )\n .returns(z.any())\n .optional(),\n})\n\nconst spaSchema = z.object({\n enabled: z.boolean().optional().default(true),\n maskPath: z.string().optional().default('/'),\n prerender: pagePrerenderOptionsSchema\n .optional()\n .default({})\n .transform((opts) => ({\n outputPath: opts.outputPath ?? '/_shell',\n crawlLinks: false,\n retryCount: 0,\n ...opts,\n enabled: true,\n })),\n})\n\nexport const pageSchema = pageBaseSchema.extend({\n prerender: pagePrerenderOptionsSchema.optional(),\n})\n\nexport type Page = z.infer<typeof pageSchema>\n"],"names":["configSchema","z","existsSync","getConfig"],"mappings":";;;;;;AAMA,MAAM,YAAYA,gBAAAA,aACf,KAAK,EAAE,mBAAmB,MAAM,EAChC,QAAQ,EACR,OAAO;AAAA,EACN,cAAcC,IAAE,EAAA,OAAA,EAAS,SAAS,EAAE,QAAQ,KAAK;AACnD,CAAC;AAEI,SAAS,qBAEd,iBAAoC;AAC9B,QAAA,SAAS,iCAAiC,eAAe;AAExD,SAAA;AAAA,IACL;AAAA,IACA,OAAO,CAAC,SAAkC;AAClC,YAAA,UAAU,OAAO,MAAM,IAAI;AAE3B,YAAA,eAAe,QAAQ,IAAI;AAEjC,YAAM,kBACJ,QAAQ,IAAI,mBAAmB,KAAK,KAAK,cAAc,QAAQ;AAEjE,YAAM,qBACJ,QAAQ,IAAI,sBACZ,KAAK,KAAK,cAAc,kBAAkB;AAE5C,YAAM,mBAAmB,MAAM;AACzB,YAAA,QAAQ,OAAO,OAAO;AACxB,iBAAO,KAAK,KAAK,cAAc,QAAQ,OAAO,KAAK;AAAA,QAAA;AAGrD,YAAIC,QAAAA,WAAW,KAAK,KAAK,cAAc,YAAY,CAAC,GAAG;AAC9C,iBAAA,KAAK,KAAK,cAAc,YAAY;AAAA,QAAA;AAGtC,eAAA;AAAA,MAAA,GACN;AAEH,YAAM,mBAAmB,MAAM;AACzB,YAAA,QAAQ,OAAO,OAAO;AACxB,iBAAO,KAAK,KAAK,cAAc,QAAQ,OAAO,KAAK;AAAA,QAAA;AAGrD,YAAIA,QAAAA,WAAW,KAAK,KAAK,cAAc,YAAY,CAAC,GAAG;AAC9C,iBAAA,KAAK,KAAK,cAAc,YAAY;AAAA,QAAA;AAG7C,YAAIA,QAAAA,WAAW,KAAK,KAAK,cAAc,WAAW,CAAC,GAAG;AAC7C,iBAAA,KAAK,KAAK,cAAc,WAAW;AAAA,QAAA;AAG5C,YAAIA,QAAAA,WAAW,KAAK,KAAK,cAAc,WAAW,CAAC,GAAG;AAC7C,iBAAA,KAAK,KAAK,cAAc,WAAW;AAAA,QAAA;AAGrC,eAAA;AAAA,MAAA,GACN;AAEI,aAAA;AAAA,QACL,GAAG;AAAA,QACH,KAAK;AAAA,UACH,GAAG,QAAQ;AAAA,UACX,GAAGC,0BAAU;AAAA,YACX,GAAG,QAAQ;AAAA,YACX;AAAA,YACA;AAAA,UACD,CAAA;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ;AACF;AAEgB,SAAA,iCACd,kBAA2C,IAC3C;AACA,SAAOF,IAAAA,EACJ,OAAO;AAAA,IACN,MAAMA,IAAAA,EAAE,SAAS,SAAW,EAAA,QAAQ,QAAQ,KAAK;AAAA,IACjD,QAAQA,IAAA,EAAE,OAA8B,EAAE,SAAS;AAAA,IACnD,GAAG;AAAA,IACH,KAAK,UAAU,WAAW,QAAQ,CAAA,CAAE;AAAA,IACpC,QAAQA,MACL,OAAO;AAAA,MACN,OAAOA,IAAA,EAAE,OAAO,EAAE,SAAS;AAAA,MAC3B,MAAMA,IAAE,EAAA,OAAA,EAAS,SAAS,EAAE,QAAQ,SAAS;AAAA,IAC9C,CAAA,EACA,SAAA,EACA,QAAQ,EAAE;AAAA,IACb,QAAQA,MACL,OAAO;AAAA,MACN,OAAOA,IAAAA,EAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,CAAA,EACA,SAAA,EACA,QAAQ,EAAE;AAAA,IACb,WAAWA,MACR,OAAO;AAAA,MACN,MAAMA,IAAE,EAAA,OAAA,EAAS,SAAS,EAAE,QAAQ,YAAY;AAAA,IACjD,CAAA,EACA,SAAA,EACA,QAAQ,EAAE;AAAA,IACb,QAAQA,MACL,OAAO;AAAA,MACN,KAAKA,IAAE,EAAA,OAAA,EAAS,SAAS,EAAE,QAAQ,QAAQ;AAAA,MAC3C,MAAMA,IAAE,EAAA,OAAA,EAAS,SAAS,EAAE,QAAQ,GAAG;AAAA,IACxC,CAAA,EACA,SAAA,EACA,QAAQ,EAAE;AAAA,IACb,OAAOA,MAAE,MAAM,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE;AAAA,IAChD,SAASA,MACN,OAAO;AAAA,MACN,SAASA,IAAE,EAAA,QAAA,EAAU,SAAS,EAAE,QAAQ,IAAI;AAAA,MAC5C,MAAMA,IAAA,EAAE,OAAO,EAAE,SAAS;AAAA,MAC1B,YAAYA,IAAE,EAAA,OAAA,EAAS,SAAS,EAAE,QAAQ,aAAa;AAAA,IACxD,CAAA,EACA,SAAS;AAAA,IACZ,WAAWA,MACR,OAAO;AAAA,MACN,SAASA,IAAA,EAAE,QAAQ,EAAE,SAAS;AAAA,MAC9B,aAAaA,IAAA,EAAE,OAAO,EAAE,SAAS;AAAA,MACjC,QAAQA,IAAA,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,QAAQA,IAAE,EAAA,IAAK,CAAA,EAAE,SAAS;AAAA,MAChE,aAAaA,IAAAA,EAAE,QAAQ,EAAE,SAAS;AAAA,IACnC,CAAA,EACA,IAAI,2BAA2B,SAAU,CAAA,EACzC,SAAS;AAAA,IACZ,KAAK,UAAU,SAAS;AAAA,EACzB,CAAA,EACA,SAAA,EACA,QAAQ,EAAE;AACf;AAEA,MAAM,2BAA2BA,MAAE,OAAO;AAAA,EACxC,SAASA,IAAA,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,UAAUA,IAAAA,EAAE,OAAA,EAAS,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC5C,YAAYA,IAAAA,EACT,KAAK,CAAC,UAAU,UAAU,SAAS,UAAU,WAAW,UAAU,OAAO,CAAC,EAC1E,SAAS;AAAA,EACZ,SAASA,IAAA,EAAE,MAAM,CAACA,MAAE,UAAUA,IAAAA,EAAE,KAAK,CAAC,CAAC,EAAE,SAAS;AAAA,EAClD,eAAeA,IACZ,EAAA;AAAA,IACCA,IAAAA,EAAE,OAAO;AAAA,MACP,MAAMA,MAAE,OAAO;AAAA,MACf,UAAUA,MAAE,OAAO;AAAA,IACpB,CAAA;AAAA,IAEF,SAAS;AAAA,EACZ,QAAQA,IACL,EAAA;AAAA,IACCA,IAAAA,EAAE,OAAO;AAAA,MACP,KAAKA,MAAE,OAAO;AAAA,MACd,SAASA,IAAA,EAAE,OAAO,EAAE,SAAS;AAAA,MAC7B,OAAOA,IAAAA,EAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,CAAA;AAAA,IAEF,SAAS;AAAA,EACZ,MAAMA,MACH,OAAO;AAAA,IACN,aAAaA,MAAE,OAAO;AAAA,MACpB,MAAMA,MAAE,OAAO;AAAA,MACf,UAAUA,MAAE,OAAO;AAAA,IAAA,CACpB;AAAA,IACD,iBAAiBA,IAAAA,EAAE,MAAM,CAACA,IAAAA,EAAE,UAAUA,IAAAA,EAAE,KAAK,CAAC,CAAC;AAAA,IAC/C,OAAOA,MAAE,OAAO;AAAA,EACjB,CAAA,EACA,SAAS;AACd,CAAC;AAED,MAAM,iBAAiBA,MAAE,OAAO;AAAA,EAC9B,MAAMA,MAAE,OAAO;AAAA,EACf,SAAS,yBAAyB,SAAS;AAAA,EAC3C,WAAWA,IAAAA,EAAE,QAAQ,EAAE,SAAS;AAClC,CAAC;AAED,MAAM,6BAA6BA,MAAE,OAAO;AAAA,EAC1C,SAASA,IAAA,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,YAAYA,IAAA,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,oBAAoBA,IAAA,EAAE,QAAQ,EAAE,SAAS;AAAA,EACzC,YAAYA,IAAA,EAAE,QAAQ,EAAE,SAAS;AAAA,EACjC,YAAYA,IAAA,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,YAAYA,IAAA,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,WAAWA,IAAAA,EACR,SAAA,EACA;AAAA,IACCA,IAAAA,EAAE,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAMA,MAAE,OAAO;AAAA,IAChB,CAAA;AAAA,IAEF,QAAQA,IAAAA,EAAE,IAAI,CAAC,EACf,SAAS;AACd,CAAC;AAED,MAAM,YAAYA,MAAE,OAAO;AAAA,EACzB,SAASA,IAAE,EAAA,QAAA,EAAU,SAAS,EAAE,QAAQ,IAAI;AAAA,EAC5C,UAAUA,IAAE,EAAA,OAAA,EAAS,SAAS,EAAE,QAAQ,GAAG;AAAA,EAC3C,WAAW,2BACR,WACA,QAAQ,CAAA,CAAE,EACV,UAAU,CAAC,UAAU;AAAA,IACpB,YAAY,KAAK,cAAc;AAAA,IAC/B,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,GAAG;AAAA,IACH,SAAS;AAAA,EAAA,EACT;AACN,CAAC;AAEY,MAAA,aAAa,eAAe,OAAO;AAAA,EAC9C,WAAW,2BAA2B,SAAS;AACjD,CAAC;;;;"}