@salesforce/storefront-next-runtime 0.3.1 → 0.4.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +82 -0
  2. package/dist/DesignComponent.js +37 -12
  3. package/dist/DesignComponent.js.map +1 -1
  4. package/dist/DesignContext.js +47 -2
  5. package/dist/DesignContext.js.map +1 -1
  6. package/dist/DesignFrame.js +1 -1
  7. package/dist/DesignRegion.js +1 -1
  8. package/dist/config.d.ts +4 -4
  9. package/dist/custom-global-preferences.d.ts +20 -0
  10. package/dist/custom-global-preferences.d.ts.map +1 -0
  11. package/dist/custom-global-preferences.js +28 -0
  12. package/dist/custom-global-preferences.js.map +1 -0
  13. package/dist/custom-site-preferences.d.ts +20 -0
  14. package/dist/custom-site-preferences.d.ts.map +1 -0
  15. package/dist/custom-site-preferences.js +28 -0
  16. package/dist/custom-site-preferences.js.map +1 -0
  17. package/dist/data-store-custom-global-preferences.d.ts +2 -0
  18. package/dist/data-store-custom-global-preferences.js +6 -0
  19. package/dist/data-store-custom-site-preferences.d.ts +2 -0
  20. package/dist/data-store-custom-site-preferences.js +6 -0
  21. package/dist/data-store-gcp-preferences.d.ts +2 -0
  22. package/dist/data-store-gcp-preferences.js +6 -0
  23. package/dist/data-store.d.ts +97 -0
  24. package/dist/data-store.d.ts.map +1 -0
  25. package/dist/data-store.js +42 -0
  26. package/dist/data-store.js.map +1 -0
  27. package/dist/design-data.d.ts +82 -88
  28. package/dist/design-data.d.ts.map +1 -1
  29. package/dist/design-data.js +95 -57
  30. package/dist/design-data.js.map +1 -1
  31. package/dist/design-messaging.d.ts +2 -2
  32. package/dist/design-react-core.d.ts +2 -2
  33. package/dist/events.d.ts +34 -6
  34. package/dist/events.d.ts.map +1 -1
  35. package/dist/events.js +6 -6
  36. package/dist/events.js.map +1 -1
  37. package/dist/gcp-preferences.d.ts +52 -0
  38. package/dist/gcp-preferences.d.ts.map +1 -0
  39. package/dist/gcp-preferences.js +61 -0
  40. package/dist/gcp-preferences.js.map +1 -0
  41. package/dist/i18n-client.d.ts +38 -0
  42. package/dist/i18n-client.d.ts.map +1 -0
  43. package/dist/i18n-client.js +72 -0
  44. package/dist/i18n-client.js.map +1 -0
  45. package/dist/i18n.d.ts +63 -0
  46. package/dist/i18n.d.ts.map +1 -0
  47. package/dist/i18n.js +98 -0
  48. package/dist/i18n.js.map +1 -0
  49. package/dist/index.d.ts +60 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/messaging-api.js +3 -1
  52. package/dist/messaging-api.js.map +1 -1
  53. package/dist/scapi.d.ts +247 -2
  54. package/dist/scapi.d.ts.map +1 -1
  55. package/dist/scapi.js +1 -1
  56. package/dist/scapi.js.map +1 -1
  57. package/dist/site-context.d.ts +93 -17
  58. package/dist/site-context.d.ts.map +1 -1
  59. package/dist/site-context.js +2 -417
  60. package/dist/site-context2.js +513 -0
  61. package/dist/site-context2.js.map +1 -0
  62. package/dist/types2.d.ts +210 -0
  63. package/dist/types2.d.ts.map +1 -1
  64. package/dist/utils.js +179 -0
  65. package/dist/utils.js.map +1 -0
  66. package/package.json +63 -4
  67. package/dist/site-context.js.map +0 -1
