@versori/run 0.2.31 → 0.3.0-beta.10

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 (455) hide show
  1. package/{script/deps/jsr.io/@std/fs/1.0.19 → esm/deps/jsr.io/@std/fs/1.0.20}/exists.d.ts.map +1 -1
  2. package/esm/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
  3. package/esm/src/connection/DirectConnectionFactory.d.ts +29 -0
  4. package/esm/src/connection/DirectConnectionFactory.d.ts.map +1 -0
  5. package/esm/src/connection/DirectConnectionFactory.js +82 -0
  6. package/esm/src/connection/DynamicFetchFactory.d.ts +30 -0
  7. package/esm/src/connection/DynamicFetchFactory.d.ts.map +1 -0
  8. package/esm/src/connection/DynamicFetchFactory.js +113 -0
  9. package/esm/src/connection/StaticFetchFactory.d.ts +11 -0
  10. package/esm/src/connection/StaticFetchFactory.d.ts.map +1 -0
  11. package/esm/src/connection/StaticFetchFactory.js +35 -0
  12. package/esm/src/connection/internal/CredentialHolder.d.ts +11 -0
  13. package/esm/src/connection/internal/CredentialHolder.d.ts.map +1 -0
  14. package/esm/src/connection/internal/CredentialHolder.js +66 -0
  15. package/esm/src/connection/internal/FetchBuilder.d.ts +15 -0
  16. package/esm/src/connection/internal/FetchBuilder.d.ts.map +1 -0
  17. package/esm/src/connection/internal/FetchBuilder.js +89 -0
  18. package/esm/src/connection/internal/HttpClientFactory.d.ts +14 -0
  19. package/esm/src/connection/internal/HttpClientFactory.d.ts.map +1 -0
  20. package/esm/src/connection/internal/HttpClientFactory.js +42 -0
  21. package/esm/src/connection/internal/InboundConnectionFactory.d.ts +19 -0
  22. package/esm/src/connection/internal/InboundConnectionFactory.d.ts.map +1 -0
  23. package/esm/src/connection/internal/InboundConnectionFactory.js +390 -0
  24. package/esm/src/connection/internal/OutboundConnectionFactory.d.ts +31 -0
  25. package/esm/src/connection/internal/OutboundConnectionFactory.d.ts.map +1 -0
  26. package/esm/src/connection/internal/OutboundConnectionFactory.js +447 -0
  27. package/esm/src/connection/types.d.ts +32 -0
  28. package/esm/src/connection/types.d.ts.map +1 -0
  29. package/esm/src/connection/types.js +1 -0
  30. package/esm/src/context/ActivationImpl.d.ts +18 -0
  31. package/esm/src/context/ActivationImpl.d.ts.map +1 -0
  32. package/esm/src/context/ActivationImpl.js +82 -0
  33. package/esm/src/context/AsyncWorkflow.js +1 -1
  34. package/esm/src/context/Context.d.ts +10 -13
  35. package/esm/src/context/Context.d.ts.map +1 -1
  36. package/esm/src/context/Context.js +21 -19
  37. package/esm/src/context/ContextProvider.d.ts +9 -3
  38. package/esm/src/context/ContextProvider.d.ts.map +1 -1
  39. package/esm/src/context/ContextProvider.js +31 -10
  40. package/esm/src/context/WorkflowClient.d.ts +29 -0
  41. package/esm/src/context/WorkflowClient.d.ts.map +1 -0
  42. package/esm/src/context/WorkflowClient.js +95 -0
  43. package/esm/src/dsl/http/default.d.ts.map +1 -1
  44. package/esm/src/dsl/http/default.js +2 -2
  45. package/esm/src/dsl/http/types.d.ts +9 -4
  46. package/esm/src/dsl/http/types.d.ts.map +1 -1
  47. package/esm/src/dsl/http/versori/configloader.d.ts.map +1 -1
  48. package/esm/src/dsl/http/versori/configloader.js +3 -1
  49. package/esm/src/dsl/http/versori/constants.d.ts.map +1 -1
  50. package/esm/src/dsl/http/versori/constants.js +1 -0
  51. package/esm/src/dsl/http/versori/contextcredentials.d.ts.map +1 -1
  52. package/esm/src/dsl/http/versori/proxyroundtripper.d.ts +5 -3
  53. package/esm/src/dsl/http/versori/proxyroundtripper.d.ts.map +1 -1
  54. package/esm/src/dsl/http/versori/proxyroundtripper.js +31 -8
  55. package/esm/src/dsl/http/versori/webhookmiddleware.d.ts +8 -5
  56. package/esm/src/dsl/http/versori/webhookmiddleware.d.ts.map +1 -1
  57. package/esm/src/dsl/http/versori/webhookmiddleware.js +114 -115
  58. package/esm/src/dsl/tasks/HttpTask.d.ts +8 -6
  59. package/esm/src/dsl/tasks/HttpTask.d.ts.map +1 -1
  60. package/esm/src/dsl/tasks/HttpTask.js +22 -22
  61. package/esm/src/dsl/triggers/DurableTrigger.d.ts +0 -1
  62. package/esm/src/dsl/triggers/DurableTrigger.d.ts.map +1 -1
  63. package/esm/src/internal/InternalAuth.d.ts +14 -0
  64. package/esm/src/internal/InternalAuth.d.ts.map +1 -0
  65. package/esm/src/internal/InternalAuth.js +74 -0
  66. package/esm/src/internal/constants.d.ts +20 -0
  67. package/esm/src/internal/constants.d.ts.map +1 -0
  68. package/esm/src/internal/constants.js +24 -0
  69. package/esm/src/interpreter/durable/DurableInterpreter.d.ts +14 -5
  70. package/esm/src/interpreter/durable/DurableInterpreter.d.ts.map +1 -1
  71. package/esm/src/interpreter/durable/DurableInterpreter.js +22 -38
  72. package/esm/src/interpreter/durable/ObservableCompiler.d.ts +6 -3
  73. package/esm/src/interpreter/durable/ObservableCompiler.d.ts.map +1 -1
  74. package/esm/src/interpreter/durable/Queue.d.ts +24 -16
  75. package/esm/src/interpreter/durable/Queue.d.ts.map +1 -1
  76. package/esm/src/interpreter/durable/Queue.js +3 -4
  77. package/esm/src/interpreter/durable/compilers/catch.js +2 -2
  78. package/esm/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
  79. package/esm/src/interpreter/durable/compilers/durableworkflow.js +29 -20
  80. package/esm/src/interpreter/durable/compilers/http.d.ts.map +1 -1
  81. package/esm/src/interpreter/durable/compilers/http.js +26 -9
  82. package/esm/src/interpreter/durable/compilers/schedule.d.ts.map +1 -1
  83. package/esm/src/interpreter/durable/compilers/schedule.js +41 -18
  84. package/esm/src/interpreter/durable/compilers/webhook.d.ts.map +1 -1
  85. package/esm/src/interpreter/durable/compilers/webhook.js +30 -33
  86. package/esm/src/interpreter/memory/MemoryInterpreter.d.ts +4 -4
  87. package/esm/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  88. package/esm/src/interpreter/memory/MemoryInterpreter.js +15 -25
  89. package/esm/src/interpreter/memory/ObservableCompiler.d.ts +6 -3
  90. package/esm/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
  91. package/esm/src/interpreter/memory/compilers/catch.js +2 -2
  92. package/esm/src/interpreter/memory/compilers/http.d.ts.map +1 -1
  93. package/esm/src/interpreter/memory/compilers/http.js +26 -9
  94. package/esm/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
  95. package/esm/src/interpreter/memory/compilers/schedule.js +34 -18
  96. package/esm/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
  97. package/esm/src/interpreter/memory/compilers/webhook.js +31 -34
  98. package/esm/src/kv/sdk/SDKKeyValue.d.ts.map +1 -1
  99. package/esm/src/kv/sdk/SDKKeyValue.js +7 -1
  100. package/esm/src/services/credentials/credential-v1alpha1.d.ts +4 -0
  101. package/esm/src/services/credentials/credential-v1alpha1.d.ts.map +1 -0
  102. package/esm/src/services/credentials/credential-v1alpha1.js +3 -0
  103. package/esm/src/services/credentials/generated/versori/credential/oauth1/v1/authorization_metadata_pb.d.ts +119 -0
  104. package/esm/src/services/credentials/generated/versori/credential/oauth1/v1/authorization_metadata_pb.d.ts.map +1 -0
  105. package/esm/src/services/credentials/generated/versori/credential/oauth1/v1/authorization_metadata_pb.js +67 -0
  106. package/esm/src/services/credentials/generated/versori/credential/oauth1/v1/authorization_service_pb.d.ts +245 -0
  107. package/esm/src/services/credentials/generated/versori/credential/oauth1/v1/authorization_service_pb.d.ts.map +1 -0
  108. package/esm/src/services/credentials/generated/versori/credential/oauth1/v1/authorization_service_pb.js +44 -0
  109. package/esm/src/services/credentials/generated/versori/credential/oauth2/v1/token_pb.d.ts +38 -0
  110. package/esm/src/services/credentials/generated/versori/credential/oauth2/v1/token_pb.d.ts.map +1 -0
  111. package/esm/src/{dsl/http → services/credentials/generated}/versori/credential/oauth2/v1/token_pb.js +1 -1
  112. package/esm/src/services/credentials/generated/versori/credential/oauth2/v1/token_service_pb.d.ts +471 -0
  113. package/esm/src/services/credentials/generated/versori/credential/oauth2/v1/token_service_pb.d.ts.map +1 -0
  114. package/esm/src/{dsl/http → services/credentials/generated}/versori/credential/oauth2/v1/token_service_pb.js +1 -1
  115. package/esm/src/services/credentials/generated/versori/credential/tokens/v1/token_pb.d.ts +38 -0
  116. package/esm/src/services/credentials/generated/versori/credential/tokens/v1/token_pb.d.ts.map +1 -0
  117. package/esm/src/{dsl/http → services/credentials/generated}/versori/credential/tokens/v1/token_pb.js +1 -1
  118. package/esm/src/services/credentials/generated/versori/credential/tokens/v1/token_service_pb.d.ts +128 -0
  119. package/esm/src/services/credentials/generated/versori/credential/tokens/v1/token_service_pb.d.ts.map +1 -0
  120. package/esm/src/{dsl/http → services/credentials/generated}/versori/credential/tokens/v1/token_service_pb.js +1 -1
  121. package/esm/src/services/credentials/generated/versori/credential/v1alpha1/common_pb.d.ts +90 -0
  122. package/esm/src/services/credentials/generated/versori/credential/v1alpha1/common_pb.d.ts.map +1 -0
  123. package/esm/src/{dsl/http → services/credentials/generated}/versori/credential/v1alpha1/common_pb.js +16 -6
  124. package/esm/src/services/credentials/generated/versori/credential/v1alpha1/credential_pb.d.ts +1468 -0
  125. package/esm/src/services/credentials/generated/versori/credential/v1alpha1/credential_pb.d.ts.map +1 -0
  126. package/esm/src/services/credentials/generated/versori/credential/v1alpha1/credential_pb.js +534 -0
  127. package/esm/src/services/credentials/generated/versori/credential/v1alpha1/credential_service_pb.d.ts +390 -0
  128. package/esm/src/services/credentials/generated/versori/credential/v1alpha1/credential_service_pb.d.ts.map +1 -0
  129. package/esm/src/{dsl/http → services/credentials/generated}/versori/credential/v1alpha1/credential_service_pb.js +1 -1
  130. package/esm/src/services/credentials/isTokenValid.d.ts +3 -0
  131. package/esm/src/services/credentials/isTokenValid.d.ts.map +1 -0
  132. package/esm/src/services/credentials/isTokenValid.js +23 -0
  133. package/esm/src/services/credentials/mod.d.ts +5 -0
  134. package/esm/src/services/credentials/mod.d.ts.map +1 -0
  135. package/esm/src/services/credentials/mod.js +4 -0
  136. package/esm/src/services/credentials/oauth1-v1.d.ts +3 -0
  137. package/esm/src/services/credentials/oauth1-v1.d.ts.map +1 -0
  138. package/esm/src/services/credentials/oauth1-v1.js +2 -0
  139. package/esm/src/services/credentials/oauth2-v1.d.ts +3 -0
  140. package/esm/src/services/credentials/oauth2-v1.d.ts.map +1 -0
  141. package/esm/src/services/credentials/oauth2-v1.js +2 -0
  142. package/esm/src/services/credentials/tokens-v1.d.ts +3 -0
  143. package/esm/src/services/credentials/tokens-v1.d.ts.map +1 -0
  144. package/esm/src/services/credentials/tokens-v1.js +2 -0
  145. package/esm/src/services/platform/PlatformApi.d.ts +7 -0
  146. package/esm/src/services/platform/PlatformApi.d.ts.map +1 -0
  147. package/esm/src/services/platform/PlatformApi.js +25 -0
  148. package/esm/src/services/platform/generated/client/client.gen.d.ts +3 -0
  149. package/esm/src/services/platform/generated/client/client.gen.d.ts.map +1 -0
  150. package/esm/src/services/platform/generated/client/client.gen.js +176 -0
  151. package/esm/src/services/platform/generated/client/index.d.ts +8 -0
  152. package/esm/src/services/platform/generated/client/index.d.ts.map +1 -0
  153. package/esm/src/services/platform/generated/client/index.js +5 -0
  154. package/esm/src/services/platform/generated/client/types.gen.d.ts +125 -0
  155. package/esm/src/services/platform/generated/client/types.gen.d.ts.map +1 -0
  156. package/esm/src/services/platform/generated/client/types.gen.js +2 -0
  157. package/esm/src/services/platform/generated/client/utils.gen.d.ts +39 -0
  158. package/esm/src/services/platform/generated/client/utils.gen.d.ts.map +1 -0
  159. package/esm/src/services/platform/generated/client/utils.gen.js +234 -0
  160. package/esm/src/services/platform/generated/client.gen.d.ts +13 -0
  161. package/esm/src/services/platform/generated/client.gen.d.ts.map +1 -0
  162. package/esm/src/services/platform/generated/client.gen.js +5 -0
  163. package/esm/src/services/platform/generated/core/auth.gen.d.ts +19 -0
  164. package/esm/src/services/platform/generated/core/auth.gen.d.ts.map +1 -0
  165. package/esm/src/services/platform/generated/core/auth.gen.js +14 -0
  166. package/esm/src/services/platform/generated/core/bodySerializer.gen.d.ts +18 -0
  167. package/esm/src/services/platform/generated/core/bodySerializer.gen.d.ts.map +1 -0
  168. package/esm/src/services/platform/generated/core/bodySerializer.gen.js +57 -0
  169. package/esm/src/services/platform/generated/core/params.gen.d.ts +34 -0
  170. package/esm/src/services/platform/generated/core/params.gen.d.ts.map +1 -0
  171. package/esm/src/services/platform/generated/core/params.gen.js +88 -0
  172. package/esm/src/services/platform/generated/core/pathSerializer.gen.d.ts +34 -0
  173. package/esm/src/services/platform/generated/core/pathSerializer.gen.d.ts.map +1 -0
  174. package/esm/src/services/platform/generated/core/pathSerializer.gen.js +114 -0
  175. package/esm/src/services/platform/generated/core/serverSentEvents.gen.d.ts +60 -0
  176. package/esm/src/services/platform/generated/core/serverSentEvents.gen.d.ts.map +1 -0
  177. package/esm/src/services/platform/generated/core/serverSentEvents.gen.js +121 -0
  178. package/esm/src/services/platform/generated/core/types.gen.d.ts +79 -0
  179. package/esm/src/services/platform/generated/core/types.gen.d.ts.map +1 -0
  180. package/esm/src/services/platform/generated/core/types.gen.js +2 -0
  181. package/esm/src/services/platform/generated/core/utils.gen.d.ts +15 -0
  182. package/esm/src/services/platform/generated/core/utils.gen.d.ts.map +1 -0
  183. package/esm/src/services/platform/generated/core/utils.gen.js +69 -0
  184. package/esm/src/services/platform/generated/index.d.ts +3 -0
  185. package/esm/src/services/platform/generated/index.d.ts.map +1 -0
  186. package/esm/src/services/platform/generated/index.js +3 -0
  187. package/esm/src/services/platform/generated/sdk.gen.d.ts +494 -0
  188. package/esm/src/services/platform/generated/sdk.gen.d.ts.map +1 -0
  189. package/esm/src/services/platform/generated/sdk.gen.js +1908 -0
  190. package/esm/src/services/platform/generated/types.gen.d.ts +3798 -0
  191. package/esm/src/services/platform/generated/types.gen.d.ts.map +1 -0
  192. package/esm/src/services/platform/generated/types.gen.js +2 -0
  193. package/esm/src/services/platform/mod.d.ts +5 -0
  194. package/esm/src/services/platform/mod.d.ts.map +1 -0
  195. package/esm/src/services/platform/mod.js +2 -0
  196. package/package.json +4 -4
  197. package/{esm/deps/jsr.io/@std/fs/1.0.19 → script/deps/jsr.io/@std/fs/1.0.20}/exists.d.ts.map +1 -1
  198. package/script/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
  199. package/script/src/connection/DirectConnectionFactory.d.ts +29 -0
  200. package/script/src/connection/DirectConnectionFactory.d.ts.map +1 -0
  201. package/script/src/connection/DirectConnectionFactory.js +86 -0
  202. package/script/src/connection/DynamicFetchFactory.d.ts +30 -0
  203. package/script/src/connection/DynamicFetchFactory.d.ts.map +1 -0
  204. package/script/src/connection/DynamicFetchFactory.js +117 -0
  205. package/script/src/connection/StaticFetchFactory.d.ts +11 -0
  206. package/script/src/connection/StaticFetchFactory.d.ts.map +1 -0
  207. package/script/src/connection/StaticFetchFactory.js +39 -0
  208. package/script/src/connection/internal/CredentialHolder.d.ts +11 -0
  209. package/script/src/connection/internal/CredentialHolder.d.ts.map +1 -0
  210. package/script/src/connection/internal/CredentialHolder.js +71 -0
  211. package/script/src/connection/internal/FetchBuilder.d.ts +15 -0
  212. package/script/src/connection/internal/FetchBuilder.d.ts.map +1 -0
  213. package/script/src/connection/internal/FetchBuilder.js +93 -0
  214. package/script/src/connection/internal/HttpClientFactory.d.ts +14 -0
  215. package/script/src/connection/internal/HttpClientFactory.d.ts.map +1 -0
  216. package/script/src/connection/internal/HttpClientFactory.js +46 -0
  217. package/script/src/connection/internal/InboundConnectionFactory.d.ts +19 -0
  218. package/script/src/connection/internal/InboundConnectionFactory.d.ts.map +1 -0
  219. package/script/src/connection/internal/InboundConnectionFactory.js +394 -0
  220. package/script/src/connection/internal/OutboundConnectionFactory.d.ts +31 -0
  221. package/script/src/connection/internal/OutboundConnectionFactory.d.ts.map +1 -0
  222. package/script/src/connection/internal/OutboundConnectionFactory.js +454 -0
  223. package/script/src/connection/types.d.ts +32 -0
  224. package/script/src/connection/types.d.ts.map +1 -0
  225. package/script/src/connection/types.js +2 -0
  226. package/script/src/context/ActivationImpl.d.ts +18 -0
  227. package/script/src/context/ActivationImpl.d.ts.map +1 -0
  228. package/script/src/context/ActivationImpl.js +86 -0
  229. package/script/src/context/AsyncWorkflow.js +1 -1
  230. package/script/src/context/Context.d.ts +10 -13
  231. package/script/src/context/Context.d.ts.map +1 -1
  232. package/script/src/context/Context.js +21 -19
  233. package/script/src/context/ContextProvider.d.ts +9 -3
  234. package/script/src/context/ContextProvider.d.ts.map +1 -1
  235. package/script/src/context/ContextProvider.js +31 -10
  236. package/script/src/context/WorkflowClient.d.ts +29 -0
  237. package/script/src/context/WorkflowClient.d.ts.map +1 -0
  238. package/script/src/context/WorkflowClient.js +99 -0
  239. package/script/src/dsl/http/default.d.ts.map +1 -1
  240. package/script/src/dsl/http/default.js +2 -2
  241. package/script/src/dsl/http/types.d.ts +9 -4
  242. package/script/src/dsl/http/types.d.ts.map +1 -1
  243. package/script/src/dsl/http/versori/configloader.d.ts.map +1 -1
  244. package/script/src/dsl/http/versori/configloader.js +3 -1
  245. package/script/src/dsl/http/versori/constants.d.ts.map +1 -1
  246. package/script/src/dsl/http/versori/constants.js +1 -0
  247. package/script/src/dsl/http/versori/contextcredentials.d.ts.map +1 -1
  248. package/script/src/dsl/http/versori/proxyroundtripper.d.ts +5 -3
  249. package/script/src/dsl/http/versori/proxyroundtripper.d.ts.map +1 -1
  250. package/script/src/dsl/http/versori/proxyroundtripper.js +31 -8
  251. package/script/src/dsl/http/versori/webhookmiddleware.d.ts +8 -5
  252. package/script/src/dsl/http/versori/webhookmiddleware.d.ts.map +1 -1
  253. package/script/src/dsl/http/versori/webhookmiddleware.js +114 -115
  254. package/script/src/dsl/tasks/HttpTask.d.ts +8 -6
  255. package/script/src/dsl/tasks/HttpTask.d.ts.map +1 -1
  256. package/script/src/dsl/tasks/HttpTask.js +22 -22
  257. package/script/src/dsl/triggers/DurableTrigger.d.ts +0 -1
  258. package/script/src/dsl/triggers/DurableTrigger.d.ts.map +1 -1
  259. package/script/src/internal/InternalAuth.d.ts +14 -0
  260. package/script/src/internal/InternalAuth.d.ts.map +1 -0
  261. package/script/src/internal/InternalAuth.js +78 -0
  262. package/script/src/internal/constants.d.ts +20 -0
  263. package/script/src/internal/constants.d.ts.map +1 -0
  264. package/script/src/internal/constants.js +27 -0
  265. package/script/src/interpreter/durable/DurableInterpreter.d.ts +14 -5
  266. package/script/src/interpreter/durable/DurableInterpreter.d.ts.map +1 -1
  267. package/script/src/interpreter/durable/DurableInterpreter.js +21 -37
  268. package/script/src/interpreter/durable/ObservableCompiler.d.ts +6 -3
  269. package/script/src/interpreter/durable/ObservableCompiler.d.ts.map +1 -1
  270. package/script/src/interpreter/durable/Queue.d.ts +24 -16
  271. package/script/src/interpreter/durable/Queue.d.ts.map +1 -1
  272. package/script/src/interpreter/durable/Queue.js +3 -4
  273. package/script/src/interpreter/durable/compilers/catch.js +2 -2
  274. package/script/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
  275. package/script/src/interpreter/durable/compilers/durableworkflow.js +29 -20
  276. package/script/src/interpreter/durable/compilers/http.d.ts.map +1 -1
  277. package/script/src/interpreter/durable/compilers/http.js +26 -9
  278. package/script/src/interpreter/durable/compilers/schedule.d.ts.map +1 -1
  279. package/script/src/interpreter/durable/compilers/schedule.js +41 -18
  280. package/script/src/interpreter/durable/compilers/webhook.d.ts.map +1 -1
  281. package/script/src/interpreter/durable/compilers/webhook.js +30 -33
  282. package/script/src/interpreter/memory/MemoryInterpreter.d.ts +4 -4
  283. package/script/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  284. package/script/src/interpreter/memory/MemoryInterpreter.js +15 -25
  285. package/script/src/interpreter/memory/ObservableCompiler.d.ts +6 -3
  286. package/script/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
  287. package/script/src/interpreter/memory/compilers/catch.js +2 -2
  288. package/script/src/interpreter/memory/compilers/http.d.ts.map +1 -1
  289. package/script/src/interpreter/memory/compilers/http.js +26 -9
  290. package/script/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
  291. package/script/src/interpreter/memory/compilers/schedule.js +34 -18
  292. package/script/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
  293. package/script/src/interpreter/memory/compilers/webhook.js +31 -34
  294. package/script/src/kv/sdk/SDKKeyValue.d.ts.map +1 -1
  295. package/script/src/kv/sdk/SDKKeyValue.js +7 -1
  296. package/script/src/services/credentials/credential-v1alpha1.d.ts +4 -0
  297. package/script/src/services/credentials/credential-v1alpha1.d.ts.map +1 -0
  298. package/script/src/services/credentials/credential-v1alpha1.js +19 -0
  299. package/script/src/services/credentials/generated/versori/credential/oauth1/v1/authorization_metadata_pb.d.ts +119 -0
  300. package/script/src/services/credentials/generated/versori/credential/oauth1/v1/authorization_metadata_pb.d.ts.map +1 -0
  301. package/script/src/services/credentials/generated/versori/credential/oauth1/v1/authorization_metadata_pb.js +70 -0
  302. package/script/src/services/credentials/generated/versori/credential/oauth1/v1/authorization_service_pb.d.ts +245 -0
  303. package/script/src/services/credentials/generated/versori/credential/oauth1/v1/authorization_service_pb.d.ts.map +1 -0
  304. package/script/src/services/credentials/generated/versori/credential/oauth1/v1/authorization_service_pb.js +47 -0
  305. package/script/src/services/credentials/generated/versori/credential/oauth2/v1/token_pb.d.ts +38 -0
  306. package/script/src/services/credentials/generated/versori/credential/oauth2/v1/token_pb.d.ts.map +1 -0
  307. package/script/src/{dsl/http → services/credentials/generated}/versori/credential/oauth2/v1/token_pb.js +1 -1
  308. package/script/src/services/credentials/generated/versori/credential/oauth2/v1/token_service_pb.d.ts +471 -0
  309. package/script/src/services/credentials/generated/versori/credential/oauth2/v1/token_service_pb.d.ts.map +1 -0
  310. package/script/src/{dsl/http → services/credentials/generated}/versori/credential/oauth2/v1/token_service_pb.js +1 -1
  311. package/script/src/services/credentials/generated/versori/credential/tokens/v1/token_pb.d.ts +38 -0
  312. package/script/src/services/credentials/generated/versori/credential/tokens/v1/token_pb.d.ts.map +1 -0
  313. package/script/src/{dsl/http → services/credentials/generated}/versori/credential/tokens/v1/token_pb.js +1 -1
  314. package/script/src/services/credentials/generated/versori/credential/tokens/v1/token_service_pb.d.ts +128 -0
  315. package/script/src/services/credentials/generated/versori/credential/tokens/v1/token_service_pb.d.ts.map +1 -0
  316. package/script/src/{dsl/http → services/credentials/generated}/versori/credential/tokens/v1/token_service_pb.js +1 -1
  317. package/script/src/services/credentials/generated/versori/credential/v1alpha1/common_pb.d.ts +90 -0
  318. package/script/src/services/credentials/generated/versori/credential/v1alpha1/common_pb.d.ts.map +1 -0
  319. package/script/src/{dsl/http → services/credentials/generated}/versori/credential/v1alpha1/common_pb.js +16 -6
  320. package/script/src/services/credentials/generated/versori/credential/v1alpha1/credential_pb.d.ts +1468 -0
  321. package/script/src/services/credentials/generated/versori/credential/v1alpha1/credential_pb.d.ts.map +1 -0
  322. package/script/src/services/credentials/generated/versori/credential/v1alpha1/credential_pb.js +538 -0
  323. package/script/src/services/credentials/generated/versori/credential/v1alpha1/credential_service_pb.d.ts +390 -0
  324. package/script/src/services/credentials/generated/versori/credential/v1alpha1/credential_service_pb.d.ts.map +1 -0
  325. package/script/src/{dsl/http → services/credentials/generated}/versori/credential/v1alpha1/credential_service_pb.js +1 -1
  326. package/script/src/services/credentials/isTokenValid.d.ts +3 -0
  327. package/script/src/services/credentials/isTokenValid.d.ts.map +1 -0
  328. package/script/src/services/credentials/isTokenValid.js +26 -0
  329. package/script/src/services/credentials/mod.d.ts +5 -0
  330. package/script/src/services/credentials/mod.d.ts.map +1 -0
  331. package/script/src/services/credentials/mod.js +30 -0
  332. package/script/src/services/credentials/oauth1-v1.d.ts +3 -0
  333. package/script/src/services/credentials/oauth1-v1.d.ts.map +1 -0
  334. package/script/src/services/credentials/oauth1-v1.js +18 -0
  335. package/script/src/services/credentials/oauth2-v1.d.ts +3 -0
  336. package/script/src/services/credentials/oauth2-v1.d.ts.map +1 -0
  337. package/script/src/services/credentials/oauth2-v1.js +18 -0
  338. package/script/src/services/credentials/tokens-v1.d.ts +3 -0
  339. package/script/src/services/credentials/tokens-v1.d.ts.map +1 -0
  340. package/script/src/services/credentials/tokens-v1.js +18 -0
  341. package/script/src/services/platform/PlatformApi.d.ts +7 -0
  342. package/script/src/services/platform/PlatformApi.d.ts.map +1 -0
  343. package/script/src/services/platform/PlatformApi.js +52 -0
  344. package/script/src/services/platform/generated/client/client.gen.d.ts +3 -0
  345. package/script/src/services/platform/generated/client/client.gen.d.ts.map +1 -0
  346. package/script/src/services/platform/generated/client/client.gen.js +180 -0
  347. package/script/src/services/platform/generated/client/index.d.ts +8 -0
  348. package/script/src/services/platform/generated/client/index.d.ts.map +1 -0
  349. package/script/src/services/platform/generated/client/index.js +15 -0
  350. package/script/src/services/platform/generated/client/types.gen.d.ts +125 -0
  351. package/script/src/services/platform/generated/client/types.gen.d.ts.map +1 -0
  352. package/script/src/services/platform/generated/client/types.gen.js +3 -0
  353. package/script/src/services/platform/generated/client/utils.gen.d.ts +39 -0
  354. package/script/src/services/platform/generated/client/utils.gen.d.ts.map +1 -0
  355. package/script/src/services/platform/generated/client/utils.gen.js +245 -0
  356. package/script/src/services/platform/generated/client.gen.d.ts +13 -0
  357. package/script/src/services/platform/generated/client.gen.d.ts.map +1 -0
  358. package/script/src/services/platform/generated/client.gen.js +8 -0
  359. package/script/src/services/platform/generated/core/auth.gen.d.ts +19 -0
  360. package/script/src/services/platform/generated/core/auth.gen.d.ts.map +1 -0
  361. package/script/src/services/platform/generated/core/auth.gen.js +18 -0
  362. package/script/src/services/platform/generated/core/bodySerializer.gen.d.ts +18 -0
  363. package/script/src/services/platform/generated/core/bodySerializer.gen.d.ts.map +1 -0
  364. package/script/src/services/platform/generated/core/bodySerializer.gen.js +60 -0
  365. package/script/src/services/platform/generated/core/params.gen.d.ts +34 -0
  366. package/script/src/services/platform/generated/core/params.gen.d.ts.map +1 -0
  367. package/script/src/services/platform/generated/core/params.gen.js +92 -0
  368. package/script/src/services/platform/generated/core/pathSerializer.gen.d.ts +34 -0
  369. package/script/src/services/platform/generated/core/pathSerializer.gen.d.ts.map +1 -0
  370. package/script/src/services/platform/generated/core/pathSerializer.gen.js +123 -0
  371. package/script/src/services/platform/generated/core/serverSentEvents.gen.d.ts +60 -0
  372. package/script/src/services/platform/generated/core/serverSentEvents.gen.d.ts.map +1 -0
  373. package/script/src/services/platform/generated/core/serverSentEvents.gen.js +125 -0
  374. package/script/src/services/platform/generated/core/types.gen.d.ts +79 -0
  375. package/script/src/services/platform/generated/core/types.gen.d.ts.map +1 -0
  376. package/script/src/services/platform/generated/core/types.gen.js +3 -0
  377. package/script/src/services/platform/generated/core/utils.gen.d.ts +15 -0
  378. package/script/src/services/platform/generated/core/utils.gen.d.ts.map +1 -0
  379. package/script/src/services/platform/generated/core/utils.gen.js +74 -0
  380. package/script/src/services/platform/generated/index.d.ts +3 -0
  381. package/script/src/services/platform/generated/index.d.ts.map +1 -0
  382. package/script/src/services/platform/generated/index.js +19 -0
  383. package/script/src/services/platform/generated/sdk.gen.d.ts +494 -0
  384. package/script/src/services/platform/generated/sdk.gen.d.ts.map +1 -0
  385. package/script/src/services/platform/generated/sdk.gen.js +1992 -0
  386. package/script/src/services/platform/generated/types.gen.d.ts +3798 -0
  387. package/script/src/services/platform/generated/types.gen.d.ts.map +1 -0
  388. package/script/src/services/platform/generated/types.gen.js +3 -0
  389. package/script/src/services/platform/mod.d.ts +5 -0
  390. package/script/src/services/platform/mod.d.ts.map +1 -0
  391. package/script/src/services/platform/mod.js +18 -0
  392. package/esm/src/dsl/http/versori/activation.d.ts +0 -13
  393. package/esm/src/dsl/http/versori/activation.d.ts.map +0 -1
  394. package/esm/src/dsl/http/versori/activation.js +0 -64
  395. package/esm/src/dsl/http/versori/credential/client.d.ts +0 -13
  396. package/esm/src/dsl/http/versori/credential/client.d.ts.map +0 -1
  397. package/esm/src/dsl/http/versori/credential/client.js +0 -35
  398. package/esm/src/dsl/http/versori/credential/credentials.d.ts +0 -98
  399. package/esm/src/dsl/http/versori/credential/credentials.d.ts.map +0 -1
  400. package/esm/src/dsl/http/versori/credential/credentials.js +0 -40
  401. package/esm/src/dsl/http/versori/credential/mod.d.ts +0 -2
  402. package/esm/src/dsl/http/versori/credential/mod.d.ts.map +0 -1
  403. package/esm/src/dsl/http/versori/credential/mod.js +0 -1
  404. package/esm/src/dsl/http/versori/credential/oauth2/v1/token_pb.d.ts +0 -13
  405. package/esm/src/dsl/http/versori/credential/oauth2/v1/token_pb.d.ts.map +0 -1
  406. package/esm/src/dsl/http/versori/credential/oauth2/v1/token_service_pb.d.ts +0 -102
  407. package/esm/src/dsl/http/versori/credential/oauth2/v1/token_service_pb.d.ts.map +0 -1
  408. package/esm/src/dsl/http/versori/credential/tokens/v1/token_pb.d.ts +0 -13
  409. package/esm/src/dsl/http/versori/credential/tokens/v1/token_pb.d.ts.map +0 -1
  410. package/esm/src/dsl/http/versori/credential/tokens/v1/token_service_pb.d.ts +0 -46
  411. package/esm/src/dsl/http/versori/credential/tokens/v1/token_service_pb.d.ts.map +0 -1
  412. package/esm/src/dsl/http/versori/credential/v1alpha1/common_pb.d.ts +0 -40
  413. package/esm/src/dsl/http/versori/credential/v1alpha1/common_pb.d.ts.map +0 -1
  414. package/esm/src/dsl/http/versori/credential/v1alpha1/credential_service_pb.d.ts +0 -129
  415. package/esm/src/dsl/http/versori/credential/v1alpha1/credential_service_pb.d.ts.map +0 -1
  416. package/esm/src/dsl/http/versori/platformapi.d.ts +0 -19
  417. package/esm/src/dsl/http/versori/platformapi.d.ts.map +0 -1
  418. package/esm/src/dsl/http/versori/platformapi.js +0 -148
  419. package/esm/src/dsl/http/versori/roundtripper.d.ts +0 -61
  420. package/esm/src/dsl/http/versori/roundtripper.d.ts.map +0 -1
  421. package/esm/src/dsl/http/versori/roundtripper.js +0 -967
  422. package/script/src/dsl/http/versori/activation.d.ts +0 -13
  423. package/script/src/dsl/http/versori/activation.d.ts.map +0 -1
  424. package/script/src/dsl/http/versori/activation.js +0 -68
  425. package/script/src/dsl/http/versori/credential/client.d.ts +0 -13
  426. package/script/src/dsl/http/versori/credential/client.d.ts.map +0 -1
  427. package/script/src/dsl/http/versori/credential/client.js +0 -39
  428. package/script/src/dsl/http/versori/credential/credentials.d.ts +0 -98
  429. package/script/src/dsl/http/versori/credential/credentials.d.ts.map +0 -1
  430. package/script/src/dsl/http/versori/credential/credentials.js +0 -46
  431. package/script/src/dsl/http/versori/credential/mod.d.ts +0 -2
  432. package/script/src/dsl/http/versori/credential/mod.d.ts.map +0 -1
  433. package/script/src/dsl/http/versori/credential/mod.js +0 -5
  434. package/script/src/dsl/http/versori/credential/oauth2/v1/token_pb.d.ts +0 -13
  435. package/script/src/dsl/http/versori/credential/oauth2/v1/token_pb.d.ts.map +0 -1
  436. package/script/src/dsl/http/versori/credential/oauth2/v1/token_service_pb.d.ts +0 -102
  437. package/script/src/dsl/http/versori/credential/oauth2/v1/token_service_pb.d.ts.map +0 -1
  438. package/script/src/dsl/http/versori/credential/tokens/v1/token_pb.d.ts +0 -13
  439. package/script/src/dsl/http/versori/credential/tokens/v1/token_pb.d.ts.map +0 -1
  440. package/script/src/dsl/http/versori/credential/tokens/v1/token_service_pb.d.ts +0 -46
  441. package/script/src/dsl/http/versori/credential/tokens/v1/token_service_pb.d.ts.map +0 -1
  442. package/script/src/dsl/http/versori/credential/v1alpha1/common_pb.d.ts +0 -40
  443. package/script/src/dsl/http/versori/credential/v1alpha1/common_pb.d.ts.map +0 -1
  444. package/script/src/dsl/http/versori/credential/v1alpha1/credential_service_pb.d.ts +0 -129
  445. package/script/src/dsl/http/versori/credential/v1alpha1/credential_service_pb.d.ts.map +0 -1
  446. package/script/src/dsl/http/versori/platformapi.d.ts +0 -19
  447. package/script/src/dsl/http/versori/platformapi.d.ts.map +0 -1
  448. package/script/src/dsl/http/versori/platformapi.js +0 -152
  449. package/script/src/dsl/http/versori/roundtripper.d.ts +0 -61
  450. package/script/src/dsl/http/versori/roundtripper.d.ts.map +0 -1
  451. package/script/src/dsl/http/versori/roundtripper.js +0 -974
  452. /package/esm/deps/jsr.io/@std/fs/{1.0.19 → 1.0.20}/exists.d.ts +0 -0
  453. /package/esm/deps/jsr.io/@std/fs/{1.0.19 → 1.0.20}/exists.js +0 -0
  454. /package/script/deps/jsr.io/@std/fs/{1.0.19 → 1.0.20}/exists.d.ts +0 -0
  455. /package/script/deps/jsr.io/@std/fs/{1.0.19 → 1.0.20}/exists.js +0 -0
