@pattern-stack/codegen 0.17.0 → 0.17.2

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 (141) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/consumer-skills/integration/audit-and-detection.md +29 -4
  3. package/dist/{chunk-GJDEPTPY.js → chunk-235ZMMJR.js} +8 -8
  4. package/dist/{chunk-DTXH24LR.js → chunk-65MO75WM.js} +9 -9
  5. package/dist/{chunk-5RT7JGKT.js → chunk-7OVCARTQ.js} +4 -4
  6. package/dist/{chunk-CO6LUM72.js → chunk-7P5ODGLA.js} +34 -2
  7. package/dist/chunk-7P5ODGLA.js.map +1 -0
  8. package/dist/{chunk-P3AYBRP6.js → chunk-ATVGYF3D.js} +11 -5
  9. package/dist/chunk-ATVGYF3D.js.map +1 -0
  10. package/dist/{chunk-3MAZ4TQH.js → chunk-AZLUWG5S.js} +9 -9
  11. package/dist/{chunk-UTNWFHJF.js → chunk-B34G6PHD.js} +10 -10
  12. package/dist/{chunk-CDLWYZVQ.js → chunk-BHZP6LOV.js} +7 -7
  13. package/dist/{chunk-W2UIDI3R.js → chunk-CLWBNXKF.js} +4 -4
  14. package/dist/{chunk-OTR44OH6.js → chunk-E6PLM6QG.js} +34 -13
  15. package/dist/chunk-E6PLM6QG.js.map +1 -0
  16. package/dist/{chunk-43SBT72G.js → chunk-I6UXRJ3Q.js} +4 -4
  17. package/dist/{chunk-36U5UGIO.js → chunk-JEINYUJH.js} +8 -5
  18. package/dist/chunk-JEINYUJH.js.map +1 -0
  19. package/dist/{chunk-K2I6XIK5.js → chunk-KSTZIULO.js} +4 -4
  20. package/dist/{chunk-L3VJ47BU.js → chunk-KZDHMZ45.js} +6 -6
  21. package/dist/{chunk-RHYNACZS.js → chunk-OZEPJGMA.js} +2 -2
  22. package/dist/{chunk-MYQIQ27N.js → chunk-Q6LRJ4VI.js} +51 -2
  23. package/dist/chunk-Q6LRJ4VI.js.map +1 -0
  24. package/dist/{chunk-NXNVTXKG.js → chunk-R6F6KFIL.js} +5 -5
  25. package/dist/{chunk-7LKAMLV4.js → chunk-T6SCOJF4.js} +4 -4
  26. package/dist/{chunk-OGIZXGPY.js → chunk-TDEHU73T.js} +4 -4
  27. package/dist/{chunk-OITTYGJS.js → chunk-VDL5CJ5C.js} +24 -14
  28. package/dist/chunk-VDL5CJ5C.js.map +1 -0
  29. package/dist/{chunk-3VEVGL74.js → chunk-VNBC3VXM.js} +4 -4
  30. package/dist/{chunk-BULPAAD3.js → chunk-VQOAATIG.js} +42 -11
  31. package/dist/chunk-VQOAATIG.js.map +1 -0
  32. package/dist/{chunk-E45CSC33.js → chunk-XKWOJZZ4.js} +2 -2
  33. package/dist/{chunk-DCCZB4UC.js → chunk-XWBK3XJK.js} +4 -4
  34. package/dist/{chunk-4GLNY5V6.js → chunk-Y7GDG744.js} +5 -5
  35. package/dist/{chunk-SR7F3TJY.js → chunk-YK5JEVLX.js} +4 -4
  36. package/dist/{job-orchestrator.protocol-DubMVbm9.d.ts → job-orchestrator.protocol-ZuJ3ow-O.d.ts} +77 -3
  37. package/dist/runtime/base-classes/index.js +12 -12
  38. package/dist/runtime/shared/openapi/index.js +5 -5
  39. package/dist/runtime/shared/openapi/registry.js +2 -2
  40. package/dist/runtime/subsystems/auth/auth.module.js +3 -3
  41. package/dist/runtime/subsystems/auth/index.js +12 -12
  42. package/dist/runtime/subsystems/bridge/bridge-delivery-handler.d.ts +1 -1
  43. package/dist/runtime/subsystems/bridge/bridge-delivery-handler.js +3 -3
  44. package/dist/runtime/subsystems/bridge/bridge-delivery.drizzle-backend.js +3 -3
  45. package/dist/runtime/subsystems/bridge/bridge-outbox-drain-hook.js +7 -7
  46. package/dist/runtime/subsystems/bridge/bridge.module.d.ts +1 -1
  47. package/dist/runtime/subsystems/bridge/bridge.module.js +19 -19
  48. package/dist/runtime/subsystems/bridge/event-flow.service.d.ts +1 -1
  49. package/dist/runtime/subsystems/bridge/event-flow.service.js +2 -2
  50. package/dist/runtime/subsystems/bridge/index.d.ts +1 -1
  51. package/dist/runtime/subsystems/bridge/index.js +21 -21
  52. package/dist/runtime/subsystems/events/event-bus.drizzle-backend.js +4 -4
  53. package/dist/runtime/subsystems/events/events.module.js +5 -5
  54. package/dist/runtime/subsystems/events/index.js +7 -7
  55. package/dist/runtime/subsystems/index.d.ts +1 -1
  56. package/dist/runtime/subsystems/index.js +100 -100
  57. package/dist/runtime/subsystems/integration/build-change-source.js +2 -2
  58. package/dist/runtime/subsystems/integration/deep-equal.differ.d.ts +19 -0
  59. package/dist/runtime/subsystems/integration/deep-equal.differ.js +1 -1
  60. package/dist/runtime/subsystems/integration/execute-integration.use-case.js +2 -2
  61. package/dist/runtime/subsystems/integration/index.js +39 -39
  62. package/dist/runtime/subsystems/integration/integration-cursor-store.drizzle-backend.js +2 -2
  63. package/dist/runtime/subsystems/integration/integration-run-recorder.drizzle-backend.js +2 -2
  64. package/dist/runtime/subsystems/integration/integration.module.d.ts +20 -0
  65. package/dist/runtime/subsystems/integration/integration.module.js +6 -6
  66. package/dist/runtime/subsystems/jobs/index.d.ts +1 -1
  67. package/dist/runtime/subsystems/jobs/index.js +27 -27
  68. package/dist/runtime/subsystems/jobs/job-handler.base.d.ts +1 -1
  69. package/dist/runtime/subsystems/jobs/job-handler.base.js +11 -3
  70. package/dist/runtime/subsystems/jobs/job-orchestrator.bullmq-backend.d.ts +1 -1
  71. package/dist/runtime/subsystems/jobs/job-orchestrator.bullmq-backend.js +6 -5
  72. package/dist/runtime/subsystems/jobs/job-orchestrator.bullmq-backend.js.map +1 -1
  73. package/dist/runtime/subsystems/jobs/job-orchestrator.drizzle-backend.d.ts +1 -1
  74. package/dist/runtime/subsystems/jobs/job-orchestrator.drizzle-backend.js +3 -2
  75. package/dist/runtime/subsystems/jobs/job-orchestrator.memory-backend.d.ts +11 -1
  76. package/dist/runtime/subsystems/jobs/job-orchestrator.memory-backend.js +2 -2
  77. package/dist/runtime/subsystems/jobs/job-orchestrator.protocol.d.ts +1 -1
  78. package/dist/runtime/subsystems/jobs/job-run-keyset-cursor.d.ts +1 -1
  79. package/dist/runtime/subsystems/jobs/job-run-service.drizzle-backend.d.ts +1 -1
  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.d.ts +1 -1
  82. package/dist/runtime/subsystems/jobs/job-run-service.memory-backend.js +2 -2
  83. package/dist/runtime/subsystems/jobs/job-run-service.protocol.d.ts +1 -1
  84. package/dist/runtime/subsystems/jobs/job-worker.bullmq-backend.d.ts +1 -1
  85. package/dist/runtime/subsystems/jobs/job-worker.bullmq-backend.js +1 -1
  86. package/dist/runtime/subsystems/jobs/job-worker.d.ts +9 -1
  87. package/dist/runtime/subsystems/jobs/job-worker.js +3 -3
  88. package/dist/runtime/subsystems/jobs/job-worker.module.d.ts +1 -1
  89. package/dist/runtime/subsystems/jobs/job-worker.module.js +11 -11
  90. package/dist/runtime/subsystems/jobs/jobs-domain.module.js +9 -9
  91. package/dist/runtime/subsystems/jobs/jobs-errors.d.ts +1 -1
  92. package/dist/runtime/subsystems/jobs/pg-notify.d.ts +25 -1
  93. package/dist/runtime/subsystems/jobs/pg-notify.js +1 -1
  94. package/dist/runtime/subsystems/observability/index.d.ts +1 -1
  95. package/dist/runtime/subsystems/observability/index.js +3 -3
  96. package/dist/runtime/subsystems/observability/observability.module.js +3 -3
  97. package/dist/runtime/subsystems/observability/observability.protocol.d.ts +1 -1
  98. package/dist/runtime/subsystems/observability/observability.service.d.ts +1 -1
  99. package/dist/runtime/subsystems/observability/observability.service.js +2 -2
  100. package/dist/runtime/subsystems/observability/reporters/bridge-metrics.reporter.d.ts +1 -1
  101. package/dist/runtime/subsystems/observability/reporters/index.d.ts +1 -1
  102. package/dist/runtime/subsystems/storage/index.js +1 -1
  103. package/dist/runtime/subsystems/storage/storage.module.js +1 -1
  104. package/dist/src/cli/index.js +38 -16
  105. package/dist/src/cli/index.js.map +1 -1
  106. package/dist/src/index.js +13 -13
  107. package/package.json +1 -1
  108. package/runtime/subsystems/integration/deep-equal.differ.ts +34 -5
  109. package/runtime/subsystems/integration/integration.module.ts +26 -2
  110. package/runtime/subsystems/jobs/job-handler.base.ts +115 -2
  111. package/runtime/subsystems/jobs/job-orchestrator.drizzle-backend.ts +43 -16
  112. package/runtime/subsystems/jobs/job-orchestrator.memory-backend.ts +58 -18
  113. package/runtime/subsystems/jobs/job-worker.ts +29 -11
  114. package/runtime/subsystems/jobs/pg-notify.ts +63 -3
  115. package/templates/subsystem/integration-config/codegen-config-integration-block.ejs.t +17 -0
  116. package/dist/chunk-36U5UGIO.js.map +0 -1
  117. package/dist/chunk-BULPAAD3.js.map +0 -1
  118. package/dist/chunk-CO6LUM72.js.map +0 -1
  119. package/dist/chunk-MYQIQ27N.js.map +0 -1
  120. package/dist/chunk-OITTYGJS.js.map +0 -1
  121. package/dist/chunk-OTR44OH6.js.map +0 -1
  122. package/dist/chunk-P3AYBRP6.js.map +0 -1
  123. /package/dist/{chunk-GJDEPTPY.js.map → chunk-235ZMMJR.js.map} +0 -0
  124. /package/dist/{chunk-DTXH24LR.js.map → chunk-65MO75WM.js.map} +0 -0
  125. /package/dist/{chunk-5RT7JGKT.js.map → chunk-7OVCARTQ.js.map} +0 -0
  126. /package/dist/{chunk-3MAZ4TQH.js.map → chunk-AZLUWG5S.js.map} +0 -0
  127. /package/dist/{chunk-UTNWFHJF.js.map → chunk-B34G6PHD.js.map} +0 -0
  128. /package/dist/{chunk-CDLWYZVQ.js.map → chunk-BHZP6LOV.js.map} +0 -0
  129. /package/dist/{chunk-W2UIDI3R.js.map → chunk-CLWBNXKF.js.map} +0 -0
  130. /package/dist/{chunk-43SBT72G.js.map → chunk-I6UXRJ3Q.js.map} +0 -0
  131. /package/dist/{chunk-K2I6XIK5.js.map → chunk-KSTZIULO.js.map} +0 -0
  132. /package/dist/{chunk-L3VJ47BU.js.map → chunk-KZDHMZ45.js.map} +0 -0
  133. /package/dist/{chunk-RHYNACZS.js.map → chunk-OZEPJGMA.js.map} +0 -0
  134. /package/dist/{chunk-NXNVTXKG.js.map → chunk-R6F6KFIL.js.map} +0 -0
  135. /package/dist/{chunk-7LKAMLV4.js.map → chunk-T6SCOJF4.js.map} +0 -0
  136. /package/dist/{chunk-OGIZXGPY.js.map → chunk-TDEHU73T.js.map} +0 -0
  137. /package/dist/{chunk-3VEVGL74.js.map → chunk-VNBC3VXM.js.map} +0 -0
  138. /package/dist/{chunk-E45CSC33.js.map → chunk-XKWOJZZ4.js.map} +0 -0
  139. /package/dist/{chunk-DCCZB4UC.js.map → chunk-XWBK3XJK.js.map} +0 -0
  140. /package/dist/{chunk-4GLNY5V6.js.map → chunk-Y7GDG744.js.map} +0 -0
  141. /package/dist/{chunk-SR7F3TJY.js.map → chunk-YK5JEVLX.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  JOB_HANDLER_REGISTRY
3
- } from "../../../chunk-CO6LUM72.js";
3
+ } from "../../../chunk-7P5ODGLA.js";
4
4
  import {
5
5
  jobRuns
6
6
  } from "../../../chunk-OKXZ63IA.js";
