@baukit/analytics-posthog-native 0.8.0 → 0.10.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/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.test.ts +69 -1
- package/src/index.ts +16 -5
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EAEd,SAAS,EACV,MAAM,wBAAwB,CAAC;AAEhC,8EAA8E;AAC9E,MAAM,WAAW,mBAAmB;IAClC,OAAO,CACL,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC9C,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,GACtC,OAAO,CAAC;IACX,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;IAClF,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC;IACjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,oBAAoB,CAAC,GAAG,EAAE,GAAG,wBAAwB,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAChF;AAED,KAAK,0BAA0B,GAC3B,WAAW,GACX,2BAA2B,GAC3B,+BAA+B,GAC/B,sCAAsC,GACtC,gBAAgB,GAChB,qBAAqB,GACrB,eAAe,GACf,MAAM,GACN,gBAAgB,GAChB,qBAAqB,GACrB,4BAA4B,GAC5B,cAAc,CAAC;AAEnB,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;AAExF,MAAM,MAAM,wBAAwB,GAAG,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,KACpB,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAExD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,wBAAwB,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAED,KAAK,aAAa,GAAG,CACnB,aAAa,EAAE,iBAAiB,KAC7B,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAgExD,kFAAkF;AAClF,qBAAa,sBAAsB,CACjC,CAAC,SAAS,cAAc,GAAG,cAAc,CACzC,YAAW,SAAS,CAAC,CAAC,CAAC;;gBAUrB,MAAM,EAAE,mBAAmB,GAAG,aAAa,EAC3C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAMpC,8EAA8E;IACjE,IAAI,CAAC,SAAS,EAAE,SAAS,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EAEd,SAAS,EACV,MAAM,wBAAwB,CAAC;AAEhC,8EAA8E;AAC9E,MAAM,WAAW,mBAAmB;IAClC,OAAO,CACL,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC9C,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,GACtC,OAAO,CAAC;IACX,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;IAClF,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC;IACjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,oBAAoB,CAAC,GAAG,EAAE,GAAG,wBAAwB,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAChF;AAED,KAAK,0BAA0B,GAC3B,WAAW,GACX,2BAA2B,GAC3B,+BAA+B,GAC/B,sCAAsC,GACtC,gBAAgB,GAChB,qBAAqB,GACrB,eAAe,GACf,MAAM,GACN,gBAAgB,GAChB,qBAAqB,GACrB,4BAA4B,GAC5B,cAAc,CAAC;AAEnB,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;AAExF,MAAM,MAAM,wBAAwB,GAAG,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,KACpB,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAExD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,wBAAwB,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAED,KAAK,aAAa,GAAG,CACnB,aAAa,EAAE,iBAAiB,KAC7B,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAgExD,kFAAkF;AAClF,qBAAa,sBAAsB,CACjC,CAAC,SAAS,cAAc,GAAG,cAAc,CACzC,YAAW,SAAS,CAAC,CAAC,CAAC;;gBAUrB,MAAM,EAAE,mBAAmB,GAAG,aAAa,EAC3C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAMpC,8EAA8E;IACjE,IAAI,CAAC,SAAS,EAAE,SAAS,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+C5E,kEAAkE;IAC3D,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAgGrC;AAED,wEAAwE;AACxE,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EACpF,MAAM,EAAE,4BAA4B,GACnC,sBAAsB,CAAC,CAAC,CAAC,CAuB3B"}
|
package/dist/index.js
CHANGED
|
@@ -84,15 +84,20 @@ export class PostHogNativeTransport {
|
|
|
84
84
|
}
|
|
85
85
|
this.#clearRequired = false;
|
|
86
86
|
}
|
|
87
|
-
if (!(await this.#optIn(client))) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
87
|
for (const envelope of envelopes) {
|
|
91
88
|
if (generation !== this.#clearGeneration) {
|
|
92
89
|
return;
|
|
93
90
|
}
|
|
91
|
+
if (!(await this.#optIn(client, generation)) || generation !== this.#clearGeneration) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
94
|
try {
|
|
95
95
|
await this.#dispatch(client, envelope);
|
|
96
|
+
if (envelope.type === 'reset' &&
|
|
97
|
+
generation === this.#clearGeneration &&
|
|
98
|
+
!(await this.#optIn(client, generation))) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
96
101
|
}
|
|
97
102
|
catch (error) {
|
|
98
103
|
this.#reportError(error);
|
|
@@ -145,16 +150,21 @@ export class PostHogNativeTransport {
|
|
|
145
150
|
await Promise.resolve(client.alias(envelope.user_id));
|
|
146
151
|
break;
|
|
147
152
|
case 'reset':
|
|
153
|
+
this.#providerOptedOut = true;
|
|
148
154
|
await Promise.resolve(client.reset());
|
|
149
155
|
break;
|
|
150
156
|
}
|
|
151
157
|
}
|
|
152
|
-
async #optIn(client) {
|
|
158
|
+
async #optIn(client, generation) {
|
|
153
159
|
if (!this.#providerOptedOut) {
|
|
154
160
|
return true;
|
|
155
161
|
}
|
|
156
162
|
try {
|
|
157
163
|
await Promise.resolve(client.optIn());
|
|
164
|
+
if (generation !== this.#clearGeneration) {
|
|
165
|
+
await this.#purgeClient(client);
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
158
168
|
this.#providerOptedOut = false;
|
|
159
169
|
return true;
|
|
160
170
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baukit/analytics-posthog-native",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "PostHog React Native transport for @baukit/analytics-core.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Patrick Koss",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"typescript": "6.0.3"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@baukit/analytics-core": "^0.
|
|
55
|
+
"@baukit/analytics-core": "^0.10.0",
|
|
56
56
|
"posthog-react-native": "^4.78.3"
|
|
57
57
|
},
|
|
58
58
|
"peerDependenciesMeta": {
|
package/src/index.test.ts
CHANGED
|
@@ -57,7 +57,10 @@ function createMockClient(): MockClient {
|
|
|
57
57
|
},
|
|
58
58
|
identify,
|
|
59
59
|
alias,
|
|
60
|
-
reset
|
|
60
|
+
reset() {
|
|
61
|
+
reset();
|
|
62
|
+
optedOut = true;
|
|
63
|
+
},
|
|
61
64
|
optIn() {
|
|
62
65
|
optIn();
|
|
63
66
|
optedOut = false;
|
|
@@ -144,6 +147,71 @@ describe('PostHogNativeTransport mapping', () => {
|
|
|
144
147
|
expect(posthog.reset).toHaveBeenCalledWith();
|
|
145
148
|
});
|
|
146
149
|
|
|
150
|
+
it('restores SDK consent after reset, in the same batch and later batches', async () => {
|
|
151
|
+
const posthog = createMockClient();
|
|
152
|
+
const transport = new PostHogNativeTransport<ProductEvent>(posthog.client);
|
|
153
|
+
const capture = lifecycleEnvelopes().slice(0, 1);
|
|
154
|
+
const reset = lifecycleEnvelopes().slice(3);
|
|
155
|
+
|
|
156
|
+
await transport.send([...capture, ...reset, ...capture]);
|
|
157
|
+
await transport.send(capture);
|
|
158
|
+
|
|
159
|
+
expect(posthog.optIn).toHaveBeenCalledTimes(2);
|
|
160
|
+
expect(posthog.queue).toEqual(Array<string>(3).fill('onboarding_started'));
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
it('keeps consent withdrawn while an asynchronous reset finishes', async () => {
|
|
164
|
+
const posthog = createMockClient();
|
|
165
|
+
let finishReset: (() => void) | undefined;
|
|
166
|
+
const reset = vi.fn<() => Promise<void>>(
|
|
167
|
+
() =>
|
|
168
|
+
new Promise<void>((resolve) => {
|
|
169
|
+
finishReset = resolve;
|
|
170
|
+
}),
|
|
171
|
+
);
|
|
172
|
+
const client = { ...posthog.client, reset };
|
|
173
|
+
const transport = new PostHogNativeTransport<ProductEvent>(client);
|
|
174
|
+
await transport.send(lifecycleEnvelopes().slice(0, 1));
|
|
175
|
+
const sending = transport.send(lifecycleEnvelopes().slice(3));
|
|
176
|
+
await vi.waitFor(() => {
|
|
177
|
+
expect(finishReset).toBeDefined();
|
|
178
|
+
});
|
|
179
|
+
await transport.clearPending();
|
|
180
|
+
finishReset?.();
|
|
181
|
+
await sending;
|
|
182
|
+
|
|
183
|
+
expect(posthog.optIn).toHaveBeenCalledOnce();
|
|
184
|
+
expect(posthog.optOut).toHaveBeenCalledOnce();
|
|
185
|
+
expect(posthog.queue).toEqual([]);
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
it('keeps consent withdrawn when SDK opt-in finishes after withdrawal', async () => {
|
|
189
|
+
const posthog = createMockClient();
|
|
190
|
+
let finishOptIn: (() => Promise<void>) | undefined;
|
|
191
|
+
const optIn = vi.fn<() => Promise<void>>(
|
|
192
|
+
() =>
|
|
193
|
+
new Promise<void>((resolve) => {
|
|
194
|
+
finishOptIn = async () => {
|
|
195
|
+
await posthog.client.optIn();
|
|
196
|
+
resolve();
|
|
197
|
+
};
|
|
198
|
+
}),
|
|
199
|
+
);
|
|
200
|
+
const transport = new PostHogNativeTransport<ProductEvent>({ ...posthog.client, optIn });
|
|
201
|
+
const sending = transport.send(lifecycleEnvelopes().slice(0, 1));
|
|
202
|
+
await vi.waitFor(() => {
|
|
203
|
+
expect(finishOptIn).toBeDefined();
|
|
204
|
+
});
|
|
205
|
+
await transport.clearPending();
|
|
206
|
+
await finishOptIn?.();
|
|
207
|
+
await sending;
|
|
208
|
+
|
|
209
|
+
expect(posthog.capture).not.toHaveBeenCalled();
|
|
210
|
+
expect(posthog.optOut).toHaveBeenCalledTimes(2);
|
|
211
|
+
await Promise.resolve(posthog.client.capture('consent_probe'));
|
|
212
|
+
expect(posthog.queue).toEqual([]);
|
|
213
|
+
});
|
|
214
|
+
|
|
147
215
|
it('contains client and diagnostic failures', async () => {
|
|
148
216
|
const posthog = createMockClient();
|
|
149
217
|
posthog.capture.mockImplementation(() => {
|
package/src/index.ts
CHANGED
|
@@ -164,16 +164,22 @@ export class PostHogNativeTransport<
|
|
|
164
164
|
}
|
|
165
165
|
this.#clearRequired = false;
|
|
166
166
|
}
|
|
167
|
-
if (!(await this.#optIn(client))) {
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
167
|
for (const envelope of envelopes) {
|
|
172
168
|
if (generation !== this.#clearGeneration) {
|
|
173
169
|
return;
|
|
174
170
|
}
|
|
171
|
+
if (!(await this.#optIn(client, generation)) || generation !== this.#clearGeneration) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
175
174
|
try {
|
|
176
175
|
await this.#dispatch(client, envelope);
|
|
176
|
+
if (
|
|
177
|
+
envelope.type === 'reset' &&
|
|
178
|
+
generation === this.#clearGeneration &&
|
|
179
|
+
!(await this.#optIn(client, generation))
|
|
180
|
+
) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
177
183
|
} catch (error: unknown) {
|
|
178
184
|
this.#reportError(error);
|
|
179
185
|
}
|
|
@@ -231,17 +237,22 @@ export class PostHogNativeTransport<
|
|
|
231
237
|
await Promise.resolve(client.alias(envelope.user_id));
|
|
232
238
|
break;
|
|
233
239
|
case 'reset':
|
|
240
|
+
this.#providerOptedOut = true;
|
|
234
241
|
await Promise.resolve(client.reset());
|
|
235
242
|
break;
|
|
236
243
|
}
|
|
237
244
|
}
|
|
238
245
|
|
|
239
|
-
async #optIn(client: PostHogNativeClient): Promise<boolean> {
|
|
246
|
+
async #optIn(client: PostHogNativeClient, generation: number): Promise<boolean> {
|
|
240
247
|
if (!this.#providerOptedOut) {
|
|
241
248
|
return true;
|
|
242
249
|
}
|
|
243
250
|
try {
|
|
244
251
|
await Promise.resolve(client.optIn());
|
|
252
|
+
if (generation !== this.#clearGeneration) {
|
|
253
|
+
await this.#purgeClient(client);
|
|
254
|
+
return false;
|
|
255
|
+
}
|
|
245
256
|
this.#providerOptedOut = false;
|
|
246
257
|
return true;
|
|
247
258
|
} catch (error: unknown) {
|