@solomon-tech/events-eitri 0.0.0-stage → 0.1.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 (98) hide show
  1. package/README.md +67 -2
  2. package/dist/attribution/deep-link.d.ts +24 -0
  3. package/dist/attribution/deep-link.d.ts.map +1 -0
  4. package/dist/attribution/deep-link.js +139 -0
  5. package/dist/attribution/deep-link.js.map +1 -0
  6. package/dist/attribution/touchpoint.d.ts +14 -0
  7. package/dist/attribution/touchpoint.d.ts.map +1 -0
  8. package/dist/attribution/touchpoint.js +28 -0
  9. package/dist/attribution/touchpoint.js.map +1 -0
  10. package/dist/attribution/utm.d.ts +19 -0
  11. package/dist/attribution/utm.d.ts.map +1 -0
  12. package/dist/attribution/utm.js +47 -0
  13. package/dist/attribution/utm.js.map +1 -0
  14. package/dist/core/client.d.ts +34 -0
  15. package/dist/core/client.d.ts.map +1 -0
  16. package/dist/core/client.js +332 -0
  17. package/dist/core/client.js.map +1 -0
  18. package/dist/core/events.d.ts +54 -0
  19. package/dist/core/events.d.ts.map +1 -0
  20. package/dist/core/events.js +2 -0
  21. package/dist/core/events.js.map +1 -0
  22. package/dist/core/types.d.ts +29 -0
  23. package/dist/core/types.d.ts.map +1 -0
  24. package/dist/core/types.js +2 -0
  25. package/dist/core/types.js.map +1 -0
  26. package/dist/device/info.d.ts +17 -0
  27. package/dist/device/info.d.ts.map +1 -0
  28. package/dist/device/info.js +69 -0
  29. package/dist/device/info.js.map +1 -0
  30. package/dist/device/install-referrer.d.ts +3 -0
  31. package/dist/device/install-referrer.d.ts.map +1 -0
  32. package/dist/device/install-referrer.js +4 -0
  33. package/dist/device/install-referrer.js.map +1 -0
  34. package/dist/events/builder.d.ts +17 -0
  35. package/dist/events/builder.d.ts.map +1 -0
  36. package/dist/events/builder.js +17 -0
  37. package/dist/events/builder.js.map +1 -0
  38. package/dist/events/touchpoint-builder.d.ts +18 -0
  39. package/dist/events/touchpoint-builder.d.ts.map +1 -0
  40. package/dist/events/touchpoint-builder.js +27 -0
  41. package/dist/events/touchpoint-builder.js.map +1 -0
  42. package/dist/host.d.ts +22 -0
  43. package/dist/host.d.ts.map +1 -0
  44. package/dist/host.js +33 -0
  45. package/dist/host.js.map +1 -0
  46. package/dist/identity/durable-id.d.ts +8 -0
  47. package/dist/identity/durable-id.d.ts.map +1 -0
  48. package/dist/identity/durable-id.js +25 -0
  49. package/dist/identity/durable-id.js.map +1 -0
  50. package/dist/identity/legacy.d.ts +4 -0
  51. package/dist/identity/legacy.d.ts.map +1 -0
  52. package/dist/identity/legacy.js +10 -0
  53. package/dist/identity/legacy.js.map +1 -0
  54. package/dist/identity/session.d.ts +3 -0
  55. package/dist/identity/session.d.ts.map +1 -0
  56. package/dist/identity/session.js +15 -0
  57. package/dist/identity/session.js.map +1 -0
  58. package/dist/identity/stable-id.d.ts +11 -0
  59. package/dist/identity/stable-id.d.ts.map +1 -0
  60. package/dist/identity/stable-id.js +23 -0
  61. package/dist/identity/stable-id.js.map +1 -0
  62. package/dist/identity/user.d.ts +3 -0
  63. package/dist/identity/user.d.ts.map +1 -0
  64. package/dist/identity/user.js +11 -0
  65. package/dist/identity/user.js.map +1 -0
  66. package/dist/identity/uuid.d.ts +3 -0
  67. package/dist/identity/uuid.d.ts.map +1 -0
  68. package/dist/identity/uuid.js +18 -0
  69. package/dist/identity/uuid.js.map +1 -0
  70. package/dist/index.d.ts +11 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +7 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/network/endpoints.d.ts +3 -0
  75. package/dist/network/endpoints.d.ts.map +1 -0
  76. package/dist/network/endpoints.js +3 -0
  77. package/dist/network/endpoints.js.map +1 -0
  78. package/dist/network/publisher.d.ts +3 -0
  79. package/dist/network/publisher.d.ts.map +1 -0
  80. package/dist/network/publisher.js +51 -0
  81. package/dist/network/publisher.js.map +1 -0
  82. package/dist/storage/adapter.d.ts +6 -0
  83. package/dist/storage/adapter.d.ts.map +1 -0
  84. package/dist/storage/adapter.js +2 -0
  85. package/dist/storage/adapter.js.map +1 -0
  86. package/dist/storage/eitri-storage.d.ts +10 -0
  87. package/dist/storage/eitri-storage.d.ts.map +1 -0
  88. package/dist/storage/eitri-storage.js +17 -0
  89. package/dist/storage/eitri-storage.js.map +1 -0
  90. package/dist/storage/timed-value.d.ts +5 -0
  91. package/dist/storage/timed-value.d.ts.map +1 -0
  92. package/dist/storage/timed-value.js +39 -0
  93. package/dist/storage/timed-value.js.map +1 -0
  94. package/dist/wiring.d.ts +3 -0
  95. package/dist/wiring.d.ts.map +1 -0
  96. package/dist/wiring.js +21 -0
  97. package/dist/wiring.js.map +1 -0
  98. package/package.json +42 -4
