@dr-sentry/sdk 1.1.0 → 1.2.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 (70) hide show
  1. package/README.md +103 -5
  2. package/dist/cjs/cache.d.ts +30 -3
  3. package/dist/cjs/cache.d.ts.map +1 -1
  4. package/dist/cjs/cache.js +32 -5
  5. package/dist/cjs/cache.js.map +1 -1
  6. package/dist/cjs/client.d.ts +55 -1
  7. package/dist/cjs/client.d.ts.map +1 -1
  8. package/dist/cjs/client.js +297 -37
  9. package/dist/cjs/client.js.map +1 -1
  10. package/dist/cjs/defaults.d.ts +58 -0
  11. package/dist/cjs/defaults.d.ts.map +1 -0
  12. package/dist/cjs/defaults.js +175 -0
  13. package/dist/cjs/defaults.js.map +1 -0
  14. package/dist/cjs/index.d.ts +2 -1
  15. package/dist/cjs/index.d.ts.map +1 -1
  16. package/dist/cjs/index.js +4 -1
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/persistence.d.ts +26 -0
  19. package/dist/cjs/persistence.d.ts.map +1 -0
  20. package/dist/cjs/persistence.js +74 -0
  21. package/dist/cjs/persistence.js.map +1 -0
  22. package/dist/cjs/status-reporter.d.ts +42 -0
  23. package/dist/cjs/status-reporter.d.ts.map +1 -0
  24. package/dist/cjs/status-reporter.js +153 -0
  25. package/dist/cjs/status-reporter.js.map +1 -0
  26. package/dist/cjs/streaming.d.ts +10 -0
  27. package/dist/cjs/streaming.d.ts.map +1 -1
  28. package/dist/cjs/streaming.js +9 -1
  29. package/dist/cjs/streaming.js.map +1 -1
  30. package/dist/cjs/sync.d.ts +105 -0
  31. package/dist/cjs/sync.d.ts.map +1 -0
  32. package/dist/cjs/sync.js +191 -0
  33. package/dist/cjs/sync.js.map +1 -0
  34. package/dist/cjs/types.d.ts +78 -1
  35. package/dist/cjs/types.d.ts.map +1 -1
  36. package/dist/esm/cache.d.ts +30 -3
  37. package/dist/esm/cache.d.ts.map +1 -1
  38. package/dist/esm/cache.js +32 -5
  39. package/dist/esm/cache.js.map +1 -1
  40. package/dist/esm/client.d.ts +55 -1
  41. package/dist/esm/client.d.ts.map +1 -1
  42. package/dist/esm/client.js +297 -37
  43. package/dist/esm/client.js.map +1 -1
  44. package/dist/esm/defaults.d.ts +58 -0
  45. package/dist/esm/defaults.d.ts.map +1 -0
  46. package/dist/esm/defaults.js +136 -0
  47. package/dist/esm/defaults.js.map +1 -0
  48. package/dist/esm/index.d.ts +2 -1
  49. package/dist/esm/index.d.ts.map +1 -1
  50. package/dist/esm/index.js +1 -0
  51. package/dist/esm/index.js.map +1 -1
  52. package/dist/esm/persistence.d.ts +26 -0
  53. package/dist/esm/persistence.d.ts.map +1 -0
  54. package/dist/esm/persistence.js +70 -0
  55. package/dist/esm/persistence.js.map +1 -0
  56. package/dist/esm/status-reporter.d.ts +42 -0
  57. package/dist/esm/status-reporter.d.ts.map +1 -0
  58. package/dist/esm/status-reporter.js +148 -0
  59. package/dist/esm/status-reporter.js.map +1 -0
  60. package/dist/esm/streaming.d.ts +10 -0
  61. package/dist/esm/streaming.d.ts.map +1 -1
  62. package/dist/esm/streaming.js +9 -1
  63. package/dist/esm/streaming.js.map +1 -1
  64. package/dist/esm/sync.d.ts +105 -0
  65. package/dist/esm/sync.d.ts.map +1 -0
  66. package/dist/esm/sync.js +187 -0
  67. package/dist/esm/sync.js.map +1 -0
  68. package/dist/esm/types.d.ts +78 -1
  69. package/dist/esm/types.d.ts.map +1 -1
  70. package/package.json +1 -1
@@ -3,8 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DeploySentryClient = void 0;
4
4
  const cache_1 = require("./cache");
5
5
  const streaming_1 = require("./streaming");
