@crystaldesign/basket-handler 26.12.0-beta.1 → 26.12.0-beta.2

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.
@@ -124,6 +124,34 @@ var BasketHandler = /*#__PURE__*/function () {
124
124
  }
125
125
  return 0; // continue
126
126
  }
127
+ if (uploadRef.slot === 'planning3DGlb') {
128
+ if (savedSet.SetGlb) {
129
+ localSet.SetGlb = savedSet.SetGlb;
130
+ }
131
+ return 0; // continue
132
+ }
133
+
134
+ // The primary 3D shot is the set's own SetImage; secondary shots carry a
135
+ // setImagesId and fall through to the SetImages[] path below.
136
+ if (uploadRef.slot === 'planning3D' && !uploadRef.setImagesId) {
137
+ if (uploadRef.variantId !== undefined) {
138
+ var _localSet$ConfigVaria2, _savedSet$ConfigVaria2;
139
+ var _localVariant = (_localSet$ConfigVaria2 = localSet.ConfigVariants) === null || _localSet$ConfigVaria2 === void 0 ? void 0 : _localSet$ConfigVaria2.find(function (variant) {
140
+ return variant.VariantID === uploadRef.variantId;
141
+ });
142
+ var _savedVariant = (_savedSet$ConfigVaria2 = savedSet.ConfigVariants) === null || _savedSet$ConfigVaria2 === void 0 ? void 0 : _savedSet$ConfigVaria2.find(function (variant) {
143
+ return variant.VariantID === uploadRef.variantId;
144
+ });
145
+ if (_localVariant && _savedVariant !== null && _savedVariant !== void 0 && _savedVariant.SetImage) {
146
+ _localVariant.SetImage = _savedVariant.SetImage;
147
+ }
148
+ return 0; // continue
149
+ }
150
+ if (savedSet.SetImage) {
151
+ localSet.SetImage = savedSet.SetImage;
152
+ }
153
+ return 0; // continue
154
+ }
127
155
  var localImage = (_localSet$SetImages = localSet.SetImages) === null || _localSet$SetImages === void 0 ? void 0 : _localSet$SetImages.find(function (setImage) {
128
156
  return setImage.Id === uploadRef.setImagesId;
129
157
  });
@@ -181,6 +209,10 @@ var BasketHandler = /*#__PURE__*/function () {
181
209
  _iterator2.f();
182
210
  }
183
211
  var planning2DTargets = new Set();
212
+ // The primary 3D shot is likewise unique per (setId, variantId); secondary shots are not.
213
+ var planning3DTargets = new Set();
214
+ // The GLB model is unique per set — a ConfigVariant has none.
215
+ var planning3DGlbTargets = new Set();
184
216
  var seenTuples = new Set();
185
217
  var filteredUploads = [];
186
218
  var _iterator3 = _createForOfIteratorHelper(pendingUploads),
@@ -202,14 +234,50 @@ var BasketHandler = /*#__PURE__*/function () {
202
234
  }
203
235
  planning2DTargets.add(planning2DTargetKey);
204
236
  }
237
+ if (pendingUpload.slot === 'planning3DGlb') {
238
+ if (!knownSetIds.has(pendingUpload.setId)) {
239
+ throw new Error('planning3DGlb pending upload setId does not exist in basket OrderSets');
240
+ }
241
+ // One model per planning, and only for the main configuration.
242
+ if (pendingUpload.setImagesId || pendingUpload.variantId !== undefined) {
243
+ throw new Error('setImagesId and variantId are not allowed for planning3DGlb pending uploads');
244
+ }
245
+ if (planning3DGlbTargets.has(pendingUpload.setId)) {
246
+ throw new Error('Only one planning3DGlb pending upload is allowed per setId');
247
+ }
248
+ planning3DGlbTargets.add(pendingUpload.setId);
249
+ }
250
+ if (pendingUpload.slot === 'planning3D') {
251
+ var _validVariantIdsBySet2;
252
+ if (!knownSetIds.has(pendingUpload.setId)) {
253
+ throw new Error('planning3D pending upload setId does not exist in basket OrderSets');
254
+ }
255
+ if (pendingUpload.variantId !== undefined && !((_validVariantIdsBySet2 = validVariantIdsBySet.get(pendingUpload.setId)) !== null && _validVariantIdsBySet2 !== void 0 && _validVariantIdsBySet2.has(pendingUpload.variantId))) {
256
+ throw new Error('planning3D pending upload variantId does not exist in matching OrderSet.ConfigVariants');
257
+ }
258
+ if (pendingUpload.setImagesId) {
259
+ // A secondary shot targets a SetImages[] entry, exactly like an aiImage.
260
+ var setImagesIds = validSetImagesIdsBySet.get(pendingUpload.setId);
261
+ if (!(setImagesIds !== null && setImagesIds !== void 0 && setImagesIds.has(pendingUpload.setImagesId))) {
262
+ throw new Error('planning3D pending upload setImagesId does not exist in matching OrderSet.SetImages');
263
+ }
264
+ } else {
265
+ var _pendingUpload$varian2;
266
+ var planning3DTargetKey = "".concat(pendingUpload.setId, "|").concat((_pendingUpload$varian2 = pendingUpload.variantId) !== null && _pendingUpload$varian2 !== void 0 ? _pendingUpload$varian2 : '');
267
+ if (planning3DTargets.has(planning3DTargetKey)) {
268
+ throw new Error('Only one primary planning3D pending upload is allowed per setId/variantId');
269
+ }
270
+ planning3DTargets.add(planning3DTargetKey);
271
+ }
272
+ }
205
273
  if (pendingUpload.slot === 'aiImage') {
206
274
  if (!pendingUpload.setImagesId) {
207
275
  var _this$LOG;
208
276
  (_this$LOG = this.LOG) === null || _this$LOG === void 0 || _this$LOG.warn('Skipping aiImage pending upload without setImagesId');
209
277
  continue;
210
278
  }
211
- var setImagesIds = validSetImagesIdsBySet.get(pendingUpload.setId);
212
- if (!(setImagesIds !== null && setImagesIds !== void 0 && setImagesIds.has(pendingUpload.setImagesId))) {
279
+ var _setImagesIds = validSetImagesIdsBySet.get(pendingUpload.setId);
280
+ if (!(_setImagesIds !== null && _setImagesIds !== void 0 && _setImagesIds.has(pendingUpload.setImagesId))) {
213
281
  throw new Error('aiImage pending upload setImagesId does not exist in matching OrderSet.SetImages');
214
282
  }
215
283
  }
@@ -110,6 +110,34 @@ var BasketHandler = /*#__PURE__*/function () {
110
110
  }
111
111
  return 0; // continue
112
112
  }
