@crystaldesign/basket-handler 26.6.0 → 26.7.0-beta.10

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.
@@ -20,9 +20,6 @@ import DivaUtils from '@crystaldesign/diva-utils';
20
20
 
21
21
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
22
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
24
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
25
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
26
23
  var BASKET_SAVE_ERROR = /*#__PURE__*/function (BASKET_SAVE_ERROR) {
27
24
  BASKET_SAVE_ERROR["ERROR_NO_BASKET_SAVED"] = "ERROR_NO_BASKET_SAVED";
28
25
  BASKET_SAVE_ERROR["ERROR_BASKET_AFTER_SAVE"] = "ERROR_BASKET_AFTER_SAVE";
@@ -49,418 +46,87 @@ var BasketHandler = /*#__PURE__*/function () {
49
46
  return this._api2Url;
50
47
  }
51
48
  }, {
52
- key: "getAuthHeader",
53
- value: function getAuthHeader(jwt, apiKey) {
54
- if (jwt) return {
55
- Authorization: 'Bearer ' + jwt
56
- };
57
- if (apiKey) return {
58
- 'X-API-KEY': apiKey
59
- };
60
- return undefined;
61
- }
62
- }, {
63
- key: "getUploadTupleKey",
64
- value: function getUploadTupleKey(upload) {
65
- var _upload$setImagesId, _upload$variantId;
66
- return "".concat(upload.slot, "|").concat(upload.setId, "|").concat((_upload$setImagesId = upload.setImagesId) !== null && _upload$setImagesId !== void 0 ? _upload$setImagesId : '', "|").concat((_upload$variantId = upload.variantId) !== null && _upload$variantId !== void 0 ? _upload$variantId : '');
67
- }
68
-
69
- /**
70
- * Mirror the CDN URLs the backend wrote into the saved basket back onto the
71
- * in-memory basket the UI still holds. Without this, after save the local
72
- * Set2DImage / SetImages[].URL stay empty (they were sent empty) and the
73
- * transient preview URLs get cleared, so 2D/AI images disappear from the
74
- * checkout. Mirrors the backend resolveUploadTarget routing, incl. variants.
75
- */
76
- }, {
77
- key: "syncUploadedUrlsToLocalBasket",
78
- value: function syncUploadedUrlsToLocalBasket(localBasket, savedBasketJson, uploadRefs) {
79
- var _savedBasketJson$Orde;
80
- if (!(savedBasketJson !== null && savedBasketJson !== void 0 && (_savedBasketJson$Orde = savedBasketJson.OrderSets) !== null && _savedBasketJson$Orde !== void 0 && _savedBasketJson$Orde.length) || !uploadRefs.length) return;
81
- var _iterator = _createForOfIteratorHelper(uploadRefs),
82
- _step;
83
- try {
84
- var _loop = function _loop() {
85
- var _localBasket$OrderSet, _savedBasketJson$Orde2, _localSet$SetImages, _savedSet$SetImages;
86
- var uploadRef = _step.value;
87
- var localSet = (_localBasket$OrderSet = localBasket.OrderSets) === null || _localBasket$OrderSet === void 0 ? void 0 : _localBasket$OrderSet.find(function (orderSet) {
88
- return orderSet.SetID === uploadRef.setId;
89
- });
90
- var savedSet = (_savedBasketJson$Orde2 = savedBasketJson.OrderSets) === null || _savedBasketJson$Orde2 === void 0 ? void 0 : _savedBasketJson$Orde2.find(function (orderSet) {
91
- return orderSet.SetID === uploadRef.setId;
92
- });
93
- if (!localSet || !savedSet) return 0; // continue
94
- if (uploadRef.slot === 'planning2D') {
95
- if (uploadRef.variantId !== undefined) {
96
- var _localSet$ConfigVaria, _savedSet$ConfigVaria;
97
- var localVariant = (_localSet$ConfigVaria = localSet.ConfigVariants) === null || _localSet$ConfigVaria === void 0 ? void 0 : _localSet$ConfigVaria.find(function (variant) {
98
- return variant.VariantID === uploadRef.variantId;
99
- });
100
- var savedVariant = (_savedSet$ConfigVaria = savedSet.ConfigVariants) === null || _savedSet$ConfigVaria === void 0 ? void 0 : _savedSet$ConfigVaria.find(function (variant) {
101
- return variant.VariantID === uploadRef.variantId;
102
- });
103
- if (localVariant && savedVariant !== null && savedVariant !== void 0 && savedVariant.Set2DImage) {
104
- localVariant.Set2DImage = savedVariant.Set2DImage;
105
- }
106
- return 0; // continue
107
- }
108
- if (savedSet.Set2DImage) {
109
- localSet.Set2DImage = savedSet.Set2DImage;
110
- }
111
- return 0; // continue
112
- }
113
- var localImage = (_localSet$SetImages = localSet.SetImages) === null || _localSet$SetImages === void 0 ? void 0 : _localSet$SetImages.find(function (setImage) {
114
- return setImage.Id === uploadRef.setImagesId;
115
- });
116
- var savedImage = (_savedSet$SetImages = savedSet.SetImages) === null || _savedSet$SetImages === void 0 ? void 0 : _savedSet$SetImages.find(function (setImage) {
117
- return setImage.Id === uploadRef.setImagesId;
118
- });
119
- if (localImage && savedImage !== null && savedImage !== void 0 && savedImage.URL) {
120
- localImage.URL = savedImage.URL;
121
- }
122
- },
123
- _ret;
124
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
125
- _ret = _loop();
126
- if (_ret === 0) continue;
127
- }
128
- } catch (err) {
129
- _iterator.e(err);
130
- } finally {
131
- _iterator.f();
132
- }
133
- }
134
- }, {
135
- key: "validateAndFilterPendingUploads",
136
- value: function validateAndFilterPendingUploads(basket) {
137
- var _basket$OrderSets, _basket$OrderSets2;
138
- var pendingUploads = basket.listPendingUploads();
139
- var knownSetIds = new Set(((_basket$OrderSets = basket.OrderSets) !== null && _basket$OrderSets !== void 0 ? _basket$OrderSets : []).map(function (orderSet) {
140
- return orderSet.SetID;
141
- }));
142
- var validSetImagesIdsBySet = new Map();
143
- var validVariantIdsBySet = new Map();
144
- var _iterator2 = _createForOfIteratorHelper((_basket$OrderSets2 = basket.OrderSets) !== null && _basket$OrderSets2 !== void 0 ? _basket$OrderSets2 : []),
145
- _step2;
146
- try {
147
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
148
- var _orderSet$SetImages, _orderSet$ConfigVaria;
149
- var orderSet = _step2.value;
150
- validSetImagesIdsBySet.set(orderSet.SetID, new Set(((_orderSet$SetImages = orderSet.SetImages) !== null && _orderSet$SetImages !== void 0 ? _orderSet$SetImages : []).map(function (setImage) {
151
- return setImage === null || setImage === void 0 ? void 0 : setImage.Id;
152
- }).filter(function (id) {
153
- return !!id;
154
- })));
155
- validVariantIdsBySet.set(orderSet.SetID, new Set(((_orderSet$ConfigVaria = orderSet.ConfigVariants) !== null && _orderSet$ConfigVaria !== void 0 ? _orderSet$ConfigVaria : []).map(function (variant) {
156
- return variant === null || variant === void 0 ? void 0 : variant.VariantID;
157
- }).filter(function (id) {
158
- return id !== undefined && id !== null;
159
- })));
160
- }
161
-
162
- // planning2D is unique per (setId, variantId): the main configuration and
163
- // each ConfigVariant of a set may carry its own 2D image.
164
- } catch (err) {
165
- _iterator2.e(err);
166
- } finally {
167
- _iterator2.f();
168
- }
169
- var planning2DTargets = new Set();
170
- var seenTuples = new Set();
171
- var filteredUploads = [];
172
- var _iterator3 = _createForOfIteratorHelper(pendingUploads),
173
- _step3;
174
- try {
175
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
176
- var pendingUpload = _step3.value;
177
- if (pendingUpload.slot === 'planning2D') {
178
- var _validVariantIdsBySet, _pendingUpload$varian;
179
- if (!knownSetIds.has(pendingUpload.setId)) {
180
- throw new Error('planning2D pending upload setId does not exist in basket OrderSets');
181
- }
182
- if (pendingUpload.variantId !== undefined && !((_validVariantIdsBySet = validVariantIdsBySet.get(pendingUpload.setId)) !== null && _validVariantIdsBySet !== void 0 && _validVariantIdsBySet.has(pendingUpload.variantId))) {
183
- throw new Error('planning2D pending upload variantId does not exist in matching OrderSet.ConfigVariants');
184
- }
185
- var planning2DTargetKey = "".concat(pendingUpload.setId, "|").concat((_pendingUpload$varian = pendingUpload.variantId) !== null && _pendingUpload$varian !== void 0 ? _pendingUpload$varian : '');
186
- if (planning2DTargets.has(planning2DTargetKey)) {
187
- throw new Error('Only one planning2D pending upload is allowed per setId/variantId');
188
- }
189
- planning2DTargets.add(planning2DTargetKey);
190
- }
191
- if (pendingUpload.slot === 'aiImage') {
192
- if (!pendingUpload.setImagesId) {
193
- var _this$LOG;
194
- (_this$LOG = this.LOG) === null || _this$LOG === void 0 || _this$LOG.warn('Skipping aiImage pending upload without setImagesId');
195
- continue;
196
- }
197
- var setImagesIds = validSetImagesIdsBySet.get(pendingUpload.setId);
198
- if (!(setImagesIds !== null && setImagesIds !== void 0 && setImagesIds.has(pendingUpload.setImagesId))) {
199
- throw new Error('aiImage pending upload setImagesId does not exist in matching OrderSet.SetImages');
200
- }
201
- }
202
- var tupleKey = this.getUploadTupleKey(pendingUpload);
203
- if (seenTuples.has(tupleKey)) {
204
- throw new Error('Duplicate pending upload tuple detected');
205
- }
206
- seenTuples.add(tupleKey);
207
- filteredUploads.push(pendingUpload);
208
- }
209
- } catch (err) {
210
- _iterator3.e(err);
211
- } finally {
212
- _iterator3.f();
213
- }
214
- return filteredUploads;
215
- }
216
- }, {
217
- key: "initUploads",
49
+ key: "saveBasket",
218
50
  value: function () {
219
- var _initUploads = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
220
- var _DivaUtils$Configurat, _initResponse$data$ti, _initResponse$data;
221
- var jwt, apiKey, basket, pendingUploads, authHeader, initUrl, initItems, initResponse;
51
+ var _saveBasket = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
52
+ var jwt, basket, awaitPDF, utmCampaign, saveToApi2, sessionGuid, apiKey, _this$LOG, fullUrl, response, _DivaUtils$Configurat, _api2Result, authHeader, resultBasket, api2Result, _e$response, _e$response2, _this$LOG4, _this$LOG2, _this$LOG3;
222
53
  return _regeneratorRuntime.wrap(function _callee$(_context) {
223
54
  while (1) switch (_context.prev = _context.next) {
224
55
  case 0:
225
- jwt = _ref.jwt, apiKey = _ref.apiKey, basket = _ref.basket, pendingUploads = _ref.pendingUploads;
226
- authHeader = this.getAuthHeader(jwt, apiKey);
227
- initUrl = this.basketService + '/v1/baskets/save/uploads/init';
228
- initItems = pendingUploads.map(function (pendingUpload) {
229
- return {
230
- slot: pendingUpload.slot,
231
- setId: pendingUpload.setId,
232
- setImagesId: pendingUpload.setImagesId,
233
- variantId: pendingUpload.variantId,
234
- fileName: pendingUpload.fileName,
235
- mimeType: pendingUpload.mimeType,
236
- size: pendingUpload.size
237
- };
238
- });
239
- _context.next = 6;
240
- return axios.post(initUrl, JSON.stringify({
241
- organizationId: basket.OrganizationId,
242
- uploads: initItems
243
- }), {
244
- headers: _objectSpread(_objectSpread({}, authHeader), {}, {
245
- 'Content-Type': 'application/json',
246
- 'X-Session-Id': DivaUtils.SessionId,
247
- 'X-Configurator-Id': (_DivaUtils$Configurat = DivaUtils.ConfigurationId) !== null && _DivaUtils$Configurat !== void 0 ? _DivaUtils$Configurat : ''
248
- })
249
- });
250
- case 6:
251
- initResponse = _context.sent;
252
- return _context.abrupt("return", (_initResponse$data$ti = (_initResponse$data = initResponse.data) === null || _initResponse$data === void 0 ? void 0 : _initResponse$data.tickets) !== null && _initResponse$data$ti !== void 0 ? _initResponse$data$ti : []);
253
- case 8:
254
- case "end":
255
- return _context.stop();
256
- }
257
- }, _callee, this);
258
- }));
259
- function initUploads(_x) {
260
- return _initUploads.apply(this, arguments);
261
- }
262
- return initUploads;
263
- }()
264
- }, {
265
- key: "uploadPendingFiles",
266
- value: function () {
267
- var _uploadPendingFiles = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(pendingUploads, tickets) {
268
- var uploadTicketsByTuple, _iterator4, _step4, ticket, uploadRefs, _iterator5, _step5, _ticket$simpleUpload, _ticket$simpleUpload2, _ticket$simpleUpload$, pendingUpload, _ticket, uploadResponse;
269
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
270
- while (1) switch (_context2.prev = _context2.next) {
271
- case 0:
272
- uploadTicketsByTuple = new Map();
273
- _iterator4 = _createForOfIteratorHelper(tickets);
274
- try {
275
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
276
- ticket = _step4.value;
277
- uploadTicketsByTuple.set(this.getUploadTupleKey(ticket), ticket);
278
- }
279
- } catch (err) {
280
- _iterator4.e(err);
281
- } finally {
282
- _iterator4.f();
283
- }
284
- uploadRefs = [];
285
- _iterator5 = _createForOfIteratorHelper(pendingUploads);
286
- _context2.prev = 5;
287
- _iterator5.s();
288
- case 7:
289
- if ((_step5 = _iterator5.n()).done) {
290
- _context2.next = 20;
291
- break;
292
- }
293
- pendingUpload = _step5.value;
294
- _ticket = uploadTicketsByTuple.get(this.getUploadTupleKey(pendingUpload));
295
- if (!(!(_ticket !== null && _ticket !== void 0 && _ticket.uploadId) || !((_ticket$simpleUpload = _ticket.simpleUpload) !== null && _ticket$simpleUpload !== void 0 && _ticket$simpleUpload.url) || !((_ticket$simpleUpload2 = _ticket.simpleUpload) !== null && _ticket$simpleUpload2 !== void 0 && _ticket$simpleUpload2.method))) {
296
- _context2.next = 12;
297
- break;
298
- }
299
- throw new Error('Missing upload ticket for pending basket upload');
300
- case 12:
301
- _context2.next = 14;
302
- return fetch(_ticket.simpleUpload.url, {
303
- method: _ticket.simpleUpload.method,
304
- headers: (_ticket$simpleUpload$ = _ticket.simpleUpload.headers) !== null && _ticket$simpleUpload$ !== void 0 ? _ticket$simpleUpload$ : {},
305
- body: pendingUpload.blob
306
- });
307
- case 14:
308
- uploadResponse = _context2.sent;
309
- if (uploadResponse.ok) {
310
- _context2.next = 17;
311
- break;
312
- }
313
- throw new Error('Direct storage upload failed');
314
- case 17:
315
- uploadRefs.push({
316
- slot: pendingUpload.slot,
317
- setId: pendingUpload.setId,
318
- setImagesId: pendingUpload.setImagesId,
319
- variantId: pendingUpload.variantId,
320
- fileName: pendingUpload.fileName,
321
- uploadId: _ticket.uploadId
322
- });
323
- case 18:
324
- _context2.next = 7;
325
- break;
326
- case 20:
327
- _context2.next = 25;
328
- break;
329
- case 22:
330
- _context2.prev = 22;
331
- _context2.t0 = _context2["catch"](5);
332
- _iterator5.e(_context2.t0);
333
- case 25:
334
- _context2.prev = 25;
335
- _iterator5.f();
336
- return _context2.finish(25);
337
- case 28:
338
- return _context2.abrupt("return", uploadRefs);
339
- case 29:
340
- case "end":
341
- return _context2.stop();
342
- }
343
- }, _callee2, this, [[5, 22, 25, 28]]);
344
- }));
345
- function uploadPendingFiles(_x2, _x3) {
346
- return _uploadPendingFiles.apply(this, arguments);
347
- }
348
- return uploadPendingFiles;
349
- }()
350
- }, {
351
- key: "saveBasket",
352
- value: function () {
353
- var _saveBasket = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref2) {
354
- var jwt, basket, awaitPDF, utmCampaign, saveToApi2, sessionGuid, apiKey, _this$LOG2, fullUrl, response, _DivaUtils$Configurat2, authHeader, pendingUploads, uploadRefs, uploadTickets, saveRequestBody, resultBasket, api2Result, _e$response, _e$response2, _this$LOG5, _this$LOG3, _this$LOG4;
355
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
356
- while (1) switch (_context3.prev = _context3.next) {
357
- case 0:
358
- jwt = _ref2.jwt, basket = _ref2.basket, awaitPDF = _ref2.awaitPDF, utmCampaign = _ref2.utmCampaign, saveToApi2 = _ref2.saveToApi2, sessionGuid = _ref2.sessionGuid, apiKey = _ref2.apiKey;
56
+ jwt = _ref.jwt, basket = _ref.basket, awaitPDF = _ref.awaitPDF, utmCampaign = _ref.utmCampaign, saveToApi2 = _ref.saveToApi2, sessionGuid = _ref.sessionGuid, apiKey = _ref.apiKey;
359
57
  if (basket.DivaNr) {
360
- _context3.next = 4;
58
+ _context.next = 4;
361
59
  break;
362
60
  }
363
- (_this$LOG2 = this.LOG) === null || _this$LOG2 === void 0 || _this$LOG2.error('Saving Basket Failed. Error: DivaNr is empty', 'SELLER_0003');
364
- return _context3.abrupt("return", BASKET_SAVE_ERROR.ERROR_NO_BASKET_SAVED);
61
+ (_this$LOG = this.LOG) === null || _this$LOG === void 0 || _this$LOG.error('Saving Basket Failed. Error: DivaNr is empty', 'SELLER_0003');
62
+ return _context.abrupt("return", BASKET_SAVE_ERROR.ERROR_NO_BASKET_SAVED);
365
63
  case 4:
366
- fullUrl = new URL(this.basketService + '/v1/baskets/save');
64
+ fullUrl = new URL(this.basketService + '/baskets');
367
65
  if (awaitPDF != undefined) fullUrl.searchParams.append('awaitPDF', awaitPDF.toString());
368
66
  if (utmCampaign) fullUrl.searchParams.append('utmCampaign', utmCampaign);
369
- _context3.prev = 7;
370
- authHeader = this.getAuthHeader(jwt, apiKey);
371
- pendingUploads = this.validateAndFilterPendingUploads(basket);
372
- uploadRefs = [];
373
- if (!(pendingUploads.length > 0)) {
374
- _context3.next = 18;
375
- break;
376
- }
377
- _context3.next = 14;
378
- return this.initUploads({
379
- jwt: jwt,
380
- apiKey: apiKey,
381
- basket: basket,
382
- pendingUploads: pendingUploads
383
- });
384
- case 14:
385
- uploadTickets = _context3.sent;
386
- _context3.next = 17;
387
- return this.uploadPendingFiles(pendingUploads, uploadTickets);
388
- case 17:
389
- uploadRefs = _context3.sent;
390
- case 18:
391
- saveRequestBody = {
392
- basket: basket.getAsJson()
67
+ _context.prev = 7;
68
+ if (jwt) authHeader = {
69
+ Authorization: 'Bearer ' + jwt
70
+ };else if (apiKey) authHeader = {
71
+ 'X-API-KEY': apiKey
393
72
  };
394
- if (uploadRefs.length > 0) {
395
- saveRequestBody.uploads = uploadRefs;
396
- }
397
- _context3.next = 22;
398
- return axios.post(fullUrl.toString(), JSON.stringify(saveRequestBody), {
73
+ _context.next = 11;
74
+ return axios.post(fullUrl.toString(), JSON.stringify(basket.getAsJson()), {
399
75
  headers: _objectSpread(_objectSpread({}, authHeader), {}, {
400
76
  'Content-Type': 'application/json',
401
77
  'X-Session-Id': DivaUtils.SessionId,
402
- 'X-Configurator-Id': (_DivaUtils$Configurat2 = DivaUtils.ConfigurationId) !== null && _DivaUtils$Configurat2 !== void 0 ? _DivaUtils$Configurat2 : ''
78
+ 'X-Configurator-Id': (_DivaUtils$Configurat = DivaUtils.ConfigurationId) !== null && _DivaUtils$Configurat !== void 0 ? _DivaUtils$Configurat : ''
403
79
  })
404
80
  });
405
- case 22:
406
- response = _context3.sent;
407
- _context3.next = 25;
81
+ case 11:
82
+ response = _context.sent;
83
+ _context.next = 14;
408
84
  return response.data;
409
- case 25:
410
- resultBasket = _context3.sent;
411
- if (uploadRefs.length > 0) {
412
- this.syncUploadedUrlsToLocalBasket(basket, resultBasket, uploadRefs);
413
- }
85
+ case 14:
86
+ resultBasket = _context.sent;
414
87
  if (!saveToApi2) {
415
- _context3.next = 34;
88
+ _context.next = 19;
416
89
  break;
417
90
  }
418
- _context3.next = 30;
91
+ _context.next = 18;
419
92
  return this.api2SaveBasket({
420
- basket: resultBasket,
93
+ basket: basket,
421
94
  sessionGuid: sessionGuid,
422
95
  awaitPDF: awaitPDF,
423
96
  jwt: jwt,
424
97
  saveToApi2: saveToApi2,
425
98
  _id: resultBasket._id
426
99
  });
427
- case 30:
428
- api2Result = _context3.sent;
429
- if (!api2Result) {
430
- _context3.next = 34;
431
- break;
432
- }
433
- basket.clearPendingUploads();
434
- return _context3.abrupt("return", api2Result);
435
- case 34:
436
- basket.clearPendingUploads();
437
- return _context3.abrupt("return", resultBasket);
438
- case 38:
439
- _context3.prev = 38;
440
- _context3.t0 = _context3["catch"](7);
441
- if (!(((_e$response = _context3.t0.response) === null || _e$response === void 0 ? void 0 : _e$response.status) === 409)) {
442
- _context3.next = 45;
100
+ case 18:
101
+ api2Result = _context.sent;
102
+ case 19:
103
+ return _context.abrupt("return", (_api2Result = api2Result) !== null && _api2Result !== void 0 ? _api2Result : resultBasket);
104
+ case 22:
105
+ _context.prev = 22;
106
+ _context.t0 = _context["catch"](7);
107
+ if (!(((_e$response = _context.t0.response) === null || _e$response === void 0 ? void 0 : _e$response.status) === 409)) {
108
+ _context.next = 29;
443
109
  break;
444
110
  }
445
- (_this$LOG3 = this.LOG) === null || _this$LOG3 === void 0 || _this$LOG3.error('Saving Basket failed - Entity already exists.');
446
- return _context3.abrupt("return", BASKET_SAVE_ERROR.ERROR_NO_BASKET_SAVED_ENTITY_EXISTS);
447
- case 45:
448
- if (!(((_e$response2 = _context3.t0.response) === null || _e$response2 === void 0 ? void 0 : _e$response2.status) !== 201)) {
449
- _context3.next = 48;
111
+ (_this$LOG2 = this.LOG) === null || _this$LOG2 === void 0 || _this$LOG2.error('Saving Basket failed - Entity already exists.');
112
+ return _context.abrupt("return", BASKET_SAVE_ERROR.ERROR_NO_BASKET_SAVED_ENTITY_EXISTS);
113
+ case 29:
114
+ if (!(((_e$response2 = _context.t0.response) === null || _e$response2 === void 0 ? void 0 : _e$response2.status) !== 201)) {
115
+ _context.next = 32;
450
116
  break;
451
117
  }
452
- (_this$LOG4 = this.LOG) === null || _this$LOG4 === void 0 || _this$LOG4.error('Saving Basket failed.');
453
- return _context3.abrupt("return", BASKET_SAVE_ERROR.ERROR_NO_BASKET_SAVED);
454
- case 48:
455
- (_this$LOG5 = this.LOG) === null || _this$LOG5 === void 0 || _this$LOG5.error('Saving Basket Failed. serverError ' + _context3.t0.message, 'SELLER_0003');
456
- return _context3.abrupt("return", BASKET_SAVE_ERROR.ERROR_NO_BASKET_SAVED);
457
- case 50:
118
+ (_this$LOG3 = this.LOG) === null || _this$LOG3 === void 0 || _this$LOG3.error('Saving Basket failed.');
119
+ return _context.abrupt("return", BASKET_SAVE_ERROR.ERROR_NO_BASKET_SAVED);
120
+ case 32:
121
+ (_this$LOG4 = this.LOG) === null || _this$LOG4 === void 0 || _this$LOG4.error('Saving Basket Failed. serverError ' + _context.t0.message, 'SELLER_0003');
122
+ return _context.abrupt("return", BASKET_SAVE_ERROR.ERROR_NO_BASKET_SAVED);
123
+ case 34:
458
124
  case "end":
459
- return _context3.stop();
125
+ return _context.stop();
460
126
  }
461
- }, _callee3, this, [[7, 38]]);
127
+ }, _callee, this, [[7, 22]]);
462
128
  }));
