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