@salesforce/b2c-tooling-sdk 0.3.0 → 0.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 (350) hide show
  1. package/README.md +180 -13
  2. package/data/scaffolds/cartridge/files/.project.ejs +17 -0
  3. package/data/scaffolds/cartridge/files/cartridge/cartridge.properties.ejs +4 -0
  4. package/data/scaffolds/cartridge/files/cartridge/controllers/Example.js.ejs +19 -0
  5. package/data/scaffolds/cartridge/files/cartridge/models/example.js.ejs +14 -0
  6. package/data/scaffolds/cartridge/files/cartridge/scripts/helpers/exampleHelpers.js.ejs +18 -0
  7. package/data/scaffolds/cartridge/files/cartridge/static/default/css/example.css +6 -0
  8. package/data/scaffolds/cartridge/files/cartridge/templates/default/example/show.isml.ejs +11 -0
  9. package/data/scaffolds/cartridge/scaffold.json +88 -0
  10. package/data/scaffolds/controller/files/controller.js.ejs +134 -0
  11. package/data/scaffolds/controller/files/template.isml.ejs +22 -0
  12. package/data/scaffolds/controller/scaffold.json +64 -0
  13. package/data/scaffolds/custom-api/files/api.json.ejs +11 -0
  14. package/data/scaffolds/custom-api/files/schema.yaml.ejs +188 -0
  15. package/data/scaffolds/custom-api/files/script.js.ejs +95 -0
  16. package/data/scaffolds/custom-api/scaffold.json +65 -0
  17. package/data/scaffolds/hook/files/hook.js.ejs +99 -0
  18. package/data/scaffolds/hook/files/hooks-entry.json.ejs +6 -0
  19. package/data/scaffolds/hook/scaffold.json +60 -0
  20. package/data/scaffolds/job-step/files/step-chunk.js.ejs +136 -0
  21. package/data/scaffolds/job-step/files/step-task.js.ejs +47 -0
  22. package/data/scaffolds/job-step/files/steptypes-entry.json.ejs +41 -0
  23. package/data/scaffolds/job-step/scaffold.json +64 -0
  24. package/data/scaffolds/page-designer-component/files/component.isml.ejs +23 -0
  25. package/data/scaffolds/page-designer-component/files/component.js.ejs +35 -0
  26. package/data/scaffolds/page-designer-component/files/component.json.ejs +50 -0
  27. package/data/scaffolds/page-designer-component/scaffold.json +66 -0
  28. package/data/scaffolds/service/files/service-http.js.ejs +245 -0
  29. package/data/scaffolds/service/files/service-sftp.js.ejs +371 -0
  30. package/data/scaffolds/service/files/service-soap.js.ejs +230 -0
  31. package/data/scaffolds/service/scaffold.json +83 -0
  32. package/data/script-api/dw.extensions.payments.SalesforcePaymentsMgr.md +48 -0
  33. package/data/script-api/dw.system.Request.md +5 -0
  34. package/data/script-api/dw.web.Cookie.md +108 -31
  35. package/data/script-api/index.json +2 -2
  36. package/data/script-api/index.md +1 -1
  37. package/dist/cjs/auth/oauth-implicit.d.ts +1 -0
  38. package/dist/cjs/auth/oauth-implicit.js +8 -3
  39. package/dist/cjs/auth/oauth-implicit.js.map +1 -1
  40. package/dist/cjs/auth/oauth.d.ts +1 -0
  41. package/dist/cjs/auth/oauth.js +8 -3
  42. package/dist/cjs/auth/oauth.js.map +1 -1
  43. package/dist/cjs/auth/types.d.ts +5 -0
  44. package/dist/cjs/auth/types.js.map +1 -1
  45. package/dist/cjs/cli/am-command.d.ts +74 -0
  46. package/dist/cjs/cli/am-command.js +189 -0
  47. package/dist/cjs/cli/am-command.js.map +1 -0
  48. package/dist/cjs/cli/base-command.d.ts +38 -0
  49. package/dist/cjs/cli/base-command.js +142 -0
  50. package/dist/cjs/cli/base-command.js.map +1 -1
  51. package/dist/cjs/cli/config.d.ts +9 -0
  52. package/dist/cjs/cli/config.js +19 -2
  53. package/dist/cjs/cli/config.js.map +1 -1
  54. package/dist/cjs/cli/index.d.ts +1 -0
  55. package/dist/cjs/cli/index.js +1 -0
  56. package/dist/cjs/cli/index.js.map +1 -1
  57. package/dist/cjs/cli/instance-command.d.ts +1 -0
  58. package/dist/cjs/cli/oauth-command.d.ts +21 -1
  59. package/dist/cjs/cli/oauth-command.js +52 -7
  60. package/dist/cjs/cli/oauth-command.js.map +1 -1
  61. package/dist/cjs/cli/ods-command.d.ts +5 -1
  62. package/dist/cjs/cli/ods-command.js +10 -4
  63. package/dist/cjs/cli/ods-command.js.map +1 -1
  64. package/dist/cjs/cli/webdav-command.d.ts +1 -0
  65. package/dist/cjs/clients/am-api.d.ts +491 -0
  66. package/dist/cjs/clients/am-api.js +944 -0
  67. package/dist/cjs/clients/am-api.js.map +1 -0
  68. package/dist/cjs/clients/am-apiclients-api.generated.d.ts +803 -0
  69. package/dist/cjs/clients/am-apiclients-api.generated.js +6 -0
  70. package/dist/cjs/clients/am-apiclients-api.generated.js.map +1 -0
  71. package/dist/cjs/clients/am-roles-api.generated.d.ts +298 -0
  72. package/dist/cjs/clients/am-roles-api.generated.js +6 -0
  73. package/dist/cjs/clients/am-roles-api.generated.js.map +1 -0
  74. package/dist/cjs/clients/am-users-api.generated.d.ts +891 -0
  75. package/dist/cjs/clients/am-users-api.generated.js +6 -0
  76. package/dist/cjs/clients/am-users-api.generated.js.map +1 -0
  77. package/dist/cjs/clients/index.d.ts +4 -2
  78. package/dist/cjs/clients/index.js +2 -1
  79. package/dist/cjs/clients/index.js.map +1 -1
  80. package/dist/cjs/clients/middleware-registry.d.ts +1 -1
  81. package/dist/cjs/clients/middleware-registry.js.map +1 -1
  82. package/dist/cjs/clients/middleware.d.ts +49 -2
  83. package/dist/cjs/clients/middleware.js +214 -2
  84. package/dist/cjs/clients/middleware.js.map +1 -1
  85. package/dist/cjs/clients/mrt.js +5 -1
  86. package/dist/cjs/clients/mrt.js.map +1 -1
  87. package/dist/cjs/config/dw-json.d.ts +104 -33
  88. package/dist/cjs/config/dw-json.js +167 -2
  89. package/dist/cjs/config/dw-json.js.map +1 -1
  90. package/dist/cjs/config/index.d.ts +6 -4
  91. package/dist/cjs/config/index.js +6 -2
  92. package/dist/cjs/config/index.js.map +1 -1
  93. package/dist/cjs/config/instance-manager.d.ts +97 -0
  94. package/dist/cjs/config/instance-manager.js +166 -0
  95. package/dist/cjs/config/instance-manager.js.map +1 -0
  96. package/dist/cjs/config/mapping.d.ts +63 -5
  97. package/dist/cjs/config/mapping.js +165 -20
  98. package/dist/cjs/config/mapping.js.map +1 -1
  99. package/dist/cjs/config/sources/dw-json-source.d.ts +17 -1
  100. package/dist/cjs/config/sources/dw-json-source.js +70 -3
  101. package/dist/cjs/config/sources/dw-json-source.js.map +1 -1
  102. package/dist/cjs/config/sources/package-json-source.js +6 -3
  103. package/dist/cjs/config/sources/package-json-source.js.map +1 -1
  104. package/dist/cjs/config/types.d.ts +72 -0
  105. package/dist/cjs/defaults.d.ts +6 -0
  106. package/dist/cjs/defaults.js +6 -0
  107. package/dist/cjs/defaults.js.map +1 -1
  108. package/dist/cjs/i18n/index.js +3 -0
  109. package/dist/cjs/i18n/index.js.map +1 -1
  110. package/dist/cjs/index.d.ts +8 -4
  111. package/dist/cjs/index.js +9 -3
  112. package/dist/cjs/index.js.map +1 -1
  113. package/dist/cjs/logging/logger.js +13 -1
  114. package/dist/cjs/logging/logger.js.map +1 -1
  115. package/dist/cjs/operations/content/asset-query.d.ts +22 -0
  116. package/dist/cjs/operations/content/asset-query.js +77 -0
  117. package/dist/cjs/operations/content/asset-query.js.map +1 -0
  118. package/dist/cjs/operations/content/export.d.ts +57 -0
  119. package/dist/cjs/operations/content/export.js +224 -0
  120. package/dist/cjs/operations/content/export.js.map +1 -0
  121. package/dist/cjs/operations/content/index.d.ts +43 -0
  122. package/dist/cjs/operations/content/index.js +48 -0
  123. package/dist/cjs/operations/content/index.js.map +1 -0
  124. package/dist/cjs/operations/content/library.d.ts +137 -0
  125. package/dist/cjs/operations/content/library.js +392 -0
  126. package/dist/cjs/operations/content/library.js.map +1 -0
  127. package/dist/cjs/operations/content/types.d.ts +144 -0
  128. package/dist/cjs/operations/content/types.js +7 -0
  129. package/dist/cjs/operations/content/types.js.map +1 -0
  130. package/dist/cjs/operations/mrt/b2c-config.js +19 -4
  131. package/dist/cjs/operations/mrt/b2c-config.js.map +1 -1
  132. package/dist/cjs/operations/mrt/index.d.ts +2 -0
  133. package/dist/cjs/operations/mrt/index.js +2 -0
  134. package/dist/cjs/operations/mrt/index.js.map +1 -1
  135. package/dist/cjs/operations/mrt/tail-logs.d.ts +130 -0
  136. package/dist/cjs/operations/mrt/tail-logs.js +223 -0
  137. package/dist/cjs/operations/mrt/tail-logs.js.map +1 -0
  138. package/dist/cjs/operations/ods/index.d.ts +2 -0
  139. package/dist/cjs/operations/ods/index.js +1 -0
  140. package/dist/cjs/operations/ods/index.js.map +1 -1
  141. package/dist/cjs/operations/ods/wait-for-sandbox.d.ts +64 -0
  142. package/dist/cjs/operations/ods/wait-for-sandbox.js +114 -0
  143. package/dist/cjs/operations/ods/wait-for-sandbox.js.map +1 -0
  144. package/dist/cjs/operations/orgs/index.d.ts +74 -0
  145. package/dist/cjs/operations/orgs/index.js +33 -0
  146. package/dist/cjs/operations/orgs/index.js.map +1 -0
  147. package/dist/cjs/operations/roles/index.d.ts +43 -0
  148. package/dist/cjs/operations/roles/index.js +48 -0
  149. package/dist/cjs/operations/roles/index.js.map +1 -0
  150. package/dist/cjs/operations/users/index.d.ts +143 -0
  151. package/dist/cjs/operations/users/index.js +141 -0
  152. package/dist/cjs/operations/users/index.js.map +1 -0
  153. package/dist/cjs/scaffold/engine.d.ts +68 -0
  154. package/dist/cjs/scaffold/engine.js +149 -0
  155. package/dist/cjs/scaffold/engine.js.map +1 -0
  156. package/dist/cjs/scaffold/executor.d.ts +36 -0
  157. package/dist/cjs/scaffold/executor.js +285 -0
  158. package/dist/cjs/scaffold/executor.js.map +1 -0
  159. package/dist/cjs/scaffold/index.d.ts +74 -0
  160. package/dist/cjs/scaffold/index.js +23 -0
  161. package/dist/cjs/scaffold/index.js.map +1 -0
  162. package/dist/cjs/scaffold/merge.d.ts +56 -0
  163. package/dist/cjs/scaffold/merge.js +183 -0
  164. package/dist/cjs/scaffold/merge.js.map +1 -0
  165. package/dist/cjs/scaffold/parameter-resolver.d.ts +86 -0
  166. package/dist/cjs/scaffold/parameter-resolver.js +179 -0
  167. package/dist/cjs/scaffold/parameter-resolver.js.map +1 -0
  168. package/dist/cjs/scaffold/registry.d.ts +45 -0
  169. package/dist/cjs/scaffold/registry.js +219 -0
  170. package/dist/cjs/scaffold/registry.js.map +1 -0
  171. package/dist/cjs/scaffold/sources.d.ts +45 -0
  172. package/dist/cjs/scaffold/sources.js +113 -0
  173. package/dist/cjs/scaffold/sources.js.map +1 -0
  174. package/dist/cjs/scaffold/types.d.ts +280 -0
  175. package/dist/cjs/scaffold/types.js +14 -0
  176. package/dist/cjs/scaffold/types.js.map +1 -0
  177. package/dist/cjs/scaffold/validation.d.ts +81 -0
  178. package/dist/cjs/scaffold/validation.js +250 -0
  179. package/dist/cjs/scaffold/validation.js.map +1 -0
  180. package/dist/cjs/scaffold/validators.d.ts +33 -0
  181. package/dist/cjs/scaffold/validators.js +334 -0
  182. package/dist/cjs/scaffold/validators.js.map +1 -0
  183. package/dist/cjs/telemetry/index.d.ts +26 -0
  184. package/dist/cjs/telemetry/index.js +32 -0
  185. package/dist/cjs/telemetry/index.js.map +1 -0
  186. package/dist/cjs/telemetry/telemetry.d.ts +90 -0
  187. package/dist/cjs/telemetry/telemetry.js +283 -0
  188. package/dist/cjs/telemetry/telemetry.js.map +1 -0
  189. package/dist/cjs/telemetry/types.d.ts +62 -0
  190. package/dist/cjs/telemetry/types.js +7 -0
  191. package/dist/cjs/telemetry/types.js.map +1 -0
  192. package/dist/esm/auth/oauth-implicit.d.ts +1 -0
  193. package/dist/esm/auth/oauth-implicit.js +8 -3
  194. package/dist/esm/auth/oauth-implicit.js.map +1 -1
  195. package/dist/esm/auth/oauth.d.ts +1 -0
  196. package/dist/esm/auth/oauth.js +8 -3
  197. package/dist/esm/auth/oauth.js.map +1 -1
  198. package/dist/esm/auth/types.d.ts +5 -0
  199. package/dist/esm/auth/types.js.map +1 -1
  200. package/dist/esm/cli/am-command.d.ts +74 -0
  201. package/dist/esm/cli/am-command.js +196 -0
  202. package/dist/esm/cli/am-command.js.map +1 -0
  203. package/dist/esm/cli/base-command.d.ts +38 -0
  204. package/dist/esm/cli/base-command.js +142 -0
  205. package/dist/esm/cli/base-command.js.map +1 -1
  206. package/dist/esm/cli/config.d.ts +9 -0
  207. package/dist/esm/cli/config.js +19 -2
  208. package/dist/esm/cli/config.js.map +1 -1
  209. package/dist/esm/cli/index.d.ts +1 -0
  210. package/dist/esm/cli/index.js +1 -0
  211. package/dist/esm/cli/index.js.map +1 -1
  212. package/dist/esm/cli/instance-command.d.ts +1 -0
  213. package/dist/esm/cli/oauth-command.d.ts +21 -1
  214. package/dist/esm/cli/oauth-command.js +52 -7
  215. package/dist/esm/cli/oauth-command.js.map +1 -1
  216. package/dist/esm/cli/ods-command.d.ts +5 -1
  217. package/dist/esm/cli/ods-command.js +10 -4
  218. package/dist/esm/cli/ods-command.js.map +1 -1
  219. package/dist/esm/cli/webdav-command.d.ts +1 -0
  220. package/dist/esm/clients/am-api.d.ts +491 -0
  221. package/dist/esm/clients/am-api.js +944 -0
  222. package/dist/esm/clients/am-api.js.map +1 -0
  223. package/dist/esm/clients/am-apiclients-api.generated.d.ts +803 -0
  224. package/dist/esm/clients/am-apiclients-api.generated.js +6 -0
  225. package/dist/esm/clients/am-apiclients-api.generated.js.map +1 -0
  226. package/dist/esm/clients/am-roles-api.generated.d.ts +298 -0
  227. package/dist/esm/clients/am-roles-api.generated.js +6 -0
  228. package/dist/esm/clients/am-roles-api.generated.js.map +1 -0
  229. package/dist/esm/clients/am-users-api.generated.d.ts +891 -0
  230. package/dist/esm/clients/am-users-api.generated.js +6 -0
  231. package/dist/esm/clients/am-users-api.generated.js.map +1 -0
  232. package/dist/esm/clients/index.d.ts +4 -2
  233. package/dist/esm/clients/index.js +2 -1
  234. package/dist/esm/clients/index.js.map +1 -1
  235. package/dist/esm/clients/middleware-registry.d.ts +1 -1
  236. package/dist/esm/clients/middleware-registry.js.map +1 -1
  237. package/dist/esm/clients/middleware.d.ts +49 -2
  238. package/dist/esm/clients/middleware.js +214 -2
  239. package/dist/esm/clients/middleware.js.map +1 -1
  240. package/dist/esm/clients/mrt.js +5 -1
  241. package/dist/esm/clients/mrt.js.map +1 -1
  242. package/dist/esm/config/dw-json.d.ts +104 -33
  243. package/dist/esm/config/dw-json.js +167 -2
  244. package/dist/esm/config/dw-json.js.map +1 -1
  245. package/dist/esm/config/index.d.ts +6 -4
  246. package/dist/esm/config/index.js +6 -2
  247. package/dist/esm/config/index.js.map +1 -1
  248. package/dist/esm/config/instance-manager.d.ts +97 -0
  249. package/dist/esm/config/instance-manager.js +166 -0
  250. package/dist/esm/config/instance-manager.js.map +1 -0
  251. package/dist/esm/config/mapping.d.ts +63 -5
  252. package/dist/esm/config/mapping.js +165 -20
  253. package/dist/esm/config/mapping.js.map +1 -1
  254. package/dist/esm/config/sources/dw-json-source.d.ts +17 -1
  255. package/dist/esm/config/sources/dw-json-source.js +70 -3
  256. package/dist/esm/config/sources/dw-json-source.js.map +1 -1
  257. package/dist/esm/config/sources/package-json-source.js +6 -3
  258. package/dist/esm/config/sources/package-json-source.js.map +1 -1
  259. package/dist/esm/config/types.d.ts +72 -0
  260. package/dist/esm/defaults.d.ts +6 -0
  261. package/dist/esm/defaults.js +6 -0
  262. package/dist/esm/defaults.js.map +1 -1
  263. package/dist/esm/i18n/index.js +3 -0
  264. package/dist/esm/i18n/index.js.map +1 -1
  265. package/dist/esm/index.d.ts +8 -4
  266. package/dist/esm/index.js +9 -3
  267. package/dist/esm/index.js.map +1 -1
  268. package/dist/esm/logging/logger.js +13 -1
  269. package/dist/esm/logging/logger.js.map +1 -1
  270. package/dist/esm/operations/content/asset-query.d.ts +22 -0
  271. package/dist/esm/operations/content/asset-query.js +77 -0
  272. package/dist/esm/operations/content/asset-query.js.map +1 -0
  273. package/dist/esm/operations/content/export.d.ts +57 -0
  274. package/dist/esm/operations/content/export.js +224 -0
  275. package/dist/esm/operations/content/export.js.map +1 -0
  276. package/dist/esm/operations/content/index.d.ts +43 -0
  277. package/dist/esm/operations/content/index.js +48 -0
  278. package/dist/esm/operations/content/index.js.map +1 -0
  279. package/dist/esm/operations/content/library.d.ts +137 -0
  280. package/dist/esm/operations/content/library.js +392 -0
  281. package/dist/esm/operations/content/library.js.map +1 -0
  282. package/dist/esm/operations/content/types.d.ts +144 -0
  283. package/dist/esm/operations/content/types.js +7 -0
  284. package/dist/esm/operations/content/types.js.map +1 -0
  285. package/dist/esm/operations/mrt/b2c-config.js +19 -4
  286. package/dist/esm/operations/mrt/b2c-config.js.map +1 -1
  287. package/dist/esm/operations/mrt/index.d.ts +2 -0
  288. package/dist/esm/operations/mrt/index.js +2 -0
  289. package/dist/esm/operations/mrt/index.js.map +1 -1
  290. package/dist/esm/operations/mrt/tail-logs.d.ts +130 -0
  291. package/dist/esm/operations/mrt/tail-logs.js +223 -0
  292. package/dist/esm/operations/mrt/tail-logs.js.map +1 -0
  293. package/dist/esm/operations/ods/index.d.ts +2 -0
  294. package/dist/esm/operations/ods/index.js +1 -0
  295. package/dist/esm/operations/ods/index.js.map +1 -1
  296. package/dist/esm/operations/ods/wait-for-sandbox.d.ts +64 -0
  297. package/dist/esm/operations/ods/wait-for-sandbox.js +114 -0
  298. package/dist/esm/operations/ods/wait-for-sandbox.js.map +1 -0
  299. package/dist/esm/operations/orgs/index.d.ts +74 -0
  300. package/dist/esm/operations/orgs/index.js +33 -0
  301. package/dist/esm/operations/orgs/index.js.map +1 -0
  302. package/dist/esm/operations/roles/index.d.ts +43 -0
  303. package/dist/esm/operations/roles/index.js +48 -0
  304. package/dist/esm/operations/roles/index.js.map +1 -0
  305. package/dist/esm/operations/users/index.d.ts +143 -0
  306. package/dist/esm/operations/users/index.js +141 -0
  307. package/dist/esm/operations/users/index.js.map +1 -0
  308. package/dist/esm/scaffold/engine.d.ts +68 -0
  309. package/dist/esm/scaffold/engine.js +149 -0
  310. package/dist/esm/scaffold/engine.js.map +1 -0
  311. package/dist/esm/scaffold/executor.d.ts +36 -0
  312. package/dist/esm/scaffold/executor.js +285 -0
  313. package/dist/esm/scaffold/executor.js.map +1 -0
  314. package/dist/esm/scaffold/index.d.ts +74 -0
  315. package/dist/esm/scaffold/index.js +23 -0
  316. package/dist/esm/scaffold/index.js.map +1 -0
  317. package/dist/esm/scaffold/merge.d.ts +56 -0
  318. package/dist/esm/scaffold/merge.js +183 -0
  319. package/dist/esm/scaffold/merge.js.map +1 -0
  320. package/dist/esm/scaffold/parameter-resolver.d.ts +86 -0
  321. package/dist/esm/scaffold/parameter-resolver.js +179 -0
  322. package/dist/esm/scaffold/parameter-resolver.js.map +1 -0
  323. package/dist/esm/scaffold/registry.d.ts +45 -0
  324. package/dist/esm/scaffold/registry.js +219 -0
  325. package/dist/esm/scaffold/registry.js.map +1 -0
  326. package/dist/esm/scaffold/sources.d.ts +45 -0
  327. package/dist/esm/scaffold/sources.js +113 -0
  328. package/dist/esm/scaffold/sources.js.map +1 -0
  329. package/dist/esm/scaffold/types.d.ts +280 -0
  330. package/dist/esm/scaffold/types.js +14 -0
  331. package/dist/esm/scaffold/types.js.map +1 -0
  332. package/dist/esm/scaffold/validation.d.ts +81 -0
  333. package/dist/esm/scaffold/validation.js +250 -0
  334. package/dist/esm/scaffold/validation.js.map +1 -0
  335. package/dist/esm/scaffold/validators.d.ts +33 -0
  336. package/dist/esm/scaffold/validators.js +334 -0
  337. package/dist/esm/scaffold/validators.js.map +1 -0
  338. package/dist/esm/telemetry/index.d.ts +26 -0
  339. package/dist/esm/telemetry/index.js +32 -0
  340. package/dist/esm/telemetry/index.js.map +1 -0
  341. package/dist/esm/telemetry/telemetry.d.ts +90 -0
  342. package/dist/esm/telemetry/telemetry.js +283 -0
  343. package/dist/esm/telemetry/telemetry.js.map +1 -0
  344. package/dist/esm/telemetry/types.d.ts +62 -0
  345. package/dist/esm/telemetry/types.js +7 -0
  346. package/dist/esm/telemetry/types.js.map +1 -0
  347. package/package.json +86 -17
  348. package/specs/am-apiclients-api-v1.yaml +965 -0
  349. package/specs/am-roles-api-v1.yaml +316 -0
  350. package/specs/am-users-api-v1.yaml +1102 -0
