@wireai/activation 0.11.0 → 0.12.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/AGENTS.md +51 -0
- package/CHANGELOG.md +58 -3
- package/INTEGRATION_PROMPT.md +13 -1
- package/README.md +73 -0
- package/dist/analytics/index.d.mts +17 -6
- package/dist/analytics/index.d.ts +17 -6
- package/dist/analytics/index.js +130 -35
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/index.mjs +126 -36
- package/dist/analytics/index.mjs.map +1 -1
- package/dist/{currentSession-DdnUq2HQ.d.ts → currentSession-D6RiVtc8.d.ts} +88 -30
- package/dist/{currentSession-C0_odnIW.d.mts → currentSession-DsSDHqor.d.mts} +88 -30
- package/dist/index.d.mts +236 -36
- package/dist/index.d.ts +236 -36
- package/dist/index.js +281 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +269 -21
- package/dist/index.mjs.map +1 -1
- package/dist/questionnaire/index.d.mts +1 -1
- package/dist/questionnaire/index.d.ts +1 -1
- package/dist/questionnaire/index.js +49 -6
- package/dist/questionnaire/index.js.map +1 -1
- package/dist/questionnaire/index.mjs +49 -6
- package/dist/questionnaire/index.mjs.map +1 -1
- package/dist/reviews/index.d.mts +2 -2
- package/dist/reviews/index.d.ts +2 -2
- package/dist/reviews/index.js +73 -8
- package/dist/reviews/index.js.map +1 -1
- package/dist/reviews/index.mjs +73 -8
- package/dist/reviews/index.mjs.map +1 -1
- package/dist/{transport-BGW9uXZJ.d.mts → transport-CF_eHwzC.d.mts} +15 -1
- package/dist/{transport-jUJd5kxu.d.ts → transport-DsRe4epC.d.ts} +15 -1
- package/llms.txt +1 -0
- package/package.json +1 -1
- package/src/activation/useWireActivation.ts +12 -1
- package/src/activation/wireActivation.ts +36 -24
- package/src/analytics/analyticsFacade.ts +41 -20
- package/src/analytics/currentSession.ts +83 -0
- package/src/analytics/eventQueue.ts +9 -1
- package/src/analytics/index.ts +20 -1
- package/src/analytics/reportClientEvent.ts +38 -0
- package/src/analytics/screenTracking.ts +6 -1
- package/src/analytics/useAnalytics.ts +22 -1
- package/src/context/deviceId.ts +109 -0
- package/src/context/userContext.ts +18 -0
- package/src/index.ts +45 -1
- package/src/questionnaire/runtime.ts +12 -2
- package/src/questionnaire/useQuestionnaireGate.ts +9 -7
- package/src/revenuecat/index.ts +55 -0
- package/src/revenuecat/purchaseEvents.ts +167 -0
- package/src/revenuecat/revenueCatBridge.ts +221 -0
- package/src/revenuecat/types.ts +95 -0
- package/src/reviews/runtime.ts +92 -1
- package/src/reviews/transport.ts +21 -2
- package/src/reviews/useReviewGate.ts +12 -7
- package/src/session-analytics/lifecycle.ts +9 -2
- package/src/session-analytics/reportSessionStart.ts +15 -4
- package/src/session-analytics/useLifecycleEvents.ts +28 -2
|
@@ -1284,6 +1284,16 @@ var sameDecision = (a, b) => {
|
|
|
1284
1284
|
return a.fire === b.fire && a.reason === b.reason;
|
|
1285
1285
|
};
|
|
1286
1286
|
|
|
1287
|
+
// src/analytics/reportClientEvent.ts
|
|
1288
|
+
var makeSessionId = () => `wire_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;
|
|
1289
|
+
|
|
1290
|
+
// src/analytics/currentSession.ts
|
|
1291
|
+
var CURRENT_SESSION_ID_SLOT = /* @__PURE__ */ Symbol.for(
|
|
1292
|
+
"@wireai/activation:currentSessionId"
|
|
1293
|
+
);
|
|
1294
|
+
var globalSlot = globalThis;
|
|
1295
|
+
var getCurrentSessionId = () => globalSlot[CURRENT_SESSION_ID_SLOT];
|
|
1296
|
+
|
|
1287
1297
|
// src/reviews/runtime.ts
|
|
1288
1298
|
var resolveStorage = (override) => override != null ? override : getCoachmarkStorage();
|
|
1289
1299
|
var readInt = (storage, key) => {
|
|
@@ -1303,11 +1313,46 @@ var writeInt = (storage, key, value) => {
|
|
|
1303
1313
|
} catch {
|
|
1304
1314
|
}
|
|
1305
1315
|
};
|
|
1316
|
+
var readStr = (storage, key) => {
|
|
1317
|
+
if (!storage) return void 0;
|
|
1318
|
+
try {
|
|
1319
|
+
const raw = storage.getItem(key);
|
|
1320
|
+
return typeof raw === "string" && raw.length > 0 ? raw : void 0;
|
|
1321
|
+
} catch {
|
|
1322
|
+
return void 0;
|
|
1323
|
+
}
|
|
1324
|
+
};
|
|
1325
|
+
var PROCESS_OPEN_ID_SLOT = /* @__PURE__ */ Symbol.for("@wireai/activation:processOpenId");
|
|
1326
|
+
var openIdGlobal = globalThis;
|
|
1327
|
+
var currentOpenId = () => {
|
|
1328
|
+
const live = getCurrentSessionId();
|
|
1329
|
+
if (live) return live;
|
|
1330
|
+
const existing = openIdGlobal[PROCESS_OPEN_ID_SLOT];
|
|
1331
|
+
if (existing) return existing;
|
|
1332
|
+
const created = makeSessionId();
|
|
1333
|
+
openIdGlobal[PROCESS_OPEN_ID_SLOT] = created;
|
|
1334
|
+
return created;
|
|
1335
|
+
};
|
|
1336
|
+
var bumpSessionCount = (storage, sessionsKey, openKey, openId = currentOpenId()) => {
|
|
1337
|
+
const lastOpen = readStr(storage, openKey);
|
|
1338
|
+
const stored = readInt(storage, sessionsKey);
|
|
1339
|
+
if (lastOpen === openId) return stored > 0 ? stored : 1;
|
|
1340
|
+
const next = stored + 1;
|
|
1341
|
+
writeInt(storage, sessionsKey, next);
|
|
1342
|
+
if (storage) {
|
|
1343
|
+
try {
|
|
1344
|
+
storage.setItem(openKey, openId);
|
|
1345
|
+
} catch {
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1348
|
+
return next;
|
|
1349
|
+
};
|
|
1306
1350
|
|
|
1307
1351
|
// src/questionnaire/runtime.ts
|
|
1308
1352
|
var questionnaireSeenKey = (id, version) => version ? `wire_questionnaire_${id}_${version}_seen` : `wire_questionnaire_${id}_seen`;
|
|
1309
1353
|
var questionnaireLastShownKey = (id) => `wire_questionnaire_${id}_last`;
|
|
1310
1354
|
var questionnaireSessionsKey = (id) => `wire_questionnaire_${id}_sessions`;
|
|
1355
|
+
var questionnaireSessionOpenKey = (id) => `wire_questionnaire_${id}_open`;
|
|
1311
1356
|
|
|
1312
1357
|
// src/questionnaire/useQuestionnaireGate.ts
|
|
1313
1358
|
var useStableValue2 = (value, isEqual) => {
|
|
@@ -1334,12 +1379,10 @@ var useQuestionnaireGate = ({
|
|
|
1334
1379
|
);
|
|
1335
1380
|
const lastKey = questionnaireLastShownKey(config.id);
|
|
1336
1381
|
const sessionsKey = questionnaireSessionsKey(config.id);
|
|
1337
|
-
const
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
return next;
|
|
1342
|
-
})[0];
|
|
1382
|
+
const sessionOpenKey = questionnaireSessionOpenKey(config.id);
|
|
1383
|
+
const sessions = useState(
|
|
1384
|
+
() => bumpSessionCount(resolveStorage(storage), sessionsKey, sessionOpenKey)
|
|
1385
|
+
)[0];
|
|
1343
1386
|
const hasServerDecision = decision != null;
|
|
1344
1387
|
const timeoutMs = config.timeoutFallbackMs;
|
|
1345
1388
|
const waits = !hasServerDecision && timeoutMs != null && timeoutMs > 0;
|