@signstack/cli 0.1.1

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 (269) hide show
  1. package/README.md +458 -0
  2. package/bin/run.js +12 -0
  3. package/dist/apps/signstack-cli/schemas/asset.schema.json +220 -0
  4. package/dist/apps/signstack-cli/schemas/blueprint.schema.json +485 -0
  5. package/dist/apps/signstack-cli/schemas/jsonata-function.schema.json +185 -0
  6. package/dist/apps/signstack-cli/schemas/schema.schema.json +97 -0
  7. package/dist/apps/signstack-cli/schemas/template.schema.json +295 -0
  8. package/dist/apps/signstack-cli/src/commands/auth/login.d.ts +25 -0
  9. package/dist/apps/signstack-cli/src/commands/auth/login.js +229 -0
  10. package/dist/apps/signstack-cli/src/commands/auth/login.js.map +1 -0
  11. package/dist/apps/signstack-cli/src/commands/auth/logout.d.ts +10 -0
  12. package/dist/apps/signstack-cli/src/commands/auth/logout.js +59 -0
  13. package/dist/apps/signstack-cli/src/commands/auth/logout.js.map +1 -0
  14. package/dist/apps/signstack-cli/src/commands/auth/whoami.d.ts +9 -0
  15. package/dist/apps/signstack-cli/src/commands/auth/whoami.js +85 -0
  16. package/dist/apps/signstack-cli/src/commands/auth/whoami.js.map +1 -0
  17. package/dist/apps/signstack-cli/src/commands/generate.d.ts +51 -0
  18. package/dist/apps/signstack-cli/src/commands/generate.js +479 -0
  19. package/dist/apps/signstack-cli/src/commands/generate.js.map +1 -0
  20. package/dist/apps/signstack-cli/src/commands/preview.d.ts +24 -0
  21. package/dist/apps/signstack-cli/src/commands/preview.js +162 -0
  22. package/dist/apps/signstack-cli/src/commands/preview.js.map +1 -0
  23. package/dist/apps/signstack-cli/src/commands/pull.d.ts +28 -0
  24. package/dist/apps/signstack-cli/src/commands/pull.js +244 -0
  25. package/dist/apps/signstack-cli/src/commands/pull.js.map +1 -0
  26. package/dist/apps/signstack-cli/src/commands/push.d.ts +46 -0
  27. package/dist/apps/signstack-cli/src/commands/push.js +460 -0
  28. package/dist/apps/signstack-cli/src/commands/push.js.map +1 -0
  29. package/dist/apps/signstack-cli/src/commands/run.d.ts +22 -0
  30. package/dist/apps/signstack-cli/src/commands/run.js +126 -0
  31. package/dist/apps/signstack-cli/src/commands/run.js.map +1 -0
  32. package/dist/apps/signstack-cli/src/commands/test.d.ts +6 -0
  33. package/dist/apps/signstack-cli/src/commands/test.js +25 -0
  34. package/dist/apps/signstack-cli/src/commands/test.js.map +1 -0
  35. package/dist/apps/signstack-cli/src/commands/validate.d.ts +59 -0
  36. package/dist/apps/signstack-cli/src/commands/validate.js +558 -0
  37. package/dist/apps/signstack-cli/src/commands/validate.js.map +1 -0
  38. package/dist/apps/signstack-cli/src/index.d.ts +1 -0
  39. package/dist/apps/signstack-cli/src/index.js +2 -0
  40. package/dist/apps/signstack-cli/src/index.js.map +1 -0
  41. package/dist/apps/signstack-cli/src/lib/api-client.d.ts +77 -0
  42. package/dist/apps/signstack-cli/src/lib/api-client.js +269 -0
  43. package/dist/apps/signstack-cli/src/lib/api-client.js.map +1 -0
  44. package/dist/apps/signstack-cli/src/lib/base-command.d.ts +38 -0
  45. package/dist/apps/signstack-cli/src/lib/base-command.js +135 -0
  46. package/dist/apps/signstack-cli/src/lib/base-command.js.map +1 -0
  47. package/dist/apps/signstack-cli/src/lib/config.d.ts +47 -0
  48. package/dist/apps/signstack-cli/src/lib/config.js +106 -0
  49. package/dist/apps/signstack-cli/src/lib/config.js.map +1 -0
  50. package/dist/apps/signstack-cli/src/lib/entity-data-resolver.d.ts +31 -0
  51. package/dist/apps/signstack-cli/src/lib/entity-data-resolver.js +107 -0
  52. package/dist/apps/signstack-cli/src/lib/entity-data-resolver.js.map +1 -0
  53. package/dist/apps/signstack-cli/src/lib/local-resource-loader.d.ts +72 -0
  54. package/dist/apps/signstack-cli/src/lib/local-resource-loader.js +238 -0
  55. package/dist/apps/signstack-cli/src/lib/local-resource-loader.js.map +1 -0
  56. package/dist/apps/signstack-cli/src/lib/path-utils.d.ts +4 -0
  57. package/dist/apps/signstack-cli/src/lib/path-utils.js +7 -0
  58. package/dist/apps/signstack-cli/src/lib/path-utils.js.map +1 -0
  59. package/dist/apps/signstack-cli/src/lib/payload-builder.d.ts +127 -0
  60. package/dist/apps/signstack-cli/src/lib/payload-builder.js +545 -0
  61. package/dist/apps/signstack-cli/src/lib/payload-builder.js.map +1 -0
  62. package/dist/apps/signstack-cli/src/lib/preview-handler.d.ts +95 -0
  63. package/dist/apps/signstack-cli/src/lib/preview-handler.js +611 -0
  64. package/dist/apps/signstack-cli/src/lib/preview-handler.js.map +1 -0
  65. package/dist/apps/signstack-cli/src/lib/preview-output-formatter.d.ts +63 -0
  66. package/dist/apps/signstack-cli/src/lib/preview-output-formatter.js +198 -0
  67. package/dist/apps/signstack-cli/src/lib/preview-output-formatter.js.map +1 -0
  68. package/dist/apps/signstack-cli/src/lib/public-api-client.d.ts +13 -0
  69. package/dist/apps/signstack-cli/src/lib/public-api-client.js +39 -0
  70. package/dist/apps/signstack-cli/src/lib/public-api-client.js.map +1 -0
  71. package/dist/apps/signstack-cli/src/lib/resource-puller.d.ts +131 -0
  72. package/dist/apps/signstack-cli/src/lib/resource-puller.js +800 -0
  73. package/dist/apps/signstack-cli/src/lib/resource-puller.js.map +1 -0
  74. package/dist/apps/signstack-cli/src/lib/resource-pusher.d.ts +87 -0
  75. package/dist/apps/signstack-cli/src/lib/resource-pusher.js +361 -0
  76. package/dist/apps/signstack-cli/src/lib/resource-pusher.js.map +1 -0
  77. package/dist/apps/signstack-cli/src/lib/resource-scanner.d.ts +29 -0
  78. package/dist/apps/signstack-cli/src/lib/resource-scanner.js +101 -0
  79. package/dist/apps/signstack-cli/src/lib/resource-scanner.js.map +1 -0
  80. package/dist/apps/signstack-cli/src/lib/resource-validator.d.ts +44 -0
  81. package/dist/apps/signstack-cli/src/lib/resource-validator.js +158 -0
  82. package/dist/apps/signstack-cli/src/lib/resource-validator.js.map +1 -0
  83. package/dist/apps/signstack-cli/src/lib/run-handler.d.ts +47 -0
  84. package/dist/apps/signstack-cli/src/lib/run-handler.js +266 -0
  85. package/dist/apps/signstack-cli/src/lib/run-handler.js.map +1 -0
  86. package/dist/apps/signstack-cli/src/lib/safe-path.d.ts +28 -0
  87. package/dist/apps/signstack-cli/src/lib/safe-path.js +44 -0
  88. package/dist/apps/signstack-cli/src/lib/safe-path.js.map +1 -0
  89. package/dist/apps/signstack-cli/src/lib/scenario-file.d.ts +35 -0
  90. package/dist/apps/signstack-cli/src/lib/scenario-file.js +80 -0
  91. package/dist/apps/signstack-cli/src/lib/scenario-file.js.map +1 -0
  92. package/dist/apps/signstack-cli/src/lib/schema-validator.d.ts +8 -0
  93. package/dist/apps/signstack-cli/src/lib/schema-validator.js +39 -0
  94. package/dist/apps/signstack-cli/src/lib/schema-validator.js.map +1 -0
  95. package/dist/apps/signstack-cli/src/lib/url-validator.d.ts +17 -0
  96. package/dist/apps/signstack-cli/src/lib/url-validator.js +61 -0
  97. package/dist/apps/signstack-cli/src/lib/url-validator.js.map +1 -0
  98. package/dist/apps/signstack-cli/src/lib/yaml-document-parser.d.ts +25 -0
  99. package/dist/apps/signstack-cli/src/lib/yaml-document-parser.js +133 -0
  100. package/dist/apps/signstack-cli/src/lib/yaml-document-parser.js.map +1 -0
  101. package/dist/apps/signstack-cli/src/lib/yaml-transforms.d.ts +3 -0
  102. package/dist/apps/signstack-cli/src/lib/yaml-transforms.js +32 -0
  103. package/dist/apps/signstack-cli/src/lib/yaml-transforms.js.map +1 -0
  104. package/dist/apps/signstack-cli/src/lib/yaml-writer.d.ts +47 -0
  105. package/dist/apps/signstack-cli/src/lib/yaml-writer.js +160 -0
  106. package/dist/apps/signstack-cli/src/lib/yaml-writer.js.map +1 -0
  107. package/dist/apps/signstack-cli/src/types/auth.types.d.ts +48 -0
  108. package/dist/apps/signstack-cli/src/types/auth.types.js +31 -0
  109. package/dist/apps/signstack-cli/src/types/auth.types.js.map +1 -0
  110. package/dist/apps/signstack-cli/src/types/schema.types.d.ts +14 -0
  111. package/dist/apps/signstack-cli/src/types/schema.types.js +16 -0
  112. package/dist/apps/signstack-cli/src/types/schema.types.js.map +1 -0
  113. package/dist/apps/signstack-cli/src/types/yaml.types.d.ts +144 -0
  114. package/dist/apps/signstack-cli/src/types/yaml.types.js +2 -0
  115. package/dist/apps/signstack-cli/src/types/yaml.types.js.map +1 -0
  116. package/dist/libs/common/base/src/index.d.ts +14 -0
  117. package/dist/libs/common/base/src/index.js +44 -0
  118. package/dist/libs/common/base/src/index.js.map +1 -0
  119. package/dist/libs/common/base/src/lib/address.util.d.ts +12 -0
  120. package/dist/libs/common/base/src/lib/address.util.js +55 -0
  121. package/dist/libs/common/base/src/lib/address.util.js.map +1 -0
  122. package/dist/libs/common/base/src/lib/country-code-data.d.ts +5 -0
  123. package/dist/libs/common/base/src/lib/country-code-data.js +1256 -0
  124. package/dist/libs/common/base/src/lib/country-code-data.js.map +1 -0
  125. package/dist/libs/common/base/src/lib/date.util.d.ts +13 -0
  126. package/dist/libs/common/base/src/lib/date.util.js +135 -0
  127. package/dist/libs/common/base/src/lib/date.util.js.map +1 -0
  128. package/dist/libs/common/base/src/lib/headers.d.ts +1 -0
  129. package/dist/libs/common/base/src/lib/headers.js +5 -0
  130. package/dist/libs/common/base/src/lib/headers.js.map +1 -0
  131. package/dist/libs/common/base/src/lib/jsonata.service.d.ts +32 -0
  132. package/dist/libs/common/base/src/lib/jsonata.service.js +207 -0
  133. package/dist/libs/common/base/src/lib/jsonata.service.js.map +1 -0
  134. package/dist/libs/common/base/src/lib/key-validation.constants.d.ts +37 -0
  135. package/dist/libs/common/base/src/lib/key-validation.constants.js +144 -0
  136. package/dist/libs/common/base/src/lib/key-validation.constants.js.map +1 -0
  137. package/dist/libs/common/base/src/lib/phone-util.d.ts +16 -0
  138. package/dist/libs/common/base/src/lib/phone-util.js +61 -0
  139. package/dist/libs/common/base/src/lib/phone-util.js.map +1 -0
  140. package/dist/libs/common/base/src/lib/schema-validation.util.d.ts +24 -0
  141. package/dist/libs/common/base/src/lib/schema-validation.util.js +155 -0
  142. package/dist/libs/common/base/src/lib/schema-validation.util.js.map +1 -0
  143. package/dist/libs/common/base/src/lib/string-builder.d.ts +48 -0
  144. package/dist/libs/common/base/src/lib/string-builder.js +90 -0
  145. package/dist/libs/common/base/src/lib/string-builder.js.map +1 -0
  146. package/dist/libs/common/base/src/lib/util.d.ts +20 -0
  147. package/dist/libs/common/base/src/lib/util.js +110 -0
  148. package/dist/libs/common/base/src/lib/util.js.map +1 -0
  149. package/dist/libs/signstack/base/schemas/asset.schema.json +220 -0
  150. package/dist/libs/signstack/base/schemas/blueprint.schema.json +485 -0
  151. package/dist/libs/signstack/base/schemas/jsonata-function.schema.json +185 -0
  152. package/dist/libs/signstack/base/schemas/schema.schema.json +97 -0
  153. package/dist/libs/signstack/base/schemas/template.schema.json +295 -0
  154. package/dist/libs/signstack/base/src/index.d.ts +28 -0
  155. package/dist/libs/signstack/base/src/index.js +32 -0
  156. package/dist/libs/signstack/base/src/index.js.map +1 -0
  157. package/dist/libs/signstack/base/src/lib/constants.d.ts +123 -0
  158. package/dist/libs/signstack/base/src/lib/constants.js +131 -0
  159. package/dist/libs/signstack/base/src/lib/constants.js.map +1 -0
  160. package/dist/libs/signstack/base/src/lib/hash.util.d.ts +58 -0
  161. package/dist/libs/signstack/base/src/lib/hash.util.js +90 -0
  162. package/dist/libs/signstack/base/src/lib/hash.util.js.map +1 -0
  163. package/dist/libs/signstack/base/src/lib/is-schema-renderable.util.d.ts +29 -0
  164. package/dist/libs/signstack/base/src/lib/is-schema-renderable.util.js +93 -0
  165. package/dist/libs/signstack/base/src/lib/is-schema-renderable.util.js.map +1 -0
  166. package/dist/libs/signstack/base/src/lib/models/ai-chat.d.ts +41 -0
  167. package/dist/libs/signstack/base/src/lib/models/ai-chat.js +3 -0
  168. package/dist/libs/signstack/base/src/lib/models/ai-chat.js.map +1 -0
  169. package/dist/libs/signstack/base/src/lib/models/api-key.d.ts +54 -0
  170. package/dist/libs/signstack/base/src/lib/models/api-key.js +18 -0
  171. package/dist/libs/signstack/base/src/lib/models/api-key.js.map +1 -0
  172. package/dist/libs/signstack/base/src/lib/models/asset.d.ts +101 -0
  173. package/dist/libs/signstack/base/src/lib/models/asset.js +11 -0
  174. package/dist/libs/signstack/base/src/lib/models/asset.js.map +1 -0
  175. package/dist/libs/signstack/base/src/lib/models/auth.d.ts +142 -0
  176. package/dist/libs/signstack/base/src/lib/models/auth.js +35 -0
  177. package/dist/libs/signstack/base/src/lib/models/auth.js.map +1 -0
  178. package/dist/libs/signstack/base/src/lib/models/base.d.ts +134 -0
  179. package/dist/libs/signstack/base/src/lib/models/base.js +71 -0
  180. package/dist/libs/signstack/base/src/lib/models/base.js.map +1 -0
  181. package/dist/libs/signstack/base/src/lib/models/blueprint.d.ts +311 -0
  182. package/dist/libs/signstack/base/src/lib/models/blueprint.js +9 -0
  183. package/dist/libs/signstack/base/src/lib/models/blueprint.js.map +1 -0
  184. package/dist/libs/signstack/base/src/lib/models/file.d.ts +75 -0
  185. package/dist/libs/signstack/base/src/lib/models/file.js +9 -0
  186. package/dist/libs/signstack/base/src/lib/models/file.js.map +1 -0
  187. package/dist/libs/signstack/base/src/lib/models/jsonata-function.d.ts +111 -0
  188. package/dist/libs/signstack/base/src/lib/models/jsonata-function.js +19 -0
  189. package/dist/libs/signstack/base/src/lib/models/jsonata-function.js.map +1 -0
  190. package/dist/libs/signstack/base/src/lib/models/marketplace-listing.d.ts +132 -0
  191. package/dist/libs/signstack/base/src/lib/models/marketplace-listing.js +22 -0
  192. package/dist/libs/signstack/base/src/lib/models/marketplace-listing.js.map +1 -0
  193. package/dist/libs/signstack/base/src/lib/models/membership.d.ts +127 -0
  194. package/dist/libs/signstack/base/src/lib/models/membership.js +22 -0
  195. package/dist/libs/signstack/base/src/lib/models/membership.js.map +1 -0
  196. package/dist/libs/signstack/base/src/lib/models/namespace.d.ts +87 -0
  197. package/dist/libs/signstack/base/src/lib/models/namespace.js +57 -0
  198. package/dist/libs/signstack/base/src/lib/models/namespace.js.map +1 -0
  199. package/dist/libs/signstack/base/src/lib/models/organization.d.ts +79 -0
  200. package/dist/libs/signstack/base/src/lib/models/organization.js +41 -0
  201. package/dist/libs/signstack/base/src/lib/models/organization.js.map +1 -0
  202. package/dist/libs/signstack/base/src/lib/models/render-job.d.ts +88 -0
  203. package/dist/libs/signstack/base/src/lib/models/render-job.js +3 -0
  204. package/dist/libs/signstack/base/src/lib/models/render-job.js.map +1 -0
  205. package/dist/libs/signstack/base/src/lib/models/resource-edge.d.ts +60 -0
  206. package/dist/libs/signstack/base/src/lib/models/resource-edge.js +202 -0
  207. package/dist/libs/signstack/base/src/lib/models/resource-edge.js.map +1 -0
  208. package/dist/libs/signstack/base/src/lib/models/scenario.d.ts +138 -0
  209. package/dist/libs/signstack/base/src/lib/models/scenario.js +14 -0
  210. package/dist/libs/signstack/base/src/lib/models/scenario.js.map +1 -0
  211. package/dist/libs/signstack/base/src/lib/models/schema.d.ts +131 -0
  212. package/dist/libs/signstack/base/src/lib/models/schema.js +44 -0
  213. package/dist/libs/signstack/base/src/lib/models/schema.js.map +1 -0
  214. package/dist/libs/signstack/base/src/lib/models/shareable-link.d.ts +215 -0
  215. package/dist/libs/signstack/base/src/lib/models/shareable-link.js +27 -0
  216. package/dist/libs/signstack/base/src/lib/models/shareable-link.js.map +1 -0
  217. package/dist/libs/signstack/base/src/lib/models/subscription.d.ts +279 -0
  218. package/dist/libs/signstack/base/src/lib/models/subscription.js +105 -0
  219. package/dist/libs/signstack/base/src/lib/models/subscription.js.map +1 -0
  220. package/dist/libs/signstack/base/src/lib/models/template.d.ts +248 -0
  221. package/dist/libs/signstack/base/src/lib/models/template.js +32 -0
  222. package/dist/libs/signstack/base/src/lib/models/template.js.map +1 -0
  223. package/dist/libs/signstack/base/src/lib/models/user.d.ts +30 -0
  224. package/dist/libs/signstack/base/src/lib/models/user.js +3 -0
  225. package/dist/libs/signstack/base/src/lib/models/user.js.map +1 -0
  226. package/dist/libs/signstack/base/src/lib/models/webhook.d.ts +223 -0
  227. package/dist/libs/signstack/base/src/lib/models/webhook.js +62 -0
  228. package/dist/libs/signstack/base/src/lib/models/webhook.js.map +1 -0
  229. package/dist/libs/signstack/base/src/lib/models/workflow.d.ts +917 -0
  230. package/dist/libs/signstack/base/src/lib/models/workflow.js +152 -0
  231. package/dist/libs/signstack/base/src/lib/models/workflow.js.map +1 -0
  232. package/dist/libs/signstack/base/src/lib/util.d.ts +92 -0
  233. package/dist/libs/signstack/base/src/lib/util.js +406 -0
  234. package/dist/libs/signstack/base/src/lib/util.js.map +1 -0
  235. package/dist/libs/signstack/base/src/lib/validation/dependency-graph.d.ts +94 -0
  236. package/dist/libs/signstack/base/src/lib/validation/dependency-graph.js +446 -0
  237. package/dist/libs/signstack/base/src/lib/validation/dependency-graph.js.map +1 -0
  238. package/dist/libs/signstack/base/src/lib/validation/graph.types.d.ts +57 -0
  239. package/dist/libs/signstack/base/src/lib/validation/graph.types.js +8 -0
  240. package/dist/libs/signstack/base/src/lib/validation/graph.types.js.map +1 -0
  241. package/dist/libs/signstack/base/src/lib/validation/index.d.ts +9 -0
  242. package/dist/libs/signstack/base/src/lib/validation/index.js +23 -0
  243. package/dist/libs/signstack/base/src/lib/validation/index.js.map +1 -0
  244. package/dist/libs/signstack/base/src/lib/validation/resource-schemas.d.ts +3 -0
  245. package/dist/libs/signstack/base/src/lib/validation/resource-schemas.js +27 -0
  246. package/dist/libs/signstack/base/src/lib/validation/resource-schemas.js.map +1 -0
  247. package/dist/libs/signstack/base/src/lib/validation/schema-validation.types.d.ts +57 -0
  248. package/dist/libs/signstack/base/src/lib/validation/schema-validation.types.js +57 -0
  249. package/dist/libs/signstack/base/src/lib/validation/schema-validation.types.js.map +1 -0
  250. package/dist/libs/signstack/base/src/lib/validation/schema-validator.d.ts +38 -0
  251. package/dist/libs/signstack/base/src/lib/validation/schema-validator.js +146 -0
  252. package/dist/libs/signstack/base/src/lib/validation/schema-validator.js.map +1 -0
  253. package/dist/libs/signstack/base/src/lib/validation/validate-dependencies.d.ts +22 -0
  254. package/dist/libs/signstack/base/src/lib/validation/validate-dependencies.js +69 -0
  255. package/dist/libs/signstack/base/src/lib/validation/validate-dependencies.js.map +1 -0
  256. package/dist/libs/signstack/base/src/lib/validation/validate-resource-tree.d.ts +37 -0
  257. package/dist/libs/signstack/base/src/lib/validation/validate-resource-tree.js +250 -0
  258. package/dist/libs/signstack/base/src/lib/validation/validate-resource-tree.js.map +1 -0
  259. package/dist/libs/signstack/base/src/lib/validation/validate-template-inputs.d.ts +24 -0
  260. package/dist/libs/signstack/base/src/lib/validation/validate-template-inputs.js +98 -0
  261. package/dist/libs/signstack/base/src/lib/validation/validate-template-inputs.js.map +1 -0
  262. package/dist/libs/signstack/base/src/lib/validation/yaml-document-utils.d.ts +12 -0
  263. package/dist/libs/signstack/base/src/lib/validation/yaml-document-utils.js +50 -0
  264. package/dist/libs/signstack/base/src/lib/validation/yaml-document-utils.js.map +1 -0
  265. package/dist/libs/signstack/base/src/lib/yaml-spec-converter.d.ts +101 -0
  266. package/dist/libs/signstack/base/src/lib/yaml-spec-converter.js +998 -0
  267. package/dist/libs/signstack/base/src/lib/yaml-spec-converter.js.map +1 -0
  268. package/oclif.manifest.json +822 -0
  269. package/package.json +101 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-puller.js","sourceRoot":"","sources":["../../../../../src/lib/resource-puller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { type ParsedDocument, type ResourceId } from '@signstack/base';
