@spiffcommerce/core 37.0.3 → 38.0.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.
package/CHANGELOG.md CHANGED
@@ -14,6 +14,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
14
14
  - `Fixed` for any bug fixes.
15
15
  - `Security` in case of vulnerabilities.
16
16
 
17
+ ## [38.0.0] - 10-03-2026
18
+
19
+ ### Fixed
20
+
21
+ - Deployed the vectorization feature for frame steps allowing bad user content to be made safe and high quality for print.
22
+ ## [37.1.0] - 10-03-2026
23
+
24
+ ### Added
25
+
26
+ - `VariantResource` now has the field `category`, and `Variant` now has the utility method `getCategory`.
27
+ - A number of step handles now have a new method `isVariantCategoriesEnabled(): boolean`, which should be called to determine if the variants from their respective options should be categorized using the variant's associated `category` field.
28
+
29
+ ## [37.0.2] - 05-03-2026
30
+
31
+ ### Fixed
32
+
33
+ - Resolved a frame step loading issue where missing option variants would prevent the default variant from being selected, causing visual artifacts (squares) to appear.
34
+
35
+ ## [37.0.1] - 04-03-2026
36
+
37
+ ### Changed
38
+
39
+ - Don't delete workflows in read only mode
40
+
41
+ ### Fixed
42
+
43
+ - Don't apply changes to bundle in readonly mode
44
+
17
45
  ## [37.0.0] - 04-03-2026
18
46
 
19
47
  ### Added
@@ -26,13 +54,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
26
54
  - `Bundle` methods `getIntegrationProductIds`, `addIntegrationProductId`, and `removeIntegrationProductIds`.
27
55
  - `Bundle` events: `bundle-integration-products-added` and `bundle-integration-products-removed`.
28
56
 
57
+ ## [36.1.1] - 03-03-2026
58
+
59
+ ### Changed
60
+
61
+ - Updated the internal preview dependency to the latest version.
62
+
29
63
  ## [36.1.0] - 02-03-2026
30
64
 
31
65
  ### Added
32
66
 
33
67
  - The option service now has the method `getTagsForAssets`.
34
68
 
35
- ## [35.0.0] - 24-02-2026
69
+ ## [36.0.0] - 02-03-2026
70
+
71
+ ### Changed
72
+
73
+ - Refactored the `WorkflowManager`, `Bundle`, and option service internals to remove deprecated 3D transform management code, streamline default variant initialization, and extract lower-level helper functions into separate utility files for reduced file bloat.
74
+ - Moved `getDefaultVariant` from a standalone utility into the `OptionService` class, now accepting an optional `overrideDefaultVariantId` parameter for consistent default variant resolution across all step types.
75
+
76
+ ## [35.0.1] - 01-03-2026
77
+
78
+ ### Changed
79
+
80
+ - Updated the internal preview dependency to the latest version.
81
+
82
+ ## [35.0.0] - 01-03-2026
36
83
 
37
84
  ### Added
38
85
 
@@ -52,6 +99,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
52
99
  - `overrideTheme` has been removed from the workflow request payload.
53
100
  - The unused `introduction` implicit step type has been removed.
54
101
 
102
+ ## [34.4.10] - 25-02-2026
103
+
104
+ ### Changed
105
+
106
+ - GraphQL requests now skip fetching the integration object when the operation context indicates it is not needed, reducing unnecessary network calls when loading existing workflows.
107
+
108
+ ### Fixed
109
+
110
+ - Fixed an issue where the integration was not correctly fetched when loading an existing workflow, by switching from an internal synchronous accessor to the full asynchronous `getIntegration()` method.
111
+
112
+ ## [34.4.9] - 24-02-2026
113
+
114
+ ### Changed
115
+
116
+ - The integration object is now fetched via the internal synchronous accessor during GraphQL context setup, avoiding a redundant network request on every API call.
117
+
118
+ ### Fixed
119
+
120
+ - Resolved a recursion bug in the client's integration fetching logic by introducing a dedicated `getIntegrationInternal()` method that returns the cached integration without triggering a re-fetch loop.
121
+
55
122
  ## [34.4.8] - 24-02-2026
56
123
 
57
124
  ### Changed
@@ -70,7 +137,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
70
137
 
71
138
  - Now handles global configuration colors for illustration steps with one color channel.
72
139
 
73
- ## [34.4.5] - 13-02-2026
140
+ ## [34.4.5] - 11-02-2026
74
141
 
75
142
  ### Changed
76
143
 
@@ -82,6 +149,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
82
149
 
83
150
  - Ensure mandatory flag is set for already set variants on reload.
84
151
 
152
+ ## [34.4.3] - 20-01-2026
153
+
154
+ ### Fixed
155
+
156
+ - Fixed an issue where stroke would not init properly on text step
157
+
85
158
  ## [34.4.2] - 20-01-2026
86
159
 
87
160
  ### Fixed
@@ -94,13 +167,55 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
94
167
 
95
168
  - Question steps now correctly respect the default variant override
96
169
 
170
+ ## [34.4.0] - 10-12-2025
171
+
172
+ ### Changed
173
+
174
+ - Default variant resolution across all step types (frame, illustration, picture, shape, question, text) now respects the `overrideDefaultVariantId` field on each step, allowing workflows to specify a non-standard default variant for any option.
175
+
97
176
  ## [34.3.1] - 10-12-2025
98
177
 
99
178
  ### Fixed
100
179
 
101
180
  - Designs will now be updated on the server when the user modifies the design after initial creation.
102
181
 
103
- ## [34.0.0] - 12-11-2025
182
+ ## [34.3.0] - 03-12-2025
183
+
184
+ ### Added
185
+
186
+ - New `findBundleForTransactions` GraphQL query that looks up the associated bundle for a given list of transaction IDs, enabling the ability to edit individual bundle transactions.
187
+
188
+ ## [34.2.0] - 02-12-2025
189
+
190
+ ### Changed
191
+
192
+ - Internal changes and improvements.
193
+
194
+ ## [34.1.0] - 21-11-2025
195
+
196
+ ### Changed
197
+
198
+ - Design creation API requests now include the partner's `X-Spiff-Beta` header when the partner has the beta flag enabled, ensuring beta features are available during the design creation process.
199
+
200
+ ## [34.0.3] - 19-11-2025
201
+
202
+ ### Fixed
203
+
204
+ - Fixed a GraphQL variable name mismatch in the `confirmWorkflowStates` query that was causing the workflow state confirmation step to fail during design creation.
205
+
206
+ ## [34.0.2] - 19-11-2025
207
+
208
+ ### Fixed
209
+
210
+ - Workflow state confirmation requests are now batched into chunks of 100 transactions to prevent excessively large GraphQL requests when creating designs for bundles with many transactions.
211
+
212
+ ## [34.0.1] - 19-11-2025
213
+
214
+ ### Changed
215
+
216
+ - SVG illustration elements without an explicit `fill` attribute now inherit the fill from their closest ancestor element (checking inline styles first, then attributes), rather than always defaulting to black. This improves color accuracy for nested SVG elements in illustration steps.
217
+
218
+ ## [34.0.0] - 13-11-2025
104
219
 
105
220
  ### Changed
106
221
 
@@ -112,18 +227,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
112
227
  - `createDesign` is no longer available and anything that relied upon it has been wired to the bulk
113
228
  function which can handle creating multiple designs at once.
114
229
 
230
+ ## [33.13.5] - 13-11-2025
231
+
232
+ ### Removed
233
+
234
+ - Revert "Black fill fix (#355)"
235
+
115
236
  ## [33.13.4] - 12-11-2025
116
237
 
117
238
  ### Fixed
118
239
 
119
240
  - Fix persisted state becoming clobbered when performing multiple calls to `client.getWorkflowExperiences` in parallel.
120
241
 
121
- ## [33.13.3] - 12-11-2025
242
+ ## [33.13.3] - 11-11-2025
122
243
 
123
244
  ### Fixed
124
245
 
125
246
  - Corrected non-deterministic behavior with (de)serializing layout states for frame steps with multiple regions.
126
247
 
248
+ ## [33.13.2] - 11-11-2025
249
+
250
+ ### Added
251
+
252
+ - The `externalOrderId` and `internalOrderId` fields are now fetched as part of the bundle's base GraphQL fields, making order identification data available on the `Bundle` type.
253
+
127
254
  ## [33.13.1] - 10-11-2025
128
255
 
129
256
  ### Fixed
@@ -148,6 +275,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
148
275
 
149
276
  - Added new method to `Bundle`: `removeIntegrationProductIds(ids: string[]): Promise<void>`
150
277
 
278
+ ## [33.10.0] - 07-11-2025
279
+
280
+ ### Added
281
+
282
+ - `Bundle` initialization now accepts an optional `transactionLoadProgressCallback` parameter of type `(loaded: number, total: number) => void`, which fires as existing workflow experiences are loaded, allowing consumers to display a loading progress indicator.
283
+
151
284
  ## [33.9.0] - 06-11-2025
152
285
 
153
286
  ### Changed
@@ -160,7 +293,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
160
293
 
161
294
  - Improved performance when loading many WorkflowExperiences at the same time.
162
295
 
163
- ## [33.8.3] - 03-11-2025
296
+ ## [33.8.4] - 03-11-2025
297
+
298
+ ### Fixed
299
+
300
+ - Corrected address validation utility functions that could incorrectly return `undefined` instead of a valid result.
301
+
302
+ ## [33.8.3] - 02-11-2025
164
303
 
165
304
  ### Fixed
166
305
 
@@ -170,12 +309,66 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
170
309
 
171
310
  - `Bundle.addIntegrationProductId` is now asynchronous.
172
311
 
312
+ ## [33.8.2] - 31-10-2025
313
+
314
+ ### Added
315
+
316
+ - The option GraphQL fragment now includes the `integrationOptions` field (with `id` and `integrationId`), making integration-specific option data available when loading workflow steps.
317
+
318
+ ## [33.8.1] - 30-10-2025
319
+
320
+ ### Added
321
+
322
+ - New events for changing product and recipient on experience
323
+
173
324
  ## [33.8.0] - 29-10-2025
174
325
 
175
326
  ### Added
176
327
 
177
328
  - Custom data fields on Conversion Configurations may now optionally link to an Option. You should use this Option to drive the selections and provide the selected variant ID as the user's selection when updating a recipient. This process may be more strongly enforced in the future.
178
329
 
330
+ ## [33.7.0] - 29-10-2025
331
+
332
+ ### Added
333
+
334
+ - New `clearProduct()` method on `WorkflowExperience` that removes the currently assigned product and workflow from the experience, resetting the transaction's product and integration product fields on both the client and server.
335
+
336
+ ## [33.6.0] - 28-10-2025
337
+
338
+ ### Added
339
+
340
+ - New exported function `getIntegrationProducts(ids: string[])` that fetches integration products by their IDs, returning each product's `id` and associated `product.id` and `product.name`.
341
+
342
+ ## [33.5.3] - 28-10-2025
343
+
344
+ ### Fixed
345
+
346
+ - Await async method in applyGlobalPropertyState
347
+
348
+ ## [33.5.2] - 28-10-2025
349
+
350
+ ### Removed
351
+
352
+ - Reverted the automatic black fill assignment for SVG elements without explicit fills, as this caused unintended rendering of illustration steps.
353
+
354
+ ## [33.5.1] - 24-10-2025
355
+
356
+ ### Fixed
357
+
358
+ - The `quantity` field is now included in the transaction read query, ensuring quantity data is available when loading existing transactions.
359
+
360
+ ## [33.5.0] - 23-10-2025
361
+
362
+ ### Added
363
+
364
+ - A new callback is now fired when a transaction has been fully initialized during workflow experience creation, allowing consumers to be notified when the transaction is ready for interaction.
365
+
366
+ ## [33.4.2] - 23-10-2025
367
+
368
+ ### Fixed
369
+
370
+ - The `bundleStateData` field is now included in the `duplicateBundle` GraphQL mutation response, ensuring bundle state is preserved when duplicating a bundle.
371
+
179
372
  ## [33.4.1] - 21-10-2025
180
373
 
181
374
  ### Fixed
@@ -188,12 +381,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
188
381
 
189
382
  - Bundles now have an `updatedAt` field, which is automatically updated on the server whenever changes are made.
190
383
 
191
- ## [33.2.4] - 21-10-2025
384
+ ## [33.2.4] - 20-10-2025
192
385
 
193
386
  ### Fixed
194
387
 
195
388
  - Recipient information is now populated correctly when creating new transactions via `getWorkflowExperience` with `GetWorkflowFromIntegrationProductOptions` or `GetWorkflowFromExternalProductOptions`.
196
389
 
390
+ ## [33.2.3] - 20-10-2025
391
+
392
+ ### Fixed
393
+
394
+ - Removed overly strict validation checks on optional `quantity` and `recipient` parameters when creating workflow experiences, which were preventing valid calls with partial data from succeeding.
395
+
396
+ ## [33.2.2] - 20-10-2025
397
+
398
+ ### Fixed
399
+
400
+ - Quantity and recipient now supported on all create cases
401
+
402
+ ## [33.2.1] - 20-10-2025
403
+
404
+ ### Fixed
405
+
406
+ - Quantity & recipient data not reading on blank workflows
407
+
197
408
  ## [33.2.0] - 20-10-2025
198
409
 
199
410
  ### Changed
@@ -206,7 +417,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
206
417
 
207
418
  - Global aspects that are transitively conditional now get cleared correctly when deactivated.
208
419
 
209
- ## [33.0.0] - 14-10-2025
420
+ ## [33.0.0] - 19-10-2025
210
421
 
211
422
  ### Changed
212
423
 
@@ -219,7 +430,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
219
430
  - Added GraphQL mutation for updating a transaction's integration product, enabling backend synchronization of integration product changes.
220
431
  - Added `getState()` method to `BundleStateManager` for easier external access to the current bundle state.
221
432
 
222
- ## [32.4.0] - 16-10-2025
433
+ ## [32.4.0] - 15-10-2025
223
434
 
224
435
  ### Added
225
436
 
@@ -237,7 +448,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
237
448
 
238
449
  - Added the new global function `deleteBundle` which takes a bundle id string and deletes the marks the bundle as deleted on the server.
239
450
 
240
- ## [32.2.6] - 08-10-2025
451
+ ## [32.2.7] - 08-10-2025
452
+
453
+ ### Fixed
454
+
455
+ - Calling `finish()` on a completed bundle now correctly re-computes and returns the full design creation results instead of returning an empty items array on subsequent calls.
456
+
457
+ ## [32.2.6] - 01-10-2025
241
458
 
242
459
  ### Fixed
243
460
 
@@ -283,12 +500,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
283
500
 
284
501
  - When calling `overrideWorkflowExperienceRecipientAddress`, the associated Transaction's `addressValidationStatus` is updated locally.
285
502
 
503
+ ## [32.1.1] - 23-09-2025
504
+
505
+ ### Fixed
506
+
507
+ - Exported additional type definitions from the package index to make newly added types available to consumers.
508
+
286
509
  ## [32.1.0] - 23-09-2025
287
510
 
288
511
  ### Added
289
512
 
290
513
  - Added new `overrideWorkflowExperienceRecipientAddress` function to override the address of a specific workflow experience recipient.
291
514
 
515
+ ## [32.0.2] - 22-09-2025
516
+
517
+ ### Fixed
518
+
519
+ - The `updateRecipient` method now uses nullish coalescing (`??`) instead of logical OR (`||`) when merging recipient fields, allowing empty strings to correctly clear field values instead of being ignored.
520
+
521
+ ## [32.0.1] - 22-09-2025
522
+
523
+ ### Changed
524
+
525
+ - Internal changes and improvements.
526
+
527
+ ## [32.0.0] - 16-09-2025
528
+
529
+ ### Changed
530
+
531
+ - Added `getMandatoryUnfulfilledSteps()` method to `WorkflowManager` that returns the step names of all active mandatory steps that have not yet been fulfilled. Also exposed `traversableScenes()` as a public method on `WorkflowManager`.
532
+
292
533
  ## [31.4.0] - 10-09-2025
293
534
 
294
535
  ### Added
@@ -301,17 +542,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
301
542
 
302
543
  - The function `ProductCollection.fetchProductsFeed` now supports an additional metafield filters parameter for filtering via attached workflows.
303
544
 
304
- ## [31.2.4] - 04-09-2025
545
+ ## [31.2.4] - 07-09-2025
305
546
 
306
547
  ### Fixed
307
548
 
308
549
  - Vertical text steps now respect region boundaries, even if the text is really long.
309
550
 
310
- ## [30.2.2] - 01-09-2025
551
+ ## [31.2.3] - 01-09-2025
311
552
 
312
- ### Added
553
+ ### Fixed
313
554
 
314
- - The `collectionId` field will now be available on the complete event.
555
+ - The `collectionId` field is now included in the `BundleDesignCreationMessage` returned by `Bundle.finish()`, ensuring the product collection ID is available in the completion event data.
315
556
 
316
557
  ## [31.2.2] - 01-09-2025
317
558
 
@@ -320,17 +561,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
320
561
  - Text steps with templated input should have their font correctly resized in appropriate situations.
321
562
  - The templating context for a WorkflowManager now correctly provides first/last name fields with a custom `uniqueIdentifier`.
322
563
 
