@salesforce/b2c-tooling-sdk 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/README.md +180 -13
  2. package/data/scaffolds/cartridge/files/.project.ejs +17 -0
  3. package/data/scaffolds/cartridge/files/cartridge/cartridge.properties.ejs +4 -0
  4. package/data/scaffolds/cartridge/files/cartridge/controllers/Example.js.ejs +19 -0
  5. package/data/scaffolds/cartridge/files/cartridge/models/example.js.ejs +14 -0
  6. package/data/scaffolds/cartridge/files/cartridge/scripts/helpers/exampleHelpers.js.ejs +18 -0
  7. package/data/scaffolds/cartridge/files/cartridge/static/default/css/example.css +6 -0
  8. package/data/scaffolds/cartridge/files/cartridge/templates/default/example/show.isml.ejs +11 -0
  9. package/data/scaffolds/cartridge/scaffold.json +88 -0
  10. package/data/scaffolds/controller/files/controller.js.ejs +134 -0
  11. package/data/scaffolds/controller/files/template.isml.ejs +22 -0
  12. package/data/scaffolds/controller/scaffold.json +64 -0
  13. package/data/scaffolds/custom-api/files/api.json.ejs +11 -0
  14. package/data/scaffolds/custom-api/files/schema.yaml.ejs +188 -0
  15. package/data/scaffolds/custom-api/files/script.js.ejs +95 -0
  16. package/data/scaffolds/custom-api/scaffold.json +65 -0
  17. package/data/scaffolds/hook/files/hook.js.ejs +99 -0
  18. package/data/scaffolds/hook/files/hooks-entry.json.ejs +6 -0
  19. package/data/scaffolds/hook/scaffold.json +60 -0
  20. package/data/scaffolds/job-step/files/step-chunk.js.ejs +136 -0
  21. package/data/scaffolds/job-step/files/step-task.js.ejs +47 -0
  22. package/data/scaffolds/job-step/files/steptypes-entry.json.ejs +41 -0
  23. package/data/scaffolds/job-step/scaffold.json +64 -0
  24. package/data/scaffolds/page-designer-component/files/component.isml.ejs +23 -0
  25. package/data/scaffolds/page-designer-component/files/component.js.ejs +35 -0
  26. package/data/scaffolds/page-designer-component/files/component.json.ejs +50 -0
  27. package/data/scaffolds/page-designer-component/scaffold.json +66 -0
  28. package/data/scaffolds/service/files/service-http.js.ejs +245 -0
  29. package/data/scaffolds/service/files/service-sftp.js.ejs +371 -0
  30. package/data/scaffolds/service/files/service-soap.js.ejs +230 -0
  31. package/data/scaffolds/service/scaffold.json +83 -0
  32. package/data/script-api/dw.extensions.payments.SalesforcePaymentsMgr.md +48 -0
  33. package/data/script-api/dw.system.Request.md +5 -0
  34. package/data/script-api/dw.web.Cookie.md +108 -31
  35. package/data/script-api/index.json +2 -2
  36. package/data/script-api/index.md +1 -1
  37. package/dist/cjs/auth/oauth-implicit.d.ts +1 -0
  38. package/dist/cjs/auth/oauth-implicit.js +8 -3
  39. package/dist/cjs/auth/oauth-implicit.js.map +1 -1
  40. package/dist/cjs/auth/oauth.d.ts +1 -0
  41. package/dist/cjs/auth/oauth.js +8 -3
  42. package/dist/cjs/auth/oauth.js.map +1 -1
  43. package/dist/cjs/auth/types.d.ts +5 -0
  44. package/dist/cjs/auth/types.js.map +1 -1
  45. package/dist/cjs/cli/am-command.d.ts +74 -0
  46. package/dist/cjs/cli/am-command.js +189 -0
  47. package/dist/cjs/cli/am-command.js.map +1 -0
  48. package/dist/cjs/cli/base-command.d.ts +38 -0
  49. package/dist/cjs/cli/base-command.js +142 -0
  50. package/dist/cjs/cli/base-command.js.map +1 -1
  51. package/dist/cjs/cli/config.d.ts +9 -0
  52. package/dist/cjs/cli/config.js +19 -2
  53. package/dist/cjs/cli/config.js.map +1 -1
  54. package/dist/cjs/cli/index.d.ts +1 -0
  55. package/dist/cjs/cli/index.js +1 -0
  56. package/dist/cjs/cli/index.js.map +1 -1
  57. package/dist/cjs/cli/instance-command.d.ts +1 -0
  58. package/dist/cjs/cli/oauth-command.d.ts +21 -1
  59. package/dist/cjs/cli/oauth-command.js +52 -7
  60. package/dist/cjs/cli/oauth-command.js.map +1 -1
  61. package/dist/cjs/cli/ods-command.d.ts +5 -1
  62. package/dist/cjs/cli/ods-command.js +10 -4
  63. package/dist/cjs/cli/ods-command.js.map +1 -1
  64. package/dist/cjs/cli/webdav-command.d.ts +1 -0
  65. package/dist/cjs/clients/am-api.d.ts +491 -0
  66. package/dist/cjs/clients/am-api.js +944 -0
  67. package/dist/cjs/clients/am-api.js.map +1 -0
  68. package/dist/cjs/clients/am-apiclients-api.generated.d.ts +803 -0
  69. package/dist/cjs/clients/am-apiclients-api.generated.js +6 -0
  70. package/dist/cjs/clients/am-apiclients-api.generated.js.map +1 -0
  71. package/dist/cjs/clients/am-roles-api.generated.d.ts +298 -0
  72. package/dist/cjs/clients/am-roles-api.generated.js +6 -0
  73. package/dist/cjs/clients/am-roles-api.generated.js.map +1 -0
  74. package/dist/cjs/clients/am-users-api.generated.d.ts +891 -0
  75. package/dist/cjs/clients/am-users-api.generated.js +6 -0
  76. package/dist/cjs/clients/am-users-api.generated.js.map +1 -0
  77. package/dist/cjs/clients/index.d.ts +4 -2
  78. package/dist/cjs/clients/index.js +2 -1
  79. package/dist/cjs/clients/index.js.map +1 -1
  80. package/dist/cjs/clients/middleware-registry.d.ts +1 -1
  81. package/dist/cjs/clients/middleware-registry.js.map +1 -1
  82. package/dist/cjs/clients/middleware.d.ts +49 -2
  83. package/dist/cjs/clients/middleware.js +214 -2
  84. package/dist/cjs/clients/middleware.js.map +1 -1
  85. package/dist/cjs/clients/mrt.js +5 -1
  86. package/dist/cjs/clients/mrt.js.map +1 -1
  87. package/dist/cjs/config/dw-json.d.ts +104 -33
  88. package/dist/cjs/config/dw-json.js +167 -2
  89. package/dist/cjs/config/dw-json.js.map +1 -1
  90. package/dist/cjs/config/index.d.ts +6 -4
  91. package/dist/cjs/config/index.js +6 -2
  92. package/dist/cjs/config/index.js.map +1 -1
  93. package/dist/cjs/config/instance-manager.d.ts +97 -0
  94. package/dist/cjs/config/instance-manager.js +166 -0
  95. package/dist/cjs/config/instance-manager.js.map +1 -0
  96. package/dist/cjs/config/mapping.d.ts +63 -5
  97. package/dist/cjs/config/mapping.js +165 -20
  98. package/dist/cjs/config/mapping.js.map +1 -1
  99. package/dist/cjs/config/sources/dw-json-source.d.ts +17 -1
  100. package/dist/cjs/config/sources/dw-json-source.js +70 -3
  101. package/dist/cjs/config/sources/dw-json-source.js.map +1 -1
  102. package/dist/cjs/config/sources/package-json-source.js +6 -3
  103. package/dist/cjs/config/sources/package-json-source.js.map +1 -1
  104. package/dist/cjs/config/types.d.ts +72 -0
  105. package/dist/cjs/defaults.d.ts +6 -0
  106. package/dist/cjs/defaults.js +6 -0
  107. package/dist/cjs/defaults.js.map +1 -1
  108. package/dist/cjs/i18n/index.js +3 -0
  109. package/dist/cjs/i18n/index.js.map +1 -1
  110. package/dist/cjs/index.d.ts +8 -4
  111. package/dist/cjs/index.js +9 -3
  112. package/dist/cjs/index.js.map +1 -1
  113. package/dist/cjs/logging/logger.js +13 -1
  114. package/dist/cjs/logging/logger.js.map +1 -1
  115. package/dist/cjs/operations/content/asset-query.d.ts +22 -0
  116. package/dist/cjs/operations/content/asset-query.js +77 -0
  117. package/dist/cjs/operations/content/asset-query.js.map +1 -0
  118. package/dist/cjs/operations/content/export.d.ts +57 -0
  119. package/dist/cjs/operations/content/export.js +224 -0
  120. package/dist/cjs/operations/content/export.js.map +1 -0
  121. package/dist/cjs/operations/content/index.d.ts +43 -0
  122. package/dist/cjs/operations/content/index.js +48 -0
  123. package/dist/cjs/operations/content/index.js.map +1 -0
  124. package/dist/cjs/operations/content/library.d.ts +137 -0
  125. package/dist/cjs/operations/content/library.js +392 -0
  126. package/dist/cjs/operations/content/library.js.map +1 -0
  127. package/dist/cjs/operations/content/types.d.ts +144 -0
  128. package/dist/cjs/operations/content/types.js +7 -0
  129. package/dist/cjs/operations/content/types.js.map +1 -0
  130. package/dist/cjs/operations/mrt/b2c-config.js +19 -4
  131. package/dist/cjs/operations/mrt/b2c-config.js.map +1 -1
  132. package/dist/cjs/operations/mrt/index.d.ts +2 -0
  133. package/dist/cjs/operations/mrt/index.js +2 -0
  134. package/dist/cjs/operations/mrt/index.js.map +1 -1
  135. package/dist/cjs/operations/mrt/tail-logs.d.ts +130 -0
  136. package/dist/cjs/operations/mrt/tail-logs.js +223 -0
  137. package/dist/cjs/operations/mrt/tail-logs.js.map +1 -0
  138. package/dist/cjs/operations/ods/index.d.ts +2 -0
  139. package/dist/cjs/operations/ods/index.js +1 -0
  140. package/dist/cjs/operations/ods/index.js.map +1 -1
  141. package/dist/cjs/operations/ods/wait-for-sandbox.d.ts +64 -0
  142. package/dist/cjs/operations/ods/wait-for-sandbox.js +114 -0
  143. package/dist/cjs/operations/ods/wait-for-sandbox.js.map +1 -0
  144. package/dist/cjs/operations/orgs/index.d.ts +74 -0
  145. package/dist/cjs/operations/orgs/index.js +33 -0
  146. package/dist/cjs/operations/orgs/index.js.map +1 -0
  147. package/dist/cjs/operations/roles/index.d.ts +43 -0
  148. package/dist/cjs/operations/roles/index.js +48 -0
  149. package/dist/cjs/operations/roles/index.js.map +1 -0
  150. package/dist/cjs/operations/users/index.d.ts +143 -0
  151. package/dist/cjs/operations/users/index.js +141 -0
  152. package/dist/cjs/operations/users/index.js.map +1 -0
  153. package/dist/cjs/scaffold/engine.d.ts +68 -0
  154. package/dist/cjs/scaffold/engine.js +149 -0
  155. package/dist/cjs/scaffold/engine.js.map +1 -0
  156. package/dist/cjs/scaffold/executor.d.ts +36 -0
  157. package/dist/cjs/scaffold/executor.js +285 -0
  158. package/dist/cjs/scaffold/executor.js.map +1 -0
  159. package/dist/cjs/scaffold/index.d.ts +74 -0
  160. package/dist/cjs/scaffold/index.js +23 -0
  161. package/dist/cjs/scaffold/index.js.map +1 -0
  162. package/dist/cjs/scaffold/merge.d.ts +56 -0
  163. package/dist/cjs/scaffold/merge.js +183 -0
  164. package/dist/cjs/scaffold/merge.js.map +1 -0
  165. package/dist/cjs/scaffold/parameter-resolver.d.ts +86 -0
  166. package/dist/cjs/scaffold/parameter-resolver.js +179 -0
  167. package/dist/cjs/scaffold/parameter-resolver.js.map +1 -0
  168. package/dist/cjs/scaffold/registry.d.ts +45 -0
  169. package/dist/cjs/scaffold/registry.js +219 -0
  170. package/dist/cjs/scaffold/registry.js.map +1 -0
  171. package/dist/cjs/scaffold/sources.d.ts +45 -0
  172. package/dist/cjs/scaffold/sources.js +113 -0
  173. package/dist/cjs/scaffold/sources.js.map +1 -0
  174. package/dist/cjs/scaffold/types.d.ts +280 -0
  175. package/dist/cjs/scaffold/types.js +14 -0
  176. package/dist/cjs/scaffold/types.js.map +1 -0
  177. package/dist/cjs/scaffold/validation.d.ts +81 -0
  178. package/dist/cjs/scaffold/validation.js +250 -0
  179. package/dist/cjs/scaffold/validation.js.map +1 -0
  180. package/dist/cjs/scaffold/validators.d.ts +33 -0
  181. package/dist/cjs/scaffold/validators.js +334 -0
  182. package/dist/cjs/scaffold/validators.js.map +1 -0
  183. package/dist/cjs/telemetry/index.d.ts +26 -0
  184. package/dist/cjs/telemetry/index.js +32 -0
  185. package/dist/cjs/telemetry/index.js.map +1 -0
  186. package/dist/cjs/telemetry/telemetry.d.ts +90 -0
  187. package/dist/cjs/telemetry/telemetry.js +283 -0
  188. package/dist/cjs/telemetry/telemetry.js.map +1 -0
  189. package/dist/cjs/telemetry/types.d.ts +62 -0
  190. package/dist/cjs/telemetry/types.js +7 -0
  191. package/dist/cjs/telemetry/types.js.map +1 -0
  192. package/dist/esm/auth/oauth-implicit.d.ts +1 -0
  193. package/dist/esm/auth/oauth-implicit.js +8 -3
  194. package/dist/esm/auth/oauth-implicit.js.map +1 -1
  195. package/dist/esm/auth/oauth.d.ts +1 -0
  196. package/dist/esm/auth/oauth.js +8 -3
  197. package/dist/esm/auth/oauth.js.map +1 -1
  198. package/dist/esm/auth/types.d.ts +5 -0
  199. package/dist/esm/auth/types.js.map +1 -1
  200. package/dist/esm/cli/am-command.d.ts +74 -0
  201. package/dist/esm/cli/am-command.js +196 -0
  202. package/dist/esm/cli/am-command.js.map +1 -0
  203. package/dist/esm/cli/base-command.d.ts +38 -0
  204. package/dist/esm/cli/base-command.js +142 -0
  205. package/dist/esm/cli/base-command.js.map +1 -1
  206. package/dist/esm/cli/config.d.ts +9 -0
  207. package/dist/esm/cli/config.js +19 -2
  208. package/dist/esm/cli/config.js.map +1 -1
  209. package/dist/esm/cli/index.d.ts +1 -0
  210. package/dist/esm/cli/index.js +1 -0
  211. package/dist/esm/cli/index.js.map +1 -1
  212. package/dist/esm/cli/instance-command.d.ts +1 -0
  213. package/dist/esm/cli/oauth-command.d.ts +21 -1
  214. package/dist/esm/cli/oauth-command.js +52 -7
  215. package/dist/esm/cli/oauth-command.js.map +1 -1
  216. package/dist/esm/cli/ods-command.d.ts +5 -1
  217. package/dist/esm/cli/ods-command.js +10 -4
  218. package/dist/esm/cli/ods-command.js.map +1 -1
  219. package/dist/esm/cli/webdav-command.d.ts +1 -0
  220. package/dist/esm/clients/am-api.d.ts +491 -0
  221. package/dist/esm/clients/am-api.js +944 -0
  222. package/dist/esm/clients/am-api.js.map +1 -0
  223. package/dist/esm/clients/am-apiclients-api.generated.d.ts +803 -0
  224. package/dist/esm/clients/am-apiclients-api.generated.js +6 -0
  225. package/dist/esm/clients/am-apiclients-api.generated.js.map +1 -0
  226. package/dist/esm/clients/am-roles-api.generated.d.ts +298 -0
  227. package/dist/esm/clients/am-roles-api.generated.js +6 -0
  228. package/dist/esm/clients/am-roles-api.generated.js.map +1 -0
  229. package/dist/esm/clients/am-users-api.generated.d.ts +891 -0
  230. package/dist/esm/clients/am-users-api.generated.js +6 -0
  231. package/dist/esm/clients/am-users-api.generated.js.map +1 -0
  232. package/dist/esm/clients/index.d.ts +4 -2
  233. package/dist/esm/clients/index.js +2 -1
  234. package/dist/esm/clients/index.js.map +1 -1
  235. package/dist/esm/clients/middleware-registry.d.ts +1 -1
  236. package/dist/esm/clients/middleware-registry.js.map +1 -1
  237. package/dist/esm/clients/middleware.d.ts +49 -2
  238. package/dist/esm/clients/middleware.js +214 -2
  239. package/dist/esm/clients/middleware.js.map +1 -1
  240. package/dist/esm/clients/mrt.js +5 -1
  241. package/dist/esm/clients/mrt.js.map +1 -1
  242. package/dist/esm/config/dw-json.d.ts +104 -33
  243. package/dist/esm/config/dw-json.js +167 -2
  244. package/dist/esm/config/dw-json.js.map +1 -1
  245. package/dist/esm/config/index.d.ts +6 -4
  246. package/dist/esm/config/index.js +6 -2
  247. package/dist/esm/config/index.js.map +1 -1
  248. package/dist/esm/config/instance-manager.d.ts +97 -0
  249. package/dist/esm/config/instance-manager.js +166 -0
  250. package/dist/esm/config/instance-manager.js.map +1 -0
  251. package/dist/esm/config/mapping.d.ts +63 -5
  252. package/dist/esm/config/mapping.js +165 -20
  253. package/dist/esm/config/mapping.js.map +1 -1
  254. package/dist/esm/config/sources/dw-json-source.d.ts +17 -1
  255. package/dist/esm/config/sources/dw-json-source.js +70 -3
  256. package/dist/esm/config/sources/dw-json-source.js.map +1 -1
  257. package/dist/esm/config/sources/package-json-source.js +6 -3
  258. package/dist/esm/config/sources/package-json-source.js.map +1 -1
  259. package/dist/esm/config/types.d.ts +72 -0
  260. package/dist/esm/defaults.d.ts +6 -0
  261. package/dist/esm/defaults.js +6 -0
  262. package/dist/esm/defaults.js.map +1 -1
  263. package/dist/esm/i18n/index.js +3 -0
  264. package/dist/esm/i18n/index.js.map +1 -1
  265. package/dist/esm/index.d.ts +8 -4
  266. package/dist/esm/index.js +9 -3
  267. package/dist/esm/index.js.map +1 -1
  268. package/dist/esm/logging/logger.js +13 -1
  269. package/dist/esm/logging/logger.js.map +1 -1
  270. package/dist/esm/operations/content/asset-query.d.ts +22 -0
  271. package/dist/esm/operations/content/asset-query.js +77 -0
  272. package/dist/esm/operations/content/asset-query.js.map +1 -0
  273. package/dist/esm/operations/content/export.d.ts +57 -0
  274. package/dist/esm/operations/content/export.js +224 -0
  275. package/dist/esm/operations/content/export.js.map +1 -0
  276. package/dist/esm/operations/content/index.d.ts +43 -0
  277. package/dist/esm/operations/content/index.js +48 -0
  278. package/dist/esm/operations/content/index.js.map +1 -0
  279. package/dist/esm/operations/content/library.d.ts +137 -0
  280. package/dist/esm/operations/content/library.js +392 -0
  281. package/dist/esm/operations/content/library.js.map +1 -0
  282. package/dist/esm/operations/content/types.d.ts +144 -0
  283. package/dist/esm/operations/content/types.js +7 -0
  284. package/dist/esm/operations/content/types.js.map +1 -0
  285. package/dist/esm/operations/mrt/b2c-config.js +19 -4
  286. package/dist/esm/operations/mrt/b2c-config.js.map +1 -1
  287. package/dist/esm/operations/mrt/index.d.ts +2 -0
  288. package/dist/esm/operations/mrt/index.js +2 -0
  289. package/dist/esm/operations/mrt/index.js.map +1 -1
  290. package/dist/esm/operations/mrt/tail-logs.d.ts +130 -0
  291. package/dist/esm/operations/mrt/tail-logs.js +223 -0
  292. package/dist/esm/operations/mrt/tail-logs.js.map +1 -0
  293. package/dist/esm/operations/ods/index.d.ts +2 -0
  294. package/dist/esm/operations/ods/index.js +1 -0
  295. package/dist/esm/operations/ods/index.js.map +1 -1
  296. package/dist/esm/operations/ods/wait-for-sandbox.d.ts +64 -0
  297. package/dist/esm/operations/ods/wait-for-sandbox.js +114 -0
  298. package/dist/esm/operations/ods/wait-for-sandbox.js.map +1 -0
  299. package/dist/esm/operations/orgs/index.d.ts +74 -0
  300. package/dist/esm/operations/orgs/index.js +33 -0
  301. package/dist/esm/operations/orgs/index.js.map +1 -0
  302. package/dist/esm/operations/roles/index.d.ts +43 -0
  303. package/dist/esm/operations/roles/index.js +48 -0
  304. package/dist/esm/operations/roles/index.js.map +1 -0
  305. package/dist/esm/operations/users/index.d.ts +143 -0
  306. package/dist/esm/operations/users/index.js +141 -0
  307. package/dist/esm/operations/users/index.js.map +1 -0
  308. package/dist/esm/scaffold/engine.d.ts +68 -0
  309. package/dist/esm/scaffold/engine.js +149 -0
  310. package/dist/esm/scaffold/engine.js.map +1 -0
  311. package/dist/esm/scaffold/executor.d.ts +36 -0
  312. package/dist/esm/scaffold/executor.js +285 -0
  313. package/dist/esm/scaffold/executor.js.map +1 -0
  314. package/dist/esm/scaffold/index.d.ts +74 -0
  315. package/dist/esm/scaffold/index.js +23 -0
  316. package/dist/esm/scaffold/index.js.map +1 -0
  317. package/dist/esm/scaffold/merge.d.ts +56 -0
  318. package/dist/esm/scaffold/merge.js +183 -0
  319. package/dist/esm/scaffold/merge.js.map +1 -0
  320. package/dist/esm/scaffold/parameter-resolver.d.ts +86 -0
  321. package/dist/esm/scaffold/parameter-resolver.js +179 -0
  322. package/dist/esm/scaffold/parameter-resolver.js.map +1 -0
  323. package/dist/esm/scaffold/registry.d.ts +45 -0
  324. package/dist/esm/scaffold/registry.js +219 -0
  325. package/dist/esm/scaffold/registry.js.map +1 -0
  326. package/dist/esm/scaffold/sources.d.ts +45 -0
  327. package/dist/esm/scaffold/sources.js +113 -0
  328. package/dist/esm/scaffold/sources.js.map +1 -0
  329. package/dist/esm/scaffold/types.d.ts +280 -0
  330. package/dist/esm/scaffold/types.js +14 -0
  331. package/dist/esm/scaffold/types.js.map +1 -0
  332. package/dist/esm/scaffold/validation.d.ts +81 -0
  333. package/dist/esm/scaffold/validation.js +250 -0
  334. package/dist/esm/scaffold/validation.js.map +1 -0
  335. package/dist/esm/scaffold/validators.d.ts +33 -0
  336. package/dist/esm/scaffold/validators.js +334 -0
  337. package/dist/esm/scaffold/validators.js.map +1 -0
  338. package/dist/esm/telemetry/index.d.ts +26 -0
  339. package/dist/esm/telemetry/index.js +32 -0
  340. package/dist/esm/telemetry/index.js.map +1 -0
  341. package/dist/esm/telemetry/telemetry.d.ts +90 -0
  342. package/dist/esm/telemetry/telemetry.js +283 -0
  343. package/dist/esm/telemetry/telemetry.js.map +1 -0
  344. package/dist/esm/telemetry/types.d.ts +62 -0
  345. package/dist/esm/telemetry/types.js +7 -0
  346. package/dist/esm/telemetry/types.js.map +1 -0
  347. package/package.json +86 -17
  348. package/specs/am-apiclients-api-v1.yaml +965 -0
  349. package/specs/am-roles-api-v1.yaml +316 -0
  350. package/specs/am-users-api-v1.yaml +1102 -0
