@dr-sentry/sdk 1.1.1 → 1.2.1

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 (46) hide show
  1. package/README.md +14 -1
  2. package/dist/cjs/cache.d.ts +14 -3
  3. package/dist/cjs/cache.d.ts.map +1 -1
  4. package/dist/cjs/cache.js +12 -5
  5. package/dist/cjs/cache.js.map +1 -1
  6. package/dist/cjs/client.d.ts +11 -1
  7. package/dist/cjs/client.d.ts.map +1 -1
  8. package/dist/cjs/client.js +117 -78
  9. package/dist/cjs/client.js.map +1 -1
  10. package/dist/cjs/persistence.d.ts +26 -0
  11. package/dist/cjs/persistence.d.ts.map +1 -0
  12. package/dist/cjs/persistence.js +74 -0
  13. package/dist/cjs/persistence.js.map +1 -0
  14. package/dist/cjs/streaming.d.ts +10 -0
  15. package/dist/cjs/streaming.d.ts.map +1 -1
  16. package/dist/cjs/streaming.js +9 -1
  17. package/dist/cjs/streaming.js.map +1 -1
  18. package/dist/cjs/sync.d.ts +105 -0
  19. package/dist/cjs/sync.d.ts.map +1 -0
  20. package/dist/cjs/sync.js +191 -0
  21. package/dist/cjs/sync.js.map +1 -0
  22. package/dist/cjs/types.d.ts +15 -1
  23. package/dist/cjs/types.d.ts.map +1 -1
  24. package/dist/esm/cache.d.ts +14 -3
  25. package/dist/esm/cache.d.ts.map +1 -1
  26. package/dist/esm/cache.js +12 -5
  27. package/dist/esm/cache.js.map +1 -1
  28. package/dist/esm/client.d.ts +11 -1
  29. package/dist/esm/client.d.ts.map +1 -1
  30. package/dist/esm/client.js +117 -78
  31. package/dist/esm/client.js.map +1 -1
  32. package/dist/esm/persistence.d.ts +26 -0
  33. package/dist/esm/persistence.d.ts.map +1 -0
  34. package/dist/esm/persistence.js +70 -0
  35. package/dist/esm/persistence.js.map +1 -0
  36. package/dist/esm/streaming.d.ts +10 -0
  37. package/dist/esm/streaming.d.ts.map +1 -1
  38. package/dist/esm/streaming.js +9 -1
  39. package/dist/esm/streaming.js.map +1 -1
  40. package/dist/esm/sync.d.ts +105 -0
  41. package/dist/esm/sync.d.ts.map +1 -0
  42. package/dist/esm/sync.js +187 -0
  43. package/dist/esm/sync.js.map +1 -0
  44. package/dist/esm/types.d.ts +15 -1
  45. package/dist/esm/types.d.ts.map +1 -1
  46. package/package.json +1 -1
@@ -1,5 +1,7 @@
1
1
  import { FlagCache } from './cache.js';
2
2
  import { FlagStreamClient } from './streaming.js';
3
+ import { FlagSnapshotStore } from './persistence.js';
4
+ import { SyncManager } from './sync.js';
3
5
  import { loadFlagConfig } from './file-loader.js';
4
6
  import { evaluateLocal } from './local-evaluator.js';
5
7
  import { coerceOfflineValue, lookupOfflineDefault, parseDefaults, readDefaultsFile, } from './defaults.js';