323
- ## [30.2.1] - 01-09-2025
564
+ ## [31.2.1] - 01-09-2025
324
565
 
325
566
  ### Added
326
567
 
327
- - The `name`, `dispatchDate`, `purchaseOrder` and `collectionName` fields will now be available on the complete event.
568
+ - The `BundleDesignCreationMessage` returned by `Bundle.finish()` now includes the `name`, `dispatchDate`, `purchaseOrder`, and `collectionName` fields, providing richer context in the completion event for iframe consumers.
328
569
 
329
- ## [30.2.0] - 01-09-2025
570
+ ## [31.2.0] - 01-09-2025
330
571
 
331
572
  ### Added
332
573
 
333
- - The `getOrCreateCustomer` call will fetch an existing customer's product collection customers.
574
+ - The product collection GraphQL fragment now fetches `productCollectionCustomers` with their associated `customer.id`, making customer association data available when loading product collections.
334
575
 
335
576
  ## [31.1.0] - 01-09-2025
336
577
 
@@ -344,12 +585,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
344
585
 
345
586
  - Latest versions of internal build tools and libraries. EG. Vite and ESLint
346
587
 
588
+ ## [30.2.2] - 01-09-2025
589
+
590
+ ### Added
591
+
592
+ - The `collectionId` field will now be available on the complete event.
593
+
594
+ ## [30.2.1] - 01-09-2025
595
+
596
+ ### Added
597
+
598
+ - The `name`, `dispatchDate`, `purchaseOrder` and `collectionName` fields will now be available on the complete event.
599
+
600
+ ## [30.2.0] - 01-09-2025
601
+
602
+ ### Added
603
+
604
+ - The `getOrCreateCustomer` call will fetch an existing customer's product collection customers.
605
+
606
+ ## [30.0.1] - 27-08-2025
607
+
608
+ ### Changed
609
+
610
+ - Removed an unnecessary Preact import from the Bundle module.
611
+ - When global property state is fully re-applied to a bundle, mandatory handle change events are now correctly fired, ensuring the UI reflects the current mandatory status of all global property handles.
612
+
347
613
  ## [30.0.0] - 27-08-2025
348
614
 
349
615
  ### Added
350
616
 
351
617
  - The `updateRecipient` method now has extra arguments, primarily for custom fields.
352
618
 
619
+ ## [29.4.0] - 27-08-2025
620
+
621
+ ### Changed
622
+
623
+ - The recipient create and update GraphQL mutations now support additional fields: `apartment`, `customField1` through `customField5`, and `conversionConfigurationId`, enabling custom recipient column data to be stored and retrieved.
624
+
353
625
  ## [29.3.0] - 27-08-2025
354
626
 
355
627
  ### Added
@@ -365,7 +637,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
365
637
 
366
638
  - Added the function `TextGlobalPropertyHandle.isTemplatingEnabled(): boolean`. Use this to determine whether you should display any templating tools.
367
639
 
368
- ## [29.1.2] - 25-08-2025
640
+ ## [29.1.2] - 24-08-2025
369
641
 
370
642
  ### Changed
371
643
 
@@ -377,6 +649,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
377
649
 
378
650
  - Inputting an incorrect code when calling `verifyCode` will no longer prevent you from succeeding if you then input the correct code in a subsequent request.
379
651
 
652
+ ## [29.1.0] - 19-08-2025
653
+
654
+ ### Changed
655
+
656
+ - Added persona-related fields to the GraphQL query definitions, enabling the persona form builder feature for customized user input collection.
657
+
380
658
  ## [29.0.4] - 14-08-2025
381
659
 
382
660
  ### Fixed
@@ -402,12 +680,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
402
680
 
403
681
  - Missing `ExportedStepData` types.
404
682
 
405
- ## [29.0.0] - 06-08-2025
683
+ ## [29.0.0] - 07-08-2025
406
684
 
407
685
  ### Changed
408
686
 
409
687
  - The `getExportedData` method has been renamed `getExportedStepData` for clarity, it now returns a list of steps and their metadata chronological to the workflow. Localization has also been removed as this is a theme concern.
410
688
 
689
+ ## [28.0.2] - 31-07-2025
690
+
691
+ ### Fixed
692
+
693
+ - Fixed an issue where reloading a bundle would not correctly restore the global property state, by ensuring state is re-applied to the client after re-initialization.
694
+
695
+ ## [28.0.1] - 30-07-2025
696
+
697
+ ### Fixed
698
+
699
+ - Fixed bundle reload incorrectly overwriting existing global property state with defaults. Default variant initialization now checks if an aspect already has a value before applying the default, preventing saved state from being clobbered on reload.
700
+
411
701
  ## [28.0.0] - 30-07-2025
412
702
 
413
703
  ### Changed
@@ -442,7 +732,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
442
732
 
443
733
  - Correctly the case of handle multiple text steps that are conditional and share a text aspect.
444
734
 
445
- ## [27.1.0] - 16-07-2025
735
+ ## [27.1.0] - 17-07-2025
446
736
 
447
737
  ### Changed
448
738
 
@@ -454,91 +744,205 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
454
744
 
455
745
  - Modified the functions for logging in as a customer.
456
746
 
457
- ## [26.40.0] - 10-07-2025
747
+ ## [26.42.1] - 14-07-2025
458
748
 
459
749
  ### Added
460
750
 
461
- - Added `setDispatchDate` and `setPurchaseOrder` to `Bundle`.
751
+ - New exported function `getGlobalPropertyStateForBundle(bundleId: string)` that fetches the raw `GlobalPropertyState` for a given bundle ID via GraphQL, enabling external access to a bundle's global property state without needing a full bundle instance.
462
752
 
463
- ## [26.39.0] - 08-07-2025
753
+ ## [26.42.0] - 14-07-2025
464
754
 
465
- ### Fixed
755
+ ### Changed
466
756
 
467
- - The function `fetchProductsFeed` on `ProductCollection` now correctly reads from the in-memory cache for repeated calls with the same inputs.
757
+ - Internal changes and improvements.
468
758
 
469
- ## [26.38.0] - 07-07-2025
759
+ ## [26.41.2] - 13-07-2025
470
760
 
471
- ### Added
761
+ ### Fixed
472
762
 
473
- - `WorkflowManager` now has the function `addRecipientCallback` to listen to changes to the attached Recipient.
763
+ - The customer bundles feed GraphQL query now includes the `globalPropertyConfiguration.id` field, ensuring the global property configuration ID is available when listing bundles for a customer.
474
764
 
475
- ## [26.35.0] - 03-07-2025
765
+ ## [26.41.1] - 10-07-2025
476
766
 
477
- ### Added
767
+ ### Fixed
478
768
 
479
- - The `Bundle` type now has the `productsCount` property.
769
+ - The bundle read and duplicate GraphQL queries now include the `template` field, and the update bundle mutation has been reformatted for clarity with proper multi-line variable definitions.
480
770
 
481
- ## [26.33.0] - 02-07-2025
771
+ ## [26.41.0] - 10-07-2025
482
772
 
483
773
  ### Added
484
774
 
485
- - The method `getBundlesForCustomer` now has an "ordered" option.
775
+ - New `getTemplate(): boolean` method on `Bundle` that indicates whether the bundle is a template. Also added `getCurrentStakeholder()` method documentation and the `getQuoteId()` JSDoc.
486
776
 
487
- ## [26.31.0] - 24-06-2025
777
+ ## [26.40.0] - 09-07-2025
488
778
 
489
- ### Fixed
779
+ ### Added
490
780
 
491
- - Fixed issues with authorizing certain requests affecting recipients.
781
+ - Added `setDispatchDate` and `setPurchaseOrder` to `Bundle`.
492
782
 
493
- ## [26.30.0] - 23-06-2025
783
+ ## [26.39.1] - 09-07-2025
494
784
 
495
- ### Added
785
+ ### Changed
496
786
 
497
- - New global function `getProductCollections`, which fetches a list of Product Collections by their ids.
787
+ - The `AddressComponent` type is now exported from the package, allowing consumers to use the address validation component types directly.
498
788
 
499
- ## [26.29.3] - 19-06-2025
789
+ ## [26.39.0] - 08-07-2025
500
790
 
501
791
  ### Fixed
502
792
 
503
- - The method `updateRecipient` now saves its arguments correctly.
793
+ - The function `fetchProductsFeed` on `ProductCollection` now correctly reads from the in-memory cache for repeated calls with the same inputs.
504
794
 
505
- ## [26.29.1] - 18-06-2025
795
+ ## [26.38.0] - 07-07-2025
506
796
 
507
- ### Fixed
797
+ ### Added
508
798
 
509
- - Fix issues with bleeding-edge endpoints.
799
+ - `WorkflowManager` now has the function `addRecipientCallback` to listen to changes to the attached Recipient.
510
800
 
511
- ## [26.29.0] - 18-06-2025
801
+ ## [26.37.0] - 07-07-2025
512
802
 
513
803
  ### Added
514
804
 
515
- - The method `updateRecipient` on `WorkflowManager`.
805
+ - The `totalPriceSubunits` field is now included in the customer bundles feed GraphQL query, making the total price available when listing bundles for a customer.
516
806
 
517
- ## [26.28.0] - 18-06-2025
807
+ ## [26.36.0] - 03-07-2025
518
808
 
519
809
  ### Added
520
810
 
521
- - The methods `filterProducts` and `fetchProductsFeed` on `ProductCollection` now accept the optional parameters `sortKey` and `sortDescending`. Sort key can be one of: Default, Name, Price.
811
+ - The `company` field is now supported in recipient create and update operations, and the `updateRecipient` method on `WorkflowManager` now accepts an optional `company` parameter.
522
812
 
523
- ## [26.27.0] - 11-06-2025
813
+ ## [26.35.0] - 03-07-2025
524
814
 
525
815
  ### Added
526
816
 
527
- - The methods `filterProducts` and `fetchProductsFeed` on `ProductCollection` now accept an optional parameter `tags`, which is an object with the shape `{ include: string[]; exclude: string[]; }`. Only products that have all tags in `include` and no tags in `exclude` will be returned. If either array is provided as empty they will have no effect on the query.
817
+ - The `Bundle` type now has the `productsCount` property.
528
818
 
529
- ## [26.26.0] - 27-05-2025
819
+ ## [26.34.0] - 02-07-2025
530
820
 
531
821
  ### Changed
532
822
 
533
- - The event emitter on `Bundle` has been improved and made generic. Two new events will also now fire. One for a workflow being added and one for a workflow being removed.
823
+ - Introduced a new `addressValidation` module with functions for validating recipient addresses against configured address validation rules, including the exported `AddressComponent` type and validation utilities.
824
+
825
+ ## [26.33.0] - 02-07-2025
534
826
 
535
827
  ### Added
536
828
 
537
- - The `MetafieldManager` is now exposed for use. Certain functions such as CollectionProduct will now expose utility functions that allow pulling the metafields for the entity being called on.
829
+ - The method `getBundlesForCustomer` now has an "ordered" option.
538
830
 
539
- ## [26.24.0] - 12-05-2025
831
+ ## [26.32.2] - 02-07-2025
540
832
 
541
- ### Changed
833
+ ### Added
834
+
835
+ - The customer bundles feed GraphQL query now includes `createdAt`, `transactionsCount`, `quoteId`, and `orderId` fields, providing richer data when listing bundles for a customer.
836
+
837
+ ## [26.32.1] - 02-07-2025
838
+
839
+ ### Changed
840
+
841
+ - Exported additional raw bundle-related type definitions from the package index.
842
+
843
+ ## [26.32.0] - 25-06-2025
844
+
845
+ ### Added
846
+
847
+ - The `mobile` field is now supported in recipient create and update operations, and the `updateRecipient` method on `WorkflowManager` now accepts an optional `mobile` parameter.
848
+
849
+ ## [26.31.0] - 24-06-2025
850
+
851
+ ### Fixed
852
+
853
+ - Fixed issues with authorizing certain requests affecting recipients.
854
+
855
+ ## [26.30.2] - 24-06-2025
856
+
857
+ ### Changed
858
+
859
+ - Exported the `Recipient` type from the package index, making it available for consumers to use directly.
860
+
861
+ ## [26.30.1] - 23-06-2025
862
+
863
+ ### Added
864
+
865
+ - The integration product GraphQL query now includes the `name` field on the associated product, making the product name available when fetching integration products.
866
+
867
+ ## [26.30.0] - 23-06-2025
868
+
869
+ ### Added
870
+
871
+ - New global function `getProductCollections`, which fetches a list of Product Collections by their ids.
872
+
873
+ ## [26.29.4] - 20-06-2025
874
+
875
+ ### Changed
876
+
877
+ - Internal changes and improvements.
878
+
879
+ ## [26.29.3] - 19-06-2025
880
+
881
+ ### Fixed
882
+
883
+ - The method `updateRecipient` now saves its arguments correctly.
884
+
885
+ ## [26.29.2] - 18-06-2025
886
+
887
+ ### Fixed
888
+
889
+ - Fixed the `updateRecipient` method not correctly persisting the recipient ID after creating a new recipient, which prevented subsequent recipient updates from targeting the correct record.
890
+
891
+ ## [26.29.1] - 18-06-2025
892
+
893
+ ### Fixed
894
+
895
+ - Fix issues with bleeding-edge endpoints.
896
+
897
+ ## [26.29.0] - 18-06-2025
898
+
899
+ ### Added
900
+
901
+ - The method `updateRecipient` on `WorkflowManager`.
902
+
903
+ ## [26.28.0] - 18-06-2025
904
+
905
+ ### Added
906
+
907
+ - The methods `filterProducts` and `fetchProductsFeed` on `ProductCollection` now accept the optional parameters `sortKey` and `sortDescending`. Sort key can be one of: Default, Name, Price.
908
+
909
+ ## [26.27.1] - 18-06-2025
910
+
911
+ ### Changed
912
+
913
+ - GraphQL network requests now correctly handle server redirects by detecting opaque redirect responses and re-sending the request to the appropriate regional endpoint (Moonlight), preventing failed API calls when the server issues a redirect.
914
+
915
+ ## [26.27.0] - 11-06-2025
916
+
917
+ ### Added
918
+
919
+ - The methods `filterProducts` and `fetchProductsFeed` on `ProductCollection` now accept an optional parameter `tags`, which is an object with the shape `{ include: string[]; exclude: string[]; }`. Only products that have all tags in `include` and no tags in `exclude` will be returned. If either array is provided as empty they will have no effect on the query.
920
+
921
+ ## [26.26.1] - 28-05-2025
922
+
923
+ ### Changed
924
+
925
+ - Removed verbose console logging from global property variant selection methods that was producing excessive output during normal operation.
926
+
927
+ ## [26.26.0] - 27-05-2025
928
+
929
+ ### Changed
930
+
931
+ - The event emitter on `Bundle` has been improved and made generic. Two new events will also now fire. One for a workflow being added and one for a workflow being removed.
932
+
933
+ ### Added
934
+
935
+ - The `MetafieldManager` is now exposed for use. Certain functions such as CollectionProduct will now expose utility functions that allow pulling the metafields for the entity being called on.
936
+
937
+ ## [26.25.0] - 21-05-2025
938
+
939
+ ### Added
940
+
941
+ - Add metafield helper to collection products, include metafieldmanager
942
+
943
+ ## [26.24.0] - 12-05-2025
944
+
945
+ ### Changed
542
946
 
543
947
  - The functions `getIntegrationProductById` and `getIntegrationProductFromExternalIds` now accept an additional boolean parameter that allows you to fetch all of the linked integration products on the product you have requested.
544
948
 
@@ -546,12 +950,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
546
950
 
547
951
  - The `duplicateBundle` call no longer fails due to missing GraphQl fragments.
548
952
 
953
+ ## [26.23.4] - 12-05-2025
954
+
955
+ ### Fixed
956
+
957
+ - Removed the strict file extension vs MIME type validation check for frame pattern images, as it was incorrectly rejecting valid image files whose extension did not exactly match their detected MIME type.
958
+
959
+ ## [26.23.3] - 05-05-2025
960
+
961
+ ### Changed
962
+
963
+ - Bundle state serialization now recursively strips the `__typename` field from the state object before persisting, preventing GraphQL metadata from being included in the stored state string.
964
+
549
965
  ## [26.23.2] - 16-04-2025
550
966
 
551
967
  ### Fixed
552
968
 
553
969
  - The `duplicateBundle` will now correctly duplicate the global property state.
554
970
 
971
+ ## [26.23.1] - 14-04-2025
972
+
973
+ ### Fixed
974
+
975
+ - Fixed product collection filtering to correctly match products, resolving an issue where certain collection products were not being returned in filter results.
976
+
977
+ ## [26.23.0] - 09-04-2025
978
+
979
+ ### Changed
980
+
981
+ - Added new fields to the workflow/panel query types to support 2D panel configuration data on workflows.
982
+
983
+ ## [26.22.1] - 07-04-2025
984
+
985
+ ### Changed
986
+
987
+ - Updated the Preact dependency to a newer version.
988
+
555
989
  ## [26.22.0] - 07-04-2025
556
990
 
557
991
  ### Changed
@@ -570,7 +1004,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
570
1004
 
571
1005
  - The `getQuoteCompleteMessage` method on bundles. Pass the return value of this method to Theme Bridge's `SpiffThemeLoader.completeQuote` method.
