@pattern-stack/codegen 0.15.2 → 0.16.0

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 (143) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/dist/{chunk-WEVWJKOW.js → chunk-24WXSC3C.js} +10 -10
  3. package/dist/{chunk-KMZCQASO.js → chunk-3RWMQC3K.js} +18 -12
  4. package/dist/chunk-3RWMQC3K.js.map +1 -0
  5. package/dist/{chunk-24CWKBK5.js → chunk-4MF3HKJA.js} +3 -3
  6. package/dist/chunk-4MF3HKJA.js.map +1 -0
  7. package/dist/{chunk-4JLJYWJC.js → chunk-4PFF3ED4.js} +98 -10
  8. package/dist/chunk-4PFF3ED4.js.map +1 -0
  9. package/dist/{chunk-32BMMV4H.js → chunk-5RT7JGKT.js} +5 -5
  10. package/dist/{chunk-JRVNVKN6.js → chunk-BHZP6LOV.js} +2 -2
  11. package/dist/{chunk-4MVGAMUA.js → chunk-BK5ICA2F.js} +4 -4
  12. package/dist/{chunk-4RFHUZXU.js → chunk-BULPAAD3.js} +2 -2
  13. package/dist/{chunk-OZZJDRGW.js → chunk-CEWLVVAH.js} +10 -10
  14. package/dist/{chunk-YTN6BKWA.js → chunk-DRCLNYH7.js} +7 -7
  15. package/dist/{chunk-TNXH7BJS.js → chunk-E45CSC33.js} +2 -2
  16. package/dist/{chunk-L7BNNRGI.js → chunk-EBKVKN75.js} +26 -6
  17. package/dist/chunk-EBKVKN75.js.map +1 -0
  18. package/dist/{chunk-EOLLMEAH.js → chunk-EJBK7I4F.js} +3 -3
  19. package/dist/chunk-EJBK7I4F.js.map +1 -0
  20. package/dist/{chunk-K2I6XIK5.js → chunk-KSTZIULO.js} +4 -4
  21. package/dist/{chunk-Z7PQCAVK.js → chunk-LQ6PYFU6.js} +4 -4
  22. package/dist/chunk-MYQIQ27N.js +118 -0
  23. package/dist/chunk-MYQIQ27N.js.map +1 -0
  24. package/dist/{chunk-5Y7W3XR6.js → chunk-OTR44OH6.js} +24 -5
  25. package/dist/chunk-OTR44OH6.js.map +1 -0
  26. package/dist/{chunk-WPXNN6QS.js → chunk-RUYLXR5F.js} +11 -8
  27. package/dist/chunk-RUYLXR5F.js.map +1 -0
  28. package/dist/{chunk-7LKAMLV4.js → chunk-T6SCOJF4.js} +4 -4
  29. package/dist/{chunk-OGIZXGPY.js → chunk-TDEHU73T.js} +4 -4
  30. package/dist/{chunk-I6MG4M3F.js → chunk-VNBC3VXM.js} +2 -2
  31. package/dist/{chunk-YPWODKD5.js → chunk-W2UIDI3R.js} +5 -5
  32. package/dist/chunk-W4HOHZVF.js +1 -0
  33. package/dist/{chunk-WRUUSZDJ.js → chunk-WWGYCIJX.js} +3 -3
  34. package/dist/{chunk-RC23QROE.js → chunk-XDIIVIIK.js} +79 -5
  35. package/dist/chunk-XDIIVIIK.js.map +1 -0
  36. package/dist/{chunk-DCCZB4UC.js → chunk-XWBK3XJK.js} +4 -4
  37. package/dist/{chunk-SR7F3TJY.js → chunk-YK5JEVLX.js} +4 -4
  38. package/dist/{chunk-4OMHBMZJ.js → chunk-YLPAPPLW.js} +3 -3
  39. package/dist/chunk-YLPAPPLW.js.map +1 -0
  40. package/dist/{chunk-BIO6F7YI.js → chunk-ZPL74UQN.js} +4 -2
  41. package/dist/{chunk-BIO6F7YI.js.map → chunk-ZPL74UQN.js.map} +1 -1
  42. package/dist/runtime/base-classes/index.js +15 -15
  43. package/dist/runtime/shared/openapi/index.js +3 -3
  44. package/dist/runtime/subsystems/auth/auth.module.js +3 -3
  45. package/dist/runtime/subsystems/auth/index.js +7 -7
  46. package/dist/runtime/subsystems/bridge/bridge-delivery-handler.js +3 -3
  47. package/dist/runtime/subsystems/bridge/bridge-delivery.drizzle-backend.js +3 -3
  48. package/dist/runtime/subsystems/bridge/bridge-outbox-drain-hook.d.ts +2 -1
  49. package/dist/runtime/subsystems/bridge/bridge-outbox-drain-hook.js +7 -6
  50. package/dist/runtime/subsystems/bridge/bridge.module.js +17 -16
  51. package/dist/runtime/subsystems/bridge/event-flow.service.js +3 -3
  52. package/dist/runtime/subsystems/bridge/index.js +24 -23
  53. package/dist/runtime/subsystems/cache/cache.module.js +1 -1
  54. package/dist/runtime/subsystems/cache/index.js +3 -3
  55. package/dist/runtime/subsystems/events/event-bus.drizzle-backend.d.ts +20 -0
  56. package/dist/runtime/subsystems/events/event-bus.drizzle-backend.js +4 -3
  57. package/dist/runtime/subsystems/events/event-bus.memory-backend.js +2 -2
  58. package/dist/runtime/subsystems/events/events.module.d.ts +14 -0
  59. package/dist/runtime/subsystems/events/events.module.js +6 -5
  60. package/dist/runtime/subsystems/events/index.js +9 -8
  61. package/dist/runtime/subsystems/index.d.ts +5 -1
  62. package/dist/runtime/subsystems/index.js +108 -96
  63. package/dist/runtime/subsystems/integration/build-change-source.js +3 -3
  64. package/dist/runtime/subsystems/integration/execute-integration.use-case.js +2 -2
  65. package/dist/runtime/subsystems/integration/index.js +35 -35
  66. package/dist/runtime/subsystems/integration/integration-cursor-store.drizzle-backend.js +2 -2
  67. package/dist/runtime/subsystems/integration/integration-run-recorder.drizzle-backend.js +2 -2
  68. package/dist/runtime/subsystems/integration/integration.module.js +5 -5
  69. package/dist/runtime/subsystems/integration/poll-change-source.d.ts +1 -1
  70. package/dist/runtime/subsystems/integration/poll-change-source.js +1 -1
  71. package/dist/runtime/subsystems/integration/webhook-change-source.d.ts +4 -3
  72. package/dist/runtime/subsystems/integration/webhook-change-source.js +1 -1
  73. package/dist/runtime/subsystems/jobs/index.d.ts +2 -1
  74. package/dist/runtime/subsystems/jobs/index.js +30 -18
  75. package/dist/runtime/subsystems/jobs/job-orchestrator.bullmq-backend.js +3 -2
  76. package/dist/runtime/subsystems/jobs/job-orchestrator.bullmq-backend.js.map +1 -1
  77. package/dist/runtime/subsystems/jobs/job-orchestrator.drizzle-backend.d.ts +2 -1
  78. package/dist/runtime/subsystems/jobs/job-orchestrator.drizzle-backend.js +3 -2
  79. package/dist/runtime/subsystems/jobs/job-orchestrator.memory-backend.js +2 -2
  80. package/dist/runtime/subsystems/jobs/job-run-service.drizzle-backend.js +2 -2
  81. package/dist/runtime/subsystems/jobs/job-run-service.memory-backend.js +2 -2
  82. package/dist/runtime/subsystems/jobs/job-worker.d.ts +28 -0
  83. package/dist/runtime/subsystems/jobs/job-worker.js +3 -2
  84. package/dist/runtime/subsystems/jobs/job-worker.module.js +9 -8
  85. package/dist/runtime/subsystems/jobs/jobs-domain.module.d.ts +12 -7
  86. package/dist/runtime/subsystems/jobs/jobs-domain.module.js +7 -6
  87. package/dist/runtime/subsystems/jobs/jobs-domain.tokens.d.ts +13 -1
  88. package/dist/runtime/subsystems/jobs/jobs-domain.tokens.js +3 -1
  89. package/dist/runtime/subsystems/jobs/pg-notify.d.ts +85 -0
  90. package/dist/runtime/subsystems/jobs/pg-notify.js +14 -0
  91. package/dist/runtime/subsystems/jobs/pg-notify.js.map +1 -0
  92. package/dist/runtime/subsystems/observability/index.js +7 -7
  93. package/dist/runtime/subsystems/observability/observability.module.js +4 -4
  94. package/dist/runtime/subsystems/observability/observability.service.js +3 -3
  95. package/dist/runtime/subsystems/storage/index.js +4 -4
  96. package/dist/runtime/subsystems/storage/storage.module.js +2 -2
  97. package/dist/src/cli/index.js +57 -19
  98. package/dist/src/cli/index.js.map +1 -1
  99. package/dist/src/index.js +11 -11
  100. package/package.json +1 -1
  101. package/runtime/subsystems/bridge/bridge-outbox-drain-hook.ts +27 -0
  102. package/runtime/subsystems/events/event-bus.drizzle-backend.ts +108 -4
  103. package/runtime/subsystems/events/events.module.ts +14 -0
  104. package/runtime/subsystems/index.ts +27 -0
  105. package/runtime/subsystems/integration/poll-change-source.ts +10 -7
  106. package/runtime/subsystems/integration/webhook-change-source.ts +12 -8
  107. package/runtime/subsystems/jobs/index.ts +10 -0
  108. package/runtime/subsystems/jobs/job-orchestrator.drizzle-backend.ts +29 -2
  109. package/runtime/subsystems/jobs/job-worker.module.ts +11 -0
  110. package/runtime/subsystems/jobs/job-worker.ts +98 -0
  111. package/runtime/subsystems/jobs/jobs-domain.module.ts +22 -7
  112. package/runtime/subsystems/jobs/jobs-domain.tokens.ts +13 -0
  113. package/runtime/subsystems/jobs/pg-notify.ts +216 -0
  114. package/templates/subsystem/events-config/codegen-config-events-block.ejs.t +14 -0
  115. package/templates/subsystem/jobs-config/codegen-config-jobs-block.ejs.t +13 -4
  116. package/dist/chunk-24CWKBK5.js.map +0 -1
  117. package/dist/chunk-4JLJYWJC.js.map +0 -1
  118. package/dist/chunk-4OMHBMZJ.js.map +0 -1
  119. package/dist/chunk-5Y7W3XR6.js.map +0 -1
  120. package/dist/chunk-EOLLMEAH.js.map +0 -1
  121. package/dist/chunk-KMZCQASO.js.map +0 -1
  122. package/dist/chunk-L7BNNRGI.js.map +0 -1
  123. package/dist/chunk-RC23QROE.js.map +0 -1
  124. package/dist/chunk-UTN4GBPQ.js +0 -1
  125. package/dist/chunk-WPXNN6QS.js.map +0 -1
  126. /package/dist/{chunk-WEVWJKOW.js.map → chunk-24WXSC3C.js.map} +0 -0
  127. /package/dist/{chunk-32BMMV4H.js.map → chunk-5RT7JGKT.js.map} +0 -0
  128. /package/dist/{chunk-JRVNVKN6.js.map → chunk-BHZP6LOV.js.map} +0 -0
  129. /package/dist/{chunk-4MVGAMUA.js.map → chunk-BK5ICA2F.js.map} +0 -0
  130. /package/dist/{chunk-4RFHUZXU.js.map → chunk-BULPAAD3.js.map} +0 -0
  131. /package/dist/{chunk-OZZJDRGW.js.map → chunk-CEWLVVAH.js.map} +0 -0
  132. /package/dist/{chunk-YTN6BKWA.js.map → chunk-DRCLNYH7.js.map} +0 -0
  133. /package/dist/{chunk-TNXH7BJS.js.map → chunk-E45CSC33.js.map} +0 -0
  134. /package/dist/{chunk-K2I6XIK5.js.map → chunk-KSTZIULO.js.map} +0 -0
  135. /package/dist/{chunk-Z7PQCAVK.js.map → chunk-LQ6PYFU6.js.map} +0 -0
  136. /package/dist/{chunk-7LKAMLV4.js.map → chunk-T6SCOJF4.js.map} +0 -0
  137. /package/dist/{chunk-OGIZXGPY.js.map → chunk-TDEHU73T.js.map} +0 -0
  138. /package/dist/{chunk-I6MG4M3F.js.map → chunk-VNBC3VXM.js.map} +0 -0
  139. /package/dist/{chunk-YPWODKD5.js.map → chunk-W2UIDI3R.js.map} +0 -0
  140. /package/dist/{chunk-UTN4GBPQ.js.map → chunk-W4HOHZVF.js.map} +0 -0
  141. /package/dist/{chunk-WRUUSZDJ.js.map → chunk-WWGYCIJX.js.map} +0 -0
  142. /package/dist/{chunk-DCCZB4UC.js.map → chunk-XWBK3XJK.js.map} +0 -0
  143. /package/dist/{chunk-SR7F3TJY.js.map → chunk-YK5JEVLX.js.map} +0 -0
