@salesforce/b2c-tooling-sdk 2.2.0 → 2.4.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 (148) hide show
  1. package/data/guides/enrichment.json +1081 -0
  2. package/data/guides/index.json +1571 -36
  3. package/data/schemas/dw.schema.json +576 -0
  4. package/data/tooling/index.json +27 -9
  5. package/dist/esm/auth/client-credentials.d.ts +43 -0
  6. package/dist/esm/auth/client-credentials.js +55 -0
  7. package/dist/esm/auth/client-credentials.js.map +1 -1
  8. package/dist/esm/auth/index.d.ts +2 -1
  9. package/dist/esm/auth/index.js +1 -1
  10. package/dist/esm/auth/index.js.map +1 -1
  11. package/dist/esm/auth/oauth.d.ts +3 -0
  12. package/dist/esm/auth/oauth.js +3 -3
  13. package/dist/esm/auth/oauth.js.map +1 -1
  14. package/dist/esm/auth/resolve.d.ts +2 -0
  15. package/dist/esm/auth/resolve.js +3 -2
  16. package/dist/esm/auth/resolve.js.map +1 -1
  17. package/dist/esm/auth/types.d.ts +5 -0
  18. package/dist/esm/auth/types.js +0 -5
  19. package/dist/esm/auth/types.js.map +1 -1
  20. package/dist/esm/cli/base-command.d.ts +20 -1
  21. package/dist/esm/cli/base-command.js +57 -8
  22. package/dist/esm/cli/base-command.js.map +1 -1
  23. package/dist/esm/cli/command-search.d.ts +85 -0
  24. package/dist/esm/cli/command-search.js +147 -0
  25. package/dist/esm/cli/command-search.js.map +1 -0
  26. package/dist/esm/cli/config.d.ts +10 -1
  27. package/dist/esm/cli/config.js +17 -9
  28. package/dist/esm/cli/config.js.map +1 -1
  29. package/dist/esm/cli/index.d.ts +2 -0
  30. package/dist/esm/cli/index.js +2 -0
  31. package/dist/esm/cli/index.js.map +1 -1
  32. package/dist/esm/cli/instance-command.d.ts +2 -0
  33. package/dist/esm/cli/mrt-command.d.ts +4 -2
  34. package/dist/esm/cli/mrt-command.js +4 -4
  35. package/dist/esm/cli/mrt-command.js.map +1 -1
  36. package/dist/esm/cli/oauth-command.d.ts +2 -0
  37. package/dist/esm/cli/oauth-command.js +8 -0
  38. package/dist/esm/cli/oauth-command.js.map +1 -1
  39. package/dist/esm/cli/ods-command.d.ts +2 -0
  40. package/dist/esm/cli/webdav-command.d.ts +2 -0
  41. package/dist/esm/clients/custom-apis.d.ts +36 -2
  42. package/dist/esm/clients/custom-apis.js +57 -4
  43. package/dist/esm/clients/custom-apis.js.map +1 -1
  44. package/dist/esm/clients/index.d.ts +1 -1
  45. package/dist/esm/clients/index.js +1 -1
  46. package/dist/esm/clients/index.js.map +1 -1
  47. package/dist/esm/clients/slas-shopper.generated.d.ts +2 -1
  48. package/dist/esm/config/dw-json-schema.d.ts +14 -0
  49. package/dist/esm/config/dw-json-schema.js +265 -0
  50. package/dist/esm/config/dw-json-schema.js.map +1 -0
  51. package/dist/esm/config/dw-json.d.ts +3 -0
  52. package/dist/esm/config/dw-json.js.map +1 -1
  53. package/dist/esm/config/index.d.ts +6 -2
  54. package/dist/esm/config/index.js +4 -2
  55. package/dist/esm/config/index.js.map +1 -1
  56. package/dist/esm/config/mapping.d.ts +5 -0
  57. package/dist/esm/config/mapping.js +21 -1
  58. package/dist/esm/config/mapping.js.map +1 -1
  59. package/dist/esm/config/project-environment.d.ts +62 -0
  60. package/dist/esm/config/project-environment.js +113 -0
  61. package/dist/esm/config/project-environment.js.map +1 -1
  62. package/dist/esm/config/resolved-config.js +1 -0
  63. package/dist/esm/config/resolved-config.js.map +1 -1
  64. package/dist/esm/config/resolver.js +52 -8
  65. package/dist/esm/config/resolver.js.map +1 -1
  66. package/dist/esm/config/sources/dw-json-source.js +25 -3
  67. package/dist/esm/config/sources/dw-json-source.js.map +1 -1
  68. package/dist/esm/config/sources/env-source.d.ts +42 -8
  69. package/dist/esm/config/sources/env-source.js +86 -50
  70. package/dist/esm/config/sources/env-source.js.map +1 -1
  71. package/dist/esm/config/sources/index.d.ts +1 -1
  72. package/dist/esm/config/sources/index.js +1 -1
  73. package/dist/esm/config/sources/index.js.map +1 -1
  74. package/dist/esm/config/types.d.ts +10 -3
  75. package/dist/esm/docs/search.js +4 -1
  76. package/dist/esm/docs/search.js.map +1 -1
  77. package/dist/esm/docs/types.d.ts +5 -1
  78. package/dist/esm/guidance/bundle.d.ts +33 -0
  79. package/dist/esm/guidance/bundle.js +268 -0
  80. package/dist/esm/guidance/bundle.js.map +1 -0
  81. package/dist/esm/guidance/catalog.d.ts +8 -1
  82. package/dist/esm/guidance/catalog.js +48 -6
  83. package/dist/esm/guidance/catalog.js.map +1 -1
  84. package/dist/esm/guidance/index.d.ts +1 -0
  85. package/dist/esm/guidance/index.js +1 -0
  86. package/dist/esm/guidance/index.js.map +1 -1
  87. package/dist/esm/guidance/types.d.ts +17 -1
  88. package/dist/esm/guidance/types.js.map +1 -1
  89. package/dist/esm/index.d.ts +1 -1
  90. package/dist/esm/index.js +1 -1
  91. package/dist/esm/index.js.map +1 -1
  92. package/dist/esm/instance/index.js +1 -0
  93. package/dist/esm/instance/index.js.map +1 -1
  94. package/dist/esm/openshell/apply.d.ts +90 -0
  95. package/dist/esm/openshell/apply.js +225 -0
  96. package/dist/esm/openshell/apply.js.map +1 -0
  97. package/dist/esm/openshell/index.d.ts +30 -0
  98. package/dist/esm/openshell/index.js +34 -0
  99. package/dist/esm/openshell/index.js.map +1 -0
  100. package/dist/esm/openshell/setup.d.ts +94 -0
  101. package/dist/esm/openshell/setup.js +307 -0
  102. package/dist/esm/openshell/setup.js.map +1 -0
  103. package/dist/esm/scapi/auth-primitives.js +1 -0
  104. package/dist/esm/scapi/auth-primitives.js.map +1 -1
  105. package/dist/esm/scapi/authentication.d.ts +19 -0
  106. package/dist/esm/scapi/authentication.js +65 -6
  107. package/dist/esm/scapi/authentication.js.map +1 -1
  108. package/dist/esm/scapi/catalog.d.ts +5 -0
  109. package/dist/esm/scapi/catalog.js.map +1 -1
  110. package/dist/esm/scapi/index.d.ts +8 -3
  111. package/dist/esm/scapi/index.js +5 -2
  112. package/dist/esm/scapi/index.js.map +1 -1
  113. package/dist/esm/scapi/live.d.ts +52 -0
  114. package/dist/esm/scapi/live.js +142 -0
  115. package/dist/esm/scapi/live.js.map +1 -0
  116. package/dist/esm/scapi/local.d.ts +9 -0
  117. package/dist/esm/scapi/local.js +91 -0
  118. package/dist/esm/scapi/local.js.map +1 -0
  119. package/dist/esm/scapi/request.d.ts +6 -0
  120. package/dist/esm/scapi/request.js +84 -61
  121. package/dist/esm/scapi/request.js.map +1 -1
  122. package/dist/esm/scapi/shopper.d.ts +31 -0
  123. package/dist/esm/scapi/shopper.js +79 -0
  124. package/dist/esm/scapi/shopper.js.map +1 -0
  125. package/dist/esm/scapi/worker-source.js +2 -2
  126. package/dist/esm/slas/index.d.ts +1 -1
  127. package/dist/esm/slas/index.js +1 -1
  128. package/dist/esm/slas/index.js.map +1 -1
  129. package/dist/esm/slas/token.d.ts +10 -0
  130. package/dist/esm/slas/token.js +27 -0
  131. package/dist/esm/slas/token.js.map +1 -1
  132. package/dist/esm/telemetry/telemetry.d.ts +1 -0
  133. package/dist/esm/telemetry/telemetry.js +18 -1
  134. package/dist/esm/telemetry/telemetry.js.map +1 -1
  135. package/dist/esm/telemetry/types.d.ts +9 -0
  136. package/dist/esm/test-utils/config-isolation.js +12 -13
  137. package/dist/esm/test-utils/config-isolation.js.map +1 -1
  138. package/dist/esm/ux/agent-context.d.ts +69 -0
  139. package/dist/esm/ux/agent-context.js +133 -0
  140. package/dist/esm/ux/agent-context.js.map +1 -0
  141. package/dist/esm/ux/confirm.d.ts +27 -0
  142. package/dist/esm/ux/confirm.js +32 -0
  143. package/dist/esm/ux/confirm.js.map +1 -1
  144. package/dist/esm/ux/index.d.ts +2 -1
  145. package/dist/esm/ux/index.js +2 -1
  146. package/dist/esm/ux/index.js.map +1 -1
  147. package/package.json +8 -1
  148. package/specs/slas-shopper-v1.yaml +2 -1
