@salesforce/b2c-tooling-sdk 2.3.0 → 2.5.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 (203) hide show
  1. package/data/guides/enrichment.json +291 -0
  2. package/data/guides/index.json +426 -37
  3. package/data/schemas/dw.schema.json +590 -0
  4. package/data/tooling/index.json +18 -9
  5. package/dist/esm/cli/base-command.d.ts +20 -1
  6. package/dist/esm/cli/base-command.js +61 -11
  7. package/dist/esm/cli/base-command.js.map +1 -1
  8. package/dist/esm/cli/cartridge-command.js +2 -1
  9. package/dist/esm/cli/cartridge-command.js.map +1 -1
  10. package/dist/esm/cli/command-search.d.ts +85 -0
  11. package/dist/esm/cli/command-search.js +147 -0
  12. package/dist/esm/cli/command-search.js.map +1 -0
  13. package/dist/esm/cli/config.d.ts +10 -1
  14. package/dist/esm/cli/config.js +18 -9
  15. package/dist/esm/cli/config.js.map +1 -1
  16. package/dist/esm/cli/hooks.d.ts +13 -0
  17. package/dist/esm/cli/hooks.js +11 -0
  18. package/dist/esm/cli/hooks.js.map +1 -1
  19. package/dist/esm/cli/index.d.ts +2 -0
  20. package/dist/esm/cli/index.js +2 -0
  21. package/dist/esm/cli/index.js.map +1 -1
  22. package/dist/esm/cli/instance-command.d.ts +1 -0
  23. package/dist/esm/cli/instance-command.js +2 -1
  24. package/dist/esm/cli/instance-command.js.map +1 -1
  25. package/dist/esm/cli/mrt-command.d.ts +3 -2
  26. package/dist/esm/cli/mrt-command.js +4 -4
  27. package/dist/esm/cli/mrt-command.js.map +1 -1
  28. package/dist/esm/cli/oauth-command.d.ts +1 -0
  29. package/dist/esm/cli/ods-command.d.ts +1 -0
  30. package/dist/esm/cli/webdav-command.d.ts +1 -0
  31. package/dist/esm/clients/custom-apis.d.ts +36 -2
  32. package/dist/esm/clients/custom-apis.js +57 -4
  33. package/dist/esm/clients/custom-apis.js.map +1 -1
  34. package/dist/esm/clients/index.d.ts +1 -1
  35. package/dist/esm/clients/index.js +1 -1
  36. package/dist/esm/clients/index.js.map +1 -1
  37. package/dist/esm/clients/scapi-backend-utils.d.ts +15 -0
  38. package/dist/esm/clients/scapi-backend-utils.js +28 -1
  39. package/dist/esm/clients/scapi-backend-utils.js.map +1 -1
  40. package/dist/esm/clients/scapi-fallback-backend.js +2 -2
  41. package/dist/esm/clients/scapi-fallback-backend.js.map +1 -1
  42. package/dist/esm/clients/scapi-schemas.generated.d.ts +2 -2
  43. package/dist/esm/compat/dispatcher.js +2 -2
  44. package/dist/esm/compat/dispatcher.js.map +1 -1
  45. package/dist/esm/config/config-origins.d.ts +19 -0
  46. package/dist/esm/config/config-origins.js +11 -0
  47. package/dist/esm/config/config-origins.js.map +1 -0
  48. package/dist/esm/config/config-write.d.ts +86 -0
  49. package/dist/esm/config/config-write.js +296 -0
  50. package/dist/esm/config/config-write.js.map +1 -0
  51. package/dist/esm/config/dw-json-schema.d.ts +14 -0
  52. package/dist/esm/config/dw-json-schema.js +269 -0
  53. package/dist/esm/config/dw-json-schema.js.map +1 -0
  54. package/dist/esm/config/dw-json.d.ts +2 -0
  55. package/dist/esm/config/dw-json.js +10 -6
  56. package/dist/esm/config/dw-json.js.map +1 -1
  57. package/dist/esm/config/index.d.ts +13 -4
  58. package/dist/esm/config/index.js +8 -3
  59. package/dist/esm/config/index.js.map +1 -1
  60. package/dist/esm/config/instance-manager.d.ts +64 -28
  61. package/dist/esm/config/instance-manager.js +145 -63
  62. package/dist/esm/config/instance-manager.js.map +1 -1
  63. package/dist/esm/config/mapping.d.ts +5 -0
  64. package/dist/esm/config/mapping.js +20 -1
  65. package/dist/esm/config/mapping.js.map +1 -1
  66. package/dist/esm/config/project-environment.d.ts +62 -0
  67. package/dist/esm/config/project-environment.js +113 -0
  68. package/dist/esm/config/project-environment.js.map +1 -1
  69. package/dist/esm/config/resolver.d.ts +22 -0
  70. package/dist/esm/config/resolver.js +106 -37
  71. package/dist/esm/config/resolver.js.map +1 -1
  72. package/dist/esm/config/sources/dw-json-source.d.ts +9 -1
  73. package/dist/esm/config/sources/dw-json-source.js +59 -23
  74. package/dist/esm/config/sources/dw-json-source.js.map +1 -1
  75. package/dist/esm/config/sources/env-source.d.ts +70 -9
  76. package/dist/esm/config/sources/env-source.js +205 -47
  77. package/dist/esm/config/sources/env-source.js.map +1 -1
  78. package/dist/esm/config/sources/index.d.ts +1 -1
  79. package/dist/esm/config/sources/index.js +1 -1
  80. package/dist/esm/config/sources/index.js.map +1 -1
  81. package/dist/esm/config/types.d.ts +53 -3
  82. package/dist/esm/docs/search.js +3 -1
  83. package/dist/esm/docs/search.js.map +1 -1
  84. package/dist/esm/docs/types.d.ts +3 -1
  85. package/dist/esm/guidance/bundle.d.ts +33 -0
  86. package/dist/esm/guidance/bundle.js +268 -0
  87. package/dist/esm/guidance/bundle.js.map +1 -0
  88. package/dist/esm/guidance/catalog.d.ts +8 -1
  89. package/dist/esm/guidance/catalog.js +48 -6
  90. package/dist/esm/guidance/catalog.js.map +1 -1
  91. package/dist/esm/guidance/index.d.ts +1 -0
  92. package/dist/esm/guidance/index.js +1 -0
  93. package/dist/esm/guidance/index.js.map +1 -1
  94. package/dist/esm/guidance/types.d.ts +17 -1
  95. package/dist/esm/guidance/types.js.map +1 -1
  96. package/dist/esm/index.d.ts +1 -1
  97. package/dist/esm/index.js +1 -1
  98. package/dist/esm/index.js.map +1 -1
  99. package/dist/esm/operations/jobs/run-system-job.js +2 -2
  100. package/dist/esm/operations/jobs/run-system-job.js.map +1 -1
  101. package/dist/esm/plugins/discovery.js +2 -1
  102. package/dist/esm/plugins/discovery.js.map +1 -1
  103. package/dist/esm/scapi/catalog.d.ts +5 -2
  104. package/dist/esm/scapi/catalog.js.map +1 -1
  105. package/dist/esm/scapi/index.d.ts +6 -2
  106. package/dist/esm/scapi/index.js +4 -2
  107. package/dist/esm/scapi/index.js.map +1 -1
  108. package/dist/esm/scapi/live.d.ts +14 -3
  109. package/dist/esm/scapi/live.js +33 -5
  110. package/dist/esm/scapi/live.js.map +1 -1
  111. package/dist/esm/scapi/local.d.ts +26 -0
  112. package/dist/esm/scapi/local.js +143 -0
  113. package/dist/esm/scapi/local.js.map +1 -0
  114. package/dist/esm/scapi/request.d.ts +2 -2
  115. package/dist/esm/scapi/request.js +4 -2
  116. package/dist/esm/scapi/request.js.map +1 -1
  117. package/dist/esm/scapi/runtime.d.ts +5 -0
  118. package/dist/esm/scapi/runtime.js.map +1 -1
  119. package/dist/esm/scapi/schema-source.d.ts +90 -0
  120. package/dist/esm/scapi/schema-source.js +146 -0
  121. package/dist/esm/scapi/schema-source.js.map +1 -0
  122. package/dist/esm/scapi/worker-source.js +31 -7
  123. package/dist/esm/scapi/worker-source.js.map +1 -1
  124. package/dist/esm/telemetry/telemetry.d.ts +1 -0
  125. package/dist/esm/telemetry/telemetry.js +18 -1
  126. package/dist/esm/telemetry/telemetry.js.map +1 -1
  127. package/dist/esm/telemetry/types.d.ts +9 -0
  128. package/dist/esm/test-utils/config-isolation.js +21 -15
  129. package/dist/esm/test-utils/config-isolation.js.map +1 -1
  130. package/dist/esm/ux/agent-context.d.ts +69 -0
  131. package/dist/esm/ux/agent-context.js +133 -0
  132. package/dist/esm/ux/agent-context.js.map +1 -0
  133. package/dist/esm/ux/confirm.d.ts +27 -0
  134. package/dist/esm/ux/confirm.js +32 -0
  135. package/dist/esm/ux/confirm.js.map +1 -1
  136. package/dist/esm/ux/index.d.ts +2 -1
  137. package/dist/esm/ux/index.js +2 -1
  138. package/dist/esm/ux/index.js.map +1 -1
  139. package/node_modules/@salesforce/b2c-api-schemas/manifest.json +83 -42
  140. package/node_modules/@salesforce/b2c-api-schemas/package.json +1 -1
  141. package/node_modules/@salesforce/b2c-api-schemas/scapi/cdn/zones/v1.json +6798 -238
  142. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/orders/v1.json +2296 -205
  143. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-baskets/v1.json +5571 -666
  144. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-baskets/v2.json +6062 -371
  145. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-orders/v1.json +3426 -360
  146. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-payments/v1.json +351 -99
  147. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/cors/v1.json +172 -12
  148. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/preferences/v1.json +1497 -111
  149. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/shopper-configurations/v1.json +202 -36
  150. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/timeouts/v1.json +79 -10
  151. package/node_modules/@salesforce/b2c-api-schemas/scapi/custom-object/custom-objects/v1.json +785 -49
  152. package/node_modules/@salesforce/b2c-api-schemas/scapi/custom-object/shopper-custom-objects/v1.json +191 -40
  153. package/node_modules/@salesforce/b2c-api-schemas/scapi/customer/customers/v1.json +1483 -107
  154. package/node_modules/@salesforce/b2c-api-schemas/scapi/customer/shopper-customers/v1.json +4854 -787
  155. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/custom-apis/v1.json +119 -15
  156. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/object-definitions/v1.json +1699 -80
  157. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/scapi-schemas/v1.json +252 -18
  158. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/scripts/v1.json +329 -23
  159. package/node_modules/@salesforce/b2c-api-schemas/scapi/experience/experiences/v1.json +4208 -234
  160. package/node_modules/@salesforce/b2c-api-schemas/scapi/experience/shopper-experience/v1.json +1591 -247
  161. package/node_modules/@salesforce/b2c-api-schemas/scapi/intelligence/analytics/v1.json +396 -8
  162. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/availability/v1.json +1242 -69
  163. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/impex/v1.json +2354 -248
  164. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/reservation/v1.json +1550 -45
  165. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/segmentation/v1.json +6615 -0
  166. package/node_modules/@salesforce/b2c-api-schemas/scapi/merchant/roles/v1.json +1520 -59
  167. package/node_modules/@salesforce/b2c-api-schemas/scapi/merchant/users/v1.json +397 -17
  168. package/node_modules/@salesforce/b2c-api-schemas/scapi/observability/metrics/v1.json +1241 -27
  169. package/node_modules/@salesforce/b2c-api-schemas/scapi/operation/jobs/v1.json +1069 -68
  170. package/node_modules/@salesforce/b2c-api-schemas/scapi/operation/replications/v1.json +410 -23
  171. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/assignments/v1.json +502 -102
  172. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/campaigns/v1.json +1112 -94
  173. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/coupons/v1.json +820 -93
  174. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/gift-certificates/v1.json +845 -92
  175. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/promotions/v1.json +2716 -674
  176. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/shopper-gift-certificates/v1.json +130 -47
  177. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/shopper-promotions/v1.json +233 -63
  178. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/source-code-groups/v1.json +630 -70
  179. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/catalogs/v1.json +2886 -348
  180. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/inventory-lists/v1.json +520 -19
  181. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/price-books/v1.json +3115 -293
  182. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/products/v1.json +3313 -138
  183. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-availability/v1.json +266 -52
  184. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-delivery-estimates/v1.json +256 -48
  185. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-products/v1.json +1744 -306
  186. package/node_modules/@salesforce/b2c-api-schemas/scapi/search/shopper-search/v1.json +1661 -120
  187. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/auth/v1.json +2174 -118
  188. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/auth-admin/v1.json +1373 -24
  189. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/consents/v1.json +531 -20
  190. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-agents/v1.json +154 -6
  191. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-consents/v1.json +596 -79
  192. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-context/v1.json +456 -42
  193. package/node_modules/@salesforce/b2c-api-schemas/scapi/site/seo/v1.json +101 -23
  194. package/node_modules/@salesforce/b2c-api-schemas/scapi/site/shopper-seo/v1.json +184 -41
  195. package/node_modules/@salesforce/b2c-api-schemas/scapi/site/sites/v1.json +995 -47
  196. package/node_modules/@salesforce/b2c-api-schemas/scapi/store/shopper-stores/v1.json +370 -67
  197. package/node_modules/@salesforce/b2c-api-schemas/scapi/store/store-redirect-mappings/v1.json +319 -11
  198. package/node_modules/@salesforce/b2c-api-schemas/scapi/store/stores/v1.json +1109 -64
  199. package/node_modules/@salesforce/b2c-api-schemas/scapi/storefront/deployments/v1.json +1442 -0
  200. package/node_modules/@salesforce/b2c-api-schemas/scapi/storefront/environments/v1.json +4293 -0
  201. package/node_modules/@salesforce/b2c-api-schemas/scapi/storefront/storefronts/v1.json +1371 -0
  202. package/package.json +5 -2
  203. package/specs/scapi-schemas-v1.yaml +4 -1