@@ -0,0 +1,97 @@
1
+ import { a as sitePreferencesContext, i as getSitePreferences, n as SitePreferences, t as DEFAULT_SITE_PREFERENCES_KEY } from "./custom-site-preferences.js";
2
+ import { a as getCustomGlobalPreferences, n as DEFAULT_CUSTOM_GLOBAL_PREFERENCES_KEY, r as customGlobalPreferencesContext, t as CustomGlobalPreferences } from "./custom-global-preferences.js";
3
+ import { a as getGcpApiKey, n as GcpPreferences, o as getGcpPreferences, r as gcpPreferencesContext, t as DEFAULT_GCP_PREFERENCES_KEY } from "./gcp-preferences.js";
4
+ import * as react_router6 from "react-router";
5
+ import { MiddlewareFunction, RouterContextProvider, createContext } from "react-router";
6
+ import { DataStoreNotFoundError, DataStoreServiceError, DataStoreUnavailableError } from "@salesforce/mrt-utilities";
7
+
8
+ //#region src/data-store/provider.d.ts
9
+
10
+ /**
11
+ * Copyright 2026 Salesforce, Inc.
12
+ *
13
+ * Licensed under the Apache License, Version 2.0 (the "License");
14
+ * you may not use this file except in compliance with the License.
15
+ * You may obtain a copy of the License at
16
+ *
17
+ * http://www.apache.org/licenses/LICENSE-2.0
18
+ *
19
+ * Unless required by applicable law or agreed to in writing, software
20
+ * distributed under the License is distributed on an "AS IS" BASIS,
21
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ * See the License for the specific language governing permissions and
23
+ * limitations under the License.
24
+ */
25
+ type DataStoreEntry<TValue = unknown> = {
26
+ value?: TValue;
27
+ };
28
+ type DataStoreProvider = {
29
+ kind: 'mrt' | 'local';
30
+ getEntry: <TValue = unknown>(key: string) => Promise<DataStoreEntry<TValue> | null>;
31
+ };
32
+ /**
33
+ * Resolve the default data-store provider based on MRT environment variables.
34
+ *
35
+ * Environment variables:
36
+ * - `AWS_REGION` (required for MRT): AWS region for the data store table (e.g., "us-east-1")
37
+ * - `MOBIFY_PROPERTY_ID` (required for MRT): MRT property identifier (e.g., "abcd1234")
38
+ * - `DEPLOY_TARGET` (required for MRT): MRT deploy target (e.g., "production")
39
+ * - `SFNEXT_DATA_STORE_ALLOW_LOCAL` (optional): allow local provider outside development ("true")
40
+ * - `CI` (optional): allow local provider when set to "true"
41
+ *
42
+ * @returns Provider promise resolved for the current environment.
43
+ * @example
44
+ * const provider = await getDefaultDataStoreProvider();
45
+ * const entry = await provider.getEntry('custom-global-preferences');
46
+ */
47
+ declare function getDefaultDataStoreProvider(): Promise<DataStoreProvider>;
48
+ //#endregion
49
+ //#region src/data-store/utils.d.ts
50
+ type DataStoreContextKey<T> = ReturnType<typeof createContext<T | null>>;
51
+ type DataStoreEntryKey = string | ((context: Readonly<RouterContextProvider>) => string);
52
+ type DataStoreMiddlewareOptions<T> = {
53
+ entryKey: DataStoreEntryKey;
54
+ context: DataStoreContextKey<T>;
55
+ transform?: (value: Record<string, unknown>) => T;
56
+ provider?: DataStoreProvider | Promise<DataStoreProvider>;
57
+ };
58
+ /**
59
+ * Creates a typed React Router context for data store entries.
60
+ *
61
+ * Initializes the context with `null` so middleware can populate it during requests.
62
+ *
63
+ * @returns React Router context key for data store values
64
+ */
65
+ declare function createDataStoreContext<T>(): DataStoreContextKey<T>;
66
+ /**
67
+ * Creates a data-store middleware that fetches site preferences from MRT data access layer
68
+ * and stores them in the router context.
69
+ *
70
+ * Environment variables:
71
+ * - `AWS_REGION` (required): AWS region for the data store table (e.g., "us-east-1")
72
+ * - `MOBIFY_PROPERTY_ID` (required): MRT property identifier (e.g., "abcd1234")
73
+ * - `DEPLOY_TARGET` (required): MRT deploy target (e.g., "production")
74
+ *
75
+ * @param options - Middleware options for data store entry and context
76
+ * @returns React Router middleware for server requests
77
+ */
78
+ declare function createDataStoreMiddleware<T>(options: DataStoreMiddlewareOptions<T>): MiddlewareFunction<Response>;
79
+ //#endregion
80
+ //#region src/data-store/middleware/login-preferences.d.ts
81
+ type LoginPreferences = {
82
+ emailVerificationEnabled?: boolean;
83
+ };
84
+ declare const loginPreferencesContext: react_router6.RouterContext<LoginPreferences | null>;
85
+ /**
86
+ * Read login preferences from router context.
87
+ *
88
+ * @param context - Router context provider
89
+ * @returns Login preferences data stored by data-store middleware
90
+ */
91
+ declare function getLoginPreferences(context: Readonly<RouterContextProvider>): LoginPreferences;
92
+ //#endregion
93
+ //#region src/data-store/index.d.ts
94
+ declare const dataStoreMiddleware: react_router6.MiddlewareFunction<Response>[];
95
+ //#endregion
96
+ export { type CustomGlobalPreferences, DEFAULT_CUSTOM_GLOBAL_PREFERENCES_KEY, DEFAULT_GCP_PREFERENCES_KEY, DEFAULT_SITE_PREFERENCES_KEY, type DataStoreContextKey, type DataStoreEntry, type DataStoreEntryKey, type DataStoreMiddlewareOptions, DataStoreNotFoundError, type DataStoreProvider, DataStoreServiceError, DataStoreUnavailableError, type GcpPreferences, type LoginPreferences, type SitePreferences, createDataStoreContext, createDataStoreMiddleware, customGlobalPreferencesContext, dataStoreMiddleware, gcpPreferencesContext, getCustomGlobalPreferences, getDefaultDataStoreProvider, getGcpApiKey, getGcpPreferences, getLoginPreferences, getSitePreferences, loginPreferencesContext, sitePreferencesContext };
97
+ //# sourceMappingURL=data-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-store.d.ts","names":[],"sources":["../src/data-store/provider.ts","../src/data-store/utils.ts","../src/data-store/middleware/login-preferences.ts","../src/data-store/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;AAmBA;AAIA;;;;;AA+BA;KAnCY;UACA;;ACKA,KDFA,iBAAA,GCEmB;EAAsC,IAAA,EAAA,KAAA,GAAA,OAAA;EAAd,QAAA,EAAA,CAAA,SAAA,OAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,GDAN,OCAM,CDAE,cCAF,CDAiB,MCAjB,CAAA,GAAA,IAAA,CAAA;CAAlB;;;;;;;AAkBrC;AAgBA;;;;;;;;iBDLgB,2BAAA,CAAA,GAA+B,QAAQ;;;KC7B3C,yBAAyB,kBAAkB,cAAc;AAAzD,KAEA,iBAAA,GAFmB,MAAA,GAAA,CAAA,CAAA,OAAA,EAEqB,QAFrB,CAE8B,qBAF9B,CAAA,EAAA,GAAA,MAAA,CAAA;AAAsC,KAIzD,0BAJyD,CAAA,CAAA,CAAA,GAAA;EAAd,QAAA,EAKzC,iBALyC;EAAlB,OAAA,EAMxB,mBANwB,CAMJ,CANI,CAAA;EAAU,SAAA,CAAA,EAAA,CAAA,KAAA,EAOvB,MAPuB,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAOK,CAPL;EAEnC,QAAA,CAAA,EAMG,iBANc,GAMM,OAN0B,CAMlB,iBANS,CAAA;AAEpD,CAAA;;;;;;;;AAImC,iBAUnB,sBAVmB,CAAA,CAAA,CAAA,CAAA,CAAA,EAUU,mBAVV,CAU8B,CAV9B,CAAA;;AAUnC;AAgBA;;;;;;;;;ACxCA;AAIa,iBDoCG,yBCpCoB,CAAA,CAAA,CAAA,CAAA,OAAA,EDoCkB,0BCpClB,CDoC6C,CCpC7C,CAAA,CAAA,EDoCkD,kBCpClD,CDoCqE,QCpCrE,CAAA;;;KAJxB,gBAAA;;ADMZ,CAAA;AAAqE,cCFxD,uBDEwD,ECFjC,aAAA,CAAA,aDEiC,CCFjC,gBDEiC,GAAA,IAAA,CAAA;;;;AAErE;AAEA;;AAEiC,iBCAjB,mBAAA,CDAiB,OAAA,ECAY,QDAZ,CCAqB,qBDArB,CAAA,CAAA,ECA8C,gBDA9C;;;AAElB,cEiBF,mBFjBE,EEiBiB,aAAA,CAAA,kBFjBjB,CEiBiB,QFjBjB,CAAA,EAAA"}
@@ -0,0 +1,42 @@
1
+ import { i as getDefaultDataStoreProvider, n as createDataStoreMiddleware, r as prefixWithSiteId, t as createDataStoreContext } from "./utils.js";
2
+ import "./site-context2.js";
3
+ import "./apply-url-config.js";
4
+ import { i as sitePreferencesContext, n as customSitePreferencesMiddleware, r as getSitePreferences, t as DEFAULT_SITE_PREFERENCES_KEY } from "./custom-site-preferences.js";
5
+ import { i as getCustomGlobalPreferences, n as customGlobalPreferencesContext, r as customGlobalPreferencesMiddleware, t as DEFAULT_CUSTOM_GLOBAL_PREFERENCES_KEY } from "./custom-global-preferences.js";
6
+ import { a as getGcpPreferences, i as getGcpApiKey, n as gcpPreferencesContext, r as gcpPreferencesMiddleware, t as DEFAULT_GCP_PREFERENCES_KEY } from "./gcp-preferences.js";
7
+ import { DataStoreNotFoundError, DataStoreServiceError, DataStoreUnavailableError } from "@salesforce/mrt-utilities";
8
+
9
+ //#region src/data-store/middleware/login-preferences.ts
10
+ const loginPreferencesContext = createDataStoreContext();
11
+ /**
12
+ * Read login preferences from router context.
13
+ *
14
+ * @param context - Router context provider
15
+ * @returns Login preferences data stored by data-store middleware
16
+ */
17
+ function getLoginPreferences(context) {
18
+ const data = context.get(loginPreferencesContext);
19
+ if (!data) {
20
+ console.warn("Login preferences context not found. Ensure data-store middleware runs before loaders and the required env vars are set.");
21
+ return {};
22
+ }
23
+ return data;
24
+ }
25
+ const loginPreferencesMiddleware = createDataStoreMiddleware({
26
+ entryKey: prefixWithSiteId("login-preferences"),
27
+ context: loginPreferencesContext,
28
+ transform: (value) => value.data
29
+ });
30
+
31
+ //#endregion
32
+ //#region src/data-store/index.ts
33
+ const dataStoreMiddleware = [
34
+ customSitePreferencesMiddleware,
35
+ customGlobalPreferencesMiddleware,
36
+ gcpPreferencesMiddleware,
37
+ loginPreferencesMiddleware
38
+ ];
39
+
40
+ //#endregion
41
+ export { DEFAULT_CUSTOM_GLOBAL_PREFERENCES_KEY, DEFAULT_GCP_PREFERENCES_KEY, DEFAULT_SITE_PREFERENCES_KEY, DataStoreNotFoundError, DataStoreServiceError, DataStoreUnavailableError, createDataStoreContext, createDataStoreMiddleware, customGlobalPreferencesContext, dataStoreMiddleware, gcpPreferencesContext, getCustomGlobalPreferences, getDefaultDataStoreProvider, getGcpApiKey, getGcpPreferences, getLoginPreferences, getSitePreferences, loginPreferencesContext, sitePreferencesContext };
42
+ //# sourceMappingURL=data-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-store.js","names":[],"sources":["../src/data-store/middleware/login-preferences.ts","../src/data-store/index.ts"],"sourcesContent":["/**\n * Copyright 2026 Salesforce, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { RouterContextProvider } from 'react-router';\nimport { createDataStoreContext, createDataStoreMiddleware, prefixWithSiteId } from '../utils';\n\nexport type LoginPreferences = {\n emailVerificationEnabled?: boolean;\n};\n\nexport const loginPreferencesContext = createDataStoreContext<LoginPreferences>();\n\n/**\n * Read login preferences from router context.\n *\n * @param context - Router context provider\n * @returns Login preferences data stored by data-store middleware\n */\nexport function getLoginPreferences(context: Readonly<RouterContextProvider>): LoginPreferences {\n const data = context.get(loginPreferencesContext);\n if (!data) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Login preferences context not found. Ensure data-store middleware runs before loaders and the required env vars are set.'\n );\n return {};\n }\n return data;\n}\n\nexport const loginPreferencesMiddleware = createDataStoreMiddleware<LoginPreferences>({\n entryKey: prefixWithSiteId('login-preferences'),\n context: loginPreferencesContext,\n transform: (value) => value.data as LoginPreferences,\n});\n","/**\n * Copyright 2026 Salesforce, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { createDataStoreMiddleware } from './utils';\nexport { createDataStoreContext } from './utils';\nexport { getDefaultDataStoreProvider } from './provider';\nexport {\n DEFAULT_SITE_PREFERENCES_KEY,\n getSitePreferences,\n sitePreferencesContext,\n} from './middleware/custom-site-preferences';\nexport {\n customGlobalPreferencesContext,\n DEFAULT_CUSTOM_GLOBAL_PREFERENCES_KEY,\n getCustomGlobalPreferences,\n} from './middleware/custom-global-preferences';\nexport {\n DEFAULT_GCP_PREFERENCES_KEY,\n gcpPreferencesContext,\n getGcpApiKey,\n getGcpPreferences,\n} from './middleware/gcp-preferences';\nexport type { DataStoreMiddlewareOptions } from './utils';\nexport type { SitePreferences } from './middleware/custom-site-preferences';\nexport type { DataStoreContextKey, DataStoreEntryKey } from './utils';\nexport type { DataStoreEntry, DataStoreProvider } from './provider';\nexport type { CustomGlobalPreferences } from './middleware/custom-global-preferences';\nexport { getLoginPreferences, loginPreferencesContext } from './middleware/login-preferences';\nexport type { LoginPreferences } from './middleware/login-preferences';\nexport type { GcpPreferences } from './middleware/gcp-preferences';\nexport { DataStoreNotFoundError, DataStoreServiceError, DataStoreUnavailableError } from '@salesforce/mrt-utilities';\n\nimport { customSitePreferencesMiddleware } from './middleware/custom-site-preferences';\nimport { customGlobalPreferencesMiddleware } from './middleware/custom-global-preferences';\nimport { gcpPreferencesMiddleware } from './middleware/gcp-preferences';\nimport { loginPreferencesMiddleware } from './middleware/login-preferences';\n\nexport const dataStoreMiddleware = [\n customSitePreferencesMiddleware,\n customGlobalPreferencesMiddleware,\n gcpPreferencesMiddleware,\n loginPreferencesMiddleware,\n];\n"],"mappings":";;;;;;;;;AAuBA,MAAa,0BAA0B,wBAA0C;;;;;;;AAQjF,SAAgB,oBAAoB,SAA4D;CAC5F,MAAM,OAAO,QAAQ,IAAI,wBAAwB;AACjD,KAAI,CAAC,MAAM;AAEP,UAAQ,KACJ,2HACH;AACD,SAAO,EAAE;;AAEb,QAAO;;AAGX,MAAa,6BAA6B,0BAA4C;CAClF,UAAU,iBAAiB,oBAAoB;CAC/C,SAAS;CACT,YAAY,UAAU,MAAM;CAC/B,CAAC;;;;ACGF,MAAa,sBAAsB;CAC/B;CACA;CACA;CACA;CACH"}
@@ -36,9 +36,26 @@ interface PageManifest {
36
36
  content?: {
37
37
  [locale: string]: Record<string, unknown>;
38
38
  };
39
+ /** Data binding metadata for this component, or `null` if not bound. */
40
+ dataBinding?: ComponentDataBinding | null;
41
+ /** Region-level configuration (e.g. maxComponents limits), keyed by region ID. */
42
+ regions: {
43
+ [regionId: string]: RegionInfo;
44
+ };
39
45
  };
