@openfeature/server-sdk 1.14.0 → 1.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/index.js CHANGED
@@ -1,12 +1,54 @@
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
+
1
41
  // src/provider/provider.ts
2
42
  import { ServerProviderStatus } from "@openfeature/core";
3
43
 
4
44
  // src/provider/no-op-provider.ts
5
45
  var REASON_NO_OP = "No-op";
6
46
  var NoopFeatureProvider = class {
7
- metadata = {
8
- name: "No-op Provider"
9
- };
47
+ constructor() {
48
+ this.metadata = {
49
+ name: "No-op Provider"
50
+ };
51
+ }
10
52
  resolveBooleanEvaluation(_, defaultValue) {
11
53
  return this.noOp(defaultValue);
12
54
  }
@@ -40,7 +82,6 @@ import {
40
82
  // src/provider/in-memory-provider/variant-not-found-error.ts
41
83
  import { ErrorCode, OpenFeatureError } from "@openfeature/core";
42
84
  var VariantFoundError = class _VariantFoundError extends OpenFeatureError {
43
- code;
44
85
  constructor(message) {
45
86
  super(message);
46
87
  Object.setPrototypeOf(this, _VariantFoundError.prototype);
@@ -51,14 +92,13 @@ var VariantFoundError = class _VariantFoundError extends OpenFeatureError {
51
92
 
52
93
  // src/provider/in-memory-provider/in-memory-provider.ts
53
94
  var InMemoryProvider = class {
54
- events = new OpenFeatureEventEmitter();
55
- runsOn = "server";
56
- metadata = {
57
- name: "in-memory"
58
- };
59
- _flagConfiguration;
60
95
  constructor(flagConfiguration = {}) {
61
- this._flagConfiguration = { ...flagConfiguration };
96
+ this.events = new OpenFeatureEventEmitter();
97
+ this.runsOn = "server";
98
+ this.metadata = {
99
+ name: "in-memory"
100
+ };
101
+ this._flagConfiguration = __spreadValues({}, flagConfiguration);
62
102
  }
63
103
  /**
64
104
  * Overwrites the configured flags.
@@ -66,7 +106,7 @@ var InMemoryProvider = class {
66
106
  */
67
107
  putConfiguration(flagConfiguration) {
68
108
  const flagsChanged = Object.entries(flagConfiguration).filter(([key, value]) => this._flagConfiguration[key] !== value).map(([key]) => key);
69
- this._flagConfiguration = { ...flagConfiguration };
109
+ this._flagConfiguration = __spreadValues({}, flagConfiguration);
70
110
  this.events.emit(ServerProviderEvents.ConfigurationChanged, { flagsChanged });
71
111
  }
72
112
  resolveBooleanEvaluation(flagKey, defaultValue, context, logger) {
@@ -75,49 +115,56 @@ var InMemoryProvider = class {
75
115
  resolveNumberEvaluation(flagKey, defaultValue, context, logger) {
76
116
  return this.resolveFlagWithReason(flagKey, defaultValue, context, logger);
77
117
  }
78
- async resolveStringEvaluation(flagKey, defaultValue, context, logger) {
79
- return this.resolveFlagWithReason(flagKey, defaultValue, context, logger);
118
+ resolveStringEvaluation(flagKey, defaultValue, context, logger) {
119
+ return __async(this, null, function* () {
120
+ return this.resolveFlagWithReason(flagKey, defaultValue, context, logger);
121
+ });
80
122
  }
81
- async resolveObjectEvaluation(flagKey, defaultValue, context, logger) {
82
- return this.resolveFlagWithReason(flagKey, defaultValue, context, logger);
123
+ resolveObjectEvaluation(flagKey, defaultValue, context, logger) {
124
+ return __async(this, null, function* () {
125
+ return this.resolveFlagWithReason(flagKey, defaultValue, context, logger);
126
+ });
83
127
  }
84
- async resolveFlagWithReason(flagKey, defaultValue, ctx, logger) {
85
- try {
86
- const resolutionResult = this.lookupFlagValue(flagKey, defaultValue, ctx, logger);
87
- if (typeof resolutionResult?.value != typeof defaultValue) {
88
- throw new TypeMismatchError();
89
- }
90
- return resolutionResult;
91
- } catch (error) {
92
- if (!(error instanceof OpenFeatureError2)) {
93
- throw new GeneralError(error?.message || "unknown error");
128
+ resolveFlagWithReason(flagKey, defaultValue, ctx, logger) {
129
+ return __async(this, null, function* () {
130
+ try {
131
+ const resolutionResult = this.lookupFlagValue(flagKey, defaultValue, ctx, logger);
132
+ if (typeof (resolutionResult == null ? void 0 : resolutionResult.value) != typeof defaultValue) {
133
+ throw new TypeMismatchError();
134
+ }
135
+ return resolutionResult;
136
+ } catch (error) {
137
+ if (!(error instanceof OpenFeatureError2)) {
138
+ throw new GeneralError((error == null ? void 0 : error.message) || "unknown error");
139
+ }
140
+ throw error;
94
141
  }
95
- throw error;
96
- }
142
+ });
97
143
  }
98
144
  lookupFlagValue(flagKey, defaultValue, ctx, logger) {
145
+ var _a;
99
146
  if (!(flagKey in this._flagConfiguration)) {
100
147
  const message = `no flag found with key ${flagKey}`;
101
- logger?.debug(message);
148
+ logger == null ? void 0 : logger.debug(message);
102
149
  throw new FlagNotFoundError(message);
103
150
  }
104
151
  const flagSpec = this._flagConfiguration[flagKey];
105
152
  if (flagSpec.disabled) {
106
153
  return { value: defaultValue, reason: StandardResolutionReasons.DISABLED };
107
154
  }
108
- const isContextEval = ctx && flagSpec?.contextEvaluator;
109
- const variant = isContextEval ? flagSpec.contextEvaluator?.(ctx) : flagSpec.defaultVariant;
110
- const value = variant && flagSpec?.variants[variant];
155
+ const isContextEval = ctx && (flagSpec == null ? void 0 : flagSpec.contextEvaluator);
156
+ const variant = isContextEval ? (_a = flagSpec.contextEvaluator) == null ? void 0 : _a.call(flagSpec, ctx) : flagSpec.defaultVariant;
157
+ const value = variant && (flagSpec == null ? void 0 : flagSpec.variants[variant]);
111
158
  if (value === void 0) {
112
159
  const message = `no value associated with variant ${variant}`;
113
- logger?.error(message);
160
+ logger == null ? void 0 : logger.error(message);
114
161
  throw new VariantFoundError(message);
115
162
  }
116
- return {
117
- value,
118
- ...variant && { variant },
163
+ return __spreadProps(__spreadValues({
164
+ value
165
+ }, variant && { variant }), {
119
166
  reason: isContextEval ? StandardResolutionReasons.TARGETING_MATCH : StandardResolutionReasons.STATIC
120
- };
167
+ });
121
168
  }
122
169
  };
123
170
 
@@ -146,16 +193,15 @@ var OpenFeatureClient = class {
146
193
  this.emitterAccessor = emitterAccessor;
147
194
  this.globalLogger = globalLogger;
148
195
  this.options = options;
196
+ this._hooks = [];
149
197
  this._context = context;
150
198
  }
151
- _context;
152
- _hooks = [];
153
- _clientLogger;
154
199
  get metadata() {
200
+ var _a, _b;
155
201
  return {
156
202
  // Use domain if name is not provided
157
- name: this.options.domain ?? this.options.name,
158
- domain: this.options.domain ?? this.options.name,
203
+ name: (_a = this.options.domain) != null ? _a : this.options.name,
204
+ domain: (_b = this.options.domain) != null ? _b : this.options.name,
159
205
  version: this.options.version,
160
206
  providerMetadata: this.providerAccessor().metadata
161
207
  };
@@ -164,6 +210,7 @@ var OpenFeatureClient = class {
164
210
  return this.providerStatusAccessor();
165
211
  }
166
212
  addHandler(eventType, handler) {
213
+ var _a;
167
214
  this.emitterAccessor().addHandler(eventType, handler);
168
215
  const shouldRunNow = statusMatchesEvent(eventType, this._providerStatus);
169
216
  if (shouldRunNow) {
@@ -174,7 +221,7 @@ var OpenFeatureClient = class {
174
221
  providerName: this._provider.metadata.name
175
222
  });
176
223
  } catch (err) {
177
- this._logger?.error("Error running event handler:", err);
224
+ (_a = this._logger) == null ? void 0 : _a.error("Error running event handler:", err);
178
225
  }
179
226
  }
180
227
  }
@@ -206,8 +253,10 @@ var OpenFeatureClient = class {
206
253
  this._hooks = [];
207
254
  return this;
208
255
  }
209
- async getBooleanValue(flagKey, defaultValue, context, options) {
210
- return (await this.getBooleanDetails(flagKey, defaultValue, context, options)).value;
256
+ getBooleanValue(flagKey, defaultValue, context, options) {
257
+ return __async(this, null, function* () {
258
+ return (yield this.getBooleanDetails(flagKey, defaultValue, context, options)).value;
259
+ });
211
260
  }
212
261
  getBooleanDetails(flagKey, defaultValue, context, options) {
213
262
  return this.evaluate(
@@ -219,8 +268,10 @@ var OpenFeatureClient = class {
219
268
  options
220
269
  );
221
270
  }
222
- async getStringValue(flagKey, defaultValue, context, options) {
223
- return (await this.getStringDetails(flagKey, defaultValue, context, options)).value;
271
+ getStringValue(flagKey, defaultValue, context, options) {
272
+ return __async(this, null, function* () {
273
+ return (yield this.getStringDetails(flagKey, defaultValue, context, options)).value;
274
+ });
224
275
  }
225
276
  getStringDetails(flagKey, defaultValue, context, options) {
226
277
  return this.evaluate(
@@ -233,8 +284,10 @@ var OpenFeatureClient = class {
233
284
  options
234
285
  );
235
286
  }
236
- async getNumberValue(flagKey, defaultValue, context, options) {
237
- return (await this.getNumberDetails(flagKey, defaultValue, context, options)).value;
287
+ getNumberValue(flagKey, defaultValue, context, options) {
288
+ return __async(this, null, function* () {
289
+ return (yield this.getNumberDetails(flagKey, defaultValue, context, options)).value;
290
+ });
238
291
  }
239
292
  getNumberDetails(flagKey, defaultValue, context, options) {
240
293
  return this.evaluate(
@@ -247,109 +300,117 @@ var OpenFeatureClient = class {
247
300
  options
248
301
  );
249
302
  }
250
- async getObjectValue(flagKey, defaultValue, context, options) {
251
- return (await this.getObjectDetails(flagKey, defaultValue, context, options)).value;
303
+ getObjectValue(flagKey, defaultValue, context, options) {
304
+ return __async(this, null, function* () {
305
+ return (yield this.getObjectDetails(flagKey, defaultValue, context, options)).value;
306
+ });
252
307
  }
253
308
  getObjectDetails(flagKey, defaultValue, context, options) {
254
309
  return this.evaluate(flagKey, this._provider.resolveObjectEvaluation, defaultValue, "object", context, options);
255
310
  }
256
- async evaluate(flagKey, resolver, defaultValue, flagType, invocationContext = {}, options = {}) {
257
- const allHooks = [
258
- ...OpenFeature.getHooks(),
259
- ...this.getHooks(),
260
- ...options.hooks || [],
261
- ...this._provider.hooks || []
262
- ];
263
- const allHooksReversed = [...allHooks].reverse();
264
- const mergedContext = {
265
- ...OpenFeature.getContext(),
266
- ...OpenFeature.getTransactionContext(),
267
- ...this._context,
268
- ...invocationContext
269
- };
270
- const hookContext = {
271
- flagKey,
272
- defaultValue,
273
- flagValueType: flagType,
274
- clientMetadata: this.metadata,
275
- providerMetadata: this._provider.metadata,
276
- context: mergedContext,
277
- logger: this._logger
278
- };
279
- try {
280
- const frozenContext = await this.beforeHooks(allHooks, hookContext, options);
281
- if (this.providerStatus === ServerProviderStatus.NOT_READY) {
282
- throw new ProviderNotReadyError("provider has not yet initialized");
283
- } else if (this.providerStatus === ServerProviderStatus.FATAL) {
284
- throw new ProviderFatalError("provider is in an irrecoverable error state");
285
- }
286
- const resolution = await resolver.call(this._provider, flagKey, defaultValue, frozenContext, this._logger);
287
- const evaluationDetails = {
288
- ...resolution,
289
- flagMetadata: Object.freeze(resolution.flagMetadata ?? {}),
290
- flagKey
311
+ evaluate(_0, _1, _2, _3) {
312
+ return __async(this, arguments, function* (flagKey, resolver, defaultValue, flagType, invocationContext = {}, options = {}) {
313
+ var _a;
314
+ const allHooks = [
315
+ ...OpenFeature.getHooks(),
316
+ ...this.getHooks(),
317
+ ...options.hooks || [],
318
+ ...this._provider.hooks || []
319
+ ];
320
+ const allHooksReversed = [...allHooks].reverse();
321
+ const mergedContext = __spreadValues(__spreadValues(__spreadValues(__spreadValues({}, OpenFeature.getContext()), OpenFeature.getTransactionContext()), this._context), invocationContext);
322
+ const hookContext = {
323
+ flagKey,
324
+ defaultValue,
325
+ flagValueType: flagType,
326
+ clientMetadata: this.metadata,
327
+ providerMetadata: this._provider.metadata,
328
+ context: mergedContext,
329
+ logger: this._logger
291
330
  };
292
- if (evaluationDetails.errorCode) {
293
- throw instantiateErrorByErrorCode(evaluationDetails.errorCode);
331
+ try {
332
+ const frozenContext = yield this.beforeHooks(allHooks, hookContext, options);
333
+ if (this.providerStatus === ServerProviderStatus.NOT_READY) {
334
+ throw new ProviderNotReadyError("provider has not yet initialized");
335
+ } else if (this.providerStatus === ServerProviderStatus.FATAL) {
336
+ throw new ProviderFatalError("provider is in an irrecoverable error state");
337
+ }
338
+ const resolution = yield resolver.call(this._provider, flagKey, defaultValue, frozenContext, this._logger);
339
+ const evaluationDetails = __spreadProps(__spreadValues({}, resolution), {
340
+ flagMetadata: Object.freeze((_a = resolution.flagMetadata) != null ? _a : {}),
341
+ flagKey
342
+ });
343
+ if (evaluationDetails.errorCode) {
344
+ throw instantiateErrorByErrorCode(evaluationDetails.errorCode);
345
+ }
346
+ yield this.afterHooks(allHooksReversed, hookContext, evaluationDetails, options);
347
+ return evaluationDetails;
348
+ } catch (err) {
349
+ const errorMessage = err == null ? void 0 : err.message;
350
+ const errorCode = (err == null ? void 0 : err.code) || ErrorCode2.GENERAL;
351
+ yield this.errorHooks(allHooksReversed, hookContext, err, options);
352
+ return {
353
+ errorCode,
354
+ errorMessage,
355
+ value: defaultValue,
356
+ reason: StandardResolutionReasons2.ERROR,
357
+ flagMetadata: Object.freeze({}),
358
+ flagKey
359
+ };
360
+ } finally {
361
+ yield this.finallyHooks(allHooksReversed, hookContext, options);
294
362
  }
295
- await this.afterHooks(allHooksReversed, hookContext, evaluationDetails, options);
296
- return evaluationDetails;
297
- } catch (err) {
298
- const errorMessage = err?.message;
299
- const errorCode = err?.code || ErrorCode2.GENERAL;
300
- await this.errorHooks(allHooksReversed, hookContext, err, options);
301
- return {
302
- errorCode,
303
- errorMessage,
304
- value: defaultValue,
305
- reason: StandardResolutionReasons2.ERROR,
306
- flagMetadata: Object.freeze({}),
307
- flagKey
308
- };
309
- } finally {
310
- await this.finallyHooks(allHooksReversed, hookContext, options);
311
- }
363
+ });
312
364
  }
313
- async beforeHooks(hooks, hookContext, options) {
314
- for (const hook of hooks) {
315
- Object.freeze(hookContext);
316
- Object.assign(hookContext.context, {
317
- ...hookContext.context,
318
- ...await hook?.before?.(hookContext, Object.freeze(options.hookHints))
319
- });
320
- }
321
- return Object.freeze(hookContext.context);
365
+ beforeHooks(hooks, hookContext, options) {
366
+ return __async(this, null, function* () {
367
+ var _a;
368
+ for (const hook of hooks) {
369
+ Object.freeze(hookContext);
370
+ 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))));
371
+ }
372
+ return Object.freeze(hookContext.context);
373
+ });
322
374
  }
323
- async afterHooks(hooks, hookContext, evaluationDetails, options) {
324
- for (const hook of hooks) {
325
- await hook?.after?.(hookContext, evaluationDetails, options.hookHints);
326
- }
375
+ afterHooks(hooks, hookContext, evaluationDetails, options) {
376
+ return __async(this, null, function* () {
377
+ var _a;
378
+ for (const hook of hooks) {
379
+ yield (_a = hook == null ? void 0 : hook.after) == null ? void 0 : _a.call(hook, hookContext, evaluationDetails, options.hookHints);
380
+ }
381
+ });
327
382
  }
328
- async errorHooks(hooks, hookContext, err, options) {
329
- for (const hook of hooks) {
330
- try {
331
- await hook?.error?.(hookContext, err, options.hookHints);
332
- } catch (err2) {
333
- this._logger.error(`Unhandled error during 'error' hook: ${err2}`);
334
- if (err2 instanceof Error) {
335
- this._logger.error(err2.stack);
383
+ errorHooks(hooks, hookContext, err, options) {
384
+ return __async(this, null, function* () {
385
+ var _a;
386
+ for (const hook of hooks) {
387
+ try {
388
+ yield (_a = hook == null ? void 0 : hook.error) == null ? void 0 : _a.call(hook, hookContext, err, options.hookHints);
389
+ } catch (err2) {
390
+ this._logger.error(`Unhandled error during 'error' hook: ${err2}`);
391
+ if (err2 instanceof Error) {
392
+ this._logger.error(err2.stack);
393
+ }
394
+ this._logger.error(err2 == null ? void 0 : err2.stack);
336
395
  }
337
- this._logger.error(err2?.stack);
338
396
  }
339
- }
397
+ });
340
398
  }
341
- async finallyHooks(hooks, hookContext, options) {
342
- for (const hook of hooks) {
343
- try {
344
- await hook?.finally?.(hookContext, options.hookHints);
345
- } catch (err) {
346
- this._logger.error(`Unhandled error during 'finally' hook: ${err}`);
347
- if (err instanceof Error) {
348
- this._logger.error(err.stack);
399
+ finallyHooks(hooks, hookContext, options) {
400
+ return __async(this, null, function* () {
401
+ var _a;
402
+ for (const hook of hooks) {
403
+ try {
404
+ yield (_a = hook == null ? void 0 : hook.finally) == null ? void 0 : _a.call(hook, hookContext, options.hookHints);
405
+ } catch (err) {
406
+ this._logger.error(`Unhandled error during 'finally' hook: ${err}`);
407
+ if (err instanceof Error) {
408
+ this._logger.error(err.stack);
409
+ }
410
+ this._logger.error(err == null ? void 0 : err.stack);
349
411
  }
350
- this._logger.error(err?.stack);
351
412
  }
352
- }
413
+ });
353
414
  }
354
415
  get _provider() {
355
416
  return this.providerAccessor();
@@ -366,11 +427,12 @@ var OpenFeatureClient = class {
366
427
  import { GenericEventEmitter } from "@openfeature/core";
367
428
  import { EventEmitter } from "events";
368
429
  var OpenFeatureEventEmitter = class extends GenericEventEmitter {
369
- eventEmitter = new EventEmitter({ captureRejections: true });
370
430
  constructor() {
371
431
  super();
432
+ this.eventEmitter = new EventEmitter({ captureRejections: true });
372
433
  this.eventEmitter.on("error", (err) => {
373
- this._logger?.error("Error running event handler:", err);
434
+ var _a;
435
+ (_a = this._logger) == null ? void 0 : _a.error("Error running event handler:", err);
374
436
  });
375
437
  }
376
438
  };
@@ -392,9 +454,12 @@ var NOOP_TRANSACTION_CONTEXT_PROPAGATOR = new NoopTransactionContextPropagator()
392
454
  // src/transaction-context/async-local-storage-transaction-context-propagator.ts
393
455
  import { AsyncLocalStorage } from "async_hooks";
394
456
  var AsyncLocalStorageTransactionContextPropagator = class {
395
- asyncLocalStorage = new AsyncLocalStorage();
457
+ constructor() {
458
+ this.asyncLocalStorage = new AsyncLocalStorage();
459
+ }
396
460
  getTransactionContext() {
397
- return this.asyncLocalStorage.getStore() ?? {};
461
+ var _a;
462
+ return (_a = this.asyncLocalStorage.getStore()) != null ? _a : {};
398
463
  }
399
464
  setTransactionContext(transactionContext, callback, ...args) {
400
465
  this.asyncLocalStorage.run(transactionContext, callback, ...args);
@@ -405,18 +470,18 @@ var AsyncLocalStorageTransactionContextPropagator = class {
405
470
  var GLOBAL_OPENFEATURE_API_KEY = Symbol.for("@openfeature/js-sdk/api");
406
471
  var _globalThis = globalThis;
407
472
  var OpenFeatureAPI = class _OpenFeatureAPI extends OpenFeatureCommonAPI {
408
- _statusEnumType = ServerProviderStatus;
409
- _apiEmitter = new OpenFeatureEventEmitter();
410
- _defaultProvider = new ProviderWrapper(
411
- NOOP_PROVIDER,
412
- ServerProviderStatus.NOT_READY,
413
- this._statusEnumType
414
- );
415
- _domainScopedProviders = /* @__PURE__ */ new Map();
416
- _createEventEmitter = () => new OpenFeatureEventEmitter();
417
- _transactionContextPropagator = NOOP_TRANSACTION_CONTEXT_PROPAGATOR;
418
473
  constructor() {
419
474
  super("server");
475
+ this._statusEnumType = ServerProviderStatus;
476
+ this._apiEmitter = new OpenFeatureEventEmitter();
477
+ this._defaultProvider = new ProviderWrapper(
478
+ NOOP_PROVIDER,
479
+ ServerProviderStatus.NOT_READY,
480
+ this._statusEnumType
481
+ );
482
+ this._domainScopedProviders = /* @__PURE__ */ new Map();
483
+ this._createEventEmitter = () => new OpenFeatureEventEmitter();
484
+ this._transactionContextPropagator = NOOP_TRANSACTION_CONTEXT_PROPAGATOR;
420
485
  }
421
486
  /**
422
487
  * Gets a singleton instance of the OpenFeature API.
@@ -433,15 +498,18 @@ var OpenFeatureAPI = class _OpenFeatureAPI extends OpenFeatureCommonAPI {
433
498
  return instance;
434
499
  }
435
500
  getProviderStatus(domain) {
501
+ var _a, _b;
436
502
  if (!domain) {
437
503
  return this._defaultProvider.status;
438
504
  }
439
- return this._domainScopedProviders.get(domain)?.status ?? this._defaultProvider.status;
505
+ return (_b = (_a = this._domainScopedProviders.get(domain)) == null ? void 0 : _a.status) != null ? _b : this._defaultProvider.status;
440
506
  }
441
- async setProviderAndWait(domainOrProvider, providerOrUndefined) {
442
- const domain = stringOrUndefined(domainOrProvider);
443
- const provider = domain ? objectOrUndefined(providerOrUndefined) : objectOrUndefined(domainOrProvider);
444
- await this.setAwaitableProvider(domain, provider);
507
+ setProviderAndWait(domainOrProvider, providerOrUndefined) {
508
+ return __async(this, null, function* () {
509
+ const domain = stringOrUndefined(domainOrProvider);
510
+ const provider = domain ? objectOrUndefined(providerOrUndefined) : objectOrUndefined(domainOrProvider);
511
+ yield this.setAwaitableProvider(domain, provider);
512
+ });
445
513
  }
446
514
  setProvider(clientOrProvider, providerOrUndefined) {
447
515
  const domain = stringOrUndefined(clientOrProvider);
@@ -460,9 +528,10 @@ var OpenFeatureAPI = class _OpenFeatureAPI extends OpenFeatureCommonAPI {
460
528
  return this._context;
461
529
  }
462
530
  getClient(domainOrContext, versionOrContext, contextOrUndefined) {
531
+ var _a, _b;
463
532
  const domain = stringOrUndefined(domainOrContext);
464
533
  const version = stringOrUndefined(versionOrContext);
465
- const context = objectOrUndefined(domainOrContext) ?? objectOrUndefined(versionOrContext) ?? objectOrUndefined(contextOrUndefined);
534
+ const context = (_b = (_a = objectOrUndefined(domainOrContext)) != null ? _a : objectOrUndefined(versionOrContext)) != null ? _b : objectOrUndefined(contextOrUndefined);
466
535
  return new OpenFeatureClient(
467
536
  () => this.getProviderForClient(domain),
468
537
  () => this.getProviderStatus(domain),
@@ -481,9 +550,9 @@ var OpenFeatureAPI = class _OpenFeatureAPI extends OpenFeatureCommonAPI {
481
550
  }
482
551
  setTransactionContextPropagator(transactionContextPropagator) {
483
552
  const baseMessage = "Invalid TransactionContextPropagator, will not be set: ";
484
- if (typeof transactionContextPropagator?.getTransactionContext !== "function") {
553
+ if (typeof (transactionContextPropagator == null ? void 0 : transactionContextPropagator.getTransactionContext) !== "function") {
485
554
  this._logger.error(`${baseMessage}: getTransactionContext is not a function.`);
486
- } else if (typeof transactionContextPropagator?.setTransactionContext !== "function") {
555
+ } else if (typeof (transactionContextPropagator == null ? void 0 : transactionContextPropagator.setTransactionContext) !== "function") {
487
556
  this._logger.error(`${baseMessage}: setTransactionContext is not a function.`);
488
557
  } else {
489
558
  this._transactionContextPropagator = transactionContextPropagator;
@@ -498,8 +567,8 @@ var OpenFeatureAPI = class _OpenFeatureAPI extends OpenFeatureCommonAPI {
498
567
  return this._transactionContextPropagator.getTransactionContext();
499
568
  } catch (err) {
500
569
  const error = err;
501
- this._logger.error(`Error getting transaction context: ${error?.message}, returning empty context.`);
502
- this._logger.error(error?.stack);
570
+ this._logger.error(`Error getting transaction context: ${error == null ? void 0 : error.message}, returning empty context.`);
571
+ this._logger.error(error == null ? void 0 : error.stack);
503
572
  return {};
504
573
  }
505
574
  }