@digia-engage/core 1.1.1 → 2.0.0-rc.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 (88) hide show
  1. package/README.md +134 -51
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/com/digia/engage/rn/DigiaModule.kt +52 -8
  4. package/android/src/main/java/com/digia/engage/rn/DigiaSlotViewManager.kt +6 -2
  5. package/android/src/main/java/com/digia/engage/rn/DigiaViewManager.kt +1 -0
  6. package/ios/DigiaEngageModule.m +7 -1
  7. package/ios/DigiaHostViewManager.swift +20 -20
  8. package/ios/DigiaModule.swift +8 -4
  9. package/lib/commonjs/Digia.js +301 -3
  10. package/lib/commonjs/Digia.js.map +1 -1
  11. package/lib/commonjs/DigiaGuideController.js +59 -0
  12. package/lib/commonjs/DigiaGuideController.js.map +1 -0
  13. package/lib/commonjs/DigiaHealthReporter.js +45 -0
  14. package/lib/commonjs/DigiaHealthReporter.js.map +1 -0
  15. package/lib/commonjs/DigiaProvider.js +1079 -0
  16. package/lib/commonjs/DigiaProvider.js.map +1 -0
  17. package/lib/commonjs/DigiaSlotView.js +18 -3
  18. package/lib/commonjs/DigiaSlotView.js.map +1 -1
  19. package/lib/commonjs/NativeDigiaEngage.js +14 -8
  20. package/lib/commonjs/NativeDigiaEngage.js.map +1 -1
  21. package/lib/commonjs/actionHandler.js +316 -0
  22. package/lib/commonjs/actionHandler.js.map +1 -0
  23. package/lib/commonjs/defaultInAppBrowser.js +31 -0
  24. package/lib/commonjs/defaultInAppBrowser.js.map +1 -0
  25. package/lib/commonjs/digiaAnchorRegistry.js +32 -0
  26. package/lib/commonjs/digiaAnchorRegistry.js.map +1 -0
  27. package/lib/commonjs/index.js +7 -0
  28. package/lib/commonjs/index.js.map +1 -1
  29. package/lib/commonjs/templateTypes.js +2 -0
  30. package/lib/commonjs/templateTypes.js.map +1 -0
  31. package/lib/module/Digia.js +301 -3
  32. package/lib/module/Digia.js.map +1 -1
  33. package/lib/module/DigiaGuideController.js +53 -0
  34. package/lib/module/DigiaGuideController.js.map +1 -0
  35. package/lib/module/DigiaHealthReporter.js +38 -0
  36. package/lib/module/DigiaHealthReporter.js.map +1 -0
  37. package/lib/module/DigiaProvider.js +1072 -0
  38. package/lib/module/DigiaProvider.js.map +1 -0
  39. package/lib/module/DigiaSlotView.js +20 -5
  40. package/lib/module/DigiaSlotView.js.map +1 -1
  41. package/lib/module/NativeDigiaEngage.js +14 -8
  42. package/lib/module/NativeDigiaEngage.js.map +1 -1
  43. package/lib/module/actionHandler.js +311 -0
  44. package/lib/module/actionHandler.js.map +1 -0
  45. package/lib/module/defaultInAppBrowser.js +25 -0
  46. package/lib/module/defaultInAppBrowser.js.map +1 -0
  47. package/lib/module/digiaAnchorRegistry.js +26 -0
  48. package/lib/module/digiaAnchorRegistry.js.map +1 -0
  49. package/lib/module/index.js +1 -0
  50. package/lib/module/index.js.map +1 -1
  51. package/lib/module/templateTypes.js +2 -0
  52. package/lib/module/templateTypes.js.map +1 -0
  53. package/lib/typescript/Digia.d.ts +29 -2
  54. package/lib/typescript/Digia.d.ts.map +1 -1
  55. package/lib/typescript/DigiaGuideController.d.ts +30 -0
  56. package/lib/typescript/DigiaGuideController.d.ts.map +1 -0
  57. package/lib/typescript/DigiaHealthReporter.d.ts +24 -0
  58. package/lib/typescript/DigiaHealthReporter.d.ts.map +1 -0
  59. package/lib/typescript/DigiaProvider.d.ts +3 -0
  60. package/lib/typescript/DigiaProvider.d.ts.map +1 -0
  61. package/lib/typescript/DigiaSlotView.d.ts.map +1 -1
  62. package/lib/typescript/NativeDigiaEngage.d.ts +10 -6
  63. package/lib/typescript/NativeDigiaEngage.d.ts.map +1 -1
  64. package/lib/typescript/actionHandler.d.ts +20 -0
  65. package/lib/typescript/actionHandler.d.ts.map +1 -0
  66. package/lib/typescript/defaultInAppBrowser.d.ts +3 -0
  67. package/lib/typescript/defaultInAppBrowser.d.ts.map +1 -0
  68. package/lib/typescript/digiaAnchorRegistry.d.ts +15 -0
  69. package/lib/typescript/digiaAnchorRegistry.d.ts.map +1 -0
  70. package/lib/typescript/index.d.ts +1 -0
  71. package/lib/typescript/index.d.ts.map +1 -1
  72. package/lib/typescript/templateTypes.d.ts +140 -0
  73. package/lib/typescript/templateTypes.d.ts.map +1 -0
  74. package/lib/typescript/types.d.ts +140 -3
  75. package/lib/typescript/types.d.ts.map +1 -1
  76. package/package.json +11 -3
  77. package/src/Digia.ts +340 -3
  78. package/src/DigiaGuideController.ts +61 -0
  79. package/src/DigiaHealthReporter.ts +43 -0
  80. package/src/DigiaProvider.tsx +776 -0
  81. package/src/DigiaSlotView.tsx +26 -6
  82. package/src/NativeDigiaEngage.ts +28 -13
  83. package/src/actionHandler.ts +311 -0
  84. package/src/defaultInAppBrowser.ts +31 -0
  85. package/src/digiaAnchorRegistry.ts +27 -0
  86. package/src/index.ts +1 -0
  87. package/src/templateTypes.ts +121 -0
  88. package/src/types.ts +102 -5
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["templateTypes.ts"],"mappings":"","ignoreList":[]}
@@ -7,7 +7,7 @@
7
7
  * import { Digia } from '@digia/engage-react-native';