113
+ if (uploadRef.slot === 'planning3DGlb') {
114
+ if (savedSet.SetGlb) {
115
+ localSet.SetGlb = savedSet.SetGlb;
116
+ }
117
+ return 0; // continue
118
+ }
119
+
120
+ // The primary 3D shot is the set's own SetImage; secondary shots carry a
121
+ // setImagesId and fall through to the SetImages[] path below.
122
+ if (uploadRef.slot === 'planning3D' && !uploadRef.setImagesId) {
123
+ if (uploadRef.variantId !== undefined) {
124
+ var _localSet$ConfigVaria2, _savedSet$ConfigVaria2;
125
+ var _localVariant = (_localSet$ConfigVaria2 = localSet.ConfigVariants) === null || _localSet$ConfigVaria2 === void 0 ? void 0 : _localSet$ConfigVaria2.find(function (variant) {
126
+ return variant.VariantID === uploadRef.variantId;
127
+ });
128
+ var _savedVariant = (_savedSet$ConfigVaria2 = savedSet.ConfigVariants) === null || _savedSet$ConfigVaria2 === void 0 ? void 0 : _savedSet$ConfigVaria2.find(function (variant) {
129
+ return variant.VariantID === uploadRef.variantId;
130
+ });
131
+ if (_localVariant && _savedVariant !== null && _savedVariant !== void 0 && _savedVariant.SetImage) {
132
+ _localVariant.SetImage = _savedVariant.SetImage;
133
+ }
134
+ return 0; // continue
135
+ }
136
+ if (savedSet.SetImage) {
137
+ localSet.SetImage = savedSet.SetImage;
138
+ }
139
+ return 0; // continue
140
+ }
113
141
  var localImage = (_localSet$SetImages = localSet.SetImages) === null || _localSet$SetImages === void 0 ? void 0 : _localSet$SetImages.find(function (setImage) {
114
142
  return setImage.Id === uploadRef.setImagesId;
115
143
  });
@@ -167,6 +195,10 @@ var BasketHandler = /*#__PURE__*/function () {
167
195
  _iterator2.f();
168
196
  }
169
197
  var planning2DTargets = new Set();
198
+ // The primary 3D shot is likewise unique per (setId, variantId); secondary shots are not.
199
+ var planning3DTargets = new Set();
200
+ // The GLB model is unique per set — a ConfigVariant has none.
201
+ var planning3DGlbTargets = new Set();
170
202
  var seenTuples = new Set();
171
203
  var filteredUploads = [];
172
204
  var _iterator3 = _createForOfIteratorHelper(pendingUploads),
@@ -188,14 +220,50 @@ var BasketHandler = /*#__PURE__*/function () {
188
220
  }
189
221
  planning2DTargets.add(planning2DTargetKey);
190
222
  }
