@rocapine/rocalytics-sdk 0.0.0-stage → 0.3.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.
Files changed (161) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/LICENSE +21 -0
  3. package/README.md +449 -2
  4. package/client/package.json +1 -0
  5. package/core/package.json +4 -0
  6. package/dist/client/client.d.ts +146 -0
  7. package/dist/client/client.d.ts.map +1 -0
  8. package/dist/client/client.js +376 -0
  9. package/dist/client/client.js.map +1 -0
  10. package/dist/client/index.d.ts +13 -0
  11. package/dist/client/index.d.ts.map +1 -0
  12. package/dist/client/index.js +35 -0
  13. package/dist/client/index.js.map +1 -0
  14. package/dist/client/native.d.ts +68 -0
  15. package/dist/client/native.d.ts.map +1 -0
  16. package/dist/client/native.js +64 -0
  17. package/dist/client/native.js.map +1 -0
  18. package/dist/client/onboardingSink.d.ts +63 -0
  19. package/dist/client/onboardingSink.d.ts.map +1 -0
  20. package/dist/client/onboardingSink.js +126 -0
  21. package/dist/client/onboardingSink.js.map +1 -0
  22. package/dist/client/paywallSink.d.ts +13 -0
  23. package/dist/client/paywallSink.d.ts.map +1 -0
  24. package/dist/client/paywallSink.js +26 -0
  25. package/dist/client/paywallSink.js.map +1 -0
  26. package/dist/client/requests.d.ts +66 -0
  27. package/dist/client/requests.d.ts.map +1 -0
  28. package/dist/client/requests.js +90 -0
  29. package/dist/client/requests.js.map +1 -0
  30. package/dist/client/types.d.ts +180 -0
  31. package/dist/client/types.d.ts.map +1 -0
  32. package/dist/client/types.js +4 -0
  33. package/dist/client/types.js.map +1 -0
  34. package/dist/core/context.d.ts +39 -0
  35. package/dist/core/context.d.ts.map +1 -0
  36. package/dist/core/context.js +45 -0
  37. package/dist/core/context.js.map +1 -0
  38. package/dist/core/delivery.d.ts +63 -0
  39. package/dist/core/delivery.d.ts.map +1 -0
  40. package/dist/core/delivery.js +133 -0
  41. package/dist/core/delivery.js.map +1 -0
  42. package/dist/core/diagnostics.d.ts +16 -0
  43. package/dist/core/diagnostics.d.ts.map +1 -0
  44. package/dist/core/diagnostics.js +24 -0
  45. package/dist/core/diagnostics.js.map +1 -0
  46. package/dist/core/httpSink.d.ts +35 -0
  47. package/dist/core/httpSink.d.ts.map +1 -0
  48. package/dist/core/httpSink.js +65 -0
  49. package/dist/core/httpSink.js.map +1 -0
  50. package/dist/core/ids.d.ts +16 -0
  51. package/dist/core/ids.d.ts.map +1 -0
  52. package/dist/core/ids.js +51 -0
  53. package/dist/core/ids.js.map +1 -0
  54. package/dist/core/index.d.ts +17 -0
  55. package/dist/core/index.d.ts.map +1 -0
  56. package/dist/core/index.js +32 -0
  57. package/dist/core/index.js.map +1 -0
  58. package/dist/core/sink.d.ts +39 -0
  59. package/dist/core/sink.d.ts.map +1 -0
  60. package/dist/core/sink.js +16 -0
  61. package/dist/core/sink.js.map +1 -0
  62. package/dist/core/storage.d.ts +52 -0
  63. package/dist/core/storage.d.ts.map +1 -0
  64. package/dist/core/storage.js +79 -0
  65. package/dist/core/storage.js.map +1 -0
  66. package/dist/core/text.d.ts +9 -0
  67. package/dist/core/text.d.ts.map +1 -0
  68. package/dist/core/text.js +47 -0
  69. package/dist/core/text.js.map +1 -0
  70. package/dist/core/time.d.ts +18 -0
  71. package/dist/core/time.d.ts.map +1 -0
  72. package/dist/core/time.js +18 -0
  73. package/dist/core/time.js.map +1 -0
  74. package/dist/onboarding/contract.d.ts +138 -0
  75. package/dist/onboarding/contract.d.ts.map +1 -0
  76. package/dist/onboarding/contract.js +11 -0
  77. package/dist/onboarding/contract.js.map +1 -0
  78. package/dist/onboarding/index.d.ts +15 -0
  79. package/dist/onboarding/index.d.ts.map +1 -0
  80. package/dist/onboarding/index.js +22 -0
  81. package/dist/onboarding/index.js.map +1 -0
  82. package/dist/onboarding/input.d.ts +102 -0
  83. package/dist/onboarding/input.d.ts.map +1 -0
  84. package/dist/onboarding/input.js +216 -0
  85. package/dist/onboarding/input.js.map +1 -0
  86. package/dist/onboarding/persisted.d.ts +20 -0
  87. package/dist/onboarding/persisted.d.ts.map +1 -0
  88. package/dist/onboarding/persisted.js +75 -0
  89. package/dist/onboarding/persisted.js.map +1 -0
  90. package/dist/onboarding/state.d.ts +65 -0
  91. package/dist/onboarding/state.d.ts.map +1 -0
  92. package/dist/onboarding/state.js +207 -0
  93. package/dist/onboarding/state.js.map +1 -0
  94. package/dist/onboarding/tracker.d.ts +135 -0
  95. package/dist/onboarding/tracker.d.ts.map +1 -0
  96. package/dist/onboarding/tracker.js +734 -0
  97. package/dist/onboarding/tracker.js.map +1 -0
  98. package/dist/paywall/contract.d.ts +67 -0
  99. package/dist/paywall/contract.d.ts.map +1 -0
  100. package/dist/paywall/contract.js +3 -0
  101. package/dist/paywall/contract.js.map +1 -0
  102. package/dist/paywall/index.d.ts +14 -0
  103. package/dist/paywall/index.d.ts.map +1 -0
  104. package/dist/paywall/index.js +19 -0
  105. package/dist/paywall/index.js.map +1 -0
  106. package/dist/paywall/observer.d.ts +38 -0
  107. package/dist/paywall/observer.d.ts.map +1 -0
  108. package/dist/paywall/observer.js +6 -0
  109. package/dist/paywall/observer.js.map +1 -0
  110. package/dist/paywall/state.d.ts +26 -0
  111. package/dist/paywall/state.d.ts.map +1 -0
  112. package/dist/paywall/state.js +132 -0
  113. package/dist/paywall/state.js.map +1 -0
  114. package/dist/paywall/tracker.d.ts +36 -0
  115. package/dist/paywall/tracker.d.ts.map +1 -0
  116. package/dist/paywall/tracker.js +180 -0
  117. package/dist/paywall/tracker.js.map +1 -0
  118. package/dist/version.d.ts +3 -0
  119. package/dist/version.d.ts.map +1 -0
  120. package/dist/version.js +6 -0
  121. package/dist/version.js.map +1 -0
  122. package/docs/onboarding-run-contract.md +1013 -0
  123. package/docs/onboarding-run.examples.ts +306 -0
  124. package/docs/onboarding-run.schema.json +224 -0
  125. package/docs/onboarding-run.types.ts +144 -0
  126. package/docs/paywall-presentation-contract.md +139 -0
  127. package/docs/paywall-presentation.examples.ts +42 -0
  128. package/docs/paywall-presentation.schema.json +268 -0
  129. package/docs/paywall-presentation.types.ts +73 -0
  130. package/onboarding/package.json +4 -0
  131. package/package.json +120 -4
  132. package/paywall/package.json +1 -0
  133. package/src/client/client.ts +417 -0
  134. package/src/client/index.ts +54 -0
  135. package/src/client/native.ts +109 -0
  136. package/src/client/onboardingSink.ts +121 -0
  137. package/src/client/paywallSink.ts +25 -0
  138. package/src/client/requests.ts +126 -0
  139. package/src/client/types.ts +198 -0
  140. package/src/core/context.ts +69 -0
  141. package/src/core/delivery.ts +181 -0
  142. package/src/core/diagnostics.ts +30 -0
  143. package/src/core/httpSink.ts +70 -0
  144. package/src/core/ids.ts +46 -0
  145. package/src/core/index.ts +20 -0
  146. package/src/core/sink.ts +46 -0
  147. package/src/core/storage.ts +112 -0
  148. package/src/core/text.ts +37 -0
  149. package/src/core/time.ts +26 -0
  150. package/src/onboarding/contract.ts +144 -0
  151. package/src/onboarding/index.ts +39 -0
  152. package/src/onboarding/input.ts +246 -0
  153. package/src/onboarding/persisted.ts +93 -0
  154. package/src/onboarding/state.ts +233 -0
  155. package/src/onboarding/tracker.ts +855 -0
  156. package/src/paywall/contract.ts +73 -0
  157. package/src/paywall/index.ts +36 -0
  158. package/src/paywall/observer.ts +43 -0
  159. package/src/paywall/state.ts +125 -0
  160. package/src/paywall/tracker.ts +200 -0
  161. package/src/version.ts +2 -0
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_STORED_PRESENTATIONS = exports.DEFAULT_PAYWALL_STORAGE_KEY = void 0;
4
+ exports.createPaywallTracker = createPaywallTracker;
5
+ const context_1 = require("../core/context");
6
+ const delivery_1 = require("../core/delivery");
7
+ const diagnostics_1 = require("../core/diagnostics");
8
+ const ids_1 = require("../core/ids");
9
+ const storage_1 = require("../core/storage");
10
+ const time_1 = require("../core/time");
11
+ const version_1 = require("../version");
12
+ const state_1 = require("./state");
13
+ exports.DEFAULT_PAYWALL_STORAGE_KEY = "rocalytics-sdk:paywall-presentations";
14
+ exports.MAX_STORED_PRESENTATIONS = 20;
15
+ function createPaywallTracker(config) {
16
+ var _a, _b, _c, _d;
17
+ const report = (0, diagnostics_1.safeDiagnostics)(config.onDiagnostic);
18
+ const clock = (_a = config.clock) !== null && _a !== void 0 ? _a : time_1.systemClock;
19
+ const timers = (_b = config.timers) !== null && _b !== void 0 ? _b : time_1.systemTimers;
20
+ const uuid = (_c = config.uuid) !== null && _c !== void 0 ? _c : (0, ids_1.createUuid)(clock);
21
+ const store = config.storage
22
+ ? (0, storage_1.createSerialStore)(config.storage, (_d = config.storageKey) !== null && _d !== void 0 ? _d : exports.DEFAULT_PAYWALL_STORAGE_KEY, (e) => report({ code: "storage", message: String(e) }))
23
+ : null;
24
+ const pending = new Map();
25
+ const deliveries = new Map();
26
+ let disposed = false;
27
+ // Off when the first read failed: stored state is then left untouched, never overwritten.
28
+ let persistenceOff = false;
29
+ // Writes wait for the first read, so a start() at launch cannot overwrite the stored map.
30
+ const loaded = store
31
+ ? store
32
+ .read()
33
+ .then((r) => {
34
+ if (r.status === "ok")
35
+ return r.value;
36
+ if (r.status === "failed") {
37
+ persistenceOff = true;
38
+ report({ code: "storage", message: `reading stored presentations failed (${String(r.error)}): left untouched; this session runs without persistence` });
39
+ }
40
+ else
41
+ report({ code: "invalid-stored", message: "stored presentations are not JSON; ignored" });
42
+ return null;
43
+ })
44
+ .catch(() => null)
45
+ : Promise.resolve(null);
46
+ const persist = () => {
47
+ if (!store || persistenceOff)
48
+ return;
49
+ if (pending.size > exports.MAX_STORED_PRESENTATIONS) {
50
+ const oldest = [...pending.values()].sort((a, b) => a.body.started_at.localeCompare(b.body.started_at));
51
+ for (const o of oldest.slice(0, pending.size - exports.MAX_STORED_PRESENTATIONS)) {
52
+ pending.delete(o.body.presentation_id);
53
+ report({ code: "storage-cap", message: `dropped unsent presentation ${o.body.presentation_id} from storage` });
54
+ }
55
+ }
56
+ // The map is built when the write's turn comes, not now: a write queued at launch
57
+ // must include the entries the initial read restores in the meantime.
58
+ void loaded.then(() => {
59
+ if (!persistenceOff)
60
+ return store.saveWith(() => (pending.size ? Object.fromEntries(pending) : null));
61
+ });
62
+ };
63
+ const deliveryFor = (presentationId) => {
64
+ let d = deliveries.get(presentationId);
65
+ if (d)
66
+ return d;
67
+ d = (0, delivery_1.createDelivery)({
68
+ sink: config.sink,
69
+ timers,
70
+ retry: config.retry,
71
+ attemptTimeoutMs: config.attemptTimeoutMs,
72
+ onSettled: (item, result) => {
73
+ if (result.outcome === "rejected") {
74
+ report({ code: "rejected", message: `snapshot ${item.seq} rejected${result.reason ? `: ${result.reason}` : ""}` });
75
+ }
76
+ },
77
+ onPendingChange: (p) => {
78
+ var _a;
79
+ if (p)
80
+ pending.set(presentationId, p);
81
+ else {
82
+ pending.delete(presentationId);
83
+ (_a = deliveries.get(presentationId)) === null || _a === void 0 ? void 0 : _a.stop();
84
+ deliveries.delete(presentationId);
85
+ }
86
+ persist();
87
+ },
88
+ });
89
+ deliveries.set(presentationId, d);
90
+ return d;
91
+ };
92
+ const isOutbound = (v) => {
93
+ const o = v;
94
+ return !!o && typeof o.seq === "number" && !!o.body && typeof o.body === "object"
95
+ && typeof o.body.presentation_id === "string" && o.body.seq === o.seq;
96
+ };
97
+ if (store) {
98
+ void loaded.then((stored) => {
99
+ if (disposed || !stored || typeof stored !== "object")
100
+ return;
101
+ for (const [id, item] of Object.entries(stored)) {
102
+ if (!isOutbound(item) || item.body.presentation_id !== id) {
103
+ report({ code: "invalid-stored", message: `ignored stored entry ${id}` });
104
+ continue;
105
+ }
106
+ if (deliveries.has(id))
107
+ continue;
108
+ deliveryFor(id).enqueue(item);
109
+ }
110
+ }).catch((e) => report({ code: "internal", message: String(e) }));
111
+ }
112
+ const send = (s) => {
113
+ if (disposed)
114
+ return;
115
+ const body = (0, state_1.toSnapshot)(s, clock.now());
116
+ deliveryFor(s.id).enqueue({ seq: body.seq, body });
117
+ };
118
+ const guard = (fn) => {
119
+ try {
120
+ fn();
121
+ }
122
+ catch (e) {
123
+ report({ code: "internal", message: String(e) });
124
+ }
125
+ };
126
+ const handle = (s) => ({
127
+ shown: () => guard(() => {
128
+ const r = (0, state_1.markShown)(s, clock.now());
129
+ if (r === "ok")
130
+ send(s);
131
+ else
132
+ report({ code: r, message: `shown() ignored: ${r}`, runId: s.id });
133
+ }),
134
+ end: (outcome) => guard(() => {
135
+ const r = (0, state_1.markEnded)(s, outcome, clock.now());
136
+ if (r === "ok")
137
+ send(s);
138
+ else
139
+ report({ code: r, message: `end() ignored: ${r}`, runId: s.id });
140
+ }),
141
+ });
142
+ return {
143
+ start(info) {
144
+ try {
145
+ const problems = (0, state_1.validateInfo)(info);
146
+ if (problems.length) {
147
+ report({ code: "invalid-info", message: problems.join("; ") });
148
+ return undefined;
149
+ }
150
+ let input;
151
+ try {
152
+ input = typeof config.context === "function" ? config.context() : config.context;
153
+ }
154
+ catch (e) {
155
+ report({ code: "invalid-context", message: String(e) });
156
+ return undefined;
157
+ }
158
+ const captured = (0, context_1.captureRunContext)(input, version_1.LIBRARY_VERSION);
159
+ if (!captured.ok) {
160
+ report({ code: "invalid-context", message: captured.errors.join("; ") });
161
+ return undefined;
162
+ }
163
+ const s = (0, state_1.createState)(info, uuid(), clock.now(), captured.context);
164
+ send(s);
165
+ return handle(s);
166
+ }
167
+ catch (e) {
168
+ report({ code: "internal", message: String(e) });
169
+ return undefined;
170
+ }
171
+ },
172
+ idle: () => (store ? store.idle() : Promise.resolve()),
173
+ dispose() {
174
+ disposed = true;
175
+ for (const d of deliveries.values())
176
+ d.stop();
177
+ },
178
+ };
179
+ }
180
+ //# sourceMappingURL=tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../src/paywall/tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** This package's version, sent as `context.library_version`. A test keeps it equal to package.json. */
2
+ export declare const LIBRARY_VERSION = "0.3.0";
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,eAAO,MAAM,eAAe,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LIBRARY_VERSION = void 0;
4
+ /** This package's version, sent as `context.library_version`. A test keeps it equal to package.json. */
5
+ exports.LIBRARY_VERSION = "0.3.0";
6
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,wGAAwG;AAC3F,QAAA,eAAe,GAAG,OAAO,CAAC"}