@burdenoff/be-sdk 2026.513.3 → 2026.513.5

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 (48) hide show
  1. package/dist/EventQueueFactory-FNE7H66N.js +8 -0
  2. package/dist/{EventQueueFactory-TWDDFMQY.js.map → EventQueueFactory-FNE7H66N.js.map} +1 -1
  3. package/dist/{chunk-QKJR4L7B.js → chunk-COSUYUCB.js} +3 -149
  4. package/dist/chunk-COSUYUCB.js.map +1 -0
  5. package/dist/{chunk-Y4TPKRZB.js → chunk-DR5AQJT6.js} +3 -3
  6. package/dist/{chunk-Y4TPKRZB.js.map → chunk-DR5AQJT6.js.map} +1 -1
  7. package/dist/{chunk-EMSON3UD.js → chunk-KSO6QQVD.js} +10 -952
  8. package/dist/chunk-KSO6QQVD.js.map +1 -0
  9. package/dist/{chunk-L72RC2EI.js → chunk-LRL6GKXI.js} +3 -3
  10. package/dist/{chunk-L72RC2EI.js.map → chunk-LRL6GKXI.js.map} +1 -1
  11. package/dist/{chunk-MI72VKNQ.js → chunk-NUZZRJNN.js} +5 -171
  12. package/dist/chunk-NUZZRJNN.js.map +1 -0
  13. package/dist/{chunk-Q6HJARHV.js → chunk-S52PJKSW.js} +3 -3
  14. package/dist/{chunk-Q6HJARHV.js.map → chunk-S52PJKSW.js.map} +1 -1
  15. package/dist/{chunk-OMKFTTAN.js → chunk-SXIL2AJF.js} +5 -5
  16. package/dist/{chunk-OMKFTTAN.js.map → chunk-SXIL2AJF.js.map} +1 -1
  17. package/dist/{chunk-UVYDP6P6.js → chunk-VOFKF27Q.js} +2 -3
  18. package/dist/chunk-VOFKF27Q.js.map +1 -0
  19. package/dist/{chunk-3JBKPVWY.js → chunk-WPGSKLAG.js} +5 -24
  20. package/dist/chunk-WPGSKLAG.js.map +1 -0
  21. package/dist/config-7U7J3QXQ.js +4 -0
  22. package/dist/{config-QVYSAUMT.js.map → config-7U7J3QXQ.js.map} +1 -1
  23. package/dist/esm-K6H7EIWK.js +1450 -0
  24. package/dist/esm-K6H7EIWK.js.map +1 -0
  25. package/dist/event-queue/index.d.ts +1 -1
  26. package/dist/event-queue/index.js +5 -5
  27. package/dist/graph/index.js +6 -6
  28. package/dist/graphql/index.d.ts +1 -1
  29. package/dist/graphql/index.js +2 -2
  30. package/dist/{index-eUvoVdr7.d.ts → index-BF2uh_h9.d.ts} +2 -158
  31. package/dist/{index-CDFQRL-h.d.ts → index-HkD7NBED.d.ts} +2 -24
  32. package/dist/index.d.ts +3 -3
  33. package/dist/index.js +12 -12
  34. package/dist/init/index.js +4 -4
  35. package/dist/prisma/index.js +5 -5
  36. package/dist/server/index.js +20 -0
  37. package/dist/server/index.js.map +1 -1
  38. package/dist/telemetry/index.js.map +1 -1
  39. package/package.json +3 -14
  40. package/dist/EventQueueFactory-TWDDFMQY.js +0 -8
  41. package/dist/chunk-3JBKPVWY.js.map +0 -1
  42. package/dist/chunk-EMSON3UD.js.map +0 -1
  43. package/dist/chunk-MI72VKNQ.js.map +0 -1
  44. package/dist/chunk-QKJR4L7B.js.map +0 -1
  45. package/dist/chunk-UVYDP6P6.js.map +0 -1
  46. package/dist/config-QVYSAUMT.js +0 -4
  47. package/dist/esm-M2M7HGV4.js +0 -1356
  48. package/dist/esm-M2M7HGV4.js.map +0 -1
@@ -0,0 +1,8 @@
1
+ export { EventQueueFactory } from './chunk-KSO6QQVD.js';
2
+ import './chunk-VOFKF27Q.js';
3
+ import './chunk-COSUYUCB.js';
4
+ import './chunk-NGMEI42S.js';
5
+ import './chunk-CBZNP6RF.js';
6
+ import './chunk-XE4OXN2W.js';
7
+ //# sourceMappingURL=EventQueueFactory-FNE7H66N.js.map
8
+ //# sourceMappingURL=EventQueueFactory-FNE7H66N.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"EventQueueFactory-TWDDFMQY.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"EventQueueFactory-FNE7H66N.js"}
@@ -2,152 +2,6 @@ import { logger } from './chunk-CBZNP6RF.js';
2
2
  import { __name } from './chunk-XE4OXN2W.js';
