@tanstack/start-plugin-core 1.167.18 → 1.167.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/config-context.d.ts +26 -0
- package/dist/esm/config-context.js +81 -0
- package/dist/esm/config-context.js.map +1 -0
- package/dist/esm/constants.d.ts +6 -1
- package/dist/esm/constants.js +3 -2
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/import-protection-plugin/extensionlessAbsoluteIdResolver.js +1 -1
- package/dist/esm/import-protection-plugin/plugin.js +1 -1
- package/dist/esm/import-protection-plugin/virtualModules.js +1 -1
- package/dist/esm/index.d.ts +5 -3
- package/dist/esm/index.js +3 -4
- package/dist/esm/planning.d.ts +40 -0
- package/dist/esm/planning.js +107 -0
- package/dist/esm/planning.js.map +1 -0
- package/dist/esm/schema.d.ts +3093 -44
- package/dist/esm/schema.js +5 -5
- package/dist/esm/schema.js.map +1 -1
- package/dist/esm/serialization-adapters-module.d.ts +17 -0
- package/dist/esm/serialization-adapters-module.js +39 -0
- package/dist/esm/serialization-adapters-module.js.map +1 -0
- package/dist/esm/{start-compiler-plugin → start-compiler}/compiler.d.ts +2 -3
- package/dist/esm/{start-compiler-plugin → start-compiler}/compiler.js +17 -16
- package/dist/esm/start-compiler/compiler.js.map +1 -0
- package/dist/esm/start-compiler/config.d.ts +4 -0
- package/dist/esm/start-compiler/config.js +54 -0
- package/dist/esm/start-compiler/config.js.map +1 -0
- package/dist/esm/{start-compiler-plugin → start-compiler}/handleClientOnlyJSX.js +1 -1
- package/dist/esm/start-compiler/handleClientOnlyJSX.js.map +1 -0
- package/dist/esm/{start-compiler-plugin → start-compiler}/handleCreateIsomorphicFn.js +1 -1
- package/dist/esm/start-compiler/handleCreateIsomorphicFn.js.map +1 -0
- package/dist/esm/{start-compiler-plugin → start-compiler}/handleCreateMiddleware.js +1 -1
- package/dist/esm/start-compiler/handleCreateMiddleware.js.map +1 -0
- package/dist/esm/{start-compiler-plugin → start-compiler}/handleCreateServerFn.js +6 -17
- package/dist/esm/start-compiler/handleCreateServerFn.js.map +1 -0
- package/dist/esm/{start-compiler-plugin → start-compiler}/handleEnvOnly.js +1 -1
- package/dist/esm/start-compiler/handleEnvOnly.js.map +1 -0
- package/dist/esm/start-compiler/host.d.ts +20 -0
- package/dist/esm/start-compiler/host.js +38 -0
- package/dist/esm/start-compiler/host.js.map +1 -0
- package/dist/esm/start-compiler/load-module.d.ts +14 -0
- package/dist/esm/start-compiler/load-module.js +18 -0
- package/dist/esm/start-compiler/load-module.js.map +1 -0
- package/dist/esm/start-compiler/server-fn-resolver-module.d.ts +8 -0
- package/dist/esm/start-compiler/server-fn-resolver-module.js +77 -0
- package/dist/esm/start-compiler/server-fn-resolver-module.js.map +1 -0
- package/dist/esm/{start-compiler-plugin → start-compiler}/types.d.ts +4 -0
- package/dist/esm/{start-compiler-plugin → start-compiler}/utils.js +1 -1
- package/dist/esm/start-compiler/utils.js.map +1 -0
- package/dist/esm/start-manifest-plugin/manifestBuilder.d.ts +16 -16
- package/dist/esm/start-manifest-plugin/manifestBuilder.js +14 -45
- package/dist/esm/start-manifest-plugin/manifestBuilder.js.map +1 -1
- package/dist/esm/start-router-plugin/route-tree-footer.d.ts +6 -0
- package/dist/esm/start-router-plugin/route-tree-footer.js +44 -0
- package/dist/esm/start-router-plugin/route-tree-footer.js.map +1 -0
- package/dist/esm/types.d.ts +44 -10
- package/dist/esm/{dev-server-plugin → vite/dev-server-plugin}/dev-styles.js +1 -1
- package/dist/esm/vite/dev-server-plugin/dev-styles.js.map +1 -0
- package/dist/esm/{dev-server-plugin → vite/dev-server-plugin}/extract-html-scripts.js +1 -1
- package/dist/esm/vite/dev-server-plugin/extract-html-scripts.js.map +1 -0
- package/dist/esm/vite/dev-server-plugin/plugin.d.ts +7 -0
- package/dist/esm/{dev-server-plugin → vite/dev-server-plugin}/plugin.js +5 -6
- package/dist/esm/vite/dev-server-plugin/plugin.js.map +1 -0
- package/dist/esm/{load-env-plugin → vite/load-env-plugin}/plugin.js +1 -1
- package/dist/esm/vite/load-env-plugin/plugin.js.map +1 -0
- package/dist/esm/{output-directory.js → vite/output-directory.js} +2 -2
- package/dist/esm/vite/output-directory.js.map +1 -0
- package/dist/esm/vite/planning.d.ts +105 -0
- package/dist/esm/vite/planning.js +116 -0
- package/dist/esm/vite/planning.js.map +1 -0
- package/dist/esm/vite/plugin.d.ts +4 -0
- package/dist/esm/vite/plugin.js +169 -0
- package/dist/esm/vite/plugin.js.map +1 -0
- package/dist/esm/vite/plugins.d.ts +17 -0
- package/dist/esm/vite/plugins.js +50 -0
- package/dist/esm/vite/plugins.js.map +1 -0
- package/dist/esm/{post-server-build.d.ts → vite/post-server-build.d.ts} +1 -1
- package/dist/esm/{post-server-build.js → vite/post-server-build.js} +4 -4
- package/dist/esm/vite/post-server-build.js.map +1 -0
- package/dist/esm/{prerender.d.ts → vite/prerender.d.ts} +1 -1
- package/dist/esm/{prerender.js → vite/prerender.js} +5 -10
- package/dist/esm/vite/prerender.js.map +1 -0
- package/dist/esm/{preview-server-plugin → vite/preview-server-plugin}/plugin.js +4 -4
- package/dist/esm/vite/preview-server-plugin/plugin.js.map +1 -0
- package/dist/esm/vite/schema.d.ts +3373 -0
- package/dist/esm/vite/schema.js +12 -0
- package/dist/esm/vite/schema.js.map +1 -0
- package/dist/esm/vite/serialization-adapters-plugin.d.ts +5 -0
- package/dist/esm/vite/serialization-adapters-plugin.js +42 -0
- package/dist/esm/vite/serialization-adapters-plugin.js.map +1 -0
- package/dist/esm/vite/start-compiler-plugin/module-specifier.d.ts +3 -0
- package/dist/esm/vite/start-compiler-plugin/module-specifier.js +19 -0
- package/dist/esm/vite/start-compiler-plugin/module-specifier.js.map +1 -0
- package/dist/esm/{start-compiler-plugin → vite/start-compiler-plugin}/plugin.d.ts +4 -3
- package/dist/esm/vite/start-compiler-plugin/plugin.js +202 -0
- package/dist/esm/vite/start-compiler-plugin/plugin.js.map +1 -0
- package/dist/esm/vite/start-manifest-plugin/normalized-client-build.d.ts +6 -0
- package/dist/esm/vite/start-manifest-plugin/normalized-client-build.js +81 -0
- package/dist/esm/vite/start-manifest-plugin/normalized-client-build.js.map +1 -0
- package/dist/esm/vite/start-manifest-plugin/plugin.d.ts +6 -0
- package/dist/esm/{start-manifest-plugin → vite/start-manifest-plugin}/plugin.js +14 -9
- package/dist/esm/vite/start-manifest-plugin/plugin.js.map +1 -0
- package/dist/esm/{start-router-plugin → vite/start-router-plugin}/plugin.d.ts +3 -2
- package/dist/esm/{start-router-plugin → vite/start-router-plugin}/plugin.js +14 -37
- package/dist/esm/vite/start-router-plugin/plugin.js.map +1 -0
- package/dist/esm/vite/types.d.ts +15 -0
- package/package.json +36 -25
- package/src/config-context.ts +138 -0
- package/src/constants.ts +7 -3
- package/src/index.ts +5 -5
- package/src/planning.ts +151 -0
- package/src/schema.ts +93 -93
- package/src/serialization-adapters-module.ts +82 -0
- package/src/{start-compiler-plugin → start-compiler}/compiler.ts +67 -61
- package/src/start-compiler/config.ts +73 -0
- package/src/{start-compiler-plugin → start-compiler}/handleCreateServerFn.ts +14 -41
- package/src/start-compiler/host.ts +80 -0
- package/src/start-compiler/load-module.ts +31 -0
- package/src/start-compiler/server-fn-resolver-module.ts +129 -0
- package/src/{start-compiler-plugin → start-compiler}/types.ts +5 -0
- package/src/start-manifest-plugin/manifestBuilder.ts +65 -107
- package/src/start-router-plugin/route-tree-footer.ts +99 -0
- package/src/types.ts +53 -10
- package/src/{dev-server-plugin → vite/dev-server-plugin}/plugin.ts +7 -6
- package/src/{output-directory.ts → vite/output-directory.ts} +2 -2
- package/src/vite/planning.ts +234 -0
- package/src/vite/plugin.ts +276 -0
- package/src/vite/plugins.ts +81 -0
- package/src/{post-server-build.ts → vite/post-server-build.ts} +4 -6
- package/src/{prerender.ts → vite/prerender.ts} +21 -46
- package/src/{preview-server-plugin → vite/preview-server-plugin}/plugin.ts +2 -2
- package/src/vite/schema.ts +30 -0
- package/src/vite/serialization-adapters-plugin.ts +69 -0
- package/src/vite/start-compiler-plugin/module-specifier.ts +31 -0
- package/src/vite/start-compiler-plugin/plugin.ts +345 -0
- package/src/vite/start-manifest-plugin/normalized-client-build.ts +131 -0
- package/src/{start-manifest-plugin → vite/start-manifest-plugin}/plugin.ts +21 -13
- package/src/{start-router-plugin → vite/start-router-plugin}/plugin.ts +14 -80
- package/src/vite/types.ts +18 -0
- package/LICENSE +0 -21
- package/dist/esm/dev-server-plugin/dev-styles.js.map +0 -1
- package/dist/esm/dev-server-plugin/extract-html-scripts.js.map +0 -1
- package/dist/esm/dev-server-plugin/plugin.d.ts +0 -6
- package/dist/esm/dev-server-plugin/plugin.js.map +0 -1
- package/dist/esm/load-env-plugin/plugin.js.map +0 -1
- package/dist/esm/output-directory.js.map +0 -1
- package/dist/esm/plugin.d.ts +0 -4
- package/dist/esm/plugin.js +0 -301
- package/dist/esm/plugin.js.map +0 -1
- package/dist/esm/post-server-build.js.map +0 -1
- package/dist/esm/prerender.js.map +0 -1
- package/dist/esm/preview-server-plugin/plugin.js.map +0 -1
- package/dist/esm/start-compiler-plugin/compiler.js.map +0 -1
- package/dist/esm/start-compiler-plugin/handleClientOnlyJSX.js.map +0 -1
- package/dist/esm/start-compiler-plugin/handleCreateIsomorphicFn.js.map +0 -1
- package/dist/esm/start-compiler-plugin/handleCreateMiddleware.js.map +0 -1
- package/dist/esm/start-compiler-plugin/handleCreateServerFn.js.map +0 -1
- package/dist/esm/start-compiler-plugin/handleEnvOnly.js.map +0 -1
- package/dist/esm/start-compiler-plugin/plugin.js +0 -297
- package/dist/esm/start-compiler-plugin/plugin.js.map +0 -1
- package/dist/esm/start-compiler-plugin/utils.js.map +0 -1
- package/dist/esm/start-manifest-plugin/plugin.d.ts +0 -6
- package/dist/esm/start-manifest-plugin/plugin.js.map +0 -1
- package/dist/esm/start-router-plugin/plugin.js.map +0 -1
- package/src/plugin.ts +0 -471
- package/src/start-compiler-plugin/plugin.ts +0 -478
- /package/dist/esm/{start-compiler-plugin → start-compiler}/handleClientOnlyJSX.d.ts +0 -0
- /package/dist/esm/{start-compiler-plugin → start-compiler}/handleCreateIsomorphicFn.d.ts +0 -0
- /package/dist/esm/{start-compiler-plugin → start-compiler}/handleCreateMiddleware.d.ts +0 -0
- /package/dist/esm/{start-compiler-plugin → start-compiler}/handleCreateServerFn.d.ts +0 -0
- /package/dist/esm/{start-compiler-plugin → start-compiler}/handleEnvOnly.d.ts +0 -0
- /package/dist/esm/{start-compiler-plugin → start-compiler}/utils.d.ts +0 -0
- /package/dist/esm/{dev-server-plugin → vite/dev-server-plugin}/dev-styles.d.ts +0 -0
- /package/dist/esm/{dev-server-plugin → vite/dev-server-plugin}/extract-html-scripts.d.ts +0 -0
- /package/dist/esm/{load-env-plugin → vite/load-env-plugin}/plugin.d.ts +0 -0
- /package/dist/esm/{output-directory.d.ts → vite/output-directory.d.ts} +0 -0
- /package/dist/esm/{preview-server-plugin → vite/preview-server-plugin}/plugin.d.ts +0 -0
- /package/src/{start-compiler-plugin → start-compiler}/handleClientOnlyJSX.ts +0 -0
- /package/src/{start-compiler-plugin → start-compiler}/handleCreateIsomorphicFn.ts +0 -0
- /package/src/{start-compiler-plugin → start-compiler}/handleCreateMiddleware.ts +0 -0
- /package/src/{start-compiler-plugin → start-compiler}/handleEnvOnly.ts +0 -0
- /package/src/{start-compiler-plugin → start-compiler}/utils.ts +0 -0
- /package/src/{dev-server-plugin → vite/dev-server-plugin}/dev-styles.ts +0 -0
- /package/src/{dev-server-plugin → vite/dev-server-plugin}/extract-html-scripts.ts +0 -0
- /package/src/{load-env-plugin → vite/load-env-plugin}/plugin.ts +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { resolveStartEntryPlan } from './planning.js';
|
|
2
|
+
import { TanStackStartOutputConfig } from './schema.js';
|
|
3
|
+
import { GetConfigFn, ResolvedStartConfig, TanStackStartCoreOptions } from './types.js';
|
|
4
|
+
export interface StartConfigContext {
|
|
5
|
+
resolvedStartConfig: ResolvedStartConfig;
|
|
6
|
+
getConfig: GetConfigFn;
|
|
7
|
+
resolveEntries: () => ReturnType<typeof resolveStartEntryPlan>;
|
|
8
|
+
}
|
|
9
|
+
export declare function createStartConfigContext<TInputConfig>(opts: {
|
|
10
|
+
corePluginOpts: TanStackStartCoreOptions;
|
|
11
|
+
startPluginOpts: TInputConfig | undefined;
|
|
12
|
+
parseConfig: (opts: TInputConfig | undefined, core: {
|
|
13
|
+
framework: TanStackStartCoreOptions['framework'];
|
|
14
|
+
}, root: string) => TanStackStartOutputConfig;
|
|
15
|
+
}): StartConfigContext;
|
|
16
|
+
export declare function applyResolvedBaseAndOutput(opts: {
|
|
17
|
+
resolvedStartConfig: ResolvedStartConfig;
|
|
18
|
+
root: string;
|
|
19
|
+
publicBase: string;
|
|
20
|
+
clientOutputDirectory: string;
|
|
21
|
+
serverOutputDirectory: string;
|
|
22
|
+
}): void;
|
|
23
|
+
export declare function applyResolvedRouterBasepath(opts: {
|
|
24
|
+
resolvedStartConfig: ResolvedStartConfig;
|
|
25
|
+
startConfig: TanStackStartOutputConfig;
|
|
26
|
+
}): string;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { createNormalizedBasePaths, createNormalizedOutputDirectories, deriveRouterBasepath, resolveStartEntryPlan } from "./planning.js";
|
|
2
|
+
//#region src/config-context.ts
|
|
3
|
+
function createStartConfigContext(opts) {
|
|
4
|
+
const resolvedStartConfig = {
|
|
5
|
+
root: "",
|
|
6
|
+
startFilePath: void 0,
|
|
7
|
+
routerFilePath: "",
|
|
8
|
+
srcDirectory: "",
|
|
9
|
+
basePaths: {
|
|
10
|
+
publicBase: "",
|
|
11
|
+
assetBase: {
|
|
12
|
+
dev: "",
|
|
13
|
+
build: ""
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
outputDirectories: {
|
|
17
|
+
client: "",
|
|
18
|
+
server: ""
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
let startConfig = null;
|
|
22
|
+
let resolvedEntryPlanCache;
|
|
23
|
+
function requireRoot() {
|
|
24
|
+
if (!resolvedStartConfig.root) throw new Error(`Cannot get config before root is resolved`);
|
|
25
|
+
return resolvedStartConfig.root;
|
|
26
|
+
}
|
|
27
|
+
function getStartConfig() {
|
|
28
|
+
if (!startConfig) startConfig = opts.parseConfig(opts.startPluginOpts, { framework: opts.corePluginOpts.framework }, requireRoot());
|
|
29
|
+
return startConfig;
|
|
30
|
+
}
|
|
31
|
+
function getResolvedEntryPlan() {
|
|
32
|
+
if (resolvedEntryPlanCache) return resolvedEntryPlanCache;
|
|
33
|
+
resolvedEntryPlanCache = resolveStartEntryPlan({
|
|
34
|
+
root: requireRoot(),
|
|
35
|
+
startConfig: getStartConfig(),
|
|
36
|
+
defaultEntryPaths: opts.corePluginOpts.defaultEntryPaths
|
|
37
|
+
});
|
|
38
|
+
Object.assign(resolvedStartConfig, {
|
|
39
|
+
srcDirectory: resolvedEntryPlanCache.srcDirectory,
|
|
40
|
+
startFilePath: resolvedEntryPlanCache.startFilePath,
|
|
41
|
+
routerFilePath: resolvedEntryPlanCache.routerFilePath
|
|
42
|
+
});
|
|
43
|
+
return resolvedEntryPlanCache;
|
|
44
|
+
}
|
|
45
|
+
const getConfig = () => {
|
|
46
|
+
const startConfig = getStartConfig();
|
|
47
|
+
getResolvedEntryPlan();
|
|
48
|
+
return {
|
|
49
|
+
startConfig,
|
|
50
|
+
resolvedStartConfig
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
function resolveEntries() {
|
|
54
|
+
return getResolvedEntryPlan();
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
resolvedStartConfig,
|
|
58
|
+
getConfig,
|
|
59
|
+
resolveEntries
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function applyResolvedBaseAndOutput(opts) {
|
|
63
|
+
opts.resolvedStartConfig.root = opts.root;
|
|
64
|
+
opts.resolvedStartConfig.basePaths = createNormalizedBasePaths({ publicBase: opts.publicBase });
|
|
65
|
+
opts.resolvedStartConfig.outputDirectories = createNormalizedOutputDirectories({
|
|
66
|
+
client: opts.clientOutputDirectory,
|
|
67
|
+
server: opts.serverOutputDirectory
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function applyResolvedRouterBasepath(opts) {
|
|
71
|
+
const routerBasepath = deriveRouterBasepath({
|
|
72
|
+
configuredBasepath: opts.startConfig.router.basepath,
|
|
73
|
+
publicBase: opts.resolvedStartConfig.basePaths.publicBase
|
|
74
|
+
});
|
|
75
|
+
opts.startConfig.router.basepath = routerBasepath;
|
|
76
|
+
return routerBasepath;
|
|
77
|
+
}
|
|
78
|
+
//#endregion
|
|
79
|
+
export { applyResolvedBaseAndOutput, applyResolvedRouterBasepath, createStartConfigContext };
|
|
80
|
+
|
|
81
|
+
//# sourceMappingURL=config-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-context.js","names":[],"sources":["../../src/config-context.ts"],"sourcesContent":["import {\n createNormalizedBasePaths,\n createNormalizedOutputDirectories,\n deriveRouterBasepath,\n resolveStartEntryPlan,\n} from './planning'\nimport type { TanStackStartOutputConfig } from './schema'\nimport type {\n GetConfigFn,\n ResolvedStartConfig,\n TanStackStartCoreOptions,\n} from './types'\n\nexport interface StartConfigContext {\n resolvedStartConfig: ResolvedStartConfig\n getConfig: GetConfigFn\n resolveEntries: () => ReturnType<typeof resolveStartEntryPlan>\n}\n\nexport function createStartConfigContext<TInputConfig>(opts: {\n corePluginOpts: TanStackStartCoreOptions\n startPluginOpts: TInputConfig | undefined\n parseConfig: (\n opts: TInputConfig | undefined,\n core: { framework: TanStackStartCoreOptions['framework'] },\n root: string,\n ) => TanStackStartOutputConfig\n}): StartConfigContext {\n const resolvedStartConfig: ResolvedStartConfig = {\n root: '',\n startFilePath: undefined,\n routerFilePath: '',\n srcDirectory: '',\n basePaths: {\n publicBase: '',\n assetBase: {\n dev: '',\n build: '',\n },\n },\n outputDirectories: {\n client: '',\n server: '',\n },\n }\n\n let startConfig: TanStackStartOutputConfig | null = null\n let resolvedEntryPlanCache:\n | ReturnType<typeof resolveStartEntryPlan>\n | undefined\n\n function requireRoot(): string {\n if (!resolvedStartConfig.root) {\n throw new Error(`Cannot get config before root is resolved`)\n }\n\n return resolvedStartConfig.root\n }\n\n function getStartConfig(): TanStackStartOutputConfig {\n if (!startConfig) {\n startConfig = opts.parseConfig(\n opts.startPluginOpts,\n { framework: opts.corePluginOpts.framework },\n requireRoot(),\n )\n }\n\n return startConfig\n }\n\n function getResolvedEntryPlan() {\n if (resolvedEntryPlanCache) {\n return resolvedEntryPlanCache\n }\n\n resolvedEntryPlanCache = resolveStartEntryPlan({\n root: requireRoot(),\n startConfig: getStartConfig(),\n defaultEntryPaths: opts.corePluginOpts.defaultEntryPaths,\n })\n\n Object.assign(resolvedStartConfig, {\n srcDirectory: resolvedEntryPlanCache.srcDirectory,\n startFilePath: resolvedEntryPlanCache.startFilePath,\n routerFilePath: resolvedEntryPlanCache.routerFilePath,\n })\n\n return resolvedEntryPlanCache\n }\n\n const getConfig: GetConfigFn = () => {\n const startConfig = getStartConfig()\n getResolvedEntryPlan()\n\n return { startConfig, resolvedStartConfig }\n }\n\n function resolveEntries() {\n return getResolvedEntryPlan()\n }\n\n return {\n resolvedStartConfig,\n getConfig,\n resolveEntries,\n }\n}\n\nexport function applyResolvedBaseAndOutput(opts: {\n resolvedStartConfig: ResolvedStartConfig\n root: string\n publicBase: string\n clientOutputDirectory: string\n serverOutputDirectory: string\n}): void {\n opts.resolvedStartConfig.root = opts.root\n opts.resolvedStartConfig.basePaths = createNormalizedBasePaths({\n publicBase: opts.publicBase,\n })\n opts.resolvedStartConfig.outputDirectories =\n createNormalizedOutputDirectories({\n client: opts.clientOutputDirectory,\n server: opts.serverOutputDirectory,\n })\n}\n\nexport function applyResolvedRouterBasepath(opts: {\n resolvedStartConfig: ResolvedStartConfig\n startConfig: TanStackStartOutputConfig\n}): string {\n const routerBasepath = deriveRouterBasepath({\n configuredBasepath: opts.startConfig.router.basepath,\n publicBase: opts.resolvedStartConfig.basePaths.publicBase,\n })\n opts.startConfig.router.basepath = routerBasepath\n return routerBasepath\n}\n"],"mappings":";;AAmBA,SAAgB,yBAAuC,MAQhC;CACrB,MAAM,sBAA2C;EAC/C,MAAM;EACN,eAAe,KAAA;EACf,gBAAgB;EAChB,cAAc;EACd,WAAW;GACT,YAAY;GACZ,WAAW;IACT,KAAK;IACL,OAAO;IACR;GACF;EACD,mBAAmB;GACjB,QAAQ;GACR,QAAQ;GACT;EACF;CAED,IAAI,cAAgD;CACpD,IAAI;CAIJ,SAAS,cAAsB;AAC7B,MAAI,CAAC,oBAAoB,KACvB,OAAM,IAAI,MAAM,4CAA4C;AAG9D,SAAO,oBAAoB;;CAG7B,SAAS,iBAA4C;AACnD,MAAI,CAAC,YACH,eAAc,KAAK,YACjB,KAAK,iBACL,EAAE,WAAW,KAAK,eAAe,WAAW,EAC5C,aAAa,CACd;AAGH,SAAO;;CAGT,SAAS,uBAAuB;AAC9B,MAAI,uBACF,QAAO;AAGT,2BAAyB,sBAAsB;GAC7C,MAAM,aAAa;GACnB,aAAa,gBAAgB;GAC7B,mBAAmB,KAAK,eAAe;GACxC,CAAC;AAEF,SAAO,OAAO,qBAAqB;GACjC,cAAc,uBAAuB;GACrC,eAAe,uBAAuB;GACtC,gBAAgB,uBAAuB;GACxC,CAAC;AAEF,SAAO;;CAGT,MAAM,kBAA+B;EACnC,MAAM,cAAc,gBAAgB;AACpC,wBAAsB;AAEtB,SAAO;GAAE;GAAa;GAAqB;;CAG7C,SAAS,iBAAiB;AACxB,SAAO,sBAAsB;;AAG/B,QAAO;EACL;EACA;EACA;EACD;;AAGH,SAAgB,2BAA2B,MAMlC;AACP,MAAK,oBAAoB,OAAO,KAAK;AACrC,MAAK,oBAAoB,YAAY,0BAA0B,EAC7D,YAAY,KAAK,YAClB,CAAC;AACF,MAAK,oBAAoB,oBACvB,kCAAkC;EAChC,QAAQ,KAAK;EACb,QAAQ,KAAK;EACd,CAAC;;AAGN,SAAgB,4BAA4B,MAGjC;CACT,MAAM,iBAAiB,qBAAqB;EAC1C,oBAAoB,KAAK,YAAY,OAAO;EAC5C,YAAY,KAAK,oBAAoB,UAAU;EAChD,CAAC;AACF,MAAK,YAAY,OAAO,WAAW;AACnC,QAAO"}
|
package/dist/esm/constants.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
export declare const START_ENVIRONMENT_NAMES: {
|
|
2
|
+
readonly server: "ssr";
|
|
3
|
+
readonly client: "client";
|
|
4
|
+
};
|
|
5
|
+
export type StartEnvironmentName = (typeof START_ENVIRONMENT_NAMES)[keyof typeof START_ENVIRONMENT_NAMES];
|
|
1
6
|
export declare const VITE_ENVIRONMENT_NAMES: {
|
|
2
7
|
readonly server: "ssr";
|
|
3
8
|
readonly client: "client";
|
|
4
9
|
};
|
|
5
|
-
export type ViteEnvironmentNames =
|
|
10
|
+
export type ViteEnvironmentNames = StartEnvironmentName;
|
|
6
11
|
export declare const ENTRY_POINTS: {
|
|
7
12
|
readonly client: "virtual:tanstack-start-client-entry";
|
|
8
13
|
readonly server: "virtual:tanstack-start-server-entry";
|
package/dist/esm/constants.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
//#region src/constants.ts
|
|
2
|
-
var
|
|
2
|
+
var START_ENVIRONMENT_NAMES = {
|
|
3
3
|
server: "ssr",
|
|
4
4
|
client: "client"
|
|
5
5
|
};
|
|
6
|
+
var VITE_ENVIRONMENT_NAMES = START_ENVIRONMENT_NAMES;
|
|
6
7
|
var ENTRY_POINTS = {
|
|
7
8
|
client: "virtual:tanstack-start-client-entry",
|
|
8
9
|
server: "virtual:tanstack-start-server-entry",
|
|
@@ -12,6 +13,6 @@ var ENTRY_POINTS = {
|
|
|
12
13
|
var SERVER_FN_LOOKUP = "server-fn-module-lookup";
|
|
13
14
|
var TRANSFORM_ID_REGEX = [/\.[cm]?[tj]sx?($|\?)/];
|
|
14
15
|
//#endregion
|
|
15
|
-
export { ENTRY_POINTS, SERVER_FN_LOOKUP, TRANSFORM_ID_REGEX, VITE_ENVIRONMENT_NAMES };
|
|
16
|
+
export { ENTRY_POINTS, SERVER_FN_LOOKUP, START_ENVIRONMENT_NAMES, TRANSFORM_ID_REGEX, VITE_ENVIRONMENT_NAMES };
|
|
16
17
|
|
|
17
18
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":[],"sources":["../../src/constants.ts"],"sourcesContent":["export const
|
|
1
|
+
{"version":3,"file":"constants.js","names":[],"sources":["../../src/constants.ts"],"sourcesContent":["export const START_ENVIRONMENT_NAMES = {\n // 'ssr' is chosen as the name for the server environment to ensure backwards compatibility\n // with vite plugins that are not compatible with the new vite environment API (e.g. tailwindcss)\n server: 'ssr',\n client: 'client',\n} as const\n\nexport type StartEnvironmentName =\n (typeof START_ENVIRONMENT_NAMES)[keyof typeof START_ENVIRONMENT_NAMES]\n\nexport const VITE_ENVIRONMENT_NAMES = START_ENVIRONMENT_NAMES\n\nexport type ViteEnvironmentNames = StartEnvironmentName\n\n// for client and router:\n// if a user has a custom server/client entry point file, resolve.alias will point to this\n// otherwise it will be aliased to the default entry point in the respective framework plugin\nexport const ENTRY_POINTS = {\n client: 'virtual:tanstack-start-client-entry',\n server: 'virtual:tanstack-start-server-entry',\n // the start entry point must always be provided by the user\n start: '#tanstack-start-entry',\n router: '#tanstack-router-entry',\n} as const\n\nexport const SERVER_FN_LOOKUP = 'server-fn-module-lookup'\n\n// matches\n// .ts, .tsx, .cts, .mts, .js, .jsx, .cjs, .mjs\n// with optional query params after\n// but not .json\nexport const TRANSFORM_ID_REGEX = [/\\.[cm]?[tj]sx?($|\\?)/]\n"],"mappings":";AAAA,IAAa,0BAA0B;CAGrC,QAAQ;CACR,QAAQ;CACT;AAKD,IAAa,yBAAyB;AAOtC,IAAa,eAAe;CAC1B,QAAQ;CACR,QAAQ;CAER,OAAO;CACP,QAAQ;CACT;AAED,IAAa,mBAAmB;AAMhC,IAAa,qBAAqB,CAAC,uBAAuB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { KNOWN_SOURCE_EXTENSIONS } from "./constants.js";
|
|
2
2
|
import { normalizeFilePath } from "./utils.js";
|
|
3
|
-
import { basename, dirname, extname, isAbsolute } from "node:path";
|
|
4
3
|
import { resolveModulePath } from "exsolve";
|
|
4
|
+
import { basename, dirname, extname, isAbsolute } from "node:path";
|
|
5
5
|
//#region src/import-protection-plugin/extensionlessAbsoluteIdResolver.ts
|
|
6
6
|
var FILE_RESOLUTION_EXTENSIONS = [...KNOWN_SOURCE_EXTENSIONS];
|
|
7
7
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { resolveViteId } from "../utils.js";
|
|
2
1
|
import { VITE_ENVIRONMENT_NAMES } from "../constants.js";
|
|
2
|
+
import { resolveViteId } from "../utils.js";
|
|
3
3
|
import { IMPORT_PROTECTION_DEBUG, SERVER_FN_LOOKUP_QUERY, VITE_BROWSER_VIRTUAL_PREFIX } from "./constants.js";
|
|
4
4
|
import { buildResolutionCandidates, buildSourceCandidates, canonicalizeResolvedId, clearNormalizeFilePathCache, debugLog, dedupePatterns, escapeRegExp, extractImportSources, getOrCreate, isInsideDirectory, matchesDebugFilter, normalizeFilePath, relativizePath, shouldDeferViolation } from "./utils.js";
|
|
5
5
|
import { ImportGraph, buildTrace, formatViolation } from "./trace.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { resolveViteId } from "../utils.js";
|
|
2
1
|
import { VITE_ENVIRONMENT_NAMES } from "../constants.js";
|
|
2
|
+
import { resolveViteId } from "../utils.js";
|
|
3
3
|
import { VITE_BROWSER_VIRTUAL_PREFIX } from "./constants.js";
|
|
4
4
|
import { relativizePath } from "./utils.js";
|
|
5
5
|
import { CLIENT_ENV_SUGGESTIONS } from "./trace.js";
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export type { TanStackStartInputConfig } from './schema.js';
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
2
|
+
export type { TanStackStartCoreOptions } from './types.js';
|
|
3
|
+
export type { TanStackStartVitePluginCoreOptions } from './vite/types.js';
|
|
4
|
+
export type { TanStackStartViteInputConfig } from './vite/schema.js';
|
|
5
|
+
export { START_ENVIRONMENT_NAMES, VITE_ENVIRONMENT_NAMES } from './constants.js';
|
|
6
|
+
export { tanStackStartVite } from './vite/plugin.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export { TanStackStartVitePluginCore, VITE_ENVIRONMENT_NAMES, resolveViteId };
|
|
1
|
+
import { START_ENVIRONMENT_NAMES, VITE_ENVIRONMENT_NAMES } from "./constants.js";
|
|
2
|
+
import { tanStackStartVite } from "./vite/plugin.js";
|
|
3
|
+
export { START_ENVIRONMENT_NAMES, VITE_ENVIRONMENT_NAMES, tanStackStartVite };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { TanStackStartOutputConfig } from './schema.js';
|
|
2
|
+
import { NormalizedBasePaths, NormalizedOutputDirectories, TanStackStartCoreOptions } from './types.js';
|
|
3
|
+
export interface ResolvedStartEntryPlan {
|
|
4
|
+
srcDirectory: string;
|
|
5
|
+
startFilePath: string | undefined;
|
|
6
|
+
routerFilePath: string;
|
|
7
|
+
entryPaths: {
|
|
8
|
+
client: string;
|
|
9
|
+
server: string;
|
|
10
|
+
start: string;
|
|
11
|
+
router: string;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare function normalizePublicBase(base: string | undefined): string;
|
|
15
|
+
export declare function deriveRouterBasepath(opts: {
|
|
16
|
+
configuredBasepath: string | undefined;
|
|
17
|
+
publicBase: string;
|
|
18
|
+
}): string;
|
|
19
|
+
export declare function shouldRewriteDevBasepath(opts: {
|
|
20
|
+
command: 'serve' | 'build';
|
|
21
|
+
middlewareMode: boolean | undefined;
|
|
22
|
+
routerBasepath: string;
|
|
23
|
+
publicBase: string;
|
|
24
|
+
}): boolean;
|
|
25
|
+
export declare function createNormalizedBasePaths(opts: {
|
|
26
|
+
publicBase: string;
|
|
27
|
+
}): NormalizedBasePaths;
|
|
28
|
+
export declare function createNormalizedOutputDirectories(opts: {
|
|
29
|
+
client: string;
|
|
30
|
+
server: string;
|
|
31
|
+
}): NormalizedOutputDirectories;
|
|
32
|
+
export declare function createServerFnBasePath(opts: {
|
|
33
|
+
routerBasepath: string;
|
|
34
|
+
serverFnBase: string;
|
|
35
|
+
}): string;
|
|
36
|
+
export declare function resolveStartEntryPlan(opts: {
|
|
37
|
+
root: string;
|
|
38
|
+
startConfig: TanStackStartOutputConfig;
|
|
39
|
+
defaultEntryPaths: TanStackStartCoreOptions['defaultEntryPaths'];
|
|
40
|
+
}): ResolvedStartEntryPlan;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { resolveEntry } from "./resolve-entries.js";
|
|
2
|
+
import { joinPaths } from "@tanstack/router-core";
|
|
3
|
+
import { join } from "pathe";
|
|
4
|
+
//#region src/planning.ts
|
|
5
|
+
function normalizePublicBase(base) {
|
|
6
|
+
const resolvedBase = base ?? "/";
|
|
7
|
+
if (isFullUrl(resolvedBase)) return resolvedBase;
|
|
8
|
+
return joinPaths([
|
|
9
|
+
"/",
|
|
10
|
+
resolvedBase,
|
|
11
|
+
"/"
|
|
12
|
+
]);
|
|
13
|
+
}
|
|
14
|
+
function deriveRouterBasepath(opts) {
|
|
15
|
+
if (opts.configuredBasepath !== void 0) return opts.configuredBasepath;
|
|
16
|
+
if (isFullUrl(opts.publicBase)) return "/";
|
|
17
|
+
return opts.publicBase.replace(/^\/|\/$/g, "");
|
|
18
|
+
}
|
|
19
|
+
function shouldRewriteDevBasepath(opts) {
|
|
20
|
+
if (opts.command !== "serve" || opts.middlewareMode) return false;
|
|
21
|
+
return !joinPaths([
|
|
22
|
+
"/",
|
|
23
|
+
opts.routerBasepath,
|
|
24
|
+
"/"
|
|
25
|
+
]).startsWith(joinPaths([
|
|
26
|
+
"/",
|
|
27
|
+
opts.publicBase,
|
|
28
|
+
"/"
|
|
29
|
+
]));
|
|
30
|
+
}
|
|
31
|
+
function createNormalizedBasePaths(opts) {
|
|
32
|
+
return {
|
|
33
|
+
publicBase: opts.publicBase,
|
|
34
|
+
assetBase: {
|
|
35
|
+
dev: opts.publicBase,
|
|
36
|
+
build: opts.publicBase
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function createNormalizedOutputDirectories(opts) {
|
|
41
|
+
return {
|
|
42
|
+
client: opts.client,
|
|
43
|
+
server: opts.server
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function createServerFnBasePath(opts) {
|
|
47
|
+
return joinPaths([
|
|
48
|
+
"/",
|
|
49
|
+
opts.routerBasepath,
|
|
50
|
+
opts.serverFnBase,
|
|
51
|
+
"/"
|
|
52
|
+
]);
|
|
53
|
+
}
|
|
54
|
+
function resolveStartEntryPlan(opts) {
|
|
55
|
+
const srcDirectory = join(opts.root, opts.startConfig.srcDirectory);
|
|
56
|
+
const startFilePath = resolveEntry({
|
|
57
|
+
type: "start entry",
|
|
58
|
+
configuredEntry: opts.startConfig.start.entry,
|
|
59
|
+
defaultEntry: "start",
|
|
60
|
+
resolvedSrcDirectory: srcDirectory,
|
|
61
|
+
required: false
|
|
62
|
+
});
|
|
63
|
+
const routerFilePath = resolveEntry({
|
|
64
|
+
type: "router entry",
|
|
65
|
+
configuredEntry: opts.startConfig.router.entry,
|
|
66
|
+
defaultEntry: "router",
|
|
67
|
+
resolvedSrcDirectory: srcDirectory,
|
|
68
|
+
required: true
|
|
69
|
+
});
|
|
70
|
+
const clientEntryPath = resolveEntry({
|
|
71
|
+
type: "client entry",
|
|
72
|
+
configuredEntry: opts.startConfig.client.entry,
|
|
73
|
+
defaultEntry: "client",
|
|
74
|
+
resolvedSrcDirectory: srcDirectory,
|
|
75
|
+
required: false
|
|
76
|
+
});
|
|
77
|
+
const serverEntryPath = resolveEntry({
|
|
78
|
+
type: "server entry",
|
|
79
|
+
configuredEntry: opts.startConfig.server.entry,
|
|
80
|
+
defaultEntry: "server",
|
|
81
|
+
resolvedSrcDirectory: srcDirectory,
|
|
82
|
+
required: false
|
|
83
|
+
});
|
|
84
|
+
return {
|
|
85
|
+
srcDirectory,
|
|
86
|
+
startFilePath,
|
|
87
|
+
routerFilePath,
|
|
88
|
+
entryPaths: {
|
|
89
|
+
client: clientEntryPath ?? opts.defaultEntryPaths.client,
|
|
90
|
+
server: serverEntryPath ?? opts.defaultEntryPaths.server,
|
|
91
|
+
start: startFilePath ?? opts.defaultEntryPaths.start,
|
|
92
|
+
router: routerFilePath
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
function isFullUrl(str) {
|
|
97
|
+
try {
|
|
98
|
+
new URL(str);
|
|
99
|
+
return true;
|
|
100
|
+
} catch {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//#endregion
|
|
105
|
+
export { createNormalizedBasePaths, createNormalizedOutputDirectories, createServerFnBasePath, deriveRouterBasepath, normalizePublicBase, resolveStartEntryPlan, shouldRewriteDevBasepath };
|
|
106
|
+
|
|
107
|
+
//# sourceMappingURL=planning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planning.js","names":[],"sources":["../../src/planning.ts"],"sourcesContent":["import { joinPaths } from '@tanstack/router-core'\nimport { join } from 'pathe'\nimport { resolveEntry } from './resolve-entries'\nimport type { TanStackStartOutputConfig } from './schema'\nimport type {\n NormalizedBasePaths,\n NormalizedOutputDirectories,\n TanStackStartCoreOptions,\n} from './types'\n\nexport interface ResolvedStartEntryPlan {\n srcDirectory: string\n startFilePath: string | undefined\n routerFilePath: string\n entryPaths: {\n client: string\n server: string\n start: string\n router: string\n }\n}\n\nexport function normalizePublicBase(base: string | undefined): string {\n const resolvedBase = base ?? '/'\n\n if (isFullUrl(resolvedBase)) {\n return resolvedBase\n }\n\n return joinPaths(['/', resolvedBase, '/'])\n}\n\nexport function deriveRouterBasepath(opts: {\n configuredBasepath: string | undefined\n publicBase: string\n}): string {\n if (opts.configuredBasepath !== undefined) {\n return opts.configuredBasepath\n }\n\n if (isFullUrl(opts.publicBase)) {\n return '/'\n }\n\n return opts.publicBase.replace(/^\\/|\\/$/g, '')\n}\n\nexport function shouldRewriteDevBasepath(opts: {\n command: 'serve' | 'build'\n middlewareMode: boolean | undefined\n routerBasepath: string\n publicBase: string\n}): boolean {\n if (opts.command !== 'serve' || opts.middlewareMode) {\n return false\n }\n\n return !joinPaths(['/', opts.routerBasepath, '/']).startsWith(\n joinPaths(['/', opts.publicBase, '/']),\n )\n}\n\nexport function createNormalizedBasePaths(opts: {\n publicBase: string\n}): NormalizedBasePaths {\n return {\n publicBase: opts.publicBase,\n assetBase: {\n dev: opts.publicBase,\n build: opts.publicBase,\n },\n }\n}\n\nexport function createNormalizedOutputDirectories(opts: {\n client: string\n server: string\n}): NormalizedOutputDirectories {\n return {\n client: opts.client,\n server: opts.server,\n }\n}\n\nexport function createServerFnBasePath(opts: {\n routerBasepath: string\n serverFnBase: string\n}): string {\n return joinPaths(['/', opts.routerBasepath, opts.serverFnBase, '/'])\n}\n\nexport function resolveStartEntryPlan(opts: {\n root: string\n startConfig: TanStackStartOutputConfig\n defaultEntryPaths: TanStackStartCoreOptions['defaultEntryPaths']\n}): ResolvedStartEntryPlan {\n const srcDirectory = join(opts.root, opts.startConfig.srcDirectory)\n\n const startFilePath = resolveEntry({\n type: 'start entry',\n configuredEntry: opts.startConfig.start.entry,\n defaultEntry: 'start',\n resolvedSrcDirectory: srcDirectory,\n required: false,\n })\n\n const routerFilePath = resolveEntry({\n type: 'router entry',\n configuredEntry: opts.startConfig.router.entry,\n defaultEntry: 'router',\n resolvedSrcDirectory: srcDirectory,\n required: true,\n })\n\n const clientEntryPath = resolveEntry({\n type: 'client entry',\n configuredEntry: opts.startConfig.client.entry,\n defaultEntry: 'client',\n resolvedSrcDirectory: srcDirectory,\n required: false,\n })\n\n const serverEntryPath = resolveEntry({\n type: 'server entry',\n configuredEntry: opts.startConfig.server.entry,\n defaultEntry: 'server',\n resolvedSrcDirectory: srcDirectory,\n required: false,\n })\n\n return {\n srcDirectory,\n startFilePath,\n routerFilePath,\n entryPaths: {\n client: clientEntryPath ?? opts.defaultEntryPaths.client,\n server: serverEntryPath ?? opts.defaultEntryPaths.server,\n start: startFilePath ?? opts.defaultEntryPaths.start,\n router: routerFilePath,\n },\n }\n}\n\nfunction isFullUrl(str: string): boolean {\n try {\n new URL(str)\n return true\n } catch {\n return false\n }\n}\n"],"mappings":";;;;AAsBA,SAAgB,oBAAoB,MAAkC;CACpE,MAAM,eAAe,QAAQ;AAE7B,KAAI,UAAU,aAAa,CACzB,QAAO;AAGT,QAAO,UAAU;EAAC;EAAK;EAAc;EAAI,CAAC;;AAG5C,SAAgB,qBAAqB,MAG1B;AACT,KAAI,KAAK,uBAAuB,KAAA,EAC9B,QAAO,KAAK;AAGd,KAAI,UAAU,KAAK,WAAW,CAC5B,QAAO;AAGT,QAAO,KAAK,WAAW,QAAQ,YAAY,GAAG;;AAGhD,SAAgB,yBAAyB,MAK7B;AACV,KAAI,KAAK,YAAY,WAAW,KAAK,eACnC,QAAO;AAGT,QAAO,CAAC,UAAU;EAAC;EAAK,KAAK;EAAgB;EAAI,CAAC,CAAC,WACjD,UAAU;EAAC;EAAK,KAAK;EAAY;EAAI,CAAC,CACvC;;AAGH,SAAgB,0BAA0B,MAElB;AACtB,QAAO;EACL,YAAY,KAAK;EACjB,WAAW;GACT,KAAK,KAAK;GACV,OAAO,KAAK;GACb;EACF;;AAGH,SAAgB,kCAAkC,MAGlB;AAC9B,QAAO;EACL,QAAQ,KAAK;EACb,QAAQ,KAAK;EACd;;AAGH,SAAgB,uBAAuB,MAG5B;AACT,QAAO,UAAU;EAAC;EAAK,KAAK;EAAgB,KAAK;EAAc;EAAI,CAAC;;AAGtE,SAAgB,sBAAsB,MAIX;CACzB,MAAM,eAAe,KAAK,KAAK,MAAM,KAAK,YAAY,aAAa;CAEnE,MAAM,gBAAgB,aAAa;EACjC,MAAM;EACN,iBAAiB,KAAK,YAAY,MAAM;EACxC,cAAc;EACd,sBAAsB;EACtB,UAAU;EACX,CAAC;CAEF,MAAM,iBAAiB,aAAa;EAClC,MAAM;EACN,iBAAiB,KAAK,YAAY,OAAO;EACzC,cAAc;EACd,sBAAsB;EACtB,UAAU;EACX,CAAC;CAEF,MAAM,kBAAkB,aAAa;EACnC,MAAM;EACN,iBAAiB,KAAK,YAAY,OAAO;EACzC,cAAc;EACd,sBAAsB;EACtB,UAAU;EACX,CAAC;CAEF,MAAM,kBAAkB,aAAa;EACnC,MAAM;EACN,iBAAiB,KAAK,YAAY,OAAO;EACzC,cAAc;EACd,sBAAsB;EACtB,UAAU;EACX,CAAC;AAEF,QAAO;EACL;EACA;EACA;EACA,YAAY;GACV,QAAQ,mBAAmB,KAAK,kBAAkB;GAClD,QAAQ,mBAAmB,KAAK,kBAAkB;GAClD,OAAO,iBAAiB,KAAK,kBAAkB;GAC/C,QAAQ;GACT;EACF;;AAGH,SAAS,UAAU,KAAsB;AACvC,KAAI;AACF,MAAI,IAAI,IAAI;AACZ,SAAO;SACD;AACN,SAAO"}
|