@@ -38,27 +38,27 @@ import {
38
38
  writeManifest
39
39
  } from "../../chunk-32DOFN3T.js";
40
40
  import "../../chunk-KVOWSC5S.js";
41
- import "../../chunk-WEVWJKOW.js";
41
+ import "../../chunk-24WXSC3C.js";
42
+ import "../../chunk-EO2QPOKH.js";
42
43
  import "../../chunk-PRWIX6UW.js";
44
+ import "../../chunk-XWBK3XJK.js";
43
45
  import "../../chunk-AHV4GDYM.js";
44
- import "../../chunk-SR7F3TJY.js";
45
- import "../../chunk-EO2QPOKH.js";
46
+ import "../../chunk-YK5JEVLX.js";
46
47
  import "../../chunk-SQDOBLBP.js";
48
+ import {
49
+ isDivisibleCursor
50
+ } from "../../chunk-3NMCDN7L.js";
47
51
  import "../../chunk-4KNXX6TI.js";
48
52
  import "../../chunk-3CJFPU6Q.js";
49
- import "../../chunk-OGIZXGPY.js";
50
- import "../../chunk-LG57S2SC.js";
51
- import "../../chunk-DCCZB4UC.js";
53
+ import "../../chunk-TDEHU73T.js";
54
+ import "../../chunk-S7C6TIIF.js";
52
55
  import "../../chunk-MZ6GV4YF.js";
