@neutron-build/cli 0.0.1 → 0.1.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAiCA,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA0f3C"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAmCA,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAinB3C"}
@@ -1,8 +1,9 @@
1
1
  import * as path from "node:path";
2
2
  import * as fs from "node:fs";
3
+ import { createHash } from "node:crypto";
3
4
  import { build as viteBuild, loadConfigFromFile, mergeConfig, createServer } from "vite";
4
- import { neutronPlugin } from "@neutron-build/core/vite";
5
- import { discoverRoutes, adapterCloudflare, adapterDocker, adapterStatic, adapterVercel, prepareContentCollections, prepareRouteTypes, resolveRuntime, resolveRuntimeAliases, resolveRuntimeNoExternal, mergeSeoMetaInput, renderDocumentHead, } from "@neutron-build/core";
5
+ import { neutronPlugin, CLIENT_ROUTE_QUERY } from "@neutron-build/core/vite";
6
+ import { discoverRoutes, adapterCloudflare, adapterDocker, adapterStatic, adapterVercel, prepareContentCollections, prepareRouteTypes, resolveRuntime, resolveRuntimeAliases, resolveRuntimeNoExternal, mergeSeoMetaInput, renderDocumentHead, setActiveMarkdownConfig, } from "@neutron-build/core";
6
7
  import { renderToString } from "preact-render-to-string";
7
8
  import { h } from "preact";
