@salesforce/b2c-tooling-sdk 1.10.0 → 1.11.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 (638) hide show
  1. package/data/content-schemas/componenttype.json +37 -0
  2. package/dist/esm/operations/content/validate.js +46 -4
  3. package/dist/esm/operations/content/validate.js.map +1 -1
  4. package/dist/esm/operations/jobs/site-archive.d.ts +12 -0
  5. package/dist/esm/operations/jobs/site-archive.js +107 -3
  6. package/dist/esm/operations/jobs/site-archive.js.map +1 -1
  7. package/package.json +73 -285
  8. package/dist/cjs/auth/api-key.d.ts +0 -28
  9. package/dist/cjs/auth/api-key.js +0 -45
  10. package/dist/cjs/auth/api-key.js.map +0 -1
  11. package/dist/cjs/auth/basic.d.ts +0 -7
  12. package/dist/cjs/auth/basic.js +0 -20
  13. package/dist/cjs/auth/basic.js.map +0 -1
  14. package/dist/cjs/auth/index.d.ts +0 -74
  15. package/dist/cjs/auth/index.js +0 -76
  16. package/dist/cjs/auth/index.js.map +0 -1
  17. package/dist/cjs/auth/jwt-utils.d.ts +0 -25
  18. package/dist/cjs/auth/jwt-utils.js +0 -66
  19. package/dist/cjs/auth/jwt-utils.js.map +0 -1
  20. package/dist/cjs/auth/middleware.d.ts +0 -196
  21. package/dist/cjs/auth/middleware.js +0 -190
  22. package/dist/cjs/auth/middleware.js.map +0 -1
  23. package/dist/cjs/auth/oauth-implicit.d.ts +0 -89
  24. package/dist/cjs/auth/oauth-implicit.js +0 -350
  25. package/dist/cjs/auth/oauth-implicit.js.map +0 -1
  26. package/dist/cjs/auth/oauth-jwt.d.ts +0 -99
  27. package/dist/cjs/auth/oauth-jwt.js +0 -343
  28. package/dist/cjs/auth/oauth-jwt.js.map +0 -1
  29. package/dist/cjs/auth/oauth.d.ts +0 -88
  30. package/dist/cjs/auth/oauth.js +0 -252
  31. package/dist/cjs/auth/oauth.js.map +0 -1
  32. package/dist/cjs/auth/resolve.d.ts +0 -100
  33. package/dist/cjs/auth/resolve.js +0 -175
  34. package/dist/cjs/auth/resolve.js.map +0 -1
  35. package/dist/cjs/auth/stateful-oauth-strategy.d.ts +0 -39
  36. package/dist/cjs/auth/stateful-oauth-strategy.js +0 -130
  37. package/dist/cjs/auth/stateful-oauth-strategy.js.map +0 -1
  38. package/dist/cjs/auth/stateful-store.d.ts +0 -49
  39. package/dist/cjs/auth/stateful-store.js +0 -166
  40. package/dist/cjs/auth/stateful-store.js.map +0 -1
  41. package/dist/cjs/auth/types.d.ts +0 -124
  42. package/dist/cjs/auth/types.js +0 -8
  43. package/dist/cjs/auth/types.js.map +0 -1
  44. package/dist/cjs/cli/am-command.d.ts +0 -74
  45. package/dist/cjs/cli/am-command.js +0 -199
  46. package/dist/cjs/cli/am-command.js.map +0 -1
  47. package/dist/cjs/cli/base-command.d.ts +0 -232
  48. package/dist/cjs/cli/base-command.js +0 -695
  49. package/dist/cjs/cli/base-command.js.map +0 -1
  50. package/dist/cjs/cli/cartridge-command.d.ts +0 -67
  51. package/dist/cjs/cli/cartridge-command.js +0 -146
  52. package/dist/cjs/cli/cartridge-command.js.map +0 -1
  53. package/dist/cjs/cli/cartridge-providers.d.ts +0 -149
  54. package/dist/cjs/cli/cartridge-providers.js +0 -103
  55. package/dist/cjs/cli/cartridge-providers.js.map +0 -1
  56. package/dist/cjs/cli/columns.d.ts +0 -128
  57. package/dist/cjs/cli/columns.js +0 -128
  58. package/dist/cjs/cli/columns.js.map +0 -1
  59. package/dist/cjs/cli/config.d.ts +0 -159
  60. package/dist/cjs/cli/config.js +0 -185
  61. package/dist/cjs/cli/config.js.map +0 -1
  62. package/dist/cjs/cli/details.d.ts +0 -69
  63. package/dist/cjs/cli/details.js +0 -72
  64. package/dist/cjs/cli/details.js.map +0 -1
  65. package/dist/cjs/cli/hooks.d.ts +0 -324
  66. package/dist/cjs/cli/hooks.js +0 -3
  67. package/dist/cjs/cli/hooks.js.map +0 -1
  68. package/dist/cjs/cli/index.d.ts +0 -108
  69. package/dist/cjs/cli/index.js +0 -111
  70. package/dist/cjs/cli/index.js.map +0 -1
  71. package/dist/cjs/cli/instance-command.d.ts +0 -131
  72. package/dist/cjs/cli/instance-command.js +0 -214
  73. package/dist/cjs/cli/instance-command.js.map +0 -1
  74. package/dist/cjs/cli/job-command.d.ts +0 -32
  75. package/dist/cjs/cli/job-command.js +0 -60
  76. package/dist/cjs/cli/job-command.js.map +0 -1
  77. package/dist/cjs/cli/lifecycle.d.ts +0 -189
  78. package/dist/cjs/cli/lifecycle.js +0 -130
  79. package/dist/cjs/cli/lifecycle.js.map +0 -1
  80. package/dist/cjs/cli/mrt-command.d.ts +0 -57
  81. package/dist/cjs/cli/mrt-command.js +0 -95
  82. package/dist/cjs/cli/mrt-command.js.map +0 -1
  83. package/dist/cjs/cli/oauth-command.d.ts +0 -122
  84. package/dist/cjs/cli/oauth-command.js +0 -311
  85. package/dist/cjs/cli/oauth-command.js.map +0 -1
  86. package/dist/cjs/cli/ods-command.d.ts +0 -97
  87. package/dist/cjs/cli/ods-command.js +0 -136
  88. package/dist/cjs/cli/ods-command.js.map +0 -1
  89. package/dist/cjs/cli/table.d.ts +0 -113
  90. package/dist/cjs/cli/table.js +0 -175
  91. package/dist/cjs/cli/table.js.map +0 -1
  92. package/dist/cjs/cli/webdav-command.d.ts +0 -110
  93. package/dist/cjs/cli/webdav-command.js +0 -106
  94. package/dist/cjs/cli/webdav-command.js.map +0 -1
  95. package/dist/cjs/clients/am-api.d.ts +0 -521
  96. package/dist/cjs/clients/am-api.js +0 -992
  97. package/dist/cjs/clients/am-api.js.map +0 -1
  98. package/dist/cjs/clients/am-apiclients-api.generated.d.ts +0 -803
  99. package/dist/cjs/clients/am-apiclients-api.generated.js +0 -6
  100. package/dist/cjs/clients/am-apiclients-api.generated.js.map +0 -1
  101. package/dist/cjs/clients/am-roles-api.generated.d.ts +0 -298
  102. package/dist/cjs/clients/am-roles-api.generated.js +0 -6
  103. package/dist/cjs/clients/am-roles-api.generated.js.map +0 -1
  104. package/dist/cjs/clients/am-users-api.generated.d.ts +0 -954
  105. package/dist/cjs/clients/am-users-api.generated.js +0 -6
  106. package/dist/cjs/clients/am-users-api.generated.js.map +0 -1
  107. package/dist/cjs/clients/cdn-zones.d.ts +0 -186
  108. package/dist/cjs/clients/cdn-zones.generated.d.ts +0 -8330
  109. package/dist/cjs/clients/cdn-zones.generated.js +0 -6
  110. package/dist/cjs/clients/cdn-zones.generated.js.map +0 -1
  111. package/dist/cjs/clients/cdn-zones.js +0 -103
  112. package/dist/cjs/clients/cdn-zones.js.map +0 -1
  113. package/dist/cjs/clients/cip.d.ts +0 -162
  114. package/dist/cjs/clients/cip.js +0 -572
  115. package/dist/cjs/clients/cip.js.map +0 -1
  116. package/dist/cjs/clients/custom-apis.d.ts +0 -174
  117. package/dist/cjs/clients/custom-apis.generated.d.ts +0 -202
  118. package/dist/cjs/clients/custom-apis.generated.js +0 -6
  119. package/dist/cjs/clients/custom-apis.generated.js.map +0 -1
  120. package/dist/cjs/clients/custom-apis.js +0 -140
  121. package/dist/cjs/clients/custom-apis.js.map +0 -1
  122. package/dist/cjs/clients/error-utils.d.ts +0 -35
  123. package/dist/cjs/clients/error-utils.js +0 -69
  124. package/dist/cjs/clients/error-utils.js.map +0 -1
  125. package/dist/cjs/clients/granular-replications.d.ts +0 -70
  126. package/dist/cjs/clients/granular-replications.generated.d.ts +0 -416
  127. package/dist/cjs/clients/granular-replications.generated.js +0 -6
  128. package/dist/cjs/clients/granular-replications.generated.js.map +0 -1
  129. package/dist/cjs/clients/granular-replications.js +0 -73
  130. package/dist/cjs/clients/granular-replications.js.map +0 -1
  131. package/dist/cjs/clients/index.d.ts +0 -145
  132. package/dist/cjs/clients/index.js +0 -137
  133. package/dist/cjs/clients/index.js.map +0 -1
  134. package/dist/cjs/clients/middleware-registry.d.ts +0 -184
  135. package/dist/cjs/clients/middleware-registry.js +0 -104
  136. package/dist/cjs/clients/middleware-registry.js.map +0 -1
  137. package/dist/cjs/clients/middleware.d.ts +0 -183
  138. package/dist/cjs/clients/middleware.js +0 -465
  139. package/dist/cjs/clients/middleware.js.map +0 -1
  140. package/dist/cjs/clients/mrt-b2c.d.ts +0 -138
  141. package/dist/cjs/clients/mrt-b2c.generated.d.ts +0 -176
  142. package/dist/cjs/clients/mrt-b2c.generated.js +0 -6
  143. package/dist/cjs/clients/mrt-b2c.generated.js.map +0 -1
  144. package/dist/cjs/clients/mrt-b2c.js +0 -86
  145. package/dist/cjs/clients/mrt-b2c.js.map +0 -1
  146. package/dist/cjs/clients/mrt.d.ts +0 -143
  147. package/dist/cjs/clients/mrt.generated.d.ts +0 -3806
  148. package/dist/cjs/clients/mrt.generated.js +0 -6
  149. package/dist/cjs/clients/mrt.generated.js.map +0 -1
  150. package/dist/cjs/clients/mrt.js +0 -93
  151. package/dist/cjs/clients/mrt.js.map +0 -1
  152. package/dist/cjs/clients/ocapi.d.ts +0 -128
  153. package/dist/cjs/clients/ocapi.generated.d.ts +0 -26052
  154. package/dist/cjs/clients/ocapi.generated.js +0 -6
  155. package/dist/cjs/clients/ocapi.generated.js.map +0 -1
  156. package/dist/cjs/clients/ocapi.js +0 -78
  157. package/dist/cjs/clients/ocapi.js.map +0 -1
  158. package/dist/cjs/clients/ods.d.ts +0 -160
  159. package/dist/cjs/clients/ods.generated.d.ts +0 -2860
  160. package/dist/cjs/clients/ods.generated.js +0 -6
  161. package/dist/cjs/clients/ods.generated.js.map +0 -1
  162. package/dist/cjs/clients/ods.js +0 -103
  163. package/dist/cjs/clients/ods.js.map +0 -1
  164. package/dist/cjs/clients/scapi-schemas.d.ts +0 -161
  165. package/dist/cjs/clients/scapi-schemas.generated.d.ts +0 -328
  166. package/dist/cjs/clients/scapi-schemas.generated.js +0 -6
  167. package/dist/cjs/clients/scapi-schemas.generated.js.map +0 -1
  168. package/dist/cjs/clients/scapi-schemas.js +0 -98
  169. package/dist/cjs/clients/scapi-schemas.js.map +0 -1
  170. package/dist/cjs/clients/slas-admin.d.ts +0 -132
  171. package/dist/cjs/clients/slas-admin.generated.d.ts +0 -1434
  172. package/dist/cjs/clients/slas-admin.generated.js +0 -6
  173. package/dist/cjs/clients/slas-admin.generated.js.map +0 -1
  174. package/dist/cjs/clients/slas-admin.js +0 -79
  175. package/dist/cjs/clients/slas-admin.js.map +0 -1
  176. package/dist/cjs/clients/tls-dispatcher.d.ts +0 -42
  177. package/dist/cjs/clients/tls-dispatcher.js +0 -107
  178. package/dist/cjs/clients/tls-dispatcher.js.map +0 -1
  179. package/dist/cjs/clients/user-agent.d.ts +0 -43
  180. package/dist/cjs/clients/user-agent.js +0 -87
  181. package/dist/cjs/clients/user-agent.js.map +0 -1
  182. package/dist/cjs/clients/webdav.d.ts +0 -186
  183. package/dist/cjs/clients/webdav.js +0 -395
  184. package/dist/cjs/clients/webdav.js.map +0 -1
  185. package/dist/cjs/config/config-source-registry.d.ts +0 -115
  186. package/dist/cjs/config/config-source-registry.js +0 -103
  187. package/dist/cjs/config/config-source-registry.js.map +0 -1
  188. package/dist/cjs/config/dw-json.d.ts +0 -274
  189. package/dist/cjs/config/dw-json.js +0 -333
  190. package/dist/cjs/config/dw-json.js.map +0 -1
  191. package/dist/cjs/config/index.d.ts +0 -100
  192. package/dist/cjs/config/index.js +0 -110
  193. package/dist/cjs/config/index.js.map +0 -1
  194. package/dist/cjs/config/instance-manager.d.ts +0 -97
  195. package/dist/cjs/config/instance-manager.js +0 -166
  196. package/dist/cjs/config/instance-manager.js.map +0 -1
  197. package/dist/cjs/config/mapping.d.ts +0 -199
  198. package/dist/cjs/config/mapping.js +0 -540
  199. package/dist/cjs/config/mapping.js.map +0 -1
  200. package/dist/cjs/config/resolved-config.d.ts +0 -29
  201. package/dist/cjs/config/resolved-config.js +0 -81
  202. package/dist/cjs/config/resolved-config.js.map +0 -1
  203. package/dist/cjs/config/resolver.d.ts +0 -191
  204. package/dist/cjs/config/resolver.js +0 -406
  205. package/dist/cjs/config/resolver.js.map +0 -1
  206. package/dist/cjs/config/sources/dw-json-source.d.ts +0 -27
  207. package/dist/cjs/config/sources/dw-json-source.js +0 -106
  208. package/dist/cjs/config/sources/dw-json-source.js.map +0 -1
  209. package/dist/cjs/config/sources/env-source.d.ts +0 -32
  210. package/dist/cjs/config/sources/env-source.js +0 -116
  211. package/dist/cjs/config/sources/env-source.js.map +0 -1
  212. package/dist/cjs/config/sources/index.d.ts +0 -9
  213. package/dist/cjs/config/sources/index.js +0 -15
  214. package/dist/cjs/config/sources/index.js.map +0 -1
  215. package/dist/cjs/config/sources/mobify-source.d.ts +0 -25
  216. package/dist/cjs/config/sources/mobify-source.js +0 -84
  217. package/dist/cjs/config/sources/mobify-source.js.map +0 -1
  218. package/dist/cjs/config/sources/package-json-source.d.ts +0 -14
  219. package/dist/cjs/config/sources/package-json-source.js +0 -97
  220. package/dist/cjs/config/sources/package-json-source.js.map +0 -1
  221. package/dist/cjs/config/types.d.ts +0 -428
  222. package/dist/cjs/config/types.js +0 -2
  223. package/dist/cjs/config/types.js.map +0 -1
  224. package/dist/cjs/defaults.d.ts +0 -36
  225. package/dist/cjs/defaults.js +0 -54
  226. package/dist/cjs/defaults.js.map +0 -1
  227. package/dist/cjs/discovery/detector.d.ts +0 -75
  228. package/dist/cjs/discovery/detector.js +0 -108
  229. package/dist/cjs/discovery/detector.js.map +0 -1
  230. package/dist/cjs/discovery/index.d.ts +0 -63
  231. package/dist/cjs/discovery/index.js +0 -70
  232. package/dist/cjs/discovery/index.js.map +0 -1
  233. package/dist/cjs/discovery/patterns/cartridges.d.ts +0 -16
  234. package/dist/cjs/discovery/patterns/cartridges.js +0 -16
  235. package/dist/cjs/discovery/patterns/cartridges.js.map +0 -1
  236. package/dist/cjs/discovery/patterns/index.d.ts +0 -21
  237. package/dist/cjs/discovery/patterns/index.js +0 -16
  238. package/dist/cjs/discovery/patterns/index.js.map +0 -1
  239. package/dist/cjs/discovery/patterns/pwa-kit.d.ts +0 -15
  240. package/dist/cjs/discovery/patterns/pwa-kit.js +0 -26
  241. package/dist/cjs/discovery/patterns/pwa-kit.js.map +0 -1
  242. package/dist/cjs/discovery/patterns/sfra.d.ts +0 -34
  243. package/dist/cjs/discovery/patterns/sfra.js +0 -50
  244. package/dist/cjs/discovery/patterns/sfra.js.map +0 -1
  245. package/dist/cjs/discovery/patterns/storefront-next.d.ts +0 -10
  246. package/dist/cjs/discovery/patterns/storefront-next.js +0 -65
  247. package/dist/cjs/discovery/patterns/storefront-next.js.map +0 -1
  248. package/dist/cjs/discovery/types.d.ts +0 -47
  249. package/dist/cjs/discovery/types.js +0 -12
  250. package/dist/cjs/discovery/types.js.map +0 -1
  251. package/dist/cjs/discovery/utils.d.ts +0 -44
  252. package/dist/cjs/discovery/utils.js +0 -82
  253. package/dist/cjs/discovery/utils.js.map +0 -1
  254. package/dist/cjs/docs/download.d.ts +0 -45
  255. package/dist/cjs/docs/download.js +0 -96
  256. package/dist/cjs/docs/download.js.map +0 -1
  257. package/dist/cjs/docs/index.d.ts +0 -44
  258. package/dist/cjs/docs/index.js +0 -12
  259. package/dist/cjs/docs/index.js.map +0 -1
  260. package/dist/cjs/docs/schema.d.ts +0 -26
  261. package/dist/cjs/docs/schema.js +0 -92
  262. package/dist/cjs/docs/schema.js.map +0 -1
  263. package/dist/cjs/docs/search.d.ts +0 -67
  264. package/dist/cjs/docs/search.js +0 -128
  265. package/dist/cjs/docs/search.js.map +0 -1
  266. package/dist/cjs/docs/types.d.ts +0 -64
  267. package/dist/cjs/docs/types.js +0 -15
  268. package/dist/cjs/docs/types.js.map +0 -1
  269. package/dist/cjs/errors/http-error.d.ts +0 -34
  270. package/dist/cjs/errors/http-error.js +0 -45
  271. package/dist/cjs/errors/http-error.js.map +0 -1
  272. package/dist/cjs/errors/index.d.ts +0 -12
  273. package/dist/cjs/errors/index.js +0 -18
  274. package/dist/cjs/errors/index.js.map +0 -1
  275. package/dist/cjs/i18n/index.d.ts +0 -144
  276. package/dist/cjs/i18n/index.js +0 -245
  277. package/dist/cjs/i18n/index.js.map +0 -1
  278. package/dist/cjs/i18n/locales/de.d.ts +0 -13
  279. package/dist/cjs/i18n/locales/de.js +0 -19
  280. package/dist/cjs/i18n/locales/de.js.map +0 -1
  281. package/dist/cjs/i18n/locales/index.d.ts +0 -28
  282. package/dist/cjs/i18n/locales/index.js +0 -25
  283. package/dist/cjs/i18n/locales/index.js.map +0 -1
  284. package/dist/cjs/index.d.ts +0 -33
  285. package/dist/cjs/index.js +0 -41
  286. package/dist/cjs/index.js.map +0 -1
  287. package/dist/cjs/instance/index.d.ts +0 -136
  288. package/dist/cjs/instance/index.js +0 -131
  289. package/dist/cjs/instance/index.js.map +0 -1
  290. package/dist/cjs/logging/index.d.ts +0 -116
  291. package/dist/cjs/logging/index.js +0 -121
  292. package/dist/cjs/logging/index.js.map +0 -1
  293. package/dist/cjs/logging/logger.d.ts +0 -9
  294. package/dist/cjs/logging/logger.js +0 -138
  295. package/dist/cjs/logging/logger.js.map +0 -1
  296. package/dist/cjs/logging/types.d.ts +0 -45
  297. package/dist/cjs/logging/types.js +0 -10
  298. package/dist/cjs/logging/types.js.map +0 -1
  299. package/dist/cjs/operations/bm-roles/index.d.ts +0 -52
  300. package/dist/cjs/operations/bm-roles/index.js +0 -57
  301. package/dist/cjs/operations/bm-roles/index.js.map +0 -1
  302. package/dist/cjs/operations/bm-roles/roles.d.ts +0 -155
  303. package/dist/cjs/operations/bm-roles/roles.js +0 -194
  304. package/dist/cjs/operations/bm-roles/roles.js.map +0 -1
  305. package/dist/cjs/operations/bm-users/index.d.ts +0 -50
  306. package/dist/cjs/operations/bm-users/index.js +0 -55
  307. package/dist/cjs/operations/bm-users/index.js.map +0 -1
  308. package/dist/cjs/operations/bm-users/users.d.ts +0 -189
  309. package/dist/cjs/operations/bm-users/users.js +0 -229
  310. package/dist/cjs/operations/bm-users/users.js.map +0 -1
  311. package/dist/cjs/operations/cap/index.d.ts +0 -56
  312. package/dist/cjs/operations/cap/index.js +0 -57
  313. package/dist/cjs/operations/cap/index.js.map +0 -1
  314. package/dist/cjs/operations/cap/install.d.ts +0 -53
  315. package/dist/cjs/operations/cap/install.js +0 -181
  316. package/dist/cjs/operations/cap/install.js.map +0 -1
  317. package/dist/cjs/operations/cap/list.d.ts +0 -92
  318. package/dist/cjs/operations/cap/list.js +0 -230
  319. package/dist/cjs/operations/cap/list.js.map +0 -1
  320. package/dist/cjs/operations/cap/package.d.ts +0 -39
  321. package/dist/cjs/operations/cap/package.js +0 -77
  322. package/dist/cjs/operations/cap/package.js.map +0 -1
  323. package/dist/cjs/operations/cap/pull.d.ts +0 -21
  324. package/dist/cjs/operations/cap/pull.js +0 -77
  325. package/dist/cjs/operations/cap/pull.js.map +0 -1
  326. package/dist/cjs/operations/cap/uninstall.d.ts +0 -46
  327. package/dist/cjs/operations/cap/uninstall.js +0 -87
  328. package/dist/cjs/operations/cap/uninstall.js.map +0 -1
  329. package/dist/cjs/operations/cap/validate.d.ts +0 -47
  330. package/dist/cjs/operations/cap/validate.js +0 -235
  331. package/dist/cjs/operations/cap/validate.js.map +0 -1
  332. package/dist/cjs/operations/cip/index.d.ts +0 -35
  333. package/dist/cjs/operations/cip/index.js +0 -128
  334. package/dist/cjs/operations/cip/index.js.map +0 -1
  335. package/dist/cjs/operations/cip/reports.d.ts +0 -2
  336. package/dist/cjs/operations/cip/reports.js +0 -210
  337. package/dist/cjs/operations/cip/reports.js.map +0 -1
  338. package/dist/cjs/operations/cip/types.d.ts +0 -97
  339. package/dist/cjs/operations/cip/types.js +0 -7
  340. package/dist/cjs/operations/cip/types.js.map +0 -1
  341. package/dist/cjs/operations/code/cartridges.d.ts +0 -46
  342. package/dist/cjs/operations/code/cartridges.js +0 -69
  343. package/dist/cjs/operations/code/cartridges.js.map +0 -1
  344. package/dist/cjs/operations/code/deploy.d.ts +0 -121
  345. package/dist/cjs/operations/code/deploy.js +0 -255
  346. package/dist/cjs/operations/code/deploy.js.map +0 -1
  347. package/dist/cjs/operations/code/download.d.ts +0 -77
  348. package/dist/cjs/operations/code/download.js +0 -300
  349. package/dist/cjs/operations/code/download.js.map +0 -1
  350. package/dist/cjs/operations/code/index.d.ts +0 -74
  351. package/dist/cjs/operations/code/index.js +0 -80
  352. package/dist/cjs/operations/code/index.js.map +0 -1
  353. package/dist/cjs/operations/code/upload-files.d.ts +0 -47
  354. package/dist/cjs/operations/code/upload-files.js +0 -116
  355. package/dist/cjs/operations/code/upload-files.js.map +0 -1
  356. package/dist/cjs/operations/code/versions.d.ts +0 -99
  357. package/dist/cjs/operations/code/versions.js +0 -156
  358. package/dist/cjs/operations/code/versions.js.map +0 -1
  359. package/dist/cjs/operations/code/watch.d.ts +0 -58
  360. package/dist/cjs/operations/code/watch.js +0 -175
  361. package/dist/cjs/operations/code/watch.js.map +0 -1
  362. package/dist/cjs/operations/content/asset-query.d.ts +0 -22
  363. package/dist/cjs/operations/content/asset-query.js +0 -77
  364. package/dist/cjs/operations/content/asset-query.js.map +0 -1
  365. package/dist/cjs/operations/content/export.d.ts +0 -57
  366. package/dist/cjs/operations/content/export.js +0 -221
  367. package/dist/cjs/operations/content/export.js.map +0 -1
  368. package/dist/cjs/operations/content/index.d.ts +0 -56
  369. package/dist/cjs/operations/content/index.js +0 -60
  370. package/dist/cjs/operations/content/index.js.map +0 -1
  371. package/dist/cjs/operations/content/library.d.ts +0 -137
  372. package/dist/cjs/operations/content/library.js +0 -396
  373. package/dist/cjs/operations/content/library.js.map +0 -1
  374. package/dist/cjs/operations/content/types.d.ts +0 -144
  375. package/dist/cjs/operations/content/types.js +0 -7
  376. package/dist/cjs/operations/content/types.js.map +0 -1
  377. package/dist/cjs/operations/content/validate.d.ts +0 -64
  378. package/dist/cjs/operations/content/validate.js +0 -170
  379. package/dist/cjs/operations/content/validate.js.map +0 -1
  380. package/dist/cjs/operations/debug/dap-adapter.d.ts +0 -72
  381. package/dist/cjs/operations/debug/dap-adapter.js +0 -505
  382. package/dist/cjs/operations/debug/dap-adapter.js.map +0 -1
  383. package/dist/cjs/operations/debug/debug-session.d.ts +0 -51
  384. package/dist/cjs/operations/debug/debug-session.js +0 -234
  385. package/dist/cjs/operations/debug/debug-session.js.map +0 -1
  386. package/dist/cjs/operations/debug/index.d.ts +0 -20
  387. package/dist/cjs/operations/debug/index.js +0 -21
  388. package/dist/cjs/operations/debug/index.js.map +0 -1
  389. package/dist/cjs/operations/debug/projections.d.ts +0 -72
  390. package/dist/cjs/operations/debug/projections.js +0 -84
  391. package/dist/cjs/operations/debug/projections.js.map +0 -1
  392. package/dist/cjs/operations/debug/resolve-path.d.ts +0 -15
  393. package/dist/cjs/operations/debug/resolve-path.js +0 -52
  394. package/dist/cjs/operations/debug/resolve-path.js.map +0 -1
  395. package/dist/cjs/operations/debug/sdapi-client.d.ts +0 -44
  396. package/dist/cjs/operations/debug/sdapi-client.js +0 -169
  397. package/dist/cjs/operations/debug/sdapi-client.js.map +0 -1
  398. package/dist/cjs/operations/debug/source-mapping.d.ts +0 -13
  399. package/dist/cjs/operations/debug/source-mapping.js +0 -57
  400. package/dist/cjs/operations/debug/source-mapping.js.map +0 -1
  401. package/dist/cjs/operations/debug/types.d.ts +0 -95
  402. package/dist/cjs/operations/debug/types.js +0 -2
  403. package/dist/cjs/operations/debug/types.js.map +0 -1
  404. package/dist/cjs/operations/debug/variable-store.d.ts +0 -35
  405. package/dist/cjs/operations/debug/variable-store.js +0 -52
  406. package/dist/cjs/operations/debug/variable-store.js.map +0 -1
  407. package/dist/cjs/operations/jobs/index.d.ts +0 -66
  408. package/dist/cjs/operations/jobs/index.js +0 -72
  409. package/dist/cjs/operations/jobs/index.js.map +0 -1
  410. package/dist/cjs/operations/jobs/run.d.ts +0 -239
  411. package/dist/cjs/operations/jobs/run.js +0 -324
  412. package/dist/cjs/operations/jobs/run.js.map +0 -1
  413. package/dist/cjs/operations/jobs/site-archive.d.ts +0 -267
  414. package/dist/cjs/operations/jobs/site-archive.js +0 -423
  415. package/dist/cjs/operations/jobs/site-archive.js.map +0 -1
  416. package/dist/cjs/operations/logs/index.d.ts +0 -65
  417. package/dist/cjs/operations/logs/index.js +0 -73
  418. package/dist/cjs/operations/logs/index.js.map +0 -1
  419. package/dist/cjs/operations/logs/list.d.ts +0 -35
  420. package/dist/cjs/operations/logs/list.js +0 -144
  421. package/dist/cjs/operations/logs/list.js.map +0 -1
  422. package/dist/cjs/operations/logs/path-normalizer.d.ts +0 -82
  423. package/dist/cjs/operations/logs/path-normalizer.js +0 -190
  424. package/dist/cjs/operations/logs/path-normalizer.js.map +0 -1
  425. package/dist/cjs/operations/logs/tail.d.ts +0 -92
  426. package/dist/cjs/operations/logs/tail.js +0 -525
  427. package/dist/cjs/operations/logs/tail.js.map +0 -1
  428. package/dist/cjs/operations/logs/types.d.ts +0 -132
  429. package/dist/cjs/operations/logs/types.js +0 -7
  430. package/dist/cjs/operations/logs/types.js.map +0 -1
  431. package/dist/cjs/operations/mrt/access-control.d.ts +0 -192
  432. package/dist/cjs/operations/mrt/access-control.js +0 -152
  433. package/dist/cjs/operations/mrt/access-control.js.map +0 -1
  434. package/dist/cjs/operations/mrt/b2c-config.d.ts +0 -201
  435. package/dist/cjs/operations/mrt/b2c-config.js +0 -210
  436. package/dist/cjs/operations/mrt/b2c-config.js.map +0 -1
  437. package/dist/cjs/operations/mrt/bundle.d.ts +0 -114
  438. package/dist/cjs/operations/mrt/bundle.js +0 -166
  439. package/dist/cjs/operations/mrt/bundle.js.map +0 -1
  440. package/dist/cjs/operations/mrt/cache.d.ts +0 -80
  441. package/dist/cjs/operations/mrt/cache.js +0 -65
  442. package/dist/cjs/operations/mrt/cache.js.map +0 -1
  443. package/dist/cjs/operations/mrt/certificate.d.ts +0 -60
  444. package/dist/cjs/operations/mrt/certificate.js +0 -76
  445. package/dist/cjs/operations/mrt/certificate.js.map +0 -1
  446. package/dist/cjs/operations/mrt/deployment.d.ts +0 -157
  447. package/dist/cjs/operations/mrt/deployment.js +0 -109
  448. package/dist/cjs/operations/mrt/deployment.js.map +0 -1
  449. package/dist/cjs/operations/mrt/env-var.d.ts +0 -176
  450. package/dist/cjs/operations/mrt/env-var.js +0 -231
  451. package/dist/cjs/operations/mrt/env-var.js.map +0 -1
  452. package/dist/cjs/operations/mrt/env.d.ts +0 -491
  453. package/dist/cjs/operations/mrt/env.js +0 -425
  454. package/dist/cjs/operations/mrt/env.js.map +0 -1
  455. package/dist/cjs/operations/mrt/index.d.ts +0 -75
  456. package/dist/cjs/operations/mrt/index.js +0 -81
  457. package/dist/cjs/operations/mrt/index.js.map +0 -1
  458. package/dist/cjs/operations/mrt/member.d.ts +0 -281
  459. package/dist/cjs/operations/mrt/member.js +0 -244
  460. package/dist/cjs/operations/mrt/member.js.map +0 -1
  461. package/dist/cjs/operations/mrt/notification.d.ts +0 -252
  462. package/dist/cjs/operations/mrt/notification.js +0 -206
  463. package/dist/cjs/operations/mrt/notification.js.map +0 -1
  464. package/dist/cjs/operations/mrt/organization-member.d.ts +0 -68
  465. package/dist/cjs/operations/mrt/organization-member.js +0 -88
  466. package/dist/cjs/operations/mrt/organization-member.js.map +0 -1
  467. package/dist/cjs/operations/mrt/organization.d.ts +0 -80
  468. package/dist/cjs/operations/mrt/organization.js +0 -53
  469. package/dist/cjs/operations/mrt/organization.js.map +0 -1
  470. package/dist/cjs/operations/mrt/project.d.ts +0 -261
  471. package/dist/cjs/operations/mrt/project.js +0 -232
  472. package/dist/cjs/operations/mrt/project.js.map +0 -1
  473. package/dist/cjs/operations/mrt/push.d.ts +0 -290
  474. package/dist/cjs/operations/mrt/push.js +0 -288
  475. package/dist/cjs/operations/mrt/push.js.map +0 -1
  476. package/dist/cjs/operations/mrt/redirect.d.ts +0 -337
  477. package/dist/cjs/operations/mrt/redirect.js +0 -256
  478. package/dist/cjs/operations/mrt/redirect.js.map +0 -1
  479. package/dist/cjs/operations/mrt/tail-logs.d.ts +0 -130
  480. package/dist/cjs/operations/mrt/tail-logs.js +0 -224
  481. package/dist/cjs/operations/mrt/tail-logs.js.map +0 -1
  482. package/dist/cjs/operations/mrt/user.d.ts +0 -135
  483. package/dist/cjs/operations/mrt/user.js +0 -153
  484. package/dist/cjs/operations/mrt/user.js.map +0 -1
  485. package/dist/cjs/operations/ods/index.d.ts +0 -10
  486. package/dist/cjs/operations/ods/index.js +0 -14
  487. package/dist/cjs/operations/ods/index.js.map +0 -1
  488. package/dist/cjs/operations/ods/sandbox-lookup.d.ts +0 -63
  489. package/dist/cjs/operations/ods/sandbox-lookup.js +0 -130
  490. package/dist/cjs/operations/ods/sandbox-lookup.js.map +0 -1
  491. package/dist/cjs/operations/ods/wait-for-clone.d.ts +0 -46
  492. package/dist/cjs/operations/ods/wait-for-clone.js +0 -100
  493. package/dist/cjs/operations/ods/wait-for-clone.js.map +0 -1
  494. package/dist/cjs/operations/ods/wait-for-sandbox.d.ts +0 -64
  495. package/dist/cjs/operations/ods/wait-for-sandbox.js +0 -114
  496. package/dist/cjs/operations/ods/wait-for-sandbox.js.map +0 -1
  497. package/dist/cjs/operations/orgs/index.d.ts +0 -74
  498. package/dist/cjs/operations/orgs/index.js +0 -33
  499. package/dist/cjs/operations/orgs/index.js.map +0 -1
  500. package/dist/cjs/operations/roles/index.d.ts +0 -43
  501. package/dist/cjs/operations/roles/index.js +0 -48
  502. package/dist/cjs/operations/roles/index.js.map +0 -1
  503. package/dist/cjs/operations/sites/cartridges.d.ts +0 -114
  504. package/dist/cjs/operations/sites/cartridges.js +0 -378
  505. package/dist/cjs/operations/sites/cartridges.js.map +0 -1
  506. package/dist/cjs/operations/sites/index.d.ts +0 -46
  507. package/dist/cjs/operations/sites/index.js +0 -51
  508. package/dist/cjs/operations/sites/index.js.map +0 -1
  509. package/dist/cjs/operations/users/index.d.ts +0 -153
  510. package/dist/cjs/operations/users/index.js +0 -139
  511. package/dist/cjs/operations/users/index.js.map +0 -1
  512. package/dist/cjs/operations/util/zip.d.ts +0 -5
  513. package/dist/cjs/operations/util/zip.js +0 -25
  514. package/dist/cjs/operations/util/zip.js.map +0 -1
  515. package/dist/cjs/package.json +0 -1
  516. package/dist/cjs/plugins/discovery.d.ts +0 -46
  517. package/dist/cjs/plugins/discovery.js +0 -122
  518. package/dist/cjs/plugins/discovery.js.map +0 -1
  519. package/dist/cjs/plugins/index.d.ts +0 -26
  520. package/dist/cjs/plugins/index.js +0 -32
  521. package/dist/cjs/plugins/index.js.map +0 -1
  522. package/dist/cjs/plugins/loader.d.ts +0 -34
  523. package/dist/cjs/plugins/loader.js +0 -59
  524. package/dist/cjs/plugins/loader.js.map +0 -1
  525. package/dist/cjs/plugins/manager.d.ts +0 -70
  526. package/dist/cjs/plugins/manager.js +0 -173
  527. package/dist/cjs/plugins/manager.js.map +0 -1
  528. package/dist/cjs/safety/index.d.ts +0 -12
  529. package/dist/cjs/safety/index.js +0 -11
  530. package/dist/cjs/safety/index.js.map +0 -1
  531. package/dist/cjs/safety/safety-guard.d.ts +0 -92
  532. package/dist/cjs/safety/safety-guard.js +0 -270
  533. package/dist/cjs/safety/safety-guard.js.map +0 -1
  534. package/dist/cjs/safety/safety-middleware.d.ts +0 -130
  535. package/dist/cjs/safety/safety-middleware.js +0 -248
  536. package/dist/cjs/safety/safety-middleware.js.map +0 -1
  537. package/dist/cjs/safety/types.d.ts +0 -81
  538. package/dist/cjs/safety/types.js +0 -16
  539. package/dist/cjs/safety/types.js.map +0 -1
  540. package/dist/cjs/safety/with-confirmation.d.ts +0 -58
  541. package/dist/cjs/safety/with-confirmation.js +0 -67
  542. package/dist/cjs/safety/with-confirmation.js.map +0 -1
  543. package/dist/cjs/scaffold/engine.d.ts +0 -68
  544. package/dist/cjs/scaffold/engine.js +0 -149
  545. package/dist/cjs/scaffold/engine.js.map +0 -1
  546. package/dist/cjs/scaffold/executor.d.ts +0 -36
  547. package/dist/cjs/scaffold/executor.js +0 -293
  548. package/dist/cjs/scaffold/executor.js.map +0 -1
  549. package/dist/cjs/scaffold/index.d.ts +0 -76
  550. package/dist/cjs/scaffold/index.js +0 -23
  551. package/dist/cjs/scaffold/index.js.map +0 -1
  552. package/dist/cjs/scaffold/merge.d.ts +0 -63
  553. package/dist/cjs/scaffold/merge.js +0 -192
  554. package/dist/cjs/scaffold/merge.js.map +0 -1
  555. package/dist/cjs/scaffold/parameter-resolver.d.ts +0 -86
  556. package/dist/cjs/scaffold/parameter-resolver.js +0 -191
  557. package/dist/cjs/scaffold/parameter-resolver.js.map +0 -1
  558. package/dist/cjs/scaffold/registry.d.ts +0 -60
  559. package/dist/cjs/scaffold/registry.js +0 -225
  560. package/dist/cjs/scaffold/registry.js.map +0 -1
  561. package/dist/cjs/scaffold/sources.d.ts +0 -83
  562. package/dist/cjs/scaffold/sources.js +0 -236
  563. package/dist/cjs/scaffold/sources.js.map +0 -1
  564. package/dist/cjs/scaffold/types.d.ts +0 -282
  565. package/dist/cjs/scaffold/types.js +0 -14
  566. package/dist/cjs/scaffold/types.js.map +0 -1
  567. package/dist/cjs/scaffold/validation.d.ts +0 -81
  568. package/dist/cjs/scaffold/validation.js +0 -250
  569. package/dist/cjs/scaffold/validation.js.map +0 -1
  570. package/dist/cjs/scaffold/validators.d.ts +0 -33
  571. package/dist/cjs/scaffold/validators.js +0 -340
  572. package/dist/cjs/scaffold/validators.js.map +0 -1
  573. package/dist/cjs/schemas/collapse.d.ts +0 -150
  574. package/dist/cjs/schemas/collapse.js +0 -180
  575. package/dist/cjs/schemas/collapse.js.map +0 -1
  576. package/dist/cjs/schemas/index.d.ts +0 -58
  577. package/dist/cjs/schemas/index.js +0 -65
  578. package/dist/cjs/schemas/index.js.map +0 -1
  579. package/dist/cjs/schemas/security-schemes.d.ts +0 -26
  580. package/dist/cjs/schemas/security-schemes.js +0 -44
  581. package/dist/cjs/schemas/security-schemes.js.map +0 -1
  582. package/dist/cjs/skills/agents.d.ts +0 -42
  583. package/dist/cjs/skills/agents.js +0 -200
  584. package/dist/cjs/skills/agents.js.map +0 -1
  585. package/dist/cjs/skills/github.d.ts +0 -31
  586. package/dist/cjs/skills/github.js +0 -450
  587. package/dist/cjs/skills/github.js.map +0 -1
  588. package/dist/cjs/skills/index.d.ts +0 -43
  589. package/dist/cjs/skills/index.js +0 -16
  590. package/dist/cjs/skills/index.js.map +0 -1
  591. package/dist/cjs/skills/installer.d.ts +0 -35
  592. package/dist/cjs/skills/installer.js +0 -182
  593. package/dist/cjs/skills/installer.js.map +0 -1
  594. package/dist/cjs/skills/parser.d.ts +0 -39
  595. package/dist/cjs/skills/parser.js +0 -126
  596. package/dist/cjs/skills/parser.js.map +0 -1
  597. package/dist/cjs/skills/sources.d.ts +0 -4
  598. package/dist/cjs/skills/sources.js +0 -52
  599. package/dist/cjs/skills/sources.js.map +0 -1
  600. package/dist/cjs/skills/types.d.ts +0 -153
  601. package/dist/cjs/skills/types.js +0 -7
  602. package/dist/cjs/skills/types.js.map +0 -1
  603. package/dist/cjs/slas/index.d.ts +0 -12
  604. package/dist/cjs/slas/index.js +0 -8
  605. package/dist/cjs/slas/index.js.map +0 -1
  606. package/dist/cjs/slas/pkce.d.ts +0 -13
  607. package/dist/cjs/slas/pkce.js +0 -35
  608. package/dist/cjs/slas/pkce.js.map +0 -1
  609. package/dist/cjs/slas/token.d.ts +0 -24
  610. package/dist/cjs/slas/token.js +0 -261
  611. package/dist/cjs/slas/token.js.map +0 -1
  612. package/dist/cjs/slas/types.d.ts +0 -43
  613. package/dist/cjs/slas/types.js +0 -7
  614. package/dist/cjs/slas/types.js.map +0 -1
  615. package/dist/cjs/telemetry/index.d.ts +0 -34
  616. package/dist/cjs/telemetry/index.js +0 -32
  617. package/dist/cjs/telemetry/index.js.map +0 -1
  618. package/dist/cjs/telemetry/telemetry.d.ts +0 -88
  619. package/dist/cjs/telemetry/telemetry.js +0 -298
  620. package/dist/cjs/telemetry/telemetry.js.map +0 -1
  621. package/dist/cjs/telemetry/types.d.ts +0 -62
  622. package/dist/cjs/telemetry/types.js +0 -7
  623. package/dist/cjs/telemetry/types.js.map +0 -1
  624. package/dist/cjs/test-utils/config-isolation.d.ts +0 -2
  625. package/dist/cjs/test-utils/config-isolation.js +0 -48
  626. package/dist/cjs/test-utils/config-isolation.js.map +0 -1
  627. package/dist/cjs/test-utils/index.d.ts +0 -1
  628. package/dist/cjs/test-utils/index.js +0 -7
  629. package/dist/cjs/test-utils/index.js.map +0 -1
  630. package/dist/cjs/ux/confirm.d.ts +0 -14
  631. package/dist/cjs/ux/confirm.js +0 -36
  632. package/dist/cjs/ux/confirm.js.map +0 -1
  633. package/dist/cjs/ux/index.d.ts +0 -1
  634. package/dist/cjs/ux/index.js +0 -7
  635. package/dist/cjs/ux/index.js.map +0 -1
  636. package/dist/cjs/version.d.ts +0 -14
  637. package/dist/cjs/version.js +0 -29
  638. package/dist/cjs/version.js.map +0 -1
