@amplytools/react-native-amply-sdk 0.15.0 → 0.15.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.
Files changed (59) hide show
  1. package/dist/cjs/campaignTouch.js +44 -0
  2. package/dist/cjs/campaignTouch.js.map +1 -0
  3. package/dist/cjs/hooks/useAmplySystemEvents.js +60 -0
  4. package/dist/cjs/hooks/useAmplySystemEvents.js.map +1 -0
  5. package/dist/cjs/index.js +723 -0
  6. package/dist/cjs/index.js.map +1 -0
  7. package/dist/cjs/nativeModule.js +55 -0
  8. package/dist/cjs/nativeModule.js.map +1 -0
  9. package/dist/cjs/nativeSpecs/NativeAmplyModule.js +5 -0
  10. package/dist/cjs/nativeSpecs/NativeAmplyModule.js.map +1 -0
  11. package/dist/cjs/systemEventUtils.js +47 -0
  12. package/dist/cjs/systemEventUtils.js.map +1 -0
  13. package/dist/cjs/systemEvents.js +27 -0
  14. package/dist/cjs/systemEvents.js.map +1 -0
  15. package/docs/ARCHITECTURE.md +26 -19
  16. package/package.json +12 -6
  17. package/scripts/check-package.js +159 -0
  18. package/dist/index.js +0 -272
  19. package/dist/index.js.map +0 -1
  20. package/dist/index.mjs +0 -234
  21. package/dist/index.mjs.map +0 -1
  22. package/dist/plugin/index.d.ts +0 -6
  23. package/dist/plugin/index.d.ts.map +0 -1
  24. package/dist/plugin/index.js +0 -186
  25. package/dist/plugin/index.js.map +0 -1
  26. package/dist/plugin/index.mjs +0 -169
  27. package/dist/plugin/index.mjs.map +0 -1
  28. package/dist/plugin/withAmply.d.ts +0 -12
  29. package/dist/plugin/withAmply.d.ts.map +0 -1
  30. package/dist/src/__tests__/appLanguage.test.d.ts +0 -2
  31. package/dist/src/__tests__/appLanguage.test.d.ts.map +0 -1
  32. package/dist/src/__tests__/appLanguage.test.js +0 -211
  33. package/dist/src/__tests__/campaignResolved.test.d.ts +0 -2
  34. package/dist/src/__tests__/campaignResolved.test.d.ts.map +0 -1
  35. package/dist/src/__tests__/campaignResolved.test.js +0 -208
  36. package/dist/src/__tests__/gateRegistrationLifecycle.test.d.ts +0 -2
  37. package/dist/src/__tests__/gateRegistrationLifecycle.test.d.ts.map +0 -1
  38. package/dist/src/__tests__/gateRegistrationLifecycle.test.js +0 -215
  39. package/dist/src/__tests__/handleUrl.test.d.ts +0 -2
  40. package/dist/src/__tests__/handleUrl.test.d.ts.map +0 -1
  41. package/dist/src/__tests__/handleUrl.test.js +0 -114
  42. package/dist/src/__tests__/index.test.d.ts +0 -2
  43. package/dist/src/__tests__/index.test.d.ts.map +0 -1
  44. package/dist/src/__tests__/index.test.js +0 -204
  45. package/dist/src/__tests__/lastCampaignTouch.test.d.ts +0 -2
  46. package/dist/src/__tests__/lastCampaignTouch.test.d.ts.map +0 -1
  47. package/dist/src/__tests__/lastCampaignTouch.test.js +0 -119
  48. package/dist/src/__tests__/systemEventUtils.test.d.ts +0 -2
  49. package/dist/src/__tests__/systemEventUtils.test.d.ts.map +0 -1
  50. package/dist/src/__tests__/systemEventUtils.test.js +0 -72
  51. package/dist/tsconfig.tsbuildinfo +0 -1
  52. package/plugin/tsconfig.tsbuildinfo +0 -1
  53. package/src/__tests__/appLanguage.test.ts +0 -298
  54. package/src/__tests__/campaignResolved.test.ts +0 -294
  55. package/src/__tests__/gateRegistrationLifecycle.test.ts +0 -281
  56. package/src/__tests__/handleUrl.test.ts +0 -155
  57. package/src/__tests__/index.test.ts +0 -258
  58. package/src/__tests__/lastCampaignTouch.test.ts +0 -151
  59. package/src/__tests__/systemEventUtils.test.ts +0 -97