@@ -0,0 +1,27 @@
1
+ import { getOrCreateLegacyId } from '../identity/legacy';
2
+ import { getAllUtms } from '../attribution/utm';
3
+ import { updateUtmsTrack } from '../attribution/touchpoint';
4
+ export async function buildTouchpointEvent(params) {
5
+ var _a, _b;
6
+ const [uniqueId, utms] = await Promise.all([
7
+ getOrCreateLegacyId(params.storage),
8
+ getAllUtms(params.storage),
9
+ ]);
10
+ const cartToken = ((_a = params.customAliases) === null || _a === void 0 ? void 0 : _a.user_id) || '';
11
+ const eventData = {
12
+ utm_source: utms.utm_source,
13
+ utm_medium: utms.utm_medium,
14
+ utm_campaign: utms.utm_campaign,
15
+ utm_term: uniqueId, // CRITICAL: utm_term in touchpoint = uniqueId, NOT the URL param
16
+ utm_content: utms.utm_content,
17
+ sol_source: utms.sol_source,
18
+ sol_medium: utms.sol_medium,
19
+ sol_campaign: utms.sol_campaign,
20
+ sol_content: utms.sol_content,
21
+ };
22
+ const utmsTrack = await updateUtmsTrack(params.storage, eventData);
23
+ return Object.assign(Object.assign({ id: uniqueId, referrer: '', path: params.currentScreen, utm_source: utms.utm_source, utm_medium: utms.utm_medium, utm_campaign: utms.utm_campaign, utm_term: uniqueId, utm_content: utms.utm_content, sol_source: utms.sol_source, sol_medium: utms.sol_medium, sol_campaign: utms.sol_campaign, sol_content: utms.sol_content, fbp: '', fbc: utms.fbclid ? `fb.1.${Date.now()}.${utms.fbclid}` : '', ga_id: '', fbclid: utms.fbclid, click_id: utms.click_id, locale: params.deviceInfo.locale, timezone: params.deviceInfo.timezone, osVersion: params.deviceInfo.osVersion, screenWidth: params.deviceInfo.screenWidth, screenHeight: params.deviceInfo.screenHeight, density: params.deviceInfo.density, cpuCores: params.deviceInfo.cpuCores, queryParams: params.queryString, debug: '', old_id: utms.utm_term, shopify_id: params.companyId, current_domain: params.appIdentifier || '', cart_token: cartToken, email: (_b = params.customAliases) === null || _b === void 0 ? void 0 : _b.email, utmsTrack: utmsTrack,
24
+ // Mobile-specific extra fields
25
+ device_id: params.deviceInfo.device_id, device_model: params.deviceInfo.device_model, app_version: params.deviceInfo.app_version, platform: params.deviceInfo.platform, connection_type: params.deviceInfo.connection_type, id_source: params.idSource || '' }, (params.origin ? { origin: params.origin } : {})), (params.installReferrer ? { install_referrer: params.installReferrer } : {}));
26
+ }
27
+ //# sourceMappingURL=touchpoint-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"touchpoint-builder.js","sourceRoot":"","sources":["../../src/events/touchpoint-builder.ts"],"names":[],"mappings":"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"}
package/dist/host.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import { SolomonSDK } from './core/client';
2
+ /**
3
+ * Superfície que o host (Eitri) chama. A Eitri resolve o deeplink e o
4
+ * lifecycle de instalação e invoca estes métodos passando os dados crus.
5
+ */
6
+ export interface SolomonEitriHost {
7
+ setSessionAttributes(attributes: Record<string, any> | null | undefined): Promise<void>;
8
+ setInstallState(state: {
9
+ isInstall?: boolean;
10
+ isReinstall?: boolean;
11
+ } | null | undefined): Promise<void>;
12
+ }
13
+ /**
14
+ * Expõe a instância do SDK num ponto global conhecido para que o host (Eitri)
15
+ * consiga chamar setSessionAttributes / setInstallState sem a referência ser
16
+ * plumbada pelo eitri-app. Chame no boot do eitri-app, logo após instanciar
17
+ * o SolomonSDK. Retorna o bridge, que também pode ser passado à mão.
18
+ */
19
+ export declare function registerSolomonHost(sdk: SolomonSDK): SolomonEitriHost;
20
+ /** Recupera o bridge registrado (se houver). */
21
+ export declare function getSolomonHost(): SolomonEitriHost | undefined;
22
+ //# sourceMappingURL=host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,eAAe,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1G;AAID;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,gBAAgB,CAYrE;AAED,gDAAgD;AAChD,wBAAgB,cAAc,IAAI,gBAAgB,GAAG,SAAS,CAO7D"}
package/dist/host.js ADDED
@@ -0,0 +1,33 @@
1
+ const GLOBAL_KEY = '__SOLOMON_EITRI__';
2
+ /**
3
+ * Expõe a instância do SDK num ponto global conhecido para que o host (Eitri)
4
+ * consiga chamar setSessionAttributes / setInstallState sem a referência ser
5
+ * plumbada pelo eitri-app. Chame no boot do eitri-app, logo após instanciar
6
+ * o SolomonSDK. Retorna o bridge, que também pode ser passado à mão.
7
+ */
8
+ export function registerSolomonHost(sdk) {
9
+ const bridge = {
10
+ setSessionAttributes: (attributes) => sdk.setSessionAttributes(attributes),
11
+ setInstallState: (state) => sdk.setInstallState(state),
12
+ };
13
+ try {
14
+ const g = globalThis;
15
+ if (g)
16
+ g[GLOBAL_KEY] = bridge;
17
+ }
18
+ catch (_a) {
19
+ // ambiente sem global gravável — segue só com o retorno
20
+ }
21
+ return bridge;
22
+ }
23
+ /** Recupera o bridge registrado (se houver). */
24
+ export function getSolomonHost() {
25
+ try {
26
+ const g = globalThis;
27
+ return g ? g[GLOBAL_KEY] : undefined;
28
+ }
29
+ catch (_a) {
30
+ return undefined;
31
+ }
32
+ }
33
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAe;IACjD,MAAM,MAAM,GAAqB;QAC/B,oBAAoB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC;QAC1E,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC;KACvD,CAAC;IACF,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,UAAiB,CAAC;QAC5B,IAAI,CAAC;YAAE,CAAC,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;IAChC,CAAC;IAAC,WAAM,CAAC;QACP,wDAAwD;IAC1D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,UAAiB,CAAC;QAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvC,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ export type DurableSource = 'shared_storage';
2
+ export interface DurableIdRead {
3
+ id: string;
4
+ source: DurableSource;
5
+ }
6
+ export declare function readDurableId(): Promise<DurableIdRead | null>;
7
+ export declare function writeDurableId(id: string): Promise<DurableSource | null>;
8
+ //# sourceMappingURL=durable-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durable-id.d.ts","sourceRoot":"","sources":["../../src/identity/durable-id.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,aAAa,CAAC;CACvB;AAKD,wBAAsB,aAAa,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAUnE;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAO9E"}
@@ -0,0 +1,25 @@
1
+ import Eitri from 'eitri-bifrost';
2
+ const UNIQUE_ID_KEY = '@solomon/unique_id';
3
+ const SHARED = { shared: true };
4
+ export async function readDurableId() {
5
+ try {
6
+ const id = await Eitri.storage.getItem(UNIQUE_ID_KEY, SHARED);
7
+ if (id && id.length) {
8
+ return { id, source: 'shared_storage' };
9
+ }
10
+ }
11
+ catch (_a) {
12
+ // shared storage indisponível (sem AppGroup) — sem durável
13
+ }
14
+ return null;
15
+ }
16
+ export async function writeDurableId(id) {
17
+ try {
18
+ await Eitri.storage.setItem(UNIQUE_ID_KEY, id, SHARED);
19
+ return 'shared_storage';
20
+ }
21
+ catch (_a) {
22
+ }
23
+ return null;
24
+ }
25
+ //# sourceMappingURL=durable-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durable-id.js","sourceRoot":"","sources":["../../src/identity/durable-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,eAAe,CAAC;AASlC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAC3C,MAAM,MAAM,GAAqB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC9D,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IAAC,WAAM,CAAC;QACP,2DAA2D;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAU;IAC7C,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAAC,WAAM,CAAC;IACT,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { StorageAdapter } from '../storage/adapter';
2
+ export declare function getOrCreateLegacyId(storage: StorageAdapter): Promise<string>;
3
+ export declare function getLegacyId(storage: StorageAdapter): Promise<string | null>;
4
+ //# sourceMappingURL=legacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../src/identity/legacy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKpD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAGlF;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAEjF"}
@@ -0,0 +1,10 @@
1
+ import { getOrCreateStableId } from './stable-id';
2
+ const UNIQUE_ID_KEY = '@solomon/unique_id';
3
+ export async function getOrCreateLegacyId(storage) {
4
+ const stable = await getOrCreateStableId(storage);
5
+ return stable.id;
6
+ }
7
+ export async function getLegacyId(storage) {
8
+ return storage.getItem(UNIQUE_ID_KEY);
9
+ }
10
+ //# sourceMappingURL=legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../src/identity/legacy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAuB;IAC/D,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAuB;IACvD,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { StorageAdapter } from '../storage/adapter';
2
+ export declare function getSessionId(storage: StorageAdapter): Promise<string>;
3
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/identity/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAOpD,wBAAsB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAU3E"}
@@ -0,0 +1,15 @@
1
+ import { setTimedValue, getTimedValue } from '../storage/timed-value';
2
+ import { generateUUIDv4 } from './uuid';
3
+ const SESSION_KEY = '@solomon/session_id';
4
+ const SESSION_TTL_MS = 30 * 60 * 1000; // 30 minutes
5
+ export async function getSessionId(storage) {
6
+ const existing = await getTimedValue(storage, SESSION_KEY);
7
+ if (existing) {
8
+ await setTimedValue(storage, SESSION_KEY, existing, SESSION_TTL_MS);
9
+ return existing;
10
+ }
11
+ const newSessionId = generateUUIDv4();
12
+ await setTimedValue(storage, SESSION_KEY, newSessionId, SESSION_TTL_MS);
13
+ return newSessionId;
14
+ }
15
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/identity/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAC1C,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAEpD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAuB;IACxD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC3D,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,cAAc,EAAE,CAAC;IACtC,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IACxE,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { StorageAdapter } from '../storage/adapter';
2
+ import { DurableSource } from './durable-id';
3
+ export type IdSource = DurableSource | 'async_storage';
4
+ export type IdLifecycle = 'existing' | 'install' | 'reinstall';
5
+ export interface StableId {
6
+ id: string;
7
+ id_source: IdSource;
8
+ lifecycle: IdLifecycle;
9
+ }
10
+ export declare function getOrCreateStableId(storage: StorageAdapter): Promise<StableId>;
11
+ //# sourceMappingURL=stable-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stable-id.d.ts","sourceRoot":"","sources":["../../src/identity/stable-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAiC,aAAa,EAAE,MAAM,cAAc,CAAC;AAI5E,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAE/D,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,QAAQ,CAAC;IACpB,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAoBpF"}
@@ -0,0 +1,23 @@
1
+ import { generateLegacyId } from './uuid';
2
+ import { readDurableId, writeDurableId } from './durable-id';
3
+ const UNIQUE_ID_KEY = '@solomon/unique_id';
4
+ export async function getOrCreateStableId(storage) {
5
+ const local = await storage.getItem(UNIQUE_ID_KEY);
6
+ if (local) {
7
+ return { id: local, id_source: 'async_storage', lifecycle: 'existing' };
8
+ }
9
+ const durable = await readDurableId();
10
+ if (durable && durable.id) {
11
+ await storage.setItem(UNIQUE_ID_KEY, durable.id);
12
+ return { id: durable.id, id_source: durable.source, lifecycle: 'reinstall' };
13
+ }
14
+ const newId = generateLegacyId();
15
+ await storage.setItem(UNIQUE_ID_KEY, newId);
16
+ const durableSource = await writeDurableId(newId);
17
+ return {
18
+ id: newId,
19
+ id_source: durableSource !== null && durableSource !== void 0 ? durableSource : 'async_storage',
20
+ lifecycle: 'install',
21
+ };
22
+ }
23
+ //# sourceMappingURL=stable-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stable-id.js","sourceRoot":"","sources":["../../src/identity/stable-id.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAE5E,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAW3C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAuB;IAC/D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACnD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;IACtC,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QAC1B,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;IAC/E,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,SAAS,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,eAAe;QAC3C,SAAS,EAAE,SAAS;KACrB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { StorageAdapter } from '../storage/adapter';
2
+ export declare function getUserId(storage: StorageAdapter): Promise<string>;
3
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/identity/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKpD,wBAAsB,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAOxE"}
@@ -0,0 +1,11 @@
1
+ import { generateUUIDv4 } from './uuid';
2
+ const USER_KEY = '@solomon/user_id';
3
+ export async function getUserId(storage) {
4
+ const existing = await storage.getItem(USER_KEY);
5
+ if (existing)
6
+ return existing;
7
+ const newUserId = generateUUIDv4();
8
+ await storage.setItem(USER_KEY, newUserId);
9
+ return newUserId;
10
+ }
11
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/identity/user.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAuB;IACrD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;IACnC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3C,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function generateUUIDv4(): string;
2
+ export declare function generateLegacyId(): string;
3
+ //# sourceMappingURL=uuid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/identity/uuid.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,IAAI,MAAM,CAcvC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
@@ -0,0 +1,18 @@
1
+ export function generateUUIDv4() {
2
+ if (typeof crypto !== 'undefined' && typeof crypto.getRandomValues === 'function') {
3
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
4
+ const r = (crypto.getRandomValues(new Uint8Array(1))[0] & 15) >> 0;
5
+ const v = c === 'x' ? r : (r & 0x3) | 0x8;
6
+ return v.toString(16);
7
+ });
8
+ }
9
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
10
+ const r = (Math.random() * 16) | 0;
11
+ const v = c === 'x' ? r : (r & 0x3) | 0x8;
12
+ return v.toString(16);
13
+ });
14
+ }
15
+ export function generateLegacyId() {
16
+ return Math.random().toString(36).substr(2, 9) + '_' + Date.now();
17
+ }
18
+ //# sourceMappingURL=uuid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../src/identity/uuid.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc;IAC5B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAClF,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACnE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACnE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACpE,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { SolomonSDK } from './core/client';
2
+ export { SolomonSDK as default } from './core/client';
3
+ export { EitriStorageAdapter } from './storage/eitri-storage';
4
+ export { wireSolomonDeepLinks } from './wiring';
5
+ export { registerSolomonHost, getSolomonHost } from './host';
6
+ export type { SolomonEitriHost } from './host';
7
+ export type { SDKConfig, CustomAliases, Product } from './core/types';
8
+ export type { SolomonEvent, SolomonPayload, ViewContentPayload, AddToCartPayload, InitiateCheckoutPayload, AddShippingInfoPayload, AddCustomerInfoPayload, AddPaymentInfoPayload, CheckoutCompletedPayload, } from './core/events';
9
+ export type { StorageAdapter } from './storage/adapter';
10
+ export type { DeepLinkParams } from './attribution/deep-link';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE/C,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACtE,YAAY,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ // Public API
2
+ export { SolomonSDK } from './core/client';
3
+ export { SolomonSDK as default } from './core/client';
4
+ export { EitriStorageAdapter } from './storage/eitri-storage';
5
+ export { wireSolomonDeepLinks } from './wiring';
6
+ export { registerSolomonHost, getSolomonHost } from './host';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const SOLOMON_EVENT_URL = "https://webanalytics.solomon.com.br/event?mode=mobile";
2
+ export declare const TOUCHPOINT_EVENT_URL = "https://pixel.solomon.com.br/event";
3
+ //# sourceMappingURL=endpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/network/endpoints.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,0DAA0D,CAAC;AACzF,eAAO,MAAM,oBAAoB,uCAAuC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export const SOLOMON_EVENT_URL = 'https://webanalytics.solomon.com.br/event?mode=mobile';
2
+ export const TOUCHPOINT_EVENT_URL = 'https://pixel.solomon.com.br/event';
3
+ //# sourceMappingURL=endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/network/endpoints.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,uDAAuD,CAAC;AACzF,MAAM,CAAC,MAAM,oBAAoB,GAAG,oCAAoC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function publishSolomonEvent(event: any, debug?: boolean): Promise<void>;
2
+ export declare function publishTouchpointEvent(event: any, debug?: boolean): Promise<void>;
3
+ //# sourceMappingURL=publisher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/network/publisher.ts"],"names":[],"mappings":"AAqDA,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3F;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9F"}
@@ -0,0 +1,51 @@
1
+ import Eitri from 'eitri-bifrost';
2
+ import { SOLOMON_EVENT_URL, TOUCHPOINT_EVENT_URL } from './endpoints';
3
+ const MAX_RETRIES = 3;
4
+ const BASE_DELAY_MS = 1000;
5
+ function isOkStatus(resp) {
6
+ var _a;
7
+ const status = (_a = resp === null || resp === void 0 ? void 0 : resp.status) !== null && _a !== void 0 ? _a : resp === null || resp === void 0 ? void 0 : resp.statusCode;
8
+ // Bifrost http pode não expor status; se resolveu sem throw, assume sucesso.
9
+ if (typeof status !== 'number')
10
+ return true;
11
+ return status >= 200 && status < 300;
12
+ }
13
+ async function postWithRetry(url, body, debug, retries = MAX_RETRIES) {
14
+ var _a;
15
+ for (let attempt = 0; attempt < retries; attempt++) {
16
+ try {
17
+ // Eitri.http é nativo e só aceita HTTPS (nossos endpoints são https).
18
+ const resp = await Eitri.http.post(url, body, {
19
+ headers: { 'content-type': 'application/json' },
20
+ });
21
+ if (isOkStatus(resp)) {
22
+ if (debug) {
23
+ console.debug('[Solomon] Evento enviado com sucesso');
24
+ }
25
+ return;
26
+ }
27
+ if (debug) {
28
+ console.error(`[Solomon] HTTP ${(_a = resp === null || resp === void 0 ? void 0 : resp.status) !== null && _a !== void 0 ? _a : resp === null || resp === void 0 ? void 0 : resp.statusCode}`);
29
+ }
30
+ }
31
+ catch (error) {
32
+ if (debug) {
33
+ console.error(`[Solomon] Network error (attempt ${attempt + 1}/${retries}):`, error);
34
+ }
35
+ }
36
+ // Wait before retrying (exponential backoff: 1s, 3s, 9s)
37
+ if (attempt < retries - 1) {
38
+ const delay = BASE_DELAY_MS * Math.pow(3, attempt);
39
+ await new Promise((resolve) => setTimeout(resolve, delay));
40
+ }
41
+ }
42
+ // All retries failed — log but don't throw (fire-and-forget)
43
+ console.error('[Solomon] Failed to send event after', retries, 'attempts');
44
+ }
45
+ export async function publishSolomonEvent(event, debug = false) {
46
+ return postWithRetry(SOLOMON_EVENT_URL, event, debug);
47
+ }
48
+ export async function publishTouchpointEvent(event, debug = false) {
49
+ return postWithRetry(TOUCHPOINT_EVENT_URL, event, debug);
50
+ }
51
+ //# sourceMappingURL=publisher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/network/publisher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,eAAe,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEtE,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,SAAS,UAAU,CAAC,IAAS;;IAC3B,MAAM,MAAM,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAC;IAChD,6EAA6E;IAC7E,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,GAAW,EACX,IAAS,EACT,KAAc,EACd,UAAkB,WAAW;;IAE7B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,sEAAsE;YACtE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;gBAC5C,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;aAChD,CAAC,CAAC;YAEH,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBACxD,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,kBAAkB,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,oCAAoC,OAAO,GAAG,CAAC,IAAI,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,IAAI,OAAO,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAU,EAAE,QAAiB,KAAK;IAC1E,OAAO,aAAa,CAAC,iBAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAAU,EAAE,QAAiB,KAAK;IAC7E,OAAO,aAAa,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface StorageAdapter {
2
+ getItem(key: string): Promise<string | null>;
3
+ setItem(key: string, value: string): Promise<void>;
4
+ removeItem(key: string): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/storage/adapter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/storage/adapter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { StorageOptions } from 'eitri-bifrost';
2
+ import { StorageAdapter } from './adapter';
3
+ export declare class EitriStorageAdapter implements StorageAdapter {
4
+ private options?;
5
+ constructor(options?: StorageOptions | undefined);
6
+ getItem(key: string): Promise<string | null>;
7
+ setItem(key: string, value: string): Promise<void>;
8
+ removeItem(key: string): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=eitri-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eitri-storage.d.ts","sourceRoot":"","sources":["../../src/storage/eitri-storage.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,qBAAa,mBAAoB,YAAW,cAAc;IAC5C,OAAO,CAAC,OAAO,CAAC;gBAAR,OAAO,CAAC,EAAE,cAAc,YAAA;IAEtC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG7C"}
@@ -0,0 +1,17 @@
1
+ import Eitri from 'eitri-bifrost';
2
+ export class EitriStorageAdapter {
3
+ constructor(options) {
4
+ this.options = options;
5
+ }
6
+ async getItem(key) {
7
+ const value = await Eitri.storage.getItem(key, this.options);
8
+ return value && value.length ? value : null;
9
+ }
10
+ async setItem(key, value) {
11
+ await Eitri.storage.setItem(key, value, this.options);
12
+ }
13
+ async removeItem(key) {
14
+ await Eitri.storage.removeItem(key, this.options);
15
+ }
16
+ }
17
+ //# sourceMappingURL=eitri-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eitri-storage.js","sourceRoot":"","sources":["../../src/storage/eitri-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,eAAe,CAAC;AAItD,MAAM,OAAO,mBAAmB;IAC9B,YAAoB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEhD,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7D,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,KAAa;QACtC,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import { StorageAdapter } from './adapter';
2
+ export declare function setTimedValue(storage: StorageAdapter, key: string, value: string, ttlMs: number): Promise<void>;
3
+ export declare function getTimedValue(storage: StorageAdapter, key: string): Promise<string | null>;
4
+ export declare function refreshTimedValue(storage: StorageAdapter, key: string, ttlMs: number): Promise<void>;
5
+ //# sourceMappingURL=timed-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timed-value.d.ts","sourceRoot":"","sources":["../../src/storage/timed-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAO3C,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -0,0 +1,39 @@
1
+ export async function setTimedValue(storage, key, value, ttlMs) {
2
+ const data = {
3
+ value,
4
+ expiresAt: Date.now() + ttlMs,
5
+ };
6
+ await storage.setItem(key, JSON.stringify(data));
7
+ }
8
+ export async function getTimedValue(storage, key) {
9
+ const raw = await storage.getItem(key);
10
+ if (!raw)
11
+ return null;
12
+ try {
13
+ const data = JSON.parse(raw);
14
+ if (Date.now() >= data.expiresAt) {
15
+ await storage.removeItem(key);
16
+ return null;
17
+ }
18
+ return data.value;
19
+ }
20
+ catch (_a) {
21
+ await storage.removeItem(key);
22
+ return null;
23
+ }
24
+ }
25
+ export async function refreshTimedValue(storage, key, ttlMs) {
26
+ const raw = await storage.getItem(key);
27
+ if (!raw)
28
+ return;
29
+ try {
30
+ const data = JSON.parse(raw);
31
+ data.expiresAt = Date.now() + ttlMs;
32
+ await storage.setItem(key, JSON.stringify(data));
33
+ }
34
+ catch (_a) {
35
+ // Corrupted data, remove it
36
+ await storage.removeItem(key);
37
+ }
38
+ }
39
+ //# sourceMappingURL=timed-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timed-value.js","sourceRoot":"","sources":["../../src/storage/timed-value.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAuB,EACvB,GAAW,EACX,KAAa,EACb,KAAa;IAEb,MAAM,IAAI,GAAe;QACvB,KAAK;QACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;KAC9B,CAAC;IACF,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAuB,EACvB,GAAW;IAEX,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,IAAI,CAAC;QACH,MAAM,IAAI,GAAe,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAAC,WAAM,CAAC;QACP,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAuB,EACvB,GAAW,EACX,KAAa;IAEb,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO;IAEjB,IAAI,CAAC;QACH,MAAM,IAAI,GAAe,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACpC,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAAC,WAAM,CAAC;QACP,4BAA4B;QAC5B,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { SolomonSDK } from './core/client';
2
+ export declare function wireSolomonDeepLinks(sdk: SolomonSDK): Promise<void>;
3
+ //# sourceMappingURL=wiring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBzE"}
package/dist/wiring.js ADDED
@@ -0,0 +1,21 @@
1
+ import Eitri from 'eitri-bifrost';
2
+ export async function wireSolomonDeepLinks(sdk) {
3
+ try {
4
+ const info = await Eitri.getInitializationInfos();
5
+ await sdk.applyInitParams(info);
6
+ }
7
+ catch (_a) {
8
+ // sem init infos — segue
9
+ }
10
+ try {
11
+ await Eitri.navigation.addOnResumeListener(() => {
12
+ Eitri.getInitializationInfos()
13
+ .then((info) => sdk.applyInitParams(info))
14
+ .catch(() => { });
15
+ });
16
+ }
17
+ catch (_b) {
18
+ // navigation indisponível — só cold start
19
+ }
20
+ }
21
+ //# sourceMappingURL=wiring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,eAAe,CAAC;AAGlC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAe;IACxD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,sBAAsB,EAAE,CAAC;QAClD,MAAM,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,WAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,EAAE;YAC9C,KAAK,CAAC,sBAAsB,EAAE;iBAC3B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;iBACzC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,WAAM,CAAC;QACP,0CAA0C;IAC5C,CAAC;AACH,CAAC"}