463
- function saveBasket(_x4) {
129
+ function saveBasket(_x) {
464
130
  return _saveBasket.apply(this, arguments);
465
131
  }
466
132
  return saveBasket;
@@ -468,29 +134,29 @@ var BasketHandler = /*#__PURE__*/function () {
468
134
  }, {
469
135
  key: "api2SaveBasket",
470
136
  value: function () {
471
- var _api2SaveBasket = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref3) {
472
- var basket, sessionGuid, awaitPDF, _id, _this$LOG6, _this$LOG7, fullUrl, response, _DivaUtils$Configurat3, _response$Result, _this$LOG8, _this$LOG9;
473
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
474
- while (1) switch (_context4.prev = _context4.next) {
137
+ var _api2SaveBasket = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
138
+ var basket, sessionGuid, awaitPDF, _id, _this$LOG5, _this$LOG6, fullUrl, response, _DivaUtils$Configurat2, _response$Result, _this$LOG7, _this$LOG8;
139
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
140
+ while (1) switch (_context2.prev = _context2.next) {
475
141
  case 0:
476
- basket = _ref3.basket, sessionGuid = _ref3.sessionGuid, awaitPDF = _ref3.awaitPDF, _id = _ref3._id;
142
+ basket = _ref2.basket, sessionGuid = _ref2.sessionGuid, awaitPDF = _ref2.awaitPDF, _id = _ref2._id;
477
143
  if (basket.getAsJson().DivaNr) {
478
- _context4.next = 4;
144
+ _context2.next = 4;
479
145
  break;
480
146
  }
481
- (_this$LOG6 = this.LOG) === null || _this$LOG6 === void 0 || _this$LOG6.error('Saving Basket Failed. Error: DivaNr is empty', 'SELLER_0003');
482
- return _context4.abrupt("return", BASKET_SAVE_ERROR.ERROR_BASKET_AFTER_SAVE);
147
+ (_this$LOG5 = this.LOG) === null || _this$LOG5 === void 0 || _this$LOG5.error('Saving Basket Failed. Error: DivaNr is empty', 'SELLER_0003');
148
+ return _context2.abrupt("return", BASKET_SAVE_ERROR.ERROR_BASKET_AFTER_SAVE);
483
149
  case 4:
484
150
  if (sessionGuid) {
485
- _context4.next = 7;
151
+ _context2.next = 7;
486
152
  break;
487
153
  }
488
- (_this$LOG7 = this.LOG) === null || _this$LOG7 === void 0 || _this$LOG7.error('Cant create api2 Basket without sessionguid');
489
- return _context4.abrupt("return", BASKET_SAVE_ERROR.ERROR_BASKET_AFTER_SAVE);
154
+ (_this$LOG6 = this.LOG) === null || _this$LOG6 === void 0 || _this$LOG6.error('Cant create api2 Basket without sessionguid');
155
+ return _context2.abrupt("return", BASKET_SAVE_ERROR.ERROR_BASKET_AFTER_SAVE);
490
156
  case 7:
491
157
  fullUrl = this.api2Url + '?function=SetJsonBasketData3' + '&callHeadlessBrowserAsync=' + (!awaitPDF ? '1' : '0');
492
- _context4.prev = 8;
493
- _context4.next = 11;
158
+ _context2.prev = 8;
159
+ _context2.next = 11;
494
160
  return axios.post(fullUrl, JSON.stringify(_objectSpread(_objectSpread({}, basket), {}, {
495
161
  _id: _id
496
162
  })), {
@@ -498,7 +164,7 @@ var BasketHandler = /*#__PURE__*/function () {
498
164
  sessionGuid: sessionGuid,
499
165
  'Content-Type': 'application/json',
500
166
  'X-Session-Id': DivaUtils.SessionId,
501
- 'X-Configurator-Id': (_DivaUtils$Configurat3 = DivaUtils.ConfigurationId) !== null && _DivaUtils$Configurat3 !== void 0 ? _DivaUtils$Configurat3 : ''
167
+ 'X-Configurator-Id': (_DivaUtils$Configurat2 = DivaUtils.ConfigurationId) !== null && _DivaUtils$Configurat2 !== void 0 ? _DivaUtils$Configurat2 : ''
502
168
  }
503
169
  }).then(function (res) {
504
170
  if (res.status !== 200) {
@@ -507,30 +173,30 @@ var BasketHandler = /*#__PURE__*/function () {
507
173
  return res.data;
508
174
  });
509
175
  case 11:
510
- response = _context4.sent;
176
+ response = _context2.sent;
511
177
  if (!(response.Error || (_response$Result = response.Result) !== null && _response$Result !== void 0 && _response$Result.startsWith('Error'))) {
512
- _context4.next = 15;
178
+ _context2.next = 15;
513
179
  break;
514
180
  }
515
- (_this$LOG8 = this.LOG) === null || _this$LOG8 === void 0 || _this$LOG8.error('Saving Basket Failed. serverError: ' + response.Error, 'SELLER_0003');
516
- return _context4.abrupt("return", BASKET_SAVE_ERROR.ERROR_BASKET_AFTER_SAVE);
181
+ (_this$LOG7 = this.LOG) === null || _this$LOG7 === void 0 || _this$LOG7.error('Saving Basket Failed. serverError: ' + response.Error, 'SELLER_0003');
182
+ return _context2.abrupt("return", BASKET_SAVE_ERROR.ERROR_BASKET_AFTER_SAVE);
517
183
  case 15:
518
- _context4.next = 21;
184
+ _context2.next = 21;
519
185
  break;
520
186
  case 17:
521
- _context4.prev = 17;
522
- _context4.t0 = _context4["catch"](8);
523
- (_this$LOG9 = this.LOG) === null || _this$LOG9 === void 0 || _this$LOG9.error('Saving Basket Failed. serverError ' + _context4.t0.message, 'SELLER_0003');
524
- return _context4.abrupt("return", BASKET_SAVE_ERROR.ERROR_BASKET_AFTER_SAVE);
187
+ _context2.prev = 17;
188
+ _context2.t0 = _context2["catch"](8);
189
+ (_this$LOG8 = this.LOG) === null || _this$LOG8 === void 0 || _this$LOG8.error('Saving Basket Failed. serverError ' + _context2.t0.message, 'SELLER_0003');
190
+ return _context2.abrupt("return", BASKET_SAVE_ERROR.ERROR_BASKET_AFTER_SAVE);
525
191
  case 21:
526
- return _context4.abrupt("return", undefined);
192
+ return _context2.abrupt("return", undefined);
527
193
  case 22:
528
194
  case "end":
529
- return _context4.stop();
195
+ return _context2.stop();
530
196
  }
531
- }, _callee4, this, [[8, 17]]);
197
+ }, _callee2, this, [[8, 17]]);
532
198
  }));
