@spiffcommerce/core 37.0.2 → 37.0.3-beta.1ee4ce71-daef-5565-9cc3-52a6a366113c

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