fast-simon-sdk 1.6.28 → 1.6.81

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 (101) hide show
  1. package/README.md +68 -58
  2. package/lib/config.d.ts +3 -1
  3. package/lib/config.js +4 -2
  4. package/lib/config.js.map +1 -1
  5. package/lib/index.js +19 -9
  6. package/lib/index.js.map +1 -1
  7. package/lib/models/autocomplete.d.ts +3 -0
  8. package/lib/models/common.d.ts +22 -0
  9. package/lib/models/common.js +3 -0
  10. package/lib/models/common.js.map +1 -1
  11. package/lib/models/events.d.ts +10 -1
  12. package/lib/models/fullTextSearch.d.ts +2 -1
  13. package/lib/models/fullTextSearch.js.map +1 -1
  14. package/lib/models/related.d.ts +3 -0
  15. package/lib/models/smartCollections.d.ts +3 -1
  16. package/lib/sections/enums/index.d.ts +2 -0
  17. package/lib/sections/enums/index.js +2 -0
  18. package/lib/sections/enums/index.js.map +1 -1
  19. package/lib/sections/eventReporter/index.js +88 -23
  20. package/lib/sections/eventReporter/index.js.map +1 -1
  21. package/lib/sections/eventReporter/utils.d.ts +1 -1
  22. package/lib/sections/eventReporter/utils.js +6 -2
  23. package/lib/sections/eventReporter/utils.js.map +1 -1
  24. package/lib/sections/fullTextSearch/index.js +41 -8
  25. package/lib/sections/fullTextSearch/index.js.map +1 -1
  26. package/lib/sections/fullTextSearch/utils.d.ts +0 -1
  27. package/lib/sections/fullTextSearch/utils.js +11 -5
  28. package/lib/sections/fullTextSearch/utils.js.map +1 -1
  29. package/lib/sections/index.js +34 -2
  30. package/lib/sections/index.js.map +1 -1
  31. package/lib/sections/initialization/index.d.ts +2 -1
  32. package/lib/sections/initialization/index.js +63 -17
  33. package/lib/sections/initialization/index.js.map +1 -1
  34. package/lib/sections/initialization/utils.js +27 -10
  35. package/lib/sections/initialization/utils.js.map +1 -1
  36. package/lib/sections/instantSearch/index.d.ts +1 -1
  37. package/lib/sections/instantSearch/index.js +3 -3
  38. package/lib/sections/instantSearch/index.js.map +1 -1
  39. package/lib/sections/instantSearch/utils.d.ts +2 -1
  40. package/lib/sections/instantSearch/utils.js +4 -4
  41. package/lib/sections/instantSearch/utils.js.map +1 -1
  42. package/lib/sections/landingPage/index.js +9 -0
  43. package/lib/sections/landingPage/index.js.map +1 -1
  44. package/lib/sections/recommendations/index.d.ts +14 -0
  45. package/lib/sections/recommendations/index.js +71 -3
  46. package/lib/sections/recommendations/index.js.map +1 -1
  47. package/lib/sections/recommendations/utils.js +12 -7
  48. package/lib/sections/recommendations/utils.js.map +1 -1
  49. package/lib/sections/smartCollections/index.js +40 -7
  50. package/lib/sections/smartCollections/index.js.map +1 -1
  51. package/lib/sections/smartCollections/utils.d.ts +4 -4
  52. package/lib/sections/smartCollections/utils.js +47 -93
  53. package/lib/sections/smartCollections/utils.js.map +1 -1
  54. package/lib/services/ViewportImpressionTracker.d.ts +37 -0
  55. package/lib/services/ViewportImpressionTracker.js +218 -0
  56. package/lib/services/ViewportImpressionTracker.js.map +1 -0
  57. package/lib/services/common.d.ts +14 -6
  58. package/lib/services/common.js +35 -10
  59. package/lib/services/common.js.map +1 -1
  60. package/lib/services/fullTextSearch.d.ts +1 -1
  61. package/lib/services/fullTextSearch.js +39 -5
  62. package/lib/services/fullTextSearch.js.map +1 -1
  63. package/lib/services/related.d.ts +23 -3
  64. package/lib/services/related.js +36 -2
  65. package/lib/services/related.js.map +1 -1
  66. package/lib/services/reporting.d.ts +11 -13
  67. package/lib/services/reporting.js +24 -33
  68. package/lib/services/reporting.js.map +1 -1
  69. package/lib/services/smartCollections.d.ts +1 -1
  70. package/lib/services/smartCollections.js +44 -12
  71. package/lib/services/smartCollections.js.map +1 -1
  72. package/lib/services/viewportImpressions.d.ts +12 -0
  73. package/lib/services/viewportImpressions.js +211 -0
  74. package/lib/services/viewportImpressions.js.map +1 -0
  75. package/lib/utils/API.js +19 -4
  76. package/lib/utils/API.js.map +1 -1
  77. package/lib/utils/attentive.d.ts +1 -0
  78. package/lib/utils/attentive.js +36 -0
  79. package/lib/utils/attentive.js.map +1 -0
  80. package/lib/utils/debug.d.ts +1 -0
  81. package/lib/utils/debug.js +13 -1
  82. package/lib/utils/debug.js.map +1 -1
  83. package/lib/utils/logger.d.ts +2 -0
  84. package/lib/utils/logger.js +26 -0
  85. package/lib/utils/logger.js.map +1 -0
  86. package/lib/utils/personalization.d.ts +5 -0
  87. package/lib/utils/personalization.js +18 -3
  88. package/lib/utils/personalization.js.map +1 -1
  89. package/lib/utils/personalizationSegment.d.ts +2 -0
  90. package/lib/utils/personalizationSegment.js +17 -0
  91. package/lib/utils/personalizationSegment.js.map +1 -0
  92. package/lib/utils/siteStateValidator.d.ts +25 -0
  93. package/lib/utils/siteStateValidator.js +45 -0
  94. package/lib/utils/siteStateValidator.js.map +1 -0
  95. package/lib/utils/updateRecentSearches.d.ts +2 -2
  96. package/lib/utils/updateRecentSearches.js +22 -14
  97. package/lib/utils/updateRecentSearches.js.map +1 -1
  98. package/lib/utils/validation.d.ts +1 -0
  99. package/lib/utils/validation.js +13 -1
  100. package/lib/utils/validation.js.map +1 -1
  101. package/package.json +44 -41
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setPersonalizationSegment = setPersonalizationSegment;
4
+ exports.getPersonalizationSegment = getPersonalizationSegment;
5
+ var ISP_PERSONALIZATION_SEGMENT_KEY = 'ISP_PERSONALIZATION_SEGMENT';
6
+ function setPersonalizationSegment(segment) {
7
+ if (segment) {
8
+ localStorage.setItem(ISP_PERSONALIZATION_SEGMENT_KEY, segment);
9
+ }
10
+ else {
11
+ localStorage.removeItem(ISP_PERSONALIZATION_SEGMENT_KEY);
12
+ }
13
+ }
14
+ function getPersonalizationSegment() {
15
+ return localStorage.getItem(ISP_PERSONALIZATION_SEGMENT_KEY) || undefined;
16
+ }
17
+ //# sourceMappingURL=personalizationSegment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personalizationSegment.js","sourceRoot":"","sources":["../../src/utils/personalizationSegment.ts"],"names":[],"mappings":";;AAEA,8DAMC;AAED,8DAEC;AAZD,IAAM,+BAA+B,GAAG,6BAA6B,CAAC;AAEtE,SAAgB,yBAAyB,CAAC,OAA2B;IACjE,IAAI,OAAO,EAAE,CAAC;QACV,YAAY,CAAC,OAAO,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACJ,YAAY,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC;IAC7D,CAAC;AACL,CAAC;AAED,SAAgB,yBAAyB;IACrC,OAAO,YAAY,CAAC,OAAO,CAAC,+BAA+B,CAAC,IAAI,SAAS,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { SDKUtils } from "../models/common";
2
+ /**
3
+ * Checks if the site is uninstalled or inactive
4
+ * Site states <= 2 are considered active:
5
+ * - 0: AFTER_EXTENSION_INSTALL_SITE_STATE (product sync in progress)
6
+ * - 1: HAS_PRODUCTS_SITE_STATE (synced products)
7
+ * - 2: LIVE_SITE_STATE (active and live)
8
+ *
9
+ * Site states > 2 are considered uninstalled/inactive:
10
+ * - 3: REMOVING_PRODUCTS_SITE_STATE
11
+ * - 10: FETCHING_PRODUCTS_FAILED_SITE_STATE
12
+ * - 11: SITE_DOWN_SITE_STATE
13
+ * - 12: NO_JS_IN_PAGE_SITE_STATE
14
+ * - 13: UNINSTALLED_SITE_STATE
15
+ * - 14: DEACTIVATE_SITE_STATE
16
+ * - 99: OVER_CAPACITY_SITE_STATE
17
+ * - 4: UNAUTHORISED_ACCESS_SITE_STATE
18
+ */
19
+ export declare const isUninstalledSite: (sdkUtils: SDKUtils) => boolean;
20
+ /**
21
+ * Validates the site state before making API requests
22
+ * Logs a console error if the site is uninstalled
23
+ * Returns true if the site is valid (can make requests), false otherwise
24
+ */
25
+ export declare const validateSiteState: (sdkUtils: SDKUtils) => boolean;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateSiteState = exports.isUninstalledSite = void 0;
4
+ // Site state constants (from am_const.py)
5
+ var UNINSTALLED_THRESHOLD = 2; // If state > 2, the site is considered uninstalled/inactive
6
+ /**
7
+ * Checks if the site is uninstalled or inactive
8
+ * Site states <= 2 are considered active:
9
+ * - 0: AFTER_EXTENSION_INSTALL_SITE_STATE (product sync in progress)
10
+ * - 1: HAS_PRODUCTS_SITE_STATE (synced products)
11
+ * - 2: LIVE_SITE_STATE (active and live)
12
+ *
13
+ * Site states > 2 are considered uninstalled/inactive:
14
+ * - 3: REMOVING_PRODUCTS_SITE_STATE
15
+ * - 10: FETCHING_PRODUCTS_FAILED_SITE_STATE
16
+ * - 11: SITE_DOWN_SITE_STATE
17
+ * - 12: NO_JS_IN_PAGE_SITE_STATE
18
+ * - 13: UNINSTALLED_SITE_STATE
19
+ * - 14: DEACTIVATE_SITE_STATE
20
+ * - 99: OVER_CAPACITY_SITE_STATE
21
+ * - 4: UNAUTHORISED_ACCESS_SITE_STATE
22
+ */
23
+ var isUninstalledSite = function (sdkUtils) {
24
+ var siteState = sdkUtils.data.siteState;
25
+ if (siteState === undefined || siteState === null) {
26
+ // If state is not available, assume the site is valid
27
+ return false;
28
+ }
29
+ return siteState > UNINSTALLED_THRESHOLD;
30
+ };
31
+ exports.isUninstalledSite = isUninstalledSite;
32
+ /**
33
+ * Validates the site state before making API requests
34
+ * Logs a console error if the site is uninstalled
35
+ * Returns true if the site is valid (can make requests), false otherwise
36
+ */
37
+ var validateSiteState = function (sdkUtils) {
38
+ if ((0, exports.isUninstalledSite)(sdkUtils)) {
39
+ console.error("Fast Simon account is uninstalled");
40
+ return false;
41
+ }
42
+ return true;
43
+ };
44
+ exports.validateSiteState = validateSiteState;
45
+ //# sourceMappingURL=siteStateValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siteStateValidator.js","sourceRoot":"","sources":["../../src/utils/siteStateValidator.ts"],"names":[],"mappings":";;;AAEA,0CAA0C;AAC1C,IAAM,qBAAqB,GAAG,CAAC,CAAC,CAAC,4DAA4D;AAE7F;;;;;;;;;;;;;;;;GAgBG;AACI,IAAM,iBAAiB,GAAG,UAAC,QAAkB;IAChD,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;IAE1C,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QAChD,sDAAsD;QACtD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,GAAG,qBAAqB,CAAC;AAC7C,CAAC,CAAC;AATW,QAAA,iBAAiB,qBAS5B;AAEF;;;;GAIG;AACI,IAAM,iBAAiB,GAAG,UAAC,QAAkB;IAChD,IAAI,IAAA,yBAAiB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B"}
@@ -1,11 +1,11 @@
1
1
  export default function updateRecentSearches(params: object): void;
