pastoria 1.0.12 → 1.0.14

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/generate.js CHANGED
@@ -29,6 +29,7 @@ import { readFile } from 'node:fs/promises';
29
29
  import * as path from 'node:path';
30
30
  import pc from 'picocolors';
31
31
  import { SyntaxKind, ts, TypeFlags, } from 'ts-morph';
32
+ import { logInfo, logWarn } from './logger.js';
32
33
  async function loadRouterTemplates(project, filename) {
33
34
  async function loadSourceFile(fileName, templateFileName) {
34
35
  const template = await readFile(templateFileName, 'utf-8');
@@ -48,6 +49,28 @@ async function loadRouterTemplates(project, filename) {
48
49
  }
49
50
  // Regex to quickly check if a file contains any Pastoria JSDoc tags
50
51
  export const PASTORIA_TAG_REGEX = /@(route|resource|appRoot|param|gqlContext|serverRoute)\b/;
52
+ function collectQueryParameters(project, queries) {
53
+ const vars = new Map();
54
+ for (const query of queries) {
55
+ const variablesType = project
56
+ .getSourceFile(`__generated__/queries/${query}.graphql.ts`)
57
+ ?.getExportedDeclarations()
58
+ .get(`${query}$variables`)
59
+ ?.at(0)
60
+ ?.getType();
61
+ if (variablesType == null)
62
+ continue;
63
+ for (const property of variablesType.getProperties()) {
64
+ // TODO: Detect conflicting types among properties declared.
65
+ const propertyName = property.getName();
66
+ const propertyType = property.getValueDeclaration()?.getType();
67
+ if (propertyType) {
68
+ vars.set(propertyName, propertyType.compilerType);
69
+ }
70
+ }
71
+ }
72
+ return vars;
73
+ }
51
74
  function collectPastoriaMetadata(project) {
52
75
  const resources = new Map();
53
76
  const routes = new Map();
@@ -112,7 +135,7 @@ function collectPastoriaMetadata(project) {
112
135
  switch (tag.tagName.getText()) {
113
136
  case 'appRoot': {
114
137
  if (appRoot != null) {
115
- console.warn(pc.yellow('Warning:'), 'Multiple @appRoot tags found. Using the first one.');
138
+ logWarn('Multiple @appRoot tags found. Using the first one.');
116
139
  }
117
140
  else {
118
141
  appRoot = {
@@ -143,7 +166,7 @@ function collectPastoriaMetadata(project) {
143
166
  }
144
167
  if (extendsPastoriaRootContext) {
145
168
  if (gqlContext != null) {
146
- console.warn(pc.yellow('Warning:'), 'Multiple classes with @gqlContext extending PastoriaRootContext found. Using the first one.');
169
+ logWarn('Multiple classes with @gqlContext extending PastoriaRootContext found. Using the first one.');
147
170
  }
148
171
  else {
149
172
  gqlContext = {
@@ -210,29 +233,47 @@ function getResourceQueriesAndEntryPoints(symbol) {
210
233
  });
211
234
  entryPoints?.getProperties().forEach((prop) => {
212
235
  const epRef = prop.getName();
213
- const resourceName = prop
236
+ const entryPointTypeRef = prop
214
237
  .getValueDeclaration()
215
238
  ?.asKind(SyntaxKind.PropertySignature)
216
239
  ?.getTypeNode()
217
- ?.asKind(SyntaxKind.TypeReference)
218
- ?.getTypeArguments()
219
- .at(0)
220
- ?.asKind(SyntaxKind.TypeReference)
221
- ?.getTypeArguments()
222
- .at(0)
223
- ?.asKind(SyntaxKind.LiteralType)
224
- ?.getLiteral()
225
- .asKind(SyntaxKind.StringLiteral)
226
- ?.getLiteralText();
227
- if (resourceName) {
228
- resource.entryPoints.set(epRef, resourceName);
240
+ ?.asKind(SyntaxKind.TypeReference);
241
+ const entryPointTypeName = entryPointTypeRef?.getTypeName().getText();
242
+ if (entryPointTypeName !== 'EntryPoint') {
243
+ // TODO: Warn about found types not named EntryPoint
244
+ return;
245
+ }
246
+ const entryPointInner = entryPointTypeRef?.getTypeArguments().at(0);
247
+ const moduleTypeRef = entryPointInner?.asKind(SyntaxKind.TypeReference);
248
+ if (moduleTypeRef != null) {
249
+ const resourceName = moduleTypeRef
250
+ ?.getTypeArguments()
251
+ .at(0)
252
+ ?.asKind(SyntaxKind.LiteralType)
253
+ ?.getLiteral()
254
+ .asKind(SyntaxKind.StringLiteral)
255
+ ?.getLiteralText();
256
+ if (resourceName) {
257
+ resource.entryPoints.set(epRef, resourceName);
258
+ }
229
259
  }
230
260
  });
231
261
  }
232
262
  return resource;
233
263
  }
234
- function zodSchemaOfType(tc, t) {
235
- if (t.getFlags() & TypeFlags.String) {
264
+ function zodSchemaOfType(sf, tc, t) {
265
+ if (t.aliasSymbol) {
266
+ const decl = t.aliasSymbol.declarations?.at(0);
267
+ if (decl == null) {
268
+ logWarn('Could not handle type:', tc.typeToString(t));
269
+ return `z.any()`;
270
+ }
271
+ else {
272
+ const importPath = sf.getRelativePathAsModuleSpecifierTo(decl.getSourceFile().fileName);
273
+ return `z.transform((s: string) => s as import('${importPath}').${t.aliasSymbol.getName()})`;
274
+ }
275
+ }
276
+ else if (t.getFlags() & TypeFlags.String) {
236
277
  return `z.pipe(z.string(), z.transform(decodeURIComponent))`;
237
278
  }
238
279
  else if (t.getFlags() & TypeFlags.Number) {
@@ -242,27 +283,36 @@ function zodSchemaOfType(tc, t) {
242
283
  return `z.preprocess(s => s == null ? undefined : s, z.undefined())`;
243
284
  }
244
285
  else if (t.isUnion()) {
245
- const isRepresentingOptional = t.types.length === 2 &&
246
- t.types.some((s) => s.getFlags() & TypeFlags.Null);
247
- if (isRepresentingOptional) {
248
- const nonOptionalType = t.types.find((s) => !(s.getFlags() & TypeFlags.Null));
249
- return `z.pipe(z.nullish(${zodSchemaOfType(tc, nonOptionalType)}), z.transform(s => s == null ? undefined : s))`;
286
+ const nullishTypes = [];
287
+ const nonNullishTypes = [];
288
+ for (const s of t.types) {
289
+ const flags = s.getFlags();
290
+ if (flags & TypeFlags.Null || flags & TypeFlags.Undefined) {
291
+ nullishTypes.push(s);
292
+ }
293
+ else {
294
+ nonNullishTypes.push(s);
295
+ }
296
+ }
297
+ if (nullishTypes.length > 0 && nonNullishTypes.length > 0) {
298
+ const nonOptionalType = t.getNonNullableType();
299
+ return `z.pipe(z.nullish(${zodSchemaOfType(sf, tc, nonOptionalType)}), z.transform(s => s == null ? undefined : s))`;
250
300
  }
251
301
  else {
252
- return `z.union([${t.types.map((it) => zodSchemaOfType(tc, it)).join(', ')}])`;
302
+ return `z.union([${t.types.map((it) => zodSchemaOfType(sf, tc, it)).join(', ')}])`;
253
303
  }
254
304
  }
255
305
  else if (tc.isArrayLikeType(t)) {
256
306
  const typeArg = tc.getTypeArguments(t)[0];
257
- const argZodSchema = typeArg == null ? `z.any()` : zodSchemaOfType(tc, typeArg);
307
+ const argZodSchema = typeArg == null ? `z.any()` : zodSchemaOfType(sf, tc, typeArg);
258
308
  return `z.array(${argZodSchema})`;
259
309
  }
260
310
  else {
261
- console.log('Could not handle type:', tc.typeToString(t));
311
+ logWarn('Could not handle type:', tc.typeToString(t));
262
312
  return `z.any()`;
263
313
  }
264
314
  }
265
- function writeEntryPoint(writer, metadata, consumedQueries, resourceName, resource, parseVars = true) {
315
+ function writeEntryPoint(writer, project, metadata, consumedQueries, resourceName, resource, parseVars = true) {
266
316
  writer.writeLine(`root: JSResource.fromModuleId('${resourceName}'),`);
267
317
  writer
268
318
  .write(`getPreloadProps(${parseVars ? '{params, schema}' : ''})`)
@@ -276,11 +326,25 @@ function writeEntryPoint(writer, metadata, consumedQueries, resourceName, resour
276
326
  .block(() => {
277
327
  for (const [queryRef, query] of resource.queries.entries()) {
278
328
  consumedQueries.add(query);
329
+ // Determine which variables this specific query needs
330
+ const queryVars = collectQueryParameters(project, [query]);
331
+ const hasVariables = queryVars.size > 0;
279
332
  writer
280
333
  .write(`${queryRef}:`)
281
334
  .block(() => {
282
335
  writer.writeLine(`parameters: ${query}Parameters,`);
283
- writer.writeLine(`variables`);
336
+ if (hasVariables) {
337
+ const varNames = Array.from(queryVars.keys());
338
+ // Always pick from the variables object
339
+ writer.write(`variables: {`);
340
+ writer.write(varNames.map((v) => `${v}: variables.${v}`).join(', '));
341
+ writer.write(`}`);
342
+ }
343
+ else {
344
+ // Query has no variables, pass empty object
345
+ writer.write(`variables: {}`);
346
+ }
347
+ writer.newLine();
284
348
  })
285
349
  .write(',');
286
350
  }
@@ -290,12 +354,15 @@ function writeEntryPoint(writer, metadata, consumedQueries, resourceName, resour
290
354
  for (const [epRef, subresourceName,] of resource.entryPoints.entries()) {
291
355
  const subresource = metadata.resources.get(subresourceName);
292
356
  if (subresource) {
293
- writer.write(`${epRef}:`).block(() => {
357
+ writer
358
+ .write(`${epRef}:`)
359
+ .block(() => {
294
360
  writer.writeLine(`entryPointParams: {},`);
295
361
  writer.write('entryPoint:').block(() => {
296
- writeEntryPoint(writer, metadata, consumedQueries, subresourceName, subresource, false);
362
+ writeEntryPoint(writer, project, metadata, consumedQueries, subresourceName, subresource, false);
297
363
  });
298
- });
364
+ })
365
+ .writeLine(',');
299
366
  }
300
367
  }
301
368
  });
@@ -312,7 +379,7 @@ async function generateRouter(project, metadata) {
312
379
  .getExpressionIfKindOrThrow(SyntaxKind.ObjectLiteralExpression);
313
380
  routerConf.getPropertyOrThrow('noop').remove();
314
381
  let entryPointImportIndex = 0;
315
- for (const [routeName, { sourceFile, symbol, params },] of metadata.routes.entries()) {
382
+ for (let [routeName, { sourceFile, symbol, params },] of metadata.routes.entries()) {
316
383
  const filePath = path.relative(process.cwd(), sourceFile.getFilePath());
317
384
  let entryPointExpression;
318
385
  // Resource-routes are combined declarations of a resource and a route
@@ -334,10 +401,13 @@ async function generateRouter(project, metadata) {
334
401
  returnType: `EntryPoint<ModuleType<'${resourceName}'>, EntryPointParams<'${routeName}'>>`,
335
402
  statements: (writer) => {
336
403
  writer.write('return ').block(() => {
337
- writeEntryPoint(writer, metadata, consumedQueries, resourceName, resource);
404
+ writeEntryPoint(writer, project, metadata, consumedQueries, resourceName, resource);
338
405
  });
339
406
  },
340
407
  });
408
+ if (params.size === 0 && consumedQueries.size > 0) {
409
+ params = collectQueryParameters(project, Array.from(consumedQueries));
410
+ }
341
411
  for (const query of consumedQueries) {
342
412
  routerTemplate.addImportDeclaration({
343
413
  moduleSpecifier: `#genfiles/queries/${query}$parameters`,
@@ -373,7 +443,7 @@ async function generateRouter(project, metadata) {
373
443
  else {
374
444
  writer.writeLine(`schema: z.object({`);
375
445
  for (const [paramName, paramType] of Array.from(params)) {
376
- writer.writeLine(` ${paramName}: ${zodSchemaOfType(tc, paramType)},`);
446
+ writer.writeLine(` ${paramName}: ${zodSchemaOfType(routerTemplate, tc, paramType)},`);
377
447
  }
378
448
  writer.writeLine('})');
379
449
  }
@@ -381,7 +451,7 @@ async function generateRouter(project, metadata) {
381
451
  .write('} as const');
382
452
  },
383
453
  });
384
- console.log('Created route', pc.cyan(routeName), 'for', pc.green(symbol.getName()), 'exported from', pc.yellow(filePath));
454
+ logInfo('Created route', pc.cyan(routeName), 'for', pc.green(symbol.getName()), 'exported from', pc.yellow(filePath));
385
455
  }
386
456
  await routerTemplate.save();
387
457
  }
@@ -405,7 +475,7 @@ async function generateJsResource(project, metadata) {
405
475
  });
406
476
  },
407
477
  });
408
- console.log('Created resource', pc.cyan(resourceName), 'for', pc.green(symbol.getName()), 'exported from', pc.yellow(filePath));
478
+ logInfo('Created resource', pc.cyan(resourceName), 'for', pc.green(symbol.getName()), 'exported from', pc.yellow(filePath));
409
479
  }
410
480
  await jsResourceTemplate.save();
411
481
  }
@@ -431,7 +501,7 @@ async function generateAppRoot(project, metadata) {
431
501
  export {${appRootSymbol.getName()} as App} from '${moduleSpecifier}';
432
502
  `);
433
503
  await appRootFile.save();
434
- console.log('Created app root for', pc.green(appRootSymbol.getName()), 'exported from', pc.yellow(filePath));
504
+ logInfo('Created app root for', pc.green(appRootSymbol.getName()), 'exported from', pc.yellow(filePath));
435
505
  }
436
506
  async function generateGraphqlContext(project, metadata) {
437
507
  const targetDir = process.cwd();
@@ -449,7 +519,7 @@ async function generateGraphqlContext(project, metadata) {
449
519
 
450
520
  export {${contextSymbol.getName()} as Context} from '${moduleSpecifier}';
451
521
  `);
452
- console.log('Created GraphQL context for', pc.green(contextSymbol.getName()), 'exported from', pc.yellow(filePath));
522
+ logInfo('Created GraphQL context for', pc.green(contextSymbol.getName()), 'exported from', pc.yellow(filePath));
453
523
  }
454
524
  else {
455
525
  contextFile.addStatements(`/*
@@ -464,7 +534,7 @@ import {PastoriaRootContext} from 'pastoria-runtime/server';
464
534
  */
465
535
  export class Context extends PastoriaRootContext {}
466
536
  `);
467
- console.log('No @gqlContext found, generating default', pc.green('Context'));
537
+ logInfo('No @gqlContext found, generating default', pc.green('Context'));
468
538
  }
469
539
  await contextFile.save();
470
540
  }
@@ -489,7 +559,7 @@ export const router = express.Router();
489
559
  namedImports: [{ name: symbol.getName(), alias: importAlias }],
490
560
  });
491
561
  serverHandlerTemplate.addStatements(`router.use('${routeName}', ${importAlias})`);
492
- console.log('Created server handler', pc.cyan(routeName), 'for', pc.green(symbol.getName()), 'exported from', pc.yellow(filePath));
562
+ logInfo('Created server handler', pc.cyan(routeName), 'for', pc.green(symbol.getName()), 'exported from', pc.yellow(filePath));
493
563
  }
494
564
  await serverHandlerTemplate.save();
495
565
  }
@@ -504,4 +574,82 @@ export async function generatePastoriaArtifacts(project, metadata = collectPasto
504
574
  await generateJsResource(project, metadata);
505
575
  await generateServerHandler(project, metadata);
506
576
  }
577
+ export function generateClientEntry({ hasAppRoot, }) {
578
+ const appImport = hasAppRoot
579
+ ? `import {App} from '#genfiles/router/app_root';`
580
+ : '';
581
+ const appValue = hasAppRoot ? 'App' : 'null';
582
+ return `// Generated by Pastoria.
583
+ import {createRouterApp} from '#genfiles/router/router';
584
+ ${appImport}
585
+ import {hydrateRoot} from 'react-dom/client';
586
+
587
+ async function main() {
588
+ const RouterApp = await createRouterApp();
589
+ hydrateRoot(document, <RouterApp App={${appValue}} />);
590
+ }
591
+
592
+ main();
593
+ `;
594
+ }
595
+ export function generateServerEntry({ hasAppRoot, hasServerHandler, }) {
596
+ const appImport = hasAppRoot
597
+ ? `import {App} from '#genfiles/router/app_root';`
598
+ : '';
599
+ const appValue = hasAppRoot ? 'App' : 'null';
600
+ const serverHandlerImport = hasServerHandler
601
+ ? `import {router as serverHandler} from '#genfiles/router/server_handler';`
602
+ : '';
603
+ const serverHandlerUse = hasServerHandler
604
+ ? ' router.use(serverHandler)'
605
+ : '';
606
+ return `// Generated by Pastoria.
607
+ import {JSResource} from '#genfiles/router/js_resource';
608
+ import {
609
+ listRoutes,
610
+ router__createAppFromEntryPoint,
611
+ router__loadEntryPoint,
612
+ } from '#genfiles/router/router';
613
+ import {getSchema} from '#genfiles/schema/schema';
614
+ import {Context} from '#genfiles/router/context';
615
+ ${appImport}
616
+ ${serverHandlerImport}
617
+ import express from 'express';
618
+ import {GraphQLSchema, specifiedDirectives} from 'graphql';
619
+ import {PastoriaConfig} from 'pastoria-config';
620
+ import {createRouterHandler} from 'pastoria-runtime/server';
621
+ import type {Manifest} from 'vite';
622
+
623
+ const schemaConfig = getSchema().toConfig();
624
+ const schema = new GraphQLSchema({
625
+ ...schemaConfig,
626
+ directives: [...specifiedDirectives, ...schemaConfig.directives],
627
+ });
628
+
629
+ export function createHandler(
630
+ persistedQueries: Record<string, string>,
631
+ config: Required<PastoriaConfig>,
632
+ manifest?: Manifest,
633
+ ) {
634
+ const routeHandler = createRouterHandler(
635
+ listRoutes(),
636
+ JSResource.srcOfModuleId,
637
+ router__loadEntryPoint,
638
+ router__createAppFromEntryPoint,
639
+ ${appValue},
640
+ schema,
641
+ (req) => Context.createFromRequest(req),
642
+ persistedQueries,
643
+ config,
644
+ manifest,
645
+ );
646
+
647
+ const router = express.Router();
648
+ router.use(routeHandler);
649
+ ${serverHandlerUse}
650
+
651
+ return router;
652
+ }
653
+ `;
654
+ }
507
655
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAML,UAAU,EACV,EAAE,EACF,SAAS,GAEV,MAAM,UAAU,CAAC;AAElB,KAAK,UAAU,mBAAmB,CAAC,OAAgB,EAAE,QAAgB;IACnE,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,gBAAwB;QACtE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG;;qEAE0C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;;;CAGnG,CAAC;QACE,OAAO,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,QAAQ,EAAE;YACnE,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IAC3D,OAAO,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AA4BD,oEAAoE;AACpE,MAAM,CAAC,MAAM,kBAAkB,GAC7B,0DAA0D,CAAC;AAE7D,SAAS,uBAAuB,CAAC,OAAgB;IAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9C,MAAM,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;IACzD,IAAI,OAAO,GAA0B,IAAI,CAAC;IAC1C,IAAI,UAAU,GAA0B,IAAI,CAAC;IAE7C,SAAS,gBAAgB,CAAC,UAAsB;QAC9C,uBAAuB;QACvB,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACvD,OAAO;QACT,CAAC;QAED,wDAAwD;QACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,UAAU,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/C,IAAI,cAAc,GAAG,IAAuC,CAAC;YAC7D,IAAI,WAAW,GAAG,IAAoC,CAAC;YACvD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAC;YAE/C,SAAS,cAAc,CAAC,GAA2B;gBACjD,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpB,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;gBACpC,CAAC;qBAAM,IAAI,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC;oBAC1C,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,cAAc,CAAC;oBAEnD,MAAM,IAAI,GACR,QAAQ,IAAI,IAAI;wBACd,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE;wBACrB,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;oBAEvC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC5C,CAAC;qBAAM,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC3C,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;wBAC9B,KAAK,OAAO,CAAC,CAAC,CAAC;4BACb,WAAW,GAAG;gCACZ,GAAG,CAAC,OAAO;gCACX,EAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAC;6BAC1C,CAAC;4BACF,MAAM;wBACR,CAAC;wBACD,KAAK,UAAU,CAAC,CAAC,CAAC;4BAChB,cAAc,GAAG;gCACf,GAAG,CAAC,OAAO;gCACX;oCACE,UAAU;oCACV,MAAM;oCACN,OAAO,EAAE,IAAI,GAAG,EAAE;oCAClB,WAAW,EAAE,IAAI,GAAG,EAAE;iCACvB;6BACF,CAAC;4BACF,MAAM;wBACR,CAAC;wBACD,KAAK,aAAa,CAAC,CAAC,CAAC;4BACnB,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAC,UAAU,EAAE,MAAM,EAAC,CAAC,CAAC;4BACtD,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,mEAAmE;oBACnE,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;wBAC9B,KAAK,SAAS,CAAC,CAAC,CAAC;4BACf,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gCACpB,OAAO,CAAC,IAAI,CACV,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EACrB,oDAAoD,CACrD,CAAC;4BACJ,CAAC;iCAAM,CAAC;gCACN,OAAO,GAAG;oCACR,UAAU;oCACV,MAAM;iCACP,CAAC;4BACJ,CAAC;4BACD,MAAM;wBACR,CAAC;wBACD,KAAK,YAAY,CAAC,CAAC,CAAC;4BAClB,kDAAkD;4BAClD,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;4BAC9C,IAAI,0BAA0B,GAAG,KAAK,CAAC;4BAEvC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gCAChC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;oCAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAClC,UAAU,CAAC,gBAAgB,CAC5B,CAAC;oCACF,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;oCAC7C,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;wCAC1B,MAAM,aAAa,GAAG,aAAa;6CAChC,aAAa,EAAE;6CACf,OAAO,EAAE,CAAC;wCACb,IAAI,aAAa,KAAK,qBAAqB,EAAE,CAAC;4CAC5C,0BAA0B,GAAG,IAAI,CAAC;4CAClC,MAAM;wCACR,CAAC;oCACH,CAAC;gCACH,CAAC;4BACH,CAAC;4BAED,IAAI,0BAA0B,EAAE,CAAC;gCAC/B,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;oCACvB,OAAO,CAAC,IAAI,CACV,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EACrB,6FAA6F,CAC9F,CAAC;gCACJ,CAAC;qCAAM,CAAC;oCACN,UAAU,GAAG;wCACX,UAAU;wCACV,MAAM;qCACP,CAAC;gCACJ,CAAC;4BACH,CAAC;4BACD,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM;iBACH,eAAe,EAAE;iBACjB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAChE,OAAO,CAAC,cAAc,CAAC,CAAC;YAE3B,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC;gBAC7C,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBAEnC,MAAM,EAAC,WAAW,EAAE,OAAO,EAAC,GAAG,gCAAgC,CAC7D,WAAW,CAAC,MAAM,CACnB,CAAC;gBAEF,IAAI,cAAc,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjE,SAAS,CAAC,GAAG,CAAC,SAAS,SAAS,GAAG,EAAE;wBACnC,GAAG,WAAW;wBACd,WAAW;wBACX,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;gBAC3B,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG,cAAc,CAAC;gBACtD,MAAM,EAAC,WAAW,EAAE,OAAO,EAAC,GAAG,gCAAgC,CAC7D,cAAc,CAAC,MAAM,CACtB,CAAC;gBAEF,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC;gBACjC,cAAc,CAAC,WAAW,GAAG,WAAW,CAAC;gBACzC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAC,CAAC;AAClE,CAAC;AAED,SAAS,gCAAgC,CAAC,MAAc;IAItD,MAAM,QAAQ,GAAG;QACf,OAAO,EAAE,IAAI,GAAG,EAAkB;QAClC,WAAW,EAAE,IAAI,GAAG,EAAkB;KACvC,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC;IAE3B,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;IAEvC,IAAI,WAAW,EAAE,OAAO,EAAE,KAAK,qBAAqB,EAAE,CAAC;QACrD,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC;QAEzD,OAAO,EAAE,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI;iBACnB,mBAAmB,EAAE;gBACtB,EAAE,OAAO,EAAE;iBACV,cAAc,EAAE;gBACjB,EAAE,OAAO,EAAE,CAAC;YAEd,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,WAAW,EAAE,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,IAAI;iBACtB,mBAAmB,EAAE;gBACtB,EAAE,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC;gBACtC,EAAE,WAAW,EAAE;gBACf,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;gBAClC,EAAE,gBAAgB,EAAE;iBACnB,EAAE,CAAC,CAAC,CAAC;gBACN,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;gBAClC,EAAE,gBAAgB,EAAE;iBACnB,EAAE,CAAC,CAAC,CAAC;gBACN,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;gBAChC,EAAE,UAAU,EAAE;iBACb,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;gBACjC,EAAE,cAAc,EAAE,CAAC;YAErB,IAAI,YAAY,EAAE,CAAC;gBACjB,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,EAAkB,EAAE,CAAU;IACrD,IAAI,CAAC,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,qDAAqD,CAAC;IAC/D,CAAC;SAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QAC3C,OAAO,2BAA2B,CAAC;IACrC,CAAC;SAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,6DAA6D,CAAC;IACvE,CAAC;SAAM,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACvB,MAAM,sBAAsB,GAC1B,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YACpB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAErD,IAAI,sBAAsB,EAAE,CAAC;YAC3B,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CACvC,CAAC;YAEH,OAAO,oBAAoB,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,iDAAiD,CAAC;QACnH,CAAC;aAAM,CAAC;YACN,OAAO,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACjF,CAAC;IACH,CAAC;SAAM,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,YAAY,GAChB,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAE7D,OAAO,WAAW,YAAY,GAAG,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,MAAuB,EACvB,QAA0B,EAC1B,eAA4B,EAC5B,YAAoB,EACpB,QAAwB,EACxB,SAAS,GAAG,IAAI;IAEhB,MAAM,CAAC,SAAS,CAAC,kCAAkC,YAAY,KAAK,CAAC,CAAC;IACtE,MAAM;SACH,KAAK,CAAC,mBAAmB,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;SAChE,KAAK,CAAC,GAAG,EAAE;QACV,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM;iBACH,KAAK,CAAC,UAAU,CAAC;iBACjB,KAAK,CAAC,GAAG,EAAE;gBACV,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC3D,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAE3B,MAAM;yBACH,KAAK,CAAC,GAAG,QAAQ,GAAG,CAAC;yBACrB,KAAK,CAAC,GAAG,EAAE;wBACV,MAAM,CAAC,SAAS,CAAC,eAAe,KAAK,aAAa,CAAC,CAAC;wBACpD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;oBAChC,CAAC,CAAC;yBACD,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC;iBACD,SAAS,CAAC,GAAG,CAAC,CAAC;YAElB,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBACtC,KAAK,MAAM,CACT,KAAK,EACL,eAAe,EAChB,IAAI,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;oBACpC,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oBAC5D,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;4BACnC,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;4BAC1C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gCACrC,eAAe,CACb,MAAM,EACN,QAAQ,EACR,eAAe,EACf,eAAe,EACf,WAAW,EACX,KAAK,CACN,CAAC;4BACJ,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,OAAgB,EAAE,QAA0B;IACxE,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACxE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,cAAc,CAAC;IAEnD,IAAI,sBAAsB,GAAG,KAAK,CAAC;IACnC,MAAM,UAAU,GAAG,cAAc;SAC9B,6BAA6B,CAAC,aAAa,CAAC;SAC5C,2BAA2B,CAAC,UAAU,CAAC,YAAY,CAAC;SACpD,0BAA0B,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAElE,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;IAE/C,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAC9B,KAAK,MAAM,CACT,SAAS,EACT,EAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAC,EAC7B,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QACxE,IAAI,oBAA4B,CAAC;QAEjC,sEAAsE;QACtE,yDAAyD;QACzD,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CACnE,CAAC,CAAC,EAAE,EAAC,MAAM,EAAE,cAAc,EAAC,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,cAAc,CAC5D,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,eAAe,CAAC;YACjD,MAAM,sBAAsB,GAAG,cAAc,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;YAE/E,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC5B,sBAAsB,GAAG,IAAI,CAAC;gBAC9B,cAAc,CAAC,oBAAoB,CAAC;oBAClC,eAAe,EAAE,eAAe;oBAChC,YAAY,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;iBAC3C,CAAC,CAAC;YACL,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;YAC1C,cAAc,CAAC,WAAW,CAAC;gBACzB,IAAI,EAAE,sBAAsB;gBAC5B,UAAU,EAAE,0BAA0B,YAAY,yBAAyB,SAAS,KAAK;gBACzF,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;oBACrB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;wBACjC,eAAe,CACb,MAAM,EACN,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,QAAQ,CACT,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;YAEH,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;gBACpC,cAAc,CAAC,oBAAoB,CAAC;oBAClC,eAAe,EAAE,qBAAqB,KAAK,aAAa;oBACxD,aAAa,EAAE,GAAG,KAAK,YAAY;iBACpC,CAAC,CAAC;YACL,CAAC;YAED,oBAAoB,GAAG,sBAAsB,GAAG,IAAI,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,IAAI,qBAAqB,EAAE,EAAE,CAAC;YAClD,MAAM,eAAe,GAAG,cAAc,CAAC,kCAAkC,CACvE,UAAU,CAAC,WAAW,EAAE,CACzB,CAAC;YAEF,cAAc,CAAC,oBAAoB,CAAC;gBAClC,eAAe;gBACf,YAAY,EAAE;oBACZ;wBACE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;wBACtB,KAAK,EAAE,WAAW;qBACnB;iBACF;aACF,CAAC,CAAC;YAEH,oBAAoB,GAAG,WAAW,CAAC;QACrC,CAAC;QAED,UAAU,CAAC,qBAAqB,CAAC;YAC/B,IAAI,EAAE,IAAI,SAAS,GAAG;YACtB,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;gBACtB,MAAM;qBACH,KAAK,CAAC,GAAG,CAAC;qBACV,MAAM,CAAC,GAAG,EAAE;oBACX,MAAM,CAAC,SAAS,CAAC,eAAe,oBAAoB,GAAG,CAAC,CAAC;oBACzD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;wBACtB,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;oBAC3C,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;wBACvC,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;4BACxD,MAAM,CAAC,SAAS,CACd,KAAK,SAAS,KAAK,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CACrD,CAAC;wBACJ,CAAC;wBAED,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC,CAAC;qBACD,KAAK,CAAC,YAAY,CAAC,CAAC;YACzB,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CACT,eAAe,EACf,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAClB,KAAK,EACL,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAC1B,eAAe,EACf,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CACpB,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,OAAgB,EAChB,QAA0B;IAE1B,MAAM,kBAAkB,GAAG,MAAM,mBAAmB,CAClD,OAAO,EACP,gBAAgB,CACjB,CAAC;IAEF,MAAM,YAAY,GAAG,kBAAkB;SACpC,6BAA6B,CAAC,eAAe,CAAC;SAC9C,2BAA2B,CAAC,UAAU,CAAC,YAAY,CAAC;SACpD,0BAA0B,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAElE,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;IACjD,KAAK,MAAM,CACT,YAAY,EACZ,EAAC,UAAU,EAAE,MAAM,EAAC,EACrB,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QACxE,MAAM,eAAe,GACnB,kBAAkB,CAAC,kCAAkC,CACnD,UAAU,CAAC,WAAW,EAAE,CACzB,CAAC;QAEJ,YAAY,CAAC,qBAAqB,CAAC;YACjC,IAAI,EAAE,IAAI,YAAY,GAAG;YACzB,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;gBACtB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;oBAChB,MAAM;yBACH,SAAS,CAAC,SAAS,QAAQ,IAAI,CAAC;yBAChC,SAAS,CACR,yBAAyB,eAAe,kBAAkB,MAAM,CAAC,OAAO,EAAE,GAAG,CAC9E,CAAC;gBACN,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CACT,kBAAkB,EAClB,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EACrB,KAAK,EACL,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAC1B,eAAe,EACf,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CACpB,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,CAAC,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAgB,EAAE,QAA0B;IACzE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,OAAO,GAA0B,QAAQ,CAAC,OAAO,CAAC;IAExD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,MAAM,OAAO;aACV,aAAa,CAAC,kCAAkC,CAAC;YAClD,EAAE,iBAAiB,EAAE,CAAC;QAExB,OAAO;IACT,CAAC;IAED,MAAM,iBAAiB,GAAe,OAAO,CAAC,UAAU,CAAC;IACzD,MAAM,aAAa,GAAW,OAAO,CAAC,MAAM,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAC1C,kCAAkC,EAClC,EAAE,EACF,EAAC,SAAS,EAAE,IAAI,EAAC,CAClB,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CAAC,kCAAkC,CACpE,iBAAiB,CAAC,WAAW,EAAE,CAChC,CAAC;IAEF,WAAW,CAAC,aAAa,CAAC;;;;;UAKlB,aAAa,CAAC,OAAO,EAAE,kBAAkB,eAAe;CACjE,CAAC,CAAC;IAED,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IAEzB,OAAO,CAAC,GAAG,CACT,sBAAsB,EACtB,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EACjC,eAAe,EACf,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CACpB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,OAAgB,EAChB,QAA0B;IAE1B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,UAAU,GAA0B,QAAQ,CAAC,UAAU,CAAC;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAC1C,iCAAiC,EACjC,EAAE,EACF,EAAC,SAAS,EAAE,IAAI,EAAC,CAClB,CAAC;IAEF,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,iBAAiB,GAAe,UAAU,CAAC,UAAU,CAAC;QAC5D,MAAM,aAAa,GAAW,UAAU,CAAC,MAAM,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3E,MAAM,eAAe,GAAG,WAAW,CAAC,kCAAkC,CACpE,iBAAiB,CAAC,WAAW,EAAE,CAChC,CAAC;QAEF,WAAW,CAAC,aAAa,CAAC;;;;;UAKpB,aAAa,CAAC,OAAO,EAAE,sBAAsB,eAAe;CACrE,CAAC,CAAC;QAEC,OAAO,CAAC,GAAG,CACT,6BAA6B,EAC7B,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EACjC,eAAe,EACf,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CACpB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,aAAa,CAAC;;;;;;;;;;;CAW7B,CAAC,CAAC;QAEC,OAAO,CAAC,GAAG,CACT,0CAA0C,EAC1C,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CACpB,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,OAAgB,EAChB,QAA0B;IAE1B,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO;aACV,aAAa,CAAC,wCAAwC,CAAC;YACxD,EAAE,iBAAiB,EAAE,CAAC;QAExB,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG;;CAEpB,CAAC;IAEA,MAAM,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CACpD,wCAAwC,EACxC,UAAU,EACV,EAAC,SAAS,EAAE,IAAI,EAAC,CAClB,CAAC;IAEF,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,KAAK,MAAM,CACT,SAAS,EACT,EAAC,MAAM,EAAE,UAAU,EAAC,EACrB,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,wBAAwB,EAAE,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QACxE,MAAM,eAAe,GACnB,qBAAqB,CAAC,kCAAkC,CACtD,UAAU,CAAC,WAAW,EAAE,CACzB,CAAC;QAEJ,qBAAqB,CAAC,oBAAoB,CAAC;YACzC,eAAe;YACf,YAAY,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAC,CAAC;SAC7D,CAAC,CAAC;QAEH,qBAAqB,CAAC,aAAa,CACjC,eAAe,SAAS,MAAM,WAAW,GAAG,CAC7C,CAAC;QAEF,OAAO,CAAC,GAAG,CACT,wBAAwB,EACxB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAClB,KAAK,EACL,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAC1B,eAAe,EACf,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CACpB,CAAC;IACJ,CAAC;IAED,MAAM,qBAAqB,CAAC,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAAgB;IAC5D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAElD,MAAM,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAgB,EAChB,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC;IAE3C,MAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxC,MAAM,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -20,7 +20,7 @@ async function main() {
20
20
  .description('Creates a production build of the project')
21
21
  .argument('[steps...]', 'Specific build steps to run (schema, relay, router). If not provided, will infer from changed files.')
22
22
  .option('-B, --always-make', 'Always make, never cache')
23
- .option('--release', 'Build for production')
23
+ .option('-R, --release', 'Build for production')
24
24
  .option('-w, --watch', 'Watch for changes and rebuild')
25
25
  .action(createBuild);
26
26
  program.parseAsync();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAE9C,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAC3E,CAAC;IAEF,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC;SACpC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEhC,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,eAAe,EAAE,mCAAmC,EAAE,MAAM,CAAC;SACpE,MAAM,CAAC,cAAc,CAAC,CAAC;IAE1B,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2CAA2C,CAAC;SACxD,QAAQ,CACP,YAAY,EACZ,sGAAsG,CACvG;SACA,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;SACvD,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC;SAC3C,MAAM,CAAC,aAAa,EAAE,+BAA+B,CAAC;SACtD,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvB,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAE9C,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAC3E,CAAC;IAEF,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC;SACpC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEhC,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,eAAe,EAAE,mCAAmC,EAAE,MAAM,CAAC;SACpE,MAAM,CAAC,cAAc,CAAC,CAAC;IAE1B,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2CAA2C,CAAC;SACxD,QAAQ,CACP,YAAY,EACZ,sGAAsG,CACvG;SACA,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;SACvD,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;SAC/C,MAAM,CAAC,aAAa,EAAE,+BAA+B,CAAC;SACtD,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvB,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const logger: import("vite").Logger;
2
+ export declare function logInfo(...messages: string[]): void;
3
+ export declare function logWarn(...messages: string[]): void;
4
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,uBAA2D,CAAC;AAE/E,wBAAgB,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,QAE5C;AAED,wBAAgB,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,QAE5C"}
package/dist/logger.js ADDED
@@ -0,0 +1,10 @@
1
+ import { createLogger } from 'vite';
2
+ import pc from 'picocolors';
3
+ export const logger = createLogger('info', { prefix: pc.greenBright('[MAKE]') });
4
+ export function logInfo(...messages) {
5
+ logger.info(messages.join(' '), { timestamp: true });
6
+ }
7
+ export function logWarn(...messages) {
8
+ logger.warn(messages.join(' '), { timestamp: true });
9
+ }
10
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAC,CAAC,CAAC;AAE/E,MAAM,UAAU,OAAO,CAAC,GAAG,QAAkB;IAC3C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAG,QAAkB;IAC3C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { InlineConfig, type BuildEnvironmentOptions } from 'vite';
2
+ export declare const CLIENT_BUILD: BuildEnvironmentOptions;
3
+ export declare const SERVER_BUILD: BuildEnvironmentOptions;
4
+ export declare function createBuildConfig(buildEnv: BuildEnvironmentOptions): InlineConfig;
5
+ //# sourceMappingURL=vite_plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite_plugin.d.ts","sourceRoot":"","sources":["../src/vite_plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EAEZ,KAAK,uBAAuB,EAE7B,MAAM,MAAM,CAAC;AAyDd,eAAO,MAAM,YAAY,EAAE,uBAK1B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,uBAM1B,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,uBAAuB,GAChC,YAAY,CA0Bd"}
@@ -0,0 +1,93 @@
1
+ import tailwindcss from '@tailwindcss/vite';
2
+ import react from '@vitejs/plugin-react';
3
+ import { access } from 'node:fs/promises';
4
+ import { cjsInterop } from 'vite-plugin-cjs-interop';
5
+ import { generateClientEntry, generateServerEntry, } from './generate.js';
6
+ import { logger } from './logger.js';
7
+ async function determineCapabilities() {
8
+ const capabilities = {
9
+ hasAppRoot: false,
10
+ hasServerHandler: false,
11
+ };
12
+ async function hasAppRoot() {
13
+ try {
14
+ await access('__generated__/router/app_root.ts');
15
+ capabilities.hasAppRoot = true;
16
+ }
17
+ catch { }
18
+ }
19
+ async function hasServerHandler() {
20
+ try {
21
+ await access('__generated__/router/server_handler.ts');
22
+ capabilities.hasServerHandler = true;
23
+ }
24
+ catch { }
25
+ }
26
+ await Promise.all([hasAppRoot(), hasServerHandler()]);
27
+ return capabilities;
28
+ }
29
+ function pastoriaEntryPlugin() {
30
+ const clientEntryModuleId = 'virtual:pastoria-entry-client.tsx';
31
+ const serverEntryModuleId = 'virtual:pastoria-entry-server.tsx';
32
+ return {
33
+ name: 'pastoria-entry',
34
+ resolveId(id) {
35
+ if (id === clientEntryModuleId) {
36
+ return clientEntryModuleId; // Return without \0 prefix so React plugin can see .tsx extension
37
+ }
38
+ else if (id === serverEntryModuleId) {
39
+ return serverEntryModuleId;
40
+ }
41
+ },
42
+ async load(id) {
43
+ const capabilities = await determineCapabilities();
44
+ if (id === clientEntryModuleId) {
45
+ return generateClientEntry(capabilities);
46
+ }
47
+ else if (id === serverEntryModuleId) {
48
+ return generateServerEntry(capabilities);
49
+ }
50
+ },
51
+ };
52
+ }
53
+ export const CLIENT_BUILD = {
54
+ outDir: 'dist/client',
55
+ rollupOptions: {
56
+ input: 'virtual:pastoria-entry-client.tsx',
57
+ },
58
+ };
59
+ export const SERVER_BUILD = {
60
+ outDir: 'dist/server',
61
+ ssr: true,
62
+ rollupOptions: {
63
+ input: 'virtual:pastoria-entry-server.tsx',
64
+ },
65
+ };
66
+ export function createBuildConfig(buildEnv) {
67
+ return {
68
+ appType: 'custom',
69
+ customLogger: logger,
70
+ build: {
71
+ ...buildEnv,
72
+ assetsInlineLimit: 0,
73
+ manifest: true,
74
+ ssrManifest: true,
75
+ },
76
+ plugins: [
77
+ pastoriaEntryPlugin(),
78
+ tailwindcss(),
79
+ react({
80
+ babel: {
81
+ plugins: [['babel-plugin-react-compiler', {}], 'relay'],
82
+ },
83
+ }),
84
+ cjsInterop({
85
+ dependencies: ['react-relay', 'react-relay/hooks', 'relay-runtime'],
86
+ }),
87
+ ],
88
+ ssr: {
89
+ noExternal: ['pastoria-runtime'],
90
+ },
91
+ };
92
+ }
93
+ //# sourceMappingURL=vite_plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite_plugin.js","sourceRoot":"","sources":["../src/vite_plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pastoria",
3
- "version": "1.0.12",
3
+ "version": "1.0.14",
4
4
  "description": "Pastoria Development CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -36,7 +36,7 @@
36
36
  "typescript": "^5.9.3",
37
37
  "zod": "^3.25.76",
38
38
  "pastoria-config": "1.0.1",
39
- "pastoria-runtime": "1.0.12"
39
+ "pastoria-runtime": "1.0.13"
40
40
  },
41
41
  "peerDependencies": {
42
42
  "babel-plugin-react-compiler": "^1.0.0",