@posthog/core 1.37.2 → 1.38.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.
@@ -1,4 +1,4 @@
1
- import { FeatureFlagDetail, FeatureFlagValue, PostHogFlagsResponse, PostHogV1FlagsResponse, PostHogV2FlagsResponse, PartialWithRequired, PostHogFeatureFlagsResponse } from './types';
1
+ import { FeatureFlagDetail, FeatureFlagResult, FeatureFlagValue, PostHogFlagsResponse, PostHogV1FlagsResponse, PostHogV2FlagsResponse, PartialWithRequired, PostHogFeatureFlagsResponse } from './types';
2
2
  export declare const normalizeFlagsResponse: (flagsResponse: PartialWithRequired<PostHogV2FlagsResponse, "flags"> | PartialWithRequired<PostHogV1FlagsResponse, "featureFlags" | "featureFlagPayloads">) => PostHogFeatureFlagsResponse;
3
3
  /**
4
4
  * Get the flag values from the flags v4 response.
@@ -28,4 +28,5 @@ export declare const createFlagsResponseFromFlagsAndPayloads: (featureFlags: Pos
28
28
  export declare const updateFlagValue: (flag: FeatureFlagDetail, value: FeatureFlagValue) => FeatureFlagDetail;
29
29
  export declare function getEnabledFromValue(value: FeatureFlagValue): boolean;
30
30
  export declare function getVariantFromValue(value: FeatureFlagValue): string | undefined;
31
+ export declare const flagDetailsToResults: (flagDetails: Record<string, FeatureFlagDetail>) => FeatureFlagResult[];
31
32
  //# sourceMappingURL=featureFlagUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"featureFlagUtils.d.ts","sourceRoot":"","sources":["../src/featureFlagUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAEhB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EAEtB,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,sBAAsB,GACjC,eACI,mBAAmB,CAAC,sBAAsB,EAAE,OAAO,CAAC,GACpD,mBAAmB,CAAC,sBAAsB,EAAE,cAAc,GAAG,qBAAqB,CAAC,KACtF,2BAgCF,CAAA;AAqBD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,oBAAoB,CAAC,OAAO,CAAC,KAAG,oBAAoB,CAAC,cAAc,CAMhH,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,oBAAoB,CAAC,OAAO,CAAC,KACnC,oBAAoB,CAAC,qBAAqB,CAa5C,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,QAAQ,iBAAiB,GAAG,SAAS,KAAG,gBAAgB,GAAG,SAE9F,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,UAAU,GAAG,KAAG,GAU5C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,uCAAuC,GAClD,cAAc,sBAAsB,CAAC,cAAc,CAAC,EACpD,qBAAqB,sBAAsB,CAAC,qBAAqB,CAAC,KACjE,2BAaF,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,MAAM,iBAAiB,EAAE,OAAO,gBAAgB,KAAG,iBAMlF,CAAA;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAEpE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAE/E"}
1
+ {"version":3,"file":"featureFlagUtils.d.ts","sourceRoot":"","sources":["../src/featureFlagUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAEhB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EAEtB,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,sBAAsB,GACjC,eACI,mBAAmB,CAAC,sBAAsB,EAAE,OAAO,CAAC,GACpD,mBAAmB,CAAC,sBAAsB,EAAE,cAAc,GAAG,qBAAqB,CAAC,KACtF,2BAgCF,CAAA;AAqBD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,oBAAoB,CAAC,OAAO,CAAC,KAAG,oBAAoB,CAAC,cAAc,CAMhH,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,oBAAoB,CAAC,OAAO,CAAC,KACnC,oBAAoB,CAAC,qBAAqB,CAa5C,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,QAAQ,iBAAiB,GAAG,SAAS,KAAG,gBAAgB,GAAG,SAE9F,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,UAAU,GAAG,KAAG,GAU5C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,uCAAuC,GAClD,cAAc,sBAAsB,CAAC,cAAc,CAAC,EACpD,qBAAqB,sBAAsB,CAAC,qBAAqB,CAAC,KACjE,2BAaF,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,MAAM,iBAAiB,EAAE,OAAO,gBAAgB,KAAG,iBAMlF,CAAA;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAEpE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAE/E;AAED,eAAO,MAAM,oBAAoB,GAAI,aAAa,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAG,iBAAiB,EAWtG,CAAA"}
@@ -25,6 +25,7 @@ var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
27
  createFlagsResponseFromFlagsAndPayloads: ()=>createFlagsResponseFromFlagsAndPayloads,
28
+ flagDetailsToResults: ()=>flagDetailsToResults,
28
29
  getEnabledFromValue: ()=>getEnabledFromValue,
29
30
  getFeatureFlagValue: ()=>getFeatureFlagValue,
30
31
  getFlagValuesFromFlags: ()=>getFlagValuesFromFlags,
@@ -127,7 +128,18 @@ function getEnabledFromValue(value) {
127
128
  function getVariantFromValue(value) {
128
129
  return 'string' == typeof value ? value : void 0;
129
130
  }
131
+ const flagDetailsToResults = (flagDetails)=>Object.values(flagDetails).map((detail)=>{
132
+ const value = detail.variant ?? detail.enabled;
133
+ const rawPayload = detail.metadata?.payload;
134
+ return {
135
+ key: detail.key,
136
+ enabled: getEnabledFromValue(value),
137
+ variant: getVariantFromValue(value),
138
+ payload: void 0 !== rawPayload ? parsePayload(rawPayload) : null
139
+ };
140
+ });
130
141
  exports.createFlagsResponseFromFlagsAndPayloads = __webpack_exports__.createFlagsResponseFromFlagsAndPayloads;
142
+ exports.flagDetailsToResults = __webpack_exports__.flagDetailsToResults;
131
143
  exports.getEnabledFromValue = __webpack_exports__.getEnabledFromValue;
132
144
  exports.getFeatureFlagValue = __webpack_exports__.getFeatureFlagValue;
133
145
  exports.getFlagValuesFromFlags = __webpack_exports__.getFlagValuesFromFlags;
@@ -138,6 +150,7 @@ exports.parsePayload = __webpack_exports__.parsePayload;
138
150
  exports.updateFlagValue = __webpack_exports__.updateFlagValue;
139
151
  for(var __webpack_i__ in __webpack_exports__)if (-1 === [
140
152
  "createFlagsResponseFromFlagsAndPayloads",
153
+ "flagDetailsToResults",
141
154
  "getEnabledFromValue",
142
155
  "getFeatureFlagValue",
143
156
  "getFlagValuesFromFlags",
@@ -91,4 +91,14 @@ function getEnabledFromValue(value) {
91
91
  function getVariantFromValue(value) {
92
92
  return 'string' == typeof value ? value : void 0;
93
93
  }
94
- export { createFlagsResponseFromFlagsAndPayloads, getEnabledFromValue, getFeatureFlagValue, getFlagValuesFromFlags, getPayloadsFromFlags, getVariantFromValue, normalizeFlagsResponse, parsePayload, updateFlagValue };
94
+ const flagDetailsToResults = (flagDetails)=>Object.values(flagDetails).map((detail)=>{
95
+ const value = detail.variant ?? detail.enabled;
96
+ const rawPayload = detail.metadata?.payload;
97
+ return {
98
+ key: detail.key,
99
+ enabled: getEnabledFromValue(value),
100
+ variant: getVariantFromValue(value),
101
+ payload: void 0 !== rawPayload ? parsePayload(rawPayload) : null
102
+ };
103
+ });
104
+ export { createFlagsResponseFromFlagsAndPayloads, flagDetailsToResults, getEnabledFromValue, getFeatureFlagValue, getFlagValuesFromFlags, getPayloadsFromFlags, getVariantFromValue, normalizeFlagsResponse, parsePayload, updateFlagValue };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { getFeatureFlagValue, getEnabledFromValue, getVariantFromValue, parsePayload } from './featureFlagUtils';
1
+ export { getFeatureFlagValue, getEnabledFromValue, getVariantFromValue, parsePayload, flagDetailsToResults, } from './featureFlagUtils';
2
2
  export { gzipCompress, isGzipData, isGzipRequest, isGzipSupported, isNativeAsyncGzipError, isNativeAsyncGzipReadError, } from './gzip';
3
3
  export * from './utils';
4
4
  export * as ErrorTracking from './error-tracking';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAChH,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,QAAQ,CAAA;AACf,cAAc,SAAS,CAAA;AACvB,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AAIrB,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACzG,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,GACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,QAAQ,CAAA;AACf,cAAc,SAAS,CAAA;AACvB,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AAIrB,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACzG,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA"}
package/dist/index.js CHANGED
@@ -89,6 +89,7 @@ var __webpack_exports__ = {};
89
89
  buildOtlpLogRecord: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_4__.buildOtlpLogRecord,
90
90
  buildOtlpLogsPayload: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_4__.buildOtlpLogsPayload,
91
91
  buildResourceAttributes: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_4__.buildResourceAttributes,
92
+ flagDetailsToResults: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.flagDetailsToResults,
92
93
  getEnabledFromValue: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.getEnabledFromValue,
93
94
  getFeatureFlagValue: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.getFeatureFlagValue,
94
95
  getLengthFromRules: ()=>_surveys_validation__WEBPACK_IMPORTED_MODULE_12__.getLengthFromRules,
@@ -113,6 +114,7 @@ var __webpack_exports__ = {};
113
114
  var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./utils?637c");
114
115
  var __WEBPACK_REEXPORT_OBJECT__ = {};
115
116
  for(var __WEBPACK_IMPORT_KEY__ in _utils__WEBPACK_IMPORTED_MODULE_2__)if ([
117
+ "toOtlpAnyValue",
116
118
  "toOtlpKeyValueList",
117
119
  "getLengthFromRules",
118
120
  "PostHogLogs",
@@ -136,7 +138,7 @@ var __webpack_exports__ = {};
136
138
  "isGzipSupported",
137
139
  "buildOtlpLogsPayload",
138
140
  "buildOtlpLogRecord",
139
- "toOtlpAnyValue"
141
+ "flagDetailsToResults"
140
142
  ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
141
143
  return _utils__WEBPACK_IMPORTED_MODULE_2__[key];
142
144
  }).bind(0, __WEBPACK_IMPORT_KEY__);
@@ -148,6 +150,7 @@ var __webpack_exports__ = {};
148
150
  var _cookie__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./cookie");
149
151
  var __WEBPACK_REEXPORT_OBJECT__ = {};
150
152
  for(var __WEBPACK_IMPORT_KEY__ in _cookie__WEBPACK_IMPORTED_MODULE_7__)if ([
153
+ "toOtlpAnyValue",
151
154
  "toOtlpKeyValueList",
152
155
  "getLengthFromRules",
153
156
  "PostHogLogs",
@@ -171,7 +174,7 @@ var __webpack_exports__ = {};
171
174
  "isGzipSupported",
172
175
  "buildOtlpLogsPayload",
173
176
  "buildOtlpLogRecord",
174
- "toOtlpAnyValue"
177
+ "flagDetailsToResults"
175
178
  ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
176
179
  return _cookie__WEBPACK_IMPORTED_MODULE_7__[key];
177
180
  }).bind(0, __WEBPACK_IMPORT_KEY__);
@@ -179,6 +182,7 @@ var __webpack_exports__ = {};
179
182
  var _posthog_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./posthog-core");
180
183
  var __WEBPACK_REEXPORT_OBJECT__ = {};
181
184
  for(var __WEBPACK_IMPORT_KEY__ in _posthog_core__WEBPACK_IMPORTED_MODULE_8__)if ([
185
+ "toOtlpAnyValue",
182
186
  "toOtlpKeyValueList",
183
187
  "getLengthFromRules",
184
188
  "PostHogLogs",
@@ -202,7 +206,7 @@ var __webpack_exports__ = {};
202
206
  "isGzipSupported",
203
207
  "buildOtlpLogsPayload",
204
208
  "buildOtlpLogRecord",
205
- "toOtlpAnyValue"
209
+ "flagDetailsToResults"
206
210
  ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
207
211
  return _posthog_core__WEBPACK_IMPORTED_MODULE_8__[key];
208
212
  }).bind(0, __WEBPACK_IMPORT_KEY__);
@@ -210,6 +214,7 @@ var __webpack_exports__ = {};
210
214
  var _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./posthog-core-stateless");
211
215
  var __WEBPACK_REEXPORT_OBJECT__ = {};
212
216
  for(var __WEBPACK_IMPORT_KEY__ in _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_9__)if ([
217
+ "toOtlpAnyValue",
213
218
  "toOtlpKeyValueList",
214
219
  "getLengthFromRules",
215
220
  "PostHogLogs",
@@ -233,7 +238,7 @@ var __webpack_exports__ = {};
233
238
  "isGzipSupported",
234
239
  "buildOtlpLogsPayload",
235
240
  "buildOtlpLogRecord",
236
- "toOtlpAnyValue"
241
+ "flagDetailsToResults"
237
242
  ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
238
243
  return _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_9__[key];
239
244
  }).bind(0, __WEBPACK_IMPORT_KEY__);
@@ -241,6 +246,7 @@ var __webpack_exports__ = {};
241
246
  var _tracing_headers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./tracing-headers");
242
247
  var __WEBPACK_REEXPORT_OBJECT__ = {};
243
248
  for(var __WEBPACK_IMPORT_KEY__ in _tracing_headers__WEBPACK_IMPORTED_MODULE_10__)if ([
249
+ "toOtlpAnyValue",
244
250
  "toOtlpKeyValueList",
245
251
  "getLengthFromRules",
246
252
  "PostHogLogs",
@@ -264,7 +270,7 @@ var __webpack_exports__ = {};
264
270
  "isGzipSupported",
265
271
  "buildOtlpLogsPayload",
266
272
  "buildOtlpLogRecord",
267
- "toOtlpAnyValue"
273
+ "flagDetailsToResults"
268
274
  ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
269
275
  return _tracing_headers__WEBPACK_IMPORTED_MODULE_10__[key];
270
276
  }).bind(0, __WEBPACK_IMPORT_KEY__);
@@ -272,6 +278,7 @@ var __webpack_exports__ = {};
272
278
  var _types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./types");
273
279
  var __WEBPACK_REEXPORT_OBJECT__ = {};
274
280
  for(var __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_11__)if ([
281
+ "toOtlpAnyValue",
275
282
  "toOtlpKeyValueList",
276
283
  "getLengthFromRules",
277
284
  "PostHogLogs",
@@ -295,7 +302,7 @@ var __webpack_exports__ = {};
295
302
  "isGzipSupported",
296
303
  "buildOtlpLogsPayload",
297
304
  "buildOtlpLogRecord",
298
- "toOtlpAnyValue"
305
+ "flagDetailsToResults"
299
306
  ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
300
307
  return _types__WEBPACK_IMPORTED_MODULE_11__[key];
301
308
  }).bind(0, __WEBPACK_IMPORT_KEY__);
@@ -307,6 +314,7 @@ exports.PostHogLogs = __webpack_exports__.PostHogLogs;
307
314
  exports.buildOtlpLogRecord = __webpack_exports__.buildOtlpLogRecord;
308
315
  exports.buildOtlpLogsPayload = __webpack_exports__.buildOtlpLogsPayload;
309
316
  exports.buildResourceAttributes = __webpack_exports__.buildResourceAttributes;
317
+ exports.flagDetailsToResults = __webpack_exports__.flagDetailsToResults;
310
318
  exports.getEnabledFromValue = __webpack_exports__.getEnabledFromValue;
311
319
  exports.getFeatureFlagValue = __webpack_exports__.getFeatureFlagValue;
312
320
  exports.getLengthFromRules = __webpack_exports__.getLengthFromRules;
@@ -331,6 +339,7 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
331
339
  "buildOtlpLogRecord",
332
340
  "buildOtlpLogsPayload",
333
341
  "buildResourceAttributes",
342
+ "flagDetailsToResults",
334
343
  "getEnabledFromValue",
335
344
  "getFeatureFlagValue",
336
345
  "getLengthFromRules",
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { getEnabledFromValue, getFeatureFlagValue, getVariantFromValue, parsePayload } from "./featureFlagUtils.mjs";
1
+ import { flagDetailsToResults, getEnabledFromValue, getFeatureFlagValue, getVariantFromValue, parsePayload } from "./featureFlagUtils.mjs";
2
2
  import { gzipCompress, isGzipData, isGzipRequest, isGzipSupported, isNativeAsyncGzipError, isNativeAsyncGzipReadError } from "./gzip.mjs";
3
3
  import { buildOtlpLogRecord, buildOtlpLogsPayload, buildResourceAttributes, getOtlpSeverityNumber, getOtlpSeverityText, toOtlpAnyValue, toOtlpKeyValueList } from "./logs/logs-utils.mjs";
4
4
  import { PostHogLogs } from "./logs/index.mjs";
@@ -11,4 +11,4 @@ export * from "./posthog-core-stateless.mjs";
11
11
  export * from "./tracing-headers.mjs";
12
12
  export * from "./types.mjs";
13
13
  import * as __WEBPACK_EXTERNAL_MODULE__error_tracking_index_mjs_b3406d6f__ from "./error-tracking/index.mjs";
14
- export { __WEBPACK_EXTERNAL_MODULE__error_tracking_index_mjs_b3406d6f__ as ErrorTracking, PostHogLogs, buildOtlpLogRecord, buildOtlpLogsPayload, buildResourceAttributes, getEnabledFromValue, getFeatureFlagValue, getLengthFromRules, getOtlpSeverityNumber, getOtlpSeverityText, getRequirementsHint, getValidationError, getVariantFromValue, gzipCompress, isGzipData, isGzipRequest, isGzipSupported, isNativeAsyncGzipError, isNativeAsyncGzipReadError, parsePayload, toOtlpAnyValue, toOtlpKeyValueList, uuidv7 };
14
+ export { __WEBPACK_EXTERNAL_MODULE__error_tracking_index_mjs_b3406d6f__ as ErrorTracking, PostHogLogs, buildOtlpLogRecord, buildOtlpLogsPayload, buildResourceAttributes, flagDetailsToResults, getEnabledFromValue, getFeatureFlagValue, getLengthFromRules, getOtlpSeverityNumber, getOtlpSeverityText, getRequirementsHint, getValidationError, getVariantFromValue, gzipCompress, isGzipData, isGzipRequest, isGzipSupported, isNativeAsyncGzipError, isNativeAsyncGzipReadError, parsePayload, toOtlpAnyValue, toOtlpKeyValueList, uuidv7 };
@@ -34,6 +34,7 @@ export declare abstract class PostHogCore extends PostHogCoreStateless {
34
34
  * @param propertiesToKeep - Optional array of persisted properties to preserve during reset.
35
35
  */
