@posthog/core 1.13.0 → 1.14.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/posthog-core.d.ts +55 -0
- package/dist/posthog-core.d.ts.map +1 -1
- package/dist/posthog-core.js +51 -1
- package/dist/posthog-core.mjs +51 -1
- package/dist/types.d.ts +40 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.mjs +2 -0
- package/package.json +1 -1
- package/src/posthog-core.ts +154 -0
- package/src/types.ts +42 -0
package/dist/posthog-core.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
9
9
|
protected _sessionExpirationTimeSeconds: number;
|
|
10
10
|
private _sessionMaxLengthSeconds;
|
|
11
11
|
protected sessionProps: PostHogEventProperties;
|
|
12
|
+
protected _personProfiles: 'always' | 'identified_only' | 'never';
|
|
12
13
|
constructor(apiKey: string, options?: PostHogCoreOptions);
|
|
13
14
|
protected setupBootstrap(options?: Partial<PostHogCoreOptions>): void;
|
|
14
15
|
private clearProps;
|
|
@@ -168,6 +169,60 @@ export declare abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
168
169
|
* @param metricValue The value of the metric to capture.
|
|
169
170
|
*/
|
|
170
171
|
captureTraceMetric(traceId: string | number, metricName: string, metricValue: string | number | boolean): void;
|
|
172
|
+
/***
|
|
173
|
+
*** PERSON PROFILES
|
|
174
|
+
***/
|
|
175
|
+
/**
|
|
176
|
+
* Returns whether the current user is identified (has a person profile).
|
|
177
|
+
*
|
|
178
|
+
* This checks:
|
|
179
|
+
* 1. If PersonMode is explicitly set to 'identified'
|
|
180
|
+
* 2. For backwards compatibility: if DistinctId differs from AnonymousId
|
|
181
|
+
* (meaning the user was identified before the SDK was upgraded)
|
|
182
|
+
*
|
|
183
|
+
* @internal
|
|
184
|
+
*/
|
|
185
|
+
protected _isIdentified(): boolean;
|
|
186
|
+
/**
|
|
187
|
+
* Returns the current groups object from super properties.
|
|
188
|
+
* @internal
|
|
189
|
+
*/
|
|
190
|
+
protected _getGroups(): PostHogGroupProperties;
|
|
191
|
+
/**
|
|
192
|
+
* Determines whether the current user should have person processing enabled.
|
|
193
|
+
*
|
|
194
|
+
* Returns true if:
|
|
195
|
+
* - person_profiles is set to 'always', OR
|
|
196
|
+
* - person_profiles is 'identified_only' AND (user is identified OR has groups OR person processing was explicitly enabled)
|
|
197
|
+
*
|
|
198
|
+
* Returns false if:
|
|
199
|
+
* - person_profiles is 'never', OR
|
|
200
|
+
* - person_profiles is 'identified_only' AND user is not identified AND has no groups AND person processing was not enabled
|
|
201
|
+
*
|
|
202
|
+
* @internal
|
|
203
|
+
*/
|
|
204
|
+
protected _hasPersonProcessing(): boolean;
|
|
205
|
+
/**
|
|
206
|
+
* Enables person processing if the config allows it.
|
|
207
|
+
*
|
|
208
|
+
* If person_profiles is 'never', this logs an error and returns false.
|
|
209
|
+
* Otherwise, it enables person processing and returns true.
|
|
210
|
+
*
|
|
211
|
+
* @param functionName - The name of the function calling this method (for error messages)
|
|
212
|
+
* @returns true if person processing is enabled, false if it's blocked by config
|
|
213
|
+
* @internal
|
|
214
|
+
*/
|
|
215
|
+
protected _requirePersonProcessing(functionName: string): boolean;
|
|
216
|
+
/**
|
|
217
|
+
* Creates a person profile for the current user, if they don't already have one.
|
|
218
|
+
*
|
|
219
|
+
* If personProfiles is 'identified_only' and no profile exists, this will create one.
|
|
220
|
+
* If personProfiles is 'never', this will log an error and do nothing.
|
|
221
|
+
* If personProfiles is 'always' or a profile already exists, this is a no-op.
|
|
222
|
+
*
|
|
223
|
+
* @public
|
|
224
|
+
*/
|
|
225
|
+
createPersonProfile(): void;
|
|
171
226
|
/**
|
|
172
227
|
* Override processBeforeEnqueue to run before_send hooks.
|
|
173
228
|
* This runs after prepareMessage, giving users full control over the final event.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posthog-core.d.ts","sourceRoot":"","sources":["../src/posthog-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAGhB,yBAAyB,EAKzB,sBAAsB,EAGvB,MAAM,SAAS,CAAA;AAShB,OAAO,EAAiC,wBAAwB,EAAE,MAAM,SAAS,CAAA;AACjF,OAAO,EAAY,oBAAoB,EAAuB,MAAM,0BAA0B,CAAA;AAI9F,8BAAsB,WAAY,SAAQ,oBAAoB;IAE5D,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,WAAW,CAAC,CAA+B;IAGnD,SAAS,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAAA;IAClF,SAAS,CAAC,6BAA6B,EAAE,MAAM,CAAA;IAC/C,OAAO,CAAC,wBAAwB,CAAuB;IACvD,SAAS,CAAC,YAAY,EAAE,sBAAsB,CAAK;
|
|
1
|
+
{"version":3,"file":"posthog-core.d.ts","sourceRoot":"","sources":["../src/posthog-core.ts"],"names":[],"mappings":"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"}
|
package/dist/posthog-core.js
CHANGED
|
@@ -42,6 +42,7 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
42
42
|
}), this.flagCallReported = {}, this._sessionMaxLengthSeconds = 86400, this.sessionProps = {};
|
|
43
43
|
this.sendFeatureFlagEvent = options?.sendFeatureFlagEvent ?? true;
|
|
44
44
|
this._sessionExpirationTimeSeconds = options?.sessionExpirationTimeSeconds ?? 1800;
|
|
45
|
+
this._personProfiles = options?.personProfiles ?? 'identified_only';
|
|
45
46
|
this._beforeSend = options?.before_send;
|
|
46
47
|
}
|
|
47
48
|
setupBootstrap(options) {
|
|
@@ -49,7 +50,10 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
49
50
|
if (!bootstrap) return;
|
|
50
51
|
if (bootstrap.distinctId) if (bootstrap.isIdentifiedId) {
|
|
51
52
|
const distinctId = this.getPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.DistinctId);
|
|
52
|
-
if (!distinctId)
|
|
53
|
+
if (!distinctId) {
|
|
54
|
+
this.setPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.DistinctId, bootstrap.distinctId);
|
|
55
|
+
this.setPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.PersonMode, 'identified');
|
|
56
|
+
}
|
|
53
57
|
} else {
|
|
54
58
|
const anonymousId = this.getPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.AnonymousId);
|
|
55
59
|
if (!anonymousId) this.setPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.AnonymousId, bootstrap.distinctId);
|
|
@@ -160,6 +164,7 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
160
164
|
}
|
|
161
165
|
identify(distinctId, properties, options) {
|
|
162
166
|
this.wrap(()=>{
|
|
167
|
+
if (!this._requirePersonProcessing('posthog.identify')) return;
|
|
163
168
|
const previousDistinctId = this.getDistinctId();
|
|
164
169
|
distinctId = distinctId || previousDistinctId;
|
|
165
170
|
if (properties?.$groups) this.groups(properties.$groups);
|
|
@@ -174,6 +179,7 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
174
179
|
if (distinctId !== previousDistinctId) {
|
|
175
180
|
this.setPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.AnonymousId, previousDistinctId);
|
|
176
181
|
this.setPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.DistinctId, distinctId);
|
|
182
|
+
this.setPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.PersonMode, 'identified');
|
|
177
183
|
this.reloadFeatureFlags();
|
|
178
184
|
}
|
|
179
185
|
super.identifyStateless(distinctId, allProperties, options);
|
|
@@ -184,11 +190,16 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
184
190
|
const distinctId = this.getDistinctId();
|
|
185
191
|
if (properties?.$groups) this.groups(properties.$groups);
|
|
186
192
|
const allProperties = this.enrichProperties(properties);
|
|
193
|
+
const hasPersonProcessing = this._hasPersonProcessing();
|
|
194
|
+
allProperties['$process_person_profile'] = hasPersonProcessing;
|
|
195
|
+
allProperties['$is_identified'] = this._isIdentified();
|
|
196
|
+
if (hasPersonProcessing) this._requirePersonProcessing('capture');
|
|
187
197
|
super.captureStateless(distinctId, event, allProperties, options);
|
|
188
198
|
});
|
|
189
199
|
}
|
|
190
200
|
alias(alias) {
|
|
191
201
|
this.wrap(()=>{
|
|
202
|
+
if (!this._requirePersonProcessing('posthog.alias')) return;
|
|
192
203
|
const distinctId = this.getDistinctId();
|
|
193
204
|
const allProperties = this.enrichProperties({});
|
|
194
205
|
super.aliasStateless(alias, distinctId, allProperties);
|
|
@@ -211,6 +222,7 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
211
222
|
}
|
|
212
223
|
groups(groups) {
|
|
213
224
|
this.wrap(()=>{
|
|
225
|
+
if (!this._requirePersonProcessing('posthog.group')) return;
|
|
214
226
|
const existingGroups = this.props.$groups || {};
|
|
215
227
|
this.register({
|
|
216
228
|
$groups: {
|
|
@@ -231,6 +243,7 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
231
243
|
}
|
|
232
244
|
groupIdentify(groupType, groupKey, groupProperties, options) {
|
|
233
245
|
this.wrap(()=>{
|
|
246
|
+
if (!this._requirePersonProcessing('posthog.groupIdentify')) return;
|
|
234
247
|
const distinctId = this.getDistinctId();
|
|
235
248
|
const eventProperties = this.enrichProperties({});
|
|
236
249
|
super.groupIdentifyStateless(groupType, groupKey, groupProperties, options, distinctId, eventProperties);
|
|
@@ -576,6 +589,43 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
576
589
|
$ai_trace_id: String(traceId)
|
|
577
590
|
});
|
|
578
591
|
}
|
|
592
|
+
_isIdentified() {
|
|
593
|
+
const personMode = this.getPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.PersonMode);
|
|
594
|
+
if ('identified' === personMode) return true;
|
|
595
|
+
if (void 0 === personMode) {
|
|
596
|
+
const distinctId = this.getPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.DistinctId);
|
|
597
|
+
const anonymousId = this.getPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.AnonymousId);
|
|
598
|
+
if (distinctId && anonymousId && distinctId !== anonymousId) return true;
|
|
599
|
+
}
|
|
600
|
+
return false;
|
|
601
|
+
}
|
|
602
|
+
_getGroups() {
|
|
603
|
+
return this.props.$groups || {};
|
|
604
|
+
}
|
|
605
|
+
_hasPersonProcessing() {
|
|
606
|
+
if ('always' === this._personProfiles) return true;
|
|
607
|
+
if ('never' === this._personProfiles) return false;
|
|
608
|
+
const isIdentified = this._isIdentified();
|
|
609
|
+
const hasGroups = Object.keys(this._getGroups()).length > 0;
|
|
610
|
+
const personProcessingEnabled = true === this.getPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.EnablePersonProcessing);
|
|
611
|
+
return isIdentified || hasGroups || personProcessingEnabled;
|
|
612
|
+
}
|
|
613
|
+
_requirePersonProcessing(functionName) {
|
|
614
|
+
if ('never' === this._personProfiles) {
|
|
615
|
+
this._logger.error(`${functionName} was called, but personProfiles is set to "never". This call will be ignored.`);
|
|
616
|
+
return false;
|
|
617
|
+
}
|
|
618
|
+
this.setPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.EnablePersonProcessing, true);
|
|
619
|
+
return true;
|
|
620
|
+
}
|
|
621
|
+
createPersonProfile() {
|
|
622
|
+
if (this._hasPersonProcessing()) return;
|
|
623
|
+
if (!this._requirePersonProcessing('posthog.createPersonProfile')) return;
|
|
624
|
+
this.capture('$set', {
|
|
625
|
+
$set: {},
|
|
626
|
+
$set_once: {}
|
|
627
|
+
});
|
|
628
|
+
}
|
|
579
629
|
processBeforeEnqueue(message) {
|
|
580
630
|
if (!this._beforeSend) return message;
|
|
581
631
|
const timestamp = message.timestamp;
|
package/dist/posthog-core.mjs
CHANGED
|
@@ -14,6 +14,7 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
14
14
|
}), this.flagCallReported = {}, this._sessionMaxLengthSeconds = 86400, this.sessionProps = {};
|
|
15
15
|
this.sendFeatureFlagEvent = options?.sendFeatureFlagEvent ?? true;
|
|
16
16
|
this._sessionExpirationTimeSeconds = options?.sessionExpirationTimeSeconds ?? 1800;
|
|
17
|
+
this._personProfiles = options?.personProfiles ?? 'identified_only';
|
|
17
18
|
this._beforeSend = options?.before_send;
|
|
18
19
|
}
|
|
19
20
|
setupBootstrap(options) {
|
|
@@ -21,7 +22,10 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
21
22
|
if (!bootstrap) return;
|
|
22
23
|
if (bootstrap.distinctId) if (bootstrap.isIdentifiedId) {
|
|
23
24
|
const distinctId = this.getPersistedProperty(PostHogPersistedProperty.DistinctId);
|
|
24
|
-
if (!distinctId)
|
|
25
|
+
if (!distinctId) {
|
|
26
|
+
this.setPersistedProperty(PostHogPersistedProperty.DistinctId, bootstrap.distinctId);
|
|
27
|
+
this.setPersistedProperty(PostHogPersistedProperty.PersonMode, 'identified');
|
|
28
|
+
}
|
|
25
29
|
} else {
|
|
26
30
|
const anonymousId = this.getPersistedProperty(PostHogPersistedProperty.AnonymousId);
|
|
27
31
|
if (!anonymousId) this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, bootstrap.distinctId);
|
|
@@ -132,6 +136,7 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
132
136
|
}
|
|
133
137
|
identify(distinctId, properties, options) {
|
|
134
138
|
this.wrap(()=>{
|
|
139
|
+
if (!this._requirePersonProcessing('posthog.identify')) return;
|
|
135
140
|
const previousDistinctId = this.getDistinctId();
|
|
136
141
|
distinctId = distinctId || previousDistinctId;
|
|
137
142
|
if (properties?.$groups) this.groups(properties.$groups);
|
|
@@ -146,6 +151,7 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
146
151
|
if (distinctId !== previousDistinctId) {
|
|
147
152
|
this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, previousDistinctId);
|
|
148
153
|
this.setPersistedProperty(PostHogPersistedProperty.DistinctId, distinctId);
|
|
154
|
+
this.setPersistedProperty(PostHogPersistedProperty.PersonMode, 'identified');
|
|
149
155
|
this.reloadFeatureFlags();
|
|
150
156
|
}
|
|
151
157
|
super.identifyStateless(distinctId, allProperties, options);
|
|
@@ -156,11 +162,16 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
156
162
|
const distinctId = this.getDistinctId();
|
|
157
163
|
if (properties?.$groups) this.groups(properties.$groups);
|
|
158
164
|
const allProperties = this.enrichProperties(properties);
|
|
165
|
+
const hasPersonProcessing = this._hasPersonProcessing();
|
|
166
|
+
allProperties['$process_person_profile'] = hasPersonProcessing;
|
|
167
|
+
allProperties['$is_identified'] = this._isIdentified();
|
|
168
|
+
if (hasPersonProcessing) this._requirePersonProcessing('capture');
|
|
159
169
|
super.captureStateless(distinctId, event, allProperties, options);
|
|
160
170
|
});
|
|
161
171
|
}
|
|
162
172
|
alias(alias) {
|
|
163
173
|
this.wrap(()=>{
|
|
174
|
+
if (!this._requirePersonProcessing('posthog.alias')) return;
|
|
164
175
|
const distinctId = this.getDistinctId();
|
|
165
176
|
const allProperties = this.enrichProperties({});
|
|
166
177
|
super.aliasStateless(alias, distinctId, allProperties);
|
|
@@ -183,6 +194,7 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
183
194
|
}
|
|
184
195
|
groups(groups) {
|
|
185
196
|
this.wrap(()=>{
|
|
197
|
+
if (!this._requirePersonProcessing('posthog.group')) return;
|
|
186
198
|
const existingGroups = this.props.$groups || {};
|
|
187
199
|
this.register({
|
|
188
200
|
$groups: {
|
|
@@ -203,6 +215,7 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
203
215
|
}
|
|
204
216
|
groupIdentify(groupType, groupKey, groupProperties, options) {
|
|
205
217
|
this.wrap(()=>{
|
|
218
|
+
if (!this._requirePersonProcessing('posthog.groupIdentify')) return;
|
|
206
219
|
const distinctId = this.getDistinctId();
|
|
207
220
|
const eventProperties = this.enrichProperties({});
|
|
208
221
|
super.groupIdentifyStateless(groupType, groupKey, groupProperties, options, distinctId, eventProperties);
|
|
@@ -548,6 +561,43 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
548
561
|
$ai_trace_id: String(traceId)
|
|
549
562
|
});
|
|
550
563
|
}
|
|
564
|
+
_isIdentified() {
|
|
565
|
+
const personMode = this.getPersistedProperty(PostHogPersistedProperty.PersonMode);
|
|
566
|
+
if ('identified' === personMode) return true;
|
|
567
|
+
if (void 0 === personMode) {
|
|
568
|
+
const distinctId = this.getPersistedProperty(PostHogPersistedProperty.DistinctId);
|
|
569
|
+
const anonymousId = this.getPersistedProperty(PostHogPersistedProperty.AnonymousId);
|
|
570
|
+
if (distinctId && anonymousId && distinctId !== anonymousId) return true;
|
|
571
|
+
}
|
|
572
|
+
return false;
|
|
573
|
+
}
|
|
574
|
+
_getGroups() {
|
|
575
|
+
return this.props.$groups || {};
|
|
576
|
+
}
|
|
577
|
+
_hasPersonProcessing() {
|
|
578
|
+
if ('always' === this._personProfiles) return true;
|
|
579
|
+
if ('never' === this._personProfiles) return false;
|
|
580
|
+
const isIdentified = this._isIdentified();
|
|
581
|
+
const hasGroups = Object.keys(this._getGroups()).length > 0;
|
|
582
|
+
const personProcessingEnabled = true === this.getPersistedProperty(PostHogPersistedProperty.EnablePersonProcessing);
|
|
583
|
+
return isIdentified || hasGroups || personProcessingEnabled;
|
|
584
|
+
}
|
|
585
|
+
_requirePersonProcessing(functionName) {
|
|
586
|
+
if ('never' === this._personProfiles) {
|
|
587
|
+
this._logger.error(`${functionName} was called, but personProfiles is set to "never". This call will be ignored.`);
|
|
588
|
+
return false;
|
|
589
|
+
}
|
|
590
|
+
this.setPersistedProperty(PostHogPersistedProperty.EnablePersonProcessing, true);
|
|
591
|
+
return true;
|
|
592
|
+
}
|
|
593
|
+
createPersonProfile() {
|
|
594
|
+
if (this._hasPersonProcessing()) return;
|
|
595
|
+
if (!this._requirePersonProcessing('posthog.createPersonProfile')) return;
|
|
596
|
+
this.capture('$set', {
|
|
597
|
+
$set: {},
|
|
598
|
+
$set_once: {}
|
|
599
|
+
});
|
|
600
|
+
}
|
|
551
601
|
processBeforeEnqueue(message) {
|
|
552
602
|
if (!this._beforeSend) return message;
|
|
553
603
|
const timestamp = message.timestamp;
|
package/dist/types.d.ts
CHANGED
|
@@ -71,6 +71,44 @@ export type PostHogCoreOptions = {
|
|
|
71
71
|
* @deprecated Use evaluationContexts instead. This property will be removed in a future version.
|
|
72
72
|
*/
|
|
73
73
|
evaluationEnvironments?: readonly string[];
|
|
74
|
+
/**
|
|
75
|
+
* Determines when to create Person Profiles for users.
|
|
76
|
+
*
|
|
77
|
+
* - 'always': Always create a person profile for every user (anonymous and identified).
|
|
78
|
+
* - 'identified_only': Only create a person profile when the user is identified via identify(), alias(), or group().
|
|
79
|
+
* Events captured before identification will NOT have person profiles and will be anonymous events.
|
|
80
|
+
* - 'never': Never create person profiles. identify(), alias(), and group() will be no-ops.
|
|
81
|
+
*
|
|
82
|
+
* @default 'identified_only'
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* // Only create profiles when users are identified (recommended for most apps)
|
|
87
|
+
* const posthog = new PostHog('<api_key>', {
|
|
88
|
+
* personProfiles: 'identified_only',
|
|
89
|
+
* })
|
|
90
|
+
*
|
|
91
|
+
* // Later when user logs in:
|
|
92
|
+
* posthog.identify('user-123', { email: 'user@example.com' })
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```ts
|
|
97
|
+
* // Always create profiles (for apps where you want to track all users)
|
|
98
|
+
* const posthog = new PostHog('<api_key>', {
|
|
99
|
+
* personProfiles: 'always',
|
|
100
|
+
* })
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```ts
|
|
105
|
+
* // Never create profiles (anonymous analytics only)
|
|
106
|
+
* const posthog = new PostHog('<api_key>', {
|
|
107
|
+
* personProfiles: 'never',
|
|
108
|
+
* })
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
personProfiles?: 'always' | 'identified_only' | 'never';
|
|
74
112
|
/**
|
|
75
113
|
* Allows modification or dropping of events before they're sent to PostHog.
|
|
76
114
|
* If an array is provided, the functions are run in order.
|
|
@@ -82,6 +120,8 @@ export declare enum PostHogPersistedProperty {
|
|
|
82
120
|
AnonymousId = "anonymous_id",
|
|
83
121
|
DistinctId = "distinct_id",
|
|
84
122
|
Props = "props",
|
|
123
|
+
EnablePersonProcessing = "enable_person_processing",
|
|
124
|
+
PersonMode = "person_mode",// 'identified' | 'anonymous'
|
|
85
125
|
FeatureFlagDetails = "feature_flag_details",
|
|
86
126
|
FeatureFlags = "feature_flags",
|
|
87
127
|
FeatureFlagPayloads = "feature_flag_payloads",
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oHAAoH;IACpH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,4HAA4H;IAC5H,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mFAAmF;IACnF,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,8EAA8E;IAC9E,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;QAC/C,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;KAC/C,CAAA;IACD,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gIAAgI;IAChI,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,8EAA8E;IAC9E,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,qFAAqF;IACrF,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,cAAc,CAAC,EAAE,QAAQ,GAAG,iBAAiB,GAAG,OAAO,CAAA;IAEvD;;;;OAIG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAA;CAC5C,CAAA;AAED,oBAAY,wBAAwB;IAClC,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;IAC1B,KAAK,UAAU;IACf,sBAAsB,6BAA6B;IACnD,UAAU,gBAAgB,CAAE,6BAA6B;IACzD,kBAAkB,yBAAyB;IAC3C,YAAY,kBAAkB;IAC9B,mBAAmB,0BAA0B;IAC7C,2BAA2B,mCAAmC;IAC9D,qBAAqB,4BAA4B;IACjD,4BAA4B,oCAAoC;IAChE,oBAAoB,2BAA2B;IAC/C,KAAK,UAAU;IACf,QAAQ,cAAc;IACtB,SAAS,eAAe;IACxB,qBAAqB,4BAA4B;IACjD,oBAAoB,sBAAsB;IAC1C,gBAAgB,sBAAsB;IACtC,eAAe,qBAAqB;IACpC,iBAAiB,wBAAwB,CAAE,oCAAoC;IAC/E,mBAAmB,0BAA0B,CAAE,oCAAoC;IACnF,aAAa,mBAAmB,CAAE,oCAAoC;IACtE,kBAAkB,0BAA0B,CAAE,oCAAoC;IAClF,WAAW,iBAAiB,CAAE,oCAAoC;IAClE,OAAO,YAAY,CAAE,oCAAoC;IACzD,YAAY,kBAAkB;IAC9B,mBAAmB,2BAA2B;CAC/C;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAA;IACxC,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IAClC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAGD,MAAM,MAAM,qBAAqB,GAAG;IAClC,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IACxB,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KACjC,CAAA;CACF,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,GAAG,CAAA;IACZ,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,sBAAsB,CAAA;AAG1B,oBAAY,WAAW;IACrB,MAAM,YAAY;IAClB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,gBAAgB,CAAC,EACb,OAAO,GACP;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;KACxB,CAAA;IAEL;;OAEG;IACH,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAA;IAEpC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAA;IAE5B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/C,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,GAAG;IAChF,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAChC,CAAA;IACD,mBAAmB,EAAE;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;KACxB,CAAA;IACD,KAAK,EAAE;QACL,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;KACjC,CAAA;IACD,yBAAyB,EAAE,OAAO,CAAA;IAClC,gBAAgB,CAAC,EACb,OAAO,GACP;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;KACxB,CAAA;IACL,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,CAC3D,oBAAoB,EACpB,OAAO,GAAG,cAAc,GAAG,qBAAqB,GAAG,WAAW,CAC/D,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI;KACrD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,GAAG;KACD,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAClC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,CACzD,oBAAoB,EACpB,OAAO,GAAG,cAAc,GAAG,qBAAqB,GAAG,WAAW,CAC/D,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;AAExE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,EAAE,cAAc,GAAG,qBAAqB,CAAC,CAAA;AAEvG;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC,GAC9E,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,aAAa,CAAC,CAAC,GAAG;IACjE,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE,uBAAuB,CAAA;CACvC,CAAA;AAEH;;GAEG;AACH,MAAM,MAAM,+BAA+B,GAAG,OAAO,CACnD,IAAI,CAAC,oBAAoB,EAAE,cAAc,GAAG,qBAAqB,CAAC,CACnE,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,CAAA;AAEpH,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAEpG;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB;;;;;;;gCAOR,MAAM,KAAG,MAAM;CAC1B,CAAA;AAEV,MAAM,MAAM,oBAAoB,GAC5B,CAAC,OAAO,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,OAAO,gBAAgB,EAAE,UAAU,CAAC,CAAC,GAC7E,UAAU,CAAC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAC5C,MAAM,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,SAAS,GAAG,kBAAkB,GAAG,WAAW,GAAG,eAAe,CAAA;IACpE,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,2BAA2B,CAAA;CAAE,GACxD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,uBAAuB,CAAA;CAAE,CAAA;AAEtD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAA;IACpC,QAAQ,EAAE,mBAAmB,GAAG,SAAS,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;IACtB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAE/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CAChC,CAAA;AAGD,MAAM,MAAM,gBAAgB,GAAG;IAE7B,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,qCAAqC,CAAC,EAAE,oCAAoC,CAAA;IAC5E,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAEhC,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,oBAAY,cAAc;IACxB,OAAO,aAAa;IACpB,SAAS,eAAe;IACxB,QAAQ,cAAc;IACtB,UAAU,gBAAgB;IAC1B,YAAY,kBAAkB;IAC9B,WAAW,iBAAiB;IAC5B,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,oBAAY,gBAAgB;IAC1B,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,QAAQ,aAAa;CACtB;AAED,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,cAAc,oBAAoB;CACnC;AAED,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,sBAAsB,CAAA;AAErH,oBAAY,oCAAoC;IAC9C,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sBAAsB,CAAC,EAAE,oCAAoC,CAAA;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,EAAE,qBAAqB,GAAG,YAAY,GAAG,sBAAsB,GAAG,yBAAyB,CAAA;CACtG,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG;IACrD,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,GAAG;IACpD,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG;IACtD,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAA;IAC/B,OAAO,EAAE,mBAAmB,CAAA;IAC5B,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;IACzB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,oBAAY,mBAAmB;IAC7B,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG;IACxD,IAAI,EAAE,kBAAkB,CAAC,YAAY,GAAG,kBAAkB,CAAC,cAAc,CAAA;IACzE,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,cAAc,oBAAoB;IAClC,YAAY,kBAAkB;IAC9B,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,oBAAY,2BAA2B;IACrC,YAAY,kBAAkB;IAC9B,GAAG,QAAQ;IACX,aAAa,mBAAmB;IAChC,gBAAgB,sBAAsB;CACvC;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,2BAA2B,CAAC,YAAY,CAAA;CAC/C,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,2BAA2B,CAAC,GAAG,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,2BAA2B,CAAC,aAAa,CAAA;IAC/C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,2BAA2B,CAAC,gBAAgB,CAAA;IAClD,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;AAExD,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,QAAQ,cAAc;IACtB,KAAK,UAAU;IACf,KAAK,WAAW;IAChB,SAAS,cAAc;IACvB,YAAY,kBAAkB;CAC/B;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AACD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IAEnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,UAAU,CAAA;IAChB,iBAAiB,CAAC,EAAE;QAClB,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,EAAE,CAAA;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,UAAU,CAAC,EAAE;QACX,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,0BAA0B,CAAC,EAAE,MAAM,CAAA;QACnC,YAAY,CAAC,EAAE,eAAe,CAAA;QAC9B,MAAM,CAAC,EAAE;YACP,kBAAkB,CAAC,EAAE,OAAO,CAAA;YAC5B,MAAM,CAAC,EAAE;gBACP,IAAI,EAAE,MAAM,CAAA;aACb,EAAE,CAAA;SACJ,CAAA;QACD,OAAO,CAAC,EAAE;YACR,MAAM,EAAE,gBAAgB,EAAE,CAAA;SAC3B,CAAA;QACD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;QACtB,oBAAoB,CAAC,EAAE,eAAe,CAAA;QACtC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAC3B,CAAA;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,4BAA4B,CAAC,EAAE,MAAM,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;CACzB,CAAA;AAED,2CAA2C;AAC3C,oBAAY,wBAAwB;IAClC,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,aAAa,CAAC,EAAE,wBAAwB,CAAA;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8CAA8C;IAC9C,aAAa,CAAC,EAAE,wBAAwB,CAAA;IACxC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,uCAAuC;IACvC,YAAY,CAAC,EAAE,wBAAwB,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC9B,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC9B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC/B,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAClC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,wBAAwB,6QAe3B,CAAA;AAEV;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,0GAA0G;IAC1G,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,kEAAkE;IAClE,IAAI,CAAC,EAAE,sBAAsB,CAAA;IAC7B,oFAAoF;IACpF,SAAS,CAAC,EAAE,sBAAsB,CAAA;IAClC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,KAAK,YAAY,GAAG,IAAI,CAAA"}
|
package/dist/types.js
CHANGED
|
@@ -42,6 +42,8 @@ var PostHogPersistedProperty = /*#__PURE__*/ function(PostHogPersistedProperty)
|
|
|
42
42
|
PostHogPersistedProperty["AnonymousId"] = "anonymous_id";
|
|
43
43
|
PostHogPersistedProperty["DistinctId"] = "distinct_id";
|
|
44
44
|
PostHogPersistedProperty["Props"] = "props";
|
|
45
|
+
PostHogPersistedProperty["EnablePersonProcessing"] = "enable_person_processing";
|
|
46
|
+
PostHogPersistedProperty["PersonMode"] = "person_mode";
|
|
45
47
|
PostHogPersistedProperty["FeatureFlagDetails"] = "feature_flag_details";
|
|
46
48
|
PostHogPersistedProperty["FeatureFlags"] = "feature_flags";
|
|
47
49
|
PostHogPersistedProperty["FeatureFlagPayloads"] = "feature_flag_payloads";
|
package/dist/types.mjs
CHANGED
|
@@ -2,6 +2,8 @@ var types_PostHogPersistedProperty = /*#__PURE__*/ function(PostHogPersistedProp
|
|
|
2
2
|
PostHogPersistedProperty["AnonymousId"] = "anonymous_id";
|
|
3
3
|
PostHogPersistedProperty["DistinctId"] = "distinct_id";
|
|
4
4
|
PostHogPersistedProperty["Props"] = "props";
|
|
5
|
+
PostHogPersistedProperty["EnablePersonProcessing"] = "enable_person_processing";
|
|
6
|
+
PostHogPersistedProperty["PersonMode"] = "person_mode";
|
|
5
7
|
PostHogPersistedProperty["FeatureFlagDetails"] = "feature_flag_details";
|
|
6
8
|
PostHogPersistedProperty["FeatureFlags"] = "feature_flags";
|
|
7
9
|
PostHogPersistedProperty["FeatureFlagPayloads"] = "feature_flag_payloads";
|
package/package.json
CHANGED
package/src/posthog-core.ts
CHANGED
|
@@ -44,6 +44,9 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
44
44
|
private _sessionMaxLengthSeconds: number = 24 * 60 * 60 // 24 hours
|
|
45
45
|
protected sessionProps: PostHogEventProperties = {}
|
|
46
46
|
|
|
47
|
+
// person profiles
|
|
48
|
+
protected _personProfiles: 'always' | 'identified_only' | 'never'
|
|
49
|
+
|
|
47
50
|
constructor(apiKey: string, options?: PostHogCoreOptions) {
|
|
48
51
|
// Default for stateful mode is to not disable geoip. Only override if explicitly set
|
|
49
52
|
const disableGeoipOption = options?.disableGeoip ?? false
|
|
@@ -55,6 +58,7 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
55
58
|
|
|
56
59
|
this.sendFeatureFlagEvent = options?.sendFeatureFlagEvent ?? true
|
|
57
60
|
this._sessionExpirationTimeSeconds = options?.sessionExpirationTimeSeconds ?? 1800 // 30 minutes
|
|
61
|
+
this._personProfiles = options?.personProfiles ?? 'identified_only'
|
|
58
62
|
this._beforeSend = options?.before_send
|
|
59
63
|
}
|
|
60
64
|
|
|
@@ -72,6 +76,8 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
72
76
|
|
|
73
77
|
if (!distinctId) {
|
|
74
78
|
this.setPersistedProperty(PostHogPersistedProperty.DistinctId, bootstrap.distinctId)
|
|
79
|
+
// Mark the user as identified if bootstrapping with an identified ID
|
|
80
|
+
this.setPersistedProperty(PostHogPersistedProperty.PersonMode, 'identified')
|
|
75
81
|
}
|
|
76
82
|
} else {
|
|
77
83
|
const anonymousId = this.getPersistedProperty(PostHogPersistedProperty.AnonymousId)
|
|
@@ -264,6 +270,10 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
264
270
|
|
|
265
271
|
identify(distinctId?: string, properties?: PostHogEventProperties, options?: PostHogCaptureOptions): void {
|
|
266
272
|
this.wrap(() => {
|
|
273
|
+
if (!this._requirePersonProcessing('posthog.identify')) {
|
|
274
|
+
return
|
|
275
|
+
}
|
|
276
|
+
|
|
267
277
|
const previousDistinctId = this.getDistinctId()
|
|
268
278
|
distinctId = distinctId || previousDistinctId
|
|
269
279
|
|
|
@@ -288,6 +298,8 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
288
298
|
// We keep the AnonymousId to be used by flags calls and identify to link the previousId
|
|
289
299
|
this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, previousDistinctId)
|
|
290
300
|
this.setPersistedProperty(PostHogPersistedProperty.DistinctId, distinctId)
|
|
301
|
+
// Mark the user as identified
|
|
302
|
+
this.setPersistedProperty(PostHogPersistedProperty.PersonMode, 'identified')
|
|
291
303
|
this.reloadFeatureFlags()
|
|
292
304
|
}
|
|
293
305
|
|
|
@@ -305,12 +317,26 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
305
317
|
|
|
306
318
|
const allProperties = this.enrichProperties(properties)
|
|
307
319
|
|
|
320
|
+
// Add $process_person_profile flag to event properties
|
|
321
|
+
const hasPersonProcessing = this._hasPersonProcessing()
|
|
322
|
+
allProperties['$process_person_profile'] = hasPersonProcessing
|
|
323
|
+
allProperties['$is_identified'] = this._isIdentified()
|
|
324
|
+
|
|
325
|
+
// If the event has person processing, ensure that all future events will too
|
|
326
|
+
if (hasPersonProcessing) {
|
|
327
|
+
this._requirePersonProcessing('capture')
|
|
328
|
+
}
|
|
329
|
+
|
|
308
330
|
super.captureStateless(distinctId, event, allProperties, options)
|
|
309
331
|
})
|
|
310
332
|
}
|
|
311
333
|
|
|
312
334
|
alias(alias: string): void {
|
|
313
335
|
this.wrap(() => {
|
|
336
|
+
if (!this._requirePersonProcessing('posthog.alias')) {
|
|
337
|
+
return
|
|
338
|
+
}
|
|
339
|
+
|
|
314
340
|
const distinctId = this.getDistinctId()
|
|
315
341
|
const allProperties = this.enrichProperties({})
|
|
316
342
|
|
|
@@ -346,6 +372,10 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
346
372
|
|
|
347
373
|
groups(groups: PostHogGroupProperties): void {
|
|
348
374
|
this.wrap(() => {
|
|
375
|
+
if (!this._requirePersonProcessing('posthog.group')) {
|
|
376
|
+
return
|
|
377
|
+
}
|
|
378
|
+
|
|
349
379
|
// Get persisted groups
|
|
350
380
|
const existingGroups = this.props.$groups || {}
|
|
351
381
|
|
|
@@ -386,6 +416,10 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
386
416
|
options?: PostHogCaptureOptions
|
|
387
417
|
): void {
|
|
388
418
|
this.wrap(() => {
|
|
419
|
+
if (!this._requirePersonProcessing('posthog.groupIdentify')) {
|
|
420
|
+
return
|
|
421
|
+
}
|
|
422
|
+
|
|
389
423
|
const distinctId = this.getDistinctId()
|
|
390
424
|
const eventProperties = this.enrichProperties({})
|
|
391
425
|
super.groupIdentifyStateless(groupType, groupKey, groupProperties, options, distinctId, eventProperties)
|
|
@@ -1001,6 +1035,126 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
1001
1035
|
})
|
|
1002
1036
|
}
|
|
1003
1037
|
|
|
1038
|
+
/***
|
|
1039
|
+
*** PERSON PROFILES
|
|
1040
|
+
***/
|
|
1041
|
+
|
|
1042
|
+
/**
|
|
1043
|
+
* Returns whether the current user is identified (has a person profile).
|
|
1044
|
+
*
|
|
1045
|
+
* This checks:
|
|
1046
|
+
* 1. If PersonMode is explicitly set to 'identified'
|
|
1047
|
+
* 2. For backwards compatibility: if DistinctId differs from AnonymousId
|
|
1048
|
+
* (meaning the user was identified before the SDK was upgraded)
|
|
1049
|
+
*
|
|
1050
|
+
* @internal
|
|
1051
|
+
*/
|
|
1052
|
+
protected _isIdentified(): boolean {
|
|
1053
|
+
const personMode = this.getPersistedProperty<string>(PostHogPersistedProperty.PersonMode)
|
|
1054
|
+
|
|
1055
|
+
// If PersonMode is explicitly set, use that
|
|
1056
|
+
if (personMode === 'identified') {
|
|
1057
|
+
return true
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
// For backwards compatibility: if PersonMode is not set but DistinctId differs from AnonymousId,
|
|
1061
|
+
// the user was identified before this SDK version was installed
|
|
1062
|
+
if (personMode === undefined) {
|
|
1063
|
+
const distinctId = this.getPersistedProperty<string>(PostHogPersistedProperty.DistinctId)
|
|
1064
|
+
const anonymousId = this.getPersistedProperty<string>(PostHogPersistedProperty.AnonymousId)
|
|
1065
|
+
|
|
1066
|
+
// If both exist and are different, the user was previously identified
|
|
1067
|
+
if (distinctId && anonymousId && distinctId !== anonymousId) {
|
|
1068
|
+
return true
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
|
|
1072
|
+
return false
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
/**
|
|
1076
|
+
* Returns the current groups object from super properties.
|
|
1077
|
+
* @internal
|
|
1078
|
+
*/
|
|
1079
|
+
protected _getGroups(): PostHogGroupProperties {
|
|
1080
|
+
return (this.props.$groups || {}) as PostHogGroupProperties
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
/**
|
|
1084
|
+
* Determines whether the current user should have person processing enabled.
|
|
1085
|
+
*
|
|
1086
|
+
* Returns true if:
|
|
1087
|
+
* - person_profiles is set to 'always', OR
|
|
1088
|
+
* - person_profiles is 'identified_only' AND (user is identified OR has groups OR person processing was explicitly enabled)
|
|
1089
|
+
*
|
|
1090
|
+
* Returns false if:
|
|
1091
|
+
* - person_profiles is 'never', OR
|
|
1092
|
+
* - person_profiles is 'identified_only' AND user is not identified AND has no groups AND person processing was not enabled
|
|
1093
|
+
*
|
|
1094
|
+
* @internal
|
|
1095
|
+
*/
|
|
1096
|
+
protected _hasPersonProcessing(): boolean {
|
|
1097
|
+
if (this._personProfiles === 'always') {
|
|
1098
|
+
return true
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
if (this._personProfiles === 'never') {
|
|
1102
|
+
return false
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
// person_profiles === 'identified_only'
|
|
1106
|
+
// Check if user is identified, has groups, or person processing was explicitly enabled
|
|
1107
|
+
const isIdentified = this._isIdentified()
|
|
1108
|
+
const hasGroups = Object.keys(this._getGroups()).length > 0
|
|
1109
|
+
const personProcessingEnabled =
|
|
1110
|
+
this.getPersistedProperty<boolean>(PostHogPersistedProperty.EnablePersonProcessing) === true
|
|
1111
|
+
|
|
1112
|
+
return isIdentified || hasGroups || personProcessingEnabled
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
/**
|
|
1116
|
+
* Enables person processing if the config allows it.
|
|
1117
|
+
*
|
|
1118
|
+
* If person_profiles is 'never', this logs an error and returns false.
|
|
1119
|
+
* Otherwise, it enables person processing and returns true.
|
|
1120
|
+
*
|
|
1121
|
+
* @param functionName - The name of the function calling this method (for error messages)
|
|
1122
|
+
* @returns true if person processing is enabled, false if it's blocked by config
|
|
1123
|
+
* @internal
|
|
1124
|
+
*/
|
|
1125
|
+
protected _requirePersonProcessing(functionName: string): boolean {
|
|
1126
|
+
if (this._personProfiles === 'never') {
|
|
1127
|
+
this._logger.error(`${functionName} was called, but personProfiles is set to "never". This call will be ignored.`)
|
|
1128
|
+
return false
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1131
|
+
// Mark that person processing has been explicitly enabled
|
|
1132
|
+
this.setPersistedProperty(PostHogPersistedProperty.EnablePersonProcessing, true)
|
|
1133
|
+
return true
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
/**
|
|
1137
|
+
* Creates a person profile for the current user, if they don't already have one.
|
|
1138
|
+
*
|
|
1139
|
+
* If personProfiles is 'identified_only' and no profile exists, this will create one.
|
|
1140
|
+
* If personProfiles is 'never', this will log an error and do nothing.
|
|
1141
|
+
* If personProfiles is 'always' or a profile already exists, this is a no-op.
|
|
1142
|
+
*
|
|
1143
|
+
* @public
|
|
1144
|
+
*/
|
|
1145
|
+
createPersonProfile(): void {
|
|
1146
|
+
if (this._hasPersonProcessing()) {
|
|
1147
|
+
// Person profile already exists, no need to do anything
|
|
1148
|
+
return
|
|
1149
|
+
}
|
|
1150
|
+
if (!this._requirePersonProcessing('posthog.createPersonProfile')) {
|
|
1151
|
+
return
|
|
1152
|
+
}
|
|
1153
|
+
// Capture a $set event to create the person profile
|
|
1154
|
+
// We don't set any properties here, but the server will create the profile
|
|
1155
|
+
this.capture('$set', { $set: {}, $set_once: {} })
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1004
1158
|
/**
|
|
1005
1159
|
* Override processBeforeEnqueue to run before_send hooks.
|
|
1006
1160
|
* This runs after prepareMessage, giving users full control over the final event.
|
package/src/types.ts
CHANGED
|
@@ -71,6 +71,46 @@ export type PostHogCoreOptions = {
|
|
|
71
71
|
* @deprecated Use evaluationContexts instead. This property will be removed in a future version.
|
|
72
72
|
*/
|
|
73
73
|
evaluationEnvironments?: readonly string[]
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Determines when to create Person Profiles for users.
|
|
77
|
+
*
|
|
78
|
+
* - 'always': Always create a person profile for every user (anonymous and identified).
|
|
79
|
+
* - 'identified_only': Only create a person profile when the user is identified via identify(), alias(), or group().
|
|
80
|
+
* Events captured before identification will NOT have person profiles and will be anonymous events.
|
|
81
|
+
* - 'never': Never create person profiles. identify(), alias(), and group() will be no-ops.
|
|
82
|
+
*
|
|
83
|
+
* @default 'identified_only'
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```ts
|
|
87
|
+
* // Only create profiles when users are identified (recommended for most apps)
|
|
88
|
+
* const posthog = new PostHog('<api_key>', {
|
|
89
|
+
* personProfiles: 'identified_only',
|
|
90
|
+
* })
|
|
91
|
+
*
|
|
92
|
+
* // Later when user logs in:
|
|
93
|
+
* posthog.identify('user-123', { email: 'user@example.com' })
|
|
94
|
+
* ```
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```ts
|
|
98
|
+
* // Always create profiles (for apps where you want to track all users)
|
|
99
|
+
* const posthog = new PostHog('<api_key>', {
|
|
100
|
+
* personProfiles: 'always',
|
|
101
|
+
* })
|
|
102
|
+
* ```
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```ts
|
|
106
|
+
* // Never create profiles (anonymous analytics only)
|
|
107
|
+
* const posthog = new PostHog('<api_key>', {
|
|
108
|
+
* personProfiles: 'never',
|
|
109
|
+
* })
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
personProfiles?: 'always' | 'identified_only' | 'never'
|
|
113
|
+
|
|
74
114
|
/**
|
|
75
115
|
* Allows modification or dropping of events before they're sent to PostHog.
|
|
76
116
|
* If an array is provided, the functions are run in order.
|
|
@@ -83,6 +123,8 @@ export enum PostHogPersistedProperty {
|
|
|
83
123
|
AnonymousId = 'anonymous_id',
|
|
84
124
|
DistinctId = 'distinct_id',
|
|
85
125
|
Props = 'props',
|
|
126
|
+
EnablePersonProcessing = 'enable_person_processing',
|
|
127
|
+
PersonMode = 'person_mode', // 'identified' | 'anonymous'
|
|
86
128
|
FeatureFlagDetails = 'feature_flag_details',
|
|
87
129
|
FeatureFlags = 'feature_flags',
|
|
88
130
|
FeatureFlagPayloads = 'feature_flag_payloads',
|