533
- function api2SaveBasket(_x5) {
199
+ function api2SaveBasket(_x2) {
534
200
  return _api2SaveBasket.apply(this, arguments);
535
201
  }
536
202
  return api2SaveBasket;
@@ -538,18 +204,18 @@ var BasketHandler = /*#__PURE__*/function () {
538
204
  }, {
539
205
  key: "setOrdered",
540
206
  value: function () {
541
- var _setOrdered = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref4) {
542
- var serviceUrl, organizationId, jwt, divaNr, documentVersion, body, _this$LOG10;
543
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
544
- while (1) switch (_context5.prev = _context5.next) {
207
+ var _setOrdered = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
208
+ var serviceUrl, organizationId, jwt, divaNr, documentVersion, body, _this$LOG9;
209
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
210
+ while (1) switch (_context3.prev = _context3.next) {
545
211
  case 0:
546
- serviceUrl = _ref4.serviceUrl, organizationId = _ref4.organizationId, jwt = _ref4.jwt, divaNr = _ref4.divaNr, documentVersion = _ref4.documentVersion;
547
- _context5.prev = 1;
212
+ serviceUrl = _ref3.serviceUrl, organizationId = _ref3.organizationId, jwt = _ref3.jwt, divaNr = _ref3.divaNr, documentVersion = _ref3.documentVersion;
213
+ _context3.prev = 1;
548
214
  body = {
549
215
  divaNr: divaNr,
550
216
  version: documentVersion
551
217
  };
552
- _context5.next = 5;
218
+ _context3.next = 5;
553
219
  return fetch("".concat(serviceUrl, "/orders?organizationId=").concat(organizationId), {
554
220
  method: 'POST',
555
221
  headers: {
@@ -561,20 +227,20 @@ var BasketHandler = /*#__PURE__*/function () {
561
227
  return r.json();
562
228
  });
563
229
  case 5:
564
- _context5.next = 11;
230
+ _context3.next = 11;
565
231
  break;
566
232
  case 7:
567
- _context5.prev = 7;
568
- _context5.t0 = _context5["catch"](1);
569
- (_this$LOG10 = this.LOG) === null || _this$LOG10 === void 0 || _this$LOG10.error('Could not set OrderStatus: ' + _context5.t0.message);
233
+ _context3.prev = 7;
234
+ _context3.t0 = _context3["catch"](1);
235
+ (_this$LOG9 = this.LOG) === null || _this$LOG9 === void 0 || _this$LOG9.error('Could not set OrderStatus: ' + _context3.t0.message);
570
236
  throw new Error('DivaNr not found');
571
237
  case 11:
572
238
  case "end":
573
- return _context5.stop();
239
+ return _context3.stop();
574
240
  }
575
- }, _callee5, this, [[1, 7]]);
241
+ }, _callee3, this, [[1, 7]]);
576
242
  }));