2
2
  /**
3
- * Fetches recent product as list of product id.
3
+ * Fetches recent product as list of product id (stripped of variant suffix).
4
4
  * @returns {string[]} A list of product IDs.
5
5
  */
6
6
  export declare function getRecentProducts(): string[];
7
7
  /**
8
- * Fetches recent product as a record of id and timestamp.
8
+ * Fetches recent product as a record of id and timestamp (keys stripped of variant suffix).
9
9
  * @returns {Record<string, number>} A map of product IDs to their timestamps.
10
10
  */
11
11
  export declare function getRecentProductsTimestamps(): Record<string, number>;
@@ -6,29 +6,32 @@ exports.getRecentProductsTimestamps = getRecentProductsTimestamps;
6
6
  var config_1 = require("../config");
7
7
  var RELATED_KEY = "ISP_PRODUCTS_VIEWED_SESSION_2";
8
8
  function updateRecentSearches(params) {
9
- var _a, _b, _c, _d, _e, _f, _g;
9
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
10
10
  var anyParams = params;
11
- var id = (_c = (_b = (_a = anyParams.id) !== null && _a !== void 0 ? _a : anyParams.product_id) !== null && _b !== void 0 ? _b : anyParams.pid) !== null && _c !== void 0 ? _c : null;
12
- var query = (_f = (_e = (_d = anyParams.original_search_query) !== null && _d !== void 0 ? _d : anyParams.serp) !== null && _e !== void 0 ? _e : anyParams.original_smart_navigation) !== null && _f !== void 0 ? _f : null;
11
+ var id = (_d = (_c = (_b = (_a = anyParams.id) !== null && _a !== void 0 ? _a : anyParams.product_id) !== null && _b !== void 0 ? _b : anyParams.pid) !== null && _c !== void 0 ? _c : anyParams.cart_product) !== null && _d !== void 0 ? _d : null;
12
+ var variantId = (_e = anyParams.variant_id) !== null && _e !== void 0 ? _e : null;
13
+ var query = (_h = (_g = (_f = anyParams.original_search_query) !== null && _f !== void 0 ? _f : anyParams.serp) !== null && _g !== void 0 ? _g : anyParams.original_smart_navigation) !== null && _h !== void 0 ? _h : null;
13
14
  if (!id) {
14
15
  return;
15
16
  }
17
+ var compositeKey = variantId ? "".concat(id, "::").concat(variantId) : String(id);
16
18
  var now = parseInt(String(Date.now() / 1000), 10); // sec since 1970...
17
- var products = JSON.parse((_g = localStorage.getItem(RELATED_KEY)) !== null && _g !== void 0 ? _g : '[]');
19
+ var products = JSON.parse((_j = localStorage.getItem(RELATED_KEY)) !== null && _j !== void 0 ? _j : '[]');
18
20
  var newProducts = [];
19
- var ids = new Set();
20
- newProducts.push([Number(id), now, query]);
21
- ids.add(Number(id));
21
+ var keys = new Set();
22
+ newProducts.push([compositeKey, now, query]);
23
+ keys.add(compositeKey);
22
24
  for (var i = 0; i < products.length && newProducts.length < config_1.RECENT_PRODUCTS_LENGTH_LIMIT; i++) {
23
- if (!ids.has(Number(products[i][0])) && (now - products[i][1]) <= config_1.RECENT_PRODUCTS_EXPIRY_DAYS * 24 * 60 * 60) {
25
+ var existingKey = String(products[i][0]);
26
+ if (!keys.has(existingKey) && (now - products[i][1]) <= config_1.RECENT_PRODUCTS_EXPIRY_DAYS * 24 * 60 * 60) {
24
27
  newProducts.push(products[i]);
25
- ids.add(Number(products[i][0]));
28
+ keys.add(existingKey);
26
29
  }
27
30
  }
28
31
  localStorage.setItem(RELATED_KEY, JSON.stringify(newProducts));
29
32
  }
30
33
  /**
31
- * Parses the stored “recent products” array from localStorage,
34
+ * Parses the stored "recent products" array from localStorage,
32
35
  * filters out items older than RECENT_PRODUCTS_EXPIRY_DAYS days,
33
36
  * sorts by timestamp (oldest → newest), and returns up to the
34
37
  * last RECENT_PRODUCTS_LENGTH_LIMIT entries.
@@ -56,25 +59,30 @@ function parseRecentProducts() {
56
59
  return [];
57
60
  }
58
61
  }
62
+ function extractProductId(key) {
63
+ var str = String(key);
64
+ var idx = str.indexOf('::');
65
+ return idx !== -1 ? str.substring(0, idx) : str;
66
+ }
59
67
  /**
60
- * Fetches recent product as list of product id.
68
+ * Fetches recent product as list of product id (stripped of variant suffix).
61
69
  * @returns {string[]} A list of product IDs.
62
70
  */
63
71
  function getRecentProducts() {
64
72
  var recentProducts = parseRecentProducts().map(function (_a) {
65
73
  var id = _a[0];
66
- return id;
74
+ return extractProductId(id);
67
75
  });
68
76
  return Array.from(new Set(recentProducts));
69
77
  }
70
78
  /**
71
- * Fetches recent product as a record of id and timestamp.
79
+ * Fetches recent product as a record of id and timestamp (keys stripped of variant suffix).
72
80
  * @returns {Record<string, number>} A map of product IDs to their timestamps.
73
81
  */
74
82
  function getRecentProductsTimestamps() {
75
83
  return parseRecentProducts().reduce(function (acc, _a) {
76
84
  var id = _a[0], timestamp = _a[1];
77
- acc[id] = timestamp;
85
+ acc[extractProductId(id)] = timestamp;
78
86
  return acc;
79
87
  }, {});
80
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"updateRecentSearches.js","sourceRoot":"","sources":["../../src/utils/updateRecentSearches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updateRecentSearches.js","sourceRoot":"","sources":["../../src/utils/updateRecentSearches.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ import { SDKUtils } from "../models/common";
2
2
  export declare const validateUUID: (uuid: string) => boolean;
3
3
  export declare const validateParams: (validators: string[], props: object) => boolean;
4
4
  export declare const isValidAPIUser: (sdkUtils: SDKUtils) => boolean;
5
+ export declare const validateReportData: (eventName: string, requiredFields: string[], data: Record<string, any>) => boolean;
5
6
  export declare const validateCallbackParams: (props: object) => boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateCallbackParams = exports.isValidAPIUser = exports.validateParams = exports.validateUUID = void 0;
3
+ exports.validateCallbackParams = exports.validateReportData = exports.isValidAPIUser = exports.validateParams = exports.validateUUID = void 0;
4
4
  var config_1 = require("../config");
5
5
  var validateUUID = function (uuid) {
6
6
  if (uuid.split("-").length === 5) {
@@ -29,6 +29,18 @@ var isValidAPIUser = function (sdkUtils) {
29
29
  return true;
30
30
  };
31
31
  exports.isValidAPIUser = isValidAPIUser;
32
+ var validateReportData = function (eventName, requiredFields, data) {
33
+ var valid = true;
34
+ for (var _i = 0, requiredFields_1 = requiredFields; _i < requiredFields_1.length; _i++) {
35
+ var field = requiredFields_1[_i];
36
+ if (!data[field]) {
37
+ console.log("%c\u274C IS+ SDK Error | ".concat(eventName, ": param \"").concat(field, "\" missing or empty"), 'font-weight: bold; font-size: 12px; color: red');
38
+ valid = false;
39
+ }
40
+ }
41
+ return valid;
42
+ };
43
+ exports.validateReportData = validateReportData;
32
44
  var validateCallbackParams = function (props) {
33
45
  var result = true;
34
46
  for (var _i = 0, _a = ["onProductsLoaded", "onFacetsLoaded"]; _i < _a.length; _i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":";;;AACA,oCAAwC;AAEjC,IAAM,YAAY,GAAG,UAAC,IAAY;IACrC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,uCAAkC,EAAE,gDAAgD,CAAC,CAAC;IAClG,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AANW,QAAA,YAAY,gBAMvB;AAEK,IAAM,cAAc,GAAG,UAAC,UAAoB,EAAE,KAAa;IAC9D,KAAgB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,EAAE,CAAC;QAAxB,IAAM,CAAC,mBAAA;QACR,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,0CAA8B,CAAC,aAAU,EAAE,gDAAgD,CAAC,CAAC;YACzG,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AARW,QAAA,cAAc,kBAQzB;AAEK,IAAM,cAAc,GAAG,UAAC,QAAkB;IAC7C,IAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,YAAK,sBAAa,CAAE,EAAE,gDAAgD,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEK,IAAM,sBAAsB,GAAG,UAAC,KAAa;IAChD,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAgB,UAAsC,EAAtC,MAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAAtC,cAAsC,EAAtC,IAAsC,EAAE,CAAC;QAApD,IAAM,CAAC,SAAA;QACR,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChB,MAAM,GAAG,KAAK,CAAC;QACnB,CAAC;IACL,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mFAA0E,EAAE,gDAAgD,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3J,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAbW,QAAA,sBAAsB,0BAajC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":";;;AACA,oCAAwC;AAEjC,IAAM,YAAY,GAAG,UAAC,IAAY;IACrC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,uCAAkC,EAAE,gDAAgD,CAAC,CAAC;IAClG,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AANW,QAAA,YAAY,gBAMvB;AAEK,IAAM,cAAc,GAAG,UAAC,UAAoB,EAAE,KAAa;IAC9D,KAAgB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,EAAE,CAAC;QAAxB,IAAM,CAAC,mBAAA;QACR,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,0CAA8B,CAAC,aAAU,EAAE,gDAAgD,CAAC,CAAC;YACzG,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AARW,QAAA,cAAc,kBAQzB;AAEK,IAAM,cAAc,GAAG,UAAC,QAAkB;IAC7C,IAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,YAAK,sBAAa,CAAE,EAAE,gDAAgD,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEK,IAAM,kBAAkB,GAAG,UAAC,SAAiB,EAAE,cAAwB,EAAE,IAAyB;IACrG,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,KAAoB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE,CAAC;QAAhC,IAAM,KAAK,uBAAA;QACZ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,mCAAuB,SAAS,uBAAY,KAAK,wBAAoB,EAAE,gDAAgD,CAAC,CAAC;YACrI,KAAK,GAAG,KAAK,CAAC;QAClB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AATW,QAAA,kBAAkB,sBAS7B;AAEK,IAAM,sBAAsB,GAAG,UAAC,KAAa;IAChD,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAgB,UAAsC,EAAtC,MAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAAtC,cAAsC,EAAtC,IAAsC,EAAE,CAAC;QAApD,IAAM,CAAC,SAAA;QACR,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChB,MAAM,GAAG,KAAK,CAAC;QACnB,CAAC;IACL,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mFAA0E,EAAE,gDAAgD,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3J,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAbW,QAAA,sBAAsB,0BAajC"}
package/package.json CHANGED
@@ -1,41 +1,44 @@
1
- {
2
- "name": "fast-simon-sdk",
3
- "version": "1.6.28",
4
- "author": {
5
- "name": "Fast Simon inc",
6
- "url": "",
7
- "email": ""
8
- },
9
- "scripts": {
10
- "clean": "node ./utils/clean.js",
11
- "create-documentation": "node ./utils/markdown.js",
12
- "build-cdn": "webpack && npm run babel-ie11",
13
- "babel-ie11": "npx babel dist/index.js --out-file dist/index.ie11.js",
14
- "prepublishOnly": "tsc",
15
- "webpack": "webpack",
16
- "tsc": "tsc",
17
- "link": "tsc --project tsconfig-link.json && npm link"
18
- },
19
- "main": "lib/index.js",
20
- "types": "lib/index.d.ts",
21
- "devDependencies": {
22
- "@babel/cli": "^7.16.8",
23
- "@babel/core": "^7.16.7",
24
- "@babel/preset-env": "^7.16.8",
25
- "@types/node": "^22.13.10",
26
- "babel-preset-minify": "^0.5.1",
27
- "ts-loader": "^8.0.17",
28
- "typescript": "^5.8.2",
29
- "unminified-webpack-plugin": "^3.0.0",
30
- "webpack": "^5.92.0",
31
- "webpack-cli": "^4.10.0"
32
- },
33
- "files": [
34
- "lib/**/*"
35
- ],
36
- "dependencies": {
37
- "@fast-simon/bigcommerce_customer": "1.0.44",
38
- "@fast-simon/utilities": "^1.0.50",
39
- "axios": "^0.21.1"
40
- }
41
- }
1
+ {
2
+ "name": "fast-simon-sdk",
3
+ "version": "1.6.81",
4
+ "author": {
5
+ "name": "Fast Simon inc",
6
+ "url": "",
7
+ "email": ""
8
+ },
9
+ "scripts": {
10
+ "clean": "node ./utils/clean.js",
11
+ "create-documentation": "node ./utils/markdown.js",
12
+ "build-cdn": "webpack && npm run babel-ie11",
13
+ "babel-ie11": "npx babel dist/index.js --out-file dist/index.ie11.js",
14
+ "prepublishOnly": "tsc",
15
+ "webpack": "webpack",
16
+ "tsc": "tsc",
17
+ "link": "tsc --project tsconfig-link.json && npm link",
18
+ "test": "vitest run"
19
+ },
20
+ "main": "lib/index.js",
21
+ "types": "lib/index.d.ts",
22
+ "devDependencies": {
23
+ "@babel/cli": "^7.16.8",
24
+ "@babel/core": "^7.16.7",
25
+ "@babel/preset-env": "^7.16.8",
26
+ "@types/node": "^22.13.10",
27
+ "babel-preset-minify": "^0.5.1",
28
+ "ts-loader": "^8.0.17",
29
+ "typescript": "^5.8.2",
30
+ "unminified-webpack-plugin": "^3.0.0",
31
+ "jsdom": "^26.0.0",
32
+ "vitest": "^3.0.0",
33
+ "webpack": "^5.92.0",
34
+ "webpack-cli": "^4.10.0"
35
+ },
36
+ "files": [
37
+ "lib/**/*"
38
+ ],
39
+ "dependencies": {
40
+ "@fast-simon/bigcommerce_customer": "1.0.44",
41
+ "@fast-simon/utilities": "^1.0.50",
42
+ "axios": "^0.21.1"
43
+ }
44
+ }