@spiffcommerce/core 32.4.0-beta.dad6aedc-3d19-5bea-a12f-2d9419c4855b → 32.4.0-beta.edcb9eda-3903-5d8f-8a5c-04b7a8a007f3
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 +0 -13
- package/dist/index.d.ts +22 -60
- package/dist/index.js +200 -305
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3677 -3817
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
@@ -14,19 +14,6 @@ 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
|
-
## [33.0.0] - 14-10-2025
|
18
|
-
|
19
|
-
## Changed
|
20
|
-
|
21
|
-
- Updated `WorkflowExperience` to store `transaction`, `product`, `profanityList`, and `workflow` as direct properties, initialized in the constructor for improved encapsulation and performance.
|
22
|
-
|
23
|
-
## Added
|
24
|
-
|
25
|
-
- Added new methods to `WorkflowExperience`: `getProduct()`, `getProfanityList()`, `setProduct(integrationProductId: string)`, `getTransaction()`, `getWorkflow()`, and `setWorkflow(workflow: Workflow)` for easier access and mutation of core experience data.
|
26
|
-
- Introduced `getIntegrationProductIds()` and `addIntegrationProductId(id: string)` methods to `Bundle` and `BundleImpl` for tracking associated integration product IDs.
|
27
|
-
- Added GraphQL mutation for updating a transaction's integration product, enabling backend synchronization of integration product changes.
|
28
|
-
- Added `getState()` method to `BundleStateManager` for easier external access to the current bundle state.
|
29
|
-
|
30
17
|
## [32.4.0] - 16-10-2025
|
31
18
|
|
32
19
|
## Added
|
package/dist/index.d.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { FunctionComponent, ReactNode } from 'preact/compat';
|
2
2
|
import * as _apollo_client_core from '@apollo/client/core';
|
3
3
|
import { OperationVariables, QueryOptions, ApolloQueryResult, DefaultContext, MutationOptions, FetchResult, ApolloClient } from '@apollo/client/core';
|
4
|
-
import { RenderableContextService, RenderableContext,
|
4
|
+
import { RenderableContextService, RenderableContext, ThreeDPreviewService, ModelContainer } from '@spiffcommerce/preview';
|
5
5
|
import * as lodash from 'lodash';
|
6
6
|
import { CompleteQuoteMessage, ThemeInstallConfigurationGraphQl, ConversionConfiguration } from '@spiffcommerce/theme-bridge';
|
7
7
|
export { ConversionConfiguration, ConversionData, ConversionDataType, ConversionLocation } from '@spiffcommerce/theme-bridge';
|
@@ -1049,10 +1049,16 @@ interface Scene {
|
|
1049
1049
|
* State related to a workflow experience.
|
1050
1050
|
*/
|
1051
1051
|
interface ExperienceOptions {
|
1052
|
+
product: Product;
|
1052
1053
|
transaction: Transaction;
|
1053
1054
|
workflow?: Workflow;
|
1055
|
+
/**
|
1056
|
+
* @deprecated favor inject / eject functions.
|
1057
|
+
*/
|
1058
|
+
previewService?: ThreeDPreviewService;
|
1054
1059
|
modelContainer?: ModelContainer;
|
1055
1060
|
renderableContextService?: LayoutPreviewService;
|
1061
|
+
layouts: ILayout[];
|
1056
1062
|
reloadedState?: LayoutsState;
|
1057
1063
|
/**
|
1058
1064
|
* When true the experience is intended to be immutable.
|
@@ -1088,10 +1094,6 @@ interface ExperienceOptions {
|
|
1088
1094
|
* should get an instance of this class from a Client you have constructed previously.
|
1089
1095
|
*/
|
1090
1096
|
interface WorkflowExperience {
|
1091
|
-
/**
|
1092
|
-
* Get the current transaction for this experience.
|
1093
|
-
*/
|
1094
|
-
getTransaction(): Transaction;
|
1095
1097
|
/**
|
1096
1098
|
* Get the bundle this experience is part of. May be undefined.
|
1097
1099
|
*/
|
@@ -1100,28 +1102,6 @@ interface WorkflowExperience {
|
|
1100
1102
|
* Set the bundle this experience is part of. Can be cleared using undefined.
|
1101
1103
|
*/
|
1102
1104
|
setBundle(bundle: Bundle$1 | undefined): any;
|
1103
|
-
/**
|
1104
|
-
* Get the current product for this experience. May be undefined.
|
1105
|
-
*/
|
1106
|
-
getProduct(): Product | undefined;
|
1107
|
-
/**
|
1108
|
-
* Get the current profanity list for this experience. May be empty.
|
1109
|
-
*/
|
1110
|
-
getProfanityList(): string[];
|
1111
|
-
/**
|
1112
|
-
* Set the current product for this experience.
|
1113
|
-
* @param product The new product to set.
|
1114
|
-
*/
|
1115
|
-
setProduct(integrationProductId: string): Promise<void>;
|
1116
|
-
/**
|
1117
|
-
* Get the current workflow for this experience. May be undefined.
|
1118
|
-
*/
|
1119
|
-
getWorkflow(): Workflow | undefined;
|
1120
|
-
/**
|
1121
|
-
* Set the current workflow for this experience.
|
1122
|
-
* @param workflow The new workflow to set.
|
1123
|
-
*/
|
1124
|
-
setWorkflow(workflow: Workflow): Promise<void>;
|
1125
1105
|
/**
|
1126
1106
|
* Returns the client that was responsible for spawning this experience.
|
1127
1107
|
*/
|
@@ -1310,7 +1290,7 @@ declare enum WorkflowExperienceEventType {
|
|
1310
1290
|
}
|
1311
1291
|
declare class WorkflowExperienceImpl implements WorkflowExperience {
|
1312
1292
|
readonly client: SpiffCommerceClient;
|
1313
|
-
readonly
|
1293
|
+
readonly commandContext: CommandContext;
|
1314
1294
|
readonly graphQlClient: GraphQlClientFunc;
|
1315
1295
|
readonly workflowManager: WorkflowManager;
|
1316
1296
|
readonly isReadOnly: boolean;
|
@@ -1319,19 +1299,11 @@ declare class WorkflowExperienceImpl implements WorkflowExperience {
|
|
1319
1299
|
* Bundle this experience has been added to.
|
1320
1300
|
*/
|
1321
1301
|
private bundle?;
|
1322
|
-
private profanityList;
|
1323
|
-
private workflow?;
|
1324
1302
|
private currentPriceBreak;
|
1325
1303
|
private renderableScenes;
|
1326
1304
|
private renderableSceneCallbacks;
|
1327
1305
|
private eventCallbacks;
|
1328
1306
|
constructor(client: SpiffCommerceClient, experienceOptions: ExperienceOptions);
|
1329
|
-
getTransaction(): Transaction;
|
1330
|
-
getProduct(): Product | undefined;
|
1331
|
-
getProfanityList(): string[];
|
1332
|
-
setProduct(integrationProductId: string): Promise<void>;
|
1333
|
-
getWorkflow(): Workflow | undefined;
|
1334
|
-
setWorkflow(workflow: Workflow): Promise<void>;
|
1335
1307
|
attachAddress(streetAddress?: string, apartment?: string, city?: string, country?: string, state?: string, postCode?: string): Promise<void>;
|
1336
1308
|
attachOrganization(name: string): Promise<void>;
|
1337
1309
|
getBundle(): Bundle$1 | undefined;
|
@@ -1583,6 +1555,7 @@ interface GlobalPropertyStateManager {
|
|
1583
1555
|
setBundleOptions(bundleOptions?: BundleOptions): void;
|
1584
1556
|
getBundleOptions(): BundleOptions | undefined;
|
1585
1557
|
setConfiguration(configuration: GlobalPropertyConfiguration | undefined): void;
|
1558
|
+
clearAspects(names: string[]): Promise<void>;
|
1586
1559
|
}
|
1587
1560
|
interface BundleOptions {
|
1588
1561
|
additionalHeaders?: {
|
@@ -1812,9 +1785,6 @@ declare class Transform {
|
|
1812
1785
|
}
|
1813
1786
|
declare const getProductCollections: (ids: string[]) => Promise<ProductCollection[] | undefined>;
|
1814
1787
|
|
1815
|
-
interface BundleIntegrationProductsAddedEventData {
|
1816
|
-
integrationProductIds: string[];
|
1817
|
-
}
|
1818
1788
|
interface ConditionalGlobalPropertiesChangedEventData {
|
1819
1789
|
globalProperties: GlobalPropertyHandle[];
|
1820
1790
|
}
|
@@ -1832,7 +1802,6 @@ interface WorkflowExperienceAddedEventData {
|
|
1832
1802
|
interface WorkflowExperienceRemovedEventData extends WorkflowExperienceAddedEventData {
|
1833
1803
|
}
|
1834
1804
|
type BundleEventMap = {
|
1835
|
-
"bundle-integration-products-added": BundleIntegrationProductsAddedEventData;
|
1836
1805
|
"conditional-global-properties-changed": ConditionalGlobalPropertiesChangedEventData;
|
1837
1806
|
"global-properties-mandatory-changed": GlobalPropertiesMandatoryChangedEventData;
|
1838
1807
|
"workflow-experience-hover-enter": WorkflowExperienceHoverEventData;
|
@@ -1841,7 +1810,7 @@ type BundleEventMap = {
|
|
1841
1810
|
"workflow-experience-removed": WorkflowExperienceRemovedEventData;
|
1842
1811
|
};
|
1843
1812
|
type BundleEventType = keyof BundleEventMap;
|
1844
|
-
type BundleEventData =
|
1813
|
+
type BundleEventData = WorkflowExperienceHoverEventData | ConditionalGlobalPropertiesChangedEventData | WorkflowExperienceAddedEventData;
|
1845
1814
|
type BundleEvent<K extends BundleEventType = BundleEventType> = BundleEventMap[K];
|
1846
1815
|
|
1847
1816
|
/**
|
@@ -2085,8 +2054,6 @@ interface Bundle$1 {
|
|
2085
2054
|
generateQuoteId(): Promise<string>;
|
2086
2055
|
getQuoteCompleteMessage(): CompleteQuoteMessage;
|
2087
2056
|
applyGlobalPropertyState(state: GlobalPropertyState): Promise<void>;
|
2088
|
-
getIntegrationProductIds(): undefined | string[];
|
2089
|
-
addIntegrationProductId(id: string): void;
|
2090
2057
|
}
|
2091
2058
|
|
2092
2059
|
/**
|
@@ -2391,32 +2358,29 @@ interface GetWorkflowFromTransactionOptions extends GetWorkflowOptionsBase {
|
|
2391
2358
|
workflowState?: string;
|
2392
2359
|
type: "transaction";
|
2393
2360
|
}
|
2394
|
-
interface
|
2361
|
+
interface GetNewWorkflowOptionsBase extends GetWorkflowOptionsBase {
|
2395
2362
|
/** A name for the new transaction. */
|
2396
2363
|
designName?: string;
|
2397
2364
|
/** The workflow to load. */
|
2398
|
-
workflowId
|
2365
|
+
workflowId: string;
|
2399
2366
|
/** An existing workflow state, if available. */
|
2400
2367
|
workflowState?: string;
|
2401
2368
|
}
|
2402
|
-
interface
|
2403
|
-
type: "blank";
|
2404
|
-
}
|
2405
|
-
interface GetWorkflowExperienceFromIntegrationProductOptions extends GetNewWorkflowExperienceOptionsBase {
|
2369
|
+
interface GetWorkflowFromIntegrationProductOptions extends GetNewWorkflowOptionsBase {
|
2406
2370
|
integrationProductId: string;
|
2407
2371
|
quantity?: number;
|
2408
2372
|
recipient?: any;
|
2409
2373
|
type: "integration";
|
2410
2374
|
}
|
2411
|
-
interface
|
2375
|
+
interface GetWorkflowFromExternalProductOptions extends GetNewWorkflowOptionsBase {
|
2412
2376
|
/** The external ID associated with an integration. */
|
2413
2377
|
externalIntegrationId: string;
|
2414
2378
|
/** The ID of the product from the external system. */
|
2415
2379
|
externalProductId: string;
|
2416
2380
|
type: "external";
|
2417
2381
|
}
|
2418
|
-
type
|
2419
|
-
type GetWorkflowOptions = GetWorkflowFromTransactionOptions |
|
2382
|
+
type GetNewWorkflowOptions = GetWorkflowFromIntegrationProductOptions | GetWorkflowFromExternalProductOptions;
|
2383
|
+
type GetWorkflowOptions = GetWorkflowFromTransactionOptions | GetNewWorkflowOptions;
|
2420
2384
|
interface ClientConfiguration {
|
2421
2385
|
hubUrl: string;
|
2422
2386
|
serverUrl: string;
|
@@ -2696,6 +2660,7 @@ interface WorkflowManager {
|
|
2696
2660
|
getAllLayoutData: () => LayoutState[];
|
2697
2661
|
getLayoutPreviewService: () => LayoutPreviewService | undefined;
|
2698
2662
|
getPreviewService: () => ThreeDPreviewService | undefined;
|
2663
|
+
getProfanities: () => string[];
|
2699
2664
|
getRegionElements: (stepName: string) => RegionElement[];
|
2700
2665
|
getSerializedStep: (stepName: string, serializedSteps: SerializableStep[]) => SerializableStep | undefined;
|
2701
2666
|
getStepSpecificServices: (stepName: string) => StepSpecificServices | undefined;
|
@@ -2703,22 +2668,19 @@ interface WorkflowManager {
|
|
2703
2668
|
getMetadata: (stepName: string) => StepMetadata | undefined;
|
2704
2669
|
getWorkflowMetadata: () => WorkflowMetadata;
|
2705
2670
|
getInformationResults(): InformationResult[];
|
2671
|
+
getTransaction: () => Transaction;
|
2706
2672
|
getTransactionCustomer: () => Customer | undefined;
|
2707
2673
|
setTransactionCustomer: (customer: Customer) => void;
|
2708
|
-
/**
|
2709
|
-
* Sets the current workflow for this experience.
|
2710
|
-
* @param workflow The new workflow to set.
|
2711
|
-
* @returns A promise that resolves when the workflow has been set.
|
2712
|
-
*/
|
2713
|
-
setWorkflow: (workflow: Workflow) => Promise<void>;
|
2714
2674
|
/**
|
2715
2675
|
* @deprecated Use setTransactionCustomer instead.
|
2716
2676
|
*/
|
2717
2677
|
setTransactionCustomerDetails: (details: {
|
2718
2678
|
email: string;
|
2719
2679
|
}) => void;
|
2680
|
+
getWorkflow: () => Workflow;
|
2720
2681
|
getWorkflowSelections: () => WorkflowSelections;
|
2721
2682
|
getStepSelections: () => StepSelections;
|
2683
|
+
getProduct: () => Product;
|
2722
2684
|
/**
|
2723
2685
|
* A promise resolving when the initial state of the workflow has completed loading.
|
2724
2686
|
*/
|
@@ -5217,7 +5179,6 @@ declare class MockWorkflowManager implements WorkflowManager {
|
|
5217
5179
|
getWorkflowExperience(): WorkflowExperience;
|
5218
5180
|
setClient(client: SpiffCommerceClient): void;
|
5219
5181
|
getInitializationPromise(): Promise<void>;
|
5220
|
-
setWorkflow: (workflow: Workflow) => Promise<void>;
|
5221
5182
|
getProduct: () => Product;
|
5222
5183
|
isInitialized(): boolean;
|
5223
5184
|
getCommandContext: () => CommandContext;
|
@@ -5248,6 +5209,7 @@ declare class MockWorkflowManager implements WorkflowManager {
|
|
5248
5209
|
getPreviewService(): undefined;
|
5249
5210
|
setModelContainer: (container: any) => void;
|
5250
5211
|
getModelContainer(): undefined;
|
5212
|
+
getProfanities(): never[];
|
5251
5213
|
getRegionElements(_stepName: string): never[];
|
5252
5214
|
getSerializedStep(_stepName: string, _serializedSteps: SerializableStep[]): undefined;
|
5253
5215
|
getStepSpecificServices(_stepName: string): undefined;
|
@@ -6073,4 +6035,4 @@ declare const overrideWorkflowExperienceRecipientAddress: (workflowExperience: W
|
|
6073
6035
|
*/
|
6074
6036
|
declare const getGlobalPropertyStateForBundle: (bundleId: string) => Promise<GlobalPropertyState | undefined>;
|
6075
6037
|
|
6076
|
-
export { AddonHandle, type AddressComponent, type AddressValidationJob, AddressValidationJobStatus, type AddressValidationResult, AddressValidationResultConfirmationLevel, AddressValidationStatus, type Animatable, type AnyStepData, ArrayInput, AspectType, type Asset, type AssetConfiguration, AssetNotFoundError, type AssetObjectVersion, AssetType, BringForwardCommand, BringToBackCommand, BringToFrontCommand, type Bundle$1 as Bundle, BundleDesignCreationCartAddMode, type BundleDesignCreationMessage, type BundleEvent, type BundleEventData, type BundleEventType, type Bundle as BundleRaw, type BundleStakeholder, CanvasCommand, CollectionProduct, type ColorDefinition, type ColorOption, ColorOptionGlobalPropertyHandle, type ColorProfileProps, CommandContext, type CommandState, type Condition, type ConditionalGlobalPropertiesChangedEventData, CreateElementCommand, CreateLayoutCommand, CurrencyContext, CurrencyService, type Customer, type CustomerDetailsInput, DeleteElementCommand, type DesignCreationMessage, type DesignCreationProgressUpdate, type DesignInputStep, type DigitalContentStepData, DigitalContentStepHandle, type EditedSteps, type ExportedStepData, type ExportedStepDataProperty, type ExportedStepDataPropertyType, FileUploadGlobalPropertyHandle, FlowExecutionNodeResult, FlowExecutionResult, FlowService, FontAlignmentCommand, FontColorCommand, FontSizeCommand, FontSourceCommand, type FrameElement, FrameService, FrameStep, type FrameStepData, FrameStepHandle, type FrameThresholdSettings, type
|
6038
|
+
export { AddonHandle, type AddressComponent, type AddressValidationJob, AddressValidationJobStatus, type AddressValidationResult, AddressValidationResultConfirmationLevel, AddressValidationStatus, type Animatable, type AnyStepData, ArrayInput, AspectType, type Asset, type AssetConfiguration, AssetNotFoundError, type AssetObjectVersion, AssetType, BringForwardCommand, BringToBackCommand, BringToFrontCommand, type Bundle$1 as Bundle, BundleDesignCreationCartAddMode, type BundleDesignCreationMessage, type BundleEvent, type BundleEventData, type BundleEventType, type Bundle as BundleRaw, type BundleStakeholder, CanvasCommand, CollectionProduct, type ColorDefinition, type ColorOption, ColorOptionGlobalPropertyHandle, type ColorProfileProps, CommandContext, type CommandState, type Condition, type ConditionalGlobalPropertiesChangedEventData, CreateElementCommand, CreateLayoutCommand, CurrencyContext, CurrencyService, type Customer, type CustomerDetailsInput, DeleteElementCommand, type DesignCreationMessage, type DesignCreationProgressUpdate, type DesignInputStep, type DigitalContentStepData, DigitalContentStepHandle, type EditedSteps, type ExportedStepData, type ExportedStepDataProperty, type ExportedStepDataPropertyType, FileUploadGlobalPropertyHandle, FlowExecutionNodeResult, FlowExecutionResult, FlowService, FontAlignmentCommand, FontColorCommand, FontSizeCommand, FontSourceCommand, type FrameElement, FrameService, FrameStep, type FrameStepData, FrameStepHandle, type FrameThresholdSettings, type GetNewWorkflowOptions, type GetWorkflowOptions, type GlobalPropertiesMandatoryChangedEventData, type GlobalPropertyConfiguration, GlobalPropertyHandle, GroupCommand, type ILayout, type IllustrationElement, type IllustrationStepData, IllustrationStepHandle, type ImageElement, InformationMessageType, type InformationResult, type InformationStepData, InformationStepHandle, type Integration, type IntegrationOptionResource, IntegrationProduct, IntegrationType, type LayoutComponentConfiguration, type LayoutData, type LayoutElement, LayoutElementFactory, LayoutElementType, LayoutNotFoundError, LayoutRenderingPurpose, type LayoutState, type LayoutsState, type MandatorySteps, MaterialEffectMode, type MaterialStepData, MaterialStepHandle, MisconfigurationError, MockWorkflowManager, type ModelStepData, ModelStepHandle, type ModuleStepData, ModuleStepHandle, MoveCommand, NodeType, ObjectInput, ObjectInputType, OptionGlobalPropertyHandle, OptionNotFoundError, type OptionResource, type Order, type OrderItem, type PapyrusComponent, ParseError, type PictureStepData, PictureStepHandle, type Placeable, type PmsSearchResult, type Point, type Product, ProductCameraRig, ProductCollection, ProductCollectionProductSortKey, ProductWorkflow$1 as ProductWorkflow, promiseCache as PromiseCache, PromiseQueue, type QuestionStepData, QuestionStepHandle, QueueablePromise, type Recipient, type Region, type RegionElement, type RenderableScene, ResizeCommand, ResourceNotFoundError, RotateCommand, type SavedDesign, ScaleAxis, type SelectionStorage, SendBackwardsCommand, type ShapeStepData, ShapeStepHandle, type ShareAction, ShareActionType, type SilentIllustrationStepData, SpiffCommerceClient, type Stakeholder, StakeholderType, type StateMutationFunc, type Step, type StepAspect, StepAspectType, type StepElements, type StepGroup, StepHandle, type StepStorage, StepType, TextAlgorithm, TextChangeCommand, type TextChangeResult, TextGlobalPropertyHandle, TextInput, type TextStepData, TextStepHandle, type TextStepStorage, type TextboxElement, type Theme, type ToastCallback, type Transaction, Transform, TransformCollection$1 as TransformCollection, UnhandledBehaviorError, UnitOfMeasurement, UpdateImageSourceCommand, Variant, type VariantResource, type Vector3, type Workflow, type WorkflowExperience, WorkflowExperienceEventType, type WorkflowExperienceHoverEventData, WorkflowExperienceImpl, type WorkflowManager, type WorkflowMetadata, type WorkflowPanel, type WorkflowScene, type WorkflowSelections, type WorkflowStorage, assetService, browserColorToHex, cmPerPixel, createDesign, currentDirection, dataUrlFromExternalUrl, deleteBundle, designService, determineCorrectFontSizeAndLines, digitalContentStepService, domParser, duplicateBundle, duplicateTransaction, fetchAsString, findAngle, findElement, findPmsColors, frameDataCache, frameStepService, generate, generateCommands, generateSVGWithUnknownColors, generateStateFromDesignInputSteps, getAddressValidationJobs, getAttributesFromArrayBuffer, getAxisAlignedBoundingBox, getBoundedOffsets, getBundleThemeConfiguration, getCustomer, getCustomerBundles, getElementVertices, getFrameData, getGlobalPropertyStateForBundle, getIntegration, getNEPoint, getNWPoint, getOrderedTransactions, getOverrideThemeConfiguration, getPointOfRotation, getProductCollections, getSEPoint, getSvgElement, getTemplateBundles, getTemplateTransactions, getTransaction, getTransactionThemeConfiguration, getTransactionsForBundle, getTrueCoordinates, getUnorderedTransactions, getValidationJobsForWorkflowExperiences, getWorkflow, getWorkflows, graphQlManager, illustrationStepService, isCloseToValue, loadFont, matchHexToPms, materialStepService, metafieldManager, mmPerPixel, modelStepService, modifySVGColors, moduleStepService, nameBundle, nameTransaction, optionService, outlineFontsInSvg, overrideWorkflowExperienceRecipientAddress, patternImageDataCache, persistenceService, pictureStepService, pmsToRgb, questionStepService, registerFetchImplementation, registerWindowImplementation, rehydrateSerializedLayout, rgbToPms, rotateAroundPoint, sanitizeSvgTree, setBearerAuthenticationToken, setCanvasModule, shapeStepService, shortenUrl, spiffCoreConfiguration, stepAspectValuesToDesignInputSteps, svgColorValueToDefinition, svgStringDimensions, svgToDataUrl, textStepService, toast, validateWorkflowExperienceRecipient, validateWorkflowExperienceRecipients, xmlSerializer };
|