@@ -1,4 +1,4 @@
1
- import type { ConfigSource, ConfigLoadResult, ResolveConfigOptions, InstanceInfo, CreateInstanceOptions } from '../types.js';
1
+ import type { ConfigSource, ConfigLoadResult, ResolveConfigOptions, InstanceInfo, CreateInstanceOptions, ConfigUpdateResult, NormalizedConfig } from '../types.js';
2
2
  /**
3
3
  * Configuration source that loads from dw.json files.
4
4
  *
@@ -18,6 +18,14 @@ export declare class DwJsonSource implements ConfigSource {
18
18
  * @returns The loaded configuration and file location, or undefined if dw.json is not found
19
19
  */
20
20
  load(options: ResolveConfigOptions): Promise<ConfigLoadResult | undefined>;
21
+ /**
22
+ * Update fields of the entry {@link load} selects for the same options.
23
+ *
24
+ * @throws Error if no entry is selected or a field has no dw.json key
25
+ */
26
+ updateConfig(patch: Partial<NormalizedConfig>, options: ResolveConfigOptions): Promise<ConfigUpdateResult>;
27
+ /** Select the named, active, or root entry across the catalog files, in order. */
28
+ private selectEntry;
21
29
  /**
22
30
  * List all instances from dw.json.
23
31
  */