572
1006
 
573
- ## [26.20.0] - 31-03-2025
1007
+ ## [26.20.0] - 30-03-2025
574
1008
 
575
1009
  ### Added
576
1010
 
@@ -582,7 +1016,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
582
1016
  - `getOriginalColors`: Returns a promise that resolves with the original color configuration of the image asset.
583
1017
  - `changeColors`: Updates the current color configuration and propagates the changes to all connected workflow experiences.
584
1018
 
585
- ## [26.19.0] - 26-03-2025
1019
+ ## [26.19.0] - 25-03-2025
586
1020
 
587
1021
  ### Added
588
1022
 
@@ -594,24 +1028,54 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
594
1028
 
595
1029
  - Added `OneToOne` mode to `BundleDesignCreationCartAddMode`, which adds each Transaction of a Bundle to the cart as individual line items.
596
1030
 
1031
+ ## [26.17.1] - 24-03-2025
1032
+
1033
+ ### Changed
1034
+
1035
+ - Internal changes and improvements.
1036
+
597
1037
  ## [26.17.0] - 24-03-2025
598
1038
 
599
1039
  ### Added
600
1040
 
601
1041
  - The object returned by `Bundle.finish()`, `BundleDesignCreationMessage`, has a new field `cartAddMode?: BundleDesignCreationCartAddMode`. This controls the strategy for adding the items of a Bundle to an ecommerce cart.
602
1042
 
603
- ## [26.16.1] - 18-03-2025
1043
+ ## [26.16.2] - 18-03-2025
1044
+
1045
+ ### Changed
1046
+
1047
+ - Internal changes and improvements.
1048
+
1049
+ ## [26.16.1] - 17-03-2025
604
1050
 
605
1051
  ### Changed
606
1052
 
607
1053
  - If both the partner and workflow have terms and conditions, the workflow wins.
608
1054
 
1055
+ ## [26.16.0] - 16-03-2025
1056
+
1057
+ ### Changed
1058
+
1059
+ - The `minimumOrderQuantity` field is now fetched as part of product queries, making minimum order quantity data available on products for validation and display purposes.
1060
+
1061
+ ## [26.15.1] - 05-03-2025
1062
+
1063
+ ### Changed
1064
+
1065
+ - The `assignProductCollection` method on `Bundle` now always updates the local product collection reference and re-initializes the global property configuration, even if one was already set, allowing product collections to be reassigned.
1066
+
609
1067
  ## [26.15.0] - 03-03-2025
610
1068
 
611
1069
  ### Added
612
1070
 
613
1071
  - Methods on experiences and bundles to attach addresses and organizations.
614
1072
 
1073
+ ## [26.14.0] - 02-03-2025
1074
+
1075
+ ### Fixed
1076
+
1077
+ - Fixed bundle loading to correctly handle readonly mode by skipping default variant initialization, and improved global property state initialization to properly handle cases where the state is not yet available. Also improved channel calculation for illustration steps in global configurations.
1078
+
615
1079
  ## [26.13.0] - 27-02-2025
616
1080
 
617
1081
  ### Changed
@@ -630,43 +1094,73 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
630
1094
 
631
1095
  - The `createPreviewImage` parameter in `Bundle.finish()` is now provided a second argument, `shouldRender3D: boolean`, which can be passed to `WorkflowExperience.createPreviewImage()`
632
1096
 
633
- ## [26.10.0] - 24-02-2025
1097
+ ## [26.10.0] - 23-02-2025
634
1098
 
635
1099
  ### Added
636
1100
 
637
1101
  - Ability to handle illustrations with asset configurations.
638
1102
 
1103
+ ## [26.9.2] - 20-02-2025
1104
+
1105
+ ### Changed
1106
+
1107
+ - Internal changes and improvements.
1108
+
639
1109
  ## [26.9.1] - 20-02-2025
640
1110
 
641
1111
  ### Fixed
642
1112
 
643
1113
  - Resolved an issue allowing empty text to pass mandatory checks on the text step.
644
1114
 
645
- ## [26.8.0] - 06-02-2025
1115
+ ## [26.9.0] - 13-02-2025
1116
+
1117
+ ### Changed
1118
+
1119
+ - `StepHandle.executeAnimations()` now accepts an optional `immediate` boolean parameter that is passed through to the model container's `executeAnimation` call, allowing animations to be triggered without transition effects.
1120
+
1121
+ ## [26.8.1] - 12-02-2025
1122
+
1123
+ ### Changed
1124
+
1125
+ - Updated the product terms and conditions query reference in the client.
1126
+
1127
+ ## [26.8.0] - 05-02-2025
646
1128
 
647
1129
  ### Fixed
648
1130
 
649
1131
  - Resolved an issue causing clients using module steps not to handle errors correctly.
650
1132
 
651
- ## [26.7.9] - 21-01-2025
1133
+ ## [26.7.9] - 20-01-2025
652
1134
 
653
1135
  ### Fixed
654
1136
 
655
1137
  - Resolved an issue when duplicating a bundle causing any copied workflow experiences to be missing in the javascript class returned.
656
1138
 
1139
+ ## [26.7.8] - 14-01-2025
1140
+
1141
+ ### Changed
1142
+
1143
+ - Added diagnostic logging during global property default variant initialization to help trace issues with variant selection timing and state initialization order.
1144
+
1145
+ ## [26.7.7] - 14-01-2025
1146
+
1147
+ ### Changed
1148
+
1149
+ - Fixed a race condition during bundle initialization where default global property variants were being set concurrently with global property state initialization. Default variant initialization now waits for both the workflow experiences and state to be fully loaded before running.
1150
+
657
1151
  ## [26.7.6] - 10-01-2025
658
1152
 
659
1153
  ### Fixed
660
1154
 
661
1155
  - Reverted the previous due to issues with other areas of opentype.
662
1156
 
663
- ## [26.7.5] - 10-01-2025
1157
+ ## [26.7.5] - 09-01-2025
664
1158
 
665
1159
  ### Added
666
1160
 
667
1161
  - Updated opentype to access more functionality around font outlining.
668
1162
 
669
- ## [26.7.4] - 19-12-2024
1163
+ ## [26.7.4] - 09-01-2025
670
1164
 
671
1165
  ### Fixed
672
1166
 
@@ -684,6 +1178,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
684
1178
 
685
1179
  - Corrected an issue with `TextStepService.availableFillColors` not returning the correct colors under certain conditions.
686
1180
 
1181
+ ## [26.7.1] - 28-11-2024
1182
+
1183
+ ### Fixed
1184
+
1185
+ - Fixed frame step region element targeting to use the correct `FrameStepHandle` frame service when notifying about new elements, resolving issues with frame region element tracking after region changes.
1186
+
687
1187
  ## [26.7.0] - 27-11-2024
688
1188
 
689
1189
  ### Added
@@ -691,13 +1191,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
691
1191
  - Text steps now support custom stroke. Similar to other color customisation features, this is accessible via the functions `getAvailableStrokeColors`, `getStrokeColor`, and `setStrokeColor` on `TextStepHandle`.
692
1192
  The thickness of the stroke, the colors to select from, and other options, are configurable via the Spiff Hub in the Workflow editor.
693
1193
 
1194
+ ## [26.6.1] - 27-11-2024
1195
+
1196
+ ### Fixed
1197
+
1198
+ - Fixed frame step pattern image source resolution to use the correct SVG asset version URL, resolving rendering issues with frame patterns.
1199
+
1200
+ ## [26.6.0] - 25-11-2024
1201
+
1202
+ ### Changed
1203
+
1204
+ - When a product collection is assigned to a bundle, the global property configuration is now automatically set from the product collection's configuration, linking the bundle to the correct global property setup.
1205
+
694
1206
  ## [26.5.2] - 20-11-2024
695
1207
 
696
1208
  ### Fixed
697
1209
 
698
1210
  - Fixed issues regarding EXIF orientation calculation throwing errors under specific conditions.
699
1211
 
700
- ## [26.5.1] - 20-11-2024
1212
+ ## [26.5.1] - 19-11-2024
701
1213
 
702
1214
  ### Fixed
703
1215
 
@@ -711,6 +1223,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
711
1223
 
712
1224
  - ProductCollection has a new function `fetchProductsFeed`, which fetches a paginated array of product collection products (entries in the product collection). Note that this does not edit the internal array of previously fetched products like `fetchProducts` does, so calls to `fetchProductsFeed` will not change the array that is returned by `getProducts`. If `fetchProducts` has already been called, or if the ProductCollection has been initialised with products, `fetchProductsFeed` will avoid making any network calls where it can.
713
1225
 
1226
+ ## [26.4.4] - 15-11-2024
1227
+
1228
+ ### Changed
1229
+
1230
+ - SVG path elements generated during font outlining no longer have the `xmlns` attribute set explicitly, as it was causing rendering issues in certain environments.
1231
+
1232
+ ## [26.4.3] - 15-11-2024
1233
+
1234
+ ### Changed
1235
+
1236
+ - SVG namespace attributes are now set after the element is appended to the DOM during font outlining, ensuring correct namespace resolution.
1237
+
1238
+ ## [26.4.2] - 15-11-2024
1239
+
1240
+ ### Changed
1241
+
1242
+ - SVG path elements generated during font outlining now have the correct SVG namespace (`xmlns`) explicitly set to ensure cross-browser compatibility.
1243
+
1244
+ ## [26.4.1] - 08-11-2024
1245
+
1246
+ ### Changed
1247
+
1248
+ - Asset fetch requests now include cache-busting headers to ensure the latest versions of assets are always retrieved from the server.
1249
+
714
1250
  ## [26.4.0] - 07-11-2024
715
1251
 
716
1252
  ### Added
@@ -726,6 +1262,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
726
1262
  - IllustrationStepHandle now accepts providing PMS values when calling `setColor`
727
1263
  - IllustrationStepHandle's `getAvailableColors` function now returns the names of the variants as PMS values.
728
1264
 
1265
+ ## [26.2.0] - 04-11-2024
1266
+
1267
+ ### Added
1268
+
1269
+ - Added font outlining functionality that converts text glyphs into SVG path elements, enabling text to be rendered as outlines for print and export purposes.
1270
+
729
1271
  ## [26.1.2] - 30-10-2024
730
1272
 
731
1273
  ### Fixed
@@ -745,7 +1287,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
745
1287
  - Several internal functions have been changed, been merged or removed. This should not affect any public API.
746
1288
  - `rehydrateSerializedLayout` is no longer exported from the package. No functionality is intended to take its place. The function was always intended for internal use only.
747
1289
 
748
- ## [26.0.0] - 30-10-2024
1290
+ ## [26.0.0] - 29-10-2024
749
1291
 
750
1292
  ### Changed
751
1293
 
@@ -753,244 +1295,2178 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
753
1295
  - `configureUrls` has been removed in favor of the `configure` function. Please use `configure` moving forwards.
754
1296
  - The client constructor should know be called with an application in most use cases. We'll continue locking down functionality to require this in the future.
755
1297
 
756
- ## [22.0.0] - 10-07-2024
1298
+ ## [25.1.4] - 29-10-2024
757
1299
 
758
1300
  ### Changed
759
1301
 
760
- - `matchHexToPms` now returns a list of objects of `{ pms: string; hex: string; }` rather than strings.
1302
+ - When loading an existing bundle, global property state is now loaded as part of the bundle initialization process, removing the need for a separate manual load step.
761
1303
 
762
- ### Added
1304
+ ## [25.1.3] - 28-10-2024
763
1305
 
764
- - `findPmsColors(input: string, limit?: number): PmsSearchResult[]`: A function to find PMS colors by name using fuzzy search.
1306
+ ### Changed
765
1307
 
766
- ## [21.8.1] - 27-03-2024
1308
+ - Product filtering logic has been moved from the theme layer into the core package, making it available as a shared utility for all consumers.
767
1309
 
768
- ### Fixed
1310
+ ## [25.1.2] - 27-10-2024
769
1311
 
770
- - `WorkflowExperience.getTotalPriceSubunits` no longer always returns the discounted price.
1312
+ ### Changed
771
1313
 
772
- ## [21.8.0] - 26-03-2024
1314
+ - Internal changes and improvements.
1315
+
1316
+ ## [25.1.1] - 25-10-2024
1317
+
1318
+ ### Changed
1319
+
1320
+ - The bundle owner ID is now passed through to workflow experience loading, ensuring correct authorization when loading bundle transactions.
1321
+
1322
+ ## [25.1.0] - 25-10-2024
773
1323
 
774
1324
  ### Added
775
1325
 
776
- - `Bundle.removeStakeholder(email: string): Promise<void>`: Removes a single stakeholder from the Bundle, via email address.
1326
+ - Ability to check whether customer has bundle templates
777
1327
 
778
- ## [21.7.1] - 25-03-2024
1328
+ ### Changed
779
1329
 
780
- ### Fixed
1330
+ - Remove legacy reference from default region settings
781
1331
 
782
- - `Bundle.getAllStakeholders()` now returns correct results on subsequent calls.
1332
+ ## [25.0.9] - 24-10-2024
783
1333
 
784
- ## [21.7.0] - 25-03-2024
1334
+ ### Changed
785
1335
 
786
- ### Added
1336
+ - Enabled Apollo client caching for certain frequently accessed GraphQL fields to reduce redundant network requests.
1337
+ - Optimized bundle initialization by reducing unnecessary re-fetches during the setup phase.
787
1338
 
788
- - `CollectionProduct.getAllWorkflows(): ProductWorkflow[]`: Returns all workflows associated with this product.
1339
+ ## [25.0.8] - 23-10-2024
789
1340
 
790
- ## [21.6.0] - 22-03-2024
1341
+ ### Changed
1342
+
1343
+ - Improved GraphQL caching strategies to reduce redundant network requests during bundle and workflow operations.
1344
+
1345
+ ## [25.0.7] - 23-10-2024
791
1346
 
792
1347
  ### Added
793
1348
 
794
- - `WorkflowExperienceEventType.PriceBreakChanged`: The relevant event fires whenever the price break to be used in a WorkflowExperience changes. This even will fire when the quantity changes, and will also fire when in a Bundle when other WorkflowExperiences using the same Product have quantity changes (or are added & removed from the Bundle).
1349
+ - The `completed` field is now available on bundle and transaction entities, indicating whether they have been finalized.
795
1350
 
796
- ## [21.5.0] - 22-03-2024
1351
+ ## [25.0.6] - 22-10-2024
797
1352
 
798
1353
  ### Changed
799
1354
 
800
- - `StepHandle`: The override global property state setting now has a different value for each Global Property Aspect type. The get/set functions have been renamed and have an extra parameter to determine the Aspect Type.
801
- - `getOverrideGlobalPreviewConfiguration` -> `getOverrideGlobalPropertyConfiguration(type: AspectType): boolean`.
802
- - `setOverrideGlobalPreviewConfiguration` -> `setOverrideGlobalPropertyConfiguration(type: AspectType, value: boolean): void`
1355
+ - Step tags are now populated from the workflow definition during step initialization, making tag metadata available on step handles.
803
1356
 
804
- ## [21.4.1] - 21-03-2024
1357
+ ## [25.0.5] - 22-10-2024
805
1358
 
806
1359
  ### Changed
807
1360
 
808
- - `readTransactionsQuery` now fetches `printFileUrl1` to `printFileUrl5` for each transaction.
1361
+ - Text step metadata is no longer updated when the text value is invalid or erroneous, preventing corrupted data from being persisted.
809
1362
 
810
- ## [21.4.0] - 20-03-2024
1363
+ ## [25.0.4] - 21-10-2024
811
1364
 
812
1365
  ### Added
813
1366
 
814
- - `StepHandle`:
815
- - `getOverrideGlobalPreviewConfiguration(): boolean`: Returns a boolean that indicates whether this step should override (ignore) Global Property state.
816
- - `setOverrideGlobalPreviewConfiguration(value: boolean): void`: Modifies whether this step should override (ignore) Global Property state.
817
- - `getGlobalPropertyAspects(configurationId: string): string[]`: Returns all Aspect names in the supplied Global Property Configuration that this step is configured to use.
818
- - `Bundle.getGlobalPropertyConfiguration(): GlobalPropertyConfiguration | undefined`: Returns the Global Property Configuration object associated with the Bundle, if it exists.
1367
+ - The bundle stakeholder GraphQL queries now include authentication-related fields, making stakeholder authorization data available on the `BundleStakeholder` type.
819
1368
 
820
- ## [21.3.1] - 20-03-2024
1369
+ ## [25.0.3] - 14-10-2024
821
1370
 
822
1371
  ### Fixed
823
1372
 
824
- - When a `Bundle` is loaded by ID, the `WorkflowExperience` objects it loads will not correctly be linked internally. This resolves issues regarding price breaks not calculating correctly on bundle reload when multiple transactions share a product.
825
-
826
- ## [21.3.0] - 20-03-2024
827
-
828
- ### Added
1373
+ - Fixed an issue where default text values were not being correctly applied to text steps during initial workflow loading.
829
1374
 
830
- - `WorkflowExperience.priceBreakToBeApplied()` returns the percentage that will be used in `WorkflowExperience.getTotalPriceSubunits()` and related methods.
1375
+ ## [25.0.2] - 14-10-2024
831
1376
 
