react-native-seel-widget 0.1.4 → 0.1.7

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 (110) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +22 -23
  3. package/lib/module/assets/images/accredited.png +0 -0
  4. package/lib/module/assets/images/background_image.jpg +0 -0
  5. package/lib/module/assets/images/button_close.png +0 -0
  6. package/lib/module/assets/images/button_close_background.png +0 -0
  7. package/lib/module/assets/images/checkbox_normal.png +0 -0
  8. package/lib/module/assets/images/checkbox_selected.png +0 -0
  9. package/lib/module/assets/images/close_white.png +0 -0
  10. package/lib/module/assets/images/ic_launcher.png +0 -0
  11. package/lib/module/assets/images/icon_arrow_left.png +0 -0
  12. package/lib/module/assets/images/icon_bg_select.png +0 -0
  13. package/lib/module/assets/images/icon_check_selected_black.png +0 -0
  14. package/lib/module/assets/images/icon_select.png +0 -0
  15. package/lib/module/assets/images/info_black.png +0 -0
  16. package/lib/module/assets/images/seel_icon.png +0 -0
  17. package/lib/module/assets/images/seel_logo.png +0 -0
  18. package/lib/module/assets/images/seel_word.png +0 -0
  19. package/lib/module/assets/images/tick_small_minor.png +0 -0
  20. package/lib/module/constants/key_value.js +50 -0
  21. package/lib/module/constants/key_value.js.map +1 -0
  22. package/lib/module/constants/network_request_statue_enum.js +17 -0
  23. package/lib/module/constants/network_request_statue_enum.js.map +1 -0
  24. package/lib/module/core/SeelWidgetSDK.js +85 -0
  25. package/lib/module/core/SeelWidgetSDK.js.map +1 -0
  26. package/lib/module/dto/EventsRequest.js +71 -0
  27. package/lib/module/dto/EventsRequest.js.map +1 -0
  28. package/lib/module/dto/EventsResponse.js +15 -0
  29. package/lib/module/dto/EventsResponse.js.map +1 -0
  30. package/lib/module/dto/IEvents.js +31 -0
  31. package/lib/module/dto/IEvents.js.map +1 -0
  32. package/lib/module/dto/IQuotes.js +2 -0
  33. package/lib/module/dto/IQuotes.js.map +1 -0
  34. package/lib/module/dto/IQuotesRequest.js +4 -0
  35. package/lib/module/dto/IQuotesRequest.js.map +1 -0
  36. package/lib/module/dto/IQuotesResponse.js +2 -0
  37. package/lib/module/dto/IQuotesResponse.js.map +1 -0
  38. package/lib/module/index.js +6 -0
  39. package/lib/module/index.js.map +1 -0
  40. package/lib/module/network/request.js +194 -0
  41. package/lib/module/network/request.js.map +1 -0
  42. package/lib/module/package.json +1 -0
  43. package/lib/module/ui/coverage-info-footer.js +170 -0
  44. package/lib/module/ui/coverage-info-footer.js.map +1 -0
  45. package/lib/module/ui/gradient-animation-text.js +116 -0
  46. package/lib/module/ui/gradient-animation-text.js.map +1 -0
  47. package/lib/module/ui/gradient-animation-view.js +110 -0
  48. package/lib/module/ui/gradient-animation-view.js.map +1 -0
  49. package/lib/module/ui/index.js +7 -0
  50. package/lib/module/ui/index.js.map +1 -0
  51. package/lib/module/ui/seel-wfp-info-view.js +312 -0
  52. package/lib/module/ui/seel-wfp-info-view.js.map +1 -0
  53. package/lib/module/ui/seel-wfp-title-view.js +286 -0
  54. package/lib/module/ui/seel-wfp-title-view.js.map +1 -0
  55. package/lib/module/ui/seel-wfp-widget.js +224 -0
  56. package/lib/module/ui/seel-wfp-widget.js.map +1 -0
  57. package/lib/module/utils/format_util.js +107 -0
  58. package/lib/module/utils/format_util.js.map +1 -0
  59. package/lib/module/utils/http_util.js +27 -0
  60. package/lib/module/utils/http_util.js.map +1 -0
  61. package/lib/module/utils/storage_util.js +36 -0
  62. package/lib/module/utils/storage_util.js.map +1 -0
  63. package/lib/module/utils/uuid.js +21 -0
  64. package/lib/module/utils/uuid.js.map +1 -0
  65. package/lib/typescript/package.json +1 -0
  66. package/lib/typescript/src/constants/key_value.d.ts +48 -0
  67. package/lib/typescript/src/constants/key_value.d.ts.map +1 -0
  68. package/lib/typescript/src/constants/network_request_statue_enum.d.ts +13 -0
  69. package/lib/typescript/src/constants/network_request_statue_enum.d.ts.map +1 -0
  70. package/lib/typescript/src/core/SeelWidgetSDK.d.ts +52 -0
  71. package/lib/typescript/src/core/SeelWidgetSDK.d.ts.map +1 -0
  72. package/lib/typescript/src/dto/EventsRequest.d.ts +60 -0
  73. package/lib/typescript/src/dto/EventsRequest.d.ts.map +1 -0
  74. package/lib/typescript/src/dto/EventsResponse.d.ts +11 -0
  75. package/lib/typescript/src/dto/EventsResponse.d.ts.map +1 -0
  76. package/lib/typescript/src/dto/IEvents.d.ts +48 -0
  77. package/lib/typescript/src/dto/IEvents.d.ts.map +1 -0
  78. package/lib/typescript/src/dto/IQuotes.d.ts +36 -0
  79. package/lib/typescript/src/dto/IQuotes.d.ts.map +1 -0
  80. package/lib/typescript/src/dto/IQuotesRequest.d.ts +213 -0
  81. package/lib/typescript/src/dto/IQuotesRequest.d.ts.map +1 -0
  82. package/lib/typescript/src/dto/IQuotesResponse.d.ts +96 -0
  83. package/lib/typescript/src/dto/IQuotesResponse.d.ts.map +1 -0
  84. package/lib/typescript/src/index.d.ts +2 -0
  85. package/lib/typescript/src/index.d.ts.map +1 -0
  86. package/lib/typescript/src/network/request.d.ts +53 -0
  87. package/lib/typescript/src/network/request.d.ts.map +1 -0
  88. package/lib/typescript/src/ui/coverage-info-footer.d.ts +9 -0
  89. package/lib/typescript/src/ui/coverage-info-footer.d.ts.map +1 -0
  90. package/lib/typescript/src/ui/gradient-animation-text.d.ts +40 -0
  91. package/lib/typescript/src/ui/gradient-animation-text.d.ts.map +1 -0
  92. package/lib/typescript/src/ui/gradient-animation-view.d.ts +32 -0
  93. package/lib/typescript/src/ui/gradient-animation-view.d.ts.map +1 -0
  94. package/lib/typescript/src/ui/index.d.ts +5 -0
  95. package/lib/typescript/src/ui/index.d.ts.map +1 -0
  96. package/lib/typescript/src/ui/seel-wfp-info-view.d.ts +13 -0
  97. package/lib/typescript/src/ui/seel-wfp-info-view.d.ts.map +1 -0
  98. package/lib/typescript/src/ui/seel-wfp-title-view.d.ts +68 -0
  99. package/lib/typescript/src/ui/seel-wfp-title-view.d.ts.map +1 -0
  100. package/lib/typescript/src/ui/seel-wfp-widget.d.ts +16 -0
  101. package/lib/typescript/src/ui/seel-wfp-widget.d.ts.map +1 -0
  102. package/lib/typescript/src/utils/format_util.d.ts +2 -0
  103. package/lib/typescript/src/utils/format_util.d.ts.map +1 -0
  104. package/lib/typescript/src/utils/http_util.d.ts +18 -0
  105. package/lib/typescript/src/utils/http_util.d.ts.map +1 -0
  106. package/lib/typescript/src/utils/storage_util.d.ts +6 -0
  107. package/lib/typescript/src/utils/storage_util.d.ts.map +1 -0
  108. package/lib/typescript/src/utils/uuid.d.ts +6 -0
  109. package/lib/typescript/src/utils/uuid.d.ts.map +1 -0
  110. package/package.json +23 -12
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 qingming.zhang
3
+ Copyright (c) 2025 qingmingzhang
4
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  of this software and associated documentation files (the "Software"), to deal
6
6
  in the Software without restriction, including without limitation the rights