@@ -10,11 +10,18 @@
10
10
  */
11
11
  import { existsSync } from 'node:fs';
12
12
  import path from 'node:path';
13
- import { loadDwJson, loadFullDwJson, addInstance, removeInstance, saveDwJson, setActiveInstance } from '../dw-json.js';
14
- import { getPopulatedFields, mapDwJsonToNormalizedConfig, mapNormalizedConfigToDwJson } from '../mapping.js';
13
+ import { loadDwJson, loadFullDwJson, addInstance, removeInstance, saveDwJson, setActiveInstance, updateInstanceConfig, } from '../dw-json.js';
14
+ import { listConfigKeys } from '../config-write.js';
15
+ import { getPopulatedFields, kebabToCamelCase, mapDwJsonToNormalizedConfig, mapNormalizedConfigToDwJson, } from '../mapping.js';
15
16
  import { getLogger } from '../../logging/logger.js';
16
- /** Select the explicit, project-local, or global-default dw.json path. */
17
+ /**
18
+ * Select the explicit, project-local, or global-default dw.json path.
19
+ *
20
+ * @throws Error if an empty config path selected no dw.json
21
+ */
17
22
  function selectConfigPath(options) {
23
+ if (options.configPath === '')
24
+ throw new Error('No dw.json is selected (empty config path).');
18
25
  if (options.configPath)
19
26
  return options.configPath;
20
27
  const projectConfigPath = path.join(options.projectDirectory ?? options.workingDirectory ?? process.cwd(), 'dw.json');
@@ -22,10 +29,22 @@ function selectConfigPath(options) {
22
29
  return projectConfigPath;
23
30
  return options.defaultConfigPath;
24
31
  }
25
- /** Select the ordered files that contribute instances to the effective catalog. */
32
+ /**
33
+ * Select the ordered files that contribute instances to the effective catalog.
34
+ *
35
+ * An explicit config path is exact: it is the only file used, without the
36
+ * global default. An empty config path selects no dw.json at all. A discovered
37
+ * project dw.json is still supplemented by the global default.
38
+ */
26
39
  function selectConfigPaths(options) {
40
+ if (options.configPath === '')
41
+ return [];
42
+ if (options.configPath !== undefined) {
43
+ const explicitPath = path.resolve(options.configPath);
44
+ return existsSync(explicitPath) ? [explicitPath] : [];
45
+ }
27
46
  const paths = [];
28
- const primaryPath = path.resolve(options.configPath ?? path.join(options.projectDirectory ?? options.workingDirectory ?? process.cwd(), 'dw.json'));
47
+ const primaryPath = path.resolve(path.join(options.projectDirectory ?? options.workingDirectory ?? process.cwd(), 'dw.json'));
29
48
  if (existsSync(primaryPath))
30
49
  paths.push(primaryPath);
31
50
  const defaultConfigPath = options.defaultConfigPath ? path.resolve(options.defaultConfigPath) : undefined;
@@ -129,25 +148,12 @@ export class DwJsonSource {
129
148
  */
130
149
  async load(options) {
131
150
  const logger = getLogger();
132
- const configPaths = selectConfigPaths(options);
133
- let result;
134
- if (options.instance) {
135
- for (const configPath of configPaths) {
136
- result = await loadDwJson({ instance: options.instance, path: configPath });
137
- if (result)
138
- break;
139
- }
140
- }
141
- else {
142
- for (const configPath of configPaths) {
143
- result = await loadActiveConfig(configPath);
144
- if (!result) {
145
- result = await loadDefaultConfig(configPath);
146
- }
147
- if (result)
148
- break;
149
- }
151
+ // Reported as a SOURCE_ERROR warning; an explicit path never falls back to another file.
152
+ if (options.configPath && !existsSync(path.resolve(options.configPath))) {
153
+ throw new Error(`Config file not found: ${path.resolve(options.configPath)}`);
150
154
  }
155
+ const configPaths = selectConfigPaths(options);
156
+ const result = await this.selectEntry(configPaths, options);
151
157
  const instanceCatalog = createInstanceCatalog(configPaths, result?.path, options);
152
158
  if (!result) {
153
159
  if (instanceCatalog.length > 0) {
@@ -162,6 +168,36 @@ export class DwJsonSource {
162
168
  logger.trace({ location: result.path, scope, fields }, '[DwJsonSource] Loaded config');
163
169
  return { config, location: result.path, scope, instanceCatalog };
164
170
  }
171
+ /**
172
+ * Update fields of the entry {@link load} selects for the same options.
173
+ *
174
+ * @throws Error if no entry is selected or a field has no dw.json key
175
+ */
176
+ async updateConfig(patch, options) {
177
+ const selected = await this.selectEntry(selectConfigPaths(options), options);
178
+ if (!selected)
179
+ throw new Error('No dw.json entry is selected to update.');
180
+ const dwPatch = {};
181
+ for (const [field, value] of Object.entries(patch)) {
182
+ const key = listConfigKeys().find((entry) => entry.field === field);
183
+ if (!key)
184
+ throw new Error(`${field} can't be stored in dw.json.`);
185
+ dwPatch[kebabToCamelCase(key.key)] = value;
186
+ }
187
+ const result = await updateInstanceConfig(dwPatch, { path: selected.path, instance: selected.config.name });
188
+ return { location: result.path, instance: result.name };
189
+ }
190
+ /** Select the named, active, or root entry across the catalog files, in order. */
191
+ async selectEntry(configPaths, options) {
192
+ for (const configPath of configPaths) {
193
+ const result = options.instance
194
+ ? await loadDwJson({ instance: options.instance, path: configPath })
195
+ : ((await loadActiveConfig(configPath)) ?? (await loadDefaultConfig(configPath)));
196
+ if (result)
197
+ return result;
198
+ }
199
+ return undefined;
200
+ }
165
201
  /**
166
202
  * List all instances from dw.json.
167
203
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dw-json-source.js","sourceRoot":"","sources":["../../../../src/config/sources/dw-json-source.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;GAIG;AACH,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AACrH,OAAO,EAAC,kBAAkB,EAAE,2BAA2B,EAAE,2BAA2B,EAAC,MAAM,eAAe,CAAC;AAS3G,OAAO,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAElD,0EAA0E;AAC1E,SAAS,gBAAgB,CAAC,OAA6B;IACrD,IAAI,OAAO,CAAC,UAAU;QAAE,OAAO,OAAO,CAAC,UAAU,CAAC;IAElD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;IACtH,IAAI,UAAU,CAAC,iBAAiB,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAE5D,OAAO,OAAO,CAAC,iBAAiB,CAAC;AACnC,CAAC;AAED,mFAAmF;AACnF,SAAS,iBAAiB,CAAC,OAA6B;IACtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAC9B,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAClH,CAAC;IAEF,IAAI,UAAU,CAAC,WAAW,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1G,IAAI,iBAAiB,IAAI,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC7F,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gGAAgG;AAChG,SAAS,kBAAkB,CAAC,UAAkB,EAAE,OAA6B;IAC3E,IAAI,CAAC,OAAO,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAE7C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAC9B,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAClH,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,YAAY,KAAK,WAAW,IAAI,YAAY,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAClG,CAAC;AAED,8DAA8D;AAC9D,SAAS,qBAAqB,CAC5B,WAAqB,EACrB,YAAgC,EAChC,OAA6B;IAE7B,MAAM,sBAAsB,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACtC,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACrE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,sBAAsB;KAC9D,CAAC,CAAC,CAAC;AACN,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,UAAkB,EAAE,UAAkB;IACzE,IAAI,MAAkD,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,cAAc,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,EAAE,+DAA+D,CAAC,CAAC;QACpG,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,SAAS,GAAmB,EAAE,CAAC;IACrC,MAAM,EAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAC,GAAG,MAAM,CAAC;IAC1C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,UAAU;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IAChD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IACzE,IAAI,MAAM,EAAE,IAAI;QAAE,OAAO,UAAU,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAC,CAAC,CAAC;IAC/E,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO,UAAU,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,mFAAmF;AACnF,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACjD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAErD,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1D,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACd,IAAI,GAAG,cAAc,CAAC;IACtB,QAAQ,GAAG,CAAC,CAAC;IAEtB;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,CAAC,OAA6B;QACtC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,MAA8C,CAAC;QACnD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,GAAG,MAAM,UAAU,CAAC,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC;gBAC1E,IAAI,MAAM;oBAAE,MAAM;YACpB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBAC/C,CAAC;gBACD,IAAI,MAAM;oBAAE,MAAM;YACpB,CAAC;QACH,CAAC;QAED,MAAM,eAAe,GAAG,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,EAAC,eAAe,EAAC,EAAE,+DAA+D,CAAC,CAAC;gBACjG,OAAO,EAAC,MAAM,EAAE,EAAE,EAAE,eAAe,EAAC,CAAC;YACvC,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9E,MAAM,CAAC,KAAK,CAAC,EAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAC,EAAE,8BAA8B,CAAC,CAAC;QAErF,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,OAA8B;QAChD,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;QACjG,MAAM,SAAS,GAAmB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,KAAK,MAAM,QAAQ,IAAI,MAAM,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC1E,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACzB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,OAAqD;QACxE,MAAM,YAAY,GAAG,2BAA2B,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/E,MAAM,WAAW,CAAC,YAAY,EAAE;YAC9B,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC;YAC/B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB;YACtE,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,SAAS;YAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,OAA8B;QAC/D,IAAI,CAAC,OAAO;YAAE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAE1C,KAAK,MAAM,UAAU,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACrE,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACzD,OAAO,cAAc,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,aAAa,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,OAA8B;QAClE,IAAI,CAAC,OAAO;YAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,UAA8B,CAAC;QACnC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACrE,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACzD,UAAU,GAAG,UAAU,CAAC;gBACxB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,aAAa,CAAC,CAAC;QAEjE,MAAM,iBAAiB,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC;QAClD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,UAAU,KAAK,UAAU;gBAAE,SAAS;YACxC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM;gBAAE,SAAS;YAEtB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7B,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gBACnD,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC7B,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;oBACxB,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;YACD,IAAI,OAAO;gBAAE,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"dw-json-source.js","sourceRoot":"","sources":["../../../../src/config/sources/dw-json-source.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,18 @@
1
- import type { ConfigSource, ConfigLoadResult, NormalizedConfig, ResolveConfigOptions } from '../types.js';
1
+ import type { ConfigSource, ConfigLoadResult, ConfigUpdateResult, NormalizedConfig, ResolveConfigOptions } from '../types.js';
2
2
  /**
3
- * Reads only the Storefront Next compatibility variables.
3
+ * Storefront Next variables accepted as fallbacks for equivalent toolkit settings.
4
4
  *
5
- * Used by the CLI as a lower-priority fallback after oclif has resolved explicit
6
- * flags and the toolkit's canonical environment variables.
7
- *
8
- * @internal
5
+ * These are read by {@link StorefrontNextEnvSource}, which sits below dw.json:
6
+ * they only fill settings that the selected instance and toolkit variables leave unset.
9
7
  */
10
- export declare function getStorefrontNextEnvironmentConfig(env?: Record<string, string | undefined>): Partial<NormalizedConfig>;
8
+ export declare const STOREFRONT_NEXT_ENV_VAR_MAP: Record<string, keyof NormalizedConfig>;
9
+ /** Options for environment-backed config sources. */
10
+ export interface EnvSourceOptions {
11
+ /** Source name for diagnostics (default: `EnvSource`) */
12
+ name?: string;
13
+ /** Location reported for diagnostics (default: `environment variables`) */
14
+ location?: string;
15
+ }
11
16
  /**
12
17
  * Configuration source that reads CLI configuration environment variables.
13
18
  *
@@ -18,6 +23,9 @@ export declare function getStorefrontNextEnvironmentConfig(env?: Record<string,
18
23
  * via oclif flag `env:` mappings; this source is for consumers like
19
24
  * the VS Code extension that call `resolveConfig()` directly.
20
25
  *
26
+ * Storefront Next variables are not read here; add a
27
+ * {@link StorefrontNextEnvSource} for those.
28
+ *
21
29
  * @example
22
30
  * ```typescript
23
31
  * import { resolveConfig, EnvSource } from '@salesforce/b2c-tooling-sdk/config';
@@ -30,12 +38,65 @@ export declare function getStorefrontNextEnvironmentConfig(env?: Record<string,
30
38
  * @internal
31
39
  */
32
40
  export declare class EnvSource implements ConfigSource {
33
- readonly name = "EnvSource";
41
+ readonly name: string;
34
42
  readonly priority = -10;
35
43
  private readonly env;
44
+ private readonly location;
45
+ /**
46
+ * @param env - Environment object to read from. Defaults to `process.env`.
47
+ * @param options - Diagnostic name and location
48
+ */
49
+ constructor(env?: Record<string, string | undefined>, options?: EnvSourceOptions);
50
+ load(_options: ResolveConfigOptions): ConfigLoadResult | undefined;
51
+ }
52
+ /**
53
+ * The project `.env` file, as a writable configuration source.
54
+ *
55
+ * Reads like {@link EnvSource}. Writes edit the file in place: the
56
+ * highest-precedence variable already present for a field is replaced,
57
+ * otherwise the field's canonical (highest-precedence) variable is appended. Removing a field
58
+ * deletes every variable that maps to it.
59
+ *
60
+ * @internal
61
+ */
62
+ export declare class DotenvFileSource extends EnvSource {
63
+ private readonly filePath;
64
+ /**
65
+ * @param filePath - The .env file
66
+ * @param env - Values applied from the file (defaults to the file's contents)
67
+ */
68
+ constructor(filePath: string, env?: Record<string, string | undefined>);
69
+ updateConfig(patch: Partial<NormalizedConfig>, _options: ResolveConfigOptions): ConfigUpdateResult;
70
+ }
71
+ /**
72
+ * Configuration source for Storefront Next environment variables
73
+ * (`PUBLIC__app__commerce__api__*`, `COMMERCE_API_SLAS_SECRET`, `PUBLIC__app__defaultSiteId`).
74
+ *
75
+ * Priority 1 (just below dw.json at 0): these values are borrowed from the
76
+ * storefront app, so they only fill settings that flags, toolkit variables and
77
+ * the selected dw.json instance leave unset. Credential pairs are still merged
78
+ * as a group, so a Storefront Next SLAS secret is never paired with a
79
+ * different source's SLAS client ID.
80
+ *
81
+ * @internal
82
+ */
83
+ export declare class StorefrontNextEnvSource implements ConfigSource {
84
+ readonly name: string;
85
+ readonly priority = 1;
86
+ /**
87
+ * Present when every value came from one .env file: writes there use toolkit
88
+ * (`SFCC_*`) variables. Settings the Storefront Next variables hold are
89
+ * refused, since those belong to the storefront app.
90
+ */
91
+ readonly updateConfig?: (patch: Partial<NormalizedConfig>, options: ResolveConfigOptions) => ConfigUpdateResult;
92
+ private readonly env;
93
+ private readonly location;
36
94
  /**
37
95
  * @param env - Environment object to read from. Defaults to `process.env`.
96
+ * @param options - Diagnostic name and location; `envFile` makes the source writable
38
97
  */
39
- constructor(env?: Record<string, string | undefined>);
98
+ constructor(env?: Record<string, string | undefined>, options?: EnvSourceOptions & {
99
+ envFile?: string;
100
+ });
40
101
  load(_options: ResolveConfigOptions): ConfigLoadResult | undefined;
41
102
  }
@@ -1,8 +1,28 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ /**
7
+ * Environment variable configuration source.
8
+ *
9
+ * Maps CLI configuration environment variables to NormalizedConfig fields.
10
+ * Not included in default sources — opt-in only via `sourcesBefore`.
11
+ *
12
+ * @internal This module is internal to the SDK. Use ConfigResolver instead.
13
+ */
14
+ import { readFileSync, writeFileSync } from 'node:fs';
15
+ import { parseEnv } from 'node:util';
1
16
  import { CLIENT_AUTH_METHODS } from '../../auth/client-credentials.js';
2
17
  import { getPopulatedFields } from '../mapping.js';
3
18
  import { getLogger } from '../../logging/logger.js';
4
- /** Storefront Next variables accepted as fallbacks for equivalent toolkit settings. */
5
- const STOREFRONT_NEXT_ENV_VAR_MAP = {
19
+ /**
20
+ * Storefront Next variables accepted as fallbacks for equivalent toolkit settings.
21
+ *
22
+ * These are read by {@link StorefrontNextEnvSource}, which sits below dw.json:
23
+ * they only fill settings that the selected instance and toolkit variables leave unset.
24
+ */
25
+ export const STOREFRONT_NEXT_ENV_VAR_MAP = {
6
26
  PUBLIC__app__commerce__api__clientId: 'slasClientId',
7
27
  PUBLIC__app__commerce__api__organizationId: 'tenantId',
8
28
  PUBLIC__app__commerce__api__shortCode: 'shortCode',
@@ -13,8 +33,6 @@ const STOREFRONT_NEXT_ENV_VAR_MAP = {
13
33
  * Mapping of CLI environment variable names and aliases to NormalizedConfig fields.
14
34
  */
15
35
  const ENV_VAR_MAP = {
16
- // Storefront Next aliases — listed first so toolkit-specific names win
17
- ...STOREFRONT_NEXT_ENV_VAR_MAP,
18
36
  // sfcc-ci legacy aliases — listed first so canonical names below take precedence
19
37
  SFCC_OAUTH_CLIENT_ID: 'clientId',
20
38
  SFCC_OAUTH_CLIENT_SECRET: 'clientSecret',
@@ -42,6 +60,7 @@ const ENV_VAR_MAP = {
42
60
  SFCC_LIBRARIES: 'libraries',
43
61
  SFCC_ASSET_QUERY: 'assetQuery',
44
62
  SFCC_DOCS_CATEGORIES: 'docsCategories',
63
+ SFCC_SCAPI_SCHEMAS: 'scapiSchemas',
45
64
  SFCC_AUTH_METHODS: 'authMethods',
46
65
  SFCC_ACCOUNT_MANAGER_HOST: 'accountManagerHost',
47
66
  SFCC_CLIENT_AUTH_METHOD: 'clientAuthMethod',
@@ -65,24 +84,6 @@ const ENV_VAR_MAP = {
65
84
  SFCC_MRT_BACKEND: 'mrtBackend',
66
85
  MRT_BACKEND: 'mrtBackend',
67
86
  };
68
- /**
69
- * Reads only the Storefront Next compatibility variables.
70
- *
71
- * Used by the CLI as a lower-priority fallback after oclif has resolved explicit
72
- * flags and the toolkit's canonical environment variables.
73
- *
74
- * @internal
75
- */
76
- export function getStorefrontNextEnvironmentConfig(env = process.env) {
77
- const config = {};
78
- for (const [envVar, configField] of Object.entries(STOREFRONT_NEXT_ENV_VAR_MAP)) {
79
- const value = env[envVar];
80
- if (value !== undefined && value !== '') {
81
- config[configField] = value;
82
- }
83
- }
84
- return config;
85
- }
86
87
  /** Fields that should be parsed as comma-separated arrays. */
87
88
  const ARRAY_FIELDS = new Set([
88
89
  'scopes',
@@ -91,6 +92,7 @@ const ARRAY_FIELDS = new Set([
91
92
  'importSetExclude',
92
93
  'catalogs',
93
94
  'docsCategories',
95
+ 'scapiSchemas',
94
96
  'libraries',
95
97
  'assetQuery',
96
98
  ]);
@@ -106,6 +108,36 @@ const ENUM_FIELDS = {
106
108
  clientAuthMethod: CLIENT_AUTH_METHODS,
107
109
  mrtBackend: ['auto', 'legacy', 'scapi'],
108
110
  };
111
+ /**
112
+ * Maps environment variables to config fields, applying enum, boolean and array parsing.
113
+ */
114
+ function readEnvironmentConfig(env, map, sourceName) {
115
+ const logger = getLogger();
116
+ const config = {};
117
+ for (const [envVar, configField] of Object.entries(map)) {
118
+ const value = env[envVar];
119
+ if (value === undefined || value === '')
120
+ continue;
121
+ const allowed = ENUM_FIELDS[configField];
122
+ if (allowed && !allowed.includes(value)) {
123
+ logger.warn(`[${sourceName}] Ignoring ${envVar}: "${value}" is not one of ${allowed.join(', ')}`);
124
+ continue;
125
+ }
126
+ if (BOOLEAN_FIELDS.has(configField)) {
127
+ config[configField] = value === 'true' || value === '1';
128
+ }
129
+ else if (ARRAY_FIELDS.has(configField)) {
130
+ config[configField] = value
131
+ .split(',')
132
+ .map((s) => s.trim())
133
+ .filter(Boolean);
134
+ }
135
+ else {
136
+ config[configField] = value;
137
+ }
138
+ }
139
+ return config;
140
+ }
109
141
  /**
110
142
  * Configuration source that reads CLI configuration environment variables.
111
143
  *
@@ -116,6 +148,9 @@ const ENUM_FIELDS = {
116
148
  * via oclif flag `env:` mappings; this source is for consumers like
117
149
  * the VS Code extension that call `resolveConfig()` directly.
118
150
  *
151
+ * Storefront Next variables are not read here; add a
152
+ * {@link StorefrontNextEnvSource} for those.
153
+ *
119
154
  * @example
120
155
  * ```typescript
121
156
  * import { resolveConfig, EnvSource } from '@salesforce/b2c-tooling-sdk/config';
@@ -128,47 +163,170 @@ const ENUM_FIELDS = {
128
163
  * @internal
129
164
  */
130
165
  export class EnvSource {
131
- name = 'EnvSource';
166
+ name;
132
167
  priority = -10;
133
168
  env;
169
+ location;
134
170
  /**
135
171
  * @param env - Environment object to read from. Defaults to `process.env`.
172
+ * @param options - Diagnostic name and location
136
173
  */
137
- constructor(env) {
174
+ constructor(env, options = {}) {
138
175
  this.env = env ?? process.env;
176
+ this.name = options.name ?? 'EnvSource';
177
+ this.location = options.location ?? 'environment variables';
139
178
  }
140
179
  load(_options) {
141
180
  const logger = getLogger();
142
- const config = {};
143
- for (const [envVar, configField] of Object.entries(ENV_VAR_MAP)) {
144
- const value = this.env[envVar];
145
- if (value === undefined || value === '')
146
- continue;
147
- const allowed = ENUM_FIELDS[configField];
148
- if (allowed && !allowed.includes(value)) {
149
- logger.warn(`[EnvSource] Ignoring ${envVar}: "${value}" is not one of ${allowed.join(', ')}`);
181
+ const config = readEnvironmentConfig(this.env, ENV_VAR_MAP, this.name);
182
+ const fields = getPopulatedFields(config);
183
+ if (fields.length === 0) {
184
+ logger.trace(`[${this.name}] No supported B2C environment variables found`);
185
+ return undefined;
186
+ }
187
+ logger.trace({ fields }, `[${this.name}] Loaded config from environment variables`);
188
+ return { config, location: this.location };
189
+ }
190
+ }
191
+ const ENV_LINE = /^(\s*(?:export\s+)?)([A-Za-z_][A-Za-z0-9_]*)\s*=(.*)$/;
192
+ /** Format a config value in the comma-separated form {@link EnvSource} reads. */
193
+ function formatEnvValue(field, value) {
194
+ let text;
195
+ if (typeof value === 'string') {
196
+ text = value;
197
+ }
198
+ else if (typeof value === 'boolean' || typeof value === 'number') {
199
+ text = String(value);
200
+ }
201
+ else if (Array.isArray(value) && value.every((item) => typeof item === 'string' && !item.includes(','))) {
202
+ text = value.join(',');
203
+ }
204
+ else {
205
+ throw new Error(`${field} can't be represented as an environment variable; set it in dw.json instead.`);
206
+ }
207
+ if (/^[^\s#'"`\\]*$/.test(text))
208
+ return text;
209
+ if (!text.includes("'") && !text.includes('\n'))
210
+ return `'${text}'`;
211
+ throw new Error(`${field} contains characters that can't be written safely to a .env file.`);
212
+ }
213
+ /** Line indices of assignments to `names`, refusing multi-line values that can't be edited safely. */
214
+ function findAssignments(lines, names) {
215
+ const found = [];
216
+ for (const [index, line] of lines.entries()) {
217
+ const match = ENV_LINE.exec(line);
218
+ if (!match || !names.includes(match[2]))
219
+ continue;
220
+ const value = match[3].trim();
221
+ const quote = value[0];
222
+ if ((quote === '"' || quote === "'" || quote === '`') && value.indexOf(quote, 1) === -1) {
223
+ throw new Error(`${match[2]} spans multiple lines in the .env file; edit it by hand.`);
224
+ }
225
+ found.push({ index, name: match[2], prefix: match[1] });
226
+ }
227
+ return found;
228
+ }
229
+ /**
230
+ * The project `.env` file, as a writable configuration source.
231
+ *
232
+ * Reads like {@link EnvSource}. Writes edit the file in place: the
233
+ * highest-precedence variable already present for a field is replaced,
234
+ * otherwise the field's canonical (highest-precedence) variable is appended. Removing a field
235
+ * deletes every variable that maps to it.
236
+ *
237
+ * @internal
238
+ */
239
+ export class DotenvFileSource extends EnvSource {
240
+ filePath;
241
+ /**
242
+ * @param filePath - The .env file
243
+ * @param env - Values applied from the file (defaults to the file's contents)
244
+ */
245
+ constructor(filePath, env) {
246
+ super(env ?? parseEnv(readFileSync(filePath, 'utf8')), { name: 'DotenvFile', location: filePath });
247
+ this.filePath = filePath;
248
+ }
249
+ updateConfig(patch, _options) {
250
+ let lines = readFileSync(this.filePath, 'utf8').split('\n');
251
+ for (const [field, value] of Object.entries(patch)) {
252
+ // ENV_VAR_MAP lists aliases from lowest to highest precedence.
253
+ const names = Object.entries(ENV_VAR_MAP)
254
+ .filter(([, mapped]) => mapped === field)
255
+ .map(([name]) => name);
256
+ if (names.length === 0)
257
+ throw new Error(`${field} has no environment variable form; set it in dw.json instead.`);
258
+ const assignments = findAssignments(lines, names);
259
+ if (value === undefined) {
260
+ const removed = new Set(assignments.map((assignment) => assignment.index));
261
+ lines = lines.filter((_line, index) => !removed.has(index));
150
262
  continue;
151
263
  }
152
- if (BOOLEAN_FIELDS.has(configField)) {
153
- config[configField] = value === 'true' || value === '1';
154
- }
155
- else if (ARRAY_FIELDS.has(configField)) {
156
- config[configField] = value
157
- .split(',')
158
- .map((s) => s.trim())
159
- .filter(Boolean);
264
+ const text = formatEnvValue(field, value);
265
+ const current = assignments.sort((a, b) => names.indexOf(b.name) - names.indexOf(a.name))[0];
266
+ if (current) {
267
+ lines[current.index] = `${current.prefix}${current.name}=${text}`;
160
268
  }
161
269
  else {
162
- config[configField] = value;
270
+ const name = names.at(-1);
271
+ if (lines.at(-1) === '')
272
+ lines.splice(-1, 0, `${name}=${text}`);
273
+ else
274
+ lines.push(`${name}=${text}`, '');
163
275
  }
164
276
  }
165
- const fields = getPopulatedFields(config);
166
- if (fields.length === 0) {
167
- logger.trace('[EnvSource] No supported B2C environment variables found');
168
- return undefined;
277
+ writeFileSync(this.filePath, lines.join('\n'), 'utf8');
278
+ return { location: this.filePath };
279
+ }
280
+ }
281
+ /**
282
+ * Configuration source for Storefront Next environment variables
283
+ * (`PUBLIC__app__commerce__api__*`, `COMMERCE_API_SLAS_SECRET`, `PUBLIC__app__defaultSiteId`).
284
+ *
285
+ * Priority 1 (just below dw.json at 0): these values are borrowed from the
286
+ * storefront app, so they only fill settings that flags, toolkit variables and
287
+ * the selected dw.json instance leave unset. Credential pairs are still merged
288
+ * as a group, so a Storefront Next SLAS secret is never paired with a
289
+ * different source's SLAS client ID.
290
+ *
291
+ * @internal
292
+ */
293
+ export class StorefrontNextEnvSource {
294
+ name;
295
+ priority = 1;
296
+ /**
297
+ * Present when every value came from one .env file: writes there use toolkit
298
+ * (`SFCC_*`) variables. Settings the Storefront Next variables hold are
299
+ * refused, since those belong to the storefront app.
300
+ */
301
+ updateConfig;
302
+ env;
303
+ location;
304
+ /**
305
+ * @param env - Environment object to read from. Defaults to `process.env`.
306
+ * @param options - Diagnostic name and location; `envFile` makes the source writable
307
+ */
308
+ constructor(env, options = {}) {
309
+ this.env = env ?? process.env;
310
+ this.name = options.name ?? 'StorefrontNextEnvSource';
311
+ this.location = options.location ?? 'environment variables';
312
+ const { envFile } = options;
313
+ if (envFile) {
314
+ this.updateConfig = (patch, updateOptions) => {
315
+ for (const field of Object.keys(patch)) {
316
+ const variable = Object.keys(STOREFRONT_NEXT_ENV_VAR_MAP).find((name) => STOREFRONT_NEXT_ENV_VAR_MAP[name] === field);
317
+ if (variable) {
318
+ throw new Error(`${field} is a Storefront Next setting (${variable} in ${envFile}) that the storefront app also reads. Change it there.`);
319
+ }
320
+ }
321
+ return new DotenvFileSource(envFile).updateConfig(patch, updateOptions);
322
+ };
169
323
  }
170
- logger.trace({ fields }, '[EnvSource] Loaded config from environment variables');
171
- return { config, location: 'environment variables' };
324
+ }
325
+ load(_options) {
326
+ const config = readEnvironmentConfig(this.env, STOREFRONT_NEXT_ENV_VAR_MAP, this.name);
327
+ if (getPopulatedFields(config).length === 0)
328
+ return undefined;
329
+ return { config, location: this.location };
172
330
  }
173
331
  }
174
332
  //# sourceMappingURL=env-source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env-source.js","sourceRoot":"","sources":["../../../../src/config/sources/env-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env-source.js","sourceRoot":"","sources":["../../../../src/config/sources/env-source.ts"],"names":[],"mappings":"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"}