@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.
- package/README.md +103 -5
- package/dist/cjs/cache.d.ts +30 -3
- package/dist/cjs/cache.d.ts.map +1 -1
- package/dist/cjs/cache.js +32 -5
- package/dist/cjs/cache.js.map +1 -1
- package/dist/cjs/client.d.ts +55 -1
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +297 -37
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/defaults.d.ts +58 -0
- package/dist/cjs/defaults.d.ts.map +1 -0
- package/dist/cjs/defaults.js +175 -0
- package/dist/cjs/defaults.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/persistence.d.ts +26 -0
- package/dist/cjs/persistence.d.ts.map +1 -0
- package/dist/cjs/persistence.js +74 -0
- package/dist/cjs/persistence.js.map +1 -0
- package/dist/cjs/status-reporter.d.ts +42 -0
- package/dist/cjs/status-reporter.d.ts.map +1 -0
- package/dist/cjs/status-reporter.js +153 -0
- package/dist/cjs/status-reporter.js.map +1 -0
- package/dist/cjs/streaming.d.ts +10 -0
- package/dist/cjs/streaming.d.ts.map +1 -1
- package/dist/cjs/streaming.js +9 -1
- package/dist/cjs/streaming.js.map +1 -1
- package/dist/cjs/sync.d.ts +105 -0
- package/dist/cjs/sync.d.ts.map +1 -0
- package/dist/cjs/sync.js +191 -0
- package/dist/cjs/sync.js.map +1 -0
- package/dist/cjs/types.d.ts +78 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/cache.d.ts +30 -3
- package/dist/esm/cache.d.ts.map +1 -1
- package/dist/esm/cache.js +32 -5
- package/dist/esm/cache.js.map +1 -1
- package/dist/esm/client.d.ts +55 -1
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +297 -37
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/defaults.d.ts +58 -0
- package/dist/esm/defaults.d.ts.map +1 -0
- package/dist/esm/defaults.js +136 -0
- package/dist/esm/defaults.js.map +1 -0
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/persistence.d.ts +26 -0
- package/dist/esm/persistence.d.ts.map +1 -0
- package/dist/esm/persistence.js +70 -0
- package/dist/esm/persistence.js.map +1 -0
- package/dist/esm/status-reporter.d.ts +42 -0
- package/dist/esm/status-reporter.d.ts.map +1 -0
- package/dist/esm/status-reporter.js +148 -0
- package/dist/esm/status-reporter.js.map +1 -0
- package/dist/esm/streaming.d.ts +10 -0
- package/dist/esm/streaming.d.ts.map +1 -1
- package/dist/esm/streaming.js +9 -1
- package/dist/esm/streaming.js.map +1 -1
- package/dist/esm/sync.d.ts +105 -0
- package/dist/esm/sync.d.ts.map +1 -0
- package/dist/esm/sync.js +187 -0
- package/dist/esm/sync.js.map +1 -0
- package/dist/esm/types.d.ts +78 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cjs/client.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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.
|
|
150
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
478
|
+
// 1) Cached value (from a prior live call) wins over offline defaults.
|
|
328
479
|
const cached = this.cache.get(key);
|
|
329
|
-
|
|
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
|
|
334
|
-
|
|
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
|
package/dist/cjs/client.js.map
CHANGED
|
@@ -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":";;;AAUA,mCAAoC;AACpC,2CAA+C;AAC/C,+CAAkD;AAClD,iCAAqC;AACrC,+CAA+C;AAC/C,uDAAkD;AAClD,yCAMoB;AACpB,uDAAmD;AAEnD,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAkBrD,6EAA6E;AAC7E,SAAS,UAAU,CAAC,GAAW,EAAE,QAAgB;IAC/C,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IAC1C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS,CAAC,CAAC,OAAO,GAAG,KAAK,MAAM,CAAC;QACtC,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC,CAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,CAAI,IAAI,CAAC;YAAC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,GAAG,CAAC;QAAC,CAAC;QACrE,OAAO,CAAC,CAAQ,OAAO,GAAG,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,qEAAqE;AACrE,SAAS,UAAU,CAAC,GAAY;IAC9B,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC;QACnD,QAAQ,EAAE;YACR,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;YAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;YACxB,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,KAAK;YACtC,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;SACrB;QACD,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;KAChC,CAAC;AACJ,CAAC;AACD,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAExC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAa,kBAAkB;IACZ,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,WAAW,CAAS;IACpB,OAAO,CAAS;IAChB,WAAW,CAAS;IACpB,WAAW,CAAU;IACrB,SAAS,CAAqB;IAC9B,IAAI,CAA6C;IACjD,YAAY,CAAU;IACtB,YAAY,CAA2B;IAEvC,KAAK,CAAY;IAC1B,YAAY,GAA4B,IAAI,CAAC;IACpC,WAAW,CAA2B;IACtC,gBAAgB,CAAU;IACnC,WAAW,GAAuB,IAAI,CAAC;IACvC,YAAY,GAAG,KAAK,CAAC;IACrB,UAAU,GAAsB,IAAI,CAAC;IACrC,eAAe,GAA2C,IAAI,CAAC;IAC/D,sBAAsB,GAAG,EAAE,CAAC;IAC5B,kBAAkB,CAAU;IAC5B,uBAAuB,CAAU;IACjC,YAAY,GAAkB,IAAI,CAAC;IACnC,QAAQ,GAAgC,IAAI,GAAG,EAAE,CAAC;IAClD,cAAc,GAA0B,IAAI,CAAC;IACpC,qBAAqB,CAAgB;IAEtD,YAAY,OAAsB;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAErE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAEzC,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAS,CAAC,OAAO,CAAC,YAAY,IAAI,wBAAwB,CAAC,CAAC;QAC7E,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,eAAe;YACxC,CAAC,CAAC,IAAI,+BAAiB,CACnB,OAAO,CAAC,eAAe,EACvB,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,EACzD,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAC1D;YACH,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;IACvC,CAAC;IAED,8EAA8E;IAC9E,YAAY;IACZ,8EAA8E;IAE9E;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,GAAG,IAAA,4BAAc,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,CAAC,kBAAkB,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO;QACT,CAAC;QAED,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,qEAAqE;QACrE,wEAAwE;QACxE,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAW,CAAC;YACjC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;YACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,EAAE,IAAI,CAAC,gBAAgB;gBAC3B,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE;gBAC7C,CAAC,CAAC,SAAS;YACb,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,CAAC;SACxD,CAAC,CAAC;QAEH,yEAAyE;QACzE,mEAAmE;QACnE,wEAAwE;QACxE,oEAAoE;QACpE,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAgB,CAAC;YACvC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,mCAAmC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACvJ,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;YAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;gBACnB,IAAI,CAAC,MAAM,CAAC,MAAM;oBAAE,OAAO;gBAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;qBAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACb,IAAI,IAAI,EAAE,CAAC;wBACT,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACrB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,2BAA2B;YACjD,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE;YAChD,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,EAAE;YACzD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACf,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC;gBACpC,uEAAuE;gBACvE,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;SACF,CAAC,CAAC;QAEH,0EAA0E;QAC1E,4EAA4E;QAC5E,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;YAClD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;gBAC3F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;gBACpF,IAAI,CAAC,UAAU,GAAG,IAAA,4BAAc,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpD,IAAI,CAAC,kBAAkB,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrD,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC7B,yEAAyE;gBACzE,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,yEAAyE;YACzE,0EAA0E;QAC5E,CAAC;QAED,wDAAwD;QACxD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,0DAA0D;IAC1D,KAAK;QACH,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAEO,mBAAmB;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACrC,IAAI,CAAC,CAAC,CAAC,YAAY;YAAE,OAAO;QAC5B,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CACV,yFAAyF,CAC1F,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,CAAC;YACvC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,UAAU,EAAE,CAAC,CAAC,sBAAsB;YACpC,OAAO,EAAE,CAAC,CAAC,mBAAmB;YAC9B,SAAS,EAAE,CAAC,CAAC,qBAAqB;YAClC,UAAU,EAAE,CAAC,CAAC,sBAAsB;YACpC,IAAI,EAAE,CAAC,CAAC,gBAAgB;YACxB,cAAc,EAAE,CAAC,CAAC,0BAA0B;SAC7C,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,+DAA+D;IAC/D,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,8EAA8E;IAC9E,sBAAsB;IACtB,8EAA8E;IAE9E,oCAAoC;IACpC,KAAK,CAAC,SAAS,CACb,GAAW,EACX,YAAqB,EACrB,OAA2B;QAE3B,MAAM,MAAM,GAAY,MAAM,IAAI,CAAC,QAAQ,CAAU,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QACjF,IAAI,OAAO,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAC/C,oEAAoE;QACpE,sEAAsE;QACtE,iEAAiE;QACjE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,OAAO,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC;YACpC,IAAI,OAAO,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;QACxC,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,WAAW,CACf,GAAW,EACX,YAAoB,EACpB,OAA2B;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAS,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QACvE,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;IAC5D,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,QAAQ,CACZ,GAAW,EACX,YAAoB,EACpB,OAA2B;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAS,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QACvE,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;YAC3D,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,YAAY,CAAC;IACnB,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,SAAS,CACb,GAAW,EACX,YAAe,EACf,OAA2B;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAI,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,MAAM,IAAI,YAAY,CAAC;IAChC,CAAC;IAED,8EAA8E;IAC9E,oBAAoB;IACpB,8EAA8E;IAE9E;;;OAGG;IACH,KAAK,CAAC,MAAM,CACV,GAAW,EACX,OAA2B;QAE3B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAC1B,wBAAwB,EACxB;gBACE,UAAU,EAAE,IAAI,CAAC,OAAO;gBACxB,cAAc,EAAE,IAAI,CAAC,WAAW;gBAChC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,GAAG;gBACb,OAAO,EAAE,OAAO,IAAI,EAAE;gBACtB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1D,CACF,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,mBAAmB;IACnB,8EAA8E;IAE9E,6DAA6D;IAC7D,eAAe,CAAC,QAAsB;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAED,gEAAgE;IAChE,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACtC,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,UAAU,CAAC,GAAW;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,IAAI,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,2DAA2D;IAC3D,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,OAAO;QACL,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;QAEhD,2EAA2E;QAC3E,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;gBACf,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;gBACnB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC/B,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO;gBACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;gBACpC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;gBAClC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;gBAC7C,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAC,CAAC;QACL,CAAC;QAED,qEAAqE;QACrE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC/B,MAAM,MAAM,GAAG,IAAA,+BAAa,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvE,MAAM,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAClD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;oBACf,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC;oBAC5C,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;oBACjC,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,KAAK;oBACnC,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,cAAc;oBACtB,SAAS,EAAE,IAAI,CAAC,kBAAkB;oBAClC,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC9C,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC7B,MAAM,QAAQ,GAAG,IAAA,+BAAoB,EACnC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,sBAAsB,EAC3B,GAAG,CACJ,CAAC;gBACF,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;oBACb,GAAG;oBACH,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;oBACtE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,KAAK;oBACnC,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,iBAAiB;oBACzB,SAAS,EAAE,IAAI,CAAC,uBAAuB;oBACvC,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,8EAA8E;IAC9E,sBAAsB;IACtB,8EAA8E;IAE9E,QAAQ,CACN,SAAiB,EACjB,OAAU,EACV,OAAgB;QAEhB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,EAAE,CAAC;YACV,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;YAC3D,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;;gBACnC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,QAAQ,CACN,SAAiB,EACjB,QAA4B;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,yCAAyC,SAAS,uCAAuC,CAC1F,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACzC,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO;oBAAE,OAAO,GAAG,CAAC,OAAY,CAAC;YACpD,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,sCAAsC,SAAS,gGAAgG,CAChJ,CAAC;QACJ,CAAC;QACD,OAAO,UAAU,CAAC,OAAY,CAAC;IACjC,CAAC;IAED,8EAA8E;IAC9E,kBAAkB;IAClB,8EAA8E;IAEtE,KAAK,CAAC,QAAQ,CACpB,GAAW,EACX,YAAe,EACf,OAA2B;QAE3B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAA,+BAAa,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAC9E,IAAI,MAAM,CAAC,MAAM,KAAK,gBAAgB;gBAAE,OAAO,YAAY,CAAC;YAC5D,OAAO,MAAM,CAAC,KAAqB,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,YAAY,CAAC;QAE1C,gEAAgE;QAChE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAC5B,wBAAwB,EACxB;gBACE,UAAU,EAAE,IAAI,CAAC,OAAO;gBACxB,cAAc,EAAE,IAAI,CAAC,WAAW;gBAChC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,GAAG;gBACb,OAAO,EAAE,OAAO,IAAI,EAAE;gBACtB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1D,CACF,CAAC;YACF,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;YACvE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC,KAAU,CAAC;YAC1D,kDAAkD;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe;gBAClC,CAAC,CAAC,IAAA,+BAAoB,EAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,sBAAsB,EAAE,GAAG,CAAC;gBAC9E,CAAC,CAAC,SAAS,CAAC;YACd,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,SAAS,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,IAAA,6BAAkB,EAAI,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAChE,IAAI,OAAO,KAAK,SAAS;oBAAE,OAAO,OAAO,CAAC;YAC5C,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,mBAAmB;IACnB,8EAA8E;IAE9E;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,oBAAoB,CAAC,IAAY;QACrC,MAAM,OAAO,GAAG,MAAM,IAAA,2BAAgB,EAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,OAAgB;QAC3B,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACzE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAA,wBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC;QACtC,IAAI,CAAC,uBAAuB,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,MAAM,KAAK,GAAc,EAAE,CAAC;QAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,SAAS,CAAC;YACR,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAGjC,KAAK,EACL,4BAA4B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,QAAQ,WAAW,MAAM,EAAE,CAChK,CAAC;YACF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACzE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAC3E,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;oBACjD,OAAO,CAAC,IAAI,CACV,uCAAuC,QAAQ,CAAC,aAAa,GAAG;wBAC9D,YAAY,IAAI,CAAC,OAAO,SAAS,IAAI,CAAC,WAAW,WAAW,KAAK,CAAC,MAAM,GAAG,CAC9E,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC;YAC7C,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;YACzE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK;gBAAE,MAAM;YACxG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QACxB,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,MAAc;QACpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAC5B,KAAK,EACL,iBAAiB,GAAG,CAAC,MAAM,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CACvE,CAAC;QACF,IAAI,CAAC,GAAG,EAAE,GAAG;YAAE,OAAO,IAAI,CAAC;QAC3B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAa;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,IAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QAErC,MAAM,IAAI,GAAgB;YACxB,MAAM;YACN,OAAO,EAAE;gBACP,GAAG,IAAI,CAAC,WAAW,EAAE;gBACrB,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC3B;SACF,CAAC;QAEF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,2BAA2B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,IAAI,EAAE,CAC9E,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;IACvC,CAAC;IAEO,WAAW;QACjB,MAAM,OAAO,GAA2B;YACtC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;SACvC,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACrD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,aAAa,CAAC,GAAW;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAiB,IAAI,EAAE,QAAQ,IAAI;YAC/C,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,KAAK;YAClB,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,OAAO;YACL,GAAG;YACH,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI;YAC1B,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK;YAC/B,MAAM,EAAE,SAAS;YACjB,QAAQ;YACR,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,GAAW;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAiB,IAAI,EAAE,QAAQ,IAAI;YAC/C,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,KAAK;YAClB,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,OAAO;YACL,GAAG;YACH,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI;YAC1B,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK;YAC/B,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;YAChC,QAAQ;YACR,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;IACJ,CAAC;CACF;AA7pBD,gDA6pBC;AAED,+DAA+D;AAC/D,SAAS,GAAG,CAAC,KAAa;IACxB,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,6DAA6D;AAC7D,SAAS,cAAc,CAAC,QAAgB;IACtC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;QACjC,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;QACjC,KAAK,QAAQ,CAAC,CAAE,OAAO,QAAQ,CAAC;QAChC,KAAK,MAAM,CAAC,CAAI,OAAO,MAAM,CAAC;QAC9B,KAAK,QAAQ,CAAC,CAAE,OAAO,QAAQ,CAAC;QAChC,OAAO,CAAC,CAAQ,OAAO,SAAS,CAAC;IACnC,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,SAAS,WAAW,CAAC,KAAc;IACjC,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;QACjC,KAAK,QAAQ,CAAC,CAAE,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtE,KAAK,QAAQ,CAAC,CAAE,OAAO,QAAQ,CAAC;QAChC,KAAK,QAAQ,CAAC,CAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,OAAO,CAAC,CAAQ,OAAO,SAAS,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,YAAqB;IAC/C,IAAI,OAAO,YAAY,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACrD,IAAI,OAAO,YAAY,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACtD,IAAI,OAAO,YAAY,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACtD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -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"}
|