@@ -0,0 +1,447 @@
1
+ import { LRUCache } from 'lru-cache';
2
+ import { isTokenValid } from '../../services/credentials/isTokenValid.js';
3
+ import { CredentialHolder } from './CredentialHolder.js';
4
+ import { FetchBuilder } from './FetchBuilder.js';
5
+ import OAuth from 'oauth-1.0a';
6
+ import { createHmac } from 'node:crypto';
7
+ export class OutboundConnectionFactory {
8
+ constructor(httpClientFactory, credentials, tokens, oauth1, logger) {
9
+ Object.defineProperty(this, "httpClientFactory", {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: httpClientFactory
14
+ });
15
+ Object.defineProperty(this, "credentials", {
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true,
19
+ value: credentials
20
+ });
21
+ Object.defineProperty(this, "tokens", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: tokens
26
+ });
27
+ Object.defineProperty(this, "oauth1", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: oauth1
32
+ });
33
+ Object.defineProperty(this, "logger", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: logger
38
+ });
39
+ Object.defineProperty(this, "cache", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: void 0
44
+ });
45
+ this.cache = new LRUCache({ max: 100 });
46
+ }
47
+ fetcher(cnx) {
48
+ // This function must be synchronous, do not update to be async/await!!!
49
+ // This implementation prevents multiple concurrent requests to trigger multiple calls to
50
+ // `this.buildFetcher` since the cache is populated synchronously with promises to the built fetch.
51
+ const cachedFetch = this.cache.get(cnx.id);
52
+ if (cachedFetch) {
53
+ return cachedFetch;
54
+ }
55
+ const fetcherPromise = this.buildFetcher(cnx);
56
+ // all subsequent callers to `fetcher()` will block on `fetcherPromise` if it is still pending.
57
+ this.cache.set(cnx.id, fetcherPromise);
58
+ return fetcherPromise;
59
+ }
60
+ async buildFetcher(cnx) {
61
+ // TODO(@teo): we have a tracing fetch as the base implementation on the old approach, this needs updating here.
62
+ const builder = new FetchBuilder(globalThis.fetch, cnx);
63
+ const middlewares = [];
64
+ for (const [index, cnxCredential] of cnx.credentials.entries()) {
65
+ middlewares.push(this.buildMiddleware(cnxCredential, index, cnx));
66
+ }
67
+ for (const middleware of await Promise.all(middlewares)) {
68
+ if (middleware) {
69
+ builder.use(middleware);
70
+ }
71
+ }
72
+ return builder.build();
73
+ }
74
+ buildMiddleware(cnxCredential, index, cnx) {
75
+ const { authSchemeConfig, credential: redactedCredential } = cnxCredential;
76
+ if (!authSchemeConfig || !redactedCredential) {
77
+ this.logger.warn('Connection credential is missing authSchemeConfig or credential', {
78
+ connectionId: cnx.id,
79
+ index,
80
+ authSchemeConfig,
81
+ redactedCredential,
82
+ });
83
+ return Promise.resolve(undefined);
84
+ }
85
+ switch (authSchemeConfig.type) {
86
+ case 'certificate': {
87
+ return this.buildCertificateMiddleware(redactedCredential);
88
+ }
89
+ case 'api-key': {
90
+ return this.buildApiKeyMiddleware(authSchemeConfig, redactedCredential);
91
+ }
92
+ case 'basic-auth': {
93
+ return this.buildBasicAuthMiddleware(redactedCredential);
94
+ }
95
+ case 'jwt-bearer': {
96
+ return this.buildJwtBearerMiddleware(redactedCredential);
97
+ }
98
+ case 'oauth2': {
99
+ return this.buildOAuth2Middleware(redactedCredential);
100
+ }
101
+ case 'oauth1': {
102
+ return this.buildOAuth1Middleware(redactedCredential);
103
+ }
104
+ // TODO(@teo): add support for all the other auth schemes
105
+ default:
106
+ this.logger.warn('Unsupported authSchemeConfig type', {
107
+ connectionId: cnx.id,
108
+ index,
109
+ authSchemeConfig,
110
+ });
111
+ return Promise.resolve(undefined);
112
+ }
113
+ }
114
+ async buildCertificateMiddleware(redactedCredential) {
115
+ const response = await this.credentials.get({
116
+ id: redactedCredential.id,
117
+ });
118
+ if (!response || !response.credential) {
119
+ return undefined;
120
+ }
121
+ const client = await this.httpClientFactory.getClient(response.credential);
122
+ if (!client) {
123
+ return undefined;
124
+ }
125
+ return (fetch) => {
126
+ return (input, init = {}) => {
127
+ return fetch(input, { ...init, client });
128
+ };
129
+ };
130
+ }
131
+ async buildApiKeyMiddleware(asc, redactedCredential) {
132
+ if (!asc.apiKey) {
133
+ throw new Error('AuthSchemeConfig.apiKey is required');
134
+ }
135
+ const response = await this.tokens.getToken({
136
+ credentialId: redactedCredential.id,
137
+ forceRefresh: false,
138
+ });
139
+ if (!response || !response.token) {
140
+ this.logger.warn('Response from getToken is empty', {
141
+ credentialId: redactedCredential.id,
142
+ response,
143
+ });
144
+ return undefined;
145
+ }
146
+ const tokenHolder = new CredentialHolder(response.token, isTokenValid, async () => {
147
+ const refreshed = await this.tokens.getToken({
148
+ credentialId: redactedCredential.id,
149
+ forceRefresh: false,
150
+ });
151
+ return refreshed.token;
152
+ });
153
+ let authMiddleware;
154
+ switch (asc.apiKey?.in) {
155
+ case 'header':
156
+ authMiddleware = this.buildApiKeyHeaderMiddleware(asc.apiKey, tokenHolder);
157
+ break;
158
+ case 'query':
159
+ authMiddleware = this.buildApiKeyQueryMiddleware(asc.apiKey, tokenHolder);
160
+ break;
161
+ case 'cookie':
162
+ authMiddleware = this.buildApiKeyCookieMiddleware(asc.apiKey, tokenHolder);
163
+ break;
164
+ default:
165
+ throw new Error('Unsupported apiKey.in value: ' + asc.apiKey?.in);
166
+ }
167
+ // wrap the middleware applying auth in a new middleware that handles refreshing tokens
168
+ // in the event of a 401 or 403 response. It's important that non of the middlewares above
169
+ // mutate the input or init parameters.
170
+ return refreshTokenMiddleware(authMiddleware, tokenHolder, this.logger);
171
+ }
172
+ buildApiKeyHeaderMiddleware(cfg, tokenHolder) {
173
+ return (fetch) => {
174
+ return async (input, init = {}) => {
175
+ const token = await tokenHolder.get();
176
+ const headers = new Headers(init?.headers);
177
+ headers.set(cfg.name, token.tokenType ? `${token.tokenType} ${token.accessToken}` : token.accessToken);
178
+ return fetch(input, {
179
+ ...init,
180
+ headers,
181
+ });
182
+ };
183
+ };
184
+ }
185
+ buildApiKeyQueryMiddleware(cfg, tokenHolder) {
186
+ return (fetch) => {
187
+ return async (input, init) => {
188
+ const token = await tokenHolder.get();
189
+ const params = new URLSearchParams({
190
+ [cfg.name]: token.accessToken,
191
+ });
192
+ if (input instanceof URL) {
193
+ // must clone the URL object to avoid modifying the original object in case of
194
+ // refreshing tokens and retrying the request.
195
+ const nextInput = new URL(input.toString());
196
+ params.forEach((value, key) => {
197
+ nextInput.searchParams.set(key, value);
198
+ });
199
+ input = nextInput;
200
+ }
201
+ else if (input instanceof Request) {
202
+ const url = new URL(input.url);
203
+ params.forEach((value, key) => {
204
+ url.searchParams.set(key, value);
205
+ });
206
+ input = new Request(url.toString(), {
207
+ ...init,
208
+ headers: new Headers(init?.headers),
209
+ });
210
+ }
211
+ else if (typeof input === 'string') {
212
+ const url = new URL(input);
213
+ params.forEach((value, key) => {
214
+ url.searchParams.set(key, value);
215
+ });
216
+ input = url.toString();
217
+ }
218
+ else {
219
+ throw new Error('Unsupported input parameter to fetch(): ' + typeof input);
220
+ }
221
+ return fetch(input, init);
222
+ };
223
+ };
224
+ }
225
+ buildApiKeyCookieMiddleware(cfg, tokenHolder) {
226
+ return (fetch) => {
227
+ return async (input, init = {}) => {
228
+ const token = await tokenHolder.get();
229
+ const cookie = `${cfg.name}=${token.accessToken}`;
230
+ const headers = new Headers(init?.headers);
231
+ if (headers.has('Cookie')) {
232
+ headers.set('Cookie', `${headers.get('Cookie')}; ${cookie}`);
233
+ }
234
+ else {
235
+ headers.set('Cookie', cookie);
236
+ }
237
+ return fetch(input, {
238
+ ...init,
239
+ headers,
240
+ });
241
+ };
242
+ };
243
+ }
244
+ async buildBasicAuthMiddleware(redactedCredential) {
245
+ const response = await this.tokens.getToken({
246
+ credentialId: redactedCredential.id,
247
+ });
248
+ if (!response || !response.token) {
249
+ this.logger.warn('Empty response for basic auth credential', {
250
+ credentialId: redactedCredential.id,
251
+ response,
252
+ });
253
+ return Promise.resolve(undefined);
254
+ }
255
+ const tokenHolder = new CredentialHolder(response.token, isTokenValid, async () => {
256
+ const refreshed = await this.tokens.getToken({
257
+ credentialId: redactedCredential.id,
258
+ forceRefresh: false,
259
+ });
260
+ return refreshed.token;
261
+ });
262
+ const authMiddleware = this.buildBasicAuthHeaderMiddleware(tokenHolder);
263
+ return Promise.resolve(refreshTokenMiddleware(authMiddleware, tokenHolder, this.logger));
264
+ }
265
+ async buildOAuth1Middleware(redactedCredential) {
266
+ const oauth1Meta = await this.oauth1.getAuthorizationMetadata({
267
+ credentialId: redactedCredential.id,
268
+ });
269
+ if (!oauth1Meta || !oauth1Meta.authorizationMetadata) {
270
+ this.logger.warn('Empty response for OAuth1 metadata', {
271
+ credentialId: redactedCredential.id,
272
+ oauth1Meta,
273
+ });
274
+ return Promise.resolve(undefined);
275
+ }
276
+ const tokenHolder = new CredentialHolder(oauth1Meta.authorizationMetadata, () => true, async () => {
277
+ const refreshed = await this.oauth1.getAuthorizationMetadata({
278
+ credentialId: redactedCredential.id,
279
+ });
280
+ return refreshed.authorizationMetadata;
281
+ });
282
+ const authMiddleware = this.buildOAuth1HeaderMiddleware(tokenHolder);
283
+ return Promise.resolve(refreshTokenMiddleware(authMiddleware, tokenHolder, this.logger));
284
+ }
285
+ buildBasicAuthHeaderMiddleware(tokenHolder) {
286
+ return (fetch) => {
287
+ return async (input, init = {}) => {
288
+ const token = await tokenHolder.get();
289
+ const headers = new Headers(init?.headers);
290
+ headers.set('Authorization', `Basic ${token.accessToken}`);
291
+ return fetch(input, {
292
+ ...init,
293
+ headers,
294
+ });
295
+ };
296
+ };
297
+ }
298
+ buildOAuth1HeaderMiddleware(tokenHolder) {
299
+ return (fetch) => {
300
+ return async (input, init = {}) => {
301
+ const metadata = await tokenHolder.get();
302
+ const authParams = new URLSearchParams(metadata.authorizationParams);
303
+ if (!metadata.authorizationParams) {
304
+ throw new Error('OAuth1 metadata not found');
305
+ }
306
+ const oauth = new OAuth({
307
+ consumer: {
308
+ key: metadata.consumerKey,
309
+ secret: metadata.consumerSecret,
310
+ },
311
+ signature_method: 'HMAC-SHA256',
312
+ hash_function: (baseString, key) => createHmac('sha256', key).update(baseString).digest('base64'),
313
+ realm: authParams.get('realm') || undefined,
314
+ });
315
+ let url;
316
+ if (input instanceof Request) {
317
+ url = input.url;
318
+ }
319
+ else if (input instanceof URL) {
320
+ url = input.toString();
321
+ }
322
+ else if (typeof input === 'string') {
323
+ url = input;
324
+ }
325
+ else {
326
+ throw new Error('Invalid input type for OAuth1 fetcher');
327
+ }
328
+ const header = oauth.toHeader(oauth.authorize({
329
+ url: url,
330
+ method: init?.method || 'GET',
331
+ }, {
332
+ key: metadata.oauthToken,
333
+ secret: metadata.oauthTokenSecret,
334
+ }));
335
+ const authHeader = header.Authorization;
336
+ if (!init) {
337
+ init = {};
338
+ }
339
+ if (!init.headers) {
340
+ init.headers = new Headers();
341
+ }
342
+ if (init.headers instanceof Headers) {
343
+ init.headers.set('Authorization', authHeader);
344
+ }
345
+ else if (init.headers instanceof Array) {
346
+ init.headers.push(['Authorization', authHeader]);
347
+ }
348
+ else {
349
+ init.headers = {
350
+ ...init.headers,
351
+ ['Authorization']: authHeader,
352
+ };
353
+ }
354
+ return fetch(input, init);
355
+ };
356
+ };
357
+ }
358
+ async buildJwtBearerMiddleware(redactedCredential) {
359
+ const response = await this.tokens.getToken({
360
+ credentialId: redactedCredential.id,
361
+ });
362
+ if (!response || !response.token) {
363
+ this.logger.warn('Empty response for JWT bearer credential', {
364
+ credentialId: redactedCredential.id,
365
+ response,
366
+ });
367
+ return Promise.resolve(undefined);
368
+ }
369
+ const tokenHolder = new CredentialHolder(response.token, isTokenValid, async () => {
370
+ const refreshed = await this.tokens.getToken({
371
+ credentialId: redactedCredential.id,
372
+ forceRefresh: false,
373
+ });
374
+ return refreshed.token;
375
+ });
376
+ const authMiddleware = this.buildAuthorizationHeaderMiddleware(tokenHolder);
377
+ return Promise.resolve(refreshTokenMiddleware(authMiddleware, tokenHolder, this.logger));
378
+ }
379
+ async buildOAuth2Middleware(redactedCredential) {
380
+ const response = await this.tokens.getToken({
381
+ credentialId: redactedCredential.id,
382
+ });
383
+ if (!response || !response.token) {
384
+ return Promise.resolve(undefined);
385
+ }
386
+ const tokenHolder = new CredentialHolder(response.token, isTokenValid, async () => {
387
+ const refreshed = await this.tokens.getToken({
388
+ credentialId: redactedCredential.id,
389
+ forceRefresh: true,
390
+ });
391
+ return refreshed.token;
392
+ });
393
+ let tokenType = 'Bearer';
394
+ switch (response.token.tokenType?.toLowerCase()) {
395
+ case 'mac':
396
+ tokenType = 'MAC';
397
+ break;
398
+ case 'bearer':
399
+ tokenType = 'Bearer';
400
+ break;
401
+ case 'basic':
402
+ tokenType = 'Basic';
403
+ break;
404
+ default:
405
+ tokenType = 'Bearer';
406
+ break;
407
+ }
408
+ return this.buildAuthorizationHeaderMiddleware(tokenHolder, tokenType);
409
+ }
410
+ buildAuthorizationHeaderMiddleware(tokenHolder, tokenType = 'Bearer') {
411
+ return (fetch) => {
412
+ return async (input, init = {}) => {
413
+ const token = await tokenHolder.get();
414
+ const headers = new Headers(init?.headers);
415
+ headers.set('Authorization', `${tokenType} ${token.accessToken}`);
416
+ console.log('headers', input);
417
+ return fetch(input, {
418
+ ...init,
419
+ headers,
420
+ });
421
+ };
422
+ };
423
+ }
424
+ }
425
+ function refreshTokenMiddleware(authMiddleware, tokenHolder, logger) {
426
+ return (fetch) => {
427
+ if (authMiddleware) {
428
+ fetch = authMiddleware(fetch);
429
+ }
430
+ return async (input, init = {}) => {
431
+ const response = await fetch(input, init);
432
+ if (response.ok) {
433
+ return response;
434
+ }
435
+ if (response.status !== 401 && response.status !== 403) {
436
+ return response;
437
+ }
438
+ // the response is a 401 or 403, try refreshing the token and retrying the request
439
+ tokenHolder.refresh();
440
+ if (init.body instanceof ReadableStream) {
441
+ logger.warn(`received ${response.status} but cannot refresh token requests using ReadableStream body`);
442
+ return response;
443
+ }
444
+ return fetch(input, init);
445
+ };
446
+ };
447
+ }
@@ -0,0 +1,32 @@
1
+ import type * as express from 'express';
2
+ import { Context } from '../context/Context.js';
3
+ import { Connection } from '../services/platform/mod.js';
4
+ export type FetchLike = typeof fetch;
5
+ export type OutboundMiddleware = (fetch: FetchLike) => FetchLike;
6
+ /**
7
+ * ConnectionFactory is a factory class that can be used to create an instance of {@link RuntimeConnectionFactory} based
8
+ * on the type of connection being used by a step.
9
+ */
10
+ export interface ConnectionFactory {
11
+ fetcher(cnx: Connection): Promise<FetchLike>;
12
+ handler(cnx: Connection): Promise<express.RequestHandler>;
13
+ }
14
+ /**
15
+ * RuntimeConnectionFactory is similar to {@link ConnectionFactory} but is constructed at boot-time by the interpreter
16
+ * and is used during execution runtime to return the associated {@link FetchLike} and {@link express.RequestHandler}
17
+ * for a given {@link Context}.
18
+ *
19
+ * This will either be a {@link StaticFetchFactory} or a {@link DynamicFetchFactory} depending on the type of connection
20
+ * being used.
21
+ */
22
+ export interface RuntimeConnectionFactory {
23
+ fetcher(ctx: Context<unknown>): Promise<FetchLike>;
24
+ baseUrl(ctx: Context<unknown>): Promise<string>;
25
+ handler(ctx: Context<unknown>): Promise<express.RequestHandler>;
26
+ }
27
+ /**
28
+ * ExpressHandlers is the interface for returning a dynamic express handler based on the provided context.
29
+ */
30
+ export interface ExpressHandlers {
31
+ }
32
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/connection/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,MAAM,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC;AAErC,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;CAC7D;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACrC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;CACnE;AAuBD;;GAEG;AACH,MAAM,WAAW,eAAe;CAC/B"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ import { Logger } from '../observability/mod.js';
2
+ import { Activation, Connection, DynamicVariables, EndUser, PlatformApi, ProjectEnvironment } from '../services/platform/mod.js';
3
+ export declare class ActivationImpl implements Activation {
4
+ private readonly activation;
5
+ private readonly platformApi;
6
+ private readonly organisationId;
7
+ private readonly environmentId;
8
+ private readonly log;
9
+ constructor(activation: Activation, platformApi: PlatformApi, organisationId: string, environmentId: string, log: Logger);
10
+ get id(): string;
11
+ get user(): EndUser;
12
+ get environment(): ProjectEnvironment | undefined;
13
+ get connections(): Array<Connection> | undefined;
14
+ get dynamicVariables(): DynamicVariables | undefined;
15
+ getVariable<T = unknown>(name: string): T | undefined;
16
+ setVariable(name: string, value: unknown): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=ActivationImpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivationImpl.d.ts","sourceRoot":"","sources":["../../../src/src/context/ActivationImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjI,qBAAa,cAAe,YAAW,UAAU;IAEzC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAJH,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM;IAGhC,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,WAAW,IAAI,kBAAkB,GAAG,SAAS,CAEhD;IAED,IAAI,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,SAAS,CAE/C;IAED,IAAI,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAEnD;IAED,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAQ/C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CA8BjE"}
@@ -0,0 +1,82 @@
1
+ export class ActivationImpl {
2
+ constructor(activation, platformApi, organisationId, environmentId, log) {
3
+ Object.defineProperty(this, "activation", {
4
+ enumerable: true,
5
+ configurable: true,
6
+ writable: true,
7
+ value: activation
8
+ });
9
+ Object.defineProperty(this, "platformApi", {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: platformApi
14
+ });
15
+ Object.defineProperty(this, "organisationId", {
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true,
19
+ value: organisationId
20
+ });
21
+ Object.defineProperty(this, "environmentId", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: environmentId
26
+ });
27
+ Object.defineProperty(this, "log", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: log
32
+ });
33
+ }
34
+ get id() {
35
+ return this.activation.id;
36
+ }
37
+ get user() {
38
+ return this.activation.user;
39
+ }
40
+ get environment() {
41
+ return this.activation.environment;
42
+ }
43
+ get connections() {
44
+ return this.activation.connections;
45
+ }
46
+ get dynamicVariables() {
47
+ return this.activation.dynamicVariables;
48
+ }
49
+ getVariable(name) {
50
+ if (!this.activation.dynamicVariables) {
51
+ return undefined;
52
+ }
53
+ return this.activation.dynamicVariables[name];
54
+ }
55
+ async setVariable(name, value) {
56
+ if (!this.activation.dynamicVariables) {
57
+ this.log.error(`No variables found for activation`);
58
+ return;
59
+ }
60
+ try {
61
+ await this.platformApi.setDynamicVariable({
62
+ path: {
63
+ organisation_id: this.organisationId,
64
+ environment_id: this.environmentId,
65
+ activation_id: this.id,
66
+ variable_name: name,
67
+ },
68
+ body: {
69
+ value,
70
+ }
71
+ });
72
+ }
73
+ catch (err) {
74
+ this.log.error(`Failed to set variable`, {
75
+ error: err,
76
+ variableName: name,
77
+ });
78
+ return;
79
+ }
80
+ this.activation.dynamicVariables[name] = value;
81
+ }
82
+ }
@@ -60,7 +60,7 @@ export class AsyncWorkflow {
60
60
  this.isWaiting = false;
61
61
  throw new Error('wait timed out');
62
62
  }
