@searchspring/snap-preact 0.27.7 → 0.29.0

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 (30) hide show
  1. package/README.md +2 -1
  2. package/dist/cjs/Instantiators/RecommendationInstantiator.d.ts +2 -2
  3. package/dist/cjs/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
  4. package/dist/cjs/Instantiators/RecommendationInstantiator.js +6 -3
  5. package/dist/cjs/Snap.d.ts +3 -0
  6. package/dist/cjs/Snap.d.ts.map +1 -1
  7. package/dist/cjs/Snap.js +83 -35
  8. package/dist/cjs/getBundleDetails/getBundleDetails.d.ts.map +1 -1
  9. package/dist/cjs/getBundleDetails/getBundleDetails.js +3 -2
  10. package/dist/cjs/types.d.ts +5 -0
  11. package/dist/cjs/types.d.ts.map +1 -1
  12. package/dist/esm/Instantiators/RecommendationInstantiator.d.ts +2 -2
  13. package/dist/esm/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
  14. package/dist/esm/Instantiators/RecommendationInstantiator.js +6 -3
  15. package/dist/esm/Snap.d.ts +53 -1
  16. package/dist/esm/Snap.d.ts.map +1 -1
  17. package/dist/esm/Snap.js +66 -19
  18. package/dist/esm/create/createAutocompleteController.d.ts +1 -1
  19. package/dist/esm/create/createAutocompleteController.d.ts.map +1 -1
  20. package/dist/esm/create/createFinderController.d.ts +1 -1
  21. package/dist/esm/create/createFinderController.d.ts.map +1 -1
  22. package/dist/esm/create/createRecommendationController.d.ts +1 -1
  23. package/dist/esm/create/createRecommendationController.d.ts.map +1 -1
  24. package/dist/esm/create/createSearchController.d.ts +1 -1
  25. package/dist/esm/create/createSearchController.d.ts.map +1 -1
  26. package/dist/esm/getBundleDetails/getBundleDetails.d.ts.map +1 -1
  27. package/dist/esm/getBundleDetails/getBundleDetails.js +3 -2
  28. package/dist/esm/types.d.ts +5 -0
  29. package/dist/esm/types.d.ts.map +1 -1
  30. package/package.json +16 -16
package/README.md CHANGED
@@ -186,7 +186,7 @@ Each array entry contains an object with the following properties:
186
186
 
187
187
  `config` - required controller config for the corresponding controller. See Controller specific documentation for all available configuration options.
188
188
 
189
- `targets` - optional array of Target objects. Targets thats have been found will have the corresponding controller provided to the target component `controller` prop and the controller's `search` method invoked.
189
+ `targets` - optional array of Target objects. Targets that have been found will have the corresponding controller provided to the target component `controller` prop and the controller's `search` method invoked.
190
190
 
