@pattern-stack/codegen 0.24.0 → 0.26.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 (81) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/{chunk-2VHZ7EKC.js → chunk-5AAA4LTE.js} +2 -2
  3. package/dist/{chunk-CKLM57IE.js → chunk-AC6T2JUX.js} +14 -14
  4. package/dist/{chunk-AS3NAZB6.js → chunk-B7SC2V45.js} +2 -2
  5. package/dist/{chunk-4MVGAMUA.js → chunk-BK5ICA2F.js} +4 -4
  6. package/dist/{chunk-W72PRNJY.js → chunk-BPYZCEHS.js} +2 -2
  7. package/dist/{chunk-J7JMVS2B.js → chunk-CZQUOIDY.js} +4 -4
  8. package/dist/{chunk-KYR3B3OW.js → chunk-DAHWN63L.js} +26 -5
  9. package/dist/chunk-DAHWN63L.js.map +1 -0
  10. package/dist/{chunk-37PILMIT.js → chunk-EEGVDRZE.js} +4 -4
  11. package/dist/{chunk-RFH7N6EP.js → chunk-FCPTHS42.js} +2 -2
  12. package/dist/chunk-H6QRQUAF.js +54 -0
  13. package/dist/chunk-H6QRQUAF.js.map +1 -0
  14. package/dist/{chunk-ENAR3F5S.js → chunk-HEOISQ6W.js} +6 -6
  15. package/dist/{chunk-CDLWYZVQ.js → chunk-IN3EWFB4.js} +4 -4
  16. package/dist/{chunk-WZOPWQN2.js → chunk-IXAE6BN6.js} +3 -3
  17. package/dist/{chunk-YULGWXCY.js → chunk-MVKW2BCR.js} +4 -4
  18. package/dist/{chunk-KFXXOFDC.js → chunk-N43D57AP.js} +2 -2
  19. package/dist/{chunk-JYBFPNBJ.js → chunk-SJGEBMJT.js} +2 -2
  20. package/dist/{chunk-HN5HT5WL.js → chunk-VI2VNA6Y.js} +4 -4
  21. package/dist/runtime/base-classes/activity-entity-service.js +3 -3
  22. package/dist/runtime/base-classes/base-service.js +2 -2
  23. package/dist/runtime/base-classes/index.js +6 -6
  24. package/dist/runtime/base-classes/integrated-entity-service.js +3 -3
  25. package/dist/runtime/base-classes/knowledge-entity-service.js +3 -3
  26. package/dist/runtime/base-classes/lifecycle-events.js +1 -1
  27. package/dist/runtime/base-classes/metadata-entity-service.js +3 -3
  28. package/dist/runtime/shared/logging/compact-console-logger.d.ts +55 -0
  29. package/dist/runtime/shared/logging/compact-console-logger.js +12 -0
  30. package/dist/runtime/shared/logging/compact-console-logger.js.map +1 -0
  31. package/dist/runtime/shared/logging/index.d.ts +2 -0
  32. package/dist/runtime/shared/logging/index.js +12 -0
  33. package/dist/runtime/shared/logging/index.js.map +1 -0
  34. package/dist/runtime/subsystems/analytics/analytics.module.js +2 -2
  35. package/dist/runtime/subsystems/analytics/index.js +4 -4
  36. package/dist/runtime/subsystems/auth/auth.module.js +1 -1
  37. package/dist/runtime/subsystems/auth/index.js +3 -3
  38. package/dist/runtime/subsystems/bridge/bridge-delivery.drizzle-backend.js +2 -2
  39. package/dist/runtime/subsystems/bridge/bridge-outbox-drain-hook.js +1 -1
  40. package/dist/runtime/subsystems/bridge/bridge.module.js +11 -11
  41. package/dist/runtime/subsystems/bridge/index.js +13 -13
  42. package/dist/runtime/subsystems/index.js +49 -49
  43. package/dist/runtime/subsystems/integration/index.js +12 -12
  44. package/dist/runtime/subsystems/integration/integration-run-recorder.drizzle-backend.js +2 -2
  45. package/dist/runtime/subsystems/integration/integration.module.js +3 -3
  46. package/dist/runtime/subsystems/jobs/index.js +24 -24
  47. package/dist/runtime/subsystems/jobs/job-orchestrator.bullmq-backend.js +4 -4
  48. package/dist/runtime/subsystems/jobs/job-run-service.memory-backend.js +2 -2
  49. package/dist/runtime/subsystems/jobs/job-worker.module.js +8 -8
  50. package/dist/runtime/subsystems/jobs/jobs-domain.module.js +7 -7
  51. package/dist/runtime/subsystems/observability/index.js +2 -2
  52. package/dist/runtime/subsystems/observability/observability.module.js +2 -2
  53. package/dist/runtime/subsystems/storage/index.js +4 -4
  54. package/dist/runtime/subsystems/storage/storage.module.js +2 -2
  55. package/dist/src/cli/index.js +101 -31
  56. package/dist/src/cli/index.js.map +1 -1
  57. package/dist/src/index.js +4 -4
  58. package/package.json +5 -1
  59. package/runtime/base-classes/lifecycle-events.ts +39 -6
  60. package/runtime/shared/logging/compact-console-logger.ts +102 -0
  61. package/runtime/shared/logging/index.ts +10 -0
  62. package/templates/subsystem/jobs/job-orchestration.schema.ejs.t +1 -0
  63. package/templates/subsystem/jobs/main-hook.ejs.t +1 -1
  64. package/templates/subsystem/jobs/prompt.js +40 -2
  65. package/templates/subsystem/jobs/worker.ejs.t +47 -35
  66. package/dist/chunk-KYR3B3OW.js.map +0 -1
  67. /package/dist/{chunk-2VHZ7EKC.js.map → chunk-5AAA4LTE.js.map} +0 -0
  68. /package/dist/{chunk-CKLM57IE.js.map → chunk-AC6T2JUX.js.map} +0 -0
  69. /package/dist/{chunk-AS3NAZB6.js.map → chunk-B7SC2V45.js.map} +0 -0
  70. /package/dist/{chunk-4MVGAMUA.js.map → chunk-BK5ICA2F.js.map} +0 -0
  71. /package/dist/{chunk-W72PRNJY.js.map → chunk-BPYZCEHS.js.map} +0 -0
  72. /package/dist/{chunk-J7JMVS2B.js.map → chunk-CZQUOIDY.js.map} +0 -0
  73. /package/dist/{chunk-37PILMIT.js.map → chunk-EEGVDRZE.js.map} +0 -0
  74. /package/dist/{chunk-RFH7N6EP.js.map → chunk-FCPTHS42.js.map} +0 -0
  75. /package/dist/{chunk-ENAR3F5S.js.map → chunk-HEOISQ6W.js.map} +0 -0
  76. /package/dist/{chunk-CDLWYZVQ.js.map → chunk-IN3EWFB4.js.map} +0 -0
  77. /package/dist/{chunk-WZOPWQN2.js.map → chunk-IXAE6BN6.js.map} +0 -0
  78. /package/dist/{chunk-YULGWXCY.js.map → chunk-MVKW2BCR.js.map} +0 -0
  79. /package/dist/{chunk-KFXXOFDC.js.map → chunk-N43D57AP.js.map} +0 -0
  80. /package/dist/{chunk-JYBFPNBJ.js.map → chunk-SJGEBMJT.js.map} +0 -0
  81. /package/dist/{chunk-HN5HT5WL.js.map → chunk-VI2VNA6Y.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,53 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [0.26.0] — 2026-06-07
6
+
7
+ ### Added
8
+
9
+ - **Runtime: compact console logger + `LOG_LEVEL` threshold
10
+ (`runtime/shared/logging`).** A proven swe-brain (second-dogfood) consumer
11
+ pattern lifted into the runtime, importable as
12
+ `@pattern-stack/codegen/runtime/shared/logging`. `CompactConsoleLogger` drops
13
+ Nest's ~55-char `[Nest] <pid> - <full locale date> LEVEL [Context]`
14
+ preamble (which wraps 2–3× in split-pane dev TUIs) — emitting
15
+ `12:48:42 LOG [Context] message` — and `createAppLogger(threshold?)` gives
16
+ consumers the log-level knob the generated entrypoints never wired: a single
17
+ `LOG_LEVEL` env threshold (`verbose < debug < log < warn < error < fatal`,
18
+ default `log`) that enables that level and above, with an explicit-override arg
19
+ that wins over the env (CLI tools pass `'warn'` to stay quiet). Hand it to
20
+ `NestFactory.create(AppModule, { logger: createAppLogger() })`. See
21
+ `docs/CONSUMER-SETUP.md` §Application logger. (The generated worker template
22
+ doesn't auto-wire it yet — follow-up.)
23
+
24
+ ## [0.25.0] — 2026-06-07
25
+
26
+ ### Fixed
27
+
28
+ - **Lifecycle events: revive the audit trail + diagnosable emit failures.** The
29
+ `BaseService` lifecycle/change event path (`runtime/base-classes/lifecycle-events.ts`)
30
+ predates the AUDIT tier + routing schema (ADR-039) and was never migrated:
31
+ `buildLifecycleEvent` / `buildChangeEvents` stamped no `tier`, so
32
+ `toInsertValues` defaulted the row to `tier='domain'` with NULL `pool` /
33
+ `direction` — which violates the `domain_events_tier_routing_check` CHECK
34
+ (`tier='audit' ⇔ pool IS NULL AND direction IS NULL`). Result: **every**
35
+ `BaseService` create/update/delete in every consumer paid a rejected INSERT and
36
+ silently lost its lifecycle audit trail. The builders now stamp `tier: 'audit'`
37
+ (lifecycle/change events are exactly audit-tier semantics — untyped audit
38
+ records, never bridge-routed); the rows land and surface under the
39
+ observability viewer's audit-tier toggle, and the bridge guard keeps them out
40
+ of job routing. Discovered by the swe-brain dogfood (2× `failed to emit 3
41
+ event(s)` per dispatcher fire — the 3 being the `[updated, field_changed,
42
+ field_changed]` `publishMany` batch from `BaseService.update`).
43
+ - **Lifecycle events: `emitSafely` logs the cause via the Nest Logger.** The
44
+ fire-and-forget catch was a bare `catch {}` that swallowed the error and
45
+ printed `failed to emit N event(s)` via raw `console.warn` — bypassing the Nest
46
+ `Logger` (so consumers configuring `app.useLogger` / factory `logger:` could
47
+ neither format nor filter it) with zero diagnosability. Now logs via a
48
+ module-level `Logger('LifecycleEvents')` at `warn` level including the event
49
+ count, the distinct event types, and the error message; the stack follows at
50
+ `debug`. Never-throw semantics preserved.
51
+
5
52
  ## [0.24.0] — 2026-06-06
6
53
 
7
54
  ### Added
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BaseService
3
- } from "./chunk-W72PRNJY.js";
3
+ } from "./chunk-BPYZCEHS.js";
4
4
 
