@datadog/openfeature-node-server 0.1.0-preview.6 → 0.1.0-preview.7

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.
@@ -1,7 +1,7 @@
1
1
  import { Rule } from '../rules/rules';
2
2
  import { Flag } from './ufc-v1';
3
3
  import { EvaluationContext, FlagValueType, Logger, ResolutionDetails } from '@openfeature/server-sdk';
4
- import { FlagTypeToValue } from '@datadog/flagging-core/src/configuration/configuration';
4
+ import { FlagTypeToValue } from '@datadog/flagging-core';
5
5
  export declare function evaluateForSubject<T extends FlagValueType>(flag: Flag | undefined, type: T, subjectKey: string, subjectAttributes: EvaluationContext, defaultValue: FlagTypeToValue<T>, logger: Logger): ResolutionDetails<FlagTypeToValue<T>>;
6
6
  export declare function containsMatchingRule(rules: Rule[] | undefined, subjectAttributes: EvaluationContext, logger: Logger): boolean;
7
7
  //# sourceMappingURL=evaluateForSubject.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluateForSubject.d.ts","sourceRoot":"","sources":["../../src/configuration/evaluateForSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,IAAI,EAAkD,MAAM,UAAU,CAAA;AAC/E,OAAO,EAEL,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,iBAAiB,EAElB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,eAAe,EAA2B,MAAM,wDAAwD,CAAA;AAEjH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,EAChC,MAAM,EAAE,MAAM,GACb,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA8FvC;AAkBD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,EACzB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,GACb,OAAO,CAST"}