@@ -1,92 +0,0 @@
1
- /**
2
- * Log tailing operations for B2C Commerce.
3
- */
4
- import type { B2CInstance } from '../../instance/index.js';
5
- import type { GetRecentLogsOptions, LogEntry, TailLogsOptions, TailLogsResult } from './types.js';
6
- /**
7
- * Parses the first line of a log entry to extract timestamp, level, and message.
8
- *
9
- * Expected format: [timestamp GMT] LEVEL context - message
10
- * Example: [2025-01-25 10:30:45.123 GMT] ERROR PipelineCallServlet|... - Error message
11
- *
12
- * The message field will contain:
13
- * - The content portion from the first line (after LEVEL)
14
- * - Plus any continuation lines (stack traces, etc.)
15
- *
16
- * @param firstLine - First line of the log entry
17
- * @param file - File name the entry came from
18
- * @param fullMessage - Complete raw message including all lines
19
- * @param pathNormalizer - Optional function to normalize paths in the message
20
- * @returns Parsed log entry
21
- */
22
- export declare function parseLogEntry(firstLine: string, file: string, fullMessage: string, pathNormalizer?: (msg: string) => string): LogEntry;
23
- /**
24
- * Splits content into lines, handling incomplete lines at boundaries.
25
- * Uses TextDecoder with stream mode for proper UTF-8 multi-byte character handling.
26
- *
27
- * @param content - ArrayBuffer content
28
- * @param decoder - TextDecoder instance (should be reused for streaming)
29
- * @param isComplete - Whether this is the final chunk (flush decoder)
30
- * @returns Array of complete lines (without trailing incomplete line)
31
- */
32
- export declare function splitLines(content: ArrayBuffer, decoder: InstanceType<typeof TextDecoder>, isComplete?: boolean): string[];
33
- /**
34
- * Aggregates lines into multi-line log entries.
35
- *
36
- * B2C log entries can span multiple lines. A new entry starts when a line
37
- * begins with a timestamp pattern: [YYYY-MM-DD HH:MM:SS.mmm GMT]
38
- *
39
- * @param lines - Array of individual lines
40
- * @param pendingLines - Lines carried over from previous chunk (incomplete entry)
41
- * @returns Object with complete entries and any pending lines for next chunk
42
- */
43
- export declare function aggregateLogEntries(lines: string[], pendingLines?: string[]): {
44
- entries: string[][];
45
- pending: string[];
46
- };
47
- /**
48
- * Tails log files on a B2C Commerce instance.
49
- *
50
- * Continuously polls for new log content using HTTP Range requests for efficiency.
51
- * Calls the onEntry callback for each new log line.
52
- *
53
- * @param instance - B2C instance to tail logs from
54
- * @param options - Tailing options (filters, callbacks, polling interval)
55
- * @returns Tail result with stop() control and done promise
56
- *
57
- * @example
58
- * ```typescript
59
- * const result = await tailLogs(instance, {
60
- * prefixes: ['error', 'customerror'],
61
- * onEntry: (entry) => console.log(`[${entry.file}] ${entry.message}`),
62
- * onError: (err) => console.error('Tail error:', err),
63
- * });
64
- *
65
- * // Stop after 10 seconds
66
- * setTimeout(() => result.stop(), 10000);
67
- *
68
- * // Wait for tailing to complete
69
- * await result.done;
70
- * ```
71
- */
72
- export declare function tailLogs(instance: B2CInstance, options?: TailLogsOptions): Promise<TailLogsResult>;
73
- /**
74
- * Gets recent log entries (one-shot retrieval).
75
- *
76
- * Useful for MCP server integration or programmatic access without continuous tailing.
77
- * Reads the tail end of log files and returns parsed entries.
78
- *
79
- * @param instance - B2C instance to get logs from
80
- * @param options - Retrieval options
81
- * @returns Array of recent log entries
82
- *
83
- * @example
84
- * ```typescript
85
- * // Get the last 50 error entries
86
- * const entries = await getRecentLogs(instance, {
87
- * prefixes: ['error'],
88
- * maxEntries: 50
89
- * });
90
- * ```
91
- */
92
- export declare function getRecentLogs(instance: B2CInstance, options?: GetRecentLogsOptions): Promise<LogEntry[]>;
@@ -1,525 +0,0 @@
1
- import { getLogger } from '../../logging/logger.js';
2
- import { listLogFiles } from './list.js';
3
- /**
4
- * Default log prefixes to tail.
5
- */
6
- const DEFAULT_PREFIXES = ['error', 'customerror'];
7
- /**
8
- * Default polling interval in milliseconds.
9
- */
10
- const DEFAULT_POLL_INTERVAL = 3000;
11
- /**
12
- * Default max entries for getRecentLogs.
13
- */
14
- const DEFAULT_MAX_ENTRIES = 100;
15
- /**
16
- * Default bytes to read from end of file for getRecentLogs.
17
- */
18
- const DEFAULT_TAIL_BYTES = 65536; // 64KB
19
- /**
20
- * Regex to detect the start of a new log entry.
21
- * Matches: [YYYY-MM-DD HH:MM:SS.mmm GMT]
22
- */
23
- const LOG_ENTRY_START = /^\[\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2}\.\d+\s+\w+\]/;
24
- /**
25
- * Parses the first line of a log entry to extract timestamp, level, and message.
26
- *
27
- * Expected format: [timestamp GMT] LEVEL context - message
28
- * Example: [2025-01-25 10:30:45.123 GMT] ERROR PipelineCallServlet|... - Error message
29
- *
30
- * The message field will contain:
31
- * - The content portion from the first line (after LEVEL)
32
- * - Plus any continuation lines (stack traces, etc.)
33
- *
34
- * @param firstLine - First line of the log entry
35
- * @param file - File name the entry came from
36
- * @param fullMessage - Complete raw message including all lines
37
- * @param pathNormalizer - Optional function to normalize paths in the message
38
- * @returns Parsed log entry
39
- */
40
- export function parseLogEntry(firstLine, file, fullMessage, pathNormalizer) {
41
- // Try to parse the standard B2C log format: [timestamp GMT] LEVEL message
42
- const match = firstLine.match(/^\[([^\]]+)\]\s+(INFO|WARN|ERROR|DEBUG|FATAL|TRACE)\s+(.*)$/s);
43
- if (match) {
44
- const [, timestamp, level, firstLineContent] = match;
45
- // Build the message: first line content + continuation lines
46
- const lines = fullMessage.split('\n');
47
- const continuationLines = lines.slice(1);
48
- let message = continuationLines.length > 0 ? [firstLineContent, ...continuationLines].join('\n') : firstLineContent;
49
- if (pathNormalizer) {
50
- message = pathNormalizer(message);
51
- }
52
- return {
53
- file,
54
- timestamp,
55
- level,
56
- message,
57
- raw: fullMessage,
58
- };
59
- }
60
- // Fallback: return as unparsed entry
61
- let message = fullMessage;
62
- if (pathNormalizer) {
63
- message = pathNormalizer(message);
64
- }
65
- return {
66
- file,
67
- message,
68
- raw: fullMessage,
69
- };
70
- }
71
- /**
72
- * Splits content into lines, handling incomplete lines at boundaries.
73
- * Uses TextDecoder with stream mode for proper UTF-8 multi-byte character handling.
74
- *
75
- * @param content - ArrayBuffer content
76
- * @param decoder - TextDecoder instance (should be reused for streaming)
77
- * @param isComplete - Whether this is the final chunk (flush decoder)
78
- * @returns Array of complete lines (without trailing incomplete line)
79
- */
80
- export function splitLines(content, decoder, isComplete = true) {
81
- const text = decoder.decode(content, { stream: !isComplete });
82
- // Split by newlines, keeping track of whether last line is complete
83
- const lines = text.split(/\r?\n/);
84
- // If the text doesn't end with a newline, the last line is incomplete
85
- // We should not include it in the results (it will be completed in next read)
86
- if (!isComplete && lines.length > 0 && !text.endsWith('\n')) {
87
- lines.pop();
88
- }
89
- // Filter out empty lines
90
- return lines.filter((line) => line.trim().length > 0);
91
- }
92
- /**
93
- * Aggregates lines into multi-line log entries.
94
- *
95
- * B2C log entries can span multiple lines. A new entry starts when a line
96
- * begins with a timestamp pattern: [YYYY-MM-DD HH:MM:SS.mmm GMT]
97
- *
98
- * @param lines - Array of individual lines
99
- * @param pendingLines - Lines carried over from previous chunk (incomplete entry)
100
- * @returns Object with complete entries and any pending lines for next chunk
101
- */
102
- export function aggregateLogEntries(lines, pendingLines = []) {
103
- const entries = [];
104
- let currentEntry = [...pendingLines];
105
- for (const line of lines) {
106
- if (LOG_ENTRY_START.test(line)) {
107
- // This line starts a new entry
108
- if (currentEntry.length > 0) {
109
- // Save the previous entry
110
- entries.push(currentEntry);
111
- }
112
- currentEntry = [line];
113
- }
114
- else {
115
- // Continuation line - add to current entry
116
- currentEntry.push(line);
117
- }
118
- }
119
- // Return complete entries and any pending lines
120
- return {
121
- entries,
122
- pending: currentEntry,
123
- };
124
- }
125
- /**
126
- * Tails log files on a B2C Commerce instance.
127
- *
128
- * Continuously polls for new log content using HTTP Range requests for efficiency.
129
- * Calls the onEntry callback for each new log line.
130
- *
131
- * @param instance - B2C instance to tail logs from
132
- * @param options - Tailing options (filters, callbacks, polling interval)
133
- * @returns Tail result with stop() control and done promise
134
- *
135
- * @example
136
- * ```typescript
137
- * const result = await tailLogs(instance, {
138
- * prefixes: ['error', 'customerror'],
139
- * onEntry: (entry) => console.log(`[${entry.file}] ${entry.message}`),
140
- * onError: (err) => console.error('Tail error:', err),
141
- * });
142
- *
143
- * // Stop after 10 seconds
144
- * setTimeout(() => result.stop(), 10000);
145
- *
146
- * // Wait for tailing to complete
147
- * await result.done;
148
- * ```
149
- */
150
- export async function tailLogs(instance, options = {}) {
151
- const logger = getLogger();
152
- const { prefixes = DEFAULT_PREFIXES, pollInterval = DEFAULT_POLL_INTERVAL, lastEntries = 1, maxEntries, pathNormalizer, onEntry, onError, onFileDiscovered, onFileRotated, } = options;
153
- // Track file positions and collected entries
154
- const filePositions = new Map();
155
- const fileSizes = new Map();
156
- const trackedFiles = [];
157
- const collectedEntries = [];
158
- // Control state
159
- let running = true;
160
- let resolveComplete;
161
- const donePromise = new Promise((resolve) => {
162
- resolveComplete = resolve;
163
- });
164
- // TextDecoder for proper UTF-8 handling (one per file for streaming)
165
- const decoders = new Map();
166
- // Pending lines for multi-line entry aggregation (per file)
167
- const pendingLines = new Map();
168
- /**
169
- * Stop the tailing operation.
170
- */
171
- const stop = async () => {
172
- running = false;
173
- // Give a small delay to allow any in-flight requests to complete
174
- await new Promise((resolve) => setTimeout(resolve, 100));
175
- };
176
- /**
177
- * Get or create a decoder for a file.
178
- */
179
- const getDecoder = (filename) => {
180
- let decoder = decoders.get(filename);
181
- if (!decoder) {
182
- decoder = new TextDecoder('utf-8', { fatal: false });
183
- decoders.set(filename, decoder);
184
- }
185
- return decoder;
186
- };
187
- /**
188
- * Fetch the last N entries from a file's tail.
189
- */
190
- const fetchLastEntries = async (file, count) => {
191
- if (count <= 0 || file.size === 0) {
192
- return [];
193
- }
194
- try {
195
- // Read last ~64KB of the file to find recent entries
196
- const tailBytes = Math.min(file.size, DEFAULT_TAIL_BYTES);
197
- const startByte = Math.max(0, file.size - tailBytes);
198
- let content;
199
- if (startByte === 0) {
200
- // Read entire file
201
- content = await instance.webdav.get(file.path);
202
- }
203
- else {
204
- // Use Range request for tail
205
- const response = await instance.webdav.request(file.path, {
206
- method: 'GET',
207
- headers: {
208
- Range: `bytes=${startByte}-`,
209
- },
210
- });
211
- if (response.status === 416) {
212
- // File might be smaller than expected, read entire file
213
- content = await instance.webdav.get(file.path);
214
- }
215
- else if (!response.ok && response.status !== 206) {
216
- throw new Error(`Failed to read ${file.name}: ${response.status}`);
217
- }
218
- else {
219
- content = await response.arrayBuffer();
220
- }
221
- }
222
- // Parse lines and aggregate into multi-line entries
223
- const decoder = new TextDecoder('utf-8', { fatal: false });
224
- const lines = splitLines(content, decoder, true);
225
- // If we started mid-file, skip lines until we find an entry start
226
- let startIndex = 0;
227
- if (startByte > 0) {
228
- for (let i = 0; i < lines.length; i++) {
229
- if (LOG_ENTRY_START.test(lines[i])) {
230
- startIndex = i;
231
- break;
232
- }
233
- }
234
- }
235
- // Aggregate lines into entries
236
- const { entries: rawEntries, pending } = aggregateLogEntries(lines.slice(startIndex), []);
237
- // Include pending as the last entry if it has content
238
- const allRawEntries = pending.length > 0 ? [...rawEntries, pending] : rawEntries;
239
- const entries = [];
240
- for (const entryLines of allRawEntries) {
241
- const firstLine = entryLines[0];
242
- const fullMessage = entryLines.join('\n');
243
- const entry = parseLogEntry(firstLine, file.name, fullMessage, pathNormalizer);
244
- entries.push(entry);
245
- }
246
- // Return only the last N entries (most recent)
247
- return entries.slice(-count);
248
- }
249
- catch (error) {
250
- logger.error({ error, file: file.name }, `Error fetching last entries from ${file.name}`);
251
- if (onError) {
252
- onError(error instanceof Error ? error : new Error(String(error)));
253
- }
254
- return [];
255
- }
256
- };
257
- /**
258
- * Discover and track log files matching the prefix filters.
259
- */
260
- const discoverFiles = async () => {
261
- try {
262
- const files = await listLogFiles(instance, { prefixes, sortBy: 'date', sortOrder: 'desc' });
263
- for (const file of files) {
264
- if (!filePositions.has(file.name)) {
265
- // New file discovered
266
- logger.debug({ file: file.name }, `Discovered log file: ${file.name}`);
267
- trackedFiles.push(file);
268
- fileSizes.set(file.name, file.size);
269
- // Notify about discovery first
270
- if (onFileDiscovered) {
271
- onFileDiscovered(file);
272
- }
273
- // Fetch and emit last N entries if requested
274
- if (lastEntries > 0) {
275
- const recentEntries = await fetchLastEntries(file, lastEntries);
276
- for (const entry of recentEntries) {
277
- if (onEntry) {
278
- onEntry(entry);
279
- }
280
- if (maxEntries !== undefined) {
281
- collectedEntries.push(entry);
282
- if (collectedEntries.length >= maxEntries) {
283
- running = false;
284
- return;
285
- }
286
- }
287
- }
288
- }
289
- // Set position to end of file to only tail new content
290
- filePositions.set(file.name, file.size);
291
- }
292
- else {
293
- // Check for file rotation (size decreased)
294
- const previousSize = fileSizes.get(file.name) || 0;
295
- if (file.size < previousSize) {
296
- logger.debug({ file: file.name, previousSize, newSize: file.size }, `File rotated: ${file.name}`);
297
- // Reset position to start of new file
298
- filePositions.set(file.name, 0);
299
- fileSizes.set(file.name, file.size);
300
- // Create fresh decoder and clear pending lines
301
- decoders.set(file.name, new TextDecoder('utf-8', { fatal: false }));
302
- pendingLines.delete(file.name);
303
- if (onFileRotated) {
304
- onFileRotated(file);
305
- }
306
- }
307
- else {
308
- fileSizes.set(file.name, file.size);
309
- }
310
- }
311
- }
312
- }
313
- catch (error) {
314
- logger.error({ error }, 'Error discovering log files');
315
- if (onError) {
316
- onError(error instanceof Error ? error : new Error(String(error)));
317
- }
318
- }
319
- };
320
- /**
321
- * Read new content from a file using Range request.
322
- */
323
- const readNewContent = async (file) => {
324
- const position = filePositions.get(file.name) || 0;
325
- const currentSize = fileSizes.get(file.name) || 0;
326
- // No new content
327
- if (position >= currentSize) {
328
- return;
329
- }
330
- try {
331
- // Use Range header to get only new content
332
- const response = await instance.webdav.request(file.path, {
333
- method: 'GET',
334
- headers: {
335
- Range: `bytes=${position}-`,
336
- },
337
- });
338
- // Handle different response statuses
339
- if (response.status === 416) {
340
- // Range Not Satisfiable - position is at or past end of file
341
- // This can happen due to race conditions, just skip
342
- return;
343
- }
344
- if (!response.ok && response.status !== 206) {
345
- throw new Error(`Failed to read ${file.name}: ${response.status} ${response.statusText}`);
346
- }
347
- const content = await response.arrayBuffer();
348
- const decoder = getDecoder(file.name);
349
- // Update position based on content received
350
- const contentLength = content.byteLength;
351
- filePositions.set(file.name, position + contentLength);
352
- // Parse lines and aggregate into multi-line entries
353
- const lines = splitLines(content, decoder, true);
354
- const { entries: rawEntries, pending } = aggregateLogEntries(lines, pendingLines.get(file.name) || []);
355
- // Check if we've caught up to the end of the file
356
- const newPosition = position + contentLength;
357
- const atEndOfFile = newPosition >= currentSize;
358
- // If we're at the end of the file, flush pending as a complete entry
359
- // (the entry is complete for now, more content may arrive later)
360
- let allEntries = rawEntries;
361
- if (atEndOfFile && pending.length > 0) {
362
- allEntries = [...rawEntries, pending];
363
- pendingLines.set(file.name, []);
364
- }
365
- else {
366
- pendingLines.set(file.name, pending);
367
- }
368
- // Process complete entries
369
- for (const entryLines of allEntries) {
370
- const firstLine = entryLines[0];
371
- const fullMessage = entryLines.join('\n');
372
- const entry = parseLogEntry(firstLine, file.name, fullMessage, pathNormalizer);
373
- if (onEntry) {
374
- onEntry(entry);
375
- }
376
- if (maxEntries !== undefined) {
377
- collectedEntries.push(entry);
378
- if (collectedEntries.length >= maxEntries) {
379
- running = false;
380
- return;
381
- }
382
- }
383
- }
384
- }
385
- catch (error) {
386
- logger.error({ error, file: file.name }, `Error reading ${file.name}`);
387
- if (onError) {
388
- onError(error instanceof Error ? error : new Error(String(error)));
389
- }
390
- }
391
- };
392
- /**
393
- * Main polling loop.
394
- */
395
- const poll = async () => {
396
- // Initial file discovery
397
- await discoverFiles();
398
- while (running) {
399
- // Read new content from all tracked files
400
- for (const file of trackedFiles) {
401
- if (!running)
402
- break;
403
- await readNewContent(file);
404
- }
405
- if (!running)
406
- break;
407
- // Wait for next poll
408
- await new Promise((resolve) => setTimeout(resolve, pollInterval));
409
- // Check for new files
410
- await discoverFiles();
411
- }
412
- resolveComplete();
413
- };
414
- // Start polling (don't await - runs in background)
415
- poll().catch((error) => {
416
- logger.error({ error }, 'Polling error');
417
- if (onError) {
418
- onError(error instanceof Error ? error : new Error(String(error)));
419
- }
420
- resolveComplete();
421
- });
422
- return {
423
- stop,
424
- files: trackedFiles,
425
- entries: collectedEntries,
426
- done: donePromise,
427
- };
428
- }
429
- /**
430
- * Gets recent log entries (one-shot retrieval).
431
- *
432
- * Useful for MCP server integration or programmatic access without continuous tailing.
433
- * Reads the tail end of log files and returns parsed entries.
434
- *
435
- * @param instance - B2C instance to get logs from
436
- * @param options - Retrieval options
437
- * @returns Array of recent log entries
438
- *
439
- * @example
440
- * ```typescript
441
- * // Get the last 50 error entries
442
- * const entries = await getRecentLogs(instance, {
443
- * prefixes: ['error'],
444
- * maxEntries: 50
445
- * });
446
- * ```
447
- */
448
- export async function getRecentLogs(instance, options = {}) {
449
- const logger = getLogger();
450
- const { prefixes = DEFAULT_PREFIXES, maxEntries = DEFAULT_MAX_ENTRIES, tailBytes = DEFAULT_TAIL_BYTES, pathNormalizer, } = options;
451
- logger.debug({ prefixes, maxEntries, tailBytes }, 'Getting recent logs');
452
- // Get log files
453
- const files = await listLogFiles(instance, {
454
- prefixes,
455
- sortBy: 'date',
456
- sortOrder: 'desc',
457
- });
458
- const allEntries = [];
459
- // Read from files until we have enough entries
460
- for (const file of files) {
461
- if (allEntries.length >= maxEntries)
462
- break;
463
- try {
464
- // Calculate range to read (tail end of file)
465
- const startByte = Math.max(0, file.size - tailBytes);
466
- let content;
467
- if (startByte === 0) {
468
- // Read entire file
469
- content = await instance.webdav.get(file.path);
470
- }
471
- else {
472
- // Use Range request for tail
473
- const response = await instance.webdav.request(file.path, {
474
- method: 'GET',
475
- headers: {
476
- Range: `bytes=${startByte}-`,
477
- },
478
- });
479
- if (response.status === 416) {
480
- // File might be smaller than expected, read entire file
481
- content = await instance.webdav.get(file.path);
482
- }
483
- else if (!response.ok && response.status !== 206) {
484
- throw new Error(`Failed to read ${file.name}: ${response.status}`);
485
- }
486
- else {
487
- content = await response.arrayBuffer();
488
- }
489
- }
490
- // Parse lines and aggregate into multi-line entries
491
- const decoder = new TextDecoder('utf-8', { fatal: false });
492
- const lines = splitLines(content, decoder, true);
493
- // If we started mid-file, skip lines until we find an entry start
494
- let startIndex = 0;
495
- if (startByte > 0) {
496
- for (let i = 0; i < lines.length; i++) {
497
- if (LOG_ENTRY_START.test(lines[i])) {
498
- startIndex = i;
499
- break;
500
- }
501
- }
502
- }
503
- // Aggregate lines into entries
504
- const { entries: rawEntries, pending } = aggregateLogEntries(lines.slice(startIndex), []);
505
- // Process complete entries (ignore pending - we're reading a snapshot)
506
- // Also include pending as the last entry if it has content
507
- const allRawEntries = pending.length > 0 ? [...rawEntries, pending] : rawEntries;
508
- for (const entryLines of allRawEntries) {
509
- const firstLine = entryLines[0];
510
- const fullMessage = entryLines.join('\n');
511
- const entry = parseLogEntry(firstLine, file.name, fullMessage, pathNormalizer);
512
- allEntries.push(entry);
513
- if (allEntries.length >= maxEntries)
514
- break;
515
- }
516
- }
517
- catch (error) {
518
- logger.error({ error, file: file.name }, `Error reading ${file.name}`);
519
- // Continue to next file instead of failing completely
520
- }
521
- }
522
- // Return entries in reverse order (most recent first)
523
- return allEntries.reverse().slice(0, maxEntries);
524
- }
525
- //# sourceMappingURL=tail.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tail.js","sourceRoot":"","sources":["../../../../src/operations/logs/tail.ts"],"names":[],"mappings":"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"}