@syntrologie/runtime-sdk 0.2.13 → 0.2.14

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.
@@ -40,6 +40,19 @@ export interface PostHogAdapterOptions {
40
40
  * @default true
41
41
  */
42
42
  capturePageleave?: boolean;
43
+ /**
44
+ * Enable PostHog feature flags for segment membership.
45
+ * When true, PostHog's /decide endpoint is called to get segment flags.
46
+ * These flags (in_segment_*) are used for segment-based targeting.
47
+ *
48
+ * @default true
49
+ */
50
+ enableFeatureFlags?: boolean;
51
+ /**
52
+ * Callback when PostHog feature flags are loaded.
53
+ * Used to update GrowthBook attributes with segment membership.
54
+ */
55
+ onFeatureFlagsLoaded?: (flags: Record<string, boolean | string>) => void;
43
56
  }
44
57
  interface CanvasAnalyticsPayload extends Properties {
45
58
  rectangleId?: string;
@@ -51,7 +64,17 @@ interface CanvasAnalyticsPayload extends Properties {
51
64
  export declare class PostHogAdapter implements TelemetryClient {
52
65
  private readonly options;
53
66
  private client?;
67
+ private featureFlagsCallback?;
54
68
  constructor(options?: PostHogAdapterOptions);
69
+ /**
70
+ * Get all feature flags from PostHog.
71
+ * Used to extract segment membership flags (in_segment_*).
72
+ */
73
+ getAllFeatureFlags(): Record<string, boolean | string> | undefined;
74
+ /**
75
+ * Get segment membership flags (in_segment_*) from PostHog.
76
+ */
77
+ getSegmentFlags(): Record<string, boolean>;
55
78
  identify(id: string, props?: Properties): void;
56
79
  alias(id: string, aliasId: string): void;
57
80
  track(eventName: string, payload?: CanvasAnalyticsPayload): void;
@@ -65,6 +88,7 @@ export declare class PostHogAdapter implements TelemetryClient {
65
88
  trackExperiment(experimentKey: string, variationId: number, variationName?: string): void;
66
89
  setPersonProperties(properties: Record<string, unknown>): void;
67
90
  setPersonPropertiesOnce(properties: Record<string, unknown>): void;
91
+ getDistinctId(): string | undefined;
68
92
  }
69
93
  /**
70
94
  * Create a TelemetryClient backed by PostHog.
@@ -4,22 +4,27 @@ import posthog from "posthog-js";
4
4
  */
5
5
  export class PostHogAdapter {
6
6
  constructor(options = {}) {
7
- var _a, _b, _c, _d, _e;
7
+ var _a, _b, _c, _d, _e, _f;
8
8
  this.options = options;
9
9
  this.client = options.client;
10
+ this.featureFlagsCallback = options.onFeatureFlagsLoaded;
10
11
  if (!this.client && typeof window !== "undefined" && options.apiKey) {
11
12
  this.client = posthog;
13
+ // Determine if we should enable feature flags (for segment membership)
14
+ // Default: true (enabled) to support segment targeting via /decide
15
+ const enableFeatureFlags = (_a = options.enableFeatureFlags) !== null && _a !== void 0 ? _a : true;
12
16
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
17
  this.client.init(options.apiKey, {
14
- api_host: (_a = options.apiHost) !== null && _a !== void 0 ? _a : "https://posthog-dev.syntrologie.com",
15
- // Disable feature flags - we use GrowthBook for experiments
16
- advanced_disable_feature_flags: true,
17
- advanced_disable_feature_flags_on_first_load: true,
18
+ api_host: (_b = options.apiHost) !== null && _b !== void 0 ? _b : "https://posthog-dev.syntrologie.com",
19
+ // Feature flags for segment membership (in_segment_* flags)
20
+ // When enabled, /decide is called to get segment flags
21
+ advanced_disable_feature_flags: !enableFeatureFlags,
22
+ advanced_disable_feature_flags_on_first_load: !enableFeatureFlags,
18
23
  // Full-page tracking - all ON by default
19
- autocapture: (_b = options.autocapture) !== null && _b !== void 0 ? _b : true,
20
- capture_pageview: (_c = options.capturePageview) !== null && _c !== void 0 ? _c : true,
21
- capture_pageleave: (_d = options.capturePageleave) !== null && _d !== void 0 ? _d : true,
22
- disable_session_recording: !((_e = options.sessionRecording) !== null && _e !== void 0 ? _e : true),
24
+ autocapture: (_c = options.autocapture) !== null && _c !== void 0 ? _c : true,
25
+ capture_pageview: (_d = options.capturePageview) !== null && _d !== void 0 ? _d : true,
26
+ capture_pageleave: (_e = options.capturePageleave) !== null && _e !== void 0 ? _e : true,
27
+ disable_session_recording: !((_f = options.sessionRecording) !== null && _f !== void 0 ? _f : true),
23
28
  // CRITICAL: Disable user agent filtering to allow headless Chrome
24
29
  // PostHog blocks "HeadlessChrome" user agents by default as bot detection
25
30
  // This enables session recording in Playwright/crawler sessions
@@ -32,9 +37,47 @@ export class PostHogAdapter {
32
37
  capture_performance: true,
33
38
  // Enable web vitals
34
39
  enable_recording_console_log: true,
40
+ // Bootstrap callback for when flags are loaded
41
+ loaded: (ph) => {
42
+ if (enableFeatureFlags && this.featureFlagsCallback) {
43
+ // Register callback for when feature flags are ready
44
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
+ ph.onFeatureFlags(() => {
46
+ const allFlags = this.getAllFeatureFlags();
47
+ if (allFlags && this.featureFlagsCallback) {
48
+ this.featureFlagsCallback(allFlags);
49
+ }
50
+ });
51
+ }
52
+ },
35
53
  });
36
54
  }
37
55
  }
56
+ /**
57
+ * Get all feature flags from PostHog.
58
+ * Used to extract segment membership flags (in_segment_*).
59
+ */
60
+ getAllFeatureFlags() {
61
+ var _a, _b, _c;
62
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
63
+ const flags = (_c = (_b = (_a = this.client) === null || _a === void 0 ? void 0 : _a.featureFlags) === null || _b === void 0 ? void 0 : _b.getFlagVariants) === null || _c === void 0 ? void 0 : _c.call(_b);
64
+ return flags;
65
+ }
66
+ /**
67
+ * Get segment membership flags (in_segment_*) from PostHog.
68
+ */
69
+ getSegmentFlags() {
70
+ const allFlags = this.getAllFeatureFlags();
71
+ if (!allFlags)
72
+ return {};
73
+ const segmentFlags = {};
74
+ for (const [key, value] of Object.entries(allFlags)) {
75
+ if (key.startsWith("in_segment_")) {
76
+ segmentFlags[key] = value === true;
77
+ }
78
+ }
79
+ return segmentFlags;
80
+ }
38
81
  identify(id, props) {
39
82
  var _a;
40
83
  (_a = this.client) === null || _a === void 0 ? void 0 : _a.identify(id, props);
@@ -99,6 +142,12 @@ export class PostHogAdapter {
99
142
  // PostHog's $set_once only sets if property doesn't exist
100
143
  (_a = this.client) === null || _a === void 0 ? void 0 : _a.capture("$set", { $set_once: properties });
101
144
  }
145
+ getDistinctId() {
146
+ var _a, _b;
147
+ // PostHog's get_distinct_id returns the current user's ID
148
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
149
+ return (_b = (_a = this.client) === null || _a === void 0 ? void 0 : _a.get_distinct_id) === null || _b === void 0 ? void 0 : _b.call(_a);
150
+ }
102
151
  }
103
152
  /**
104
153
  * Create a TelemetryClient backed by PostHog.
@@ -1 +1 @@
1
- {"version":3,"file":"posthog.js","sourceRoot":"","sources":["../../../src/telemetry/adapters/posthog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"posthog.js","sourceRoot":"","sources":["../../../src/telemetry/adapters/posthog.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Telemetry provider registry.
3
+ *
4
+ * Maps provider names to their adapter factories.
5
+ * This allows the bootstrap module to dynamically create
6
+ * telemetry clients based on token configuration.
7
+ */
8
+ import { PostHogAdapterOptions } from "./adapters/posthog";
1
9
  import type { TelemetryClient } from "./types";
2
10
  /**
3
11
  * Create a telemetry client for the specified provider.
@@ -7,7 +15,4 @@ import type { TelemetryClient } from "./types";
7
15
  * @returns A TelemetryClient instance
8
16
  * @throws Error if the provider is not supported
9
17
  */
10
- export declare function createTelemetryClient(provider: string, config: {
11
- apiKey: string;
12
- apiHost?: string;
13
- }): TelemetryClient;
18
+ export declare function createTelemetryClient(provider: string, config: PostHogAdapterOptions): TelemetryClient;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/telemetry/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,mBAAmB,EAAyB,MAAM,oBAAoB,CAAC;AAKhF,MAAM,QAAQ,GAAmC;IAC/C,OAAO,EAAE,CAAC,MAA6B,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;CACxE,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,MAA4C;IAE5C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,+BAA+B,QAAQ,gBAAgB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/telemetry/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,mBAAmB,EAAyB,MAAM,oBAAoB,CAAC;AAKhF,MAAM,QAAQ,GAAmC;IAC/C,OAAO,EAAE,CAAC,MAA6B,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;CACxE,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,MAA6B;IAE7B,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,+BAA+B,QAAQ,gBAAgB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC"}
@@ -55,4 +55,19 @@ export interface TelemetryClient {
55
55
  * Useful for tracking first-time events like tour completion.
56
56
  */
57
57
  setPersonPropertiesOnce?(properties: Record<string, unknown>): void;
58
+ /**
59
+ * Get the current user's distinct ID from the telemetry provider.
60
+ * Used for segment targeting lookups.
61
+ */
62
+ getDistinctId?(): string | undefined;
63
+ /**
64
+ * Get all feature flags from the telemetry provider.
65
+ * Used to extract segment membership flags (in_segment_*).
66
+ */
67
+ getAllFeatureFlags?(): Record<string, boolean | string> | undefined;
68
+ /**
69
+ * Get segment membership flags (in_segment_*) from the telemetry provider.
70
+ * Returns only flags that start with "in_segment_".
71
+ */
72
+ getSegmentFlags?(): Record<string, boolean>;
58
73
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syntrologie/runtime-sdk",
3
- "version": "0.2.13",
3
+ "version": "0.2.14",
4
4
  "description": "Syntrologie Runtime SDK for web experimentation and analytics",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,