8
8
  *
9
9
  * // In your App entry point (e.g. App.tsx):
10
- * await Digia.initialize({ apiKey: 'YOUR_API_KEY' });
10
+ * await Digia.initialize({ projectId: 'YOUR_PROJECT_ID' });
11
11
  *
12
12
  * // Whenever your navigation screen changes:
13
13
  * Digia.setCurrentScreen('Home');
@@ -20,6 +20,13 @@ declare class DigiaClass implements DigiaDelegate {
20
20
  private _nativeBridgeWired;
21
21
  private readonly _activePayloads;
22
22
  private _engageSubscription;
23
+ private _projectId;
24
+ private _apiBaseUrl;
25
+ private _logLevel;
26
+ private _fontFamily;
27
+ private _currentScreen;
28
+ private readonly _campaignsByKey;
29
+ private readonly _registeredAnchorKeys;
23
30
  /**
24
31
  * Initialise the Digia Engage SDK.
25
32
  *
@@ -38,7 +45,7 @@ declare class DigiaClass implements DigiaDelegate {
38
45
  * ```ts
39
46
  * import { DigiaMoEngagePlugin } from '@digia/moengage-plugin';
40
47
  *
41
- * await Digia.initialize({ apiKey: 'YOUR_KEY' });
48
+ * await Digia.initialize({ projectId: 'YOUR_PROJECT_ID' });
42
49
  * Digia.register(new DigiaMoEngagePlugin({ moEngage: MoEngage }));
43
50
  * ```
44
51
  */
@@ -56,6 +63,14 @@ declare class DigiaClass implements DigiaDelegate {
56
63
  * All registered plugins will have forwardScreen() called automatically.
57
64
  */
58
65
  setCurrentScreen(name: string): void;
66
+ registerAnchor(anchorKey: string, _screenName?: string | null): void;
67
+ unregisterAnchor(anchorKey: string): void;
68
+ /**
69
+ * Global font family configured via {@link initialize}, or `undefined` when
70
+ * none was set. Used by the JS-rendered guide overlays (tooltip/spotlight)
71
+ * so their text matches native-rendered campaigns.
72
+ */
73
+ get fontFamily(): string | undefined;
59
74
  onCampaignTriggered(payload: InAppPayload): void;
60
75
  onCampaignInvalidated(campaignId: string): void;
61
76
  /**
@@ -68,6 +83,18 @@ declare class DigiaClass implements DigiaDelegate {
68
83
  */
69
84
  private _startEngageListener;
70
85
  private _forwardExperienceEvent;
86
+ private _onGuideLifecycleEvent;
87
+ private _guideEventName;
88
+ private _buildGuideProperties;
89
+ private _resolveApiBaseUrl;
90
+ private _refreshCampaignStore;
91
+ private _sdkPost;
92
+ private _extractApiResponse;
93
+ private _emitSlotWidth;
94
+ private _extractCampaignKey;
95
+ private _extractString;
96
+ private _parseTemplateConfig;
97
+ private _log;
71
98
  }
72
99
  export declare const Digia: DigiaClass;
73
100
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Digia.d.ts","sourceRoot":"","sources":["../../src/Digia.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EACR,WAAW,EACX,aAAa,EAEb,WAAW,EACX,YAAY,EACf,MAAM,SAAS,CAAC;AAEjB,cAAM,UAAW,YAAW,aAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAG3D,OAAO,CAAC,kBAAkB,CAAS;IAGnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,mBAAmB,CAAmC;IAE9D;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAenC;;;OAGG;IACH,UAAU,CAAC,UAAU,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAMlD;;;;;;OAMG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAUpC,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAKhD,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAO/C;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,uBAAuB;CAyBlC;AAED,eAAO,MAAM,KAAK,YAAmB,CAAC"}
1
+ {"version":3,"file":"Digia.d.ts","sourceRoot":"","sources":["../../src/Digia.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAER,WAAW,EACX,aAAa,EAEb,WAAW,EAEX,YAAY,EACf,MAAM,SAAS,CAAC;AAejB,cAAM,UAAW,YAAW,aAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAG3D,OAAO,CAAC,kBAAkB,CAAS;IAGnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,mBAAmB,CAAmC;IAC9D,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;IAClE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAqB;IAE3D;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BpD;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAgBnC;;;OAGG;IACH,UAAU,CAAC,UAAU,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAMlD;;;;;;OAMG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMpC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAMpE,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIzC;;;;OAIG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAOD,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAqEhD,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQ/C;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,uBAAuB;IAyB/B,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,qBAAqB;IAqC7B,OAAO,CAAC,kBAAkB;YAOZ,qBAAqB;YAgCrB,QAAQ;IAkBtB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,IAAI;CAMf;AAED,eAAO,MAAM,KAAK,YAAmB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { GuideLifecycleEvent } from './types';
2
+ import type { TemplateConfig } from './templateTypes';
3
+ export interface DigiaGuideRequest {
4
+ payloadId: string;
5
+ campaignKey: string;
6
+ /** Digia backend UUID for this campaign (from the campaign store _id field). */
7
+ campaignId: string;
8
+ config: TemplateConfig;
9
+ onExperienceEvent: (event: GuideLifecycleEvent) => void;
10
+ }
11
+ type DigiaGuideControllerEvent = {
12
+ type: 'start';
13
+ request: DigiaGuideRequest;
14
+ } | {
15
+ type: 'cancel';
16
+ payloadId: string;
17
+ };
18
+ type DigiaGuideListener = (event: DigiaGuideControllerEvent) => void;
19
+ declare class DigiaGuideController {
20
+ private _listener;
21
+ private _queue;
22
+ private _activeRequest;
23
+ subscribe(listener: DigiaGuideListener): () => void;
24
+ start(request: DigiaGuideRequest): boolean;
25
+ cancel(payloadId: string): void;
26
+ private _dispatchNext;
27
+ }
28
+ export declare const digiaGuideController: DigiaGuideController;
29
+ export {};
30
+ //# sourceMappingURL=DigiaGuideController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DigiaGuideController.d.ts","sourceRoot":"","sources":["../../src/DigiaGuideController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,iBAAiB,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC3D;AAED,KAAK,yBAAyB,GACxB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5C,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;AAErE,cAAM,oBAAoB;IACtB,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,cAAc,CAAkC;IAExD,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAUnD,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO;IAU1C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAS/B,OAAO,CAAC,aAAa;CAMxB;AAED,eAAO,MAAM,oBAAoB,sBAA6B,CAAC"}
@@ -0,0 +1,24 @@
1
+ export declare const HealthEventType: {
2
+ readonly campaign_key_mismatch: "campaign_key_mismatch";
3
+ readonly component_orphaned: "component_orphaned";
4
+ readonly anchor_not_on_screen: "anchor_not_on_screen";
5
+ readonly host_not_mounted: "host_not_mounted";
6
+ readonly plugin_not_registered: "plugin_not_registered";
7
+ readonly fetch_failed: "fetch_failed";
8
+ readonly action_handler_threw: "action_handler_threw";
9
+ readonly action_handler_timeout: "action_handler_timeout";
10
+ readonly deep_link_no_handler: "deep_link_no_handler";
11
+ readonly invalid_action_url: "invalid_action_url";
12
+ readonly inapp_browser_unavailable: "inapp_browser_unavailable";
13
+ readonly invalid_action_context: "invalid_action_context";
14
+ readonly cold_start_queue_overflow: "cold_start_queue_overflow";
15
+ };
16
+ export type HealthEventType = (typeof HealthEventType)[keyof typeof HealthEventType];
17
+ export declare class DigiaHealthReporter {
18
+ private _projectId;
19
+ private _baseUrl;
20
+ init(projectId: string, baseUrl: string): void;
21
+ report(eventType: HealthEventType, detail: Record<string, unknown>): void;
22
+ }
23
+ export declare const digiaHealthReporter: DigiaHealthReporter;
24
+ //# sourceMappingURL=DigiaHealthReporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DigiaHealthReporter.d.ts","sourceRoot":"","sources":["../../src/DigiaHealthReporter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;CAclB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAErF,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,QAAQ,CAAM;IAEtB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAK9C,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAa5E;AAED,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare function DigiaHost(): React.JSX.Element;
3
+ //# sourceMappingURL=DigiaProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DigiaProvider.d.ts","sourceRoot":"","sources":["../../src/DigiaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAwuBxE,wBAAgB,SAAS,sBAExB"}
@@ -1 +1 @@
1
- {"version":3,"file":"DigiaSlotView.d.ts","sourceRoot":"","sources":["../../src/DigiaSlotView.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAgC,MAAM,OAAO,CAAC;AACrD,OAAO,EAIH,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,cAAc,CAAC;AAEtB,UAAU,kBAAkB;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAChC;AAYD,wBAAgB,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,4BAuCxE"}
1
+ {"version":3,"file":"DigiaSlotView.d.ts","sourceRoot":"","sources":["../../src/DigiaSlotView.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,EAKH,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,cAAc,CAAC;AAEtB,UAAU,kBAAkB;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAChC;AAYD,wBAAgB,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,4BA0DxE"}
@@ -1,15 +1,13 @@
1
1
  /**
2
2
  * NativeDigiaModule
3
3
  *
4
- * Low-level TurboModule binding to the native Digia Engage module.
4
+ * Low-level native binding to the Digia Engage module.
5
5
  *
6
6
  * The module is resolved lazily on first use (not at import time) so that
7
7
  * module evaluation before native initialisation doesn't throw.
8
8
  * Resolution order:
9
- * 1. TurboModuleRegistry.get() New Architecture / JSI path
10
- * 2. NativeModules bridge interop layer (RN 0.73+ New Arch
11
- * with isTurboModule: false in ReactModuleInfo)
12
- * 3. null — non-Android environments; methods no-op
9
+ * 1. NativeModules iOS bridge module
10
+ * 2. null non-Android environments; methods no-op
13
11
  *
14
12
  * Prefer using the high-level `Digia` singleton from `index.ts`.
15
13
  */
@@ -24,7 +22,7 @@ import type { TurboModule } from 'react-native';
24
22
  */
25
23
  export interface Spec extends TurboModule {
26
24
  /** Initialise the SDK. Call once before anything else. */
27
- initialize(apiKey: string, environment: string, logLevel: string): Promise<void>;
25
+ initialize(projectId: string, environment: string, logLevel: string, baseUrl?: string, fontFamily?: string): Promise<void>;
28
26
  /**
29
27
  * Wire the internal RNEventBridgePlugin with the native SDK.
30
28
  * Called automatically by Digia.register() on first plugin registration.
@@ -40,6 +38,12 @@ export interface Spec extends TurboModule {
40
38
  triggerCampaign(id: string, content: Object, cepContext: Object): void;
41
39
  /** Invalidate / dismiss a campaign by its ID. */
42
40
  invalidateCampaign(campaignId: string): void;
41
+ /** Register an anchor element position for tooltip/spotlight targeting. */
42
+ registerAnchor(key: string, x: number, y: number, width: number, height: number): void;
43
+ /** Remove a previously registered anchor. */
44
+ unregisterAnchor(key: string): void;
45
+ /** Return all component keys registered with the native SDK. */
46
+ getRegisteredComponents(): Promise<string[]>;
43
47
  }
44
48
  export declare const nativeDigiaModule: Spec;
45
49
  //# sourceMappingURL=NativeDigiaEngage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NativeDigiaEngage.d.ts","sourceRoot":"","sources":["../../src/NativeDigiaEngage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;;;;;;GAOG;AACH,MAAM,WAAW,IAAK,SAAQ,WAAW;IACrC,0DAA0D;IAC1D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjF;;;;OAIG;IACH,cAAc,IAAI,IAAI,CAAC;IAEvB,sDAAsD;IACtD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;;OAGG;IACH,eAAe,CACX,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACnB,IAAI,CAAC;IAER,iDAAiD;IACjD,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAEhD;AAyBD,eAAO,MAAM,iBAAiB,EAAE,IAS/B,CAAC"}
1
+ {"version":3,"file":"NativeDigiaEngage.d.ts","sourceRoot":"","sources":["../../src/NativeDigiaEngage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;;;;;;GAOG;AACH,MAAM,WAAW,IAAK,SAAQ,WAAW;IACrC,0DAA0D;IAC1D,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3H;;;;OAIG;IACH,cAAc,IAAI,IAAI,CAAC;IAEvB,sDAAsD;IACtD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;;OAGG;IACH,eAAe,CACX,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACnB,IAAI,CAAC;IAER,iDAAiD;IACjD,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7C,2EAA2E;IAC3E,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvF,6CAA6C;IAC7C,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC,gEAAgE;IAChE,uBAAuB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAEhD;AA8BD,eAAO,MAAM,iBAAiB,EAAE,IAY/B,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { DigiaAction, ActionContext, OnAction, InAppBrowserAdapter } from './types';
2
+ import type { Action } from './templateTypes';
3
+ export type ActionCallbacks = {
4
+ onNext: () => void;
5
+ onBack: () => void;
6
+ onDismissSelf: () => void;
7
+ onDismissAll: () => void;
8
+ };
9
+ type ActionHandlerConfig = {
10
+ onAction?: OnAction;
11
+ routeViaSystemLinking: boolean;
12
+ inAppBrowser?: InAppBrowserAdapter;
13
+ };
14
+ export declare const toDigiaAction: (action: Action) => DigiaAction;
15
+ export declare const digiaActionHandler: {
16
+ configure: (config: Partial<ActionHandlerConfig>) => void;
17
+ execute: (widgetAction: Action, context: ActionContext, callbacks: ActionCallbacks) => Promise<void>;
18
+ };
19
+ export {};
20
+ //# sourceMappingURL=actionHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionHandler.d.ts","sourceRoot":"","sources":["../../src/actionHandler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAK9C,MAAM,MAAM,eAAe,GAAG;IAC1B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAyCF,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,WAS9C,CAAC;AA6LF,eAAO,MAAM,kBAAkB;wBAjCJ,OAAO,CAAC,mBAAmB,CAAC,KAAG,IAAI;4BAK5C,MAAM,WACX,aAAa,aACX,eAAe,KAC3B,OAAO,CAAC,IAAI,CAAC;CAyBwC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { InAppBrowserAdapter } from './types';
2
+ export declare const defaultInAppBrowser: InAppBrowserAdapter;
3
+ //# sourceMappingURL=defaultInAppBrowser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultInAppBrowser.d.ts","sourceRoot":"","sources":["../../src/defaultInAppBrowser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAyBnD,eAAO,MAAM,mBAAmB,EAAE,mBAKjC,CAAC"}
@@ -0,0 +1,15 @@
1
+ type AnchorLayout = {
2
+ pageX: number;
3
+ pageY: number;
4
+ width: number;
5
+ height: number;
6
+ };
7
+ type Listener = (layout: AnchorLayout) => void;
8
+ export type { AnchorLayout };
9
+ export declare const digiaAnchorRegistry: {
10
+ setLayout: (key: string, layout: AnchorLayout) => void;
11
+ getLayout: (key: string) => AnchorLayout | undefined;
12
+ subscribe: (key: string, listener: Listener) => () => void;
13
+ remove: (key: string) => void;
14
+ };
15
+ //# sourceMappingURL=digiaAnchorRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digiaAnchorRegistry.d.ts","sourceRoot":"","sources":["../../src/digiaAnchorRegistry.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AACnF,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;AAwB9C,YAAY,EAAE,YAAY,EAAE,CAAA;AAC5B,eAAO,MAAM,mBAAmB;qBApBR,MAAM,UAAU,YAAY;qBAK5B,MAAM,KAAG,YAAY,GAAG,SAAS;qBAEjC,MAAM,YAAY,QAAQ,KAAG,MAAM,IAAI;kBAO1C,MAAM;CAMmD,CAAA"}
@@ -10,6 +10,7 @@
10
10
  */
11
11
  export { Digia } from './Digia';
12
12
  export { DigiaHostView } from './DigiaHostView';
13
+ export { DigiaHost } from './DigiaProvider';
13
14
  export { DigiaSlotView } from './DigiaSlotView';
14
15
  export { DigiaAnchorView } from './DigiaAnchorView';
15
16
  export type { DigiaConfig, DigiaDelegate, DigiaExperienceEvent, DigiaPlugin, InAppPayload } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,140 @@
1
+ export type Action = {
2
+ type: 'dismiss';
3
+ label: string;
4
+ style: 'primary' | 'secondary' | 'ghost';
5
+ scope?: 'self' | 'all';
6
+ } | {
7
+ type: 'next';
8
+ label: string;
9
+ style: 'primary' | 'secondary' | 'ghost';
10
+ } | {
11
+ type: 'back';
12
+ label: string;
13
+ style: 'primary' | 'secondary' | 'ghost';
14
+ } | {
15
+ type: 'prev';
16
+ label: string;
17
+ style: 'primary' | 'secondary' | 'ghost';
18
+ } | {
19
+ type: 'deep_link';
20
+ label: string;
21
+ style: 'primary' | 'secondary' | 'ghost';
22
+ url: string;
23
+ fallback_url?: string;
24
+ } | {
25
+ type: 'open_url';
26
+ label: string;
27
+ style: 'primary' | 'secondary' | 'ghost';
28
+ url: string;
29
+ presentation: 'external' | 'in_app';
30
+ };
31
+ export type TooltipStep = {
32
+ anchorKey: string;
33
+ title: string;
34
+ body: string;
35
+ placement: 'top' | 'bottom' | 'left' | 'right' | 'auto';
36
+ backgroundColor: string;
37
+ borderColor: string;
38
+ borderWidth: number;
39
+ cornerRadius: number;
40
+ shadow: boolean;
41
+ maxWidth: number;
42
+ padding: number;
43
+ showArrow: boolean;
44
+ arrowColor?: string;
45
+ arrowBorderColor?: string;
46
+ arrowSize?: number;
47
+ titleColor: string;
48
+ titleSize: number;
49
+ titleWeight: '400' | '600' | '700';
50
+ bodyColor: string;
51
+ bodySize: number;
52
+ buttonPrimaryBackgroundColor: string;
53
+ buttonPrimaryTextColor: string;
54
+ buttonGhostTextColor: string;
55
+ actions: Action[];
56
+ };
57
+ export type SpotlightStep = {
58
+ anchorKey: string;
59
+ title: string;
60
+ body: string;
61
+ calloutPosition: 'above' | 'below' | 'left' | 'right' | 'auto';
62
+ calloutGap?: number;
63
+ overlayColor: string;
64
+ overlayOpacity: number;
65
+ highlightShape: 'rect' | 'circle' | 'pill';
66
+ highlightCornerRadius: number;
67
+ highlightPadding: number;
68
+ highlightGlowColor: string;
69
+ highlightGlowWidth: number;
70
+ calloutBackgroundColor: string;
71
+ calloutCornerRadius: number;
72
+ calloutMaxWidth: number;
73
+ calloutPadding: number;
74
+ calloutShadow: boolean;
75
+ calloutBorderColor: string;
76
+ calloutBorderWidth: number;
77
+ showArrow?: boolean;
78
+ arrowColor?: string;
79
+ arrowBorderColor?: string;
80
+ arrowSize?: number;
81
+ titleColor: string;
82
+ titleSize: number;
83
+ titleWeight: '400' | '600' | '700';
84
+ bodyColor: string;
85
+ bodySize: number;
86
+ buttonPrimaryBackgroundColor: string;
87
+ buttonPrimaryTextColor: string;
88
+ buttonGhostTextColor: string;
89
+ actions: Action[];
90
+ };
91
+ export type TooltipConfig = {
92
+ templateType: 'tooltip';
93
+ templateId: string | null;
94
+ steps: TooltipStep[];
95
+ outsideTapBehavior?: 'dismiss' | 'next' | 'nothing';
96
+ };
97
+ export type SpotlightConfig = {
98
+ templateType: 'spotlight';
99
+ templateId: string | null;
100
+ steps: SpotlightStep[];
101
+ outsideTapBehavior?: 'dismiss' | 'next' | 'nothing';
102
+ };
103
+ export type CarouselItem = {
104
+ imageUrl: string;
105
+ deepLink?: string;
106
+ };
107
+ export type CarouselIndicatorConfig = {
108
+ showIndicator: boolean;
109
+ dotHeight: number;
110
+ dotWidth: number;
111
+ spacing: number;
112
+ dotColor: string;
113
+ activeDotColor: string;
114
+ indicatorEffectType: 'slide' | 'expanding' | 'worm' | 'scale' | 'jumping' | 'scrolling';
115
+ };
116
+ export type CarouselConfig = {
117
+ templateType: 'carousel';
118
+ slotKey: string;
119
+ items: CarouselItem[];
120
+ height: number;
121
+ width?: number;
122
+ autoPlay: boolean;
123
+ autoPlayInterval: number;
124
+ animationDuration: number;
125
+ infiniteScroll: boolean;
126
+ viewportFraction: number;
127
+ indicator: CarouselIndicatorConfig;
128
+ };
129
+ export type SurveyTemplateConfig = {
130
+ templateType: 'survey';
131
+ templateId: string;
132
+ surveyName: string;
133
+ uiTemplateId: string | null;
134
+ settings: Record<string, unknown>;
135
+ blocks: Record<string, unknown>[];
136
+ nodes: Record<string, unknown>[];
137
+ rootNodeId: string;
138
+ };
139
+ export type TemplateConfig = TooltipConfig | SpotlightConfig | CarouselConfig | SurveyTemplateConfig;
140
+ //# sourceMappingURL=templateTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateTypes.d.ts","sourceRoot":"","sources":["../../src/templateTypes.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export interface InAppPayload {
11
11
  /** CEP-platform metadata, e.g. { campaignId, campaignName }. */
12
12
  cepContext: Record<string, unknown>;
13
13
  }
14
+ export type CampaignType = 'nudge' | 'guide' | 'inline' | 'survey';
14
15
  /** The experience became visible to the user. */
15
16
  export interface ExperienceImpressed {
16
17
  readonly type: 'impressed';
@@ -24,8 +25,71 @@ export interface ExperienceClicked {
24
25
  export interface ExperienceDismissed {
25
26
  readonly type: 'dismissed';
26
27
  }
28
+ /** The user completed the experience (advanced past the final step). */
29
+ export interface ExperienceCompleted {
30
+ readonly type: 'completed';
31
+ }
27
32
  /** Discriminated union of all experience event types. */
28
- export type DigiaExperienceEvent = ExperienceImpressed | ExperienceClicked | ExperienceDismissed;
33
+ export type DigiaExperienceEvent = ExperienceImpressed | ExperienceClicked | ExperienceDismissed | ExperienceCompleted;
34
+ export type DismissReason = 'user_close' | 'scrim_tap' | 'back_gesture' | 'auto_timeout';
35
+ /**
36
+ * Rich internal event emitted by guide overlays.
37
+ * Carries all context needed to build the CEP analytics property schema.
38
+ * Not part of the public plugin API — converted to track() calls in Digia.ts.
39
+ */
40
+ export type GuideLifecycleEvent = {
41
+ type: 'viewed';
42
+ stepIndex: number;
43
+ stepTotal: number;
44
+ anchorKey: string;
45
+ displayStyle: 'tooltip' | 'spotlight';
46
+ } | {
47
+ type: 'step_viewed';
48
+ stepIndex: number;
49
+ stepTotal: number;
50
+ anchorKey: string;
51
+ displayStyle: 'tooltip' | 'spotlight';
52
+ } | {
53
+ type: 'clicked';
54
+ stepIndex: number;
55
+ stepTotal: number;
56
+ anchorKey: string;
57
+ displayStyle: 'tooltip' | 'spotlight';
58
+ ctaLabel: string;
59
+ actionType: string;
60
+ actionUrl?: string;
61
+ elementId?: string;
62
+ } | {
63
+ type: 'step_clicked';
64
+ stepIndex: number;
65
+ stepTotal: number;
66
+ anchorKey: string;
67
+ displayStyle: 'tooltip' | 'spotlight';
68
+ ctaLabel: string;
69
+ actionType: string;
70
+ actionUrl?: string;
71
+ elementId?: string;
72
+ } | {
73
+ type: 'dismissed';
74
+ stepIndex: number;
75
+ stepTotal: number;
76
+ anchorKey: string;
77
+ displayStyle: 'tooltip' | 'spotlight';
78
+ dismissReason: DismissReason;
79
+ } | {
80
+ type: 'step_dismissed';
81
+ stepIndex: number;
82
+ stepTotal: number;
83
+ anchorKey: string;
84
+ displayStyle: 'tooltip' | 'spotlight';
85
+ dismissReason: DismissReason;
86
+ } | {
87
+ type: 'completed';
88
+ stepIndex: number;
89
+ stepTotal: number;
90
+ anchorKey: string;
91
+ displayStyle: 'tooltip' | 'spotlight';
92
+ };
29
93
  /**
30
94
  * Delegate passed by the Digia SDK to each registered plugin via setup().
31
95
  *
@@ -54,17 +118,63 @@ export interface DigiaPlugin {
54
118
  * analytics back to their CEP platform.
55
119
  */
56
120
  notifyEvent(event: DigiaExperienceEvent, payload: InAppPayload): void;
121
+ /**
122
+ * Called by the Digia SDK to record a named analytics event with properties.
123
+ * Implement this to forward Digia lifecycle events (e.g. "Digia Experience Viewed")
124
+ * to the CEP platform's custom event API.
125
+ */
126
+ track?(eventName: string, properties: Record<string, unknown>): void;
57
127
  /** Called by Digia.setCurrentScreen() — do not call manually. */
58
128
  forwardScreen(name: string): void;
59
129
  /** Called by Digia.unregister() or when tearing down the app. */
60
130
  teardown(): void;
61
131
  }
132
+ export type DigiaAction = {
133
+ type: 'deep_link';
134
+ url: string;
135
+ fallback_url?: string;
136
+ } | {
137
+ type: 'open_url';
138
+ url: string;
139
+ presentation: 'external' | 'in_app';
140
+ } | {
141
+ type: 'dismiss';
142
+ scope?: 'self' | 'all';
143
+ } | {
144
+ type: 'next';
145
+ } | {
146
+ type: 'back';
147
+ };
148
+ export type ActionContext = {
149
+ campaign_id: string;
150
+ campaign_key: string;
151
+ campaign_type: 'nudge' | 'guide' | 'inline' | 'survey';
152
+ source: {
153
+ kind: 'button' | 'card_tap' | 'pip_small_view' | 'auto_dismiss';
154
+ element_id?: string;
155
+ button_label?: string;
156
+ };
157
+ step_index?: number;
158
+ step_total?: number;
159
+ source_node?: unknown;
160
+ };
161
+ export type ActionResult = boolean | Promise<boolean> | void;
162
+ export type OnAction = (action: DigiaAction, context: ActionContext) => ActionResult;
163
+ export type InAppBrowserAdapter = {
164
+ open: (url: string) => Promise<void>;
165
+ };
62
166
  /**
63
167
  * Configuration for initialising the Digia Engage SDK.
64
168
  */
65
169
  export interface DigiaConfig {
66
- /** The API key provided by Digia. */
67
- apiKey: string;
170
+ /** The Engage project ID sent as x-digia-project-id on all SDK requests. */
171
+ projectId: string;
172
+ /**
173
+ * Base URL for the Digia API.
174
+ * Defaults to the production API root, or the Engage sandbox root when
175
+ * `environment` is "sandbox".
176
+ */
177
+ baseUrl?: string;
68
178
  /**
69
179
  * The target environment.
70
180
  * @default 'production'
@@ -75,5 +185,32 @@ export interface DigiaConfig {
75
185
  * @default 'error'
76
186
  */
77
187
  logLevel?: 'none' | 'error' | 'verbose';
188
+ /**
189
+ * Optional global font family applied to all Digia-rendered text.
190
+ * Must match a font available to the native app — an Android system/registered
191
+ * family name, or an iOS bundled font's PostScript name.
192
+ */
193
+ fontFamily?: string;
194
+ /**
195
+ * Optional override hook called for every action before the SDK runs its
196
+ * default behavior. Return true to suppress the default; false/void lets
197
+ * the SDK handle it.
198
+ */
199
+ onAction?: OnAction;
200
+ /**
201
+ * URL / linking configuration.
202
+ */
203
+ linking?: {
204
+ /**
205
+ * When true (default) the SDK calls Linking.openURL for URL-bearing actions.
206
+ * @default true
207
+ */
208
+ routeViaSystemLinking?: boolean;
209
+ /**
210
+ * Required if any campaign uses open_url with presentation: 'in_app'.
211
+ * Falls back to Linking.openURL + emits inapp_browser_unavailable if absent.
212
+ */
213
+ inAppBrowser?: InAppBrowserAdapter;
214
+ };
78
215
  }
79
216
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,YAAY;IACzB,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAID,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC9B;AAED,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,sEAAsE;AACtE,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC9B;AAED,yDAAyD;AACzD,MAAM,MAAM,oBAAoB,GAC1B,mBAAmB,GACnB,iBAAiB,GACjB,mBAAmB,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC1B,kEAAkE;IAClE,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IACjD,iDAAiD;IACjD,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACnD;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yDAAyD;IACzD,KAAK,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IACtE,iEAAiE;IACjE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iEAAiE;IACjE,QAAQ,IAAI,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CAC3C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}