@@ -3,7 +3,7 @@ import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
3
3
  import { ModuleRef } from '@nestjs/core';
4
4
  import { DrizzleClient } from '../../types/drizzle.js';
5
5
  import { JobRunRow } from './job-orchestration.schema.js';
6
- import { I as IJobOrchestrator, R as RetryPolicy } from '../../../job-orchestrator.protocol-DubMVbm9.js';
6
+ import { I as IJobOrchestrator, R as RetryPolicy } from '../../../job-orchestrator.protocol-ZuJ3ow-O.js';
7
7
  import { IJobRunService } from './job-run-service.protocol.js';
8
8
  import { IJobStepService } from './job-step-service.protocol.js';
9
9
  import 'drizzle-orm/node-postgres';
@@ -186,6 +186,14 @@ declare class JobWorker implements OnModuleInit, OnModuleDestroy {
186
186
  private drainOnWake;
187
187
  onModuleDestroy(): Promise<void>;
188
188
  private drainInFlight;
189
+ /**
190
+ * LISTEN-NOTIFY-2 — stop + drop the wake listener. Idempotent: a second call
191
+ * (SIGTERM + Nest destroy) finds `notifyListener` already null and no-ops.
192
+ * `PgNotifyListener.stop()` is itself race-safe against an in-flight
193
+ * `connect()`, so even a destroy that arrives microseconds after `start()`
194
+ * releases the listener socket rather than leaking it.
195
+ */
196
+ private stopNotifyListener;
189
197
  pollAndProcess(): Promise<void>;
190
198
  /**
191
199
  * Claim the next runnable row from the pool. Transaction ensures the
@@ -6,11 +6,11 @@ import {
6
6
  buildStaleSweepQuery,
7
7
  classifyError,
8
8
  computeBackoff
9
- } from "../../../chunk-OITTYGJS.js";
10
- import "../../../chunk-CO6LUM72.js";
9
+ } from "../../../chunk-VDL5CJ5C.js";
10
+ import "../../../chunk-Q6LRJ4VI.js";
11
+ import "../../../chunk-7P5ODGLA.js";
11
12
  import "../../../chunk-ZPL74UQN.js";
12
13
  import "../../../chunk-OKXZ63IA.js";
13
- import "../../../chunk-MYQIQ27N.js";
14
14
  import "../../../chunk-GYGNEQSC.js";
15
15
  import "../../../chunk-U64T4YZE.js";
16
16
  import "../../../chunk-2E224ZSN.js";
@@ -2,7 +2,7 @@ import { DynamicModule, OnModuleInit, OnModuleDestroy } from '@nestjs/common';
2
2
  import { ModuleRef } from '@nestjs/core';
3
3
  import { DrizzleClient } from '../../types/drizzle.js';
4
4
  import { JobsDomainModuleOptions } from './jobs-domain.module.js';
5
- import { I as IJobOrchestrator } from '../../../job-orchestrator.protocol-DubMVbm9.js';
5
+ import { I as IJobOrchestrator } from '../../../job-orchestrator.protocol-ZuJ3ow-O.js';
6
6
  import { IJobRunService } from './job-run-service.protocol.js';
7
7
  import { IJobStepService } from './job-step-service.protocol.js';
8
8
  import { JobWorkerOptions, JobWorker } from './job-worker.js';
@@ -2,24 +2,24 @@ import {
2
2
  JOB_WORKER_MODULE_OPTIONS,
3
3
  JobWorkerModule,
4
4
  JobWorkerOrchestrator
5
- } from "../../../chunk-GJDEPTPY.js";
6
- import "../../../chunk-OITTYGJS.js";
7
- import "../../../chunk-3MAZ4TQH.js";
8
- import "../../../chunk-BULPAAD3.js";
9
- import "../../../chunk-3VEVGL74.js";
10
- import "../../../chunk-CDLWYZVQ.js";
11
- import "../../../chunk-L3LZWWSX.js";
5
+ } from "../../../chunk-235ZMMJR.js";
6
+ import "../../../chunk-VDL5CJ5C.js";
7
+ import "../../../chunk-AZLUWG5S.js";
8
+ import "../../../chunk-VNBC3VXM.js";
9
+ import "../../../chunk-BHZP6LOV.js";
12
10
  import "../../../chunk-DV4RV2DC.js";
11
+ import "../../../chunk-E6PLM6QG.js";
12
+ import "../../../chunk-VQOAATIG.js";
13
13
  import "../../../chunk-PNZSGAB2.js";
14
14
  import "../../../chunk-SNQ3TOWP.js";
15
+ import "../../../chunk-T4BIIU5E.js";
16
+ import "../../../chunk-L3LZWWSX.js";
15
17
  import "../../../chunk-I6MVCB5A.js";
16
18
  import "../../../chunk-RHVN6NA7.js";
17
- import "../../../chunk-OTR44OH6.js";
18
- import "../../../chunk-T4BIIU5E.js";
19
- import "../../../chunk-CO6LUM72.js";
19
+ import "../../../chunk-Q6LRJ4VI.js";
20
+ import "../../../chunk-7P5ODGLA.js";
20
21
  import "../../../chunk-ZPL74UQN.js";
21
22
  import "../../../chunk-OKXZ63IA.js";
22
- import "../../../chunk-MYQIQ27N.js";
23
23
  import "../../../chunk-GYGNEQSC.js";
24
24
  import "../../../chunk-U64T4YZE.js";
25
25
  import "../../../chunk-2E224ZSN.js";
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  JobsDomainModule
3
- } from "../../../chunk-3MAZ4TQH.js";
4
- import "../../../chunk-BULPAAD3.js";
5
- import "../../../chunk-3VEVGL74.js";
6
- import "../../../chunk-CDLWYZVQ.js";
7
- import "../../../chunk-L3LZWWSX.js";
3
+ } from "../../../chunk-AZLUWG5S.js";
4
+ import "../../../chunk-VNBC3VXM.js";
5
+ import "../../../chunk-BHZP6LOV.js";
8
6
  import "../../../chunk-DV4RV2DC.js";
7
+ import "../../../chunk-E6PLM6QG.js";
8
+ import "../../../chunk-VQOAATIG.js";
9
9
  import "../../../chunk-PNZSGAB2.js";
10
10
  import "../../../chunk-SNQ3TOWP.js";
11
+ import "../../../chunk-T4BIIU5E.js";
12
+ import "../../../chunk-L3LZWWSX.js";
11
13
  import "../../../chunk-I6MVCB5A.js";
12
14
  import "../../../chunk-RHVN6NA7.js";
13
- import "../../../chunk-OTR44OH6.js";
14
- import "../../../chunk-T4BIIU5E.js";
15
- import "../../../chunk-CO6LUM72.js";
15
+ import "../../../chunk-Q6LRJ4VI.js";
16
+ import "../../../chunk-7P5ODGLA.js";
16
17
  import "../../../chunk-ZPL74UQN.js";
17
18
  import "../../../chunk-OKXZ63IA.js";
18
- import "../../../chunk-MYQIQ27N.js";
19
19
  import "../../../chunk-GYGNEQSC.js";
20
20
  import "../../../chunk-U64T4YZE.js";
21
21
  import "../../../chunk-2E224ZSN.js";
@@ -1,4 +1,4 @@
1
- import { i as JobRun } from '../../../job-orchestrator.protocol-DubMVbm9.js';
1
+ import { i as JobRun } from '../../../job-orchestrator.protocol-ZuJ3ow-O.js';
2
2
  import '../events/event-bus.protocol.js';
3
3
  import '../../types/drizzle.js';
4
4
  import 'drizzle-orm/node-postgres';
@@ -68,18 +68,42 @@ declare class PgNotifyListener {
68
68
  private readonly backoffMaxMs;
69
69
  /** WARN-once gate so a flapping listener doesn't spam the log. */
70
70
  private warnedDown;
71
+ /**
72
+ * LISTEN-NOTIFY-2 — the in-flight `connect()` promise, set while a checkout is
73
+ * mid-`await`. `stop()` awaits it so a `stop()` that races a still-resolving
74
+ * `connect()` can't return before the connect either assigns `this.client`
75
+ * (then released by `releaseClient`) or self-releases the checked-out client.
76
+ * Without this, a `stop()` arriving during `pool.connect()`'s await saw
77
+ * `this.client === null` (nothing to release), then `connect()` resumed,
78
+ * assigned the client, and issued `LISTEN` — leaking an ESTABLISHED socket
79
+ * holding `LISTEN <channel>` forever past `app.close()`.
80
+ */
81
+ private connecting;
71
82
  constructor(opts: PgNotifyListenerOptions);
72
83
  /** Begin listening. Idempotent-ish: a second call while connected is a no-op. */
73
84
  start(): Promise<void>;
74
- /** Stop listening + release the connection. Safe to call repeatedly. */
85
+ /**
86
+ * Stop listening + release the connection. Safe to call repeatedly and
87
+ * race-safe against an in-flight `connect()` (LISTEN-NOTIFY-2): it sets
88
+ * `stopped` first (so a resuming `connect()` self-releases its checkout),
89
+ * then awaits any in-flight connect, then releases whatever client landed.
90
+ */
75
91
  stop(): Promise<void>;
76
92
  private connect;
93
+ private doConnect;
77
94
  /** Connection dropped after being established → reconnect. */
78
95
  private handleDrop;
79
96
  /** Initial / reconnect `connect()` threw. */
80
97
  private handleConnectFailure;
81
98
  private scheduleReconnect;
82
99
  private releaseClient;
100
+ /**
101
+ * Tear down a raw checked-out client (LISTEN-NOTIFY-2). Used both by the
102
+ * normal `releaseClient()` path and by the connect-vs-stop race bail-outs,
103
+ * where the client was checked out but never assigned to `this.client`.
104
+ * Destroys (`release(true)`) so a half-listening socket is never reused.
105
+ */
106
+ private releaseRawClient;
83
107
  }