63
- const workflow = await this.queue.poll(this.workflowId);
63
+ const workflow = await this.queue.getWorkflow(this.workflowId);
64
64
  if (workflow.status === 'completed') {
65
65
  // workflow is completed, parse the output and set the data and completed to true
66
66
  const stringData = workflow.output;
@@ -1,25 +1,21 @@
1
1
  import type * as express from 'express';
2
- import { Activation } from '../dsl/http/types.js';
3
2
  import { CredentialsProvider } from '../dsl/http/versori/contextcredentials.js';
4
3
  import { QueueAPI } from '../interpreter/durable/Queue.js';
5
4
  import { Issue, IssueAPI } from '../issues/Issues.js';
6
5
  import { KeyValue, KeyValueProvider, KeyValueScope } from '../kv/KeyValue.js';
7
6
  import { Logger } from '../observability/logging/Logger.js';
8
7
  import { AsyncWorkflow } from './AsyncWorkflow.js';
8
+ import { Workflow } from '../interpreter/durable/Queue.js';
9
+ import { ActivationImpl } from './ActivationImpl.js';
10
+ import { WorkflowInterface, WorkflowOpts } from './WorkflowClient.js';
9
11
  export type OnSuccessFn = (ctx: Context<any>) => void;
10
12
  export type OnErrorFn = (ctx: Context<any>) => void;
11
13
  export type ContextOptions = {
12
- activation?: Activation;
13
- workflowId?: string;
14
+ workflow?: Workflow;
14
15
  request?: express.Request;
15
16
  onSuccess?: OnSuccessFn;
16
17
  onError?: OnErrorFn;
17
18
  };
18
- export type WorkflowOpts = {
19
- maxAttempts?: number;
20
- data?: unknown;
21
- dataRaw?: string;
22
- };
23
19
  export type CreateIssue = {
24
20
  severity: 'low' | 'medium' | 'high';
25
21
  title: string;
@@ -31,7 +27,7 @@ export interface Context<D> {
31
27
  readonly executionId: string;
32
28
  readonly startTime: Date;
33
29
  readonly data: D;
34
- activation?: Activation;
30
+ activation: ActivationImpl;
35
31
  /**
36
32
  * Opens a key value store for the given scope, defaulting to ':project:' if not provided.
37
33
  * @param scope
@@ -44,6 +40,7 @@ export interface Context<D> {
44
40
  deduplicate?: boolean;
45
41
  }): Promise<Issue | null>;
46
42
  request(): express.Request | undefined;
43
+ workflowClient(): WorkflowInterface;
47
44
  }
48
45
  export declare class ContextImpl<D, Index = void> implements Context<D> {
49
46
  #private;
@@ -55,14 +52,14 @@ export declare class ContextImpl<D, Index = void> implements Context<D> {
55
52
  readonly kvp: KeyValueProvider;
56
53
  readonly queue?: QueueAPI;
57
54
  readonly options: ContextOptions;
58
- constructor(log: Logger, kvp: KeyValueProvider, creds: CredentialsProvider, executionId: string, startTime: Date, data: D, issues: IssueAPI, queue?: QueueAPI, options?: ContextOptions);
59
- get activation(): Activation | undefined;
60
- get workflowId(): string | undefined;
55
+ constructor(log: Logger, kvp: KeyValueProvider, creds: CredentialsProvider, executionId: string, startTime: Date, data: D, activation: ActivationImpl, issues: IssueAPI, queue?: QueueAPI, options?: ContextOptions);
56
+ get activation(): ActivationImpl;
57
+ get workflow(): Workflow | undefined;
61
58
  setIndex(idx: number): ContextImpl<D, number>;
62
- withActivation(activation: Activation): ContextImpl<D, Index>;
63
59
  withData<D2>(data: D2): ContextImpl<D2, Index>;
64
60
  openKv(scope?: KeyValueScope): KeyValue;
65
61
  request(): express.Request | undefined;
62
+ workflowClient(): WorkflowInterface;
66
63
  start(group: string, opts: WorkflowOpts): Promise<AsyncWorkflow>;
67
64
  createIssue(issue: CreateIssue, options?: {
68
65
  deduplicate?: boolean;