@featbit/openfeature-provider-node-server 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,6 +6,29 @@ This is the OpenFeature provider for the [Node.js Server-Side SDK](https://githu
6
6
 
7
7
  The FeatBit OpenFeature provider is designed primarily for use in multi-user systems such as web servers and applications. It is not intended for use in desktop and embedded systems applications.
8
8
 
9
+ ## Tracking
10
+
11
+ After registering and initializing the provider, use the OpenFeature client to track events:
12
+
13
+ ```js
14
+ const client = OpenFeature.getClient();
15
+ const context = { targetingKey: 'user-123' };
16
+
17
+ client.track('page-view', context);
18
+ client.track('purchase', context, { value: 99.9 });
19
+ ```
20
+
21
+ Tracking uses the same context-to-user mapping as flag evaluations, including `targetingKey`
22
+ (or the legacy `key`), `name`, and custom user attributes. OpenFeature merges context before
23
+ passing it to the provider, so a user key set on the client or global context can also be used.
24
+ The optional `value` is passed to FeatBit as the numeric metric value; when omitted, the
25
+ FeatBit SDK defaults it to `1`. A value of `0` is preserved. Other tracking event details
26
+ are ignored because the FeatBit SDK only supports a numeric metric value.
27
+
28
+ `track` returns `void` and does not need to be awaited. Events are delivered by the FeatBit
29
+ SDK's event processor. Call `await OpenFeature.close()` at application shutdown to flush
30
+ pending events and release resources.
31
+
9
32
  ## Supported Node versions
10
33
 
11
34
  This version of the FeatBit OpenFeature provider is compatible with Node.js versions 16 and above.
@@ -57,4 +80,4 @@ OpenFeature.addHandler(ProviderEvents.ConfigurationChanged, async (eventDetails)
57
80
  // // This can be useful for short lived processes.
58
81
  // await OpenFeature.close();
59
82
  // })();
60
- ```
83
+ ```
@@ -1,4 +1,4 @@
1
- import { EvaluationContext, Hook, JsonValue, OpenFeatureEventEmitter, Provider, ProviderStatus, ResolutionDetails } from "@openfeature/server-sdk";
1
+ import { EvaluationContext, Hook, JsonValue, OpenFeatureEventEmitter, Provider, ProviderStatus, ResolutionDetails, TrackingEventDetails } from "@openfeature/server-sdk";
2
2
  import { IFbClient, IOptions } from "@featbit/node-server-sdk";
3
3
  /**
4
4
  * An OpenFeature provider for the FeatBit SDK for node.
@@ -68,6 +68,11 @@ export declare class FbProvider implements Provider {
68
68
  * @returns A promise which will resolve to a ResolutionDetails.
69
69
  */
70
70
  resolveObjectEvaluation<T extends JsonValue>(flagKey: string, defaultValue: T, context: EvaluationContext): Promise<ResolutionDetails<T>>;
71
+ /**
72
+ * Tracks an event with the evaluation user and optional numeric metric value.
73
+ * FeatBit does not support additional tracking event details.
74
+ */
75
+ track(eventName: string, context: EvaluationContext, details?: TrackingEventDetails): void;
71
76
  /**
72
77
  * Get the status of the FeatBit provider.
73
78
  */
@@ -1 +1 @@
1
- {"version":3,"file":"FbProvider.d.ts","sourceRoot":"","sources":["../src/FbProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,IAAI,EACJ,SAAS,EACT,uBAAuB,EACvB,QAAQ,EAER,cAAc,EACd,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAIL,SAAS,EACT,QAAQ,EACT,MAAM,0BAA0B,CAAC;AAMlC;;GAEG;AACH,qBAAa,UAAW,YAAW,QAAQ;IACzC,QAAQ;;MAEN;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAM;IAC9C,OAAO,CAAC,WAAW,CAA4C;IAE/D,SAAgB,MAAM,0BAAiC;IAEvD;;;OAGG;gBACS,OAAO,EAAE,QAAQ;IAmBvB,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5D;;;;;;;;;;;OAWG;IACG,wBAAwB,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAUtC;;;;;;;;;;;OAWG;IACG,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAUrC;;;;;;;;;;;OAWG;IACG,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAUrC;;;;;;;;;OASG;IACG,uBAAuB,CAAC,CAAC,SAAS,SAAS,EAC/C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAUhC;;OAEG;IACH,IAAW,MAAM,mBAEhB;IAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED;;;;OAIG;IACI,SAAS;IAIV,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
1
+ {"version":3,"file":"FbProvider.d.ts","sourceRoot":"","sources":["../src/FbProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,IAAI,EACJ,SAAS,EACT,uBAAuB,EACvB,QAAQ,EAER,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAIL,SAAS,EACT,QAAQ,EACT,MAAM,0BAA0B,CAAC;AAMlC;;GAEG;AACH,qBAAa,UAAW,YAAW,QAAQ;IACzC,QAAQ;;MAEN;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAM;IAC9C,OAAO,CAAC,WAAW,CAA4C;IAE/D,SAAgB,MAAM,0BAAiC;IAEvD;;;OAGG;gBACS,OAAO,EAAE,QAAQ;IAmBvB,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5D;;;;;;;;;;;OAWG;IACG,wBAAwB,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAUtC;;;;;;;;;;;OAWG;IACG,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAUrC;;;;;;;;;;;OAWG;IACG,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAUrC;;;;;;;;;OASG;IACG,uBAAuB,CAAC,CAAC,SAAS,SAAS,EAC/C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAUhC;;;OAGG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAI1F;;OAEG;IACH,IAAW,MAAM,mBAEhB;IAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED;;;;OAIG;IACI,SAAS;IAIV,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
@@ -139,6 +139,13 @@ class FbProvider {
139
139
  return Promise.resolve((0, translateResult_1.translateResult)(res));
140
140
  });
141
141
  }
142
+ /**
143
+ * Tracks an event with the evaluation user and optional numeric metric value.
144
+ * FeatBit does not support additional tracking event details.
145
+ */
146
+ track(eventName, context, details) {
147
+ this.client.track((0, translateContext_1.translateContext)(this.logger, context), eventName, details === null || details === void 0 ? void 0 : details.value);
148
+ }
142
149
  /**
143
150
  * Get the status of the FeatBit provider.
144
151
  */
@@ -1 +1 @@
1
- {"version":3,"file":"FbProvider.js","sourceRoot":"","sources":["../src/FbProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FbProvider.js","sourceRoot":"","sources":["../src/FbProvider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@featbit/openfeature-provider-node-server",
3
- "version": "1.3.2",
3
+ "version": "1.4.0",
4
4
  "description": "A OpenFeature provider implementation for the FeatBit node SDK",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -25,11 +25,11 @@
25
25
  },
26
26
  "homepage": "https://www.featbit.co",
27
27
  "peerDependencies": {
28
- "@featbit/node-server-sdk": "^1.3.2",
28
+ "@featbit/node-server-sdk": "^1.4.0",
29
29
  "@openfeature/server-sdk": "^1.20.0"
30
30
  },
31
31
  "devDependencies": {
32
- "@featbit/node-server-sdk": "^1.3.2",
32
+ "@featbit/node-server-sdk": "^1.4.0",
33
33
  "@openfeature/server-sdk": "^1.20.0",
34
34
  "@types/jest": "^30.0.0",
35
35
  "@types/node": "^20.11.0",
package/src/FbProvider.ts CHANGED
@@ -7,6 +7,7 @@ import {
7
7
  ProviderEvents,
8
8
  ProviderStatus,
9
9
  ResolutionDetails,
10
+ TrackingEventDetails,
10
11
  } from "@openfeature/server-sdk";
11
12
  import {
12
13
  BasicLogger,
@@ -177,6 +178,14 @@ export class FbProvider implements Provider {
177
178
  return Promise.resolve(translateResult<T>(res));
178
179
  }
179
180
 
181
+ /**
182
+ * Tracks an event with the evaluation user and optional numeric metric value.
183
+ * FeatBit does not support additional tracking event details.
184
+ */
185
+ track(eventName: string, context: EvaluationContext, details?: TrackingEventDetails): void {
186
+ this.client.track(translateContext(this.logger, context), eventName, details?.value);
187
+ }
188
+
180
189
  /**
181
190
  * Get the status of the FeatBit provider.
182
191
  */
@@ -200,4 +209,4 @@ export class FbProvider implements Provider {
200
209
  async onClose(): Promise<void> {
201
210
  await this.client.close();
202
211
  }
203
- }
212
+ }