8
9
  export async function build() {
@@ -15,10 +16,18 @@ export async function build() {
15
16
  const runtimeNoExternal = resolveRuntimeNoExternal(runtime);
16
17
  const buildArgs = parseBuildArgs(process.argv.slice(3));
17
18
  const selectedAdapter = resolveAdapterForBuild(neutronConfig, buildArgs);
19
+ // Wire user-supplied markdown config (marked extensions, remark/rehype
20
+ // plugins) so it's picked up by content rendering throughout the build.
21
+ setActiveMarkdownConfig(neutronConfig.markdown);
18
22
  await prepareContentCollections({
19
23
  rootDir: cwd,
20
- writeManifest: true,
24
+ // Manifest is only a runtime fallback for sites lacking a content.config.ts.
25
+ // Skipping the write avoids a JSON.stringify overflow on very large content
26
+ // sets (Node's max string length is ~512 MiB and KaTeX-rendered HTML can
27
+ // push the combined manifest past that).
28
+ writeManifest: false,
21
29
  writeTypes: true,
30
+ markdownConfig: neutronConfig.markdown,
22
31
  });
23
32
  await prepareRouteTypes({
24
33
  rootDir: cwd,
@@ -34,26 +43,82 @@ export async function build() {
34
43
  const pageRoutes = routes.filter((r) => !r.file.includes("_layout"));
35
44
  const staticRouteCount = pageRoutes.filter((route) => route.config.mode === "static").length;
36
45
  const appRouteCount = pageRoutes.filter((route) => route.config.mode === "app").length;
37
- console.log(`Found ${routes.length} routes:\n`);
38
- for (const route of routes) {
46
+ // Static-only sites can still use <Island> for interactive hydration; if any
47
+ // source file references Island from the client entrypoint, we need the full
48
+ // client bundle (not just CSS) so the island-runtime + component code ship
49
+ // to the browser.
50
+ function fileUsesIsland(p) {
51
+ try {
52
+ const src = fs.readFileSync(p, "utf-8");
53
+ return /\bIsland\b/.test(src) && /from\s+["'][^"']*@neutron-build\/core\/client["']/.test(src);
54
+ }
55
+ catch {
56
+ return false;
57
+ }
58
+ }
59
+ function walkForIslands(dir) {
60
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
61
+ if (entry.name === "node_modules" || entry.name.startsWith("."))
62
+ continue;
63
+ const p = path.join(dir, entry.name);
64
+ if (entry.isDirectory()) {
65
+ if (walkForIslands(p))
66
+ return true;
67
+ }
68
+ else if (/\.(tsx|ts|jsx|js)$/.test(entry.name) && fileUsesIsland(p)) {
69
+ return true;
70
+ }
71
+ }
72
+ return false;
73
+ }
74
+ const srcDir = path.join(cwd, "src");
75
+ const hasIslands = routes.some((r) => fileUsesIsland(r.file)) ||
76
+ (fs.existsSync(srcDir) && walkForIslands(srcDir));
77
+ void staticRouteCount;
78
+ // List only page routes — `_layout` files are layouts, not navigable routes,
79
+ // and listing them produced confusing duplicates (e.g. `/` shown twice).
80
+ console.log(`Found ${pageRoutes.length} routes:\n`);
81
+ for (const route of pageRoutes) {
39
82
  const isStatic = route.config.mode === "static";
40
83
  const type = isStatic ? "static" : "app";
41
84
  const hasParams = route.params.length > 0;
42
85
  const paramNote = hasParams ? " (has params)" : "";
43
86
  console.log(` ${route.path} (${type})${paramNote}`);
44
87
  }
88
+ if (hasIslands && appRouteCount === 0) {
89
+ console.log("\n (static routes with islands — client bundle will be emitted for hydration)");
90
+ }
45
91
  console.log("");
46
92
  const loadedConfig = await loadConfigFromFile({ command: "build", mode: "production" }, undefined, cwd);
47
93
  const userConfig = loadedConfig?.config || {};
94
+ // CSS Modules: pin scoped class names to a deterministic function of (local
95
+ // name, file path). The static/app pages are pre-rendered by a Vite *dev* SSR
96
+ // instance (createServer below) while their CSS is emitted by a separate Vite
97
+ // *build* instance; Vite's default scoped-name hashing differs between the two,
98
+ // so module classes in the HTML would not match any rule in the emitted CSS.
99
+ // Forcing one deterministic name in every Vite instance keeps them in sync.
100
+ const cwdFwd = cwd.replace(/\\/g, "/");
101
+ const cssConfig = {
102
+ modules: {
103
+ generateScopedName(name, filename) {
104
+ const clean = filename.replace(/\?.*$/, "").replace(/\\/g, "/");
105
+ const rel = clean.startsWith(cwdFwd + "/") ? clean.slice(cwdFwd.length + 1) : clean;
106
+ const hash = createHash("sha256").update(`${rel}#${name}`).digest("hex").slice(0, 8);
107
+ const safe = name.replace(/[^a-zA-Z0-9_-]/g, "_");
108
+ return `_${safe}_${hash}`;
109
+ },
110
+ },
111
+ };
48
112
  // Build client assets. For static-only sites (no app routes), create a
49
113
  // temporary CSS-only entry so Vite still extracts stylesheets without
50
114
  // requiring an index.html entry point.
51
- if (appRouteCount > 0) {
115
+ if (appRouteCount > 0 || hasIslands) {
52
116
  console.log("Building client bundle...");
53
117
  await viteBuild(mergeConfig(userConfig, {
54
118
  configFile: false,
55
119
  root: cwd,
56
120
  plugins: [neutronPlugin({ routesDir, rootDir: cwd, routeRules: neutronConfig.routes })],
121
+ css: cssConfig,
57
122
  resolve: {
58
123
  ...(runtimeAliases ? { alias: runtimeAliases } : {}),
59
124
  dedupe: ["preact", "preact/hooks", "preact/compat", "preact/jsx-runtime"],
@@ -69,21 +134,35 @@ export async function build() {
69
134
  const cssEntryDir = path.join(cwd, ".neutron");
70
135
  fs.mkdirSync(cssEntryDir, { recursive: true });
71
136
  const cssEntryPath = path.join(cssEntryDir, "_css-entry.js");
72
- const cssImports = new Set();
73
- for (const route of routes) {
74
- try {
75
- const src = fs.readFileSync(route.file, "utf-8");
76
- for (const m of src.matchAll(/import\s+["']([^"']+\.css)["']/g)) {
77
- cssImports.add(path.resolve(path.dirname(route.file), m[1]));
78
- }
79
- }
80
- catch { }
81
- }
82
- fs.writeFileSync(cssEntryPath, [...cssImports].map((p) => `import ${JSON.stringify(p)};`).join("\n") + "\n");
137
+ // Import every route + layout MODULE through the client-route pipeline so Vite
138
+ // walks the real import graph and extracts ALL reachable CSS — side-effect
139
+ // imports, component-level CSS, AND CSS Modules — not just side-effect `*.css`
140
+ // imports textually present in the route file. The ?CLIENT_ROUTE_QUERY suffix
141
+ // makes neutronPlugin strip server-only code (loader/action) while keeping CSS
142
+ // imports in build mode, exactly as the client bundle does. Root-relative paths
143
+ // (`/src/...`) are used so Vite resolves them from the project root.
144
+ // Namespace-import + export each module so its component graph is NOT
145
+ // tree-shaken. Side-effect-only imports would keep `import "x.css"` lines but
146
+ // drop value-imported CSS Modules (`import s from "x.module.css"`) once the
147
+ // unused component that references them is shaken away.
148
+ const importLines = [];
149
+ const keepRefs = [];
150
+ routes.forEach((route, i) => {
151
+ const abs = route.file.replace(/\\/g, "/");
152
+ const rel = abs.startsWith(cwdFwd + "/") ? abs.slice(cwdFwd.length) : "/@fs" + abs;
153
+ importLines.push(`import * as __r${i} from ${JSON.stringify(rel + "?" + CLIENT_ROUTE_QUERY)};`);
154
+ keepRefs.push(`__r${i}`);
155
+ });
156
+ fs.writeFileSync(cssEntryPath, importLines.join("\n") + `\nexport const __keep = [${keepRefs.join(", ")}];\n`);
83
157
  await viteBuild(mergeConfig(userConfig, {
84
158
  configFile: false,
85
159
  root: cwd,
86
- plugins: [],
160
+ plugins: [neutronPlugin({ routesDir, rootDir: cwd, routeRules: neutronConfig.routes })],
161
+ css: cssConfig,
162
+ resolve: {
163
+ ...(runtimeAliases ? { alias: runtimeAliases } : {}),
164
+ dedupe: ["preact", "preact/hooks", "preact/compat", "preact/jsx-runtime"],
165
+ },
87
166
  build: {
88
167
  outDir: outputDir,
89
168
  emptyOutDir: true,
@@ -131,18 +210,57 @@ export async function build() {
131
210
  configFile: false,
132
211
  root: cwd,
133
212
  plugins: [neutronPlugin({ routesDir, rootDir: cwd, routeRules: neutronConfig.routes })],
134
- ...(runtimeAliases ? { resolve: { alias: runtimeAliases } } : {}),
135
- ...(runtimeNoExternal.length > 0 ? { ssr: { noExternal: runtimeNoExternal } } : {}),
213
+ css: cssConfig,
214
+ resolve: {
215
+ ...(runtimeAliases ? { alias: runtimeAliases } : {}),
216
+ // Force one preact copy so route components and the renderer share the
217
+ // same hooks dispatcher (otherwise hooks crash during pre-render).
218
+ dedupe: ["preact", "preact/hooks", "preact/jsx-runtime", "preact/compat"],
219
+ },
220
+ ssr: {
221
+ // Process these through Vite's SSR graph (deduped) instead of native
222
+ // node resolution, so preact-render-to-string binds to the app's preact.
223
+ noExternal: ["preact", "preact/hooks", "preact-render-to-string", ...runtimeNoExternal],
224
+ },
136
225
  server: {
137
226
  middlewareMode: true,
138
227
  hmr: false,
139
228
  ws: false,
229
+ // Allow loading the CLI-provided renderer from outside the app root.
230
+ fs: { strict: false },
140
231
  },
141
232
  optimizeDeps: {
142
233
  noDiscovery: true,
143
234
  },
144
235
  appType: "custom",
145
236
  }));
237
+ // Resolve the renderer through the SAME Vite SSR server that loads the route
238
+ // modules, so preact-render-to-string and the components share ONE preact
239
+ // instance. The CLI's own preact-render-to-string can otherwise bind to a
240
+ // different preact copy (e.g. under pnpm, or a linked/monorepo install),
241
+ // leaving the hooks dispatcher unset and crashing any component that uses
242
+ // useState/useEffect during pre-render with "Cannot read properties of
243
+ // undefined (reading '__H')".
244
+ let appH = h;
245
+ let appRender = renderToString;
246
+ try {
247
+ // Load the renderer + preact through the SAME Vite SSR graph as the route
248
+ // components so they share ONE preact instance (otherwise hooks crash during
249
+ // pre-render). This resolves them from the app, where preact and (ideally)
250
+ // preact-render-to-string are installed at a single matched version. If the
251
+ // app doesn't ship preact-render-to-string, we fall back to the CLI copy,
252
+ // which is correct whenever the app and CLI resolve the same preact.
253
+ const appPreact = (await server.ssrLoadModule("preact"));
254
+ const appRts = (await server.ssrLoadModule("preact-render-to-string"));
255
+ if (appPreact?.h)
256
+ appH = appPreact.h;
257
+ const rts = appRts?.renderToString ?? appRts?.default?.renderToString;
258
+ if (rts)
259
+ appRender = rts;
260
+ }
261
+ catch {
262
+ // Fall back to the CLI-bundled renderer (single-preact installs are fine).
263
+ }
146
264
  // Get layouts map
147
265
  const layouts = new Map();
148
266
  for (const route of routes) {
@@ -281,7 +399,7 @@ export async function build() {
281
399
  }
282
400
  const layoutChain = getLayoutChain(route);
283
401
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
284
- let element = h(module.default, {
402
+ let element = appH(module.default, {
285
403
  data: loaderData,
286
404
  params,
287
405
  });
@@ -297,10 +415,10 @@ export async function build() {
297
415
  });
298
416
  }
299
417
  if (layoutModule?.default) {
300
- element = h(layoutModule.default, { data: layoutData }, element);
418
+ element = appH(layoutModule.default, { data: layoutData }, element);
301
419
  }
302
420
  }
303
- const html = renderToString(element);
421
+ const html = appRender(element);
304
422
  const headHtml = await resolveRouteHeadHtml(route, layoutChain, request, context, params, loaderData, resolvedPath);
305
423
  const fullHtml = wrapHtml(html, resolvedPath, loaderData, clientEntryScriptSrc, headHtml, clientCssFiles);
306
424
  const outPath = getOutputPath(outputDir, resolvedPath);
@@ -328,7 +446,7 @@ export async function build() {
328
446
  }
329
447
  const layoutChain = getLayoutChain(route);
330
448
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
331
- let element = h(module.default, {
449
+ let element = appH(module.default, {
332
450
  data: loaderData,
333
451
  params: {},
334
452
  });
@@ -346,7 +464,7 @@ export async function build() {
346
464
  element = h(layoutModule.default, { data: layoutData }, element);
347
465
  }
348
466
  }
349
- const html = renderToString(element);
467
+ const html = appRender(element);
350
468
  const headHtml = await resolveRouteHeadHtml(route, layoutChain, request, context, {}, loaderData, route.path);
351
469
  const fullHtml = wrapHtml(html, route.path, loaderData, clientEntryScriptSrc, headHtml, clientCssFiles);
352
470
  const outPath = getOutputPath(outputDir, route.path);
@@ -703,7 +821,7 @@ for (const routeDef of ROUTE_DEFS) {
703
821
  }
704
822
  }
705
823
 
706
- export async function handleNeutronRequest(request) {
824
+ async function handleNeutronRequestInner(request) {
707
825
  const requestUrl = new URL(request.url);
708
826
  const pathname = normalizePathname(requestUrl.pathname);
709
827
  if (!pathname) {
@@ -1147,6 +1265,23 @@ function renderErrorResponse(allRoutes, modules, route, error) {
1147
1265
  });
1148
1266
  }
1149
1267
 
1268
+ // Apply baseline security headers to every response from the production handler
1269
+ // (the dev server does this already; the generated handler must match).
1270
+ export async function handleNeutronRequest(request) {
1271
+ const response = await handleNeutronRequestInner(request);
1272
+ const defaults = {
1273
+ "X-Content-Type-Options": "nosniff",
1274
+ "X-Frame-Options": "DENY",
1275
+ "Referrer-Policy": "strict-origin-when-cross-origin",
1276
+ };
1277
+ for (const [name, value] of Object.entries(defaults)) {
1278
+ if (!response.headers.has(name)) {
1279
+ response.headers.set(name, value);
1280
+ }
1281
+ }
1282
+ return response;
1283
+ }
1284
+
1150
1285
  function findNearestErrorBoundary(allRoutes, modules, route) {
1151
1286
  const pageModule = modules.get(route.id);
1152
1287
  if (pageModule?.ErrorBoundary) {
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAa7B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,sBAAsB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAEzE,uEAAuE;IACvE,wEAAwE;IACxE,uBAAuB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,yBAAyB,CAAC;QAC9B,OAAO,EAAE,GAAG;QACZ,6EAA6E;QAC7E,4EAA4E;QAC5E,yEAAyE;QACzE,yCAAyC;QACzC,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,aAAa,CAAC,QAAQ;KAChC,CAAC,CAAC;IACV,MAAM,iBAAiB,CAAC;QACtB,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CACnC,CAAC;IACF,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC7F,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC;IAEvF,6EAA6E;IAC7E,6EAA6E;IAC7E,2EAA2E;IAC3E,kBAAkB;IAClB,SAAS,cAAc,CAAC,CAAS;QAC/B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACxC,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,mDAAmD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjG,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,SAAS,cAAc,CAAC,GAAW;QACjC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACjE,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC1E,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,cAAc,CAAC,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;YACrC,CAAC;iBAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,UAAU,GACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,KAAK,gBAAgB,CAAC;IAEtB,6EAA6E;IAC7E,yEAAyE;IACzE,OAAO,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,MAAM,YAAY,CAAC,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;QAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QACzC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,UAAU,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EACxC,SAAS,EACT,GAAG,CACJ,CAAC;IAEF,MAAM,UAAU,GAAG,YAAY,EAAE,MAAM,IAAI,EAAE,CAAC;IAE9C,4EAA4E;IAC5E,8EAA8E;IAC9E,8EAA8E;IAC9E,gFAAgF;IAChF,6EAA6E;IAC7E,4EAA4E;IAC5E,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG;QAChB,OAAO,EAAE;YACP,kBAAkB,CAAC,IAAY,EAAE,QAAgB;gBAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAChE,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACpF,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;gBAClD,OAAO,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAC5B,CAAC;SACF;KACF,CAAC;IAEF,uEAAuE;IACvE,sEAAsE;IACtE,uCAAuC;IACvC,IAAI,aAAa,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,MAAM,SAAS,CACb,WAAW,CAAC,UAAU,EAAE;YACtB,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;YACvF,GAAG,EAAE,SAAS;YACd,OAAO,EAAE;gBACP,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,MAAM,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,CAAC;aAC1E;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,SAAS;gBACjB,WAAW,EAAE,IAAI;aAClB;SACF,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC/C,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAC7D,+EAA+E;QAC/E,2EAA2E;QAC3E,+EAA+E;QAC/E,8EAA8E;QAC9E,+EAA+E;QAC/E,gFAAgF;QAChF,qEAAqE;QACrE,sEAAsE;QACtE,8EAA8E;QAC9E,4EAA4E;QAC5E,wDAAwD;QACxD,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;YACnF,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAChG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,aAAa,CACd,YAAY,EACZ,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,4BAA4B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAC/E,CAAC;QACF,MAAM,SAAS,CACb,WAAW,CAAC,UAAU,EAAE;YACtB,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;YACvF,GAAG,EAAE,SAAS;YACd,OAAO,EAAE;gBACP,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,MAAM,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,CAAC;aAC1E;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,SAAS;gBACjB,WAAW,EAAE,IAAI;gBACjB,GAAG,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,IAAI,CAAU,EAAE;gBACtD,aAAa,EAAE;oBACb,MAAM,EAAE,EAAE,cAAc,EAAE,+BAA+B,EAAE;iBAC5D;gBACD,YAAY,EAAE,KAAK;aACpB;SACF,CAAC,CACH,CAAC;QACF,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAC7C,6DAA6D;QAC7D,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC;oBAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACpE,IAAI,oBAAoB,EAAE,CAAC;QACzB,wBAAwB,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAC5D,CAAC;IAED,gFAAgF;IAChF,MAAM,cAAc,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAExD,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;QACrD,GAAG;QACH,SAAS;QACT,SAAS;QACT,UAAU,EAAE,aAAa,CAAC,MAAM;QAChC,MAAM;QACN,UAAU;QACV,oBAAoB;QACpB,UAAU;QACV,cAAc;QACd,iBAAiB;KAClB,CAAC,CAAC;IAEH,yCAAyC;IACzC,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,WAAW,CAAC,UAAU,EAAE;QACtB,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACvF,GAAG,EAAE,SAAS;QACd,OAAO,EAAE;YACP,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,uEAAuE;YACvE,mEAAmE;YACnE,MAAM,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,CAAC;SAC1E;QACD,GAAG,EAAE;YACH,qEAAqE;YACrE,yEAAyE;YACzE,UAAU,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,yBAAyB,EAAE,GAAG,iBAAiB,CAAC;SACxF;QACD,MAAM,EAAE;YACN,cAAc,EAAE,IAAI;YACpB,GAAG,EAAE,KAAK;YACV,EAAE,EAAE,KAAK;YACT,qEAAqE;YACrE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;SACtB;QACD,YAAY,EAAE;YACZ,WAAW,EAAE,IAAI;SAClB;QACD,OAAO,EAAE,QAAQ;KAClB,CAAC,CACH,CAAC;IAEF,6EAA6E;IAC7E,0EAA0E;IAC1E,0EAA0E;IAC1E,yEAAyE;IACzE,0EAA0E;IAC1E,uEAAuE;IACvE,8BAA8B;IAC9B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,SAAS,GAAG,cAAc,CAAC;IAC/B,IAAI,CAAC;QACH,0EAA0E;QAC1E,6EAA6E;QAC7E,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,qEAAqE;QACrE,MAAM,SAAS,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAqB,CAAC;QAC7E,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAGpE,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YAAE,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,EAAE,cAAc,IAAI,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC;QACtE,IAAI,GAAG;YAAE,SAAS,GAAG,GAAG,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;IAC7E,CAAC;IAED,kBAAkB;IAClB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAgC,CAAC;IAC5D,MAAM,oBAAoB,GAA2C,EAAE,CAAC;IAExE,SAAS,cAAc,CAAC,KAAY;QAClC,MAAM,KAAK,GAAY,EAAE,CAAC;QAC1B,IAAI,SAAS,GAAkB,KAAK,CAAC,QAAQ,CAAC;QAE9C,OAAO,SAAS,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,UAAU,eAAe,CAAC,KAAY;QACzC,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAqB,CAAC,CAAC;YACnF,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,UAAU,mBAAmB,CAChC,KAAY,EACZ,WAAoB,EACpB,OAAgB,EAChB,OAAmB,EACnB,MAA8B,EAC9B,UAAmB;QAEnB,MAAM,SAAS,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7C,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtB,MAAM,aAAa,GAA4B,EAAE,CAAC;QAClD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,YAAY,IAAI,SAAS,EAAE,CAAC;YACrC,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;YAC1D,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAgB;gBACxB,OAAO;gBACP,MAAM;gBACN,OAAO;gBACP,UAAU,EAAE,aAAa;aAC1B,CAAC;YACF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACrE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,UAAU,oBAAoB,CACjC,KAAY,EACZ,WAAoB,EACpB,OAAgB,EAChB,OAAmB,EACnB,MAA8B,EAC9B,UAAmB,EACnB,QAAgB;QAEhB,MAAM,SAAS,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7C,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtB,MAAM,aAAa,GAA4B,EAAE,CAAC;QAClD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;QACvC,CAAC;QAED,IAAI,SAAS,GAAwB,IAAI,CAAC;QAC1C,MAAM,aAAa,GAAa,EAAE,CAAC;QAEnC,KAAK,MAAM,YAAY,IAAI,SAAS,EAAE,CAAC;YACrC,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;YAC1D,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAa;gBACrB,OAAO;gBACP,MAAM;gBACN,OAAO;gBACP,UAAU,EAAE,aAAa;gBACzB,QAAQ;aACT,CAAC;YACF,+DAA+D;YAC/D,0DAA0D;YAC1D,MAAM,gBAAgB,GAAG;gBACvB,GAAG,IAAI;gBACP,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,UAAU;aACnD,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,SAAS;YACX,CAAC;YAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,SAAS,GAAG,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAChE,CAAC;IAED,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE5C,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC1E,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;YAE5C,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,IAAI,iBAAiB,CAAC,CAAC;gBACvD,YAAY,EAAE,CAAC;gBACf,SAAS;YACX,CAAC;YAED,4CAA4C;YAC5C,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,IAAI,gCAAgC,CAAC,CAAC;oBACtE,YAAY,EAAE,CAAC;oBACf,SAAS;gBACX,CAAC;gBAED,wEAAwE;gBACxE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,MAA+B,CAAC,KAAK,CAAC;gBAEzF,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,QAAQ,EAAE,CAAC;oBACzC,+CAA+C;oBAC/C,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACrD,MAAM,OAAO,GAAe,EAAE,CAAC;oBAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,kBAAkB,GAAG,YAAY,CAAC,CAAC;oBAE/D,8DAA8D;oBAC9D,+DAA+D;oBAC/D,wCAAwC;oBACxC,IAAI,UAAU,GAAY,KAAK,IAAI,EAAE,CAAC;oBACtC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAClB,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;4BAC/B,OAAO;4BACP,MAAM;4BACN,OAAO;yBACM,CAAC,CAAC;oBACnB,CAAC;oBAED,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;oBAE1C,8DAA8D;oBAC9D,IAAI,OAAO,GAAQ,IAAI,CAAC,MAAM,CAAC,OAAc,EAAE;wBAC7C,IAAI,EAAE,UAAU;wBAChB,MAAM;qBACP,CAAC,CAAC;oBAEH,KAAK,MAAM,WAAW,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;wBACrD,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;wBACxD,kEAAkE;wBAClE,IAAI,UAAU,GAAY,EAAE,CAAC;wBAC7B,IAAI,YAAY,EAAE,MAAM,EAAE,CAAC;4BACzB,UAAU,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC;gCACrC,OAAO;gCACP,MAAM;gCACN,OAAO;6BACM,CAAC,CAAC;wBACnB,CAAC;wBACD,IAAI,YAAY,EAAE,OAAO,EAAE,CAAC;4BAC1B,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;wBAC7E,CAAC;oBACH,CAAC;oBAED,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;oBAChC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CACzC,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,YAAY,CACb,CAAC;oBACF,MAAM,QAAQ,GAAG,QAAQ,CACvB,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,QAAQ,EACR,cAAc,CACf,CAAC;oBAEF,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;oBACvD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACzD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAEpC,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAC5C,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,CACX,CAAC;oBACF,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzC,oBAAoB,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;oBACpD,CAAC;oBAED,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;oBACxE,aAAa,EAAE,CAAC;gBAClB,CAAC;gBACD,SAAS;YACX,CAAC;YAED,8BAA8B;YAC9B,MAAM,OAAO,GAAe,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,UAAU,GAAY,SAAS,CAAC;YACpC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;oBAC/B,OAAO;oBACP,MAAM,EAAE,EAAE;oBACV,OAAO;iBACM,CAAC,CAAC;YACnB,CAAC;YAED,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAE1C,8DAA8D;YAC9D,IAAI,OAAO,GAAQ,IAAI,CAAC,MAAM,CAAC,OAAc,EAAE;gBAC7C,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;YAEH,KAAK,MAAM,WAAW,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBACrD,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;gBACxD,IAAI,UAAU,GAAY,EAAE,CAAC;gBAC7B,IAAI,YAAY,EAAE,MAAM,EAAE,CAAC;oBACzB,UAAU,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC;wBACrC,OAAO;wBACP,MAAM,EAAE,EAAE;wBACV,OAAO;qBACM,CAAC,CAAC;gBACnB,CAAC;gBACD,IAAI,YAAY,EAAE,OAAO,EAAE,CAAC;oBAC1B,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC,OAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YAED,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CACzC,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,EAAE,EACF,UAAU,EACV,KAAK,CAAC,IAAI,CACX,CAAC;YACF,MAAM,QAAQ,GAAG,QAAQ,CACvB,IAAI,EACJ,KAAK,CAAC,IAAI,EACV,UAAU,EACV,oBAAoB,EACpB,QAAQ,EACR,cAAc,CACf,CAAC;YAEF,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEpC,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAC5C,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,EAAE,EACF,UAAU,CACX,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;YAClD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YACtE,aAAa,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;YACzD,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,0BAA0B,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAC9D,CAAC;IAED,8EAA8E;IAC9E,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAErB,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,sBAAsB,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,eAAe,CAAC,KAAK,CAAC;YAC1B,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE;gBACN,KAAK,EAAE,UAAU,CAAC,MAAM;gBACxB,MAAM,EAAE,gBAAgB;gBACxB,GAAG,EAAE,aAAa;aACnB;YACD,oBAAoB;YACpB,mBAAmB;YACnB,GAAG,EAAE,CAAC,OAAe,EAAE,EAAE;gBACvB,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;YACxC,CAAC;SACK,CAAC,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,aAAa,mBAAmB,YAAY,GAAG,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,OAAe,EAAE,MAA8B;IAClE,IAAI,QAAQ,GAAG,OAAO,CAAC;IAEvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,gCAAgC;QAChC,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QAEzD,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;YACjC,QAAQ,GAAG,eAAe,CAAC;QAC7B,CAAC;aAAM,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,QAAQ,GAAG,aAAa,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,yDAAyD;YACzD,MAAM,YAAY,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;YACnD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CACf,OAAe,EACf,SAAiB,EACjB,WAAqB,EACrB,uBAAsC,IAAI,EAC1C,WAAmB,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,EACtD,WAAqB,EAAE;IAEvB,oFAAoF;IACpF,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,UAAU,IAAI,oBAAoB;QACrD,CAAC,CAAC,8BAA8B,UAAU,CAAC,oBAAoB,CAAC,aAAa;QAC7E,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,QAAQ,GAAG,QAAQ;SACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gCAAgC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;SACnE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;EAGP,QAAQ;EACR,QAAQ;;;gBAGM,OAAO;EACrB,YAAY;;QAEN,CAAC;AACT,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB,EAAE,SAAiB;IACzD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACzC,OAAO,EAAE;SACN,WAAW,CAAC,SAAS,CAAC;SACtB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACvC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,2BAA2B,CAAC,SAAiB;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,EAAE;aAClB,WAAW,CAAC,SAAS,CAAC;aACtB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACnE,IAAI,EAAE,CAAC;QAEV,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,WAAW,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;IACzF,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAiB,EAAE,GAAW;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC;IACxE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,gBAAgB,CACvB,KAA0D;IAE1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YACzD,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YACzD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,0BAA0B,CACjC,SAAiB,EACjB,cAAsD;IAEtD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,CAAC;IAC1E,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAyCD,SAAS,cAAc,CAAC,IAAc;IACpC,IAAI,MAAM,GAAwB,IAAI,CAAC;IACvC,IAAI,cAAc,GAAgC,OAAO,CAAC;IAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC7F,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC7F,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,mBAAmB,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7C,cAAc,GAAG,KAAK,CAAC;YACzB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7C,cAAc,GAAG,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAAqB,EACrB,IAAe;IAEf,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACjC,OAAO,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED,SAAS,0BAA0B,CACjC,OAAoC;IAEpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAGpB,CAAC;IAEJ,OAAO,KAAK,EAAE,MAAuC,EAAkC,EAAE;QACvF,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,OAAoC,EACpC,MAAuC;IAEvC,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IACpF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,kBAAkB,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACjE,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,MAAM,KAAK,CAAC,CAAC;IAC9D,EAAE,CAAC,aAAa,CACd,SAAS,EACT,0BAA0B,CACxB,aAAa,EACb,SAAS,EACT,OAAO,CAAC,oBAAoB,EAC5B,SAAS,EACT,OAAO,CAAC,UAAU,CACnB,EACD,OAAO,CACR,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,SAAS,CACb,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE;QAC9B,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,OAAO,CAAC,GAAG;QACjB,OAAO,EAAE;YACP,aAAa,CAAC;gBACZ,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,GAAG;gBACpB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC;SACH;QACD,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,GAAG,EAAE;YACH,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;YAClD,UAAU,EAAE;gBACV,QAAQ;gBACR,yBAAyB;gBACzB,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;aACrC;SACF;QACD,KAAK,EAAE;YACL,GAAG,EAAE,SAAS;YACd,MAAM,EAAE,YAAY;YACpB,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE;gBACb,MAAM,EAAE;oBACN,MAAM,EAAE,KAAK;oBACb,cAAc,EAAE,UAAU;oBAC1B,cAAc,EAAE,yBAAyB;oBACzC,cAAc,EAAE,+BAA+B;iBAChD;aACF;SACF;KACF,CAAC,CACH,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAChG,OAAO;QACL,MAAM;QACN,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC;QAC9C,iBAAiB,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAe,EAAE,SAAkB;IAC/D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAgB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC9B,OAAO,QAAQ,EAAE,CAAC;YAChB,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC;QAClD,CAAC;IACH,CAAC;IAED,OAAO,MAAM;SACV,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAC5C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;QACvB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;QACzB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QACxC,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,0BAA0B,CACjC,aAAgC,EAChC,SAAkB,EAClB,oBAAmC,EACnC,SAAiB,EACjB,UAA+C;IAE/C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAExD,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,cAAc,KAAK,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,eAAe,SAAS,UAAU,OAAO,IAAI,CAAC,CAAC;QAC5D,aAAa,CAAC,IAAI,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;QACrE,SAAS,CAAC,IAAI,CAAC;WACR,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;aACtB,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;gBACvB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;cACjE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;aAC7B,KAAK,CAAC,IAAI;aACV,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;gBAChC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;KAC5C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;;EAEP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;kCAEc,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;wCAC9B,cAAc;;;EAGpD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;;;;EAIpB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;;gCAGM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmiB1D,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe,EAAE,QAAgB;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvE,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAW;IAC1C,MAAM,UAAU,GAAG;QACjB,mBAAmB;QACnB,mBAAmB;QACnB,oBAAoB;QACpB,oBAAoB;KACrB,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EACxC,QAAQ,EACR,GAAG,CACJ,CAAC;QAEF,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,MAAuB,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAeA,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAkGzC"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAeA,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAyGzC"}
@@ -71,8 +71,15 @@ export async function dev() {
71
71
  routeRules: neutronConfig.routes,
72
72
  }),
73
73
  ],
74
- ...(runtimeAliases ? { resolve: { alias: runtimeAliases } } : {}),
75
- ...(runtimeNoExternal.length > 0 ? { ssr: { noExternal: runtimeNoExternal } } : {}),
74
+ resolve: {
75
+ ...(runtimeAliases ? { alias: runtimeAliases } : {}),
76
+ // One preact copy so dev SSR components and the renderer share a hooks
77
+ // dispatcher (matches the build path).
78
+ dedupe: ["preact", "preact/hooks", "preact/jsx-runtime", "preact/compat"],
79
+ },
80
+ ssr: {
81
+ noExternal: ["preact", "preact/hooks", "preact-render-to-string", ...runtimeNoExternal],
82
+ },
76
83
  server: {
77
84
  port,
78
85
  ...(host ? { host } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neutron-build/cli",
3
- "version": "0.0.1",
3
+ "version": "0.1.1",
4
4
  "description": "CLI for the Neutron framework. Dev server, production builds, and deployment.",
5
5
  "author": "Tyler",
6
6
  "license": "MIT",
@@ -8,7 +8,7 @@
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "https://github.com/neutron-build/neutron",
11
- "directory": "packages/neutron-cli"
11
+ "directory": "typescript/packages/neutron-cli"
12
12
  },
13
13
  "keywords": [
14
14
  "neutron",
@@ -28,13 +28,14 @@
28
28
  }
29
29
  },
30
30
  "files": [
31
- "dist"
31
+ "dist",
32
+ "!dist/**/*.test.*"
32
33
  ],
33
34
  "dependencies": {
34
35
  "preact": "^10.25.4",
35
36
  "preact-render-to-string": "^6.5.11",
36
37
  "vite": "^6.0.7",
37
- "@neutron-build/core": "0.0.1"
38
+ "@neutron-build/core": "0.1.0"
38
39
  },
39
40
  "devDependencies": {
40
41
  "@types/node": "^22.10.7",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -1,685 +0,0 @@
1
- import assert from "node:assert/strict";
2
- import { describe, it } from "node:test";
3
- import * as path from "node:path";
4
- import * as fs from "node:fs";
5
- import * as os from "node:os";
6
- function parseBuildArgs(argv) {
7
- let preset = null;
8
- let cloudflareMode = "pages";
9
- for (let i = 0; i < argv.length; i++) {
10
- const arg = argv[i];
11
- if (arg === "--preset" && argv[i + 1]) {
12
- const value = argv[++i];
13
- if (value === "vercel" || value === "cloudflare" || value === "docker" || value === "static") {
14
- preset = value;
15
- }
16
- continue;
17
- }
18
- if (arg.startsWith("--preset=")) {
19
- const value = arg.split("=")[1];
20
- if (value === "vercel" || value === "cloudflare" || value === "docker" || value === "static") {
21
- preset = value;
22
- }
23
- continue;
24
- }
25
- if (arg === "--cloudflare-mode" && argv[i + 1]) {
26
- const value = argv[++i];
27
- if (value === "pages" || value === "workers") {
28
- cloudflareMode = value;
29
- }
30
- continue;
31
- }
32
- if (arg.startsWith("--cloudflare-mode=")) {
33
- const value = arg.split("=")[1];
34
- if (value === "pages" || value === "workers") {
35
- cloudflareMode = value;
36
- }
37
- }
38
- }
39
- return { preset, cloudflareMode };
40
- }
41
- // -- build.ts: resolvePath ---------------------------------------------------
42
- function resolvePath(pattern, params) {
43
- let resolved = pattern;
44
- for (const [key, value] of Object.entries(params)) {
45
- resolved = resolved.replace(`[${key}]`, value);
46
- resolved = resolved.replace(`:${key}`, value);
47
- }
48
- return resolved;
49
- }
50
- // -- build.ts: escapeHtml ----------------------------------------------------
51
- function escapeHtml(str) {
52
- return str
53
- .replace(/&/g, "&amp;")
54
- .replace(/</g, "&lt;")
55
- .replace(/>/g, "&gt;")
56
- .replace(/"/g, "&quot;")
57
- .replace(/'/g, "&#039;");
58
- }
59
- // -- build.ts: getOutputPath -------------------------------------------------
60
- function getOutputPath(outputDir, routePath) {
61
- if (routePath === "/") {
62
- return path.join(outputDir, "index.html");
63
- }
64
- const cleanPath = routePath.replace(/\/$/, "");
65
- return path.join(outputDir, cleanPath, "index.html");
66
- }
67
- // -- build.ts: normalizeHeaders ----------------------------------------------
68
- function normalizeHeaders(value) {
69
- if (!value) {
70
- return {};
71
- }
72
- if (value instanceof Headers) {
73
- return headersToRecord(value);
74
- }
75
- const output = {};
76
- for (const [name, headerValue] of Object.entries(value)) {
77
- const lower = name.toLowerCase();
78
- if (lower === "content-length" || lower === "set-cookie") {
79
- continue;
80
- }
81
- output[name] = String(headerValue);
82
- }
83
- return output;
84
- }
85
- function headersToRecord(headers) {
86
- const output = {};
87
- headers.forEach((value, name) => {
88
- const lower = name.toLowerCase();
89
- if (lower === "content-length" || lower === "set-cookie") {
90
- return;
91
- }
92
- output[name] = value;
93
- });
94
- return output;
95
- }
96
- // -- build.ts: relativeImportPath --------------------------------------------
97
- function relativeImportPath(fromDir, filePath) {
98
- const rel = path.relative(fromDir, filePath).split(path.sep).join("/");
99
- return rel.startsWith(".") ? rel : `./${rel}`;
100
- }
101
- // -- build.ts: escapeJsString ------------------------------------------------
102
- function escapeJsString(value) {
103
- return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
104
- }
105
- function parseDeployCheckArgs(argv) {
106
- let preset = null;
107
- let distDir = "dist";
108
- for (let i = 0; i < argv.length; i++) {
109
- const arg = argv[i];
110
- if (arg === "--preset" && argv[i + 1]) {
111
- const value = argv[++i];
112
- if (value === "vercel" || value === "cloudflare" || value === "docker" || value === "static") {
113
- preset = value;
114
- }
115
- continue;
116
- }
117
- if (arg.startsWith("--preset=")) {
118
- const value = arg.split("=")[1];
119
- if (value === "vercel" || value === "cloudflare" || value === "docker" || value === "static") {
120
- preset = value;
121
- }
122
- continue;
123
- }
124
- if (arg === "--dist" && argv[i + 1]) {
125
- distDir = argv[++i];
126
- continue;
127
- }
128
- if (arg.startsWith("--dist=")) {
129
- distDir = arg.split("=")[1];
130
- }
131
- }
132
- return { preset, distDir };
133
- }
134
- // -- deploy-check.ts: detectPresetsFromDist ----------------------------------
135
- function detectPresetsFromDist(distDir) {
136
- const output = [];
137
- if (fs.existsSync(path.join(distDir, ".neutron-adapter-vercel.json"))) {
138
- output.push("vercel");
139
- }
140
- if (fs.existsSync(path.join(distDir, ".neutron-adapter-cloudflare.json"))) {
141
- output.push("cloudflare");
142
- }
143
- if (fs.existsSync(path.join(distDir, ".neutron-adapter-docker.json"))) {
144
- output.push("docker");
145
- }
146
- if (fs.existsSync(path.join(distDir, ".neutron-adapter-static.json"))) {
147
- output.push("static");
148
- }
149
- return output;
150
- }
151
- function parseWorkerArgs(argv) {
152
- let entry;
153
- let mode = "development";
154
- let once = false;
155
- const passthroughIndex = argv.indexOf("--");
156
- const workerArgs = passthroughIndex >= 0 ? argv.slice(passthroughIndex + 1) : [];
157
- const parsedArgs = passthroughIndex >= 0 ? argv.slice(0, passthroughIndex) : argv;
158
- for (let i = 0; i < parsedArgs.length; i++) {
159
- const arg = parsedArgs[i];
160
- if (arg === "--entry" && parsedArgs[i + 1]) {
161
- entry = parsedArgs[++i];
162
- continue;
163
- }
164
- if (arg.startsWith("--entry=")) {
165
- entry = arg.split("=")[1];
166
- continue;
167
- }
168
- if (arg === "--mode" && parsedArgs[i + 1]) {
169
- mode = parsedArgs[++i];
170
- continue;
171
- }
172
- if (arg.startsWith("--mode=")) {
173
- mode = arg.split("=")[1];
174
- continue;
175
- }
176
- if (arg === "--once") {
177
- once = true;
178
- }
179
- }
180
- return { entry, mode, once, workerArgs };
181
- }
182
- // -- worker.ts: resolveWorkerEntry -------------------------------------------
183
- const WORKER_ENTRY_CANDIDATES = [
184
- "src/worker.ts",
185
- "src/worker.tsx",
186
- "src/worker/index.ts",
187
- "src/worker/index.tsx",
188
- "worker.ts",
189
- "worker.js",
190
- ];
191
- function resolveWorkerEntry(cwd, cliEntry, configEntry) {
192
- const candidates = [cliEntry, configEntry, ...WORKER_ENTRY_CANDIDATES].filter((candidate) => Boolean(candidate));
193
- for (const candidate of candidates) {
194
- const absolutePath = path.resolve(cwd, candidate);
195
- if (fs.existsSync(absolutePath)) {
196
- return absolutePath;
197
- }
198
- }
199
- return null;
200
- }
201
- // -- preview.ts: normalizePathname -------------------------------------------
202
- function normalizePathname(pathname) {
203
- if (!pathname) {
204
- return "/";
205
- }
206
- let decoded;
207
- try {
208
- decoded = decodeURIComponent(pathname);
209
- }
210
- catch {
211
- return "";
212
- }
213
- if (!decoded.startsWith("/") || decoded.includes("..")) {
214
- return "";
215
- }
216
- if (decoded.length > 1 && decoded.endsWith("/")) {
217
- return decoded.slice(0, -1);
218
- }
219
- return decoded;
220
- }
221
- // -- preview.ts: isWithinDirectory -------------------------------------------
222
- function isWithinDirectory(baseDir, candidatePath) {
223
- const relative = path.relative(baseDir, candidatePath);
224
- return (relative === "" ||
225
- (!relative.startsWith("..") && !path.isAbsolute(relative)));
226
- }
227
- // -- preview.ts: resolveDistFilePath -----------------------------------------
228
- function resolveDistFilePath(distDir, pathname) {
229
- const resolved = path.resolve(distDir, `.${pathname}`);
230
- return isWithinDirectory(distDir, resolved) ? resolved : null;
231
- }
232
- // -- index.ts: CLI dispatch --------------------------------------------------
233
- const VALID_COMMANDS = ["dev", "build", "preview", "start", "deploy-check", "release-check", "worker"];
234
- // =========================================================================
235
- // Tests
236
- // =========================================================================
237
- // ---------------------------------------------------------------------------
238
- // parseBuildArgs
239
- // ---------------------------------------------------------------------------
240
- describe("parseBuildArgs", () => {
241
- it("returns default values when no args are provided", () => {
242
- const result = parseBuildArgs([]);
243
- assert.equal(result.preset, null);
244
- assert.equal(result.cloudflareMode, "pages");
245
- });
246
- it("parses --preset vercel", () => {
247
- const result = parseBuildArgs(["--preset", "vercel"]);
248
- assert.equal(result.preset, "vercel");
249
- });
250
- it("parses --preset=cloudflare", () => {
251
- const result = parseBuildArgs(["--preset=cloudflare"]);
252
- assert.equal(result.preset, "cloudflare");
253
- });
254
- it("parses --preset docker", () => {
255
- const result = parseBuildArgs(["--preset", "docker"]);
256
- assert.equal(result.preset, "docker");
257
- });
258
- it("parses --preset static", () => {
259
- const result = parseBuildArgs(["--preset", "static"]);
260
- assert.equal(result.preset, "static");
261
- });
262
- it("ignores invalid preset values", () => {
263
- const result = parseBuildArgs(["--preset", "invalid"]);
264
- assert.equal(result.preset, null);
265
- });
266
- it("parses --cloudflare-mode workers", () => {
267
- const result = parseBuildArgs(["--preset", "cloudflare", "--cloudflare-mode", "workers"]);
268
- assert.equal(result.preset, "cloudflare");
269
- assert.equal(result.cloudflareMode, "workers");
270
- });
271
- it("parses --cloudflare-mode=pages", () => {
272
- const result = parseBuildArgs(["--cloudflare-mode=pages"]);
273
- assert.equal(result.cloudflareMode, "pages");
274
- });
275
- it("ignores invalid cloudflare-mode values", () => {
276
- const result = parseBuildArgs(["--cloudflare-mode", "invalid"]);
277
- assert.equal(result.cloudflareMode, "pages");
278
- });
279
- it("handles multiple args together", () => {
280
- const result = parseBuildArgs(["--preset=vercel", "--cloudflare-mode=workers"]);
281
- assert.equal(result.preset, "vercel");
282
- assert.equal(result.cloudflareMode, "workers");
283
- });
284
- });
285
- // ---------------------------------------------------------------------------
286
- // resolvePath
287
- // ---------------------------------------------------------------------------
288
- describe("resolvePath", () => {
289
- it("replaces bracket params", () => {
290
- assert.equal(resolvePath("/blog/[slug]", { slug: "hello" }), "/blog/hello");
291
- });
292
- it("replaces colon params", () => {
293
- assert.equal(resolvePath("/users/:id", { id: "42" }), "/users/42");
294
- });
295
- it("replaces multiple params", () => {
296
- assert.equal(resolvePath("/[category]/[slug]", { category: "tech", slug: "post" }), "/tech/post");
297
- });
298
- it("leaves pattern unchanged when params are empty", () => {
299
- assert.equal(resolvePath("/about", {}), "/about");
300
- });
301
- });
302
- // ---------------------------------------------------------------------------
303
- // escapeHtml
304
- // ---------------------------------------------------------------------------
305
- describe("escapeHtml", () => {
306
- it("escapes ampersands", () => {
307
- assert.equal(escapeHtml("a&b"), "a&amp;b");
308
- });
309
- it("escapes angle brackets", () => {
310
- assert.equal(escapeHtml("<script>"), "&lt;script&gt;");
311
- });
312
- it("escapes double quotes", () => {
313
- assert.equal(escapeHtml('"hello"'), "&quot;hello&quot;");
314
- });
315
- it("escapes single quotes", () => {
316
- assert.equal(escapeHtml("it's"), "it&#039;s");
317
- });
318
- it("leaves safe strings unchanged", () => {
319
- assert.equal(escapeHtml("hello world"), "hello world");
320
- });
321
- });
322
- // ---------------------------------------------------------------------------
323
- // getOutputPath
324
- // ---------------------------------------------------------------------------
325
- describe("getOutputPath", () => {
326
- const outDir = "/dist";
327
- it("returns index.html for root route", () => {
328
- assert.equal(getOutputPath(outDir, "/"), path.join(outDir, "index.html"));
329
- });
330
- it("returns nested index.html for sub-route", () => {
331
- assert.equal(getOutputPath(outDir, "/about"), path.join(outDir, "about", "index.html"));
332
- });
333
- it("strips trailing slash before computing output path", () => {
334
- assert.equal(getOutputPath(outDir, "/blog/"), path.join(outDir, "blog", "index.html"));
335
- });
336
- it("handles deep paths", () => {
337
- assert.equal(getOutputPath(outDir, "/a/b/c"), path.join(outDir, "a", "b", "c", "index.html"));
338
- });
339
- });
340
- // ---------------------------------------------------------------------------
341
- // normalizeHeaders
342
- // ---------------------------------------------------------------------------
343
- describe("normalizeHeaders", () => {
344
- it("returns empty object for null", () => {
345
- assert.deepEqual(normalizeHeaders(null), {});
346
- });
347
- it("returns empty object for undefined", () => {
348
- assert.deepEqual(normalizeHeaders(undefined), {});
349
- });
350
- it("converts a plain object", () => {
351
- const headers = { "X-Custom": "value" };
352
- const result = normalizeHeaders(headers);
353
- assert.equal(result["X-Custom"], "value");
354
- });
355
- it("filters out content-length", () => {
356
- const result = normalizeHeaders({ "Content-Length": "100", "X-Custom": "v" });
357
- assert.equal(result["Content-Length"], undefined);
358
- assert.equal(result["X-Custom"], "v");
359
- });
360
- it("filters out set-cookie", () => {
361
- const result = normalizeHeaders({ "Set-Cookie": "a=b", "X-Test": "1" });
362
- assert.equal(result["Set-Cookie"], undefined);
363
- assert.equal(result["X-Test"], "1");
364
- });
365
- it("converts Headers instance", () => {
366
- const headers = new Headers();
367
- headers.set("x-foo", "bar");
368
- const result = normalizeHeaders(headers);
369
- assert.equal(result["x-foo"], "bar");
370
- });
371
- it("filters content-length from Headers instance", () => {
372
- const headers = new Headers();
373
- headers.set("content-length", "42");
374
- headers.set("x-id", "abc");
375
- const result = normalizeHeaders(headers);
376
- assert.equal(result["content-length"], undefined);
377
- assert.equal(result["x-id"], "abc");
378
- });
379
- });
380
- // ---------------------------------------------------------------------------
381
- // relativeImportPath
382
- // ---------------------------------------------------------------------------
383
- describe("relativeImportPath", () => {
384
- it("prepends ./ for sibling files", () => {
385
- const result = relativeImportPath("/project/src", "/project/src/route.ts");
386
- assert.equal(result, "./route.ts");
387
- });
388
- it("preserves relative prefix for parent directories", () => {
389
- const result = relativeImportPath("/project/src/dir", "/project/src/route.ts");
390
- assert.equal(result, "../route.ts");
391
- });
392
- it("prepends ./ for subdirectory files", () => {
393
- const result = relativeImportPath("/project", "/project/src/index.ts");
394
- assert.equal(result, "./src/index.ts");
395
- });
396
- });
397
- // ---------------------------------------------------------------------------
398
- // escapeJsString
399
- // ---------------------------------------------------------------------------
400
- describe("escapeJsString", () => {
401
- it("escapes backslashes", () => {
402
- assert.equal(escapeJsString("a\\b"), "a\\\\b");
403
- });
404
- it("escapes double quotes", () => {
405
- assert.equal(escapeJsString('say "hi"'), 'say \\"hi\\"');
406
- });
407
- it("leaves safe strings unchanged", () => {
408
- assert.equal(escapeJsString("hello"), "hello");
409
- });
410
- });
411
- // ---------------------------------------------------------------------------
412
- // parseDeployCheckArgs
413
- // ---------------------------------------------------------------------------
414
- describe("parseDeployCheckArgs", () => {
415
- it("returns defaults when no args provided", () => {
416
- const result = parseDeployCheckArgs([]);
417
- assert.equal(result.preset, null);
418
- assert.equal(result.distDir, "dist");
419
- });
420
- it("parses --preset vercel", () => {
421
- const result = parseDeployCheckArgs(["--preset", "vercel"]);
422
- assert.equal(result.preset, "vercel");
423
- });
424
- it("parses --preset=cloudflare", () => {
425
- const result = parseDeployCheckArgs(["--preset=cloudflare"]);
426
- assert.equal(result.preset, "cloudflare");
427
- });
428
- it("parses --dist with space", () => {
429
- const result = parseDeployCheckArgs(["--dist", "build"]);
430
- assert.equal(result.distDir, "build");
431
- });
432
- it("parses --dist= format", () => {
433
- const result = parseDeployCheckArgs(["--dist=output"]);
434
- assert.equal(result.distDir, "output");
435
- });
436
- it("handles combined args", () => {
437
- const result = parseDeployCheckArgs(["--preset", "docker", "--dist", "out"]);
438
- assert.equal(result.preset, "docker");
439
- assert.equal(result.distDir, "out");
440
- });
441
- it("ignores invalid preset", () => {
442
- const result = parseDeployCheckArgs(["--preset", "netlify"]);
443
- assert.equal(result.preset, null);
444
- });
445
- });
446
- // ---------------------------------------------------------------------------
447
- // detectPresetsFromDist
448
- // ---------------------------------------------------------------------------
449
- describe("detectPresetsFromDist", () => {
450
- it("returns empty array for directory with no adapter files", () => {
451
- const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "deploy-check-"));
452
- try {
453
- const result = detectPresetsFromDist(tmpDir);
454
- assert.deepEqual(result, []);
455
- }
456
- finally {
457
- fs.rmSync(tmpDir, { recursive: true, force: true });
458
- }
459
- });
460
- it("detects vercel adapter", () => {
461
- const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "deploy-check-"));
462
- try {
463
- fs.writeFileSync(path.join(tmpDir, ".neutron-adapter-vercel.json"), "{}");
464
- const result = detectPresetsFromDist(tmpDir);
465
- assert.deepEqual(result, ["vercel"]);
466
- }
467
- finally {
468
- fs.rmSync(tmpDir, { recursive: true, force: true });
469
- }
470
- });
471
- it("detects multiple adapters", () => {
472
- const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "deploy-check-"));
473
- try {
474
- fs.writeFileSync(path.join(tmpDir, ".neutron-adapter-vercel.json"), "{}");
475
- fs.writeFileSync(path.join(tmpDir, ".neutron-adapter-cloudflare.json"), "{}");
476
- fs.writeFileSync(path.join(tmpDir, ".neutron-adapter-docker.json"), "{}");
477
- fs.writeFileSync(path.join(tmpDir, ".neutron-adapter-static.json"), "{}");
478
- const result = detectPresetsFromDist(tmpDir);
479
- assert.deepEqual(result, ["vercel", "cloudflare", "docker", "static"]);
480
- }
481
- finally {
482
- fs.rmSync(tmpDir, { recursive: true, force: true });
483
- }
484
- });
485
- });
486
- // ---------------------------------------------------------------------------
487
- // parseWorkerArgs
488
- // ---------------------------------------------------------------------------
489
- describe("parseWorkerArgs", () => {
490
- it("returns defaults when no args provided", () => {
491
- const result = parseWorkerArgs([]);
492
- assert.equal(result.entry, undefined);
493
- assert.equal(result.mode, "development");
494
- assert.equal(result.once, false);
495
- assert.deepEqual(result.workerArgs, []);
496
- });
497
- it("parses --entry flag", () => {
498
- const result = parseWorkerArgs(["--entry", "src/worker.ts"]);
499
- assert.equal(result.entry, "src/worker.ts");
500
- });
501
- it("parses --entry= format", () => {
502
- const result = parseWorkerArgs(["--entry=worker.js"]);
503
- assert.equal(result.entry, "worker.js");
504
- });
505
- it("parses --mode flag", () => {
506
- const result = parseWorkerArgs(["--mode", "production"]);
507
- assert.equal(result.mode, "production");
508
- });
509
- it("parses --mode= format", () => {
510
- const result = parseWorkerArgs(["--mode=production"]);
511
- assert.equal(result.mode, "production");
512
- });
513
- it("parses --once flag", () => {
514
- const result = parseWorkerArgs(["--once"]);
515
- assert.equal(result.once, true);
516
- });
517
- it("passes through args after --", () => {
518
- const result = parseWorkerArgs(["--entry", "w.ts", "--", "arg1", "arg2"]);
519
- assert.equal(result.entry, "w.ts");
520
- assert.deepEqual(result.workerArgs, ["arg1", "arg2"]);
521
- });
522
- it("handles all flags combined", () => {
523
- const result = parseWorkerArgs(["--entry=w.ts", "--mode=production", "--once", "--", "extra"]);
524
- assert.equal(result.entry, "w.ts");
525
- assert.equal(result.mode, "production");
526
- assert.equal(result.once, true);
527
- assert.deepEqual(result.workerArgs, ["extra"]);
528
- });
529
- });
530
- // ---------------------------------------------------------------------------
531
- // resolveWorkerEntry
532
- // ---------------------------------------------------------------------------
533
- describe("resolveWorkerEntry", () => {
534
- it("returns null when no candidates exist", () => {
535
- const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "worker-entry-"));
536
- try {
537
- const result = resolveWorkerEntry(tmpDir);
538
- assert.equal(result, null);
539
- }
540
- finally {
541
- fs.rmSync(tmpDir, { recursive: true, force: true });
542
- }
543
- });
544
- it("prioritises CLI entry over default candidates", () => {
545
- const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "worker-entry-"));
546
- try {
547
- const workerPath = path.join(tmpDir, "custom-worker.ts");
548
- fs.writeFileSync(workerPath, "export function run() {}");
549
- fs.mkdirSync(path.join(tmpDir, "src"), { recursive: true });
550
- fs.writeFileSync(path.join(tmpDir, "src", "worker.ts"), "");
551
- const result = resolveWorkerEntry(tmpDir, "custom-worker.ts");
552
- assert.equal(result, workerPath);
553
- }
554
- finally {
555
- fs.rmSync(tmpDir, { recursive: true, force: true });
556
- }
557
- });
558
- it("falls back to default candidate src/worker.ts", () => {
559
- const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "worker-entry-"));
560
- try {
561
- fs.mkdirSync(path.join(tmpDir, "src"), { recursive: true });
562
- const workerPath = path.join(tmpDir, "src", "worker.ts");
563
- fs.writeFileSync(workerPath, "");
564
- const result = resolveWorkerEntry(tmpDir);
565
- assert.equal(result, workerPath);
566
- }
567
- finally {
568
- fs.rmSync(tmpDir, { recursive: true, force: true });
569
- }
570
- });
571
- it("uses config entry when CLI entry is undefined", () => {
572
- const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "worker-entry-"));
573
- try {
574
- const workerPath = path.join(tmpDir, "jobs.ts");
575
- fs.writeFileSync(workerPath, "");
576
- const result = resolveWorkerEntry(tmpDir, undefined, "jobs.ts");
577
- assert.equal(result, workerPath);
578
- }
579
- finally {
580
- fs.rmSync(tmpDir, { recursive: true, force: true });
581
- }
582
- });
583
- });
584
- // ---------------------------------------------------------------------------
585
- // normalizePathname
586
- // ---------------------------------------------------------------------------
587
- describe("normalizePathname", () => {
588
- it("returns / for empty string", () => {
589
- assert.equal(normalizePathname(""), "/");
590
- });
591
- it("returns the path as-is for a normal path", () => {
592
- assert.equal(normalizePathname("/about"), "/about");
593
- });
594
- it("strips trailing slash", () => {
595
- assert.equal(normalizePathname("/blog/"), "/blog");
596
- });
597
- it("keeps root / as-is", () => {
598
- assert.equal(normalizePathname("/"), "/");
599
- });
600
- it("rejects path traversal", () => {
601
- assert.equal(normalizePathname("/../../etc"), "");
602
- });
603
- it("rejects non-absolute paths", () => {
604
- assert.equal(normalizePathname("relative"), "");
605
- });
606
- it("decodes percent-encoded characters", () => {
607
- assert.equal(normalizePathname("/hello%20world"), "/hello world");
608
- });
609
- it("returns empty string for bad encoding", () => {
610
- assert.equal(normalizePathname("/%E0%A4%A"), "");
611
- });
612
- });
613
- // ---------------------------------------------------------------------------
614
- // isWithinDirectory
615
- // ---------------------------------------------------------------------------
616
- describe("isWithinDirectory", () => {
617
- it("returns true for a child path", () => {
618
- assert.equal(isWithinDirectory("/dist", "/dist/index.html"), true);
619
- });
620
- it("returns true for the directory itself", () => {
621
- assert.equal(isWithinDirectory("/dist", "/dist"), true);
622
- });
623
- it("returns false for a parent path", () => {
624
- assert.equal(isWithinDirectory("/dist", "/etc/passwd"), false);
625
- });
626
- it("returns false for path traversal", () => {
627
- assert.equal(isWithinDirectory("/dist", "/dist/../etc/passwd"), false);
628
- });
629
- });
630
- // ---------------------------------------------------------------------------
631
- // resolveDistFilePath
632
- // ---------------------------------------------------------------------------
633
- describe("resolveDistFilePath", () => {
634
- it("resolves a normal file path", () => {
635
- const result = resolveDistFilePath("/dist", "/index.html");
636
- assert.equal(result, path.resolve("/dist", "./index.html"));
637
- });
638
- it("returns null for path traversal attempt", () => {
639
- const result = resolveDistFilePath("/dist", "/../etc/passwd");
640
- assert.equal(result, null);
641
- });
642
- });
643
- // ---------------------------------------------------------------------------
644
- // CLI command dispatch
645
- // ---------------------------------------------------------------------------
646
- describe("CLI command dispatch", () => {
647
- it("recognises all valid commands", () => {
648
- for (const cmd of VALID_COMMANDS) {
649
- assert.ok(VALID_COMMANDS.includes(cmd), `${cmd} should be a valid command`);
650
- }
651
- });
652
- it("has 7 valid commands", () => {
653
- assert.equal(VALID_COMMANDS.length, 7);
654
- });
655
- it("includes dev, build, preview, start", () => {
656
- assert.ok(VALID_COMMANDS.includes("dev"));
657
- assert.ok(VALID_COMMANDS.includes("build"));
658
- assert.ok(VALID_COMMANDS.includes("preview"));
659
- assert.ok(VALID_COMMANDS.includes("start"));
660
- });
661
- it("includes worker, deploy-check, release-check", () => {
662
- assert.ok(VALID_COMMANDS.includes("worker"));
663
- assert.ok(VALID_COMMANDS.includes("deploy-check"));
664
- assert.ok(VALID_COMMANDS.includes("release-check"));
665
- });
666
- });
667
- // ---------------------------------------------------------------------------
668
- // Config file candidate ordering
669
- // ---------------------------------------------------------------------------
670
- describe("config file candidates", () => {
671
- const CONFIG_CANDIDATES = [
672
- "neutron.config.ts",
673
- "neutron.config.js",
674
- "neutron.config.mjs",
675
- "neutron.config.cjs",
676
- ];
677
- it("prefers .ts over .js", () => {
678
- assert.equal(CONFIG_CANDIDATES[0], "neutron.config.ts");
679
- assert.equal(CONFIG_CANDIDATES[1], "neutron.config.js");
680
- });
681
- it("includes all four extensions", () => {
682
- assert.equal(CONFIG_CANDIDATES.length, 4);
683
- });
684
- });
685
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}