40
46
  };
41
47
  }
48
+ /** Region-level configuration extracted from the page manifest, including type filters and component limits. */
49
+ interface RegionInfo {
50
+ /** The name of the region. */
51
+ name: string;
52
+ /** The component type exclusions for the region. */
53
+ componentTypeExclusions: string[] | null;
54
+ /** The component type inclusions for the region. */
55
+ componentTypeInclusions: string[] | null;
56
+ /** Maximum number of visible components to render in this region, or `null` for no limit. */
57
+ maxComponents: number | null;
58
+ }
42
59
  /**
43
60
  * Site-wide manifest containing content assignments that map product and category
44
61
  * identifiers to page IDs, plus the category hierarchy used for parent-category
@@ -77,17 +94,22 @@ interface SiteManifest {
77
94
  };
78
95
  };
79
96
  }
97
+ /**
98
+ * Data binding metadata for a component instance. Stored in the page manifest's
99
+ * `componentInfo` map, keyed by component ID.
100
+ */
101
+ interface ComponentDataBinding {
102
+ /** Maps attribute names to expression strings (e.g. `"content_asset.body"`). */
103
+ expressions: Record<string, string>;
104
+ /** The data contexts bound to this component, identifying the records to resolve against. */
105
+ contexts: DataBindingRequirement[];
106
+ }
80
107
  /**
81
108
  * A campaign and promotion pair used in visibility rules. Both the campaign and
82
109
  * the specific promotion within it must be active in the shopper's context for
83
110
  * the qualifier to match.
84
111
  */