2
+ import { SchemaKind } from '../types/schema.types.js';
3
+ import { type ApiClient } from './api-client.js';
4
+ /** Result of pushing a single resource */
5
+ export interface PushResult {
6
+ resourceId: ResourceId;
7
+ kind: SchemaKind;
8
+ key: string;
9
+ version: string;
10
+ success: boolean;
11
+ alreadyExists: boolean;
12
+ error?: string;
13
+ }
14
+ /** Overall push summary */
15
+ export interface PushSummary {
16
+ total: number;
17
+ created: number;
18
+ alreadyExisted: number;
19
+ failed: number;
20
+ results: PushResult[];
21
+ }
22
+ /**
23
+ * ResourcePusher — Pushes SignStack resources to the API in dependency order.
24
+ *
25
+ * Transforms parsed YAML documents into Create*Req payloads and
26
+ * calls the corresponding API endpoints. Handles file uploads for
27
+ * binary assets (images, PDFs) using the 3-step upload flow.
28
+ */
29
+ export declare class ResourcePusher {
30
+ private apiClient;
31
+ private orgId;
32
+ private namespaceKey;
33
+ private log;
34
+ /** Map of uploaded file hashes → fileIds for deduplication */
35
+ private fileIdMap;
36
+ constructor(apiClient: ApiClient, orgId: string, namespaceKey: string, log: (msg: string) => void);
37
+ /**
38
+ * Push a single resource to the API.
39
+ * Returns a PushResult indicating success, skip, or failure.
40
+ */
41
+ pushResource(doc: ParsedDocument): Promise<PushResult>;
42
+ private pushSchema;
43
+ private pushAsset;
44
+ private pushTemplate;
45
+ private pushBlueprint;
46
+ private pushJsonataFunction;
47
+ /**
48
+ * Upload a binary asset file (image, PDF) using the 3-step flow:
49
+ * 1. Lookup by hash (deduplication)
50
+ * 2. Initiate upload → get signed URL
51
+ * 3. PUT file to signed URL
52
+ *
53
+ * Returns the fileId.
54
+ */
55
+ private uploadAssetFile;
56
+ /**
57
+ * Check if a file already exists in storage by its hash. Returns the most
58
+ * recent matching file's id if any exists, otherwise null.
59
+ */
60
+ private checkFileExists;
61
+ /**
62
+ * Build the common metadata block for API create requests
63
+ */
64
+ private buildResourceMetadata;
65
+ /**
66
+ * Read a file relative to a YAML document's directory
67
+ */
68
+ private readFileRelative;
69
+ /**
70
+ * Read asset file content as text (for HTML/CSS assets)
71
+ */
72
+ private readAssetFileContent;
73
+ /**
74
+ * Resolve template type from YAML spec value.
75
+ * Defaults to PDF if not specified or unrecognized.
76
+ */
77
+ private resolveTemplateType;
78
+ /**
79
+ * Check if an error is an "already exists" response.
80
+ * Handles both 409 Conflict and 400 Bad Request with "already exists" message.
81
+ */
82
+ private isAlreadyExistsError;
83
+ /**
84
+ * Extract a human-readable error message from an API or generic error.
85
+ */
86
+ private extractErrorMessage;
87
+ }
@@ -0,0 +1,361 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { readFileSync } from 'node:fs';
3
+ import { basename, dirname, resolve, sep } from 'node:path';
4
+ import { safeResolvePath } from './safe-path.js';
5
+ import { AssetType, DRAFT_VERSION, JsonSchemaDraft, TemplateType, buildHtmlConfigRefs, transformEnvelopes, transformExpressionInputs, transformInputs, transformJsonataParams, transformJsonataReturnType, transformOrchestrationToTree, transformParticipants, transformRole, transformField, } from '@signstack/base';
6
+ import { SchemaKind } from '../types/schema.types.js';
7
+ import { ApiRequestError } from './api-client.js';
8
+ import { getContentType, normalizeYamlFunctions } from './yaml-transforms.js';
9
+ /** Map YAML asset type to API AssetType */
10
+ const YAML_ASSET_TYPE_MAP = {
11
+ html: AssetType.Html,
12
+ css: AssetType.Css,
13
+ pdf: AssetType.Pdf,
14
+ image: AssetType.Image,
15
+ };
16
+ /**
17
+ * ResourcePusher — Pushes SignStack resources to the API in dependency order.
18
+ *
19
+ * Transforms parsed YAML documents into Create*Req payloads and
20
+ * calls the corresponding API endpoints. Handles file uploads for
21
+ * binary assets (images, PDFs) using the 3-step upload flow.
22
+ */
23
+ export class ResourcePusher {
24
+ apiClient;
25
+ orgId;
26
+ namespaceKey;
27
+ log;
28
+ /** Map of uploaded file hashes → fileIds for deduplication */
29
+ fileIdMap = new Map();
30
+ constructor(apiClient, orgId, namespaceKey, log) {
31
+ this.apiClient = apiClient;
32
+ this.orgId = orgId;
33
+ this.namespaceKey = namespaceKey;
34
+ this.log = log;
35
+ }
36
+ /**
37
+ * Push a single resource to the API.
38
+ * Returns a PushResult indicating success, skip, or failure.
39
+ */
40
+ async pushResource(doc) {
41
+ const baseResult = {
42
+ resourceId: doc.id,
43
+ kind: doc.kind,
44
+ key: doc.key,
45
+ version: doc.version,
46
+ success: false,
47
+ alreadyExists: false,
48
+ };
49
+ try {
50
+ switch (doc.kind) {
51
+ case SchemaKind.Schema:
52
+ return await this.pushSchema(doc, baseResult);
53
+ case SchemaKind.Asset:
54
+ return await this.pushAsset(doc, baseResult);
55
+ case SchemaKind.Template:
56
+ return await this.pushTemplate(doc, baseResult);
57
+ case SchemaKind.Blueprint:
58
+ return await this.pushBlueprint(doc, baseResult);
59
+ case SchemaKind.JsonataFunction:
60
+ return await this.pushJsonataFunction(doc, baseResult);
61
+ default:
62
+ return {
63
+ ...baseResult,
64
+ error: `Unknown resource kind: ${doc.kind}`,
65
+ };
66
+ }
67
+ }
68
+ catch (error) {
69
+ // Check for "already exists" responses (409 Conflict or 400 with message)
70
+ if (this.isAlreadyExistsError(error)) {
71
+ return {
72
+ ...baseResult,
73
+ success: true,
74
+ alreadyExists: true,
75
+ };
76
+ }
77
+ return { ...baseResult, error: this.extractErrorMessage(error) };
78
+ }
79
+ }
80
+ // ─── Schema ──────────────────────────────────────────────────────
81
+ async pushSchema(doc, baseResult) {
82
+ const spec = doc.content['spec'];
83
+ const metadata = doc.content['metadata'];
84
+ let schemaDefinition = {};
85
+ const filePath = spec?.file;
86
+ if (filePath) {
87
+ const content = this.readFileRelative(doc.filePath, filePath);
88
+ if (content) {
89
+ try {
90
+ schemaDefinition = JSON.parse(content);
91
+ }
92
+ catch (error) {
93
+ throw new Error(`Failed to parse JSON from file ${filePath}: ${error.message}`);
94
+ }
95
+ }
96
+ }
97
+ else if (spec?.schemaDefinition) {
98
+ schemaDefinition = spec.schemaDefinition;
99
+ }
100
+ else if (spec?.definition) {
101
+ schemaDefinition = spec.definition;
102
+ }
103
+ const body = {
104
+ metadata: this.buildResourceMetadata(doc.key, metadata),
105
+ spec: {
106
+ jsonSchemaDraft: spec?.jsonSchemaDraft ?? JsonSchemaDraft.DRAFT_2020_12,
107
+ schemaDefinition,
108
+ },
109
+ };
110
+ await this.apiClient.post(`/v1/orgs/${this.orgId}/namespaces/${this.namespaceKey}/schemas`, body);
111
+ return {
112
+ ...baseResult,
113
+ success: true,
114
+ alreadyExists: false,
115
+ };
116
+ }
117
+ // ─── Asset ───────────────────────────────────────────────────────
118
+ async pushAsset(doc, baseResult) {
119
+ const spec = doc.content['spec'];
120
+ const metadata = doc.content['metadata'];
121
+ const yamlType = spec?.type ?? 'html';
122
+ const assetType = YAML_ASSET_TYPE_MAP[yamlType] ?? AssetType.Html;
123
+ let fileId;
124
+ let content;
125
+ // Binary assets (image, pdf) → upload file, get fileId
126
+ // Text assets (html, css/style) → read content inline
127
+ if (assetType === AssetType.Image || assetType === AssetType.Pdf) {
128
+ fileId = await this.uploadAssetFile(doc);
129
+ }
130
+ else {
131
+ content = this.readAssetFileContent(doc) ?? undefined;
132
+ }
133
+ const htmlConfig = assetType === AssetType.Html ? buildHtmlConfigRefs(spec) : undefined;
134
+ const body = {
135
+ metadata: this.buildResourceMetadata(doc.key, metadata),
136
+ spec: {
137
+ type: assetType,
138
+ fileId,
139
+ content,
140
+ htmlConfig,
141
+ },
142
+ };
143
+ await this.apiClient.post(`/v1/orgs/${this.orgId}/namespaces/${this.namespaceKey}/assets`, body);
144
+ return { ...baseResult, success: true };
145
+ }
146
+ // ─── Template ────────────────────────────────────────────────────
147
+ async pushTemplate(doc, baseResult) {
148
+ const spec = doc.content['spec'];
149
+ const metadata = doc.content['metadata'];
150
+ const contentRef = spec?.content ?? '';
151
+ const [contentKey, contentVersion] = contentRef.split('@');
152
+ const inputs = transformExpressionInputs(spec?.inputs ?? []);
153
+ const roles = (spec?.roles ?? []).map(transformRole);
154
+ const fields = (spec?.fields ?? []).map(transformField);
155
+ const data = spec?.data?.transform
156
+ ? { transform: spec.data.transform }
157
+ : undefined;
158
+ const functions = normalizeYamlFunctions(spec?.functions);
159
+ const body = {
160
+ metadata: this.buildResourceMetadata(doc.key, metadata),
161
+ spec: {
162
+ type: this.resolveTemplateType(spec?.type),
163
+ contentKey,
164
+ contentVersion,
165
+ data,
166
+ fields,
167
+ inputs,
168
+ roles,
169
+ functions,
170
+ },
171
+ };
172
+ await this.apiClient.post(`/v1/orgs/${this.orgId}/namespaces/${this.namespaceKey}/templates`, body);
173
+ return { ...baseResult, success: true };
174
+ }
175
+ // ─── Blueprint ───────────────────────────────────────────────────
176
+ async pushBlueprint(doc, baseResult) {
177
+ const spec = doc.content['spec'];
178
+ const metadata = doc.content['metadata'];
179
+ const inputs = transformInputs(spec?.inputs ?? []);
180
+ const envelopes = transformEnvelopes(spec?.envelopes ?? []);
181
+ const participants = transformParticipants(spec?.participants ?? []);
182
+ const orchestration = spec?.orchestration
183
+ ? transformOrchestrationToTree(spec.orchestration)
184
+ : undefined;
185
+ const functions = normalizeYamlFunctions(spec?.functions);
186
+ const body = {
187
+ metadata: this.buildResourceMetadata(doc.key, metadata),
188
+ spec: {
189
+ envelopes,
190
+ participants,
191
+ inputs,
192
+ orchestration,
193
+ functions,
194
+ },
195
+ };
196
+ await this.apiClient.post(`/v1/orgs/${this.orgId}/namespaces/${this.namespaceKey}/blueprints`, body);
197
+ return { ...baseResult, success: true };
198
+ }
199
+ // ─── JsonataFunction ────────────────────────────────────────────
200
+ async pushJsonataFunction(doc, baseResult) {
201
+ const spec = doc.content['spec'];
202
+ const metadata = doc.content['metadata'];
203
+ const params = transformJsonataParams(spec?.params ?? []);
204
+ const returnType = transformJsonataReturnType(spec?.returnType);
205
+ const body = {
206
+ metadata: this.buildResourceMetadata(doc.key, metadata),
207
+ spec: {
208
+ params: params.length > 0 ? params : undefined,
209
+ returnType,
210
+ body: spec?.body ?? '',
211
+ },
212
+ };
213
+ await this.apiClient.post(`/v1/orgs/${this.orgId}/namespaces/${this.namespaceKey}/jsonata-functions`, body);
214
+ return { ...baseResult, success: true };
215
+ }
216
+ // ─── File Upload ─────────────────────────────────────────────────
217
+ /**
218
+ * Upload a binary asset file (image, PDF) using the 3-step flow:
219
+ * 1. Lookup by hash (deduplication)
220
+ * 2. Initiate upload → get signed URL
221
+ * 3. PUT file to signed URL
222
+ *
223
+ * Returns the fileId.
224
+ */
225
+ async uploadAssetFile(doc) {
226
+ const spec = doc.content['spec'];
227
+ const filePath = spec?.['file'];
228
+ if (!filePath)
229
+ return undefined;
230
+ const baseDir = resolve(dirname(doc.filePath)) + sep;
231
+ const result = safeResolvePath(baseDir, filePath);
232
+ if (!result.valid) {
233
+ return undefined;
234
+ }
235
+ const fileContent = readFileSync(result.realPath);
236
+ const fileHash = createHash('sha256').update(fileContent).digest('hex');
237
+ const fileName = basename(result.realPath);
238
+ const contentType = getContentType(result.realPath);
239
+ // Step 1: Check if file already exists by hash
240
+ const existing = await this.checkFileExists(fileHash);
241
+ if (existing) {
242
+ this.fileIdMap.set(`${doc.key}@${doc.version}`, existing);
243
+ return existing;
244
+ }
245
+ // Step 2: Initiate upload
246
+ const uploadInfo = await this.apiClient.post(`/v1/orgs/${this.orgId}/files/upload-url`, {
247
+ file: {
248
+ name: fileName,
249
+ contentType,
250
+ hash: fileHash,
251
+ },
252
+ });
253
+ if (!uploadInfo)
254
+ return undefined;
255
+ // Step 3: Upload to signed URL
256
+ if (uploadInfo.uploadUrl) {
257
+ await fetch(uploadInfo.uploadUrl, {
258
+ method: 'PUT',
259
+ headers: { 'Content-Type': contentType },
260
+ body: new Uint8Array(fileContent),
261
+ });
262
+ }
263
+ if (uploadInfo.id) {
264
+ this.fileIdMap.set(`${doc.key}@${doc.version}`, uploadInfo.id);
265
+ }
266
+ return uploadInfo.id;
267
+ }
268
+ /**
269
+ * Check if a file already exists in storage by its hash. Returns the most
270
+ * recent matching file's id if any exists, otherwise null.
271
+ */
272
+ async checkFileExists(hash) {
273
+ try {
274
+ const result = await this.apiClient.get(`/v1/orgs/${this.orgId}/files?hash=${encodeURIComponent(hash)}&limit=1`);
275
+ return result.data[0]?.id ?? null;
276
+ }
277
+ catch {
278
+ return null;
279
+ }
280
+ }
281
+ // ─── Common Helpers ─────────────────────────────────────────────
282
+ /**
283
+ * Build the common metadata block for API create requests
284
+ */
285
+ buildResourceMetadata(key, metadata) {
286
+ return {
287
+ key,
288
+ version: metadata?.version || DRAFT_VERSION,
289
+ name: metadata?.name ?? key,
290
+ description: metadata?.description,
291
+ labels: metadata?.labels,
292
+ };
293
+ }
294
+ /**
295
+ * Read a file relative to a YAML document's directory
296
+ */
297
+ readFileRelative(yamlFilePath, relativePath) {
298
+ const baseDir = resolve(dirname(yamlFilePath)) + sep;
299
+ const result = safeResolvePath(baseDir, relativePath);
300
+ if (!result.valid) {
301
+ return null;
302
+ }
303
+ try {
304
+ return readFileSync(result.realPath, 'utf-8');
305
+ }
306
+ catch {
307
+ return null;
308
+ }
309
+ }
310
+ /**
311
+ * Read asset file content as text (for HTML/CSS assets)
312
+ */
313
+ readAssetFileContent(doc) {
314
+ const spec = doc.content['spec'];
315
+ const filePath = spec?.file;
316
+ if (!filePath)
317
+ return null;
318
+ return this.readFileRelative(doc.filePath, filePath);
319
+ }
320
+ /**
321
+ * Resolve template type from YAML spec value.
322
+ * Defaults to PDF if not specified or unrecognized.
323
+ */
324
+ resolveTemplateType(value) {
325
+ switch (value) {
326
+ case 'html':
327
+ return TemplateType.HTML;
328
+ case 'pdf':
329
+ default:
330
+ return TemplateType.PDF;
331
+ }
332
+ }
333
+ /**
334
+ * Check if an error is an "already exists" response.
335
+ * Handles both 409 Conflict and 400 Bad Request with "already exists" message.
336
+ */
337
+ isAlreadyExistsError(error) {
338
+ if (error instanceof ApiRequestError) {
339
+ if (error.statusCode === 409)
340
+ return true;
341
+ if (error.statusCode === 400) {
342
+ const msg = this.extractErrorMessage(error);
343
+ return /already exists/i.test(msg);
344
+ }
345
+ }
346
+ return false;
347
+ }
348
+ /**
349
+ * Extract a human-readable error message from an API or generic error.
350
+ */
351
+ extractErrorMessage(error) {
352
+ if (error instanceof ApiRequestError) {
353
+ return error.errorData.message || error.message;
354
+ }
355
+ if (error instanceof Error) {
356
+ return error.message;
357
+ }
358
+ return 'Unknown error';
359
+ }
360
+ }
361
+ //# sourceMappingURL=resource-pusher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-pusher.js","sourceRoot":"","sources":["../../../../../src/lib/resource-pusher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { SchemaKind } from '../types/schema.types.js';
2
+ interface ScannedResource {
3
+ kind: SchemaKind;
4
+ key: string;
5
+ version: string;
6
+ name?: string;
7
+ filePath: string;
8
+ }
9
+ /**
10
+ * Quickly scan a folder for YAML resources and extract metadata.
11
+ * Does NOT validate — just parses kind/key/version from each document.
12
+ */
13
+ export declare function scanResources(folderPath: string): Promise<ScannedResource[]>;
14
+ /**
15
+ * Prompt the user to select a resource from local YAML files,
16
+ * filtered to the given allowed kinds.
17
+ *
18
+ * - If 0 matching resources → returns null
19
+ * - If 1 matching resource → auto-selects it
20
+ * - If multiple → shows interactive select prompt
21
+ *
22
+ * Returns { kind, ref ("key@version"), resourceDir }.
23
+ */
24
+ export declare function promptResourceSelection(folderPath: string, allowedKinds: SchemaKind[], message: string): Promise<{
25
+ kind: SchemaKind;
26
+ ref: string;
27
+ resourceDir: string;
28
+ } | null>;
29
+ export {};
@@ -0,0 +1,101 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { dirname } from 'node:path';
3
+ import { parseAllDocuments } from 'yaml';
4
+ import { Separator } from '@inquirer/core';
5
+ import { select } from '@inquirer/prompts';
6
+ import pc from 'picocolors';
7
+ import { normalizePath } from './path-utils.js';
8
+ /**
9
+ * Quickly scan a folder for YAML resources and extract metadata.
10
+ * Does NOT validate — just parses kind/key/version from each document.
11
+ */
12
+ export async function scanResources(folderPath) {
13
+ const fg = (await import('fast-glob')).default;
14
+ const pattern = `${normalizePath(folderPath)}/**/*.{yaml,yml}`;
15
+ const filePaths = await fg(pattern, {
16
+ ignore: ['**/node_modules/**'],
17
+ absolute: true,
18
+ });
19
+ const resources = [];
20
+ for (const filePath of filePaths) {
21
+ try {
22
+ const content = readFileSync(filePath, 'utf-8');
23
+ const docs = parseAllDocuments(content);
24
+ for (const doc of docs) {
25
+ const obj = doc.toJSON();
26
+ if (obj?.kind && obj?.metadata?.key && obj?.metadata?.version) {
27
+ resources.push({
28
+ kind: obj.kind,
29
+ key: obj.metadata.key,
30
+ version: obj.metadata.version,
31
+ name: obj.metadata.name,
32
+ filePath,
33
+ });
34
+ }
35
+ }
36
+ }
37
+ catch {
38
+ // Skip unparseable files
39
+ }
40
+ }
41
+ return resources;
42
+ }
43
+ /**
44
+ * Prompt the user to select a resource from local YAML files,
45
+ * filtered to the given allowed kinds.
46
+ *
47
+ * - If 0 matching resources → returns null
48
+ * - If 1 matching resource → auto-selects it
49
+ * - If multiple → shows interactive select prompt
50
+ *
51
+ * Returns { kind, ref ("key@version"), resourceDir }.
52
+ */
53
+ export async function promptResourceSelection(folderPath, allowedKinds, message) {
54
+ const resources = await scanResources(folderPath);
55
+ const kindSet = new Set(allowedKinds);
56
+ const filtered = resources.filter((r) => kindSet.has(r.kind));
57
+ if (filtered.length === 0)
58
+ return null;
59
+ if (filtered.length === 1) {
60
+ const r = filtered[0];
61
+ return {
62
+ kind: r.kind,
63
+ ref: `${r.key}@${r.version}`,
64
+ resourceDir: dirname(r.filePath),
65
+ };
66
+ }
67
+ const filePathByValue = new Map();
68
+ const choices = [];
69
+ // Group resources by kind, preserving allowedKinds ordering
70
+ const byKind = new Map();
71
+ for (const r of filtered) {
72
+ if (!byKind.has(r.kind))
73
+ byKind.set(r.kind, []);
74
+ byKind.get(r.kind).push(r);
75
+ }
76
+ const multipleKinds = byKind.size > 1;
77
+ for (const kind of allowedKinds) {
78
+ const group = byKind.get(kind);
79
+ if (!group)
80
+ continue;
81
+ group.sort((a, b) => a.key.localeCompare(b.key) || a.version.localeCompare(b.version));
82
+ if (multipleKinds) {
83
+ choices.push(new Separator(pc.bold(kind)));
84
+ }
85
+ for (const r of group) {
86
+ const value = `${r.kind}:${r.key}@${r.version}`;
87
+ choices.push({
88
+ name: `${r.key}@${r.version}${r.name ? pc.dim(` — ${r.name}`) : ''}`,
89
+ value,
90
+ });
91
+ filePathByValue.set(value, r.filePath);
92
+ }
93
+ }
94
+ const choice = await select({ message, choices, loop: false });
95
+ const colonIdx = choice.indexOf(':');
96
+ const kind = choice.slice(0, colonIdx);
97
+ const ref = choice.slice(colonIdx + 1);
98
+ const resourceDir = dirname(filePathByValue.get(choice));
99
+ return { kind, ref, resourceDir };
100
+ }
101
+ //# sourceMappingURL=resource-scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-scanner.js","sourceRoot":"","sources":["../../../../../src/lib/resource-scanner.ts"],"names":[],"mappings":"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"}