832
1377
  ### Changed
833
1378
 
834
- - `WorkflowExperience.getTotalPriceSubunits()` and related methods now consider price breaks in their calculations, but also now have a `disablePriceBreaks` argument.
1379
+ - Added bundle share page query fields and types, enabling the bundle sharing workflow functionality.
835
1380
 
836
- ## [21.2.1] - 15-03-2024
1381
+ ## [25.0.1] - 09-10-2024
837
1382
 
838
- ### Fixed
1383
+ ### Changed
839
1384
 
840
- - Fixed Global Property Handles not updating values when WorkflowExperiences in the Bundle share the same Workflow.
1385
+ - Added diagnostic logging when variants are selected, aiding in troubleshooting variant selection behavior during workflow interactions.
841
1386
 
842
- ## [21.2.0] - 15-03-2024
1387
+ ## [25.0.0] - 30-09-2024
843
1388
 
844
- ### Added
1389
+ ### Changed
845
1390
 
846
- - `FileUploadGlobalPropertyHandle`:
847
- - `hasImage(): boolean`: Returns a boolean value indicating if the associated state has an image.
848
- - `getImage(): Promise<Asset | undefined>`: Retrieves the current image from the server.
1391
+ - Updated the package's public API exports, reorganizing and consolidating the entry points to improve discoverability and remove deprecated exports.
849
1392
 
850
- ## [21.1.1] - 15-03-2024
1393
+ ## [24.0.2] - 18-09-2024
851
1394
 
852
1395
  ### Fixed
853
1396
 
854
- - Exported missing `AspectType` for global property handles.
1397
+ - Specify correct data-uri-to-buffer version
855
1398
 
856
- ## [21.1.0] - 14-03-2024
1399
+ ## [24.0.1] - 18-09-2024
857
1400
 
858
- ### Added
1401
+ ### Changed
859
1402
 
860
- - `Bundle.hasGlobalProperties(): boolean`: Returns true when the bundle is linked to a Global Property Configuration.
1403
+ - The initial zoom level field is now correctly wired during workflow initialization, ensuring the configured zoom level is applied when the preview loads.
861
1404
 
862
- ## [21.0.1] - 13-03-2024
1405
+ ## [24.0.0] - 17-09-2024
863
1406
 
864
- ### Fixed
1407
+ ### Changed
865
1408
 
866
- - Package now supplies this `CHANGELOG.md` in published releases.
1409
+ - Merged the Papyrus rendering engine updates into core, bringing new rendering capabilities and internal API changes. This is a breaking change due to updated Papyrus interfaces.
867
1410
 
868
- ## [21.0.0] - 13-03-2024
1411
+ ## [23.0.5] - 12-09-2024
869
1412
 
870
- ### Added
1413
+ ### Changed
871
1414
 
872
- - `DesignCreationMessage` now has `quantity: number | undefined`.
1415
+ - Improved default text handling to more reliably apply default text values when text steps are first activated.
1416
+
1417
+ ## [23.0.3] - 12-09-2024
873
1418
 
874
1419
  ### Changed
875
1420
 