56
+ import "../../chunk-LG57S2SC.js";
53
57
  import "../../chunk-HNWZFNKP.js";
54
- import "../../chunk-WRUUSZDJ.js";
55
- import "../../chunk-24CWKBK5.js";
56
- import "../../chunk-4OMHBMZJ.js";
58
+ import "../../chunk-WWGYCIJX.js";
59
+ import "../../chunk-4MF3HKJA.js";
60
+ import "../../chunk-YLPAPPLW.js";
57
61
  import "../../chunk-36U5UGIO.js";
58
- import {
59
- isDivisibleCursor
60
- } from "../../chunk-3NMCDN7L.js";
61
- import "../../chunk-S7C6TIIF.js";
62
62
  import "../../chunk-U64T4YZE.js";
63
63
  import "../../chunk-2E224ZSN.js";
64
64
 
@@ -2710,14 +2710,35 @@ function jsonToTs(value) {
2710
2710
  }
2711
2711
  return "undefined";
2712
2712
  }
2713
+ function drizzleJobsExtensions(backend, cfg) {
2714
+ if (backend !== "drizzle") return void 0;
2715
+ const drizzle = cfg?.extensions?.drizzle;
2716
+ if (!drizzle) return void 0;
2717
+ const out = {};
2718
+ if (typeof drizzle.listen_notify === "boolean") out.listenNotify = drizzle.listen_notify;
2719
+ if (typeof drizzle.poll_interval_ms === "number")
2720
+ out.pollIntervalMs = drizzle.poll_interval_ms;
2721
+ return Object.keys(out).length > 0 ? out : void 0;
2722
+ }
2723
+ function drizzleExtensionsClause(ext, key) {
2724
+ if (!ext) return "";
2725
+ return `${key}: { drizzle: ${jsonToTs(ext)} }`;
2726
+ }
2713
2727
  function quoteBullmqDomainOpts(input) {
2714
- const { backend, multiTenant, bullExt } = input;
2715
- if (backend !== "bullmq" || !bullExt) {
2728
+ const { backend, multiTenant, bullExt, drizzleExt } = input;
2729
+ if (backend === "bullmq" && bullExt) {
2730
+ const parts2 = [`backend: 'bullmq'`];
2731
+ if (multiTenant) parts2.push(`multiTenant: true`);
2732
+ parts2.push(`extensions: { bullmq: ${jsonToTs(bullExt)} }`);
2733
+ return `{ ${parts2.join(", ")} }`;
2734
+ }
2735
+ const extClause = drizzleExtensionsClause(drizzleExt, "extensions");
2736
+ if (!extClause) {
2716
2737
  return quoteOpts({ backend, multiTenant });
2717
2738
  }
2718
- const parts = [`backend: 'bullmq'`];
2739
+ const parts = [`backend: '${backend}'`];
2719
2740
  if (multiTenant) parts.push(`multiTenant: true`);
2720
- parts.push(`extensions: { bullmq: ${jsonToTs(bullExt)} }`);
2741
+ parts.push(extClause);
2721
2742
  return `{ ${parts.join(", ")} }`;
2722
2743
  }
2723
2744
  function workerPoolsClause(cfg, bridgeInstalled) {
@@ -2734,6 +2755,8 @@ var COMPOSERS = {
2734
2755
  events: ({ moduleImport, cfg, mode }) => {
2735
2756
  const backend = cfg?.backend ?? "drizzle";
2736
2757
  const multiTenant = Boolean(cfg?.multi_tenant);
2758
+ const listenNotify = backend === "drizzle" && cfg?.extensions?.drizzle?.listen_notify === true;
2759
+ const listenNotifyClause = listenNotify ? `, listenNotify: true` : "";
2737
2760
  const imports = [
2738
2761
  `import { EventsModule } from '${moduleImport("events", "events.module")}';`
2739
2762
  ];
@@ -2742,7 +2765,15 @@ var COMPOSERS = {
2742
2765
  return {
2743
2766
  imports,
2744
2767
  calls: [
2745
- ` EventsModule.forRoot({ backend: '${backend}', multiTenant: ${multiTenant}, typedBus: TypedEventBus }),`
2768
+ ` EventsModule.forRoot({ backend: '${backend}', multiTenant: ${multiTenant}, typedBus: TypedEventBus${listenNotifyClause} }),`
2769
+ ]
2770
+ };
2771
+ }
2772
+ if (listenNotify) {
2773
+ return {
2774
+ imports,
2775
+ calls: [
2776
+ ` EventsModule.forRoot({ backend: '${backend}', multiTenant: ${multiTenant}, listenNotify: true }),`
2746
2777
  ]
2747
2778
  };
2748
2779
  }
@@ -2761,7 +2792,8 @@ var COMPOSERS = {
2761
2792
  `import { JobsDomainModule } from '${moduleImport("jobs", "jobs-domain.module")}';`
2762
2793
  ];
2763
2794
  const bullExt = backend === "bullmq" ? cfg?.extensions?.bullmq : void 0;
2764
- const domainOpts = quoteBullmqDomainOpts({ backend, multiTenant, bullExt });
2795
+ const drizzleExt = drizzleJobsExtensions(backend, cfg);
2796
+ const domainOpts = quoteBullmqDomainOpts({ backend, multiTenant, bullExt, drizzleExt });
2765
2797
  const calls = [` JobsDomainModule.forRoot(${domainOpts}),`];
2766
2798
  if (workerMode === "embedded") {
2767
2799
  imports.push(
@@ -2773,6 +2805,12 @@ var COMPOSERS = {
2773
2805
  if (bullExt) {
2774
2806
  parts.push(`domainModuleExtensions: { bullmq: ${jsonToTs(bullExt)} }`);
2775
2807
  }
2808
+ } else {
2809
+ const workerExtClause = drizzleExtensionsClause(
2810
+ drizzleExt,
2811
+ "domainModuleExtensions"
2812
+ );
2813
+ if (workerExtClause) parts.push(workerExtClause);
2776
2814
  }
2777
2815
  const poolsClause = workerPoolsClause(cfg, bridgeInstalled);
2778
2816
  if (poolsClause) parts.push(poolsClause);