85
- interface CampaignQualifier {
86
- /** The campaign identifier. */
87
- campaignId: string;
88
- /** The promotion identifier within the campaign. */
89
- promotionId: string;
90
- }
112
+ type CampaignQualifier = ShopperExperience.schemas['CampaignQualifier'];
91
113
  /**
92
114
  * Metadata extracted from all variation rules in a {@link PageManifest}. Lists
93
115
  * every campaign qualifier and customer group referenced, so the runtime knows
@@ -109,12 +131,7 @@ interface PageManifestContext {
109
131
  * These requirements are hoisted into {@link PageManifestContext} so MRT can
110
132
  * request all required external data in a single batch during context resolution.
111
133
  */
112
- interface DataBindingRequirement {
113
- /** The data provider type (e.g. `"content_asset"`, `"product"`, `"personalization"`). */
114
- type: string;
115
- /** The UUID or identifier of the specific record. */
116
- id: string;
117
- }
134
+ type DataBindingRequirement = ShopperExperience.schemas['DataBindingRequirement'];
118
135
  /**
119
136
  * A single page variation within a {@link PageManifest}. Each variation holds
120
137
  * the full page data and flags indicating whether qualifier context is needed
@@ -137,6 +154,10 @@ interface VariationEntry {
137
154
  visibilityRule?: VisibilityRuleDef;
138
155
  /** The full page data for this variation. */