1
+ {"version":3,"file":"evaluateForSubject.d.ts","sourceRoot":"","sources":["../../src/configuration/evaluateForSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,IAAI,EAAkD,MAAM,UAAU,CAAA;AAC/E,OAAO,EAEL,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,iBAAiB,EAElB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,eAAe,EAA2B,MAAM,wBAAwB,CAAA;AAEjF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,EAChC,MAAM,EAAE,MAAM,GACb,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA8FvC;AAkBD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,EACzB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,GACb,OAAO,CAST"}
package/cjs/provider.d.ts CHANGED
@@ -1,14 +1,10 @@
1
- import type { JsonValue, Logger, Provider, ProviderMetadata, ResolutionDetails, Paradigm, Hook } from '@openfeature/server-sdk';
1
+ import type { JsonValue, Logger, Provider, ProviderMetadata, ResolutionDetails, Paradigm, Hook, ProviderEventEmitter } from '@openfeature/server-sdk';
2
+ import { ProviderEvents } from '@openfeature/server-sdk';
2
3
  import { EvaluationContext } from '@openfeature/core';
3
- import { ProviderStatus } from '@openfeature/server-sdk';
4
4
  import { UniversalFlagConfigurationV1 } from './configuration/ufc-v1';
5
- import { ExposureEvent } from '@datadog/flagging-core/src/configuration/exposureEvent.types';
5
+ import { ExposureEvent } from '@datadog/flagging-core';
6
6
  import type { Channel } from 'node:diagnostics_channel';
7
7
  export interface DatadogNodeServerProviderOptions {
8
- /**
9
- * Remote config agent
10
- */
11
- configuration?: UniversalFlagConfigurationV1 | undefined;
12
8
  /**
13
9
  * Log experiment exposures
14
10
  */
@@ -18,12 +14,34 @@ export declare class DatadogNodeServerProvider implements Provider {
18
14
  private readonly options;
19
15
  readonly metadata: ProviderMetadata;
20
16
  readonly runsOn: Paradigm;
21
- readonlyhooks?: Hook[];
22
- status: ProviderStatus;
17
+ readonly hooks?: Hook[];
18
+ private resolveInitialization?;
19
+ private rejectInitialization?;
20
+ readonly events: ProviderEventEmitter<ProviderEvents>;
23
21
  private configuration?;
24
22
  constructor(options: DatadogNodeServerProviderOptions);
23
+ /**
24
+ * Used by dd-source-js
25
+ */
25
26
  getConfiguration(): UniversalFlagConfigurationV1 | undefined;
26
- setConfiguration(configuration: UniversalFlagConfigurationV1 | undefined): void;
27
+ /**
28
+ * Used by dd-source-js
29
+ */
30
+ setConfiguration(configuration: UniversalFlagConfigurationV1): void;
31
+ /**
32
+ * Used by dd-source-js
33
+ */
34
+ setError(error: unknown): void;
35
+ /**
36
+ * Used by the OpenFeature SDK to set the status based on initialization.
37
+ * Status of 'PROVIDER_READY' is emitted with a resolved promise.
38
+ * Status of 'PROVIDER_ERROR' is emitted with a rejected promise.
39
+ *
40
+ * Since we aren't loading the configuration in this Provider, we will simulate
41
+ * loading functionality via resolveInitialization and rejectInitialization.
42
+ * See setConfiguration and setError for more details.
43
+ */
44
+ initialize(): Promise<void>;
27
45
  resolveBooleanEvaluation(flagKey: string, defaultValue: boolean, context: EvaluationContext, _logger: Logger): Promise<ResolutionDetails<boolean>>;
28
46
  resolveStringEvaluation(flagKey: string, defaultValue: string, context: EvaluationContext, _logger: Logger): Promise<ResolutionDetails<string>>;
29
47
  resolveNumberEvaluation(flagKey: string, defaultValue: number, context: EvaluationContext, _logger: Logger): Promise<ResolutionDetails<number>>;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,IAAI,EAEL,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAA;AAE5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,aAAa,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAA;IAExD;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;CACxC;AAED,qBAAa,yBAA0B,YAAW,QAAQ;IAU5C,OAAO,CAAC,QAAQ,CAAC,OAAO;IATpC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAElC;IACD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAW;IACpC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAA;IAEtB,MAAM,EAAE,cAAc,CAA2B;IACjD,OAAO,CAAC,aAAa,CAAC,CAA0C;gBAEnC,OAAO,EAAE,gCAAgC;IAOtE,gBAAgB;IAIhB,gBAAgB,CAAC,aAAa,EAAE,4BAA4B,GAAG,SAAS;IASlE,wBAAwB,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAMhC,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAM/B,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAM/B,uBAAuB,CAAC,CAAC,SAAS,SAAS,EAC/C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAmBhC,OAAO,CAAC,cAAc;CAevB"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,IAAI,EAEJ,oBAAoB,EACrB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAA2B,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAEtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;CACxC;AAED,qBAAa,yBAA0B,YAAW,QAAQ;IAa5C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZpC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAElC;IACD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAW;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IAEvB,OAAO,CAAC,qBAAqB,CAAC,CAA4C;IAC1E,OAAO,CAAC,oBAAoB,CAAC,CAA4B;IACzD,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC,cAAc,CAAC,CAAA;IAErD,OAAO,CAAC,aAAa,CAAC,CAA0C;gBAEnC,OAAO,EAAE,gCAAgC;IAKtE;;OAEG;IACH,gBAAgB;IAIhB;;OAEG;IACH,gBAAgB,CAAC,aAAa,EAAE,4BAA4B;IAa5D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO;IAUvB;;;;;;;;OAQG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrB,wBAAwB,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAMhC,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAM/B,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAM/B,uBAAuB,CAAC,CAAC,SAAS,SAAS,EAC/C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAmBhC,OAAO,CAAC,cAAc;CAevB"}
package/cjs/provider.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DatadogNodeServerProvider = void 0;
4
4
  const server_sdk_1 = require("@openfeature/server-sdk");
5
5
  const evaluation_1 = require("./configuration/evaluation");
6
- const exposureEvent_1 = require("@datadog/flagging-core/src/configuration/exposureEvent");
6
+ const flagging_core_1 = require("@datadog/flagging-core");
7
7
  class DatadogNodeServerProvider {
8
8
  constructor(options) {
9
9
  this.options = options;
@@ -11,23 +11,60 @@ class DatadogNodeServerProvider {
11
11
  name: 'datadog-node-server',
12
12
  };
13
13
  this.runsOn = 'server';
14
- this.status = server_sdk_1.ProviderStatus.NOT_READY;
15
- this.configuration = options.configuration;
16
- if (this.configuration) {
17
- this.status = server_sdk_1.ProviderStatus.READY;
18
- }
14
+ this.hooks = [];
15
+ this.events = new server_sdk_1.OpenFeatureEventEmitter();
19
16
  }
17
+ /**
18
+ * Used by dd-source-js
19
+ */
20
20
  getConfiguration() {
21
21
  return this.configuration;
22
22
  }
23
+ /**
24
+ * Used by dd-source-js
25
+ */
23
26
  setConfiguration(configuration) {
27
+ if (this.configuration && this.configuration !== configuration) {
28
+ this.events.emit(server_sdk_1.ProviderEvents.ConfigurationChanged);
29
+ return;
30
+ }
24
31
  this.configuration = configuration;
25
- if (this.configuration) {
26
- this.status = server_sdk_1.ProviderStatus.READY;
32
+ if (this.resolveInitialization) {
33
+ this.resolveInitialization();
34
+ this.resolveInitialization = undefined;
35
+ this.rejectInitialization = undefined;
36
+ }
37
+ }
38
+ /**
39
+ * Used by dd-source-js
40
+ */
41
+ setError(error) {
42
+ if (this.rejectInitialization) {
43
+ this.rejectInitialization(error);
44
+ this.resolveInitialization = undefined;
45
+ this.rejectInitialization = undefined;
27
46
  }
28
47
  else {
29
- this.status = server_sdk_1.ProviderStatus.NOT_READY;
48
+ this.events.emit(server_sdk_1.ProviderEvents.Error, { error });
49
+ }
50
+ }
51
+ /**
52
+ * Used by the OpenFeature SDK to set the status based on initialization.
53
+ * Status of 'PROVIDER_READY' is emitted with a resolved promise.
54
+ * Status of 'PROVIDER_ERROR' is emitted with a rejected promise.
55
+ *
56
+ * Since we aren't loading the configuration in this Provider, we will simulate
57
+ * loading functionality via resolveInitialization and rejectInitialization.
58
+ * See setConfiguration and setError for more details.
59
+ */
60
+ initialize() {
61
+ if (this.configuration) {
62
+ return Promise.resolve();
30
63
  }
64
+ return new Promise((resolve, reject) => {
65
+ this.resolveInitialization = resolve;
66
+ this.rejectInitialization = reject;
67
+ });
31
68
  }
32
69
  async resolveBooleanEvaluation(flagKey, defaultValue, context, _logger) {
33
70
  const resolutionDetails = (0, evaluation_1.evaluate)(this.configuration, 'boolean', flagKey, defaultValue, context, _logger);
@@ -62,7 +99,7 @@ class DatadogNodeServerProvider {
62
99
  flagKey: flagKey,
63
100
  flagMetadata: (_a = resolutionDetails.flagMetadata) !== null && _a !== void 0 ? _a : {},
64
101
  };
65
- const exposureEvent = (0, exposureEvent_1.createExposureEvent)(context, evalutationDetails);
102
+ const exposureEvent = (0, flagging_core_1.createExposureEvent)(context, evalutationDetails);
66
103
  if (exposureEvent && this.options.exposureChannel.hasSubscribers) {
67
104
  this.options.exposureChannel.publish(exposureEvent);
68
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Rule } from '../rules/rules';
2
2
  import { Flag } from './ufc-v1';
3
3
  import { EvaluationContext, FlagValueType, Logger, ResolutionDetails } from '@openfeature/server-sdk';
4
- import { FlagTypeToValue } from '@datadog/flagging-core/src/configuration/configuration';
4
+ import { FlagTypeToValue } from '@datadog/flagging-core';
5
5
  export declare function evaluateForSubject<T extends FlagValueType>(flag: Flag | undefined, type: T, subjectKey: string, subjectAttributes: EvaluationContext, defaultValue: FlagTypeToValue<T>, logger: Logger): ResolutionDetails<FlagTypeToValue<T>>;
6
6
  export declare function containsMatchingRule(rules: Rule[] | undefined, subjectAttributes: EvaluationContext, logger: Logger): boolean;
7
7
  //# sourceMappingURL=evaluateForSubject.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluateForSubject.d.ts","sourceRoot":"","sources":["../../src/configuration/evaluateForSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,IAAI,EAAkD,MAAM,UAAU,CAAA;AAC/E,OAAO,EAEL,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,iBAAiB,EAElB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,eAAe,EAA2B,MAAM,wDAAwD,CAAA;AAEjH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,EAChC,MAAM,EAAE,MAAM,GACb,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA8FvC;AAkBD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,EACzB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,GACb,OAAO,CAST"}
1
+ {"version":3,"file":"evaluateForSubject.d.ts","sourceRoot":"","sources":["../../src/configuration/evaluateForSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,IAAI,EAAkD,MAAM,UAAU,CAAA;AAC/E,OAAO,EAEL,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,iBAAiB,EAElB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,eAAe,EAA2B,MAAM,wBAAwB,CAAA;AAEjF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,EAChC,MAAM,EAAE,MAAM,GACb,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA8FvC;AAkBD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,EACzB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,GACb,OAAO,CAST"}
package/esm/provider.d.ts CHANGED
@@ -1,14 +1,10 @@
1
- import type { JsonValue, Logger, Provider, ProviderMetadata, ResolutionDetails, Paradigm, Hook } from '@openfeature/server-sdk';
1
+ import type { JsonValue, Logger, Provider, ProviderMetadata, ResolutionDetails, Paradigm, Hook, ProviderEventEmitter } from '@openfeature/server-sdk';
2
+ import { ProviderEvents } from '@openfeature/server-sdk';
2
3
  import { EvaluationContext } from '@openfeature/core';
3
- import { ProviderStatus } from '@openfeature/server-sdk';
4
4
  import { UniversalFlagConfigurationV1 } from './configuration/ufc-v1';
5
- import { ExposureEvent } from '@datadog/flagging-core/src/configuration/exposureEvent.types';
5
+ import { ExposureEvent } from '@datadog/flagging-core';
6
6
  import type { Channel } from 'node:diagnostics_channel';
7
7
  export interface DatadogNodeServerProviderOptions {
8
- /**
9
- * Remote config agent
10
- */
11
- configuration?: UniversalFlagConfigurationV1 | undefined;
12
8
  /**
13
9
  * Log experiment exposures
14
10
  */
@@ -18,12 +14,34 @@ export declare class DatadogNodeServerProvider implements Provider {
18
14
  private readonly options;
19
15
  readonly metadata: ProviderMetadata;
20
16
  readonly runsOn: Paradigm;
21
- readonlyhooks?: Hook[];
22
- status: ProviderStatus;
17
+ readonly hooks?: Hook[];
18
+ private resolveInitialization?;
19
+ private rejectInitialization?;
20
+ readonly events: ProviderEventEmitter<ProviderEvents>;
23
21
  private configuration?;
24
22
  constructor(options: DatadogNodeServerProviderOptions);
23
+ /**
24
+ * Used by dd-source-js
25
+ */
25
26
  getConfiguration(): UniversalFlagConfigurationV1 | undefined;
26
- setConfiguration(configuration: UniversalFlagConfigurationV1 | undefined): void;
27
+ /**
28
+ * Used by dd-source-js
29
+ */
30
+ setConfiguration(configuration: UniversalFlagConfigurationV1): void;
31
+ /**
32
+ * Used by dd-source-js
33
+ */
34
+ setError(error: unknown): void;
35
+ /**
36
+ * Used by the OpenFeature SDK to set the status based on initialization.
37
+ * Status of 'PROVIDER_READY' is emitted with a resolved promise.
38
+ * Status of 'PROVIDER_ERROR' is emitted with a rejected promise.
39
+ *
40
+ * Since we aren't loading the configuration in this Provider, we will simulate
41
+ * loading functionality via resolveInitialization and rejectInitialization.
42
+ * See setConfiguration and setError for more details.
43
+ */
44
+ initialize(): Promise<void>;
27
45
  resolveBooleanEvaluation(flagKey: string, defaultValue: boolean, context: EvaluationContext, _logger: Logger): Promise<ResolutionDetails<boolean>>;
28
46
  resolveStringEvaluation(flagKey: string, defaultValue: string, context: EvaluationContext, _logger: Logger): Promise<ResolutionDetails<string>>;
29
47
  resolveNumberEvaluation(flagKey: string, defaultValue: number, context: EvaluationContext, _logger: Logger): Promise<ResolutionDetails<number>>;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,IAAI,EAEL,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAA;AAE5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,aAAa,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAA;IAExD;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;CACxC;AAED,qBAAa,yBAA0B,YAAW,QAAQ;IAU5C,OAAO,CAAC,QAAQ,CAAC,OAAO;IATpC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAElC;IACD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAW;IACpC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAA;IAEtB,MAAM,EAAE,cAAc,CAA2B;IACjD,OAAO,CAAC,aAAa,CAAC,CAA0C;gBAEnC,OAAO,EAAE,gCAAgC;IAOtE,gBAAgB;IAIhB,gBAAgB,CAAC,aAAa,EAAE,4BAA4B,GAAG,SAAS;IASlE,wBAAwB,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAMhC,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAM/B,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAM/B,uBAAuB,CAAC,CAAC,SAAS,SAAS,EAC/C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAmBhC,OAAO,CAAC,cAAc;CAevB"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,IAAI,EAEJ,oBAAoB,EACrB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAA2B,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAEtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;CACxC;AAED,qBAAa,yBAA0B,YAAW,QAAQ;IAa5C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZpC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAElC;IACD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAW;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IAEvB,OAAO,CAAC,qBAAqB,CAAC,CAA4C;IAC1E,OAAO,CAAC,oBAAoB,CAAC,CAA4B;IACzD,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC,cAAc,CAAC,CAAA;IAErD,OAAO,CAAC,aAAa,CAAC,CAA0C;gBAEnC,OAAO,EAAE,gCAAgC;IAKtE;;OAEG;IACH,gBAAgB;IAIhB;;OAEG;IACH,gBAAgB,CAAC,aAAa,EAAE,4BAA4B;IAa5D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO;IAUvB;;;;;;;;OAQG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrB,wBAAwB,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAMhC,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAM/B,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAM/B,uBAAuB,CAAC,CAAC,SAAS,SAAS,EAC/C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAmBhC,OAAO,CAAC,cAAc;CAevB"}
package/esm/provider.js CHANGED
@@ -1,6 +1,6 @@
1
- import { ProviderStatus } from '@openfeature/server-sdk';
1
+ import { OpenFeatureEventEmitter, ProviderEvents } from '@openfeature/server-sdk';
2
2
  import { evaluate } from './configuration/evaluation';
3
- import { createExposureEvent } from '@datadog/flagging-core/src/configuration/exposureEvent';
3
+ import { createExposureEvent } from '@datadog/flagging-core';
4
4
  export class DatadogNodeServerProvider {
5
5
  constructor(options) {
6
6
  this.options = options;
@@ -8,23 +8,60 @@ export class DatadogNodeServerProvider {
8
8
  name: 'datadog-node-server',
9
9
  };
10
10
  this.runsOn = 'server';
11
- this.status = ProviderStatus.NOT_READY;
12
- this.configuration = options.configuration;
13
- if (this.configuration) {
14
- this.status = ProviderStatus.READY;
15
- }
11
+ this.hooks = [];
12
+ this.events = new OpenFeatureEventEmitter();
16
13
  }
14
+ /**
15
+ * Used by dd-source-js
16
+ */
17
17
  getConfiguration() {
18
18
  return this.configuration;
19
19
  }
20
+ /**
21
+ * Used by dd-source-js
22
+ */
20
23
  setConfiguration(configuration) {
24
+ if (this.configuration && this.configuration !== configuration) {
25
+ this.events.emit(ProviderEvents.ConfigurationChanged);
26
+ return;
27
+ }
21
28
  this.configuration = configuration;
22
- if (this.configuration) {
23
- this.status = ProviderStatus.READY;
29
+ if (this.resolveInitialization) {
30
+ this.resolveInitialization();
31
+ this.resolveInitialization = undefined;
32
+ this.rejectInitialization = undefined;
33
+ }
34
+ }
35
+ /**
36
+ * Used by dd-source-js
37
+ */
38
+ setError(error) {
39
+ if (this.rejectInitialization) {
40
+ this.rejectInitialization(error);
41
+ this.resolveInitialization = undefined;
42
+ this.rejectInitialization = undefined;
24
43
  }
25
44
  else {
26
- this.status = ProviderStatus.NOT_READY;
45
+ this.events.emit(ProviderEvents.Error, { error });
46
+ }
47
+ }
48
+ /**
49
+ * Used by the OpenFeature SDK to set the status based on initialization.
50
+ * Status of 'PROVIDER_READY' is emitted with a resolved promise.
51
+ * Status of 'PROVIDER_ERROR' is emitted with a rejected promise.
52
+ *
53
+ * Since we aren't loading the configuration in this Provider, we will simulate
54
+ * loading functionality via resolveInitialization and rejectInitialization.
55
+ * See setConfiguration and setError for more details.
56
+ */
57
+ initialize() {
58
+ if (this.configuration) {
59
+ return Promise.resolve();
27
60
  }
61
+ return new Promise((resolve, reject) => {
62
+ this.resolveInitialization = resolve;
63
+ this.rejectInitialization = reject;
64
+ });
28
65
  }
29
66
  async resolveBooleanEvaluation(flagKey, defaultValue, context, _logger) {
30
67
  const resolutionDetails = evaluate(this.configuration, 'boolean', flagKey, defaultValue, context, _logger);
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datadog/openfeature-node-server",
3
- "version": "0.1.0-preview.6",
3
+ "version": "0.1.0-preview.7",
4
4
  "description": "React Native bindings for OpenFeature (wraps @datadog/flagging-core)",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/DataDog/openfeature-js-client#readme",
@@ -33,8 +33,9 @@
33
33
  "typecheck": "tsc --noEmit"
34
34
  },
35
35
  "dependencies": {
36
- "@datadog/flagging-core": "0.1.0-preview.6",
37
- "@openfeature/server-sdk": "^1.19.0"
36
+ "@datadog/flagging-core": "0.1.0-preview.7",
37
+ "@openfeature/server-sdk": "^1.19.0",
38
+ "spark-md5": "^3.0.2"
38
39
  },
39
40
  "peerDependencies": {
40
41
  "@openfeature/server-sdk": "^1.19.0"
@@ -43,6 +44,7 @@
43
44
  "@openfeature/core": "^1.9.0",
44
45
  "@types/jest": "^30.0.0",
45
46
  "@types/node": "^20.0.0",
47
+ "@types/spark-md5": "^3",
46
48
  "jest": "^30.0.4",
47
49
  "npm-run-all": "^4.1.5",
48
50
  "ts-jest": "^29.4.0",