@@ -1,14 +1,41 @@
1
1
  export interface ConfirmOptions {
2
2
  /** Default to yes when the user presses Enter without typing. Defaults to false (no). */
3
3
  defaultYes?: boolean;
4
+ /**
5
+ * Behavior when prompting is not possible (no TTY on stdin, or an AI agent
6
+ * is driving the process):
7
+ *
8
+ * - `'error'` (default): throw {@link ConfirmationRequiredError} so the
9
+ * command fails fast with a non-zero exit instead of hanging
10
+ * - `'default'`: resolve to the default answer (`defaultYes`) without prompting
11
+ */
12
+ nonInteractive?: 'default' | 'error';
13
+ }
14
+ /**
15
+ * Thrown by {@link confirm} when a confirmation is required but cannot be
16
+ * prompted for. Callers should skip the prompt with an explicit flag
17
+ * (typically `--force` or `--yes`).
18
+ */
19
+ export declare class ConfirmationRequiredError extends Error {
20
+ /** The confirmation message that could not be prompted. */
21
+ readonly prompt: string;
22
+ readonly code = "CONFIRMATION_REQUIRED";
23
+ constructor(
24
+ /** The confirmation message that could not be prompted. */
25
+ prompt: string);
4
26
  }
5
27
  /**
6
28
  * Simple yes/no confirmation prompt.
7
29
  *
8
30
  * Output goes to stderr so it doesn't interfere with structured stdout output.
9
31
  *
32
+ * When prompting is not possible (stdin is not a TTY, or an AI agent is
33
+ * detected), this throws {@link ConfirmationRequiredError} by default rather
34
+ * than waiting on input that will never arrive. See {@link ConfirmOptions.nonInteractive}.
35
+ *
10
36
  * @param message - Prompt message (the hint is appended automatically)
11
37
  * @param options - Options to control default behavior
12
38
  * @returns true if user confirmed, false otherwise
39
+ * @throws ConfirmationRequiredError when prompting is not possible and `nonInteractive` is `'error'`
13
40
  */
