@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,6 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=am-users-api.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"am-users-api.generated.js","sourceRoot":"","sources":["../../../src/clients/am-users-api.generated.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -112,8 +112,8 @@
112
112
  */
113
113
  export { WebDavClient } from './webdav.js';
114
114
  export type { PropfindEntry, WebDavClientOptions } from './webdav.js';
115
- export { createAuthMiddleware, createLoggingMiddleware, createExtraParamsMiddleware, createUserAgentMiddleware, } from './middleware.js';
116
- export type { ExtraParamsConfig, LoggingMiddlewareConfig, UserAgentConfig } from './middleware.js';
115
+ export { createAuthMiddleware, createRateLimitMiddleware, createLoggingMiddleware, createExtraParamsMiddleware, createUserAgentMiddleware, } from './middleware.js';
116
+ export type { ExtraParamsConfig, LoggingMiddlewareConfig, UserAgentConfig, RateLimitMiddlewareConfig, } from './middleware.js';
117
117
  export { setUserAgent, getUserAgent, resetUserAgent, userAgentProvider } from './user-agent.js';
118
118
  export { MiddlewareRegistry, globalMiddlewareRegistry } from './middleware-registry.js';
119
119
  export type { HttpClientType, HttpMiddlewareProvider, UnifiedMiddleware } from './middleware-registry.js';
@@ -129,6 +129,8 @@ export { createCustomApisClient, toOrganizationId, toTenantId, buildTenantScope,
129
129
  export type { CustomApisClient, CustomApisClientConfig, CustomApisError, CustomApisResponse, paths as CustomApisPaths, components as CustomApisComponents, } from './custom-apis.js';
130
130
  export { createScapiSchemasClient, SCAPI_SCHEMAS_DEFAULT_SCOPES } from './scapi-schemas.js';
131
131
  export type { ScapiSchemasClient, ScapiSchemasClientConfig, ScapiSchemasError, ScapiSchemasResponse, SchemaListItem, SchemaListResult, OpenApiSchema, paths as ScapiSchemasPaths, components as ScapiSchemasComponents, } from './scapi-schemas.js';
132
+ export { createAccountManagerClient, createAccountManagerUsersClient, getUser, listUsers, createUser, updateUser, deleteUser, purgeUser, resetUser, findUserByLogin, mapToInternalRole, mapFromInternalRole, ROLE_NAMES_MAP, ROLE_NAMES_MAP_REVERSE, createAccountManagerRolesClient, getRole, listRoles, createAccountManagerApiClientsClient, createAccountManagerOrgsClient, isValidRoleTenantFilter, ROLE_TENANT_FILTER_PATTERN, } from './am-api.js';
133
+ export type { AccountManagerClient, AccountManagerClientConfig, AccountManagerUsersClient, AccountManagerUser, AccountManagerResponse, AccountManagerError, UserExpandOption, UserCreate, UserUpdate, UserCollection, UserState, ListUsersOptions, AccountManagerRolesClient, AccountManagerRole, AccountManagerRolesResponse, AccountManagerRolesError, RoleCollection, ListRolesOptions, AccountManagerApiClientsClient, AccountManagerApiClient, APIClientCreate, APIClientUpdate, APIClientCollection, ApiClientExpandOption, ListApiClientsOptions, AccountManagerOrgsClient, AccountManagerOrganization, OrganizationCollection, ListOrgsOptions, } from './am-api.js';
132
134
  export { createCdnZonesClient, CDN_ZONES_READ_SCOPES, CDN_ZONES_RW_SCOPES } from './cdn-zones.js';
133
135
  export type { CdnZonesClient, CdnZonesClientConfig, CdnZonesClientOptions, CdnZonesError, CdnZonesResponse, Zone, ZonesEnvelope, Certificate, SecuritySetting, SpeedSetting, paths as CdnZonesPaths, components as CdnZonesComponents, } from './cdn-zones.js';
134
136
  export { createMrtB2CClient, DEFAULT_MRT_B2C_ORIGIN } from './mrt-b2c.js';
@@ -116,7 +116,7 @@
116
116
  * @module clients
117
117
  */
118
118
  export { WebDavClient } from './webdav.js';
119
- export { createAuthMiddleware, createLoggingMiddleware, createExtraParamsMiddleware, createUserAgentMiddleware, } from './middleware.js';
119
+ export { createAuthMiddleware, createRateLimitMiddleware, createLoggingMiddleware, createExtraParamsMiddleware, createUserAgentMiddleware, } from './middleware.js';
120
120
  // User-Agent provider (auto-registers on import)
121
121
  export { setUserAgent, getUserAgent, resetUserAgent, userAgentProvider } from './user-agent.js';
122
122
  export { MiddlewareRegistry, globalMiddlewareRegistry } from './middleware-registry.js';
@@ -126,6 +126,7 @@ export { createOdsClient } from './ods.js';
126
126
  export { createMrtClient, DEFAULT_MRT_ORIGIN } from './mrt.js';
127
127
  export { createCustomApisClient, toOrganizationId, toTenantId, buildTenantScope, ORGANIZATION_ID_PREFIX, SCAPI_TENANT_SCOPE_PREFIX, CUSTOM_APIS_DEFAULT_SCOPES, } from './custom-apis.js';
128
128
  export { createScapiSchemasClient, SCAPI_SCHEMAS_DEFAULT_SCOPES } from './scapi-schemas.js';
129
+ export { createAccountManagerClient, createAccountManagerUsersClient, getUser, listUsers, createUser, updateUser, deleteUser, purgeUser, resetUser, findUserByLogin, mapToInternalRole, mapFromInternalRole, ROLE_NAMES_MAP, ROLE_NAMES_MAP_REVERSE, createAccountManagerRolesClient, getRole, listRoles, createAccountManagerApiClientsClient, createAccountManagerOrgsClient, isValidRoleTenantFilter, ROLE_TENANT_FILTER_PATTERN, } from './am-api.js';
129
130
  export { createCdnZonesClient, CDN_ZONES_READ_SCOPES, CDN_ZONES_RW_SCOPES } from './cdn-zones.js';
130
131
  export { createMrtB2CClient, DEFAULT_MRT_B2C_ORIGIN } from './mrt-b2c.js';
131
132
  export { getApiErrorMessage } from './error-utils.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AACH,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAGzC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAGzB,iDAAiD;AACjD,OAAO,EAAC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAC,kBAAkB,EAAE,wBAAwB,EAAC,MAAM,0BAA0B,CAAC;AAGtF,OAAO,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAU7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAUjD,OAAO,EAAC,eAAe,EAAC,MAAM,UAAU,CAAC;AAUzC,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,UAAU,CAAC;AAW7D,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAU1B,OAAO,EAAC,wBAAwB,EAAE,4BAA4B,EAAC,MAAM,oBAAoB,CAAC;AAa1F,OAAO,EAAC,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAgBhG,OAAO,EAAC,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,cAAc,CAAC;AAaxE,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AACH,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAGzC,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAQzB,iDAAiD;AACjD,OAAO,EAAC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAC,kBAAkB,EAAE,wBAAwB,EAAC,MAAM,0BAA0B,CAAC;AAGtF,OAAO,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAU7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAUjD,OAAO,EAAC,eAAe,EAAC,MAAM,UAAU,CAAC;AAUzC,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,UAAU,CAAC;AAW7D,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAU1B,OAAO,EAAC,wBAAwB,EAAE,4BAA4B,EAAC,MAAM,oBAAoB,CAAC;AAa1F,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,+BAA+B,EAC/B,OAAO,EACP,SAAS,EACT,oCAAoC,EACpC,8BAA8B,EAC9B,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAiCrB,OAAO,EAAC,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAgBhG,OAAO,EAAC,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,cAAc,CAAC;AAaxE,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC"}
@@ -38,7 +38,7 @@ import type { Middleware } from 'openapi-fetch';
38
38
  /**
39
39
  * Types of HTTP clients that can receive middleware.
40
40
  */
41
- export type HttpClientType = 'ocapi' | 'slas' | 'ods' | 'mrt' | 'mrt-b2c' | 'custom-apis' | 'scapi-schemas' | 'cdn-zones' | 'webdav';
41
+ export type HttpClientType = 'ocapi' | 'slas' | 'ods' | 'mrt' | 'mrt-b2c' | 'custom-apis' | 'scapi-schemas' | 'cdn-zones' | 'webdav' | 'am-users-api' | 'am-roles-api' | 'am-apiclients-api' | 'am-orgs-api';
42
42
  /**
43
43
  * Middleware interface compatible with openapi-fetch.
44
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"middleware-registry.js","sourceRoot":"","sources":["../../../src/clients/middleware-registry.ts"],"names":[],"mappings":"AA4HA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,kBAAkB;IACrB,SAAS,GAA6B,EAAE,CAAC;IAEjD;;;;;;OAMG;IACH,QAAQ,CAAC,QAAgC;QACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAY;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC/D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,UAA0B;QACtC,MAAM,UAAU,GAAwB,EAAE,CAAC;QAE3C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,EAAE,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"middleware-registry.js","sourceRoot":"","sources":["../../../src/clients/middleware-registry.ts"],"names":[],"mappings":"AAgIA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,kBAAkB;IACrB,SAAS,GAA6B,EAAE,CAAC;IAEjD;;;;;;OAMG;IACH,QAAQ,CAAC,QAAgC;QACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAY;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC/D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,UAA0B;QACtC,MAAM,UAAU,GAAwB,EAAE,CAAC;QAE3C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,EAAE,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,kBAAkB,EAAE,CAAC"}
@@ -23,12 +23,59 @@ export interface ExtraParamsConfig {
23
23
  * Creates authentication middleware for openapi-fetch.
24
24
  *
25
25
  * This middleware intercepts requests and adds OAuth authentication headers
26
- * using the provided AuthStrategy.
26
+ * using the provided AuthStrategy. It also handles 401 responses by invalidating
27
+ * the token and retrying the request once with a fresh token.
27
28
  *
28
29
  * @param auth - The authentication strategy to use
29
- * @returns Middleware that adds auth headers to requests
30
+ * @returns Middleware that adds auth headers to requests and retries on 401
30
31
  */
31
32
  export declare function createAuthMiddleware(auth: AuthStrategy): Middleware;
33
+ /**
34
+ * Configuration for rate limiting middleware.
35
+ */
36
+ export interface RateLimitMiddlewareConfig {
37
+ /**
38
+ * Maximum number of retry attempts when a rate limit response is received.
39
+ * Defaults to 3.
40
+ */
41
+ maxRetries?: number;
42
+ /**
43
+ * Base delay in milliseconds used for exponential backoff when no Retry-After
44
+ * header is present. Defaults to 1000ms.
45
+ */
46
+ baseDelayMs?: number;
47
+ /**
48
+ * Maximum delay in milliseconds between retries. Defaults to 30000ms.
49
+ */
50
+ maxDelayMs?: number;
51
+ /**
52
+ * HTTP status codes that should trigger rate limit handling.
53
+ * Defaults to [429]. 503 is often used for overload, but is not included
54
+ * by default to avoid surprising retries for maintenance windows.
55
+ */
56
+ statusCodes?: number[];
57
+ /**
58
+ * Optional log prefix (e.g., 'MRT') used in log messages.
59
+ */
60
+ prefix?: string;
61
+ /**
62
+ * Optional fetch implementation used for retries when the middleware context
63
+ * does not provide a re-dispatch helper.
64
+ */
65
+ fetch?: (request: Request) => Promise<Response>;
66
+ }
67
+ /**
68
+ * Creates rate limiting middleware for openapi-fetch clients.
69
+ *
70
+ * This middleware inspects responses for rate-limit status codes (by default
71
+ * 429 Too Many Requests), uses the Retry-After header when present to
72
+ * determine a delay, and retries the request up to a configurable limit.
73
+ *
74
+ * The middleware is generic and can be used by MRT and other clients. It does
75
+ * not currently read CLI configuration directly; callers should pass
76
+ * configuration via the factory function.
77
+ */
78
+ export declare function createRateLimitMiddleware(config?: RateLimitMiddlewareConfig): Middleware;
32
79
  /**
33
80
  * Configuration for logging middleware.
34
81
  */
@@ -9,24 +9,236 @@ function headersToObject(headers) {
9
9
  });
10
10
  return result;
11
11
  }