139
156
  page: ShopperExperience.schemas['Page'];
157
+ /** Page-level region configuration for this variation, keyed by region ID. These are top-level regions owned by the page itself, not nested under a component. */
158
+ regions: {
159
+ [regionId: string]: RegionInfo;
160
+ };
140
161
  }
141
162
  /**
142
163
  * A visibility rule definition that controls when a page variation or component
@@ -163,42 +184,13 @@ interface VisibilityRuleDef {
163
184
  * Passed to {@link validateRule} to evaluate visibility rules. This context
164
185
  * is typically resolved lazily — only fetched when a rule actually needs it.
165
186
  */
166
- interface QualifierContext {
167
- /**
168
- * Active campaign qualifiers. Outer key is campaign ID, inner key is
169
- * promotion ID. A value of `true` means the qualifier is active.
170
- */
171
- campaignQualifiers: {
172
- [campaignId: string]: {
173
- [promotionId: string]: boolean;
174
- };
175
- };
176
- /**
177
- * Customer group memberships. Key is the customer group ID, value of
178
- * `true` means the shopper belongs to that group.
179
- */
180
- customerGroups: {
181
- [customerGroupId: string]: boolean;
182
- };
183
- /**
184
- * Resolved data binding objects returned from context resolution. Grouped
185
- * by provider type, then by record ID. The `ExpressionResolver` uses this
186
- * to evaluate attribute expressions like `content_asset.body`.
187
- */
188
- dataBindings?: {
189
- [type: string]: {
190
- [id: string]: ResolvedDataBinding;
191
- };
192
- };
193
- }
187
+ type QualifierContext = ShopperExperience.schemas['QualifierResolveResponse'];
194
188
  /**
195
189
  * A resolved data binding object containing the fields returned by the data
196
190
  * provider for a specific record. For example, a resolved `content_asset`
197
191
  * might contain `{ title: "Winter Sale", body: "<div>…</div>" }`.
198
192
  */
199
- interface ResolvedDataBinding {
200
- [field: string]: unknown;
201
- }
193
+ type ResolvedDataBinding = ShopperExperience.schemas['ResolvedDataBinding'];
202
194
  /**
203
195
  * The type of identifier used to look up a page. Determines how the ID is
204
196
  * resolved to a page manifest:
@@ -213,12 +205,12 @@ type IdentifierType = 'page' | 'category' | 'product';
213
205
  * filesystem, CDN, database).
214
206
  */