14
41
  export declare function confirm(message: string, options?: ConfirmOptions): Promise<boolean>;
@@ -4,17 +4,49 @@
4
4
  * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
6
  import * as readline from 'node:readline';
7
+ import { getAgentContext, isInteractive } from './agent-context.js';
8
+ /**
9
+ * Thrown by {@link confirm} when a confirmation is required but cannot be
10
+ * prompted for. Callers should skip the prompt with an explicit flag
11
+ * (typically `--force` or `--yes`).
12
+ */
13
+ export class ConfirmationRequiredError extends Error {
14
+ prompt;
15
+ code = 'CONFIRMATION_REQUIRED';
16
+ constructor(
17
+ /** The confirmation message that could not be prompted. */
18
+ prompt) {
19
+ const agent = getAgentContext().harness;
20
+ const reason = agent
21
+ ? `running under an AI agent (${agent.name}), so interactive prompts are disabled`
22
+ : 'no interactive terminal is available';
23
+ super(`Confirmation required but ${reason}:\n ${prompt.trim()}\n` +
24
+ `Re-run with the command's --force (or --yes) flag to proceed without prompting.`);
25
+ this.prompt = prompt;
26
+ this.name = 'ConfirmationRequiredError';
27
+ }
28
+ }
7
29
  /**
8
30
  * Simple yes/no confirmation prompt.
9
31
  *
10
32
  * Output goes to stderr so it doesn't interfere with structured stdout output.
11
33
  *
34
+ * When prompting is not possible (stdin is not a TTY, or an AI agent is
35
+ * detected), this throws {@link ConfirmationRequiredError} by default rather
36
+ * than waiting on input that will never arrive. See {@link ConfirmOptions.nonInteractive}.
37
+ *
12
38
  * @param message - Prompt message (the hint is appended automatically)
13
39
  * @param options - Options to control default behavior
14
40
  * @returns true if user confirmed, false otherwise
41
+ * @throws ConfirmationRequiredError when prompting is not possible and `nonInteractive` is `'error'`
15
42
  */