12
+ // Track which requests have been retried to prevent infinite loops
13
+ const retriedRequests = new WeakSet();
14
+ // Store cloned request bodies for potential retry (body can only be read once)
15
+ const requestBodies = new WeakMap();
12
16
  /**
13
17
  * Creates authentication middleware for openapi-fetch.
14
18
  *
15
19
  * This middleware intercepts requests and adds OAuth authentication headers
16
- * using the provided AuthStrategy.
20
+ * using the provided AuthStrategy. It also handles 401 responses by invalidating
21
+ * the token and retrying the request once with a fresh token.
17
22
  *
18
23
  * @param auth - The authentication strategy to use
19
- * @returns Middleware that adds auth headers to requests
24
+ * @returns Middleware that adds auth headers to requests and retries on 401
20
25
  */
21
26
  export function createAuthMiddleware(auth) {
27
+ const logger = getLogger();
28
+ let hasHadSuccess = false;
22
29
  return {
23
30
  async onRequest({ request }) {
24
31
  if (auth.getAuthorizationHeader) {
25
32
  const authHeader = await auth.getAuthorizationHeader();
26
33
  request.headers.set('Authorization', authHeader);
27
34
  }
35
+ // Clone the request body before it gets consumed, so we can retry if needed
36
+ if (request.body && auth.invalidateToken && auth.getAuthorizationHeader) {
37
+ const clonedRequest = request.clone();
38
+ const bodyBuffer = await clonedRequest.arrayBuffer();
39
+ requestBodies.set(request, bodyBuffer);
40
+ }
28
41
  return request;
29
42
  },
43
+ async onResponse({ request, response }) {
44
+ if (response.status !== 401) {
45
+ hasHadSuccess = true;
46
+ }
47
+ // Only retry on 401 if we have had a prior successful response (indicating
48
+ // token expiry rather than bad credentials), haven't already retried this
49
+ // request, and the strategy supports token invalidation
50
+ if (response.status === 401 &&
51
+ hasHadSuccess &&
52
+ !retriedRequests.has(request) &&
53
+ auth.invalidateToken &&
54
+ auth.getAuthorizationHeader) {
55
+ logger.debug('[AuthMiddleware] Received 401, invalidating token and retrying');
56
+ // Mark this request as retried to prevent infinite loops
57
+ retriedRequests.add(request);
58
+ // Invalidate the cached token
59
+ auth.invalidateToken();
60
+ // Get a fresh token
61
+ const newAuthHeader = await auth.getAuthorizationHeader();
62
+ // Rebuild the request with the new auth header
63
+ const newHeaders = new Headers(request.headers);
64
+ newHeaders.set('Authorization', newAuthHeader);
65
+ // Get the saved body (if any)
66
+ const savedBody = requestBodies.get(request);
67
+ // Create a new request with the fresh token
68
+ const retryRequest = new Request(request.url, {
69
+ method: request.method,
70
+ headers: newHeaders,
71
+ body: savedBody,
72
+ // TypeScript doesn't know about duplex, but it's needed for streaming bodies
73
+ ...(savedBody ? { duplex: 'half' } : {}),
74
+ });
75
+ // Retry the request
76
+ const retryResponse = await fetch(retryRequest);
77
+ logger.debug({ status: retryResponse.status }, `[AuthMiddleware] Retry response: ${retryResponse.status}`);
78
+ return retryResponse;
79
+ }
80
+ return response;
81
+ },
82
+ };
83
+ }
84
+ const DEFAULT_RATE_LIMIT_MAX_RETRIES = 3;
85
+ const DEFAULT_RATE_LIMIT_BASE_DELAY_MS = 1000;
86
+ const DEFAULT_RATE_LIMIT_MAX_DELAY_MS = 30000;
87
+ const DEFAULT_RATE_LIMIT_STATUS_CODES = [429];
88
+ const DEFAULT_RATE_LIMIT_JITTER_RATIO = 0.2;
89
+ async function sleepWithAbort(ms, signal) {
90
+ if (ms <= 0) {
91
+ return true;
92
+ }
93
+ if (signal?.aborted) {
94
+ return false;
95
+ }
96
+ await new Promise((resolve) => {
97
+ function onAbort() {
98
+ clearTimeout(timeout);
99
+ signal?.removeEventListener('abort', onAbort);
100
+ resolve();
101
+ }
102
+ const timeout = setTimeout(() => {
103
+ signal?.removeEventListener('abort', onAbort);
104
+ resolve();
105
+ }, ms);
106
+ signal?.addEventListener('abort', onAbort);
107
+ });
108
+ return !signal?.aborted;
109
+ }
110
+ /**
111
+ * Parses the Retry-After header into a delay in milliseconds.
112
+ * Supports both seconds and HTTP date formats. Returns undefined if
113
+ * the header is missing or invalid.
114
+ */
115
+ function parseRetryAfter(headerValue) {
116
+ if (!headerValue) {
117
+ return undefined;
118
+ }
119
+ const seconds = Number(headerValue);
120
+ if (!Number.isNaN(seconds)) {
121
+ return Math.max(0, Math.round(seconds * 1000));
122
+ }
123
+ const dateMs = Date.parse(headerValue);
124
+ if (!Number.isNaN(dateMs)) {
125
+ const diff = dateMs - Date.now();
126
+ return diff > 0 ? diff : 0;
127
+ }
128
+ return undefined;
129
+ }
130
+ /**
131
+ * Returns the next backoff delay based on attempt count.
132
+ */
133
+ function computeBackoffDelayMs(attempt, baseDelayMs, maxDelayMs) {
134
+ const delay = baseDelayMs * Math.pow(2, Math.max(0, attempt));
135
+ if (delay <= 0) {
136
+ return 0;
137
+ }
138
+ const jitter = Math.round(delay * DEFAULT_RATE_LIMIT_JITTER_RATIO * Math.random());
139
+ return Math.min(delay + jitter, maxDelayMs);
140
+ }
141
+ /**
142
+ * Creates rate limiting middleware for openapi-fetch clients.
143
+ *
144
+ * This middleware inspects responses for rate-limit status codes (by default
145
+ * 429 Too Many Requests), uses the Retry-After header when present to
146
+ * determine a delay, and retries the request up to a configurable limit.
147
+ *
148
+ * The middleware is generic and can be used by MRT and other clients. It does
149
+ * not currently read CLI configuration directly; callers should pass
150
+ * configuration via the factory function.
151
+ */
152
+ export function createRateLimitMiddleware(config = {}) {
153
+ const logger = getLogger();
154
+ const { maxRetries = DEFAULT_RATE_LIMIT_MAX_RETRIES, baseDelayMs = DEFAULT_RATE_LIMIT_BASE_DELAY_MS, maxDelayMs = DEFAULT_RATE_LIMIT_MAX_DELAY_MS, statusCodes = DEFAULT_RATE_LIMIT_STATUS_CODES, prefix, fetch: configFetch, } = config;
155
+ const tag = prefix ? `[${prefix} RATE]` : '[RATE]';
156
+ return {
157
+ async onResponse(ctx) {
158
+ const { request, response } = ctx;
159
+ const ctxFetch = ctx.fetch;
160
+ // Only handle configured status codes
161
+ if (!statusCodes.includes(response.status) || maxRetries <= 0) {
162
+ return response;
163
+ }
164
+ const fetchFn = ctxFetch ?? configFetch ?? (typeof fetch === 'function' ? fetch : undefined);
165
+ if (!fetchFn) {
166
+ return response;
167
+ }
168
+ const reqWithAttempt = request;
169
+ const startingAttempt = reqWithAttempt._rateLimitAttempt ?? 0;
170
+ // If openapi-fetch provides ctx.fetch, it typically re-enters the middleware chain.
171
+ // In that case, do a single retry and let subsequent attempts be handled by
172
+ // subsequent middleware invocations (guarded by _rateLimitAttempt).
173
+ if (ctxFetch) {
174
+ if (startingAttempt >= maxRetries) {
175
+ logger.debug({ status: response.status, attempt: startingAttempt, maxRetries }, `${tag} Max retries reached, not retrying request`);
176
+ return response;
177
+ }
178
+ const retryAfterHeader = response.headers.get('Retry-After');
179
+ let delayMs = parseRetryAfter(retryAfterHeader);
180
+ if (delayMs === undefined) {
181
+ delayMs = computeBackoffDelayMs(startingAttempt, baseDelayMs, maxDelayMs);
182
+ }
183
+ logger.warn({
184
+ status: response.status,
185
+ attempt: startingAttempt + 1,
186
+ maxRetries,
187
+ delayMs,
188
+ retryAfter: retryAfterHeader ?? undefined,
189
+ url: request.url,
190
+ }, `${tag} Rate limit encountered, retrying request after ${delayMs}ms (attempt ${startingAttempt + 1}/${maxRetries})`);
191
+ const canRetry = await sleepWithAbort(delayMs, request.signal);
192
+ if (!canRetry) {
193
+ return response;
194
+ }
195
+ reqWithAttempt._rateLimitAttempt = startingAttempt + 1;
196
+ let retryRequest = request;
197
+ try {
198
+ retryRequest = request.clone();
199
+ }
200
+ catch {
201
+ logger.debug({ url: request.url }, `${tag} Could not clone request for retry; retrying with original request`);
202
+ }
203
+ return fetchFn(retryRequest);
204
+ }
205
+ // Fallback path: if ctx.fetch is not provided, handle retries in this invocation.
206
+ let lastResponse = response;
207
+ let attempt = startingAttempt;
208
+ while (statusCodes.includes(lastResponse.status) && attempt < maxRetries) {
209
+ const retryAfterHeader = lastResponse.headers.get('Retry-After');
210
+ let delayMs = parseRetryAfter(retryAfterHeader);
211
+ if (delayMs === undefined) {
212
+ delayMs = computeBackoffDelayMs(attempt, baseDelayMs, maxDelayMs);
213
+ }
214
+ logger.warn({
215
+ status: lastResponse.status,
216
+ attempt: attempt + 1,
217
+ maxRetries,
218
+ delayMs,
219
+ retryAfter: retryAfterHeader ?? undefined,
220
+ url: request.url,
221
+ }, `${tag} Rate limit encountered, retrying request after ${delayMs}ms (attempt ${attempt + 1}/${maxRetries})`);
222
+ const canRetry = await sleepWithAbort(delayMs, request.signal);
223
+ if (!canRetry) {
224
+ return lastResponse;
225
+ }
226
+ attempt += 1;
227
+ reqWithAttempt._rateLimitAttempt = attempt;
228
+ let retryRequest = request;
229
+ try {
230
+ retryRequest = request.clone();
231
+ }
232
+ catch {
233
+ logger.debug({ url: request.url }, `${tag} Could not clone request for retry; retrying with original request`);
234
+ }
235
+ lastResponse = await fetchFn(retryRequest);
236
+ }
237
+ if (statusCodes.includes(lastResponse.status) && attempt >= maxRetries) {
238
+ logger.debug({ status: lastResponse.status, attempt, maxRetries }, `${tag} Max retries reached, not retrying request`);
239
+ }
240
+ return lastResponse;
241
+ },
30
242
  };
31
243
  }
