fast-simon-sdk 1.6.4 → 1.6.8

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 (82) hide show
  1. package/lib/config.d.ts +3 -0
  2. package/lib/config.js +4 -1
  3. package/lib/config.js.map +1 -1
  4. package/lib/index.js +2 -1
  5. package/lib/index.js.map +1 -1
  6. package/lib/models/autocomplete.d.ts +4 -1
  7. package/lib/models/common.d.ts +59 -0
  8. package/lib/models/common.js +3 -1
  9. package/lib/models/common.js.map +1 -1
  10. package/lib/models/events.d.ts +27 -1
  11. package/lib/models/fullTextSearch.d.ts +4 -0
  12. package/lib/models/fullTextSearch.js.map +1 -1
  13. package/lib/models/smartCollections.d.ts +4 -0
  14. package/lib/models/visualDiscovery.d.ts +129 -0
  15. package/lib/models/visualDiscovery.js +31 -0
  16. package/lib/models/visualDiscovery.js.map +1 -0
  17. package/lib/sections/enums/index.d.ts +2 -0
  18. package/lib/sections/enums/index.js +2 -0
  19. package/lib/sections/enums/index.js.map +1 -1
  20. package/lib/sections/eventReporter/index.js +147 -20
  21. package/lib/sections/eventReporter/index.js.map +1 -1
  22. package/lib/sections/eventReporter/utils.js +2 -0
  23. package/lib/sections/eventReporter/utils.js.map +1 -1
  24. package/lib/sections/fullTextSearch/index.js +12 -5
  25. package/lib/sections/fullTextSearch/index.js.map +1 -1
  26. package/lib/sections/fullTextSearch/utils.d.ts +1 -1
  27. package/lib/sections/fullTextSearch/utils.js +8 -4
  28. package/lib/sections/fullTextSearch/utils.js.map +1 -1
  29. package/lib/sections/index.js +92 -0
  30. package/lib/sections/index.js.map +1 -1
  31. package/lib/sections/initialization/utils.js +5 -1
  32. package/lib/sections/initialization/utils.js.map +1 -1
  33. package/lib/sections/landingPage/utils.js +6 -0
  34. package/lib/sections/landingPage/utils.js.map +1 -1
  35. package/lib/sections/recommendations/index.d.ts +5 -1
  36. package/lib/sections/recommendations/index.js +49 -2
  37. package/lib/sections/recommendations/index.js.map +1 -1
  38. package/lib/sections/recommendations/utils.d.ts +0 -1
  39. package/lib/sections/recommendations/utils.js +0 -9
  40. package/lib/sections/recommendations/utils.js.map +1 -1
  41. package/lib/sections/smartCollections/index.js +12 -6
  42. package/lib/sections/smartCollections/index.js.map +1 -1
  43. package/lib/sections/smartCollections/utils.d.ts +1 -0
  44. package/lib/sections/smartCollections/utils.js +15 -3
  45. package/lib/sections/smartCollections/utils.js.map +1 -1
  46. package/lib/sections/visualDiscovery/index.d.ts +22 -0
  47. package/lib/sections/visualDiscovery/index.js +266 -0
  48. package/lib/sections/visualDiscovery/index.js.map +1 -0
  49. package/lib/services/fullTextSearch.d.ts +1 -1
  50. package/lib/services/fullTextSearch.js +9 -6
  51. package/lib/services/fullTextSearch.js.map +1 -1
  52. package/lib/services/related.d.ts +19 -0
  53. package/lib/services/related.js +42 -0
  54. package/lib/services/related.js.map +1 -1
  55. package/lib/services/reporting.d.ts +14 -2
  56. package/lib/services/reporting.js +58 -8
  57. package/lib/services/reporting.js.map +1 -1
  58. package/lib/services/smartCollections.d.ts +1 -1
  59. package/lib/services/smartCollections.js +17 -6
  60. package/lib/services/smartCollections.js.map +1 -1
  61. package/lib/services/visualDiscovery.d.ts +9 -0
  62. package/lib/services/visualDiscovery.js +171 -0
  63. package/lib/services/visualDiscovery.js.map +1 -0
  64. package/lib/utils/ABTesting.d.ts +2 -1
  65. package/lib/utils/ABTesting.js +16 -2
  66. package/lib/utils/ABTesting.js.map +1 -1
  67. package/lib/utils/bindingBoxes.d.ts +23 -0
  68. package/lib/utils/bindingBoxes.js +90 -0
  69. package/lib/utils/bindingBoxes.js.map +1 -0
  70. package/lib/utils/image.d.ts +6 -0
  71. package/lib/utils/image.js +154 -0
  72. package/lib/utils/image.js.map +1 -0
  73. package/lib/utils/personalization.d.ts +2 -0
  74. package/lib/utils/personalization.js +21 -0
  75. package/lib/utils/personalization.js.map +1 -0
  76. package/lib/utils/sortUtil.d.ts +1 -0
  77. package/lib/utils/sortUtil.js +25 -0
  78. package/lib/utils/sortUtil.js.map +1 -0
  79. package/lib/utils/updateRecentSearches.d.ts +1 -0
  80. package/lib/utils/updateRecentSearches.js +33 -2
  81. package/lib/utils/updateRecentSearches.js.map +1 -1
  82. package/package.json +1 -1
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ // TypeScript version of the compressImage function and its dependencies
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ var __generator = (this && this.__generator) || function (thisArg, body) {
13
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
14
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
15
+ function verb(n) { return function (v) { return step([n, v]); }; }
16
+ function step(op) {
17
+ if (f) throw new TypeError("Generator is already executing.");
18
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
19
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
20
+ if (y = 0, t) op = [op[0] & 2, t.value];
21
+ switch (op[0]) {
22
+ case 0: case 1: t = op; break;
23
+ case 4: _.label++; return { value: op[1], done: false };
24
+ case 5: _.label++; y = op[1]; op = [0]; continue;
25
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
26
+ default:
27
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
28
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
29
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
30
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
31
+ if (t[2]) _.ops.pop();
32
+ _.trys.pop(); continue;
33
+ }
34
+ op = body.call(thisArg, _);
35
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
36
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
37
+ }
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.compressAndConvertToBase64 = void 0;
41
+ var compressAndConvertToBase64 = function (file, targetSizeKB) { return __awaiter(void 0, void 0, void 0, function () {
42
+ var compressedImageSrc, error_1;
43
+ return __generator(this, function (_a) {
44
+ switch (_a.label) {
45
+ case 0:
46
+ _a.trys.push([0, 2, , 3]);
47
+ return [4 /*yield*/, compressImage(file, targetSizeKB)];
48
+ case 1:
49
+ compressedImageSrc = _a.sent();
50
+ return [2 /*return*/, compressedImageSrc.split(",")[1]]; // Extract Base64
51
+ case 2:
52
+ error_1 = _a.sent();
53
+ console.error("Error compressing image:", error_1);
54
+ alert("Failed to compress the image.");
55
+ return [2 /*return*/, null];
56
+ case 3: return [2 /*return*/];
57
+ }
58
+ });
59
+ }); };
60
+ exports.compressAndConvertToBase64 = compressAndConvertToBase64;
61
+ function compressImage(imageFile, targetFileSizeKB) {
62
+ return __awaiter(this, void 0, void 0, function () {
63
+ var imageSizeKB, dataUrl, low, middle, high, result, file, maxDeviation, maxIterations, img, canvas, context;
64
+ return __generator(this, function (_a) {
65
+ switch (_a.label) {
66
+ case 0:
67
+ imageSizeKB = imageFile.size / 1024;
68
+ return [4 /*yield*/, getImageDataAsUrl(imageFile)];
69
+ case 1:
70
+ dataUrl = _a.sent();
71
+ if (imageSizeKB <= targetFileSizeKB) {
72
+ return [2 /*return*/, dataUrl];
73
+ }
74
+ low = 0.0;
75
+ middle = 0.5;
76
+ high = 1.0;
77
+ result = dataUrl;
78
+ file = imageFile;
79
+ maxDeviation = 50;
80
+ maxIterations = 10;
81
+ _a.label = 2;
82
+ case 2:
83
+ if (!(Math.abs(file.size / 1024 - targetFileSizeKB) > maxDeviation && maxIterations-- > 0)) return [3 /*break*/, 5];
84
+ return [4 /*yield*/, loadImage(dataUrl)];
85
+ case 3:
86
+ img = _a.sent();
87
+ canvas = drawImageInCanvas(img);
88
+ context = canvas.getContext("2d");
89
+ if (!context) {
90
+ throw new Error("Failed to get 2D context from canvas.");
91
+ }
92
+ canvas.width = Math.round(img.width * middle);
93
+ canvas.height = Math.round(img.height * middle);
94
+ context.scale(canvas.width / img.width, canvas.height / img.height);
95
+ context.drawImage(img, 0, 0);
96
+ return [4 /*yield*/, readFileFromUrl(canvas.toDataURL(), "compressed", imageFile.type)];
97
+ case 4:
98
+ file = _a.sent();
99
+ if (file.size / 1024 < targetFileSizeKB - maxDeviation) {
100
+ low = middle;
101
+ }
102
+ else if (file.size / 1024 > targetFileSizeKB) {
103
+ high = middle;
104
+ }
105
+ middle = (low + high) / 2;
106
+ result = canvas.toDataURL();
107
+ return [3 /*break*/, 2];
108
+ case 5: return [2 /*return*/, result];
109
+ }
110
+ });
111
+ });
112
+ }
113
+ function getImageDataAsUrl(imageFile) {
114
+ return new Promise(function (resolve) {
115
+ var reader = new FileReader();
116
+ reader.onload = function (e) { var _a; return resolve((_a = e.target) === null || _a === void 0 ? void 0 : _a.result); };
117
+ reader.readAsDataURL(imageFile);
118
+ });
119
+ }
120
+ function loadImage(imageSrc) {
121
+ return new Promise(function (resolve) {
122
+ var img = new Image();
123
+ img.onload = function () { return resolve(img); };
124
+ img.src = imageSrc;
125
+ });
126
+ }
127
+ function drawImageInCanvas(imageElement) {
128
+ var canvas = document.createElement("canvas");
129
+ canvas.width = imageElement.width;
130
+ canvas.height = imageElement.height;
131
+ var ctx = canvas.getContext("2d");
132
+ if (!ctx) {
133
+ throw new Error("Failed to get 2D context from canvas.");
134
+ }
135
+ ctx.drawImage(imageElement, 0, 0, imageElement.width, imageElement.height);
136
+ return canvas;
137
+ }
138
+ function readFileFromUrl(url, filename, mimeType) {
139
+ return __awaiter(this, void 0, void 0, function () {
140
+ var res, arrBuff;
141
+ return __generator(this, function (_a) {
142
+ switch (_a.label) {
143
+ case 0: return [4 /*yield*/, fetch(url)];
144
+ case 1:
145
+ res = _a.sent();
146
+ return [4 /*yield*/, res.arrayBuffer()];
147
+ case 2:
148
+ arrBuff = _a.sent();
149
+ return [2 /*return*/, new File([arrBuff], filename, { type: mimeType })];
150
+ }
151
+ });
152
+ });
153
+ }
154
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/utils/image.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { CollectionsPersonalization } from "../models/common";
2
+ export declare const isCollectionPersonalization: (categoryId: string, personalizationSettings?: CollectionsPersonalization) => boolean;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isCollectionPersonalization = void 0;
4
+ var isCollectionPersonalization = function (categoryId, personalizationSettings) {
5
+ var isPersonalization = true;
6
+ if (!personalizationSettings || (typeof (personalizationSettings === null || personalizationSettings === void 0 ? void 0 : personalizationSettings.active) === 'undefined')) {
7
+ isPersonalization = false;
8
+ }
9
+ else if (!personalizationSettings.active) {
10
+ isPersonalization = false;
11
+ }
12
+ else if (personalizationSettings.avoidCategories.includes(categoryId)) {
13
+ isPersonalization = false;
14
+ }
15
+ else if (personalizationSettings.disableCategories.includes(categoryId)) {
16
+ isPersonalization = false;
17
+ }
18
+ return isPersonalization;
19
+ };
20
+ exports.isCollectionPersonalization = isCollectionPersonalization;
21
+ //# sourceMappingURL=personalization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personalization.js","sourceRoot":"","sources":["../../src/utils/personalization.ts"],"names":[],"mappings":";;;AAEO,IAAM,2BAA2B,GAAG,UAAC,UAAkB,EAAE,uBAAoD;IAChH,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAC7B,IAAG,CAAC,uBAAuB,IAAI,CAAC,OAAO,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,MAAM,CAAA,KAAK,WAAW,CAAC,EAAE;QACrF,iBAAiB,GAAG,KAAK,CAAC;KAC7B;SAAM,IAAG,CAAC,uBAAuB,CAAC,MAAM,EAAE;QACvC,iBAAiB,GAAG,KAAK,CAAC;KAC7B;SAAM,IAAG,uBAAuB,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpE,iBAAiB,GAAG,KAAK,CAAC;KAC7B;SAAM,IAAG,uBAAuB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QACtE,iBAAiB,GAAG,KAAK,CAAC;KAC7B;IACD,OAAO,iBAAiB,CAAC;AAC7B,CAAC,CAAA;AAZY,QAAA,2BAA2B,+BAYvC"}
@@ -0,0 +1 @@
1
+ export default function isPersonalizationAllowedForSort(sort?: string): boolean;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var NotAllowedSortByOptions = {
4
+ "price_min_to_max": true,
5
+ "price_max_to_min": true,
6
+ "reviews": true,
7
+ "a_to_z": true,
8
+ "z_to_a": true,
9
+ "discount_min_to_max": true,
10
+ "discount_max_to_min": true
11
+ };
12
+ function isPersonalizationAllowedForSort(sort) {
13
+ try {
14
+ if (sort === undefined) {
15
+ return false;
16
+ }
17
+ return !(Object.prototype.hasOwnProperty.call(NotAllowedSortByOptions, sort));
18
+ }
19
+ catch (e) {
20
+ console.log("%c\u274C V-Next Error | Cannot Find If There Is A Need To Use Personalization With The Selected Sort Option", 'font-weight: bold; font-size: 12px; color: red');
21
+ return true;
22
+ }
23
+ }
24
+ exports.default = isPersonalizationAllowedForSort;
25
+ //# sourceMappingURL=sortUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortUtil.js","sourceRoot":"","sources":["../../src/utils/sortUtil.ts"],"names":[],"mappings":";;AAAA,IAAM,uBAAuB,GAAG;IAC9B,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,qBAAqB,EAAE,IAAI;IAC3B,qBAAqB,EAAE,IAAI;CAC5B,CAAC;AAEF,SAAwB,+BAA+B,CAAC,IAAa;IACnE,IAAI;QACF,IAAG,IAAI,KAAK,SAAS,EAAC;YACpB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;KAC/E;IACD,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,GAAG,CAAC,6GAAwG,EAAE,gDAAgD,CAAC,CAAC;QACxK,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAXD,kDAWC"}
@@ -1 +1,2 @@
1
1
  export default function updateRecentSearches(params: object): void;
2
+ export declare function getRecentProducts(): string[];
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRecentProducts = void 0;
4
+ var config_1 = require("../config");
3
5
  var RELATED_KEY = "ISP_PRODUCTS_VIEWED_SESSION_2";
4
6
  function updateRecentSearches(params) {
5
7
  var _a, _b, _c, _d, _e, _f, _g;
@@ -15,8 +17,8 @@ function updateRecentSearches(params) {
15
17
  var ids = new Set();
16
18
  newProducts.push([Number(id), now, query]);
17
19
  ids.add(Number(id));
18
- for (var i = 0; i < products.length; i++) {
19
- if (!ids.has(Number(products[i][0])) && (now - products[i][1]) <= 360) {
20
+ for (var i = 0; i < products.length && newProducts.length < config_1.RECENT_PRODUCTS_LENGTH_LIMIT; i++) {
21
+ if (!ids.has(Number(products[i][0])) && (now - products[i][1]) <= config_1.RECENT_PRODUCTS_EXPIRY_DAYS * 24 * 60 * 60) {
20
22
  newProducts.push(products[i]);
21
23
  ids.add(Number(products[i][0]));
22
24
  }
@@ -24,4 +26,33 @@ function updateRecentSearches(params) {
24
26
  localStorage.setItem(RELATED_KEY, JSON.stringify(newProducts));
25
27
  }
26
28
  exports.default = updateRecentSearches;
29
+ function getRecentProducts() {
30
+ if (config_1.RECENT_PRODUCT_LS_KEY in localStorage) {
31
+ try {
32
+ var products = JSON.parse(localStorage.getItem(config_1.RECENT_PRODUCT_LS_KEY) || '[]');
33
+ var curSeconds = Math.round(Date.now() / 1000);
34
+ var expiryTimestamp_1 = curSeconds - (config_1.RECENT_PRODUCTS_EXPIRY_DAYS * 24 * 60 * 60); // 5 days in seconds
35
+ // Filter products viewed within the last 5 days
36
+ var recentProducts = products.filter(function (_a) {
37
+ var _ = _a[0], timestamp = _a[1];
38
+ return timestamp > expiryTimestamp_1;
39
+ });
40
+ // Sort by timestamp ascending and return the last RECENT_PRODUCTS_LENGTH_LIMIT products IDs
41
+ var productsArray = recentProducts
42
+ .sort(function (a, b) { return a[1] - b[1]; })
43
+ .slice(-config_1.RECENT_PRODUCTS_LENGTH_LIMIT)
44
+ .map(function (_a) {
45
+ var id = _a[0];
46
+ return id;
47
+ });
48
+ return Array.from(new Set(productsArray));
49
+ }
50
+ catch (error) {
51
+ console.error('Failed to parse or process localStorage data:', error);
52
+ return [];
53
+ }
54
+ }
55
+ return [];
56
+ }
57
+ exports.getRecentProducts = getRecentProducts;
27
58
  //# sourceMappingURL=updateRecentSearches.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"updateRecentSearches.js","sourceRoot":"","sources":["../../src/utils/updateRecentSearches.ts"],"names":[],"mappings":";;AAAA,IAAM,WAAW,GAAG,+BAA+B,CAAC;AAIpD,SAAwB,oBAAoB,CAAC,MAAc;;IACvD,IAAM,SAAS,GAAI,MAAc,CAAC;IAElC,IAAM,EAAE,GAAG,MAAA,MAAA,MAAA,SAAS,CAAC,EAAE,mCAAI,SAAS,CAAC,UAAU,mCAAI,SAAS,CAAC,GAAG,mCAAI,IAAI,CAAA;IACxE,IAAM,KAAK,GAAG,MAAA,MAAA,MAAA,SAAS,CAAC,qBAAqB,mCAAI,SAAS,CAAC,IAAI,mCAAI,SAAS,CAAC,yBAAyB,mCAAI,IAAI,CAAC;IAE/G,IAAI,CAAC,EAAE,EAAE;QACL,OAAO;KACV;IAED,IAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB;IACzE,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAA,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,mCAAI,IAAI,CAAc,CAAC;IAEpF,IAAI,WAAW,GAAc,EAAE,CAAC;IAChC,IAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3C,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;YACnE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACnC;KACJ;IACD,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AACnE,CAAC;AAxBD,uCAwBC"}
1
+ {"version":3,"file":"updateRecentSearches.js","sourceRoot":"","sources":["../../src/utils/updateRecentSearches.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fast-simon-sdk",
3
- "version": "1.6.4",
3
+ "version": "1.6.8",
4
4
  "author": {
5
5
  "name": "Fast Simon inc",
6
6
  "url": "",