@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,216 @@
1
+ /**
2
+ * HTTP Header Utilities
3
+ *
4
+ * Provides constants for standard HTTP headers and utilities for
5
+ * converting between universal metadata and HTTP headers.
6
+ */
7
+ /**
8
+ * Standard HTTP Header Names
9
+ *
10
+ * Type-safe constants for commonly used HTTP headers.
11
+ * No more magic strings!
12
+ */
13
+ export const HTTPHeaders = {
14
+ // Standard HTTP headers
15
+ CONTENT_TYPE: "Content-Type",
16
+ CONTENT_LENGTH: "Content-Length",
17
+ AUTHORIZATION: "Authorization",
18
+ USER_AGENT: "User-Agent",
19
+ ACCEPT: "Accept",
20
+ ACCEPT_ENCODING: "Accept-Encoding",
21
+ ACCEPT_LANGUAGE: "Accept-Language",
22
+ CACHE_CONTROL: "Cache-Control",
23
+ CONNECTION: "Connection",
24
+ HOST: "Host",
25
+ ORIGIN: "Origin",
26
+ REFERER: "Referer",
27
+ // Custom RPC headers
28
+ REQUEST_ID: "X-Request-Id",
29
+ // Authentication headers
30
+ API_KEY: "X-API-Key",
31
+ // Tracing headers (OpenTelemetry/Jaeger compatible)
32
+ TRACE_ID: "X-Trace-Id",
33
+ SPAN_ID: "X-Span-Id",
34
+ PARENT_SPAN_ID: "X-Parent-Span-Id",
35
+ // Timeout headers
36
+ TIMEOUT: "X-Timeout",
37
+ // The custom metadata of a request, as URI-encoded JSON (deep dive TRN-11)
38
+ METADATA: "X-Metadata",
39
+ // Server timing
40
+ SERVER_TIMING: "Server-Timing",
41
+ };
42
+ /**
43
+ * Default Header Converter Implementation
44
+ *
45
+ * Implements standard conventions for converting metadata to headers:
46
+ * - Auth: Bearer token, API key
47
+ * - Tracing: X-Trace-Id, X-Span-Id format
48
+ * - Timeouts: X-Timeout header
49
+ * - Custom fields: Pass through as-is
50
+ */
51
+ export class DefaultHeaderConverter {
52
+ /**
53
+ * Custom fields: a string value with a header-safe key and a Latin-1 value also goes as its
54
+ * own header (for servers that read headers). Every custom field, of any JSON type, goes in
55
+ * the `X-Metadata` header. Before, only string values got through, and a non-Latin-1 value
56
+ * or a key with a space failed the call (deep dive TRN-11). Keys that start with "__" are
57
+ * internal to the process and never go.
58
+ *
59
+ * @throws an error with code METADATA_TOO_LARGE when `X-Metadata` is longer than
60
+ * METADATA_HEADER_LIMIT characters
61
+ */
62
+ metadataToHeaders(metadata) {
63
+ const headers = {};
64
+ // Authentication
65
+ if (metadata.auth?.token) {
66
+ headers[HTTPHeaders.AUTHORIZATION] = `Bearer ${metadata.auth.token}`;
67
+ }
68
+ if (metadata.auth?.apiKey) {
69
+ headers[HTTPHeaders.API_KEY] = metadata.auth.apiKey;
70
+ }
71
+ // Distributed Tracing
72
+ if (metadata.tracing?.traceId) {
73
+ headers[HTTPHeaders.TRACE_ID] = metadata.tracing.traceId;
74
+ }
75
+ if (metadata.tracing?.spanId) {
76
+ headers[HTTPHeaders.SPAN_ID] = metadata.tracing.spanId;
77
+ }
78
+ if (metadata.tracing?.parentSpanId) {
79
+ headers[HTTPHeaders.PARENT_SPAN_ID] = metadata.tracing.parentSpanId;
80
+ }
81
+ // Timeouts
82
+ if (metadata.timeout?.overall) {
83
+ headers[HTTPHeaders.TIMEOUT] = String(metadata.timeout.overall);
84
+ }
85
+ const custom = {};
86
+ for (const [key, value] of Object.entries(metadata)) {
87
+ // Skip known structured fields and the internal keys
88
+ if (STRUCTURED_FIELDS.has(key) || key.startsWith("__") || value === undefined) {
89
+ continue;
90
+ }
91
+ custom[key] = value;
92
+ if (typeof value === "string" && HEADER_TOKEN.test(key) && LATIN1.test(value)) {
93
+ headers[key] = value;
94
+ }
95
+ }
96
+ if (Object.keys(custom).length > 0) {
97
+ const encoded = encodeURIComponent(JSON.stringify(custom));
98
+ if (encoded.length > METADATA_HEADER_LIMIT) {
99
+ throw Object.assign(new Error(`The request metadata is too large for a header (${encoded.length} > ${METADATA_HEADER_LIMIT} characters)`), { code: "METADATA_TOO_LARGE" });
100
+ }
101
+ headers[HTTPHeaders.METADATA] = encoded;
102
+ }
103
+ return headers;
104
+ }
105
+ headersToMetadata(headers) {
106
+ const metadata = {};
107
+ // Normalize to getter function
108
+ const get = (name) => {
109
+ if (headers instanceof Headers) {
110
+ return headers.get(name);
111
+ }
112
+ return headers[name] ?? headers[name.toLowerCase()] ?? null;
113
+ };
114
+ // Extract tracing headers
115
+ const traceId = get(HTTPHeaders.TRACE_ID);
116
+ const spanId = get(HTTPHeaders.SPAN_ID);
117
+ const parentSpanId = get(HTTPHeaders.PARENT_SPAN_ID);
118
+ if (traceId || spanId) {
119
+ metadata.tracing = {
120
+ traceId: traceId || "",
121
+ spanId: spanId || "",
122
+ ...(parentSpanId && { parentSpanId }),
123
+ };
124
+ }
125
+ // Extract timing headers
126
+ const serverTiming = get(HTTPHeaders.SERVER_TIMING);
127
+ if (serverTiming) {
128
+ metadata["timing"] = serverTiming;
129
+ }
130
+ // Extract timeout
131
+ const timeout = get(HTTPHeaders.TIMEOUT);
132
+ if (timeout) {
133
+ const timeoutMs = parseInt(timeout, 10);
134
+ if (!isNaN(timeoutMs)) {
135
+ metadata.timeout = { overall: timeoutMs };
136
+ }
137
+ }
138
+ // Extract API key (but not Authorization - that's sensitive)
139
+ const apiKey = get(HTTPHeaders.API_KEY);
140
+ if (apiKey) {
141
+ metadata.auth = { apiKey };
142
+ }
143
+ return metadata;
144
+ }
145
+ }
146
+ /** The metadata fields that have their own headers, and the middleware state: not custom fields. */
147
+ const STRUCTURED_FIELDS = new Set(["tracing", "auth", "timeout", "retry"]);
148
+ /** A header name: the "token" characters of RFC 9110. */
149
+ const HEADER_TOKEN = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
150
+ /** A header value that fetch accepts: Latin-1, with no control characters but tab. */
151
+ const LATIN1 = /^[\t\x20-\x7e\x80-\xff]*$/;
152
+ /** The longest `X-Metadata` value, in characters. */
153
+ export const METADATA_HEADER_LIMIT = 8192;
154
+ /**
155
+ * This function reads the `X-Metadata` header: the custom metadata as an object, or undefined
156
+ * when the value is not URI-encoded JSON of an object.
157
+ */
158
+ export function decodeMetadataHeader(value) {
159
+ if (!value || value.length > METADATA_HEADER_LIMIT)
160
+ return undefined;
161
+ try {
162
+ const decoded = JSON.parse(decodeURIComponent(value));
163
+ if (decoded === null || typeof decoded !== "object" || Array.isArray(decoded))
164
+ return undefined;
165
+ return decoded;
166
+ }
167
+ catch {
168
+ return undefined;
169
+ }
170
+ }
171
+ /**
172
+ * Create a default header converter instance
173
+ */
174
+ export function createDefaultHeaderConverter() {
175
+ return new DefaultHeaderConverter();
176
+ }
177
+ /**
178
+ * Utility: Check if headers contain authentication
179
+ */
180
+ export function hasAuthHeaders(headers) {
181
+ const get = (name) => {
182
+ if (headers instanceof Headers) {
183
+ return headers.get(name);
184
+ }
185
+ return headers[name] ?? headers[name.toLowerCase()] ?? null;
186
+ };
187
+ return !!(get(HTTPHeaders.AUTHORIZATION) || get(HTTPHeaders.API_KEY));
188
+ }
189
+ /**
190
+ * Utility: Check if headers contain tracing information
191
+ */
192
+ export function hasTracingHeaders(headers) {
193
+ const get = (name) => {
194
+ if (headers instanceof Headers) {
195
+ return headers.get(name);
196
+ }
197
+ return headers[name] ?? headers[name.toLowerCase()] ?? null;
198
+ };
199
+ return !!(get(HTTPHeaders.TRACE_ID) || get(HTTPHeaders.SPAN_ID));
200
+ }
201
+ /**
202
+ * Utility: Extract request ID from headers
203
+ */
204
+ export function getRequestId(headers) {
205
+ if (headers instanceof Headers) {
206
+ return headers.get(HTTPHeaders.REQUEST_ID);
207
+ }
208
+ return headers[HTTPHeaders.REQUEST_ID] ?? headers[HTTPHeaders.REQUEST_ID.toLowerCase()] ?? null;
209
+ }
210
+ /**
211
+ * Utility: Set request ID in headers
212
+ */
213
+ export function setRequestId(headers, requestId) {
214
+ headers[HTTPHeaders.REQUEST_ID] = requestId;
215
+ }
216
+ //# sourceMappingURL=headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../../../src/adapters/http/shared/headers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,wBAAwB;IACxB,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAElB,qBAAqB;IACrB,UAAU,EAAE,cAAc;IAE1B,yBAAyB;IACzB,OAAO,EAAE,WAAW;IAEpB,oDAAoD;IACpD,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,WAAW;IACpB,cAAc,EAAE,kBAAkB;IAElC,kBAAkB;IAClB,OAAO,EAAE,WAAW;IAEpB,2EAA2E;IAC3E,QAAQ,EAAE,YAAY;IAEtB,gBAAgB;IAChB,aAAa,EAAE,eAAe;CACtB,CAAC;AA0CX;;;;;;;;GAQG;AACH,MAAM,OAAO,sBAAsB;IACjC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,QAAkB;QAClC,MAAM,OAAO,GAAmB,EAAE,CAAC;QAEnC,iBAAiB;QACjB,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,UAAU,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACvE,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAC1B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACtD,CAAC;QAED,sBAAsB;QACtB,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3D,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QACzD,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;YACnC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;QACtE,CAAC;QAED,WAAW;QACX,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,qDAAqD;YACrD,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9E,SAAS;YACX,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9E,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3D,IAAI,OAAO,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;gBAC3C,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,mDAAmD,OAAO,CAAC,MAAM,MAAM,qBAAqB,cAAc,CAAC,EACrH,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAC/B,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAC1C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iBAAiB,CAAC,OAAiC;QACjD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,+BAA+B;QAC/B,MAAM,GAAG,GAAG,CAAC,IAAY,EAAiB,EAAE;YAC1C,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;QAC9D,CAAC,CAAC;QAEF,0BAA0B;QAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAErD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,QAAQ,CAAC,OAAO,GAAG;gBACjB,OAAO,EAAE,OAAO,IAAI,EAAE;gBACtB,MAAM,EAAE,MAAM,IAAI,EAAE;gBACpB,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;aACtC,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,MAAM,YAAY,GAAG,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,YAAY,EAAE,CAAC;YACjB,QAAQ,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;QACpC,CAAC;QAED,kBAAkB;QAClB,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtB,QAAQ,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,oGAAoG;AACpG,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAE3E,yDAAyD;AACzD,MAAM,YAAY,GAAG,+BAA+B,CAAC;AAErD,sFAAsF;AACtF,MAAM,MAAM,GAAG,2BAA2B,CAAC;AAE3C,qDAAqD;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAgC;IACnE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,qBAAqB;QAAE,OAAO,SAAS,CAAC;IACrE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAY,CAAC;QACjE,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,SAAS,CAAC;QAChG,OAAO,OAAkC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO,IAAI,sBAAsB,EAAE,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAiC;IAC9D,MAAM,GAAG,GAAG,CAAC,IAAY,EAAiB,EAAE;QAC1C,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;IAC9D,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiC;IACjE,MAAM,GAAG,GAAG,CAAC,IAAY,EAAiB,EAAE;QAC1C,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;IAC9D,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAiC;IAC5D,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AAClG,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAuB,EAAE,SAAiB;IACrE,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shared HTTP Utilities
3
+ *
4
+ * Common constants, types, and utilities shared between
5
+ * client and server HTTP adapters.
6
+ */
7
+ export * from "./constants.js";
8
+ export * from "./status-codes.js";
9
+ export * from "./headers.js";
10
+ export * from "./strategies.js";
11
+ export * from "./errors.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,gBAAgB,CAAC;AAG/B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,cAAc,CAAC;AAG7B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Shared HTTP Utilities
3
+ *
4
+ * Common constants, types, and utilities shared between
5
+ * client and server HTTP adapters.
6
+ */
7
+ // Constants
8
+ export * from "./constants.js";
9
+ // Status Codes
10
+ export * from "./status-codes.js";
11
+ // Headers
12
+ export * from "./headers.js";
13
+ // Strategies
14
+ export * from "./strategies.js";
15
+ // Errors
16
+ export * from "./errors.js";
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/http/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY;AACZ,cAAc,gBAAgB,CAAC;AAE/B,eAAe;AACf,cAAc,mBAAmB,CAAC;AAElC,UAAU;AACV,cAAc,cAAc,CAAC;AAE7B,aAAa;AACb,cAAc,iBAAiB,CAAC;AAEhC,SAAS;AACT,cAAc,aAAa,CAAC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * HTTP Status Code Utilities
3
+ *
4
+ * Utilities for working with HTTP status codes, including mappings
5
+ * and classification helpers.
6
+ */
7
+ import { HTTPStatus } from "./constants.js";
8
+ /**
9
+ * HTTP Status Code to String Code Mapping
10
+ *
11
+ * Maps numeric status codes to semantic string codes.
12
+ */
13
+ export declare const HTTPStatusToCode: Record<HTTPStatus, string>;
14
+ /**
15
+ * Legacy alias for backwards compatibility
16
+ * @deprecated Use HTTPStatusToCode instead
17
+ */
18
+ export declare const HTTPCodeMap: typeof HTTPStatusToCode;
19
+ /**
20
+ * String Code to HTTP Status Mapping (Reverse of HTTPStatusToCode)
21
+ *
22
+ * Maps semantic string codes back to numeric status codes.
23
+ */
24
+ export declare const CodeToHTTPStatus: Record<string, HTTPStatus>;
25
+ /**
26
+ * Check if status code represents success (2xx)
27
+ */
28
+ export declare function isSuccessStatus(status: HTTPStatus): boolean;
29
+ /**
30
+ * Check if status code represents informational response (1xx)
31
+ */
32
+ export declare function isInformationalStatus(status: HTTPStatus): boolean;
33
+ /**
34
+ * Check if status code represents redirection (3xx)
35
+ */
36
+ export declare function isRedirectStatus(status: HTTPStatus): boolean;
37
+ /**
38
+ * Check if status code represents client error (4xx)
39
+ */
40
+ export declare function isClientErrorStatus(status: HTTPStatus): boolean;
41
+ /**
42
+ * Check if status code represents server error (5xx)
43
+ */
44
+ export declare function isServerErrorStatus(status: HTTPStatus): boolean;
45
+ /**
46
+ * Check if status code represents any error (4xx or 5xx)
47
+ */
48
+ export declare function isErrorStatus(status: HTTPStatus): boolean;
49
+ /**
50
+ * Check if status code is typically retryable
51
+ *
52
+ * Default policy: server errors and specific client errors (timeout, rate limit) are retryable.
53
+ * Can be overridden via retry middleware configuration.
54
+ */
55
+ export declare function isRetryableStatus(status: HTTPStatus): boolean;
56
+ /**
57
+ * Get semantic code string for a status
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * getStatusCode(HTTPStatus.OK) // "OK"
62
+ * getStatusCode(404) // "NOT_FOUND"
63
+ * getStatusCode(999) // "UNKNOWN"
64
+ * ```
65
+ */
66
+ export declare function getStatusCode(status: HTTPStatus): string;
67
+ /**
68
+ * Get HTTP status from semantic code string
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * getStatusFromCode("OK") // HTTPStatus.OK (200)
73
+ * getStatusFromCode("NOT_FOUND") // HTTPStatus.NOT_FOUND (404)
74
+ * getStatusFromCode("INVALID") // HTTPStatus.UNKNOWN (0)
75
+ * ```
76
+ */
77
+ export declare function getStatusFromCode(code: string): HTTPStatus;
78
+ /**
79
+ * Format HTTP error message
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * formatHTTPError(HTTPStatus.NOT_FOUND) // "HTTP 404"
84
+ * formatHTTPError(500) // "HTTP 500"
85
+ * ```
86
+ */
87
+ export declare function formatHTTPError(status: HTTPStatus): string;
88
+ /**
89
+ * Validate if a number is a valid HTTP status code
90
+ */
91
+ export declare function isValidHTTPStatus(status: number): status is HTTPStatus;
92
+ //# sourceMappingURL=status-codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-codes.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/shared/status-codes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,gBAAgB,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAqET,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,OAAO,gBAAmC,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAEzB,CAAC;AAEhC;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE5D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAe7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAExD;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAE1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,UAAU,CAEtE"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * HTTP Status Code Utilities
3
+ *
4
+ * Utilities for working with HTTP status codes, including mappings
5
+ * and classification helpers.
6
+ */
7
+ import { HTTPStatus, HTTP } from "./constants.js";
8
+ /**
9
+ * HTTP Status Code to String Code Mapping
10
+ *
11
+ * Maps numeric status codes to semantic string codes.
12
+ */
13
+ export const HTTPStatusToCode = {
14
+ [HTTPStatus.UNKNOWN]: "UNKNOWN",
15
+ [HTTPStatus.CONTINUE]: "CONTINUE",
16
+ [HTTPStatus.SWITCHING_PROTOCOLS]: "SWITCHING_PROTOCOLS",
17
+ [HTTPStatus.PROCESSING]: "PROCESSING",
18
+ [HTTPStatus.EARLY_HINTS]: "EARLY_HINTS",
19
+ [HTTPStatus.RESPONSE_IS_TOO_LARGE]: "RESPONSE_IS_TOO_LARGE",
20
+ [HTTPStatus.OK]: "OK",
21
+ [HTTPStatus.CREATED]: "CREATED",
22
+ [HTTPStatus.ACCEPTED]: "ACCEPTED",
23
+ [HTTPStatus.NON_AUTHORITATIVE_INFORMATION]: "NON_AUTHORITATIVE_INFORMATION",
24
+ [HTTPStatus.NO_CONTENT]: "NO_CONTENT",
25
+ [HTTPStatus.RESET_CONTENT]: "RESET_CONTENT",
26
+ [HTTPStatus.PARTIAL_CONTENT]: "PARTIAL_CONTENT",
27
+ [HTTPStatus.MULTI_STATUS]: "MULTI_STATUS",
28
+ [HTTPStatus.ALREADY_REPORTED]: "ALREADY_REPORTED",
29
+ [HTTPStatus.IM_USED]: "IM_USED",
30
+ [HTTPStatus.MULTIPLE_CHOICES]: "MULTIPLE_CHOICES",
31
+ [HTTPStatus.MOVED_PERMANENTLY]: "MOVED_PERMANENTLY",
32
+ [HTTPStatus.FOUND]: "FOUND",
33
+ [HTTPStatus.SEE_OTHER]: "SEE_OTHER",
34
+ [HTTPStatus.NOT_MODIFIED]: "NOT_MODIFIED",
35
+ [HTTPStatus.USE_PROXY]: "USE_PROXY",
36
+ [HTTPStatus.TEMPORARY_REDIRECT]: "TEMPORARY_REDIRECT",
37
+ [HTTPStatus.PERMANENT_REDIRECT]: "PERMANENT_REDIRECT",
38
+ [HTTPStatus.BAD_REQUEST]: "BAD_REQUEST",
39
+ [HTTPStatus.UNAUTHORIZED]: "UNAUTHORIZED",
40
+ [HTTPStatus.FORBIDDEN]: "FORBIDDEN",
41
+ [HTTPStatus.NOT_FOUND]: "NOT_FOUND",
42
+ [HTTPStatus.METHOD_NOT_ALLOWED]: "METHOD_NOT_ALLOWED",
43
+ [HTTPStatus.NOT_ACCEPTABLE]: "NOT_ACCEPTABLE",
44
+ [HTTPStatus.PROXY_AUTHENTICATION_REQUIRED]: "PROXY_AUTHENTICATION_REQUIRED",
45
+ [HTTPStatus.REQUEST_TIMEOUT]: "REQUEST_TIMEOUT",
46
+ [HTTPStatus.CONFLICT]: "CONFLICT",
47
+ [HTTPStatus.GONE]: "GONE",
48
+ [HTTPStatus.LENGTH_REQUIRED]: "LENGTH_REQUIRED",
49
+ [HTTPStatus.PRECONDITION_FAILED]: "PRECONDITION_FAILED",
50
+ [HTTPStatus.PAYLOAD_TOO_LARGE]: "PAYLOAD_TOO_LARGE",
51
+ [HTTPStatus.URI_TOO_LONG]: "URI_TOO_LONG",
52
+ [HTTPStatus.UNSUPPORTED_MEDIA_TYPE]: "UNSUPPORTED_MEDIA_TYPE",
53
+ [HTTPStatus.RANGE_NOT_SATISFIABLE]: "RANGE_NOT_SATISFIABLE",
54
+ [HTTPStatus.EXPECTATION_FAILED]: "EXPECTATION_FAILED",
55
+ [HTTPStatus.IM_A_TEAPOT]: "IM_A_TEAPOT",
56
+ [HTTPStatus.MISDIRECTED_REQUEST]: "MISDIRECTED_REQUEST",
57
+ [HTTPStatus.UNPROCESSABLE_ENTITY]: "UNPROCESSABLE_ENTITY",
58
+ [HTTPStatus.LOCKED]: "LOCKED",
59
+ [HTTPStatus.FAILED_DEPENDENCY]: "FAILED_DEPENDENCY",
60
+ [HTTPStatus.TOO_EARLY]: "TOO_EARLY",
61
+ [HTTPStatus.UPGRADE_REQUIRED]: "UPGRADE_REQUIRED",
62
+ [HTTPStatus.PRECONDITION_REQUIRED]: "PRECONDITION_REQUIRED",
63
+ [HTTPStatus.TOO_MANY_REQUESTS]: "TOO_MANY_REQUESTS",
64
+ [HTTPStatus.REQUEST_HEADER_FIELDS_TOO_LARGE]: "REQUEST_HEADER_FIELDS_TOO_LARGE",
65
+ [HTTPStatus.UNAVAILABLE_FOR_LEGAL_REASONS]: "UNAVAILABLE_FOR_LEGAL_REASONS",
66
+ [HTTPStatus.CLIENT_CLOSED_REQUEST]: "CLIENT_CLOSED_REQUEST",
67
+ [HTTPStatus.INTERNAL_SERVER_ERROR]: "INTERNAL_SERVER_ERROR",
68
+ [HTTPStatus.NOT_IMPLEMENTED]: "NOT_IMPLEMENTED",
69
+ [HTTPStatus.BAD_GATEWAY]: "BAD_GATEWAY",
70
+ [HTTPStatus.SERVICE_UNAVAILABLE]: "SERVICE_UNAVAILABLE",
71
+ [HTTPStatus.GATEWAY_TIMEOUT]: "GATEWAY_TIMEOUT",
72
+ [HTTPStatus.HTTP_VERSION_NOT_SUPPORTED]: "HTTP_VERSION_NOT_SUPPORTED",
73
+ [HTTPStatus.VARIANT_ALSO_NEGOTIATES]: "VARIANT_ALSO_NEGOTIATES",
74
+ [HTTPStatus.INSUFFICIENT_STORAGE]: "INSUFFICIENT_STORAGE",
75
+ [HTTPStatus.LOOP_DETECTED]: "LOOP_DETECTED",
76
+ [HTTPStatus.NOT_EXTENDED]: "NOT_EXTENDED",
77
+ [HTTPStatus.NETWORK_AUTHENTICATION_REQUIRED]: "NETWORK_AUTHENTICATION_REQUIRED",
78
+ [HTTPStatus.HTTP_NETWORK_CONNECT_TIMEOUT_ERROR]: "HTTP_NETWORK_CONNECT_TIMEOUT_ERROR",
79
+ };
80
+ /**
81
+ * Legacy alias for backwards compatibility
82
+ * @deprecated Use HTTPStatusToCode instead
83
+ */
84
+ export const HTTPCodeMap = HTTPStatusToCode;
85
+ /**
86
+ * String Code to HTTP Status Mapping (Reverse of HTTPStatusToCode)
87
+ *
88
+ * Maps semantic string codes back to numeric status codes.
89
+ */
90
+ export const CodeToHTTPStatus = Object.fromEntries(Object.entries(HTTPStatusToCode).map(([status, code]) => [code, Number(status)]));
91
+ /**
92
+ * Check if status code represents success (2xx)
93
+ */
94
+ export function isSuccessStatus(status) {
95
+ return status >= HTTPStatus.OK && status < HTTPStatus.MULTIPLE_CHOICES;
96
+ }
97
+ /**
98
+ * Check if status code represents informational response (1xx)
99
+ */
100
+ export function isInformationalStatus(status) {
101
+ return status >= HTTPStatus.CONTINUE && status < HTTPStatus.OK;
102
+ }
103
+ /**
104
+ * Check if status code represents redirection (3xx)
105
+ */
106
+ export function isRedirectStatus(status) {
107
+ return status >= HTTPStatus.MULTIPLE_CHOICES && status < HTTPStatus.BAD_REQUEST;
108
+ }
109
+ /**
110
+ * Check if status code represents client error (4xx)
111
+ */
112
+ export function isClientErrorStatus(status) {
113
+ return status >= HTTPStatus.BAD_REQUEST && status < HTTPStatus.INTERNAL_SERVER_ERROR;
114
+ }
115
+ /**
116
+ * Check if status code represents server error (5xx)
117
+ */
118
+ export function isServerErrorStatus(status) {
119
+ return status >= HTTPStatus.INTERNAL_SERVER_ERROR && status < 600;
120
+ }
121
+ /**
122
+ * Check if status code represents any error (4xx or 5xx)
123
+ */
124
+ export function isErrorStatus(status) {
125
+ return isClientErrorStatus(status) || isServerErrorStatus(status);
126
+ }
127
+ /**
128
+ * Check if status code is typically retryable
129
+ *
130
+ * Default policy: server errors and specific client errors (timeout, rate limit) are retryable.
131
+ * Can be overridden via retry middleware configuration.
132
+ */
133
+ export function isRetryableStatus(status) {
134
+ // Server errors are generally retryable
135
+ if (isServerErrorStatus(status)) {
136
+ return true;
137
+ }
138
+ // Specific client errors that are retryable
139
+ if (status === HTTPStatus.REQUEST_TIMEOUT ||
140
+ status === HTTPStatus.TOO_MANY_REQUESTS) {
141
+ return true;
142
+ }
143
+ return false;
144
+ }
145
+ /**
146
+ * Get semantic code string for a status
147
+ *
148
+ * @example
149
+ * ```typescript
150
+ * getStatusCode(HTTPStatus.OK) // "OK"
151
+ * getStatusCode(404) // "NOT_FOUND"
152
+ * getStatusCode(999) // "UNKNOWN"
153
+ * ```
154
+ */
155
+ export function getStatusCode(status) {
156
+ return HTTPStatusToCode[status] ?? HTTPStatusToCode[HTTPStatus.UNKNOWN];
157
+ }
158
+ /**
159
+ * Get HTTP status from semantic code string
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * getStatusFromCode("OK") // HTTPStatus.OK (200)
164
+ * getStatusFromCode("NOT_FOUND") // HTTPStatus.NOT_FOUND (404)
165
+ * getStatusFromCode("INVALID") // HTTPStatus.UNKNOWN (0)
166
+ * ```
167
+ */
168
+ export function getStatusFromCode(code) {
169
+ return CodeToHTTPStatus[code] ?? HTTPStatus.UNKNOWN;
170
+ }
171
+ /**
172
+ * Format HTTP error message
173
+ *
174
+ * @example
175
+ * ```typescript
176
+ * formatHTTPError(HTTPStatus.NOT_FOUND) // "HTTP 404"
177
+ * formatHTTPError(500) // "HTTP 500"
178
+ * ```
179
+ */
180
+ export function formatHTTPError(status) {
181
+ return `${HTTP} ${status}`;
182
+ }
183
+ /**
184
+ * Validate if a number is a valid HTTP status code
185
+ */
186
+ export function isValidHTTPStatus(status) {
187
+ return status in HTTPStatusToCode;
188
+ }
189
+ //# sourceMappingURL=status-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-codes.js","sourceRoot":"","sources":["../../../../src/adapters/http/shared/status-codes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * HTTP Strategy Interfaces
3
+ *
4
+ * Defines extensible, bidirectional strategies for URL mapping
5
+ * and HTTP method selection. These strategies ensure client
6
+ * and server use consistent, inverse operations.
7
+ */
8
+ import type { Method } from "../../../client/types.js";
9
+ import { HTTPMethod } from "./constants.js";
10
+ /**
11
+ * URL Strategy (Client-side)
12
+ *
13
+ * Converts Method → URL
14
+ */
15
+ export type UrlStrategy = (method: Method, baseUrl: string) => string;
16
+ /**
17
+ * URL Parser Strategy (Server-side)
18
+ *
19
+ * Converts URL → Method (inverse of UrlStrategy)
20
+ */
21
+ export type UrlParserStrategy = (url: string, httpMethod: HTTPMethod) => Method | null;
22
+ /**
23
+ * HTTP Method Strategy (Client-side)
24
+ *
25
+ * Converts Method → HTTP method verb
26
+ */
27
+ export type HttpMethodStrategy = (method: Method) => HTTPMethod;
28
+ /**
29
+ * HTTP Method Parser Strategy (Server-side)
30
+ *
31
+ * Converts HTTP method verb → operation hints (inverse of HttpMethodStrategy)
32
+ */
33
+ export type HttpMethodParserStrategy = (httpMethod: HTTPMethod) => Partial<Method>;
34
+ /**
35
+ * Bidirectional URL Pattern
36
+ *
37
+ * Encapsulates both URL generation (client) and parsing (server)
38
+ * to ensure they remain algorithmic inverses.
39
+ */
40
+ export interface UrlPattern {
41
+ /** Template pattern (e.g., "/{version?}/{service}/{operation}") */
42
+ readonly template: string;
43
+ /** Generate URL from Method (client-side) */
44
+ format(method: Method, baseUrl: string): string;
45
+ /** Parse URL back to Method (server-side) */
46
+ parse(url: string, httpMethod: HTTPMethod): Method | null;
47
+ }
48
+ /**
49
+ * Default URL Pattern: /{version?}/{service}/{operation}
50
+ *
51
+ * Examples:
52
+ * - { service: "users", operation: "get" } → "/users/get"
53
+ * - { service: "users", operation: "get", version: "v2" } → "/v2/users/get"
54
+ */
55
+ export declare const defaultUrlPattern: UrlPattern;
56
+ /**
57
+ * RESTful URL Pattern: /{version?}/{service}/{id?}
58
+ *
59
+ * Infers operation from HTTP method and presence of ID:
60
+ * - GET /users → list
61
+ * - GET /users/123 → get
62
+ * - POST /users → create
63
+ * - PUT /users/123 → update
64
+ * - PATCH /users/123 → patch
65
+ * - DELETE /users/123 → delete
66
+ */
67
+ export declare const restfulUrlPattern: UrlPattern;
68
+ /**
69
+ * RESTful HTTP Method Strategy
70
+ *
71
+ * Maps operation names to HTTP methods:
72
+ * - get/list/find/watch → GET
73
+ * - create → POST
74
+ * - update → PUT
75
+ * - patch → PATCH
76
+ * - delete/remove → DELETE
77
+ * - default → POST
78
+ */
79
+ export declare const restfulHttpMethodStrategy: HttpMethodStrategy;
80
+ /**
81
+ * POST-only HTTP Method Strategy
82
+ *
83
+ * All operations use POST (simple RPC style).
84
+ */
85
+ export declare const postOnlyStrategy: HttpMethodStrategy;
86
+ /**
87
+ * Validate payload can be JSON stringified
88
+ */
89
+ export declare function isValidJSONPayload(payload: unknown): boolean;
90
+ //# sourceMappingURL=strategies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/shared/strategies.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;AAEtE;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,KAAK,MAAM,GAAG,IAAI,CAAC;AAEvF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC;AAEhE;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEnF;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,6CAA6C;IAC7C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhD,6CAA6C;IAC7C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;CAC3D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,UA2C/B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,EAAE,UA+D/B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,EAAE,kBAyBvC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAA0C,CAAC;AAsB1E;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE5D"}