package/README.md CHANGED
@@ -1,37 +1,36 @@
1
1
  # react-native-seel-widget
2
2
 
3
- React-Native SeelWidget
3
+ SeelWidget for React Native (iOS, Android, and Web)
4
4
 
5
- ## Installation
5
+ ## Installing
6
6
 
7
+ ### With expo
7
8
 
8
- ```sh
9
- npm install react-native-seel-widget
10
9
  ```
11
-
12
-
13
- ## Usage
14
-
15
-
16
- ```js
17
- import { multiply } from 'react-native-seel-widget';
18
-
19
- // ...
20
-
21
- const result = await multiply(3, 7);
10
+ npx expo install react-native-seel-widget
22
11
  ```
23
12
 
13
+ ### With react-native-cli
24
14
 
25
- ## Contributing
15
+ 1. Install library
26
16
 
27
- - [Development workflow](CONTRIBUTING.md#development-workflow)
28
- - [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request)
29
- - [Code of conduct](CODE_OF_CONDUCT.md)
17
+ ```
18
+ yarn add react-native-seel-widget
19
+ ```
30
20
 
31
- ## License
21
+ *Note: We're using `yarn` to install deps. Feel free to change commands to use `npm` 11+ and `npx` if you like*
32
22
 
33
- MIT
23
+ 2. Link native code
34
24
 
35
- ---
25
+ ```
26
+ cd ios && pod install
27
+ ```
36
28
 
37
- Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
29
+ ## Usage
30
+
31
+ ```tsx
32
+ SeelWidgetSDK.shared.configure({
33
+ apiKey: '5ctiodrhqyfkcjqhli4wwnwi6cakrs5r',
34
+ environment: SeelEnvironment.Development,
35
+ });
36
+ ```
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ const KeyValue = {
4
+ wfp_title: `{{title}} for {{price}}`,
5
+ wfp_subtitle: `Extend your return window to 35 days`,
6
+ wfp_description: `Get a full refund if the order doesn't arrive as described, including loss & damage in transit`,
7
+ powered_by: `Powered by {{seel}}`,
8
+ ineligible_main_message: `We're unable to offer Worry-Free Purchase® for this order. This could be due to one or more of the following reasons`,
9
+ ineligible_reason_shipping: `Shipping destination not supported`,
10
+ ineligible_reason_currency: `Checkout currency not accepted`,
11
+ ineligible_reason_value: `Order value exceeds our coverage limit`,
12
+ ineligible_reason_items: `Item(s) not eligible for this service`,
13
+ ineligible_reason_system: `Our system has flagged this order as ineligible`,
14
+ ineligible_support_message: `If you have any questions, please contact our customer support team for assistance`,
15
+ ineligible_title: `Worry-Free Purchase® isn't eligible for this order`,
16
+ coverage_title: `We've Got You Covered`,
17
+ pricing_message: `Only {{price}} for Complete Peace of Mind`,
18
+ product_name: `Worry-Free Purchase®`,
19
+ whats_covered_title: `What's Covered`,
20
+ standard_coverage_intro: `In addition to your standard coverage under consumer protection laws for`,
21
+ standard_coverage_not_as_described: `Items not as described`,
22
+ standard_coverage_lost_damaged: `Items lost, stolen or damaged in transit (i.e. before they are in your physical possession (or in the possession of someone you have authorised to take delivery)`,
23
+ standard_coverage_not_matching: `Items not matching their description`,
24
+ standard_coverage_quality: `Items not of satisfactory quality or not fit for purpose`,
25
+ standard_coverage_not_delivered: `Items not delivered within 30 days of purchase, unless agreed otherwise`,
26
+ additional_coverage_intro: `Worry-Free Purchase® provides the following protection`,
27
+ additional_coverage_extended_return: `Extended return windows – Seven (7) additional days to decide`,
28
+ additional_coverage_post_delivery: `Post-delivery theft coverage – Protection for packages stolen or missing after delivery`,
29
+ additional_coverage_delay: `Delay compensation if the items are not delivered within 10 days`,
30
+ concierge_intro: `Shoppers also get white glove concierge help with post purchase issues and mishaps`,
31
+ concierge_app_access: `Access to desktop and mobile app`,
32
+ concierge_support: `Live, instant support`,
33
+ privacy_policy: `Privacy Policy`,
34
+ terms_of_service: `Terms of Service`,
35
+ cta_secure_purchase: `Secure Your Purchase Now`,
36
+ cta_continue_without: `Continue Without Protection`,
37
+ get_full_refund: `Get a Full Refund, No Questions Asked`,
38
+ lost_in_transit: `Lost in-transit`,
39
+ item_not_as_described: `Item arrived not as described`,
40
+ item_damaged: `Item damaged/non-functional on arrival`,
41
+ package_stolen: `Package stolen or missing after delivery`,
42
+ easy_resolution: `Easy Resolution`,
43
+ resolve_with_clicks: `Resolve your issues with just a few clicks`,
44
+ complete_peace_of_mind: `Complete Peace of Mind`,
45
+ zero_risk: `Zero-risk on your order with our protection`,
46
+ get_refund_promptly: `Get your refund promptly`,
47
+ worry_free_delivery: `Worry-Free Delivery®`
48
+ };
49
+ export default KeyValue;
50
+ //# sourceMappingURL=key_value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KeyValue","wfp_title","wfp_subtitle","wfp_description","powered_by","ineligible_main_message","ineligible_reason_shipping","ineligible_reason_currency","ineligible_reason_value","ineligible_reason_items","ineligible_reason_system","ineligible_support_message","ineligible_title","coverage_title","pricing_message","product_name","whats_covered_title","standard_coverage_intro","standard_coverage_not_as_described","standard_coverage_lost_damaged","standard_coverage_not_matching","standard_coverage_quality","standard_coverage_not_delivered","additional_coverage_intro","additional_coverage_extended_return","additional_coverage_post_delivery","additional_coverage_delay","concierge_intro","concierge_app_access","concierge_support","privacy_policy","terms_of_service","cta_secure_purchase","cta_continue_without","get_full_refund","lost_in_transit","item_not_as_described","item_damaged","package_stolen","easy_resolution","resolve_with_clicks","complete_peace_of_mind","zero_risk","get_refund_promptly","worry_free_delivery"],"sourceRoot":"../../../src","sources":["constants/key_value.ts"],"mappings":";;AAAA,MAAMA,QAAQ,GAAG;EACfC,SAAS,EAAE,yBAAyB;EACpCC,YAAY,EAAE,sCAAsC;EACpDC,eAAe,EAAE,gGAAgG;EACjHC,UAAU,EAAE,qBAAqB;EACjCC,uBAAuB,EAAE,sHAAsH;EAC/IC,0BAA0B,EAAE,oCAAoC;EAChEC,0BAA0B,EAAE,gCAAgC;EAC5DC,uBAAuB,EAAE,wCAAwC;EACjEC,uBAAuB,EAAE,uCAAuC;EAChEC,wBAAwB,EAAE,iDAAiD;EAC3EC,0BAA0B,EAAE,oFAAoF;EAChHC,gBAAgB,EAAE,oDAAoD;EACtEC,cAAc,EAAE,uBAAuB;EACvCC,eAAe,EAAE,2CAA2C;EAC5DC,YAAY,EAAE,sBAAsB;EACpCC,mBAAmB,EAAE,gBAAgB;EACrCC,uBAAuB,EAAE,0EAA0E;EACnGC,kCAAkC,EAAE,wBAAwB;EAC5DC,8BAA8B,EAAE,mKAAmK;EACnMC,8BAA8B,EAAE,sCAAsC;EACtEC,yBAAyB,EAAE,0DAA0D;EACrFC,+BAA+B,EAAE,yEAAyE;EAC1GC,yBAAyB,EAAE,wDAAwD;EACnFC,mCAAmC,EAAE,+DAA+D;EACpGC,iCAAiC,EAAE,yFAAyF;EAC5HC,yBAAyB,EAAE,kEAAkE;EAC7FC,eAAe,EAAE,oFAAoF;EACrGC,oBAAoB,EAAE,kCAAkC;EACxDC,iBAAiB,EAAE,uBAAuB;EAC1CC,cAAc,EAAE,gBAAgB;EAChCC,gBAAgB,EAAE,kBAAkB;EACpCC,mBAAmB,EAAE,0BAA0B;EAC/CC,oBAAoB,EAAE,6BAA6B;EACnDC,eAAe,EAAE,uCAAuC;EACxDC,eAAe,EAAE,iBAAiB;EAClCC,qBAAqB,EAAE,+BAA+B;EACtDC,YAAY,EAAE,wCAAwC;EACtDC,cAAc,EAAE,0CAA0C;EAC1DC,eAAe,EAAE,iBAAiB;EAClCC,mBAAmB,EAAE,4CAA4C;EACjEC,sBAAsB,EAAE,wBAAwB;EAChDC,SAAS,EAAE,6CAA6C;EACxDC,mBAAmB,EAAE,0BAA0B;EAC/CC,mBAAmB,EAAE;AACvB,CAAC;AAED,eAAe5C,QAAQ","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ export let NetworkRequestStatueEnum = /*#__PURE__*/function (NetworkRequestStatueEnum) {
4
+ /* eslint-disable no-bitwise */
5
+ NetworkRequestStatueEnum[NetworkRequestStatueEnum["Idle"] = 1] = "Idle";
6
+ NetworkRequestStatueEnum[NetworkRequestStatueEnum["Refreshing"] = 2] = "Refreshing";
7
+ NetworkRequestStatueEnum[NetworkRequestStatueEnum["LoadingMore"] = 4] = "LoadingMore";
8
+ NetworkRequestStatueEnum[NetworkRequestStatueEnum["Loading"] = 6] = "Loading";
9
+ NetworkRequestStatueEnum[NetworkRequestStatueEnum["RefreshSuccess"] = 8] = "RefreshSuccess";
10
+ NetworkRequestStatueEnum[NetworkRequestStatueEnum["LoadMoreSuccess"] = 16] = "LoadMoreSuccess";
11
+ NetworkRequestStatueEnum[NetworkRequestStatueEnum["Success"] = 24] = "Success";
12
+ NetworkRequestStatueEnum[NetworkRequestStatueEnum["RefreshFailed"] = 32] = "RefreshFailed";
13
+ NetworkRequestStatueEnum[NetworkRequestStatueEnum["LoadMoreFailed"] = 64] = "LoadMoreFailed";
14
+ NetworkRequestStatueEnum[NetworkRequestStatueEnum["Failed"] = 96] = "Failed";
15
+ return NetworkRequestStatueEnum;
16
+ }({});
17
+ //# sourceMappingURL=network_request_statue_enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NetworkRequestStatueEnum"],"sourceRoot":"../../../src","sources":["constants/network_request_statue_enum.ts"],"mappings":";;AAAA,WAAYA,wBAAwB,0BAAxBA,wBAAwB;EAClC;EADUA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Environment Enum
5
+ */
6
+ export let SeelEnvironment = /*#__PURE__*/function (SeelEnvironment) {
7
+ SeelEnvironment["Development"] = "development";
8
+ SeelEnvironment["Production"] = "production";
9
+ return SeelEnvironment;
10
+ }({});
11
+ const defaultApiVersion = '2.6.0';
12
+ const defaultSeelEnvironment = SeelEnvironment.Production;
13
+ /**
14
+ * SeelWidgetSDK
15
+ * Main SDK class for Seel Widget functionality
16
+ */
17
+ export class SeelWidgetSDK {
18
+ // MARK: - Singleton Instance
19
+ static _shared = null;
20
+ static get shared() {
21
+ if (!SeelWidgetSDK._shared) {
22
+ SeelWidgetSDK._shared = new SeelWidgetSDK();
23
+ }
24
+ return SeelWidgetSDK._shared;
25
+ }
26
+
27
+ // MARK: - Properties
28
+ _apiKey = '';
29
+ _apiVersion = defaultApiVersion;
30
+ _environment = defaultSeelEnvironment;
31
+
32
+ // MARK: - Private Constructor
33
+ constructor() {
34
+ // Private constructor for singleton pattern
35
+ }
36
+
37
+ // MARK: - Public Methods
38
+
39
+ /**
40
+ * Configure SeelWidgetSDK
41
+ * @param apiKey API key
42
+ * @param environment Environment (optional, defaults to production)
43
+ */
44
+ configure(props) {
45
+ this._apiKey = props.apiKey;
46
+ this._apiVersion = props.apiVersion ?? defaultApiVersion;
47
+ this._environment = props.environment ?? defaultSeelEnvironment;
48
+ }
49
+
50
+ /**
51
+ * Get current API Key
52
+ */
53
+ get apiKey() {
54
+ return this._apiKey;
55
+ }
56
+
57
+ /**
58
+ * Get current API Version
59
+ */
60
+ get apiVersion() {
61
+ return this._apiVersion;
62
+ }
63
+
64
+ /**
65
+ * Get current environment
66
+ */
67
+ get environment() {
68
+ return this._environment;
69
+ }
70
+
71
+ /**
72
+ * Get current BaseURL
73
+ */
74
+ get baseURL() {
75
+ return this._environment === SeelEnvironment.Production ? 'https://api.seel.com' : 'https://api-test.seel.com';
76
+ }
77
+
78
+ /**
79
+ * Check if configured
80
+ */
81
+ get isConfigured() {
82
+ return this._apiKey !== '';
83
+ }
84
+ }
85
+ //# sourceMappingURL=SeelWidgetSDK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SeelEnvironment","defaultApiVersion","defaultSeelEnvironment","Production","SeelWidgetSDK","_shared","shared","_apiKey","_apiVersion","_environment","constructor","configure","props","apiKey","apiVersion","environment","baseURL","isConfigured"],"sourceRoot":"../../../src","sources":["core/SeelWidgetSDK.ts"],"mappings":";;AAAA;AACA;AACA;AACA,WAAYA,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAK3B,MAAMC,iBAAyB,GAAG,OAAO;AACzC,MAAMC,sBAAuC,GAAGF,eAAe,CAACG,UAAU;AAQ1E;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,CAAC;EACzB;EACA,OAAeC,OAAO,GAAyB,IAAI;EAEnD,WAAkBC,MAAMA,CAAA,EAAkB;IACxC,IAAI,CAACF,aAAa,CAACC,OAAO,EAAE;MAC1BD,aAAa,CAACC,OAAO,GAAG,IAAID,aAAa,CAAC,CAAC;IAC7C;IACA,OAAOA,aAAa,CAACC,OAAO;EAC9B;;EAEA;EACQE,OAAO,GAAW,EAAE;EACpBC,WAAW,GAAWP,iBAAiB;EACvCQ,YAAY,GAAoBP,sBAAsB;;EAE9D;EACQQ,WAAWA,CAAA,EAAG;IACpB;EAAA;;EAGF;;EAEA;AACF;AACA;AACA;AACA;EACSC,SAASA,CAACC,KAAyB,EAAQ;IAChD,IAAI,CAACL,OAAO,GAAGK,KAAK,CAACC,MAAM;IAC3B,IAAI,CAACL,WAAW,GAAGI,KAAK,CAACE,UAAU,IAAIb,iBAAiB;IACxD,IAAI,CAACQ,YAAY,GAAGG,KAAK,CAACG,WAAW,IAAIb,sBAAsB;EACjE;;EAEA;AACF;AACA;EACE,IAAWW,MAAMA,CAAA,EAAW;IAC1B,OAAO,IAAI,CAACN,OAAO;EACrB;;EAEA;AACF;AACA;EACE,IAAWO,UAAUA,CAAA,EAAW;IAC9B,OAAO,IAAI,CAACN,WAAW;EACzB;;EAEA;AACF;AACA;EACE,IAAWO,WAAWA,CAAA,EAAoB;IACxC,OAAO,IAAI,CAACN,YAAY;EAC1B;;EAEA;AACF;AACA;EACE,IAAWO,OAAOA,CAAA,EAAW;IAC3B,OAAO,IAAI,CAACP,YAAY,KAAKT,eAAe,CAACG,UAAU,GACnD,sBAAsB,GACtB,2BAA2B;EACjC;;EAEA;AACF;AACA;EACE,IAAWc,YAAYA,CAAA,EAAY;IACjC,OAAO,IAAI,CAACV,OAAO,KAAK,EAAE;EAC5B;AACF","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Events Request/Response class
5
+ * Converts snake_case API format to camelCase for internal use
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const iRequest: IEvents = {
10
+ * client_ip: '',
11
+ * customer_id: '',
12
+ * session_id: '',
13
+ * event_source: '',
14
+ * event_ts: '',
15
+ * event_type: EventTypeEnum.product_page_exit,
16
+ * };
17
+ *
18
+ * const request: EventsRequest = new EventsRequest(iRequest);
19
+ * ```
20
+ */
21
+ export default class EventsRequest {
22
+ /**
23
+ * Browser IP address
24
+ */
25
+
26
+ /**
27
+ * Customer Id
28
+ */
29
+
30
+ /**
31
+ * Device Id
32
+ */
33
+
34
+ /**
35
+ * Event Id
36
+ */
37
+
38
+ /**
39
+ * Event information object
40
+ * Each event_type has its own unique schema. For specific details, please refer to the custom pixel guide.
41
+ */
42
+
43
+ /**
44
+ * Event source
45
+ */
46
+
47
+ /**
48
+ * Event created timestamp in milliseconds
49
+ */
50
+
51
+ /**
52
+ * Event type
53
+ */
54
+
55
+ /**
56
+ * Session Id
57
+ */
58
+
59
+ constructor(props) {
60
+ this.clientIP = props.client_ip;
61
+ this.customerId = props.customer_id;
62
+ this.deviceId = props.device_id;
63
+ this.eventId = props.event_id;
64
+ this.eventInfo = props.event_info;
65
+ this.eventSource = props.event_source || '';
66
+ this.eventTs = props.event_ts;
67
+ this.eventType = props.event_type;
68
+ this.sessionId = props.session_id;
69
+ }
70
+ }
71
+ //# sourceMappingURL=EventsRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EventsRequest","constructor","props","clientIP","client_ip","customerId","customer_id","deviceId","device_id","eventId","event_id","eventInfo","event_info","eventSource","event_source","eventTs","event_ts","eventType","event_type","sessionId","session_id"],"sourceRoot":"../../../src","sources":["dto/EventsRequest.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMA,aAAa,CAAC;EACjC;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAGEC,WAAWA,CAACC,KAAc,EAAE;IAC1B,IAAI,CAACC,QAAQ,GAAGD,KAAK,CAACE,SAAS;IAC/B,IAAI,CAACC,UAAU,GAAGH,KAAK,CAACI,WAAW;IACnC,IAAI,CAACC,QAAQ,GAAGL,KAAK,CAACM,SAAS;IAC/B,IAAI,CAACC,OAAO,GAAGP,KAAK,CAACQ,QAAQ;IAC7B,IAAI,CAACC,SAAS,GAAGT,KAAK,CAACU,UAAU;IACjC,IAAI,CAACC,WAAW,GAAGX,KAAK,CAACY,YAAY,IAAI,EAAE;IAC3C,IAAI,CAACC,OAAO,GAAGb,KAAK,CAACc,QAAQ;IAC7B,IAAI,CAACC,SAAS,GAAGf,KAAK,CAACgB,UAAU;IACjC,IAAI,CAACC,SAAS,GAAGjB,KAAK,CAACkB,UAAU;EACnC;AACF","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ import EventsRequest from "./EventsRequest.js";
4
+
5
+ /**
6
+ * Events Response class
7
+ * Reuses EventsRequest since they have the same structure
8
+ * This avoids code duplication while maintaining semantic clarity
9
+ */
10
+ export default class EventsResponse extends EventsRequest {
11
+ constructor(props) {
12
+ super(props);
13
+ }
14
+ }
15
+ //# sourceMappingURL=EventsResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EventsRequest","EventsResponse","constructor","props"],"sourceRoot":"../../../src","sources":["dto/EventsResponse.ts"],"mappings":";;AACA,OAAOA,aAAa,MAAM,oBAAiB;;AAE3C;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,cAAc,SAASD,aAAa,CAAC;EACxDE,WAAWA,CAACC,KAAc,EAAE;IAC1B,KAAK,CAACA,KAAK,CAAC;EACd;AACF","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ export let EventTypeEnum = /*#__PURE__*/function (EventTypeEnum) {
4
+ EventTypeEnum["product_page_enter"] = "product_page_enter";
5
+ EventTypeEnum["product_page_exit"] = "product_page_exit";
6
+ EventTypeEnum["product_share"] = "product_share";
7
+ EventTypeEnum["favorite_add"] = "favorite_add";
8
+ EventTypeEnum["favorite_remove"] = "favorite_remove";
9
+ EventTypeEnum["cart_add"] = "cart_add";
10
+ EventTypeEnum["cart_remove"] = "cart_remove";
11
+ EventTypeEnum["ra_checked"] = "ra_checked";
12
+ EventTypeEnum["ra_unchecked"] = "ra_unchecked";
13
+ EventTypeEnum["checkout_begin"] = "checkout_begin";
14
+ EventTypeEnum["checkout_complete"] = "checkout_complete";
15
+ return EventTypeEnum;
16
+ }({});
17
+
18
+ /**
19
+ * Event type union type
20
+ * Can be simplified to: export type EventType = EventTypeEnum;
21
+ */
22
+
23
+ /**
24
+ * Shipping address information for events
25
+ */
26
+
27
+ /**
28
+ * Event information object
29
+ * Each event_type has its own unique schema. For specific details, please refer to the custom pixel guide.
30
+ */
31
+ //# sourceMappingURL=IEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EventTypeEnum"],"sourceRoot":"../../../src","sources":["dto/IEvents.ts"],"mappings":";;AAAA,WAAYA,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;;AAczB;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAQA;AACA;AACA;AACA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=IQuotes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["dto/IQuotes.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=IQuotesRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["dto/IQuotesRequest.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=IQuotesResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["dto/IQuotesResponse.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export function multiply(a, b) {
4
+ return a * b;
5
+ }
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["multiply","a","b"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAO,SAASA,QAAQA,CAACC,CAAS,EAAEC,CAAS,EAAU;EACrD,OAAOD,CAAC,GAAGC,CAAC;AACd","ignoreList":[]}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+
3
+ import { SeelEnvironment, SeelWidgetSDK } from "../core/SeelWidgetSDK.js";
4
+ // SeelWidgetSDK.shared.configure({
5
+ // apiKey: 'yojct9zbwxok8961hr7e1s6i3fgmm1o1',
6
+ // environment: SeelEnvironment.Development,
7
+ // });
8
+
9
+ SeelWidgetSDK.shared.configure({
10
+ apiKey: '5ctiodrhqyfkcjqhli4wwnwi6cakrs5r',
11
+ environment: SeelEnvironment.Development
12
+ });
13
+ const defaultXSeelApiKey = SeelWidgetSDK.shared.apiKey || '';
14
+ const defaultXSeelApiVersion = SeelWidgetSDK.shared.apiVersion || '';
15
+ class Request {
16
+ defaultHeaders = {
17
+ 'Accept': 'application/json',
18
+ 'Content-Type': 'application/json',
19
+ 'X-Seel-API-Key': defaultXSeelApiKey,
20
+ 'X-Seel-API-Version': defaultXSeelApiVersion
21
+ };
22
+ defaultTimeout = 5000; // 5 seconds
23
+
24
+ /**
25
+ * Set default request headers
26
+ */
27
+ setDefaultHeaders(headers) {
28
+ this.defaultHeaders = {
29
+ ...this.defaultHeaders,
30
+ ...headers
31
+ };
32
+ }
33
+
34
+ /**
35
+ * Set default timeout
36
+ */
37
+ setDefaultTimeout(timeout) {
38
+ this.defaultTimeout = timeout;
39
+ }
40
+
41
+ /**
42
+ * Build query string
43
+ */
44
+ buildQueryString(params) {
45
+ const queryParams = new URLSearchParams();
46
+ Object.keys(params).forEach(key => {
47
+ const value = params[key];
48
+ if (value !== undefined && value !== null && value !== '') {
49
+ queryParams.append(key, String(value));
50
+ }
51
+ });
52
+ return queryParams.toString();
53
+ }
54
+
55
+ /**
56
+ * Handle request timeout
57
+ */
58
+ createTimeoutPromise(timeout) {
59
+ return new Promise((_, reject) => {
60
+ setTimeout(() => {
61
+ reject(new Error(`Request timeout after ${timeout}ms`));
62
+ }, timeout);
63
+ });
64
+ }
65
+
66
+ /**
67
+ * GET request
68
+ * @param url Request URL
69
+ * @param params Request parameters
70
+ * @param options Request options (headers, timeout, etc.)
71
+ * @returns Promise<any>
72
+ */
73
+ async get(url, params, options) {
74
+ try {
75
+ // Build full URL (including query parameters)
76
+ let fullUrl = url;
77
+ if (params && Object.keys(params).length > 0) {
78
+ const queryString = this.buildQueryString(params);
79
+ fullUrl = `${url}${url.includes('?') ? '&' : '?'}${queryString}`;
80
+ }
81
+
82
+ // Merge request headers
83
+ const headers = {
84
+ ...this.defaultHeaders,
85
+ ...options?.headers
86
+ };
87
+
88
+ // Create request configuration
89
+ const requestOptions = {
90
+ method: 'GET',
91
+ headers
92
+ };
93
+
94
+ // Handle timeout
95
+ const timeout = options?.timeout || this.defaultTimeout;
96
+ const timeoutPromise = this.createTimeoutPromise(timeout);
97
+
98
+ // Send request
99
+ const fetchPromise = fetch(fullUrl, requestOptions);
100
+
101
+ // Use Promise.race to handle timeout
102
+ const response = await Promise.race([fetchPromise, timeoutPromise]);
103
+
104
+ // Check response status
105
+ if (!response.ok) {
106
+ throw new Error(`HTTP error! status: ${response.status}`);
107
+ }
108
+
109
+ // Parse response data
110
+ const data = await response.json();
111
+ return data;
112
+ } catch (error) {
113
+ // Unified error handling
114
+ if (error instanceof Error) {
115
+ throw new Error(`GET request failed: ${error.message}`);
116
+ }
117
+ throw new Error('GET request failed: Unknown error');
118
+ }
119
+ }
120
+
121
+ /**
122
+ * POST request
123
+ * @param url Request URL
124
+ * @param data Request body data
125
+ * @param options Request options (headers, timeout, etc.)
126
+ * @returns Promise<any>
127
+ */
128
+ async post(url, data, options) {
129
+ try {
130
+ // Merge request headers
131
+ const headers = {
132
+ ...this.defaultHeaders,
133
+ ...options?.headers
134
+ };
135
+
136
+ // Build request body
137
+ let body;
138
+ if (data !== undefined && data !== null) {
139
+ // If data is already a string, use it directly
140
+ if (typeof data === 'string') {
141
+ body = data;
142
+ } else {
143
+ // Otherwise, serialize to JSON
144
+ body = JSON.stringify(data);
145
+ }
146
+ }
147
+
148
+ // Create request configuration
149
+ const requestOptions = {
150
+ method: 'POST',
151
+ headers,
152
+ ...(body && {
153
+ body
154
+ })
155
+ };
156
+
157
+ // Handle timeout
158
+ const timeout = options?.timeout || this.defaultTimeout;
159
+ const timeoutPromise = this.createTimeoutPromise(timeout);
160
+
161
+ // Send request
162
+ const fetchPromise = fetch(url, requestOptions);
163
+
164
+ // Use Promise.race to handle timeout
165
+ const response = await Promise.race([fetchPromise, timeoutPromise]);
166
+ // Check response status
167
+ if (!response.ok) {
168
+ throw new Error(`HTTP error! status: ${response.status}`);
169
+ }
170
+
171
+ // Parse response data
172
+ const responseData = await response.json();
173
+ return responseData;
174
+ } catch (error) {
175
+ // Unified error handling
176
+ if (error instanceof Error) {
177
+ throw new Error(`POST request failed: ${error.message}`);
178
+ }
179
+ throw new Error('POST request failed: Unknown error');
180
+ }
181
+ }
182
+ }
183
+
184
+ // Export singleton instance
185
+ export const instance = new Request();
186
+
187
+ // Export convenience methods
188
+ export const get = (url, params, options) => {
189
+ return instance.get(url, params, options);
190
+ };
191
+ export const post = (url, data, options) => {
192
+ return instance.post(url, data, options);
193
+ };
194
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SeelEnvironment","SeelWidgetSDK","shared","configure","apiKey","environment","Development","defaultXSeelApiKey","defaultXSeelApiVersion","apiVersion","Request","defaultHeaders","defaultTimeout","setDefaultHeaders","headers","setDefaultTimeout","timeout","buildQueryString","params","queryParams","URLSearchParams","Object","keys","forEach","key","value","undefined","append","String","toString","createTimeoutPromise","Promise","_","reject","setTimeout","Error","get","url","options","fullUrl","length","queryString","includes","requestOptions","method","timeoutPromise","fetchPromise","fetch","response","race","ok","status","data","json","error","message","post","body","JSON","stringify","responseData","instance"],"sourceRoot":"../../../src","sources":["network/request.ts"],"mappings":"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","ignoreList":[]}