876
- - `Bundle.finish()` no longer returns an array of `DesignCreationMessage` objects, but instead returns a `BundleDesignCreationMessage` object which wraps the array of `DesignCreationMessage` entries.
1421
+ - Added support for design input step types in the workflow, allowing users to provide design assets as step inputs.
1422
+ - Improved error messaging for workflow validation to provide clearer feedback to consumers.
1423
+
1424
+ ## [23.0.2] - 08-09-2024
1425
+
1426
+ ### Changed
1427
+
1428
+ - Frame step rendering now uses SVG groups for organizing frame region elements, improving layout management and element targeting.
1429
+
1430
+ ## [23.0.1] - 08-09-2024
1431
+
1432
+ ### Changed
1433
+
1434
+ - Internal changes and improvements.
1435
+
1436
+ ## [23.0.0] - 08-09-2024
1437
+
1438
+ ### Changed
1439
+
1440
+ - Internal changes and improvements.
1441
+
1442
+ ## [22.13.5] - 06-09-2024
1443
+
1444
+ ### Changed
1445
+
1446
+ - Workflow error information is now accessible, allowing consumers to retrieve and display any errors that occurred during workflow loading or processing.
1447
+
1448
+ ## [22.13.4] - 06-09-2024
1449
+
1450
+ ### Changed
1451
+
1452
+ - Internal changes and improvements.
1453
+
1454
+ ## [22.13.3] - 05-09-2024
1455
+
1456
+ ### Changed
1457
+
1458
+ - Added support for custom color configurations on workflow steps, allowing users to define and apply non-standard colors.
1459
+
1460
+ ## [22.13.2] - 04-09-2024
1461
+
1462
+ ### Changed
1463
+
1464
+ - Added the `option` field to variant query responses, associating each variant with its parent option for improved data access.
1465
+
1466
+ ## [22.13.1] - 04-09-2024
1467
+
1468
+ ### Fixed
1469
+
1470
+ - Typo in query
1471
+
1472
+ ## [22.13.0] - 03-09-2024
1473
+
1474
+ ### Changed
1475
+
1476
+ - Added the `getBundlesForCustomer` function, which fetches all bundles associated with a given customer ID.
1477
+
1478
+ ## [22.12.0] - 03-09-2024
1479
+
1480
+ ### Changed
1481
+
1482
+ - Internal changes and improvements.
1483
+
1484
+ ## [22.11.0] - 03-09-2024
1485
+
1486
+ ### Changed
1487
+
1488
+ - Product collection entities now include `description` and `image` fields in their GraphQL queries, making this data available for display in product collection listings.
1489
+
1490
+ ## [22.10.1] - 30-08-2024
1491
+
1492
+ ### Changed
1493
+
1494
+ - Updated the Pith dependency to fix a whitespace rendering issue in text elements.
1495
+
1496
+ ## [22.10.0] - 28-08-2024
1497
+
1498
+ ### Changed
1499
+
1500
+ - Text steps now expose error state and helper text data, enabling consumers to display validation feedback and contextual help for text inputs.
1501
+
1502
+ ## [22.9.2] - 28-08-2024
1503
+
1504
+ ### Fixed
1505
+
1506
+ - Fixed Global Property State not correctly storing the aspect type for all aspect entries, ensuring type metadata is preserved across state operations.
1507
+
1508
+ ## [22.9.1] - 28-08-2024
1509
+
1510
+ ### Changed
1511
+
1512
+ - Added the `getCustomer` function for fetching customer data by ID, providing a dedicated accessor for customer information.
1513
+
1514
+ ## [22.9.0] - 28-08-2024
1515
+
1516
+ ### Changed
1517
+
1518
+ - Added the `getCustomerMetafields` function for fetching metafield data associated with a customer, enabling access to custom customer attributes.
1519
+
1520
+ ## [22.8.0] - 27-08-2024
1521
+
1522
+ ### Changed
1523
+
1524
+ - The `duplicateBundle` function now also duplicates all transactions within the bundle, ensuring a complete copy of the bundle and its workflow experiences is created.
1525
+
1526
+ ## [22.7.5] - 27-08-2024
1527
+
1528
+ ### Changed
1529
+
1530
+ - A theme configuration is now automatically assigned when creating a new bundle, ensuring the bundle has the correct theme from the start.
1531
+
1532
+ ## [22.7.4] - 26-08-2024
1533
+
1534
+ ### Changed
1535
+
1536
+ - The `bundleOwnerId` field is now returned in bundle query responses, making the bundle owner's ID available to consumers.
1537
+
1538
+ ## [22.7.3] - 26-08-2024
1539
+
1540
+ ### Added
1541
+
1542
+ - Added color picker change event handling, allowing consumers to be notified when a user changes a color selection.
1543
+
1544
+ ## [22.7.2] - 26-08-2024
1545
+
1546
+ ### Changed
1547
+
1548
+ - Frame steps now respect the configured initial zoom level when first loaded, ensuring the correct zoom is applied on frame display.
1549
+
1550
+ ## [22.7.1] - 22-08-2024
1551
+
1552
+ ### Fixed
1553
+
1554
+ - Fixed `fetchProducts` to correctly return all products in the collection instead of a filtered subset.
1555
+
1556
+ ## [22.7.0] - 22-08-2024
1557
+
1558
+ ### Added
1559
+
1560
+ - Added a filter for products on fetchProducts
1561
+ - Bump FCH test to new AU
1562
+
1563
+ ## [22.6.6] - 20-08-2024
1564
+
1565
+ ### Added
1566
+
1567
+ - The `allowNewlines` property is now exposed on text step handles, allowing consumers to check whether multi-line text input is permitted.
1568
+
1569
+ ## [22.6.5] - 20-08-2024
1570
+
1571
+ ### Fixed
1572
+
1573
+ - The `mandatory` property is now exposed on step handles, allowing consumers to check whether a step is required to be completed.
1574
+
1575
+ ## [22.6.4] - 19-08-2024
1576
+
1577
+ ### Fixed
1578
+
1579
+ - Fix transactionOwnerIds not saving in many create
1580
+
1581
+ ## [22.6.3] - 18-08-2024
1582
+
1583
+ ### Fixed
1584
+
1585
+ - Fixed mandatory step validation to correctly track fulfillment status when variant selections change.
1586
+
1587
+ ## [22.6.2] - 14-08-2024
1588
+
1589
+ ### Changed
1590
+
1591
+ - Internal changes and improvements.
1592
+
1593
+ ## [22.6.1] - 14-08-2024
1594
+
1595
+ ### Changed
1596
+
1597
+ - The eager load option for product collections is now passed through during bundle creation, enabling products to be pre-fetched during initialization.
1598
+
1599
+ ## [22.6.0] - 14-08-2024
1600
+
1601
+ ### Changed
1602
+
1603
+ - Added the `assignProductCollection` function to `Bundle`, allowing a product collection to be assigned to a bundle after creation.
1604
+
1605
+ ## [22.5.3] - 14-08-2024
1606
+
1607
+ ### Changed
1608
+
1609
+ - Step tag data is now included in the step query responses, making workflow step tags available for filtering and categorization.
1610
+
1611
+ ## [22.5.2] - 14-08-2024
1612
+
1613
+ ### Changed
1614
+
1615
+ - The `Integration` type definition is now exported from the package, making it available for consumers who need to reference integration types directly.
1616
+
1617
+ ## [22.5.1] - 09-08-2024
1618
+
1619
+ ### Fixed
1620
+
1621
+ - Global property aspect filtering now correctly identifies which steps belong to a given global property configuration, resolving issues where steps were incorrectly excluded from global property updates.
1622
+
1623
+ ## [22.5.0] - 08-08-2024
1624
+
1625
+ ### Changed
1626
+
1627
+ - Updated the `@spiffcommerce/theme-bridge` dependency to the latest version.
1628
+
1629
+ ### Fixed
1630
+
1631
+ - Fixed type definitions for theme configuration to match the updated theme-bridge API.
1632
+
1633
+ ## [22.4.8] - 05-08-2024
1634
+
1635
+ ### Changed
1636
+
1637
+ - Removed the display images feature from the step rendering pipeline, simplifying the step output.
1638
+
1639
+ ## [22.4.7] - 01-08-2024
1640
+
1641
+ ### Changed
1642
+
1643
+ - Fixed a mutation reload bug that could cause incorrect state after reloading workflow data.
1644
+ - Updated the CI configuration for git settings and version bumping during the build process.
1645
+
1646
+ ## [22.4.6] - 29-07-2024
1647
+
1648
+ ### Changed
1649
+
1650
+ - Updated the Papyrus dependency and added support for uploading and applying custom colors to frame pattern images.
1651
+
1652
+ ## [22.4.5] - 29-07-2024
1653
+
1654
+ ### Changed
1655
+
1656
+ - Added type definitions and storage mechanisms for custom color configurations, enabling persistence of user-defined colors across sessions.
1657
+
1658
+ ## [22.4.4] - 28-07-2024
1659
+
1660
+ ### Changed
1661
+
1662
+ - Updated the Papyrus rendering engine dependency to the latest version.
1663
+
1664
+ ## [22.4.3] - 26-07-2024
1665
+
1666
+ ### Changed
1667
+
1668
+ - Internal changes and improvements.
1669
+
1670
+ ## [22.4.2] - 26-07-2024
1671
+
1672
+ ### Changed
1673
+
1674
+ - Internal changes and improvements.
1675
+
1676
+ ## [22.4.1] - 26-07-2024
1677
+
1678
+ ### Fixed
1679
+
1680
+ - Fixed an issue causing global properties to be overriden by workflow initialization
1681
+
1682
+ ## [22.4.0] - 25-07-2024
1683
+
1684
+ ### Changed
1685
+
1686
+ - Added the `ModuleStepHandle` type for handling module-type workflow steps, enabling interaction with module step data and configuration.
1687
+
1688
+ ## [22.3.0] - 24-07-2024
1689
+
1690
+ ### Added
1691
+
1692
+ - Transactions now have their theme configuration installed during creation, ensuring the correct theme is available from the start of the workflow.
1693
+
1694
+ ### Fixed
1695
+
1696
+ - Fixed theme bridge integration to correctly resolve theme configurations for transactions.
1697
+
1698
+ ## [22.2.2] - 24-07-2024
1699
+
1700
+ ### Changed
1701
+
1702
+ - Improved frame step rendering with better element positioning and region handling.
1703
+
1704
+ ## [22.2.1] - 24-07-2024
1705
+
1706
+ ### Changed
1707
+
1708
+ - The `getExportedData` method now groups exported data items by their associated workflow step, providing a more organized output structure.
1709
+
1710
+ ## [22.2.0] - 23-07-2024
1711
+
1712
+ ### Changed
1713
+
1714
+ - Updated authentication action handling to support new authorization flows and improved token management.
1715
+
1716
+ ## [22.1.5] - 18-07-2024
1717
+
1718
+ ### Changed
1719
+
1720
+ - Updated the preview fetch mechanism for improved reliability.
1721
+
1722
+ ## [22.1.4] - 17-07-2024
1723
+
1724
+ ### Changed
1725
+
1726
+ - Reapply global state when conditions change
1727
+
1728
+ ## [22.1.3] - 17-07-2024
1729
+
1730
+ ### Changed
1731
+
1732
+ - Workflow initialization now correctly awaits global property state loading before proceeding, preventing race conditions during early access to global properties.
1733
+
1734
+ ## [22.1.2] - 17-07-2024
1735
+
1736
+ ### Changed
1737
+
1738
+ - Updated the Papyrus rendering engine dependency to the latest version.
1739
+
1740
+ ## [22.1.1] - 16-07-2024
1741
+
1742
+ ### Fixed
1743
+
1744
+ - Don't validate colors when colorpicker not enabled
1745
+
1746
+ ## [22.1.0] - 16-07-2024
1747
+
1748
+ ### Changed
1749
+
1750
+ - Added support for a maximum color limit on color picker steps, allowing workflows to restrict the number of colors a user can select.
1751
+
1752
+ ## [22.0.2] - 12-07-2024
1753
+
1754
+ ### Added
1755
+
1756
+ - Added text color global property handle
1757
+
1758
+ ## [22.0.1] - 11-07-2024
1759
+
1760
+ ### Added
1761
+
1762
+ - Add svg data url support to pattern image frame
1763
+
1764
+ ## [22.0.0] - 10-07-2024
1765
+
1766
+ ### Changed
1767
+
1768
+ - `matchHexToPms` now returns a list of objects of `{ pms: string; hex: string; }` rather than strings.
1769
+
1770
+ ### Added
1771
+
1772
+ - `findPmsColors(input: string, limit?: number): PmsSearchResult[]`: A function to find PMS colors by name using fuzzy search.
1773
+
1774
+ ## [21.24.0] - 10-07-2024
1775
+
1776
+ ### Changed
1777
+
1778
+ - Added the `DigitalContentStepHandle` type for handling digital content workflow steps, enabling interaction with digital content step data.
1779
+
1780
+ ## [21.23.2] - 09-07-2024
1781
+
1782
+ ### Changed
1783
+
1784
+ - SVG dimension parsing now correctly handles `width` and `height` attributes specified with `px` unit suffixes, stripping the units before calculating dimensions.
1785
+
1786
+ ## [21.23.1] - 09-07-2024
1787
+
1788
+ ### Added
1789
+
1790
+ - Update colors when selecting new image
1791
+
1792
+ ## [21.23.0] - 09-07-2024
1793
+
1794
+ ### Changed
1795
+
1796
+ - Added the ability to remove backgrounds from uploaded images in picture steps, providing a cleaner image composition experience.
1797
+
1798
+ ## [21.22.0] - 08-07-2024
1799
+
1800
+ ### Fixed
1801
+
1802
+ - Fixed the color picker to correctly update and display the selected color across all relevant step handles.
1803
+
1804
+ ## [21.21.5] - 08-07-2024
1805
+
1806
+ ### Changed
1807
+
1808
+ - Frame steps now enforce a whitelist of accepted file extensions for uploaded images, preventing unsupported file types from being used.
1809
+
1810
+ ## [21.20.5] - 05-07-2024
1811
+
1812
+ ### Fixed
1813
+
1814
+ - Missing text on default step load
1815
+
1816
+ ## [21.20.4] - 05-07-2024
1817
+
1818
+ ### Changed
1819
+
1820
+ - Illustration step color metadata is now included in the exported step data, making color configuration information available for downstream processing.
1821
+
1822
+ ## [21.20.3] - 05-07-2024
1823
+
1824
+ ### Added
1825
+
1826
+ - Add missing stakeholder fields
1827
+
1828
+ ## [21.20.2] - 03-07-2024
1829
+
1830
+ ### Changed
1831
+
1832
+ - Added type definitions for `TransactionShareAction`, enabling typed access to transaction sharing action data.
1833
+
1834
+ ## [21.20.1] - 03-07-2024
1835
+
1836
+ ### Fixed
1837
+
1838
+ - TransactionShareAction type export
1839
+
1840
+ ## [21.20.0] - 02-07-2024
1841
+
1842
+ ### Changed
1843
+
1844
+ - Frame steps now support SVG colour extraction and customization, allowing users to modify colours within SVG-based frame patterns.
1845
+
1846
+ ## [21.19.2] - 27-06-2024
1847
+
1848
+ ### Changed
1849
+
1850
+ - Added support for partner-level terms and conditions, allowing partners to define their own terms that are presented during the workflow experience.
1851
+
1852
+ ## [21.19.1] - 13-06-2024
1853
+
1854
+ ### Changed
1855
+
1856
+ - The `Placeable` type is now exported from the package, making it available for consumers who need to reference placeable element types.
1857
+
1858
+ ## [21.19.0] - 12-06-2024
1859
+
1860
+ ### Changed
1861
+
1862
+ - Pass design name to transactionCreate requests
1863
+
1864
+ ## [21.18.0] - 11-06-2024
1865
+
1866
+ ### Changed
1867
+
1868
+ - Function to allow updating of share actions when login changes
1869
+
1870
+ ## [21.17.6] - 11-06-2024
1871
+
1872
+ ### Changed
1873
+
1874
+ - Added MIME type validation for uploaded files, ensuring only supported file types are accepted during file upload steps.
1875
+
1876
+ ## [21.17.5] - 06-06-2024
1877
+
1878
+ ### Added
1879
+
1880
+ - API requests now include a Bearer authentication header when a user authentication token is available, enabling authenticated access to protected endpoints.
1881
+
1882
+ ## [21.17.4] - 03-06-2024
1883
+
1884
+ ### Fixed
1885
+
1886
+ - Fixed product image loading to correctly resolve and display product images from the integration product data.
1887
+
1888
+ ## [21.17.3] - 31-05-2024
1889
+
1890
+ ### Fixed
1891
+
1892
+ - Fixed an issue where product images were not correctly loaded from the product data, resolving blank or missing product images.
1893
+
1894
+ ## [21.17.2] - 30-05-2024
1895
+
1896
+ ### Changed
1897
+
1898
+ - Added transaction action types and query fields, enabling consumers to access and manage actions associated with transactions (e.g., share, approve, reject).
1899
+
1900
+ ## [21.17.1] - 30-05-2024
1901
+
1902
+ ### Changed
1903
+
1904
+ - Internal changes and improvements.
1905
+
1906
+ ## [21.17.0] - 29-05-2024
1907
+
1908
+ ### Changed
1909
+
1910
+ - Product descriptions are now fetched and available on product entities, providing descriptive text for display in product listings and workflow experiences.
1911
+
1912
+ ## [21.16.5] - 29-05-2024
1913
+
1914
+ ### Changed
1915
+
1916
+ - Fill and stroke color lists are now combined into a unified color palette for text steps, providing a complete set of available colors in a single accessor.
1917
+
1918
+ ## [21.16.4] - 29-05-2024
1919
+
1920
+ ### Changed
1921
+
1922
+ - Updated the Papyrus dependency to fix an SVG parsing regex issue that could cause incorrect rendering of certain SVG elements.
1923
+
1924
+ ## [21.16.3] - 28-05-2024
1925
+
1926
+ ### Changed
1927
+
1928
+ - Updated the Papyrus rendering engine dependency to the latest version.
1929
+
1930
+ ## [21.16.2] - 28-05-2024
1931
+
1932
+ ### Changed
1933
+
1934
+ - Handle mm in svg height and width
1935
+
1936
+ ## [21.16.1] - 27-05-2024
1937
+
1938
+ ### Added
1939
+
1940
+ - Include postscript files as non-rasters
1941
+
1942
+ ## [21.16.0] - 15-05-2024
1943
+
1944
+ ### Changed
1945
+
1946
+ - Updated the design product replacement logic to use the current product collection data when resolving design products.
1947
+ - Removed unused variables and values from the render code path, reducing complexity.
1948
+
1949
+ ## [21.15.4] - 13-05-2024
1950
+
1951
+ ### Changed
1952
+
1953
+ - Remove the initial flag which is now not needed
1954
+ - Removed edge cases related to mandatory step
1955
+ - Update core preview
1956
+
1957
+ ## [21.15.3] - 07-05-2024
1958
+
1959
+ ### Changed
1960
+
1961
+ - Added filtering to remove the heart symbol character from text input, preventing rendering issues with unsupported glyphs.
1962
+
1963
+ ## [21.15.2] - 06-05-2024
1964
+
1965
+ ### Changed
1966
+
1967
+ - Print file name URLs (`printFileUrl1` through `printFileUrl5`) are now included in the transaction query response, making print file download links available.
1968
+
1969
+ ## [21.15.1] - 30-04-2024
1970
+
1971
+ ### Changed
1972
+
1973
+ - Upload preview image before submitting design
1974
+
1975
+ ## [21.15.0] - 30-04-2024
1976
+
1977
+ ### Fixed
1978
+
1979
+ - Fixed memory management issues that caused excessive memory usage during workflow rendering, reducing the memory highwater mark for large workflows.
1980
+
1981
+ ## [21.14.0] - 30-04-2024
1982
+
1983
+ ### Changed
1984
+
1985
+ - Internal changes and improvements.
1986
+
1987
+ ## [21.13.1] - 30-04-2024
1988
+
1989
+ ### Changed
1990
+
1991
+ - Question steps now expose a `displayType` property, allowing consumers to determine how the question options should be rendered (e.g., dropdown, radio buttons).
1992
+
1993
+ ## [21.13.0] - 24-04-2024
1994
+
1995
+ ### Changed
1996
+
1997
+ - Optionally don't update frame offsets when updating image (for background remover)
1998
+
1999
+ ## [21.12.0] - 24-04-2024
2000
+
2001
+ ### Added
2002
+
2003
+ - Add ability to remove toast callbacks
2004
+
2005
+ ## [21.11.1] - 16-04-2024
2006
+
2007
+ ### Fixed
2008
+
2009
+ - Fixed mandatory step validation to correctly evaluate fulfillment status when checking whether all required steps have been completed.
2010
+
2011
+ ## [21.11.0] - 15-04-2024
2012
+
2013
+ ### Changed
2014
+
2015
+ - Improved the caching strategy for background removal results, reducing redundant processing when the same image is used across multiple steps.
2016
+
2017
+ ## [21.10.1] - 15-04-2024
2018
+
2019
+ ### Changed
2020
+
2021
+ - Step initialisation should not mark mandatory fulfilled flag
2022
+
2023
+ ## [21.10.0] - 12-04-2024
2024
+
2025
+ ### Changed
2026
+
2027
+ - Background removal functionality is now gated behind an addon flag, requiring the feature to be explicitly enabled for the partner before it becomes available in workflows.
2028
+
2029
+ ## [21.9.2] - 11-04-2024
2030
+
2031
+ ### Changed
2032
+
2033
+ - Updated asset utility functions with minor improvements to asset handling and type safety.
2034
+
2035
+ ## [21.9.1] - 09-04-2024
2036
+
2037
+ ### Added
2038
+
2039
+ - Add auth header to create design call
2040
+
2041
+ ## [21.9.0] - 05-04-2024
2042
+
2043
+ ### Changed
2044
+
2045
+ - Added background removal support for picture steps, allowing users to remove the background from uploaded images using an AI-powered service.
2046
+
2047
+ ## [21.8.2] - 02-04-2024
2048
+
2049
+ ### Changed
2050
+
2051
+ - Bundle GraphQL requests now include additional authorization headers, ensuring correct authentication for bundle-related API operations.
2052
+
2053
+ ## [21.8.1] - 26-03-2024
2054
+
2055
+ ### Fixed
2056
+
2057
+ - `WorkflowExperience.getTotalPriceSubunits` no longer always returns the discounted price.
2058
+
2059
+ ## [21.8.0] - 26-03-2024
2060
+
2061
+ ### Added
2062
+
2063
+ - `Bundle.removeStakeholder(email: string): Promise<void>`: Removes a single stakeholder from the Bundle, via email address.
2064
+
2065
+ ## [21.7.1] - 25-03-2024
2066
+
2067
+ ### Fixed
2068
+
2069
+ - `Bundle.getAllStakeholders()` now returns correct results on subsequent calls.
2070
+
2071
+ ## [21.7.0] - 24-03-2024
2072
+
2073
+ ### Added
2074
+
2075
+ - `CollectionProduct.getAllWorkflows(): ProductWorkflow[]`: Returns all workflows associated with this product.
2076
+
2077
+ ## [21.6.1] - 22-03-2024
2078
+
2079
+ ### Changed
2080
+
2081
+ - Internal changes and improvements.
2082
+
2083
+ ## [21.6.0] - 22-03-2024
2084
+
2085
+ ### Added
2086
+
2087
+ - `WorkflowExperienceEventType.PriceBreakChanged`: The relevant event fires whenever the price break to be used in a WorkflowExperience changes. This even will fire when the quantity changes, and will also fire when in a Bundle when other WorkflowExperiences using the same Product have quantity changes (or are added & removed from the Bundle).
2088
+
2089
+ ## [21.5.0] - 21-03-2024
2090
+
2091
+ ### Changed
2092
+
2093
+ - `StepHandle`: The override global property state setting now has a different value for each Global Property Aspect type. The get/set functions have been renamed and have an extra parameter to determine the Aspect Type.
2094
+ - `getOverrideGlobalPreviewConfiguration` -> `getOverrideGlobalPropertyConfiguration(type: AspectType): boolean`.
2095
+ - `setOverrideGlobalPreviewConfiguration` -> `setOverrideGlobalPropertyConfiguration(type: AspectType, value: boolean): void`
2096
+
2097
+ ## [21.4.1] - 20-03-2024
2098
+
2099
+ ### Changed
2100
+
2101
+ - `readTransactionsQuery` now fetches `printFileUrl1` to `printFileUrl5` for each transaction.
2102
+
2103
+ ## [21.4.0] - 20-03-2024
2104
+
2105
+ ### Added
2106
+
2107
+ - `StepHandle`:
2108
+ - `getOverrideGlobalPreviewConfiguration(): boolean`: Returns a boolean that indicates whether this step should override (ignore) Global Property state.
2109
+ - `setOverrideGlobalPreviewConfiguration(value: boolean): void`: Modifies whether this step should override (ignore) Global Property state.
2110
+ - `getGlobalPropertyAspects(configurationId: string): string[]`: Returns all Aspect names in the supplied Global Property Configuration that this step is configured to use.
2111
+ - `Bundle.getGlobalPropertyConfiguration(): GlobalPropertyConfiguration | undefined`: Returns the Global Property Configuration object associated with the Bundle, if it exists.
2112
+
2113
+ ## [21.3.1] - 20-03-2024
2114
+
2115
+ ### Fixed
2116
+
2117
+ - When a `Bundle` is loaded by ID, the `WorkflowExperience` objects it loads will not correctly be linked internally. This resolves issues regarding price breaks not calculating correctly on bundle reload when multiple transactions share a product.
2118
+
2119
+ ## [21.3.0] - 20-03-2024
2120
+
2121
+ ### Added
2122
+
2123
+ - `WorkflowExperience.priceBreakToBeApplied()` returns the percentage that will be used in `WorkflowExperience.getTotalPriceSubunits()` and related methods.
2124
+
2125
+ ### Changed
2126
+
2127
+ - `WorkflowExperience.getTotalPriceSubunits()` and related methods now consider price breaks in their calculations, but also now have a `disablePriceBreaks` argument.
2128
+
2129
+ ## [21.2.1] - 15-03-2024
2130
+
2131
+ ### Fixed
2132
+
2133
+ - Fixed Global Property Handles not updating values when WorkflowExperiences in the Bundle share the same Workflow.
2134
+
2135
+ ## [21.2.0] - 15-03-2024
2136
+
2137
+ ### Added
2138
+
2139
+ - `FileUploadGlobalPropertyHandle`:
2140
+ - `hasImage(): boolean`: Returns a boolean value indicating if the associated state has an image.
2141
+ - `getImage(): Promise<Asset | undefined>`: Retrieves the current image from the server.
2142
+
2143
+ ## [21.1.2] - 14-03-2024
2144
+
2145
+ ### Changed
2146
+
2147
+ - Exported additional type definitions that were missing from the package index, ensuring all public types are accessible to consumers.
2148
+
2149
+ ## [21.1.1] - 14-03-2024
2150
+
2151
+ ### Fixed
2152
+
2153
+ - Exported missing `AspectType` for global property handles.
2154
+
2155
+ ## [21.1.0] - 14-03-2024
2156
+
2157
+ ### Added
2158
+
2159
+ - `Bundle.hasGlobalProperties(): boolean`: Returns true when the bundle is linked to a Global Property Configuration.
2160
+
2161
+ ## [21.0.2] - 14-03-2024
2162
+
2163
+ ### Fixed
2164
+
2165
+ - Exported additional types from the `Bundle` module (`GlobalPropertyHandle`, `AspectType`, etc.), making bundle-related types available in the public API.
2166
+
2167
+ ## [21.0.1] - 13-03-2024
2168
+
2169
+ ### Fixed
2170
+
2171
+ - Package now supplies this `CHANGELOG.md` in published releases.
2172
+
2173
+ ## [21.0.0] - 13-03-2024
2174
+
2175
+ ### Added
2176
+
2177
+ - `DesignCreationMessage` now has `quantity: number | undefined`.
2178
+
2179
+ ### Changed
2180
+
2181
+ - `Bundle.finish()` no longer returns an array of `DesignCreationMessage` objects, but instead returns a `BundleDesignCreationMessage` object which wraps the array of `DesignCreationMessage` entries.
877
2182
 
878
2183
  ## [20.5.1] - 12-03-2024
879
2184
 
880
2185
  ### Fixed
881
2186
 
