@salesforce/b2c-tooling-sdk 0.2.1 → 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 (578) 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/api-key.d.ts +2 -2
  38. package/dist/cjs/auth/api-key.js +1 -0
  39. package/dist/cjs/auth/api-key.js.map +1 -1
  40. package/dist/cjs/auth/basic.d.ts +2 -2
  41. package/dist/cjs/auth/basic.js +2 -0
  42. package/dist/cjs/auth/basic.js.map +1 -1
  43. package/dist/cjs/auth/index.d.ts +1 -1
  44. package/dist/cjs/auth/index.js.map +1 -1
  45. package/dist/cjs/auth/oauth-implicit.d.ts +3 -2
  46. package/dist/cjs/auth/oauth-implicit.js +9 -3
  47. package/dist/cjs/auth/oauth-implicit.js.map +1 -1
  48. package/dist/cjs/auth/oauth.d.ts +3 -2
  49. package/dist/cjs/auth/oauth.js +10 -3
  50. package/dist/cjs/auth/oauth.js.map +1 -1
  51. package/dist/cjs/auth/types.d.ts +15 -1
  52. package/dist/cjs/auth/types.js +5 -0
  53. package/dist/cjs/auth/types.js.map +1 -1
  54. package/dist/cjs/cli/am-command.d.ts +74 -0
  55. package/dist/cjs/cli/am-command.js +189 -0
  56. package/dist/cjs/cli/am-command.js.map +1 -0
  57. package/dist/cjs/cli/base-command.d.ts +61 -0
  58. package/dist/cjs/cli/base-command.js +171 -4
  59. package/dist/cjs/cli/base-command.js.map +1 -1
  60. package/dist/cjs/cli/config.d.ts +80 -0
  61. package/dist/cjs/cli/config.js +122 -2
  62. package/dist/cjs/cli/config.js.map +1 -1
  63. package/dist/cjs/cli/index.d.ts +3 -2
  64. package/dist/cjs/cli/index.js +4 -1
  65. package/dist/cjs/cli/index.js.map +1 -1
  66. package/dist/cjs/cli/instance-command.d.ts +5 -0
  67. package/dist/cjs/cli/instance-command.js +24 -23
  68. package/dist/cjs/cli/instance-command.js.map +1 -1
  69. package/dist/cjs/cli/mrt-command.d.ts +0 -6
  70. package/dist/cjs/cli/mrt-command.js +5 -29
  71. package/dist/cjs/cli/mrt-command.js.map +1 -1
  72. package/dist/cjs/cli/oauth-command.d.ts +25 -6
  73. package/dist/cjs/cli/oauth-command.js +65 -42
  74. package/dist/cjs/cli/oauth-command.js.map +1 -1
  75. package/dist/cjs/cli/ods-command.d.ts +23 -1
  76. package/dist/cjs/cli/ods-command.js +61 -4
  77. package/dist/cjs/cli/ods-command.js.map +1 -1
  78. package/dist/cjs/cli/webdav-command.d.ts +5 -0
  79. package/dist/cjs/clients/am-api.d.ts +491 -0
  80. package/dist/cjs/clients/am-api.js +944 -0
  81. package/dist/cjs/clients/am-api.js.map +1 -0
  82. package/dist/cjs/clients/am-apiclients-api.generated.d.ts +803 -0
  83. package/dist/cjs/clients/am-apiclients-api.generated.js +6 -0
  84. package/dist/cjs/clients/am-apiclients-api.generated.js.map +1 -0
  85. package/dist/cjs/clients/am-roles-api.generated.d.ts +298 -0
  86. package/dist/cjs/clients/am-roles-api.generated.js +6 -0
  87. package/dist/cjs/clients/am-roles-api.generated.js.map +1 -0
  88. package/dist/cjs/clients/am-users-api.generated.d.ts +891 -0
  89. package/dist/cjs/clients/am-users-api.generated.js +6 -0
  90. package/dist/cjs/clients/am-users-api.generated.js.map +1 -0
  91. package/dist/cjs/clients/cdn-zones.d.ts +33 -1
  92. package/dist/cjs/clients/cdn-zones.js.map +1 -1
  93. package/dist/cjs/clients/custom-apis.d.ts +30 -1
  94. package/dist/cjs/clients/custom-apis.js.map +1 -1
  95. package/dist/cjs/clients/index.d.ts +6 -2
  96. package/dist/cjs/clients/index.js +3 -1
  97. package/dist/cjs/clients/index.js.map +1 -1
  98. package/dist/cjs/clients/middleware-registry.d.ts +1 -1
  99. package/dist/cjs/clients/middleware-registry.js.map +1 -1
  100. package/dist/cjs/clients/middleware.d.ts +49 -2
  101. package/dist/cjs/clients/middleware.js +214 -2
  102. package/dist/cjs/clients/middleware.js.map +1 -1
  103. package/dist/cjs/clients/mrt-b2c.d.ts +25 -1
  104. package/dist/cjs/clients/mrt-b2c.js.map +1 -1
  105. package/dist/cjs/clients/mrt.d.ts +24 -1
  106. package/dist/cjs/clients/mrt.js +5 -1
  107. package/dist/cjs/clients/mrt.js.map +1 -1
  108. package/dist/cjs/clients/ocapi.d.ts +22 -2
  109. package/dist/cjs/clients/ocapi.js +0 -2
  110. package/dist/cjs/clients/ocapi.js.map +1 -1
  111. package/dist/cjs/clients/ods.d.ts +28 -1
  112. package/dist/cjs/clients/ods.js.map +1 -1
  113. package/dist/cjs/clients/scapi-schemas.d.ts +30 -1
  114. package/dist/cjs/clients/scapi-schemas.js.map +1 -1
  115. package/dist/cjs/clients/slas-admin.d.ts +28 -0
  116. package/dist/cjs/clients/slas-admin.js.map +1 -1
  117. package/dist/cjs/clients/tls-dispatcher.d.ts +42 -0
  118. package/dist/cjs/clients/tls-dispatcher.js +107 -0
  119. package/dist/cjs/clients/tls-dispatcher.js.map +1 -0
  120. package/dist/cjs/clients/webdav.d.ts +8 -1
  121. package/dist/cjs/clients/webdav.js +5 -1
  122. package/dist/cjs/clients/webdav.js.map +1 -1
  123. package/dist/cjs/config/dw-json.d.ts +106 -21
  124. package/dist/cjs/config/dw-json.js +170 -4
  125. package/dist/cjs/config/dw-json.js.map +1 -1
  126. package/dist/cjs/config/index.d.ts +7 -5
  127. package/dist/cjs/config/index.js +7 -3
  128. package/dist/cjs/config/index.js.map +1 -1
  129. package/dist/cjs/config/instance-manager.d.ts +97 -0
  130. package/dist/cjs/config/instance-manager.js +166 -0
  131. package/dist/cjs/config/instance-manager.js.map +1 -0
  132. package/dist/cjs/config/mapping.d.ts +63 -5
  133. package/dist/cjs/config/mapping.js +179 -18
  134. package/dist/cjs/config/mapping.js.map +1 -1
  135. package/dist/cjs/config/resolved-config.d.ts +1 -3
  136. package/dist/cjs/config/resolved-config.js +0 -8
  137. package/dist/cjs/config/resolved-config.js.map +1 -1
  138. package/dist/cjs/config/resolver.d.ts +1 -1
  139. package/dist/cjs/config/resolver.js +19 -3
  140. package/dist/cjs/config/resolver.js.map +1 -1
  141. package/dist/cjs/config/sources/dw-json-source.d.ts +17 -1
  142. package/dist/cjs/config/sources/dw-json-source.js +70 -3
  143. package/dist/cjs/config/sources/dw-json-source.js.map +1 -1
  144. package/dist/cjs/config/sources/mobify-source.js +3 -2
  145. package/dist/cjs/config/sources/mobify-source.js.map +1 -1
  146. package/dist/cjs/config/sources/package-json-source.js +9 -4
  147. package/dist/cjs/config/sources/package-json-source.js.map +1 -1
  148. package/dist/cjs/config/types.d.ts +78 -18
  149. package/dist/cjs/defaults.d.ts +6 -0
  150. package/dist/cjs/defaults.js +6 -0
  151. package/dist/cjs/defaults.js.map +1 -1
  152. package/dist/{esm/operations → cjs}/docs/download.d.ts +1 -1
  153. package/dist/cjs/{operations/docs → docs}/download.js +2 -2
  154. package/dist/cjs/docs/download.js.map +1 -0
  155. package/dist/{esm/operations → cjs}/docs/index.d.ts +4 -4
  156. package/dist/cjs/docs/index.js.map +1 -0
  157. package/dist/cjs/docs/schema.js.map +1 -0
  158. package/dist/cjs/docs/search.js.map +1 -0
  159. package/dist/cjs/docs/types.js.map +1 -0
  160. package/dist/cjs/i18n/index.js +3 -0
  161. package/dist/cjs/i18n/index.js.map +1 -1
  162. package/dist/cjs/index.d.ts +11 -12
  163. package/dist/cjs/index.js +12 -10
  164. package/dist/cjs/index.js.map +1 -1
  165. package/dist/cjs/instance/index.d.ts +4 -0
  166. package/dist/cjs/instance/index.js +6 -1
  167. package/dist/cjs/instance/index.js.map +1 -1
  168. package/dist/cjs/logging/index.d.ts +1 -1
  169. package/dist/cjs/logging/logger.js +27 -0
  170. package/dist/cjs/logging/logger.js.map +1 -1
  171. package/dist/cjs/logging/types.d.ts +9 -0
  172. package/dist/cjs/operations/content/asset-query.d.ts +22 -0
  173. package/dist/cjs/operations/content/asset-query.js +77 -0
  174. package/dist/cjs/operations/content/asset-query.js.map +1 -0
  175. package/dist/cjs/operations/content/export.d.ts +57 -0
  176. package/dist/cjs/operations/content/export.js +224 -0
  177. package/dist/cjs/operations/content/export.js.map +1 -0
  178. package/dist/cjs/operations/content/index.d.ts +43 -0
  179. package/dist/cjs/operations/content/index.js +48 -0
  180. package/dist/cjs/operations/content/index.js.map +1 -0
  181. package/dist/cjs/operations/content/library.d.ts +137 -0
  182. package/dist/cjs/operations/content/library.js +392 -0
  183. package/dist/cjs/operations/content/library.js.map +1 -0
  184. package/dist/cjs/operations/content/types.d.ts +144 -0
  185. package/dist/cjs/operations/content/types.js +7 -0
  186. package/dist/cjs/operations/content/types.js.map +1 -0
  187. package/dist/cjs/operations/logs/index.d.ts +65 -0
  188. package/dist/cjs/operations/logs/index.js +73 -0
  189. package/dist/cjs/operations/logs/index.js.map +1 -0
  190. package/dist/cjs/operations/logs/list.d.ts +35 -0
  191. package/dist/cjs/operations/logs/list.js +144 -0
  192. package/dist/cjs/operations/logs/list.js.map +1 -0
  193. package/dist/cjs/operations/logs/path-normalizer.d.ts +82 -0
  194. package/dist/cjs/operations/logs/path-normalizer.js +190 -0
  195. package/dist/cjs/operations/logs/path-normalizer.js.map +1 -0
  196. package/dist/cjs/operations/logs/tail.d.ts +92 -0
  197. package/dist/cjs/operations/logs/tail.js +525 -0
  198. package/dist/cjs/operations/logs/tail.js.map +1 -0
  199. package/dist/cjs/operations/logs/types.d.ts +132 -0
  200. package/dist/cjs/operations/logs/types.js +7 -0
  201. package/dist/cjs/operations/logs/types.js.map +1 -0
  202. package/dist/cjs/operations/mrt/b2c-config.js +19 -4
  203. package/dist/cjs/operations/mrt/b2c-config.js.map +1 -1
  204. package/dist/cjs/operations/mrt/index.d.ts +2 -0
  205. package/dist/cjs/operations/mrt/index.js +2 -0
  206. package/dist/cjs/operations/mrt/index.js.map +1 -1
  207. package/dist/cjs/operations/mrt/push.js +3 -0
  208. package/dist/cjs/operations/mrt/push.js.map +1 -1
  209. package/dist/cjs/operations/mrt/tail-logs.d.ts +130 -0
  210. package/dist/cjs/operations/mrt/tail-logs.js +223 -0
  211. package/dist/cjs/operations/mrt/tail-logs.js.map +1 -0
  212. package/dist/cjs/operations/ods/index.d.ts +8 -0
  213. package/dist/cjs/operations/ods/index.js +13 -0
  214. package/dist/cjs/operations/ods/index.js.map +1 -0
  215. package/dist/cjs/operations/ods/sandbox-lookup.d.ts +63 -0
  216. package/dist/cjs/operations/ods/sandbox-lookup.js +130 -0
  217. package/dist/cjs/operations/ods/sandbox-lookup.js.map +1 -0
  218. package/dist/cjs/operations/ods/wait-for-sandbox.d.ts +64 -0
  219. package/dist/cjs/operations/ods/wait-for-sandbox.js +114 -0
  220. package/dist/cjs/operations/ods/wait-for-sandbox.js.map +1 -0
  221. package/dist/cjs/operations/orgs/index.d.ts +74 -0
  222. package/dist/cjs/operations/orgs/index.js +33 -0
  223. package/dist/cjs/operations/orgs/index.js.map +1 -0
  224. package/dist/cjs/operations/roles/index.d.ts +43 -0
  225. package/dist/cjs/operations/roles/index.js +48 -0
  226. package/dist/cjs/operations/roles/index.js.map +1 -0
  227. package/dist/cjs/operations/users/index.d.ts +143 -0
  228. package/dist/cjs/operations/users/index.js +141 -0
  229. package/dist/cjs/operations/users/index.js.map +1 -0
  230. package/dist/cjs/scaffold/engine.d.ts +68 -0
  231. package/dist/cjs/scaffold/engine.js +149 -0
  232. package/dist/cjs/scaffold/engine.js.map +1 -0
  233. package/dist/cjs/scaffold/executor.d.ts +36 -0
  234. package/dist/cjs/scaffold/executor.js +285 -0
  235. package/dist/cjs/scaffold/executor.js.map +1 -0
  236. package/dist/cjs/scaffold/index.d.ts +74 -0
  237. package/dist/cjs/scaffold/index.js +23 -0
  238. package/dist/cjs/scaffold/index.js.map +1 -0
  239. package/dist/cjs/scaffold/merge.d.ts +56 -0
  240. package/dist/cjs/scaffold/merge.js +183 -0
  241. package/dist/cjs/scaffold/merge.js.map +1 -0
  242. package/dist/cjs/scaffold/parameter-resolver.d.ts +86 -0
  243. package/dist/cjs/scaffold/parameter-resolver.js +179 -0
  244. package/dist/cjs/scaffold/parameter-resolver.js.map +1 -0
  245. package/dist/cjs/scaffold/registry.d.ts +45 -0
  246. package/dist/cjs/scaffold/registry.js +219 -0
  247. package/dist/cjs/scaffold/registry.js.map +1 -0
  248. package/dist/cjs/scaffold/sources.d.ts +45 -0
  249. package/dist/cjs/scaffold/sources.js +113 -0
  250. package/dist/cjs/scaffold/sources.js.map +1 -0
  251. package/dist/cjs/scaffold/types.d.ts +280 -0
  252. package/dist/cjs/scaffold/types.js +14 -0
  253. package/dist/cjs/scaffold/types.js.map +1 -0
  254. package/dist/cjs/scaffold/validation.d.ts +81 -0
  255. package/dist/cjs/scaffold/validation.js +250 -0
  256. package/dist/cjs/scaffold/validation.js.map +1 -0
  257. package/dist/cjs/scaffold/validators.d.ts +33 -0
  258. package/dist/cjs/scaffold/validators.js +334 -0
  259. package/dist/cjs/scaffold/validators.js.map +1 -0
  260. package/dist/{esm/operations/scapi-schemas → cjs/schemas}/collapse.d.ts +1 -1
  261. package/dist/cjs/schemas/collapse.js.map +1 -0
  262. package/dist/cjs/{operations/scapi-schemas → schemas}/index.d.ts +5 -5
  263. package/dist/cjs/{operations/scapi-schemas → schemas}/index.js +5 -5
  264. package/dist/cjs/schemas/index.js.map +1 -0
  265. package/dist/cjs/telemetry/index.d.ts +26 -0
  266. package/dist/cjs/telemetry/index.js +32 -0
  267. package/dist/cjs/telemetry/index.js.map +1 -0
  268. package/dist/cjs/telemetry/telemetry.d.ts +90 -0
  269. package/dist/cjs/telemetry/telemetry.js +283 -0
  270. package/dist/cjs/telemetry/telemetry.js.map +1 -0
  271. package/dist/cjs/telemetry/types.d.ts +62 -0
  272. package/dist/cjs/telemetry/types.js +7 -0
  273. package/dist/cjs/telemetry/types.js.map +1 -0
  274. package/dist/cjs/test-utils/config-isolation.js +7 -0
  275. package/dist/cjs/test-utils/config-isolation.js.map +1 -1
  276. package/dist/esm/auth/api-key.d.ts +2 -2
  277. package/dist/esm/auth/api-key.js +1 -0
  278. package/dist/esm/auth/api-key.js.map +1 -1
  279. package/dist/esm/auth/basic.d.ts +2 -2
  280. package/dist/esm/auth/basic.js +2 -0
  281. package/dist/esm/auth/basic.js.map +1 -1
  282. package/dist/esm/auth/index.d.ts +1 -1
  283. package/dist/esm/auth/index.js.map +1 -1
  284. package/dist/esm/auth/oauth-implicit.d.ts +3 -2
  285. package/dist/esm/auth/oauth-implicit.js +9 -3
  286. package/dist/esm/auth/oauth-implicit.js.map +1 -1
  287. package/dist/esm/auth/oauth.d.ts +3 -2
  288. package/dist/esm/auth/oauth.js +10 -3
  289. package/dist/esm/auth/oauth.js.map +1 -1
  290. package/dist/esm/auth/types.d.ts +15 -1
  291. package/dist/esm/auth/types.js +5 -0
  292. package/dist/esm/auth/types.js.map +1 -1
  293. package/dist/esm/cli/am-command.d.ts +74 -0
  294. package/dist/esm/cli/am-command.js +196 -0
  295. package/dist/esm/cli/am-command.js.map +1 -0
  296. package/dist/esm/cli/base-command.d.ts +61 -0
  297. package/dist/esm/cli/base-command.js +171 -4
  298. package/dist/esm/cli/base-command.js.map +1 -1
  299. package/dist/esm/cli/config.d.ts +80 -0
  300. package/dist/esm/cli/config.js +122 -2
  301. package/dist/esm/cli/config.js.map +1 -1
  302. package/dist/esm/cli/index.d.ts +3 -2
  303. package/dist/esm/cli/index.js +4 -1
  304. package/dist/esm/cli/index.js.map +1 -1
  305. package/dist/esm/cli/instance-command.d.ts +5 -0
  306. package/dist/esm/cli/instance-command.js +24 -23
  307. package/dist/esm/cli/instance-command.js.map +1 -1
  308. package/dist/esm/cli/mrt-command.d.ts +0 -6
  309. package/dist/esm/cli/mrt-command.js +5 -29
  310. package/dist/esm/cli/mrt-command.js.map +1 -1
  311. package/dist/esm/cli/oauth-command.d.ts +25 -6
  312. package/dist/esm/cli/oauth-command.js +65 -42
  313. package/dist/esm/cli/oauth-command.js.map +1 -1
  314. package/dist/esm/cli/ods-command.d.ts +23 -1
  315. package/dist/esm/cli/ods-command.js +61 -4
  316. package/dist/esm/cli/ods-command.js.map +1 -1
  317. package/dist/esm/cli/webdav-command.d.ts +5 -0
  318. package/dist/esm/clients/am-api.d.ts +491 -0
  319. package/dist/esm/clients/am-api.js +944 -0
  320. package/dist/esm/clients/am-api.js.map +1 -0
  321. package/dist/esm/clients/am-apiclients-api.generated.d.ts +803 -0
  322. package/dist/esm/clients/am-apiclients-api.generated.js +6 -0
  323. package/dist/esm/clients/am-apiclients-api.generated.js.map +1 -0
  324. package/dist/esm/clients/am-roles-api.generated.d.ts +298 -0
  325. package/dist/esm/clients/am-roles-api.generated.js +6 -0
  326. package/dist/esm/clients/am-roles-api.generated.js.map +1 -0
  327. package/dist/esm/clients/am-users-api.generated.d.ts +891 -0
  328. package/dist/esm/clients/am-users-api.generated.js +6 -0
  329. package/dist/esm/clients/am-users-api.generated.js.map +1 -0
  330. package/dist/esm/clients/cdn-zones.d.ts +33 -1
  331. package/dist/esm/clients/cdn-zones.js.map +1 -1
  332. package/dist/esm/clients/custom-apis.d.ts +30 -1
  333. package/dist/esm/clients/custom-apis.js.map +1 -1
  334. package/dist/esm/clients/index.d.ts +6 -2
  335. package/dist/esm/clients/index.js +3 -1
  336. package/dist/esm/clients/index.js.map +1 -1
  337. package/dist/esm/clients/middleware-registry.d.ts +1 -1
  338. package/dist/esm/clients/middleware-registry.js.map +1 -1
  339. package/dist/esm/clients/middleware.d.ts +49 -2
  340. package/dist/esm/clients/middleware.js +214 -2
  341. package/dist/esm/clients/middleware.js.map +1 -1
  342. package/dist/esm/clients/mrt-b2c.d.ts +25 -1
  343. package/dist/esm/clients/mrt-b2c.js.map +1 -1
  344. package/dist/esm/clients/mrt.d.ts +24 -1
  345. package/dist/esm/clients/mrt.js +5 -1
  346. package/dist/esm/clients/mrt.js.map +1 -1
  347. package/dist/esm/clients/ocapi.d.ts +22 -2
  348. package/dist/esm/clients/ocapi.js +0 -2
  349. package/dist/esm/clients/ocapi.js.map +1 -1
  350. package/dist/esm/clients/ods.d.ts +28 -1
  351. package/dist/esm/clients/ods.js.map +1 -1
  352. package/dist/esm/clients/scapi-schemas.d.ts +30 -1
  353. package/dist/esm/clients/scapi-schemas.js.map +1 -1
  354. package/dist/esm/clients/slas-admin.d.ts +28 -0
  355. package/dist/esm/clients/slas-admin.js.map +1 -1
  356. package/dist/esm/clients/tls-dispatcher.d.ts +42 -0
  357. package/dist/esm/clients/tls-dispatcher.js +107 -0
  358. package/dist/esm/clients/tls-dispatcher.js.map +1 -0
  359. package/dist/esm/clients/webdav.d.ts +8 -1
  360. package/dist/esm/clients/webdav.js +5 -1
  361. package/dist/esm/clients/webdav.js.map +1 -1
  362. package/dist/esm/config/dw-json.d.ts +106 -21
  363. package/dist/esm/config/dw-json.js +170 -4
  364. package/dist/esm/config/dw-json.js.map +1 -1
  365. package/dist/esm/config/index.d.ts +7 -5
  366. package/dist/esm/config/index.js +7 -3
  367. package/dist/esm/config/index.js.map +1 -1
  368. package/dist/esm/config/instance-manager.d.ts +97 -0
  369. package/dist/esm/config/instance-manager.js +166 -0
  370. package/dist/esm/config/instance-manager.js.map +1 -0
  371. package/dist/esm/config/mapping.d.ts +63 -5
  372. package/dist/esm/config/mapping.js +179 -18
  373. package/dist/esm/config/mapping.js.map +1 -1
  374. package/dist/esm/config/resolved-config.d.ts +1 -3
  375. package/dist/esm/config/resolved-config.js +0 -8
  376. package/dist/esm/config/resolved-config.js.map +1 -1
  377. package/dist/esm/config/resolver.d.ts +1 -1
  378. package/dist/esm/config/resolver.js +19 -3
  379. package/dist/esm/config/resolver.js.map +1 -1
  380. package/dist/esm/config/sources/dw-json-source.d.ts +17 -1
  381. package/dist/esm/config/sources/dw-json-source.js +70 -3
  382. package/dist/esm/config/sources/dw-json-source.js.map +1 -1
  383. package/dist/esm/config/sources/mobify-source.js +3 -2
  384. package/dist/esm/config/sources/mobify-source.js.map +1 -1
  385. package/dist/esm/config/sources/package-json-source.js +9 -4
  386. package/dist/esm/config/sources/package-json-source.js.map +1 -1
  387. package/dist/esm/config/types.d.ts +78 -18
  388. package/dist/esm/defaults.d.ts +6 -0
  389. package/dist/esm/defaults.js +6 -0
  390. package/dist/esm/defaults.js.map +1 -1
  391. package/dist/{cjs/operations → esm}/docs/download.d.ts +1 -1
  392. package/dist/esm/{operations/docs → docs}/download.js +2 -2
  393. package/dist/esm/docs/download.js.map +1 -0
  394. package/dist/{cjs/operations → esm}/docs/index.d.ts +4 -4
  395. package/dist/esm/docs/index.js.map +1 -0
  396. package/dist/esm/docs/schema.js.map +1 -0
  397. package/dist/esm/docs/search.js.map +1 -0
  398. package/dist/esm/docs/types.js.map +1 -0
  399. package/dist/esm/i18n/index.js +3 -0
  400. package/dist/esm/i18n/index.js.map +1 -1
  401. package/dist/esm/index.d.ts +11 -12
  402. package/dist/esm/index.js +12 -10
  403. package/dist/esm/index.js.map +1 -1
  404. package/dist/esm/instance/index.d.ts +4 -0
  405. package/dist/esm/instance/index.js +6 -1
  406. package/dist/esm/instance/index.js.map +1 -1
  407. package/dist/esm/logging/index.d.ts +1 -1
  408. package/dist/esm/logging/logger.js +27 -0
  409. package/dist/esm/logging/logger.js.map +1 -1
  410. package/dist/esm/logging/types.d.ts +9 -0
  411. package/dist/esm/operations/content/asset-query.d.ts +22 -0
  412. package/dist/esm/operations/content/asset-query.js +77 -0
  413. package/dist/esm/operations/content/asset-query.js.map +1 -0
  414. package/dist/esm/operations/content/export.d.ts +57 -0
  415. package/dist/esm/operations/content/export.js +224 -0
  416. package/dist/esm/operations/content/export.js.map +1 -0
  417. package/dist/esm/operations/content/index.d.ts +43 -0
  418. package/dist/esm/operations/content/index.js +48 -0
  419. package/dist/esm/operations/content/index.js.map +1 -0
  420. package/dist/esm/operations/content/library.d.ts +137 -0
  421. package/dist/esm/operations/content/library.js +392 -0
  422. package/dist/esm/operations/content/library.js.map +1 -0
  423. package/dist/esm/operations/content/types.d.ts +144 -0
  424. package/dist/esm/operations/content/types.js +7 -0
  425. package/dist/esm/operations/content/types.js.map +1 -0
  426. package/dist/esm/operations/logs/index.d.ts +65 -0
  427. package/dist/esm/operations/logs/index.js +73 -0
  428. package/dist/esm/operations/logs/index.js.map +1 -0
  429. package/dist/esm/operations/logs/list.d.ts +35 -0
  430. package/dist/esm/operations/logs/list.js +144 -0
  431. package/dist/esm/operations/logs/list.js.map +1 -0
  432. package/dist/esm/operations/logs/path-normalizer.d.ts +82 -0
  433. package/dist/esm/operations/logs/path-normalizer.js +190 -0
  434. package/dist/esm/operations/logs/path-normalizer.js.map +1 -0
  435. package/dist/esm/operations/logs/tail.d.ts +92 -0
  436. package/dist/esm/operations/logs/tail.js +525 -0
  437. package/dist/esm/operations/logs/tail.js.map +1 -0
  438. package/dist/esm/operations/logs/types.d.ts +132 -0
  439. package/dist/esm/operations/logs/types.js +7 -0
  440. package/dist/esm/operations/logs/types.js.map +1 -0
  441. package/dist/esm/operations/mrt/b2c-config.js +19 -4
  442. package/dist/esm/operations/mrt/b2c-config.js.map +1 -1
  443. package/dist/esm/operations/mrt/index.d.ts +2 -0
  444. package/dist/esm/operations/mrt/index.js +2 -0
  445. package/dist/esm/operations/mrt/index.js.map +1 -1
  446. package/dist/esm/operations/mrt/push.js +3 -0
  447. package/dist/esm/operations/mrt/push.js.map +1 -1
  448. package/dist/esm/operations/mrt/tail-logs.d.ts +130 -0
  449. package/dist/esm/operations/mrt/tail-logs.js +223 -0
  450. package/dist/esm/operations/mrt/tail-logs.js.map +1 -0
  451. package/dist/esm/operations/ods/index.d.ts +8 -0
  452. package/dist/esm/operations/ods/index.js +13 -0
  453. package/dist/esm/operations/ods/index.js.map +1 -0
  454. package/dist/esm/operations/ods/sandbox-lookup.d.ts +63 -0
  455. package/dist/esm/operations/ods/sandbox-lookup.js +130 -0
  456. package/dist/esm/operations/ods/sandbox-lookup.js.map +1 -0
  457. package/dist/esm/operations/ods/wait-for-sandbox.d.ts +64 -0
  458. package/dist/esm/operations/ods/wait-for-sandbox.js +114 -0
  459. package/dist/esm/operations/ods/wait-for-sandbox.js.map +1 -0
  460. package/dist/esm/operations/orgs/index.d.ts +74 -0
  461. package/dist/esm/operations/orgs/index.js +33 -0
  462. package/dist/esm/operations/orgs/index.js.map +1 -0
  463. package/dist/esm/operations/roles/index.d.ts +43 -0
  464. package/dist/esm/operations/roles/index.js +48 -0
  465. package/dist/esm/operations/roles/index.js.map +1 -0
  466. package/dist/esm/operations/users/index.d.ts +143 -0
  467. package/dist/esm/operations/users/index.js +141 -0
  468. package/dist/esm/operations/users/index.js.map +1 -0
  469. package/dist/esm/scaffold/engine.d.ts +68 -0
  470. package/dist/esm/scaffold/engine.js +149 -0
  471. package/dist/esm/scaffold/engine.js.map +1 -0
  472. package/dist/esm/scaffold/executor.d.ts +36 -0
  473. package/dist/esm/scaffold/executor.js +285 -0
  474. package/dist/esm/scaffold/executor.js.map +1 -0
  475. package/dist/esm/scaffold/index.d.ts +74 -0
  476. package/dist/esm/scaffold/index.js +23 -0
  477. package/dist/esm/scaffold/index.js.map +1 -0
  478. package/dist/esm/scaffold/merge.d.ts +56 -0
  479. package/dist/esm/scaffold/merge.js +183 -0
  480. package/dist/esm/scaffold/merge.js.map +1 -0
  481. package/dist/esm/scaffold/parameter-resolver.d.ts +86 -0
  482. package/dist/esm/scaffold/parameter-resolver.js +179 -0
  483. package/dist/esm/scaffold/parameter-resolver.js.map +1 -0
  484. package/dist/esm/scaffold/registry.d.ts +45 -0
  485. package/dist/esm/scaffold/registry.js +219 -0
  486. package/dist/esm/scaffold/registry.js.map +1 -0
  487. package/dist/esm/scaffold/sources.d.ts +45 -0
  488. package/dist/esm/scaffold/sources.js +113 -0
  489. package/dist/esm/scaffold/sources.js.map +1 -0
  490. package/dist/esm/scaffold/types.d.ts +280 -0
  491. package/dist/esm/scaffold/types.js +14 -0
  492. package/dist/esm/scaffold/types.js.map +1 -0
  493. package/dist/esm/scaffold/validation.d.ts +81 -0
  494. package/dist/esm/scaffold/validation.js +250 -0
  495. package/dist/esm/scaffold/validation.js.map +1 -0
  496. package/dist/esm/scaffold/validators.d.ts +33 -0
  497. package/dist/esm/scaffold/validators.js +334 -0
  498. package/dist/esm/scaffold/validators.js.map +1 -0
  499. package/dist/{cjs/operations/scapi-schemas → esm/schemas}/collapse.d.ts +1 -1
  500. package/dist/esm/schemas/collapse.js.map +1 -0
  501. package/dist/esm/{operations/scapi-schemas → schemas}/index.d.ts +5 -5
  502. package/dist/esm/{operations/scapi-schemas → schemas}/index.js +5 -5
  503. package/dist/esm/schemas/index.js.map +1 -0
  504. package/dist/esm/telemetry/index.d.ts +26 -0
  505. package/dist/esm/telemetry/index.js +32 -0
  506. package/dist/esm/telemetry/index.js.map +1 -0
  507. package/dist/esm/telemetry/telemetry.d.ts +90 -0
  508. package/dist/esm/telemetry/telemetry.js +283 -0
  509. package/dist/esm/telemetry/telemetry.js.map +1 -0
  510. package/dist/esm/telemetry/types.d.ts +62 -0
  511. package/dist/esm/telemetry/types.js +7 -0
  512. package/dist/esm/telemetry/types.js.map +1 -0
  513. package/dist/esm/test-utils/config-isolation.js +7 -0
  514. package/dist/esm/test-utils/config-isolation.js.map +1 -1
  515. package/package.json +112 -50
  516. package/specs/am-apiclients-api-v1.yaml +965 -0
  517. package/specs/am-roles-api-v1.yaml +316 -0
  518. package/specs/am-users-api-v1.yaml +1102 -0
  519. package/dist/cjs/logger.d.ts +0 -66
  520. package/dist/cjs/logger.js +0 -80
  521. package/dist/cjs/logger.js.map +0 -1
  522. package/dist/cjs/operations/docs/download.js.map +0 -1
  523. package/dist/cjs/operations/docs/index.js.map +0 -1
  524. package/dist/cjs/operations/docs/schema.js.map +0 -1
  525. package/dist/cjs/operations/docs/search.js.map +0 -1
  526. package/dist/cjs/operations/docs/types.js.map +0 -1
  527. package/dist/cjs/operations/scapi-schemas/collapse.js.map +0 -1
  528. package/dist/cjs/operations/scapi-schemas/index.js.map +0 -1
  529. package/dist/cjs/operations/sites/index.d.ts +0 -56
  530. package/dist/cjs/operations/sites/index.js +0 -19
  531. package/dist/cjs/operations/sites/index.js.map +0 -1
  532. package/dist/cjs/platform/index.d.ts +0 -38
  533. package/dist/cjs/platform/index.js +0 -42
  534. package/dist/cjs/platform/index.js.map +0 -1
  535. package/dist/cjs/platform/mrt.d.ts +0 -19
  536. package/dist/cjs/platform/mrt.js +0 -22
  537. package/dist/cjs/platform/mrt.js.map +0 -1
  538. package/dist/cjs/platform/ods.d.ts +0 -17
  539. package/dist/cjs/platform/ods.js +0 -22
  540. package/dist/cjs/platform/ods.js.map +0 -1
  541. package/dist/esm/logger.d.ts +0 -66
  542. package/dist/esm/logger.js +0 -80
  543. package/dist/esm/logger.js.map +0 -1
  544. package/dist/esm/operations/docs/download.js.map +0 -1
  545. package/dist/esm/operations/docs/index.js.map +0 -1
  546. package/dist/esm/operations/docs/schema.js.map +0 -1
  547. package/dist/esm/operations/docs/search.js.map +0 -1
  548. package/dist/esm/operations/docs/types.js.map +0 -1
  549. package/dist/esm/operations/scapi-schemas/collapse.js.map +0 -1
  550. package/dist/esm/operations/scapi-schemas/index.js.map +0 -1
  551. package/dist/esm/operations/sites/index.d.ts +0 -56
  552. package/dist/esm/operations/sites/index.js +0 -67
  553. package/dist/esm/operations/sites/index.js.map +0 -1
  554. package/dist/esm/platform/index.d.ts +0 -38
  555. package/dist/esm/platform/index.js +0 -42
  556. package/dist/esm/platform/index.js.map +0 -1
  557. package/dist/esm/platform/mrt.d.ts +0 -19
  558. package/dist/esm/platform/mrt.js +0 -22
  559. package/dist/esm/platform/mrt.js.map +0 -1
  560. package/dist/esm/platform/ods.d.ts +0 -17
  561. package/dist/esm/platform/ods.js +0 -22
  562. package/dist/esm/platform/ods.js.map +0 -1
  563. /package/dist/cjs/{operations/docs → docs}/index.js +0 -0
  564. /package/dist/cjs/{operations/docs → docs}/schema.d.ts +0 -0
  565. /package/dist/cjs/{operations/docs → docs}/schema.js +0 -0
  566. /package/dist/cjs/{operations/docs → docs}/search.d.ts +0 -0
  567. /package/dist/cjs/{operations/docs → docs}/search.js +0 -0
  568. /package/dist/cjs/{operations/docs → docs}/types.d.ts +0 -0
  569. /package/dist/cjs/{operations/docs → docs}/types.js +0 -0
  570. /package/dist/cjs/{operations/scapi-schemas → schemas}/collapse.js +0 -0
  571. /package/dist/esm/{operations/docs → docs}/index.js +0 -0
  572. /package/dist/esm/{operations/docs → docs}/schema.d.ts +0 -0
  573. /package/dist/esm/{operations/docs → docs}/schema.js +0 -0
  574. /package/dist/esm/{operations/docs → docs}/search.d.ts +0 -0
  575. /package/dist/esm/{operations/docs → docs}/search.js +0 -0
  576. /package/dist/esm/{operations/docs → docs}/types.d.ts +0 -0
  577. /package/dist/esm/{operations/docs → docs}/types.js +0 -0
  578. /package/dist/esm/{operations/scapi-schemas → schemas}/collapse.js +0 -0
