@pattern-stack/codegen 0.4.2 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/runtime/subsystems/bridge/bridge.module.d.ts +1 -0
  3. package/dist/runtime/subsystems/bridge/bridge.module.js +42 -23
  4. package/dist/runtime/subsystems/bridge/bridge.module.js.map +1 -1
  5. package/dist/runtime/subsystems/bridge/index.d.ts +1 -0
  6. package/dist/runtime/subsystems/bridge/index.js +33 -14
  7. package/dist/runtime/subsystems/bridge/index.js.map +1 -1
  8. package/dist/runtime/subsystems/index.js +35 -16
  9. package/dist/runtime/subsystems/index.js.map +1 -1
  10. package/dist/runtime/subsystems/jobs/index.d.ts +1 -0
  11. package/dist/runtime/subsystems/jobs/index.js +31 -12
  12. package/dist/runtime/subsystems/jobs/index.js.map +1 -1
  13. package/dist/runtime/subsystems/jobs/job-orchestrator.memory-backend.d.ts +3 -1
  14. package/dist/runtime/subsystems/jobs/job-orchestrator.memory-backend.js +10 -4
  15. package/dist/runtime/subsystems/jobs/job-orchestrator.memory-backend.js.map +1 -1
  16. package/dist/runtime/subsystems/jobs/job-worker.d.ts +3 -1
  17. package/dist/runtime/subsystems/jobs/job-worker.js +7 -2
  18. package/dist/runtime/subsystems/jobs/job-worker.js.map +1 -1
  19. package/dist/runtime/subsystems/jobs/job-worker.module.d.ts +3 -1
  20. package/dist/runtime/subsystems/jobs/job-worker.module.js +31 -12
  21. package/dist/runtime/subsystems/jobs/job-worker.module.js.map +1 -1
  22. package/dist/runtime/subsystems/jobs/jobs-domain.module.js +10 -4
  23. package/dist/runtime/subsystems/jobs/jobs-domain.module.js.map +1 -1
  24. package/dist/src/cli/index.js +71 -7
  25. package/dist/src/cli/index.js.map +1 -1
  26. package/dist/src/index.js +27 -2
  27. package/dist/src/index.js.map +1 -1
  28. package/package.json +1 -1
  29. package/runtime/subsystems/jobs/job-orchestrator.memory-backend.ts +16 -2
  30. package/runtime/subsystems/jobs/job-worker.module.ts +20 -2
  31. package/runtime/subsystems/jobs/job-worker.ts +18 -3