package/dist/index.js DELETED
@@ -1,272 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
23
- addDeepLinkListener: () => addDeepLinkListener,
24
- addSystemEventListener: () => addSystemEventListener2,
25
- addSystemEventsListener: () => addSystemEventsListener,
26
- default: () => src_default,
27
- formatSystemEventLabel: () => formatSystemEventLabel,
28
- getDataSetSnapshot: () => getDataSetSnapshot,
29
- getRecentEvents: () => getRecentEvents,
30
- initialize: () => initialize,
31
- isInitialized: () => isInitialized,
32
- removeAllListeners: () => removeAllListeners,
33
- systemEvents: () => systemEvents,
34
- track: () => track,
35
- useAmplySystemEvents: () => useAmplySystemEvents
36
- });
37
- module.exports = __toCommonJS(src_exports);
38
-
39
- // src/nativeModule.ts
40
- var import_react_native = require("react-native");
41
- var MODULE_NAME = "Amply";
42
- var cachedModule = null;
43
- var attemptedTurboLookup = false;
44
- var resolvedTurboModule = null;
45
- function loadModule() {
46
- const globalWithTurbo = globalThis;
47
- if (globalWithTurbo.__turboModuleProxy != null) {
48
- if (!attemptedTurboLookup) {
49
- attemptedTurboLookup = true;
50
- try {
51
- resolvedTurboModule = import_react_native.TurboModuleRegistry.getEnforcing(MODULE_NAME);
52
- } catch (error) {
53
- resolvedTurboModule = null;
54
- if (__DEV__) {
55
- console.warn(
56
- "[Amply] TurboModule lookup failed; falling back to legacy NativeModules. " + (error instanceof Error ? error.message : String(error))
57
- );
58
- }
59
- }
60
- }
61
- if (resolvedTurboModule) {
62
- return resolvedTurboModule;
63
- }
64
- }
65
- const legacyModule = import_react_native.NativeModules[MODULE_NAME];
66
- if (legacyModule) {
67
- return legacyModule;
68
- }
69
- return null;
70
- }
71
- function getNativeModule() {
72
- if (cachedModule) {
73
- return cachedModule;
74
- }
75
- const module2 = loadModule();
76
- if (!module2) {
77
- throw new Error(
78
- `Amply native module '${MODULE_NAME}' not found. Ensure the module is properly linked and new architecture is enabled.`
79
- );
80
- }
81
- cachedModule = module2;
82
- return cachedModule;
83
- }
84
- var nativeModule_default = getNativeModule;
85
-
86
- // src/systemEvents.ts
87
- async function addSystemEventListener(listener) {
88
- const subscription = nativeModule_default().onSystemEvent(listener);
89
- return () => {
90
- var _a;
91
- return (_a = subscription == null ? void 0 : subscription.remove) == null ? void 0 : _a.call(subscription);
92
- };
93
- }
94
-
95
- // src/hooks/useAmplySystemEvents.ts
96
- var import_react = require("react");
97
- function useAmplySystemEvents(options = {}) {
98
- const { maxEntries = 50, dedupe = true, onEvent } = options;
99
- const [events, setEvents] = (0, import_react.useState)([]);
100
- const seenKeysRef = (0, import_react.useRef)(/* @__PURE__ */ new Set());
101
- const handlerRef = (0, import_react.useRef)(onEvent);
102
- (0, import_react.useEffect)(() => {
103
- handlerRef.current = onEvent;
104
- }, [onEvent]);
105
- (0, import_react.useEffect)(() => {
106
- let unsubscribe;
107
- let isMounted = true;
108
- addSystemEventListener((event) => {
109
- var _a;
110
- if (!isMounted) {
111
- return;
112
- }
113
- if (dedupe) {
114
- const key = `${event.name}-${event.timestamp}`;
115
- if (seenKeysRef.current.has(key)) {
116
- return;
117
- }
118
- seenKeysRef.current.add(key);
119
- }
120
- (_a = handlerRef.current) == null ? void 0 : _a.call(handlerRef, event);
121
- setEvents((prev) => {
122
- const next = [...prev, event];
123
- if (next.length > maxEntries) {
124
- next.splice(0, next.length - maxEntries);
125
- }
126
- return next;
127
- });
128
- }).then((unsub) => {
129
- if (!isMounted) {
130
- unsub();
131
- } else {
132
- unsubscribe = unsub;
133
- }
134
- }).catch((error) => {
135
- console.warn("[Amply] system event listener error", error);
136
- });
137
- return () => {
138
- isMounted = false;
139
- unsubscribe == null ? void 0 : unsubscribe();
140
- };
141
- }, [dedupe, maxEntries]);
142
- const reset = (0, import_react.useCallback)(() => {
143
- seenKeysRef.current.clear();
144
- setEvents([]);
145
- }, []);
146
- return { events, reset };
147
- }
148
-
149
- // src/systemEventUtils.ts
150
- var DEFAULT_LABELS = {
151
- SdkInitialized: "SDK initialized",
152
- ConfigFetchStarted: "Config fetch started",
153
- ConfigFetchFinished: "Config fetch finished",
154
- SessionStarted: "Session started",
155
- SessionFinished: "Session finished",
156
- CampaignShown: "Campaign shown",
157
- EventTriggered: "Event triggered",
158
- CampaignStarted: "Campaign processing started",
159
- CampaignFinished: "Campaign finished"
160
- };
161
- function formatSystemEventLabel(event) {
162
- var _a, _b;
163
- if (event.name === "CampaignShown") {
164
- const campaignId = event.properties.campaignId;
165
- const source = event.properties.source;
166
- return `Campaign shown${campaignId ? ` (${campaignId})` : ""}${source ? ` via ${source}` : ""}`;
167
- }
168
- if (event.name === "EventTriggered") {
169
- const source = event.properties.sourceEvent;
170
- return source ? `Event triggered (${source})` : (_a = DEFAULT_LABELS[event.name]) != null ? _a : event.name;
171
- }
172
- if (event.name === "ConfigFetchFinished") {
173
- const success = event.properties.success;
174
- const campaignCount = event.properties.campaignCount;
175
- const countLabel = typeof campaignCount === "number" ? ` (${campaignCount} campaigns)` : "";
176
- return success === false ? "Config fetch failed" : `Config fetch finished${countLabel}`;
177
- }
178
- return (_b = DEFAULT_LABELS[event.name]) != null ? _b : `System event ${event.name}`;
179
- }
180
-
181
- // src/index.ts
182
- var deepLinkRegistered = false;
183
- var deepLinkSubscriptions = /* @__PURE__ */ new Set();
184
- async function ensureDeepLinkRegistration() {
185
- if (!deepLinkRegistered) {
186
- console.log("[Amply] Calling registerDeepLinkListener on native module");
187
- nativeModule_default().registerDeepLinkListener();
188
- deepLinkRegistered = true;
189
- console.log("[Amply] registerDeepLinkListener completed");
190
- }
191
- }
192
- function trackDeepLinkSubscription(subscription) {
193
- let removed = false;
194
- const unsubscribe = () => {
195
- var _a;
196
- if (removed) {
197
- return;
198
- }
199
- removed = true;
200
- (_a = subscription == null ? void 0 : subscription.remove) == null ? void 0 : _a.call(subscription);
201
- deepLinkSubscriptions.delete(unsubscribe);
202
- };
203
- deepLinkSubscriptions.add(unsubscribe);
204
- return unsubscribe;
205
- }
206
- async function initialize(config) {
207
- await nativeModule_default().initialize(config);
208
- }
209
- function isInitialized() {
210
- return nativeModule_default().isInitialized();
211
- }
212
- async function track(payload) {
213
- await nativeModule_default().track(payload);
214
- }
215
- async function getRecentEvents(limit) {
216
- return nativeModule_default().getRecentEvents(limit);
217
- }
218
- async function getDataSetSnapshot(type) {
219
- return nativeModule_default().getDataSetSnapshot(type);
220
- }
221
- async function addDeepLinkListener(listener) {
222
- await ensureDeepLinkRegistration();
223
- const subscription = nativeModule_default().onDeepLink(listener);
224
- return trackDeepLinkSubscription(subscription);
225
- }
226
- async function addSystemEventListener2(listener) {
227
- return addSystemEventListener(listener);
228
- }
229
- function removeAllListeners() {
230
- deepLinkSubscriptions.forEach((unsubscribe) => {
231
- try {
232
- unsubscribe();
233
- } catch (error) {
234
- console.warn("[Amply] Failed to remove deep link listener", error);
235
- }
236
- });
237
- deepLinkSubscriptions.clear();
238
- }
239
- function addSystemEventsListener(listener) {
240
- return addSystemEventListener2(listener);
241
- }
242
- var systemEvents = {
243
- addListener: addSystemEventsListener
244
- };
245
- var src_default = {
246
- initialize,
247
- isInitialized,
248
- track,
249
- getRecentEvents,
250
- getDataSetSnapshot,
251
- addDeepLinkListener,
252
- addSystemEventListener: addSystemEventListener2,
253
- addSystemEventsListener,
254
- removeAllListeners,
255
- systemEvents
256
- };
257
- // Annotate the CommonJS export names for ESM import in node:
258
- 0 && (module.exports = {
259
- addDeepLinkListener,
260
- addSystemEventListener,
261
- addSystemEventsListener,
262
- formatSystemEventLabel,
263
- getDataSetSnapshot,
264
- getRecentEvents,
265
- initialize,
266
- isInitialized,
267
- removeAllListeners,
268
- systemEvents,
269
- track,
270
- useAmplySystemEvents
271
- });
272
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts","../src/nativeModule.ts","../src/systemEvents.ts","../src/hooks/useAmplySystemEvents.ts","../src/systemEventUtils.ts"],"sourcesContent":["import getNativeModule from './nativeModule';\nimport {addSystemEventListener as addSystemEventListenerInternal} from './systemEvents';\nexport {useAmplySystemEvents} from './hooks/useAmplySystemEvents';\nexport {formatSystemEventLabel} from './systemEventUtils';\nimport type {\n AmplyInitializationConfig,\n DataSetSnapshot,\n DataSetType,\n DeepLinkEvent,\n EventRecord,\n TrackEventPayload,\n} from './nativeSpecs/NativeAmplyModule';\n\nlet deepLinkRegistered = false;\nconst deepLinkSubscriptions = new Set<() => void>();\n\nasync function ensureDeepLinkRegistration(): Promise<void> {\n if (!deepLinkRegistered) {\n console.log('[Amply] Calling registerDeepLinkListener on native module');\n getNativeModule().registerDeepLinkListener();\n deepLinkRegistered = true;\n console.log('[Amply] registerDeepLinkListener completed');\n }\n}\n\nfunction trackDeepLinkSubscription(subscription?: {remove?: () => void}): () => void {\n let removed = false;\n const unsubscribe = () => {\n if (removed) {\n return;\n }\n removed = true;\n subscription?.remove?.();\n deepLinkSubscriptions.delete(unsubscribe);\n };\n deepLinkSubscriptions.add(unsubscribe);\n return unsubscribe;\n}\n\nexport async function initialize(config: AmplyInitializationConfig): Promise<void> {\n await getNativeModule().initialize(config);\n}\n\nexport function isInitialized(): boolean {\n return getNativeModule().isInitialized();\n}\n\nexport async function track(payload: TrackEventPayload): Promise<void> {\n await getNativeModule().track(payload);\n}\n\nexport async function getRecentEvents(limit: number): Promise<EventRecord[]> {\n return getNativeModule().getRecentEvents(limit);\n}\n\nexport async function getDataSetSnapshot(type: DataSetType): Promise<DataSetSnapshot> {\n return getNativeModule().getDataSetSnapshot(type);\n}\n\nexport async function addDeepLinkListener(\n listener: (event: DeepLinkEvent) => void\n): Promise<() => void> {\n await ensureDeepLinkRegistration();\n const subscription = getNativeModule().onDeepLink(listener);\n return trackDeepLinkSubscription(subscription);\n}\n\nexport async function addSystemEventListener(\n listener: (event: EventRecord) => void\n): Promise<() => void> {\n return addSystemEventListenerInternal(listener);\n}\n\nexport function removeAllListeners(): void {\n deepLinkSubscriptions.forEach(unsubscribe => {\n try {\n unsubscribe();\n } catch (error) {\n console.warn('[Amply] Failed to remove deep link listener', error);\n }\n });\n deepLinkSubscriptions.clear();\n}\n\nexport type {\n AmplyInitializationConfig,\n DataSetSnapshot,\n DataSetType,\n DeepLinkEvent,\n EventRecord,\n TrackEventPayload,\n};\n\nexport function addSystemEventsListener(\n listener: (event: EventRecord) => void,\n): Promise<() => void> {\n return addSystemEventListener(listener);\n}\n\nexport const systemEvents = {\n addListener: addSystemEventsListener,\n};\n\nexport default {\n initialize,\n isInitialized,\n track,\n getRecentEvents,\n getDataSetSnapshot,\n addDeepLinkListener,\n addSystemEventListener,\n addSystemEventsListener,\n removeAllListeners,\n systemEvents,\n};\n","import {NativeModules, TurboModuleRegistry} from 'react-native';\nimport type {Spec} from './nativeSpecs/NativeAmplyModule';\n\nconst MODULE_NAME = 'Amply';\n\nlet cachedModule: Spec | null = null;\nlet attemptedTurboLookup = false;\nlet resolvedTurboModule: Spec | null = null;\n\nfunction loadModule(): Spec | null {\n const globalWithTurbo = globalThis as typeof globalThis & {\n __turboModuleProxy?: unknown;\n };\n\n if (globalWithTurbo.__turboModuleProxy != null) {\n if (!attemptedTurboLookup) {\n attemptedTurboLookup = true;\n try {\n resolvedTurboModule = TurboModuleRegistry.getEnforcing<Spec>(MODULE_NAME);\n } catch (error) {\n resolvedTurboModule = null;\n if (__DEV__) {\n console.warn(\n \"[Amply] TurboModule lookup failed; falling back to legacy NativeModules. \" +\n (error instanceof Error ? error.message : String(error))\n );\n }\n }\n }\n if (resolvedTurboModule) {\n return resolvedTurboModule;\n }\n }\n\n const legacyModule = NativeModules[MODULE_NAME] as Spec | undefined;\n if (legacyModule) {\n return legacyModule;\n }\n\n return null;\n}\n\nexport function getNativeModule(): Spec {\n if (cachedModule) {\n return cachedModule;\n }\n\n const module = loadModule();\n if (!module) {\n throw new Error(\n `Amply native module '${MODULE_NAME}' not found. ` +\n 'Ensure the module is properly linked and new architecture is enabled.'\n );\n }\n\n cachedModule = module;\n return cachedModule;\n}\n\n// Testing hook to override the resolved native module.\nexport function __setNativeModule(mock: Spec | null): void {\n cachedModule = mock;\n}\n\nexport default getNativeModule;\n","import getNativeModule from './nativeModule';\nimport type {SystemEventPayload} from './nativeSpecs/NativeAmplyModule';\n\nexport async function addSystemEventListener(\n listener: (event: SystemEventPayload) => void,\n): Promise<() => void> {\n const subscription = getNativeModule().onSystemEvent(listener);\n return () => subscription?.remove?.();\n}\n\nexport const systemEvents = {\n addListener: addSystemEventListener,\n};\n","import {useCallback, useEffect, useRef, useState} from 'react';\nimport type {EventRecord} from '../nativeSpecs/NativeAmplyModule';\nimport {addSystemEventListener} from '../systemEvents';\n\nexport type UseAmplySystemEventsOptions = {\n maxEntries?: number;\n dedupe?: boolean;\n onEvent?: (event: EventRecord) => void;\n};\n\nexport type UseAmplySystemEventsResult = {\n events: EventRecord[];\n reset: () => void;\n};\n\nexport function useAmplySystemEvents(\n options: UseAmplySystemEventsOptions = {},\n): UseAmplySystemEventsResult {\n const {maxEntries = 50, dedupe = true, onEvent} = options;\n const [events, setEvents] = useState<EventRecord[]>([]);\n const seenKeysRef = useRef<Set<string>>(new Set());\n const handlerRef = useRef<typeof onEvent>(onEvent);\n\n useEffect(() => {\n handlerRef.current = onEvent;\n }, [onEvent]);\n\n useEffect(() => {\n let unsubscribe: (() => void) | undefined;\n let isMounted = true;\n\n addSystemEventListener(event => {\n if (!isMounted) {\n return;\n }\n if (dedupe) {\n const key = `${event.name}-${event.timestamp}`;\n if (seenKeysRef.current.has(key)) {\n return;\n }\n seenKeysRef.current.add(key);\n }\n handlerRef.current?.(event);\n setEvents(prev => {\n const next = [...prev, event];\n if (next.length > maxEntries) {\n next.splice(0, next.length - maxEntries);\n }\n return next;\n });\n })\n .then(unsub => {\n if (!isMounted) {\n unsub();\n } else {\n unsubscribe = unsub;\n }\n })\n .catch(error => {\n console.warn('[Amply] system event listener error', error);\n });\n\n return () => {\n isMounted = false;\n unsubscribe?.();\n };\n }, [dedupe, maxEntries]);\n\n const reset = useCallback(() => {\n seenKeysRef.current.clear();\n setEvents([]);\n }, []);\n\n return {events, reset};\n}\n","import type {EventRecord} from './nativeSpecs/NativeAmplyModule';\n\nconst DEFAULT_LABELS: Record<string, string> = {\n SdkInitialized: 'SDK initialized',\n ConfigFetchStarted: 'Config fetch started',\n ConfigFetchFinished: 'Config fetch finished',\n SessionStarted: 'Session started',\n SessionFinished: 'Session finished',\n CampaignShown: 'Campaign shown',\n EventTriggered: 'Event triggered',\n CampaignStarted: 'Campaign processing started',\n CampaignFinished: 'Campaign finished',\n};\n\nexport function formatSystemEventLabel(event: EventRecord): string {\n if (event.name === 'CampaignShown') {\n const campaignId = event.properties.campaignId as string | undefined;\n const source = event.properties.source as string | undefined;\n return `Campaign shown${campaignId ? ` (${campaignId})` : ''}${\n source ? ` via ${source}` : ''\n }`;\n }\n if (event.name === 'EventTriggered') {\n const source = event.properties.sourceEvent as string | undefined;\n return source ? `Event triggered (${source})` : DEFAULT_LABELS[event.name] ?? event.name;\n }\n if (event.name === 'ConfigFetchFinished') {\n const success = event.properties.success as boolean | undefined;\n const campaignCount = event.properties.campaignCount as number | undefined;\n const countLabel =\n typeof campaignCount === 'number' ? ` (${campaignCount} campaigns)` : '';\n return success === false ? 'Config fetch failed' : `Config fetch finished${countLabel}`;\n }\n return DEFAULT_LABELS[event.name] ?? `System event ${event.name}`;\n}\n"],"mappings":"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","names":["addSystemEventListener","module","addSystemEventListener"]}
package/dist/index.mjs DELETED
@@ -1,234 +0,0 @@
1
- // src/nativeModule.ts
2
- import { NativeModules, TurboModuleRegistry } from "react-native";
3
- var MODULE_NAME = "Amply";
4
- var cachedModule = null;
5
- var attemptedTurboLookup = false;
6
- var resolvedTurboModule = null;
7
- function loadModule() {
8
- const globalWithTurbo = globalThis;
9
- if (globalWithTurbo.__turboModuleProxy != null) {
10
- if (!attemptedTurboLookup) {
11
- attemptedTurboLookup = true;
12
- try {
13
- resolvedTurboModule = TurboModuleRegistry.getEnforcing(MODULE_NAME);
14
- } catch (error) {
15
- resolvedTurboModule = null;
16
- if (__DEV__) {
17
- console.warn(
18
- "[Amply] TurboModule lookup failed; falling back to legacy NativeModules. " + (error instanceof Error ? error.message : String(error))
19
- );
20
- }
21
- }
22
- }
23
- if (resolvedTurboModule) {
24
- return resolvedTurboModule;
25
- }
26
- }
27
- const legacyModule = NativeModules[MODULE_NAME];
28
- if (legacyModule) {
29
- return legacyModule;
30
- }
31
- return null;
32
- }
33
- function getNativeModule() {
34
- if (cachedModule) {
35
- return cachedModule;
36
- }
37
- const module = loadModule();
38
- if (!module) {
39
- throw new Error(
40
- `Amply native module '${MODULE_NAME}' not found. Ensure the module is properly linked and new architecture is enabled.`
41
- );
42
- }
43
- cachedModule = module;
44
- return cachedModule;
45
- }
46
- var nativeModule_default = getNativeModule;
47
-
48
- // src/systemEvents.ts
49
- async function addSystemEventListener(listener) {
50
- const subscription = nativeModule_default().onSystemEvent(listener);
51
- return () => {
52
- var _a;
53
- return (_a = subscription == null ? void 0 : subscription.remove) == null ? void 0 : _a.call(subscription);
54
- };
55
- }
56
-
57
- // src/hooks/useAmplySystemEvents.ts
58
- import { useCallback, useEffect, useRef, useState } from "react";
59
- function useAmplySystemEvents(options = {}) {
60
- const { maxEntries = 50, dedupe = true, onEvent } = options;
61
- const [events, setEvents] = useState([]);
62
- const seenKeysRef = useRef(/* @__PURE__ */ new Set());
63
- const handlerRef = useRef(onEvent);
64
- useEffect(() => {
65
- handlerRef.current = onEvent;
66
- }, [onEvent]);
67
- useEffect(() => {
68
- let unsubscribe;
69
- let isMounted = true;
70
- addSystemEventListener((event) => {
71
- var _a;
72
- if (!isMounted) {
73
- return;
74
- }
75
- if (dedupe) {
76
- const key = `${event.name}-${event.timestamp}`;
77
- if (seenKeysRef.current.has(key)) {
78
- return;
79
- }
80
- seenKeysRef.current.add(key);
81
- }
82
- (_a = handlerRef.current) == null ? void 0 : _a.call(handlerRef, event);
83
- setEvents((prev) => {
84
- const next = [...prev, event];
85
- if (next.length > maxEntries) {
86
- next.splice(0, next.length - maxEntries);
87
- }
88
- return next;
89
- });
90
- }).then((unsub) => {
91
- if (!isMounted) {
92
- unsub();
93
- } else {
94
- unsubscribe = unsub;
95
- }
96
- }).catch((error) => {
97
- console.warn("[Amply] system event listener error", error);
98
- });
99
- return () => {
100
- isMounted = false;
101
- unsubscribe == null ? void 0 : unsubscribe();
102
- };
103
- }, [dedupe, maxEntries]);
104
- const reset = useCallback(() => {
105
- seenKeysRef.current.clear();
106
- setEvents([]);
107
- }, []);
108
- return { events, reset };
109
- }
110
-
111
- // src/systemEventUtils.ts
112
- var DEFAULT_LABELS = {
113
- SdkInitialized: "SDK initialized",
114
- ConfigFetchStarted: "Config fetch started",
115
- ConfigFetchFinished: "Config fetch finished",
116
- SessionStarted: "Session started",
117
- SessionFinished: "Session finished",
118
- CampaignShown: "Campaign shown",
119
- EventTriggered: "Event triggered",
120
- CampaignStarted: "Campaign processing started",
121
- CampaignFinished: "Campaign finished"
122
- };
123
- function formatSystemEventLabel(event) {
124
- var _a, _b;
125
- if (event.name === "CampaignShown") {
126
- const campaignId = event.properties.campaignId;
127
- const source = event.properties.source;
128
- return `Campaign shown${campaignId ? ` (${campaignId})` : ""}${source ? ` via ${source}` : ""}`;
129
- }
130
- if (event.name === "EventTriggered") {
131
- const source = event.properties.sourceEvent;
132
- return source ? `Event triggered (${source})` : (_a = DEFAULT_LABELS[event.name]) != null ? _a : event.name;
133
- }
134
- if (event.name === "ConfigFetchFinished") {
135
- const success = event.properties.success;
136
- const campaignCount = event.properties.campaignCount;
137
- const countLabel = typeof campaignCount === "number" ? ` (${campaignCount} campaigns)` : "";
138
- return success === false ? "Config fetch failed" : `Config fetch finished${countLabel}`;
139
- }
140
- return (_b = DEFAULT_LABELS[event.name]) != null ? _b : `System event ${event.name}`;
141
- }
142
-
143
- // src/index.ts
144
- var deepLinkRegistered = false;
145
- var deepLinkSubscriptions = /* @__PURE__ */ new Set();
146
- async function ensureDeepLinkRegistration() {
147
- if (!deepLinkRegistered) {
148
- console.log("[Amply] Calling registerDeepLinkListener on native module");
149
- nativeModule_default().registerDeepLinkListener();
150
- deepLinkRegistered = true;
151
- console.log("[Amply] registerDeepLinkListener completed");
152
- }
153
- }
154
- function trackDeepLinkSubscription(subscription) {
155
- let removed = false;
156
- const unsubscribe = () => {
157
- var _a;
158
- if (removed) {
159
- return;
160
- }
161
- removed = true;
162
- (_a = subscription == null ? void 0 : subscription.remove) == null ? void 0 : _a.call(subscription);
163
- deepLinkSubscriptions.delete(unsubscribe);
164
- };
165
- deepLinkSubscriptions.add(unsubscribe);
166
- return unsubscribe;
167
- }
168
- async function initialize(config) {
169
- await nativeModule_default().initialize(config);
170
- }
171
- function isInitialized() {
172
- return nativeModule_default().isInitialized();
173
- }
174
- async function track(payload) {
175
- await nativeModule_default().track(payload);
176
- }
177
- async function getRecentEvents(limit) {
178
- return nativeModule_default().getRecentEvents(limit);
179
- }
180
- async function getDataSetSnapshot(type) {
181
- return nativeModule_default().getDataSetSnapshot(type);
182
- }
183
- async function addDeepLinkListener(listener) {
184
- await ensureDeepLinkRegistration();
185
- const subscription = nativeModule_default().onDeepLink(listener);
186
- return trackDeepLinkSubscription(subscription);
187
- }
188
- async function addSystemEventListener2(listener) {
189
- return addSystemEventListener(listener);
190
- }
191
- function removeAllListeners() {
192
- deepLinkSubscriptions.forEach((unsubscribe) => {
193
- try {
194
- unsubscribe();
195
- } catch (error) {
196
- console.warn("[Amply] Failed to remove deep link listener", error);
197
- }
198
- });
199
- deepLinkSubscriptions.clear();
200
- }
201
- function addSystemEventsListener(listener) {
202
- return addSystemEventListener2(listener);
203
- }
204
- var systemEvents = {
205
- addListener: addSystemEventsListener
206
- };
207
- var src_default = {
208
- initialize,
209
- isInitialized,
210
- track,
211
- getRecentEvents,
212
- getDataSetSnapshot,
213
- addDeepLinkListener,
214
- addSystemEventListener: addSystemEventListener2,
215
- addSystemEventsListener,
216
- removeAllListeners,
217
- systemEvents
218
- };
219
- export {
220
- addDeepLinkListener,
221
- addSystemEventListener2 as addSystemEventListener,
222
- addSystemEventsListener,
223
- src_default as default,
224
- formatSystemEventLabel,
225
- getDataSetSnapshot,
226
- getRecentEvents,
227
- initialize,
228
- isInitialized,
229
- removeAllListeners,
230
- systemEvents,
231
- track,
232
- useAmplySystemEvents
233
- };
234
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/nativeModule.ts","../src/systemEvents.ts","../src/hooks/useAmplySystemEvents.ts","../src/systemEventUtils.ts","../src/index.ts"],"sourcesContent":["import {NativeModules, TurboModuleRegistry} from 'react-native';\nimport type {Spec} from './nativeSpecs/NativeAmplyModule';\n\nconst MODULE_NAME = 'Amply';\n\nlet cachedModule: Spec | null = null;\nlet attemptedTurboLookup = false;\nlet resolvedTurboModule: Spec | null = null;\n\nfunction loadModule(): Spec | null {\n const globalWithTurbo = globalThis as typeof globalThis & {\n __turboModuleProxy?: unknown;\n };\n\n if (globalWithTurbo.__turboModuleProxy != null) {\n if (!attemptedTurboLookup) {\n attemptedTurboLookup = true;\n try {\n resolvedTurboModule = TurboModuleRegistry.getEnforcing<Spec>(MODULE_NAME);\n } catch (error) {\n resolvedTurboModule = null;\n if (__DEV__) {\n console.warn(\n \"[Amply] TurboModule lookup failed; falling back to legacy NativeModules. \" +\n (error instanceof Error ? error.message : String(error))\n );\n }\n }\n }\n if (resolvedTurboModule) {\n return resolvedTurboModule;\n }\n }\n\n const legacyModule = NativeModules[MODULE_NAME] as Spec | undefined;\n if (legacyModule) {\n return legacyModule;\n }\n\n return null;\n}\n\nexport function getNativeModule(): Spec {\n if (cachedModule) {\n return cachedModule;\n }\n\n const module = loadModule();\n if (!module) {\n throw new Error(\n `Amply native module '${MODULE_NAME}' not found. ` +\n 'Ensure the module is properly linked and new architecture is enabled.'\n );\n }\n\n cachedModule = module;\n return cachedModule;\n}\n\n// Testing hook to override the resolved native module.\nexport function __setNativeModule(mock: Spec | null): void {\n cachedModule = mock;\n}\n\nexport default getNativeModule;\n","import getNativeModule from './nativeModule';\nimport type {SystemEventPayload} from './nativeSpecs/NativeAmplyModule';\n\nexport async function addSystemEventListener(\n listener: (event: SystemEventPayload) => void,\n): Promise<() => void> {\n const subscription = getNativeModule().onSystemEvent(listener);\n return () => subscription?.remove?.();\n}\n\nexport const systemEvents = {\n addListener: addSystemEventListener,\n};\n","import {useCallback, useEffect, useRef, useState} from 'react';\nimport type {EventRecord} from '../nativeSpecs/NativeAmplyModule';\nimport {addSystemEventListener} from '../systemEvents';\n\nexport type UseAmplySystemEventsOptions = {\n maxEntries?: number;\n dedupe?: boolean;\n onEvent?: (event: EventRecord) => void;\n};\n\nexport type UseAmplySystemEventsResult = {\n events: EventRecord[];\n reset: () => void;\n};\n\nexport function useAmplySystemEvents(\n options: UseAmplySystemEventsOptions = {},\n): UseAmplySystemEventsResult {\n const {maxEntries = 50, dedupe = true, onEvent} = options;\n const [events, setEvents] = useState<EventRecord[]>([]);\n const seenKeysRef = useRef<Set<string>>(new Set());\n const handlerRef = useRef<typeof onEvent>(onEvent);\n\n useEffect(() => {\n handlerRef.current = onEvent;\n }, [onEvent]);\n\n useEffect(() => {\n let unsubscribe: (() => void) | undefined;\n let isMounted = true;\n\n addSystemEventListener(event => {\n if (!isMounted) {\n return;\n }\n if (dedupe) {\n const key = `${event.name}-${event.timestamp}`;\n if (seenKeysRef.current.has(key)) {\n return;\n }\n seenKeysRef.current.add(key);\n }\n handlerRef.current?.(event);\n setEvents(prev => {\n const next = [...prev, event];\n if (next.length > maxEntries) {\n next.splice(0, next.length - maxEntries);\n }\n return next;\n });\n })\n .then(unsub => {\n if (!isMounted) {\n unsub();\n } else {\n unsubscribe = unsub;\n }\n })\n .catch(error => {\n console.warn('[Amply] system event listener error', error);\n });\n\n return () => {\n isMounted = false;\n unsubscribe?.();\n };\n }, [dedupe, maxEntries]);\n\n const reset = useCallback(() => {\n seenKeysRef.current.clear();\n setEvents([]);\n }, []);\n\n return {events, reset};\n}\n","import type {EventRecord} from './nativeSpecs/NativeAmplyModule';\n\nconst DEFAULT_LABELS: Record<string, string> = {\n SdkInitialized: 'SDK initialized',\n ConfigFetchStarted: 'Config fetch started',\n ConfigFetchFinished: 'Config fetch finished',\n SessionStarted: 'Session started',\n SessionFinished: 'Session finished',\n CampaignShown: 'Campaign shown',\n EventTriggered: 'Event triggered',\n CampaignStarted: 'Campaign processing started',\n CampaignFinished: 'Campaign finished',\n};\n\nexport function formatSystemEventLabel(event: EventRecord): string {\n if (event.name === 'CampaignShown') {\n const campaignId = event.properties.campaignId as string | undefined;\n const source = event.properties.source as string | undefined;\n return `Campaign shown${campaignId ? ` (${campaignId})` : ''}${\n source ? ` via ${source}` : ''\n }`;\n }\n if (event.name === 'EventTriggered') {\n const source = event.properties.sourceEvent as string | undefined;\n return source ? `Event triggered (${source})` : DEFAULT_LABELS[event.name] ?? event.name;\n }\n if (event.name === 'ConfigFetchFinished') {\n const success = event.properties.success as boolean | undefined;\n const campaignCount = event.properties.campaignCount as number | undefined;\n const countLabel =\n typeof campaignCount === 'number' ? ` (${campaignCount} campaigns)` : '';\n return success === false ? 'Config fetch failed' : `Config fetch finished${countLabel}`;\n }\n return DEFAULT_LABELS[event.name] ?? `System event ${event.name}`;\n}\n","import getNativeModule from './nativeModule';\nimport {addSystemEventListener as addSystemEventListenerInternal} from './systemEvents';\nexport {useAmplySystemEvents} from './hooks/useAmplySystemEvents';\nexport {formatSystemEventLabel} from './systemEventUtils';\nimport type {\n AmplyInitializationConfig,\n DataSetSnapshot,\n DataSetType,\n DeepLinkEvent,\n EventRecord,\n TrackEventPayload,\n} from './nativeSpecs/NativeAmplyModule';\n\nlet deepLinkRegistered = false;\nconst deepLinkSubscriptions = new Set<() => void>();\n\nasync function ensureDeepLinkRegistration(): Promise<void> {\n if (!deepLinkRegistered) {\n console.log('[Amply] Calling registerDeepLinkListener on native module');\n getNativeModule().registerDeepLinkListener();\n deepLinkRegistered = true;\n console.log('[Amply] registerDeepLinkListener completed');\n }\n}\n\nfunction trackDeepLinkSubscription(subscription?: {remove?: () => void}): () => void {\n let removed = false;\n const unsubscribe = () => {\n if (removed) {\n return;\n }\n removed = true;\n subscription?.remove?.();\n deepLinkSubscriptions.delete(unsubscribe);\n };\n deepLinkSubscriptions.add(unsubscribe);\n return unsubscribe;\n}\n\nexport async function initialize(config: AmplyInitializationConfig): Promise<void> {\n await getNativeModule().initialize(config);\n}\n\nexport function isInitialized(): boolean {\n return getNativeModule().isInitialized();\n}\n\nexport async function track(payload: TrackEventPayload): Promise<void> {\n await getNativeModule().track(payload);\n}\n\nexport async function getRecentEvents(limit: number): Promise<EventRecord[]> {\n return getNativeModule().getRecentEvents(limit);\n}\n\nexport async function getDataSetSnapshot(type: DataSetType): Promise<DataSetSnapshot> {\n return getNativeModule().getDataSetSnapshot(type);\n}\n\nexport async function addDeepLinkListener(\n listener: (event: DeepLinkEvent) => void\n): Promise<() => void> {\n await ensureDeepLinkRegistration();\n const subscription = getNativeModule().onDeepLink(listener);\n return trackDeepLinkSubscription(subscription);\n}\n\nexport async function addSystemEventListener(\n listener: (event: EventRecord) => void\n): Promise<() => void> {\n return addSystemEventListenerInternal(listener);\n}\n\nexport function removeAllListeners(): void {\n deepLinkSubscriptions.forEach(unsubscribe => {\n try {\n unsubscribe();\n } catch (error) {\n console.warn('[Amply] Failed to remove deep link listener', error);\n }\n });\n deepLinkSubscriptions.clear();\n}\n\nexport type {\n AmplyInitializationConfig,\n DataSetSnapshot,\n DataSetType,\n DeepLinkEvent,\n EventRecord,\n TrackEventPayload,\n};\n\nexport function addSystemEventsListener(\n listener: (event: EventRecord) => void,\n): Promise<() => void> {\n return addSystemEventListener(listener);\n}\n\nexport const systemEvents = {\n addListener: addSystemEventsListener,\n};\n\nexport default {\n initialize,\n isInitialized,\n track,\n getRecentEvents,\n getDataSetSnapshot,\n addDeepLinkListener,\n addSystemEventListener,\n addSystemEventsListener,\n removeAllListeners,\n systemEvents,\n};\n"],"mappings":"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","names":["addSystemEventListener"]}
@@ -1,6 +0,0 @@
1
- import type { ConfigPlugin } from '@expo/config-plugins';
2
- declare const plugin: ConfigPlugin<{
3
- sdkVersion?: string;
4
- }>;
5
- export default plugin;
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAGvD,QAAA,MAAM,MAAM,EAAE,YAAY,CAAC;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CACxB,CAAC;AAE3B,eAAe,MAAM,CAAC"}