32
244
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/clients/middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/clients/middleware.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@
13
13
  * @module clients/mrt
14
14
  */
15
15
  import createClient, {} from 'openapi-fetch';
16
- import { createAuthMiddleware, createLoggingMiddleware } from './middleware.js';
16
+ import { createAuthMiddleware, createLoggingMiddleware, createRateLimitMiddleware } from './middleware.js';
17
17
  import { globalMiddlewareRegistry } from './middleware-registry.js';
18
18
  /**
19
19
  * Default MRT API origin.
@@ -77,6 +77,10 @@ export function createMrtClient(config, auth) {
77
77
  for (const middleware of registry.getMiddleware('mrt')) {
78
78
  client.use(middleware);
79
79
  }
80
+ // Rate limiting middleware (retries on 429 using Retry-After/header-based backoff)
81
+ client.use(createRateLimitMiddleware({
82
+ prefix: 'MRT',
83
+ }));
80
84
  // Logging middleware last (sees complete request with all modifications)
81
85
  client.use(createLoggingMiddleware({
82
86
  prefix: 'MRT',
@@ -1 +1 @@
1
- {"version":3,"file":"mrt.js","sourceRoot":"","sources":["../../../src/clients/mrt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;GAQG;AACH,OAAO,YAAY,EAAE,EAAa,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAC,oBAAoB,EAAE,uBAAuB,EAAC,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAC,wBAAwB,EAA0B,MAAM,0BAA0B,CAAC;AAwF3F;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,UAAU,eAAe,CAAC,MAAuB,EAAE,IAAkB;IACzE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,kBAAkB,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,IAAI,wBAAwB,CAAC;IAEvE,0DAA0D;IAC1D,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9E,MAAM,GAAG,WAAW,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAQ;QACjC,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvC,kCAAkC;IAClC,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,yEAAyE;IACzE,MAAM,CAAC,GAAG,CACR,uBAAuB,CAAC;QACtB,MAAM,EAAE,KAAK;QACb,gDAAgD;QAChD,YAAY,EAAE,CAAC,MAAM,CAAC;KACvB,CAAC,CACH,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"mrt.js","sourceRoot":"","sources":["../../../src/clients/mrt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;GAQG;AACH,OAAO,YAAY,EAAE,EAAa,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAC,oBAAoB,EAAE,uBAAuB,EAAE,yBAAyB,EAAC,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAC,wBAAwB,EAA0B,MAAM,0BAA0B,CAAC;AAwF3F;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,UAAU,eAAe,CAAC,MAAuB,EAAE,IAAkB;IACzE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,kBAAkB,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,IAAI,wBAAwB,CAAC;IAEvE,0DAA0D;IAC1D,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9E,MAAM,GAAG,WAAW,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAQ;QACjC,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvC,kCAAkC;IAClC,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,mFAAmF;IACnF,MAAM,CAAC,GAAG,CACR,yBAAyB,CAAC;QACxB,MAAM,EAAE,KAAK;KACd,CAAC,CACH,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,GAAG,CACR,uBAAuB,CAAC;QACtB,MAAM,EAAE,KAAK;QACb,gDAAgD;QAChD,YAAY,EAAE,CAAC,MAAM,CAAC;KACvB,CAAC,CACH,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,7 +1,14 @@
1
1
  import type { AuthMethod } from '../auth/types.js';
2
2
  /**
3
- * Configuration structure matching dw.json file format.
4
- * Uses kebab-case keys to match the file format.
3
+ * Configuration structure for dw.json after key normalization.
4
+ *
5
+ * All keys are normalized to camelCase by `normalizeConfigKeys()` when loading.
6
+ * Both camelCase and kebab-case are accepted in the raw file; the interface
7
+ * documents the canonical (post-normalization) field names.
8
+ *
9
+ * Legacy aliases (e.g., `server`, `secureHostname`, `passphrase`, `selfsigned`,
10
+ * `cloudOrigin`, `scapi-shortcode`) are also accepted and mapped to their
11
+ * canonical names during normalization.
5
12
  */