84
108
 
85
109
  export { EVENTS_WAKE_CHANNEL, JOBS_WAKE_CHANNEL, PgNotifyListener, type PgNotifyListenerOptions, pgNotify };
@@ -3,7 +3,7 @@ import {
3
3
  JOBS_WAKE_CHANNEL,
4
4
  PgNotifyListener,
5
5
  pgNotify
6
- } from "../../../chunk-MYQIQ27N.js";
6
+ } from "../../../chunk-Q6LRJ4VI.js";
7
7
  import "../../../chunk-2E224ZSN.js";
8
8
  export {
9
9
  EVENTS_WAKE_CHANNEL,
@@ -14,7 +14,7 @@ import '../../types/drizzle.js';
14
14
  import 'drizzle-orm/node-postgres';
15
15
  import '../integration/integration-field-diff.protocol.js';
16
16
  import 'zod';
17
- import '../../../job-orchestrator.protocol-DubMVbm9.js';
17
+ import '../../../job-orchestrator.protocol-ZuJ3ow-O.js';
18
18
  import '../jobs/job-orchestration.schema.js';
19
19
  import 'drizzle-orm/pg-core';
20
20
  import 'drizzle-orm';
@@ -5,18 +5,18 @@ import {
5
5
  } from "../../../chunk-EWYCWP4H.js";
6
6
  import {
7
7
  ObservabilityModule
8
- } from "../../../chunk-E45CSC33.js";
8
+ } from "../../../chunk-XKWOJZZ4.js";
9
9
  import {
10
10
  BridgeMetricsReporter
11
11
  } from "../../../chunk-AQFQ4BYM.js";
