@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,152 @@
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.readSerializationModules = exports.normalizeModuleConfiguration = void 0;
7
+ const fast_glob_1 = __importDefault(require("fast-glob"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const errors_1 = require("../shared/errors");
10
+ const item_path_1 = require("../serialization/item-path");
11
+ const tree_spec_1 = require("../serialization/tree-spec");
12
+ const validation_1 = require("./validation");
13
+ const resolveScope = (scope) => {
14
+ switch ((scope ?? "").toLowerCase()) {
15
+ case "singleitem":
16
+ return tree_spec_1.TreeScope.SingleItem;
17
+ case "itemandchildren":
18
+ return tree_spec_1.TreeScope.ItemAndChildren;
19
+ case "descendantsonly":
20
+ return tree_spec_1.TreeScope.DescendantsOnly;
21
+ case "itemanddescendants":
22
+ default:
23
+ return tree_spec_1.TreeScope.ItemAndDescendants;
24
+ }
25
+ };
26
+ const resolveRuleScope = (scope) => {
27
+ if (!scope) {
28
+ return undefined;
29
+ }
30
+ switch (scope.toLowerCase()) {
31
+ case "ignored":
32
+ return tree_spec_1.TreeRuleScope.Ignored;
33
+ case "singleitem":
34
+ return tree_spec_1.TreeRuleScope.SingleItem;
35
+ case "itemandchildren":
36
+ return tree_spec_1.TreeRuleScope.ItemAndChildren;
37
+ case "itemanddescendants":
38
+ return tree_spec_1.TreeRuleScope.ItemAndDescendants;
39
+ default:
40
+ return undefined;
41
+ }
42
+ };
43
+ const resolveAllowedPushOperations = (value) => {
44
+ switch ((value ?? "").toLowerCase()) {
45
+ case "createonly":
46
+ return tree_spec_1.AllowedPushOperations.CreateOnly;
47
+ case "createandupdate":
48
+ return tree_spec_1.AllowedPushOperations.CreateAndUpdate;
49
+ case "createupdateanddelete":
50
+ default:
51
+ return tree_spec_1.AllowedPushOperations.CreateUpdateAndDelete;
52
+ }
53
+ };
54
+ const resolveModuleItemsPath = (moduleConfig, modulePath, rootConfig) => {
55
+ const raw = moduleConfig.items.path ?? rootConfig.serialization.defaultModuleRelativeSerializationPath;
56
+ if (raw.startsWith("~/")) {
57
+ const rooted = raw.slice(2).replace("$(module)", moduleConfig.namespace ?? "module");
58
+ return node_path_1.default.join(node_path_1.default.dirname(rootConfig.physicalPath), rooted);
59
+ }
60
+ return node_path_1.default.join(node_path_1.default.dirname(modulePath), raw);
61
+ };
62
+ const normalizeFieldFilters = (filters) => (filters ?? []).map((filter) => ({
63
+ fieldId: filter.fieldId ?? filter.FieldId ?? "",
64
+ description: filter.description,
65
+ }));
66
+ const normalizeModuleConfiguration = (raw, moduleFile, rootConfig) => {
67
+ const moduleConfig = {
68
+ namespace: raw.namespace ?? "",
69
+ description: raw.description,
70
+ references: raw.references ?? [],
71
+ items: {
72
+ path: raw.items?.path,
73
+ includes: [],
74
+ excludedFields: normalizeFieldFilters(raw.items?.excludedFields),
75
+ },
76
+ roles: (raw.roles ?? []),
77
+ users: (raw.users ?? []),
78
+ tags: raw.tags ?? [],
79
+ sourceIdentifier: moduleFile,
80
+ };
81
+ const basePath = resolveModuleItemsPath(moduleConfig, moduleFile, rootConfig);
82
+ for (const includeSpec of raw.items?.includes ?? []) {
83
+ const include = includeSpec;
84
+ if (!include.path || !include.name) {
85
+ continue;
86
+ }
87
+ const subtree = new tree_spec_1.FilesystemTreeSpec();
88
+ subtree.name = include.name;
89
+ subtree.database = include.database ?? "master";
90
+ subtree.path = item_path_1.ItemPath.fromPathString(include.path);
91
+ subtree.scope = resolveScope(include.scope);
92
+ subtree.allowedPushOperations = resolveAllowedPushOperations(include.allowedPushOperations);
93
+ subtree.maxRelativePathLength = include.maxRelativePathLength;
94
+ subtree.physicalPath = node_path_1.default.join(basePath, include.name);
95
+ subtree.rules = (include.rules ?? []).map((rule) => {
96
+ const treeRule = new tree_spec_1.FilesystemTreeSpecRule();
97
+ treeRule.path = (0, tree_spec_1.parseItemPathMatch)(rule.path);
98
+ treeRule.scope = resolveRuleScope(rule.scope);
99
+ treeRule.allowedPushOperations = rule.allowedPushOperations
100
+ ? resolveAllowedPushOperations(rule.allowedPushOperations)
101
+ : undefined;
102
+ treeRule.alias = rule.alias;
103
+ return treeRule;
104
+ });
105
+ moduleConfig.items.includes.push(subtree);
106
+ }
107
+ return moduleConfig;
108
+ };
109
+ exports.normalizeModuleConfiguration = normalizeModuleConfiguration;
110
+ const readSerializationModules = async (rootConfig, include, exclude) => {
111
+ if (!rootConfig.modules.length) {
112
+ throw (0, errors_1.createCliError)("Root configuration does not contain any module path definitions.", "CONFIG_INVALID");
113
+ }
114
+ const rootDir = node_path_1.default.dirname(rootConfig.physicalPath);
115
+ const moduleFiles = await (0, fast_glob_1.default)(rootConfig.modules, {
116
+ cwd: rootDir,
117
+ absolute: true,
118
+ onlyFiles: true,
119
+ });
120
+ const modules = [];
121
+ for (const moduleFile of moduleFiles) {
122
+ const raw = (0, validation_1.readJsonFile)(moduleFile);
123
+ const valid = (0, validation_1.validateModuleConfig)(raw);
124
+ if (!valid) {
125
+ const details = validation_1.validateModuleConfig.errors
126
+ ? (0, validation_1.formatValidationErrors)(validation_1.validateModuleConfig.errors)
127
+ : undefined;
128
+ throw (0, errors_1.createCliError)(`Invalid module configuration at ${moduleFile}.`, "CONFIG_INVALID", {
129
+ hint: "Fix the module JSON to match the serialization module schema.",
130
+ details,
131
+ });
132
+ }
133
+ modules.push((0, exports.normalizeModuleConfiguration)(raw, moduleFile, rootConfig));
134
+ }
135
+ const filtered = modules.filter((module) => {
136
+ if (include && include.length > 0) {
137
+ const matches = include.some((pattern) => module.namespace.toLowerCase().includes(pattern.toLowerCase()));
138
+ if (!matches) {
139
+ return false;
140
+ }
141
+ }
142
+ if (exclude && exclude.length > 0) {
143
+ const excluded = exclude.some((pattern) => module.namespace.toLowerCase().includes(pattern.toLowerCase()));
144
+ if (excluded) {
145
+ return false;
146
+ }
147
+ }
148
+ return true;
149
+ });
150
+ return filtered;
151
+ };
152
+ exports.readSerializationModules = readSerializationModules;
@@ -0,0 +1,2 @@
1
+ export declare const resolveRootConfigurationPath: (currentPath: string) => string;
2
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,4BAA4B,GAAI,aAAa,MAAM,KAAG,MAqClE,CAAC"}
@@ -0,0 +1,39 @@
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.resolveRootConfigurationPath = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const node_fs_1 = __importDefault(require("node:fs"));
9
+ const errors_1 = require("../shared/errors");
10
+ const resolveRootConfigurationPath = (currentPath) => {
11
+ const stat = node_fs_1.default.existsSync(currentPath) ? node_fs_1.default.statSync(currentPath) : null;
12
+ // `--config <file>`: use the file directly. Lets users keep multiple
13
+ // configs side-by-side (sitecoreai.dev.json, sitecoreai.staging.json)
14
+ // and pick one per invocation. The file doesn't need to be named
15
+ // `sitecoreai.cli.json` — the schema is what matters, not the name.
16
+ if (stat?.isFile()) {
17
+ return node_path_1.default.resolve(currentPath);
18
+ }
19
+ // `--config <dir>` (or no flag): walk upward looking for the
20
+ // standard `sitecoreai.cli.json` filename.
21
+ const startDir = currentPath;
22
+ let dir = node_path_1.default.resolve(startDir);
23
+ while (true) {
24
+ const candidate = node_path_1.default.join(dir, "sitecoreai.cli.json");
25
+ if (node_fs_1.default.existsSync(candidate)) {
26
+ return candidate;
27
+ }
28
+ const parent = node_path_1.default.dirname(dir);
29
+ if (parent === dir) {
30
+ break;
31
+ }
32
+ dir = parent;
33
+ }
34
+ const cwd = process.cwd();
35
+ throw (0, errors_1.createCliError)(`Couldn't resolve a root configuration file (sitecoreai.cli.json) from ${cwd} or any parent directory.`, "CONFIG_NOT_FOUND", {
36
+ hint: "Run 'scai init' to create a configuration file, or pass --config <path> to a directory or a config file.",
37
+ });
38
+ };
39
+ exports.resolveRootConfigurationPath = resolveRootConfigurationPath;
@@ -0,0 +1,10 @@
1
+ import { EnvironmentConfiguration, RootConfiguration, RootConfigurationFile } from "./types";
2
+ export declare const readRootConfigurationFile: (configPath: string) => {
3
+ rootPath: string;
4
+ rootDir: string;
5
+ config: RootConfigurationFile;
6
+ };
7
+ export declare const writeRootConfigurationFile: (configPath: string, config: RootConfigurationFile) => void;
8
+ export declare const mergeEnvironmentConfigurations: (primary?: Record<string, EnvironmentConfiguration>, fallback?: Record<string, EnvironmentConfiguration>) => Record<string, EnvironmentConfiguration>;
9
+ export declare const readRootConfiguration: (configPath: string, activeEnvironmentName?: string) => RootConfiguration;
10
+ //# sourceMappingURL=root-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-config.d.ts","sourceRoot":"","sources":["../../src/config/root-config.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAKjB,eAAO,MAAM,yBAAyB,GACpC,YAAY,MAAM,KACjB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAwBpE,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,YAAY,MAAM,EAClB,QAAQ,qBAAqB,KAC5B,IAIF,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,UAAU,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAClD,WAAW,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,KAClD,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAGxC,CAAC;AAEH,eAAO,MAAM,qBAAqB,GAChC,YAAY,MAAM,EAClB,wBAAwB,MAAM,KAC7B,iBAiCF,CAAC"}
@@ -0,0 +1,159 @@
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.readRootConfiguration = exports.mergeEnvironmentConfigurations = exports.writeRootConfigurationFile = exports.readRootConfigurationFile = void 0;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const errors_1 = require("../shared/errors");
10
+ const types_1 = require("./types");
11
+ const env_overrides_1 = require("./env-overrides");
12
+ const validation_1 = require("./validation");
13
+ const paths_1 = require("./paths");
14
+ const readRootConfigurationFile = (configPath) => {
15
+ const rootPath = (0, paths_1.resolveRootConfigurationPath)(configPath);
16
+ const rootDir = node_path_1.default.dirname(rootPath);
17
+ let rootJson;
18
+ try {
19
+ rootJson = (0, validation_1.readJsonFile)(rootPath);
20
+ }
21
+ catch (error) {
22
+ const details = error instanceof Error && error.message ? [error.message] : undefined;
23
+ throw (0, errors_1.createCliError)(`Invalid configuration file at ${rootPath}.`, "CONFIG_INVALID", {
24
+ hint: "Fix the configuration or re-run 'scai init' to regenerate it.",
25
+ details,
26
+ });
27
+ }
28
+ const valid = (0, validation_1.validateRootConfig)(rootJson);
29
+ if (!valid) {
30
+ const details = validation_1.validateRootConfig.errors
31
+ ? (0, validation_1.formatValidationErrors)(validation_1.validateRootConfig.errors)
32
+ : undefined;
33
+ throw (0, errors_1.createCliError)(`Invalid configuration file at ${rootPath}.`, "CONFIG_INVALID", {
34
+ hint: "Fix the configuration or re-run 'scai init' to regenerate it.",
35
+ details,
36
+ });
37
+ }
38
+ return { rootPath, rootDir, config: rootJson ?? {} };
39
+ };
40
+ exports.readRootConfigurationFile = readRootConfigurationFile;
41
+ const writeRootConfigurationFile = (configPath, config) => {
42
+ const rootPath = (0, paths_1.resolveRootConfigurationPath)(configPath);
43
+ const sanitized = (0, env_overrides_1.stripAuthenticationTokensFromConfig)(config);
44
+ node_fs_1.default.writeFileSync(rootPath, JSON.stringify(sanitized, null, 2), "utf8");
45
+ };
46
+ exports.writeRootConfigurationFile = writeRootConfigurationFile;
47
+ const mergeEnvironmentConfigurations = (primary, fallback) => ({
48
+ ...(fallback ?? {}),
49
+ ...(primary ?? {}),
50
+ });
51
+ exports.mergeEnvironmentConfigurations = mergeEnvironmentConfigurations;
52
+ const readRootConfiguration = (configPath, activeEnvironmentName) => {
53
+ const { rootPath, config: rootJson } = (0, exports.readRootConfigurationFile)(configPath);
54
+ const settings = {
55
+ ...types_1.DEFAULT_SETTINGS,
56
+ ...(rootJson.settings ?? {}),
57
+ };
58
+ const environments = resolveEnvironmentReferences(rootJson.envProfiles ?? {});
59
+ const envWithOverrides = {};
60
+ for (const [name, env] of Object.entries(environments)) {
61
+ const includeGlobal = activeEnvironmentName
62
+ ? name.toLowerCase() === activeEnvironmentName.toLowerCase()
63
+ : false;
64
+ envWithOverrides[name] = {
65
+ ...(0, env_overrides_1.applyEnvOverrides)(name, flattenRecipeRoots(name, env), includeGlobal),
66
+ name,
67
+ cacheAuthenticationToken: settings.cacheAuthenticationToken,
68
+ };
69
+ }
70
+ return {
71
+ modules: rootJson.modules ?? [],
72
+ serialization: {
73
+ ...types_1.DEFAULT_SERIALIZATION,
74
+ ...(rootJson.serialization ?? {}),
75
+ excludedFields: rootJson.serialization?.excludedFields ?? types_1.DEFAULT_SERIALIZATION.excludedFields,
76
+ },
77
+ settings,
78
+ environments: envWithOverrides,
79
+ physicalPath: rootPath,
80
+ defaultEnvironment: rootJson.defaultEnvProfile ?? types_1.DEFAULT_ENVIRONMENT,
81
+ recipes: rootJson.recipes ?? types_1.DEFAULT_RECIPES_GLOBS,
82
+ };
83
+ };
84
+ exports.readRootConfiguration = readRootConfiguration;
85
+ /**
86
+ * Pairing of nested-form key (under `recipeRoots`) and its flat-form
87
+ * counterpart on `EnvironmentConfiguration`. The flatten step copies
88
+ * each nested entry into the matching flat field.
89
+ */
90
+ const RECIPE_ROOT_PAIRS = [
91
+ ["templates", "templatesRoot"],
92
+ ["renderings", "renderingsRoot"],
93
+ ["components", "componentsRoot"],
94
+ ["contentModels", "contentModelsRoot"],
95
+ ["partialDesigns", "partialDesignsRoot"],
96
+ ["pageDesigns", "pageDesignsRoot"],
97
+ ["contentItems", "contentItemsRoot"],
98
+ ["headlessVariants", "headlessVariantsRoot"],
99
+ ["availableRenderings", "availableRenderingsRoot"],
100
+ ["enumerations", "enumerationsRoot"],
101
+ ["placeholderSettings", "placeholderSettingsRoots"],
102
+ ];
103
+ /**
104
+ * Flatten `env.recipeRoots.<x>` entries into the matching flat
105
+ * `env.<x>Root` fields so internal consumers see one shape. When the
106
+ * same field is set both nested and flat, **nested wins** (preferred
107
+ * form takes precedence for migrating configs) and a one-line warning
108
+ * fires so the operator can pick a side.
109
+ */
110
+ const flattenRecipeRoots = (envName, env) => {
111
+ if (!env.recipeRoots) {
112
+ return env;
113
+ }
114
+ const flattened = { ...env };
115
+ const collisions = [];
116
+ for (const [nestedKey, flatKey] of RECIPE_ROOT_PAIRS) {
117
+ const nestedValue = env.recipeRoots[nestedKey];
118
+ if (nestedValue === undefined) {
119
+ continue;
120
+ }
121
+ if (env[flatKey] !== undefined) {
122
+ collisions.push(`${flatKey}/recipeRoots.${nestedKey}`);
123
+ }
124
+ flattened[flatKey] = nestedValue;
125
+ }
126
+ if (collisions.length > 0) {
127
+ process.stderr.write(`Warning: env profile '${envName}' sets these roots both flat and under recipeRoots: ` +
128
+ `${collisions.join(", ")}. recipeRoots wins. Pick one form.\n`);
129
+ }
130
+ return flattened;
131
+ };
132
+ const resolveEnvironmentReferences = (environments) => {
133
+ const resolving = new Set();
134
+ const resolveOne = (name) => {
135
+ if (resolving.has(name)) {
136
+ throw (0, errors_1.createCliError)(`Environment references are circular for '${name}'.`, "CONFIG_INVALID", {
137
+ hint: "Remove circular refs in envProfiles.",
138
+ });
139
+ }
140
+ const current = environments[name];
141
+ if (!current) {
142
+ throw (0, errors_1.createCliError)(`Referenced environment '${name}' was not found.`, "CONFIG_INVALID", {
143
+ hint: "Update envProfiles to reference a valid environment name.",
144
+ });
145
+ }
146
+ if (!current.ref) {
147
+ return { ...current };
148
+ }
149
+ resolving.add(name);
150
+ const base = resolveOne(current.ref);
151
+ resolving.delete(name);
152
+ return { ...base, ...current };
153
+ };
154
+ const resolved = {};
155
+ for (const name of Object.keys(environments)) {
156
+ resolved[name] = resolveOne(name);
157
+ }
158
+ return resolved;
159
+ };
@@ -0,0 +1,278 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "$id": "https://schemas.sitecoreai.dev/v1/sitecoreai.cli.json",
4
+ "title": "SitecoreAI CLI Root Configuration",
5
+ "type": "object",
6
+ "description": "Defines the Sitecore AI CLI root configuration",
7
+ "additionalProperties": false,
8
+ "required": ["modules"],
9
+ "properties": {
10
+ "$schema": { "type": "string" },
11
+ "defaultEnvProfile": {
12
+ "type": "string",
13
+ "description": "Default environment profile to fetch or push data to"
14
+ },
15
+ "envProfiles": {
16
+ "type": "object",
17
+ "description": "Named environment profiles used by this CLI",
18
+ "additionalProperties": {
19
+ "$ref": "#/definitions/EnvironmentConfiguration"
20
+ }
21
+ },
22
+ "modules": {
23
+ "type": "array",
24
+ "description": "Sitecore module file resolution globs",
25
+ "minItems": 1,
26
+ "items": { "type": "string" }
27
+ },
28
+ "recipes": {
29
+ "type": "array",
30
+ "description": "Globs locating .recipe.ts / .recipe.json files for `scai recipe compile|plan|push`. Defaults to `recipes/**/*.recipe.ts` if unset.",
31
+ "items": { "type": "string" }
32
+ },
33
+ "serialization": {
34
+ "description": "Global item serialization default settings",
35
+ "oneOf": [{ "$ref": "#/definitions/SerializationRootConfiguration" }]
36
+ },
37
+ "settings": {
38
+ "description": "Cli settings",
39
+ "oneOf": [{ "$ref": "#/definitions/Settings" }]
40
+ }
41
+ },
42
+ "definitions": {
43
+ "SerializationRootConfiguration": {
44
+ "type": "object",
45
+ "additionalProperties": false,
46
+ "properties": {
47
+ "defaultMaxRelativeItemPathLength": {
48
+ "type": "integer",
49
+ "description": "Max relative item path length to serialize before considering path too long (and requiring aliasing to shorten).\nOverridable on a per-module basis; this is the default when it is unspecified.",
50
+ "format": "int32",
51
+ "default": 120
52
+ },
53
+ "defaultModuleRelativeSerializationPath": {
54
+ "type": "string",
55
+ "description": "The default relative physical path from a module file where serialized items for that module will be stored.\nFor example given module /c/foo/bar.module.json, and default '/serialization/items' path,\nthe serialized items for bar would be stored at /c/foo/bar/serialization/items.\nPrefix the path with ~/ for a root configuration relative path instead of a module-relative path.\nUse '$(module)' to insert the module name when using a root relative path.\nOverridable on a per-module basis; this is the default when it is unspecified.",
56
+ "default": "serialization"
57
+ },
58
+ "removeOrphansForRoles": {
59
+ "type": "boolean",
60
+ "description": "Specifies remove orphans functionality for roles serialization",
61
+ "default": true
62
+ },
63
+ "removeOrphansForUsers": {
64
+ "type": "boolean",
65
+ "description": "Specifies remove orphans functionality for users serialization",
66
+ "default": true
67
+ },
68
+ "continueOnItemFailure": {
69
+ "type": "boolean",
70
+ "description": "Specifies behavior when item synchronization fails",
71
+ "default": false
72
+ },
73
+ "excludedFields": {
74
+ "type": "array",
75
+ "description": "Configure base fields filter",
76
+ "items": { "$ref": "#/definitions/FieldFilter" }
77
+ }
78
+ }
79
+ },
80
+ "FieldFilter": {
81
+ "type": "object",
82
+ "additionalProperties": false,
83
+ "properties": {
84
+ "fieldId": { "type": "string" },
85
+ "description": { "type": "string" }
86
+ }
87
+ },
88
+ "Settings": {
89
+ "type": "object",
90
+ "additionalProperties": false,
91
+ "properties": {
92
+ "telemetryEnabled": {
93
+ "type": "boolean",
94
+ "description": "Determines if telemetry is enabled in cli.",
95
+ "default": false
96
+ },
97
+ "cacheAuthenticationToken": {
98
+ "type": "boolean",
99
+ "description": "Determines if the CLI should cache CM access/refresh tokens in the OS keychain.",
100
+ "default": true
101
+ },
102
+ "versionComparisonEnabled": {
103
+ "type": "boolean",
104
+ "description": "Determines if CLI\\SMS version comparison is enabled.",
105
+ "default": true
106
+ },
107
+ "apiClientTimeoutInMinutes": {
108
+ "type": "integer",
109
+ "description": "Determines timeout for Sitecore Api client.",
110
+ "format": "int32",
111
+ "minimum": 1,
112
+ "maximum": 60,
113
+ "default": 5
114
+ }
115
+ }
116
+ },
117
+ "EnvironmentConfiguration": {
118
+ "type": "object",
119
+ "description": "Configures a named Sitecore environment profile",
120
+ "additionalProperties": false,
121
+ "properties": {
122
+ "name": { "type": "string", "description": "Optional display name for the environment" },
123
+ "ref": { "type": "string", "description": "Name of the environment to inherit from" },
124
+ "organizationId": { "type": "string", "description": "Sitecore organization ID" },
125
+ "tenantId": { "type": "string", "description": "Sitecore tenant ID" },
126
+ "projectId": { "type": "string", "description": "Sitecore project ID" },
127
+ "environmentId": { "type": "string", "description": "Sitecore environment ID" },
128
+ "environmentType": {
129
+ "type": "string",
130
+ "description": "Environment type (cm or eh)",
131
+ "enum": ["cm", "eh"]
132
+ },
133
+ "allowWrite": {
134
+ "type": "boolean",
135
+ "description": "Whether writing data to this endpoint is allowed (i.e. to prevent accidental writes to production)"
136
+ },
137
+ "host": {
138
+ "type": "string",
139
+ "description": "Base URL to the Sitecore instance to connect to (i.e. http://{my-sitecore-instance}.sitecorecloud.io)",
140
+ "format": "uri",
141
+ "minLength": 1
142
+ },
143
+ "authority": {
144
+ "type": "string",
145
+ "description": "Base URL to SitecoreAI identity authority (e.g. https://auth.sitecorecloud.io)",
146
+ "format": "uri",
147
+ "minLength": 1
148
+ },
149
+ "useClientCredentials": {
150
+ "type": ["boolean", "null"],
151
+ "description": "If true, use client credentials (client ID and secret) instead of interactive device login. Recommended for CI."
152
+ },
153
+ "accessToken": {
154
+ "type": "string",
155
+ "description": "OAuth access token for this endpoint. Cached in the OS keychain when enabled."
156
+ },
157
+ "refreshToken": {
158
+ "type": "string",
159
+ "description": "OAuth refresh token for this endpoint. Cached in the OS keychain when enabled."
160
+ },
161
+ "refreshTokenParameters": {
162
+ "type": "object",
163
+ "description": "OAuth refresh parameters for this endpoint (set manually if needed)",
164
+ "additionalProperties": { "type": "string" }
165
+ },
166
+ "expiresIn": {
167
+ "type": ["integer", "null"],
168
+ "description": "Preserves access token lifetime. Set during the login operation. Related to LastUpdated property. System use only.",
169
+ "format": "int32"
170
+ },
171
+ "lastUpdated": {
172
+ "type": ["null", "string"],
173
+ "description": "Preserve date and time when environment was updated. System use only.",
174
+ "format": "date-time"
175
+ },
176
+ "deployToken": {
177
+ "type": "string",
178
+ "description": "SitecoreAI access token (Deploy + CM/admin scopes). Cached in the OS keychain."
179
+ },
180
+ "deployTokenExpiresIn": {
181
+ "type": ["integer", "null"],
182
+ "description": "Deploy token lifetime in seconds",
183
+ "format": "int32"
184
+ },
185
+ "deployTokenLastUpdated": {
186
+ "type": ["null", "string"],
187
+ "description": "Last time the deploy token was updated",
188
+ "format": "date-time"
189
+ },
190
+ "editingHostEnvironmentIds": {
191
+ "type": "array",
192
+ "description": "Editing host environment IDs associated with this CM environment",
193
+ "items": { "type": "string" }
194
+ },
195
+ "clientId": { "type": "string", "description": "OAuth client ID for this endpoint" },
196
+ "clientSecret": {
197
+ "type": "string",
198
+ "description": "OAuth client secret for this endpoint (when useClientCredentials is true). Prefer environment variables."
199
+ },
200
+ "variables": {
201
+ "type": "object",
202
+ "description": "Defines variables that are specific to this environment. Variables defined here override any definitions in the root configuration for this environment.",
203
+ "additionalProperties": { "type": "string" }
204
+ },
205
+ "audience": {
206
+ "type": "string",
207
+ "description": "The unique identifier of the audience for an issued token"
208
+ },
209
+ "templatesRoot": {
210
+ "type": "string",
211
+ "description": "Sitecore parent path under which `scai recipe compile|push` creates template items (e.g. /sitecore/templates/Project/<site>/Components). Tenant-specific. Used as fallback when --templates-root is not passed."
212
+ },
213
+ "componentsRoot": {
214
+ "type": "string",
215
+ "description": "Sitecore parent path under which `scai recipe compile|push` creates component template items in the per-site folder layout (`<componentsRoot>/<section>/<Component>`). When unset, the compiler falls back to `templatesRoot` and emits the legacy flat layout. Used as fallback when --components-root is not passed."
216
+ },
217
+ "contentModelsRoot": {
218
+ "type": "string",
219
+ "description": "Sitecore parent path under which `scai recipe compile|push` creates content-template items (`<contentModelsRoot>/<group>/<name>` when grouped, flat otherwise). When unset, content templates fall back to `templatesRoot` and land mixed in with components. Used as fallback when --content-models-root is not passed."
220
+ },
221
+ "renderingsRoot": {
222
+ "type": "string",
223
+ "description": "Sitecore parent path under which `scai recipe compile|push` creates rendering items (e.g. /sitecore/layout/Renderings/Project/<site>). Tenant-specific. Used as fallback when --renderings-root is not passed."
224
+ },
225
+ "partialDesignsRoot": {
226
+ "type": "string",
227
+ "description": "Sitecore parent path under which `scai recipe compile|push` creates partial-design items (e.g. /sitecore/content/<site>/Presentation/Partial Designs). Required for PartialDesignRecipe compilation."
228
+ },
229
+ "pageDesignsRoot": {
230
+ "type": "string",
231
+ "description": "Sitecore parent path under which `scai recipe compile|push` creates page-design items (e.g. /sitecore/content/<site>/Presentation/Page Designs). Required for PageDesignRecipe compilation; also seeds crossRecipeRefs for the cross-recipe TemplatesMapping aggregate."
232
+ },
233
+ "contentItemsRoot": {
234
+ "type": "string",
235
+ "description": "Sitecore parent path under which `scai recipe compile|push` creates shared content items (e.g. /sitecore/content/<site>/Data). Required for ContentItemRecipe compilation."
236
+ },
237
+ "headlessVariantsRoot": {
238
+ "type": "string",
239
+ "description": "Sitecore parent path under which `scai recipe compile|push` creates SXA Headless rendering variants (e.g. /sitecore/content/<siteCollection>/<site>/Presentation/Headless Variants). Required when any recipe in the set declares variants."
240
+ },
241
+ "availableRenderingsRoot": {
242
+ "type": "string",
243
+ "description": "Sitecore parent path under which `scai recipe compile|push` creates SXA Available Renderings section items (e.g. /sitecore/content/<siteCollection>/<site>/Presentation/Available Renderings). One section per `recipe.section` is emitted with all renderings in that section listed in the Renderings field."
244
+ },
245
+ "enumerationsRoot": {
246
+ "type": "string",
247
+ "description": "Sitecore parent path under which `scai recipe compile|push` creates EnumerationRecipe items (e.g. /sitecore/content/<siteCollection>/<site>/Presentation/Enumerations). Each enum lands as `<enumerationsRoot>/<EnumName>` with one child item per declared value. Required for EnumerationRecipe compilation, and for any recipe whose fields carry `sitecore.enumHandle`."
248
+ },
249
+ "placeholderSettingsRoots": {
250
+ "type": "array",
251
+ "items": { "type": "string" },
252
+ "description": "Sitecore content-tree paths to walk when resolving recipe-declared `placeholders` to Placeholder Settings items (matched by their `Placeholder Key` field). Typically the per-site Presentation/Placeholder Settings AND the Layout/Placeholder Settings/Project/<site> path."
253
+ },
254
+ "recipeRoots": {
255
+ "type": "object",
256
+ "description": "Preferred nested form of the *Root fields. Flattened into the matching flat fields at config-load time (recipeRoots wins when both are set; a warning fires).",
257
+ "additionalProperties": false,
258
+ "properties": {
259
+ "templates": { "type": "string" },
260
+ "renderings": { "type": "string" },
261
+ "components": { "type": "string" },
262
+ "contentModels": { "type": "string" },
263
+ "partialDesigns": { "type": "string" },
264
+ "pageDesigns": { "type": "string" },
265
+ "contentItems": { "type": "string" },
266
+ "headlessVariants": { "type": "string" },
267
+ "availableRenderings": { "type": "string" },
268
+ "enumerations": { "type": "string" },
269
+ "placeholderSettings": {
270
+ "type": "array",
271
+ "items": { "type": "string" }
272
+ }
273
+ }
274
+ }
275
+ }
276
+ }
277
+ }
278
+ }