6
+ const persistence_1 = require("./persistence");
7
+ const sync_1 = require("./sync");
6
8
  const file_loader_1 = require("./file-loader");
7
9
  const local_evaluator_1 = require("./local-evaluator");
10
+ const defaults_1 = require("./defaults");
11
+ const status_reporter_1 = require("./status-reporter");
8
12
  const DEFAULT_BASE_URL = 'https://api.dr-sentry.com';
9
13
  /** Parse a string value into its typed representation based on flag_type. */
10
14
  function parseValue(raw, flagType) {
@@ -71,9 +75,19 @@ class DeploySentryClient {
71
75
  onFlagChange;
72
76
  cache;
73
77
  streamClient = null;
78
+ persistence;
79
+ resyncIntervalMs;
80
+ syncManager = null;
74
81
  _initialized = false;
75
82
  flagConfig = null;
83
+ offlineDefaults = null;
84
+ offlineDefaultsEnvUUID = '';
85
+ flagConfigLoadedAt;
86
+ offlineDefaultsLoadedAt;
87
+ flagsVersion = null;
76
88
  registry = new Map();
89
+ statusReporter = null;
90
+ statusReporterOptions;
77
91
  constructor(options) {
78
92
  if (!options.apiKey)
79
93
  throw new Error('apiKey is required');
@@ -94,6 +108,11 @@ class DeploySentryClient {
94
108
  this.flagFilePath = options.flagFilePath;
95
109
  this.onFlagChange = options.onFlagChange;
96
110
  this.cache = new cache_1.FlagCache(options.cacheTimeout ?? DEFAULT_CACHE_TIMEOUT_MS);
111
+ this.resyncIntervalMs = options.resyncIntervalMs;
112
+ this.persistence = options.persistencePath
113
+ ? new persistence_1.FlagSnapshotStore(options.persistencePath, `${this.project}/${this.environment}/${this.application}`, (msg) => console.warn('[DeploySentry] persistence:', msg))
114
+ : null;
115
+ this.statusReporterOptions = options;
97
116
  }
98
117
  // ---------------------------------------------------------------------------
99
118
  // Lifecycle
@@ -105,6 +124,7 @@ class DeploySentryClient {
105
124
  async initialize() {
106
125
  if (this.mode === 'file') {
107
126
  this.flagConfig = (0, file_loader_1.loadFlagConfig)(this.flagFilePath);
127
+ this.flagConfigLoadedAt = new Date().toISOString();
108
128
  this._initialized = true;
109
129
  return;
110
130
  }
@@ -112,53 +132,117 @@ class DeploySentryClient {
112
132
  this._initialized = true;
113
133
  return;
114
134
  }
135
+ // The sync engine keeps the local copy aligned with the server: it resyncs
136
+ // the full flag set on a steady safety-net interval while the SSE stream is
137
+ // healthy, far more aggressively when the stream is down, and retries the
138
+ // initial fetch until it succeeds. onSynced is the single place that
139
+ // applies an authoritative full flag set to the durable cache and disk.
140
+ this.syncManager = new sync_1.SyncManager({
141
+ fetchAll: () => this.fetchAllFlags(),
142
+ onSynced: (flags) => {
143
+ this.cache.setMany(flags, { durable: true });
144
+ this.persistence?.save(flags);
145
+ this.onFlagChange?.(flags);
146
+ },
147
+ timing: this.resyncIntervalMs
148
+ ? { steadyIntervalMs: this.resyncIntervalMs }
149
+ : undefined,
150
+ log: (msg) => console.warn('[DeploySentry] sync:', msg),
151
+ });
152
+ // Start streaming updates. Each SSE event identifies the changed flag by
153
+ // ID — fetch just that flag to get the authoritative state. Stream
154
+ // open/heartbeat/error feed the sync engine's liveness signal so it can
155
+ // gate its resync cadence on whether the realtime channel is alive.
156
+ this.streamClient = new streaming_1.FlagStreamClient({
157
+ url: `${this.baseURL}/api/v1/flags/stream?project_id=${enc(this.project)}&environment_id=${enc(this.environment)}&application=${enc(this.application)}`,
158
+ headers: this.authHeaders(),
159
+ onChange: (change) => {
160
+ if (!change.flagId)
161
+ return;
162
+ this.fetchFlag(change.flagId)
163
+ .then((flag) => {
164
+ if (flag) {
165
+ this.cache.set(flag);
166
+ this.onFlagChange?.([flag]);
167
+ }
168
+ })
169
+ .catch(() => { }); // stale cache still serves
170
+ },
171
+ onOpen: () => this.syncManager?.noteStreamOpen(),
172
+ onHeartbeat: () => this.syncManager?.noteStreamActivity(),
173
+ onError: (err) => {
174
+ this.syncManager?.noteStreamError();
175
+ // Surface errors but do not crash – the cache still serves stale data.
176
+ console.error('[DeploySentry] stream error:', err.message);
177
+ },
178
+ });
179
+ // Attempt the initial fetch. On failure, fall back to a recent local copy
180
+ // and let the sync engine retry in the background rather than failing init.
181
+ let bootFlags = null;
115
182
  try {
116
- // Fetch all flags for the project so the cache is warm.
117
- const flags = await this.fetchAllFlags();
118
- this.cache.setMany(flags);
119
- // Start streaming updates. Each SSE event identifies the changed flag
120
- // by ID — fetch just that flag to get the authoritative state.
121
- this.streamClient = new streaming_1.FlagStreamClient({
122
- url: `${this.baseURL}/api/v1/flags/stream?project_id=${enc(this.project)}&environment_id=${enc(this.environment)}&application=${enc(this.application)}`,
123
- headers: this.authHeaders(),
124
- onChange: (change) => {
125
- if (!change.flagId)
126
- return;
127
- this.fetchFlag(change.flagId)
128
- .then((flag) => {
129
- if (flag) {
130
- this.cache.set(flag);
131
- this.onFlagChange?.([flag]);
132
- }
133
- })
134
- .catch(() => { }); // stale cache still serves
135
- },
136
- onError: (err) => {
137
- // Surface errors but do not crash – the cache still serves stale data.
138
- console.error('[DeploySentry] stream error:', err.message);
139
- },
140
- });
141
- // Fire-and-forget; the stream reconnects automatically.
142
- this.streamClient.connect();
143
- this._initialized = true;
183
+ bootFlags = await this.fetchAllFlags();
144
184
  }
145
185
  catch (err) {
146
- if (this.mode === 'server-with-fallback') {
186
+ const restored = this.persistence?.load() ?? null;
187
+ if (restored && restored.length > 0) {
188
+ console.warn('[DeploySentry] Server unavailable on boot; serving last persisted snapshot');
189
+ this.cache.setMany(restored, { durable: true });
190
+ }
191
+ else if (this.mode === 'server-with-fallback') {
147
192
  console.warn('[DeploySentry] Server unavailable, falling back to flag config file');
148
193
  this.flagConfig = (0, file_loader_1.loadFlagConfig)(this.flagFilePath);
149
- this._initialized = true;
150
- return;
194
+ this.flagConfigLoadedAt = new Date().toISOString();
195
+ }
196
+ else if (!this.persistence) {
197
+ // Legacy contract: no resilient fallback configured — surface the error.
198
+ throw err;
151
199
  }
152
- throw err;
200
+ // Resilient mode with no local copy yet: proceed with coded defaults and
201
+ // let the sync engine recover the flag set as soon as the server returns.
202
+ }
203
+ // Fire-and-forget; the stream reconnects automatically.
204
+ this.streamClient.connect();
205
+ if (bootFlags) {
206
+ this.syncManager.seed(bootFlags);
153
207
  }
208
+ else {
209
+ this.syncManager.start();
210
+ }
211
+ this._initialized = true;
212
+ this.startStatusReporter();
154
213
  }
155
214
  /** Tear down the SSE connection and release resources. */
156
215
  close() {
157
216
  this.streamClient?.close();
158
217
  this.streamClient = null;
218
+ this.syncManager?.stop();
219
+ this.syncManager = null;
220
+ this.statusReporter?.stop();
221
+ this.statusReporter = null;
159
222
  this.cache.clear();
160
223
  this._initialized = false;
161
224
  }
225
+ startStatusReporter() {
226
+ const o = this.statusReporterOptions;
227
+ if (!o.reportStatus)
228
+ return;
229
+ if (!o.applicationId) {
230
+ console.warn('[DeploySentry] reportStatus=true but applicationId is not set; status reporter disabled');
231
+ return;
232
+ }
233
+ this.statusReporter = new status_reporter_1.StatusReporter({
234
+ baseURL: this.baseURL,
235
+ apiKey: this.apiKey,
236
+ applicationId: o.applicationId,
237
+ intervalMs: o.reportStatusIntervalMs,
238
+ version: o.reportStatusVersion,
239
+ commitSha: o.reportStatusCommitSha,
240
+ deploySlot: o.reportStatusDeploySlot,
241
+ tags: o.reportStatusTags,
242
+ healthProvider: o.reportStatusHealthProvider,
243
+ });
244
+ this.statusReporter.start();
245
+ }
162
246
  /**
163
247
  * Clear the local cache and re-fetch all flags from the server.
164
248
  * Useful when session state may have changed and the client needs
@@ -169,7 +253,8 @@ class DeploySentryClient {
169
253
  return;
170
254
  this.cache.clear();
171
255
  const flags = await this.fetchAllFlags();
172
- this.cache.setMany(flags);
256
+ this.cache.setMany(flags, { durable: true });
257
+ this.persistence?.save(flags);
173
258
  }
174
259
  /** Whether {@link initialize} has been called successfully. */
175
260
  get isInitialized() {
@@ -261,6 +346,72 @@ class DeploySentryClient {
261
346
  allFlags() {
262
347
  return this.cache.getAll();
263
348
  }
349
+ /**
350
+ * Return a provenance-tagged view of every flag the SDK currently knows
351
+ * about, drawn from all sources (live server cache, offline file config,
352
+ * and offline defaults). Each entry reports the resolved value, its type,
353
+ * the {@link FlagSource | source} it came from, an evaluation reason code,
354
+ * and when it was last fetched / loaded.
355
+ *
356
+ * Intended for wiring into an admin or support panel so operators can see
357
+ * exactly what value an application is serving and where it came from. This
358
+ * is a read-only snapshot — it does not contact the server or evaluate
359
+ * targeting rules for a specific user.
360
+ */
361
+ inspect() {
362
+ const byKey = new Map();
363
+ // 1) Server cache (live + stale). Highest-fidelity source; recorded first.
364
+ for (const e of this.cache.entries()) {
365
+ byKey.set(e.flag.key, {
366
+ key: e.flag.key,
367
+ value: e.flag.value,
368
+ type: typeOfValue(e.flag.value),
369
+ enabled: e.flag.enabled,
370
+ source: e.stale ? 'cache' : 'server',
371
+ reason: e.stale ? 'CACHE' : 'LIVE',
372
+ fetchedAt: new Date(e.storedAt).toISOString(),
373
+ stale: e.stale,
374
+ });
375
+ }
376
+ // 2) Offline file config (mode 'file' or fallback). Only fills gaps.
377
+ if (this.flagConfig) {
378
+ for (const f of this.flagConfig.flags) {
379
+ if (byKey.has(f.key))
380
+ continue;
381
+ const result = (0, local_evaluator_1.evaluateLocal)(this.flagConfig, this.environment, f.key);
382
+ const envState = f.environments[this.environment];
383
+ byKey.set(f.key, {
384
+ key: f.key,
385
+ value: parseValue(result.value, f.flag_type),
386
+ type: typeOfFlagType(f.flag_type),
387
+ enabled: envState?.enabled ?? false,
388
+ source: 'file',
389
+ reason: 'OFFLINE_FILE',
390
+ fetchedAt: this.flagConfigLoadedAt,
391
+ stale: false,
392
+ });
393
+ }
394
+ }
395
+ // 3) Offline defaults loaded via loadDefaults*(). Only fills gaps.
396
+ if (this.offlineDefaults) {
397
+ for (const [key, def] of this.offlineDefaults) {
398
+ if (byKey.has(key))
399
+ continue;
400
+ const resolved = (0, defaults_1.lookupOfflineDefault)(this.offlineDefaults, this.offlineDefaultsEnvUUID, key);
401
+ byKey.set(key, {
402
+ key,
403
+ value: resolved ? parseValue(resolved.value, def.flagType) : undefined,
404
+ type: typeOfFlagType(def.flagType),
405
+ enabled: resolved?.enabled ?? false,
406
+ source: 'file',
407
+ reason: 'OFFLINE_DEFAULT',
408
+ fetchedAt: this.offlineDefaultsLoadedAt,
409
+ stale: false,
410
+ });
411
+ }
412
+ }
413
+ return [...byKey.values()];
414
+ }
264
415
  // ---------------------------------------------------------------------------
265
416
  // Register / Dispatch
266
417
  // ---------------------------------------------------------------------------
@@ -324,14 +475,88 @@ class DeploySentryClient {
324
475
  return result.value;
325
476
  }
326
477
  catch {
327
- // Fall back to the cached flag value.
478
+ // 1) Cached value (from a prior live call) wins over offline defaults.
328
479
  const cached = this.cache.get(key);
329
- return cached?.value ?? defaultValue;
480
+ if (cached?.value !== undefined)
481
+ return cached.value;
482
+ // 2) Offline defaults loaded via loadDefaults*().
483
+ const offline = this.offlineDefaults
484
+ ? (0, defaults_1.lookupOfflineDefault)(this.offlineDefaults, this.offlineDefaultsEnvUUID, key)
485
+ : undefined;
486
+ if (offline) {
487
+ const requested = inferRequestedType(defaultValue);
488
+ const coerced = (0, defaults_1.coerceOfflineValue)(offline.value, requested);
489
+ if (coerced !== undefined)
490
+ return coerced;
491
+ }
492
+ return defaultValue;
330
493
  }
331
494
  }
495
+ // ---------------------------------------------------------------------------
496
+ // Offline defaults
497
+ // ---------------------------------------------------------------------------
498
+ /**
499
+ * Load offline default values from a flag-export file. When the live API
500
+ * is unreachable and the cache has no entry, the SDK falls back to these
501
+ * defaults for {@link boolValue} / {@link stringValue} / {@link intValue}
502
+ * / {@link jsonValue} calls.
503
+ *
504
+ * Accepts the JSON (default) or YAML format produced by
505
+ * `deploysentry flags export`.
506
+ *
507
+ * Environment matching: the SDK matches the configured `environment`
508
+ * option against the export's `environments[]` first by UUID, then by
509
+ * name (case-insensitive). When a match is found, that env's per-flag
510
+ * `{enabled, value}` overrides the flag's global `default_value`.
511
+ *
512
+ * @example
513
+ * await client.loadDefaultsFromFile('flags.json');
514
+ */
515
+ async loadDefaultsFromFile(path) {
516
+ const payload = await (0, defaults_1.readDefaultsFile)(path);
517
+ this.loadDefaults(payload);
518
+ }
519
+ /**
520
+ * Synchronous variant of {@link loadDefaultsFromFile} that accepts an
521
+ * already-parsed object (or a JSON string).
522
+ */
523
+ loadDefaults(payload) {
524
+ const data = typeof payload === 'string' ? JSON.parse(payload) : payload;
525
+ const { defaults, envUUID } = (0, defaults_1.parseDefaults)(data, this.environment);
526
+ this.offlineDefaults = defaults;
527
+ this.offlineDefaultsEnvUUID = envUUID;
528
+ this.offlineDefaultsLoadedAt = new Date().toISOString();
529
+ }
332
530
  async fetchAllFlags() {
333
- const response = await this.request('GET', `/api/v1/flags?project_id=${enc(this.project)}&application=${enc(this.application)}&environment_id=${enc(this.environment)}`);
334
- return (response.flags ?? []).map(mapRawFlag);
531
+ const pageSize = 500;
532
+ const flags = [];
533
+ let offset = 0;
534
+ for (;;) {
535
+ 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}`);
536
+ const page = Array.isArray(response) ? response : (response.flags ?? []);
537
+ flags.push(...page);
538
+ if (!Array.isArray(response) && typeof response.flags_version === 'number') {
539
+ if (this.flagsVersion !== response.flags_version) {
540
+ console.info(`[DeploySentry] loaded flags version=${response.flags_version} ` +
541
+ `(project=${this.project}, env=${this.environment}, count=${flags.length})`);
542
+ }
543
+ this.flagsVersion = response.flags_version;
544
+ }
545
+ const total = Array.isArray(response) ? undefined : response.total_count;
546
+ if (Array.isArray(response) || page.length === 0 || total === undefined || flags.length >= total)
547
+ break;
548
+ offset += page.length;
549
+ }
550
+ return flags.map(mapRawFlag);
551
+ }
552
+ /**
553
+ * The project's flag-set version last loaded from the server, or `null` if
554
+ * no successful server load has happened (offline/file mode, or boot before
555
+ * the first sync). The version advances on any change to the project's flag
556
+ * state, so it validates exactly which flag set the SDK is serving.
557
+ */
558
+ getFlagsVersion() {
559
+ return this.flagsVersion;
335
560
  }
336
561
  async fetchFlag(flagId) {
337
562
  const raw = await this.request('GET', `/api/v1/flags/${enc(flagId)}?environment_id=${enc(this.environment)}`);
@@ -413,4 +638,39 @@ exports.DeploySentryClient = DeploySentryClient;
413
638
  function enc(value) {
414
639
  return encodeURIComponent(value);
415
640
  }
641
+ /** Map a flag_type string to the inspection `type` field. */
642
+ function typeOfFlagType(flagType) {
643
+ switch (flagType) {
644
+ case 'boolean': return 'boolean';
645
+ case 'integer': return 'integer';
646
+ case 'number': return 'number';
647
+ case 'json': return 'json';
648
+ case 'string': return 'string';
649
+ default: return 'unknown';
650
+ }
651
+ }
652
+ /** Infer the inspection `type` field from an already-parsed value. */
653
+ function typeOfValue(value) {
654
+ switch (typeof value) {
655
+ case 'boolean': return 'boolean';
656
+ case 'number': return Number.isInteger(value) ? 'integer' : 'number';
657
+ case 'string': return 'string';
658
+ case 'object': return value === null ? 'unknown' : 'json';
659
+ default: return 'unknown';
660
+ }
661
+ }
662
+ /**
663
+ * Infer which coercion to apply to an offline-default raw value based on
664
+ * the caller's `defaultValue` type. Falls back to 'json' for objects /
665
+ * arrays so JSON-typed flags round-trip correctly.
666
+ */
667
+ function inferRequestedType(defaultValue) {
668
+ if (typeof defaultValue === 'boolean')
669
+ return 'bool';
670
+ if (typeof defaultValue === 'string')
671
+ return 'string';
672
+ if (typeof defaultValue === 'number')
673
+ return 'number';
674
+ return 'json';
675
+ }
416
676
  //# sourceMappingURL=client.js.map
@@ -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,58 @@
1
+ /**
2
+ * In-memory representation of one flag from an offline-defaults export.
3
+ *
4
+ * The SDK keeps a map from flag key → OfflineFlagDefault and consults it
5
+ * from {@link DeploySentryClient.evaluate} when the live API and the
6
+ * cache both fail.
7
+ */
8
+ export interface OfflineFlagDefault {
9
+ key: string;
10
+ flagType: string;
11
+ defaultValue: string;
12
+ /** Map from env UUID → per-env state from the export. */
13
+ envStates: Record<string, {
14
+ enabled: boolean;
15
+ value: string;
16
+ }>;
17
+ }
18
+ /** Result of parsing a YAMLExport JSON payload. */
19
+ export interface ParsedDefaults {
20
+ defaults: Map<string, OfflineFlagDefault>;
21
+ /**
22
+ * The env UUID matched at load time against the configured environment.
23
+ * When empty, no env match was found — lookups fall back to the flag's
24
+ * `defaultValue`.
25
+ */
26
+ envUUID: string;
27
+ }
28
+ /**
29
+ * Parse a YAMLExport JSON payload into an OfflineFlagDefault map.
30
+ *
31
+ * `environment` is the SDK's configured environment string. It is matched
32
+ * against the export's `environments[]` first by UUID, then by name
33
+ * (case-insensitive). The first match wins.
34
+ */
35
+ export declare function parseDefaults(payload: unknown, environment: string): ParsedDefaults;
36
+ /**
37
+ * Resolve the offline value for a flag key. Returns `undefined` when the
38
+ * flag is not in the loaded defaults. When an env override exists for the
39
+ * resolved env UUID, its `value` is returned; otherwise the flag's global
40
+ * `defaultValue` is returned.
41
+ */
42
+ export declare function lookupOfflineDefault(defaults: Map<string, OfflineFlagDefault>, envUUID: string, key: string): {
43
+ value: string;
44
+ enabled: boolean;
45
+ flagType: string;
46
+ } | undefined;
47
+ /**
48
+ * Read a defaults JSON file from disk and return the parsed payload.
49
+ * Accepts either raw JSON or YAML based on the file extension.
50
+ */
51
+ export declare function readDefaultsFile(path: string): Promise<unknown>;
52
+ /**
53
+ * Coerce an offline default raw value into the requested TypeScript type.
54
+ * Mirrors the BoolValue / StringValue / IntValue helpers' coercion rules
55
+ * so offline defaults behave identically to live results.
56
+ */
57
+ export declare function coerceOfflineValue<T>(raw: string, requested: 'bool' | 'string' | 'number' | 'json'): T | undefined;
58
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC1C;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAqCnF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EACzC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAenE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASrE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,CAyClH"}