882
- - `WorkflowExperience.getSelectionPriceSubunits()` (and consequently `getTotalPriceSubunits()`) can no longer return `NaN`.
2187
+ - `WorkflowExperience.getSelectionPriceSubunits()` (and consequently `getTotalPriceSubunits()`) can no longer return `NaN`.
2188
+
2189
+ ## [20.5.0] - 12-03-2024
2190
+
2191
+ ### Added
2192
+
2193
+ - `WorkflowManager.injectIntoPreviewService()` now has a second argument `refocusCamera`, a boolean which allows you to disable the automatic refocusing of the camera when the model is loaded. This requires `@spiffcommerce/preview@^5.7.0`.
2194
+
2195
+ ## [20.4.5] - 08-03-2024
2196
+
2197
+ ### Added
2198
+
2199
+ - `RenderableScene` objects will now contain a `workflowScene: WorkflowScene` field. This is only provided for backwards compatibility and is considered deprecated functionality.
2200
+
2201
+ ## [20.4.4] - 08-03-2024
2202
+
2203
+ ### Fixed
2204
+
2205
+ - Updating quantity via `WorkflowExperience.setQuantity()` will now correctly update on the server.
2206
+
2207
+ ## [20.4.3] - 08-03-2024
2208
+
2209
+ ### Changed
2210
+
2211
+ - `WorkflowExperience.setQuantity()` now returns a promise that resolves once the quantity has been updated on the server.
2212
+
2213
+ ## [20.4.2] - 07-03-2024
2214
+
2215
+ ### Changed
2216
+
2217
+ - Moved a type export to the correct module location for proper package organization.
2218
+
2219
+ ## [20.4.1] - 07-03-2024
2220
+
2221
+ ### Fixed
2222
+
2223
+ - Exported a missing type definition that consumers needed to interact with the quantity management API.
2224
+
2225
+ ## [20.4.0] - 07-03-2024
2226
+
2227
+ ### Added
2228
+
2229
+ - `Transaction` entities now have `quantity: number | undefined`.
2230
+ - New functions on `WorkflowExperience` for managing quantity:
2231
+ - `getQuantity()`: The amount that was, or will be, ordered of the underlying `Transaction`. This will default to `1` if the value is undefined. If you want to read the raw value, use `getWorkflowManager().getTransaction().quantity`.
2232
+ - `setQuantity(<number>)`: Updates the quantity value on the underlying `Transaction` entity. Must be >= 1.
2233
+ - New events functionality on `WorkflowExperience`. Currently the only event is `QuantityChanged`.
2234
+ - `addEventListener(<type>, <callback>)`: Registers a callback function to be called when the specified event is raised. The associated `WorkflowExperience` is passed as a parameter to the callback function.
2235
+ - `removeEventListener(<type>, <callback>)`: Removes a previously registered callback.
2236
+
2237
+ ## [20.3.0] - 07-03-2024
2238
+
2239
+ ### Added
2240
+
2241
+ - `CollectionProduct.getCurrentIntegration()`: returns the `IntegrationProductResource` associated with the product that is linked to the current Integration (resolved via the application key).
2242
+
2243
+ ## [20.2.2] - 05-03-2024
2244
+
2245
+ ### Changed
2246
+
2247
+ - `WorkflowExperience.getStepById(<string>)` now internally caches the `StepHandle` objects that it creates. This resolves an issue with functional rendering systems that re-render when the object reference changes, where they would re-renderer whenever this function was called even if the object was identical.
2248
+
2249
+ ## [20.2.1] - 29-02-2024
2250
+
2251
+ ### Changed
2252
+
2253
+ - The union type `GetWorkflowOptions` has some of its entries wrapped in another union. The types that will create a brand new `Transaction` are now nested under `GetNewWorkflowOptions`:
2254
+
2255
+ ```ts
2256
+ // Before
2257
+ export type GetWorkflowOptions =
2258
+ | GetWorkflowFromTransactionOptions
2259
+ | GetWorkflowFromIntegrationProductOptions
2260
+ | GetWorkflowFromExternalProductOptions;
2261
+
2262
+ // After
2263
+ export type GetNewWorkflowOptions =
2264
+ | GetWorkflowFromIntegrationProductOptions
2265
+ | GetWorkflowFromExternalProductOptions;
2266
+
2267
+ export type GetWorkflowOptions = GetWorkflowFromTransactionOptions | GetNewWorkflowOptions;
2268
+ ```
2269
+
2270
+ ## [20.2.0] - 29-02-2024
2271
+
2272
+ ### Added
2273
+
2274
+ - `SpiffCommerceClient.getIntegrationProduct(<options>)`: Fetches an `IntegrationProduct` object. Essentially a wrapper for the functions `getIntegrationProductById` and `getIntegrationProductFromExternalIds`. The options object type is as follows:
2275
+ ```ts
2276
+ {
2277
+ type: "integration";
2278
+ integrationProductId: string;
2279
+ } | {
2280
+ type: "external";
2281
+ externalIntegrationId: string;
2282
+ externalProductId: string;
2283
+ }
2284
+ ```
2285
+
2286
+ ## [20.1.0] - 23-02-2024
2287
+
2288
+ ### Added
2289
+
2290
+ - `IntegrationProduct.getAllWorkflows()`: Returns an array of `ProductWorkflow`, ordered by their internal `index` value (matches the order seen on the SpiffCommerce Hub).
2291
+
2292
+ ## [20.0.1] - 22-02-2024
2293
+
2294
+ ### Changed
2295
+
2296
+ - `StepHandle.executeAnimations()` now logs a warning to the console when the associated `WorkflowManager` is not associated with a `ThreeDPreviewService`.
2297
+
2298
+ ## [20.0.0] - 18-02-2024
2299
+
2300
+ ### Added
2301
+
2302
+ - Additional configuration options for GraphQL on bundles.
2303
+ - A separate fetchProducts function on the ProductCollection interface.
2304
+
2305
+ ### Changed
2306
+
2307
+ - Removed async on getProducts call.
2308
+
2309
+ ### Removed
2310
+
2311
+ - Unused normalize.css file.
2312
+ - Identical links assigned in each translation file.
2313
+ - Duplicate index file for the english version.
2314
+
2315
+ ## [19.3.3] - 14-02-2024
2316
+
2317
+ ### Fixed
2318
+
2319
+ - Fixed products caching issue in `ProductCollection` to prevent redundant fetches.
2320
+
2321
+ ## [19.3.2] - 13-02-2024
2322
+
2323
+ ### Changed
2324
+
2325
+ - Improved product collection behavior with refinements to how products are fetched and stored internally.
2326
+
2327
+ ## [19.3.1] - 11-02-2024
2328
+
2329
+ ### Added
2330
+
2331
+ - Exported additional types from the package index.
2332
+
2333
+ ### Changed
2334
+
2335
+ - Refactored `ProductCollection` to load products asynchronously.
2336
+ - Simplified global properties member usage in `Bundle` by removing direct Papyrus `GlobalPropertyConfiguration` import.
2337
+
2338
+ ## [19.3.0] - 09-02-2024
2339
+
2340
+ ### Added
2341
+
2342
+ - Added text input support to the flow execution service, enabling text-based step interactions in workflow flows.
2343
+
2344
+ ## [19.2.0] - 06-02-2024
2345
+
2346
+ ### Added
2347
+
2348
+ - Added `getIntegration()` method to `SpiffCommerceClient` to fetch the current integration configuration.
2349
+
2350
+ ## [19.1.1] - 05-02-2024
2351
+
2352
+ ### Fixed
2353
+
2354
+ - Fixed JPEG magic number detection to correctly identify JPEG files during asset upload validation.
2355
+
2356
+ ## [19.1.0] - 01-02-2024
2357
+
2358
+ ### Added
2359
+
2360
+ - Added `getIntegrationProductById` and `getIntegrationProductFromExternalIds` functions to fetch integration products by their Spiff ID or external platform IDs.
2361
+
2362
+ ## [19.0.0] - 01-02-2024
2363
+
2364
+ ### Changed
2365
+
2366
+ - Bundle state manager now supports multiple named transforms per workflow experience, replacing the single-transform model. Transforms are stored in a keyed object, enabling multi-transform configurations on bundles.
2367
+
2368
+ ## [18.4.4] - 01-02-2024
2369
+
2370
+ ### Fixed
2371
+
2372
+ - Prevented workflow state synchronization from immediately firing during initialization, avoiding unnecessary server round-trips on load.
2373
+
2374
+ ## [18.4.3] - 30-01-2024
2375
+
2376
+ ### Changed
2377
+
2378
+ - Improved `getWorkflowExperiences` performance by batching transaction lookups and reducing redundant API calls when loading multiple workflow experiences.
2379
+
2380
+ ## [18.4.2] - 29-01-2024
2381
+
2382
+ ### Changed
2383
+
2384
+ - Updated the Papyrus rendering engine dependency for performance improvements.
2385
+
2386
+ ## [18.4.1] - 29-01-2024
2387
+
2388
+ ### Changed
2389
+
2390
+ - Updated the Papyrus rendering engine dependency with loading performance improvements.
2391
+ - Adjusted silent step handler tests for updated APIs.
2392
+
2393
+ ## [18.4.0] - 25-01-2024
2394
+
2395
+ ### Added
2396
+
2397
+ - Added `getSelectionPriceSubunits()` and `getBasePriceSubunits()` methods to `WorkflowExperience`, providing separate access to user selection price and product base price components.
2398
+
2399
+ ## [18.3.0] - 25-01-2024
2400
+
2401
+ ### Added
2402
+
2403
+ - The `noPan` field is now fetched from the workflow configuration, allowing workflows to disable camera panning in the 3D preview.
2404
+
2405
+ ## [18.2.2] - 24-01-2024
2406
+
2407
+ ### Changed
2408
+
2409
+ - The integration product data is now included in the transaction read query, making integration details available on reloaded transactions.
2410
+
2411
+ ## [18.2.1] - 22-01-2024
2412
+
2413
+ ### Fixed
2414
+
2415
+ - Added a guard to prevent illustration step updates from firing while a previous update is still in progress.
2416
+
2417
+ ## [18.2.0] - 22-01-2024
2418
+
2419
+ ### Added
2420
+
2421
+ - Added ability to fetch additional integration products linked to a product.
2422
+ - Added product collection loading from integration product data.
2423
+
2424
+ ## [18.1.0] - 22-01-2024
2425
+
2426
+ ### Added
2427
+
2428
+ - Illustration steps now automatically select the default color variant when a new illustration is loaded, based on the configured color option.
2429
+
2430
+ ## [18.0.1] - 18-01-2024
2431
+
2432
+ ### Fixed
2433
+
2434
+ - Fixed bundle metadata not being correctly passed during bundle creation.
2435
+
2436
+ ## [18.0.0] - 18-01-2024
2437
+
2438
+ ### Added
2439
+
2440
+ - Added `copySelections()` method to `WorkflowExperience` for copying variant selections from one experience to another, enabling duplication of user customizations across workflow experiences.
2441
+
2442
+ ## [17.5.1] - 18-01-2024
2443
+
2444
+ ### Changed
2445
+
2446
+ - Initial bundle metadata is now sent during bundle creation via the GraphQL mutation, allowing bundles to be initialized with metadata.
2447
+
2448
+ ## [17.5.0] - 17-01-2024
2449
+
2450
+ ### Changed
2451
+
2452
+ - Simplified non-power-of-two texture support calculation in the layout preview service by computing it upfront during initialization.
2453
+
2454
+ ## [17.4.0] - 16-01-2024
2455
+
2456
+ ### Added
2457
+
2458
+ - Product queries now fetch SKU data (`sku` and `skus` fields), making product SKU information available to consumers.
2459
+
2460
+ ## [17.3.0] - 15-01-2024
2461
+
2462
+ ### Added
2463
+
2464
+ - Added `setAlignment()` method to `TextStepHandle`, enabling programmatic control over text alignment (left, center, right) within text steps.
2465
+
2466
+ ## [17.2.1] - 15-01-2024
2467
+
2468
+ ### Added
2469
+
2470
+ - Added the `index` field to the `ProductWorkflow` type, enabling correct ordering of product workflows.
2471
+
2472
+ ## [17.2.0] - 15-01-2024
2473
+
2474
+ ### Changed
2475
+
2476
+ - `Bundle.finish()` now accepts an optional `createPreviewImage` callback parameter, allowing consumers to provide custom preview image generation logic for each workflow experience.
2477
+
2478
+ ## [17.1.1] - 15-01-2024
2479
+
2480
+ ### Changed
2481
+
2482
+ - The `index` field is now fetched for product workflows in the GraphQL query, enabling correct ordering of workflows on products.
2483
+
2484
+ ## [17.1.0] - 12-01-2024
2485
+
2486
+ ### Added
2487
+
2488
+ - Added threshold functionality for frame steps, introducing `FrameThreshold` types and configurable threshold detection to control image placement behavior within frame regions.
2489
+
2490
+ ## [17.0.2] - 10-01-2024
2491
+
2492
+ ### Changed
2493
+
2494
+ - Updated the Pith rendering dependency to include image filter support.
2495
+
2496
+ ## [17.0.1] - 09-01-2024
2497
+
2498
+ ### Changed
2499
+
2500
+ - The `DesignCreationMessage` type now includes additional ID fields (`externalDesignProductId`, `externalDesignProductVariantId`, etc.) from the transaction, providing richer data in the design creation response.
2501
+
2502
+ ## [17.0.0] - 08-01-2024
2503
+
2504
+ ### Removed
2505
+
2506
+ - Removed the legacy `BulkStepHandle` and associated bulk workflow functionality. Bulk email distribution is now handled differently via the consolidated workflow experience API.
2507
+
2508
+ ## [16.10.4] - 04-01-2024
2509
+
2510
+ ### Added
2511
+
2512
+ - Exported the missing `FlowService` type from the package index.
2513
+
2514
+ ## [16.10.3] - 15-11-2023
2515
+
2516
+ ### Fixed
2517
+
2518
+ - The transaction owner ID is now passed during variation record updates, ensuring correct authorization for persistence.
2519
+
2520
+ ## [16.10.2] - 15-11-2023
2521
+
2522
+ ### Fixed
2523
+
2524
+ - The transaction owner ID is now included when assigning customer details, ensuring proper authorization.
2525
+
2526
+ ## [16.10.1] - 14-11-2023
2527
+
2528
+ ### Fixed
2529
+
2530
+ - The model container is now set on the `WorkflowManager` immediately during injection rather than waiting for the model to fully load, preventing race conditions.
2531
+
2532
+ ## [16.10.0] - 13-11-2023
2533
+
2534
+ ### Changed
2535
+
2536
+ - Removed static owner ID tracking from `SpiffCommerceClient`.
2537
+
2538
+ ### Added
2539
+
2540
+ - `Bundle` now exposes `assignCustomerDetails` and the `GlobalPropertyStateManager` exposes an `assign` method for explicit customer association.
2541
+
2542
+ ## [16.9.0] - 13-11-2023
2543
+
2544
+ ### Added
2545
+
2546
+ - The asset service now fetches reflection map fields (`reflectionMap`, `emissiveMap`, etc.), making PBR material textures available for 3D preview rendering.
2547
+
2548
+ ## [16.8.4] - 09-11-2023
2549
+
2550
+ ### Fixed
2551
+
2552
+ - Fixed the GraphQL server authentication flow to correctly handle re-authentication when the token expires.
2553
+
2554
+ ## [16.8.3] - 08-11-2023
2555
+
2556
+ ### Fixed
2557
+
2558
+ - Fixed text generation to use the correct fallback font replacement logic when an unsupported character is encountered.
2559
+
2560
+ ## [16.8.2] - 08-11-2023
2561
+
2562
+ ### Changed
2563
+
2564
+ - Increased the resolution of preview images generated by `WorkflowExperience.createPreviewImage()`.
2565
+
2566
+ ## [16.8.1] - 08-11-2023
2567
+
2568
+ ### Added
2569
+
2570
+ - Added Sentry trace ID propagation to GraphQL requests, enabling distributed tracing across the API layer.
2571
+
2572
+ ## [16.8.0] - 06-11-2023
2573
+
2574
+ ### Added
2575
+
2576
+ - The promise cache service now supports toggling (enable/disable), allowing consumers to control caching behavior of workflow and asset requests.
2577
+
2578
+ ## [16.7.0] - 02-11-2023
2579
+
2580
+ ### Added
2581
+
2582
+ - The `getWorkflowExperience` function now fetches environment intensity and rotation fields for 3D scenes, making environment lighting configuration available for preview rendering.
2583
+
2584
+ ## [16.6.0] - 01-11-2023
2585
+
2586
+ ### Changed
2587
+
2588
+ - Silent step changes are now applied correctly to workflow experiences, and scene handling has been improved to process silent steps independently from user-interactive steps.
2589
+
2590
+ ## [16.5.0] - 31-10-2023
2591
+
2592
+ ### Added
2593
+
2594
+ - Added filtering capability to `getIntegrationProduct` on product collections, allowing products to be filtered by additional criteria.
2595
+
2596
+ ## [16.4.3] - 26-10-2023
2597
+
2598
+ ### Added
2599
+
2600
+ - Exported the canvas module setter function from the package index.
2601
+
2602
+ ## [16.4.2] - 25-10-2023
2603
+
2604
+ ### Changed
2605
+
2606
+ - Updated the Papyrus rendering engine to support headless rendering mode.
2607
+ - Added code documentation comments.
2608
+
2609
+ ## [16.4.1] - 23-10-2023
2610
+
2611
+ ### Changed
2612
+
2613
+ - GraphQL fetch function is now imported from the Papyrus package for consistent network handling.
2614
+
2615
+ ## [16.4.0] - 20-10-2023
2616
+
2617
+ ### Changed
2618
+
2619
+ - Improvements to bundle state management, including transform handling refinements and preview service integration for better 3D positioning of workflow experiences.
2620
+
2621
+ ## [16.3.0] - 18-10-2023
2622
+
2623
+ ### Added
2624
+
2625
+ - Added caching for font files and raw asset files, reducing redundant network requests during workflow rendering.
2626
+
2627
+ ## [16.2.6] - 18-10-2023
2628
+
2629
+ ### Fixed
2630
+
2631
+ - Fixed a timing issue in model step initialization where the model variant was being applied before the model was fully loaded.
2632
+
2633
+ ## [16.2.5] - 17-10-2023
2634
+
2635
+ ### Fixed
2636
+
2637
+ - Bundle state manager now flips input transform coordinates to match the 3D preview's coordinate system, ensuring correct positioning of workflow experiences in the preview.
2638
+
2639
+ ## [16.2.4] - 16-10-2023
2640
+
2641
+ ### Changed
2642
+
2643
+ - Improved internal model step handling by cleaning up model variant loading and await patterns for more reliable model initialization.
2644
+
2645
+ ## [16.2.1] - 16-10-2023
2646
+
2647
+ ### Fixed
2648
+
2649
+ - Added missing `await` on model variant loading during step initialization, preventing race conditions.
2650
+
2651
+ ## [16.2.0] - 15-10-2023
2652
+
2653
+ ### Added
2654
+
2655
+ - Exposed `Vector3` and `TransformCollection` types from the package.
2656
+
2657
+ ### Changed
2658
+
2659
+ - `ProductCollection` now wraps the raw resource with accessor methods.
2660
+
2661
+ ## [16.1.0] - 13-10-2023
2662
+
2663
+ ### Added
2664
+
2665
+ - `CollectionProduct` now exposes `getDefaultWorkflow()` for retrieving the default workflow configuration.
2666
+ - Product collection query now fetches workflow index data.
2667
+
2668
+ ## [16.0.2] - 12-10-2023
2669
+
2670
+ ### Changed
2671
+
2672
+ - Improved the product collection interface with typed `CollectionProduct` wrapper objects providing methods like `getId()`, `getName()`, and `getWorkflows()`.
2673
+
2674
+ ## [16.0.1] - 12-10-2023
2675
+
2676
+ ### Fixed
2677
+
2678
+ - Fixed design creation metadata formatting to correctly handle undefined values, preventing errors during bundle finalization.
2679
+
2680
+ ## [16.0.0] - 12-10-2023
2681
+
2682
+ ### Removed
2683
+
2684
+ - Removed all React dependencies and components from the package, making the core library framework-agnostic. The `AdvancedEditor`, `TransformWrapper`, and related React components have been removed.
2685
+
2686
+ ## [15.3.4] - 11-10-2023
2687
+
2688
+ ### Changed
2689
+
2690
+ - Model and material variant selections are now applied when injecting a workflow experience into the preview service.
2691
+
2692
+ ### Fixed
2693
+
2694
+ - Fixed a missing `break` in the flow execution state machine.
2695
+
2696
+ ## [15.3.3] - 11-10-2023
2697
+
2698
+ ### Fixed
2699
+
2700
+ - Fixed flow service response handling to correctly parse execution results.
2701
+ - Improved `instanceof` checks for workflow step types.
2702
+
2703
+ ## [15.3.2] - 11-10-2023
2704
+
2705
+ ### Fixed
2706
+
2707
+ - Fixed flow execution to correctly pass the execution ID in subsequent calls.
2708
+
2709
+ ## [15.3.1] - 11-10-2023
2710
+
2711
+ ### Changed
2712
+
2713
+ - Internal dependency version bump.
2714
+
2715
+ ## [15.3.0] - 10-10-2023
2716
+
2717
+ ### Added
2718
+
2719
+ - Major improvements to the flow execution service, including state management and support for multi-step execution flows with retry handling.
2720
+
2721
+ ## [15.2.4] - 09-10-2023
2722
+
2723
+ ### Fixed
2724
+
2725
+ - Fixed a global property default variant issue where a missing null check could cause the variant initialization to fail.
2726
+
2727
+ ## [15.2.3] - 09-10-2023
2728
+
2729
+ ### Fixed
2730
+
2731
+ - Variant `getThumbnail()` now checks the explicit thumbnail field first before falling back to the generated thumbnail version, ensuring the most appropriate image is returned.
2732
+
2733
+ ## [15.2.2] - 06-10-2023
2734
+
2735
+ ### Changed
2736
+
2737
+ - Batched the `readWorkflowState` GraphQL calls during `createDesigns` for bundles, reducing the number of network requests when finalizing bundles with multiple transactions.
2738
+
2739
+ ## [15.2.1] - 06-10-2023
2740
+
2741
+ ### Fixed
2742
+
2743
+ - Added fallback handling for global property default variant initialization when no matching variant is found, preventing crashes during bundle setup.
2744
+
2745
+ ## [15.2.0] - 05-10-2023
2746
+
2747
+ ### Added
2748
+
2749
+ - The emission map configuration field is now fetched from the workflow, enabling emissive material support in 3D previews.
2750
+
2751
+ ## [15.1.5] - 04-10-2023
2752
+
2753
+ ### Fixed
2754
+
2755
+ - Fixed `Variant.getThumbnail()` returning the base asset's thumbnail instead of the variant's own explicit thumbnail when available.
2756
+
2757
+ ## [15.1.4] - 04-10-2023
2758
+
2759
+ ### Changed
2760
+
2761
+ - Design creation transaction fragment now includes `previewImageLink` field.
2762
+ - Improved deprecation message for `Variant.getDisplayImage()` to recommend `getThumbnail()`.
2763
+
2764
+ ## [15.1.3] - 03-10-2023
2765
+
2766
+ ### Fixed
2767
+
2768
+ - Customer and bundle IDs are now correctly persisted when fetching stakeholders, preventing loss of customer context.
2769
+
2770
+ ## [15.1.2] - 03-10-2023
2771
+
2772
+ ### Fixed
2773
+
2774
+ - Added a missing GraphQL query case for customer-specific bundle lookups.
2775
+
2776
+ ## [15.1.1] - 03-10-2023
2777
+
2778
+ ### Added
2779
+
2780
+ - Exported additional types (`InformationStepHandle`, `InformationStepData`, etc.) from the package index.
2781
+
2782
+ ## [15.1.0] - 03-10-2023
2783
+
2784
+ ### Added
2785
+
2786
+ - Added `InformationStepHandle` for information-type workflow steps, allowing consumers to read and interact with informational step content.
2787
+
2788
+ ## [15.0.4] - 02-10-2023
2789
+
2790
+ ### Fixed
2791
+
2792
+ - Customers are now correctly stored and associated with bundles during creation and lookup, enabling customer-to-bundle relationship persistence.
2793
+
2794
+ ## [15.0.3] - 02-10-2023
2795
+
2796
+ ### Fixed
2797
+
2798
+ - Fixed customer lookup for bundles by adding the missing `partner.id` field to the bundles-for-customer GraphQL query.
2799
+
2800
+ ## [15.0.2] - 02-10-2023
2801
+
2802
+ ### Changed
2803
+
2804
+ - Design creation for bundles now uses a single batched `createDesigns` request instead of individual calls per transaction.
2805
+
2806
+ ### Added
2807
+
2808
+ - Added missing `FileUploadGlobalPropertyHandle` export.
2809
+
2810
+ ## [15.0.1] - 28-09-2023
2811
+
2812
+ ### Fixed
2813
+
2814
+ - Fixed the integration product type reference on product collection queries to use the correct singular field name.
2815
+
2816
+ ## [15.0.0] - 28-09-2023
2817
+
2818
+ ### Changed
2819
+
2820
+ - Refactored `ProductCollection` from a plain type to a class with accessor methods. The `Bundle.getProductCollection()` now returns a `ProductCollection` wrapper instance.
2821
+
2822
+ ### Fixed
2823
+
2824
+ - Fixed `instanceof Map` check that caused issues with generic type parameters.
2825
+
2826
+ ## [14.13.2] - 28-09-2023
2827
+
2828
+ ### Changed
2829
+
2830
+ - Preview image capture during `Bundle.finish()` is now optional, controlled by a callback parameter that can return `undefined` to skip capturing.
2831
+
2832
+ ## [14.13.1] - 28-09-2023
2833
+
2834
+ ### Changed
2835
+
2836
+ - Improved bundle loading performance by optimizing GraphQL query fetch policies.
2837
+ - Added extra argument to specify GraphQL options when loading bundles.
2838
+ - Text step service improvements.
2839
+
2840
+ ## [14.13.0] - 27-09-2023
2841
+
2842
+ ### Added
2843
+
2844
+ - Added bulk transaction creation support. `getWorkflowExperiences()` now accepts arrays of options, enabling parallel creation of multiple workflow experiences in a single call.
2845
+
2846
+ ## [14.12.1] - 27-09-2023
2847
+
2848
+ ### Fixed
2849
+
2850
+ - Fixed array mutation issues in `Bundle` when replacing or injecting workflow experiences, preventing unintended side effects on the internal array.
2851
+
2852
+ ## [14.12.0] - 27-09-2023
2853
+
2854
+ ### Added
2855
+
2856
+ - Added array management methods to `Bundle`: `addWorkflowExperiences()`, `removeWorkflowExperiences()`, `removeWorkflowExperiencesByTransactions()`, `insertWorkflowExperience()`, and `replaceWorkflowExperience()`.
2857
+
2858
+ ## [14.11.0] - 27-09-2023
2859
+
2860
+ ### Added
2861
+
2862
+ - Added custom color support for shape steps via global property configuration.
2863
+
2864
+ ### Fixed
2865
+
2866
+ - Fixed bundle ordering not updating when appending new workflow experiences.
2867
+
2868
+ ## [14.10.0] - 26-09-2023
2869
+
2870
+ ### Added
2871
+
2872
+ - Added bulk add/remove/insert/replace methods for workflow experiences on `Bundle`.
2873
+ - Added `transactionOwnerId` support in the state mutation function.
2874
+
2875
+ ### Fixed
2876
+
2877
+ - Fixed duplicate insertion and removal splicing bugs.
2878
+
2879
+ ## [14.9.0] - 26-09-2023
2880
+
2881
+ ### Changed
2882
+
2883
+ - Asset metadata is now fetched via GraphQL, and asset upload now uses the promise cache.
2884
+ - Improved cache handling with configurable reuse.
2885
+
2886
+ ## [14.8.1] - 26-09-2023
2887
+
2888
+ ### Added
2889
+
2890
+ - Implemented a promise cache for workflow requests, caching identical in-flight requests to avoid duplicate network calls.
2891
+
2892
+ ## [14.8.0] - 25-09-2023
2893
+
2894
+ ### Added
2895
+
2896
+ - The `transformCollection` field is now fetched from `ProductCollection` via GraphQL, making 3D transform configuration data available for bundle positioning.
2897
+
2898
+ ## [14.7.0] - 21-09-2023
2899
+
2900
+ ### Added
2901
+
2902
+ - Added support for overriding HTTP header values in the GraphQL client, enabling custom authorization headers for bundle-specific API calls.
2903
+
2904
+ ## [14.6.0] - 21-09-2023
2905
+
2906
+ ### Added
2907
+
2908
+ - Introduced `BundleStateManager` for tracking per-transaction 3D positioning state (transforms) within bundles, including coordinate system conversion between input and preview space.
2909
+
2910
+ ## [14.5.0] - 21-09-2023
2911
+
2912
+ ### Added
2913
+
2914
+ - Added hover events on `Bundle` for workflow experiences, firing when the user hovers over a workflow experience's 3D model in the preview.
2915
+
2916
+ ## [14.4.0] - 21-09-2023
2917
+
2918
+ ### Added
2919
+
2920
+ - Added tags to step handles via `StepHandle.getTags()`.
2921
+ - Exported additional step types from the package index.
2922
+
2923
+ ## [14.3.1] - 20-09-2023
2924
+
2925
+ ### Fixed
2926
+
2927
+ - Fixed error when re-injecting a workflow experience into the same preview service by adding a guard for duplicate injection.
2928
+
2929
+ ## [14.3.0] - 20-09-2023
2930
+
2931
+ ### Added
2932
+
2933
+ - Bundle workflow experiences are now automatically injected into the 3D preview service when added to a bundle, and removed when deleted.
2934
+
2935
+ ## [14.2.2] - 20-09-2023
2936
+
2937
+ ### Changed
2938
+
2939
+ - Bundle metadata is now fetched when loading bundles for a customer.
2940
+
2941
+ ## [14.2.1] - 20-09-2023
2942
+
2943
+ ### Changed
2944
+
2945
+ - Updated the Papyrus rendering engine to fix a default frame pattern rendering issue.
2946
+
2947
+ ## [14.2.0] - 20-09-2023
2948
+
2949
+ ### Added
2950
+
2951
+ - Added `getBundleStakeholdersForCustomer()` to fetch all bundle stakeholders associated with a customer.
2952
+
2953
+ ## [14.1.6] - 19-09-2023
2954
+
2955
+ ### Changed
2956
+
2957
+ - Added an automatic render trigger after injecting a workflow experience into the 3D preview service.
2958
+
2959
+ ## [14.1.5] - 19-09-2023
2960
+
2961
+ ### Fixed
2962
+
2963
+ - The local bundle owner ID is now assigned before fetching a bundle, ensuring correct authorization during load.
2964
+
2965
+ ## [14.1.4] - 18-09-2023
2966
+
2967
+ ### Fixed
2968
+
2969
+ - Fixed frame image zoom calculation and enforced image bounding within frame regions.
2970
+
2971
+ ## [14.1.3] - 18-09-2023
2972
+
2973
+ ### Fixed
2974
+
2975
+ - Fixed inverted offset change detection in the frame service, which was incorrectly skipping offset updates.
2976
+
2977
+ ## [14.1.0] - 15-09-2023
2978
+
2979
+ ### Added
2980
+
2981
+ - Added `getGlobalPropertyTotalSubunits()` to `Bundle` for calculating the total price of all option-type global property selections.
2982
+
2983
+ ## [14.0.1] - 15-09-2023
2984
+
2985
+ ### Changed
2986
+
2987
+ - Frame creation now includes `data-frame-width` and `data-frame-height` attributes for correct sizing metadata.
2988
+
2989
+ ## [14.0.0] - 14-09-2023
2990
+
2991
+ ### Added
2992
+
2993
+ - Full support for frames with multiple regions, including independent image handling, zoom, and offset controls per region.
2994
+
2995
+ ## [13.3.3] - 13-09-2023
2996
+
2997
+ ### Fixed
2998
+
2999
+ - Fixed an Apollo cache bug by making the Bundle ID field `readonly` and fixing cache-related query issues.
3000
+
3001
+ ## [13.3.2] - 13-09-2023
3002
+
3003
+ ### Changed
3004
+
3005
+ - Simplified the condition evaluation function for global properties, improving readability and correctness.
3006
+
3007
+ ## [13.3.1] - 13-09-2023
3008
+
3009
+ ### Fixed
3010
+
3011
+ - Removed an unnecessary guard clause in the global property condition evaluation that was blocking valid property configurations.
3012
+
3013
+ ## [13.3.0] - 12-09-2023
3014
+
3015
+ ### Added
3016
+
3017
+ - Introduced the `FlowService` for managing step-by-step execution flows on workflows, enabling programmatic sequential step interactions.
3018
+
3019
+ ## [13.2.0] - 12-09-2023
3020
+
3021
+ ### Changed
3022
+
3023
+ - Internal dependency version bump.
3024
+
3025
+ ## [13.1.2] - 12-09-2023
3026
+
3027
+ ### Fixed
3028
+
3029
+ - Fixed global property state creation to include `aspects` in the response.
3030
+ - Added null checks for `state.aspects` in condition evaluation to prevent crashes with empty states.
3031
+
3032
+ ## [13.1.1] - 11-09-2023
3033
+
3034
+ ### Added
3035
+
3036
+ - Added `removeWorkflowExperienceByTransaction()` method to `Bundle` for removing experiences by transaction reference.
3037
+
3038
+ ### Fixed
3039
+
3040
+ - Fixed global property state value type to use correct stored type.
3041
+
3042
+ ## [13.1.0] - 08-09-2023
3043
+
3044
+ ### Added
3045
+
3046
+ - Added conditional global property support, allowing global properties to be shown/hidden based on the current global property state selections.
3047
+
3048
+ ## [13.0.0] - 07-09-2023
3049
+
3050
+ ### Changed
3051
+
3052
+ - Moved `GlobalPropertyConfiguration` ownership from `Bundle` to `ProductCollection`. Refactored the global property workflow to load configuration from the product collection context.
3053
+
3054
+ ## [12.13.0] - 07-09-2023
3055
+
3056
+ ### Changed
3057
+
3058
+ - Re-implemented animation name fetching from the server (re-applied after previous revert), optimizing workflow loading by fetching animation data as part of the main request.
3059
+
3060
+ ## [12.12.1] - 07-09-2023
3061
+
3062
+ ### Changed
3063
+
3064
+ - Reverted the animation name fetching changes from 12.12.0 due to issues.
3065
+
3066
+ ## [12.12.0] - 07-09-2023
3067
+
3068
+ ### Added
3069
+
3070
+ - Added fetching of animation names from the server to reduce the need for separate asset lookups for 3D model animations.
3071
+
3072
+ ## [12.11.4] - 06-09-2023
3073
+
3074
+ ### Added
3075
+
3076
+ - Product tag data (`productTags`) is now fetched from the server on product and bundle queries, making tag metadata available.
3077
+
3078
+ ## [12.11.3] - 06-09-2023
3079
+
3080
+ ### Changed
3081
+
3082
+ - Updated the Papyrus rendering engine dependency to the latest version.
3083
+
3084
+ ## [12.11.2] - 05-09-2023
3085
+
3086
+ ### Added
3087
+
3088
+ - Added `getText()` method to the `TextGlobalPropertyHandle` for reading the current text value of a text-type global property.
3089
+
3090
+ ## [12.11.1] - 01-09-2023
3091
+
3092
+ ### Fixed
3093
+
3094
+ - Improved `Bundle.finish()` to properly handle design creation results and map them to the correct workflow experiences.
883
3095
 