16
43
  export async function confirm(message, options) {
17
44
  const defaultYes = options?.defaultYes ?? false;
45
+ if (!isInteractive()) {
46
+ if (options?.nonInteractive === 'default')
47
+ return defaultYes;
48
+ throw new ConfirmationRequiredError(message);
49
+ }
18
50
  const hint = defaultYes ? '(Y/n)' : '(y/N)';
19
51
  const rl = readline.createInterface({
20
52
  input: process.stdin,
@@ -1 +1 @@
1
- {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../../src/ux/confirm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAO1C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,OAAwB;IACrE,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,KAAK,CAAC;IAChD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAE5C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,GAAG,OAAO,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;YAC5C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;gBACtB,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../../src/ux/confirm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAgBlE;;;;GAIG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAKvC;IAJF,IAAI,GAAG,uBAAuB,CAAC;IAExC;IACE,2DAA2D;IAClD,MAAc;QAEvB,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC,OAAO,CAAC;QACxC,MAAM,MAAM,GAAG,KAAK;YAClB,CAAC,CAAC,8BAA8B,KAAK,CAAC,IAAI,wCAAwC;YAClF,CAAC,CAAC,sCAAsC,CAAC;QAC3C,KAAK,CACH,6BAA6B,MAAM,QAAQ,MAAM,CAAC,IAAI,EAAE,IAAI;YAC1D,iFAAiF,CACpF,CAAC;QATO,WAAM,GAAN,MAAM,CAAQ;QAUvB,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,OAAwB;IACrE,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,KAAK,CAAC;IAEhD,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;QACrB,IAAI,OAAO,EAAE,cAAc,KAAK,SAAS;YAAE,OAAO,UAAU,CAAC;QAC7D,MAAM,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAE5C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,GAAG,OAAO,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;YAC5C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;gBACtB,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1,2 @@
1
- export { confirm, type ConfirmOptions } from './confirm.js';
1
+ export { confirm, ConfirmationRequiredError, type ConfirmOptions } from './confirm.js';
2
+ export { agentDetectors, detectAgentContext, getAgentContext, isInteractive, resetAgentContext, type AgentContext, type AgentDetector, type AgentEnvironment, type AgentHarness, type AgentMatch, } from './agent-context.js';
@@ -3,5 +3,6 @@
3
3
  * SPDX-License-Identifier: Apache-2
4
4
  * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
- export { confirm } from './confirm.js';
6
+ export { confirm, ConfirmationRequiredError } from './confirm.js';
7
+ export { agentDetectors, detectAgentContext, getAgentContext, isInteractive, resetAgentContext, } from './agent-context.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ux/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,OAAO,EAAsB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ux/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,OAAO,EAAE,yBAAyB,EAAsB,MAAM,cAAc,CAAC;AACrF,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,iBAAiB,GAMlB,MAAM,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@salesforce/b2c-tooling-sdk",
3
3
  "description": "Core tooling library for Salesforce B2C Commerce CLI",
4
- "version": "2.2.0",
4
+ "version": "2.4.0",
5
5
  "author": "Charles Lavery",
6
6
  "license": "Apache-2.0",
7
7
  "repository": "SalesforceCommerceCloud/b2c-developer-tooling",
@@ -28,6 +28,7 @@
28
28
  "default": "./dist/esm/scapi/index.js"
29
29
  },
30
30
  "./package.json": "./package.json",
31
+ "./schemas/dw.schema.json": "./data/schemas/dw.schema.json",
31
32
  ".": {
32
33
  "types": "./dist/esm/index.d.ts",
33
34
  "default": "./dist/esm/index.js"
@@ -64,6 +65,10 @@
64
65
  "types": "./dist/esm/schemas/index.d.ts",
65
66
  "default": "./dist/esm/schemas/index.js"
66
67
  },
68
+ "./openshell": {
69
+ "types": "./dist/esm/openshell/index.d.ts",
70
+ "default": "./dist/esm/openshell/index.js"
71
+ },
67
72
  "./operations/logs": {
68
73
  "types": "./dist/esm/operations/logs/index.d.ts",
69
74
  "default": "./dist/esm/operations/logs/index.js"
@@ -294,6 +299,8 @@
294
299
  "check:guides-links": "tsx scripts/check-guides-links.ts",
295
300
  "generate:tooling-index": "tsx scripts/generate-tooling-index.ts",
296
301
  "check:tooling-index": "tsx scripts/generate-tooling-index.ts --check",
302
+ "generate:dw-json-schema": "tsx scripts/generate-dw-json-schema.ts",
303
+ "check:dw-json-schema": "tsx scripts/generate-dw-json-schema.ts --check",
297
304
  "generate:help-corpus": "tsx scripts/generate-help-corpus.ts",
298
305
  "enrich:docs": "tsx scripts/enrich-docs.ts"
299
306
  }
@@ -42,12 +42,13 @@ paths:
42
42
  type: object
43
43
  required: [grant_type, channel_id]
44
44
  properties:
45
- grant_type: {type: string, enum: [client_credentials, authorization_code_pkce]}
45
+ grant_type: {type: string, enum: [client_credentials, authorization_code_pkce, refresh_token]}
46
46
  channel_id: {type: string}
47
47
  client_id: {type: string}
48
48
  code: {type: string}
49
49
  code_verifier: {type: string}
50
50
  redirect_uri: {type: string}
51
+ refresh_token: {type: string}
51
52
  usid: {type: string}
52
53
  responses:
53
54
  '200':