@@ -0,0 +1,48 @@
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
+ * Content library operations for B2C Commerce.
8
+ *
9
+ * This module provides functions for exporting and manipulating
10
+ * Page Designer content libraries including pages, components, and assets.
11
+ *
12
+ * ## Core Classes
13
+ *
14
+ * - {@link Library} - Parse and manipulate content library trees
15
+ * - {@link LibraryNode} - Individual nodes in the library tree
16
+ *
17
+ * ## Operations
18
+ *
19
+ * - {@link fetchContentLibrary} - Fetch and parse a content library
20
+ * - {@link exportContent} - Export filtered pages with assets to disk
21
+ *
22
+ * ## Utilities
23
+ *
24
+ * - {@link extractAssetPaths} - Extract asset paths from component JSON data
25
+ *
26
+ * ## Usage
27
+ *
28
+ * ```typescript
29
+ * import {
30
+ * Library,
31
+ * fetchContentLibrary,
32
+ * exportContent,
33
+ * } from '@salesforce/b2c-tooling-sdk/operations/content';
34
+ *
35
+ * // Fetch and filter a library
36
+ * const { library } = await fetchContentLibrary(instance, 'SharedLibrary');
37
+ * library.filter(n => n.id === 'homepage');
38
+ *
39
+ * // Or use the high-level export
40
+ * const result = await exportContent(instance, ['homepage'], 'SharedLibrary', './export');
41
+ * ```
42
+ *
43
+ * @module operations/content
44
+ */
45
+ export { Library, LibraryNode } from './library.js';
46
+ export { extractAssetPaths } from './asset-query.js';
47
+ export { fetchContentLibrary, exportContent } from './export.js';
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/content/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAC,OAAO,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAElD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAC,mBAAmB,EAAE,aAAa,EAAC,MAAM,aAAa,CAAC"}
@@ -0,0 +1,137 @@
1
+ import type { LibraryNodeType, LibraryParseOptions, TraverseOptions, TraverseCallback, FilterCallback, TreeStringOptions } from './types.js';
2
+ /**
3
+ * A node in the content library tree.
4
+ *
5
+ * Represents a library, page, content asset, component, or static asset reference.
6
+ */
7
+ export declare class LibraryNode {
8
+ id: string;
9
+ type: LibraryNodeType;
10
+ typeId: string | null;
11
+ data: Record<string, unknown> | null;
12
+ parent: LibraryNode | null;
13
+ children: LibraryNode[];
14
+ hidden: boolean;
15
+ /** @internal Raw xml2js content object */
16
+ xml: Record<string, unknown> | null;
17
+ constructor(values: {
18
+ id: string;
19
+ type: LibraryNodeType;
20
+ typeId: string | null;
21
+ data: Record<string, unknown> | null;
22
+ parent: LibraryNode | null;
23
+ children: LibraryNode[];
24
+ hidden: boolean;
25
+ xml: Record<string, unknown> | null;
26
+ });
27
+ toJSON(): Record<string, unknown>;
28
+ }
29
+ /**
30
+ * Provides an interface for manipulating B2C Commerce content libraries.
31
+ *
32
+ * Use the static `Library.parse()` factory to create instances from library XML.
33
+ * The library tree supports filtering, traversal, mutation, and serialization
34
+ * back to importable XML.
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * const library = await Library.parse(xmlString);
39
+ *
40
+ * // Filter to specific pages
41
+ * library.filter(node => node.id === 'homepage');
42
+ *
43
+ * // Traverse visible nodes
44
+ * library.traverse(node => {
45
+ * console.log(node.id, node.type);
46
+ * });
47
+ *
48
+ * // Serialize back to XML
49
+ * const xml = await library.toXMLString({ traverseHidden: false });
50
+ * ```
51
+ */
52
+ export declare class Library {
53
+ assetQuery: string[];
54
+ tree: LibraryNode;
55
+ /** @internal Raw xml2js parsed object */
56
+ xml: Record<string, unknown>;
57
+ /** @internal */
58
+ constructor(guard: symbol);
59
+ /**
60
+ * Parse library XML into a Library tree.
61
+ *
62
+ * @param libraryXML - Raw XML string of a content library
63
+ * @param options - Parse options
64
+ * @returns Parsed Library instance
65
+ */
66
+ static parse(libraryXML: string, { assetQuery, keepOrphans }?: LibraryParseOptions): Promise<Library>;
67
+ /**
68
+ * Depth-first traversal of the library tree.
69
+ *
70
+ * @param callback - Function called for each visited node
71
+ * @param options - Traversal options
72
+ * @returns this (for chaining)
73
+ */
74
+ traverse(callback: TraverseCallback, { traverseHidden, callbackHidden }?: TraverseOptions): this;
75
+ /**
76
+ * Generator-based depth-first iteration of the library tree.
77
+ *
78
+ * @param options - Traversal options
79
+ * @yields LibraryNode for each visited node
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * for (const node of library.nodes()) {
84
+ * console.log(node.id, node.type);
85
+ * }
86
+ * ```
87
+ */
88
+ nodes({ traverseHidden, callbackHidden }?: TraverseOptions): Generator<LibraryNode>;
89
+ /**
90
+ * Filter the library tree by setting hidden flags on root children.
91
+ *
92
+ * @param predicate - Return true to keep the node visible
93
+ * @param options - Filter options
94
+ * @returns this (for chaining)
95
+ */
96
+ filter(predicate: FilterCallback, { recursive }?: {
97
+ recursive?: boolean | undefined;
98
+ }): this;
99
+ /**
100
+ * Move a node from its current parent to the root of the library tree.
101
+ *
102
+ * Useful for exporting individual components that are normally nested under pages.
103
+ * The node is removed from its original parent's children and added as a root child.
104
+ *
105
+ * @param node - The node to promote
106
+ * @returns this (for chaining)
107
+ */
108
+ promoteToRoot(node: LibraryNode): this;
109
+ /**
110
+ * Reset all hidden flags, making every node visible again.
111
+ *
112
+ * @returns this (for chaining)
113
+ */
114
+ reset(): this;
115
+ /**
116
+ * Serialize the library back to importable XML.
117
+ *
118
+ * Only includes visible content unless `traverseHidden` is true.
119
+ *
120
+ * @param options - Serialization options
121
+ * @returns XML string
122
+ */
123
+ toXMLString({ traverseHidden }?: {
124
+ traverseHidden?: boolean;
125
+ }): Promise<string>;
126
+ /**
127
+ * Returns a text tree visualization of the library structure.
128
+ *
129
+ * @param options - Tree string options (traversal and optional colorize function)
130
+ * @returns Multi-line tree string
131
+ */
132
+ getTreeString({ traverseHidden, colorize }?: TreeStringOptions): string;
133
+ /**
134
+ * Returns a JSON-safe representation of the library tree.
135
+ */
136
+ toJSON(): Record<string, unknown>;
137
+ }
@@ -0,0 +1,392 @@
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
+ import * as xml2js from 'xml2js';
7
+ import { getLogger } from '../../logging/logger.js';
8
+ import { extractAssetPaths } from './asset-query.js';
9
+ /**
10
+ * A node in the content library tree.
11
+ *
12
+ * Represents a library, page, content asset, component, or static asset reference.
13
+ */
14
+ export class LibraryNode {
15
+ id;
16
+ type;
17
+ typeId;
18
+ data;
19
+ parent;
20
+ children;
21
+ hidden;
22
+ /** @internal Raw xml2js content object */
23
+ xml;
24
+ constructor(values) {
25
+ this.id = values.id;
26
+ this.type = values.type;
27
+ this.typeId = values.typeId;
28
+ this.data = values.data;
29
+ this.parent = values.parent;
30
+ this.children = values.children;
31
+ this.hidden = values.hidden;
32
+ this.xml = values.xml;
33
+ }
34
+ toJSON() {
35
+ return {
36
+ id: this.id,
37
+ type: this.type,
38
+ typeId: this.typeId,
39
+ data: this.data,
40
+ children: this.children,
41
+ hidden: this.hidden,
42
+ };
43
+ }
44
+ }
45
+ /**
46
+ * Recursively processes a content XML element into a LibraryNode tree.
47
+ *
48
+ * Extracts child components via content-links and static assets via asset queries.
49
+ */
50
+ function processContent(content, allContent, assetQuery) {
51
+ const logger = getLogger();
52
+ const attrs = content['$'];
53
+ const contentId = attrs['content-id'];
54
+ const contentType = content['type']?.[0] ?? null;
55
+ const dataElements = content['data'];
56
+ const node = new LibraryNode({
57
+ id: contentId,
58
+ type: contentType ? (contentType.startsWith('page.') ? 'PAGE' : 'COMPONENT') : 'CONTENT',
59
+ typeId: contentType,
60
+ data: null,
61
+ children: [],
62
+ xml: content,
63
+ hidden: false,
64
+ parent: null,
65
+ });
66
+ // Parse JSON data and extract asset paths
67
+ if (dataElements?.[0]?.['_']) {
68
+ try {
69
+ const dataJson = JSON.parse(dataElements[0]['_']);
70
+ node.data = dataJson;
71
+ const assetPaths = extractAssetPaths(dataJson, assetQuery);
72
+ for (const assetPath of assetPaths) {
73
+ node.children.push(new LibraryNode({
74
+ id: assetPath,
75
+ type: 'STATIC',
76
+ typeId: null,
77
+ data: null,
78
+ parent: node,
79
+ children: [],
80
+ hidden: false,
81
+ xml: null,
82
+ }));
83
+ }
84
+ }
85
+ catch {
86
+ logger.warn({ contentId }, `Could not parse JSON data for content ${contentId}`);
87
+ }
88
+ }
89
+ // Recurse into content-links
90
+ const contentLinks = content['content-links'];
91
+ if (contentLinks?.[0]?.['content-link']) {
92
+ const links = contentLinks[0]['content-link'];
93
+ for (const link of links) {
94
+ const linkAttrs = link['$'];
95
+ const linkId = linkAttrs['content-id'];
96
+ if (!allContent[linkId]) {
97
+ logger.warn(`Cannot find component ${linkId} in library; skipping...`);
98
+ continue;
99
+ }
100
+ const componentNode = processContent(allContent[linkId], allContent, assetQuery);
101
+ componentNode.parent = node;
102
+ node.children.push(componentNode);
103
+ }
104
+ }
105
+ return node;
106
+ }
107
+ /** Private guard to enforce use of Library.parse() */
108
+ const CONSTRUCTOR_GUARD = Symbol('Library.parse');
109
+ /**
110
+ * Provides an interface for manipulating B2C Commerce content libraries.
111
+ *
112
+ * Use the static `Library.parse()` factory to create instances from library XML.
113
+ * The library tree supports filtering, traversal, mutation, and serialization
114
+ * back to importable XML.
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * const library = await Library.parse(xmlString);
119
+ *
120
+ * // Filter to specific pages
121
+ * library.filter(node => node.id === 'homepage');
122
+ *
123
+ * // Traverse visible nodes
124
+ * library.traverse(node => {
125
+ * console.log(node.id, node.type);
126
+ * });
127
+ *
128
+ * // Serialize back to XML
129
+ * const xml = await library.toXMLString({ traverseHidden: false });
130
+ * ```
131
+ */
132
+ export class Library {
133
+ assetQuery = [];
134
+ tree;
135
+ /** @internal Raw xml2js parsed object */
136
+ xml;
137
+ /** @internal */
138
+ constructor(guard) {
139
+ if (guard !== CONSTRUCTOR_GUARD) {
140
+ throw new Error('Use Library.parse() to construct a Library instance');
141
+ }
142
+ }
143
+ /**
144
+ * Parse library XML into a Library tree.
145
+ *
146
+ * @param libraryXML - Raw XML string of a content library
147
+ * @param options - Parse options
148
+ * @returns Parsed Library instance
149
+ */
150
+ static async parse(libraryXML, { assetQuery = ['image.path'], keepOrphans = false } = {}) {
151
+ const xml = (await xml2js.parseStringPromise(libraryXML));
152
+ const libraryElement = xml['library'];
153
+ const attrs = libraryElement['$'];
154
+ const libraryId = attrs['library-id'];
155
+ const contentArray = libraryElement['content'];
156
+ const library = new Library(CONSTRUCTOR_GUARD);
157
+ library.assetQuery = assetQuery;
158
+ const root = new LibraryNode({
159
+ id: libraryId,
160
+ type: 'LIBRARY',
161
+ typeId: null,
162
+ children: [],
163
+ data: null,
164
+ parent: null,
165
+ hidden: false,
166
+ xml: null,
167
+ });
168
+ // Index all content by ID
169
+ const contentById = {};
170
+ for (const c of contentArray) {
171
+ const cAttrs = c['$'];
172
+ contentById[cAttrs['content-id']] = c;
173
+ }
174
+ // Process pages and root-level content (no type = content asset)
175
+ for (const c of contentArray) {
176
+ const cType = c['type']?.[0];
177
+ if ((cType && cType.startsWith('page.')) || !cType) {
178
+ const node = processContent(c, contentById, assetQuery);
179
+ node.parent = root;
180
+ root.children.push(node);
181
+ }
182
+ }
183
+ library.xml = xml;
184
+ library.tree = root;
185
+ // Optionally include orphan components
186
+ if (keepOrphans) {
187
+ const processedIds = new Set();
188
+ library.traverse((node) => {
189
+ processedIds.add(node.id);
190
+ });
191
+ for (const c of contentArray) {
192
+ const cAttrs = c['$'];
193
+ const cId = cAttrs['content-id'];
194
+ if (!processedIds.has(cId)) {
195
+ const node = processContent(c, contentById, assetQuery);
196
+ node.parent = root;
197
+ root.children.push(node);
198
+ }
199
+ }
200
+ }
201
+ // Remove headers and folders from xml (not needed for filtered export)
202
+ delete libraryElement['header'];
203
+ delete libraryElement['folder'];
204
+ return library;
205
+ }
206
+ /**
207
+ * Depth-first traversal of the library tree.
208
+ *
209
+ * @param callback - Function called for each visited node
210
+ * @param options - Traversal options
211
+ * @returns this (for chaining)
212
+ */
213
+ traverse(callback, { traverseHidden = true, callbackHidden = false } = {}) {
214
+ function walk(node) {
215
+ if (!node.hidden || traverseHidden) {
216
+ for (const child of node.children) {
217
+ walk(child);
218
+ }
219
+ }
220
+ if (!node.hidden || callbackHidden) {
221
+ callback(node);
222
+ }
223
+ }
224
+ for (const child of this.tree.children) {
225
+ walk(child);
226
+ }
227
+ return this;
228
+ }
229
+ /**
230
+ * Generator-based depth-first iteration of the library tree.
231
+ *
232
+ * @param options - Traversal options
233
+ * @yields LibraryNode for each visited node
234
+ *
235
+ * @example
236
+ * ```typescript
237
+ * for (const node of library.nodes()) {
238
+ * console.log(node.id, node.type);
239
+ * }
240
+ * ```
241
+ */
242
+ *nodes({ traverseHidden = true, callbackHidden = false } = {}) {
243
+ function* walk(node) {
244
+ if (!node.hidden || traverseHidden) {
245
+ for (const child of node.children) {
246
+ yield* walk(child);
247
+ }
248
+ }
249
+ if (!node.hidden || callbackHidden) {
250
+ yield node;
251
+ }
252
+ }
253
+ for (const child of this.tree.children) {
254
+ yield* walk(child);
255
+ }
256
+ }
257
+ /**
258
+ * Filter the library tree by setting hidden flags on root children.
259
+ *
260
+ * @param predicate - Return true to keep the node visible
261
+ * @param options - Filter options
262
+ * @returns this (for chaining)
263
+ */
264
+ filter(predicate, { recursive = false } = {}) {
265
+ if (!recursive) {
266
+ for (const child of this.tree.children) {
267
+ child.hidden = !predicate(child);
268
+ }
269
+ }
270
+ else {
271
+ this.traverse((n) => {
272
+ n.hidden = !predicate(n);
273
+ }, { traverseHidden: true, callbackHidden: true });
274
+ }
275
+ return this;
276
+ }
277
+ /**
278
+ * Move a node from its current parent to the root of the library tree.
279
+ *
280
+ * Useful for exporting individual components that are normally nested under pages.
281
+ * The node is removed from its original parent's children and added as a root child.
282
+ *
283
+ * @param node - The node to promote
284
+ * @returns this (for chaining)
285
+ */
286
+ promoteToRoot(node) {
287
+ if (node.parent && node.parent !== this.tree) {
288
+ node.parent.children = node.parent.children.filter((c) => c !== node);
289
+ }
290
+ if (!this.tree.children.includes(node)) {
291
+ node.parent = this.tree;
292
+ node.hidden = false;
293
+ this.tree.children.push(node);
294
+ }
295
+ return this;
296
+ }
297
+ /**
298
+ * Reset all hidden flags, making every node visible again.
299
+ *
300
+ * @returns this (for chaining)
301
+ */
302
+ reset() {
303
+ this.traverse((n) => {
304
+ n.hidden = false;
305
+ }, { traverseHidden: true, callbackHidden: true });
306
+ return this;
307
+ }
308
+ /**
309
+ * Serialize the library back to importable XML.
310
+ *
311
+ * Only includes visible content unless `traverseHidden` is true.
312
+ *
313
+ * @param options - Serialization options
314
+ * @returns XML string
315
+ */
316
+ async toXMLString({ traverseHidden = true } = {}) {
317
+ const libraryElement = this.xml['library'];
318
+ delete libraryElement['content'];
319
+ libraryElement['content'] = [];
320
+ this.traverse((n) => {
321
+ const node = n;
322
+ if (node.data && node.xml) {
323
+ const dataEl = node.xml['data']?.[0];
324
+ if (dataEl) {
325
+ dataEl['_'] = JSON.stringify(node.data, null, 2);
326
+ }
327
+ }
328
+ if (node.xml) {
329
+ libraryElement['content'].push(node.xml);
330
+ }
331
+ }, { traverseHidden });
332
+ const builder = new xml2js.Builder();
333
+ return builder.buildObject(this.xml);
334
+ }
335
+ /**
336
+ * Returns a text tree visualization of the library structure.
337
+ *
338
+ * @param options - Tree string options (traversal and optional colorize function)
339
+ * @returns Multi-line tree string
340
+ */
341
+ getTreeString({ traverseHidden = false, colorize } = {}) {
342
+ const lines = [];
343
+ const c = colorize ?? ((_color, text) => text);
344
+ function formatNode(node) {
345
+ switch (node.type) {
346
+ case 'COMPONENT': {
347
+ return node.typeId ? `${c('cyan', node.typeId)} ${c('dim', `(${node.id})`)}` : node.id;
348
+ }
349
+ case 'CONTENT': {
350
+ return `${c('bold', node.id)} ${c('dim', '(CONTENT ASSET)')}`;
351
+ }
352
+ case 'PAGE': {
353
+ const name = c('bold', node.id);
354
+ return node.typeId ? `${name} ${c('dim', `(typeId: ${node.typeId})`)}` : name;
355
+ }
356
+ case 'STATIC': {
357
+ return `${c('green', node.id)} ${c('dim', '(STATIC ASSET)')}`;
358
+ }
359
+ default: {
360
+ return node.id;
361
+ }
362
+ }
363
+ }
364
+ function visibleChildren(node) {
365
+ return traverseHidden ? node.children : node.children.filter((child) => !child.hidden);
366
+ }
367
+ function renderSubtree(children, prefix) {
368
+ for (let i = 0; i < children.length; i++) {
369
+ const node = children[i];
370
+ const isLast = i === children.length - 1;
371
+ const connector = isLast ? '└── ' : '├── ';
372
+ const extension = isLast ? ' ' : '│ ';
373
+ const hiddenTag = node.hidden ? ` ${c('yellow', '[HIDDEN]')}` : '';
374
+ lines.push(`${c('dim', prefix + connector)}${formatNode(node)}${hiddenTag}`);
375
+ renderSubtree(visibleChildren(node), prefix + extension);
376
+ }
377
+ }
378
+ for (const child of visibleChildren(this.tree)) {
379
+ const hiddenTag = child.hidden ? ` ${c('yellow', '[HIDDEN]')}` : '';
380
+ lines.push(`${formatNode(child)}${hiddenTag}`);
381
+ renderSubtree(visibleChildren(child), '');
382
+ }
383
+ return lines.join('\n');
384
+ }
385
+ /**
386
+ * Returns a JSON-safe representation of the library tree.
387
+ */
388
+ toJSON() {
389
+ return this.tree.toJSON();
390
+ }
391
+ }
392
+ //# sourceMappingURL=library.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library.js","sourceRoot":"","sources":["../../../../src/operations/content/library.ts"],"names":[],"mappings":"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"}