@salesforce/storefront-next-runtime 0.2.0-alpha.2 → 0.3.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.
- package/dist/DesignFrame.js +6 -2
- package/dist/DesignFrame.js.map +1 -1
- package/dist/DesignRegion.js +2 -1
- package/dist/DesignRegion.js.map +1 -1
- package/dist/component.types.d.ts +6 -0
- package/dist/component.types.d.ts.map +1 -1
- package/dist/config-load.d.ts +27 -0
- package/dist/config-load.d.ts.map +1 -0
- package/dist/config-load.js +3 -0
- package/dist/config.d.ts +248 -1
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +429 -0
- package/dist/config.js.map +1 -0
- package/dist/design-data.d.ts +40 -27
- package/dist/design-data.d.ts.map +1 -1
- package/dist/design-data.js +50 -26
- package/dist/design-data.js.map +1 -1
- package/dist/design-react-core.d.ts +2 -2
- package/dist/design-react-core.js +3 -1
- package/dist/design-react-core.js.map +1 -1
- package/dist/events.d.ts +9 -4
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +6 -6
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/load-config.js +41 -0
- package/dist/load-config.js.map +1 -0
- package/dist/multi-site.d.ts +68 -43
- package/dist/multi-site.d.ts.map +1 -1
- package/dist/multi-site.js +36 -10
- package/dist/multi-site.js.map +1 -1
- package/dist/routing.d.ts.map +1 -1
- package/dist/routing.js +4 -37
- package/dist/routing.js.map +1 -1
- package/dist/scapi.d.ts +8 -0
- package/dist/scapi.d.ts.map +1 -1
- package/dist/scapi.js +1 -1
- package/dist/scapi.js.map +1 -1
- package/dist/schema.d.ts +78 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -1
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
//#region src/config/schema.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Base configuration type for storefront-next projects.
|
|
4
|
+
*
|
|
5
|
+
* Generic parameter `App` represents the template's application config shape.
|
|
6
|
+
* The SDK does not prescribe what fields `app` must contain — templates define
|
|
7
|
+
* their own `AppConfig` type with SCAPI credentials, pages, features, etc.
|
|
8
|
+
* and pass it as `BaseConfig<AppConfig>`.
|
|
9
|
+
*
|
|
10
|
+
* The SDK accesses specific `app` fields (e.g., `commerce.api.clientId`) at
|
|
11
|
+
* runtime via the middleware validation, not via compile-time type constraints.
|
|
12
|
+
*
|
|
13
|
+
* @typeParam App - The template's application config shape (defaults to `Record<string, unknown>`)
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // In the template's types file:
|
|
17
|
+
* type AppConfig = { commerce: { api: {...} }; pages: {...}; features: {...} };
|
|
18
|
+
* type Config = BaseConfig<AppConfig>;
|
|
19
|
+
*
|
|
20
|
+
* // In config.server.ts:
|
|
21
|
+
* export default defineConfig<Config>({ metadata: {...}, app: {...} });
|
|
22
|
+
*/
|
|
23
|
+
type BaseConfig<App extends Record<string, unknown> = Record<string, unknown>> = {
|
|
24
|
+
metadata: {
|
|
25
|
+
projectName: string;
|
|
26
|
+
projectSlug: string;
|
|
27
|
+
};
|
|
28
|
+
runtime?: {
|
|
29
|
+
defaultMrtProject?: string;
|
|
30
|
+
defaultMrtTarget?: string;
|
|
31
|
+
ssrOnly?: string[];
|
|
32
|
+
ssrShared?: string[];
|
|
33
|
+
ssrParameters?: Record<string, string | number | boolean>;
|
|
34
|
+
};
|
|
35
|
+
app: App;
|
|
36
|
+
};
|
|
37
|
+
interface DefineConfigOptions {
|
|
38
|
+
/**
|
|
39
|
+
* Config paths that cannot be overridden by environment variables.
|
|
40
|
+
* Paths use double underscore separators and are matched case-insensitively.
|
|
41
|
+
*
|
|
42
|
+
* @example ['app__engagement'] — prevents PUBLIC__app__engagement__* from being set via env
|
|
43
|
+
*/
|
|
44
|
+
protectedPaths?: string[];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Define a type-safe storefront configuration with IDE autocomplete.
|
|
48
|
+
*
|
|
49
|
+
* Automatically merges `PUBLIC__` prefixed environment variables into the config
|
|
50
|
+
* at load time. Validates env vars against the base config structure (strict mode —
|
|
51
|
+
* only allows overriding existing paths).
|
|
52
|
+
*
|
|
53
|
+
* Environment variables:
|
|
54
|
+
* - `PUBLIC__<path>` (optional): Override any config path using double underscore separators.
|
|
55
|
+
* e.g. `PUBLIC__app__commerce__api__clientId=abc123` maps to `config.app.commerce.api.clientId`
|
|
56
|
+
* - `PUBLIC__app__pages__cart__quantityUpdateDebounce=1000` maps to a number (optimistic JSON parsing)
|
|
57
|
+
* - `PUBLIC__app__features__socialLogin__providers=["Apple","Google"]` maps to an array
|
|
58
|
+
*
|
|
59
|
+
* @param config - The base configuration object with all defaults
|
|
60
|
+
* @param options - Optional settings (e.g., protectedPaths to prevent env var overrides)
|
|
61
|
+
* @returns The config with environment variable overrides merged in
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* // In config.server.ts:
|
|
65
|
+
* import { defineConfig } from '@salesforce/storefront-next-runtime/config';
|
|
66
|
+
*
|
|
67
|
+
* export default defineConfig({
|
|
68
|
+
* metadata: { projectName: 'My Store', projectSlug: 'my-store' },
|
|
69
|
+
* app: {
|
|
70
|
+
* commerce: { api: { clientId: '', organizationId: '', shortCode: '' }, sites: [] },
|
|
71
|
+
* defaultSiteId: 'RefArch',
|
|
72
|
+
* },
|
|
73
|
+
* }, { protectedPaths: ['app__engagement'] });
|
|
74
|
+
*/
|
|
75
|
+
declare function defineConfig<T extends BaseConfig>(config: T, options?: DefineConfigOptions): T;
|
|
76
|
+
//#endregion
|
|
77
|
+
export { DefineConfigOptions as n, defineConfig as r, BaseConfig as t };
|
|
78
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","names":[],"sources":["../src/config/schema.ts"],"sourcesContent":[],"mappings":";;AAsCA;;;;;;AAeA;AAuCA;;;;;;;;;;;;;KAtDY,uBAAuB,0BAA0B;;;;;;;;;;oBAUrC;;OAEf;;UAGQ,mBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuCD,uBAAuB,oBAAoB,aAAa,sBAAsB"}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","names":[],"sources":["../src/config/types.ts"],"sourcesContent":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../src/config/types.ts"],"sourcesContent":[],"mappings":";;AAgBA;AAKA;AAYA;;;;;;;;;;;;KAjBY,MAAA;;;;KAKA,IAAA;;;;;;;;;oBASU,MAAM;;KAGhB,GAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/storefront-next-runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0-alpha.0",
|
|
4
4
|
"description": "Runtime agnostic libraries for SFCC Storefront Next",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -50,6 +50,12 @@
|
|
|
50
50
|
"default": "./dist/config.js"
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
|
+
"./config/load-config": {
|
|
54
|
+
"import": {
|
|
55
|
+
"types": "./dist/config-load.d.ts",
|
|
56
|
+
"default": "./dist/config-load.js"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
53
59
|
"./events": {
|
|
54
60
|
"import": {
|
|
55
61
|
"types": "./dist/events.d.ts",
|