@@ -70,12 +72,16 @@ export class DeploySentryClient {
70
72
  onFlagChange;
71
73
  cache;
72
74
  streamClient = null;
75
+ persistence;
76
+ resyncIntervalMs;
77
+ syncManager = null;
73
78
  _initialized = false;
74
79
  flagConfig = null;
75
80
  offlineDefaults = null;
76
81
  offlineDefaultsEnvUUID = '';
77
82
  flagConfigLoadedAt;
78
83
  offlineDefaultsLoadedAt;
84
+ flagsVersion = null;
79
85
  registry = new Map();
80
86
  statusReporter = null;
81
87
  statusReporterOptions;
@@ -99,6 +105,10 @@ export class DeploySentryClient {
99
105
  this.flagFilePath = options.flagFilePath;
100
106
  this.onFlagChange = options.onFlagChange;
101
107
  this.cache = new FlagCache(options.cacheTimeout ?? DEFAULT_CACHE_TIMEOUT_MS);
108
+ this.resyncIntervalMs = options.resyncIntervalMs;
109
+ this.persistence = options.persistencePath
110
+ ? new FlagSnapshotStore(options.persistencePath, `${this.project}/${this.environment}/${this.application}`, (msg) => console.warn('[DeploySentry] persistence:', msg))
111
+ : null;
102
112
  this.statusReporterOptions = options;
103
113
  }
104
114
  // ---------------------------------------------------------------------------
@@ -119,52 +129,91 @@ export class DeploySentryClient {
119
129
  this._initialized = true;
120
130
  return;
121
131
  }
132
+ // The sync engine keeps the local copy aligned with the server: it resyncs
133
+ // the full flag set on a steady safety-net interval while the SSE stream is
134
+ // healthy, far more aggressively when the stream is down, and retries the
135
+ // initial fetch until it succeeds. onSynced is the single place that
136
+ // applies an authoritative full flag set to the durable cache and disk.
137
+ this.syncManager = new SyncManager({
138
+ fetchAll: () => this.fetchAllFlags(),
139
+ onSynced: (flags) => {
140
+ this.cache.setMany(flags, { durable: true });
141
+ this.persistence?.save(flags);
142
+ this.onFlagChange?.(flags);
143
+ },
144
+ timing: this.resyncIntervalMs
145
+ ? { steadyIntervalMs: this.resyncIntervalMs }
146
+ : undefined,
147
+ log: (msg) => console.warn('[DeploySentry] sync:', msg),
148
+ });
149
+ // Start streaming updates. Each SSE event identifies a changed flag, so
150
+ // fetch just that flag to refresh the local snapshot. Normal value reads
151
+ // stay cache-only; network reads are limited to initial sync, SSE change
152
+ // signals, stream-down recovery, and the 10-minute safety refresh.
153
+ this.streamClient = new FlagStreamClient({
154
+ url: `${this.baseURL}/api/v1/flags/stream?project_id=${enc(this.project)}&environment_id=${enc(this.environment)}&application=${enc(this.application)}`,
155
+ headers: this.authHeaders(),
156
+ onChange: (change) => {
157
+ if (!change.flagId)
158
+ return;
159
+ this.fetchFlag(change.flagId)
160
+ .then((flag) => {
161
+ if (flag) {
162
+ this.cache.set(flag, { durable: true });
163
+ this.onFlagChange?.([flag]);
164
+ }
165
+ })
166
+ .catch(() => { });
167
+ },
168
+ onOpen: () => this.syncManager?.noteStreamOpen(),
169
+ onHeartbeat: () => this.syncManager?.noteStreamActivity(),
170
+ onError: (err) => {
171
+ this.syncManager?.noteStreamError();
172
+ // Surface errors but do not crash – the cache still serves stale data.
173
+ console.error('[DeploySentry] stream error:', err.message);
174
+ },
175
+ });
176
+ // Attempt the initial fetch. On failure, fall back to a recent local copy
177
+ // and let the sync engine retry in the background rather than failing init.
178
+ let bootFlags = null;
122
179
  try {
123
- // Fetch all flags for the project so the cache is warm.
124
- const flags = await this.fetchAllFlags();
125
- this.cache.setMany(flags);
126
- // Start streaming updates. Each SSE event identifies the changed flag
127
- // by ID — fetch just that flag to get the authoritative state.
128
- this.streamClient = new FlagStreamClient({
129
- url: `${this.baseURL}/api/v1/flags/stream?project_id=${enc(this.project)}&environment_id=${enc(this.environment)}&application=${enc(this.application)}`,
130
- headers: this.authHeaders(),
131
- onChange: (change) => {
132
- if (!change.flagId)
133
- return;
134
- this.fetchFlag(change.flagId)
135
- .then((flag) => {
136
- if (flag) {
137
- this.cache.set(flag);
138
- this.onFlagChange?.([flag]);
139
- }
140
- })
141
- .catch(() => { }); // stale cache still serves
142
- },
143
- onError: (err) => {
144
- // Surface errors but do not crash – the cache still serves stale data.
145
- console.error('[DeploySentry] stream error:', err.message);
146
- },
147
- });
148
- // Fire-and-forget; the stream reconnects automatically.
149
- this.streamClient.connect();
150
- this._initialized = true;
151
- this.startStatusReporter();
180
+ bootFlags = await this.fetchAllFlags();
152
181
  }
153
182
  catch (err) {
154
- if (this.mode === 'server-with-fallback') {
183
+ const restored = this.persistence?.load() ?? null;
184
+ if (restored && restored.length > 0) {
185
+ console.warn('[DeploySentry] Server unavailable on boot; serving last persisted snapshot');
186
+ this.cache.setMany(restored, { durable: true });
187
+ }
188
+ else if (this.mode === 'server-with-fallback') {
155
189
  console.warn('[DeploySentry] Server unavailable, falling back to flag config file');
156
190
  this.flagConfig = loadFlagConfig(this.flagFilePath);
157
191
  this.flagConfigLoadedAt = new Date().toISOString();
158
- this._initialized = true;
159
- return;
160
192
  }
161
- throw err;
193
+ else if (!this.persistence) {
194
+ // Legacy contract: no resilient fallback configured — surface the error.
195
+ throw err;
196
+ }
197
+ // Resilient mode with no local copy yet: proceed with coded defaults and
198
+ // let the sync engine recover the flag set as soon as the server returns.
199
+ }
200
+ // Fire-and-forget; the stream reconnects automatically.
201
+ this.streamClient.connect();
202
+ if (bootFlags) {
203
+ this.syncManager.seed(bootFlags);
204
+ }
205
+ else {
206
+ this.syncManager.start();
162
207
  }
208
+ this._initialized = true;
209
+ this.startStatusReporter();
163
210
  }
164
211
  /** Tear down the SSE connection and release resources. */
165
212
  close() {
166
213
  this.streamClient?.close();
167
214
  this.streamClient = null;
215
+ this.syncManager?.stop();
216
+ this.syncManager = null;
168
217
  this.statusReporter?.stop();
169
218
  this.statusReporter = null;
170
219
  this.cache.clear();
@@ -201,7 +250,8 @@ export class DeploySentryClient {
201
250
  return;
202
251
  this.cache.clear();
203
252
  const flags = await this.fetchAllFlags();
204
- this.cache.setMany(flags);
253
+ this.cache.setMany(flags, { durable: true });
254
+ this.persistence?.save(flags);
205
255
  }
206
256
  /** Whether {@link initialize} has been called successfully. */
207
257
  get isInitialized() {
@@ -252,23 +302,11 @@ export class DeploySentryClient {
252
302
  * reason, and resolved value.
253
303
  */
254
304
  async detail(key, context) {
305
+ void context;
255
306
  if (this.offlineMode) {
256
307
  return this.offlineResult(key);
257
308
  }
258
- try {
259
- const body = await this.post('/api/v1/flags/evaluate', {
260
- project_id: this.project,
261
- environment_id: this.environment,
262
- application: this.application,
263
- flag_key: key,
264
- context: context ?? {},
265
- ...(this.sessionId ? { session_id: this.sessionId } : {}),
266
- });
267
- return body;
268
- }
269
- catch {
270
- return this.cachedResult(key);
271
- }
309
+ return this.cachedResult(key);
272
310
  }
273
311
  // ---------------------------------------------------------------------------
274
312
  // Metadata helpers
@@ -409,35 +447,23 @@ export class DeploySentryClient {
409
447
  }
410
448
  if (this.offlineMode)
411
449
  return defaultValue;
412
- // Prefer server-side evaluation so targeting rules are applied.
413
- try {
414
- const result = await this.post('/api/v1/flags/evaluate', {
415
- project_id: this.project,
416
- environment_id: this.environment,
417
- application: this.application,
418
- flag_key: key,
419
- context: context ?? {},
420
- ...(this.sessionId ? { session_id: this.sessionId } : {}),
421
- });
422
- return result.value;
450
+ // Normal value reads must be served from the synced local snapshot. The
451
+ // sync manager is responsible for refreshing it: every 10 minutes while SSE
452
+ // is healthy, and faster only when the stream drops or goes stale.
453
+ const cached = this.cache.get(key);
454
+ if (cached?.value !== undefined) {
455
+ return cached.value;
423
456
  }
424
- catch {
425
- // 1) Cached value (from a prior live call) wins over offline defaults.
426
- const cached = this.cache.get(key);
427
- if (cached?.value !== undefined)
428
- return cached.value;
429
- // 2) Offline defaults loaded via loadDefaults*().
430
- const offline = this.offlineDefaults
431
- ? lookupOfflineDefault(this.offlineDefaults, this.offlineDefaultsEnvUUID, key)
432
- : undefined;
433
- if (offline) {
434
- const requested = inferRequestedType(defaultValue);
435
- const coerced = coerceOfflineValue(offline.value, requested);
436
- if (coerced !== undefined)
437
- return coerced;
438
- }
439
- return defaultValue;
457
+ const offline = this.offlineDefaults
458
+ ? lookupOfflineDefault(this.offlineDefaults, this.offlineDefaultsEnvUUID, key)
459
+ : undefined;
460
+ if (offline) {
461
+ const requested = inferRequestedType(defaultValue);
462
+ const coerced = coerceOfflineValue(offline.value, requested);
463
+ if (coerced !== undefined)
464
+ return coerced;
440
465
  }
466
+ return defaultValue;
441
467
  }
442
468
  // ---------------------------------------------------------------------------
443
469
  // Offline defaults
@@ -482,6 +508,13 @@ export class DeploySentryClient {
482
508
  const response = await this.request('GET', `/api/v1/flags?project_id=${enc(this.project)}&application=${enc(this.application)}&environment_id=${enc(this.environment)}&limit=${pageSize}&offset=${offset}`);
483
509
  const page = Array.isArray(response) ? response : (response.flags ?? []);
484
510
  flags.push(...page);
511
+ if (!Array.isArray(response) && typeof response.flags_version === 'number') {
512
+ if (this.flagsVersion !== response.flags_version) {
513
+ console.info(`[DeploySentry] loaded flags version=${response.flags_version} ` +
514
+ `(project=${this.project}, env=${this.environment}, count=${flags.length})`);
515
+ }
516
+ this.flagsVersion = response.flags_version;
517
+ }
485
518
  const total = Array.isArray(response) ? undefined : response.total_count;
486
519
  if (Array.isArray(response) || page.length === 0 || total === undefined || flags.length >= total)
487
520
  break;
@@ -489,15 +522,21 @@ export class DeploySentryClient {
489
522
  }
490
523
  return flags.map(mapRawFlag);
491
524
  }
525
+ /**
526
+ * The project's flag-set version last loaded from the server, or `null` if
527
+ * no successful server load has happened (offline/file mode, or boot before
528
+ * the first sync). The version advances on any change to the project's flag
529
+ * state, so it validates exactly which flag set the SDK is serving.
530
+ */
531
+ getFlagsVersion() {
532
+ return this.flagsVersion;
533
+ }
492
534
  async fetchFlag(flagId) {
493
535
  const raw = await this.request('GET', `/api/v1/flags/${enc(flagId)}?environment_id=${enc(this.environment)}`);
494
536
  if (!raw?.key)
495
537
  return null;
496
538
  return mapRawFlag(raw);
497
539
  }
498
- async post(path, body) {
499
- return this.request('POST', path, body);
500
- }
501
540
  async request(method, path, body) {
502
541
  const url = `${this.baseURL}${path}`;
503
542
  const init = {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { Flag } from './types.js';
2
+ /**
3
+ * Persists the last fully-synced flag set to a local JSON file so the SDK can
4
+ * serve a recent local copy on the next boot when the server is unreachable.
5
+ *
6
+ * Opt-in: only constructed when the caller supplies a `persistencePath`.
7
+ * Writes are atomic (temp file + rename) so a crash mid-write never corrupts
8
+ * an existing good snapshot. All failures are swallowed and surfaced via the
9
+ * optional logger — persistence is a best-effort durability aid, never a hard
10
+ * dependency of flag evaluation.
11
+ */
12
+ export declare class FlagSnapshotStore {
13
+ private readonly path;
14
+ private readonly scope;
15
+ private readonly log;
16
+ constructor(path: string, scope: string, log?: (msg: string) => void);
17
+ /**
18
+ * Load the persisted snapshot. Returns the flags if a valid snapshot exists
19
+ * for the same scope, otherwise `null` (missing file, parse error, version
20
+ * mismatch, or scope mismatch).
21
+ */
22
+ load(): Flag[] | null;
23
+ /** Atomically write the current flag set to disk. Best-effort. */
24
+ save(flags: Flag[]): void;
25
+ }
26
+ //# sourceMappingURL=persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/persistence.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAgB/B;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwB;gBAEhC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;IAMpE;;;;OAIG;IACH,IAAI,IAAI,IAAI,EAAE,GAAG,IAAI;IAoBrB,kEAAkE;IAClE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;CAiB1B"}
@@ -0,0 +1,70 @@
1
+ import { mkdirSync, readFileSync, renameSync, writeFileSync } from 'fs';
2
+ import { dirname } from 'path';
3
+ const SNAPSHOT_VERSION = 1;
4
+ /**
5
+ * Persists the last fully-synced flag set to a local JSON file so the SDK can
6
+ * serve a recent local copy on the next boot when the server is unreachable.
7
+ *
8
+ * Opt-in: only constructed when the caller supplies a `persistencePath`.
9
+ * Writes are atomic (temp file + rename) so a crash mid-write never corrupts
10
+ * an existing good snapshot. All failures are swallowed and surfaced via the
11
+ * optional logger — persistence is a best-effort durability aid, never a hard
12
+ * dependency of flag evaluation.
13
+ */
14
+ export class FlagSnapshotStore {
15
+ path;
16
+ scope;
17
+ log;
18
+ constructor(path, scope, log) {
19
+ this.path = path;
20
+ this.scope = scope;
21
+ this.log = log ?? (() => { });
22
+ }
23
+ /**
24
+ * Load the persisted snapshot. Returns the flags if a valid snapshot exists
25
+ * for the same scope, otherwise `null` (missing file, parse error, version
26
+ * mismatch, or scope mismatch).
27
+ */
28
+ load() {
29
+ let raw;
30
+ try {
31
+ raw = readFileSync(this.path, 'utf8');
32
+ }
33
+ catch {
34
+ return null; // No snapshot yet — expected on first run.
35
+ }
36
+ try {
37
+ const parsed = JSON.parse(raw);
38
+ if (parsed.version !== SNAPSHOT_VERSION)
39
+ return null;
40
+ if (parsed.scope !== this.scope)
41
+ return null;
42
+ if (!Array.isArray(parsed.flags))
43
+ return null;
44
+ return parsed.flags;
45
+ }
46
+ catch (err) {
47
+ this.log(`failed to parse snapshot ${this.path}: ${String(err)}`);
48
+ return null;
49
+ }
50
+ }
51
+ /** Atomically write the current flag set to disk. Best-effort. */
52
+ save(flags) {
53
+ const payload = {
54
+ version: SNAPSHOT_VERSION,
55
+ savedAt: new Date().toISOString(),
56
+ scope: this.scope,
57
+ flags,
58
+ };
59
+ const tmp = `${this.path}.${process.pid}.tmp`;
60
+ try {
61
+ mkdirSync(dirname(this.path), { recursive: true });
62
+ writeFileSync(tmp, JSON.stringify(payload), 'utf8');
63
+ renameSync(tmp, this.path); // Atomic on POSIX/Windows same-volume.
64
+ }
65
+ catch (err) {
66
+ this.log(`failed to persist snapshot ${this.path}: ${String(err)}`);
67
+ }
68
+ }
69
+ }
70
+ //# sourceMappingURL=persistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAe/B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAiB;IACX,IAAI,CAAS;IACb,KAAK,CAAS;IACd,GAAG,CAAwB;IAE5C,YAAY,IAAY,EAAE,KAAa,EAAE,GAA2B;QAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,CAAC,2CAA2C;QAC1D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;YAC/C,IAAI,MAAM,CAAC,OAAO,KAAK,gBAAgB;gBAAE,OAAO,IAAI,CAAC;YACrD,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9C,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,IAAI,CAAC,KAAa;QAChB,MAAM,OAAO,GAAiB;YAC5B,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK;SACN,CAAC;QAEF,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;QAC9C,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;YACpD,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,uCAAuC;QACrE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,8BAA8B,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;CACF"}
@@ -17,6 +17,14 @@ interface StreamOptions {
17
17
  onChange: FlagChangeHandler;
18
18
  /** Called when the stream encounters an error. */
19
19
  onError?: StreamErrorHandler;
20
+ /** Called once the SSE connection is established (HTTP 200). */
21
+ onOpen?: () => void;
22
+ /**
23
+ * Called on any inbound stream activity — heartbeat comments (`:ping`) and
24
+ * data events alike. Lets the sync engine treat the stream as alive and gate
25
+ * its resync cadence on stream liveness.
26
+ */
27
+ onHeartbeat?: () => void;
20
28
  }
21
29
  /**
22
30
  * Lightweight SSE streaming client that keeps the local flag cache
@@ -34,6 +42,8 @@ export declare class FlagStreamClient {
34
42
  private readonly headers;
35
43
  private readonly onChange;
36
44
  private readonly onError;
45
+ private readonly onOpen;
46
+ private readonly onHeartbeat;
37
47
  constructor(options: StreamOptions);
38
48
  /** Open the SSE connection and start processing events. */
39
49
  connect(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/streaming.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;AAElE,oEAAoE;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAOxD,UAAU,aAAa;IACrB,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,8DAA8D;IAC9D,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,kDAAkD;IAClD,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAEjC,OAAO,EAAE,aAAa;IAOlC,2DAA2D;IACrD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC9B,2DAA2D;IAC3D,KAAK,IAAI,IAAI;YAkBC,aAAa;IA8B3B,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,iBAAiB;CAgB1B"}
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/streaming.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;AAElE,oEAAoE;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAOxD,UAAU,aAAa;IACrB,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,8DAA8D;IAC9D,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,kDAAkD;IAClD,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;gBAE7B,OAAO,EAAE,aAAa;IASlC,2DAA2D;IACrD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC9B,2DAA2D;IAC3D,KAAK,IAAI,IAAI;YAkBC,aAAa;IA8B3B,OAAO,CAAC,YAAY;IAmCpB,OAAO,CAAC,iBAAiB;CAgB1B"}
@@ -18,11 +18,15 @@ export class FlagStreamClient {
18
18
  headers;
19
19
  onChange;
20
20
  onError;
21
+ onOpen;
22
+ onHeartbeat;
21
23
  constructor(options) {
22
24
  this.url = options.url;
23
25
  this.headers = options.headers;
24
26
  this.onChange = options.onChange;
25
27
  this.onError = options.onError ?? (() => { });
28
+ this.onOpen = options.onOpen ?? (() => { });
29
+ this.onHeartbeat = options.onHeartbeat ?? (() => { });
26
30
  }
27
31
  /** Open the SSE connection and start processing events. */
28
32
  async connect() {
@@ -46,6 +50,7 @@ export class FlagStreamClient {
46
50
  throw new Error('SSE response has no body');
47
51
  }
48
52
  this.retryMs = SSE_INITIAL_RETRY_MS;
53
+ this.onOpen();
49
54
  await this.consumeStream(response.body);
50
55
  }
51
56
  catch (err) {
@@ -100,6 +105,9 @@ export class FlagStreamClient {
100
105
  }
101
106
  }
102
107
  processEvent(raw) {
108
+ // Any inbound frame — including a heartbeat comment — means the stream is
109
+ // alive. Surface that before interpreting the payload.
110
+ this.onHeartbeat();
103
111
  let eventType = 'message';
104
112
  let data = '';
105
113
  for (const line of raw.split('\n')) {
@@ -110,7 +118,7 @@ export class FlagStreamClient {
110
118
  data += line.slice(5).trim();
111
119
  }
112
120
  else if (line.startsWith(':')) {
113
- // SSE comment (heartbeat) — ignore.
121
+ // SSE comment (heartbeat) — liveness already recorded above; no payload.
114
122
  return;
115
123
  }
116
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/streaming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/streaming.ts"],"names":[],"mappings":"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"}