215
207
  interface ManifestStorage {
216
- /** Fetch the page manifest for a given page ID and locale. */
217
- getPageManifest(id: string, locale: string): Promise<PageManifest>;
208
+ /** Fetch the page manifest for a given page ID. */
209
+ getPageManifest(id: string): Promise<PageManifest | null>;
218
210
  /** Fetch the site-wide manifest for a given locale. */
219
- getSiteManifest(locale: string): Promise<SiteManifest>;
211
+ getSiteManifest(): Promise<SiteManifest | null>;
220
212
  }
221
- type ContextResolver = (context: PageManifest['context']) => Promise<QualifierContext>;
213
+ type ContextResolver = (context: PageManifest['context']) => Promise<QualifierContext | null>;
222
214
  type VisitorContextType = 'page' | 'region' | 'component' | 'root';
223
215
  type InferNodeFromType<TType extends VisitorContextType> = TType extends 'page' ? ShopperExperience.schemas['Page'] : TType extends 'region' ? ShopperExperience.schemas['Region'] : ShopperExperience.schemas['Component'];
224
216
  //#endregion
@@ -233,8 +225,19 @@ interface PageProcessorContext {
233
225
  qualifiers: QualifierContext | null;
234
226
  /** Component visibility rule definitions extracted from the page layout. */
235
227
  componentInfo: PageManifest['componentInfo'];
228
+ /** Page-level region configuration (e.g. maxComponents limits) for top-level regions not nested under a component. */
229
+ pageInfo: {
230
+ regions: VariationEntry['regions'];
231
+ };
236
232
  /** The locale to use when resolving locale-specific component content (e.g. `"en_US"`). */
237
233
  locale: string;
234
+ /**
235
+ * When `true` (default), invisible components are removed from the tree and
236
+ * regions are truncated to their `maxComponents` limit. When `false`, invisible
237
+ * components and overflow components are kept in the tree but marked with
238
+ * `visible: false` — used in design/preview mode so the editor can display them.
239
+ */
240
+ pruneInvisible?: boolean;
238
241
  }
239
242
  /**
240
243
  * Filters a page's components based on their visibility rules and resolves
@@ -312,6 +315,8 @@ declare class VisitorContext<TNode> {
312
315
  visitor: PageVisitor;
313
316
  /** The root page being traversed. */
314
317
  page?: ShopperExperience.schemas['Page'];
318
+ /** The parent visitor context, providing access to the node that contains the current one in the page tree. */
319
+ parent?: VisitorContext<ShopperExperience.schemas['Page'] | ShopperExperience.schemas['Region'] | ShopperExperience.schemas['Component']>;
315
320
  /** The parent region of the current node, if traversing within a region. */
316
321
  parentRegion?: ShopperExperience.schemas['Region'];
317
322
  /** The parent component of the current node, if traversing within a component's nested regions. */
