@openfeature/server-sdk 1.9.1 → 1.10.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/dist/esm/index.js CHANGED
@@ -1,43 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __async = (__this, __arguments, generator) => {
21
- return new Promise((resolve, reject) => {
22
- var fulfilled = (value) => {
23
- try {
24
- step(generator.next(value));
25
- } catch (e) {
26
- reject(e);
27
- }
28
- };
29
- var rejected = (value) => {
30
- try {
31
- step(generator.throw(value));
32
- } catch (e) {
33
- reject(e);
34
- }
35
- };
36
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
- step((generator = generator.apply(__this, __arguments)).next());
38
- });
39
- };
40
-
41
1
  // src/client/open-feature-client.ts
42
2
  import {
43
3
  ErrorCode as ErrorCode2,
@@ -50,11 +10,9 @@ import {
50
10
  import { ProviderStatus } from "@openfeature/core";
51
11
  var REASON_NO_OP = "No-op";
52
12
  var NoopFeatureProvider = class {
53
- constructor() {
54
- this.metadata = {
55
- name: "No-op Provider"
56
- };
57
- }
13
+ metadata = {
14
+ name: "No-op Provider"
15
+ };
58
16
  get status() {
59
17
  return ProviderStatus.NOT_READY;
60
18
  }
@@ -91,6 +49,7 @@ import {
91
49
  // src/provider/in-memory-provider/variant-not-found-error.ts
92
50
  import { ErrorCode, OpenFeatureError } from "@openfeature/core";
93
51
  var VariantFoundError = class extends OpenFeatureError {
52
+ code;
94
53
  constructor(message) {
95
54
  super(message);
96
55
  Object.setPrototypeOf(this, VariantFoundError.prototype);
@@ -101,13 +60,14 @@ var VariantFoundError = class extends OpenFeatureError {
101
60
 
102
61
  // src/provider/in-memory-provider/in-memory-provider.ts
103
62
  var InMemoryProvider = class {
63
+ events = new OpenFeatureEventEmitter();
64
+ runsOn = "server";
65
+ metadata = {
66
+ name: "in-memory"
67
+ };
68
+ _flagConfiguration;
104
69
  constructor(flagConfiguration = {}) {
105
- this.events = new OpenFeatureEventEmitter();
106
- this.runsOn = "server";
107
- this.metadata = {
108
- name: "in-memory"
109
- };
110
- this._flagConfiguration = __spreadValues({}, flagConfiguration);
70
+ this._flagConfiguration = { ...flagConfiguration };
111
71
  }
112
72
  /**
113
73
  * Overwrites the configured flags.
@@ -115,7 +75,7 @@ var InMemoryProvider = class {
115
75
  */
116
76
  putConfiguration(flagConfiguration) {
117
77
  const flagsChanged = Object.entries(flagConfiguration).filter(([key, value]) => this._flagConfiguration[key] !== value).map(([key]) => key);
118
- this._flagConfiguration = __spreadValues({}, flagConfiguration);
78
+ this._flagConfiguration = { ...flagConfiguration };
119
79
  this.events.emit(ServerProviderEvents.ConfigurationChanged, { flagsChanged });
120
80
  }
121
81
  resolveBooleanEvaluation(flagKey, defaultValue, context, logger) {
@@ -124,56 +84,49 @@ var InMemoryProvider = class {
124
84
  resolveNumberEvaluation(flagKey, defaultValue, context, logger) {
125
85
  return this.resolveFlagWithReason(flagKey, defaultValue, context, logger);
126
86
  }
127
- resolveStringEvaluation(flagKey, defaultValue, context, logger) {
128
- return __async(this, null, function* () {
129
- return this.resolveFlagWithReason(flagKey, defaultValue, context, logger);
130
- });
87
+ async resolveStringEvaluation(flagKey, defaultValue, context, logger) {
88
+ return this.resolveFlagWithReason(flagKey, defaultValue, context, logger);
131
89
  }
132
- resolveObjectEvaluation(flagKey, defaultValue, context, logger) {
133
- return __async(this, null, function* () {
134
- return this.resolveFlagWithReason(flagKey, defaultValue, context, logger);
135
- });
90
+ async resolveObjectEvaluation(flagKey, defaultValue, context, logger) {
91
+ return this.resolveFlagWithReason(flagKey, defaultValue, context, logger);
136
92
  }
137
- resolveFlagWithReason(flagKey, defaultValue, ctx, logger) {
138
- return __async(this, null, function* () {
139
- try {
140
- const resolutionResult = this.lookupFlagValue(flagKey, defaultValue, ctx, logger);
141
- if (typeof (resolutionResult == null ? void 0 : resolutionResult.value) != typeof defaultValue) {
142
- throw new TypeMismatchError();
143
- }
144
- return resolutionResult;
145
- } catch (error) {
146
- if (!(error instanceof OpenFeatureError2)) {
147
- throw new GeneralError((error == null ? void 0 : error.message) || "unknown error");
148
- }
149
- throw error;
93
+ async resolveFlagWithReason(flagKey, defaultValue, ctx, logger) {
94
+ try {
95
+ const resolutionResult = this.lookupFlagValue(flagKey, defaultValue, ctx, logger);
96
+ if (typeof resolutionResult?.value != typeof defaultValue) {
97
+ throw new TypeMismatchError();
150
98
  }
151
- });
99
+ return resolutionResult;
100
+ } catch (error) {
101
+ if (!(error instanceof OpenFeatureError2)) {
102
+ throw new GeneralError(error?.message || "unknown error");
103
+ }
104
+ throw error;
105
+ }
152
106
  }
153
107
  lookupFlagValue(flagKey, defaultValue, ctx, logger) {
154
- var _a;
155
108
  if (!(flagKey in this._flagConfiguration)) {
156
109
  const message = `no flag found with key ${flagKey}`;
157
- logger == null ? void 0 : logger.debug(message);
110
+ logger?.debug(message);
158
111
  throw new FlagNotFoundError(message);
159
112
  }
160
113
  const flagSpec = this._flagConfiguration[flagKey];
161
114
  if (flagSpec.disabled) {
162
115
  return { value: defaultValue, reason: StandardResolutionReasons.DISABLED };
163
116
  }
164
- const isContextEval = ctx && (flagSpec == null ? void 0 : flagSpec.contextEvaluator);
165
- const variant = isContextEval ? (_a = flagSpec.contextEvaluator) == null ? void 0 : _a.call(flagSpec, ctx) : flagSpec.defaultVariant;
166
- const value = variant && (flagSpec == null ? void 0 : flagSpec.variants[variant]);
117
+ const isContextEval = ctx && flagSpec?.contextEvaluator;
118
+ const variant = isContextEval ? flagSpec.contextEvaluator?.(ctx) : flagSpec.defaultVariant;
119
+ const value = variant && flagSpec?.variants[variant];
167
120
  if (value === void 0) {
168
121
  const message = `no value associated with variant ${variant}`;
169
- logger == null ? void 0 : logger.error(message);
122
+ logger?.error(message);
170
123
  throw new VariantFoundError(message);
171
124
  }
172
- return __spreadProps(__spreadValues({
173
- value
174
- }, variant && { variant }), {
125
+ return {
126
+ value,
127
+ ...variant && { variant },
175
128
  reason: isContextEval ? StandardResolutionReasons.TARGETING_MATCH : StandardResolutionReasons.STATIC
176
- });
129
+ };
177
130
  }
178
131
  };
179
132
 
@@ -199,12 +152,11 @@ var NOOP_TRANSACTION_CONTEXT_PROPAGATOR = new NoopTransactionContextPropagator()
199
152
  import { GenericEventEmitter } from "@openfeature/core";
200
153
  import EventEmitter from "events";
201
154
  var OpenFeatureEventEmitter = class extends GenericEventEmitter {
155
+ eventEmitter = new EventEmitter({ captureRejections: true });
202
156
  constructor() {
203
157
  super();
204
- this.eventEmitter = new EventEmitter({ captureRejections: true });
205
158
  this.eventEmitter.on("error", (err) => {
206
- var _a;
207
- (_a = this._logger) == null ? void 0 : _a.error("Error running event handler:", err);
159
+ this._logger?.error("Error running event handler:", err);
208
160
  });
209
161
  }
210
162
  };
@@ -216,12 +168,12 @@ import { ServerProviderEvents } from "@openfeature/core";
216
168
  var GLOBAL_OPENFEATURE_API_KEY = Symbol.for("@openfeature/js-sdk/api");
217
169
  var _globalThis = globalThis;
218
170
  var OpenFeatureAPI = class extends OpenFeatureCommonAPI {
171
+ _events = new OpenFeatureEventEmitter();
172
+ _defaultProvider = NOOP_PROVIDER;
173
+ _createEventEmitter = () => new OpenFeatureEventEmitter();
174
+ _transactionContextPropagator = NOOP_TRANSACTION_CONTEXT_PROPAGATOR;
219
175
  constructor() {
220
176
  super("server");
221
- this._events = new OpenFeatureEventEmitter();
222
- this._defaultProvider = NOOP_PROVIDER;
223
- this._createEventEmitter = () => new OpenFeatureEventEmitter();
224
- this._transactionContextPropagator = NOOP_TRANSACTION_CONTEXT_PROPAGATOR;
225
177
  }
226
178
  /**
227
179
  * Gets a singleton instance of the OpenFeature API.
@@ -245,10 +197,9 @@ var OpenFeatureAPI = class extends OpenFeatureCommonAPI {
245
197
  return this._context;
246
198
  }
247
199
  getClient(nameOrContext, versionOrContext, contextOrUndefined) {
248
- var _a, _b;
249
200
  const name = stringOrUndefined(nameOrContext);
250
201
  const version = stringOrUndefined(versionOrContext);
251
- const context = (_b = (_a = objectOrUndefined(nameOrContext)) != null ? _a : objectOrUndefined(versionOrContext)) != null ? _b : objectOrUndefined(contextOrUndefined);
202
+ const context = objectOrUndefined(nameOrContext) ?? objectOrUndefined(versionOrContext) ?? objectOrUndefined(contextOrUndefined);
252
203
  return new OpenFeatureClient(
253
204
  () => this.getProviderForClient(name),
254
205
  () => this.buildAndCacheEventEmitterForClient(name),
@@ -266,9 +217,9 @@ var OpenFeatureAPI = class extends OpenFeatureCommonAPI {
266
217
  }
267
218
  setTransactionContextPropagator(transactionContextPropagator) {
268
219
  const baseMessage = "Invalid TransactionContextPropagator, will not be set: ";
269
- if (typeof (transactionContextPropagator == null ? void 0 : transactionContextPropagator.getTransactionContext) !== "function") {
220
+ if (typeof transactionContextPropagator?.getTransactionContext !== "function") {
270
221
  this._logger.error(`${baseMessage}: getTransactionContext is not a function.`);
271
- } else if (typeof (transactionContextPropagator == null ? void 0 : transactionContextPropagator.setTransactionContext) !== "function") {
222
+ } else if (typeof transactionContextPropagator?.setTransactionContext !== "function") {
272
223
  this._logger.error(`${baseMessage}: setTransactionContext is not a function.`);
273
224
  } else {
274
225
  this._transactionContextPropagator = transactionContextPropagator;
@@ -283,8 +234,8 @@ var OpenFeatureAPI = class extends OpenFeatureCommonAPI {
283
234
  return this._transactionContextPropagator.getTransactionContext();
284
235
  } catch (err) {
285
236
  const error = err;
286
- this._logger.error(`Error getting transaction context: ${error == null ? void 0 : error.message}, returning empty context.`);
287
- this._logger.error(error == null ? void 0 : error.stack);
237
+ this._logger.error(`Error getting transaction context: ${error?.message}, returning empty context.`);
238
+ this._logger.error(error?.stack);
288
239
  return {};
289
240
  }
290
241
  }
@@ -298,9 +249,11 @@ var OpenFeatureClient = class {
298
249
  this.emitterAccessor = emitterAccessor;
299
250
  this.globalLogger = globalLogger;
300
251
  this.options = options;
301
- this._hooks = [];
302
252
  this._context = context;
303
253
  }
254
+ _context;
255
+ _hooks = [];
256
+ _clientLogger;
304
257
  get metadata() {
305
258
  return {
306
259
  name: this.options.name,
@@ -309,14 +262,13 @@ var OpenFeatureClient = class {
309
262
  };
310
263
  }
311
264
  addHandler(eventType, handler) {
312
- var _a;
313
265
  this.emitterAccessor().addHandler(eventType, handler);
314
266
  const shouldRunNow = statusMatchesEvent(eventType, this._provider.status);
315
267
  if (shouldRunNow) {
316
268
  try {
317
269
  handler({ clientName: this.metadata.name, providerName: this._provider.metadata.name });
318
270
  } catch (err) {
319
- (_a = this._logger) == null ? void 0 : _a.error("Error running event handler:", err);
271
+ this._logger?.error("Error running event handler:", err);
320
272
  }
321
273
  }
322
274
  }
@@ -348,10 +300,8 @@ var OpenFeatureClient = class {
348
300
  this._hooks = [];
349
301
  return this;
350
302
  }
351
- getBooleanValue(flagKey, defaultValue, context, options) {
352
- return __async(this, null, function* () {
353
- return (yield this.getBooleanDetails(flagKey, defaultValue, context, options)).value;
354
- });
303
+ async getBooleanValue(flagKey, defaultValue, context, options) {
304
+ return (await this.getBooleanDetails(flagKey, defaultValue, context, options)).value;
355
305
  }
356
306
  getBooleanDetails(flagKey, defaultValue, context, options) {
357
307
  return this.evaluate(
@@ -363,10 +313,8 @@ var OpenFeatureClient = class {
363
313
  options
364
314
  );
365
315
  }
366
- getStringValue(flagKey, defaultValue, context, options) {
367
- return __async(this, null, function* () {
368
- return (yield this.getStringDetails(flagKey, defaultValue, context, options)).value;
369
- });
316
+ async getStringValue(flagKey, defaultValue, context, options) {
317
+ return (await this.getStringDetails(flagKey, defaultValue, context, options)).value;
370
318
  }
371
319
  getStringDetails(flagKey, defaultValue, context, options) {
372
320
  return this.evaluate(
@@ -379,10 +327,8 @@ var OpenFeatureClient = class {
379
327
  options
380
328
  );
381
329
  }
382
- getNumberValue(flagKey, defaultValue, context, options) {
383
- return __async(this, null, function* () {
384
- return (yield this.getNumberDetails(flagKey, defaultValue, context, options)).value;
385
- });
330
+ async getNumberValue(flagKey, defaultValue, context, options) {
331
+ return (await this.getNumberDetails(flagKey, defaultValue, context, options)).value;
386
332
  }
387
333
  getNumberDetails(flagKey, defaultValue, context, options) {
388
334
  return this.evaluate(
@@ -395,109 +341,101 @@ var OpenFeatureClient = class {
395
341
  options
396
342
  );
397
343
  }
398
- getObjectValue(flagKey, defaultValue, context, options) {
399
- return __async(this, null, function* () {
400
- return (yield this.getObjectDetails(flagKey, defaultValue, context, options)).value;
401
- });
344
+ async getObjectValue(flagKey, defaultValue, context, options) {
345
+ return (await this.getObjectDetails(flagKey, defaultValue, context, options)).value;
402
346
  }
403
347
  getObjectDetails(flagKey, defaultValue, context, options) {
404
348
  return this.evaluate(flagKey, this._provider.resolveObjectEvaluation, defaultValue, "object", context, options);
405
349
  }
406
- evaluate(_0, _1, _2, _3) {
407
- return __async(this, arguments, function* (flagKey, resolver, defaultValue, flagType, invocationContext = {}, options = {}) {
408
- var _a;
409
- const allHooks = [
410
- ...OpenFeature.getHooks(),
411
- ...this.getHooks(),
412
- ...options.hooks || [],
413
- ...this._provider.hooks || []
414
- ];
415
- const allHooksReversed = [...allHooks].reverse();
416
- const mergedContext = __spreadValues(__spreadValues(__spreadValues(__spreadValues({}, OpenFeature.getContext()), OpenFeature.getTransactionContext()), this._context), invocationContext);
417
- const hookContext = {
418
- flagKey,
419
- defaultValue,
420
- flagValueType: flagType,
421
- clientMetadata: this.metadata,
422
- providerMetadata: OpenFeature.providerMetadata,
423
- context: mergedContext,
424
- logger: this._logger
350
+ async evaluate(flagKey, resolver, defaultValue, flagType, invocationContext = {}, options = {}) {
351
+ const allHooks = [
352
+ ...OpenFeature.getHooks(),
353
+ ...this.getHooks(),
354
+ ...options.hooks || [],
355
+ ...this._provider.hooks || []
356
+ ];
357
+ const allHooksReversed = [...allHooks].reverse();
358
+ const mergedContext = {
359
+ ...OpenFeature.getContext(),
360
+ ...OpenFeature.getTransactionContext(),
361
+ ...this._context,
362
+ ...invocationContext
363
+ };
364
+ const hookContext = {
365
+ flagKey,
366
+ defaultValue,
367
+ flagValueType: flagType,
368
+ clientMetadata: this.metadata,
369
+ providerMetadata: OpenFeature.providerMetadata,
370
+ context: mergedContext,
371
+ logger: this._logger
372
+ };
373
+ try {
374
+ const frozenContext = await this.beforeHooks(allHooks, hookContext, options);
375
+ const resolution = await resolver.call(this._provider, flagKey, defaultValue, frozenContext, this._logger);
376
+ const evaluationDetails = {
377
+ ...resolution,
378
+ flagMetadata: Object.freeze(resolution.flagMetadata ?? {}),
379
+ flagKey
425
380
  };
426
- try {
427
- const frozenContext = yield this.beforeHooks(allHooks, hookContext, options);
428
- const resolution = yield resolver.call(this._provider, flagKey, defaultValue, frozenContext, this._logger);
429
- const evaluationDetails = __spreadProps(__spreadValues({}, resolution), {
430
- flagMetadata: Object.freeze((_a = resolution.flagMetadata) != null ? _a : {}),
431
- flagKey
432
- });
433
- yield this.afterHooks(allHooksReversed, hookContext, evaluationDetails, options);
434
- return evaluationDetails;
435
- } catch (err) {
436
- const errorMessage = err == null ? void 0 : err.message;
437
- const errorCode = (err == null ? void 0 : err.code) || ErrorCode2.GENERAL;
438
- yield this.errorHooks(allHooksReversed, hookContext, err, options);
439
- return {
440
- errorCode,
441
- errorMessage,
442
- value: defaultValue,
443
- reason: StandardResolutionReasons2.ERROR,
444
- flagMetadata: Object.freeze({}),
445
- flagKey
446
- };
447
- } finally {
448
- yield this.finallyHooks(allHooksReversed, hookContext, options);
449
- }
450
- });
381
+ await this.afterHooks(allHooksReversed, hookContext, evaluationDetails, options);
382
+ return evaluationDetails;
383
+ } catch (err) {
384
+ const errorMessage = err?.message;
385
+ const errorCode = err?.code || ErrorCode2.GENERAL;
386
+ await this.errorHooks(allHooksReversed, hookContext, err, options);
387
+ return {
388
+ errorCode,
389
+ errorMessage,
390
+ value: defaultValue,
391
+ reason: StandardResolutionReasons2.ERROR,
392
+ flagMetadata: Object.freeze({}),
393
+ flagKey
394
+ };
395
+ } finally {
396
+ await this.finallyHooks(allHooksReversed, hookContext, options);
397
+ }
451
398
  }
452
- beforeHooks(hooks, hookContext, options) {
453
- return __async(this, null, function* () {
454
- var _a;
455
- for (const hook of hooks) {
456
- Object.freeze(hookContext);
457
- Object.assign(hookContext.context, __spreadValues(__spreadValues({}, hookContext.context), yield (_a = hook == null ? void 0 : hook.before) == null ? void 0 : _a.call(hook, hookContext, Object.freeze(options.hookHints))));
458
- }
459
- return Object.freeze(hookContext.context);
460
- });
399
+ async beforeHooks(hooks, hookContext, options) {
400
+ for (const hook of hooks) {
401
+ Object.freeze(hookContext);
402
+ Object.assign(hookContext.context, {
403
+ ...hookContext.context,
404
+ ...await hook?.before?.(hookContext, Object.freeze(options.hookHints))
405
+ });
406
+ }
407
+ return Object.freeze(hookContext.context);
461
408
  }
462
- afterHooks(hooks, hookContext, evaluationDetails, options) {
463
- return __async(this, null, function* () {
464
- var _a;
465
- for (const hook of hooks) {
466
- yield (_a = hook == null ? void 0 : hook.after) == null ? void 0 : _a.call(hook, hookContext, evaluationDetails, options.hookHints);
467
- }
468
- });
409
+ async afterHooks(hooks, hookContext, evaluationDetails, options) {
410
+ for (const hook of hooks) {
411
+ await hook?.after?.(hookContext, evaluationDetails, options.hookHints);
412
+ }
469
413
  }
470
- errorHooks(hooks, hookContext, err, options) {
471
- return __async(this, null, function* () {
472
- var _a;
473
- for (const hook of hooks) {
474
- try {
475
- yield (_a = hook == null ? void 0 : hook.error) == null ? void 0 : _a.call(hook, hookContext, err, options.hookHints);
476
- } catch (err2) {
477
- this._logger.error(`Unhandled error during 'error' hook: ${err2}`);
478
- if (err2 instanceof Error) {
479
- this._logger.error(err2.stack);
480
- }
481
- this._logger.error(err2 == null ? void 0 : err2.stack);
414
+ async errorHooks(hooks, hookContext, err, options) {
415
+ for (const hook of hooks) {
416
+ try {
417
+ await hook?.error?.(hookContext, err, options.hookHints);
418
+ } catch (err2) {
419
+ this._logger.error(`Unhandled error during 'error' hook: ${err2}`);
420
+ if (err2 instanceof Error) {
421
+ this._logger.error(err2.stack);
482
422
  }
423
+ this._logger.error(err2?.stack);
483
424
  }
484
- });
425
+ }
485
426
  }
486
- finallyHooks(hooks, hookContext, options) {
487
- return __async(this, null, function* () {
488
- var _a;
489
- for (const hook of hooks) {
490
- try {
491
- yield (_a = hook == null ? void 0 : hook.finally) == null ? void 0 : _a.call(hook, hookContext, options.hookHints);
492
- } catch (err) {
493
- this._logger.error(`Unhandled error during 'finally' hook: ${err}`);
494
- if (err instanceof Error) {
495
- this._logger.error(err.stack);
496
- }
497
- this._logger.error(err == null ? void 0 : err.stack);
427
+ async finallyHooks(hooks, hookContext, options) {
428
+ for (const hook of hooks) {
429
+ try {
430
+ await hook?.finally?.(hookContext, options.hookHints);
431
+ } catch (err) {
432
+ this._logger.error(`Unhandled error during 'finally' hook: ${err}`);
433
+ if (err instanceof Error) {
434
+ this._logger.error(err.stack);
498
435
  }
436
+ this._logger.error(err?.stack);
499
437
  }
500
- });
438
+ }
501
439
  }
502
440
  get _provider() {
503
441
  return this.providerAccessor();
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/client/open-feature-client.ts", "../../src/provider/no-op-provider.ts", "../../src/provider/in-memory-provider/in-memory-provider.ts", "../../src/provider/in-memory-provider/variant-not-found-error.ts", "../../src/open-feature.ts", "../../src/transaction-context/no-op-transaction-context-propagator.ts", "../../src/events/open-feature-event-emitter.ts", "../../src/events/events.ts", "../../src/index.ts"],
4
4
  "sourcesContent": ["import {\n ClientMetadata,\n ErrorCode,\n EvaluationContext,\n EvaluationDetails,\n EventHandler,\n FlagValue,\n FlagValueType,\n HookContext,\n JsonValue,\n Logger,\n ManageContext,\n OpenFeatureError,\n ResolutionDetails,\n SafeLogger,\n StandardResolutionReasons,\n statusMatchesEvent,\n} from '@openfeature/core';\nimport { FlagEvaluationOptions } from '../evaluation';\nimport { ProviderEvents } from '../events';\nimport { InternalEventEmitter } from '../events/internal/internal-event-emitter';\nimport { Hook } from '../hooks';\nimport { OpenFeature } from '../open-feature';\nimport { Provider } from '../provider';\nimport { Client } from './client';\n\ntype OpenFeatureClientOptions = {\n name?: string;\n version?: string;\n};\n\nexport class OpenFeatureClient implements Client, ManageContext<OpenFeatureClient> {\n private _context: EvaluationContext;\n private _hooks: Hook[] = [];\n private _clientLogger?: Logger;\n\n constructor(\n // we always want the client to use the current provider,\n // so pass a function to always access the currently registered one.\n private readonly providerAccessor: () => Provider,\n private readonly emitterAccessor: () => InternalEventEmitter,\n private readonly globalLogger: () => Logger,\n private readonly options: OpenFeatureClientOptions,\n context: EvaluationContext = {},\n ) {\n this._context = context;\n }\n\n get metadata(): ClientMetadata {\n return {\n name: this.options.name,\n version: this.options.version,\n providerMetadata: this.providerAccessor().metadata,\n };\n }\n\n addHandler(eventType: ProviderEvents, handler: EventHandler): void {\n this.emitterAccessor().addHandler(eventType, handler);\n const shouldRunNow = statusMatchesEvent(eventType, this._provider.status);\n\n if (shouldRunNow) {\n // run immediately, we're in the matching state\n try {\n handler({ clientName: this.metadata.name, providerName: this._provider.metadata.name });\n } catch (err) {\n this._logger?.error('Error running event handler:', err);\n }\n }\n }\n\n removeHandler(eventType: ProviderEvents, handler: EventHandler) {\n this.emitterAccessor().removeHandler(eventType, handler);\n }\n\n getHandlers(eventType: ProviderEvents) {\n return this.emitterAccessor().getHandlers(eventType);\n }\n\n setLogger(logger: Logger): OpenFeatureClient {\n this._clientLogger = new SafeLogger(logger);\n return this;\n }\n\n setContext(context: EvaluationContext): OpenFeatureClient {\n this._context = context;\n return this;\n }\n\n getContext(): EvaluationContext {\n return this._context;\n }\n\n addHooks(...hooks: Hook[]): OpenFeatureClient {\n this._hooks = [...this._hooks, ...hooks];\n return this;\n }\n\n getHooks(): Hook[] {\n return this._hooks;\n }\n\n clearHooks(): OpenFeatureClient {\n this._hooks = [];\n return this;\n }\n\n async getBooleanValue(\n flagKey: string,\n defaultValue: boolean,\n context?: EvaluationContext,\n options?: FlagEvaluationOptions,\n ): Promise<boolean> {\n return (await this.getBooleanDetails(flagKey, defaultValue, context, options)).value;\n }\n\n getBooleanDetails(\n flagKey: string,\n defaultValue: boolean,\n context?: EvaluationContext,\n options?: FlagEvaluationOptions,\n ): Promise<EvaluationDetails<boolean>> {\n return this.evaluate<boolean>(\n flagKey,\n this._provider.resolveBooleanEvaluation,\n defaultValue,\n 'boolean',\n context,\n options,\n );\n }\n\n async getStringValue<T extends string = string>(\n flagKey: string,\n defaultValue: T,\n context?: EvaluationContext,\n options?: FlagEvaluationOptions,\n ): Promise<T> {\n return (await this.getStringDetails<T>(flagKey, defaultValue, context, options)).value;\n }\n\n getStringDetails<T extends string = string>(\n flagKey: string,\n defaultValue: T,\n context?: EvaluationContext,\n options?: FlagEvaluationOptions,\n ): Promise<EvaluationDetails<T>> {\n return this.evaluate<T>(\n flagKey,\n // this isolates providers from our restricted string generic argument.\n this._provider.resolveStringEvaluation as () => Promise<EvaluationDetails<T>>,\n defaultValue,\n 'string',\n context,\n options,\n );\n }\n\n async getNumberValue<T extends number = number>(\n flagKey: string,\n defaultValue: T,\n context?: EvaluationContext,\n options?: FlagEvaluationOptions,\n ): Promise<T> {\n return (await this.getNumberDetails(flagKey, defaultValue, context, options)).value;\n }\n\n getNumberDetails<T extends number = number>(\n flagKey: string,\n defaultValue: T,\n context?: EvaluationContext,\n options?: FlagEvaluationOptions,\n ): Promise<EvaluationDetails<T>> {\n return this.evaluate<T>(\n flagKey,\n // this isolates providers from our restricted number generic argument.\n this._provider.resolveNumberEvaluation as () => Promise<EvaluationDetails<T>>,\n defaultValue,\n 'number',\n context,\n options,\n );\n }\n\n async getObjectValue<T extends JsonValue = JsonValue>(\n flagKey: string,\n defaultValue: T,\n context?: EvaluationContext,\n options?: FlagEvaluationOptions,\n ): Promise<T> {\n return (await this.getObjectDetails(flagKey, defaultValue, context, options)).value;\n }\n\n getObjectDetails<T extends JsonValue = JsonValue>(\n flagKey: string,\n defaultValue: T,\n context?: EvaluationContext,\n options?: FlagEvaluationOptions,\n ): Promise<EvaluationDetails<T>> {\n return this.evaluate<T>(flagKey, this._provider.resolveObjectEvaluation, defaultValue, 'object', context, options);\n }\n\n private async evaluate<T extends FlagValue>(\n flagKey: string,\n resolver: (\n flagKey: string,\n defaultValue: T,\n context: EvaluationContext,\n logger: Logger,\n ) => Promise<ResolutionDetails<T>>,\n defaultValue: T,\n flagType: FlagValueType,\n invocationContext: EvaluationContext = {},\n options: FlagEvaluationOptions = {},\n ): Promise<EvaluationDetails<T>> {\n // merge global, client, and evaluation context\n\n const allHooks = [\n ...OpenFeature.getHooks(),\n ...this.getHooks(),\n ...(options.hooks || []),\n ...(this._provider.hooks || []),\n ];\n const allHooksReversed = [...allHooks].reverse();\n\n // merge global and client contexts\n const mergedContext = {\n ...OpenFeature.getContext(),\n ...OpenFeature.getTransactionContext(),\n ...this._context,\n ...invocationContext,\n };\n\n // this reference cannot change during the course of evaluation\n // it may be used as a key in WeakMaps\n const hookContext: Readonly<HookContext> = {\n flagKey,\n defaultValue,\n flagValueType: flagType,\n clientMetadata: this.metadata,\n providerMetadata: OpenFeature.providerMetadata,\n context: mergedContext,\n logger: this._logger,\n };\n\n try {\n const frozenContext = await this.beforeHooks(allHooks, hookContext, options);\n\n // run the referenced resolver, binding the provider.\n const resolution = await resolver.call(this._provider, flagKey, defaultValue, frozenContext, this._logger);\n\n const evaluationDetails = {\n ...resolution,\n flagMetadata: Object.freeze(resolution.flagMetadata ?? {}),\n flagKey,\n };\n\n await this.afterHooks(allHooksReversed, hookContext, evaluationDetails, options);\n\n return evaluationDetails;\n } catch (err: unknown) {\n const errorMessage: string = (err as Error)?.message;\n const errorCode: ErrorCode = (err as OpenFeatureError)?.code || ErrorCode.GENERAL;\n\n await this.errorHooks(allHooksReversed, hookContext, err, options);\n\n return {\n errorCode,\n errorMessage,\n value: defaultValue,\n reason: StandardResolutionReasons.ERROR,\n flagMetadata: Object.freeze({}),\n flagKey,\n };\n } finally {\n await this.finallyHooks(allHooksReversed, hookContext, options);\n }\n }\n\n private async beforeHooks(hooks: Hook[], hookContext: HookContext, options: FlagEvaluationOptions) {\n for (const hook of hooks) {\n // freeze the hookContext\n Object.freeze(hookContext);\n\n // use Object.assign to avoid modification of frozen hookContext\n Object.assign(hookContext.context, {\n ...hookContext.context,\n ...(await hook?.before?.(hookContext, Object.freeze(options.hookHints))),\n });\n }\n\n // after before hooks, freeze the EvaluationContext.\n return Object.freeze(hookContext.context);\n }\n\n private async afterHooks(\n hooks: Hook[],\n hookContext: HookContext,\n evaluationDetails: EvaluationDetails<FlagValue>,\n options: FlagEvaluationOptions,\n ) {\n // run \"after\" hooks sequentially\n for (const hook of hooks) {\n await hook?.after?.(hookContext, evaluationDetails, options.hookHints);\n }\n }\n\n private async errorHooks(hooks: Hook[], hookContext: HookContext, err: unknown, options: FlagEvaluationOptions) {\n // run \"error\" hooks sequentially\n for (const hook of hooks) {\n try {\n await hook?.error?.(hookContext, err, options.hookHints);\n } catch (err) {\n this._logger.error(`Unhandled error during 'error' hook: ${err}`);\n if (err instanceof Error) {\n this._logger.error(err.stack);\n }\n this._logger.error((err as Error)?.stack);\n }\n }\n }\n\n private async finallyHooks(hooks: Hook[], hookContext: HookContext, options: FlagEvaluationOptions) {\n // run \"finally\" hooks sequentially\n for (const hook of hooks) {\n try {\n await hook?.finally?.(hookContext, options.hookHints);\n } catch (err) {\n this._logger.error(`Unhandled error during 'finally' hook: ${err}`);\n if (err instanceof Error) {\n this._logger.error(err.stack);\n }\n this._logger.error((err as Error)?.stack);\n }\n }\n }\n\n private get _provider(): Provider {\n return this.providerAccessor();\n }\n\n private get _logger() {\n return this._clientLogger || this.globalLogger();\n }\n}\n", "import { ResolutionDetails, JsonValue, ProviderStatus } from '@openfeature/core';\nimport { Provider } from './provider';\n\nconst REASON_NO_OP = 'No-op';\n\n/**\n * The No-op provider is set by default, and simply always returns the default value.\n */\nclass NoopFeatureProvider implements Provider {\n readonly metadata = {\n name: 'No-op Provider',\n } as const;\n\n get status(): ProviderStatus {\n /**\n * This is due to the NoopProvider not being a real provider.\n * We do not want it to trigger the Ready event handlers, so we never set this to ready.\n * With the NoopProvider assigned, the client can be assumed to be uninitialized.\n * https://github.com/open-feature/js-sdk/pull/429#discussion_r1202642654\n */\n return ProviderStatus.NOT_READY;\n }\n\n resolveBooleanEvaluation(_: string, defaultValue: boolean): Promise<ResolutionDetails<boolean>> {\n return this.noOp(defaultValue);\n }\n\n resolveStringEvaluation(_: string, defaultValue: string): Promise<ResolutionDetails<string>> {\n return this.noOp(defaultValue);\n }\n\n resolveNumberEvaluation(_: string, defaultValue: number): Promise<ResolutionDetails<number>> {\n return this.noOp(defaultValue);\n }\n\n resolveObjectEvaluation<T extends JsonValue>(_: string, defaultValue: T): Promise<ResolutionDetails<T>> {\n return this.noOp<T>(defaultValue);\n }\n\n private noOp<T>(defaultValue: T) {\n return Promise.resolve({\n value: defaultValue,\n reason: REASON_NO_OP,\n });\n }\n}\n\nexport const NOOP_PROVIDER = new NoopFeatureProvider();\n", "import {\n EvaluationContext,\n FlagNotFoundError,\n FlagValueType,\n GeneralError,\n JsonValue,\n Logger,\n OpenFeatureError,\n ResolutionDetails,\n StandardResolutionReasons,\n TypeMismatchError\n} from '@openfeature/core';\nimport { Provider } from '../provider';\nimport { Flag, FlagConfiguration } from './flag-configuration';\nimport { VariantFoundError } from './variant-not-found-error';\nimport { OpenFeatureEventEmitter, ProviderEvents } from '../..';\n\n/**\n * A simple OpenFeature provider intended for demos and as a test stub.\n */\nexport class InMemoryProvider implements Provider {\n public readonly events = new OpenFeatureEventEmitter();\n public readonly runsOn = 'server';\n readonly metadata = {\n name: 'in-memory',\n } as const;\n private _flagConfiguration: FlagConfiguration;\n\n constructor(flagConfiguration: FlagConfiguration = {}) {\n this._flagConfiguration = { ...flagConfiguration };\n }\n\n /**\n * Overwrites the configured flags.\n * @param { FlagConfiguration } flagConfiguration new flag configuration\n */\n putConfiguration(flagConfiguration: FlagConfiguration) {\n const flagsChanged = Object.entries(flagConfiguration)\n .filter(([key, value]) => this._flagConfiguration[key] !== value)\n .map(([key]) => key);\n\n this._flagConfiguration = { ...flagConfiguration };\n this.events.emit(ProviderEvents.ConfigurationChanged, { flagsChanged });\n }\n\n resolveBooleanEvaluation(\n flagKey: string,\n defaultValue: boolean,\n context?: EvaluationContext,\n logger?: Logger,\n ): Promise<ResolutionDetails<boolean>> {\n return this.resolveFlagWithReason<boolean>(flagKey, defaultValue, context, logger);\n }\n\n resolveNumberEvaluation(\n flagKey: string,\n defaultValue: number,\n context?: EvaluationContext,\n logger?: Logger,\n ): Promise<ResolutionDetails<number>> {\n return this.resolveFlagWithReason<number>(flagKey, defaultValue, context, logger);\n }\n\n async resolveStringEvaluation(\n flagKey: string,\n defaultValue: string,\n context?: EvaluationContext,\n logger?: Logger,\n ): Promise<ResolutionDetails<string>> {\n return this.resolveFlagWithReason<string>(flagKey, defaultValue, context, logger);\n }\n\n async resolveObjectEvaluation<T extends JsonValue>(\n flagKey: string,\n defaultValue: T,\n context?: EvaluationContext,\n logger?: Logger,\n ): Promise<ResolutionDetails<T>> {\n return this.resolveFlagWithReason<T>(flagKey, defaultValue, context, logger);\n }\n\n private async resolveFlagWithReason<T extends JsonValue | FlagValueType>(\n flagKey: string,\n defaultValue: T,\n ctx?: EvaluationContext,\n logger?: Logger,\n ): Promise<ResolutionDetails<T>> {\n try {\n const resolutionResult = this.lookupFlagValue(flagKey, defaultValue, ctx, logger);\n\n if (typeof resolutionResult?.value != typeof defaultValue) {\n throw new TypeMismatchError();\n }\n\n return resolutionResult;\n } catch (error: unknown) {\n if (!(error instanceof OpenFeatureError)) {\n throw new GeneralError((error as Error)?.message || 'unknown error'); \n }\n throw error;\n }\n }\n\n private lookupFlagValue<T extends JsonValue | FlagValueType>(\n flagKey: string,\n defaultValue: T,\n ctx?: EvaluationContext,\n logger?: Logger,\n ): ResolutionDetails<T> {\n if (!(flagKey in this._flagConfiguration)) {\n const message = `no flag found with key ${flagKey}`;\n logger?.debug(message);\n throw new FlagNotFoundError(message);\n }\n const flagSpec: Flag = this._flagConfiguration[flagKey];\n\n if (flagSpec.disabled) {\n return { value: defaultValue, reason: StandardResolutionReasons.DISABLED };\n }\n\n const isContextEval = ctx && flagSpec?.contextEvaluator;\n const variant = isContextEval ? flagSpec.contextEvaluator?.(ctx) : flagSpec.defaultVariant;\n\n const value = variant && flagSpec?.variants[variant];\n\n if (value === undefined) {\n const message = `no value associated with variant ${variant}`;\n logger?.error(message);\n throw new VariantFoundError(message);\n }\n\n return {\n value: value as T,\n ...(variant && { variant }),\n reason: isContextEval ? StandardResolutionReasons.TARGETING_MATCH : StandardResolutionReasons.STATIC,\n };\n }\n}\n", "import { ErrorCode, OpenFeatureError } from '@openfeature/core';\n\n/**\n * A custom error for the in-memory provider.\n * Indicates the resolved or default variant doesn't exist.\n */\nexport class VariantFoundError extends OpenFeatureError {\n code: ErrorCode;\n constructor(message?: string) {\n super(message);\n Object.setPrototypeOf(this, VariantFoundError.prototype);\n this.name = 'VariantFoundError';\n this.code = ErrorCode.GENERAL;\n }\n}\n", "import { NOOP_PROVIDER, Provider } from './provider';\nimport {\n ManageContext,\n OpenFeatureCommonAPI,\n EvaluationContext,\n objectOrUndefined,\n stringOrUndefined,\n} from '@openfeature/core';\nimport {\n ManageTransactionContextPropagator,\n NOOP_TRANSACTION_CONTEXT_PROPAGATOR,\n TransactionContext,\n TransactionContextPropagator,\n} from './transaction-context';\nimport { Client, OpenFeatureClient } from './client';\nimport { OpenFeatureEventEmitter } from './events';\nimport { Hook } from './hooks';\n\n// use a symbol as a key for the global singleton\nconst GLOBAL_OPENFEATURE_API_KEY = Symbol.for('@openfeature/js-sdk/api');\n\ntype OpenFeatureGlobal = {\n [GLOBAL_OPENFEATURE_API_KEY]?: OpenFeatureAPI;\n};\nconst _globalThis = globalThis as OpenFeatureGlobal;\n\nexport class OpenFeatureAPI\n extends OpenFeatureCommonAPI<Provider, Hook>\n implements ManageContext<OpenFeatureAPI>, ManageTransactionContextPropagator<OpenFeatureCommonAPI<Provider>>\n{\n protected _events = new OpenFeatureEventEmitter();\n protected _defaultProvider: Provider = NOOP_PROVIDER;\n protected _createEventEmitter = () => new OpenFeatureEventEmitter();\n\n private _transactionContextPropagator: TransactionContextPropagator = NOOP_TRANSACTION_CONTEXT_PROPAGATOR;\n\n private constructor() {\n super('server');\n }\n\n /**\n * Gets a singleton instance of the OpenFeature API.\n * @ignore\n * @returns {OpenFeatureAPI} OpenFeature API\n */\n static getInstance(): OpenFeatureAPI {\n const globalApi = _globalThis[GLOBAL_OPENFEATURE_API_KEY];\n if (globalApi) {\n return globalApi;\n }\n\n const instance = new OpenFeatureAPI();\n _globalThis[GLOBAL_OPENFEATURE_API_KEY] = instance;\n return instance;\n }\n\n setContext(context: EvaluationContext): this {\n this._context = context;\n return this;\n }\n\n getContext(): EvaluationContext {\n return this._context;\n }\n\n /**\n * A factory function for creating new unnamed OpenFeature clients. Clients can contain\n * their own state (e.g. logger, hook, context). Multiple clients can be used\n * to segment feature flag configuration.\n *\n * All unnamed clients use the same provider set via {@link this.setProvider setProvider}.\n * @param {EvaluationContext} context Evaluation context that should be set on the client to used during flag evaluations\n * @returns {Client} OpenFeature Client\n */\n getClient(context?: EvaluationContext): Client;\n /**\n * A factory function for creating new named OpenFeature clients. Clients can contain\n * their own state (e.g. logger, hook, context). Multiple clients can be used\n * to segment feature flag configuration.\n *\n * If there is already a provider bound to this name via {@link this.setProvider setProvider}, this provider will be used.\n * Otherwise, the default provider is used until a provider is assigned to that name.\n * @param {string} name The name of the client\n * @param {EvaluationContext} context Evaluation context that should be set on the client to used during flag evaluations\n * @returns {Client} OpenFeature Client\n */\n getClient(name: string, context?: EvaluationContext): Client;\n /**\n * A factory function for creating new named OpenFeature clients. Clients can contain\n * their own state (e.g. logger, hook, context). Multiple clients can be used\n * to segment feature flag configuration.\n *\n * If there is already a provider bound to this name via {@link this.setProvider setProvider}, this provider will be used.\n * Otherwise, the default provider is used until a provider is assigned to that name.\n * @param {string} name The name of the client\n * @param {string} version The version of the client (only used for metadata)\n * @param {EvaluationContext} context Evaluation context that should be set on the client to used during flag evaluations\n * @returns {Client} OpenFeature Client\n */\n getClient(name: string, version: string, context?: EvaluationContext): Client;\n getClient(\n nameOrContext?: string | EvaluationContext,\n versionOrContext?: string | EvaluationContext,\n contextOrUndefined?: EvaluationContext,\n ): Client {\n const name = stringOrUndefined(nameOrContext);\n const version = stringOrUndefined(versionOrContext);\n const context =\n objectOrUndefined<EvaluationContext>(nameOrContext) ??\n objectOrUndefined<EvaluationContext>(versionOrContext) ??\n objectOrUndefined<EvaluationContext>(contextOrUndefined);\n\n return new OpenFeatureClient(\n () => this.getProviderForClient(name),\n () => this.buildAndCacheEventEmitterForClient(name),\n () => this._logger,\n { name, version },\n context,\n );\n }\n\n /**\n * Clears all registered providers and resets the default provider.\n * @returns {Promise<void>}\n */\n clearProviders(): Promise<void> {\n return super.clearProvidersAndSetDefault(NOOP_PROVIDER);\n }\n\n setTransactionContextPropagator(\n transactionContextPropagator: TransactionContextPropagator,\n ): OpenFeatureCommonAPI<Provider> {\n const baseMessage = 'Invalid TransactionContextPropagator, will not be set: ';\n if (typeof transactionContextPropagator?.getTransactionContext !== 'function') {\n this._logger.error(`${baseMessage}: getTransactionContext is not a function.`);\n } else if (typeof transactionContextPropagator?.setTransactionContext !== 'function') {\n this._logger.error(`${baseMessage}: setTransactionContext is not a function.`);\n } else {\n this._transactionContextPropagator = transactionContextPropagator;\n }\n return this;\n }\n\n setTransactionContext<R>(\n transactionContext: TransactionContext,\n callback: (...args: unknown[]) => R,\n ...args: unknown[]\n ): void {\n this._transactionContextPropagator.setTransactionContext(transactionContext, callback, ...args);\n }\n\n getTransactionContext(): TransactionContext {\n try {\n return this._transactionContextPropagator.getTransactionContext();\n } catch (err: unknown) {\n const error = err as Error | undefined;\n this._logger.error(`Error getting transaction context: ${error?.message}, returning empty context.`);\n this._logger.error(error?.stack);\n return {};\n }\n }\n}\n\n/**\n * A singleton instance of the OpenFeature API.\n * @returns {OpenFeatureAPI} OpenFeature API\n */\nexport const OpenFeature = OpenFeatureAPI.getInstance();\n", "import { EvaluationContext } from '@openfeature/core';\nimport { TransactionContextPropagator } from './transaction-context';\n\nclass NoopTransactionContextPropagator implements TransactionContextPropagator {\n getTransactionContext(): EvaluationContext {\n return {};\n }\n\n setTransactionContext(_: EvaluationContext, callback: () => void): void {\n callback();\n }\n}\n\nexport const NOOP_TRANSACTION_CONTEXT_PROPAGATOR = new NoopTransactionContextPropagator();\n", "import { GenericEventEmitter } from '@openfeature/core';\nimport EventEmitter from 'events';\nimport { ProviderEvents } from './events';\n\n/**\n * The OpenFeatureEventEmitter can be used by provider developers to emit\n * events at various parts of the provider lifecycle.\n * \n * NOTE: Ready and error events are automatically emitted by the SDK based on\n * the result of the initialize method.\n */\nexport class OpenFeatureEventEmitter extends GenericEventEmitter<ProviderEvents> {\n protected readonly eventEmitter = new EventEmitter({ captureRejections: true });\n\n constructor() {\n super();\n this.eventEmitter.on('error', (err) => {\n this._logger?.error('Error running event handler:', err);\n });\n }\n};", "import { ServerProviderEvents } from '@openfeature/core';\n\nexport { ServerProviderEvents as ProviderEvents };", "export * from './client';\nexport * from './provider';\nexport * from './evaluation';\nexport * from './open-feature';\nexport * from './transaction-context';\nexport * from './events';\nexport * from './hooks';\nexport * from '@openfeature/core';\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["ErrorCode", "StandardResolutionReasons", "OpenFeatureError", "OpenFeatureError", "ErrorCode", "StandardResolutionReasons", "err"]
7
7
  }