@useinsider/guido 3.18.2-beta.3eec9b0 → 3.18.2-beta.4d2b065
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/README.md +21 -23
- package/dist/@types/config/schemas.js +59 -51
- package/dist/components/Guido.vue.js +4 -4
- package/dist/components/Guido.vue2.js +55 -53
- package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +7 -7
- package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +53 -49
- package/dist/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.js +18 -0
- package/dist/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue2.js +25 -0
- package/dist/components/organisms/extensions/recommendation/RemoveStrategyModal.vue2.js +24 -22
- package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +28 -24
- package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.js +21 -0
- package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue2.js +46 -0
- package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.js +21 -0
- package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue2.js +46 -0
- package/dist/composables/useCustomInterfaceAppearance.js +46 -42
- package/dist/composables/useGuidoStateBridge.js +24 -29
- package/dist/composables/useLegacyStrategyConversion.js +61 -0
- package/dist/composables/useStripo.js +7 -7
- package/dist/enums/extensions/recommendationBlock.js +40 -31
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +77 -76
- package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +72 -28
- package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +45 -44
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +110 -46
- package/dist/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.js +42 -0
- package/dist/extensions/Blocks/Recommendation/utils/nodeConfigWriter.js +7 -7
- package/dist/guido.css +1 -1
- package/dist/library.js +13 -15
- package/dist/services/recommendationApi.js +46 -37
- package/dist/src/@types/config/schemas.d.ts +16 -0
- package/dist/src/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.d.ts +2 -0
- package/dist/src/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.d.ts +2 -0
- package/dist/src/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.d.ts +2 -0
- package/dist/src/composables/useConfig.d.ts +4 -0
- package/dist/src/composables/useGuidoStateBridge.d.ts +7 -11
- package/dist/src/composables/useLegacyStrategyConversion.d.ts +3 -0
- package/dist/src/enums/extensions/recommendationBlock.d.ts +5 -1
- package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +2 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +4 -0
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +70 -1
- package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.d.ts +32 -0
- package/dist/src/library.d.ts +0 -2
- package/dist/src/public/trackingIds.d.ts +2 -6
- package/dist/src/services/recommendationApi.d.ts +2 -1
- package/dist/src/stores/config.d.ts +322 -0
- package/dist/src/stores/editor.d.ts +0 -25
- package/dist/src/stores/guido-email-editor.d.ts +27 -27
- package/dist/src/stores/onboarding.d.ts +808 -10
- package/dist/static/assets/icons/filled-arrow-rising.svg.js +5 -0
- package/dist/static/assets/icons/line-info.svg.js +5 -0
- package/dist/static/styles/components/recommendation-strategy.css.js +70 -5
- package/dist/stores/config.js +74 -60
- package/dist/stores/editor.js +0 -4
- package/dist/stores/guido-email-editor.js +4 -0
- package/dist/stores/onboarding.js +46 -36
- package/package.json +1 -5
- package/dist/public/editorState.js +0 -4
- package/dist/src/public/editorState.d.ts +0 -14
|
@@ -50,6 +50,14 @@ export declare const IdentitySchema: v.ObjectSchema<{
|
|
|
50
50
|
readonly userId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, "userId is required">]>;
|
|
51
51
|
/** Optional variation ID for A/B testing */
|
|
52
52
|
readonly variationId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
53
|
+
/** Optional numeric campaign ID of the host campaign; absent for templates and modules */
|
|
54
|
+
readonly campaignId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
55
|
+
/**
|
|
56
|
+
* Optional numeric template-library id of the host template; absent for campaigns and
|
|
57
|
+
* modules. Distinct from `templateId`, which is the editor's document identity (a uuid /
|
|
58
|
+
* Stripo doc id) and is never an endpoint id.
|
|
59
|
+
*/
|
|
60
|
+
readonly templateLibraryId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
53
61
|
}, undefined>;
|
|
54
62
|
/**
|
|
55
63
|
* Partner configuration - organization and product context
|
|
@@ -625,6 +633,14 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
|
|
|
625
633
|
readonly userId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, "userId is required">]>;
|
|
626
634
|
/** Optional variation ID for A/B testing */
|
|
627
635
|
readonly variationId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
636
|
+
/** Optional numeric campaign ID of the host campaign; absent for templates and modules */
|
|
637
|
+
readonly campaignId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
638
|
+
/**
|
|
639
|
+
* Optional numeric template-library id of the host template; absent for campaigns and
|
|
640
|
+
* modules. Distinct from `templateId`, which is the editor's document identity (a uuid /
|
|
641
|
+
* Stripo doc id) and is never an endpoint id.
|
|
642
|
+
*/
|
|
643
|
+
readonly templateLibraryId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
628
644
|
}, undefined>;
|
|
629
645
|
/** Partner configuration (required) */
|
|
630
646
|
readonly partner: v.ObjectSchema<{
|
package/dist/src/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
|
2
|
+
export default _default;
|
package/dist/src/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
|
2
|
+
export default _default;
|
|
@@ -11,6 +11,8 @@ export declare const useConfig: () => {
|
|
|
11
11
|
templateId: string;
|
|
12
12
|
userId: string;
|
|
13
13
|
variationId?: string | undefined;
|
|
14
|
+
campaignId?: string | undefined;
|
|
15
|
+
templateLibraryId?: string | undefined;
|
|
14
16
|
};
|
|
15
17
|
partner: {
|
|
16
18
|
name: string;
|
|
@@ -146,6 +148,8 @@ export declare const useConfig: () => {
|
|
|
146
148
|
templateId: string;
|
|
147
149
|
userId: string;
|
|
148
150
|
variationId?: string | undefined;
|
|
151
|
+
campaignId?: string | undefined;
|
|
152
|
+
templateLibraryId?: string | undefined;
|
|
149
153
|
} | null>;
|
|
150
154
|
partner: import("vue").ComputedRef<{
|
|
151
155
|
name: string;
|
|
@@ -1,26 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Outbound bridge — publishes the current editor's html/css to the shared
|
|
3
|
-
* Pinia store `guidoEmailEditor
|
|
4
|
-
* time and
|
|
3
|
+
* Pinia store `guidoEmailEditor` so cortex-fe can read it at chat-stream
|
|
4
|
+
* submit time and forward it as `clientState.editor`. This is what enables
|
|
5
5
|
* sub-case 1.3 (refine an already-loaded template via the email-agent).
|
|
6
6
|
*
|
|
7
7
|
* The bridge writes on three triggers:
|
|
8
8
|
*
|
|
9
9
|
* 1. Stripo finishes initializing — first snapshot.
|
|
10
|
-
* 2.
|
|
11
|
-
*
|
|
10
|
+
* 2. Editor `hasChanges` flips to true — debounced 500 ms so a streaming
|
|
11
|
+
* Stripo edit doesn't thrash the store.
|
|
12
12
|
* 3. Editor `hasChanges` flips back to false (post-save / autosave) —
|
|
13
13
|
* immediate, since this is the canonical "saved" snapshot.
|
|
14
14
|
*
|
|
15
15
|
* `getTemplateData()` is a Stripo iframe call; it must not run before
|
|
16
16
|
* `isStripoInitialized` is true. The bridge guards against that.
|
|
17
17
|
*
|
|
18
|
-
*
|
|
19
|
-
* and
|
|
20
|
-
*
|
|
21
|
-
* Readers are not optional any more, so treat the publish timing as part of
|
|
22
|
-
* the contract: the store ships as `@useinsider/guido/editor-state`, and
|
|
23
|
-
* email-fe imports it to scan the live html for its Array of Objects lock.
|
|
24
|
-
* Weakening a trigger here silently breaks that lock in the consumer.
|
|
18
|
+
* If cortex-fe isn't loaded the store still gets written — that's fine;
|
|
19
|
+
* the store has zero overhead and any future reader will find consistent
|
|
20
|
+
* state. The bridge is a one-way pipe with no consumer dependency.
|
|
25
21
|
*/
|
|
26
22
|
export declare const useGuidoStateBridge: () => void;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import type { TextValueObject } from '@@/Types/generic';
|
|
2
|
-
import type { RecommendationFeedItem } from '@@/Types/recommendation';
|
|
2
|
+
import type { RecommendationFeedItem, RrsMigrationTarget } from '@@/Types/recommendation';
|
|
3
3
|
export declare const URLS: {
|
|
4
4
|
RECOMMENDATION_API_URL: string;
|
|
5
5
|
PRODUCT_ATTRIBUTES_PATH: string;
|
|
6
6
|
RECOMMENDATION_STRATEGIES_PATH: string;
|
|
7
7
|
RECOMMENDATION_STRATEGIES_PANEL_PATH: string;
|
|
8
|
+
NEWSLETTER_RECOMMENDATIONS_PATH: string;
|
|
9
|
+
MIGRATE_STRATEGIES_PATH: string;
|
|
10
|
+
TEMPLATE_MIGRATE_STRATEGIES_PATH: string;
|
|
8
11
|
};
|
|
12
|
+
export declare const MIGRATION_PATHS: Record<RrsMigrationTarget['scope'], string>;
|
|
9
13
|
export declare const QUERY_PARAMS: {
|
|
10
14
|
CLIENT_ID: string;
|
|
11
15
|
};
|
|
@@ -2,6 +2,8 @@ import { CommonControl } from '../../../common-control';
|
|
|
2
2
|
export declare const STRATEGY_CONTROL_ID = "recommendation-strategy-control";
|
|
3
3
|
export declare class StrategyControl extends CommonControl {
|
|
4
4
|
private store;
|
|
5
|
+
private onboardingStore;
|
|
6
|
+
private legacyConversion;
|
|
5
7
|
private storeUnsubscription;
|
|
6
8
|
private listeners;
|
|
7
9
|
private lastPaintedState;
|
|
@@ -88,6 +88,8 @@ export interface RegenerateWithStylesOptions extends Omit<RegenerateProductRowsO
|
|
|
88
88
|
products?: RecommendationProduct[];
|
|
89
89
|
/** Optional: pass layout directly to avoid stale DOM reads after setAttribute */
|
|
90
90
|
layout?: Orientation;
|
|
91
|
+
/** Applies the batch even when the rows are unchanged, for callers that staged their own edits. */
|
|
92
|
+
forceApply?: boolean;
|
|
91
93
|
}
|
|
92
94
|
/**
|
|
93
95
|
* Regenerates product rows while preserving user-applied styles, in a SINGLE commit.
|
|
@@ -151,6 +153,8 @@ export interface UpdateProductContentInPlaceOptions {
|
|
|
151
153
|
currentNode: ImmutableHtmlNode | null | undefined;
|
|
152
154
|
documentModifier: DocumentModifier;
|
|
153
155
|
products: RecommendationProduct[];
|
|
156
|
+
/** Applies the batch even when the cards are unchanged, for callers that staged their own edits. */
|
|
157
|
+
forceApply?: boolean;
|
|
154
158
|
}
|
|
155
159
|
/**
|
|
156
160
|
* Updates product content in-place without regenerating HTML structure.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Orientation, Languages, Currency, NumericSeparator, FiltersResponse, Filter, RecommendationCampaignUrlValue, RecommendationProduct, RrsStrategy } from '@@/Types/recommendation';
|
|
1
|
+
import type { Orientation, Languages, Currency, NumericSeparator, FiltersResponse, Filter, RecommendationCampaignUrlValue, RecommendationProduct, RrsMigrationPayload, RrsMigrationTarget, RrsStrategy } from '@@/Types/recommendation';
|
|
2
2
|
export interface PerBlockConfigs {
|
|
3
3
|
cardsInRow: number;
|
|
4
4
|
currencySettings: {
|
|
@@ -22,6 +22,7 @@ export interface PerBlockConfigs {
|
|
|
22
22
|
shuffleProducts: boolean;
|
|
23
23
|
strategy: string;
|
|
24
24
|
strategyId: string;
|
|
25
|
+
nodeConfigVersion: number;
|
|
25
26
|
textTrimming: boolean;
|
|
26
27
|
unresponsive: boolean;
|
|
27
28
|
size: string;
|
|
@@ -36,6 +37,7 @@ interface PerBlockState {
|
|
|
36
37
|
filterSelectionDrawerStatus: boolean;
|
|
37
38
|
assignStrategyDrawerStatus: boolean;
|
|
38
39
|
removeStrategyModalStatus: boolean;
|
|
40
|
+
legacyStrategyUpdatedModalStatus: boolean;
|
|
39
41
|
filterGroup: number;
|
|
40
42
|
/** Whether initial API data (filters, algorithms, products) has been fetched for this block */
|
|
41
43
|
isInitialized: boolean;
|
|
@@ -51,6 +53,7 @@ interface PerBlockState {
|
|
|
51
53
|
* same id skipped the re-sync and kept the defaults (SD-150347).
|
|
52
54
|
*/
|
|
53
55
|
syncedConfigFingerprint: string | null;
|
|
56
|
+
legacyConversionLoading: boolean;
|
|
54
57
|
}
|
|
55
58
|
/**
|
|
56
59
|
* Persisted-config subset used by `seedBlockUrlConfig` to reconstruct
|
|
@@ -213,6 +216,53 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
|
|
|
213
216
|
currentRecommendationId: number | null;
|
|
214
217
|
configVersion: number;
|
|
215
218
|
} & import("pinia").PiniaCustomStateProperties<StoreState>): boolean;
|
|
219
|
+
isLegacyStrategyBlock(): boolean;
|
|
220
|
+
legacyConversionLoading(state: {
|
|
221
|
+
recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
|
|
222
|
+
activePredictiveAlgorithms: number[];
|
|
223
|
+
languages: Languages;
|
|
224
|
+
currencyList: {
|
|
225
|
+
text: string;
|
|
226
|
+
value: string;
|
|
227
|
+
}[];
|
|
228
|
+
filterList: FiltersResponse;
|
|
229
|
+
strategies: {
|
|
230
|
+
[x: string]: unknown;
|
|
231
|
+
strategy_id: number;
|
|
232
|
+
name: string;
|
|
233
|
+
status: string;
|
|
234
|
+
suitable_channels: string;
|
|
235
|
+
size?: (number | string) | undefined;
|
|
236
|
+
}[];
|
|
237
|
+
strategiesLoading: boolean;
|
|
238
|
+
strategyUrlTemplates: Record<string, string>;
|
|
239
|
+
blockStates: Record<number, PerBlockState>;
|
|
240
|
+
currentRecommendationId: number | null;
|
|
241
|
+
configVersion: number;
|
|
242
|
+
} & import("pinia").PiniaCustomStateProperties<StoreState>): boolean;
|
|
243
|
+
legacyStrategyUpdatedModalStatus(state: {
|
|
244
|
+
recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
|
|
245
|
+
activePredictiveAlgorithms: number[];
|
|
246
|
+
languages: Languages;
|
|
247
|
+
currencyList: {
|
|
248
|
+
text: string;
|
|
249
|
+
value: string;
|
|
250
|
+
}[];
|
|
251
|
+
filterList: FiltersResponse;
|
|
252
|
+
strategies: {
|
|
253
|
+
[x: string]: unknown;
|
|
254
|
+
strategy_id: number;
|
|
255
|
+
name: string;
|
|
256
|
+
status: string;
|
|
257
|
+
suitable_channels: string;
|
|
258
|
+
size?: (number | string) | undefined;
|
|
259
|
+
}[];
|
|
260
|
+
strategiesLoading: boolean;
|
|
261
|
+
strategyUrlTemplates: Record<string, string>;
|
|
262
|
+
blockStates: Record<number, PerBlockState>;
|
|
263
|
+
currentRecommendationId: number | null;
|
|
264
|
+
configVersion: number;
|
|
265
|
+
} & import("pinia").PiniaCustomStateProperties<StoreState>): boolean;
|
|
216
266
|
assignedStrategy(state: {
|
|
217
267
|
recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
|
|
218
268
|
activePredictiveAlgorithms: number[];
|
|
@@ -442,11 +492,24 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
|
|
|
442
492
|
cancelFilterDrawer(): void;
|
|
443
493
|
openAssignStrategyDrawer(): void;
|
|
444
494
|
closeAssignStrategyDrawer(): void;
|
|
495
|
+
openLegacyStrategyUpdatedModal(): void;
|
|
496
|
+
closeLegacyStrategyUpdatedModal(): void;
|
|
445
497
|
openRemoveStrategyModal(): void;
|
|
446
498
|
closeRemoveStrategyModal(): void;
|
|
447
499
|
fetchStrategies(): Promise<void>;
|
|
448
500
|
resolveStrategyUrlTemplate(strategy: RrsStrategy, currency: string): Promise<string>;
|
|
449
501
|
assignStrategy(strategy: RrsStrategy): void;
|
|
502
|
+
convertLegacyStrategy(payload: RrsMigrationPayload, target?: RrsMigrationTarget): Promise<string>;
|
|
503
|
+
/**
|
|
504
|
+
* Undoes the config half of a conversion whose document write never landed, so the
|
|
505
|
+
* panel and the drawer fall back to "Legacy Strategy" instead of showing an assignment
|
|
506
|
+
* the document never received.
|
|
507
|
+
*/
|
|
508
|
+
revertLegacyConversion(blockId: number, previous: {
|
|
509
|
+
strategyId: string;
|
|
510
|
+
size: string;
|
|
511
|
+
nodeConfigVersion: number;
|
|
512
|
+
}): void;
|
|
450
513
|
removeStrategy(): void;
|
|
451
514
|
fetchRecommendationCreateData(): Promise<void>;
|
|
452
515
|
fetchRecommendationFilters(): Promise<void>;
|
|
@@ -464,6 +527,12 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
|
|
|
464
527
|
hasInvalidBlock(): boolean;
|
|
465
528
|
fetchRecommendationProducts(): Promise<void>;
|
|
466
529
|
_doFetchProducts(): Promise<void>;
|
|
530
|
+
/**
|
|
531
|
+
* Block-scoped counterpart of `fetchRecommendationProducts`, which only ever serves the
|
|
532
|
+
* selected block. The legacy conversion must refresh the products of the block that
|
|
533
|
+
* started it even after the user selected another one.
|
|
534
|
+
*/
|
|
535
|
+
fetchStrategyProductsForBlock(blockId: number): Promise<void>;
|
|
467
536
|
_doFetchStrategyProducts(blockId: number): Promise<void>;
|
|
468
537
|
_setBlockProducts(blockId: number, products: RecommendationProduct[], size: number): void;
|
|
469
538
|
}>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { RrsMigrationPayload, RrsMigrationTarget } from '@@/Types/recommendation';
|
|
2
|
+
/**
|
|
3
|
+
* A block authored before reusable strategies: it still carries a plain feed
|
|
4
|
+
* configuration (compiled into a feed URL string) instead of a strategy id.
|
|
5
|
+
* Blocks created under RRS stamp `CURRENT_CONFIG_VERSION`, so the version is
|
|
6
|
+
* what separates "never converted" from "not assigned yet".
|
|
7
|
+
*/
|
|
8
|
+
export declare function isLegacyStrategyConfig({ strategyId, nodeConfigVersion }: {
|
|
9
|
+
strategyId: string;
|
|
10
|
+
nodeConfigVersion: number;
|
|
11
|
+
}): boolean;
|
|
12
|
+
export declare function resolveMigrationTarget({ campaignId, templateLibraryId }: {
|
|
13
|
+
campaignId?: string;
|
|
14
|
+
templateLibraryId?: string;
|
|
15
|
+
}): RrsMigrationTarget;
|
|
16
|
+
interface MigrationInputs {
|
|
17
|
+
blockId: number;
|
|
18
|
+
url: string;
|
|
19
|
+
campaignId: string;
|
|
20
|
+
variationId: string;
|
|
21
|
+
strategy: string;
|
|
22
|
+
productIds: string[];
|
|
23
|
+
target: RrsMigrationTarget;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The server names and de-duplicates the strategy, so nothing here derives a name, and the
|
|
27
|
+
* filters travel inside `url` — the endpoint parses the feed URL's filter DSL itself. The two
|
|
28
|
+
* routes take different identity fields — the campaign one names from `campaignId`/`variationId`
|
|
29
|
+
* (0 for modules, which carry no numeric campaign), the template one from `templateId`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildLegacyMigrationPayload({ blockId, url, campaignId, variationId, strategy, productIds, target, }: MigrationInputs): RrsMigrationPayload;
|
|
32
|
+
export {};
|
package/dist/src/library.d.ts
CHANGED
|
@@ -2,7 +2,5 @@ export { default as Guido } from './components/Guido.vue';
|
|
|
2
2
|
export type { GuidoConfig, GuidoConfigInput, IdentityConfig, PartnerConfig, TemplateConfig, TemplateMigrationConfig, LegacyRecommendationConfig, EditorConfig, UIConfig, FeaturesConfig, BlocksConfig, CompilerConfig, DynamicContent, EmailHeader, DefaultBlockType, CustomBlockType, ValidationResult, ValidationError, } from './@types/config';
|
|
3
3
|
export { validateConfig, parseConfig, parseConfigSafe, isValidConfig, getValidationErrors, MessageType, ProductType, } from './@types/config';
|
|
4
4
|
export { assignTrackingIds, readTrackFloor, readTrackSeq } from './public/trackingIds';
|
|
5
|
-
export { useGuidoEmailEditorStore } from './public/editorState';
|
|
6
|
-
export type { GuidoEmailEditorState } from './public/editorState';
|
|
7
5
|
export type { StripoEventType } from './@types/events';
|
|
8
6
|
export type { PositionData, DynamicContentEvent, MergeTagClickEvent, MergeTag, BaseDynamicContent, DynamicContentNode, DynamicContentList, TooltipOptions, TextValueObject, L10n, } from './@types/generic';
|
|
@@ -4,10 +4,6 @@
|
|
|
4
4
|
* Importing from here pulls in nothing else, so the editor never enters a
|
|
5
5
|
* consumer's module graph. Re-export surface only: this is the contract,
|
|
6
6
|
* `utils/linkTrackingIds` is the implementation and stays free to move.
|
|
7
|
-
*
|
|
8
|
-
* Relative, not the `@@/Utils/` alias: vue-tsc copies the specifier into the emitted
|
|
9
|
-
* .d.ts verbatim, and a consumer's TypeScript cannot resolve our alias table. A relative
|
|
10
|
-
* path resolves against dist/src/, so the published types actually load.
|
|
11
7
|
*/
|
|
12
|
-
export { assignTrackingIds, readTrackFloor, readTrackSeq, TRACK_ID_ATTRIBUTE, TRACK_SEQ_ATTRIBUTE, } from '
|
|
13
|
-
export type { TrackingIdResult } from '
|
|
8
|
+
export { assignTrackingIds, readTrackFloor, readTrackSeq, TRACK_ID_ATTRIBUTE, TRACK_SEQ_ATTRIBUTE, } from '@@/Utils/linkTrackingIds';
|
|
9
|
+
export type { TrackingIdResult } from '@@/Utils/linkTrackingIds';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { InitialResponse, FiltersResponse, RecommendationProduct, RecommendationProductsParams, RrsEndpointGenerateResponse, RrsStrategy } from '@@/Types/recommendation';
|
|
1
|
+
import type { InitialResponse, FiltersResponse, RecommendationProduct, RecommendationProductsParams, RrsEndpointGenerateResponse, RrsMigrationPayload, RrsMigrationTarget, RrsStrategy } from '@@/Types/recommendation';
|
|
2
2
|
export declare const useRecommendationApi: () => {
|
|
3
3
|
fetchRecommendationCreateData: () => Promise<InitialResponse>;
|
|
4
4
|
fetchRecommendationFilters: () => Promise<FiltersResponse>;
|
|
@@ -6,4 +6,5 @@ export declare const useRecommendationApi: () => {
|
|
|
6
6
|
fetchRecommendationProductsByUrl: (url: string) => Promise<RecommendationProduct[]>;
|
|
7
7
|
fetchRecommendationStrategies: () => Promise<RrsStrategy[]>;
|
|
8
8
|
generateStrategyEndpoint: (strategy: RrsStrategy, currency: string) => Promise<RrsEndpointGenerateResponse | null>;
|
|
9
|
+
migrateLegacyStrategy: (payload: RrsMigrationPayload, target?: RrsMigrationTarget) => Promise<string>;
|
|
9
10
|
};
|