36
36
  reset(propertiesToKeep?: PostHogPersistedProperty[]): void;
37
+ _shutdown(shutdownTimeoutMs?: number): Promise<void>;
37
38
  protected getCommonEventProperties(): PostHogEventProperties;
38
39
  private enrichProperties;
39
40
  /**
@@ -134,6 +135,11 @@ export declare abstract class PostHogCore extends PostHogCoreStateless {
134
135
  private getBootstrappedFeatureFlags;
135
136
  private getBootstrappedFeatureFlagPayloads;
136
137
  getFeatureFlagResult(key: string, options?: FeatureFlagResultOptions): FeatureFlagResult | undefined;
138
+ /**
139
+ * Returns all currently cached feature flags as `FeatureFlagResult`s. This is a synchronous read of
140
+ * the flags from the last load (no network request) and does not send a `$feature_flag_called` event.
141
+ */
142
+ getAllFeatureFlags(): FeatureFlagResult[];
137
143
  protected _getFeatureFlagResult(key: string, options?: {
138
144
  /** Whether to send an event that the flag was evaluated. This defaults to true,
139
145
  * but will respect the instance-level sendFeatureFlagEvent setting.
@@ -1 +1 @@
1
- {"version":3,"file":"posthog-core.d.ts","sourceRoot":"","sources":["../src/posthog-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"posthog-core.d.ts","sourceRoot":"","sources":["../src/posthog-core.ts"],"names":[],"mappings":"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"}
@@ -105,6 +105,13 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
105
105
  } else this.reloadFeatureFlags();
106
106
  });
107
107
  }
108
+ async _shutdown(shutdownTimeoutMs = 30000) {
109
+ try {
110
+ return await super._shutdown(shutdownTimeoutMs);
111
+ } finally{
112
+ this.flagCallReported = {};
113
+ }
114
+ }
108
115
  getCommonEventProperties() {
109
116
  const featureFlags = this.getFeatureFlags();
110
117
  const featureVariantProperties = {};
@@ -445,7 +452,6 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
445
452
  this.maybeNotifyRemoteConfig(triggerOnRemoteConfig, res);
446
453
  return res;
447
454
  }
448
- if (this.sendFeatureFlagEvent) this.flagCallReported = {};
449
455
  let newFeatureFlagDetails = res;
450
456
  if (res.errorsWhileComputingFlags) {
451
457
  const currentFlagDetails = this.getKnownFeatureFlagDetails();
@@ -532,13 +538,16 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
532
538
  getFeatureFlagResult(key, options) {
533
539
  return this._getFeatureFlagResult(key, options);
534
540
  }
541
+ getAllFeatureFlags() {
542
+ return (0, external_featureFlagUtils_js_namespaceObject.flagDetailsToResults)(this.getFeatureFlagDetails()?.flags ?? {});
543
+ }
535
544
  _getFeatureFlagResult(key, options = {}) {
536
545
  const storedDetails = this.getStoredFlagDetails();
537
546
  const details = this.getFeatureFlagDetails();
538
547
  const isQuotaLimited = storedDetails?.quotaLimited?.includes(external_posthog_core_stateless_js_namespaceObject.QuotaLimitedFeature.FeatureFlags);
539
548
  const featureFlag = details?.flags[key];
540
- const sendEvent = (options.sendEvent ?? this.sendFeatureFlagEvent) && !this.flagCallReported[key];
541
549
  const flagValue = (0, external_featureFlagUtils_js_namespaceObject.getFeatureFlagValue)(featureFlag);
550
+ const sendEvent = (options.sendEvent ?? this.sendFeatureFlagEvent) && !this.flagCallReported[key]?.has(flagValue);
542
551
  if (sendEvent) {
543
552
  const errors = [];
544
553
  if (storedDetails?.requestError) {
@@ -555,7 +564,8 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
555
564
  const bootstrappedResponse = this.getBootstrappedFeatureFlags()?.[key];
556
565
  const bootstrappedPayload = this.getBootstrappedFeatureFlagPayloads()?.[key];
557
566
  const featureFlagError = errors.length > 0 ? errors.join(',') : void 0;
558
- this.flagCallReported[key] = true;
567
+ this.flagCallReported[key] = this.flagCallReported[key] ?? new Set();
568
+ this.flagCallReported[key].add(flagValue);
559
569
  const properties = {
560
570
  $feature_flag: key,
561
571
  $feature_flag_response: flagValue,
@@ -728,7 +738,6 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
728
738
  }
729
739
  };
730
740
  }
731
- if (this.sendFeatureFlagEvent) this.flagCallReported = {};
732
741
  this.setKnownFeatureFlagDetails({
733
742
  flags: flagDetails
734
743
  });
@@ -1,4 +1,4 @@
1
- import { createFlagsResponseFromFlagsAndPayloads, getEnabledFromValue, getFeatureFlagValue, getFlagValuesFromFlags, getPayloadsFromFlags, getVariantFromValue, normalizeFlagsResponse, parsePayload, updateFlagValue } from "./featureFlagUtils.mjs";
1
+ import { createFlagsResponseFromFlagsAndPayloads, flagDetailsToResults, getEnabledFromValue, getFeatureFlagValue, getFlagValuesFromFlags, getPayloadsFromFlags, getVariantFromValue, normalizeFlagsResponse, parsePayload, updateFlagValue } from "./featureFlagUtils.mjs";
2
2
  import { Compression, FeatureFlagError, PostHogPersistedProperty } from "./types.mjs";
3
3
  import { PostHogCoreStateless, QuotaLimitedFeature, maybeAdd } from "./posthog-core-stateless.mjs";
4
4
  import { uuidv7 } from "./vendor/uuidv7.mjs";
@@ -77,6 +77,13 @@ class PostHogCore extends PostHogCoreStateless {
77
77
  } else this.reloadFeatureFlags();
78
78
  });
79
79
  }
80
+ async _shutdown(shutdownTimeoutMs = 30000) {
81
+ try {
82
+ return await super._shutdown(shutdownTimeoutMs);
83
+ } finally{
84
+ this.flagCallReported = {};
85
+ }
86
+ }
80
87
  getCommonEventProperties() {
81
88
  const featureFlags = this.getFeatureFlags();
82
89
  const featureVariantProperties = {};
@@ -417,7 +424,6 @@ class PostHogCore extends PostHogCoreStateless {
417
424
  this.maybeNotifyRemoteConfig(triggerOnRemoteConfig, res);
418
425
  return res;
419
426
  }
420
- if (this.sendFeatureFlagEvent) this.flagCallReported = {};
421
427
  let newFeatureFlagDetails = res;
422
428
  if (res.errorsWhileComputingFlags) {
423
429
  const currentFlagDetails = this.getKnownFeatureFlagDetails();
@@ -504,13 +510,16 @@ class PostHogCore extends PostHogCoreStateless {
504
510
  getFeatureFlagResult(key, options) {
505
511
  return this._getFeatureFlagResult(key, options);
506
512
  }
513
+ getAllFeatureFlags() {
514
+ return flagDetailsToResults(this.getFeatureFlagDetails()?.flags ?? {});
515
+ }
507
516
  _getFeatureFlagResult(key, options = {}) {
508
517
  const storedDetails = this.getStoredFlagDetails();
509
518
  const details = this.getFeatureFlagDetails();
510
519
  const isQuotaLimited = storedDetails?.quotaLimited?.includes(QuotaLimitedFeature.FeatureFlags);
511
520
  const featureFlag = details?.flags[key];
512
- const sendEvent = (options.sendEvent ?? this.sendFeatureFlagEvent) && !this.flagCallReported[key];
513
521
  const flagValue = getFeatureFlagValue(featureFlag);
522
+ const sendEvent = (options.sendEvent ?? this.sendFeatureFlagEvent) && !this.flagCallReported[key]?.has(flagValue);
514
523
  if (sendEvent) {
515
524
  const errors = [];
516
525
  if (storedDetails?.requestError) {
@@ -527,7 +536,8 @@ class PostHogCore extends PostHogCoreStateless {
527
536
  const bootstrappedResponse = this.getBootstrappedFeatureFlags()?.[key];
528
537
  const bootstrappedPayload = this.getBootstrappedFeatureFlagPayloads()?.[key];
529
538
  const featureFlagError = errors.length > 0 ? errors.join(',') : void 0;
530
- this.flagCallReported[key] = true;
539
+ this.flagCallReported[key] = this.flagCallReported[key] ?? new Set();
540
+ this.flagCallReported[key].add(flagValue);
531
541
  const properties = {
532
542
  $feature_flag: key,
533
543
  $feature_flag_response: flagValue,
@@ -700,7 +710,6 @@ class PostHogCore extends PostHogCoreStateless {
700
710
  }
701
711
  };
702
712
  }
703
- if (this.sendFeatureFlagEvent) this.flagCallReported = {};
704
713
  this.setKnownFeatureFlagDetails({
705
714
  flags: flagDetails
706
715
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@posthog/core",
3
- "version": "1.37.2",
3
+ "version": "1.38.0",
4
4
  "bugs": {
5
5
  "url": "https://github.com/PostHog/posthog-js/issues"
6
6
  },
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  FeatureFlagDetail,
3
+ FeatureFlagResult,
3
4
  FeatureFlagValue,
4
5
  JsonType,
5
6
  PostHogFlagsResponse,
@@ -161,3 +162,16 @@ export function getEnabledFromValue(value: FeatureFlagValue): boolean {
161
162
  export function getVariantFromValue(value: FeatureFlagValue): string | undefined {
162
163
  return typeof value === 'string' ? value : undefined
163
164
  }
165
+
166
+ export const flagDetailsToResults = (flagDetails: Record<string, FeatureFlagDetail>): FeatureFlagResult[] => {
167
+ return Object.values(flagDetails).map((detail) => {
168
+ const value = detail.variant ?? detail.enabled
169
+ const rawPayload = detail.metadata?.payload
170
+ return {
171
+ key: detail.key,
172
+ enabled: getEnabledFromValue(value),
173
+ variant: getVariantFromValue(value),
174
+ payload: rawPayload !== undefined ? parsePayload(rawPayload) : null,
175
+ }
176
+ })
177
+ }
package/src/index.ts CHANGED
@@ -1,4 +1,10 @@
1
- export { getFeatureFlagValue, getEnabledFromValue, getVariantFromValue, parsePayload } from './featureFlagUtils'
1
+ export {
2
+ getFeatureFlagValue,
3
+ getEnabledFromValue,
4
+ getVariantFromValue,
5
+ parsePayload,
6
+ flagDetailsToResults,
7
+ } from './featureFlagUtils'
2
8
  export {
3
9
  gzipCompress,
4
10
  isGzipData,
@@ -23,6 +23,7 @@ import type {
23
23
  } from './types'
24
24
  import {
25
25
  createFlagsResponseFromFlagsAndPayloads,
26
+ flagDetailsToResults,
26
27
  getEnabledFromValue,
27
28
  getFeatureFlagValue,
28
29
  getFlagValuesFromFlags,
@@ -54,7 +55,7 @@ export abstract class PostHogCore extends PostHogCoreStateless {
54
55
  // options
55
56
  private sendFeatureFlagEvent: boolean
56
57
  private disableRemoteFeatureFlags: boolean
57
- private flagCallReported: { [key: string]: boolean } = {}
58
+ private flagCallReported: { [key: string]: Set<FeatureFlagValue | undefined> } = {}
58
59
  private _beforeSend?: BeforeSendFn | BeforeSendFn[]
59
60
 
60
61
  // internal
@@ -194,6 +195,14 @@ export abstract class PostHogCore extends PostHogCoreStateless {
194
195
  })
195
196
  }
196
197
 
198
+ async _shutdown(shutdownTimeoutMs: number = 30000): Promise<void> {
199
+ try {
200
+ return await super._shutdown(shutdownTimeoutMs)
201
+ } finally {
202
+ this.flagCallReported = {}
203
+ }
204
+ }
205
+
197
206
  protected getCommonEventProperties(): PostHogEventProperties {
198
207
  const featureFlags = this.getFeatureFlags()
199
208
 
@@ -808,11 +817,6 @@ export abstract class PostHogCore extends PostHogCoreStateless {
808
817
  return res
809
818
  }
810
819
 
811
- // clear flag call reported if we have new flags since they might have changed
812
- if (this.sendFeatureFlagEvent) {
813
- this.flagCallReported = {}
814
- }
815
-
816
820
  let newFeatureFlagDetails = res
817
821
  if (res.errorsWhileComputingFlags) {
818
822
  // if not all flags were computed, we upsert flags instead of replacing them
@@ -949,6 +953,14 @@ export abstract class PostHogCore extends PostHogCoreStateless {
949
953
  return this._getFeatureFlagResult(key, options)
950
954
  }
951
955
 
956
+ /**
957
+ * Returns all currently cached feature flags as `FeatureFlagResult`s. This is a synchronous read of
958
+ * the flags from the last load (no network request) and does not send a `$feature_flag_called` event.
959
+ */
960
+ getAllFeatureFlags(): FeatureFlagResult[] {
961
+ return flagDetailsToResults(this.getFeatureFlagDetails()?.flags ?? {})
962
+ }
963
+
952
964
  protected _getFeatureFlagResult(
953
965
  key: string,
954
966
  options: {
@@ -970,8 +982,8 @@ export abstract class PostHogCore extends PostHogCoreStateless {
970
982
  const details = this.getFeatureFlagDetails()
971
983
  const isQuotaLimited = storedDetails?.quotaLimited?.includes(QuotaLimitedFeature.FeatureFlags)
972
984
  const featureFlag = details?.flags[key]
973
- const sendEvent = (options.sendEvent ?? this.sendFeatureFlagEvent) && !this.flagCallReported[key]
974
985
  const flagValue: FeatureFlagValue | undefined = getFeatureFlagValue(featureFlag)
986
+ const sendEvent = (options.sendEvent ?? this.sendFeatureFlagEvent) && !this.flagCallReported[key]?.has(flagValue)
975
987
 
976
988
  if (sendEvent) {
977
989
  const errors: string[] = []
@@ -1003,7 +1015,8 @@ export abstract class PostHogCore extends PostHogCoreStateless {
1003
1015
  const bootstrappedPayload = this.getBootstrappedFeatureFlagPayloads()?.[key]
1004
1016
  const featureFlagError = errors.length > 0 ? errors.join(',') : undefined
1005
1017
 
1006
- this.flagCallReported[key] = true
1018
+ this.flagCallReported[key] = this.flagCallReported[key] ?? new Set()
1019
+ this.flagCallReported[key].add(flagValue)
1007
1020
 
1008
1021
  const properties: Record<string, any> = {
1009
1022
  $feature_flag: key,
@@ -1245,9 +1258,6 @@ export abstract class PostHogCore extends PostHogCoreStateless {
1245
1258
  }
1246
1259
  }
1247
1260
 
1248
- if (this.sendFeatureFlagEvent) {
1249
- this.flagCallReported = {}
1250
- }
1251
1261
  this.setKnownFeatureFlagDetails({ flags: flagDetails })
1252
1262
  })
1253
1263
  }