12
- import "../../../chunk-W2UIDI3R.js";
12
+ import "../../../chunk-CLWBNXKF.js";
13
13
  import {
14
14
  OBSERVABILITY,
15
15
  OBSERVABILITY_MODULE_OPTIONS
16
16
  } from "../../../chunk-Y7RRSEOC.js";
17
17
  import "../../../chunk-ZPL74UQN.js";
18
- import "../../../chunk-4LH67P4U.js";
19
18
  import "../../../chunk-H5NH7KPE.js";
19
+ import "../../../chunk-4LH67P4U.js";
20
20
  import "../../../chunk-GYGNEQSC.js";
21
21
  import "../../../chunk-S7C6TIIF.js";
22
22
  import "../../../chunk-2E224ZSN.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  ObservabilityModule
3
- } from "../../../chunk-E45CSC33.js";
3
+ } from "../../../chunk-XKWOJZZ4.js";
4
4
  import "../../../chunk-AQFQ4BYM.js";
5
- import "../../../chunk-W2UIDI3R.js";
5
+ import "../../../chunk-CLWBNXKF.js";
6
6
  import "../../../chunk-Y7RRSEOC.js";
7
7
  import "../../../chunk-ZPL74UQN.js";
8
- import "../../../chunk-4LH67P4U.js";
9
8
  import "../../../chunk-H5NH7KPE.js";
