@procedures/client 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (777) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/LICENSE +21 -0
  3. package/README.md +832 -2
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/adapters/http/client/index.d.ts +11 -0
  6. package/dist/adapters/http/client/index.d.ts.map +1 -0
  7. package/dist/adapters/http/client/index.js +18 -0
  8. package/dist/adapters/http/client/index.js.map +1 -0
  9. package/dist/adapters/http/client/transport.d.ts +72 -0
  10. package/dist/adapters/http/client/transport.d.ts.map +1 -0
  11. package/dist/adapters/http/client/transport.js +282 -0
  12. package/dist/adapters/http/client/transport.js.map +1 -0
  13. package/dist/adapters/http/client/types.d.ts +27 -0
  14. package/dist/adapters/http/client/types.d.ts.map +1 -0
  15. package/dist/adapters/http/client/types.js +8 -0
  16. package/dist/adapters/http/client/types.js.map +1 -0
  17. package/dist/adapters/http/index.d.ts +7 -0
  18. package/dist/adapters/http/index.d.ts.map +1 -0
  19. package/dist/adapters/http/index.js +7 -0
  20. package/dist/adapters/http/index.js.map +1 -0
  21. package/dist/adapters/http/server/index.d.ts +9 -0
  22. package/dist/adapters/http/server/index.d.ts.map +1 -0
  23. package/dist/adapters/http/server/index.js +10 -0
  24. package/dist/adapters/http/server/index.js.map +1 -0
  25. package/dist/adapters/http/server/strategies.d.ts +39 -0
  26. package/dist/adapters/http/server/strategies.d.ts.map +1 -0
  27. package/dist/adapters/http/server/strategies.js +90 -0
  28. package/dist/adapters/http/server/strategies.js.map +1 -0
  29. package/dist/adapters/http/server/transport.d.ts +66 -0
  30. package/dist/adapters/http/server/transport.d.ts.map +1 -0
  31. package/dist/adapters/http/server/transport.js +562 -0
  32. package/dist/adapters/http/server/transport.js.map +1 -0
  33. package/dist/adapters/http/server/types.d.ts +71 -0
  34. package/dist/adapters/http/server/types.d.ts.map +1 -0
  35. package/dist/adapters/http/server/types.js +7 -0
  36. package/dist/adapters/http/server/types.js.map +1 -0
  37. package/dist/adapters/http/shared/constants.d.ts +95 -0
  38. package/dist/adapters/http/shared/constants.d.ts.map +1 -0
  39. package/dist/adapters/http/shared/constants.js +102 -0
  40. package/dist/adapters/http/shared/constants.js.map +1 -0
  41. package/dist/adapters/http/shared/errors.d.ts +78 -0
  42. package/dist/adapters/http/shared/errors.d.ts.map +1 -0
  43. package/dist/adapters/http/shared/errors.js +151 -0
  44. package/dist/adapters/http/shared/errors.js.map +1 -0
  45. package/dist/adapters/http/shared/headers.d.ts +122 -0
  46. package/dist/adapters/http/shared/headers.d.ts.map +1 -0
  47. package/dist/adapters/http/shared/headers.js +216 -0
  48. package/dist/adapters/http/shared/headers.js.map +1 -0
  49. package/dist/adapters/http/shared/index.d.ts +12 -0
  50. package/dist/adapters/http/shared/index.d.ts.map +1 -0
  51. package/dist/adapters/http/shared/index.js +17 -0
  52. package/dist/adapters/http/shared/index.js.map +1 -0
  53. package/dist/adapters/http/shared/status-codes.d.ts +92 -0
  54. package/dist/adapters/http/shared/status-codes.d.ts.map +1 -0
  55. package/dist/adapters/http/shared/status-codes.js +189 -0
  56. package/dist/adapters/http/shared/status-codes.js.map +1 -0
  57. package/dist/adapters/http/shared/strategies.d.ts +90 -0
  58. package/dist/adapters/http/shared/strategies.d.ts.map +1 -0
  59. package/dist/adapters/http/shared/strategies.js +180 -0
  60. package/dist/adapters/http/shared/strategies.js.map +1 -0
  61. package/dist/adapters/local/client/index.d.ts +8 -0
  62. package/dist/adapters/local/client/index.d.ts.map +1 -0
  63. package/dist/adapters/local/client/index.js +8 -0
  64. package/dist/adapters/local/client/index.js.map +1 -0
  65. package/dist/adapters/local/client/transport.d.ts +81 -0
  66. package/dist/adapters/local/client/transport.d.ts.map +1 -0
  67. package/dist/adapters/local/client/transport.js +172 -0
  68. package/dist/adapters/local/client/transport.js.map +1 -0
  69. package/dist/adapters/local/client/types.d.ts +39 -0
  70. package/dist/adapters/local/client/types.d.ts.map +1 -0
  71. package/dist/adapters/local/client/types.js +13 -0
  72. package/dist/adapters/local/client/types.js.map +1 -0
  73. package/dist/adapters/metadata.d.ts +10 -0
  74. package/dist/adapters/metadata.d.ts.map +1 -0
  75. package/dist/adapters/metadata.js +19 -0
  76. package/dist/adapters/metadata.js.map +1 -0
  77. package/dist/adapters/mock/client/builder.d.ts +35 -0
  78. package/dist/adapters/mock/client/builder.d.ts.map +1 -0
  79. package/dist/adapters/mock/client/builder.js +58 -0
  80. package/dist/adapters/mock/client/builder.js.map +1 -0
  81. package/dist/adapters/mock/client/index.d.ts +9 -0
  82. package/dist/adapters/mock/client/index.d.ts.map +1 -0
  83. package/dist/adapters/mock/client/index.js +10 -0
  84. package/dist/adapters/mock/client/index.js.map +1 -0
  85. package/dist/adapters/mock/client/transport.d.ts +149 -0
  86. package/dist/adapters/mock/client/transport.d.ts.map +1 -0
  87. package/dist/adapters/mock/client/transport.js +289 -0
  88. package/dist/adapters/mock/client/transport.js.map +1 -0
  89. package/dist/adapters/mock/client/types.d.ts +86 -0
  90. package/dist/adapters/mock/client/types.d.ts.map +1 -0
  91. package/dist/adapters/mock/client/types.js +7 -0
  92. package/dist/adapters/mock/client/types.js.map +1 -0
  93. package/dist/adapters/websocket/client/index.d.ts +9 -0
  94. package/dist/adapters/websocket/client/index.d.ts.map +1 -0
  95. package/dist/adapters/websocket/client/index.js +9 -0
  96. package/dist/adapters/websocket/client/index.js.map +1 -0
  97. package/dist/adapters/websocket/client/transport.d.ts +106 -0
  98. package/dist/adapters/websocket/client/transport.d.ts.map +1 -0
  99. package/dist/adapters/websocket/client/transport.js +647 -0
  100. package/dist/adapters/websocket/client/transport.js.map +1 -0
  101. package/dist/adapters/websocket/client/types.d.ts +192 -0
  102. package/dist/adapters/websocket/client/types.d.ts.map +1 -0
  103. package/dist/adapters/websocket/client/types.js +17 -0
  104. package/dist/adapters/websocket/client/types.js.map +1 -0
  105. package/dist/adapters/websocket/index.d.ts +8 -0
  106. package/dist/adapters/websocket/index.d.ts.map +1 -0
  107. package/dist/adapters/websocket/index.js +8 -0
  108. package/dist/adapters/websocket/index.js.map +1 -0
  109. package/dist/adapters/websocket/server/index.d.ts +8 -0
  110. package/dist/adapters/websocket/server/index.d.ts.map +1 -0
  111. package/dist/adapters/websocket/server/index.js +8 -0
  112. package/dist/adapters/websocket/server/index.js.map +1 -0
  113. package/dist/adapters/websocket/server/transport.d.ts +112 -0
  114. package/dist/adapters/websocket/server/transport.d.ts.map +1 -0
  115. package/dist/adapters/websocket/server/transport.js +619 -0
  116. package/dist/adapters/websocket/server/transport.js.map +1 -0
  117. package/dist/adapters/websocket/server/types.d.ts +140 -0
  118. package/dist/adapters/websocket/server/types.d.ts.map +1 -0
  119. package/dist/adapters/websocket/server/types.js +7 -0
  120. package/dist/adapters/websocket/server/types.js.map +1 -0
  121. package/dist/browser.d.ts +51 -0
  122. package/dist/browser.d.ts.map +1 -0
  123. package/dist/browser.js +89 -0
  124. package/dist/browser.js.map +1 -0
  125. package/dist/client/batch-executor.d.ts +160 -0
  126. package/dist/client/batch-executor.d.ts.map +1 -0
  127. package/dist/client/batch-executor.js +397 -0
  128. package/dist/client/batch-executor.js.map +1 -0
  129. package/dist/client/call-types.d.ts +271 -0
  130. package/dist/client/call-types.d.ts.map +1 -0
  131. package/dist/client/call-types.js +208 -0
  132. package/dist/client/call-types.js.map +1 -0
  133. package/dist/client/client.d.ts +525 -0
  134. package/dist/client/client.d.ts.map +1 -0
  135. package/dist/client/client.js +1011 -0
  136. package/dist/client/client.js.map +1 -0
  137. package/dist/client/consumption.d.ts +191 -0
  138. package/dist/client/consumption.d.ts.map +1 -0
  139. package/dist/client/consumption.js +98 -0
  140. package/dist/client/consumption.js.map +1 -0
  141. package/dist/client/context.d.ts +116 -0
  142. package/dist/client/context.d.ts.map +1 -0
  143. package/dist/client/context.js +111 -0
  144. package/dist/client/context.js.map +1 -0
  145. package/dist/client/errors/codes.d.ts +71 -0
  146. package/dist/client/errors/codes.d.ts.map +1 -0
  147. package/dist/client/errors/codes.js +81 -0
  148. package/dist/client/errors/codes.js.map +1 -0
  149. package/dist/client/errors/factory.d.ts +102 -0
  150. package/dist/client/errors/factory.d.ts.map +1 -0
  151. package/dist/client/errors/factory.js +210 -0
  152. package/dist/client/errors/factory.js.map +1 -0
  153. package/dist/client/errors/http-errors.d.ts +47 -0
  154. package/dist/client/errors/http-errors.d.ts.map +1 -0
  155. package/dist/client/errors/http-errors.js +548 -0
  156. package/dist/client/errors/http-errors.js.map +1 -0
  157. package/dist/client/errors/http-status.d.ts +73 -0
  158. package/dist/client/errors/http-status.d.ts.map +1 -0
  159. package/dist/client/errors/http-status.js +79 -0
  160. package/dist/client/errors/http-status.js.map +1 -0
  161. package/dist/client/errors/index.d.ts +36 -0
  162. package/dist/client/errors/index.d.ts.map +1 -0
  163. package/dist/client/errors/index.js +40 -0
  164. package/dist/client/errors/index.js.map +1 -0
  165. package/dist/client/errors/registry.d.ts +38 -0
  166. package/dist/client/errors/registry.d.ts.map +1 -0
  167. package/dist/client/errors/registry.js +535 -0
  168. package/dist/client/errors/registry.js.map +1 -0
  169. package/dist/client/errors/types.d.ts +112 -0
  170. package/dist/client/errors/types.d.ts.map +1 -0
  171. package/dist/client/errors/types.js +45 -0
  172. package/dist/client/errors/types.js.map +1 -0
  173. package/dist/client/index.d.ts +44 -0
  174. package/dist/client/index.d.ts.map +1 -0
  175. package/dist/client/index.js +36 -0
  176. package/dist/client/index.js.map +1 -0
  177. package/dist/client/middleware/auth.d.ts +90 -0
  178. package/dist/client/middleware/auth.d.ts.map +1 -0
  179. package/dist/client/middleware/auth.js +98 -0
  180. package/dist/client/middleware/auth.js.map +1 -0
  181. package/dist/client/middleware/batching.d.ts +102 -0
  182. package/dist/client/middleware/batching.d.ts.map +1 -0
  183. package/dist/client/middleware/batching.js +245 -0
  184. package/dist/client/middleware/batching.js.map +1 -0
  185. package/dist/client/middleware/cache.d.ts +124 -0
  186. package/dist/client/middleware/cache.d.ts.map +1 -0
  187. package/dist/client/middleware/cache.js +208 -0
  188. package/dist/client/middleware/cache.js.map +1 -0
  189. package/dist/client/middleware/circuit-breaker.d.ts +113 -0
  190. package/dist/client/middleware/circuit-breaker.d.ts.map +1 -0
  191. package/dist/client/middleware/circuit-breaker.js +236 -0
  192. package/dist/client/middleware/circuit-breaker.js.map +1 -0
  193. package/dist/client/middleware/contexts.d.ts +199 -0
  194. package/dist/client/middleware/contexts.d.ts.map +1 -0
  195. package/dist/client/middleware/contexts.js +74 -0
  196. package/dist/client/middleware/contexts.js.map +1 -0
  197. package/dist/client/middleware/items.d.ts +37 -0
  198. package/dist/client/middleware/items.d.ts.map +1 -0
  199. package/dist/client/middleware/items.js +100 -0
  200. package/dist/client/middleware/items.js.map +1 -0
  201. package/dist/client/middleware/lru.d.ts +32 -0
  202. package/dist/client/middleware/lru.d.ts.map +1 -0
  203. package/dist/client/middleware/lru.js +62 -0
  204. package/dist/client/middleware/lru.js.map +1 -0
  205. package/dist/client/middleware/pagination.d.ts +114 -0
  206. package/dist/client/middleware/pagination.d.ts.map +1 -0
  207. package/dist/client/middleware/pagination.js +148 -0
  208. package/dist/client/middleware/pagination.js.map +1 -0
  209. package/dist/client/middleware/rate-limit.d.ts +105 -0
  210. package/dist/client/middleware/rate-limit.d.ts.map +1 -0
  211. package/dist/client/middleware/rate-limit.js +222 -0
  212. package/dist/client/middleware/rate-limit.js.map +1 -0
  213. package/dist/client/middleware/retry.d.ts +100 -0
  214. package/dist/client/middleware/retry.d.ts.map +1 -0
  215. package/dist/client/middleware/retry.js +150 -0
  216. package/dist/client/middleware/retry.js.map +1 -0
  217. package/dist/client/middleware/timeout.d.ts +91 -0
  218. package/dist/client/middleware/timeout.d.ts.map +1 -0
  219. package/dist/client/middleware/timeout.js +253 -0
  220. package/dist/client/middleware/timeout.js.map +1 -0
  221. package/dist/client/middleware/tracing.d.ts +118 -0
  222. package/dist/client/middleware/tracing.d.ts.map +1 -0
  223. package/dist/client/middleware/tracing.js +152 -0
  224. package/dist/client/middleware/tracing.js.map +1 -0
  225. package/dist/client/route-resolver.d.ts +181 -0
  226. package/dist/client/route-resolver.d.ts.map +1 -0
  227. package/dist/client/route-resolver.js +300 -0
  228. package/dist/client/route-resolver.js.map +1 -0
  229. package/dist/client/typed-method.d.ts +29 -0
  230. package/dist/client/typed-method.d.ts.map +1 -0
  231. package/dist/client/typed-method.js +36 -0
  232. package/dist/client/typed-method.js.map +1 -0
  233. package/dist/client/typed.d.ts +102 -0
  234. package/dist/client/typed.d.ts.map +1 -0
  235. package/dist/client/typed.js +52 -0
  236. package/dist/client/typed.js.map +1 -0
  237. package/dist/client/types.d.ts +305 -0
  238. package/dist/client/types.d.ts.map +1 -0
  239. package/dist/client/types.js +26 -0
  240. package/dist/client/types.js.map +1 -0
  241. package/dist/client/validation/index.d.ts +34 -0
  242. package/dist/client/validation/index.d.ts.map +1 -0
  243. package/dist/client/validation/index.js +36 -0
  244. package/dist/client/validation/index.js.map +1 -0
  245. package/dist/client/validation/middleware.d.ts +82 -0
  246. package/dist/client/validation/middleware.d.ts.map +1 -0
  247. package/dist/client/validation/middleware.js +138 -0
  248. package/dist/client/validation/middleware.js.map +1 -0
  249. package/dist/client/validation/types.d.ts +118 -0
  250. package/dist/client/validation/types.d.ts.map +1 -0
  251. package/dist/client/validation/types.js +59 -0
  252. package/dist/client/validation/types.js.map +1 -0
  253. package/dist/collections/async/async-queue.d.ts +144 -0
  254. package/dist/collections/async/async-queue.d.ts.map +1 -0
  255. package/dist/collections/async/async-queue.js +347 -0
  256. package/dist/collections/async/async-queue.js.map +1 -0
  257. package/dist/collections/async/channels.d.ts +188 -0
  258. package/dist/collections/async/channels.d.ts.map +1 -0
  259. package/dist/collections/async/channels.js +312 -0
  260. package/dist/collections/async/channels.js.map +1 -0
  261. package/dist/collections/behaviors/bounded.d.ts +79 -0
  262. package/dist/collections/behaviors/bounded.d.ts.map +1 -0
  263. package/dist/collections/behaviors/bounded.js +384 -0
  264. package/dist/collections/behaviors/bounded.js.map +1 -0
  265. package/dist/collections/behaviors/evented.d.ts +154 -0
  266. package/dist/collections/behaviors/evented.d.ts.map +1 -0
  267. package/dist/collections/behaviors/evented.js +299 -0
  268. package/dist/collections/behaviors/evented.js.map +1 -0
  269. package/dist/collections/behaviors/lru.d.ts +84 -0
  270. package/dist/collections/behaviors/lru.d.ts.map +1 -0
  271. package/dist/collections/behaviors/lru.js +330 -0
  272. package/dist/collections/behaviors/lru.js.map +1 -0
  273. package/dist/collections/behaviors/readonly.d.ts +73 -0
  274. package/dist/collections/behaviors/readonly.d.ts.map +1 -0
  275. package/dist/collections/behaviors/readonly.js +158 -0
  276. package/dist/collections/behaviors/readonly.js.map +1 -0
  277. package/dist/collections/behaviors/safe.d.ts +163 -0
  278. package/dist/collections/behaviors/safe.d.ts.map +1 -0
  279. package/dist/collections/behaviors/safe.js +172 -0
  280. package/dist/collections/behaviors/safe.js.map +1 -0
  281. package/dist/collections/behaviors/synchronized.d.ts +88 -0
  282. package/dist/collections/behaviors/synchronized.d.ts.map +1 -0
  283. package/dist/collections/behaviors/synchronized.js +294 -0
  284. package/dist/collections/behaviors/synchronized.js.map +1 -0
  285. package/dist/collections/behaviors/ttl.d.ts +118 -0
  286. package/dist/collections/behaviors/ttl.d.ts.map +1 -0
  287. package/dist/collections/behaviors/ttl.js +338 -0
  288. package/dist/collections/behaviors/ttl.js.map +1 -0
  289. package/dist/collections/core/effects.d.ts +176 -0
  290. package/dist/collections/core/effects.d.ts.map +1 -0
  291. package/dist/collections/core/effects.js +180 -0
  292. package/dist/collections/core/effects.js.map +1 -0
  293. package/dist/collections/core/events.d.ts +192 -0
  294. package/dist/collections/core/events.d.ts.map +1 -0
  295. package/dist/collections/core/events.js +291 -0
  296. package/dist/collections/core/events.js.map +1 -0
  297. package/dist/collections/core/middleware.d.ts +231 -0
  298. package/dist/collections/core/middleware.d.ts.map +1 -0
  299. package/dist/collections/core/middleware.js +161 -0
  300. package/dist/collections/core/middleware.js.map +1 -0
  301. package/dist/collections/core/policies.d.ts +220 -0
  302. package/dist/collections/core/policies.d.ts.map +1 -0
  303. package/dist/collections/core/policies.js +48 -0
  304. package/dist/collections/core/policies.js.map +1 -0
  305. package/dist/collections/core/traits.d.ts +142 -0
  306. package/dist/collections/core/traits.d.ts.map +1 -0
  307. package/dist/collections/core/traits.js +8 -0
  308. package/dist/collections/core/traits.js.map +1 -0
  309. package/dist/collections/examples.d.ts +13 -0
  310. package/dist/collections/examples.d.ts.map +1 -0
  311. package/dist/collections/examples.js +302 -0
  312. package/dist/collections/examples.js.map +1 -0
  313. package/dist/collections/fx/collectors.d.ts +190 -0
  314. package/dist/collections/fx/collectors.d.ts.map +1 -0
  315. package/dist/collections/fx/collectors.js +369 -0
  316. package/dist/collections/fx/collectors.js.map +1 -0
  317. package/dist/collections/fx/iter.d.ts +166 -0
  318. package/dist/collections/fx/iter.d.ts.map +1 -0
  319. package/dist/collections/fx/iter.js +421 -0
  320. package/dist/collections/fx/iter.js.map +1 -0
  321. package/dist/collections/impl/array-deque.d.ts +107 -0
  322. package/dist/collections/impl/array-deque.d.ts.map +1 -0
  323. package/dist/collections/impl/array-deque.js +381 -0
  324. package/dist/collections/impl/array-deque.js.map +1 -0
  325. package/dist/collections/impl/array-list.d.ts +101 -0
  326. package/dist/collections/impl/array-list.d.ts.map +1 -0
  327. package/dist/collections/impl/array-list.js +387 -0
  328. package/dist/collections/impl/array-list.js.map +1 -0
  329. package/dist/collections/impl/hash-map.d.ts +141 -0
  330. package/dist/collections/impl/hash-map.d.ts.map +1 -0
  331. package/dist/collections/impl/hash-map.js +450 -0
  332. package/dist/collections/impl/hash-map.js.map +1 -0
  333. package/dist/collections/impl/hash-set.d.ts +125 -0
  334. package/dist/collections/impl/hash-set.d.ts.map +1 -0
  335. package/dist/collections/impl/hash-set.js +264 -0
  336. package/dist/collections/impl/hash-set.js.map +1 -0
  337. package/dist/collections/impl/linked-hash-map.d.ts +141 -0
  338. package/dist/collections/impl/linked-hash-map.d.ts.map +1 -0
  339. package/dist/collections/impl/linked-hash-map.js +472 -0
  340. package/dist/collections/impl/linked-hash-map.js.map +1 -0
  341. package/dist/collections/impl/linked-list.d.ts +109 -0
  342. package/dist/collections/impl/linked-list.d.ts.map +1 -0
  343. package/dist/collections/impl/linked-list.js +491 -0
  344. package/dist/collections/impl/linked-list.js.map +1 -0
  345. package/dist/collections/impl/priority-queue.d.ts +134 -0
  346. package/dist/collections/impl/priority-queue.d.ts.map +1 -0
  347. package/dist/collections/impl/priority-queue.js +336 -0
  348. package/dist/collections/impl/priority-queue.js.map +1 -0
  349. package/dist/collections/impl/tree-map.d.ts +146 -0
  350. package/dist/collections/impl/tree-map.d.ts.map +1 -0
  351. package/dist/collections/impl/tree-map.js +781 -0
  352. package/dist/collections/impl/tree-map.js.map +1 -0
  353. package/dist/collections/impl/tree-set.d.ts +112 -0
  354. package/dist/collections/impl/tree-set.d.ts.map +1 -0
  355. package/dist/collections/impl/tree-set.js +374 -0
  356. package/dist/collections/impl/tree-set.js.map +1 -0
  357. package/dist/collections/index.d.ts +105 -0
  358. package/dist/collections/index.d.ts.map +1 -0
  359. package/dist/collections/index.js +135 -0
  360. package/dist/collections/index.js.map +1 -0
  361. package/dist/collections/interfaces/collection.d.ts +119 -0
  362. package/dist/collections/interfaces/collection.d.ts.map +1 -0
  363. package/dist/collections/interfaces/collection.js +8 -0
  364. package/dist/collections/interfaces/collection.js.map +1 -0
  365. package/dist/collections/interfaces/list.d.ts +247 -0
  366. package/dist/collections/interfaces/list.d.ts.map +1 -0
  367. package/dist/collections/interfaces/list.js +8 -0
  368. package/dist/collections/interfaces/list.js.map +1 -0
  369. package/dist/collections/interfaces/map.d.ts +344 -0
  370. package/dist/collections/interfaces/map.d.ts.map +1 -0
  371. package/dist/collections/interfaces/map.js +8 -0
  372. package/dist/collections/interfaces/map.js.map +1 -0
  373. package/dist/collections/interfaces/queue.d.ts +304 -0
  374. package/dist/collections/interfaces/queue.d.ts.map +1 -0
  375. package/dist/collections/interfaces/queue.js +8 -0
  376. package/dist/collections/interfaces/queue.js.map +1 -0
  377. package/dist/collections/interfaces/set.d.ts +137 -0
  378. package/dist/collections/interfaces/set.d.ts.map +1 -0
  379. package/dist/collections/interfaces/set.js +8 -0
  380. package/dist/collections/interfaces/set.js.map +1 -0
  381. package/dist/collections/storage/api.d.ts +109 -0
  382. package/dist/collections/storage/api.d.ts.map +1 -0
  383. package/dist/collections/storage/api.js +182 -0
  384. package/dist/collections/storage/api.js.map +1 -0
  385. package/dist/collections/storage/hybrid.d.ts +164 -0
  386. package/dist/collections/storage/hybrid.d.ts.map +1 -0
  387. package/dist/collections/storage/hybrid.js +416 -0
  388. package/dist/collections/storage/hybrid.js.map +1 -0
  389. package/dist/collections/storage/index.d.ts +16 -0
  390. package/dist/collections/storage/index.d.ts.map +1 -0
  391. package/dist/collections/storage/index.js +13 -0
  392. package/dist/collections/storage/index.js.map +1 -0
  393. package/dist/collections/storage/interface.d.ts +141 -0
  394. package/dist/collections/storage/interface.d.ts.map +1 -0
  395. package/dist/collections/storage/interface.js +23 -0
  396. package/dist/collections/storage/interface.js.map +1 -0
  397. package/dist/collections/storage/memory.d.ts +68 -0
  398. package/dist/collections/storage/memory.d.ts.map +1 -0
  399. package/dist/collections/storage/memory.js +154 -0
  400. package/dist/collections/storage/memory.js.map +1 -0
  401. package/dist/collections/utils/defaults.d.ts +135 -0
  402. package/dist/collections/utils/defaults.d.ts.map +1 -0
  403. package/dist/collections/utils/defaults.js +322 -0
  404. package/dist/collections/utils/defaults.js.map +1 -0
  405. package/dist/collections/utils/factories.d.ts +144 -0
  406. package/dist/collections/utils/factories.d.ts.map +1 -0
  407. package/dist/collections/utils/factories.js +293 -0
  408. package/dist/collections/utils/factories.js.map +1 -0
  409. package/dist/collections/utils/helpers.d.ts +137 -0
  410. package/dist/collections/utils/helpers.d.ts.map +1 -0
  411. package/dist/collections/utils/helpers.js +221 -0
  412. package/dist/collections/utils/helpers.js.map +1 -0
  413. package/dist/collections.d.ts +12 -0
  414. package/dist/collections.d.ts.map +1 -0
  415. package/dist/collections.js +10 -0
  416. package/dist/collections.js.map +1 -0
  417. package/dist/components/define.d.ts +134 -0
  418. package/dist/components/define.d.ts.map +1 -0
  419. package/dist/components/define.js +486 -0
  420. package/dist/components/define.js.map +1 -0
  421. package/dist/components/index.d.ts +39 -0
  422. package/dist/components/index.d.ts.map +1 -0
  423. package/dist/components/index.js +38 -0
  424. package/dist/components/index.js.map +1 -0
  425. package/dist/components/types.d.ts +264 -0
  426. package/dist/components/types.d.ts.map +1 -0
  427. package/dist/components/types.js +46 -0
  428. package/dist/components/types.js.map +1 -0
  429. package/dist/events/bus.d.ts +193 -0
  430. package/dist/events/bus.d.ts.map +1 -0
  431. package/dist/events/bus.js +511 -0
  432. package/dist/events/bus.js.map +1 -0
  433. package/dist/events/index.d.ts +34 -0
  434. package/dist/events/index.d.ts.map +1 -0
  435. package/dist/events/index.js +36 -0
  436. package/dist/events/index.js.map +1 -0
  437. package/dist/events/types.d.ts +242 -0
  438. package/dist/events/types.d.ts.map +1 -0
  439. package/dist/events/types.js +8 -0
  440. package/dist/events/types.js.map +1 -0
  441. package/dist/index.d.ts +17 -0
  442. package/dist/index.d.ts.map +1 -0
  443. package/dist/index.js +17 -0
  444. package/dist/index.js.map +1 -0
  445. package/dist/middleware/compose.d.ts +88 -0
  446. package/dist/middleware/compose.d.ts.map +1 -0
  447. package/dist/middleware/compose.js +108 -0
  448. package/dist/middleware/compose.js.map +1 -0
  449. package/dist/middleware/index.d.ts +12 -0
  450. package/dist/middleware/index.d.ts.map +1 -0
  451. package/dist/middleware/index.js +11 -0
  452. package/dist/middleware/index.js.map +1 -0
  453. package/dist/middleware/types.d.ts +112 -0
  454. package/dist/middleware/types.d.ts.map +1 -0
  455. package/dist/middleware/types.js +14 -0
  456. package/dist/middleware/types.js.map +1 -0
  457. package/dist/procedures/capability.d.ts +111 -0
  458. package/dist/procedures/capability.d.ts.map +1 -0
  459. package/dist/procedures/capability.js +269 -0
  460. package/dist/procedures/capability.js.map +1 -0
  461. package/dist/procedures/cli/announce.d.ts +67 -0
  462. package/dist/procedures/cli/announce.d.ts.map +1 -0
  463. package/dist/procedures/cli/announce.js +392 -0
  464. package/dist/procedures/cli/announce.js.map +1 -0
  465. package/dist/procedures/cli/discover.d.ts +66 -0
  466. package/dist/procedures/cli/discover.d.ts.map +1 -0
  467. package/dist/procedures/cli/discover.js +310 -0
  468. package/dist/procedures/cli/discover.js.map +1 -0
  469. package/dist/procedures/cli/index.d.ts +13 -0
  470. package/dist/procedures/cli/index.d.ts.map +1 -0
  471. package/dist/procedures/cli/index.js +203 -0
  472. package/dist/procedures/cli/index.js.map +1 -0
  473. package/dist/procedures/cli/init.d.ts +17 -0
  474. package/dist/procedures/cli/init.d.ts.map +1 -0
  475. package/dist/procedures/cli/init.js +336 -0
  476. package/dist/procedures/cli/init.js.map +1 -0
  477. package/dist/procedures/collection/index.d.ts +10 -0
  478. package/dist/procedures/collection/index.d.ts.map +1 -0
  479. package/dist/procedures/collection/index.js +10 -0
  480. package/dist/procedures/collection/index.js.map +1 -0
  481. package/dist/procedures/collection/procedures.d.ts +21 -0
  482. package/dist/procedures/collection/procedures.d.ts.map +1 -0
  483. package/dist/procedures/collection/procedures.js +210 -0
  484. package/dist/procedures/collection/procedures.js.map +1 -0
  485. package/dist/procedures/collection/schemas.d.ts +131 -0
  486. package/dist/procedures/collection/schemas.d.ts.map +1 -0
  487. package/dist/procedures/collection/schemas.js +422 -0
  488. package/dist/procedures/collection/schemas.js.map +1 -0
  489. package/dist/procedures/collection/storage.d.ts +53 -0
  490. package/dist/procedures/collection/storage.d.ts.map +1 -0
  491. package/dist/procedures/collection/storage.js +2 -0
  492. package/dist/procedures/collection/storage.js.map +1 -0
  493. package/dist/procedures/core/array.d.ts +276 -0
  494. package/dist/procedures/core/array.d.ts.map +1 -0
  495. package/dist/procedures/core/array.js +639 -0
  496. package/dist/procedures/core/array.js.map +1 -0
  497. package/dist/procedures/core/comparison.d.ts +85 -0
  498. package/dist/procedures/core/comparison.d.ts.map +1 -0
  499. package/dist/procedures/core/comparison.js +158 -0
  500. package/dist/procedures/core/comparison.js.map +1 -0
  501. package/dist/procedures/core/index.d.ts +261 -0
  502. package/dist/procedures/core/index.d.ts.map +1 -0
  503. package/dist/procedures/core/index.js +588 -0
  504. package/dist/procedures/core/index.js.map +1 -0
  505. package/dist/procedures/core/logic.d.ts +144 -0
  506. package/dist/procedures/core/logic.d.ts.map +1 -0
  507. package/dist/procedures/core/logic.js +169 -0
  508. package/dist/procedures/core/logic.js.map +1 -0
  509. package/dist/procedures/core/math.d.ts +139 -0
  510. package/dist/procedures/core/math.d.ts.map +1 -0
  511. package/dist/procedures/core/math.js +275 -0
  512. package/dist/procedures/core/math.js.map +1 -0
  513. package/dist/procedures/core/meta.d.ts +111 -0
  514. package/dist/procedures/core/meta.d.ts.map +1 -0
  515. package/dist/procedures/core/meta.js +244 -0
  516. package/dist/procedures/core/meta.js.map +1 -0
  517. package/dist/procedures/core/object.d.ts +109 -0
  518. package/dist/procedures/core/object.d.ts.map +1 -0
  519. package/dist/procedures/core/object.js +272 -0
  520. package/dist/procedures/core/object.js.map +1 -0
  521. package/dist/procedures/core/operands.d.ts +51 -0
  522. package/dist/procedures/core/operands.d.ts.map +1 -0
  523. package/dist/procedures/core/operands.js +90 -0
  524. package/dist/procedures/core/operands.js.map +1 -0
  525. package/dist/procedures/core/outputs.d.ts +28 -0
  526. package/dist/procedures/core/outputs.d.ts.map +1 -0
  527. package/dist/procedures/core/outputs.js +42 -0
  528. package/dist/procedures/core/outputs.js.map +1 -0
  529. package/dist/procedures/core/results.d.ts +202 -0
  530. package/dist/procedures/core/results.d.ts.map +1 -0
  531. package/dist/procedures/core/results.js +106 -0
  532. package/dist/procedures/core/results.js.map +1 -0
  533. package/dist/procedures/core/schemas.d.ts +48 -0
  534. package/dist/procedures/core/schemas.d.ts.map +1 -0
  535. package/dist/procedures/core/schemas.js +102 -0
  536. package/dist/procedures/core/schemas.js.map +1 -0
  537. package/dist/procedures/core/string.d.ts +138 -0
  538. package/dist/procedures/core/string.d.ts.map +1 -0
  539. package/dist/procedures/core/string.js +270 -0
  540. package/dist/procedures/core/string.js.map +1 -0
  541. package/dist/procedures/core/type.d.ts +101 -0
  542. package/dist/procedures/core/type.d.ts.map +1 -0
  543. package/dist/procedures/core/type.js +210 -0
  544. package/dist/procedures/core/type.js.map +1 -0
  545. package/dist/procedures/define-procedure.d.ts +187 -0
  546. package/dist/procedures/define-procedure.d.ts.map +1 -0
  547. package/dist/procedures/define-procedure.js +357 -0
  548. package/dist/procedures/define-procedure.js.map +1 -0
  549. package/dist/procedures/define.d.ts +228 -0
  550. package/dist/procedures/define.d.ts.map +1 -0
  551. package/dist/procedures/define.js +300 -0
  552. package/dist/procedures/define.js.map +1 -0
  553. package/dist/procedures/discovery.d.ts +57 -0
  554. package/dist/procedures/discovery.d.ts.map +1 -0
  555. package/dist/procedures/discovery.js +68 -0
  556. package/dist/procedures/discovery.js.map +1 -0
  557. package/dist/procedures/effects.d.ts +15 -0
  558. package/dist/procedures/effects.d.ts.map +1 -0
  559. package/dist/procedures/effects.js +18 -0
  560. package/dist/procedures/effects.js.map +1 -0
  561. package/dist/procedures/index.d.ts +27 -0
  562. package/dist/procedures/index.d.ts.map +1 -0
  563. package/dist/procedures/index.js +54 -0
  564. package/dist/procedures/index.js.map +1 -0
  565. package/dist/procedures/interceptors.d.ts +82 -0
  566. package/dist/procedures/interceptors.d.ts.map +1 -0
  567. package/dist/procedures/interceptors.js +194 -0
  568. package/dist/procedures/interceptors.js.map +1 -0
  569. package/dist/procedures/invoke.d.ts +155 -0
  570. package/dist/procedures/invoke.d.ts.map +1 -0
  571. package/dist/procedures/invoke.js +343 -0
  572. package/dist/procedures/invoke.js.map +1 -0
  573. package/dist/procedures/module.d.ts +54 -0
  574. package/dist/procedures/module.d.ts.map +1 -0
  575. package/dist/procedures/module.js +103 -0
  576. package/dist/procedures/module.js.map +1 -0
  577. package/dist/procedures/policy.d.ts +70 -0
  578. package/dist/procedures/policy.d.ts.map +1 -0
  579. package/dist/procedures/policy.js +138 -0
  580. package/dist/procedures/policy.js.map +1 -0
  581. package/dist/procedures/ref.d.ts +606 -0
  582. package/dist/procedures/ref.d.ts.map +1 -0
  583. package/dist/procedures/ref.js +895 -0
  584. package/dist/procedures/ref.js.map +1 -0
  585. package/dist/procedures/registry.d.ts +208 -0
  586. package/dist/procedures/registry.d.ts.map +1 -0
  587. package/dist/procedures/registry.js +402 -0
  588. package/dist/procedures/registry.js.map +1 -0
  589. package/dist/procedures/schema.d.ts +126 -0
  590. package/dist/procedures/schema.d.ts.map +1 -0
  591. package/dist/procedures/schema.js +108 -0
  592. package/dist/procedures/schema.js.map +1 -0
  593. package/dist/procedures/storage/adapter.d.ts +148 -0
  594. package/dist/procedures/storage/adapter.d.ts.map +1 -0
  595. package/dist/procedures/storage/adapter.js +214 -0
  596. package/dist/procedures/storage/adapter.js.map +1 -0
  597. package/dist/procedures/storage/api.d.ts +125 -0
  598. package/dist/procedures/storage/api.d.ts.map +1 -0
  599. package/dist/procedures/storage/api.js +220 -0
  600. package/dist/procedures/storage/api.js.map +1 -0
  601. package/dist/procedures/storage/factory.d.ts +134 -0
  602. package/dist/procedures/storage/factory.d.ts.map +1 -0
  603. package/dist/procedures/storage/factory.js +166 -0
  604. package/dist/procedures/storage/factory.js.map +1 -0
  605. package/dist/procedures/storage/hybrid.d.ts +193 -0
  606. package/dist/procedures/storage/hybrid.d.ts.map +1 -0
  607. package/dist/procedures/storage/hybrid.js +519 -0
  608. package/dist/procedures/storage/hybrid.js.map +1 -0
  609. package/dist/procedures/storage/index.d.ts +17 -0
  610. package/dist/procedures/storage/index.d.ts.map +1 -0
  611. package/dist/procedures/storage/index.js +17 -0
  612. package/dist/procedures/storage/index.js.map +1 -0
  613. package/dist/procedures/storage/procedures.d.ts +39 -0
  614. package/dist/procedures/storage/procedures.d.ts.map +1 -0
  615. package/dist/procedures/storage/procedures.js +261 -0
  616. package/dist/procedures/storage/procedures.js.map +1 -0
  617. package/dist/procedures/storage/serialization.d.ts +123 -0
  618. package/dist/procedures/storage/serialization.d.ts.map +1 -0
  619. package/dist/procedures/storage/serialization.js +216 -0
  620. package/dist/procedures/storage/serialization.js.map +1 -0
  621. package/dist/procedures/storage/synced-registry.d.ts +246 -0
  622. package/dist/procedures/storage/synced-registry.d.ts.map +1 -0
  623. package/dist/procedures/storage/synced-registry.js +575 -0
  624. package/dist/procedures/storage/synced-registry.js.map +1 -0
  625. package/dist/procedures/storage/types.d.ts +130 -0
  626. package/dist/procedures/storage/types.d.ts.map +1 -0
  627. package/dist/procedures/storage/types.js +8 -0
  628. package/dist/procedures/storage/types.js.map +1 -0
  629. package/dist/procedures/types.d.ts +468 -0
  630. package/dist/procedures/types.d.ts.map +1 -0
  631. package/dist/procedures/types.js +23 -0
  632. package/dist/procedures/types.js.map +1 -0
  633. package/dist/register.d.ts +8 -0
  634. package/dist/register.d.ts.map +1 -0
  635. package/dist/register.js +9 -0
  636. package/dist/register.js.map +1 -0
  637. package/dist/server/browser-guard.d.ts +69 -0
  638. package/dist/server/browser-guard.d.ts.map +1 -0
  639. package/dist/server/browser-guard.js +103 -0
  640. package/dist/server/browser-guard.js.map +1 -0
  641. package/dist/server/host-policy.d.ts +81 -0
  642. package/dist/server/host-policy.d.ts.map +1 -0
  643. package/dist/server/host-policy.js +104 -0
  644. package/dist/server/host-policy.js.map +1 -0
  645. package/dist/server/index.d.ts +46 -0
  646. package/dist/server/index.d.ts.map +1 -0
  647. package/dist/server/index.js +42 -0
  648. package/dist/server/index.js.map +1 -0
  649. package/dist/server/method.d.ts +24 -0
  650. package/dist/server/method.d.ts.map +1 -0
  651. package/dist/server/method.js +29 -0
  652. package/dist/server/method.js.map +1 -0
  653. package/dist/server/procedure-server.d.ts +226 -0
  654. package/dist/server/procedure-server.d.ts.map +1 -0
  655. package/dist/server/procedure-server.js +348 -0
  656. package/dist/server/procedure-server.js.map +1 -0
  657. package/dist/server/server.d.ts +161 -0
  658. package/dist/server/server.d.ts.map +1 -0
  659. package/dist/server/server.js +279 -0
  660. package/dist/server/server.js.map +1 -0
  661. package/dist/server/types.d.ts +106 -0
  662. package/dist/server/types.d.ts.map +1 -0
  663. package/dist/server/types.js +29 -0
  664. package/dist/server/types.js.map +1 -0
  665. package/package.json +117 -3
  666. package/src/adapters/http/client/index.ts +51 -0
  667. package/src/adapters/http/client/transport.ts +338 -0
  668. package/src/adapters/http/client/types.ts +33 -0
  669. package/src/adapters/http/index.ts +7 -0
  670. package/src/adapters/http/server/index.ts +14 -0
  671. package/src/adapters/http/server/strategies.ts +105 -0
  672. package/src/adapters/http/server/transport.ts +623 -0
  673. package/src/adapters/http/server/types.ts +81 -0
  674. package/src/adapters/http/shared/constants.ts +108 -0
  675. package/src/adapters/http/shared/errors.ts +199 -0
  676. package/src/adapters/http/shared/headers.ts +291 -0
  677. package/src/adapters/http/shared/index.ts +21 -0
  678. package/src/adapters/http/shared/status-codes.ts +212 -0
  679. package/src/adapters/http/shared/strategies.ts +255 -0
  680. package/src/adapters/local/client/index.ts +11 -0
  681. package/src/adapters/local/client/transport.ts +188 -0
  682. package/src/adapters/local/client/types.ts +50 -0
  683. package/src/adapters/metadata.ts +17 -0
  684. package/src/adapters/mock/client/builder.ts +64 -0
  685. package/src/adapters/mock/client/index.ts +19 -0
  686. package/src/adapters/mock/client/transport.ts +352 -0
  687. package/src/adapters/mock/client/types.ts +99 -0
  688. package/src/adapters/websocket/client/index.ts +18 -0
  689. package/src/adapters/websocket/client/transport.ts +733 -0
  690. package/src/adapters/websocket/client/types.ts +235 -0
  691. package/src/adapters/websocket/index.ts +24 -0
  692. package/src/adapters/websocket/server/index.ts +18 -0
  693. package/src/adapters/websocket/server/transport.ts +705 -0
  694. package/src/adapters/websocket/server/types.ts +169 -0
  695. package/src/browser.ts +401 -0
  696. package/src/client/batch-executor.ts +514 -0
  697. package/src/client/call-types.ts +491 -0
  698. package/src/client/client.ts +1229 -0
  699. package/src/client/consumption.ts +288 -0
  700. package/src/client/context.ts +228 -0
  701. package/src/client/errors/README.md +279 -0
  702. package/src/client/errors/codes.ts +88 -0
  703. package/src/client/errors/factory.ts +263 -0
  704. package/src/client/errors/http-errors.ts +601 -0
  705. package/src/client/errors/http-status.ts +82 -0
  706. package/src/client/errors/index.ts +72 -0
  707. package/src/client/errors/registry.ts +595 -0
  708. package/src/client/errors/types.ts +139 -0
  709. package/src/client/index.ts +124 -0
  710. package/src/client/middleware/auth.ts +132 -0
  711. package/src/client/middleware/cache.ts +316 -0
  712. package/src/client/middleware/circuit-breaker.ts +339 -0
  713. package/src/client/middleware/contexts.ts +319 -0
  714. package/src/client/middleware/items.ts +114 -0
  715. package/src/client/middleware/lru.ts +66 -0
  716. package/src/client/middleware/pagination.ts +213 -0
  717. package/src/client/middleware/rate-limit.ts +315 -0
  718. package/src/client/middleware/retry.ts +236 -0
  719. package/src/client/middleware/timeout.ts +308 -0
  720. package/src/client/middleware/tracing.ts +191 -0
  721. package/src/client/route-resolver.ts +407 -0
  722. package/src/client/typed-method.ts +65 -0
  723. package/src/client/typed.ts +140 -0
  724. package/src/client/types.ts +372 -0
  725. package/src/client/validation/index.ts +56 -0
  726. package/src/client/validation/middleware.ts +254 -0
  727. package/src/client/validation/types.ts +162 -0
  728. package/src/events/bus.ts +594 -0
  729. package/src/events/index.ts +67 -0
  730. package/src/events/types.ts +263 -0
  731. package/src/index.ts +33 -0
  732. package/src/middleware/compose.ts +159 -0
  733. package/src/middleware/index.ts +28 -0
  734. package/src/middleware/types.ts +166 -0
  735. package/src/procedures/capability.ts +333 -0
  736. package/src/procedures/cli/announce.ts +470 -0
  737. package/src/procedures/cli/discover.ts +390 -0
  738. package/src/procedures/cli/index.ts +231 -0
  739. package/src/procedures/cli/init.ts +370 -0
  740. package/src/procedures/collection/index.ts +51 -0
  741. package/src/procedures/collection/procedures.ts +257 -0
  742. package/src/procedures/collection/schemas.ts +550 -0
  743. package/src/procedures/collection/storage.ts +53 -0
  744. package/src/procedures/core/array.ts +1026 -0
  745. package/src/procedures/core/comparison.ts +265 -0
  746. package/src/procedures/core/index.ts +898 -0
  747. package/src/procedures/core/logic.ts +225 -0
  748. package/src/procedures/core/math.ts +471 -0
  749. package/src/procedures/core/meta.ts +389 -0
  750. package/src/procedures/core/object.ts +429 -0
  751. package/src/procedures/core/operands.ts +119 -0
  752. package/src/procedures/core/outputs.ts +48 -0
  753. package/src/procedures/core/results.ts +296 -0
  754. package/src/procedures/core/schemas.ts +123 -0
  755. package/src/procedures/core/string.ts +460 -0
  756. package/src/procedures/core/type.ts +346 -0
  757. package/src/procedures/define-procedure.ts +532 -0
  758. package/src/procedures/define.ts +387 -0
  759. package/src/procedures/discovery.ts +76 -0
  760. package/src/procedures/effects.ts +24 -0
  761. package/src/procedures/index.ts +239 -0
  762. package/src/procedures/interceptors.ts +273 -0
  763. package/src/procedures/invoke.ts +506 -0
  764. package/src/procedures/module.ts +117 -0
  765. package/src/procedures/policy.ts +171 -0
  766. package/src/procedures/ref.ts +1305 -0
  767. package/src/procedures/registry.ts +473 -0
  768. package/src/procedures/schema.ts +225 -0
  769. package/src/procedures/types.ts +596 -0
  770. package/src/register.ts +10 -0
  771. package/src/server/browser-guard.ts +147 -0
  772. package/src/server/host-policy.ts +163 -0
  773. package/src/server/index.ts +70 -0
  774. package/src/server/method.ts +33 -0
  775. package/src/server/procedure-server.ts +459 -0
  776. package/src/server/server.ts +364 -0
  777. package/src/server/types.ts +147 -0
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Procedure Definition Procedure
3
+ *
4
+ * Meta-procedure that creates procedures at runtime from JSON aggregations.
5
+ * Enables fully declarative procedure definition without native TypeScript code.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // Define a procedure that chains multiple steps
10
+ * await client.call(["procedure", "define"], {
11
+ * path: ["my", "workflow"],
12
+ * aggregation: {
13
+ * $proc: ["client", "chain"],
14
+ * input: {
15
+ * steps: [
16
+ * { $proc: ["fs", "mkdir"], input: { path: { $ref: "input.dir" } } },
17
+ * { $proc: ["git", "init"], input: { cwd: { $ref: "input.dir" } } },
18
+ * ],
19
+ * },
20
+ * },
21
+ * });
22
+ *
23
+ * // Now use the defined procedure
24
+ * await client.call(["my", "workflow"], { dir: "/path/to/project" });
25
+ * ```
26
+ */
27
+ import type { Procedure, ProcedurePath, ProcedureMetadata, AnyProcedure, ProcedureRegistryLike } from "./types.js";
28
+ /**
29
+ * JSON-serializable aggregation definition.
30
+ * Represents a procedure call tree that will be executed when the procedure runs.
31
+ */
32
+ export interface AggregationDefinition {
33
+ /** Procedure to call */
34
+ $proc: ProcedurePath;
35
+ /** Input for the procedure (may contain $ref and nested $proc) */
36
+ input: unknown;
37
+ /** Optional name for output referencing */
38
+ $name?: string;
39
+ }
40
+ /**
41
+ * Input for defining a new procedure.
42
+ */
43
+ export interface DefineProcedureInput {
44
+ /** Path for the new procedure */
45
+ path: ProcedurePath;
46
+ /**
47
+ * Aggregation definition - the procedure body as a JSON tree.
48
+ * This gets executed when the procedure is called.
49
+ */
50
+ aggregation: AggregationDefinition;
51
+ /**
52
+ * Optional metadata for the procedure.
53
+ */
54
+ metadata?: ProcedureMetadata;
55
+ /**
56
+ * Whether to replace an existing procedure with this path.
57
+ * Default: false (throws if procedure exists)
58
+ */
59
+ replace?: boolean;
60
+ }
61
+ /**
62
+ * Output from defining a procedure.
63
+ */
64
+ export interface DefineProcedureOutput {
65
+ /** The path of the defined procedure */
66
+ path: ProcedurePath;
67
+ /** Whether an existing procedure was replaced */
68
+ replaced: boolean;
69
+ }
70
+ /** True for a procedure that `procedure.define` made. */
71
+ export declare function isRuntimeDefined(procedure: {
72
+ handler?: unknown;
73
+ }): boolean;
74
+ /**
75
+ * The program (the aggregation) of a procedure that `procedure.define` made, or undefined for a
76
+ * code procedure. A program store saves it and defines it again after a restart (roadmap 3.2).
77
+ */
78
+ export declare function runtimeProgramOf(procedure: {
79
+ handler?: unknown;
80
+ }): AggregationDefinition | undefined;
81
+ type RegistryOf = Pick<ProcedureRegistryLike, "get" | "getAll" | "unregister">;
82
+ /**
83
+ * Get a runtime-defined procedure by path.
84
+ */
85
+ export declare function getRuntimeProcedure(path: ProcedurePath, registry?: RegistryOf): AnyProcedure | undefined;
86
+ /**
87
+ * Check if a runtime procedure exists.
88
+ */
89
+ export declare function hasRuntimeProcedure(path: ProcedurePath, registry?: RegistryOf): boolean;
90
+ /**
91
+ * Get all runtime-defined procedures.
92
+ */
93
+ export declare function getAllRuntimeProcedures(registry?: RegistryOf): AnyProcedure[];
94
+ /**
95
+ * Clear all runtime-defined procedures.
96
+ * Useful for testing.
97
+ */
98
+ export declare function clearRuntimeProcedures(registry?: RegistryOf): void;
99
+ /**
100
+ * Metadata for the procedure.define procedure.
101
+ */
102
+ interface DefineMetadata extends ProcedureMetadata {
103
+ description: string;
104
+ tags: string[];
105
+ /** This is a meta-procedure that creates other procedures */
106
+ metaProcedure: true;
107
+ }
108
+ /**
109
+ * The procedure.define procedure.
110
+ *
111
+ * This is a meta-procedure that creates other procedures at runtime
112
+ * from JSON aggregation definitions.
113
+ *
114
+ * The rules (deep dive CORE-3, MCP-4):
115
+ * - The procedure goes into the caller's registry (`ctx.registry`).
116
+ * - `replace: true` replaces only a procedure that `procedure.define` made. A code procedure
117
+ * stays: an MCP client cannot replace a tool or an internal procedure.
118
+ * - The registry gets the procedure first. A define that fails leaves nothing.
119
+ * - The new procedure is data-driven: with a server's `expose` rule, it calls only exposed paths.
120
+ * - Its input is raw (the `runs-refs` tag): `exec()` does not run the body at definition time.
121
+ */
122
+ export declare const defineProcedureProcedure: Procedure<DefineProcedureInput, DefineProcedureOutput, DefineMetadata>;
123
+ /** The description of one procedure, for `procedure.list` and `procedure.get`. */
124
+ export interface ProcedureDescription {
125
+ /** The path of the procedure */
126
+ path: ProcedurePath;
127
+ /** The path as a dotted key */
128
+ key: string;
129
+ /** The description of the metadata */
130
+ description: string | undefined;
131
+ /** The tags of the metadata */
132
+ tags: string[] | undefined;
133
+ /** True when the procedure has a handler (it can run) */
134
+ hasHandler: boolean;
135
+ /** True for a procedure that `procedure.define` made */
136
+ runtime: boolean;
137
+ /** The whole metadata (`procedure.list` gives it with `includeMetadata`) */
138
+ metadata?: ProcedureMetadata | undefined;
139
+ }
140
+ /** The input of `procedure.list` */
141
+ export interface ProcedureListInput {
142
+ namespace?: string | undefined;
143
+ includeMetadata?: boolean | undefined;
144
+ runtime?: boolean | undefined;
145
+ }
146
+ /** The input of `procedure.get` */
147
+ export interface ProcedureGetInput {
148
+ path: string[] | string;
149
+ }
150
+ /**
151
+ * Describe one procedure of the caller's registry.
152
+ *
153
+ * Docs review DOC-6: the core version gave only runtime-defined procedures, and client-procedure
154
+ * replaced it with a version for the whole registry, so the result depended on the imports of
155
+ * the host. This is the one implementation: any procedure, with `runtime` for a defined one (its
156
+ * metadata holds the aggregation).
157
+ */
158
+ export declare const getProcedureProcedure: Procedure<ProcedureGetInput, {
159
+ found: false;
160
+ } | (ProcedureDescription & {
161
+ found: true;
162
+ hasInputSchema: boolean;
163
+ hasOutputSchema: boolean;
164
+ }), ProcedureMetadata>;
165
+ /**
166
+ * List the procedures of the caller's registry: all of them, the procedures under a namespace,
167
+ * or (`runtime: true`) only the procedures that `procedure.define` made. See `getProcedureProcedure`
168
+ * for DOC-6.
169
+ */
170
+ export declare const listProceduresProcedure: Procedure<ProcedureListInput, {
171
+ procedures: ProcedureDescription[];
172
+ count: number;
173
+ }, ProcedureMetadata>;
174
+ /**
175
+ * Delete a runtime-defined procedure.
176
+ */
177
+ export declare const deleteProcedureProcedure: Procedure<{
178
+ path: ProcedurePath;
179
+ }, {
180
+ deleted: boolean;
181
+ }, ProcedureMetadata>;
182
+ /**
183
+ * All meta-procedures for procedure management.
184
+ */
185
+ export declare const metaProcedures: AnyProcedure[];
186
+ export {};
187
+ //# sourceMappingURL=define-procedure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-procedure.d.ts","sourceRoot":"","sources":["../../src/procedures/define-procedure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,357 @@
1
+ /**
2
+ * Procedure Definition Procedure
3
+ *
4
+ * Meta-procedure that creates procedures at runtime from JSON aggregations.
5
+ * Enables fully declarative procedure definition without native TypeScript code.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // Define a procedure that chains multiple steps
10
+ * await client.call(["procedure", "define"], {
11
+ * path: ["my", "workflow"],
12
+ * aggregation: {
13
+ * $proc: ["client", "chain"],
14
+ * input: {
15
+ * steps: [
16
+ * { $proc: ["fs", "mkdir"], input: { path: { $ref: "input.dir" } } },
17
+ * { $proc: ["git", "init"], input: { cwd: { $ref: "input.dir" } } },
18
+ * ],
19
+ * },
20
+ * },
21
+ * });
22
+ *
23
+ * // Now use the defined procedure
24
+ * await client.call(["my", "workflow"], { dir: "/path/to/project" });
25
+ * ```
26
+ */
27
+ import { defineProcedure, validateProcedure } from "./define.js";
28
+ import { PROCEDURE_REGISTRY, assertValidPath } from "./registry.js";
29
+ import { z } from "zod";
30
+ import { anySchema, zodAdapter } from "./core/schemas.js";
31
+ import { keyToPath, pathToKey } from "./types.js";
32
+ import { createRefScope, hydrateInput, isAnyProcedureRef, markDataDriven, prepareRootCall, rawInputRule, RUNS_REFS_TAG, } from "./ref.js";
33
+ import { REGISTRY_READ_EFFECTS, withEffects } from "./effects.js";
34
+ // Input schemas of procedure.define and procedure.delete (roadmap 2.1)
35
+ const procedurePathField = z.array(z.string().min(1)).min(1);
36
+ const defineInputSchema = z.object({
37
+ path: procedurePathField.describe('The path of the new procedure, for example ["tools", "double"]'),
38
+ aggregation: z
39
+ .looseObject({
40
+ $proc: z.array(z.string().min(1)).min(1).describe("The path of the procedure that the body calls"),
41
+ input: z.unknown().optional().describe("The input of that call. It reads the input of the new procedure as { $ref: \"input.<field>\" }."),
42
+ $name: z.string().optional().describe("A name that a $ref can read"),
43
+ })
44
+ .describe("The body of the procedure: a call ({ $proc, input }) that runs, as client.exec runs it, each time the procedure is called"),
45
+ metadata: z.record(z.string(), z.unknown()).optional().describe("The metadata of the procedure, for example { description, tags }"),
46
+ replace: z.boolean().optional().describe("Replace a procedure that procedure.define made at the same path (never a procedure of code)"),
47
+ });
48
+ const deleteInputSchema = z.object({
49
+ path: procedurePathField.describe("The path of the procedure to delete (only a procedure that procedure.define made)"),
50
+ });
51
+ /** The JSON form of a `ProcedureDescription`, for the output schemas of `procedure.get`/`list`. */
52
+ const descriptionFields = {
53
+ path: z.array(z.string()).describe("The path of the procedure"),
54
+ key: z.string().describe("The path as a dotted key"),
55
+ description: z.string().optional().describe("The description of the metadata"),
56
+ tags: z.array(z.string()).optional().describe("The tags of the metadata"),
57
+ hasHandler: z.boolean().describe("True when the procedure has a handler (it can run)"),
58
+ runtime: z.boolean().describe("True for a procedure that procedure.define made"),
59
+ metadata: z.unknown().optional().describe("The whole metadata"),
60
+ };
61
+ /** The output of `procedure.define` */
62
+ const DefineOutputSchema = z.looseObject({
63
+ path: z.array(z.string()).describe("The path of the defined procedure"),
64
+ replaced: z.boolean().describe("True when the call replaced a runtime-defined procedure"),
65
+ });
66
+ /**
67
+ * The output of `procedure.get`: one object, so MCP clients get an object output schema. With
68
+ * `found: false`, the other fields are absent.
69
+ */
70
+ const GetOutputSchema = z.looseObject({
71
+ found: z.boolean().describe("True when the registry has the procedure"),
72
+ path: descriptionFields.path.optional(),
73
+ key: descriptionFields.key.optional(),
74
+ description: descriptionFields.description,
75
+ tags: descriptionFields.tags,
76
+ hasHandler: descriptionFields.hasHandler.optional(),
77
+ runtime: descriptionFields.runtime.optional(),
78
+ metadata: descriptionFields.metadata,
79
+ hasInputSchema: z.boolean().optional().describe("True when the procedure has an input schema"),
80
+ hasOutputSchema: z.boolean().optional().describe("True when the procedure has an output schema"),
81
+ });
82
+ /** The output of `procedure.list` */
83
+ const ListOutputSchema = z.looseObject({
84
+ procedures: z.array(z.looseObject(descriptionFields)).describe("The procedures, in the order of the registry"),
85
+ count: z.number().describe("The number of procedures"),
86
+ });
87
+ /** The output of `procedure.delete` */
88
+ const DeleteOutputSchema = z.looseObject({
89
+ deleted: z.boolean().describe("True when the registry removed the procedure"),
90
+ });
91
+ // =============================================================================
92
+ // Aggregation Handler Factory
93
+ // =============================================================================
94
+ /**
95
+ * Create a handler that executes an aggregation definition.
96
+ *
97
+ * The body runs exactly as `exec()` runs the same program: `prepareRootCall()` gives the path
98
+ * and the input of the root call (a `$when` on the root call does not apply, a list of calls in
99
+ * the root input is an implicit chain), then the body starts the root call. The scope of the
100
+ * body has one name, `input`: the input of the procedure. So `{ $ref: "input.dir" }` reads a
101
+ * field of the input, and `$last`, the step names, `item`, `acc` and `index` keep their meaning
102
+ * inside the body. (Deep dive CORE-4: before, a first pass replaced every `$ref` with a field of
103
+ * the input. Docs review DOC-3: before, the body hydrated its root call as a nested ref, so a
104
+ * root `$when` applied and a list in the root input stayed a list.)
105
+ */
106
+ function createAggregationHandler(aggregation) {
107
+ return async (input, ctx) => {
108
+ if (!ctx?.client) {
109
+ throw new Error("procedure.define requires a client context to execute aggregations");
110
+ }
111
+ const scope = createRefScope();
112
+ scope.outputs.set("input", input);
113
+ const executor = (path, value) => ctx.client.call(path, value);
114
+ const options = { scope, rawInput: rawInputRule(ctx.registry ?? PROCEDURE_REGISTRY), onRef: ctx.onRef };
115
+ if (isAnyProcedureRef(aggregation)) {
116
+ const root = await prepareRootCall(aggregation, executor, options);
117
+ return ctx.client.call(root.path, root.input);
118
+ }
119
+ // A body that is not one call (an older stored program): hydrate it as a root value
120
+ return hydrateInput(aggregation, executor, options);
121
+ };
122
+ }
123
+ // =============================================================================
124
+ // Runtime-Defined Procedures
125
+ // =============================================================================
126
+ /**
127
+ * The handlers that `procedure.define` made, with the program (the aggregation) of each. The
128
+ * registry is the only store of the procedures: a procedure is runtime-defined when its handler
129
+ * is a key here. (Before, a separate map kept them, and `procedure.delete` removed only the map
130
+ * entry: deep dive CORE-3.) The program is kept here, not only in the metadata: a caller that
131
+ * gives its own metadata to `procedure.define` replaces the metadata.
132
+ */
133
+ const RUNTIME_PROGRAMS = new WeakMap();
134
+ /** True for a procedure that `procedure.define` made. */
135
+ export function isRuntimeDefined(procedure) {
136
+ return typeof procedure.handler === "function" && RUNTIME_PROGRAMS.has(procedure.handler);
137
+ }
138
+ /**
139
+ * The program (the aggregation) of a procedure that `procedure.define` made, or undefined for a
140
+ * code procedure. A program store saves it and defines it again after a restart (roadmap 3.2).
141
+ */
142
+ export function runtimeProgramOf(procedure) {
143
+ return typeof procedure.handler === "function" ? RUNTIME_PROGRAMS.get(procedure.handler) : undefined;
144
+ }
145
+ /**
146
+ * Get a runtime-defined procedure by path.
147
+ */
148
+ export function getRuntimeProcedure(path, registry = PROCEDURE_REGISTRY) {
149
+ const procedure = registry.get(path);
150
+ return procedure && isRuntimeDefined(procedure) ? procedure : undefined;
151
+ }
152
+ /**
153
+ * Check if a runtime procedure exists.
154
+ */
155
+ export function hasRuntimeProcedure(path, registry = PROCEDURE_REGISTRY) {
156
+ return getRuntimeProcedure(path, registry) !== undefined;
157
+ }
158
+ /**
159
+ * Get all runtime-defined procedures.
160
+ */
161
+ export function getAllRuntimeProcedures(registry = PROCEDURE_REGISTRY) {
162
+ return registry.getAll().filter(isRuntimeDefined);
163
+ }
164
+ /**
165
+ * Clear all runtime-defined procedures.
166
+ * Useful for testing.
167
+ */
168
+ export function clearRuntimeProcedures(registry = PROCEDURE_REGISTRY) {
169
+ for (const proc of getAllRuntimeProcedures(registry)) {
170
+ registry.unregister(proc.path);
171
+ }
172
+ }
173
+ /**
174
+ * The procedure.define procedure.
175
+ *
176
+ * This is a meta-procedure that creates other procedures at runtime
177
+ * from JSON aggregation definitions.
178
+ *
179
+ * The rules (deep dive CORE-3, MCP-4):
180
+ * - The procedure goes into the caller's registry (`ctx.registry`).
181
+ * - `replace: true` replaces only a procedure that `procedure.define` made. A code procedure
182
+ * stays: an MCP client cannot replace a tool or an internal procedure.
183
+ * - The registry gets the procedure first. A define that fails leaves nothing.
184
+ * - The new procedure is data-driven: with a server's `expose` rule, it calls only exposed paths.
185
+ * - Its input is raw (the `runs-refs` tag): `exec()` does not run the body at definition time.
186
+ */
187
+ export const defineProcedureProcedure = defineProcedure({
188
+ path: ["procedure", "define"],
189
+ input: defineInputSchema,
190
+ output: DefineOutputSchema,
191
+ metadata: {
192
+ description: "Define a new procedure from an aggregation",
193
+ tags: ["core", "meta", RUNS_REFS_TAG],
194
+ metaProcedure: true,
195
+ },
196
+ handler: async (input, ctx) => {
197
+ const { path, aggregation, metadata, replace } = input;
198
+ const registry = ctx?.registry ?? PROCEDURE_REGISTRY;
199
+ assertValidPath(path);
200
+ if (!isAnyProcedureRef(aggregation)) {
201
+ throw new Error('procedure.define: the aggregation must be a procedure ref: { "$proc": [...], "input": {...} }');
202
+ }
203
+ const pathKey = path.join(".");
204
+ const existing = registry.get(path);
205
+ if (existing && !isRuntimeDefined(existing)) {
206
+ throw new Error(`A code procedure exists at path: ${pathKey}. procedure.define can replace only a procedure that procedure.define made.`);
207
+ }
208
+ if (existing && !replace) {
209
+ throw new Error(`Procedure already exists at path: ${pathKey}`);
210
+ }
211
+ // Create the procedure
212
+ const procedure = defineProcedure({
213
+ path,
214
+ input: anySchema,
215
+ output: anySchema,
216
+ metadata: metadata ?? {
217
+ description: `Runtime-defined aggregation procedure`,
218
+ generatedFrom: "procedure.define",
219
+ aggregation,
220
+ },
221
+ handler: createAggregationHandler(aggregation),
222
+ });
223
+ // Its behavior comes from data: a server with an expose rule lets it call only exposed procedures
224
+ markDataDriven(procedure);
225
+ RUNTIME_PROGRAMS.set(procedure.handler, aggregation);
226
+ // Validate the procedure
227
+ validateProcedure(procedure);
228
+ // The registry is the store: exec()/call()/transports find the procedure there. See
229
+ // documentation/BUGS-2026-07.md (H4).
230
+ registry.register(procedure, { override: existing !== undefined });
231
+ return {
232
+ path,
233
+ replaced: existing !== undefined,
234
+ };
235
+ },
236
+ });
237
+ function describeProcedure(procedure, withMetadata) {
238
+ const meta = procedure.metadata;
239
+ const description = {
240
+ path: procedure.path,
241
+ key: pathToKey(procedure.path),
242
+ description: meta?.description,
243
+ tags: meta?.tags,
244
+ hasHandler: !!procedure.handler,
245
+ runtime: isRuntimeDefined(procedure),
246
+ };
247
+ if (withMetadata)
248
+ description.metadata = meta;
249
+ return description;
250
+ }
251
+ const listInputSchema = z.object({
252
+ /** Only the procedures under this first path segment */
253
+ namespace: z.string().optional().describe("Only the procedures under this first path segment"),
254
+ /** The whole metadata of each procedure */
255
+ includeMetadata: z.boolean().optional().describe("Give the whole metadata of each procedure"),
256
+ /** Only the procedures that procedure.define made */
257
+ runtime: z.boolean().optional().describe("Only the procedures that procedure.define made"),
258
+ });
259
+ const getInputSchema = z.object({
260
+ /** The path, as an array or a dotted key */
261
+ path: z.union([z.array(z.string()), z.string()]).describe("The path, as an array or a dotted key"),
262
+ });
263
+ /**
264
+ * Describe one procedure of the caller's registry.
265
+ *
266
+ * Docs review DOC-6: the core version gave only runtime-defined procedures, and client-procedure
267
+ * replaced it with a version for the whole registry, so the result depended on the imports of
268
+ * the host. This is the one implementation: any procedure, with `runtime` for a defined one (its
269
+ * metadata holds the aggregation).
270
+ */
271
+ export const getProcedureProcedure = defineProcedure({
272
+ path: ["procedure", "get"],
273
+ input: zodAdapter(getInputSchema),
274
+ output: GetOutputSchema,
275
+ metadata: {
276
+ description: "Describe a procedure by path or key",
277
+ tags: ["core", "meta"],
278
+ args: ["path"],
279
+ output: "json",
280
+ },
281
+ handler: async (input, ctx) => {
282
+ const path = typeof input.path === "string" ? keyToPath(input.path) : input.path;
283
+ const procedure = (ctx?.registry ?? PROCEDURE_REGISTRY).get(path);
284
+ if (!procedure) {
285
+ return { found: false };
286
+ }
287
+ return {
288
+ found: true,
289
+ ...describeProcedure(procedure, true),
290
+ hasInputSchema: !!procedure.input,
291
+ hasOutputSchema: !!procedure.output,
292
+ };
293
+ },
294
+ });
295
+ /**
296
+ * List the procedures of the caller's registry: all of them, the procedures under a namespace,
297
+ * or (`runtime: true`) only the procedures that `procedure.define` made. See `getProcedureProcedure`
298
+ * for DOC-6.
299
+ */
300
+ export const listProceduresProcedure = defineProcedure({
301
+ path: ["procedure", "list"],
302
+ input: zodAdapter(listInputSchema),
303
+ output: ListOutputSchema,
304
+ metadata: {
305
+ description: "List the registered procedures",
306
+ tags: ["core", "meta"],
307
+ args: [],
308
+ shorts: { namespace: "n", includeMetadata: "m" },
309
+ output: "json",
310
+ },
311
+ handler: async (input, ctx) => {
312
+ let all = (ctx?.registry ?? PROCEDURE_REGISTRY).getAll();
313
+ if (input.runtime)
314
+ all = all.filter(isRuntimeDefined);
315
+ if (input.namespace)
316
+ all = all.filter((procedure) => procedure.path[0] === input.namespace);
317
+ const procedures = all.map((procedure) => describeProcedure(procedure, input.includeMetadata ?? false));
318
+ return { procedures, count: procedures.length };
319
+ },
320
+ });
321
+ /**
322
+ * Delete a runtime-defined procedure.
323
+ */
324
+ export const deleteProcedureProcedure = defineProcedure({
325
+ path: ["procedure", "delete"],
326
+ input: deleteInputSchema,
327
+ output: DeleteOutputSchema,
328
+ metadata: {
329
+ description: "Delete a runtime-defined procedure",
330
+ tags: ["core", "meta"],
331
+ },
332
+ handler: async (input, ctx) => {
333
+ const registry = ctx?.registry ?? PROCEDURE_REGISTRY;
334
+ const existing = registry.get(input.path);
335
+ if (!existing) {
336
+ return { deleted: false };
337
+ }
338
+ // A code procedure stays (deep dive CORE-3: before, delete only forgot the runtime record)
339
+ if (!isRuntimeDefined(existing)) {
340
+ throw new Error(`procedure.delete removes only a procedure that procedure.define made: ${input.path.join(".")} is a code procedure.`);
341
+ }
342
+ return { deleted: registry.unregister(input.path) };
343
+ },
344
+ });
345
+ // =============================================================================
346
+ // Export All Meta-Procedures
347
+ // =============================================================================
348
+ /**
349
+ * All meta-procedures for procedure management.
350
+ */
351
+ export const metaProcedures = [
352
+ // They read the registry. define and delete change it (CAPABILITIES-2026-10).
353
+ ...withEffects({ reads: ["registry"], writes: ["registry"] }, [defineProcedureProcedure]),
354
+ ...withEffects(REGISTRY_READ_EFFECTS, [getProcedureProcedure, listProceduresProcedure]),
355
+ ...withEffects({ reads: ["registry"], writes: ["registry"] }, [deleteProcedureProcedure]),
356
+ ];
357
+ //# sourceMappingURL=define-procedure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-procedure.js","sourceRoot":"","sources":["../../src/procedures/define-procedure.ts"],"names":[],"mappings":"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"}