6
13
  export interface DwJsonConfig {
7
14
  /** Instance name (for multi-config files) */
@@ -10,58 +17,46 @@ export interface DwJsonConfig {
10
17
  active?: boolean;
11
18
  /** B2C instance hostname */
12
19
  hostname?: string;
13
- /** B2C instance hostname (alias for CLI flag consistency) */
14
- server?: string;
15
20
  /** Code version for deployments */
16
- 'code-version'?: string;
21
+ codeVersion?: string;
17
22
  /** Username for Basic auth (WebDAV) */
18
23
  username?: string;
19
24
  /** Password/access-key for Basic auth (WebDAV) */
20
25
  password?: string;
21
26
  /** OAuth client ID */
22
- 'client-id'?: string;
27
+ clientId?: string;
23
28
  /** OAuth client secret */
24
- 'client-secret'?: string;
29
+ clientSecret?: string;
25
30
  /** OAuth scopes */
26
- 'oauth-scopes'?: string[];
27
- /** SCAPI short code (kebab-case) */
28
- 'short-code'?: string;
29
- /** SCAPI short code (camelCase) */
31
+ oauthScopes?: string[];
32
+ /** SCAPI short code */
30
33
  shortCode?: string;
31
- /** SCAPI short code (alternate kebab-case) */
32
- 'scapi-shortcode'?: string;
33
34
  /** Alternate hostname for WebDAV (if different from main hostname) */
34
- 'webdav-hostname'?: string;
35
- /** Alternate hostname for WebDAV (matches CLI flag name) */
36
- 'webdav-server'?: string;
37
- /** Alternate hostname for WebDAV (legacy camelCase format) */
38
- secureHostname?: string;
39
- /** Alternate hostname for WebDAV (legacy kebab-case format) */
40
- 'secure-server'?: string;
35
+ webdavHostname?: string;
41
36
  /** Allowed authentication methods in priority order */
42
- 'auth-methods'?: AuthMethod[];
37
+ authMethods?: AuthMethod[];
43
38
  /** Account Manager hostname for OAuth */
44
- 'account-manager-host'?: string;
39
+ accountManagerHost?: string;
45
40
  /** MRT project slug */
46
41
  mrtProject?: string;
47
42
  /** MRT environment name (e.g., staging, production) */
48
43
  mrtEnvironment?: string;
44
+ /** MRT API key */
45
+ mrtApiKey?: string;
49
46
  /** MRT cloud origin URL */
50
47
  mrtOrigin?: string;
51
- /** MRT cloud origin URL (alias) */
52
- cloudOrigin?: string;
53
48
  /** Tenant/Organization ID for SCAPI */
54
- 'tenant-id'?: string;
49
+ tenantId?: string;
50
+ /** ODS API hostname */
51
+ sandboxApiHost?: string;
52
+ /** Default content library ID for content export/list commands */
53
+ contentLibrary?: string;
55
54
  /** Path to PKCS12 certificate file for mTLS (two-factor auth) */
56
55
  certificate?: string;
57
- /** Passphrase for the certificate (kebab-case) */
58
- 'certificate-passphrase'?: string;
59
- /** Passphrase for the certificate (legacy) */
60
- passphrase?: string;
61
- /** Allow self-signed certificates (kebab-case) */
62
- 'self-signed'?: boolean;
63
- /** Allow self-signed certificates (legacy) */
64
- selfsigned?: boolean;
56
+ /** Passphrase for the certificate */
57
+ certificatePassphrase?: string;
58
+ /** Whether to skip SSL/TLS certificate verification (self-signed certs) */
59
+ selfSigned?: boolean;
65
60
  }
66
61
  /**
67
62
  * dw.json with multi-config support (configs array).
@@ -103,6 +98,82 @@ export interface LoadDwJsonResult {
103
98
  * }
104
99
  */
105
100
  export declare function findDwJson(startDir?: string): string | undefined;
101
+ /**
102
+ * Load the raw dw.json file without selecting a specific instance.
103
+ *
104
+ * This is useful for instance management operations that need to work
105
+ * with the full configs array.
106
+ *
107
+ * @param options - Loading options
108
+ * @returns The raw multi-config structure and path, or undefined if not found
109
+ */
110
+ export declare function loadFullDwJson(options?: LoadDwJsonOptions): {
111
+ config: DwJsonMultiConfig;
112
+ path: string;
113
+ } | undefined;
114
+ /**
115
+ * Save a dw.json configuration to disk.
116
+ *
117
+ * @param config - The configuration to save
118
+ * @param filePath - Path to save to
119
+ */
120
+ export declare function saveDwJson(config: DwJsonMultiConfig, filePath: string): void;
121
+ /**
122
+ * Options for adding an instance.
123
+ */
124
+ export interface AddInstanceOptions {
125
+ /** Path to dw.json (defaults to ./dw.json) */
126
+ path?: string;
127
+ /** Starting directory for search */
128
+ startDir?: string;
129
+ /** Whether to set as active instance */
130
+ setActive?: boolean;
131
+ }
132
+ /**
133
+ * Add a new instance to dw.json.
134
+ *
135
+ * If dw.json doesn't exist, creates a new one. If an instance with the same
136
+ * name already exists, throws an error.
137
+ *
138
+ * @param instance - The instance configuration to add
139
+ * @param options - Options for adding
140
+ * @throws Error if instance with same name already exists
141
+ */
142
+ export declare function addInstance(instance: DwJsonConfig, options?: AddInstanceOptions): void;
143
+ /**
144
+ * Options for removing an instance.
145
+ */
146
+ export interface RemoveInstanceOptions {
147
+ /** Path to dw.json */
148
+ path?: string;
149
+ /** Starting directory for search */
150
+ startDir?: string;
151
+ }
152
+ /**
153
+ * Remove an instance from dw.json.
154
+ *
155
+ * @param name - Name of the instance to remove
156
+ * @param options - Options for removal
157
+ * @throws Error if instance not found or dw.json doesn't exist
158
+ */
159
+ export declare function removeInstance(name: string, options?: RemoveInstanceOptions): void;
160
+ /**
161
+ * Options for setting active instance.
162
+ */
163
+ export interface SetActiveInstanceOptions {
164
+ /** Path to dw.json */
165
+ path?: string;
166
+ /** Starting directory for search */
167
+ startDir?: string;
168
+ }
169
+ /**
170
+ * Set an instance as the active default.
171
+ *
172
+ * @param name - Name of the instance to set as active
173
+ * @param options - Options
174
+ * @throws Error if instance not found or dw.json doesn't exist
175
+ */
176
+ export declare function setActiveInstance(name: string, options?: SetActiveInstanceOptions): void;
106
177
  /**
107
178
  * Loads configuration from a dw.json file.
108
179
  *