9
+ import "../../../chunk-4LH67P4U.js";
10
10
  import "../../../chunk-GYGNEQSC.js";
11
11
  import "../../../chunk-S7C6TIIF.js";
12
12
  import "../../../chunk-2E224ZSN.js";
@@ -3,7 +3,7 @@ import { ListEventsQuery, EventPage, EventSummary } from '../events/event-read.p
3
3
  import { StatusHistogram } from '../bridge/bridge.protocol.js';
4
4
  import { IntegrationRunSummary } from '../integration/integration-run-recorder.protocol.js';
5
5
  import { CursorSnapshot } from '../integration/integration-cursor-store.protocol.js';
6
- import '../../../job-orchestrator.protocol-DubMVbm9.js';
6
+ import '../../../job-orchestrator.protocol-ZuJ3ow-O.js';
7
7
  import '../events/event-bus.protocol.js';
8
8
  import '../../types/drizzle.js';
9
9
  import 'drizzle-orm/node-postgres';
@@ -4,7 +4,7 @@ import { IJobBridge, StatusHistogram } from '../bridge/bridge.protocol.js';
4
4
  import { IIntegrationRunRecorder, IntegrationRunSummary } from '../integration/integration-run-recorder.protocol.js';
5
5
  import { ICursorStore, CursorSnapshot } from '../integration/integration-cursor-store.protocol.js';