884
- ## [20.5.0] - 12-03-2024
3096
+ ## [12.11.0] - 29-08-2023
885
3097
 
886
3098
  ### Added
887
3099
 
888
- - `WorkflowManager.injectIntoPreviewService()` now has a second argument `refocusCamera`, a boolean which allows you to disable the automatic refocusing of the camera when the model is loaded. This requires `@spiffcommerce/preview@^5.7.0`.
3100
+ - Added text aspect support for global property configuration, enabling text-type global properties alongside color and option types.
889
3101
 
890
- ## [20.4.5] - 08-03-2024
3102
+ ## [12.10.9] - 28-08-2023
891
3103
 
892
3104
  ### Added
893
3105
 
894
- - `RenderableScene` objects will now contain a `workflowScene: WorkflowScene` field. This is only provided for backwards compatibility and is considered deprecated functionality.
3106
+ - Added shared step tracking to global property configuration, allowing multiple steps to share the same global property aspect.
895
3107
 
896
- ## [20.4.4] - 08-03-2024
3108
+ ## [12.10.8] - 28-08-2023
897
3109
 
898
3110
  ### Fixed
899
3111
 
900
- - Updating quantity via `WorkflowExperience.setQuantity()` will now correctly update on the server.
3112
+ - Fixed client authentication flow to correctly handle edge cases during bundle authentication, preventing auth failures.
901
3113
 