@@ -0,0 +1,14 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import path from 'node:path';
7
+ import { createRequire } from 'node:module';
8
+ const require = createRequire(import.meta.url);
9
+ const packageRoot = path.dirname(require.resolve('@salesforce/b2c-tooling-sdk/package.json'));
10
+ /**
11
+ * Path to the built-in scaffolds data directory
12
+ */
13
+ export const SCAFFOLDS_DATA_DIR = path.join(packageRoot, 'data/scaffolds');
14
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/scaffold/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAE1C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,CAAC;AAE9F;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,81 @@
1
+ import type { ScaffoldManifest } from './types.js';
2
+ /**
3
+ * Severity of a validation issue.
4
+ */
5
+ export type ValidationIssueSeverity = 'error' | 'warning';
6
+ /**
7
+ * A validation issue found during scaffold validation.
8
+ */
9
+ export interface ValidationIssue {
10
+ /** Severity of the issue */
11
+ severity: ValidationIssueSeverity;
12
+ /** Human-readable message describing the issue */
13
+ message: string;
14
+ /** File path where the issue was found, if applicable */
15
+ file?: string;
16
+ }
17
+ /**
18
+ * Result of validating a scaffold directory.
19
+ */
20
+ export interface ValidationResult {
21
+ /** Whether the scaffold is valid (no errors) */
22
+ valid: boolean;
23
+ /** Number of errors found */
24
+ errors: number;
25
+ /** Number of warnings found */
26
+ warnings: number;
27
+ /** All issues found during validation */
28
+ issues: ValidationIssue[];
29
+ }
30
+ /**
31
+ * Validate EJS syntax in template content.
32
+ *
33
+ * Checks for:
34
+ * - Mismatched opening/closing EJS tags
35
+ * - Invalid EJS tag patterns
36
+ * - Empty output tags
37
+ *
38
+ * @param content - Template content to validate
39
+ * @param filename - Optional filename for error reporting
40
+ * @returns Array of validation issues found
41
+ */
42
+ export declare function validateEjsSyntax(content: string, filename?: string): ValidationIssue[];
43
+ /**
44
+ * Check that all referenced template files exist.
45
+ *
46
+ * @param filesDir - Path to the files/ directory
47
+ * @param manifest - Scaffold manifest
48
+ * @returns Array of validation issues for missing files
49
+ */
50
+ export declare function checkTemplateFiles(filesDir: string, manifest: ScaffoldManifest): Promise<ValidationIssue[]>;
51
+ /**
52
+ * Check for orphaned template files not referenced in manifest.
53
+ *
54
+ * @param allTemplates - All template file paths in files/ directory
55
+ * @param manifest - Scaffold manifest
56
+ * @returns Array of validation issues for orphaned files
57
+ */
58
+ export declare function checkOrphanedFiles(allTemplates: string[], manifest: ScaffoldManifest): ValidationIssue[];
59
+ /**
60
+ * Options for scaffold directory validation.
61
+ */
62
+ export interface ValidateScaffoldOptions {
63
+ /** Treat warnings as errors */
64
+ strict?: boolean;
65
+ }
66
+ /**
67
+ * Validate a complete scaffold directory.
68
+ *
69
+ * Performs comprehensive validation including:
70
+ * - Checking scaffold.json exists and is valid JSON
71
+ * - Validating manifest structure against schema
72
+ * - Verifying files/ directory exists
73
+ * - Checking all referenced template files exist
74
+ * - Finding orphaned template files
75
+ * - Validating EJS syntax in templates
76
+ *
77
+ * @param scaffoldPath - Path to the scaffold directory
78
+ * @param options - Validation options
79
+ * @returns Validation result with issues found
80
+ */
81
+ export declare function validateScaffoldDirectory(scaffoldPath: string, options?: ValidateScaffoldOptions): Promise<ValidationResult>;
@@ -0,0 +1,250 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import fs from 'node:fs/promises';
7
+ import path from 'node:path';
8
+ import { glob } from 'glob';
9
+ import { validateScaffoldManifest } from './validators.js';
10
+ /**
11
+ * Check if a file exists.
12
+ */
13
+ async function fileExists(filePath) {
14
+ try {
15
+ await fs.access(filePath);
16
+ return true;
17
+ }
18
+ catch {
19
+ return false;
20
+ }
21
+ }
22
+ /**
23
+ * Check if a path is a directory.
24
+ */
25
+ async function isDirectory(dirPath) {
26
+ try {
27
+ const stat = await fs.stat(dirPath);
28
+ return stat.isDirectory();
29
+ }
30
+ catch {
31
+ return false;
32
+ }
33
+ }
34
+ /**
35
+ * Load and parse a manifest file.
36
+ */
37
+ async function loadManifest(manifestPath) {
38
+ try {
39
+ const content = await fs.readFile(manifestPath, 'utf8');
40
+ return { manifest: JSON.parse(content), error: null };
41
+ }
42
+ catch (error) {
43
+ if (error.code === 'ENOENT') {
44
+ return { manifest: null, error: 'scaffold.json not found' };
45
+ }
46
+ return { manifest: null, error: 'scaffold.json is not valid JSON' };
47
+ }
48
+ }
49
+ /**
50
+ * Validate EJS syntax in template content.
51
+ *
52
+ * Checks for:
53
+ * - Mismatched opening/closing EJS tags
54
+ * - Invalid EJS tag patterns
55
+ * - Empty output tags
56
+ *
57
+ * @param content - Template content to validate
58
+ * @param filename - Optional filename for error reporting
59
+ * @returns Array of validation issues found
60
+ */
61
+ export function validateEjsSyntax(content, filename) {
62
+ const issues = [];
63
+ const fileRef = filename ? `files/${filename}` : undefined;
64
+ // Check for unclosed EJS tags
65
+ const openTags = (content.match(/<%/g) || []).length;
66
+ const closeTags = (content.match(/%>/g) || []).length;
67
+ if (openTags !== closeTags) {
68
+ issues.push({
69
+ severity: 'error',
70
+ message: `Mismatched EJS tags: ${openTags} opening, ${closeTags} closing`,
71
+ file: fileRef,
72
+ });
73
+ }
74
+ // Check for common EJS errors
75
+ const invalidPatterns = [
76
+ { pattern: /<%[^%=_\-\s#]/, message: 'Invalid EJS tag opening (missing space or modifier)' },
77
+ { pattern: /<%=\s*%>/, message: 'Empty EJS output tag' },
78
+ ];
79
+ for (const { pattern, message } of invalidPatterns) {
80
+ if (pattern.test(content)) {
81
+ issues.push({ severity: 'warning', message, file: fileRef });
82
+ }
83
+ }
84
+ return issues;
85
+ }
86
+ /**
87
+ * Check that all referenced template files exist.
88
+ *
89
+ * @param filesDir - Path to the files/ directory
90
+ * @param manifest - Scaffold manifest
91
+ * @returns Array of validation issues for missing files
92
+ */
93
+ export async function checkTemplateFiles(filesDir, manifest) {
94
+ const issues = [];
95
+ const filesToCheck = [];
96
+ // Collect files from file mappings
97
+ if (manifest.files && Array.isArray(manifest.files)) {
98
+ for (const mapping of manifest.files) {
99
+ filesToCheck.push({ path: path.join(filesDir, mapping.template), template: mapping.template });
100
+ }
101
+ }
102
+ // Collect files from modifications
103
+ if (manifest.modifications) {
104
+ for (const mod of manifest.modifications) {
105
+ if (mod.contentTemplate) {
106
+ filesToCheck.push({ path: path.join(filesDir, mod.contentTemplate), template: mod.contentTemplate });
107
+ }
108
+ }
109
+ }
110
+ // Check all files in parallel
111
+ const results = await Promise.all(filesToCheck.map(async ({ path: filePath, template }) => {
112
+ const exists = await fileExists(filePath);
113
+ return { template, exists };
114
+ }));
115
+ for (const { template, exists } of results) {
116
+ if (!exists) {
117
+ issues.push({
118
+ severity: 'error',
119
+ message: `Template file not found: ${template}`,
120
+ file: `files/${template}`,
121
+ });
122
+ }
123
+ }
124
+ return issues;
125
+ }
126
+ /**
127
+ * Check for orphaned template files not referenced in manifest.
128
+ *
129
+ * @param allTemplates - All template file paths in files/ directory
130
+ * @param manifest - Scaffold manifest
131
+ * @returns Array of validation issues for orphaned files
132
+ */
133
+ export function checkOrphanedFiles(allTemplates, manifest) {
134
+ const issues = [];
135
+ const referencedTemplates = new Set();
136
+ if (manifest.files) {
137
+ for (const f of manifest.files) {
138
+ referencedTemplates.add(f.template);
139
+ }
140
+ }
141
+ if (manifest.modifications) {
142
+ for (const mod of manifest.modifications) {
143
+ if (mod.contentTemplate) {
144
+ referencedTemplates.add(mod.contentTemplate);
145
+ }
146
+ }
147
+ }
148
+ for (const template of allTemplates) {
149
+ if (!referencedTemplates.has(template)) {
150
+ issues.push({
151
+ severity: 'warning',
152
+ message: `Template file not referenced in manifest: ${template}`,
153
+ file: `files/${template}`,
154
+ });
155
+ }
156
+ }
157
+ return issues;
158
+ }
159
+ /**
160
+ * Validate manifest structure and return issues.
161
+ */
162
+ function validateManifestStructure(manifest) {
163
+ const issues = [];
164
+ const manifestErrors = validateScaffoldManifest(manifest);
165
+ for (const error of manifestErrors) {
166
+ issues.push({ severity: 'error', message: error, file: 'scaffold.json' });
167
+ }
168
+ if (!manifest.postInstructions) {
169
+ issues.push({
170
+ severity: 'warning',
171
+ message: 'Consider adding postInstructions to guide users after generation',
172
+ file: 'scaffold.json',
173
+ });
174
+ }
175
+ return issues;
176
+ }
177
+ /**
178
+ * Validate EJS syntax in all template files.
179
+ */
180
+ async function validateAllEjsTemplates(filesDir, allTemplates) {
181
+ const ejsTemplates = allTemplates.filter((t) => t.endsWith('.ejs'));
182
+ const results = await Promise.all(ejsTemplates.map(async (template) => {
183
+ try {
184
+ const content = await fs.readFile(path.join(filesDir, template), 'utf8');
185
+ return validateEjsSyntax(content, template);
186
+ }
187
+ catch {
188
+ return [];
189
+ }
190
+ }));
191
+ return results.flat();
192
+ }
193
+ /**
194
+ * Validate a complete scaffold directory.
195
+ *
196
+ * Performs comprehensive validation including:
197
+ * - Checking scaffold.json exists and is valid JSON
198
+ * - Validating manifest structure against schema
199
+ * - Verifying files/ directory exists
200
+ * - Checking all referenced template files exist
201
+ * - Finding orphaned template files
202
+ * - Validating EJS syntax in templates
203
+ *
204
+ * @param scaffoldPath - Path to the scaffold directory
205
+ * @param options - Validation options
206
+ * @returns Validation result with issues found
207
+ */
208
+ export async function validateScaffoldDirectory(scaffoldPath, options = {}) {
209
+ const issues = [];
210
+ // Check if path exists and is a directory
211
+ if (!(await isDirectory(scaffoldPath))) {
212
+ issues.push({
213
+ severity: 'error',
214
+ message: `Path does not exist or is not a directory: ${scaffoldPath}`,
215
+ });
216
+ return buildResult(issues, options.strict);
217
+ }
218
+ // Load and validate manifest
219
+ const manifestPath = path.join(scaffoldPath, 'scaffold.json');
220
+ const { manifest, error: manifestError } = await loadManifest(manifestPath);
221
+ if (manifestError) {
222
+ issues.push({ severity: 'error', message: manifestError, file: 'scaffold.json' });
223
+ }
224
+ if (manifest) {
225
+ issues.push(...validateManifestStructure(manifest));
226
+ }
227
+ // Check files directory
228
+ const filesDir = path.join(scaffoldPath, 'files');
229
+ const filesExist = await isDirectory(filesDir);
230
+ if (!filesExist) {
231
+ issues.push({ severity: 'error', message: 'files/ directory not found' });
232
+ }
233
+ if (filesExist && manifest) {
234
+ // Get all template files
235
+ const allTemplates = await glob('**/*', { cwd: filesDir, nodir: true, dot: true });
236
+ // Check template files exist, orphans, and EJS syntax
237
+ issues.push(...(await checkTemplateFiles(filesDir, manifest)), ...checkOrphanedFiles(allTemplates, manifest), ...(await validateAllEjsTemplates(filesDir, allTemplates)));
238
+ }
239
+ return buildResult(issues, options.strict);
240
+ }
241
+ /**
242
+ * Build a ValidationResult from issues.
243
+ */
244
+ function buildResult(issues, strict) {
245
+ const errors = issues.filter((i) => i.severity === 'error').length;
246
+ const warnings = issues.filter((i) => i.severity === 'warning').length;
247
+ const valid = strict ? errors === 0 && warnings === 0 : errors === 0;
248
+ return { valid, errors, warnings, issues };
249
+ }
250
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/scaffold/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,IAAI,EAAC,MAAM,MAAM,CAAC;AAE1B,OAAO,EAAC,wBAAwB,EAAC,MAAM,iBAAiB,CAAC;AAiCzD;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CAAC,OAAe;IACxC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,YAAoB;IAC9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,EAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAqB,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,yBAAyB,EAAC,CAAC;QAC5D,CAAC;QACD,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,iCAAiC,EAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,QAAiB;IAClE,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3D,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAEtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,wBAAwB,QAAQ,aAAa,SAAS,UAAU;YACzE,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;IAC9B,MAAM,eAAe,GAAG;QACtB,EAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,qDAAqD,EAAC;QAC1F,EAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,sBAAsB,EAAC;KACvD,CAAC;IAEF,KAAK,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,IAAI,eAAe,EAAE,CAAC;QACjD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB,EAAE,QAA0B;IACnF,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,YAAY,GAA4C,EAAE,CAAC;IAEjE,mCAAmC;IACnC,IAAI,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAsB,EAAE,CAAC;YACtD,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAC,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;YACzC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;gBACxB,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,eAAe,EAAC,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAC,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC;IAC5B,CAAC,CAAC,CACH,CAAC;IAEF,KAAK,MAAM,EAAC,QAAQ,EAAE,MAAM,EAAC,IAAI,OAAO,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,4BAA4B,QAAQ,EAAE;gBAC/C,IAAI,EAAE,SAAS,QAAQ,EAAE;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAsB,EAAE,QAA0B;IACnF,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE9C,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAsB,EAAE,CAAC;YAChD,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;YACzC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;gBACxB,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,6CAA6C,QAAQ,EAAE;gBAChE,IAAI,EAAE,SAAS,QAAQ,EAAE;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,QAA0B;IAC3D,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,MAAM,cAAc,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC1D,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAC,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,kEAAkE;YAC3E,IAAI,EAAE,eAAe;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,uBAAuB,CAAC,QAAgB,EAAE,YAAsB;IAC7E,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;YACzE,OAAO,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAUD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,YAAoB,EACpB,UAAmC,EAAE;IAErC,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,0CAA0C;IAC1C,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,8CAA8C,YAAY,EAAE;SACtE,CAAC,CAAC;QACH,OAAO,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,6BAA6B;IAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAC9D,MAAM,EAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAC,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,CAAC;IAE1E,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,EAAC,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAC,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;QAC3B,yBAAyB;QACzB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,EAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAC,CAAC,CAAC;QAEjF,sDAAsD;QACtD,MAAM,CAAC,IAAI,CACT,GAAG,CAAC,MAAM,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EACjD,GAAG,kBAAkB,CAAC,YAAY,EAAE,QAAQ,CAAC,EAC7C,GAAG,CAAC,MAAM,uBAAuB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAC3D,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,MAAyB,EAAE,MAAgB;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAErE,OAAO,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { ScaffoldManifest, ParameterValidationResult } from './types.js';
2
+ /**
3
+ * Validate a scaffold manifest
4
+ * @param manifest - The manifest to validate
5
+ * @returns Array of validation error messages (empty if valid)
6
+ */
7
+ export declare function validateScaffoldManifest(manifest: unknown): string[];
8
+ /**
9
+ * Check if a condition expression is satisfied
10
+ * @param condition - The condition expression (e.g., "paramName=value" or "paramName")
11
+ * @param variables - The current variable values
12
+ * @returns Whether the condition is satisfied
13
+ */
14
+ export declare function evaluateCondition(condition: string | undefined, variables: Record<string, string | boolean | string[]>): boolean;
15
+ /**
16
+ * Validate parameter values against a manifest
17
+ * @param manifest - The scaffold manifest
18
+ * @param values - The parameter values to validate
19
+ * @returns Validation result
20
+ */
21
+ export declare function validateParameters(manifest: ScaffoldManifest, values: Record<string, string | boolean | string[] | undefined>): ParameterValidationResult;
22
+ /**
23
+ * Validate that a string is a valid scaffold name (kebab-case)
24
+ * @param name - The name to validate
25
+ * @returns Whether the name is valid
26
+ */
27
+ export declare function isValidScaffoldName(name: string): boolean;
28
+ /**
29
+ * Validate that a string is a valid parameter name (camelCase)
30
+ * @param name - The name to validate
31
+ * @returns Whether the name is valid
32
+ */
33
+ export declare function isValidParameterName(name: string): boolean;