6
6
  import { IObservability, CorrelationTimeline } from './observability.protocol.js';
7
- import '../../../job-orchestrator.protocol-DubMVbm9.js';
7
+ import '../../../job-orchestrator.protocol-ZuJ3ow-O.js';
8
8
  import '../events/event-bus.protocol.js';
9
9
  import '../../types/drizzle.js';
10
10
  import 'drizzle-orm/node-postgres';
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  ObservabilityService
3
- } from "../../../chunk-W2UIDI3R.js";
3
+ } from "../../../chunk-CLWBNXKF.js";
4
4
  import "../../../chunk-ZPL74UQN.js";
5
- import "../../../chunk-4LH67P4U.js";
6
5
  import "../../../chunk-H5NH7KPE.js";
6
+ import "../../../chunk-4LH67P4U.js";
7
7
  import "../../../chunk-GYGNEQSC.js";
8
8
  import "../../../chunk-S7C6TIIF.js";
9
9
  import "../../../chunk-2E224ZSN.js";
@@ -2,7 +2,7 @@ import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
2
2
  import { IObservability } from '../observability.protocol.js';
3
3
  import { ObservabilityModuleOptions } from '../observability.module.js';
4
4
  import '../../jobs/job-run-service.protocol.js';
5
- import '../../../../job-orchestrator.protocol-DubMVbm9.js';
5
+ import '../../../../job-orchestrator.protocol-ZuJ3ow-O.js';
6
6
  import '../../events/event-bus.protocol.js';