@@ -326,6 +331,10 @@ declare class VisitorContext<TNode> {
326
331
  * The root page being traversed.
327
332
  */
328
333
  get page(): ShopperExperience.schemas['Page'] | undefined;
334
+ /**
335
+ * The parent visitor context, providing access to the node that contains the current one in the page tree.
336
+ */
337
+ get parent(): VisitorContext<ShopperExperience.schemas['Page'] | ShopperExperience.schemas['Region'] | ShopperExperience.schemas['Component']> | undefined;
329
338
  /**
330
339
  * The parent region of the current node, if traversing within a region.
331
340
  */
@@ -568,27 +577,6 @@ declare class RequiredError extends Error {
568
577
  }
569
578
  //#endregion
570
579
  //#region src/design/data/page/resolve-data-bindings.d.ts
571
- /**
572
- * Data binding metadata attached to a component instance. Stored in the
573
- * component's `custom.dataBinding` field by ECOM when the author binds a
574
- * data source to the component in Page Designer.
575
- */
576
- interface ComponentDataBinding {
577
- /** Maps attribute names to expression strings (e.g. `"content_asset.body"`). */
578
- expressions: Record<string, string>;
579
- /** The data contexts bound to this component, identifying the records to resolve against. */
580
- contexts: DataBindingContext[];
581
- }
582
- /**
583
- * A data context reference on a component instance, identifying a specific
584
- * record from a data provider.
585
- */
586
- interface DataBindingContext {
587
- /** The data provider type (e.g. `"content_asset"`). */
588
- type: string;
589
- /** The record identifier (e.g. a content asset UUID). */
590
- id: string;
591
- }
592
580
  /**
593
581
  * Parses a binding expression string into its provider type and field name.
594
582
  * Supports the bare `type.field` format.
@@ -619,7 +607,7 @@ declare function parseExpression(expression: string): {
619
607
  * @param dataBindings - The resolved data bindings from {@link QualifierContext}.
620
608
  * @returns The resolved value, or `''` if resolution fails.
621
609
  */
622
- declare function resolveExpression(expression: string, contexts: DataBindingContext[], dataBindings: NonNullable<QualifierContext['dataBindings']>): unknown;
610
+ declare function resolveExpression(expression: string, contexts: DataBindingRequirement[], dataBindings: NonNullable<QualifierContext['dataBindings']>): unknown;
623
611
  /**
624
612
  * Resolves data binding expressions for a single component. Replaces attribute
625
613
  * values in the component's `data` with the resolved values from context
@@ -631,6 +619,7 @@ declare function resolveExpression(expression: string, contexts: DataBindingCont
631
619
  * `dataBindings` is `undefined`.
632
620
  *
633
621
  * @param component - The component to resolve data bindings for.
622
+ * @param binding - The component's data binding metadata from the page manifest's `componentInfo`, or `null`/`undefined` if not bound.
634
623
  * @param dataBindings - The resolved data bindings from {@link QualifierContext}, or `undefined` if no bindings were resolved.
635
624
  * @returns The component with resolved attribute values, or the original component if no bindings apply.
636
625
  *
@@ -642,18 +631,17 @@ declare function resolveExpression(expression: string, contexts: DataBindingCont
642
631
  * id: 'banner',
643
632
  * typeId: 'commerce_assets.contentBanner',
644
633
  * data: { heading: 'Fallback Title', body: 'Fallback Body' },
645
- * custom: {
646
- * dataBinding: {
647
- * expressions: {
648
- * heading: 'content_asset.title',
649
- * body: 'content_asset.body',
650
- * },
651
- * contexts: [{ type: 'content_asset', id: 'winter-sale-uuid' }],
652
- * },
653
- * },
654
634
  * regions: [],
655
635
  * };
656
636
  *
637
+ * const binding = {
638
+ * expressions: {
639
+ * heading: 'content_asset.title',
640
+ * body: 'content_asset.body',
641
+ * },
642
+ * contexts: [{ type: 'content_asset', id: 'winter-sale-uuid' }],
643
+ * };
644
+ *
657
645
  * const dataBindings = {
658
646
  * content_asset: {
659
647
  * 'winter-sale-uuid': {
@@ -663,12 +651,12 @@ declare function resolveExpression(expression: string, contexts: DataBindingCont
663
651
  * },
664
652
  * };
665
653
  *
666
- * const resolved = resolveComponentDataBindings(component, dataBindings);
654
+ * const resolved = resolveComponentDataBindings(component, binding, dataBindings);
667
655
  * // resolved.data.heading === 'Winter Sale'
668
656
  * // resolved.data.body === '<div>Free Shipping on all orders!</div>'
669
657
  * ```
670
658
  */
671
- declare function resolveComponentDataBindings(component: ShopperExperience.schemas['Component'], dataBindings: QualifierContext['dataBindings']): ShopperExperience.schemas['Component'];
659
+ declare function resolveComponentDataBindings(component: ShopperExperience.schemas['Component'], binding: ComponentDataBinding | null | undefined, dataBindings: QualifierContext['dataBindings']): ShopperExperience.schemas['Component'];
672
660
  //#endregion
673
661
  //#region src/design/data/page/resolve-page.d.ts
674
662
  /**
@@ -691,6 +679,7 @@ declare function resolveComponentDataBindings(component: ShopperExperience.schem
691
679
  * @param options.manifestStorage - Storage implementation for fetching manifests.
692
680
  * @param options.contextResolver - Optional async function that returns the shopper's qualifier context. Only called if a visibility rule needs it.
693
681
  * @param options.aspectType - The aspect type to resolve the page for when the identifier type is `'product'` or `'category'`.
682
+ * @param options.pruneInvisible - When `true` (default), invisible and overflow components are removed. When `false`, they are kept but marked `visible: false` for design/preview mode.
694
683
  * @returns The fully resolved and filtered page, or `null`.
695
684
  *
696
685
  * @example
@@ -704,12 +693,12 @@ declare function resolveComponentDataBindings(component: ShopperExperience.schem
704
693
  * aspectType: 'pdp',
705
694
  * locale: 'en-US',
706
695
  * manifestStorage: {
707
- * async getPageManifest(id, locale) {
696
+ * async getPageManifest(id) {
708
697
  * // Fetch from CDN, filesystem, or database
709
- * return fetchManifest(`/manifests/${locale}/${id}.json`);
698
+ * return fetchManifest(`/manifests/${id}.json`);
710
699
  * },
711
- * async getSiteManifest(locale) {
712
- * return fetchManifest(`/manifests/${locale}/site.json`);
700
+ * async getSiteManifest() {
701
+ * return fetchManifest('/manifests/site.json');
713
702
  * },
714
703
  * },
715
704
  * contextResolver: async () => ({
@@ -733,7 +722,8 @@ declare function resolvePage({
733
722
  aspectType,
734
723
  locale,
735
724
  manifestStorage,
736
- contextResolver
725
+ contextResolver,
726
+ pruneInvisible
737
727
  }: {
738
728
  id: string;
739
729
  identifierType: IdentifierType;
@@ -741,6 +731,7 @@ declare function resolvePage({
741
731
  locale: string;
742
732
  manifestStorage: ManifestStorage;
743
733
  contextResolver?: ContextResolver;
734
+ pruneInvisible?: boolean;
744
735
  }): Promise<ShopperExperience.schemas['Page'] | null>;
745
736
  //#endregion
746
737
  //#region src/design/data/manifest/resolve-dynamic-page-id.d.ts
@@ -802,7 +793,7 @@ declare function resolveDynamicPageId<TIdentifier extends IdentifierType = Ident
802
793
  id: string;
803
794
  identifierType: TIdentifier;
804
795
  aspectType: string;
805
- siteManifest?: SiteManifest;
796
+ siteManifest?: SiteManifest | null;
806
797
  }): string | null;
807
798
  //#endregion
808
799
  //#region src/design/data/manifest/get-page.d.ts
@@ -835,6 +826,7 @@ declare function resolveDynamicPageId<TIdentifier extends IdentifierType = Ident
835
826
  * pageRequiresContext: false,
836
827
  * visibilityRule: { activeLocales: ['en-US'], customerGroups: ['vip-customers'] },
837
828
  * page: { id: 'homepage', typeId: 'storePage', regions: [] },
829
+ * regions: {},
838
830
  * },
839
831
  * 'holiday-homepage': {
840
832
  * ruleRequiresContext: false,
@@ -847,11 +839,13 @@ declare function resolveDynamicPageId<TIdentifier extends IdentifierType = Ident
847
839
  * },
848
840
  * },
849
841
  * page: { id: 'homepage', typeId: 'storePage', regions: [] },
842
+ * regions: {},
850
843
  * },
851
844
  * 'default-homepage': {
852
845
  * ruleRequiresContext: false,
853
846
  * pageRequiresContext: false,
854
847
  * page: { id: 'homepage', typeId: 'storePage', regions: [] },
848
+ * regions: {},
855
849
  * },
856
850
  * },
857
851
  * defaultVariation: 'default-homepage',
@@ -907,7 +901,7 @@ interface ResolvedContentAssignmentLookup {
907
901
  * into a {@link ResolvedContentAssignmentLookup} describing where to search
908
902
  * in the site manifest for the assigned page ID.
909
903
  */
910
- type ContentAssignmentResolver = (key: string, manifest?: SiteManifest) => ResolvedContentAssignmentLookup;
904
+ type ContentAssignmentResolver = (key: string, manifest?: SiteManifest | null) => ResolvedContentAssignmentLookup;
911
905
  /**
912
906
  * Registry of content assignment resolvers keyed by {@link IdentifierType}.
913
907
  * Each resolver knows how to convert its identifier type into a set of lookup
@@ -992,5 +986,5 @@ declare const ContentAssignmentResolvers: Map<string, ContentAssignmentResolver>
992
986
  */
993
987
  declare function validateRule(rule: VisibilityRuleDef, locale: string, context?: QualifierContext | null): boolean;
994
988
  //#endregion
995
- export { CampaignQualifier, type ComponentDataBinding, ContentAssignmentResolvers, ContextResolver, type DataBindingContext, DataBindingRequirement, IdentifierType, InferNodeFromType, ManifestStorage, PageManifest, PageManifestContext, type PageProcessorContext, type PageVisitor, QualifierContext, RequiredError, ResolvedDataBinding, SiteManifest, VariationEntry, VisibilityRuleDef, type VisitorContext, VisitorContextType, getPageFromManifest, parseExpression, processPage, resolveComponentDataBindings, resolveDynamicPageId, resolveExpression, resolvePage, transformComponent, transformPage, transformRegion, validateRule };
989
+ export { CampaignQualifier, ComponentDataBinding, ContentAssignmentResolvers, ContextResolver, DataBindingRequirement, IdentifierType, InferNodeFromType, ManifestStorage, PageManifest, PageManifestContext, type PageProcessorContext, type PageVisitor, QualifierContext, RegionInfo, RequiredError, ResolvedDataBinding, SiteManifest, VariationEntry, VisibilityRuleDef, type VisitorContext, VisitorContextType, getPageFromManifest, parseExpression, processPage, resolveComponentDataBindings, resolveDynamicPageId, resolveExpression, resolvePage, transformComponent, transformPage, transformRegion, validateRule };
996
990
  //# sourceMappingURL=design-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"design-data.d.ts","names":[],"sources":["../src/design/data/types.ts","../src/design/data/page/process-page.ts","../src/design/data/page/transform.ts","../src/design/data/errors/required.ts","../src/design/data/page/resolve-data-bindings.ts","../src/design/data/page/resolve-page.ts","../src/design/data/manifest/resolve-dynamic-page-id.ts","../src/design/data/manifest/get-page.ts","../src/design/data/manifest/content-assignment-resolvers.ts","../src/design/data/validate-rule.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"design-data.d.ts","names":[],"sources":["../src/design/data/types.ts","../src/design/data/page/process-page.ts","../src/design/data/page/transform.ts","../src/design/data/errors/required.ts","../src/design/data/page/resolve-data-bindings.ts","../src/design/data/page/resolve-page.ts","../src/design/data/manifest/resolve-dynamic-page-id.ts","../src/design/data/manifest/get-page.ts","../src/design/data/manifest/content-assignment-resolvers.ts","../src/design/data/validate-rule.ts"],"sourcesContent":[],"mappings":"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"}