3
3
  import { connect, credsAuthenticator } from 'nats';
4
4
 
5
- // src/event-queue/implementations/redis-streams/RedisStreamsConnection.ts
6
- var ioredisModulePromise = null;
7
- async function loadIoRedis() {
8
- if (!ioredisModulePromise) {
9
- ioredisModulePromise = (async () => {
10
- try {
11
- const mod = await import('ioredis');
12
- return mod.default ?? mod.Redis ?? null;
13
- } catch (err) {
14
- logger.error("[RedisStreamsConnection] ioredis not installed", {
15
- error: err instanceof Error ? err.message : String(err)
16
- });
17
- return null;
18
- }
19
- })();
20
- }
21
- const ctor = await ioredisModulePromise;
22
- if (!ctor) {
23
- throw new Error("[RedisStreamsConnection] ioredis is required for the redis-streams event-queue backend. Install it with: bun add ioredis (or npm i ioredis)");
24
- }
25
- return ctor;
26
- }
27
- __name(loadIoRedis, "loadIoRedis");
28
- function normaliseUrl(rawUrl) {
29
- let url = rawUrl;
30
- let tls = false;
31
- if (/^valkeys:\/\//.test(url)) {
32
- tls = true;
33
- url = url.replace(/^valkeys:\/\//, "rediss://");
34
- } else if (/^valkey:\/\//.test(url)) {
35
- url = url.replace(/^valkey:\/\//, "redis://");
36
- } else if (/^rediss:\/\//.test(url)) {
37
- tls = true;
38
- }
39
- let host = "localhost";
40
- try {
41
- const parsed = new URL(url);
42
- host = parsed.hostname || host;
43
- } catch {
44
- }
45
- return {
46
- url,
47
- tls,
48
- host
49
- };
50
- }
51
- __name(normaliseUrl, "normaliseUrl");
52
- var RedisStreamsConnection = class {
53
- static {
54
- __name(this, "RedisStreamsConnection");
55
- }
56
- config;
57
- client = null;
58
- connecting = null;
59
- tls;
60
- host;
61
- normalisedUrl;
62
- constructor(config) {
63
- this.config = config;
64
- const { url, tls, host } = normaliseUrl(config.url);
65
- this.normalisedUrl = url;
66
- this.tls = tls || process.env["REDIS_TLS"] === "true";
67
- this.host = host;
68
- }
69
- /** True once `connect()` has resolved and ioredis is in `ready` state. */
70
- isConnected() {
71
- return this.client !== null && this.client.status === "ready";
72
- }
73
- /** Connect lazily; subsequent calls await the in-flight promise. */
74
- async connect() {
75
- if (this.isConnected()) return;
76
- if (this.connecting) {
77
- await this.connecting;
78
- return;
79
- }
80
- this.connecting = this.doConnect().finally(() => {
81
- this.connecting = null;
82
- });
83
- await this.connecting;
84
- }
85
- async doConnect() {
86
- const Redis = await loadIoRedis();
87
- const opts = {
88
- lazyConnect: true,
89
- maxRetriesPerRequest: null,
90
- enableReadyCheck: true,
91
- connectTimeout: this.config.connectionTimeout ?? 15e3,
92
- reconnectOnError: /* @__PURE__ */ __name(() => true, "reconnectOnError"),
93
- retryStrategy: /* @__PURE__ */ __name((times) => Math.min(times * 200, 2e3), "retryStrategy")
94
- };
95
- if (this.config.password) opts["password"] = this.config.password;
96
- if (this.config.user) opts["username"] = this.config.user;
97
- if (this.tls) {
98
- opts["tls"] = {
99
- servername: this.host
100
- };
101
- }
102
- this.client = new Redis(this.normalisedUrl, opts);
103
- this.client.on("error", (...args) => {
104
- const err = args[0];
105
- logger.warn("[RedisStreamsConnection] redis error", {
106
- error: err?.message ?? "unknown"
107
- });
108
- });
109
- this.client.on("reconnecting", () => {
110
- logger.info("[RedisStreamsConnection] reconnecting");
111
- });
112
- await this.client.connect();
113
- logger.info("[RedisStreamsConnection] connected", {
114
- url: this.normalisedUrl.replace(/:[^:@/]*@/, ":***@"),
115
- tls: this.tls
116
- });
117
- }
118
- async disconnect() {
119
- if (!this.client) return;
120
- try {
121
- await this.client.quit();
122
- } catch {
123
- this.client.disconnect();
124
- }
125
- this.client = null;
126
- }
127
- /** The shared command client. Throws if not connected. */
128
- getClient() {
129
- if (!this.client) {
130
- throw new Error("[RedisStreamsConnection] not connected \u2014 call connect() first");
131
- }
132
- return this.client;
133
- }
134
- /** Make a dedicated client (e.g. for a blocking XREADGROUP loop). */
135
- async makeBlockingClient() {
136
- await this.connect();
137
- const dup = this.getClient().duplicate();
138
- if ("connect" in dup && typeof dup.connect === "function") {
139
- try {
140
- await dup.connect();
141
- } catch {
142
- }
143
- }
144
- return dup;
145
- }
146
- async ping() {
147
- await this.connect();
148
- return this.getClient().ping();
149
- }
150
- };
151
5
  var NatsConnectionManager = class {
152
6
  static {
153
7
  __name(this, "NatsConnectionManager");
@@ -319,6 +173,6 @@ function normalizeNatsCreds(creds) {
319
173
  }
320
174
  __name(normalizeNatsCreds, "normalizeNatsCreds");
321
175
 
322
- export { NatsConnectionManager, RedisStreamsConnection };
323
- //# sourceMappingURL=chunk-QKJR4L7B.js.map
324
- //# sourceMappingURL=chunk-QKJR4L7B.js.map
176
+ export { NatsConnectionManager };
177
+ //# sourceMappingURL=chunk-COSUYUCB.js.map
178
+ //# sourceMappingURL=chunk-COSUYUCB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/event-queue/implementations/nats/NatsConnection.ts"],"names":["NatsConnectionManager","nc","js","jsm","connected","connectionPromise","config","connect","logger","debug","_doConnect","connectionOptions","createNatsConnectionOptions","jetstream","jetstreamManager","info","url","name","setupEventHandlers","error","Error","message","status","type","catch","disconnect","drain","close","isConnected","isClosed","getJetStream","getJetStreamManager","getNatsConnection","servers","user","pass","password","token","maxReconnectAttempts","reconnectTimeWait","creds","resolveNatsCreds","authenticator","credsAuthenticator","TextEncoder","encode","normalizeNatsCreds","credsFile","undefined","fs","readFile","startsWith","Buffer","from","slice","length","toString","includes","replaceAll"],"mappings":"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","file":"chunk-COSUYUCB.js","sourcesContent":["/**\n * NATS JetStream Connection Manager\n * Handles connection lifecycle and provides access to NATS clients\n */\nimport { logger } from '../../../logger/index.js';\nimport {\n type ConnectionOptions,\n type JetStreamClient,\n type JetStreamManager,\n type NatsConnection,\n connect,\n credsAuthenticator,\n} from 'nats';\n\nimport type { BaseQueueConfig } from '../../types/config.js';\n\n/**\n * Internal connection manager for NATS JetStream\n * Shared between NatsEventPublisher and NatsEventConsumer\n */\nexport class NatsConnectionManager {\n private nc: NatsConnection | null = null;\n private js: JetStreamClient | null = null;\n private jsm: JetStreamManager | null = null;\n private connected: boolean = false;\n private connectionPromise: Promise<void> | null = null;\n\n constructor(private config: BaseQueueConfig) {}\n\n /**\n * Connect to NATS server\n */\n async connect(): Promise<void> {\n // Prevent multiple concurrent connections\n if (this.connectionPromise) {\n return this.connectionPromise;\n }\n\n if (this.connected) {\n logger.debug('[NatsConnection] Already connected');\n return;\n }\n\n this.connectionPromise = this._doConnect();\n try {\n await this.connectionPromise;\n } finally {\n this.connectionPromise = null;\n }\n }\n\n /**\n * Internal connection logic\n */\n private async _doConnect(): Promise<void> {\n try {\n const connectionOptions = await createNatsConnectionOptions(this.config);\n\n this.nc = await connect(connectionOptions);\n this.js = this.nc.jetstream();\n this.jsm = await this.nc.jetstreamManager();\n this.connected = true;\n\n logger.info('[NatsConnection] Connected to NATS', {\n url: this.config.url,\n name: this.config.name,\n });\n\n // Handle connection events\n this.setupEventHandlers();\n } catch (error) {\n logger.error('[NatsConnection] Failed to connect to NATS', {\n error: error instanceof Error ? error.message : 'Unknown error',\n url: this.config.url,\n });\n throw error;\n }\n }\n\n /**\n * Setup connection event handlers\n */\n private setupEventHandlers(): void {\n if (!this.nc) return;\n\n (async (): Promise<void> => {\n if (!this.nc) return;\n\n for await (const status of this.nc.status()) {\n if (status.type === 'disconnect') {\n this.connected = false;\n } else if (status.type === 'reconnect') {\n this.connected = true;\n }\n }\n })().catch((error) => {\n logger.error('[NatsConnection] Error handling connection events', {\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n });\n }\n\n /**\n * Disconnect from NATS\n */\n async disconnect(): Promise<void> {\n if (!this.connected || !this.nc) {\n return;\n }\n\n try {\n await this.nc.drain();\n await this.nc.close();\n this.connected = false;\n this.nc = null;\n this.js = null;\n this.jsm = null;\n\n logger.info('[NatsConnection] Disconnected from NATS');\n } catch (error) {\n logger.error('[NatsConnection] Error disconnecting from NATS', {\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n }\n }\n\n /**\n * Check if connected\n */\n isConnected(): boolean {\n return this.connected && this.nc !== null && !this.nc.isClosed();\n }\n\n /**\n * Get JetStream client\n */\n getJetStream(): JetStreamClient {\n if (!this.js) {\n throw new Error('NATS not connected - call connect() first');\n }\n return this.js;\n }\n\n /**\n * Get JetStream Manager\n */\n getJetStreamManager(): JetStreamManager {\n if (!this.jsm) {\n throw new Error('NATS not connected - call connect() first');\n }\n return this.jsm;\n }\n\n /**\n * Get NATS connection\n */\n getNatsConnection(): NatsConnection {\n if (!this.nc) {\n throw new Error('NATS not connected - call connect() first');\n }\n return this.nc;\n }\n}\n\nexport async function createNatsConnectionOptions(config: BaseQueueConfig): Promise<ConnectionOptions> {\n const connectionOptions: ConnectionOptions = {\n servers: config.url,\n name: config.name,\n user: config.user,\n pass: config.password,\n token: config.token,\n maxReconnectAttempts: config.maxReconnectAttempts ?? -1,\n reconnectTimeWait: config.reconnectTimeWait ?? 2000,\n };\n\n const creds = await resolveNatsCreds(config);\n if (creds) {\n connectionOptions.authenticator = credsAuthenticator(new TextEncoder().encode(creds));\n delete connectionOptions.user;\n delete connectionOptions.pass;\n delete connectionOptions.token;\n }\n\n return connectionOptions;\n}\n\nexport async function resolveNatsCreds(\n config: Pick<BaseQueueConfig, 'creds' | 'credsFile'>\n): Promise<string | undefined> {\n if (config.creds) {\n return normalizeNatsCreds(config.creds);\n }\n\n if (!config.credsFile) {\n return undefined;\n }\n\n const fs = await import('node:fs/promises');\n return normalizeNatsCreds(await fs.readFile(config.credsFile, 'utf8'));\n}\n\nfunction normalizeNatsCreds(creds: string): string {\n if (creds.startsWith('base64:')) {\n return Buffer.from(creds.slice('base64:'.length), 'base64').toString('utf8');\n }\n\n if (creds.includes('\\\\n') && !creds.includes('\\n')) {\n return creds.replaceAll('\\\\n', '\\n');\n }\n\n return creds;\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { shouldSyncRelationship, shouldSyncEntity, parseRelationship, getCollectionForEntity, extractMinimalFields, extractEntityTitle, createRelationshipEvent, createEntityEvent, addGraphExtension, GraphRegistry } from './chunk-TKBD2ONF.js';
2
- import { getGraphEventEmitter, NatsGraphEventEmitter } from './chunk-Q6HJARHV.js';
2
+ import { getGraphEventEmitter, NatsGraphEventEmitter } from './chunk-S52PJKSW.js';
3
3
  import { ValidationError } from './chunk-RTQIRGVB.js';
4
4
  import { logger } from './chunk-CBZNP6RF.js';
5
5
  import { __export, __name } from './chunk-XE4OXN2W.js';
@@ -1871,5 +1871,5 @@ var GraphModule = class {
1871
1871
  };
1872
1872
 
1873
1873
  export { AUDIT_FIELDS, GraphEventsPublisher, GraphExportService, GraphModule, SOFT_DELETE_FIELDS, STANDARD_FIELDS, TENANT_FIELDS, createGraphEventsHelper, createGraphExportService, createPrismaGraphIntegration, createRelationshipFromEntity, defineEntity, defineGraphConfig, defineModuleGraph, defineRelationship, getGraphEventsPublisher, getGraphStats, graph_exports, initializeGraph, isGraphInitialized };
1874
- //# sourceMappingURL=chunk-Y4TPKRZB.js.map
1875
- //# sourceMappingURL=chunk-Y4TPKRZB.js.map
1874
+ //# sourceMappingURL=chunk-DR5AQJT6.js.map
1875
+ //# sourceMappingURL=chunk-DR5AQJT6.js.map