7
7
  import '../../../types/drizzle.js';
8
8
  import 'drizzle-orm/node-postgres';
@@ -2,7 +2,7 @@ export { BridgeMetricsReporter } from './bridge-metrics.reporter.js';
2
2
  import '@nestjs/common';
3
3
  import '../observability.protocol.js';
4
4
  import '../../jobs/job-run-service.protocol.js';
5
- import '../../../../job-orchestrator.protocol-DubMVbm9.js';
5
+ import '../../../../job-orchestrator.protocol-ZuJ3ow-O.js';
6
6
  import '../../events/event-bus.protocol.js';
7
7
  import '../../../types/drizzle.js';
8
8
  import 'drizzle-orm/node-postgres';
@@ -8,10 +8,10 @@ import {
8
8
  import {
9
9
  MemoryStorageBackend
10
10
  } from "../../../chunk-3SZFUTXE.js";
11
- import "../../../chunk-J6MN42LG.js";
12
11
  import {
13
12
  STORAGE
14
13
  } from "../../../chunk-NYBCQZC7.js";
14
+ import "../../../chunk-J6MN42LG.js";
15
15
  import "../../../chunk-GYGNEQSC.js";
16
16
  import "../../../chunk-2E224ZSN.js";
17
17
  export {
@@ -3,8 +3,8 @@ import {
3
3
  } from "../../../chunk-4MVGAMUA.js";
4
4
  import "../../../chunk-JWNHNUYL.js";
5
5
  import "../../../chunk-3SZFUTXE.js";
6
- import "../../../chunk-J6MN42LG.js";
7
6
  import "../../../chunk-NYBCQZC7.js";
7
+ import "../../../chunk-J6MN42LG.js";
8
8
  import "../../../chunk-GYGNEQSC.js";
9
9
  import "../../../chunk-2E224ZSN.js";
10
10
  export {
@@ -38,27 +38,27 @@ import {
38
38
  writeManifest
39
39
  } from "../../chunk-IOQMMH6C.js";
40
40
  import "../../chunk-KVOWSC5S.js";
41
- import "../../chunk-P3AYBRP6.js";
42
- import "../../chunk-PRWIX6UW.js";
43
- import "../../chunk-SR7F3TJY.js";
41
+ import "../../chunk-ATVGYF3D.js";
42
+ import "../../chunk-YK5JEVLX.js";
44
43
  import "../../chunk-EO2QPOKH.js";
45
- import "../../chunk-SQDOBLBP.js";
46
- import "../../chunk-OGIZXGPY.js";
47
- import "../../chunk-LG57S2SC.js";
48
- import "../../chunk-DCCZB4UC.js";
49
- import "../../chunk-MZ6GV4YF.js";
50
- import "../../chunk-HNWZFNKP.js";
44
+ import "../../chunk-PRWIX6UW.js";
45
+ import "../../chunk-XWBK3XJK.js";
51
46
  import "../../chunk-AHV4GDYM.js";
52
- import "../../chunk-43SBT72G.js";
53
- import "../../chunk-4MF3HKJA.js";
54
- import "../../chunk-TIZXQU26.js";
55
- import "../../chunk-36U5UGIO.js";
47
+ import "../../chunk-SQDOBLBP.js";
48
+ import "../../chunk-JEINYUJH.js";
56
49
  import {
57
50
  isDivisibleCursor
58
51
  } from "../../chunk-5TK7MEN4.js";
59
52
  import "../../chunk-4KNXX6TI.js";
60
53
  import "../../chunk-3CJFPU6Q.js";
54
+ import "../../chunk-TDEHU73T.js";
61
55
  import "../../chunk-S7C6TIIF.js";
56
+ import "../../chunk-MZ6GV4YF.js";
57
+ import "../../chunk-LG57S2SC.js";
58
+ import "../../chunk-HNWZFNKP.js";
59
+ import "../../chunk-I6UXRJ3Q.js";
60
+ import "../../chunk-TIZXQU26.js";
61
+ import "../../chunk-4MF3HKJA.js";
62
62
  import "../../chunk-U64T4YZE.js";
63
63
  import "../../chunk-2E224ZSN.js";
64
64
 
@@ -2843,16 +2843,38 @@ var COMPOSERS = {
2843
2843
  integration: ({ moduleImport, cfg }) => {
2844
2844
  const backend = cfg?.backend ?? "drizzle";
2845
2845
  const multiTenant = Boolean(cfg?.multi_tenant);
2846
+ const differClause = integrationDifferClause(cfg);
2847
+ if (!differClause) {
2848
+ return {
2849
+ imports: [
2850
+ `import { IntegrationModule } from '${moduleImport("integration", "integration.module")}';`
2851
+ ],
2852
+ calls: [
2853
+ ` IntegrationModule.forRoot(${quoteOpts({ backend, multiTenant })}),`
2854
+ ]
2855
+ };
2856
+ }
2857
+ const parts = [`backend: '${backend}'`, `multiTenant: ${multiTenant}`, differClause];
2846
2858
  return {
2847
2859
  imports: [
2848
2860
  `import { IntegrationModule } from '${moduleImport("integration", "integration.module")}';`
2849
2861
  ],
2850
- calls: [
2851
- ` IntegrationModule.forRoot(${quoteOpts({ backend, multiTenant })}),`
2852
- ]
2862
+ calls: [` IntegrationModule.forRoot({ ${parts.join(", ")} }),`]
2853
2863
  };
2854
2864
  }
2855
2865
  };
2866
+ function integrationDifferClause(cfg) {
2867
+ const differ = cfg?.differ;
2868
+ if (!differ) return "";
2869
+ const toStrings = (v) => Array.isArray(v) ? v.filter((x) => typeof x === "string") : [];
2870
+ const ignore = toStrings(differ.ignore);
2871
+ const unignore = toStrings(differ.unignore);
2872
+ const inner = {};
2873
+ if (ignore.length > 0) inner.ignore = ignore;
2874
+ if (unignore.length > 0) inner.unignore = unignore;
2875
+ if (Object.keys(inner).length === 0) return "";
2876
+ return `differ: ${jsonToTs(inner)}`;
2877
+ }
2856
2878
  var PACKAGE2 = "@pattern-stack/codegen";
2857
2879
  function makeModuleImport(mode, subsystemsRel) {
2858
2880
  if (mode === "vendored") {