902
- ## [20.4.3] - 08-03-2024
3114
+ ## [12.10.7] - 28-08-2023
3115
+
3116
+ ### Fixed
3117
+
3118
+ - Shape step handles now correctly handle variant selection, matching the behavior of other step types (illustration, material, etc.).
3119
+
3120
+ ## [12.10.6] - 28-08-2023
3121
+
3122
+ ### Fixed
3123
+
3124
+ - Fixed a missing `return` statement in the global property handle filter function, which caused the filter to incorrectly return all steps.
3125
+
3126
+ ## [12.10.5] - 24-08-2023
903
3127
 
904
3128
  ### Changed
905
3129
 
906
- - `WorkflowExperience.setQuantity()` now returns a promise that resolves once the quantity has been updated on the server.
3130
+ - Customer details are now fetched as part of the bundle get request, reducing the need for a separate customer lookup.
3131
+
3132
+ ## [12.10.4] - 24-08-2023
3133
+
3134
+ ### Changed
3135
+
3136
+ - Disabled GraphQL caching for option service requests to ensure fresh option data is always loaded.
3137
+
3138
+ ## [12.10.3] - 24-08-2023
3139
+
3140
+ ### Changed
3141
+
3142
+ - Moved the `optionService` initialization out of the Bundle constructor to avoid issues with async operations during construction.
3143
+
3144
+ ## [12.10.2] - 24-08-2023
907
3145
 
908
- ## [20.4.0] - 08-03-2024
3146
+ ### Fixed
3147
+
3148
+ - Fixed global property handle initialization to correctly `await` the internal promise before accessing property data.
3149
+
3150
+ ## [12.10.1] - 23-08-2023
3151
+
3152
+ ### Fixed
3153
+
3154
+ - Added the missing entity ID field to the bundle query response.
3155
+
3156
+ ## [12.10.0] - 18-08-2023
909
3157
 
910
3158
  ### Added
911
3159
 
912
- - `Transaction` entities now have `quantity: number | undefined`.
913
- - New functions on `WorkflowExperience` for managing quantity:
914
- - `getQuantity()`: The amount that was, or will be, ordered of the underlying `Transaction`. This will default to `1` if the value is undefined. If you want to read the raw value, use `getWorkflowManager().getTransaction().quantity`.
915
- - `setQuantity(<number>)`: Updates the quantity value on the underlying `Transaction` entity. Must be >= 1.
916
- - New events functionality on `WorkflowExperience`. Currently the only event is `QuantityChanged`.
917
- - `addEventListener(<type>, <callback>)`: Registers a callback function to be called when the specified event is raised. The associated `WorkflowExperience` is passed as a parameter to the callback function.
918
- - `removeEventListener(<type>, <callback>)`: Removes a previously registered callback.
3160
+ - Added multi-model loading support, allowing `WorkflowManager` to inject multiple 3D models into the preview service simultaneously.
919
3161
 
920
- ## [20.3.0] - 07-03-2024
3162
+ ## [12.9.9] - 17-08-2023
3163
+
3164
+ ### Fixed
3165
+
3166
+ - Fixed global property values returning `false` instead of the actual stored value due to an incorrect truthy check.
3167
+
3168
+ ## [12.9.8] - 15-08-2023
921
3169
 
922
3170
  ### Added
923
3171
 
924
- - `CollectionProduct.getCurrentIntegration()`: returns the `IntegrationProductResource` associated with the product that is linked to the current Integration (resolved via the application key).
3172
+ - Additional integration product fields (`externalProductId`, `externalIntegrationId`, etc.) are now fetched in bundle and transaction queries.
925
3173
 
926
- ## [20.2.2] - 05-03-2024
3174
+ ## [12.9.7] - 15-08-2023
927
3175
 
928
3176
  ### Changed
929
3177
 
930
- - `WorkflowExperience.getStepById(<string>)` now internally caches the `StepHandle` objects that it creates. This resolves an issue with functional rendering systems that re-render when the object reference changes, where they would re-renderer whenever this function was called even if the object was identical.
3178
+ - Extended the `externalProductId` field to be included in additional integration product queries.
931
3179
 
932
- ## [20.2.1] - 29-02-2024
3180
+ ## [12.9.6] - 15-08-2023
933
3181
 
934
3182
  ### Changed
935
3183
 
936
- - The union type `GetWorkflowOptions` has some of its entries wrapped in another union. The types that will create a brand new `Transaction` are now nested under `GetNewWorkflowOptions`:
3184
+ - The `externalProductId` field is now fetched on integration products in the transaction query.
937
3185
 
938
- ```ts
939
- // Before
940
- export type GetWorkflowOptions =
941
- | GetWorkflowFromTransactionOptions
942
- | GetWorkflowFromIntegrationProductOptions
943
- | GetWorkflowFromExternalProductOptions;
3186
+ ## [12.9.5] - 14-08-2023
944
3187
 
945
- // After
946
- export type GetNewWorkflowOptions =
947
- | GetWorkflowFromIntegrationProductOptions
948
- | GetWorkflowFromExternalProductOptions;
3188
+ ### Changed
949
3189
 
950
- export type GetWorkflowOptions = GetWorkflowFromTransactionOptions | GetNewWorkflowOptions;
951
- ```
3190
+ - Removed client-level experience option tracking in favor of per-experience options, simplifying the API and reducing shared state.
952
3191
 
953
- ## [20.2.0] - 29-02-2024
3192
+ ## [12.9.4] - 14-08-2023
3193
+
3194
+ ### Fixed
3195
+
3196
+ - Simplified bundle workflow experience reloading by using a separate buffer, avoiding issues with concurrent modifications to the experience array.
3197
+
3198
+ ## [12.9.3] - 11-08-2023
3199
+
3200
+ ### Fixed
3201
+
3202
+ - Fixed `getWorkflowExperiences` to correctly return the promise from the async map operation.
3203
+
3204
+ ## [12.9.2] - 11-08-2023
3205
+
3206
+ ### Fixed
3207
+
3208
+ - Fixed GraphQL query type annotation for global property workflow IDs (changed `[String]!` to `[String!]!`).
3209
+
3210
+ ## [12.9.1] - 11-08-2023
3211
+
3212
+ ### Fixed
3213
+
3214
+ - Ensured workflow experiences in a bundle are reloaded by their index to maintain correct ordering.
3215
+
3216
+ ## [12.9.0] - 11-08-2023
954
3217
 
955
3218
  ### Added
956
3219
 
957
- - `SpiffCommerceClient.getIntegrationProduct(<options>)`: Fetches an `IntegrationProduct` object. Essentially a wrapper for the functions `getIntegrationProductById` and `getIntegrationProductFromExternalIds`. The options object type is as follows:
958
- ```ts
959
- {
960
- type: "integration";
961
- integrationProductId: string;
962
- } | {
963
- type: "external";
964
- externalIntegrationId: string;
965
- externalProductId: string;
966
- }
967
- ```
3220
+ - Added workflow experience sorting and ordering within bundles via a new GraphQL mutation for transaction order updates.
968
3221
 
969
- ## [20.1.0] - 23-02-2024
3222
+ ## [12.8.0] - 11-08-2023
970
3223
 
971
3224
  ### Added
972
3225
 
973
- - `IntegrationProduct.getAllWorkflows()`: Returns an array of `ProductWorkflow`, ordered by their internal `index` value (matches the order seen on the SpiffCommerce Hub).
3226
+ - Added `updateNameAndMetadata()` helper to `Bundle`.
3227
+ - Global property state is now automatically applied to new transactions when they are added to a bundle.
3228
+
3229
+ ## [12.7.1] - 11-08-2023
3230
+
3231
+ ### Fixed
3232
+
3233
+ - Improved option resolution for global property handles, fixing issues with variant loading and state management.
3234
+
3235
+ ## [12.7.0] - 11-08-2023
3236
+
3237
+ ### Added
3238
+
3239
+ - Added methods for setting values on global property state aspects, enabling programmatic updates to global properties.
3240
+
3241
+ ## [12.6.0] - 11-08-2023
3242
+
3243
+ ### Added
3244
+
3245
+ - Introduced the `GlobalPropertyStateManager` for creating and managing global property state on bundles.
3246
+
3247
+ ## [12.5.1] - 10-08-2023
974
3248
 
975
- ## [20.0.1] - 23-02-2024
3249
+ ### Added
3250
+
3251
+ - Added global step property configuration and handle system.
3252
+ - Product collections now fetch integration product data.
3253
+ - Added `GlobalPropertyConfiguration`, `GlobalPropertyHandle`, and `GlobalPropertyHandleService` classes.
3254
+
3255
+ ## [12.4.3] - 07-08-2023
976
3256
 
977
3257
  ### Changed
978
3258
 
979
- - `StepHandle.executeAnimations()` now logs a warning to the console when the associated `WorkflowManager` is not associated with a `ThreeDPreviewService`.
3259
+ - Removed all calls to `resetStore` on the Apollo client and switched to `no-cache` fetch policy, preventing GraphQL cache invalidation issues.
980
3260
 
981
- ## [20.0.0] - 15-02-2024
3261
+ ## [12.4.2] - 04-08-2023
982
3262
 
983
3263
  ### Added
984
3264
 
985
- - Additional configuration options for GraphQL on bundles.
986
- - A separate fetchProducts function on the ProductCollection interface.
3265
+ - Added `bundleOwnerId` field to the bundle query response.
3266
+
3267
+ ## [12.4.1] - 03-08-2023
3268
+
3269
+ ### Added
3270
+
3271
+ - Added `reloadTransactions()` method to `Bundle` for refreshing transaction data from the server.
987
3272
 
988
3273
  ### Changed
989
3274
 
990
- - Removed async on getProducts call.
3275
+ - Improved client-side experience loading.
991
3276
 
992
- ### Removed
3277
+ ## [12.4.0] - 03-08-2023
993
3278
 
994
- - Unused normalize.css file.
995
- - Identical links assigned in each translation file.
996
- - Duplicate index file for the english version.
3279
+ ### Added
3280
+
3281
+ - Introduced `ProductCollection` support with product listing and integration product queries on bundles.
3282
+
3283
+ ## [12.3.2] - 01-08-2023
3284
+
3285
+ ### Changed
3286
+
3287
+ - Updated the Papyrus rendering engine to include AR (augmented reality) support fields.
3288
+
3289
+ ## [12.3.1] - 01-08-2023
3290
+
3291
+ ### Added
3292
+
3293
+ - The `enableAR` field is now fetched from the workflow configuration, making AR availability status accessible.
3294
+
3295
+ ## [12.3.0] - 31-07-2023
3296
+
3297
+ ### Added
3298
+
3299
+ - Added `processExecutionId` tracking to design creation, enabling correlation of design creation requests with backend process tracking.
3300
+
3301
+ ## [12.2.0] - 28-07-2023
3302
+
3303
+ ### Added
3304
+
3305
+ - Added `getName()`, `setName()`, `getMetadata()`, and `setMetadata()` methods to `Bundle` for reading and updating bundle names and metadata.
3306
+
3307
+ ## [12.1.3] - 27-07-2023
3308
+
3309
+ ### Fixed
3310
+
3311
+ - Fixed missing `type` argument in the `bundleAddStakeholder` GraphQL mutation.
3312
+
3313
+ ## [12.1.2] - 27-07-2023
3314
+
3315
+ ### Changed
3316
+
3317
+ - Made the `configurationId` parameter optional in the `createBundle` GraphQL mutation, allowing bundles to be created without a pre-existing configuration.
3318
+
3319
+ ## [12.1.1] - 26-07-2023
3320
+
3321
+ ### Fixed
3322
+
3323
+ - Fixed the `GetCustomer` GraphQL query to use the correct field name.
3324
+
3325
+ ## [12.1.0] - 25-07-2023
3326
+
3327
+ ### Added
3328
+
3329
+ - Added temporary asset upload functionality via a new exported function, enabling file uploads outside of the standard step workflow.
3330
+
3331
+ ## [12.0.0] - 24-07-2023
3332
+
3333
+ ### Added
3334
+
3335
+ - Added `injectIntoPreviewService()` and `removeFromPreviewService()` methods to `WorkflowManager`.
3336
+ - Exposed the preview service instance via `getPreviewService()`.
3337
+
3338
+ ### Changed
3339
+
3340
+ - Updated the 3D preview service integration.
3341
+
3342
+ ## [11.5.0] - 19-07-2023
3343
+
3344
+ ### Added
3345
+
3346
+ - Added pricing calculation to bundles, with `getTotalSubunits()` on `Bundle` and `getTotalPriceSubunits()` on `WorkflowExperience` for computing total prices.
3347
+
3348
+ ## [11.4.0] - 13-07-2023
3349
+
3350
+ ### Added
3351
+
3352
+ - Added full stakeholder CRUD to bundles: `addStakeholder()`, `getAllStakeholders()`, and `updateStakeholders()` methods with new GraphQL mutations.
3353
+
3354
+ ## [11.3.0] - 13-07-2023
3355
+
3356
+ ### Changed
3357
+
3358
+ - Extended customer authentication to support bundles. Stakeholder functionality now operates across both transactions and bundles.
3359
+
3360
+ ## [11.2.0] - 12-07-2023
3361
+
3362
+ ### Added
3363
+
3364
+ - Introduced the `Bundle` class for managing collections of workflow experiences, with methods for creating bundles, adding/removing transactions, and managing the bundle lifecycle.
3365
+
3366
+ ## [11.1.2] - 12-07-2023
3367
+
3368
+ ### Fixed
3369
+
3370
+ - Fixed transaction owner ID not being loaded from local storage during authentication, causing authorization failures on reload.
3371
+
3372
+ ## [11.1.1] - 06-07-2023
3373
+
3374
+ ### Fixed
3375
+
3376
+ - Fixed broken panning behavior in the `TransformWrapper` React component by simplifying the mouse event handling logic.
3377
+
3378
+ ## [11.1.0] - 04-07-2023
3379
+
3380
+ ### Changed
3381
+
3382
+ - Updated authentication flow to properly handle token refresh and added new auth utility methods to the GraphQL server configuration.
3383
+
3384
+ ## [11.0.2] - 04-07-2023
3385
+
3386
+ ### Fixed
3387
+
3388
+ - Fixed a typo in the GraphQL mutation for adding transaction stakeholders (`customers` → `customer`).
3389
+
3390
+ ## [11.0.1] - 04-07-2023
3391
+
3392
+ ### Changed
3393
+
3394
+ - Expanded customer authentication with additional test coverage and authentication methods for transactions and bundles.
3395
+
3396
+ ## [11.0.0] - 04-07-2023
3397
+
3398
+ ### Changed
3399
+
3400
+ - Internal dependency version bump with breaking changes.
3401
+
3402
+ ## [10.3.1] - 30-06-2023
3403
+
3404
+ ### Added
3405
+
3406
+ - Added ordered state checking during transaction authentication, preventing users from authenticating against already-ordered transactions.
3407
+
3408
+ ## [10.3.0] - 29-06-2023
3409
+
3410
+ ### Added
3411
+
3412
+ - Introduced customer authentication functionality, enabling customer login/logout, code verification, and transaction-specific authentication via `SpiffCommerceClient`.
3413
+
3414
+ ## [10.2.0] - 26-06-2023
3415
+
3416
+ ### Changed
3417
+
3418
+ - Improved guidelines in the advanced editor with tweaks to guideline positioning and added test coverage for guideline interactions.
3419
+
3420
+ ## [10.1.8] - 25-06-2023
3421
+
3422
+ ### Fixed
3423
+
3424
+ - Fixed mouse tracking in `TransformWrapper` to use a ref instead of state for smoother panning interactions.
3425
+
3426
+ ## [10.1.6] - 14-06-2023
3427
+
3428
+ ### Changed
3429
+
3430
+ - Updated the Papyrus rendering engine dependency to the latest version.
3431
+
3432
+ ## [10.1.5] - 14-06-2023
3433
+
3434
+ ### Changed
3435
+
3436
+ - Added Pith as a build target dependency for correct bundling.
3437
+
3438
+ ## [10.1.4] - 14-06-2023
3439
+
3440
+ ### Changed
3441
+
3442
+ - Updated the Papyrus rendering engine dependency to the latest version.
3443
+
3444
+ ## [10.1.3] - 14-06-2023
3445
+
3446
+ ### Fixed
3447
+
3448
+ - Restored text fill fields on the client configuration that were accidentally removed.
3449
+
3450
+ ## [10.1.1] - 13-06-2023
3451
+
3452
+ ### Changed
3453
+
3454
+ - Removed `@swc/helpers` dependency and updated Papyrus rendering engine to latest version.
3455
+
3456
+ ## [10.1.0] - 13-06-2023
3457
+
3458
+ ### Changed
3459
+
3460
+ - Migrated the rendering engine from Canvg to Pith for improved SVG rendering performance and capability.
3461
+
3462
+ ## [10.0.15] - 09-06-2023
3463
+
3464
+ ### Fixed
3465
+
3466
+ - Fixed the delete key handler in the advanced editor to only remove elements from non-structured steps, preventing accidental deletion of required step elements.
3467
+
3468
+ ## [10.0.14] - 09-06-2023
3469
+
3470
+ ### Changed
3471
+
3472
+ - Internal build and packaging updates.