@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,152 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowActorType = exports.EnvelopeStatus = exports.WorkflowSourceType = exports.WorkflowStatus = exports.CONSENT_DISCLOSURE = exports.HASH_ALGORITHM = exports.SignatureMethod = exports.SignatureType = exports.CreateWorkflowMode = exports.EnvelopeResolutionMode = exports.ExecutionMode = exports.WorkflowEventType = exports.ParticipantActionStatus = exports.WorkflowStepCompletionRule = exports.WorkflowStepExecutionMode = exports.WorkflowStepStatus = exports.ParticipantActionType = exports.WorkflowStepType = void 0;
4
+ const base_1 = require("./base");
5
+ var WorkflowStepType;
6
+ (function (WorkflowStepType) {
7
+ WorkflowStepType["Group"] = "group";
8
+ WorkflowStepType["Participant"] = "participant";
9
+ })(WorkflowStepType || (exports.WorkflowStepType = WorkflowStepType = {}));
10
+ var ParticipantActionType;
11
+ (function (ParticipantActionType) {
12
+ ParticipantActionType["Sign"] = "sign";
13
+ })(ParticipantActionType || (exports.ParticipantActionType = ParticipantActionType = {}));
14
+ var WorkflowStepStatus;
15
+ (function (WorkflowStepStatus) {
16
+ WorkflowStepStatus["Pending"] = "pending";
17
+ WorkflowStepStatus["InProgress"] = "in_progress";
18
+ WorkflowStepStatus["Completed"] = "completed";
19
+ WorkflowStepStatus["Skipped"] = "skipped";
20
+ WorkflowStepStatus["Failed"] = "failed";
21
+ })(WorkflowStepStatus || (exports.WorkflowStepStatus = WorkflowStepStatus = {}));
22
+ var WorkflowStepExecutionMode;
23
+ (function (WorkflowStepExecutionMode) {
24
+ WorkflowStepExecutionMode["Sequential"] = "sequential";
25
+ WorkflowStepExecutionMode["Parallel"] = "parallel";
26
+ })(WorkflowStepExecutionMode || (exports.WorkflowStepExecutionMode = WorkflowStepExecutionMode = {}));
27
+ var WorkflowStepCompletionRule;
28
+ (function (WorkflowStepCompletionRule) {
29
+ WorkflowStepCompletionRule["All"] = "all";
30
+ WorkflowStepCompletionRule["Any"] = "any";
31
+ WorkflowStepCompletionRule["Quorum"] = "quorum";
32
+ })(WorkflowStepCompletionRule || (exports.WorkflowStepCompletionRule = WorkflowStepCompletionRule = {}));
33
+ var ParticipantActionStatus;
34
+ (function (ParticipantActionStatus) {
35
+ ParticipantActionStatus["Pending"] = "pending";
36
+ ParticipantActionStatus["Notified"] = "notified";
37
+ /**
38
+ * The step is active and awaiting the participant, but SignStack did NOT send
39
+ * a notification (the workflow has `disableParticipantNotifications`). Same
40
+ * lifecycle position as `Notified` — the difference is who delivers the link.
41
+ * The caller is responsible for getting the link to the participant.
42
+ */
43
+ ParticipantActionStatus["Ready"] = "ready";
44
+ ParticipantActionStatus["Viewed"] = "viewed";
45
+ ParticipantActionStatus["Signed"] = "signed";
46
+ ParticipantActionStatus["Declined"] = "declined";
47
+ })(ParticipantActionStatus || (exports.ParticipantActionStatus = ParticipantActionStatus = {}));
48
+ var WorkflowEventType;
49
+ (function (WorkflowEventType) {
50
+ WorkflowEventType["WorkflowCreated"] = "workflow_created";
51
+ WorkflowEventType["WorkflowStarted"] = "workflow_started";
52
+ WorkflowEventType["WorkflowCompleted"] = "workflow_completed";
53
+ WorkflowEventType["WorkflowFailed"] = "workflow_failed";
54
+ WorkflowEventType["WorkflowDeclined"] = "workflow_declined";
55
+ WorkflowEventType["WorkflowVoided"] = "workflow_voided";
56
+ WorkflowEventType["StepCreated"] = "step_created";
57
+ WorkflowEventType["StepSkipped"] = "step_skipped";
58
+ WorkflowEventType["StepStarted"] = "step_started";
59
+ WorkflowEventType["StepCompleted"] = "step_completed";
60
+ WorkflowEventType["StepFailed"] = "step_failed";
61
+ WorkflowEventType["StepParticipantNotified"] = "step_participant_notified";
62
+ WorkflowEventType["StepParticipantViewed"] = "step_participant_viewed";
63
+ WorkflowEventType["StepParticipantSignatureAdopted"] = "step_participant_signature_adopted";
64
+ WorkflowEventType["StepParticipantDeclined"] = "step_participant_declined";
65
+ WorkflowEventType["StepParticipantSigned"] = "step_participant_signed";
66
+ WorkflowEventType["EnvelopeCompleted"] = "envelope_completed";
67
+ WorkflowEventType["EnvelopeFailed"] = "envelope_failed";
68
+ })(WorkflowEventType || (exports.WorkflowEventType = WorkflowEventType = {}));
69
+ var ExecutionMode;
70
+ (function (ExecutionMode) {
71
+ ExecutionMode["Prod"] = "Prod";
72
+ ExecutionMode["Test"] = "Test";
73
+ })(ExecutionMode || (exports.ExecutionMode = ExecutionMode = {}));
74
+ var EnvelopeResolutionMode;
75
+ (function (EnvelopeResolutionMode) {
76
+ EnvelopeResolutionMode["Immediate"] = "immediate";
77
+ EnvelopeResolutionMode["JustInTime"] = "just_in_time";
78
+ })(EnvelopeResolutionMode || (exports.EnvelopeResolutionMode = EnvelopeResolutionMode = {}));
79
+ var CreateWorkflowMode;
80
+ (function (CreateWorkflowMode) {
81
+ CreateWorkflowMode["Run"] = "Run";
82
+ CreateWorkflowMode["Review"] = "Review";
83
+ })(CreateWorkflowMode || (exports.CreateWorkflowMode = CreateWorkflowMode = {}));
84
+ var SignatureType;
85
+ (function (SignatureType) {
86
+ SignatureType["Signature"] = "Signature";
87
+ SignatureType["Initials"] = "Initials";
88
+ })(SignatureType || (exports.SignatureType = SignatureType = {}));
89
+ var SignatureMethod;
90
+ (function (SignatureMethod) {
91
+ SignatureMethod["Typed"] = "typed";
92
+ SignatureMethod["Drawn"] = "drawn";
93
+ })(SignatureMethod || (exports.SignatureMethod = SignatureMethod = {}));
94
+ /**
95
+ * Supported hash algorithm identifiers for tamper-evidence.
96
+ * Stored alongside all hashes for future algorithm migration support.
97
+ */
98
+ exports.HASH_ALGORITHM = {
99
+ SHA256: 'SHA-256',
100
+ };
101
+ /**
102
+ * Standard ESIGN consent disclosure configuration.
103
+ * Increment version when the text changes.
104
+ */
105
+ exports.CONSENT_DISCLOSURE = {
106
+ VERSION: base_1.INITIAL_VERSION,
107
+ TEXT: `I acknowledge that I have reviewed the terms and agree to use electronic records and signatures for this transaction.
108
+
109
+ ELECTRONIC SIGNATURE DISCLOSURES:
110
+
111
+ Scope of Consent: Your consent applies to this transaction only.
112
+
113
+ Withdrawing Consent: You may withdraw your consent at any time by declining to sign and contacting the sender.
114
+
115
+ Updating Your Information: To update your contact information, please contact the sender directly.
116
+
117
+ System Requirements: To access and retain electronic records, you need: a device with internet access, a current web browser with JavaScript and cookies enabled, and the ability to view PDF documents.
118
+
119
+ Paper Copies: You may request a paper copy of any document signed electronically by contacting the sender. The sender may charge a reasonable fee for the preparation and mailing of paper copies.`,
120
+ };
121
+ var WorkflowStatus;
122
+ (function (WorkflowStatus) {
123
+ WorkflowStatus["Pending"] = "pending";
124
+ WorkflowStatus["InProgress"] = "in_progress";
125
+ WorkflowStatus["Completed"] = "completed";
126
+ WorkflowStatus["Failed"] = "failed";
127
+ WorkflowStatus["Declined"] = "declined";
128
+ WorkflowStatus["Voided"] = "voided";
129
+ })(WorkflowStatus || (exports.WorkflowStatus = WorkflowStatus = {}));
130
+ var WorkflowSourceType;
131
+ (function (WorkflowSourceType) {
132
+ /** Workflow was instantiated from a stored, named blueprint in this namespace. */
133
+ WorkflowSourceType["Blueprint"] = "blueprint";
134
+ /** Workflow was instantiated from a marketplace listing published by another org. */
135
+ WorkflowSourceType["Listing"] = "listing";
136
+ /** Workflow was created from inline resources — caller supplied the blueprint blob directly (CLI preview, ad-hoc flows). The blueprint is not a stored resource and its key/version may not be resolvable. */
137
+ WorkflowSourceType["Inline"] = "inline";
138
+ })(WorkflowSourceType || (exports.WorkflowSourceType = WorkflowSourceType = {}));
139
+ var EnvelopeStatus;
140
+ (function (EnvelopeStatus) {
141
+ EnvelopeStatus["Pending"] = "pending";
142
+ EnvelopeStatus["InProgress"] = "in_progress";
143
+ EnvelopeStatus["Completed"] = "completed";
144
+ EnvelopeStatus["Voided"] = "voided";
145
+ EnvelopeStatus["Failed"] = "failed";
146
+ })(EnvelopeStatus || (exports.EnvelopeStatus = EnvelopeStatus = {}));
147
+ var WorkflowActorType;
148
+ (function (WorkflowActorType) {
149
+ WorkflowActorType["Sender"] = "sender";
150
+ WorkflowActorType["ParticipantTask"] = "participant_task";
151
+ })(WorkflowActorType || (exports.WorkflowActorType = WorkflowActorType = {}));
152
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../../../../../../../libs/signstack/base/src/lib/models/workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import { NamespaceRole } from './models/membership';
2
+ import { OrganizationRole } from './models/organization';
3
+ import { AssetType, Expression, LiteralOrExpression, VersionType } from './models/base';
4
+ import { WorkflowStatus } from './models/workflow';
5
+ import { HtmlDataConfig, TemplateFieldInfo, TemplateRole } from './models/template';
6
+ import { ResourceKind } from './models/resource-edge';
7
+ export type StatusType = WorkflowStatus | string;
8
+ export declare class Util {
9
+ static getExpressionString(value: LiteralOrExpression<string | number | boolean | Date> | undefined): string | undefined;
10
+ static getLiteralValue(value: LiteralOrExpression<string | number | boolean | Date> | undefined): string | number | boolean | Date | undefined;
11
+ static isExpression<T extends string | number | boolean | Date>(value: LiteralOrExpression<T> | undefined): value is {
12
+ expression: string;
13
+ };
14
+ static isLiteral<T extends string | number | boolean | Date>(value: LiteralOrExpression<T> | undefined): value is T;
15
+ static convertToExpression(value: string): Expression;
16
+ /**
17
+ * Scopes granted to an org-level role. Used when minting an org-tier JWT
18
+ * (caller has no `namespaceKey` in the token).
19
+ *
20
+ * Owner is the strict superset (`*`); Admin gets org-wide writes plus
21
+ * `namespace:*` to retain implicit admin access to every namespace in the
22
+ * org; Billing is read-mostly with billing scopes added.
23
+ */
24
+ static getScopesForRole(role: OrganizationRole): string[];
25
+ /**
26
+ * Scopes granted to a namespace-level role. Combined with the user's
27
+ * org-role scopes when minting a namespace-tier JWT — an `OrganizationRole.Admin`
28
+ * with no explicit namespace row still gets implicit `namespace:*` from
29
+ * their org role.
30
+ */
31
+ static getScopesForNamespaceRole(role: NamespaceRole): string[];
32
+ private static getStatusInfo;
33
+ /**
34
+ * Get the appropriate icon for a given status
35
+ */
36
+ static getStatusIcon(status: StatusType): string;
37
+ /**
38
+ * Get the appropriate CSS classes for a given status
39
+ */
40
+ static getStatusClasses(status: StatusType): string;
41
+ static createAuthOptions(embedToken?: string): {
42
+ headers: {
43
+ Authorization: string;
44
+ };
45
+ } | {
46
+ headers?: undefined;
47
+ };
48
+ /**
49
+ * Converts a template key to an asset key using snake_case transformation.
50
+ */
51
+ static deriveAssetKeyFromTemplateKey(templateKey: string): string;
52
+ /**
53
+ * Type guard to validate if a value is a valid AssetType
54
+ */
55
+ static isValidAssetType(type: unknown): type is AssetType;
56
+ /**
57
+ * Recursively walks a spec object looking for *Key/*Version pairs
58
+ * (e.g., schemaKey/schemaVersion, key/version).
59
+ *
60
+ * - target 'version': updates the *Version property when the *Key matches targetKey
61
+ * and the current version matches oldValue.
62
+ * - target 'key': updates the *Key property itself when its value matches oldValue.
63
+ */
64
+ private static updateReferences;
65
+ /**
66
+ * Updates version references for a resource in a spec object.
67
+ * When kind is provided, only checks the specific fields for that kind.
68
+ * Without kind, falls back to scanning all *Key/*Version property pairs.
69
+ */
70
+ static updateVersionReferences(obj: unknown, targetKey: string, oldVersion: string, newVersion: string, kind?: ResourceKind): boolean;
71
+ /**
72
+ * Recursively walks obj and updates versionField to newVersion
73
+ * wherever keyField === targetKey and versionField === oldVersion.
74
+ */
75
+ private static updateFieldPair;
76
+ /** Updates *Key properties where value matches oldKey. */
77
+ static updateKeyReferences(obj: unknown, oldKey: string, newKey: string): boolean;
78
+ static extractFunctionNamesFromTemplate(req: {
79
+ fields?: TemplateFieldInfo[];
80
+ roles?: TemplateRole[];
81
+ data?: HtmlDataConfig;
82
+ }): Set<string>;
83
+ /**
84
+ * Increments a semver version string by the specified bump type.
85
+ */
86
+ static getNewVersion(currentVersion: string | null, versionType: VersionType): string;
87
+ /**
88
+ * Detects the version bump type by comparing two semver strings.
89
+ * Returns null if the versions are identical (no bump needed).
90
+ */
91
+ static detectVersionBumpType(oldVersion: string, newVersion: string): VersionType | null;
92
+ }
@@ -0,0 +1,406 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Util = void 0;
4
+ const semver_1 = require("semver");
5
+ const constants_1 = require("./constants");
6
+ const membership_1 = require("./models/membership");
7
+ const organization_1 = require("./models/organization");
8
+ const base_1 = require("./models/base");
9
+ const workflow_1 = require("./models/workflow");
10
+ const resource_edge_1 = require("./models/resource-edge");
11
+ const base_2 = require("@common/base");
12
+ class Util {
13
+ static getExpressionString(value) {
14
+ if (!value)
15
+ return undefined;
16
+ if (typeof value === 'object' && 'expression' in value) {
17
+ return value.expression;
18
+ }
19
+ return undefined;
20
+ }
21
+ static getLiteralValue(value) {
22
+ if (value == null)
23
+ return undefined;
24
+ if (typeof value === 'object' && 'expression' in value) {
25
+ return undefined;
26
+ }
27
+ return value;
28
+ }
29
+ static isExpression(value) {
30
+ return (!!value &&
31
+ typeof value === 'object' &&
32
+ 'expression' in value &&
33
+ typeof value.expression === 'string');
34
+ }
35
+ static isLiteral(value) {
36
+ return value !== undefined && value !== null && !Util.isExpression(value);
37
+ }
38
+ static convertToExpression(value) {
39
+ return { expression: value };
40
+ }
41
+ /**
42
+ * Scopes granted to an org-level role. Used when minting an org-tier JWT
43
+ * (caller has no `namespaceKey` in the token).
44
+ *
45
+ * Owner is the strict superset (`*`); Admin gets org-wide writes plus
46
+ * `namespace:*` to retain implicit admin access to every namespace in the
47
+ * org; Billing is read-mostly with billing scopes added.
48
+ */
49
+ static getScopesForRole(role) {
50
+ switch (role) {
51
+ case organization_1.OrganizationRole.Owner:
52
+ return [
53
+ '*', // Wildcard - has all permissions
54
+ ];
55
+ case organization_1.OrganizationRole.Admin:
56
+ return [
57
+ // Organization
58
+ constants_1.SCOPES.ORGANIZATION.READ,
59
+ constants_1.SCOPES.ORGANIZATION.UPDATE,
60
+ // User management
61
+ constants_1.SCOPES.USER.READ,
62
+ constants_1.SCOPES.USER.CREATE,
63
+ constants_1.SCOPES.USER.UPDATE,
64
+ // Billing — Admins inherit Billing access by default (a dedicated
65
+ // `Billing` role is still available for non-admin finance users
66
+ // who should NOT have org-management permissions).
67
+ constants_1.SCOPES.BILLING.READ,
68
+ constants_1.SCOPES.BILLING.MANAGE,
69
+ // Embed tokens
70
+ constants_1.SCOPES.EMBED_TOKEN.CREATE,
71
+ // Full CRUD access using wildcards
72
+ constants_1.SCOPES.WORKFLOW.ALL,
73
+ constants_1.SCOPES.RESOURCE.ALL,
74
+ constants_1.SCOPES.SCENARIO.ALL,
75
+ // Document signing
76
+ constants_1.SCOPES.SIGNING.SIGN,
77
+ // API Keys (read only)
78
+ constants_1.SCOPES.API_KEY.READ,
79
+ // Org API Keys (full access — org-scoped credential class)
80
+ constants_1.SCOPES.API_KEY.ALL,
81
+ // Files
82
+ constants_1.SCOPES.FILE.READ,
83
+ constants_1.SCOPES.FILE.UPLOAD,
84
+ // Namespaces (full access)
85
+ constants_1.SCOPES.NAMESPACE.ALL,
86
+ // AI Chat
87
+ constants_1.SCOPES.AI_CHAT.USE,
88
+ // Library
89
+ constants_1.SCOPES.LIBRARY.PUBLISH,
90
+ // Shareable links (full access)
91
+ constants_1.SCOPES.SHAREABLE_LINK.ALL,
92
+ // Billing
93
+ constants_1.SCOPES.BILLING.READ,
94
+ constants_1.SCOPES.BILLING.MANAGE,
95
+ ];
96
+ case organization_1.OrganizationRole.Billing:
97
+ return [
98
+ constants_1.SCOPES.ORGANIZATION.READ,
99
+ constants_1.SCOPES.BILLING.READ,
100
+ constants_1.SCOPES.BILLING.MANAGE,
101
+ constants_1.SCOPES.USER.READ,
102
+ constants_1.SCOPES.NAMESPACE.READ,
103
+ ];
104
+ default:
105
+ return [];
106
+ }
107
+ }
108
+ /**
109
+ * Scopes granted to a namespace-level role. Combined with the user's
110
+ * org-role scopes when minting a namespace-tier JWT — an `OrganizationRole.Admin`
111
+ * with no explicit namespace row still gets implicit `namespace:*` from
112
+ * their org role.
113
+ */
114
+ static getScopesForNamespaceRole(role) {
115
+ switch (role) {
116
+ case membership_1.NamespaceRole.Admin:
117
+ return [
118
+ constants_1.SCOPES.ORGANIZATION.READ,
119
+ constants_1.SCOPES.USER.READ,
120
+ constants_1.SCOPES.EMBED_TOKEN.CREATE,
121
+ constants_1.SCOPES.WORKFLOW.ALL,
122
+ constants_1.SCOPES.RESOURCE.ALL,
123
+ constants_1.SCOPES.SCENARIO.ALL,
124
+ constants_1.SCOPES.SIGNING.SIGN,
125
+ constants_1.SCOPES.API_KEY.ALL,
126
+ constants_1.SCOPES.FILE.READ,
127
+ constants_1.SCOPES.FILE.UPLOAD,
128
+ constants_1.SCOPES.NAMESPACE.READ,
129
+ constants_1.SCOPES.NAMESPACE.UPDATE,
130
+ constants_1.SCOPES.AI_CHAT.USE,
131
+ constants_1.SCOPES.WEBHOOK.ALL,
132
+ constants_1.SCOPES.SHAREABLE_LINK.ALL,
133
+ ];
134
+ case membership_1.NamespaceRole.Editor:
135
+ return [
136
+ constants_1.SCOPES.ORGANIZATION.READ,
137
+ constants_1.SCOPES.EMBED_TOKEN.CREATE,
138
+ constants_1.SCOPES.WORKFLOW.READ,
139
+ constants_1.SCOPES.WORKFLOW.CREATE,
140
+ constants_1.SCOPES.WORKFLOW.UPDATE,
141
+ constants_1.SCOPES.WORKFLOW.EXECUTE,
142
+ // Editors create/run workflows and may self-deliver participant
143
+ // action emails; privileged, so granted here but NOT to the
144
+ // read-only Viewer role.
145
+ constants_1.SCOPES.WORKFLOW.ACTION_URLS,
146
+ constants_1.SCOPES.RESOURCE.READ,
147
+ constants_1.SCOPES.RESOURCE.CREATE,
148
+ constants_1.SCOPES.RESOURCE.UPDATE,
149
+ constants_1.SCOPES.SCENARIO.READ,
150
+ constants_1.SCOPES.SCENARIO.CREATE,
151
+ constants_1.SCOPES.SCENARIO.UPDATE,
152
+ constants_1.SCOPES.SIGNING.SIGN,
153
+ constants_1.SCOPES.FILE.READ,
154
+ constants_1.SCOPES.FILE.UPLOAD,
155
+ constants_1.SCOPES.NAMESPACE.READ,
156
+ constants_1.SCOPES.AI_CHAT.USE,
157
+ // Shareable links (CRUD subset — no wildcard)
158
+ constants_1.SCOPES.SHAREABLE_LINK.READ,
159
+ constants_1.SCOPES.SHAREABLE_LINK.CREATE,
160
+ constants_1.SCOPES.SHAREABLE_LINK.UPDATE,
161
+ constants_1.SCOPES.SHAREABLE_LINK.DELETE,
162
+ // Billing (read only — so the quota-exceeded modal can render the
163
+ // plan / usage info even for non-admins, who then ask their admin
164
+ // to upgrade)
165
+ constants_1.SCOPES.BILLING.READ,
166
+ ];
167
+ case membership_1.NamespaceRole.Viewer:
168
+ return [
169
+ constants_1.SCOPES.ORGANIZATION.READ,
170
+ constants_1.SCOPES.WORKFLOW.READ,
171
+ constants_1.SCOPES.RESOURCE.READ,
172
+ constants_1.SCOPES.SCENARIO.READ,
173
+ constants_1.SCOPES.FILE.READ,
174
+ constants_1.SCOPES.NAMESPACE.READ,
175
+ constants_1.SCOPES.SHAREABLE_LINK.READ,
176
+ ];
177
+ default:
178
+ return [];
179
+ }
180
+ }
181
+ static getStatusInfo(status) {
182
+ const statusStr = status?.toString();
183
+ switch (statusStr) {
184
+ case workflow_1.WorkflowStepStatus.Completed:
185
+ return { icon: 'check_circle', classes: 'bg-green-100 text-green-700' };
186
+ case workflow_1.WorkflowStepStatus.InProgress:
187
+ return { icon: 'pending', classes: 'bg-blue-100 text-blue-700' };
188
+ case workflow_1.WorkflowStepStatus.Pending:
189
+ return { icon: 'schedule', classes: 'bg-yellow-100 text-yellow-700' };
190
+ case workflow_1.WorkflowStepStatus.Failed:
191
+ case workflow_1.WorkflowStepStatus.Skipped:
192
+ case workflow_1.WorkflowStatus.Declined:
193
+ return { icon: 'error', classes: 'bg-red-100 text-red-700' };
194
+ case workflow_1.WorkflowStatus.Voided:
195
+ return { icon: 'cancel', classes: 'bg-gray-100 text-gray-700' };
196
+ default:
197
+ return { icon: 'info', classes: 'bg-gray-100 text-gray-700' };
198
+ }
199
+ }
200
+ /**
201
+ * Get the appropriate icon for a given status
202
+ */
203
+ static getStatusIcon(status) {
204
+ return Util.getStatusInfo(status).icon;
205
+ }
206
+ /**
207
+ * Get the appropriate CSS classes for a given status
208
+ */
209
+ static getStatusClasses(status) {
210
+ return Util.getStatusInfo(status).classes;
211
+ }
212
+ static createAuthOptions(embedToken) {
213
+ return embedToken
214
+ ? { headers: { [constants_1.AUTH_HEADER]: `Bearer ${embedToken}` } }
215
+ : {};
216
+ }
217
+ /**
218
+ * Converts a template key to an asset key using snake_case transformation.
219
+ */
220
+ static deriveAssetKeyFromTemplateKey(templateKey) {
221
+ let result = templateKey
222
+ // Insert underscore before "nwmls" (case insensitive) if not already preceded by underscore
223
+ .replace(/([^_])([Nn][Ww][Mm][Ll][Ss])/g, '$1_$2')
224
+ // Convert camelCase to snake_case
225
+ .replace(/([a-z0-9])([A-Z])/g, '$1_$2')
226
+ // Lowercase everything
227
+ .toLowerCase()
228
+ // Remove single-letter segments before _nwmls
229
+ .replace(/_([a-z])_nwmls/g, '$1_nwmls')
230
+ // Replace any char that's NOT alphanumeric or underscore
231
+ .replace(/[^a-z0-9_]/g, '_')
232
+ // Collapse consecutive underscores
233
+ .replace(/_+/g, '_')
234
+ // Remove leading underscores
235
+ .replace(/^_+/, '')
236
+ // Remove trailing underscores
237
+ .replace(/_+$/, '');
238
+ // Must start with letter
239
+ if (/^[0-9]/.test(result)) {
240
+ result = 'asset_' + result;
241
+ }
242
+ return result || 'asset';
243
+ }
244
+ /**
245
+ * Type guard to validate if a value is a valid AssetType
246
+ */
247
+ static isValidAssetType(type) {
248
+ return (typeof type === 'string' &&
249
+ Object.values(base_1.AssetType).includes(type));
250
+ }
251
+ /**
252
+ * Recursively walks a spec object looking for *Key/*Version pairs
253
+ * (e.g., schemaKey/schemaVersion, key/version).
254
+ *
255
+ * - target 'version': updates the *Version property when the *Key matches targetKey
256
+ * and the current version matches oldValue.
257
+ * - target 'key': updates the *Key property itself when its value matches oldValue.
258
+ */
259
+ static updateReferences(obj, target, opts) {
260
+ if (!obj || typeof obj !== 'object')
261
+ return false;
262
+ if (Array.isArray(obj)) {
263
+ return obj.reduce((changed, item) => Util.updateReferences(item, target, opts) || changed, false);
264
+ }
265
+ let changed = false;
266
+ const record = obj;
267
+ for (const prop of Object.keys(record)) {
268
+ if (prop.endsWith('Key') || prop === 'key') {
269
+ if (target === 'version') {
270
+ const versionProp = prop === 'key' ? 'version' : prop.replace(/Key$/, 'Version');
271
+ if (record[prop] === opts.matchKey &&
272
+ record[versionProp] === opts.oldValue) {
273
+ record[versionProp] = opts.newValue;
274
+ changed = true;
275
+ }
276
+ }
277
+ else {
278
+ if (record[prop] === opts.oldValue) {
279
+ record[prop] = opts.newValue;
280
+ changed = true;
281
+ }
282
+ }
283
+ }
284
+ if (typeof record[prop] === 'object') {
285
+ changed = Util.updateReferences(record[prop], target, opts) || changed;
286
+ }
287
+ }
288
+ return changed;
289
+ }
290
+ /**
291
+ * Updates version references for a resource in a spec object.
292
+ * When kind is provided, only checks the specific fields for that kind.
293
+ * Without kind, falls back to scanning all *Key/*Version property pairs.
294
+ */
295
+ static updateVersionReferences(obj, targetKey, oldVersion, newVersion, kind) {
296
+ // Field name prefixes whose Key/Version pairs should be checked.
297
+ // e.g. 'schema' → checks schemaKey/schemaVersion.
298
+ const REF_FIELDS = {
299
+ [resource_edge_1.ResourceKind.Schema]: ['schema', 'viewModelSchema'],
300
+ [resource_edge_1.ResourceKind.Template]: ['template'],
301
+ [resource_edge_1.ResourceKind.JsonataFunction]: ['function'],
302
+ };
303
+ const refNames = kind ? REF_FIELDS[kind] : undefined;
304
+ if (refNames) {
305
+ let changed = false;
306
+ const match = { targetKey, oldVersion, newVersion };
307
+ for (const name of [...refNames, 'key']) {
308
+ const keyField = name === 'key' ? 'key' : `${name}Key`;
309
+ const versionField = name === 'key' ? 'version' : `${name}Version`;
310
+ changed =
311
+ Util.updateFieldPair(obj, keyField, versionField, match) || changed;
312
+ }
313
+ return changed;
314
+ }
315
+ return Util.updateReferences(obj, 'version', {
316
+ matchKey: targetKey,
317
+ oldValue: oldVersion,
318
+ newValue: newVersion,
319
+ });
320
+ }
321
+ /**
322
+ * Recursively walks obj and updates versionField to newVersion
323
+ * wherever keyField === targetKey and versionField === oldVersion.
324
+ */
325
+ static updateFieldPair(obj, keyField, versionField, match) {
326
+ if (!obj || typeof obj !== 'object')
327
+ return false;
328
+ if (Array.isArray(obj)) {
329
+ return obj.reduce((changed, item) => Util.updateFieldPair(item, keyField, versionField, match) || changed, false);
330
+ }
331
+ let changed = false;
332
+ const record = obj;
333
+ if (record[keyField] === match.targetKey &&
334
+ record[versionField] === match.oldVersion) {
335
+ record[versionField] = match.newVersion;
336
+ changed = true;
337
+ }
338
+ for (const prop of Object.keys(record)) {
339
+ if (typeof record[prop] === 'object') {
340
+ changed =
341
+ Util.updateFieldPair(record[prop], keyField, versionField, match) ||
342
+ changed;
343
+ }
344
+ }
345
+ return changed;
346
+ }
347
+ /** Updates *Key properties where value matches oldKey. */
348
+ static updateKeyReferences(obj, oldKey, newKey) {
349
+ return Util.updateReferences(obj, 'key', {
350
+ matchKey: oldKey,
351
+ oldValue: oldKey,
352
+ newValue: newKey,
353
+ });
354
+ }
355
+ static extractFunctionNamesFromTemplate(req) {
356
+ const expressions = [];
357
+ if (req.fields) {
358
+ for (const field of req.fields) {
359
+ const expression = Util.getExpressionString(field.value);
360
+ if (expression)
361
+ expressions.push(expression);
362
+ if (field.includeIf)
363
+ expressions.push(field.includeIf);
364
+ }
365
+ }
366
+ if (req.roles) {
367
+ for (const role of req.roles) {
368
+ if (role.output?.transform)
369
+ expressions.push(role.output.transform);
370
+ }
371
+ }
372
+ if (req.data?.transform) {
373
+ expressions.push(req.data.transform);
374
+ }
375
+ return new Set(base_2.JsonataService.getCustomFunctionsFromExpressions(expressions));
376
+ }
377
+ /**
378
+ * Increments a semver version string by the specified bump type.
379
+ */
380
+ static getNewVersion(currentVersion, versionType) {
381
+ if (!currentVersion) {
382
+ return base_1.INITIAL_VERSION;
383
+ }
384
+ const newVersion = (0, semver_1.inc)(currentVersion, versionType);
385
+ if (!newVersion) {
386
+ throw new Error(`Invalid version format: "${currentVersion}". Expected "major.minor.patch".`);
387
+ }
388
+ return newVersion;
389
+ }
390
+ /**
391
+ * Detects the version bump type by comparing two semver strings.
392
+ * Returns null if the versions are identical (no bump needed).
393
+ */
394
+ static detectVersionBumpType(oldVersion, newVersion) {
395
+ if (oldVersion === newVersion)
396
+ return null;
397
+ const change = (0, semver_1.diff)(oldVersion, newVersion);
398
+ if (!change || change.includes('major'))
399
+ return base_1.VersionType.Major;
400
+ if (change.includes('minor'))
401
+ return base_1.VersionType.Minor;
402
+ return base_1.VersionType.Patch;
403
+ }
404
+ }
405
+ exports.Util = Util;
406
+ //# sourceMappingURL=util.js.map