577
- function setOrdered(_x6) {
243
+ function setOrdered(_x3) {
578
244
  return _setOrdered.apply(this, arguments);
579
245
  }
580
246
  return setOrdered;
@@ -13,19 +13,6 @@ export default class BasketHandler {
13
13
  constructor(LOG: any, basketService: string, api2Url: string);
14
14
  get basketService(): string;
15
15
  get api2Url(): string;
16
- private getAuthHeader;
17
- private getUploadTupleKey;
18
- /**
19
- * Mirror the CDN URLs the backend wrote into the saved basket back onto the
20
- * in-memory basket the UI still holds. Without this, after save the local
21
- * Set2DImage / SetImages[].URL stay empty (they were sent empty) and the
22
- * transient preview URLs get cleared, so 2D/AI images disappear from the
23
- * checkout. Mirrors the backend resolveUploadTarget routing, incl. variants.
24
- */
25
- private syncUploadedUrlsToLocalBasket;
26
- private validateAndFilterPendingUploads;
27
- private initUploads;
28
- private uploadPendingFiles;
29
16
  saveBasket({ jwt, basket, awaitPDF, utmCampaign, saveToApi2, sessionGuid, apiKey }: SaveBasketProps): Promise<any>;
30
17
  api2SaveBasket({ basket, sessionGuid, awaitPDF, _id }: SaveBasketProps2): Promise<BASKET_SAVE_ERROR.ERROR_BASKET_AFTER_SAVE | undefined>;
31
18
  setOrdered({ serviceUrl, organizationId, jwt, divaNr, documentVersion }: SetOrderedProps): Promise<void>;