@sitecoreai-labs/sitecoreai-cli 0.0.4

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 (569) hide show
  1. package/AGENTS.md +67 -0
  2. package/LICENSE +21 -0
  3. package/README.md +357 -0
  4. package/bin/sitecoreai-cli +3 -0
  5. package/dist/cli.d.ts +3 -0
  6. package/dist/cli.d.ts.map +1 -0
  7. package/dist/cli.js +358 -0
  8. package/dist/commands/config.d.ts +3 -0
  9. package/dist/commands/config.d.ts.map +1 -0
  10. package/dist/commands/config.js +27 -0
  11. package/dist/commands/deploy/deployments.d.ts +3 -0
  12. package/dist/commands/deploy/deployments.d.ts.map +1 -0
  13. package/dist/commands/deploy/deployments.js +58 -0
  14. package/dist/commands/deploy/editing-host.d.ts +3 -0
  15. package/dist/commands/deploy/editing-host.d.ts.map +1 -0
  16. package/dist/commands/deploy/editing-host.js +49 -0
  17. package/dist/commands/deploy/environments/deployments.d.ts +3 -0
  18. package/dist/commands/deploy/environments/deployments.d.ts.map +1 -0
  19. package/dist/commands/deploy/environments/deployments.js +28 -0
  20. package/dist/commands/deploy/environments/index.d.ts +3 -0
  21. package/dist/commands/deploy/environments/index.d.ts.map +1 -0
  22. package/dist/commands/deploy/environments/index.js +29 -0
  23. package/dist/commands/deploy/environments/mutations.d.ts +9 -0
  24. package/dist/commands/deploy/environments/mutations.d.ts.map +1 -0
  25. package/dist/commands/deploy/environments/mutations.js +103 -0
  26. package/dist/commands/deploy/environments/queries.d.ts +7 -0
  27. package/dist/commands/deploy/environments/queries.d.ts.map +1 -0
  28. package/dist/commands/deploy/environments/queries.js +56 -0
  29. package/dist/commands/deploy/environments/variables.d.ts +3 -0
  30. package/dist/commands/deploy/environments/variables.d.ts.map +1 -0
  31. package/dist/commands/deploy/environments/variables.js +40 -0
  32. package/dist/commands/deploy/environments.d.ts +2 -0
  33. package/dist/commands/deploy/environments.d.ts.map +1 -0
  34. package/dist/commands/deploy/environments.js +17 -0
  35. package/dist/commands/deploy/index.d.ts +3 -0
  36. package/dist/commands/deploy/index.d.ts.map +1 -0
  37. package/dist/commands/deploy/index.js +26 -0
  38. package/dist/commands/deploy/logs.d.ts +3 -0
  39. package/dist/commands/deploy/logs.d.ts.map +1 -0
  40. package/dist/commands/deploy/logs.js +39 -0
  41. package/dist/commands/deploy/organizations.d.ts +3 -0
  42. package/dist/commands/deploy/organizations.d.ts.map +1 -0
  43. package/dist/commands/deploy/organizations.js +29 -0
  44. package/dist/commands/deploy/projects.d.ts +3 -0
  45. package/dist/commands/deploy/projects.d.ts.map +1 -0
  46. package/dist/commands/deploy/projects.js +74 -0
  47. package/dist/commands/deploy/shared.d.ts +3 -0
  48. package/dist/commands/deploy/shared.d.ts.map +1 -0
  49. package/dist/commands/deploy/shared.js +12 -0
  50. package/dist/commands/deploy/site.d.ts +10 -0
  51. package/dist/commands/deploy/site.d.ts.map +1 -0
  52. package/dist/commands/deploy/site.js +36 -0
  53. package/dist/commands/deploy/source-control.d.ts +3 -0
  54. package/dist/commands/deploy/source-control.d.ts.map +1 -0
  55. package/dist/commands/deploy/source-control.js +89 -0
  56. package/dist/commands/deploy.d.ts +2 -0
  57. package/dist/commands/deploy.d.ts.map +1 -0
  58. package/dist/commands/deploy.js +5 -0
  59. package/dist/commands/history.d.ts +3 -0
  60. package/dist/commands/history.d.ts.map +1 -0
  61. package/dist/commands/history.js +88 -0
  62. package/dist/commands/init.d.ts +3 -0
  63. package/dist/commands/init.d.ts.map +1 -0
  64. package/dist/commands/init.js +32 -0
  65. package/dist/commands/login.d.ts +3 -0
  66. package/dist/commands/login.d.ts.map +1 -0
  67. package/dist/commands/login.js +21 -0
  68. package/dist/commands/logout.d.ts +3 -0
  69. package/dist/commands/logout.d.ts.map +1 -0
  70. package/dist/commands/logout.js +18 -0
  71. package/dist/commands/recipe/index.d.ts +3 -0
  72. package/dist/commands/recipe/index.d.ts.map +1 -0
  73. package/dist/commands/recipe/index.js +158 -0
  74. package/dist/commands/serialization/index.d.ts +3 -0
  75. package/dist/commands/serialization/index.d.ts.map +1 -0
  76. package/dist/commands/serialization/index.js +89 -0
  77. package/dist/commands/serialization/package.d.ts +3 -0
  78. package/dist/commands/serialization/package.d.ts.map +1 -0
  79. package/dist/commands/serialization/package.js +36 -0
  80. package/dist/commands/shared.d.ts +21 -0
  81. package/dist/commands/shared.d.ts.map +1 -0
  82. package/dist/commands/shared.js +82 -0
  83. package/dist/commands/shell.d.ts +10 -0
  84. package/dist/commands/shell.d.ts.map +1 -0
  85. package/dist/commands/shell.js +155 -0
  86. package/dist/commands/status.d.ts +3 -0
  87. package/dist/commands/status.d.ts.map +1 -0
  88. package/dist/commands/status.js +15 -0
  89. package/dist/commands/telemetry.d.ts +3 -0
  90. package/dist/commands/telemetry.d.ts.map +1 -0
  91. package/dist/commands/telemetry.js +28 -0
  92. package/dist/config/env-overrides.d.ts +4 -0
  93. package/dist/config/env-overrides.d.ts.map +1 -0
  94. package/dist/config/env-overrides.js +199 -0
  95. package/dist/config/index.d.ts +5 -0
  96. package/dist/config/index.d.ts.map +1 -0
  97. package/dist/config/index.js +13 -0
  98. package/dist/config/modules.d.ts +4 -0
  99. package/dist/config/modules.d.ts.map +1 -0
  100. package/dist/config/modules.js +152 -0
  101. package/dist/config/paths.d.ts +2 -0
  102. package/dist/config/paths.d.ts.map +1 -0
  103. package/dist/config/paths.js +39 -0
  104. package/dist/config/root-config.d.ts +10 -0
  105. package/dist/config/root-config.d.ts.map +1 -0
  106. package/dist/config/root-config.js +159 -0
  107. package/dist/config/schema.json +278 -0
  108. package/dist/config/serialization-module.schema.json +127 -0
  109. package/dist/config/telemetry.schema.json +21 -0
  110. package/dist/config/types.d.ts +245 -0
  111. package/dist/config/types.d.ts.map +1 -0
  112. package/dist/config/types.js +19 -0
  113. package/dist/config/validation.d.ts +10 -0
  114. package/dist/config/validation.d.ts.map +1 -0
  115. package/dist/config/validation.js +43 -0
  116. package/dist/deploy/api/common/headers.d.ts +2 -0
  117. package/dist/deploy/api/common/headers.d.ts.map +1 -0
  118. package/dist/deploy/api/common/headers.js +10 -0
  119. package/dist/deploy/api/common/index.d.ts +4 -0
  120. package/dist/deploy/api/common/index.d.ts.map +1 -0
  121. package/dist/deploy/api/common/index.js +19 -0
  122. package/dist/deploy/api/common/request.d.ts +9 -0
  123. package/dist/deploy/api/common/request.d.ts.map +1 -0
  124. package/dist/deploy/api/common/request.js +253 -0
  125. package/dist/deploy/api/common/types.d.ts +44 -0
  126. package/dist/deploy/api/common/types.d.ts.map +1 -0
  127. package/dist/deploy/api/common/types.js +5 -0
  128. package/dist/deploy/api/common.d.ts +2 -0
  129. package/dist/deploy/api/common.d.ts.map +1 -0
  130. package/dist/deploy/api/common.js +17 -0
  131. package/dist/deploy/api/deployment-logs.d.ts +2 -0
  132. package/dist/deploy/api/deployment-logs.d.ts.map +1 -0
  133. package/dist/deploy/api/deployment-logs.js +23 -0
  134. package/dist/deploy/api/deployments.d.ts +9 -0
  135. package/dist/deploy/api/deployments.d.ts.map +1 -0
  136. package/dist/deploy/api/deployments.js +61 -0
  137. package/dist/deploy/api/environments.d.ts +21 -0
  138. package/dist/deploy/api/environments.d.ts.map +1 -0
  139. package/dist/deploy/api/environments.js +67 -0
  140. package/dist/deploy/api/index.d.ts +9 -0
  141. package/dist/deploy/api/index.d.ts.map +1 -0
  142. package/dist/deploy/api/index.js +24 -0
  143. package/dist/deploy/api/logs.d.ts +8 -0
  144. package/dist/deploy/api/logs.d.ts.map +1 -0
  145. package/dist/deploy/api/logs.js +29 -0
  146. package/dist/deploy/api/organizations.d.ts +6 -0
  147. package/dist/deploy/api/organizations.d.ts.map +1 -0
  148. package/dist/deploy/api/organizations.js +18 -0
  149. package/dist/deploy/api/projects.d.ts +13 -0
  150. package/dist/deploy/api/projects.d.ts.map +1 -0
  151. package/dist/deploy/api/projects.js +42 -0
  152. package/dist/deploy/api/source-control.d.ts +15 -0
  153. package/dist/deploy/api/source-control.d.ts.map +1 -0
  154. package/dist/deploy/api/source-control.js +71 -0
  155. package/dist/deploy/api.d.ts +2 -0
  156. package/dist/deploy/api.d.ts.map +1 -0
  157. package/dist/deploy/api.js +17 -0
  158. package/dist/deploy/tasks/deployment-result.d.ts +6 -0
  159. package/dist/deploy/tasks/deployment-result.d.ts.map +1 -0
  160. package/dist/deploy/tasks/deployment-result.js +36 -0
  161. package/dist/deploy/tasks/deployments.d.ts +10 -0
  162. package/dist/deploy/tasks/deployments.d.ts.map +1 -0
  163. package/dist/deploy/tasks/deployments.js +201 -0
  164. package/dist/deploy/tasks/editing-host.d.ts +28 -0
  165. package/dist/deploy/tasks/editing-host.d.ts.map +1 -0
  166. package/dist/deploy/tasks/editing-host.js +216 -0
  167. package/dist/deploy/tasks/environments.d.ts +20 -0
  168. package/dist/deploy/tasks/environments.d.ts.map +1 -0
  169. package/dist/deploy/tasks/environments.js +364 -0
  170. package/dist/deploy/tasks/index.d.ts +10 -0
  171. package/dist/deploy/tasks/index.d.ts.map +1 -0
  172. package/dist/deploy/tasks/index.js +25 -0
  173. package/dist/deploy/tasks/logs.d.ts +5 -0
  174. package/dist/deploy/tasks/logs.d.ts.map +1 -0
  175. package/dist/deploy/tasks/logs.js +56 -0
  176. package/dist/deploy/tasks/organizations.d.ts +6 -0
  177. package/dist/deploy/tasks/organizations.d.ts.map +1 -0
  178. package/dist/deploy/tasks/organizations.js +51 -0
  179. package/dist/deploy/tasks/projects.d.ts +11 -0
  180. package/dist/deploy/tasks/projects.d.ts.map +1 -0
  181. package/dist/deploy/tasks/projects.js +246 -0
  182. package/dist/deploy/tasks/shared.d.ts +63 -0
  183. package/dist/deploy/tasks/shared.d.ts.map +1 -0
  184. package/dist/deploy/tasks/shared.js +261 -0
  185. package/dist/deploy/tasks/site-bind.d.ts +21 -0
  186. package/dist/deploy/tasks/site-bind.d.ts.map +1 -0
  187. package/dist/deploy/tasks/site-bind.js +142 -0
  188. package/dist/deploy/tasks/site.d.ts +14 -0
  189. package/dist/deploy/tasks/site.d.ts.map +1 -0
  190. package/dist/deploy/tasks/site.js +29 -0
  191. package/dist/deploy/tasks/source-control.d.ts +14 -0
  192. package/dist/deploy/tasks/source-control.d.ts.map +1 -0
  193. package/dist/deploy/tasks/source-control.js +173 -0
  194. package/dist/deploy/tasks/types.d.ts +204 -0
  195. package/dist/deploy/tasks/types.d.ts.map +1 -0
  196. package/dist/deploy/tasks/types.js +7 -0
  197. package/dist/deploy/tasks.d.ts +3 -0
  198. package/dist/deploy/tasks.d.ts.map +1 -0
  199. package/dist/deploy/tasks.js +18 -0
  200. package/dist/recipe/api/auth.d.ts +9 -0
  201. package/dist/recipe/api/auth.d.ts.map +1 -0
  202. package/dist/recipe/api/auth.js +12 -0
  203. package/dist/recipe/api/authoring-client.d.ts +37 -0
  204. package/dist/recipe/api/authoring-client.d.ts.map +1 -0
  205. package/dist/recipe/api/authoring-client.js +495 -0
  206. package/dist/recipe/api/client.d.ts +99 -0
  207. package/dist/recipe/api/client.d.ts.map +1 -0
  208. package/dist/recipe/api/client.js +17 -0
  209. package/dist/recipe/api/graphql.d.ts +15 -0
  210. package/dist/recipe/api/graphql.d.ts.map +1 -0
  211. package/dist/recipe/api/graphql.js +38 -0
  212. package/dist/recipe/api/ref-encoding.d.ts +38 -0
  213. package/dist/recipe/api/ref-encoding.d.ts.map +1 -0
  214. package/dist/recipe/api/ref-encoding.js +160 -0
  215. package/dist/recipe/api/site-discovery.d.ts +49 -0
  216. package/dist/recipe/api/site-discovery.d.ts.map +1 -0
  217. package/dist/recipe/api/site-discovery.js +127 -0
  218. package/dist/recipe/api/sites-client.d.ts +48 -0
  219. package/dist/recipe/api/sites-client.d.ts.map +1 -0
  220. package/dist/recipe/api/sites-client.js +19 -0
  221. package/dist/recipe/cache.d.ts +36 -0
  222. package/dist/recipe/cache.d.ts.map +1 -0
  223. package/dist/recipe/cache.js +114 -0
  224. package/dist/recipe/compile/component-section.d.ts +46 -0
  225. package/dist/recipe/compile/component-section.d.ts.map +1 -0
  226. package/dist/recipe/compile/component-section.js +143 -0
  227. package/dist/recipe/compile/component-template.d.ts +34 -0
  228. package/dist/recipe/compile/component-template.d.ts.map +1 -0
  229. package/dist/recipe/compile/component-template.js +709 -0
  230. package/dist/recipe/compile/content-item.d.ts +31 -0
  231. package/dist/recipe/compile/content-item.d.ts.map +1 -0
  232. package/dist/recipe/compile/content-item.js +189 -0
  233. package/dist/recipe/compile/content-template.d.ts +18 -0
  234. package/dist/recipe/compile/content-template.d.ts.map +1 -0
  235. package/dist/recipe/compile/content-template.js +52 -0
  236. package/dist/recipe/compile/enumeration.d.ts +59 -0
  237. package/dist/recipe/compile/enumeration.d.ts.map +1 -0
  238. package/dist/recipe/compile/enumeration.js +236 -0
  239. package/dist/recipe/compile/page-design.d.ts +22 -0
  240. package/dist/recipe/compile/page-design.d.ts.map +1 -0
  241. package/dist/recipe/compile/page-design.js +93 -0
  242. package/dist/recipe/compile/parameters-template.d.ts +14 -0
  243. package/dist/recipe/compile/parameters-template.d.ts.map +1 -0
  244. package/dist/recipe/compile/parameters-template.js +92 -0
  245. package/dist/recipe/compile/partial-design.d.ts +18 -0
  246. package/dist/recipe/compile/partial-design.d.ts.map +1 -0
  247. package/dist/recipe/compile/partial-design.js +76 -0
  248. package/dist/recipe/compile/section-definition.d.ts +18 -0
  249. package/dist/recipe/compile/section-definition.d.ts.map +1 -0
  250. package/dist/recipe/compile/section-definition.js +26 -0
  251. package/dist/recipe/compile/shared.d.ts +442 -0
  252. package/dist/recipe/compile/shared.d.ts.map +1 -0
  253. package/dist/recipe/compile/shared.js +843 -0
  254. package/dist/recipe/compile/site-template.d.ts +52 -0
  255. package/dist/recipe/compile/site-template.d.ts.map +1 -0
  256. package/dist/recipe/compile/site-template.js +140 -0
  257. package/dist/recipe/compile/site.d.ts +44 -0
  258. package/dist/recipe/compile/site.d.ts.map +1 -0
  259. package/dist/recipe/compile/site.js +127 -0
  260. package/dist/recipe/compile.d.ts +93 -0
  261. package/dist/recipe/compile.d.ts.map +1 -0
  262. package/dist/recipe/compile.js +741 -0
  263. package/dist/recipe/execute.d.ts +119 -0
  264. package/dist/recipe/execute.d.ts.map +1 -0
  265. package/dist/recipe/execute.js +273 -0
  266. package/dist/recipe/guids.d.ts +400 -0
  267. package/dist/recipe/guids.d.ts.map +1 -0
  268. package/dist/recipe/guids.js +488 -0
  269. package/dist/recipe/index.d.ts +32 -0
  270. package/dist/recipe/index.d.ts.map +1 -0
  271. package/dist/recipe/index.js +156 -0
  272. package/dist/recipe/io.d.ts +21 -0
  273. package/dist/recipe/io.d.ts.map +1 -0
  274. package/dist/recipe/io.js +147 -0
  275. package/dist/recipe/ir/operations.d.ts +692 -0
  276. package/dist/recipe/ir/operations.d.ts.map +1 -0
  277. package/dist/recipe/ir/operations.js +347 -0
  278. package/dist/recipe/ir/sitecore-templates.d.ts +455 -0
  279. package/dist/recipe/ir/sitecore-templates.d.ts.map +1 -0
  280. package/dist/recipe/ir/sitecore-templates.js +465 -0
  281. package/dist/recipe/layout/emit.d.ts +101 -0
  282. package/dist/recipe/layout/emit.d.ts.map +1 -0
  283. package/dist/recipe/layout/emit.js +127 -0
  284. package/dist/recipe/layout/templates-mapping.d.ts +28 -0
  285. package/dist/recipe/layout/templates-mapping.d.ts.map +1 -0
  286. package/dist/recipe/layout/templates-mapping.js +29 -0
  287. package/dist/recipe/plan.d.ts +134 -0
  288. package/dist/recipe/plan.d.ts.map +1 -0
  289. package/dist/recipe/plan.js +565 -0
  290. package/dist/recipe/policy.d.ts +43 -0
  291. package/dist/recipe/policy.d.ts.map +1 -0
  292. package/dist/recipe/policy.js +75 -0
  293. package/dist/recipe/rollback.d.ts +72 -0
  294. package/dist/recipe/rollback.d.ts.map +1 -0
  295. package/dist/recipe/rollback.js +130 -0
  296. package/dist/recipe/schema/field-types.d.ts +72 -0
  297. package/dist/recipe/schema/field-types.d.ts.map +1 -0
  298. package/dist/recipe/schema/field-types.js +118 -0
  299. package/dist/recipe/schema/recipe.d.ts +1545 -0
  300. package/dist/recipe/schema/recipe.d.ts.map +1 -0
  301. package/dist/recipe/schema/recipe.js +1175 -0
  302. package/dist/recipe/schema/source-fields.d.ts +48 -0
  303. package/dist/recipe/schema/source-fields.d.ts.map +1 -0
  304. package/dist/recipe/schema/source-fields.js +79 -0
  305. package/dist/recipe/tasks/compile.d.ts +14 -0
  306. package/dist/recipe/tasks/compile.d.ts.map +1 -0
  307. package/dist/recipe/tasks/compile.js +89 -0
  308. package/dist/recipe/tasks/diff.d.ts +17 -0
  309. package/dist/recipe/tasks/diff.d.ts.map +1 -0
  310. package/dist/recipe/tasks/diff.js +6 -0
  311. package/dist/recipe/tasks/index.d.ts +9 -0
  312. package/dist/recipe/tasks/index.d.ts.map +1 -0
  313. package/dist/recipe/tasks/index.js +13 -0
  314. package/dist/recipe/tasks/placeholder-allow.d.ts +53 -0
  315. package/dist/recipe/tasks/placeholder-allow.d.ts.map +1 -0
  316. package/dist/recipe/tasks/placeholder-allow.js +218 -0
  317. package/dist/recipe/tasks/plan.d.ts +11 -0
  318. package/dist/recipe/tasks/plan.d.ts.map +1 -0
  319. package/dist/recipe/tasks/plan.js +72 -0
  320. package/dist/recipe/tasks/prune-defaults.d.ts +90 -0
  321. package/dist/recipe/tasks/prune-defaults.d.ts.map +1 -0
  322. package/dist/recipe/tasks/prune-defaults.js +184 -0
  323. package/dist/recipe/tasks/push.d.ts +18 -0
  324. package/dist/recipe/tasks/push.d.ts.map +1 -0
  325. package/dist/recipe/tasks/push.js +417 -0
  326. package/dist/recipe/tasks/shared.d.ts +152 -0
  327. package/dist/recipe/tasks/shared.d.ts.map +1 -0
  328. package/dist/recipe/tasks/shared.js +94 -0
  329. package/dist/recipe/validate.d.ts +103 -0
  330. package/dist/recipe/validate.d.ts.map +1 -0
  331. package/dist/recipe/validate.js +297 -0
  332. package/dist/serialization/commands.d.ts +48 -0
  333. package/dist/serialization/commands.d.ts.map +1 -0
  334. package/dist/serialization/commands.js +175 -0
  335. package/dist/serialization/compare.d.ts +29 -0
  336. package/dist/serialization/compare.d.ts.map +1 -0
  337. package/dist/serialization/compare.js +124 -0
  338. package/dist/serialization/field-filter.d.ts +7 -0
  339. package/dist/serialization/field-filter.d.ts.map +1 -0
  340. package/dist/serialization/field-filter.js +20 -0
  341. package/dist/serialization/filesystem-store/constants.d.ts +3 -0
  342. package/dist/serialization/filesystem-store/constants.d.ts.map +1 -0
  343. package/dist/serialization/filesystem-store/constants.js +5 -0
  344. package/dist/serialization/filesystem-store/index.d.ts +4 -0
  345. package/dist/serialization/filesystem-store/index.d.ts.map +1 -0
  346. package/dist/serialization/filesystem-store/index.js +15 -0
  347. package/dist/serialization/filesystem-store/items.d.ts +10 -0
  348. package/dist/serialization/filesystem-store/items.d.ts.map +1 -0
  349. package/dist/serialization/filesystem-store/items.js +64 -0
  350. package/dist/serialization/filesystem-store/roles.d.ts +6 -0
  351. package/dist/serialization/filesystem-store/roles.d.ts.map +1 -0
  352. package/dist/serialization/filesystem-store/roles.js +46 -0
  353. package/dist/serialization/filesystem-store/users.d.ts +6 -0
  354. package/dist/serialization/filesystem-store/users.d.ts.map +1 -0
  355. package/dist/serialization/filesystem-store/users.js +46 -0
  356. package/dist/serialization/filesystem-store/utils.d.ts +2 -0
  357. package/dist/serialization/filesystem-store/utils.d.ts.map +1 -0
  358. package/dist/serialization/filesystem-store/utils.js +17 -0
  359. package/dist/serialization/filesystem-store.d.ts +2 -0
  360. package/dist/serialization/filesystem-store.d.ts.map +1 -0
  361. package/dist/serialization/filesystem-store.js +17 -0
  362. package/dist/serialization/item-path.d.ts +32 -0
  363. package/dist/serialization/item-path.d.ts.map +1 -0
  364. package/dist/serialization/item-path.js +123 -0
  365. package/dist/serialization/path-provider.d.ts +12 -0
  366. package/dist/serialization/path-provider.d.ts.map +1 -0
  367. package/dist/serialization/path-provider.js +271 -0
  368. package/dist/serialization/signature.d.ts +4 -0
  369. package/dist/serialization/signature.d.ts.map +1 -0
  370. package/dist/serialization/signature.js +71 -0
  371. package/dist/serialization/sitecore-api/auth.d.ts +31 -0
  372. package/dist/serialization/sitecore-api/auth.d.ts.map +1 -0
  373. package/dist/serialization/sitecore-api/auth.js +319 -0
  374. package/dist/serialization/sitecore-api/graphql.d.ts +12 -0
  375. package/dist/serialization/sitecore-api/graphql.d.ts.map +1 -0
  376. package/dist/serialization/sitecore-api/graphql.js +20 -0
  377. package/dist/serialization/sitecore-api/history.d.ts +9 -0
  378. package/dist/serialization/sitecore-api/history.d.ts.map +1 -0
  379. package/dist/serialization/sitecore-api/history.js +36 -0
  380. package/dist/serialization/sitecore-api/index.d.ts +7 -0
  381. package/dist/serialization/sitecore-api/index.d.ts.map +1 -0
  382. package/dist/serialization/sitecore-api/index.js +22 -0
  383. package/dist/serialization/sitecore-api/items.d.ts +8 -0
  384. package/dist/serialization/sitecore-api/items.d.ts.map +1 -0
  385. package/dist/serialization/sitecore-api/items.js +132 -0
  386. package/dist/serialization/sitecore-api/publish.d.ts +14 -0
  387. package/dist/serialization/sitecore-api/publish.d.ts.map +1 -0
  388. package/dist/serialization/sitecore-api/publish.js +43 -0
  389. package/dist/serialization/sitecore-api/roles.d.ts +9 -0
  390. package/dist/serialization/sitecore-api/roles.d.ts.map +1 -0
  391. package/dist/serialization/sitecore-api/roles.js +42 -0
  392. package/dist/serialization/sitecore-api/users.d.ts +9 -0
  393. package/dist/serialization/sitecore-api/users.d.ts.map +1 -0
  394. package/dist/serialization/sitecore-api/users.js +62 -0
  395. package/dist/serialization/sitecore-api.d.ts +2 -0
  396. package/dist/serialization/sitecore-api.d.ts.map +1 -0
  397. package/dist/serialization/sitecore-api.js +17 -0
  398. package/dist/serialization/tasks/diff.d.ts +3 -0
  399. package/dist/serialization/tasks/diff.d.ts.map +1 -0
  400. package/dist/serialization/tasks/diff.js +109 -0
  401. package/dist/serialization/tasks/env/constants.d.ts +2 -0
  402. package/dist/serialization/tasks/env/constants.d.ts.map +1 -0
  403. package/dist/serialization/tasks/env/constants.js +4 -0
  404. package/dist/serialization/tasks/env/deploy-token.d.ts +3 -0
  405. package/dist/serialization/tasks/env/deploy-token.d.ts.map +1 -0
  406. package/dist/serialization/tasks/env/deploy-token.js +128 -0
  407. package/dist/serialization/tasks/env/index.d.ts +5 -0
  408. package/dist/serialization/tasks/env/index.d.ts.map +1 -0
  409. package/dist/serialization/tasks/env/index.js +11 -0
  410. package/dist/serialization/tasks/env/init/auth.d.ts +24 -0
  411. package/dist/serialization/tasks/env/init/auth.d.ts.map +1 -0
  412. package/dist/serialization/tasks/env/init/auth.js +122 -0
  413. package/dist/serialization/tasks/env/init/deploy-lookup.d.ts +22 -0
  414. package/dist/serialization/tasks/env/init/deploy-lookup.d.ts.map +1 -0
  415. package/dist/serialization/tasks/env/init/deploy-lookup.js +244 -0
  416. package/dist/serialization/tasks/env/init.d.ts +3 -0
  417. package/dist/serialization/tasks/env/init.d.ts.map +1 -0
  418. package/dist/serialization/tasks/env/init.js +253 -0
  419. package/dist/serialization/tasks/env/logout.d.ts +3 -0
  420. package/dist/serialization/tasks/env/logout.d.ts.map +1 -0
  421. package/dist/serialization/tasks/env/logout.js +61 -0
  422. package/dist/serialization/tasks/env/status.d.ts +3 -0
  423. package/dist/serialization/tasks/env/status.d.ts.map +1 -0
  424. package/dist/serialization/tasks/env/status.js +149 -0
  425. package/dist/serialization/tasks/env.d.ts +2 -0
  426. package/dist/serialization/tasks/env.d.ts.map +1 -0
  427. package/dist/serialization/tasks/env.js +17 -0
  428. package/dist/serialization/tasks/helpers/collect.d.ts +8 -0
  429. package/dist/serialization/tasks/helpers/collect.d.ts.map +1 -0
  430. package/dist/serialization/tasks/helpers/collect.js +29 -0
  431. package/dist/serialization/tasks/helpers/commands.d.ts +5 -0
  432. package/dist/serialization/tasks/helpers/commands.d.ts.map +1 -0
  433. package/dist/serialization/tasks/helpers/commands.js +14 -0
  434. package/dist/serialization/tasks/helpers/filesystem.d.ts +6 -0
  435. package/dist/serialization/tasks/helpers/filesystem.d.ts.map +1 -0
  436. package/dist/serialization/tasks/helpers/filesystem.js +27 -0
  437. package/dist/serialization/tasks/helpers/index.d.ts +6 -0
  438. package/dist/serialization/tasks/helpers/index.d.ts.map +1 -0
  439. package/dist/serialization/tasks/helpers/index.js +13 -0
  440. package/dist/serialization/tasks/helpers/items.d.ts +3 -0
  441. package/dist/serialization/tasks/helpers/items.d.ts.map +1 -0
  442. package/dist/serialization/tasks/helpers/items.js +5 -0
  443. package/dist/serialization/tasks/helpers/sitecore.d.ts +5 -0
  444. package/dist/serialization/tasks/helpers/sitecore.d.ts.map +1 -0
  445. package/dist/serialization/tasks/helpers/sitecore.js +109 -0
  446. package/dist/serialization/tasks/helpers.d.ts +2 -0
  447. package/dist/serialization/tasks/helpers.d.ts.map +1 -0
  448. package/dist/serialization/tasks/helpers.js +17 -0
  449. package/dist/serialization/tasks/index.d.ts +8 -0
  450. package/dist/serialization/tasks/index.d.ts.map +1 -0
  451. package/dist/serialization/tasks/index.js +19 -0
  452. package/dist/serialization/tasks/info.d.ts +4 -0
  453. package/dist/serialization/tasks/info.d.ts.map +1 -0
  454. package/dist/serialization/tasks/info.js +82 -0
  455. package/dist/serialization/tasks/package.d.ts +4 -0
  456. package/dist/serialization/tasks/package.d.ts.map +1 -0
  457. package/dist/serialization/tasks/package.js +171 -0
  458. package/dist/serialization/tasks/pull.d.ts +3 -0
  459. package/dist/serialization/tasks/pull.d.ts.map +1 -0
  460. package/dist/serialization/tasks/pull.js +82 -0
  461. package/dist/serialization/tasks/push.d.ts +3 -0
  462. package/dist/serialization/tasks/push.d.ts.map +1 -0
  463. package/dist/serialization/tasks/push.js +101 -0
  464. package/dist/serialization/tasks/roles.d.ts +6 -0
  465. package/dist/serialization/tasks/roles.d.ts.map +1 -0
  466. package/dist/serialization/tasks/roles.js +103 -0
  467. package/dist/serialization/tasks/shared.d.ts +19 -0
  468. package/dist/serialization/tasks/shared.d.ts.map +1 -0
  469. package/dist/serialization/tasks/shared.js +59 -0
  470. package/dist/serialization/tasks/types.d.ts +73 -0
  471. package/dist/serialization/tasks/types.d.ts.map +1 -0
  472. package/dist/serialization/tasks/types.js +8 -0
  473. package/dist/serialization/tasks/users.d.ts +5 -0
  474. package/dist/serialization/tasks/users.d.ts.map +1 -0
  475. package/dist/serialization/tasks/users.js +90 -0
  476. package/dist/serialization/tasks/validate.d.ts +5 -0
  477. package/dist/serialization/tasks/validate.d.ts.map +1 -0
  478. package/dist/serialization/tasks/validate.js +50 -0
  479. package/dist/serialization/tasks/watch.d.ts +3 -0
  480. package/dist/serialization/tasks/watch.d.ts.map +1 -0
  481. package/dist/serialization/tasks/watch.js +75 -0
  482. package/dist/serialization/tasks.d.ts +4 -0
  483. package/dist/serialization/tasks.d.ts.map +1 -0
  484. package/dist/serialization/tasks.js +19 -0
  485. package/dist/serialization/tree-spec.d.ts +51 -0
  486. package/dist/serialization/tree-spec.d.ts.map +1 -0
  487. package/dist/serialization/tree-spec.js +241 -0
  488. package/dist/serialization/types.d.ts +75 -0
  489. package/dist/serialization/types.d.ts.map +1 -0
  490. package/dist/serialization/types.js +2 -0
  491. package/dist/serialization/wildcard.d.ts +3 -0
  492. package/dist/serialization/wildcard.d.ts.map +1 -0
  493. package/dist/serialization/wildcard.js +24 -0
  494. package/dist/serialization/yaml.d.ts +9 -0
  495. package/dist/serialization/yaml.d.ts.map +1 -0
  496. package/dist/serialization/yaml.js +307 -0
  497. package/dist/shared/browser.d.ts +2 -0
  498. package/dist/shared/browser.d.ts.map +1 -0
  499. package/dist/shared/browser.js +36 -0
  500. package/dist/shared/cli-options.d.ts +17 -0
  501. package/dist/shared/cli-options.d.ts.map +1 -0
  502. package/dist/shared/cli-options.js +8 -0
  503. package/dist/shared/cli-tasks.d.ts +38 -0
  504. package/dist/shared/cli-tasks.d.ts.map +1 -0
  505. package/dist/shared/cli-tasks.js +108 -0
  506. package/dist/shared/config-template.d.ts +23 -0
  507. package/dist/shared/config-template.d.ts.map +1 -0
  508. package/dist/shared/config-template.js +38 -0
  509. package/dist/shared/env.d.ts +28 -0
  510. package/dist/shared/env.d.ts.map +1 -0
  511. package/dist/shared/env.js +38 -0
  512. package/dist/shared/errors.d.ts +21 -0
  513. package/dist/shared/errors.d.ts.map +1 -0
  514. package/dist/shared/errors.js +59 -0
  515. package/dist/shared/graphql.d.ts +76 -0
  516. package/dist/shared/graphql.d.ts.map +1 -0
  517. package/dist/shared/graphql.js +222 -0
  518. package/dist/shared/history.d.ts +12 -0
  519. package/dist/shared/history.d.ts.map +1 -0
  520. package/dist/shared/history.js +62 -0
  521. package/dist/shared/keychain.d.ts +15 -0
  522. package/dist/shared/keychain.d.ts.map +1 -0
  523. package/dist/shared/keychain.js +177 -0
  524. package/dist/shared/logger.d.ts +24 -0
  525. package/dist/shared/logger.d.ts.map +1 -0
  526. package/dist/shared/logger.js +157 -0
  527. package/dist/shared/output.d.ts +7 -0
  528. package/dist/shared/output.d.ts.map +1 -0
  529. package/dist/shared/output.js +21 -0
  530. package/dist/shared/prompt.d.ts +5 -0
  531. package/dist/shared/prompt.d.ts.map +1 -0
  532. package/dist/shared/prompt.js +87 -0
  533. package/dist/shared/redact.d.ts +3 -0
  534. package/dist/shared/redact.d.ts.map +1 -0
  535. package/dist/shared/redact.js +47 -0
  536. package/dist/shared/spinner.d.ts +5 -0
  537. package/dist/shared/spinner.d.ts.map +1 -0
  538. package/dist/shared/spinner.js +89 -0
  539. package/dist/shared/style.d.ts +2 -0
  540. package/dist/shared/style.d.ts.map +1 -0
  541. package/dist/shared/style.js +61 -0
  542. package/dist/shared/telemetry.d.ts +21 -0
  543. package/dist/shared/telemetry.d.ts.map +1 -0
  544. package/dist/shared/telemetry.js +226 -0
  545. package/dist/shared/validate.d.ts +3 -0
  546. package/dist/shared/validate.d.ts.map +1 -0
  547. package/dist/shared/validate.js +32 -0
  548. package/dist/sites/api/collections.d.ts +25 -0
  549. package/dist/sites/api/collections.d.ts.map +1 -0
  550. package/dist/sites/api/collections.js +21 -0
  551. package/dist/sites/api/index.d.ts +26 -0
  552. package/dist/sites/api/index.d.ts.map +1 -0
  553. package/dist/sites/api/index.js +55 -0
  554. package/dist/sites/api/jobs.d.ts +31 -0
  555. package/dist/sites/api/jobs.d.ts.map +1 -0
  556. package/dist/sites/api/jobs.js +10 -0
  557. package/dist/sites/api/languages.d.ts +22 -0
  558. package/dist/sites/api/languages.d.ts.map +1 -0
  559. package/dist/sites/api/languages.js +18 -0
  560. package/dist/sites/api/request.d.ts +24 -0
  561. package/dist/sites/api/request.d.ts.map +1 -0
  562. package/dist/sites/api/request.js +99 -0
  563. package/dist/sites/api/sites.d.ts +53 -0
  564. package/dist/sites/api/sites.d.ts.map +1 -0
  565. package/dist/sites/api/sites.js +41 -0
  566. package/dist/sites/api/types.d.ts +29 -0
  567. package/dist/sites/api/types.d.ts.map +1 -0
  568. package/dist/sites/api/types.js +4 -0
  569. package/package.json +109 -0
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runRecipePlan = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const errors_1 = require("../../shared/errors");
9
+ const io_1 = require("../io");
10
+ const plan_1 = require("../plan");
11
+ const shared_1 = require("./shared");
12
+ /**
13
+ * `scai recipe plan` — read-then-diff against a tenant, no mutations.
14
+ *
15
+ * Operates on a pre-compiled IR file (the artifact from `scai recipe
16
+ * compile`). For the recipe-source workflow, use `scai recipe push
17
+ * --what-if` instead — it compiles in-memory and runs the planner.
18
+ */
19
+ const runRecipePlan = async (options) => {
20
+ const logger = (0, shared_1.toLogger)(options);
21
+ const tenant = (0, shared_1.resolveTenant)(options);
22
+ if (!options.input) {
23
+ throw (0, errors_1.createCliError)("--input <ir.json> is required for `recipe plan`.", "INPUT_INVALID", {
24
+ hint: "Run `scai recipe compile` first, or use `scai recipe push --what-if` to plan from a recipe source.",
25
+ });
26
+ }
27
+ const ir = await (0, io_1.loadIr)(options.input);
28
+ const plan = await (0, plan_1.buildPlan)(ir, tenant.client);
29
+ const inputPath = options.input;
30
+ const outputPath = options.output ?? (0, io_1.defaultPlanPath)(ir.recipeHandle, node_path_1.default.dirname(node_path_1.default.resolve(inputPath)));
31
+ await (0, io_1.writePlan)(outputPath, plan);
32
+ if (logger.isJson()) {
33
+ logger.json({
34
+ command: "recipe.plan",
35
+ environment: tenant.envName,
36
+ recipeHandle: ir.recipeHandle,
37
+ input: inputPath,
38
+ output: outputPath,
39
+ summary: plan.summary,
40
+ actions: plan.actions.map((action) => ({
41
+ index: action.index,
42
+ op: action.operation.op,
43
+ label: action.operation.label,
44
+ status: action.status,
45
+ reason: action.reason,
46
+ diff: action.diff,
47
+ })),
48
+ });
49
+ return plan;
50
+ }
51
+ logger.info(`Plan for ${ir.recipeHandle} on ${tenant.envName}`, "cyan");
52
+ for (const action of plan.actions) {
53
+ const tag = formatActionTag(action.status);
54
+ logger.info(` ${tag} ${action.operation.label}${action.reason ? ` — ${action.reason}` : ""}`);
55
+ }
56
+ logger.info(` Summary: ${plan.summary.create} create / ${plan.summary.update} update / ${plan.summary.skip} skip${plan.summary.error ? ` / ${plan.summary.error} error` : ""}`, plan.summary.error ? "yellow" : "green");
57
+ logger.info(` Plan written to ${outputPath}`);
58
+ return plan;
59
+ };
60
+ exports.runRecipePlan = runRecipePlan;
61
+ const formatActionTag = (status) => {
62
+ switch (status) {
63
+ case "create":
64
+ return "[+]";
65
+ case "update":
66
+ return "[~]";
67
+ case "skip":
68
+ return "[ ]";
69
+ case "error":
70
+ return "[!]";
71
+ }
72
+ };
@@ -0,0 +1,90 @@
1
+ import { Logger } from "../../shared/logger";
2
+ import type { AuthoringApiClient } from "../api/client";
3
+ import { type RecipeTenantOptions } from "./shared";
4
+ /**
5
+ * `scai recipe prune-defaults` — remove the SXA Headless OOTB content
6
+ * that ships with every fresh site under `Available Renderings`,
7
+ * `Headless Variants`, and the per-site `Data` bucket. Registry installs
8
+ * ship their own renderings, variants, and datasources; the OOTB folders
9
+ * just noise up the authoring tree. Folder parents are preserved (we
10
+ * keep using `Available Renderings`, `Headless Variants`, and `Data`
11
+ * ourselves) — only the named child folders are removed. `Tags` under
12
+ * `Data` is left alone because authors typically populate it.
13
+ *
14
+ * Idempotent by design: each target is `getItem`-ed first, so a missing
15
+ * path is a clean skip rather than an error. Re-runs after a successful
16
+ * prune produce zero deletions. The deletion call itself also tolerates
17
+ * a "not found" / "may have been deleted by another user" response from
18
+ * the Authoring API — that race shows up when a parallel prune (or an
19
+ * author) removed the item between getItem and deleteItem.
20
+ */
21
+ declare const DEFAULT_PRUNE_TARGETS: {
22
+ /**
23
+ * `Available Renderings` children to remove. SXA ships six default
24
+ * sections; we keep `FEaaS` (the Forms-as-a-Service rendering bucket)
25
+ * and `Forms` (the Sitecore Forms bucket) because they're not yet
26
+ * superseded by registry-side recipes.
27
+ */
28
+ readonly availableRenderings: readonly ["Media", "Navigation", "Page Content", "Page Structure"];
29
+ /**
30
+ * `Headless Variants` children to remove. SXA ships variants for each
31
+ * default rendering; registry-side recipes emit their own variants
32
+ * under `<headlessVariantsRoot>/<section>/<rendering>/<variant>` so
33
+ * the OOTB siblings just clutter the tree.
34
+ */
35
+ readonly headlessVariants: readonly ["Image", "LinkList", "Navigation", "PageContent", "Promo", "RichText", "Title"];
36
+ /**
37
+ * `Data` children to remove. SXA seeds these datasource buckets per
38
+ * site; registry recipes carry their own datasources, so the OOTB
39
+ * folders are pure clutter. `Tags` is intentionally omitted —
40
+ * authors populate it during normal content work.
41
+ */
42
+ readonly contentItems: readonly ["Images", "Link Lists", "Navigation Filters", "Promos", "Texts"];
43
+ };
44
+ export type PruneGroup = keyof typeof DEFAULT_PRUNE_TARGETS;
45
+ export type PruneActionStatus = "deleted" | "missing" | "would-delete";
46
+ export interface PruneAction {
47
+ group: PruneGroup;
48
+ path: string;
49
+ status: PruneActionStatus;
50
+ itemId?: string;
51
+ }
52
+ export interface RecipePruneDefaultsOptions extends RecipeTenantOptions {
53
+ /** Override `headlessVariantsRoot` from the env profile. */
54
+ headlessVariantsRoot?: string;
55
+ /** Override `availableRenderingsRoot` from the env profile. */
56
+ availableRenderingsRoot?: string;
57
+ /** Override `contentItemsRoot` from the env profile. */
58
+ contentItemsRoot?: string;
59
+ /** Print the deletions without applying them. */
60
+ whatIf?: boolean;
61
+ /** Bypass the env profile's `allowWrite` gate. */
62
+ allowWrite?: boolean;
63
+ }
64
+ export interface RecipePruneDefaultsResult {
65
+ environment: string;
66
+ whatIf: boolean;
67
+ actions: PruneAction[];
68
+ summary: {
69
+ deleted: number;
70
+ missing: number;
71
+ wouldDelete: number;
72
+ };
73
+ }
74
+ interface PruneCoreOptions {
75
+ client: AuthoringApiClient;
76
+ availableRenderingsRoot: string;
77
+ headlessVariantsRoot: string;
78
+ contentItemsRoot: string;
79
+ whatIf: boolean;
80
+ logger?: Logger;
81
+ }
82
+ /**
83
+ * Pure(ish) deletion loop — exposed for unit tests so they can drive
84
+ * the deletion contract against a fake `AuthoringApiClient` without
85
+ * threading a full sitecoreai.cli.json through `resolveTenant`.
86
+ */
87
+ export declare const pruneDefaultsAgainstClient: (options: PruneCoreOptions) => Promise<PruneAction[]>;
88
+ export declare const runRecipePruneDefaults: (options: RecipePruneDefaultsOptions) => Promise<RecipePruneDefaultsResult>;
89
+ export {};
90
+ //# sourceMappingURL=prune-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prune-defaults.d.ts","sourceRoot":"","sources":["../../../src/recipe/tasks/prune-defaults.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;GAgBG;AAEH,QAAA,MAAM,qBAAqB;IACzB;;;;;OAKG;;IAEH;;;;;OAKG;;IAUH;;;;;OAKG;;CAEK,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,qBAAqB,CAAC;AAE5D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC;AAEvE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB;IACrE,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE;AA0CD,UAAU,gBAAgB;IACxB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,SAAS,gBAAgB,KACxB,OAAO,CAAC,WAAW,EAAE,CAuCvB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,SAAS,0BAA0B,KAClC,OAAO,CAAC,yBAAyB,CAwEnC,CAAC"}
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runRecipePruneDefaults = exports.pruneDefaultsAgainstClient = void 0;
4
+ const errors_1 = require("../../shared/errors");
5
+ const shared_1 = require("./shared");
6
+ /**
7
+ * `scai recipe prune-defaults` — remove the SXA Headless OOTB content
8
+ * that ships with every fresh site under `Available Renderings`,
9
+ * `Headless Variants`, and the per-site `Data` bucket. Registry installs
10
+ * ship their own renderings, variants, and datasources; the OOTB folders
11
+ * just noise up the authoring tree. Folder parents are preserved (we
12
+ * keep using `Available Renderings`, `Headless Variants`, and `Data`
13
+ * ourselves) — only the named child folders are removed. `Tags` under
14
+ * `Data` is left alone because authors typically populate it.
15
+ *
16
+ * Idempotent by design: each target is `getItem`-ed first, so a missing
17
+ * path is a clean skip rather than an error. Re-runs after a successful
18
+ * prune produce zero deletions. The deletion call itself also tolerates
19
+ * a "not found" / "may have been deleted by another user" response from
20
+ * the Authoring API — that race shows up when a parallel prune (or an
21
+ * author) removed the item between getItem and deleteItem.
22
+ */
23
+ const DEFAULT_PRUNE_TARGETS = {
24
+ /**
25
+ * `Available Renderings` children to remove. SXA ships six default
26
+ * sections; we keep `FEaaS` (the Forms-as-a-Service rendering bucket)
27
+ * and `Forms` (the Sitecore Forms bucket) because they're not yet
28
+ * superseded by registry-side recipes.
29
+ */
30
+ availableRenderings: ["Media", "Navigation", "Page Content", "Page Structure"],
31
+ /**
32
+ * `Headless Variants` children to remove. SXA ships variants for each
33
+ * default rendering; registry-side recipes emit their own variants
34
+ * under `<headlessVariantsRoot>/<section>/<rendering>/<variant>` so
35
+ * the OOTB siblings just clutter the tree.
36
+ */
37
+ headlessVariants: [
38
+ "Image",
39
+ "LinkList",
40
+ "Navigation",
41
+ "PageContent",
42
+ "Promo",
43
+ "RichText",
44
+ "Title",
45
+ ],
46
+ /**
47
+ * `Data` children to remove. SXA seeds these datasource buckets per
48
+ * site; registry recipes carry their own datasources, so the OOTB
49
+ * folders are pure clutter. `Tags` is intentionally omitted —
50
+ * authors populate it during normal content work.
51
+ */
52
+ contentItems: ["Images", "Link Lists", "Navigation Filters", "Promos", "Texts"],
53
+ };
54
+ const buildTargets = (availableRenderingsRoot, headlessVariantsRoot, contentItemsRoot) => {
55
+ const ar = availableRenderingsRoot.replace(/\/+$/, "");
56
+ const hv = headlessVariantsRoot.replace(/\/+$/, "");
57
+ const ci = contentItemsRoot.replace(/\/+$/, "");
58
+ return [
59
+ ...DEFAULT_PRUNE_TARGETS.availableRenderings.map((name) => ({
60
+ group: "availableRenderings",
61
+ path: `${ar}/${name}`,
62
+ })),
63
+ ...DEFAULT_PRUNE_TARGETS.headlessVariants.map((name) => ({
64
+ group: "headlessVariants",
65
+ path: `${hv}/${name}`,
66
+ })),
67
+ ...DEFAULT_PRUNE_TARGETS.contentItems.map((name) => ({
68
+ group: "contentItems",
69
+ path: `${ci}/${name}`,
70
+ })),
71
+ ];
72
+ };
73
+ /**
74
+ * Detect the Authoring GraphQL "item is gone" response. The shared
75
+ * graphql.ts wrapper joins all error.message strings into a single
76
+ * `Authoring GraphQL errors: <messages>` payload on a NETWORK CliError;
77
+ * we match the canonical Sitecore phrasing that fires when an itemId
78
+ * doesn't resolve at delete time.
79
+ */
80
+ const isItemNotFoundError = (error) => {
81
+ if (!(error instanceof Error))
82
+ return false;
83
+ const message = error.message;
84
+ return (message.includes("was not found") ||
85
+ message.includes("may have been deleted by another user"));
86
+ };
87
+ /**
88
+ * Pure(ish) deletion loop — exposed for unit tests so they can drive
89
+ * the deletion contract against a fake `AuthoringApiClient` without
90
+ * threading a full sitecoreai.cli.json through `resolveTenant`.
91
+ */
92
+ const pruneDefaultsAgainstClient = async (options) => {
93
+ const { client, availableRenderingsRoot, headlessVariantsRoot, contentItemsRoot, whatIf, logger } = options;
94
+ const targets = buildTargets(availableRenderingsRoot, headlessVariantsRoot, contentItemsRoot);
95
+ const actions = [];
96
+ for (const target of targets) {
97
+ const existing = await client.getItem({ path: target.path });
98
+ if (!existing) {
99
+ actions.push({ ...target, status: "missing" });
100
+ logger?.info(` [skip] ${target.path} — not present`, "gray");
101
+ continue;
102
+ }
103
+ if (whatIf) {
104
+ actions.push({ ...target, status: "would-delete", itemId: existing.itemId });
105
+ logger?.info(` [dry-run] would delete ${target.path}`, "yellow");
106
+ continue;
107
+ }
108
+ // Delete by itemId — `deleteItem({ path })` works too, but we
109
+ // already have the itemId from the existence check, and itemId
110
+ // selectors avoid Sitecore's leaf-path resolution edge cases.
111
+ try {
112
+ await client.deleteItem({ itemId: existing.itemId });
113
+ actions.push({ ...target, status: "deleted", itemId: existing.itemId });
114
+ logger?.info(` [deleted] ${target.path}`, "green");
115
+ }
116
+ catch (error) {
117
+ // Authoring GraphQL surfaces concurrent-delete as a "was not found"
118
+ // / "may have been deleted by another user" message wrapped in a
119
+ // NETWORK CliError. Treat as a clean skip — the post-condition
120
+ // (item gone) is satisfied either way.
121
+ if (isItemNotFoundError(error)) {
122
+ actions.push({ ...target, status: "missing", itemId: existing.itemId });
123
+ logger?.info(` [skip] ${target.path} — already deleted`, "gray");
124
+ continue;
125
+ }
126
+ throw error;
127
+ }
128
+ }
129
+ return actions;
130
+ };
131
+ exports.pruneDefaultsAgainstClient = pruneDefaultsAgainstClient;
132
+ const runRecipePruneDefaults = async (options) => {
133
+ const logger = (0, shared_1.toLogger)(options);
134
+ const tenant = (0, shared_1.resolveTenant)(options);
135
+ const isDryRun = Boolean(options.whatIf);
136
+ if (!isDryRun) {
137
+ (0, shared_1.ensureAllowWrite)(tenant.root, tenant.envName, options.allowWrite);
138
+ }
139
+ const headlessVariantsRoot = options.headlessVariantsRoot ?? tenant.environment.headlessVariantsRoot;
140
+ const availableRenderingsRoot = options.availableRenderingsRoot ?? tenant.environment.availableRenderingsRoot;
141
+ const contentItemsRoot = options.contentItemsRoot ?? tenant.environment.contentItemsRoot;
142
+ if (!headlessVariantsRoot || !availableRenderingsRoot || !contentItemsRoot) {
143
+ const missing = [
144
+ !headlessVariantsRoot && "headlessVariantsRoot",
145
+ !availableRenderingsRoot && "availableRenderingsRoot",
146
+ !contentItemsRoot && "contentItemsRoot",
147
+ ]
148
+ .filter(Boolean)
149
+ .join(", ");
150
+ throw (0, errors_1.createCliError)(`Recipe prune-defaults missing root path(s): ${missing} not configured for environment '${tenant.envName}'.`, "INPUT_INVALID", {
151
+ hint: `Add 'headlessVariantsRoot', 'availableRenderingsRoot', and 'contentItemsRoot' to envProfiles.${tenant.envName} in sitecoreai.cli.json (or pass --headless-variants-root / --available-renderings-root / --content-items-root).`,
152
+ });
153
+ }
154
+ if (!logger.isJson()) {
155
+ logger.info(`${isDryRun ? "Dry-run prune-defaults" : "Pruning SXA defaults"} on ${tenant.envName}`, "cyan");
156
+ }
157
+ const actions = await (0, exports.pruneDefaultsAgainstClient)({
158
+ client: tenant.client,
159
+ availableRenderingsRoot,
160
+ headlessVariantsRoot,
161
+ contentItemsRoot,
162
+ whatIf: isDryRun,
163
+ logger: logger.isJson() ? undefined : logger,
164
+ });
165
+ const summary = {
166
+ deleted: actions.filter((a) => a.status === "deleted").length,
167
+ missing: actions.filter((a) => a.status === "missing").length,
168
+ wouldDelete: actions.filter((a) => a.status === "would-delete").length,
169
+ };
170
+ if (logger.isJson()) {
171
+ logger.json({
172
+ command: "recipe.prune-defaults",
173
+ environment: tenant.envName,
174
+ whatIf: isDryRun,
175
+ summary,
176
+ actions,
177
+ });
178
+ }
179
+ else {
180
+ logger.info(`Summary: ${summary.deleted} deleted / ${summary.missing} not present${summary.wouldDelete ? ` / ${summary.wouldDelete} would-delete` : ""}`, summary.deleted > 0 || summary.wouldDelete > 0 ? "green" : "gray");
181
+ }
182
+ return { environment: tenant.envName, whatIf: isDryRun, actions, summary };
183
+ };
184
+ exports.runRecipePruneDefaults = runRecipePruneDefaults;
@@ -0,0 +1,18 @@
1
+ import { type ExecutionResult } from "../execute";
2
+ import { type RecipePushOptions } from "./shared";
3
+ /**
4
+ * `scai recipe push` — apply recipes to a tenant.
5
+ *
6
+ * Input resolution:
7
+ * - `--input <file>` — single recipe (`.recipe.ts/.recipe.json`) or IR
8
+ * (`.ir.json`). The file extension picks the path: recipes are
9
+ * compiled in-memory, IRs are loaded directly.
10
+ * - default: expand the config `recipes` glob and push each match in
11
+ * turn (one IR per recipe; per-recipe events).
12
+ *
13
+ * Honors `--what-if` (becomes plan-only) and `--allow-write` (the
14
+ * scai-wide safety gate). Streams progress as `task-progress`-style
15
+ * events in JSON mode; renders a per-op summary in human mode.
16
+ */
17
+ export declare const runRecipePush: (options: RecipePushOptions) => Promise<ExecutionResult[]>;
18
+ //# sourceMappingURL=push.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/recipe/tasks/push.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAkC,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlF,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,UAAU,CAAC;AAiDlB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,GAAU,SAAS,iBAAiB,KAAG,OAAO,CAAC,eAAe,EAAE,CA0YzF,CAAC"}