@@ -0,0 +1,334 @@
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
+ /** Valid parameter types */
7
+ const VALID_PARAMETER_TYPES = ['string', 'boolean', 'choice', 'multi-choice'];
8
+ /** Reserved variable names that cannot be used as parameter names */
9
+ const RESERVED_NAMES = ['kebabCase', 'camelCase', 'pascalCase', 'snakeCase', 'year', 'date', 'uuid'];
10
+ /** Valid dynamic parameter sources */
11
+ const VALID_SOURCES = ['cartridges', 'hook-points', 'sites'];
12
+ /**
13
+ * Validate a scaffold manifest
14
+ * @param manifest - The manifest to validate
15
+ * @returns Array of validation error messages (empty if valid)
16
+ */
17
+ export function validateScaffoldManifest(manifest) {
18
+ const errors = [];
19
+ if (!manifest || typeof manifest !== 'object') {
20
+ return ['Manifest must be an object'];
21
+ }
22
+ const m = manifest;
23
+ // Required fields
24
+ if (!m.name || typeof m.name !== 'string') {
25
+ errors.push('Manifest must have a "name" field (string)');
26
+ }
27
+ else if (!/^[a-z][a-z0-9-]*[a-z0-9]$/.test(m.name) && m.name.length > 1) {
28
+ errors.push('Manifest "name" must be kebab-case (lowercase letters, numbers, hyphens)');
29
+ }
30
+ if (!m.displayName || typeof m.displayName !== 'string') {
31
+ errors.push('Manifest must have a "displayName" field (string)');
32
+ }
33
+ if (!m.description || typeof m.description !== 'string') {
34
+ errors.push('Manifest must have a "description" field (string)');
35
+ }
36
+ if (!m.category || typeof m.category !== 'string') {
37
+ errors.push('Manifest must have a "category" field (string)');
38
+ }
39
+ // Parameters validation
40
+ if (!Array.isArray(m.parameters)) {
41
+ errors.push('Manifest must have a "parameters" array');
42
+ }
43
+ else {
44
+ const paramNames = new Set();
45
+ for (let i = 0; i < m.parameters.length; i++) {
46
+ const param = m.parameters[i];
47
+ const prefix = `parameters[${i}]`;
48
+ if (!param || typeof param !== 'object') {
49
+ errors.push(`${prefix}: must be an object`);
50
+ continue;
51
+ }
52
+ const p = param;
53
+ if (!p.name || typeof p.name !== 'string') {
54
+ errors.push(`${prefix}: must have a "name" field (string)`);
55
+ }
56
+ else {
57
+ if (!/^[a-z][a-zA-Z0-9]*$/.test(p.name)) {
58
+ errors.push(`${prefix}: "name" must be camelCase (start with lowercase letter)`);
59
+ }
60
+ if (paramNames.has(p.name)) {
61
+ errors.push(`${prefix}: duplicate parameter name "${p.name}"`);
62
+ }
63
+ if (RESERVED_NAMES.includes(p.name)) {
64
+ errors.push(`${prefix}: "${p.name}" is a reserved name`);
65
+ }
66
+ paramNames.add(p.name);
67
+ }
68
+ if (!p.prompt || typeof p.prompt !== 'string') {
69
+ errors.push(`${prefix}: must have a "prompt" field (string)`);
70
+ }
71
+ if (!p.type || typeof p.type !== 'string') {
72
+ errors.push(`${prefix}: must have a "type" field (string)`);
73
+ }
74
+ else if (!VALID_PARAMETER_TYPES.includes(p.type)) {
75
+ errors.push(`${prefix}: "type" must be one of: ${VALID_PARAMETER_TYPES.join(', ')}`);
76
+ }
77
+ if (typeof p.required !== 'boolean') {
78
+ errors.push(`${prefix}: must have a "required" field (boolean)`);
79
+ }
80
+ // Source validation
81
+ if (p.source !== undefined) {
82
+ if (typeof p.source !== 'string') {
83
+ errors.push(`${prefix}: "source" must be a string`);
84
+ }
85
+ else if (!VALID_SOURCES.includes(p.source)) {
86
+ errors.push(`${prefix}: "source" must be one of: ${VALID_SOURCES.join(', ')}`);
87
+ }
88
+ }
89
+ // Choice validation (choices are optional if source is provided)
90
+ if ((p.type === 'choice' || p.type === 'multi-choice') && !Array.isArray(p.choices) && !p.source) {
91
+ errors.push(`${prefix}: choice/multi-choice types must have a "choices" array or a "source" field`);
92
+ }
93
+ else if (Array.isArray(p.choices)) {
94
+ for (let j = 0; j < p.choices.length; j++) {
95
+ const choice = p.choices[j];
96
+ if (!choice || typeof choice !== 'object') {
97
+ errors.push(`${prefix}.choices[${j}]: must be an object`);
98
+ }
99
+ else {
100
+ if (!choice.value || typeof choice.value !== 'string') {
101
+ errors.push(`${prefix}.choices[${j}]: must have a "value" field (string)`);
102
+ }
103
+ if (!choice.label || typeof choice.label !== 'string') {
104
+ errors.push(`${prefix}.choices[${j}]: must have a "label" field (string)`);
105
+ }
106
+ }
107
+ }
108
+ }
109
+ // Pattern validation
110
+ if (p.pattern !== undefined && typeof p.pattern !== 'string') {
111
+ errors.push(`${prefix}: "pattern" must be a string`);
112
+ }
113
+ else if (typeof p.pattern === 'string') {
114
+ try {
115
+ new RegExp(p.pattern);
116
+ }
117
+ catch {
118
+ errors.push(`${prefix}: "pattern" is not a valid regex`);
119
+ }
120
+ }
121
+ }
122
+ }
123
+ // Files validation (optional)
124
+ if (m.files !== undefined) {
125
+ if (!Array.isArray(m.files)) {
126
+ errors.push('Manifest "files" must be an array');
127
+ }
128
+ else {
129
+ for (let i = 0; i < m.files.length; i++) {
130
+ const file = m.files[i];
131
+ const prefix = `files[${i}]`;
132
+ if (!file || typeof file !== 'object') {
133
+ errors.push(`${prefix}: must be an object`);
134
+ continue;
135
+ }
136
+ if (!file.template || typeof file.template !== 'string') {
137
+ errors.push(`${prefix}: must have a "template" field (string)`);
138
+ }
139
+ if (!file.destination || typeof file.destination !== 'string') {
140
+ errors.push(`${prefix}: must have a "destination" field (string)`);
141
+ }
142
+ }
143
+ }
144
+ }
145
+ return errors;
146
+ }
147
+ /**
148
+ * Check if a condition expression is satisfied
149
+ * @param condition - The condition expression (e.g., "paramName=value" or "paramName")
150
+ * @param variables - The current variable values
151
+ * @returns Whether the condition is satisfied
152
+ */
153
+ export function evaluateCondition(condition, variables) {
154
+ if (!condition) {
155
+ return true;
156
+ }
157
+ // Handle equality check: "paramName=value"
158
+ if (condition.includes('=')) {
159
+ const [paramName, expectedValue] = condition.split('=', 2);
160
+ const actualValue = variables[paramName];
161
+ if (Array.isArray(actualValue)) {
162
+ return actualValue.includes(expectedValue);
163
+ }
164
+ return String(actualValue) === expectedValue;
165
+ }
166
+ // Handle negation: "!paramName"
167
+ if (condition.startsWith('!')) {
168
+ const paramName = condition.slice(1);
169
+ const value = variables[paramName];
170
+ return !value || value === '' || (Array.isArray(value) && value.length === 0);
171
+ }
172
+ // Handle truthy check: "paramName"
173
+ const value = variables[condition];
174
+ return Boolean(value) && value !== '' && !(Array.isArray(value) && value.length === 0);
175
+ }
176
+ /**
177
+ * Validate parameter values against a manifest
178
+ * @param manifest - The scaffold manifest
179
+ * @param values - The parameter values to validate
180
+ * @returns Validation result
181
+ */
182
+ export function validateParameters(manifest, values) {
183
+ const errors = [];
184
+ const resolvedValues = {};
185
+ for (const param of manifest.parameters) {
186
+ // Check if this parameter should be evaluated (based on `when` condition)
187
+ if (param.when && !evaluateCondition(param.when, resolvedValues)) {
188
+ // Parameter is conditional and condition not met - skip it
189
+ continue;
190
+ }
191
+ let value = values[param.name];
192
+ // Use default if not provided
193
+ if (value === undefined || value === '') {
194
+ if (param.default !== undefined) {
195
+ value = param.default;
196
+ }
197
+ }
198
+ // Required check
199
+ if (param.required) {
200
+ const isEmpty = value === undefined || value === '' || (Array.isArray(value) && value.length === 0);
201
+ if (isEmpty) {
202
+ errors.push({
203
+ parameter: param.name,
204
+ message: `"${param.name}" is required`,
205
+ value,
206
+ });
207
+ continue;
208
+ }
209
+ }
210
+ // Type-specific validation
211
+ if (value !== undefined && value !== '') {
212
+ switch (param.type) {
213
+ case 'boolean':
214
+ if (typeof value !== 'boolean' && value !== 'true' && value !== 'false') {
215
+ errors.push({
216
+ parameter: param.name,
217
+ message: `"${param.name}" must be a boolean`,
218
+ value,
219
+ });
220
+ }
221
+ else {
222
+ // Normalize to boolean
223
+ resolvedValues[param.name] = value === true || value === 'true';
224
+ }
225
+ break;
226
+ case 'string':
227
+ if (typeof value !== 'string') {
228
+ errors.push({
229
+ parameter: param.name,
230
+ message: `"${param.name}" must be a string`,
231
+ value,
232
+ });
233
+ }
234
+ else {
235
+ // Pattern validation
236
+ if (param.pattern) {
237
+ const regex = new RegExp(param.pattern);
238
+ if (!regex.test(value)) {
239
+ errors.push({
240
+ parameter: param.name,
241
+ message: param.validationMessage || `"${param.name}" does not match required pattern`,
242
+ value,
243
+ });
244
+ }
245
+ }
246
+ resolvedValues[param.name] = value;
247
+ }
248
+ break;
249
+ case 'choice':
250
+ if (typeof value !== 'string') {
251
+ errors.push({
252
+ parameter: param.name,
253
+ message: `"${param.name}" must be a string`,
254
+ value,
255
+ });
256
+ }
257
+ else if (param.choices) {
258
+ const validValues = param.choices.map((c) => c.value);
259
+ if (!validValues.includes(value)) {
260
+ errors.push({
261
+ parameter: param.name,
262
+ message: `"${param.name}" must be one of: ${validValues.join(', ')}`,
263
+ value,
264
+ });
265
+ }
266
+ else {
267
+ resolvedValues[param.name] = value;
268
+ }
269
+ }
270
+ break;
271
+ case 'multi-choice':
272
+ {
273
+ const arr = Array.isArray(value) ? value : [String(value)];
274
+ if (param.choices) {
275
+ const validValues = param.choices.map((c) => c.value);
276
+ for (const v of arr) {
277
+ if (!validValues.includes(v)) {
278
+ errors.push({
279
+ parameter: param.name,
280
+ message: `"${param.name}" contains invalid value "${v}". Must be one of: ${validValues.join(', ')}`,
281
+ value,
282
+ });
283
+ }
284
+ }
285
+ }
286
+ resolvedValues[param.name] = arr;
287
+ }
288
+ break;
289
+ }
290
+ }
291
+ else if (value !== undefined) {
292
+ // Value is defined but empty - still store it if not required
293
+ if (param.type === 'multi-choice') {
294
+ resolvedValues[param.name] = [];
295
+ }
296
+ else if (param.type === 'boolean') {
297
+ resolvedValues[param.name] = false;
298
+ }
299
+ else {
300
+ resolvedValues[param.name] = '';
301
+ }
302
+ }
303
+ }
304
+ // Preserve any extra variables that aren't manifest parameters
305
+ // (e.g., cartridgeNamePath set by CLI for cartridge source parameters)
306
+ const manifestParamNames = new Set(manifest.parameters.map((p) => p.name));
307
+ for (const [key, value] of Object.entries(values)) {
308
+ if (!manifestParamNames.has(key) && value !== undefined) {
309
+ resolvedValues[key] = value;
310
+ }
311
+ }
312
+ return {
313
+ valid: errors.length === 0,
314
+ errors,
315
+ values: resolvedValues,
316
+ };
317
+ }
318
+ /**
319
+ * Validate that a string is a valid scaffold name (kebab-case)
320
+ * @param name - The name to validate
321
+ * @returns Whether the name is valid
322
+ */
323
+ export function isValidScaffoldName(name) {
324
+ return /^[a-z][a-z0-9-]*[a-z0-9]$/.test(name) || /^[a-z]$/.test(name);
325
+ }
326
+ /**
327
+ * Validate that a string is a valid parameter name (camelCase)
328
+ * @param name - The name to validate
329
+ * @returns Whether the name is valid
330
+ */
331
+ export function isValidParameterName(name) {
332
+ return /^[a-z][a-zA-Z0-9]*$/.test(name) && !RESERVED_NAMES.includes(name);
333
+ }
334
+ //# sourceMappingURL=validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/scaffold/validators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export type { TelemetryAttributes, TelemetryEventProperties, TelemetryOptions } from './types.js';
2
+ export { Telemetry } from './telemetry.js';
3
+ import { Telemetry } from './telemetry.js';
4
+ import type { TelemetryOptions } from './types.js';
5
+ /**
6
+ * Factory function to create a Telemetry instance.
7
+ *
8
+ * @param options - Telemetry configuration options
9
+ * @returns A new Telemetry instance
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { createTelemetry } from '@salesforce/b2c-tooling-sdk/telemetry';
14
+ *
15
+ * const telemetry = createTelemetry({
16
+ * project: 'my-mcp-server',
17
+ * appInsightsKey: process.env.APP_INSIGHTS_KEY,
18
+ * version: '1.0.0',
19
+ * initialAttributes: { environment: 'production' },
20
+ * });
21
+ *
22
+ * await telemetry.start();
23
+ * telemetry.sendEvent('SERVER_STATUS', { status: 'started' });
24
+ * ```
25
+ */
26
+ export declare function createTelemetry(options: TelemetryOptions): Telemetry;
@@ -0,0 +1,32 @@
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
+ export { Telemetry } from './telemetry.js';
7
+ import { Telemetry } from './telemetry.js';
8
+ /**
9
+ * Factory function to create a Telemetry instance.
10
+ *
11
+ * @param options - Telemetry configuration options
12
+ * @returns A new Telemetry instance
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { createTelemetry } from '@salesforce/b2c-tooling-sdk/telemetry';
17
+ *
18
+ * const telemetry = createTelemetry({
19
+ * project: 'my-mcp-server',
20
+ * appInsightsKey: process.env.APP_INSIGHTS_KEY,
21
+ * version: '1.0.0',
22
+ * initialAttributes: { environment: 'production' },
23
+ * });
24
+ *
25
+ * await telemetry.start();
26
+ * telemetry.sendEvent('SERVER_STATUS', { status: 'started' });
27
+ * ```
28
+ */
29
+ export function createTelemetry(options) {
30
+ return new Telemetry(options);
31
+ }
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAGzC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,90 @@
1
+ import type { TelemetryAttributes, TelemetryOptions } from './types.js';
2
+ /**
3
+ * Telemetry client for sending events to Application Insights.
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * const telemetry = new Telemetry({
8
+ * project: 'my-app',
9
+ * appInsightsKey: 'InstrumentationKey=...',
10
+ * version: '1.0.0',
11
+ * dataDir: '/path/to/data',
12
+ * });
13
+ *
14
+ * await telemetry.start();
15
+ * telemetry.sendEvent('USER_ACTION', { action: 'click' });
16
+ * telemetry.stop();
17
+ * ```
18
+ */
19
+ export declare class Telemetry {
20
+ private attributes;
21
+ private cliId;
22
+ private project;
23
+ private reporter;
24
+ private sessionId;
25
+ private started;
26
+ private version;
27
+ private appInsightsKey;
28
+ private traceLog;
29
+ /**
30
+ * Check if telemetry is disabled via environment variables.
31
+ * Supports both SF_DISABLE_TELEMETRY (sf CLI standard) and SFCC_DISABLE_TELEMETRY.
32
+ */
33
+ static isDisabled(): boolean;
34
+ /**
35
+ * Get the connection string for telemetry, respecting disable flags and env overrides.
36
+ * @param projectDefault - Default connection string from project config (e.g., package.json)
37
+ * @returns Connection string to use, or undefined if telemetry should be disabled
38
+ */
39
+ static getConnectionString(projectDefault?: string): string | undefined;
40
+ constructor(options: TelemetryOptions);
41
+ /**
42
+ * Add additional attributes to include with all future events.
43
+ */
44
+ addAttributes(attributes: TelemetryAttributes): void;
45
+ /**
46
+ * Send a telemetry event. Events are buffered until you call {@link flush} or
47
+ * {@link stop}. Use this for batching; use {@link sendEventAndFlush} when you
48
+ * need one event sent before continuing.
49
+ *
50
+ * @param eventName - Name of the event (e.g., 'SERVER_STATUS', 'TOOL_CALLED')
51
+ * @param attributes - Event-specific attributes (only string/number/boolean are sent)
52
+ */
53
+ sendEvent(eventName: string, attributes?: TelemetryAttributes): void;
54
+ /**
55
+ * Send a telemetry event and flush immediately. Use this when you need the event
56
+ * delivered before continuing (e.g. after a tool call or server lifecycle event),
57
+ * so you don't have to remember to call {@link flush}. For batching multiple
58
+ * events and flushing once, use {@link sendEvent} and then {@link flush}.
59
+ *
60
+ * @param eventName - Name of the event (e.g., 'SERVER_STATUS', 'TOOL_CALLED')
61
+ * @param attributes - Event-specific attributes (only string/number/boolean are sent)
62
+ */
63
+ sendEventAndFlush(eventName: string, attributes?: TelemetryAttributes): Promise<void>;
64
+ /**
65
+ * Send an exception to telemetry.
66
+ *
67
+ * @param error - The error to report
68
+ * @param attributes - Additional attributes to include with the exception
69
+ */
70
+ sendException(error: Error, attributes?: TelemetryAttributes): void;
71
+ /**
72
+ * Start the telemetry reporter.
73
+ * Must be called before sending events.
74
+ */
75
+ start(): Promise<void>;
76
+ /**
77
+ * Flush pending telemetry events without stopping the reporter.
78
+ * Use this for long-running processes that need to ensure events are sent periodically.
79
+ * Uses the native reporter.flush() as documented in https://github.com/forcedotcom/telemetry,
80
+ * and also flushes the App Insights client when present (SDK flush() only flushes O11y).
81
+ */
82
+ flush(): Promise<void>;
83
+ /**
84
+ * Stop the telemetry reporter and flush any pending events.
85
+ * Includes a delay to allow async HTTP requests to complete.
86
+ */
87
+ stop(): Promise<void>;
88
+ private buildEventProperties;
89
+ private createReporter;
90
+ }