191
191
  ```typescript
192
192
  type ExtendedTarget = {
@@ -196,6 +196,7 @@ type ExtendedTarget = {
196
196
  element: Element | ((target: Target, element: Element) => Element);
197
197
  };
198
198
  hideTarget?: boolean;
199
+ autoRetarget?: boolean;
199
200
  emptyTarget?: boolean;
200
201
  name?: string;
201
202
  component?: () => Promise<RootComponent> | RootComponent;
@@ -44,8 +44,8 @@ export declare class RecommendationInstantiator {
44
44
  private plugins;
45
45
  private middleware;
46
46
  constructor(config: RecommendationInstantiatorConfig, services?: RecommendationInstantiatorServices, context?: ContextVariables);
47
- plugin(func: (cntrlr: AbstractController, ...args: any[]) => Promise<void>, ...args: unknown[]): void;
48
- on<T>(event: string, ...func: Middleware<T>[]): void;
47
+ plugin(func: (cntrlr: AbstractController, ...args: any) => Promise<void>, ...args: unknown[]): void;
48
+ on<T>(event: string, ...func: Middleware<unknown>[]): void;
49
49
  use(attachments: Attachments): void;
50
50
  }
51
51
  //# sourceMappingURL=RecommendationInstantiator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RecommendationInstantiator.d.ts","sourceRoot":"","sources":["../../../src/Instantiators/RecommendationInstantiator.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAc,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjI,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAA0B,aAAa,EAAE,MAAM,UAAU,CAAC;AAEtE,oBAAY,gCAAgC,GAAG;IAC9C,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE;QACX,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;KAC7D,CAAC;IACF,MAAM,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,WAAW,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,kCAAkC,GAAG;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,qBAAa,0BAA0B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB,CAAC;KACxC,CAAM;IACA,MAAM,EAAE,gCAAgC,CAAC;IACzC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,WAAW,CAAC;IAE7B,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,OAAO,CAA2F;IAC1G,OAAO,CAAC,UAAU,CAAwD;gBAE9D,MAAM,EAAE,gCAAgC,EAAE,QAAQ,CAAC,EAAE,kCAAkC,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAoLxH,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,OAAA,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9F,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAIpD,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAG1C"}
1
+ {"version":3,"file":"RecommendationInstantiator.d.ts","sourceRoot":"","sources":["../../../src/Instantiators/RecommendationInstantiator.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAc,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjI,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,oBAAY,gCAAgC,GAAG;IAC9C,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE;QACX,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;KAC7D,CAAC;IACF,MAAM,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,WAAW,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,kCAAkC,GAAG;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,qBAAa,0BAA0B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB,CAAC;KACxC,CAAM;IACA,MAAM,EAAE,gCAAgC,CAAC;IACzC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,WAAW,CAAC;IAE7B,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,OAAO,CAAgG;IAC/G,OAAO,CAAC,UAAU,CAAwD;gBAE9D,MAAM,EAAE,gCAAgC,EAAE,QAAQ,CAAC,EAAE,kCAAkC,EAAE,OAAO,CAAC,EAAE,gBAAgB;IA0LxH,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAInG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI;IAI1D,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAG1C"}
@@ -119,10 +119,11 @@ var RecommendationInstantiator = /** @class */ (function () {
119
119
  this.targeter = new snap_toolbox_1.DomTargeter([
120
120
  {
121
121
  selector: "script[type=\"searchspring/recommend\"], script[type=\"searchspring/personalized-recommendations\"]".concat(this.config.selector ? " , ".concat(this.config.selector) : ''),
122
+ autoRetarget: true,
122
123
  inject: {
123
124
  action: 'before',
124
125
  element: function (target, origElement) {
125
- var profile = origElement.getAttribute('profile');
126
+ var profile = origElement.getAttribute('profile') || '';
126
127
  var recsContainer = document.createElement('div');
127
128
  recsContainer.setAttribute('searchspring-recommend', profile);
128
129
  return recsContainer;
@@ -135,7 +136,7 @@ var RecommendationInstantiator = /** @class */ (function () {
135
136
  return __generator(this, function (_e) {
136
137
  switch (_e.label) {
137
138
  case 0:
138
- tag = injectedElem.getAttribute('searchspring-recommend');
139
+ tag = injectedElem === null || injectedElem === void 0 ? void 0 : injectedElem.getAttribute('searchspring-recommend');
139
140
  if (!tag) {
140
141
  this.logger.warn("'profile' attribute is missing from <script> tag, skipping this profile", elem);
141
142
  return [2 /*return*/];
@@ -244,7 +245,9 @@ var RecommendationInstantiator = /** @class */ (function () {
244
245
  return [2 /*return*/];
245
246
  }
246
247
  setTimeout(function () {
247
- (0, preact_1.render)((0, jsx_runtime_1.jsx)(RecommendationsComponent, { controller: controller }), injectedElem);
248
+ if (injectedElem) {
249
+ (0, preact_1.render)((0, jsx_runtime_1.jsx)(RecommendationsComponent, { controller: controller }), injectedElem);
250
+ }
248
251
  });
249
252
  return [2 /*return*/];
250
253
  }
@@ -85,6 +85,9 @@ export declare class Snap {
85
85
  getController: (id: string) => Promise<Controllers>;
86
86
  getControllers: (...controllerIds: string[]) => Promise<Controllers[]>;
87
87
  createController: (type: keyof typeof ControllerTypes, config: ControllerConfigs, services?: SnapControllerServices, urlConfig?: UrlTranslatorConfig, context?: ContextVariables, callback?: (value?: Controllers | PromiseLike<Controllers>) => void | Promise<void>) => Promise<Controllers>;
88
+ handlers: {
89
+ error: (event: ErrorEvent) => void;
90
+ };
88
91
  constructor(config: SnapConfig, services?: SnapServices);
89
92
  }
90
93
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"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"}
package/dist/cjs/Snap.js CHANGED
@@ -91,7 +91,7 @@ var COMPONENT_ERROR = "Uncaught Error - Invalid value passed as the component.\n
91
91
  var Snap = /** @class */ (function () {
92
92
  function Snap(config, services) {
93
93
  var _this = this;
94
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
94
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
95
95
  this.getInstantiator = function (id) {
96
96
  return _this._instantiatorPromises[id] || Promise.reject("getInstantiator could not find instantiator with id: ".concat(id));
97
97
  };
@@ -113,9 +113,6 @@ var Snap = /** @class */ (function () {
113
113
  switch (_a.label) {
114
114
  case 0:
115
115
  switch (type) {
116
- case snap_controller_1.ControllerTypes.search:
117
- importPromise = Promise.resolve().then(function () { return __importStar(require('./create/createSearchController')); });
118
- break;
119
116
  case snap_controller_1.ControllerTypes.autocomplete:
120
117
  importPromise = Promise.resolve().then(function () { return __importStar(require('./create/createAutocompleteController')); });
121
118
  break;
@@ -125,6 +122,10 @@ var Snap = /** @class */ (function () {
125
122
  case snap_controller_1.ControllerTypes.recommendation:
126
123
  importPromise = Promise.resolve().then(function () { return __importStar(require('./create/createRecommendationController')); });
127
124
  break;
125
+ case snap_controller_1.ControllerTypes.search:
126
+ default:
127
+ importPromise = Promise.resolve().then(function () { return __importStar(require('./create/createSearchController')); });
128
+ break;
128
129
  }
129
130
  return [4 /*yield*/, importPromise];
130
131
  case 1:
@@ -153,6 +154,34 @@ var Snap = /** @class */ (function () {
153
154
  }
154
155
  });
155
156
  }); };
157
+ this.handlers = {
158
+ error: function (event) {
159
+ try {
160
+ var filename = event.filename;
161
+ if (filename.includes('snapui.searchspring.io') && _this.tracker.track.error) {
162
+ var colno = event.colno, lineno = event.lineno, stack = event.error.stack, message = event.message, timeStamp = event.timeStamp;
163
+ var userAgent = navigator.userAgent;
164
+ var href = window.location.href;
165
+ var beaconPayload = {
166
+ userAgent: userAgent,
167
+ href: href,
168
+ filename: filename,
169
+ stack: stack,
170
+ message: message,
171
+ colno: colno,
172
+ lineno: lineno,
173
+ timeStamp: timeStamp,
174
+ };
175
+ _this.tracker.track.error(beaconPayload);
176
+ }
177
+ }
178
+ catch (e) {
179
+ // prevent error metrics from breaking the app
180
+ }
181
+ },
182
+ };
183
+ window.removeEventListener('error', this.handlers.error);
184
+ window.addEventListener('error', this.handlers.error);
156
185
  this.config = config;
157
186
  this.logger = (services === null || services === void 0 ? void 0 : services.logger) || new snap_logger_1.Logger('Snap Preact ');
158
187
  var globalContext = {};
@@ -174,7 +203,7 @@ var Snap = /** @class */ (function () {
174
203
  throw new Error("Snap: config provided must contain a valid config.client.globals.siteId value");
175
204
  }
176
205
  if ((_d = this.context.merchandising) === null || _d === void 0 ? void 0 : _d.segments) {
177
- if (this.config.client.globals.merchandising) {
206
+ if ((_e = this.config.client) === null || _e === void 0 ? void 0 : _e.globals.merchandising) {
178
207
  this.config.client.globals.merchandising.segments = (0, deepmerge_1.default)(this.config.client.globals.merchandising.segments, this.context.merchandising.segments);
179
208
  }
180
209
  else {
@@ -184,7 +213,7 @@ var Snap = /** @class */ (function () {
184
213
  }
185
214
  }
186
215
  this.client = (services === null || services === void 0 ? void 0 : services.client) || new snap_client_1.Client(this.config.client.globals, this.config.client.config);
187
- this.tracker = (services === null || services === void 0 ? void 0 : services.tracker) || new snap_tracker_1.Tracker(this.config.client.globals);
216
+ this.tracker = (services === null || services === void 0 ? void 0 : services.tracker) || new snap_tracker_1.Tracker(this.config.client.globals, { framework: 'preact' });
188
217
  this._controllerPromises = {};
189
218
  this._instantiatorPromises = {};
190
219
  this.controllers = {};
@@ -198,7 +227,7 @@ var Snap = /** @class */ (function () {
198
227
  });
199
228
  try {
200
229
  var urlParams = (0, snap_toolbox_1.url)(window.location.href);
201
- var branchParam_1 = ((_f = (_e = urlParams.params) === null || _e === void 0 ? void 0 : _e.query) === null || _f === void 0 ? void 0 : _f.branch) || snap_toolbox_1.cookies.get(exports.BRANCH_COOKIE);
230
+ var branchParam_1 = ((_g = (_f = urlParams === null || urlParams === void 0 ? void 0 : urlParams.params) === null || _f === void 0 ? void 0 : _f.query) === null || _g === void 0 ? void 0 : _g.branch) || snap_toolbox_1.cookies.get(exports.BRANCH_COOKIE);
202
231
  if (branchParam_1 && !document.querySelector("script[".concat(exports.BRANCH_COOKIE, "]"))) {
203
232
  // set a cookie or localstorage with branch
204
233
  if (snap_toolbox_1.featureFlags.cookies) {
@@ -220,11 +249,10 @@ var Snap = /** @class */ (function () {
220
249
  }
221
250
  }
222
251
  // append script with new branch in path
223
- var branchScript = document.createElement('script');
252
+ var branchScript_1 = document.createElement('script');
224
253
  var src_1 = "".concat(path).concat(branchParam_1, "/bundle.js");
225
- branchScript.src = src_1;
226
- branchScript.setAttribute(exports.BRANCH_COOKIE, branchParam_1);
227
- document.head.appendChild(branchScript);
254
+ branchScript_1.src = src_1;
255
+ branchScript_1.setAttribute(exports.BRANCH_COOKIE, branchParam_1);
228
256
  new snap_toolbox_1.DomTargeter([
229
257
  {
230
258
  selector: 'body',
@@ -238,31 +266,45 @@ var Snap = /** @class */ (function () {
238
266
  },
239
267
  },
240
268
  ], function (target, elem) { return __awaiter(_this, void 0, void 0, function () {
241
- var bundleDetails, error, getBundleDetails, err_1, BranchOverride;
269
+ var error, bundleDetails, getBundleDetails, err_1, BranchOverride;
242
270
  return __generator(this, function (_a) {
243
271
  switch (_a.label) {
244
272
  case 0:
245
- _a.trys.push([0, 3, , 4]);
246
- return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require('./getBundleDetails/getBundleDetails')); })];
273
+ error = {
274
+ message: 'Error',
275
+ description: '',
276
+ };
277
+ _a.label = 1;
247
278
  case 1:
279
+ _a.trys.push([1, 4, , 5]);
280
+ return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require('./getBundleDetails/getBundleDetails')); })];
281
+ case 2:
248
282
  getBundleDetails = (_a.sent()).getBundleDetails;
249
283
  return [4 /*yield*/, getBundleDetails(src_1)];
250
- case 2:
251
- bundleDetails = _a.sent();
252
- return [3 /*break*/, 4];
253
284
  case 3:
285
+ bundleDetails = _a.sent();
286
+ return [3 /*break*/, 5];
287
+ case 4:
254
288
  err_1 = _a.sent();
255
- error = err_1;
256
- return [3 /*break*/, 4];
257
- case 4: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require('./components/BranchOverride')); })];
258
- case 5:
289
+ error.description = err_1;
290
+ return [3 /*break*/, 5];
291
+ case 5: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require('./components/BranchOverride')); })];
292
+ case 6:
259
293
  BranchOverride = (_a.sent()).BranchOverride;
260
294
  (0, preact_1.render)((0, jsx_runtime_1.jsx)(BranchOverride, { name: branchParam_1, details: bundleDetails, error: error, onRemoveClick: function () {
261
295
  snap_toolbox_1.cookies.unset(exports.BRANCH_COOKIE);
262
296
  var urlState = (0, snap_toolbox_1.url)(window.location.href);
263
- delete urlState.params.query['branch'];
264
- window.location.href = urlState.url();
297
+ urlState === null || urlState === void 0 ? true : delete urlState.params.query['branch'];
298
+ var newUrl = urlState === null || urlState === void 0 ? void 0 : urlState.url();
299
+ if (newUrl && newUrl != window.location.href) {
300
+ window.location.href = newUrl;
301
+ }
302
+ else {
303
+ window.location.reload();
304
+ }
265
305
  } }), elem);
306
+ window.searchspring = undefined;
307
+ document.head.appendChild(branchScript_1);
266
308
  return [2 /*return*/];
267
309
  }
268
310
  });
@@ -278,20 +320,20 @@ var Snap = /** @class */ (function () {
278
320
  window.searchspring.client = this.client;
279
321
  }
280
322
  // autotrack shopper id from the context
281
- if ((_h = (_g = this.context) === null || _g === void 0 ? void 0 : _g.shopper) === null || _h === void 0 ? void 0 : _h.id) {
323
+ if ((_j = (_h = this.context) === null || _h === void 0 ? void 0 : _h.shopper) === null || _j === void 0 ? void 0 : _j.id) {
282
324
  this.tracker.track.shopper.login({
283
325
  id: this.context.shopper.id,
284
326
  });
285
327
  }
286
328
  // auto populate cart cookie from the context
287
- if ((_k = (_j = this.context) === null || _j === void 0 ? void 0 : _j.shopper) === null || _k === void 0 ? void 0 : _k.cart) {
329
+ if ((_l = (_k = this.context) === null || _k === void 0 ? void 0 : _k.shopper) === null || _l === void 0 ? void 0 : _l.cart) {
288
330
  var cart = this.context.shopper.cart;
289
331
  if (Array.isArray(cart)) {
290
- var cartItems = cart.filter(function (item) { return (item === null || item === void 0 ? void 0 : item.sku) || (item === null || item === void 0 ? void 0 : item.childSku); }).map(function (item) { return ((item === null || item === void 0 ? void 0 : item.sku) || (item === null || item === void 0 ? void 0 : item.childSku)).trim(); });
332
+ var cartItems = cart.filter(function (item) { return (item === null || item === void 0 ? void 0 : item.sku) || (item === null || item === void 0 ? void 0 : item.childSku); }).map(function (item) { return ((item === null || item === void 0 ? void 0 : item.sku) || (item === null || item === void 0 ? void 0 : item.childSku) || '').trim(); });
291
333
  this.tracker.cookies.cart.set(cartItems);
292
334
  }
293
335
  }
294
- Object.keys(((_l = this.config) === null || _l === void 0 ? void 0 : _l.controllers) || {}).forEach(function (type) {
336
+ Object.keys(((_m = this.config) === null || _m === void 0 ? void 0 : _m.controllers) || {}).forEach(function (type) {
295
337
  switch (type) {
296
338
  case 'search': {
297
339
  _this.config.controllers[type].forEach(function (controller, index) {
@@ -368,7 +410,7 @@ var Snap = /** @class */ (function () {
368
410
  return __generator(this, function (_a) {
369
411
  switch (_a.label) {
370
412
  case 0:
371
- if (!target.skeleton) return [3 /*break*/, 2];
413
+ if (!(target && target.skeleton && elem)) return [3 /*break*/, 2];
372
414
  return [4 /*yield*/, target.skeleton()];
373
415
  case 1:
374
416
  Skeleton_1 = _a.sent();
@@ -439,7 +481,8 @@ var Snap = /** @class */ (function () {
439
481
  }); };
440
482
  if (!(controller === null || controller === void 0 ? void 0 : controller.targeters) || (controller === null || controller === void 0 ? void 0 : controller.targeters.length) === 0) {
441
483
  _this.createController(snap_controller_1.ControllerTypes.autocomplete, controller.config, controller.services, controller.url, controller.context, function (cntrlr) {
442
- resolve(cntrlr);
484
+ if (cntrlr)
485
+ resolve(cntrlr);
443
486
  });
444
487
  }
445
488
  (_a = controller === null || controller === void 0 ? void 0 : controller.targeters) === null || _a === void 0 ? void 0 : _a.forEach(function (target, target_index) {
@@ -466,7 +509,8 @@ var Snap = /** @class */ (function () {
466
509
  return __generator(this, function (_a) {
467
510
  switch (_a.label) {
468
511
  case 0: return [4 /*yield*/, this.createController(snap_controller_1.ControllerTypes.autocomplete, controller.config, controller.services, controller.url, controller.context, function (cntrlr) {
469
- resolve(cntrlr);
512
+ if (cntrlr)
513
+ resolve(cntrlr);
470
514
  })];
471
515
  case 1:
472
516
  cntrlr = _a.sent();
@@ -533,7 +577,8 @@ var Snap = /** @class */ (function () {
533
577
  }); };
534
578
  if (!(controller === null || controller === void 0 ? void 0 : controller.targeters) || (controller === null || controller === void 0 ? void 0 : controller.targeters.length) === 0) {
535
579
  _this.createController(snap_controller_1.ControllerTypes.finder, controller.config, controller.services, controller.url, controller.context, function (cntrlr) {
536
- resolve(cntrlr);
580
+ if (cntrlr)
581
+ resolve(cntrlr);
537
582
  });
538
583
  }
539
584
  (_a = controller === null || controller === void 0 ? void 0 : controller.targeters) === null || _a === void 0 ? void 0 : _a.forEach(function (target, target_index) {
@@ -548,7 +593,8 @@ var Snap = /** @class */ (function () {
548
593
  return __generator(this, function (_a) {
549
594
  switch (_a.label) {
550
595
  case 0: return [4 /*yield*/, this.createController(snap_controller_1.ControllerTypes.finder, controller.config, controller.services, controller.url, controller.context, function (cntrlr) {
551
- resolve(cntrlr);
596
+ if (cntrlr)
597
+ resolve(cntrlr);
552
598
  })];
553
599
  case 1:
554
600
  cntrlr = _a.sent();
@@ -615,7 +661,8 @@ var Snap = /** @class */ (function () {
615
661
  }); };
616
662
  if (!(controller === null || controller === void 0 ? void 0 : controller.targeters) || (controller === null || controller === void 0 ? void 0 : controller.targeters.length) === 0) {
617
663
  _this.createController(snap_controller_1.ControllerTypes.recommendation, controller.config, controller.services, controller.url, controller.context, function (cntrlr) {
618
- resolve(cntrlr);
664
+ if (cntrlr)
665
+ resolve(cntrlr);
619
666
  });
620
667
  }
621
668
  (_a = controller === null || controller === void 0 ? void 0 : controller.targeters) === null || _a === void 0 ? void 0 : _a.forEach(function (target, target_index) {
@@ -630,7 +677,8 @@ var Snap = /** @class */ (function () {
630
677
  return __generator(this, function (_a) {
631
678
  switch (_a.label) {
632
679
  case 0: return [4 /*yield*/, this.createController(snap_controller_1.ControllerTypes.recommendation, controller.config, controller.services, controller.url, controller.context, function (cntrlr) {
633
- resolve(cntrlr);
680
+ if (cntrlr)
681
+ resolve(cntrlr);
634
682
  })];
635
683
  case 1:
636
684
  cntrlr = _a.sent();
@@ -652,7 +700,7 @@ var Snap = /** @class */ (function () {
652
700
  }
653
701
  }
654
702
  });
655
- if ((_o = (_m = this.config) === null || _m === void 0 ? void 0 : _m.instantiators) === null || _o === void 0 ? void 0 : _o.recommendation) {
703
+ if ((_p = (_o = this.config) === null || _o === void 0 ? void 0 : _o.instantiators) === null || _p === void 0 ? void 0 : _p.recommendation) {
656
704
  try {
657
705
  this._instantiatorPromises.recommendation = Promise.resolve().then(function () { return __importStar(require('./Instantiators/RecommendationInstantiator')); }).then(function (_a) {
658
706
  var RecommendationInstantiator = _a.RecommendationInstantiator;
@@ -1 +1 @@
1
- {"version":3,"file":"getBundleDetails.d.ts","sourceRoot":"","sources":["../../../src/getBundleDetails/getBundleDetails.ts"],"names":[],"mappings":"AAAA,aAAK,aAAa,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAe,MAAM,KAAG,QAAQ,aAAa,CAuBzE,CAAC"}
1
+ {"version":3,"file":"getBundleDetails.d.ts","sourceRoot":"","sources":["../../../src/getBundleDetails/getBundleDetails.ts"],"names":[],"mappings":"AAAA,aAAK,aAAa,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAe,MAAM,KAAG,QAAQ,aAAa,CAyBzE,CAAC"}
@@ -45,10 +45,11 @@ var getBundleDetails = function (url) { return __awaiter(void 0, void 0, void 0,
45
45
  request.onreadystatechange = function () {
46
46
  if (request.readyState === request.DONE) {
47
47
  var status_1 = request.status;
48
- if (status_1 === 0 || (status_1 >= 200 && status_1 < 400)) {
48
+ var lastModified = request.getResponseHeader('Last-Modified');
49
+ if ((lastModified && status_1 === 0) || (status_1 >= 200 && status_1 < 400)) {
49
50
  resolve({
50
51
  url: url,
51
- lastModified: request.getResponseHeader('Last-Modified').split(',')[1].trim(),
52
+ lastModified: lastModified.split(',')[1].trim(),
52
53
  });
53
54
  }
54
55
  else {
@@ -56,4 +56,9 @@ export declare type SnapRecommendationControllerConfig = {
56
56
  controller: RecommendationControllerConfig;
57
57
  context?: ContextVariables;
58
58
  };
59
+ declare global {
60
+ interface Window {
61
+ searchspring?: any;
62
+ }
63
+ }
59
64
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,KAAK,EACX,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,gBAAgB,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACtH,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,oBAAY,sBAAsB,GAAG;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,mBAAmB,CAAC;IAC5E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,qBAAqB,GAC9B,0BAA0B,GAC1B,gCAAgC,GAChC,0BAA0B,GAC1B,kCAAkC,CAAC;AAEtC,oBAAY,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC;IAAE,UAAU,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAAC;AAElF,oBAAY,0BAA0B,GAAG;IACxC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,gCAAgC,GAAG;IAC9C,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,4BAA4B,CAAC;IACzC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,0BAA0B,GAAG;IACxC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,kCAAkC,GAAG;IAChD,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,8BAA8B,CAAC;IAC3C,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,KAAK,EACX,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,gBAAgB,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACtH,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,oBAAY,sBAAsB,GAAG;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,mBAAmB,CAAC;IAC5E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,qBAAqB,GAC9B,0BAA0B,GAC1B,gCAAgC,GAChC,0BAA0B,GAC1B,kCAAkC,CAAC;AAEtC,oBAAY,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC;IAAE,UAAU,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAAC;AAElF,oBAAY,0BAA0B,GAAG;IACxC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,gCAAgC,GAAG;IAC9C,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,4BAA4B,CAAC;IACzC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,0BAA0B,GAAG;IACxC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,kCAAkC,GAAG;IAChD,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,8BAA8B,CAAC;IAC3C,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,YAAY,CAAC,EAAE,GAAG,CAAC;KACnB;CACD"}
@@ -44,8 +44,8 @@ export declare class RecommendationInstantiator {
44
44
  private plugins;
45
45
  private middleware;
46
46
  constructor(config: RecommendationInstantiatorConfig, services?: RecommendationInstantiatorServices, context?: ContextVariables);
47
- plugin(func: (cntrlr: AbstractController, ...args: any[]) => Promise<void>, ...args: unknown[]): void;
48
- on<T>(event: string, ...func: Middleware<T>[]): void;
47
+ plugin(func: (cntrlr: AbstractController, ...args: any) => Promise<void>, ...args: unknown[]): void;
48
+ on<T>(event: string, ...func: Middleware<unknown>[]): void;
49
49
  use(attachments: Attachments): void;
50
50
  }
51
51
  //# sourceMappingURL=RecommendationInstantiator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RecommendationInstantiator.d.ts","sourceRoot":"","sources":["../../../src/Instantiators/RecommendationInstantiator.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAc,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjI,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAA0B,aAAa,EAAE,MAAM,UAAU,CAAC;AAEtE,oBAAY,gCAAgC,GAAG;IAC9C,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE;QACX,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;KAC7D,CAAC;IACF,MAAM,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,WAAW,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,kCAAkC,GAAG;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,qBAAa,0BAA0B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB,CAAC;KACxC,CAAM;IACA,MAAM,EAAE,gCAAgC,CAAC;IACzC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,WAAW,CAAC;IAE7B,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,OAAO,CAA2F;IAC1G,OAAO,CAAC,UAAU,CAAwD;gBAE9D,MAAM,EAAE,gCAAgC,EAAE,QAAQ,CAAC,EAAE,kCAAkC,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAoLxH,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,OAAA,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9F,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAIpD,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAG1C"}
1
+ {"version":3,"file":"RecommendationInstantiator.d.ts","sourceRoot":"","sources":["../../../src/Instantiators/RecommendationInstantiator.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAc,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjI,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,oBAAY,gCAAgC,GAAG;IAC9C,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE;QACX,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;KAC7D,CAAC;IACF,MAAM,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,WAAW,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,kCAAkC,GAAG;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,qBAAa,0BAA0B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB,CAAC;KACxC,CAAM;IACA,MAAM,EAAE,gCAAgC,CAAC;IACzC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,WAAW,CAAC;IAE7B,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,OAAO,CAAgG;IAC/G,OAAO,CAAC,UAAU,CAAwD;gBAE9D,MAAM,EAAE,gCAAgC,EAAE,QAAQ,CAAC,EAAE,kCAAkC,EAAE,OAAO,CAAC,EAAE,gBAAgB;IA0LxH,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAInG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI;IAI1D,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAG1C"}
@@ -32,10 +32,11 @@ export class RecommendationInstantiator {
32
32
  this.targeter = new DomTargeter([
33
33
  {
34
34
  selector: `script[type="searchspring/recommend"], script[type="searchspring/personalized-recommendations"]${this.config.selector ? ` , ${this.config.selector}` : ''}`,
35
+ autoRetarget: true,
35
36
  inject: {
36
37
  action: 'before',
37
38
  element: (target, origElement) => {
38
- const profile = origElement.getAttribute('profile');
39
+ const profile = origElement.getAttribute('profile') || '';
39
40
  const recsContainer = document.createElement('div');
40
41
  recsContainer.setAttribute('searchspring-recommend', profile);
41
42
  return recsContainer;
@@ -43,7 +44,7 @@ export class RecommendationInstantiator {
43
44
  },
44
45
  },
45
46
  ], async (target, injectedElem, elem) => {
46
- const tag = injectedElem.getAttribute('searchspring-recommend');
47
+ const tag = injectedElem?.getAttribute('searchspring-recommend');
47
48
  if (!tag) {
48
49
  this.logger.warn(`'profile' attribute is missing from <script> tag, skipping this profile`, elem);
49
50
  return;
@@ -149,7 +150,9 @@ export class RecommendationInstantiator {
149
150
  return;
150
151
  }
151
152
  setTimeout(() => {
152
- render(_jsx(RecommendationsComponent, { controller: controller }), injectedElem);
153
+ if (injectedElem) {
154
+ render(_jsx(RecommendationsComponent, { controller: controller }), injectedElem);
155
+ }
153
156
  });
154
157
  });
155
158
  }
@@ -84,7 +84,59 @@ export declare class Snap {
84
84
  getInstantiator: (id: string) => Promise<RecommendationInstantiator>;
85
85
  getController: (id: string) => Promise<Controllers>;
86
86
  getControllers: (...controllerIds: string[]) => Promise<Controllers[]>;
87
- createController: (type: keyof typeof ControllerTypes, config: ControllerConfigs, services?: SnapControllerServices, urlConfig?: UrlTranslatorConfig, context?: ContextVariables, callback?: (value?: Controllers | PromiseLike<Controllers>) => void | Promise<void>) => Promise<Controllers>;
87
+ createController: (type: keyof typeof ControllerTypes, config: ControllerConfigs, services?: SnapControllerServices | undefined, urlConfig?: Partial<{
88
+ urlRoot: string;
89
+ settings: Partial<{
90
+ corePrefix: string;
91
+ coreType?: Partial<"query" | "hash" | undefined>;
92
+ customType: Partial<"query" | "hash">;
93
+ rootParams: Partial<boolean>;
94
+ }>;
95
+ parameters: Partial<{
96
+ core: Partial<{
97
+ query: Partial<{
98
+ name: string;
99
+ type: Partial<"query" | "hash">;
100
+ }>;
101
+ oq: Partial<{
102
+ name: string;
103
+ type: Partial<"query" | "hash">;
104
+ }>;
105
+ rq: Partial<{
106
+ name: string;
107
+ type: Partial<"query" | "hash">;
108
+ }>;
109
+ tag: Partial<{
110
+ name: string;
111
+ type: Partial<"query" | "hash">;
112
+ }>;
113
+ page: Partial<{
114
+ name: string;
115
+ type: Partial<"query" | "hash">;
116
+ }>;
117
+ pageSize: Partial<{
118
+ name: string;
119
+ type: Partial<"query" | "hash">;
120
+ }>;
121
+ sort: Partial<{
122
+ name: string;
123
+ type: Partial<"query" | "hash">;
124
+ }>;
125
+ filter: Partial<{
126
+ name: string;
127
+ type: Partial<"query" | "hash">;
128
+ }>;
129
+ }>;
130
+ custom: Partial<{
131
+ [x: string]: Partial<{
132
+ type: Partial<"query" | "hash">;
133
+ }>;
134
+ }>;
135
+ }>;
136
+ }> | undefined, context?: ContextVariables | undefined, callback?: ((value?: Controllers | PromiseLike<Controllers> | undefined) => void | Promise<void>) | undefined) => Promise<Controllers>;
137
+ handlers: {
138
+ error: (event: ErrorEvent) => void;
139
+ };
88
140
  constructor(config: SnapConfig, services?: SnapServices);
89
141
  }
90
142
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["../../src/Snap.tsx"],"names":[],"mappings":"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"}
package/dist/esm/Snap.js CHANGED
@@ -61,9 +61,6 @@ export class Snap {
61
61
  this.createController = async (type, config, services, urlConfig, context, callback) => {
62
62
  let importPromise;
63
63
  switch (type) {
64
- case ControllerTypes.search:
65
- importPromise = import('./create/createSearchController');
66
- break;
67
64
  case ControllerTypes.autocomplete:
68
65
  importPromise = import('./create/createAutocompleteController');
69
66
  break;
@@ -73,7 +70,12 @@ export class Snap {
73
70
  case ControllerTypes.recommendation:
74
71
  importPromise = import('./create/createRecommendationController');
75
72
  break;
73
+ case ControllerTypes.search:
74
+ default:
75
+ importPromise = import('./create/createSearchController');
76
+ break;
76
77
  }
78
+ // @ts-ignore - we know the config is correct, but complicated typing
77
79
  const creationFunc = (await importPromise).default;
78
80
  if (!this.controllers[config.id]) {
79
81
  this.controllers[config.id] = creationFunc({
@@ -95,6 +97,34 @@ export class Snap {
95
97
  }
96
98
  return this.controllers[config.id];
97
99
  };
100
+ this.handlers = {
101
+ error: (event) => {
102
+ try {
103
+ const { filename } = event;
104
+ if (filename.includes('snapui.searchspring.io') && this.tracker.track.error) {
105
+ const { colno, lineno, error: { stack }, message, timeStamp, } = event;
106
+ const userAgent = navigator.userAgent;
107
+ const href = window.location.href;
108
+ const beaconPayload = {
109
+ userAgent,
110
+ href,
111
+ filename,
112
+ stack,
113
+ message,
114
+ colno,
115
+ lineno,
116
+ timeStamp,
117
+ };
118
+ this.tracker.track.error(beaconPayload);
119
+ }
120
+ }
121
+ catch (e) {
122
+ // prevent error metrics from breaking the app
123
+ }
124
+ },
125
+ };
126
+ window.removeEventListener('error', this.handlers.error);
127
+ window.addEventListener('error', this.handlers.error);
98
128
  this.config = config;
99
129
  this.logger = services?.logger || new Logger('Snap Preact ');
100
130
  let globalContext = {};
@@ -116,7 +146,7 @@ export class Snap {
116
146
  throw new Error(`Snap: config provided must contain a valid config.client.globals.siteId value`);
117
147
  }
118
148
  if (this.context.merchandising?.segments) {
119
- if (this.config.client.globals.merchandising) {
149
+ if (this.config.client?.globals.merchandising) {
120
150
  this.config.client.globals.merchandising.segments = deepmerge(this.config.client.globals.merchandising.segments, this.context.merchandising.segments);
121
151
  }
122
152
  else {
@@ -126,7 +156,7 @@ export class Snap {
126
156
  }
127
157
  }
128
158
  this.client = services?.client || new Client(this.config.client.globals, this.config.client.config);
129
- this.tracker = services?.tracker || new Tracker(this.config.client.globals);
159
+ this.tracker = services?.tracker || new Tracker(this.config.client.globals, { framework: 'preact' });
130
160
  this._controllerPromises = {};
131
161
  this._instantiatorPromises = {};
132
162
  this.controllers = {};
@@ -140,7 +170,7 @@ export class Snap {
140
170
  });
141
171
  try {
142
172
  const urlParams = url(window.location.href);
143
- const branchParam = urlParams.params?.query?.branch || cookies.get(BRANCH_COOKIE);
173
+ const branchParam = urlParams?.params?.query?.branch || cookies.get(BRANCH_COOKIE);
144
174
  if (branchParam && !document.querySelector(`script[${BRANCH_COOKIE}]`)) {
145
175
  // set a cookie or localstorage with branch
146
176
  if (featureFlags.cookies) {
@@ -166,7 +196,6 @@ export class Snap {
166
196
  const src = `${path}${branchParam}/bundle.js`;
167
197
  branchScript.src = src;
168
198
  branchScript.setAttribute(BRANCH_COOKIE, branchParam);
169
- document.head.appendChild(branchScript);
170
199
  new DomTargeter([
171
200
  {
172
201
  selector: 'body',
@@ -180,21 +209,33 @@ export class Snap {
180
209
  },
181
210
  },
182
211
  ], async (target, elem) => {
183
- let bundleDetails, error;
212
+ const error = {
213
+ message: 'Error',
214
+ description: '',
215
+ };
216
+ let bundleDetails;
184
217
  try {
185
218
  const getBundleDetails = (await import('./getBundleDetails/getBundleDetails')).getBundleDetails;
186
219
  bundleDetails = await getBundleDetails(src);
187
220
  }
188
221
  catch (err) {
189
- error = err;
222
+ error.description = err;
190
223
  }
191
224
  const BranchOverride = (await import('./components/BranchOverride')).BranchOverride;
192
225
  render(_jsx(BranchOverride, { name: branchParam, details: bundleDetails, error: error, onRemoveClick: () => {
193
226
  cookies.unset(BRANCH_COOKIE);
194
227
  const urlState = url(window.location.href);
195
- delete urlState.params.query['branch'];
196
- window.location.href = urlState.url();
228
+ delete urlState?.params.query['branch'];
229
+ const newUrl = urlState?.url();
230
+ if (newUrl && newUrl != window.location.href) {
231
+ window.location.href = newUrl;
232
+ }
233
+ else {
234
+ window.location.reload();
235
+ }
197
236
  } }), elem);
237
+ window.searchspring = undefined;
238
+ document.head.appendChild(branchScript);
198
239
  });
199
240
  // prevent further instantiation of config
200
241
  return;
@@ -216,7 +257,7 @@ export class Snap {
216
257
  if (this.context?.shopper?.cart) {
217
258
  const cart = this.context.shopper.cart;
218
259
  if (Array.isArray(cart)) {
219
- const cartItems = cart.filter((item) => item?.sku || item?.childSku).map((item) => (item?.sku || item?.childSku).trim());
260
+ const cartItems = cart.filter((item) => item?.sku || item?.childSku).map((item) => (item?.sku || item?.childSku || '').trim());
220
261
  this.tracker.cookies.cart.set(cartItems);
221
262
  }
222
263
  }
@@ -272,7 +313,7 @@ export class Snap {
272
313
  runSearch();
273
314
  }
274
315
  cntrlr.createTargeter({ controller: cntrlr, ...target }, async (target, elem, originalElem) => {
275
- if (target.skeleton) {
316
+ if (target && target.skeleton && elem) {
276
317
  const Skeleton = await target.skeleton();
277
318
  setTimeout(() => {
278
319
  render(_jsx(Skeleton, {}), elem);
@@ -316,7 +357,8 @@ export class Snap {
316
357
  };
317
358
  if (!controller?.targeters || controller?.targeters.length === 0) {
318
359
  this.createController(ControllerTypes.autocomplete, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
319
- resolve(cntrlr);
360
+ if (cntrlr)
361
+ resolve(cntrlr);
320
362
  });
321
363
  }
322
364
  controller?.targeters?.forEach((target, target_index) => {
@@ -343,7 +385,8 @@ export class Snap {
343
385
  },
344
386
  ], async (target, elem, originalElem) => {
345
387
  const cntrlr = await this.createController(ControllerTypes.autocomplete, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
346
- resolve(cntrlr);
388
+ if (cntrlr)
389
+ resolve(cntrlr);
347
390
  });
348
391
  runBind();
349
392
  targetFunction({ controller: cntrlr, ...target }, elem, originalElem);
@@ -384,7 +427,8 @@ export class Snap {
384
427
  };
385
428
  if (!controller?.targeters || controller?.targeters.length === 0) {
386
429
  this.createController(ControllerTypes.finder, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
387
- resolve(cntrlr);
430
+ if (cntrlr)
431
+ resolve(cntrlr);
388
432
  });
389
433
  }
390
434
  controller?.targeters?.forEach((target, target_index) => {
@@ -396,7 +440,8 @@ export class Snap {
396
440
  }
397
441
  const targeter = new DomTargeter([{ ...target }], async (target, elem, originalElem) => {
398
442
  const cntrlr = await this.createController(ControllerTypes.finder, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
399
- resolve(cntrlr);
443
+ if (cntrlr)
444
+ resolve(cntrlr);
400
445
  });
401
446
  runSearch();
402
447
  targetFunction({ controller: cntrlr, ...target }, elem, originalElem);
@@ -437,7 +482,8 @@ export class Snap {
437
482
  };
438
483
  if (!controller?.targeters || controller?.targeters.length === 0) {
439
484
  this.createController(ControllerTypes.recommendation, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
440
- resolve(cntrlr);
485
+ if (cntrlr)
486
+ resolve(cntrlr);
441
487
  });
442
488
  }
443
489
  controller?.targeters?.forEach((target, target_index) => {
@@ -449,7 +495,8 @@ export class Snap {
449
495
  }
450
496
  const targeter = new DomTargeter([{ ...target }], async (target, elem, originalElem) => {
451
497
  const cntrlr = await this.createController(ControllerTypes.recommendation, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
452
- resolve(cntrlr);
498
+ if (cntrlr)
499
+ resolve(cntrlr);
453
500
  });
454
501
  runSearch();
455
502
  targetFunction({ controller: cntrlr, ...target }, elem, originalElem);
@@ -1,5 +1,5 @@
1
1
  import { AutocompleteController } from '@searchspring/snap-controller';
2
2
  import type { SnapControllerServices, SnapAutocompleteControllerConfig } from '../types';
3
- declare const _default: (config: SnapAutocompleteControllerConfig, services?: SnapControllerServices) => AutocompleteController;
3
+ declare const _default: (config: SnapAutocompleteControllerConfig, services?: SnapControllerServices | undefined) => AutocompleteController;
4
4
  export default _default;
5
5
  //# sourceMappingURL=createAutocompleteController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createAutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/create/createAutocompleteController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AASvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;iCAIjE,gCAAgC,aAAa,sBAAsB,KAAG,sBAAsB;AAApH,wBAkBE"}
1
+ {"version":3,"file":"createAutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/create/createAutocompleteController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AASvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;iCAIjE,gCAAgC,oDAAsC,sBAAsB;AAApH,wBAkBE"}
@@ -1,5 +1,5 @@
1
1
  import { FinderController } from '@searchspring/snap-controller';
2
2
  import type { SnapControllerServices, SnapFinderControllerConfig } from '../types';
3
- declare const _default: (config: SnapFinderControllerConfig, services?: SnapControllerServices) => FinderController;
3
+ declare const _default: (config: SnapFinderControllerConfig, services?: SnapControllerServices | undefined) => FinderController;
4
4
  export default _default;
5
5
  //# sourceMappingURL=createFinderController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createFinderController.d.ts","sourceRoot":"","sources":["../../../src/create/createFinderController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AASjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;iCAI3D,0BAA0B,aAAa,sBAAsB,KAAG,gBAAgB;AAAxG,wBAkBE"}
1
+ {"version":3,"file":"createFinderController.d.ts","sourceRoot":"","sources":["../../../src/create/createFinderController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AASjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;iCAI3D,0BAA0B,oDAAsC,gBAAgB;AAAxG,wBAkBE"}
@@ -1,5 +1,5 @@
1
1
  import { RecommendationController } from '@searchspring/snap-controller';
2
2
  import type { SnapControllerServices, SnapRecommendationControllerConfig } from '../types';
3
- declare const _default: (config: SnapRecommendationControllerConfig, services?: SnapControllerServices) => RecommendationController;
3
+ declare const _default: (config: SnapRecommendationControllerConfig, services?: SnapControllerServices | undefined) => RecommendationController;
4
4
  export default _default;
5
5
  //# sourceMappingURL=createRecommendationController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createRecommendationController.d.ts","sourceRoot":"","sources":["../../../src/create/createRecommendationController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AASzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,UAAU,CAAC;iCAInE,kCAAkC,aAAa,sBAAsB,KAAG,wBAAwB;AAAxH,wBAiBE"}
1
+ {"version":3,"file":"createRecommendationController.d.ts","sourceRoot":"","sources":["../../../src/create/createRecommendationController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AASzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,UAAU,CAAC;iCAInE,kCAAkC,oDAAsC,wBAAwB;AAAxH,wBAiBE"}
@@ -1,5 +1,5 @@
1
1
  import { SearchController } from '@searchspring/snap-controller';
2
2
  import type { SnapControllerServices, SnapSearchControllerConfig } from '../types';
3
- declare const _default: (config: SnapSearchControllerConfig, services?: SnapControllerServices) => SearchController;
3
+ declare const _default: (config: SnapSearchControllerConfig, services?: SnapControllerServices | undefined) => SearchController;
4
4
  export default _default;
5
5
  //# sourceMappingURL=createSearchController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSearchController.d.ts","sourceRoot":"","sources":["../../../src/create/createSearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAQjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;iCAI3D,0BAA0B,aAAa,sBAAsB,KAAG,gBAAgB;AAAxG,wBAkBE"}
1
+ {"version":3,"file":"createSearchController.d.ts","sourceRoot":"","sources":["../../../src/create/createSearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAQjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;iCAI3D,0BAA0B,oDAAsC,gBAAgB;AAAxG,wBAkBE"}
@@ -1 +1 @@
1
- {"version":3,"file":"getBundleDetails.d.ts","sourceRoot":"","sources":["../../../src/getBundleDetails/getBundleDetails.ts"],"names":[],"mappings":"AAAA,aAAK,aAAa,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAe,MAAM,KAAG,QAAQ,aAAa,CAuBzE,CAAC"}
1
+ {"version":3,"file":"getBundleDetails.d.ts","sourceRoot":"","sources":["../../../src/getBundleDetails/getBundleDetails.ts"],"names":[],"mappings":"AAAA,aAAK,aAAa,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAe,MAAM,KAAG,QAAQ,aAAa,CAyBzE,CAAC"}
@@ -5,10 +5,11 @@ export const getBundleDetails = async (url) => {
5
5
  request.onreadystatechange = () => {
6
6
  if (request.readyState === request.DONE) {
7
7
  const status = request.status;
8
- if (status === 0 || (status >= 200 && status < 400)) {
8
+ const lastModified = request.getResponseHeader('Last-Modified');
9
+ if ((lastModified && status === 0) || (status >= 200 && status < 400)) {
9
10
  resolve({
10
11
  url,
11
- lastModified: request.getResponseHeader('Last-Modified').split(',')[1].trim(),
12
+ lastModified: lastModified.split(',')[1].trim(),
12
13
  });
13
14
  }
14
15
  else {
@@ -56,4 +56,9 @@ export declare type SnapRecommendationControllerConfig = {
56
56
  controller: RecommendationControllerConfig;
57
57
  context?: ContextVariables;
58
58
  };
59
+ declare global {
60
+ interface Window {
61
+ searchspring?: any;
62
+ }
63
+ }
59
64
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,KAAK,EACX,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,gBAAgB,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACtH,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,oBAAY,sBAAsB,GAAG;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,mBAAmB,CAAC;IAC5E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,qBAAqB,GAC9B,0BAA0B,GAC1B,gCAAgC,GAChC,0BAA0B,GAC1B,kCAAkC,CAAC;AAEtC,oBAAY,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC;IAAE,UAAU,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAAC;AAElF,oBAAY,0BAA0B,GAAG;IACxC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,gCAAgC,GAAG;IAC9C,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,4BAA4B,CAAC;IACzC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,0BAA0B,GAAG;IACxC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,kCAAkC,GAAG;IAChD,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,8BAA8B,CAAC;IAC3C,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,KAAK,EACX,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,gBAAgB,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACtH,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,oBAAY,sBAAsB,GAAG;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,mBAAmB,CAAC;IAC5E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,qBAAqB,GAC9B,0BAA0B,GAC1B,gCAAgC,GAChC,0BAA0B,GAC1B,kCAAkC,CAAC;AAEtC,oBAAY,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC;IAAE,UAAU,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAAC;AAElF,oBAAY,0BAA0B,GAAG;IACxC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,gCAAgC,GAAG;IAC9C,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,4BAA4B,CAAC;IACzC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,0BAA0B,GAAG;IACxC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,kCAAkC,GAAG;IAChD,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,8BAA8B,CAAC;IAC3C,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,YAAY,CAAC,EAAE,GAAG,CAAC;KACnB;CACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-preact",
3
- "version": "0.27.7",
3
+ "version": "0.29.0",
4
4
  "description": "Snap Preact",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -20,26 +20,26 @@
20
20
  "test:watch": "jest --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@searchspring/snap-client": "^0.27.7",
24
- "@searchspring/snap-controller": "^0.27.7",
25
- "@searchspring/snap-event-manager": "^0.27.7",
26
- "@searchspring/snap-logger": "^0.27.7",
27
- "@searchspring/snap-preact-components": "^0.27.7",
28
- "@searchspring/snap-profiler": "^0.27.7",
29
- "@searchspring/snap-store-mobx": "^0.27.7",
30
- "@searchspring/snap-toolbox": "^0.27.7",
31
- "@searchspring/snap-tracker": "^0.27.7",
32
- "@searchspring/snap-url-manager": "^0.27.7",
33
- "deepmerge": "^4.2.2",
34
- "intersection-observer": "^0.12.0",
35
- "is-plain-object": "^5.0.0"
23
+ "@searchspring/snap-client": "^0.29.0",
24
+ "@searchspring/snap-controller": "^0.29.0",
25
+ "@searchspring/snap-event-manager": "^0.29.0",
26
+ "@searchspring/snap-logger": "^0.29.0",
27
+ "@searchspring/snap-preact-components": "^0.29.0",
28
+ "@searchspring/snap-profiler": "^0.29.0",
29
+ "@searchspring/snap-store-mobx": "^0.29.0",
30
+ "@searchspring/snap-toolbox": "^0.29.0",
31
+ "@searchspring/snap-tracker": "^0.29.0",
32
+ "@searchspring/snap-url-manager": "^0.29.0",
33
+ "deepmerge": "4.2.2",
34
+ "intersection-observer": "0.12.0",
35
+ "is-plain-object": "5.0.0"
36
36
  },
37
37
  "devDependencies": {
38
- "@types/react": "^17.0.20"
38
+ "@types/react": "17.0.45"
39
39
  },
40
40
  "sideEffects": false,
41
41
  "files": [
42
42
  "dist/**/*"
43
43
  ],
44
- "gitHead": "e926b49d646627752cb9a63a71709b3ee0ba892a"
44
+ "gitHead": "8519941d9efa15462c21be62a51fa43000177584"
45
45
  }