@anyreplay/browser 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.cjs +32 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +32 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5071,7 +5071,7 @@ var Transport = class {
|
|
|
5071
5071
|
|
|
5072
5072
|
// src/version.ts
|
|
5073
5073
|
var SDK_NAME = "@anyreplay/browser";
|
|
5074
|
-
var SDK_VERSION = true ? "0.2.
|
|
5074
|
+
var SDK_VERSION = true ? "0.2.3" : "0.0.0-dev";
|
|
5075
5075
|
var PLATFORM = "web";
|
|
5076
5076
|
|
|
5077
5077
|
// src/visitor.ts
|
|
@@ -5197,7 +5197,10 @@ function createRecorder(rawOptions, shell) {
|
|
|
5197
5197
|
let assets;
|
|
5198
5198
|
let pageCount = 0;
|
|
5199
5199
|
let pendingTraits;
|
|
5200
|
-
|
|
5200
|
+
let traitsAwaitingSession;
|
|
5201
|
+
let traitsToRetry;
|
|
5202
|
+
let sessionDelivered = false;
|
|
5203
|
+
const postIdentity = (who, traits, retryIfUnapplied) => {
|
|
5201
5204
|
void fetch(`${options.ingestUrl}/v1/ingest/identify`, {
|
|
5202
5205
|
method: "POST",
|
|
5203
5206
|
headers: { "Content-Type": "application/json" },
|
|
@@ -5208,9 +5211,33 @@ function createRecorder(rawOptions, shell) {
|
|
|
5208
5211
|
...traits,
|
|
5209
5212
|
...options.appId ? { appId: options.appId } : {}
|
|
5210
5213
|
})
|
|
5214
|
+
}).then(async (response) => {
|
|
5215
|
+
if (!retryIfUnapplied || response.status !== 202) return;
|
|
5216
|
+
const reply = await response.json();
|
|
5217
|
+
if (reply.applied === false && identity === who && !traitsAwaitingSession && !traitsToRetry) {
|
|
5218
|
+
traitsToRetry = traits;
|
|
5219
|
+
}
|
|
5211
5220
|
}).catch(() => {
|
|
5212
5221
|
});
|
|
5213
5222
|
};
|
|
5223
|
+
const sendIdentity = (who, traits) => {
|
|
5224
|
+
traitsToRetry = void 0;
|
|
5225
|
+
if (!sessionDelivered) {
|
|
5226
|
+
traitsAwaitingSession = { ...traitsAwaitingSession, ...traits };
|
|
5227
|
+
return;
|
|
5228
|
+
}
|
|
5229
|
+
postIdentity(who, traits, true);
|
|
5230
|
+
};
|
|
5231
|
+
const noteDelivered = (channel) => {
|
|
5232
|
+
if (channel !== transport || !identity) return;
|
|
5233
|
+
sessionDelivered = true;
|
|
5234
|
+
const waiting = traitsAwaitingSession;
|
|
5235
|
+
const retry = traitsToRetry;
|
|
5236
|
+
traitsAwaitingSession = void 0;
|
|
5237
|
+
traitsToRetry = void 0;
|
|
5238
|
+
if (waiting) postIdentity(identity, waiting, true);
|
|
5239
|
+
else if (retry) postIdentity(identity, retry, false);
|
|
5240
|
+
};
|
|
5214
5241
|
const collectMeta = (who) => {
|
|
5215
5242
|
var _a, _b;
|
|
5216
5243
|
return {
|
|
@@ -5319,6 +5346,7 @@ function createRecorder(rawOptions, shell) {
|
|
|
5319
5346
|
initialSeq: who.nextSeq
|
|
5320
5347
|
},
|
|
5321
5348
|
{
|
|
5349
|
+
onSent: () => noteDelivered(channel),
|
|
5322
5350
|
onSeqReserved: (next) => {
|
|
5323
5351
|
var _a;
|
|
5324
5352
|
reserveSeq(session, next);
|
|
@@ -5462,6 +5490,8 @@ function createRecorder(rawOptions, shell) {
|
|
|
5462
5490
|
identity = void 0;
|
|
5463
5491
|
}
|
|
5464
5492
|
pendingTraits = void 0;
|
|
5493
|
+
traitsAwaitingSession = void 0;
|
|
5494
|
+
traitsToRetry = void 0;
|
|
5465
5495
|
pending.length = 0;
|
|
5466
5496
|
forgetVisitor(local, session);
|
|
5467
5497
|
},
|