223
+ if (pendingUpload.slot === 'planning3DGlb') {
224
+ if (!knownSetIds.has(pendingUpload.setId)) {
225
+ throw new Error('planning3DGlb pending upload setId does not exist in basket OrderSets');
226
+ }
227
+ // One model per planning, and only for the main configuration.
228
+ if (pendingUpload.setImagesId || pendingUpload.variantId !== undefined) {
229
+ throw new Error('setImagesId and variantId are not allowed for planning3DGlb pending uploads');
230
+ }
231
+ if (planning3DGlbTargets.has(pendingUpload.setId)) {
232
+ throw new Error('Only one planning3DGlb pending upload is allowed per setId');
233
+ }
234
+ planning3DGlbTargets.add(pendingUpload.setId);
235
+ }
236
+ if (pendingUpload.slot === 'planning3D') {
237
+ var _validVariantIdsBySet2;
238
+ if (!knownSetIds.has(pendingUpload.setId)) {
239
+ throw new Error('planning3D pending upload setId does not exist in basket OrderSets');
240
+ }
241
+ if (pendingUpload.variantId !== undefined && !((_validVariantIdsBySet2 = validVariantIdsBySet.get(pendingUpload.setId)) !== null && _validVariantIdsBySet2 !== void 0 && _validVariantIdsBySet2.has(pendingUpload.variantId))) {
242
+ throw new Error('planning3D pending upload variantId does not exist in matching OrderSet.ConfigVariants');
243
+ }
244
+ if (pendingUpload.setImagesId) {
245
+ // A secondary shot targets a SetImages[] entry, exactly like an aiImage.
246
+ var setImagesIds = validSetImagesIdsBySet.get(pendingUpload.setId);
247
+ if (!(setImagesIds !== null && setImagesIds !== void 0 && setImagesIds.has(pendingUpload.setImagesId))) {
248
+ throw new Error('planning3D pending upload setImagesId does not exist in matching OrderSet.SetImages');
249
+ }
250
+ } else {
251
+ var _pendingUpload$varian2;
252
+ var planning3DTargetKey = "".concat(pendingUpload.setId, "|").concat((_pendingUpload$varian2 = pendingUpload.variantId) !== null && _pendingUpload$varian2 !== void 0 ? _pendingUpload$varian2 : '');
253
+ if (planning3DTargets.has(planning3DTargetKey)) {
254
+ throw new Error('Only one primary planning3D pending upload is allowed per setId/variantId');
255
+ }
256
+ planning3DTargets.add(planning3DTargetKey);
257
+ }
258
+ }
191
259
  if (pendingUpload.slot === 'aiImage') {
192
260
  if (!pendingUpload.setImagesId) {
193
261
  var _this$LOG;
194
262
  (_this$LOG = this.LOG) === null || _this$LOG === void 0 || _this$LOG.warn('Skipping aiImage pending upload without setImagesId');
195
263
  continue;
196
264
  }
197
- var setImagesIds = validSetImagesIdsBySet.get(pendingUpload.setId);
198
- if (!(setImagesIds !== null && setImagesIds !== void 0 && setImagesIds.has(pendingUpload.setImagesId))) {
265
+ var _setImagesIds = validSetImagesIdsBySet.get(pendingUpload.setId);
266
+ if (!(_setImagesIds !== null && _setImagesIds !== void 0 && _setImagesIds.has(pendingUpload.setImagesId))) {
199
267
  throw new Error('aiImage pending upload setImagesId does not exist in matching OrderSet.SetImages');
200
268
  }
201
269
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,SAAS,CAAC;AAKjB,oBAAY,iBAAiB;IAC3B,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,mCAAmC,wCAAwC;CAC5E;AAED,MAAM,CAAC,OAAO,OAAO,aAAa;IAI9B,OAAO,CAAC,GAAG;IAHb,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAS;gBAEf,GAAG,EAAE,GAAG,EAChB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;IAMjB,IAAI,aAAa,WAEhB;IAED,IAAI,OAAO,WAEV;IAED,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,iBAAiB;IAIzB;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IAmCrC,OAAO,CAAC,+BAA+B;YA2DzB,WAAW;YAwCX,kBAAkB;IAkC1B,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,eAAe;IA+DnG,cAAc,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,gBAAgB;IAuCvE,UAAU,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAmB/G"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,SAAS,CAAC;AAKjB,oBAAY,iBAAiB;IAC3B,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,mCAAmC,wCAAwC;CAC5E;AAED,MAAM,CAAC,OAAO,OAAO,aAAa;IAI9B,OAAO,CAAC,GAAG;IAHb,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAS;gBAEf,GAAG,EAAE,GAAG,EAChB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;IAMjB,IAAI,aAAa,WAEhB;IAED,IAAI,OAAO,WAEV;IAED,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,iBAAiB;IAIzB;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IA2DrC,OAAO,CAAC,+BAA+B;YAmGzB,WAAW;YAwCX,kBAAkB;IAkC1B,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,eAAe;IA+DnG,cAAc,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,gBAAgB;IAuCvE,UAAU,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAmB/G"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crystaldesign/basket-handler",
3
- "version": "26.12.0-beta.1",
3
+ "version": "26.12.0-beta.2",
4
4
  "description": "BasketHandler - basket and order operations against the basket service.",
5
5
  "peerDependencies": {
6
6
  "@crystaldesign/basket-model": "*"
@@ -13,5 +13,5 @@
13
13
  "axios": "^1.7.7",
14
14
  "md5.js": "^1.3.5"
15
15
  },
16
- "gitHead": "c644b0db67d53e1b55dd357167aec847c8721403"
16
+ "gitHead": "8d5d90340389f63400e7132ee77ae87d970da4c9"
17
17
  }