5
5
  // runtime/base-classes/integrated-entity-service.ts
6
6
  var IntegratedEntityService = class extends BaseService {
@@ -34,4 +34,4 @@ var IntegratedEntityService = class extends BaseService {
34
34
  export {
35
35
  IntegratedEntityService
36
36
  };
37
- //# sourceMappingURL=chunk-2VHZ7EKC.js.map
37
+ //# sourceMappingURL=chunk-5AAA4LTE.js.map
@@ -1,29 +1,29 @@
1
+ import {
2
+ MemoryJobOrchestrator
3
+ } from "./chunk-VQOAATIG.js";
4
+ import {
5
+ MemoryJobStepService
6
+ } from "./chunk-PNZSGAB2.js";
1
7
  import {
2
8
  DrizzleJobRunService
3
9
  } from "./chunk-3VEVGL74.js";
4
10
  import {
5
11
  MemoryJobRunService
6
- } from "./chunk-CDLWYZVQ.js";
12
+ } from "./chunk-IN3EWFB4.js";
13
+ import {
14
+ MemoryJobStore
15
+ } from "./chunk-SNQ3TOWP.js";
7
16
  import {
8
17
  DrizzleJobStepService
9
18
  } from "./chunk-DV4RV2DC.js";
19
+ import {
20
+ DrizzleJobOrchestrator
21
+ } from "./chunk-E6PLM6QG.js";
10
22
  import {
11
23
  BULLMQ_CONNECTION,
12
24
  BULLMQ_RESOLVED_CONFIG,
13
25
  resolveBullMqConfig
14
26
  } from "./chunk-I6MVCB5A.js";
15
- import {
16
- DrizzleJobOrchestrator
17
- } from "./chunk-E6PLM6QG.js";
18
- import {
19
- MemoryJobOrchestrator
20
- } from "./chunk-VQOAATIG.js";
21
- import {
22
- MemoryJobStepService
23
- } from "./chunk-PNZSGAB2.js";
24
- import {
25
- MemoryJobStore
26
- } from "./chunk-SNQ3TOWP.js";
27
27
  import {
28
28
  JOBS_LISTEN_NOTIFY,
29
29
  JOBS_MULTI_TENANT,
@@ -114,4 +114,4 @@ JobsDomainModule = __decorateClass([
114
114
  export {
115
115
  JobsDomainModule
116
116
  };
117
- //# sourceMappingURL=chunk-CKLM57IE.js.map
117
+ //# sourceMappingURL=chunk-AC6T2JUX.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BaseService
3
- } from "./chunk-W72PRNJY.js";
3
+ } from "./chunk-BPYZCEHS.js";
4
4
 
5
5
  // runtime/base-classes/knowledge-entity-service.ts
6
6
  var KnowledgeEntityService = class extends BaseService {
@@ -11,4 +11,4 @@ var KnowledgeEntityService = class extends BaseService {
11
11
  export {
12
12
  KnowledgeEntityService
13
13
  };
14
- //# sourceMappingURL=chunk-AS3NAZB6.js.map
14
+ //# sourceMappingURL=chunk-B7SC2V45.js.map
@@ -1,12 +1,12 @@
1
+ import {
2
+ STORAGE
3
+ } from "./chunk-NYBCQZC7.js";
1
4
  import {
2
5
  LocalStorageBackend
3
6
  } from "./chunk-JWNHNUYL.js";
4
7
  import {
5
8
  MemoryStorageBackend
6
9
  } from "./chunk-3SZFUTXE.js";
7
- import {
8
- STORAGE
9
- } from "./chunk-NYBCQZC7.js";
10
10
  import {
11
11
  __decorateClass
12
12
  } from "./chunk-2E224ZSN.js";
@@ -37,4 +37,4 @@ StorageModule = __decorateClass([
37
37
  export {
38
38
  StorageModule
39
39
  };
40
- //# sourceMappingURL=chunk-4MVGAMUA.js.map
40
+ //# sourceMappingURL=chunk-BK5ICA2F.js.map
@@ -4,7 +4,7 @@ import {
4
4
  diffSnapshots,
5
5
  emitSafely,
6
6
  entitySnapshot
7
- } from "./chunk-KYR3B3OW.js";
7
+ } from "./chunk-DAHWN63L.js";
8
8
 
9
9
  // runtime/base-classes/base-service.ts
10
10
  var BaseService = class {
@@ -123,4 +123,4 @@ var BaseService = class {
123
123
  export {
124
124
  BaseService
125
125
  };
126
- //# sourceMappingURL=chunk-W72PRNJY.js.map
126
+ //# sourceMappingURL=chunk-BPYZCEHS.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  CubeAnalyticsBackend
3
3
  } from "./chunk-7B3RYX45.js";
4
- import {
5
- NoopAnalyticsBackend
6
- } from "./chunk-J37YWU7Y.js";
7
4
  import {
8
5
  ANALYTICS_QUERY,
9
6
  CUBE_API_SECRET,
10
7
  CUBE_API_URL
11
8
  } from "./chunk-6I7ULIN6.js";
9
+ import {
10
+ NoopAnalyticsBackend
11
+ } from "./chunk-J37YWU7Y.js";
12
12
  import {
13
13
  __decorateClass
14
14
  } from "./chunk-2E224ZSN.js";
@@ -50,4 +50,4 @@ AnalyticsModule = __decorateClass([
50
50
  export {
51
51
  AnalyticsModule
52
52
  };
53
- //# sourceMappingURL=chunk-J7JMVS2B.js.map
53
+ //# sourceMappingURL=chunk-CZQUOIDY.js.map
@@ -1,5 +1,7 @@
1
1
  // runtime/base-classes/lifecycle-events.ts
2
2
  import { randomUUID } from "crypto";
3
+ import { Logger } from "@nestjs/common";
4
+ var logger = new Logger("LifecycleEvents");
3
5
  var SYSTEM_FIELDS = /* @__PURE__ */ new Set([
4
6
  "id",
5
7
  "createdAt",
@@ -36,7 +38,17 @@ function buildLifecycleEvent(entityName, action, entityId, snapshot) {
36
38
  aggregateType: entityName,
37
39
  payload: snapshot ? { snapshot } : {},
38
40
  occurredAt: /* @__PURE__ */ new Date(),
39
- metadata: { category: "lifecycle" }
41
+ // AUDIT tier: lifecycle/change events are untyped audit-trail records —
42
+ // never bridge-routed, no pool/direction. The `domain_events`
43
+ // `domain_events_tier_routing_check` CHECK requires `tier='audit' ⇔
44
+ // (pool IS NULL AND direction IS NULL)`; the DEFAULT `tier='domain'`
45
+ // (applied by toInsertValues when absent) requires non-null routing
46
+ // fields, so an un-tiered lifecycle row violates the constraint and the
47
+ // INSERT is rejected — silently, pre-fix, by emitSafely's catch. Stamp
48
+ // `tier:'audit'` so these rows land (and surface under the
49
+ // observability viewer's audit-tier toggle). The bridge guard keeps
50
+ // audit-tier events out of job routing.
51
+ metadata: { category: "lifecycle", tier: "audit" }
40
52
  };
41
53
  }
42
54
  function buildChangeEvents(entityName, entityId, changes) {
@@ -51,7 +63,9 @@ function buildChangeEvents(entityName, entityId, changes) {
51
63
  newValue: c.newValue
52
64
  },
53
65
  occurredAt: /* @__PURE__ */ new Date(),
54
- metadata: { category: "change" }
66
+ // AUDIT tier see buildLifecycleEvent. Change events are audit-trail
67
+ // records; tier:'audit' satisfies the tier-routing CHECK constraint.
68
+ metadata: { category: "change", tier: "audit" }
55
69
  }));
56
70
  }
57
71
  async function emitSafely(eventBus, events) {
@@ -64,8 +78,15 @@ async function emitSafely(eventBus, events) {
64
78
  } else {
65
79
  await eventBus.publishMany(events);
66
80
  }
67
- } catch {
68
- console.warn(`[lifecycle-events] failed to emit ${events.length} event(s)`);
81
+ } catch (err) {
82
+ const message = err instanceof Error ? err.message : String(err);
83
+ const types = [...new Set(events.map((e) => e.type))].join(", ");
84
+ logger.warn(
85
+ `failed to emit ${events.length} event(s) [${types}]: ${message}`
86
+ );
87
+ if (err instanceof Error && err.stack) {
88
+ logger.debug(err.stack);
89
+ }
69
90
  }
70
91
  }
71
92
 
@@ -76,4 +97,4 @@ export {
76
97
  buildChangeEvents,
77
98
  emitSafely
78
99
  };
79
- //# sourceMappingURL=chunk-KYR3B3OW.js.map
100
+ //# sourceMappingURL=chunk-DAHWN63L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../runtime/base-classes/lifecycle-events.ts"],"sourcesContent":["/**\n * Lifecycle event emission for BaseService.\n *\n * Ported from pattern-stack/atoms/patterns/services/base.py — the Python\n * BaseService emits LIFECYCLE and CHANGE events on every CRUD operation.\n * This module provides the same capability for the TypeScript codegen stack.\n *\n * Design:\n * - Fire-and-forget: event emission never fails the CRUD operation.\n * - IEventBus is optional: if no EVENT_BUS is injected, emission is silently\n * skipped. This means base classes work in projects that haven't installed\n * the events subsystem.\n * - LIFECYCLE events carry an entity snapshot in payload.\n * - CHANGE events carry per-field old/new diffs.\n * - Controlled per-entity via `emitLifecycleEvents` flag (default: true).\n *\n * @deprecated EVT-7 — Lifecycle events are untyped and emit outside of the\n * CRUD transaction. New work should declare an `emits:` block on the entity\n * and publish typed domain events from use-cases via TYPED_EVENT_BUS inside\n * the same Drizzle transaction. See `docs/specs/EVT-7.md`. This helper is\n * retained for BaseService backward compatibility until all entities have\n * migrated to typed emits.\n */\n\nimport { randomUUID } from 'crypto';\nimport { Logger } from '@nestjs/common';\nimport type { IEventBus, DomainEvent } from '../subsystems/events/event-bus.protocol';\n\n/**\n * Module-level logger for fire-and-forget emission failures. Routed through the\n * Nest `Logger` (not bare `console`) so consumers configuring `app.useLogger`\n * or the factory `logger:` option can format and filter it like any other\n * framework log line.\n */\nconst logger = new Logger('LifecycleEvents');\n\n// ============================================================================\n// Event categories (subset of pattern-stack's EventCategory)\n// ============================================================================\n\nexport type EventCategory = 'lifecycle' | 'change';\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/** System fields excluded from entity snapshots and change diffs. */\nconst SYSTEM_FIELDS = new Set([\n\t'id',\n\t'createdAt',\n\t'updatedAt',\n\t'deletedAt',\n]);\n\n/**\n * Snapshot an entity's field values, excluding system fields.\n * Mirrors pattern-stack's `_get_entity_snapshot()`.\n */\nexport function entitySnapshot(entity: Record<string, unknown>): Record<string, unknown> {\n\tconst snap: Record<string, unknown> = {};\n\tfor (const [key, value] of Object.entries(entity)) {\n\t\tif (!SYSTEM_FIELDS.has(key)) {\n\t\t\tsnap[key] = value;\n\t\t}\n\t}\n\treturn snap;\n}\n\n/**\n * Diff two entity snapshots, returning per-field old/new pairs.\n * Only includes fields that actually changed.\n */\nexport function diffSnapshots(\n\tbefore: Record<string, unknown>,\n\tafter: Record<string, unknown>,\n): Array<{ field: string; oldValue: unknown; newValue: unknown }> {\n\tconst changes: Array<{ field: string; oldValue: unknown; newValue: unknown }> = [];\n\tconst allKeys = new Set([...Object.keys(before), ...Object.keys(after)]);\n\n\tfor (const key of allKeys) {\n\t\tif (SYSTEM_FIELDS.has(key)) continue;\n\t\tconst oldVal = before[key];\n\t\tconst newVal = after[key];\n\t\t// Simple equality — good enough for primitives and nulls.\n\t\t// For deep objects, JSON.stringify comparison.\n\t\tif (oldVal !== newVal && JSON.stringify(oldVal) !== JSON.stringify(newVal)) {\n\t\t\tchanges.push({ field: key, oldValue: oldVal, newValue: newVal });\n\t\t}\n\t}\n\n\treturn changes;\n}\n\n// ============================================================================\n// Event builders\n// ============================================================================\n\nexport function buildLifecycleEvent(\n\tentityName: string,\n\taction: 'created' | 'updated' | 'deleted',\n\tentityId: string,\n\tsnapshot?: Record<string, unknown>,\n): DomainEvent {\n\treturn {\n\t\tid: randomUUID(),\n\t\ttype: `${entityName}.${action}`,\n\t\taggregateId: entityId,\n\t\taggregateType: entityName,\n\t\tpayload: snapshot ? { snapshot } : {},\n\t\toccurredAt: new Date(),\n\t\t// AUDIT tier: lifecycle/change events are untyped audit-trail records —\n\t\t// never bridge-routed, no pool/direction. The `domain_events`\n\t\t// `domain_events_tier_routing_check` CHECK requires `tier='audit' ⇔\n\t\t// (pool IS NULL AND direction IS NULL)`; the DEFAULT `tier='domain'`\n\t\t// (applied by toInsertValues when absent) requires non-null routing\n\t\t// fields, so an un-tiered lifecycle row violates the constraint and the\n\t\t// INSERT is rejected — silently, pre-fix, by emitSafely's catch. Stamp\n\t\t// `tier:'audit'` so these rows land (and surface under the\n\t\t// observability viewer's audit-tier toggle). The bridge guard keeps\n\t\t// audit-tier events out of job routing.\n\t\tmetadata: { category: 'lifecycle' as EventCategory, tier: 'audit' },\n\t};\n}\n\nexport function buildChangeEvents(\n\tentityName: string,\n\tentityId: string,\n\tchanges: Array<{ field: string; oldValue: unknown; newValue: unknown }>,\n): DomainEvent[] {\n\treturn changes.map((c) => ({\n\t\tid: randomUUID(),\n\t\ttype: `${entityName}.field_changed`,\n\t\taggregateId: entityId,\n\t\taggregateType: entityName,\n\t\tpayload: {\n\t\t\tfieldName: c.field,\n\t\t\toldValue: c.oldValue,\n\t\t\tnewValue: c.newValue,\n\t\t},\n\t\toccurredAt: new Date(),\n\t\t// AUDIT tier — see buildLifecycleEvent. Change events are audit-trail\n\t\t// records; tier:'audit' satisfies the tier-routing CHECK constraint.\n\t\tmetadata: { category: 'change' as EventCategory, tier: 'audit' },\n\t}));\n}\n\n// ============================================================================\n// Emission helper (fire-and-forget)\n// ============================================================================\n\n/**\n * Emit events to the bus, swallowing errors.\n * Mirrors pattern-stack's `_emit_lifecycle_event()` try/except.\n */\nexport async function emitSafely(\n\teventBus: IEventBus | undefined,\n\tevents: DomainEvent[],\n): Promise<void> {\n\tif (!eventBus || events.length === 0) return;\n\ttry {\n\t\tif (events.length === 1) {\n\t\t\tconst only = events[0];\n\t\t\tif (!only) return;\n\t\t\tawait eventBus.publish(only);\n\t\t} else {\n\t\t\tawait eventBus.publishMany(events);\n\t\t}\n\t} catch (err) {\n\t\t// Never fail the CRUD operation — but surface the cause. The bare\n\t\t// `catch` that used to live here swallowed the error entirely, so a\n\t\t// failing bus printed `failed to emit N event(s)` with zero\n\t\t// diagnosability. Route through the Nest Logger (not bare console) at\n\t\t// warn level, including the distinct event types and the error message;\n\t\t// the stack follows at debug so it's available without noising the\n\t\t// default-threshold output.\n\t\tconst message = err instanceof Error ? err.message : String(err);\n\t\tconst types = [...new Set(events.map((e) => e.type))].join(', ');\n\t\tlogger.warn(\n\t\t\t`failed to emit ${events.length} event(s) [${types}]: ${message}`,\n\t\t);\n\t\tif (err instanceof Error && err.stack) {\n\t\t\tlogger.debug(err.stack);\n\t\t}\n\t}\n}\n"],"mappings":";AAwBA,SAAS,kBAAkB;AAC3B,SAAS,cAAc;AASvB,IAAM,SAAS,IAAI,OAAO,iBAAiB;AAa3C,IAAM,gBAAgB,oBAAI,IAAI;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAMM,SAAS,eAAe,QAA0D;AACxF,QAAM,OAAgC,CAAC;AACvC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AAClD,QAAI,CAAC,cAAc,IAAI,GAAG,GAAG;AAC5B,WAAK,GAAG,IAAI;AAAA,IACb;AAAA,EACD;AACA,SAAO;AACR;AAMO,SAAS,cACf,QACA,OACiE;AACjE,QAAM,UAA0E,CAAC;AACjF,QAAM,UAAU,oBAAI,IAAI,CAAC,GAAG,OAAO,KAAK,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC;AAEvE,aAAW,OAAO,SAAS;AAC1B,QAAI,cAAc,IAAI,GAAG,EAAG;AAC5B,UAAM,SAAS,OAAO,GAAG;AACzB,UAAM,SAAS,MAAM,GAAG;AAGxB,QAAI,WAAW,UAAU,KAAK,UAAU,MAAM,MAAM,KAAK,UAAU,MAAM,GAAG;AAC3E,cAAQ,KAAK,EAAE,OAAO,KAAK,UAAU,QAAQ,UAAU,OAAO,CAAC;AAAA,IAChE;AAAA,EACD;AAEA,SAAO;AACR;AAMO,SAAS,oBACf,YACA,QACA,UACA,UACc;AACd,SAAO;AAAA,IACN,IAAI,WAAW;AAAA,IACf,MAAM,GAAG,UAAU,IAAI,MAAM;AAAA,IAC7B,aAAa;AAAA,IACb,eAAe;AAAA,IACf,SAAS,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,IACpC,YAAY,oBAAI,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWrB,UAAU,EAAE,UAAU,aAA8B,MAAM,QAAQ;AAAA,EACnE;AACD;AAEO,SAAS,kBACf,YACA,UACA,SACgB;AAChB,SAAO,QAAQ,IAAI,CAAC,OAAO;AAAA,IAC1B,IAAI,WAAW;AAAA,IACf,MAAM,GAAG,UAAU;AAAA,IACnB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,SAAS;AAAA,MACR,WAAW,EAAE;AAAA,MACb,UAAU,EAAE;AAAA,MACZ,UAAU,EAAE;AAAA,IACb;AAAA,IACA,YAAY,oBAAI,KAAK;AAAA;AAAA;AAAA,IAGrB,UAAU,EAAE,UAAU,UAA2B,MAAM,QAAQ;AAAA,EAChE,EAAE;AACH;AAUA,eAAsB,WACrB,UACA,QACgB;AAChB,MAAI,CAAC,YAAY,OAAO,WAAW,EAAG;AACtC,MAAI;AACH,QAAI,OAAO,WAAW,GAAG;AACxB,YAAM,OAAO,OAAO,CAAC;AACrB,UAAI,CAAC,KAAM;AACX,YAAM,SAAS,QAAQ,IAAI;AAAA,IAC5B,OAAO;AACN,YAAM,SAAS,YAAY,MAAM;AAAA,IAClC;AAAA,EACD,SAAS,KAAK;AAQb,UAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,UAAM,QAAQ,CAAC,GAAG,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI;AAC/D,WAAO;AAAA,MACN,kBAAkB,OAAO,MAAM,cAAc,KAAK,MAAM,OAAO;AAAA,IAChE;AACA,QAAI,eAAe,SAAS,IAAI,OAAO;AACtC,aAAO,MAAM,IAAI,KAAK;AAAA,IACvB;AAAA,EACD;AACD;","names":[]}
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  BridgeMetricsReporter
3
3
  } from "./chunk-AQFQ4BYM.js";
4
+ import {
5
+ ObservabilityService
6
+ } from "./chunk-PLUJEQLU.js";
4
7
  import {
5
8
  OBSERVABILITY,
6
9
  OBSERVABILITY_MODULE_OPTIONS
7
10
  } from "./chunk-Y7RRSEOC.js";
8
- import {
9
- ObservabilityService
10
- } from "./chunk-PLUJEQLU.js";
11
11
  import {
12
12
  __decorateClass
13
13
  } from "./chunk-2E224ZSN.js";
@@ -45,4 +45,4 @@ ObservabilityModule = __decorateClass([
45
45
  export {
46
46
  ObservabilityModule
47
47
  };
48
- //# sourceMappingURL=chunk-37PILMIT.js.map
48
+ //# sourceMappingURL=chunk-EEGVDRZE.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BaseService
3
- } from "./chunk-W72PRNJY.js";
3
+ } from "./chunk-BPYZCEHS.js";
4
4
 
5
5
  // runtime/base-classes/metadata-entity-service.ts
6
6
  var MetadataEntityService = class extends BaseService {
@@ -33,4 +33,4 @@ var MetadataEntityService = class extends BaseService {
33
33
  export {
34
34
  MetadataEntityService
35
35
  };
36
- //# sourceMappingURL=chunk-RFH7N6EP.js.map
36
+ //# sourceMappingURL=chunk-FCPTHS42.js.map
@@ -0,0 +1,54 @@
1
+ // runtime/shared/logging/compact-console-logger.ts
2
+ import { ConsoleLogger } from "@nestjs/common";
3
+ var LEVELS = ["verbose", "debug", "log", "warn", "error", "fatal"];
4
+ var DEFAULT_THRESHOLD = "log";
5
+ var TIME = new Intl.DateTimeFormat("en-GB", {
6
+ hour: "2-digit",
7
+ minute: "2-digit",
8
+ second: "2-digit",
9
+ hour12: false
10
+ });
11
+ function parseLogLevels(threshold = process.env.LOG_LEVEL) {
12
+ const idx = LEVELS.indexOf(
13
+ (threshold ?? DEFAULT_THRESHOLD).toLowerCase()
14
+ );
15
+ if (idx === -1) {
16
+ console.warn(
17
+ `[logging] unknown LOG_LEVEL '${threshold}' \u2014 defaulting to '${DEFAULT_THRESHOLD}'`
18
+ );
19
+ return LEVELS.slice(LEVELS.indexOf(DEFAULT_THRESHOLD));
20
+ }
21
+ return LEVELS.slice(idx);
22
+ }
23
+ var CompactConsoleLogger = class extends ConsoleLogger {
24
+ /** Drop `[Nest] <pid> - ` — a supervisor pane header already identifies the process. */
25
+ formatPid(_pid) {
26
+ return "";
27
+ }
28
+ /** `12:48:42`, not `06/07/2026, 12:48:42 PM`. */
29
+ getTimestamp() {
30
+ return TIME.format(Date.now());
31
+ }
32
+ formatMessage(logLevel, message, _pidMessage, _formattedLogLevel, contextMessage, timestampDiff) {
33
+ const output = this.stringifyMessage(message, logLevel);
34
+ const level = this.colorize(
35
+ logLevel.toUpperCase().padStart(5, " "),
36
+ logLevel
37
+ );
38
+ return `${this.getTimestamp()} ${level} ${contextMessage}${output}${timestampDiff}
39
+ `;
40
+ }
41
+ };
42
+ function createAppLogger(threshold) {
43
+ return new CompactConsoleLogger("", {
44
+ logLevels: parseLogLevels(threshold ?? process.env.LOG_LEVEL),
45
+ timestamp: true
46
+ });
47
+ }
48
+
49
+ export {
50
+ parseLogLevels,
51
+ CompactConsoleLogger,
52
+ createAppLogger
53
+ };
54
+ //# sourceMappingURL=chunk-H6QRQUAF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../runtime/shared/logging/compact-console-logger.ts"],"sourcesContent":["/**\n * Compact console logger + `LOG_LEVEL` threshold.\n *\n * Nest's default `ConsoleLogger` preamble —\n * `[Nest] <pid> - <full locale date> LEVEL [Context] <message>`\n * — is ~55 chars before the message. In a split-pane dev TUI (process-compose,\n * tmux) every line wraps 2–3×, drowning the actual content. And the generated\n * entrypoints pass no `logger:` option, so consumers have no log-level knob:\n * every subsystem `debug` line (e.g. EventScheduler's per-slot `materialised …`)\n * always prints.\n *\n * This module is the proven swe-brain (second-dogfood) consumer pattern lifted\n * into the runtime so consumers stop rebuilding it by hand:\n *\n * - `CompactConsoleLogger` — drops the `[Nest] <pid> - ` prefix (a supervisor\n * pane header already names the process) and shortens the timestamp to\n * `HH:mm:ss`.\n * - `parseLogLevels` / the `LOG_LEVEL` env convention — a single severity\n * threshold enables that level and everything above it.\n * - `createAppLogger` — the factory the entrypoints hand to `NestFactory`.\n */\nimport { ConsoleLogger, type LogLevel } from '@nestjs/common';\n\n/** Severity-ordered (lowest → highest); a threshold enables its suffix. */\nconst LEVELS: LogLevel[] = ['verbose', 'debug', 'log', 'warn', 'error', 'fatal'];\nconst DEFAULT_THRESHOLD: LogLevel = 'log';\n\nconst TIME = new Intl.DateTimeFormat('en-GB', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n});\n\n/**\n * Resolve a `LOG_LEVEL` threshold into the enabled-levels array Nest's\n * `logLevels` option expects.\n *\n * `LOG_LEVEL=debug` → `['debug','log','warn','error','fatal']`. Unknown input\n * warns and falls back to the default (`'log'` and above).\n */\nexport function parseLogLevels(threshold = process.env.LOG_LEVEL): LogLevel[] {\n const idx = LEVELS.indexOf(\n (threshold ?? DEFAULT_THRESHOLD).toLowerCase() as LogLevel,\n );\n if (idx === -1) {\n console.warn(\n `[logging] unknown LOG_LEVEL '${threshold}' — defaulting to '${DEFAULT_THRESHOLD}'`,\n );\n return LEVELS.slice(LEVELS.indexOf(DEFAULT_THRESHOLD));\n }\n return LEVELS.slice(idx);\n}\n\n/**\n * A `ConsoleLogger` with a compact one-line format tuned for split-pane TUIs.\n */\nexport class CompactConsoleLogger extends ConsoleLogger {\n /** Drop `[Nest] <pid> - ` — a supervisor pane header already identifies the process. */\n protected override formatPid(_pid: number): string {\n return '';\n }\n\n /** `12:48:42`, not `06/07/2026, 12:48:42 PM`. */\n protected override getTimestamp(): string {\n return TIME.format(Date.now());\n }\n\n protected override formatMessage(\n logLevel: LogLevel,\n message: unknown,\n _pidMessage: string,\n _formattedLogLevel: string,\n contextMessage: string,\n timestampDiff: string,\n ): string {\n const output = this.stringifyMessage(message, logLevel);\n // padStart(5) (vs Nest's 7) aligns LOG/WARN/DEBUG/ERROR; `verbose` may jitter.\n const level = this.colorize(\n logLevel.toUpperCase().padStart(5, ' '),\n logLevel,\n );\n return `${this.getTimestamp()} ${level} ${contextMessage}${output}${timestampDiff}\\n`;\n }\n}\n\n/**\n * Build the app-wide logger that entrypoints hand to `NestFactory`.\n *\n * @param threshold explicit `LOG_LEVEL` override. CLI tools that must stay quiet\n * regardless of the ambient env pass e.g. `'warn'`. When omitted, the\n * `LOG_LEVEL` env var (then the `'log'` default) wins.\n *\n * @example\n * const app = await NestFactory.create(AppModule, { logger: createAppLogger() });\n */\nexport function createAppLogger(threshold?: LogLevel): CompactConsoleLogger {\n return new CompactConsoleLogger('', {\n logLevels: parseLogLevels(threshold ?? process.env.LOG_LEVEL),\n timestamp: true,\n });\n}\n"],"mappings":";AAqBA,SAAS,qBAAoC;AAG7C,IAAM,SAAqB,CAAC,WAAW,SAAS,OAAO,QAAQ,SAAS,OAAO;AAC/E,IAAM,oBAA8B;AAEpC,IAAM,OAAO,IAAI,KAAK,eAAe,SAAS;AAAA,EAC5C,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AACV,CAAC;AASM,SAAS,eAAe,YAAY,QAAQ,IAAI,WAAuB;AAC5E,QAAM,MAAM,OAAO;AAAA,KAChB,aAAa,mBAAmB,YAAY;AAAA,EAC/C;AACA,MAAI,QAAQ,IAAI;AACd,YAAQ;AAAA,MACN,gCAAgC,SAAS,2BAAsB,iBAAiB;AAAA,IAClF;AACA,WAAO,OAAO,MAAM,OAAO,QAAQ,iBAAiB,CAAC;AAAA,EACvD;AACA,SAAO,OAAO,MAAM,GAAG;AACzB;AAKO,IAAM,uBAAN,cAAmC,cAAc;AAAA;AAAA,EAEnC,UAAU,MAAsB;AACjD,WAAO;AAAA,EACT;AAAA;AAAA,EAGmB,eAAuB;AACxC,WAAO,KAAK,OAAO,KAAK,IAAI,CAAC;AAAA,EAC/B;AAAA,EAEmB,cACjB,UACA,SACA,aACA,oBACA,gBACA,eACQ;AACR,UAAM,SAAS,KAAK,iBAAiB,SAAS,QAAQ;AAEtD,UAAM,QAAQ,KAAK;AAAA,MACjB,SAAS,YAAY,EAAE,SAAS,GAAG,GAAG;AAAA,MACtC;AAAA,IACF;AACA,WAAO,GAAG,KAAK,aAAa,CAAC,IAAI,KAAK,IAAI,cAAc,GAAG,MAAM,GAAG,aAAa;AAAA;AAAA,EACnF;AACF;AAYO,SAAS,gBAAgB,WAA4C;AAC1E,SAAO,IAAI,qBAAqB,IAAI;AAAA,IAClC,WAAW,eAAe,aAAa,QAAQ,IAAI,SAAS;AAAA,IAC5D,WAAW;AAAA,EACb,CAAC;AACH;","names":[]}
@@ -3,7 +3,11 @@ import {
3
3
  } from "./chunk-7B7MMDOJ.js";
4
4
  import {
5
5
  JobsDomainModule
6
- } from "./chunk-CKLM57IE.js";
6
+ } from "./chunk-AC6T2JUX.js";
7
+ import {
8
+ BootValidationError,
9
+ ReservedPoolViolationError
10
+ } from "./chunk-T4BIIU5E.js";
7
11
  import {
8
12
  BULLMQ_CONNECTION,
9
13
  BULLMQ_RESOLVED_CONFIG,
@@ -14,10 +18,6 @@ import {
14
18
  allPoolNames,
15
19
  loadPoolConfig
16
20
  } from "./chunk-RHVN6NA7.js";
17
- import {
18
- BootValidationError,
19
- ReservedPoolViolationError
20
- } from "./chunk-T4BIIU5E.js";
21
21
  import {
22
22
  HandlerRegistry
23
23
  } from "./chunk-7P5ODGLA.js";
@@ -295,4 +295,4 @@ export {
295
295
  JobWorkerOrchestrator,
296
296
  JobWorkerModule
297
297
  };
298
- //# sourceMappingURL=chunk-ENAR3F5S.js.map
298
+ //# sourceMappingURL=chunk-HEOISQ6W.js.map
@@ -1,12 +1,12 @@
1
+ import {
2
+ MemoryJobStore
3
+ } from "./chunk-SNQ3TOWP.js";
1
4
  import {
2
5
  clampLimit,
3
6
  decodeKeysetCursor,
4
7
  encodeKeysetCursor,
5
8
  toJobRunSummary
6
9
  } from "./chunk-L3LZWWSX.js";
7
- import {
8
- MemoryJobStore
9
- } from "./chunk-SNQ3TOWP.js";
10
10
  import {
11
11
  MissingTenantIdError
12
12
  } from "./chunk-T4BIIU5E.js";
@@ -209,4 +209,4 @@ function compareBy(a, b, order) {
209
209
  export {
210
210
  MemoryJobRunService
211
211
  };
212
- //# sourceMappingURL=chunk-CDLWYZVQ.js.map
212
+ //# sourceMappingURL=chunk-IN3EWFB4.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-EDKJU5BO.js";
10
10
  import {
11
11
  DrizzleBridgeDeliveryRepo
12
- } from "./chunk-YULGWXCY.js";
12
+ } from "./chunk-MVKW2BCR.js";
13
13
  import {
14
14
  MemoryBridgeDeliveryRepo
15
15
  } from "./chunk-4DOJBQTP.js";
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-NXXDZ6ZF.js";
25
25
  import {
26
26
  JOB_WORKER_MODULE_OPTIONS
27
- } from "./chunk-ENAR3F5S.js";
27
+ } from "./chunk-HEOISQ6W.js";
28
28
  import {
29
29
  BRIDGE_DELIVERY_REPO,
30
30
  BRIDGE_MODULE_OPTIONS,
@@ -119,4 +119,4 @@ BridgeModule = __decorateClass([
119
119
  export {
120
120
  BridgeModule
121
121
  };
122
- //# sourceMappingURL=chunk-WZOPWQN2.js.map
122
+ //# sourceMappingURL=chunk-IXAE6BN6.js.map
@@ -1,9 +1,9 @@
1
- import {
2
- bridgeDelivery
3
- } from "./chunk-BORNCTH3.js";
4
1
  import {
5
2
  assertTenantId
6
3
  } from "./chunk-6DWFJNIK.js";
4
+ import {
5
+ bridgeDelivery
6
+ } from "./chunk-BORNCTH3.js";
7
7
  import {
8
8
  BRIDGE_MULTI_TENANT
9
9
  } from "./chunk-4LH67P4U.js";
@@ -119,4 +119,4 @@ DrizzleBridgeDeliveryRepo = __decorateClass([
119
119
  export {
120
120
  DrizzleBridgeDeliveryRepo
121
121
  };
122
- //# sourceMappingURL=chunk-YULGWXCY.js.map
122
+ //# sourceMappingURL=chunk-MVKW2BCR.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DrizzleIntegrationRunRecorder
3
- } from "./chunk-HN5HT5WL.js";
3
+ } from "./chunk-VI2VNA6Y.js";
4
4
  import {
5
5
  MemoryRunRecorder
6
6
  } from "./chunk-EO2QPOKH.js";
@@ -84,4 +84,4 @@ IntegrationModule = __decorateClass([
84
84
  export {
85
85
  IntegrationModule
86
86
  };
87
- //# sourceMappingURL=chunk-KFXXOFDC.js.map
87
+ //# sourceMappingURL=chunk-N43D57AP.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BaseService
3
- } from "./chunk-W72PRNJY.js";
3
+ } from "./chunk-BPYZCEHS.js";
4
4
 
5
5
  // runtime/base-classes/activity-entity-service.ts
6
6
  var ActivityEntityService = class extends BaseService {
@@ -33,4 +33,4 @@ var ActivityEntityService = class extends BaseService {
33
33
  export {
34
34
  ActivityEntityService
35
35
  };
36
- //# sourceMappingURL=chunk-JYBFPNBJ.js.map
36
+ //# sourceMappingURL=chunk-SJGEBMJT.js.map
@@ -1,11 +1,11 @@
1
+ import {
2
+ FieldDiffSchema
3
+ } from "./chunk-SQDOBLBP.js";
1
4
  import {
2
5
  integrationRunItems,
3
6
  integrationRuns,
4
7
  integrationSubscriptions
5
8
  } from "./chunk-HNWZFNKP.js";
6
- import {
7
- FieldDiffSchema
8
- } from "./chunk-SQDOBLBP.js";
9
9
  import {
10
10
  INTEGRATION_MULTI_TENANT
11
11
  } from "./chunk-S5G3HO7N.js";
@@ -127,4 +127,4 @@ DrizzleIntegrationRunRecorder = __decorateClass([
127
127
  export {
128
128
  DrizzleIntegrationRunRecorder
129
129
  };
130
- //# sourceMappingURL=chunk-HN5HT5WL.js.map
130
+ //# sourceMappingURL=chunk-VI2VNA6Y.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  ActivityEntityService
3
- } from "../../chunk-JYBFPNBJ.js";
4
- import "../../chunk-W72PRNJY.js";
5
- import "../../chunk-KYR3B3OW.js";
3
+ } from "../../chunk-SJGEBMJT.js";
4
+ import "../../chunk-BPYZCEHS.js";
5
+ import "../../chunk-DAHWN63L.js";
6
6
  import "../../chunk-2E224ZSN.js";
7
7
  export {
8
8
  ActivityEntityService
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  BaseService
3
- } from "../../chunk-W72PRNJY.js";
4
- import "../../chunk-KYR3B3OW.js";
3
+ } from "../../chunk-BPYZCEHS.js";
4
+ import "../../chunk-DAHWN63L.js";
5
5
  import "../../chunk-2E224ZSN.js";
6
6
  export {
7
7
  BaseService
@@ -8,19 +8,19 @@ import {
8
8
  } from "../../chunk-NN7XZEGF.js";
9
9
  import {
10
10
  KnowledgeEntityService
11
- } from "../../chunk-AS3NAZB6.js";
11
+ } from "../../chunk-B7SC2V45.js";
12
12
  import {
13
13
  MetadataEntityRepository
14
14
  } from "../../chunk-7KOW6PU6.js";
15
15
  import {
16
16
  MetadataEntityService
17
- } from "../../chunk-RFH7N6EP.js";
17
+ } from "../../chunk-FCPTHS42.js";
18
18
  import {
19
19
  WithAnalytics
20
20
  } from "../../chunk-IBGER4YK.js";
21
21
  import {
22
22
  ActivityEntityService
23
- } from "../../chunk-JYBFPNBJ.js";
23
+ } from "../../chunk-SJGEBMJT.js";
24
24
  import {
25
25
  BaseFindByIdUseCase,
26
26
  BaseListUseCase
@@ -30,17 +30,17 @@ import {
30
30
  } from "../../chunk-OTDN3OUQ.js";
31
31
  import {
32
32
  IntegratedEntityService
33
- } from "../../chunk-2VHZ7EKC.js";
33
+ } from "../../chunk-5AAA4LTE.js";
34
34
  import {
35
35
  BaseService
36
- } from "../../chunk-W72PRNJY.js";
36
+ } from "../../chunk-BPYZCEHS.js";
37
37
  import {
38
38
  buildChangeEvents,
39
39
  buildLifecycleEvent,
40
40
  diffSnapshots,
41
41
  emitSafely,
42
42
  entitySnapshot
43
- } from "../../chunk-KYR3B3OW.js";
43
+ } from "../../chunk-DAHWN63L.js";
44
44
  import {
45
45
  ActivityEntityRepository
46
46
  } from "../../chunk-MKWQKKK7.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  IntegratedEntityService
3
- } from "../../chunk-2VHZ7EKC.js";
4
- import "../../chunk-W72PRNJY.js";
5
- import "../../chunk-KYR3B3OW.js";
3
+ } from "../../chunk-5AAA4LTE.js";
4
+ import "../../chunk-BPYZCEHS.js";
5
+ import "../../chunk-DAHWN63L.js";
6
6
  import "../../chunk-2E224ZSN.js";
7
7
  export {
8
8
  IntegratedEntityService
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  KnowledgeEntityService
3
- } from "../../chunk-AS3NAZB6.js";
4
- import "../../chunk-W72PRNJY.js";
5
- import "../../chunk-KYR3B3OW.js";
3
+ } from "../../chunk-B7SC2V45.js";
4
+ import "../../chunk-BPYZCEHS.js";
5
+ import "../../chunk-DAHWN63L.js";
6
6
  import "../../chunk-2E224ZSN.js";
7
7
  export {
8
8
  KnowledgeEntityService
@@ -4,7 +4,7 @@ import {
4
4
  diffSnapshots,
5
5
  emitSafely,
6
6
  entitySnapshot
7
- } from "../../chunk-KYR3B3OW.js";
7
+ } from "../../chunk-DAHWN63L.js";
8
8
  import "../../chunk-2E224ZSN.js";
9
9
  export {
10
10
  buildChangeEvents,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  MetadataEntityService
3
- } from "../../chunk-RFH7N6EP.js";
4
- import "../../chunk-W72PRNJY.js";
5
- import "../../chunk-KYR3B3OW.js";
3
+ } from "../../chunk-FCPTHS42.js";
4
+ import "../../chunk-BPYZCEHS.js";
5
+ import "../../chunk-DAHWN63L.js";
6
6
  import "../../chunk-2E224ZSN.js";
7
7
  export {
8
8
  MetadataEntityService