@@ -1573,7 +1573,7 @@ var init_entity_definition_schema = __esm({
1573
1573
 
1574
1574
  // src/schema/event-definition.schema.ts
1575
1575
  import { z as z2 } from "zod";
1576
- var EVENT_DIRECTIONS, EVENT_FIELD_TYPES, RESERVED_EVENT_POOLS, EVENT_BACKOFF_STRATEGIES, DIRECTION_TO_POOL, EventDirectionSchema, EventFieldTypeSchema, EventPoolSchema, EventPayloadFieldSchema, RetrySchema, SNAKE_CASE_RE, EventDefinitionSchemaCore, EventDefinitionSchemaRefined, EventDefinitionSchema;
1576
+ var EVENT_DIRECTIONS, EVENT_FIELD_TYPES, EVENT_ARRAY_ITEM_TYPES, RESERVED_EVENT_POOLS, EVENT_BACKOFF_STRATEGIES, DIRECTION_TO_POOL, EventDirectionSchema, EventFieldTypeSchema, EventArrayItemTypeSchema, EventPoolSchema, EventPayloadFieldSchema, RetrySchema, SNAKE_CASE_RE, EventDefinitionSchemaCore, EventDefinitionSchemaRefined, EventDefinitionSchema;
1577
1577
  var init_event_definition_schema = __esm({
1578
1578
  "src/schema/event-definition.schema.ts"() {
1579
1579
  "use strict";
@@ -1584,7 +1584,15 @@ var init_event_definition_schema = __esm({
1584
1584
  "number",
1585
1585
  "boolean",
1586
1586
  "date",
1587
- "json"
1587
+ "json",
1588
+ "array"
1589
+ ];
1590
+ EVENT_ARRAY_ITEM_TYPES = [
1591
+ "uuid",
1592
+ "string",
1593
+ "number",
1594
+ "boolean",
1595
+ "date"
1588
1596
  ];
1589
1597
  RESERVED_EVENT_POOLS = [
1590
1598
  "events_inbound",
@@ -1599,12 +1607,29 @@ var init_event_definition_schema = __esm({
1599
1607
  };
1600
1608
  EventDirectionSchema = z2.enum(EVENT_DIRECTIONS);
1601
1609
  EventFieldTypeSchema = z2.enum(EVENT_FIELD_TYPES);
1610
+ EventArrayItemTypeSchema = z2.enum(EVENT_ARRAY_ITEM_TYPES);
1602
1611
  EventPoolSchema = z2.enum(RESERVED_EVENT_POOLS);
1603
1612
  EventPayloadFieldSchema = z2.object({
1604
1613
  type: EventFieldTypeSchema,
1614
+ items: EventArrayItemTypeSchema.optional(),
1605
1615
  nullable: z2.boolean().optional().default(false),
1606
1616
  description: z2.string().optional()
1607
- }).strict();
1617
+ }).strict().superRefine((data, ctx) => {
1618
+ if (data.type === "array" && data.items === void 0) {
1619
+ ctx.addIssue({
1620
+ code: z2.ZodIssueCode.custom,
1621
+ message: "'items' is required when type is 'array'",
1622
+ path: ["items"]
1623
+ });
1624
+ }
1625
+ if (data.type !== "array" && data.items !== void 0) {
1626
+ ctx.addIssue({
1627
+ code: z2.ZodIssueCode.custom,
1628
+ message: `'items' is only valid when type is 'array' (got '${data.type}')`,
1629
+ path: ["items"]
1630
+ });
1631
+ }
1632
+ });
1608
1633
  RetrySchema = z2.object({
1609
1634
  attempts: z2.number().int().min(0).max(20),
1610
1635
  backoff: z2.enum(EVENT_BACKOFF_STRATEGIES)
@@ -216517,6 +216542,22 @@ function buildBridgeRegistryContent(triggers) {
216517
216542
  }
216518
216543
  async function generateBridgeRegistry(opts) {
216519
216544
  const { handlersDir, eventsGeneratedDir, outputDir, dryRun = false } = opts;
216545
+ const bridgeProtocolPath = path6.resolve(outputDir, "..", "bridge.protocol.ts");
216546
+ if (!fs4.existsSync(bridgeProtocolPath)) {
216547
+ const strayPath = path6.join(outputDir, OUTPUT_FILE_NAME);
216548
+ if (!dryRun && fs4.existsSync(strayPath)) {
216549
+ fs4.rmSync(strayPath);
216550
+ }
216551
+ return {
216552
+ outputDir,
216553
+ triggerCount: 0,
216554
+ triggers: [],
216555
+ eventTypeCount: 0,
216556
+ written: false,
216557
+ files: [],
216558
+ skipped: true
216559
+ };
216560
+ }
216520
216561
  const triggers = scanHandlerFiles(handlersDir);
216521
216562
  validateNoDuplicateTriggers(triggers);
216522
216563
  const knownEventTypes = readKnownEventTypes(eventsGeneratedDir);
@@ -216540,7 +216581,8 @@ async function generateBridgeRegistry(opts) {
216540
216581
  triggers,
216541
216582
  eventTypeCount,
216542
216583
  written,
216543
- files: [file]
216584
+ files: [file],
216585
+ skipped: false
216544
216586
  };
216545
216587
  }
216546
216588
  var import_typescript, HEADER3, DuplicateTriggerError, UnknownTriggerEventError, OUTPUT_FILE_NAME;
@@ -216738,11 +216780,23 @@ function toPascalCase2(input) {
216738
216780
  return input.split("_").filter(Boolean).map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join("");
216739
216781
  }
216740
216782
  function tsTypeForField(field) {
216741
- const base = TS_TYPE_BY_FIELD[field.type];
216783
+ let base;
216784
+ if (field.type === "array") {
216785
+ const itemType = field.items;
216786
+ base = `${TS_TYPE_BY_FIELD[itemType]}[]`;
216787
+ } else {
216788
+ base = TS_TYPE_BY_FIELD[field.type];
216789
+ }
216742
216790
  return field.nullable ? `${base} | null` : base;
216743
216791
  }
216744
216792
  function zodExprForField(field) {
216745
- const base = ZOD_EXPR_BY_FIELD[field.type];
216793
+ let base;
216794
+ if (field.type === "array") {
216795
+ const itemType = field.items;
216796
+ base = `z.array(${ZOD_EXPR_BY_FIELD[itemType]})`;
216797
+ } else {
216798
+ base = ZOD_EXPR_BY_FIELD[field.type];
216799
+ }
216746
216800
  return field.nullable ? `${base}.nullable()` : base;
216747
216801
  }
216748
216802
  function aggregateTypeLiteral(ev) {
@@ -217550,7 +217604,12 @@ var init_entity = __esm({
217550
217604
  subsystemsRoot,
217551
217605
  "bridge/generated"
217552
217606
  );
217553
- const bridgeHandlersDir = path10.resolve(ctx.cwd, "src/jobs");
217607
+ const backendSrcForHandlers = ctx.config?.paths?.backend_src ?? "src";
217608
+ const bridgeHandlersDir = path10.resolve(
217609
+ ctx.cwd,
217610
+ backendSrcForHandlers,
217611
+ "jobs"
217612
+ );
217554
217613
  if (this.dryRun) {
217555
217614
  const barrelPlan = await regenerateBarrels({
217556
217615
  ctx,
@@ -217728,6 +217787,11 @@ var init_entity = __esm({
217728
217787
  eventsGeneratedDir: eventCodegenOutputDir,
217729
217788
  outputDir: bridgeRegistryOutputDir
217730
217789
  });
217790
+ if (bridgeRegistryResult.skipped && !isJsonMode()) {
217791
+ printInfo(
217792
+ "bridge subsystem not installed \u2014 skipping bridge registry codegen"
217793
+ );
217794
+ }
217731
217795
  } catch (err) {
217732
217796
  const msg = err instanceof Error ? err.message : String(err);
217733
217797
  if (!isJsonMode()) {