@toa.io/extensions.exposition 1.0.0-alpha.274 → 1.0.0-alpha.277

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 (837) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/components/exposition.atom/operations/meter.js +1 -3
  3. package/components/exposition.octets/operations/delete.js +1 -3
  4. package/components/exposition.octets/operations/get.js +1 -3
  5. package/components/exposition.octets/operations/head.js +1 -3
  6. package/components/exposition.octets/operations/put.js +6 -6
  7. package/components/identity.bans/operations/transit.js +1 -5
  8. package/components/identity.bans/operations/transit.js.map +1 -1
  9. package/components/identity.bans/tsconfig.json +1 -0
  10. package/components/identity.bans/tsconfig.tsbuildinfo +1 -0
  11. package/components/identity.basic/events/principal.js +2 -4
  12. package/components/identity.basic/operations/add.d.ts +1 -1
  13. package/components/identity.basic/operations/add.js +1 -5
  14. package/components/identity.basic/operations/add.js.map +1 -1
  15. package/components/identity.basic/operations/authenticate.d.ts +1 -1
  16. package/components/identity.basic/operations/authenticate.js +3 -7
  17. package/components/identity.basic/operations/authenticate.js.map +1 -1
  18. package/components/identity.basic/operations/check.d.ts +1 -1
  19. package/components/identity.basic/operations/check.js +1 -5
  20. package/components/identity.basic/operations/check.js.map +1 -1
  21. package/components/identity.basic/operations/delete.d.ts +1 -1
  22. package/components/identity.basic/operations/delete.js +1 -5
  23. package/components/identity.basic/operations/delete.js.map +1 -1
  24. package/components/identity.basic/operations/incept.d.ts +1 -1
  25. package/components/identity.basic/operations/incept.js +1 -5
  26. package/components/identity.basic/operations/incept.js.map +1 -1
  27. package/components/identity.basic/operations/info.d.ts +1 -1
  28. package/components/identity.basic/operations/info.js +1 -5
  29. package/components/identity.basic/operations/info.js.map +1 -1
  30. package/components/identity.basic/operations/transit.d.ts +1 -1
  31. package/components/identity.basic/operations/transit.js +4 -8
  32. package/components/identity.basic/operations/transit.js.map +1 -1
  33. package/components/identity.basic/operations/types.js +1 -2
  34. package/components/identity.basic/source/add.ts +1 -1
  35. package/components/identity.basic/source/authenticate.ts +1 -1
  36. package/components/identity.basic/source/check.ts +1 -1
  37. package/components/identity.basic/source/delete.ts +1 -1
  38. package/components/identity.basic/source/incept.ts +1 -1
  39. package/components/identity.basic/source/info.ts +1 -1
  40. package/components/identity.basic/source/transit.ts +1 -1
  41. package/components/identity.basic/tsconfig.json +1 -0
  42. package/components/identity.basic/tsconfig.tsbuildinfo +1 -0
  43. package/components/identity.credentials/operations/list.js +1 -5
  44. package/components/identity.credentials/operations/list.js.map +1 -1
  45. package/components/identity.credentials/source/list.test.ts +12 -8
  46. package/components/identity.credentials/tsconfig.json +2 -1
  47. package/components/identity.credentials/tsconfig.tsbuildinfo +1 -0
  48. package/components/identity.federation/events/principal.js +5 -7
  49. package/components/identity.federation/operations/authenticate.d.ts +1 -1
  50. package/components/identity.federation/operations/authenticate.js +5 -9
  51. package/components/identity.federation/operations/authenticate.js.map +1 -1
  52. package/components/identity.federation/operations/create.d.ts +1 -1
  53. package/components/identity.federation/operations/create.js +3 -7
  54. package/components/identity.federation/operations/create.js.map +1 -1
  55. package/components/identity.federation/operations/decode.d.ts +1 -1
  56. package/components/identity.federation/operations/decode.js +3 -7
  57. package/components/identity.federation/operations/decode.js.map +1 -1
  58. package/components/identity.federation/operations/delete.d.ts +1 -1
  59. package/components/identity.federation/operations/delete.js +1 -5
  60. package/components/identity.federation/operations/delete.js.map +1 -1
  61. package/components/identity.federation/operations/incept.d.ts +1 -1
  62. package/components/identity.federation/operations/incept.js +3 -7
  63. package/components/identity.federation/operations/incept.js.map +1 -1
  64. package/components/identity.federation/operations/lib/Configuration.js +1 -2
  65. package/components/identity.federation/operations/lib/Ctx.d.ts +2 -2
  66. package/components/identity.federation/operations/lib/Ctx.js +1 -2
  67. package/components/identity.federation/operations/lib/Payload.js +1 -2
  68. package/components/identity.federation/operations/lib/decode.d.ts +2 -2
  69. package/components/identity.federation/operations/lib/decode.js +9 -13
  70. package/components/identity.federation/operations/lib/decode.js.map +1 -1
  71. package/components/identity.federation/operations/lib/discovery.d.ts +2 -2
  72. package/components/identity.federation/operations/lib/discovery.js +4 -9
  73. package/components/identity.federation/operations/lib/discovery.js.map +1 -1
  74. package/components/identity.federation/operations/lib/errors.d.ts +10 -10
  75. package/components/identity.federation/operations/lib/errors.js +10 -13
  76. package/components/identity.federation/operations/lib/errors.js.map +1 -1
  77. package/components/identity.federation/operations/lib/exchange.d.ts +2 -2
  78. package/components/identity.federation/operations/lib/exchange.js +8 -35
  79. package/components/identity.federation/operations/lib/exchange.js.map +1 -1
  80. package/components/identity.federation/operations/lib/index.d.ts +4 -4
  81. package/components/identity.federation/operations/lib/index.js +3 -9
  82. package/components/identity.federation/operations/lib/index.js.map +1 -1
  83. package/components/identity.federation/operations/lib/jose.d.ts +1 -41
  84. package/components/identity.federation/operations/lib/jose.js +1 -26
  85. package/components/identity.federation/operations/lib/jose.js.map +1 -1
  86. package/components/identity.federation/operations/lib/resolve.d.ts +2 -2
  87. package/components/identity.federation/operations/lib/resolve.js +5 -9
  88. package/components/identity.federation/operations/lib/resolve.js.map +1 -1
  89. package/components/identity.federation/operations/list.d.ts +1 -1
  90. package/components/identity.federation/operations/list.js +1 -5
  91. package/components/identity.federation/operations/list.js.map +1 -1
  92. package/components/identity.federation/operations/types/Scheme.js +1 -2
  93. package/components/identity.federation/operations/types/configuration.js +1 -2
  94. package/components/identity.federation/operations/types/context.d.ts +2 -2
  95. package/components/identity.federation/operations/types/context.js +1 -2
  96. package/components/identity.federation/operations/types/entity.js +1 -2
  97. package/components/identity.federation/operations/types/index.d.ts +4 -4
  98. package/components/identity.federation/operations/types/index.js +4 -20
  99. package/components/identity.federation/operations/types/index.js.map +1 -1
  100. package/components/identity.federation/source/authenticate.ts +2 -2
  101. package/components/identity.federation/source/create.ts +2 -2
  102. package/components/identity.federation/source/decode.ts +2 -2
  103. package/components/identity.federation/source/delete.ts +1 -1
  104. package/components/identity.federation/source/incept.ts +2 -2
  105. package/components/identity.federation/source/lib/Ctx.ts +2 -2
  106. package/components/identity.federation/source/lib/decode.ts +5 -5
  107. package/components/identity.federation/source/lib/discovery.test.ts +17 -12
  108. package/components/identity.federation/source/lib/discovery.ts +3 -3
  109. package/components/identity.federation/source/lib/exchange.ts +6 -6
  110. package/components/identity.federation/source/lib/index.ts +4 -4
  111. package/components/identity.federation/source/lib/jose.js +1 -5
  112. package/components/identity.federation/source/lib/resolve.ts +5 -5
  113. package/components/identity.federation/source/list.test.ts +9 -6
  114. package/components/identity.federation/source/list.ts +1 -1
  115. package/components/identity.federation/source/types/context.ts +2 -2
  116. package/components/identity.federation/source/types/index.ts +4 -4
  117. package/components/identity.federation/tsconfig.json +2 -1
  118. package/components/identity.federation/tsconfig.tsbuildinfo +1 -0
  119. package/components/identity.keys/operations/create.js +3 -7
  120. package/components/identity.keys/operations/create.js.map +1 -1
  121. package/components/identity.keys/tsconfig.json +1 -0
  122. package/components/identity.keys/tsconfig.tsbuildinfo +1 -0
  123. package/components/identity.otp/operations/authenticate.d.ts +1 -1
  124. package/components/identity.otp/operations/authenticate.js +1 -5
  125. package/components/identity.otp/operations/authenticate.js.map +1 -1
  126. package/components/identity.otp/operations/issue.d.ts +1 -1
  127. package/components/identity.otp/operations/issue.js +1 -5
  128. package/components/identity.otp/operations/issue.js.map +1 -1
  129. package/components/identity.otp/operations/lib/Context.d.ts +1 -1
  130. package/components/identity.otp/operations/lib/Context.js +1 -2
  131. package/components/identity.otp/operations/lib/Entity.js +1 -2
  132. package/components/identity.otp/operations/lib/index.d.ts +1 -1
  133. package/components/identity.otp/operations/lib/index.js +1 -2
  134. package/components/identity.otp/source/authenticate.ts +1 -1
  135. package/components/identity.otp/source/issue.ts +1 -1
  136. package/components/identity.otp/source/lib/Context.ts +1 -1
  137. package/components/identity.otp/source/lib/index.ts +1 -1
  138. package/components/identity.otp/tsconfig.json +1 -0
  139. package/components/identity.otp/tsconfig.tsbuildinfo +1 -0
  140. package/components/identity.passkeys/operations/authenticate.d.ts +1 -1
  141. package/components/identity.passkeys/operations/authenticate.js +1 -5
  142. package/components/identity.passkeys/operations/authenticate.js.map +1 -1
  143. package/components/identity.passkeys/operations/challenge.d.ts +1 -1
  144. package/components/identity.passkeys/operations/challenge.js +7 -11
  145. package/components/identity.passkeys/operations/challenge.js.map +1 -1
  146. package/components/identity.passkeys/operations/create.d.ts +1 -1
  147. package/components/identity.passkeys/operations/create.js +3 -7
  148. package/components/identity.passkeys/operations/create.js.map +1 -1
  149. package/components/identity.passkeys/operations/delete.d.ts +1 -1
  150. package/components/identity.passkeys/operations/delete.js +1 -5
  151. package/components/identity.passkeys/operations/delete.js.map +1 -1
  152. package/components/identity.passkeys/operations/lib/const.js +1 -4
  153. package/components/identity.passkeys/operations/lib/const.js.map +1 -1
  154. package/components/identity.passkeys/operations/list.d.ts +1 -1
  155. package/components/identity.passkeys/operations/list.js +3 -7
  156. package/components/identity.passkeys/operations/list.js.map +1 -1
  157. package/components/identity.passkeys/operations/types/Configuration.js +1 -2
  158. package/components/identity.passkeys/operations/types/Context.d.ts +3 -3
  159. package/components/identity.passkeys/operations/types/Context.js +1 -2
  160. package/components/identity.passkeys/operations/types/Passkey.d.ts +1 -2
  161. package/components/identity.passkeys/operations/types/Passkey.js +1 -2
  162. package/components/identity.passkeys/operations/types/index.d.ts +2 -2
  163. package/components/identity.passkeys/operations/types/index.js +1 -2
  164. package/components/identity.passkeys/operations/use.d.ts +1 -1
  165. package/components/identity.passkeys/operations/use.js +3 -7
  166. package/components/identity.passkeys/operations/use.js.map +1 -1
  167. package/components/identity.passkeys/source/authenticate.ts +1 -1
  168. package/components/identity.passkeys/source/challenge.ts +2 -2
  169. package/components/identity.passkeys/source/create.ts +1 -1
  170. package/components/identity.passkeys/source/delete.ts +1 -1
  171. package/components/identity.passkeys/source/list.ts +2 -2
  172. package/components/identity.passkeys/source/types/Context.ts +3 -3
  173. package/components/identity.passkeys/source/types/Passkey.ts +1 -3
  174. package/components/identity.passkeys/source/types/index.ts +2 -2
  175. package/components/identity.passkeys/source/use.ts +1 -1
  176. package/components/identity.passkeys/tsconfig.json +1 -0
  177. package/components/identity.passkeys/tsconfig.tsbuildinfo +1 -0
  178. package/components/identity.roles/operations/grant.d.ts +1 -1
  179. package/components/identity.roles/operations/grant.js +1 -5
  180. package/components/identity.roles/operations/grant.js.map +1 -1
  181. package/components/identity.roles/operations/lib/Entity.js +1 -2
  182. package/components/identity.roles/operations/list.d.ts +1 -1
  183. package/components/identity.roles/operations/list.js +1 -5
  184. package/components/identity.roles/operations/list.js.map +1 -1
  185. package/components/identity.roles/operations/principal.d.ts +2 -2
  186. package/components/identity.roles/operations/principal.js +1 -5
  187. package/components/identity.roles/operations/principal.js.map +1 -1
  188. package/components/identity.roles/receivers/identity.federation.principal.js +1 -3
  189. package/components/identity.roles/source/grant.ts +1 -1
  190. package/components/identity.roles/source/list.ts +1 -1
  191. package/components/identity.roles/source/principal.ts +2 -2
  192. package/components/identity.roles/tsconfig.json +1 -0
  193. package/components/identity.roles/tsconfig.tsbuildinfo +1 -0
  194. package/components/identity.tokens/operations/authenticate.d.ts +1 -1
  195. package/components/identity.tokens/operations/authenticate.js +1 -5
  196. package/components/identity.tokens/operations/authenticate.js.map +1 -1
  197. package/components/identity.tokens/operations/decrypt.d.ts +1 -1
  198. package/components/identity.tokens/operations/decrypt.js +15 -14
  199. package/components/identity.tokens/operations/decrypt.js.map +1 -1
  200. package/components/identity.tokens/operations/encrypt.d.ts +1 -1
  201. package/components/identity.tokens/operations/encrypt.js +5 -9
  202. package/components/identity.tokens/operations/encrypt.js.map +1 -1
  203. package/components/identity.tokens/operations/issue.d.ts +1 -1
  204. package/components/identity.tokens/operations/issue.js +1 -5
  205. package/components/identity.tokens/operations/issue.js.map +1 -1
  206. package/components/identity.tokens/operations/lib/index.d.ts +3 -3
  207. package/components/identity.tokens/operations/lib/index.js +3 -21
  208. package/components/identity.tokens/operations/lib/index.js.map +1 -1
  209. package/components/identity.tokens/operations/lib/jose.d.ts +1 -41
  210. package/components/identity.tokens/operations/lib/jose.js +1 -26
  211. package/components/identity.tokens/operations/lib/jose.js.map +1 -1
  212. package/components/identity.tokens/operations/lib/key.js +1 -5
  213. package/components/identity.tokens/operations/lib/key.js.map +1 -1
  214. package/components/identity.tokens/operations/lib/pad.js +1 -4
  215. package/components/identity.tokens/operations/lib/pad.js.map +1 -1
  216. package/components/identity.tokens/operations/lib/types.js +1 -2
  217. package/components/identity.tokens/operations/revoke.d.ts +1 -1
  218. package/components/identity.tokens/operations/revoke.js +1 -5
  219. package/components/identity.tokens/operations/revoke.js.map +1 -1
  220. package/components/identity.tokens/receivers/identity.bans.created.js +1 -3
  221. package/components/identity.tokens/receivers/identity.bans.updated.js +1 -3
  222. package/components/identity.tokens/source/authenticate.test.ts +14 -10
  223. package/components/identity.tokens/source/authenticate.ts +1 -1
  224. package/components/identity.tokens/source/decrypt.test.ts +25 -17
  225. package/components/identity.tokens/source/decrypt.ts +12 -5
  226. package/components/identity.tokens/source/encrypt.test.ts +14 -10
  227. package/components/identity.tokens/source/encrypt.ts +3 -3
  228. package/components/identity.tokens/source/issue.ts +1 -1
  229. package/components/identity.tokens/source/lib/index.ts +3 -3
  230. package/components/identity.tokens/source/lib/jose.js +1 -5
  231. package/components/identity.tokens/source/lib/paseto.test.ts +45 -10
  232. package/components/identity.tokens/source/revoke.ts +1 -1
  233. package/components/identity.tokens/tsconfig.json +1 -0
  234. package/components/identity.tokens/tsconfig.tsbuildinfo +1 -0
  235. package/cucumber.mjs +4 -0
  236. package/documentation/protocol.md +24 -0
  237. package/features/octets.cloudinary.feature +8 -2
  238. package/features/octets.download.feature +3 -1
  239. package/features/probes.feature +8 -4
  240. package/features/steps/Captures.ts +3 -1
  241. package/features/steps/Common.ts +27 -2
  242. package/features/steps/Components.ts +10 -4
  243. package/features/steps/Database.ts +4 -1
  244. package/features/steps/Gateway.ts +19 -8
  245. package/features/steps/HTTP.ts +8 -5
  246. package/features/steps/IDP.ts +5 -2
  247. package/features/steps/Identity.ts +7 -4
  248. package/features/steps/OTP.ts +5 -2
  249. package/features/steps/Parameters.ts +5 -1
  250. package/features/steps/Probe.ts +36 -0
  251. package/features/steps/Realtime.ts +8 -5
  252. package/features/steps/Workspace.ts +1 -1
  253. package/features/steps/components/audit/operations/record.js +1 -5
  254. package/features/steps/components/echo/operations/affect.js +1 -5
  255. package/features/steps/components/echo/operations/compute.js +1 -5
  256. package/features/steps/components/echo/operations/echo.js +1 -5
  257. package/features/steps/components/echo/operations/error.js +1 -5
  258. package/features/steps/components/echo/operations/identity.js +1 -5
  259. package/features/steps/components/echo/operations/parameters.js +1 -5
  260. package/features/steps/components/echo/operations/ping.js +1 -5
  261. package/features/steps/components/echo/operations/unwrap.js +1 -5
  262. package/features/steps/components/echo.beacon/operations/hello.js +1 -3
  263. package/features/steps/components/greeter/operations/greet.js +1 -5
  264. package/features/steps/components/notify/operations/send.js +1 -5
  265. package/features/steps/components/octets.tester/operations/authority.js +1 -5
  266. package/features/steps/components/octets.tester/operations/bar.js +1 -3
  267. package/features/steps/components/octets.tester/operations/baz.js +1 -3
  268. package/features/steps/components/octets.tester/operations/concat.js +1 -3
  269. package/features/steps/components/octets.tester/operations/echo.js +1 -3
  270. package/features/steps/components/octets.tester/operations/err.js +1 -3
  271. package/features/steps/components/octets.tester/operations/foo.js +1 -3
  272. package/features/steps/components/octets.tester/operations/id.js +1 -3
  273. package/features/steps/components/octets.tester/operations/identity.js +1 -3
  274. package/features/steps/components/octets.tester/operations/redirect.js +1 -3
  275. package/features/steps/components/octets.tester/operations/yex.js +1 -3
  276. package/features/steps/components/octets.tester/operations/yield.js +1 -3
  277. package/features/steps/components/orders/operations/create.js +1 -5
  278. package/features/steps/components/pricing/operations/quote.js +1 -5
  279. package/features/steps/components/sequences/operations/numbers.js +1 -3
  280. package/features/steps/components/sequences/operations/tokens.js +2 -4
  281. package/features/steps/components/users/operations/create.js +1 -5
  282. package/features/steps/map.ts +5 -1
  283. package/package.json +16 -21
  284. package/readme.md +7 -13
  285. package/schemas/annotation.cos.yaml +11 -0
  286. package/source/Annotation.ts +11 -0
  287. package/source/Branch.test.ts +10 -7
  288. package/source/Branch.ts +2 -2
  289. package/source/Composition.ts +2 -2
  290. package/source/Context.ts +1 -1
  291. package/source/Directive.test.ts +52 -40
  292. package/source/Directive.ts +4 -4
  293. package/source/Endpoint.ts +6 -6
  294. package/source/Factory.ts +18 -18
  295. package/source/Gateway.ts +7 -7
  296. package/source/HTTP/Context.ts +5 -10
  297. package/source/HTTP/Probe.ts +112 -0
  298. package/source/HTTP/Server.ts +126 -77
  299. package/source/HTTP/Timing.ts +1 -1
  300. package/source/HTTP/formats/index.ts +4 -4
  301. package/source/HTTP/formats/yaml.test.ts +6 -4
  302. package/source/HTTP/formats/yaml.ts +1 -1
  303. package/source/HTTP/index.ts +6 -4
  304. package/source/HTTP/messages.test.ts +31 -21
  305. package/source/HTTP/messages.ts +42 -45
  306. package/source/HTTP/types.ts +39 -0
  307. package/source/Interception.ts +1 -1
  308. package/source/Mapping.ts +6 -6
  309. package/source/Query.test.ts +8 -5
  310. package/source/Query.ts +6 -6
  311. package/source/RTD/Context.ts +3 -3
  312. package/source/RTD/Directives.ts +4 -4
  313. package/source/RTD/Endpoint.ts +4 -4
  314. package/source/RTD/Match.ts +1 -1
  315. package/source/RTD/Method.ts +3 -3
  316. package/source/RTD/Node.ts +3 -3
  317. package/source/RTD/Route.ts +3 -3
  318. package/source/RTD/Tree.ts +8 -8
  319. package/source/RTD/expiration.test.ts +20 -17
  320. package/source/RTD/factory.ts +7 -7
  321. package/source/RTD/index.ts +8 -8
  322. package/source/RTD/segment.test.ts +13 -10
  323. package/source/RTD/syntax/index.ts +2 -2
  324. package/source/RTD/syntax/parse.test.ts +30 -28
  325. package/source/RTD/syntax/parse.ts +2 -2
  326. package/source/Remotes.test.ts +27 -14
  327. package/source/Remotes.ts +1 -1
  328. package/source/Tenant.ts +3 -3
  329. package/source/deployment.ts +19 -10
  330. package/source/directives/auth/Anonymous.ts +1 -1
  331. package/source/directives/auth/Anyone.ts +1 -1
  332. package/source/directives/auth/Assert.ts +3 -3
  333. package/source/directives/auth/Authorization.ts +19 -19
  334. package/source/directives/auth/Delegate.ts +3 -3
  335. package/source/directives/auth/Echo.ts +3 -3
  336. package/source/directives/auth/Federation.ts +2 -2
  337. package/source/directives/auth/Id.ts +2 -2
  338. package/source/directives/auth/Incept.ts +6 -6
  339. package/source/directives/auth/Input.ts +3 -3
  340. package/source/directives/auth/Role.test.ts +32 -19
  341. package/source/directives/auth/Role.ts +2 -2
  342. package/source/directives/auth/Rule.ts +2 -2
  343. package/source/directives/auth/Scheme.ts +3 -3
  344. package/source/directives/auth/create.ts +1 -1
  345. package/source/directives/auth/index.ts +1 -1
  346. package/source/directives/auth/schemes.ts +1 -1
  347. package/source/directives/auth/split.ts +2 -2
  348. package/source/directives/auth/types.ts +3 -3
  349. package/source/directives/cache/Cache.ts +6 -6
  350. package/source/directives/cache/Control.ts +1 -1
  351. package/source/directives/cache/Exact.ts +1 -1
  352. package/source/directives/cache/index.ts +1 -1
  353. package/source/directives/cache/types.ts +1 -1
  354. package/source/directives/cors/CORS.ts +2 -2
  355. package/source/directives/cors/index.ts +1 -1
  356. package/source/directives/dev/Development.ts +7 -7
  357. package/source/directives/dev/Faulty.ts +4 -4
  358. package/source/directives/dev/Sleep.ts +5 -5
  359. package/source/directives/dev/Stub.ts +2 -2
  360. package/source/directives/dev/Throw.ts +2 -2
  361. package/source/directives/dev/index.ts +1 -1
  362. package/source/directives/dev/types.ts +1 -1
  363. package/source/directives/flow/Compose.ts +3 -3
  364. package/source/directives/flow/Fetch.ts +6 -6
  365. package/source/directives/flow/Flow.ts +6 -6
  366. package/source/directives/flow/index.ts +1 -1
  367. package/source/directives/flow/types.ts +2 -2
  368. package/source/directives/index.ts +11 -11
  369. package/source/directives/io/Directive.ts +4 -4
  370. package/source/directives/io/IO.ts +8 -8
  371. package/source/directives/io/Input.ts +5 -5
  372. package/source/directives/io/Output.ts +5 -5
  373. package/source/directives/io/Throttle.ts +6 -6
  374. package/source/directives/io/index.ts +1 -1
  375. package/source/directives/io/lib/throttle/Configuration.test.ts +10 -7
  376. package/source/directives/io/lib/throttle/Keys.ts +5 -5
  377. package/source/directives/io/lib/throttle/Quotas.test.ts +48 -45
  378. package/source/directives/io/lib/throttle/Quotas.ts +5 -5
  379. package/source/directives/io/lib/throttle/Sync.test.ts +28 -20
  380. package/source/directives/io/lib/throttle/Sync.ts +1 -1
  381. package/source/directives/io/lib/throttle/components/Component.ts +2 -2
  382. package/source/directives/io/lib/throttle/components/IP.ts +2 -2
  383. package/source/directives/io/lib/throttle/components/Identity.ts +2 -2
  384. package/source/directives/io/lib/throttle/components/Path.ts +2 -2
  385. package/source/directives/io/lib/throttle/components/Route.ts +1 -1
  386. package/source/directives/io/lib/throttle/components/Segment.ts +3 -3
  387. package/source/directives/io/lib/throttle/components/index.ts +7 -7
  388. package/source/directives/io/lib/throttle/conditions/Condition.ts +1 -1
  389. package/source/directives/io/lib/throttle/conditions/Status.ts +2 -2
  390. package/source/directives/io/lib/throttle/conditions/index.ts +3 -3
  391. package/source/directives/io/lib/throttle/index.ts +3 -3
  392. package/source/directives/io/schemas.test.ts +12 -9
  393. package/source/directives/io/schemas.ts +7 -6
  394. package/source/directives/map/Authority.ts +2 -2
  395. package/source/directives/map/Buffer.ts +2 -2
  396. package/source/directives/map/Claims.ts +3 -3
  397. package/source/directives/map/Directive.ts +2 -2
  398. package/source/directives/map/Headers.ts +3 -3
  399. package/source/directives/map/Language.ts +6 -6
  400. package/source/directives/map/Languages.ts +1 -1
  401. package/source/directives/map/Map.ts +14 -14
  402. package/source/directives/map/Mapping.ts +4 -4
  403. package/source/directives/map/Segments.ts +2 -2
  404. package/source/directives/map/index.ts +1 -1
  405. package/source/directives/octets/Context.ts +2 -2
  406. package/source/directives/octets/Delete.ts +9 -9
  407. package/source/directives/octets/Directive.ts +3 -3
  408. package/source/directives/octets/Get.ts +8 -8
  409. package/source/directives/octets/Octets.ts +11 -11
  410. package/source/directives/octets/Put.ts +11 -11
  411. package/source/directives/octets/Workflow.ts +9 -9
  412. package/source/directives/octets/bytes.test.ts +21 -18
  413. package/source/directives/octets/index.ts +1 -1
  414. package/source/directives/octets/schemas.test.ts +10 -5
  415. package/source/directives/octets/schemas.ts +6 -6
  416. package/source/directives/octets/types.ts +2 -2
  417. package/source/directives/octets/workflows/Execution.ts +2 -2
  418. package/source/directives/octets/workflows/Workflow.ts +4 -4
  419. package/source/directives/octets/workflows/index.ts +1 -1
  420. package/source/directives/require/Directive.ts +1 -1
  421. package/source/directives/require/Headers.ts +3 -3
  422. package/source/directives/require/Require.ts +4 -4
  423. package/source/directives/require/index.ts +1 -1
  424. package/source/exceptions.ts +2 -2
  425. package/source/index.ts +5 -5
  426. package/source/io.ts +1 -1
  427. package/source/manifest.test.ts +12 -10
  428. package/source/manifest.ts +3 -3
  429. package/source/root.ts +1 -1
  430. package/source/schemas.ts +5 -5
  431. package/transpiled/Annotation.d.ts +10 -0
  432. package/transpiled/Annotation.js +1 -2
  433. package/transpiled/Branch.d.ts +2 -2
  434. package/transpiled/Branch.js +1 -5
  435. package/transpiled/Branch.js.map +1 -1
  436. package/transpiled/Composition.d.ts +1 -1
  437. package/transpiled/Composition.js +9 -14
  438. package/transpiled/Composition.js.map +1 -1
  439. package/transpiled/Context.d.ts +1 -1
  440. package/transpiled/Context.js +1 -2
  441. package/transpiled/Directive.d.ts +4 -4
  442. package/transpiled/Directive.js +6 -11
  443. package/transpiled/Directive.js.map +1 -1
  444. package/transpiled/Endpoint.d.ts +6 -6
  445. package/transpiled/Endpoint.js +10 -38
  446. package/transpiled/Endpoint.js.map +1 -1
  447. package/transpiled/Factory.d.ts +3 -3
  448. package/transpiled/Factory.js +31 -61
  449. package/transpiled/Factory.js.map +1 -1
  450. package/transpiled/Gateway.d.ts +4 -4
  451. package/transpiled/Gateway.js +25 -55
  452. package/transpiled/Gateway.js.map +1 -1
  453. package/transpiled/HTTP/Context.d.ts +4 -11
  454. package/transpiled/HTTP/Context.js +15 -22
  455. package/transpiled/HTTP/Context.js.map +1 -1
  456. package/transpiled/HTTP/Probe.d.ts +36 -0
  457. package/transpiled/HTTP/Probe.js +90 -0
  458. package/transpiled/HTTP/Probe.js.map +1 -0
  459. package/transpiled/HTTP/Server.d.ts +13 -9
  460. package/transpiled/HTTP/Server.js +134 -130
  461. package/transpiled/HTTP/Server.js.map +1 -1
  462. package/transpiled/HTTP/Timing.d.ts +1 -2
  463. package/transpiled/HTTP/Timing.js +6 -10
  464. package/transpiled/HTTP/Timing.js.map +1 -1
  465. package/transpiled/HTTP/exceptions.js +15 -33
  466. package/transpiled/HTTP/exceptions.js.map +1 -1
  467. package/transpiled/HTTP/formats/index.d.ts +0 -2
  468. package/transpiled/HTTP/formats/index.js +6 -32
  469. package/transpiled/HTTP/formats/index.js.map +1 -1
  470. package/transpiled/HTTP/formats/json.d.ts +0 -2
  471. package/transpiled/HTTP/formats/json.js +4 -9
  472. package/transpiled/HTTP/formats/json.js.map +1 -1
  473. package/transpiled/HTTP/formats/msgpack.d.ts +0 -2
  474. package/transpiled/HTTP/formats/msgpack.js +7 -12
  475. package/transpiled/HTTP/formats/msgpack.js.map +1 -1
  476. package/transpiled/HTTP/formats/text.d.ts +0 -2
  477. package/transpiled/HTTP/formats/text.js +4 -9
  478. package/transpiled/HTTP/formats/text.js.map +1 -1
  479. package/transpiled/HTTP/formats/yaml.d.ts +0 -2
  480. package/transpiled/HTTP/formats/yaml.js +5 -33
  481. package/transpiled/HTTP/formats/yaml.js.map +1 -1
  482. package/transpiled/HTTP/index.d.ts +6 -4
  483. package/transpiled/HTTP/index.js +6 -20
  484. package/transpiled/HTTP/index.js.map +1 -1
  485. package/transpiled/HTTP/messages.d.ts +9 -5
  486. package/transpiled/HTTP/messages.js +56 -90
  487. package/transpiled/HTTP/messages.js.map +1 -1
  488. package/transpiled/HTTP/types.d.ts +37 -0
  489. package/transpiled/HTTP/types.js +2 -0
  490. package/transpiled/HTTP/types.js.map +1 -0
  491. package/transpiled/Interception.d.ts +1 -1
  492. package/transpiled/Interception.js +1 -5
  493. package/transpiled/Interception.js.map +1 -1
  494. package/transpiled/Introspection.js +1 -2
  495. package/transpiled/Mapping.d.ts +6 -6
  496. package/transpiled/Mapping.js +4 -9
  497. package/transpiled/Mapping.js.map +1 -1
  498. package/transpiled/Query.d.ts +4 -4
  499. package/transpiled/Query.js +8 -38
  500. package/transpiled/Query.js.map +1 -1
  501. package/transpiled/RTD/Context.d.ts +3 -3
  502. package/transpiled/RTD/Context.js +1 -2
  503. package/transpiled/RTD/Directives.d.ts +4 -4
  504. package/transpiled/RTD/Directives.js +1 -2
  505. package/transpiled/RTD/Endpoint.d.ts +4 -4
  506. package/transpiled/RTD/Endpoint.js +1 -2
  507. package/transpiled/RTD/Match.d.ts +1 -1
  508. package/transpiled/RTD/Match.js +1 -2
  509. package/transpiled/RTD/Method.d.ts +3 -3
  510. package/transpiled/RTD/Method.js +1 -5
  511. package/transpiled/RTD/Method.js.map +1 -1
  512. package/transpiled/RTD/Node.d.ts +3 -3
  513. package/transpiled/RTD/Node.js +1 -5
  514. package/transpiled/RTD/Node.js.map +1 -1
  515. package/transpiled/RTD/Route.d.ts +3 -3
  516. package/transpiled/RTD/Route.js +1 -5
  517. package/transpiled/RTD/Route.js.map +1 -1
  518. package/transpiled/RTD/Tree.d.ts +5 -5
  519. package/transpiled/RTD/Tree.js +6 -10
  520. package/transpiled/RTD/Tree.js.map +1 -1
  521. package/transpiled/RTD/factory.d.ts +3 -3
  522. package/transpiled/RTD/factory.js +13 -18
  523. package/transpiled/RTD/factory.js.map +1 -1
  524. package/transpiled/RTD/index.d.ts +8 -8
  525. package/transpiled/RTD/index.js +8 -37
  526. package/transpiled/RTD/index.js.map +1 -1
  527. package/transpiled/RTD/segment.js +2 -7
  528. package/transpiled/RTD/segment.js.map +1 -1
  529. package/transpiled/RTD/syntax/index.d.ts +2 -2
  530. package/transpiled/RTD/syntax/index.js +2 -18
  531. package/transpiled/RTD/syntax/index.js.map +1 -1
  532. package/transpiled/RTD/syntax/parse.d.ts +1 -1
  533. package/transpiled/RTD/syntax/parse.js +5 -33
  534. package/transpiled/RTD/syntax/parse.js.map +1 -1
  535. package/transpiled/RTD/syntax/types.js +1 -4
  536. package/transpiled/RTD/syntax/types.js.map +1 -1
  537. package/transpiled/Remotes.d.ts +1 -1
  538. package/transpiled/Remotes.js +3 -7
  539. package/transpiled/Remotes.js.map +1 -1
  540. package/transpiled/Tenant.d.ts +2 -2
  541. package/transpiled/Tenant.js +6 -10
  542. package/transpiled/Tenant.js.map +1 -1
  543. package/transpiled/const.js +1 -4
  544. package/transpiled/const.js.map +1 -1
  545. package/transpiled/deployment.d.ts +1 -1
  546. package/transpiled/deployment.js +22 -45
  547. package/transpiled/deployment.js.map +1 -1
  548. package/transpiled/directives/auth/Anonymous.d.ts +1 -1
  549. package/transpiled/directives/auth/Anonymous.js +1 -5
  550. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  551. package/transpiled/directives/auth/Anyone.d.ts +1 -1
  552. package/transpiled/directives/auth/Anyone.js +1 -5
  553. package/transpiled/directives/auth/Anyone.js.map +1 -1
  554. package/transpiled/directives/auth/Assert.d.ts +1 -1
  555. package/transpiled/directives/auth/Assert.js +7 -37
  556. package/transpiled/directives/auth/Assert.js.map +1 -1
  557. package/transpiled/directives/auth/Authorization.d.ts +5 -5
  558. package/transpiled/directives/auth/Authorization.js +41 -71
  559. package/transpiled/directives/auth/Authorization.js.map +1 -1
  560. package/transpiled/directives/auth/Delegate.d.ts +1 -1
  561. package/transpiled/directives/auth/Delegate.js +5 -9
  562. package/transpiled/directives/auth/Delegate.js.map +1 -1
  563. package/transpiled/directives/auth/Echo.d.ts +2 -2
  564. package/transpiled/directives/auth/Echo.js +3 -7
  565. package/transpiled/directives/auth/Echo.js.map +1 -1
  566. package/transpiled/directives/auth/Federation.d.ts +2 -2
  567. package/transpiled/directives/auth/Federation.js +3 -10
  568. package/transpiled/directives/auth/Federation.js.map +1 -1
  569. package/transpiled/directives/auth/Id.d.ts +2 -2
  570. package/transpiled/directives/auth/Id.js +1 -5
  571. package/transpiled/directives/auth/Id.js.map +1 -1
  572. package/transpiled/directives/auth/Incept.d.ts +2 -2
  573. package/transpiled/directives/auth/Incept.js +16 -46
  574. package/transpiled/directives/auth/Incept.js.map +1 -1
  575. package/transpiled/directives/auth/Input.d.ts +2 -2
  576. package/transpiled/directives/auth/Input.js +3 -7
  577. package/transpiled/directives/auth/Input.js.map +1 -1
  578. package/transpiled/directives/auth/Role.d.ts +2 -2
  579. package/transpiled/directives/auth/Role.js +3 -10
  580. package/transpiled/directives/auth/Role.js.map +1 -1
  581. package/transpiled/directives/auth/Rule.d.ts +2 -2
  582. package/transpiled/directives/auth/Rule.js +1 -5
  583. package/transpiled/directives/auth/Rule.js.map +1 -1
  584. package/transpiled/directives/auth/Scheme.d.ts +1 -1
  585. package/transpiled/directives/auth/Scheme.js +4 -31
  586. package/transpiled/directives/auth/Scheme.js.map +1 -1
  587. package/transpiled/directives/auth/create.d.ts +1 -1
  588. package/transpiled/directives/auth/create.js +3 -7
  589. package/transpiled/directives/auth/create.js.map +1 -1
  590. package/transpiled/directives/auth/index.d.ts +1 -1
  591. package/transpiled/directives/auth/index.js +2 -5
  592. package/transpiled/directives/auth/index.js.map +1 -1
  593. package/transpiled/directives/auth/schemes.d.ts +1 -1
  594. package/transpiled/directives/auth/schemes.js +3 -6
  595. package/transpiled/directives/auth/schemes.js.map +1 -1
  596. package/transpiled/directives/auth/split.d.ts +1 -1
  597. package/transpiled/directives/auth/split.js +2 -29
  598. package/transpiled/directives/auth/split.js.map +1 -1
  599. package/transpiled/directives/auth/types.d.ts +3 -3
  600. package/transpiled/directives/auth/types.js +1 -2
  601. package/transpiled/directives/cache/Cache.d.ts +4 -4
  602. package/transpiled/directives/cache/Cache.js +6 -10
  603. package/transpiled/directives/cache/Cache.js.map +1 -1
  604. package/transpiled/directives/cache/Control.d.ts +1 -1
  605. package/transpiled/directives/cache/Control.js +3 -7
  606. package/transpiled/directives/cache/Control.js.map +1 -1
  607. package/transpiled/directives/cache/Exact.d.ts +1 -1
  608. package/transpiled/directives/cache/Exact.js +2 -6
  609. package/transpiled/directives/cache/Exact.js.map +1 -1
  610. package/transpiled/directives/cache/index.d.ts +1 -1
  611. package/transpiled/directives/cache/index.js +2 -5
  612. package/transpiled/directives/cache/index.js.map +1 -1
  613. package/transpiled/directives/cache/types.d.ts +1 -1
  614. package/transpiled/directives/cache/types.js +1 -2
  615. package/transpiled/directives/cors/CORS.d.ts +2 -2
  616. package/transpiled/directives/cors/CORS.js +1 -5
  617. package/transpiled/directives/cors/CORS.js.map +1 -1
  618. package/transpiled/directives/cors/index.d.ts +1 -1
  619. package/transpiled/directives/cors/index.js +2 -5
  620. package/transpiled/directives/cors/index.js.map +1 -1
  621. package/transpiled/directives/dev/Development.d.ts +3 -3
  622. package/transpiled/directives/dev/Development.js +9 -13
  623. package/transpiled/directives/dev/Development.js.map +1 -1
  624. package/transpiled/directives/dev/Faulty.d.ts +2 -2
  625. package/transpiled/directives/dev/Faulty.js +8 -15
  626. package/transpiled/directives/dev/Faulty.js.map +1 -1
  627. package/transpiled/directives/dev/Sleep.d.ts +2 -2
  628. package/transpiled/directives/dev/Sleep.js +13 -20
  629. package/transpiled/directives/dev/Sleep.js.map +1 -1
  630. package/transpiled/directives/dev/Stub.d.ts +2 -2
  631. package/transpiled/directives/dev/Stub.js +1 -5
  632. package/transpiled/directives/dev/Stub.js.map +1 -1
  633. package/transpiled/directives/dev/Throw.d.ts +2 -2
  634. package/transpiled/directives/dev/Throw.js +1 -5
  635. package/transpiled/directives/dev/Throw.js.map +1 -1
  636. package/transpiled/directives/dev/index.d.ts +1 -1
  637. package/transpiled/directives/dev/index.js +2 -5
  638. package/transpiled/directives/dev/index.js.map +1 -1
  639. package/transpiled/directives/dev/types.d.ts +1 -1
  640. package/transpiled/directives/dev/types.js +1 -2
  641. package/transpiled/directives/flow/Compose.d.ts +2 -2
  642. package/transpiled/directives/flow/Compose.js +10 -37
  643. package/transpiled/directives/flow/Compose.js.map +1 -1
  644. package/transpiled/directives/flow/Fetch.d.ts +5 -5
  645. package/transpiled/directives/flow/Fetch.js +10 -17
  646. package/transpiled/directives/flow/Fetch.js.map +1 -1
  647. package/transpiled/directives/flow/Flow.d.ts +4 -4
  648. package/transpiled/directives/flow/Flow.js +5 -9
  649. package/transpiled/directives/flow/Flow.js.map +1 -1
  650. package/transpiled/directives/flow/index.d.ts +1 -1
  651. package/transpiled/directives/flow/index.js +2 -5
  652. package/transpiled/directives/flow/index.js.map +1 -1
  653. package/transpiled/directives/flow/types.d.ts +2 -2
  654. package/transpiled/directives/flow/types.js +1 -2
  655. package/transpiled/directives/index.d.ts +2 -2
  656. package/transpiled/directives/index.js +11 -14
  657. package/transpiled/directives/index.js.map +1 -1
  658. package/transpiled/directives/io/Directive.d.ts +4 -4
  659. package/transpiled/directives/io/Directive.js +1 -2
  660. package/transpiled/directives/io/IO.d.ts +4 -4
  661. package/transpiled/directives/io/IO.js +11 -15
  662. package/transpiled/directives/io/IO.js.map +1 -1
  663. package/transpiled/directives/io/Input.d.ts +2 -2
  664. package/transpiled/directives/io/Input.js +5 -32
  665. package/transpiled/directives/io/Input.js.map +1 -1
  666. package/transpiled/directives/io/Message.js +1 -2
  667. package/transpiled/directives/io/Output.d.ts +2 -2
  668. package/transpiled/directives/io/Output.js +6 -33
  669. package/transpiled/directives/io/Output.js.map +1 -1
  670. package/transpiled/directives/io/Throttle.d.ts +4 -4
  671. package/transpiled/directives/io/Throttle.js +6 -33
  672. package/transpiled/directives/io/Throttle.js.map +1 -1
  673. package/transpiled/directives/io/index.d.ts +1 -1
  674. package/transpiled/directives/io/index.js +2 -5
  675. package/transpiled/directives/io/index.js.map +1 -1
  676. package/transpiled/directives/io/lib/throttle/Configuration.js +1 -5
  677. package/transpiled/directives/io/lib/throttle/Configuration.js.map +1 -1
  678. package/transpiled/directives/io/lib/throttle/Keys.d.ts +5 -5
  679. package/transpiled/directives/io/lib/throttle/Keys.js +7 -11
  680. package/transpiled/directives/io/lib/throttle/Keys.js.map +1 -1
  681. package/transpiled/directives/io/lib/throttle/Quotas.d.ts +5 -5
  682. package/transpiled/directives/io/lib/throttle/Quotas.js +3 -7
  683. package/transpiled/directives/io/lib/throttle/Quotas.js.map +1 -1
  684. package/transpiled/directives/io/lib/throttle/Sync.d.ts +1 -1
  685. package/transpiled/directives/io/lib/throttle/Sync.js +3 -7
  686. package/transpiled/directives/io/lib/throttle/Sync.js.map +1 -1
  687. package/transpiled/directives/io/lib/throttle/components/Component.d.ts +2 -2
  688. package/transpiled/directives/io/lib/throttle/components/Component.js +1 -2
  689. package/transpiled/directives/io/lib/throttle/components/IP.d.ts +2 -2
  690. package/transpiled/directives/io/lib/throttle/components/IP.js +1 -5
  691. package/transpiled/directives/io/lib/throttle/components/IP.js.map +1 -1
  692. package/transpiled/directives/io/lib/throttle/components/Identity.d.ts +2 -2
  693. package/transpiled/directives/io/lib/throttle/components/Identity.js +1 -5
  694. package/transpiled/directives/io/lib/throttle/components/Identity.js.map +1 -1
  695. package/transpiled/directives/io/lib/throttle/components/Path.d.ts +2 -2
  696. package/transpiled/directives/io/lib/throttle/components/Path.js +1 -5
  697. package/transpiled/directives/io/lib/throttle/components/Path.js.map +1 -1
  698. package/transpiled/directives/io/lib/throttle/components/Route.d.ts +1 -1
  699. package/transpiled/directives/io/lib/throttle/components/Route.js +1 -5
  700. package/transpiled/directives/io/lib/throttle/components/Route.js.map +1 -1
  701. package/transpiled/directives/io/lib/throttle/components/Segment.d.ts +3 -3
  702. package/transpiled/directives/io/lib/throttle/components/Segment.js +3 -10
  703. package/transpiled/directives/io/lib/throttle/components/Segment.js.map +1 -1
  704. package/transpiled/directives/io/lib/throttle/components/index.d.ts +2 -2
  705. package/transpiled/directives/io/lib/throttle/components/index.js +11 -14
  706. package/transpiled/directives/io/lib/throttle/components/index.js.map +1 -1
  707. package/transpiled/directives/io/lib/throttle/conditions/Condition.d.ts +1 -1
  708. package/transpiled/directives/io/lib/throttle/conditions/Condition.js +1 -2
  709. package/transpiled/directives/io/lib/throttle/conditions/Status.d.ts +2 -2
  710. package/transpiled/directives/io/lib/throttle/conditions/Status.js +3 -10
  711. package/transpiled/directives/io/lib/throttle/conditions/Status.js.map +1 -1
  712. package/transpiled/directives/io/lib/throttle/conditions/index.d.ts +2 -2
  713. package/transpiled/directives/io/lib/throttle/conditions/index.js +3 -6
  714. package/transpiled/directives/io/lib/throttle/conditions/index.js.map +1 -1
  715. package/transpiled/directives/io/lib/throttle/index.d.ts +3 -3
  716. package/transpiled/directives/io/lib/throttle/index.js +3 -9
  717. package/transpiled/directives/io/lib/throttle/index.js.map +1 -1
  718. package/transpiled/directives/io/schemas.d.ts +5 -5
  719. package/transpiled/directives/io/schemas.js +8 -14
  720. package/transpiled/directives/io/schemas.js.map +1 -1
  721. package/transpiled/directives/map/Authority.d.ts +2 -2
  722. package/transpiled/directives/map/Authority.js +4 -11
  723. package/transpiled/directives/map/Authority.js.map +1 -1
  724. package/transpiled/directives/map/Buffer.d.ts +2 -2
  725. package/transpiled/directives/map/Buffer.js +4 -11
  726. package/transpiled/directives/map/Buffer.js.map +1 -1
  727. package/transpiled/directives/map/Claims.d.ts +3 -3
  728. package/transpiled/directives/map/Claims.js +5 -12
  729. package/transpiled/directives/map/Claims.js.map +1 -1
  730. package/transpiled/directives/map/Directive.d.ts +2 -2
  731. package/transpiled/directives/map/Directive.js +1 -2
  732. package/transpiled/directives/map/Headers.d.ts +2 -2
  733. package/transpiled/directives/map/Headers.js +7 -14
  734. package/transpiled/directives/map/Headers.js.map +1 -1
  735. package/transpiled/directives/map/Language.d.ts +4 -4
  736. package/transpiled/directives/map/Language.js +10 -17
  737. package/transpiled/directives/map/Language.js.map +1 -1
  738. package/transpiled/directives/map/Languages.d.ts +1 -1
  739. package/transpiled/directives/map/Languages.js +5 -12
  740. package/transpiled/directives/map/Languages.js.map +1 -1
  741. package/transpiled/directives/map/Map.d.ts +6 -6
  742. package/transpiled/directives/map/Map.js +20 -24
  743. package/transpiled/directives/map/Map.js.map +1 -1
  744. package/transpiled/directives/map/Mapping.d.ts +4 -4
  745. package/transpiled/directives/map/Mapping.js +1 -5
  746. package/transpiled/directives/map/Mapping.js.map +1 -1
  747. package/transpiled/directives/map/Properties.js +2 -6
  748. package/transpiled/directives/map/Properties.js.map +1 -1
  749. package/transpiled/directives/map/Segments.d.ts +2 -2
  750. package/transpiled/directives/map/Segments.js +6 -13
  751. package/transpiled/directives/map/Segments.js.map +1 -1
  752. package/transpiled/directives/map/index.d.ts +1 -1
  753. package/transpiled/directives/map/index.js +2 -5
  754. package/transpiled/directives/map/index.js.map +1 -1
  755. package/transpiled/directives/octets/Context.d.ts +2 -2
  756. package/transpiled/directives/octets/Context.js +4 -11
  757. package/transpiled/directives/octets/Context.js.map +1 -1
  758. package/transpiled/directives/octets/Delete.d.ts +6 -6
  759. package/transpiled/directives/octets/Delete.js +9 -36
  760. package/transpiled/directives/octets/Delete.js.map +1 -1
  761. package/transpiled/directives/octets/Directive.d.ts +3 -3
  762. package/transpiled/directives/octets/Directive.js +1 -5
  763. package/transpiled/directives/octets/Directive.js.map +1 -1
  764. package/transpiled/directives/octets/Get.d.ts +3 -3
  765. package/transpiled/directives/octets/Get.js +10 -37
  766. package/transpiled/directives/octets/Get.js.map +1 -1
  767. package/transpiled/directives/octets/Octets.d.ts +5 -5
  768. package/transpiled/directives/octets/Octets.js +15 -19
  769. package/transpiled/directives/octets/Octets.js.map +1 -1
  770. package/transpiled/directives/octets/Put.d.ts +6 -6
  771. package/transpiled/directives/octets/Put.js +17 -44
  772. package/transpiled/directives/octets/Put.js.map +1 -1
  773. package/transpiled/directives/octets/Workflow.d.ts +6 -6
  774. package/transpiled/directives/octets/Workflow.js +7 -34
  775. package/transpiled/directives/octets/Workflow.js.map +1 -1
  776. package/transpiled/directives/octets/bytes.js +3 -10
  777. package/transpiled/directives/octets/bytes.js.map +1 -1
  778. package/transpiled/directives/octets/index.d.ts +1 -1
  779. package/transpiled/directives/octets/index.js +2 -5
  780. package/transpiled/directives/octets/index.js.map +1 -1
  781. package/transpiled/directives/octets/schemas.d.ts +4 -4
  782. package/transpiled/directives/octets/schemas.js +8 -14
  783. package/transpiled/directives/octets/schemas.js.map +1 -1
  784. package/transpiled/directives/octets/types.d.ts +2 -2
  785. package/transpiled/directives/octets/types.js +1 -2
  786. package/transpiled/directives/octets/workflows/Execution.d.ts +2 -3
  787. package/transpiled/directives/octets/workflows/Execution.js +5 -9
  788. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  789. package/transpiled/directives/octets/workflows/Workflow.d.ts +3 -3
  790. package/transpiled/directives/octets/workflows/Workflow.js +7 -11
  791. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  792. package/transpiled/directives/octets/workflows/index.d.ts +1 -1
  793. package/transpiled/directives/octets/workflows/index.js +1 -5
  794. package/transpiled/directives/octets/workflows/index.js.map +1 -1
  795. package/transpiled/directives/require/Directive.d.ts +1 -1
  796. package/transpiled/directives/require/Directive.js +1 -2
  797. package/transpiled/directives/require/Headers.d.ts +2 -2
  798. package/transpiled/directives/require/Headers.js +3 -7
  799. package/transpiled/directives/require/Headers.js.map +1 -1
  800. package/transpiled/directives/require/Require.d.ts +3 -3
  801. package/transpiled/directives/require/Require.js +6 -13
  802. package/transpiled/directives/require/Require.js.map +1 -1
  803. package/transpiled/directives/require/index.d.ts +1 -1
  804. package/transpiled/directives/require/index.js +2 -5
  805. package/transpiled/directives/require/index.js.map +1 -1
  806. package/transpiled/discovery.js +1 -2
  807. package/transpiled/exceptions.d.ts +1 -1
  808. package/transpiled/exceptions.js +8 -35
  809. package/transpiled/exceptions.js.map +1 -1
  810. package/transpiled/index.d.ts +5 -5
  811. package/transpiled/index.js +4 -11
  812. package/transpiled/index.js.map +1 -1
  813. package/transpiled/io.d.ts +1 -1
  814. package/transpiled/io.js +1 -2
  815. package/transpiled/manifest.d.ts +1 -1
  816. package/transpiled/manifest.js +8 -38
  817. package/transpiled/manifest.js.map +1 -1
  818. package/transpiled/root.d.ts +1 -1
  819. package/transpiled/root.js +5 -9
  820. package/transpiled/root.js.map +1 -1
  821. package/transpiled/schemas.d.ts +3 -3
  822. package/transpiled/schemas.js +7 -13
  823. package/transpiled/schemas.js.map +1 -1
  824. package/tsconfig.json +2 -1
  825. package/tsconfig.tsbuildinfo +1 -0
  826. package/components/identity.bans/operations/tsconfig.tsbuildinfo +0 -1
  827. package/components/identity.basic/operations/tsconfig.tsbuildinfo +0 -1
  828. package/components/identity.credentials/operations/tsconfig.tsbuildinfo +0 -1
  829. package/components/identity.federation/operations/tsconfig.tsbuildinfo +0 -1
  830. package/components/identity.keys/operations/tsconfig.tsbuildinfo +0 -1
  831. package/components/identity.otp/operations/tsconfig.tsbuildinfo +0 -1
  832. package/components/identity.passkeys/operations/tsconfig.tsbuildinfo +0 -1
  833. package/components/identity.roles/operations/tsconfig.tsbuildinfo +0 -1
  834. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +0 -1
  835. package/cucumber.js +0 -7
  836. package/source/index.test.ts +0 -9
  837. package/transpiled/tsconfig.tsbuildinfo +0 -1
@@ -1,7 +1,3 @@
1
- 'use strict'
2
-
3
- async function computation (input) {
1
+ export async function computation (input) {
4
2
  return input.volume * 42
5
3
  }
6
-
7
- exports.computation = computation
@@ -1,7 +1,5 @@
1
- 'use strict'
2
-
3
1
  function * effect (amount) {
4
2
  for (let i = 0; i < amount; i++) yield i
5
3
  }
6
4
 
7
- exports.effect = effect
5
+ export { effect }
@@ -1,6 +1,4 @@
1
- 'use strict'
2
-
3
- const { randomBytes } = require('node:crypto')
1
+ import { randomBytes } from 'node:crypto'
4
2
 
5
3
  async function * computation () {
6
4
  while (true) {
@@ -13,4 +11,4 @@ function timeout (ms) {
13
11
  return new Promise(resolve => setTimeout(resolve, ms))
14
12
  }
15
13
 
16
- exports.computation = computation
14
+ export { computation }
@@ -1,6 +1,4 @@
1
- 'use strict'
2
-
3
- function transition (input, object) {
1
+ export function transition (input, object) {
4
2
  if (input.name === 'return_error') {
5
3
  const e = new Error()
6
4
 
@@ -11,5 +9,3 @@ function transition (input, object) {
11
9
 
12
10
  return Object.assign(object, input)
13
11
  }
14
-
15
- exports.transition = transition
@@ -1,6 +1,10 @@
1
+ import { createRequire } from 'node:module'
2
+ import * as norm from '@toa.io/norm'
1
3
  import { dirname, join } from 'node:path'
2
4
  import type { Manifest } from '@toa.io/norm'
3
5
 
6
+ const require = createRequire(import.meta.url)
7
+
4
8
  const PACKAGE = '@toa.io/extensions.introspection'
5
9
  const COMPONENTS = ['introspection.nodes', 'introspection.edges']
6
10
 
@@ -16,7 +20,7 @@ export function components (): string[] {
16
20
 
17
21
  /** `norm` declares `component` as a namespace of types; the runtime export is a function. */
18
22
  export async function manifests (): Promise<Manifest[]> {
19
- const { component } = require('@toa.io/norm') as Norm
23
+ const { component } = norm as unknown as Norm
20
24
 
21
25
  return await Promise.all(components().map(async (path) => await component(path)))
22
26
  }
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@toa.io/extensions.exposition",
3
- "version": "1.0.0-alpha.274",
3
+ "version": "1.0.0-alpha.277",
4
+ "type": "module",
4
5
  "description": "Toa Exposition",
5
6
  "author": "temich <tema.gurtovoy@gmail.com>",
6
7
  "homepage": "https://github.com/toa-io/toa#readme",
@@ -17,12 +18,12 @@
17
18
  "access": "public"
18
19
  },
19
20
  "dependencies": {
20
- "@simplewebauthn/server": "13.3.3",
21
- "@toa.io/core": "1.0.0-alpha.273",
22
- "@toa.io/generic": "1.0.0-alpha.273",
23
- "@toa.io/schemas": "1.0.0-alpha.274",
21
+ "@simplewebauthn/server": "14.0.0",
22
+ "@toa.io/core": "1.0.0-alpha.277",
23
+ "@toa.io/generic": "1.0.0-alpha.277",
24
+ "@toa.io/schemas": "1.0.0-alpha.277",
24
25
  "bcryptjs": "3.0.3",
25
- "content-type": "2.1.0",
26
+ "content-type": "3.0.0",
26
27
  "jose": "6.2.10",
27
28
  "js-yaml": "5.4.1",
28
29
  "lru-cache": "11.5.2",
@@ -30,11 +31,11 @@
30
31
  "minimatch": "10.2.6",
31
32
  "msgpackr": "2.1.0",
32
33
  "negotiator": "1.1.0",
33
- "openspan": "1.0.0-alpha.272",
34
- "paseto": "3.1.4"
34
+ "openspan": "1.0.0-alpha.277",
35
+ "paseto": "4.0.0"
35
36
  },
36
37
  "scripts": {
37
- "test": "NODE_OPTIONS=--experimental-vm-modules jest",
38
+ "test": "echo \"Error: run tests from root\" && exit 1",
38
39
  "transpile": "tsc && npm run transpile:bans && npm run transpile:basic && npm run transpile:tokens && npm run transpile:roles && npm run transpile:federation && npm run transpile:credentials && npm run transpile:keys && npm run transpile:passkeys && npm run transpile:otp",
39
40
  "transpile:bans": "tsc -p ./components/identity.bans",
40
41
  "transpile:basic": "tsc -p ./components/identity.basic",
@@ -45,21 +46,15 @@
45
46
  "transpile:keys": "tsc -p ./components/identity.keys",
46
47
  "transpile:passkeys": "tsc -p ./components/identity.passkeys",
47
48
  "transpile:otp": "tsc -p ./components/identity.otp",
48
- "features": "cucumber-js",
49
- "features:security": "cucumber-js --tags @security",
50
- "features:octets": "cucumber-js features/octets.*"
49
+ "features": "TSX_TSCONFIG_PATH=features/steps/tsconfig.json NODE_OPTIONS=--import=tsx cucumber-js",
50
+ "features:h2c": "TOA_EXPOSITION_PROTOCOL=h2c TOA_AGENT_PROTOCOL=h2c TSX_TSCONFIG_PATH=features/steps/tsconfig.json NODE_OPTIONS=--import=tsx cucumber-js",
51
+ "features:security": "TSX_TSCONFIG_PATH=features/steps/tsconfig.json NODE_OPTIONS=--import=tsx cucumber-js --tags @security",
52
+ "features:octets": "TSX_TSCONFIG_PATH=features/steps/tsconfig.json NODE_OPTIONS=--import=tsx cucumber-js features/octets.*"
51
53
  },
52
54
  "devDependencies": {
53
55
  "@toa.io/extensions.storages": "*",
54
56
  "@types/cors": "2.8.19",
55
- "@types/negotiator": "0.6.5",
56
- "jest-esbuild": "0.4.0"
57
+ "@types/negotiator": "0.6.5"
57
58
  },
58
- "jest": {
59
- "transform": {
60
- "^.+\\.ts$": "jest-esbuild"
61
- },
62
- "testEnvironment": "node"
63
- },
64
- "gitHead": "7df32eb2872155c45681c299036b1efbeefd6518"
59
+ "gitHead": "0c0071418c2c56a44e621ba5ced5cdd23dff1738"
65
60
  }
package/readme.md CHANGED
@@ -188,21 +188,15 @@ exposition:
188
188
 
189
189
  ## Ready probe
190
190
 
191
- The gateway serves `GET /.ready` on port `8000` for Kubernetes startup/readiness probes.
191
+ The gateway serves `GET /.ready` on port `8004`, not on the port it serves traffic on, and
192
+ telemetry's probe is disabled in its process.
192
193
 
193
- It returns `200` only after:
194
+ It answers `200` only after the in-process identity composition has connected, initial route
195
+ discovery has settled, and the HTTP server is listening. Before that it answers `503` with a
196
+ `retry-after`. When ready, the process also sends `process.send('ready')` for PM2 `wait_ready`.
194
197
 
195
- 1. The in-process identity composition has connected
196
- 2. Initial route discovery has settled
197
- 3. The HTTP server is listening
198
-
199
- Before listen, probes get connection refused; after listen but before ready, `503`.
200
- When ready, the process also sends `process.send('ready')` (for PM2 `wait_ready`).
201
-
202
- The nested identity composition shares this process. Deployment disables telemetry's port-`8001`
203
- probe (`TOA_TELEMETRY_READY=false`) so only the gateway `/.ready` is used.
204
-
205
- See also [telemetry ready probe](../telemetry/readme.md#ready-probe).
198
+ See also [telemetry ready probe](../telemetry/readme.md#ready-probe) and
199
+ [reserved ports](../../documentation/ports.md).
206
200
 
207
201
  ## See Also
208
202
 
@@ -24,8 +24,19 @@ properties:
24
24
  patternProperties:
25
25
  ^.+$:
26
26
  type: string
27
+ service:
28
+ type: object
29
+ properties:
30
+ annotations:
31
+ type: object
32
+ patternProperties:
33
+ ^.+$:
34
+ type: string
27
35
  debug:
28
36
  type: boolean
37
+ protocol:
38
+ type: string
39
+ enum: [h1, h2c]
29
40
  /: {}
30
41
  authorities:
31
42
  type: object
@@ -1,10 +1,21 @@
1
1
  import type { Resources } from '@toa.io/operations'
2
+ import type { Protocol } from './HTTP/index.js'
2
3
 
3
4
  export interface Annotation {
4
5
  authorities: Record<string, string>
6
+
7
+ /**
8
+ * `h2c` requires an ingress controller that proxies cleartext HTTP/2 upstream.
9
+ * See `documentation/protocol.md`.
10
+ */
11
+ protocol?: Protocol
5
12
  class?: string
6
13
  resources?: Resources
7
14
  annotations?: Record<string, string>
15
+
16
+ /** The Service, as opposed to the Ingress that `annotations` above describes. */
17
+ service?: { annotations?: Record<string, string> }
18
+
8
19
  debug?: boolean
9
20
  '/'?: object // parsed and validated by RTD.syntax.parse
10
21
  }
@@ -1,5 +1,8 @@
1
- import { decide } from './Branch'
2
- import type { Branch, Exposed } from './Branch'
1
+ import { it } from 'node:test'
2
+ import assert from 'node:assert/strict'
3
+
4
+ import { decide } from './Branch.js'
5
+ import type { Branch, Exposed } from './Branch.js'
3
6
 
4
7
  function branch (version: string, timestamp: number): Branch {
5
8
  return {
@@ -17,21 +20,21 @@ function exposed (version: string, timestamp: number): Exposed {
17
20
  }
18
21
 
19
22
  it('should refresh the same version', () => {
20
- expect(decide(exposed('a', 1), branch('a', 2))).toStrictEqual('refresh')
23
+ assert.deepStrictEqual(decide(exposed('a', 1), branch('a', 2)), 'refresh')
21
24
  })
22
25
 
23
26
  it('should refresh the same version announced by an older tenant', () => {
24
- expect(decide(exposed('a', 2), branch('a', 1))).toStrictEqual('refresh')
27
+ assert.deepStrictEqual(decide(exposed('a', 2), branch('a', 1)), 'refresh')
25
28
  })
26
29
 
27
30
  it('should merge a newer tenant', () => {
28
- expect(decide(exposed('a', 1), branch('b', 2))).toStrictEqual('merge')
31
+ assert.deepStrictEqual(decide(exposed('a', 1), branch('b', 2)), 'merge')
29
32
  })
30
33
 
31
34
  it('should not merge a tenant that started earlier', () => {
32
- expect(decide(exposed('b', 2), branch('a', 1))).toStrictEqual('superseded')
35
+ assert.deepStrictEqual(decide(exposed('b', 2), branch('a', 1)), 'superseded')
33
36
  })
34
37
 
35
38
  it('should merge when tenants started at the same time', () => {
36
- expect(decide(exposed('a', 1), branch('b', 1))).toStrictEqual('merge')
39
+ assert.deepStrictEqual(decide(exposed('a', 1), branch('b', 1)), 'merge')
37
40
  })
package/source/Branch.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type * as RTD from './RTD/syntax'
2
- import type { Node } from './RTD'
1
+ import type * as RTD from './RTD/syntax/index.js'
2
+ import type { Node } from './RTD/index.js'
3
3
 
4
4
  export interface Branch {
5
5
  namespace: string
@@ -1,7 +1,7 @@
1
1
  import { readdirSync, type Dirent } from 'node:fs'
2
2
  import { resolve } from 'node:path'
3
3
  import { Connector } from '@toa.io/core'
4
- import { type Bootloader } from './Factory'
4
+ import { type Bootloader } from './Factory.js'
5
5
 
6
6
  export class Composition extends Connector {
7
7
  private readonly boot: Bootloader
@@ -48,4 +48,4 @@ interface Components {
48
48
  paths: string[]
49
49
  }
50
50
 
51
- const ROOT = resolve(__dirname, '../components/')
51
+ const ROOT = resolve(import.meta.dirname, '../components/')
package/source/Context.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type * as RTD from './RTD'
1
+ import type * as RTD from './RTD/index.js'
2
2
 
3
3
  // the trunk is built from the context annotation and belongs to no branch,
4
4
  // thus its endpoints must be fully qualified and are not versioned
@@ -1,49 +1,54 @@
1
- import assert from 'node:assert'
1
+ import { describe, it, beforeEach, mock } from 'node:test'
2
+ import assert from 'node:assert/strict'
3
+
2
4
  import { generate } from 'randomstring'
3
- import { DirectivesFactory } from './Directive'
4
- import type { syntax, DirectiveFamily } from './RTD'
5
- import type { Remotes } from './Remotes'
6
- import type { Context } from './HTTP'
5
+ import { DirectivesFactory } from './Directive.js'
6
+ import type { syntax, DirectiveFamily } from './RTD/index.js'
7
+ import type { Remotes } from './Remotes.js'
8
+ import type { Context } from './HTTP/index.js'
9
+
10
+ const sequence: string[] = []
7
11
 
8
- const families: Array<jest.MockedObjectDeep<DirectiveFamily>> = [
12
+ const families: Array<DirectiveFamily> = [
9
13
  {
10
14
  name: 'foo',
11
15
  mandatory: true,
12
- create: jest.fn((_0: any, _1: any, _2: any) => generate() as any),
13
- arrange: jest.fn(),
14
- preflight: jest.fn(),
15
- settle: jest.fn(),
16
- dispose: jest.fn()
16
+ create: mock.fn((_0: any, _1: any, _2: any) => generate() as any),
17
+ arrange: mock.fn(),
18
+ preflight: mock.fn(() => { sequence.push('foo'); return null }),
19
+ settle: mock.fn(),
20
+ dispose: mock.fn()
17
21
  },
18
22
  {
19
23
  name: 'qux',
20
24
  mandatory: true,
21
- create: jest.fn((_0: any, _1: any, _2: any) => generate() as any),
22
- arrange: jest.fn(),
23
- preflight: jest.fn(),
24
- settle: jest.fn(),
25
- dispose: jest.fn()
25
+ create: mock.fn((_0: any, _1: any, _2: any) => generate() as any),
26
+ arrange: mock.fn(),
27
+ preflight: mock.fn(() => { sequence.push('qux'); return null }),
28
+ settle: mock.fn(),
29
+ dispose: mock.fn()
26
30
  },
27
31
  {
28
32
  name: 'bar',
29
33
  mandatory: false,
30
- create: jest.fn((_0: string, _1: any, _2: any) => generate() as any),
31
- arrange: jest.fn(),
32
- preflight: jest.fn(),
33
- settle: jest.fn(),
34
- dispose: jest.fn()
34
+ create: mock.fn((_0: string, _1: any, _2: any) => generate() as any),
35
+ arrange: mock.fn(),
36
+ preflight: mock.fn(() => { sequence.push('bar'); return null }),
37
+ settle: mock.fn(),
38
+ dispose: mock.fn()
35
39
  }
36
40
  ]
37
41
 
38
42
  let factory: DirectivesFactory
39
43
 
40
44
  beforeEach(() => {
41
- jest.clearAllMocks()
45
+ resetCalls()
46
+ sequence.length = 0
42
47
 
43
48
  for (const family of families) {
44
49
  assert.ok(family.preflight !== undefined)
45
50
 
46
- family.preflight.mockImplementation(() => null)
51
+ family.preflight.mock.mockImplementation(() => { sequence.push(family.name); return null })
47
52
  }
48
53
 
49
54
  factory = new DirectivesFactory(families, {} as unknown as Remotes)
@@ -68,8 +73,8 @@ it('should create directive', async () => {
68
73
  for (const declaration of declarations) {
69
74
  const family = families.find(({ name }) => name === declaration.family)!
70
75
 
71
- expect(family.create.mock.calls[0][0]).toBe(declaration.name)
72
- expect(family.create.mock.calls[0][1]).toBe(declaration.value)
76
+ assert.strictEqual(family.create.mock.calls[0].arguments[0], declaration.name)
77
+ assert.strictEqual(family.create.mock.calls[0].arguments[1], declaration.value)
73
78
  }
74
79
  })
75
80
 
@@ -78,7 +83,7 @@ it('should pass the route to the families', async () => {
78
83
 
79
84
  factory.create([{ family: 'foo', name: generate(), value: generate() }], route)
80
85
 
81
- expect(families[0].create.mock.calls[0][3]).toBe(route)
86
+ assert.strictEqual(families[0].create.mock.calls[0].arguments[3], route)
82
87
  })
83
88
 
84
89
  it('should throw error if directive family is not found', async () => {
@@ -88,8 +93,8 @@ it('should throw error if directive family is not found', async () => {
88
93
  value: generate()
89
94
  }
90
95
 
91
- expect(() => factory.create([declaration]))
92
- .toThrow(`Directive family '${declaration.family}' is not found`)
96
+ assert.throws(() => factory.create([declaration]),
97
+ (error: Error) => error.message.includes(`Directive family '${declaration.family}' is not found`))
93
98
  })
94
99
 
95
100
  it('should apply directive', async () => {
@@ -101,14 +106,14 @@ it('should apply directive', async () => {
101
106
 
102
107
  const directives = factory.create([declaration])
103
108
  const request = generate() as unknown as Context
104
- const directive = families[0].create.mock.results[0].value
109
+ const directive = families[0].create.mock.calls[0].result
105
110
 
106
111
  await directives.preflight(request, [])
107
112
 
108
113
  assert.ok(families[0].preflight !== undefined)
109
114
 
110
- expect(families[0].preflight.mock.calls[0][0]).toStrictEqual([directive])
111
- expect(families[0].preflight.mock.calls[0][1]).toEqual(request)
115
+ assert.deepStrictEqual(families[0].preflight.mock.calls[0].arguments[0], [directive])
116
+ assert.deepStrictEqual(families[0].preflight.mock.calls[0].arguments[1], request)
112
117
  })
113
118
 
114
119
  it('should apply mandatory families', async () => {
@@ -117,16 +122,13 @@ it('should apply mandatory families', async () => {
117
122
 
118
123
  await directives.preflight(request, [])
119
124
 
120
- expect(families[0].preflight).toHaveBeenCalled()
125
+ assert.ok(families[0].preflight.mock.callCount() > 0)
121
126
  })
122
127
 
123
128
  describe('order', () => {
129
+ // the order the families actually ran, as each preflight recorded it
124
130
  function order (): string[] {
125
- return families
126
- .filter(({ preflight }) => preflight!.mock.calls.length > 0)
127
- .sort((a, b) => a.preflight!.mock.invocationCallOrder[0] -
128
- b.preflight!.mock.invocationCallOrder[0])
129
- .map(({ name }) => name)
131
+ return sequence
130
132
  }
131
133
 
132
134
  it('should run mandatory families in their own order, whatever a manifest says', async () => {
@@ -138,7 +140,7 @@ describe('order', () => {
138
140
 
139
141
  await directives.preflight(generate() as unknown as Context, [])
140
142
 
141
- expect(order()).toStrictEqual(['foo', 'qux'])
143
+ assert.deepStrictEqual(order(), ['foo', 'qux'])
142
144
  })
143
145
 
144
146
  it('should run a mandatory family before a declared one it is not declared with',
@@ -151,7 +153,7 @@ describe('order', () => {
151
153
 
152
154
  await directives.preflight(generate() as unknown as Context, [])
153
155
 
154
- expect(order()).toStrictEqual(['foo', 'qux'])
156
+ assert.deepStrictEqual(order(), ['foo', 'qux'])
155
157
  })
156
158
 
157
159
  it('should run mandatory families before the rest', async () => {
@@ -162,6 +164,16 @@ describe('order', () => {
162
164
 
163
165
  await directives.preflight(generate() as unknown as Context, [])
164
166
 
165
- expect(order()).toStrictEqual(['foo', 'qux', 'bar'])
167
+ assert.deepStrictEqual(order(), ['foo', 'qux', 'bar'])
166
168
  })
167
169
  })
170
+
171
+ function resetCalls (target = [families], seen = new Set()) {
172
+ if (target === null || typeof target !== 'object' || seen.has(target)) return
173
+
174
+ seen.add(target)
175
+
176
+ for (const value of Object.values(target))
177
+ if (typeof value === 'function' && value.mock !== undefined) value.mock.resetCalls()
178
+ else resetCalls(value, seen)
179
+ }
@@ -1,8 +1,8 @@
1
1
  import { console, type SpanOptions } from 'openspan'
2
- import type { Context, OutgoingMessage } from './HTTP'
3
- import type { Remotes } from './Remotes'
4
- import type { Output } from './io'
5
- import type * as RTD from './RTD'
2
+ import type { Context, OutgoingMessage } from './HTTP/index.js'
3
+ import type { Remotes } from './Remotes.js'
4
+ import type { Output } from './io.js'
5
+ import type * as RTD from './RTD/index.js'
6
6
 
7
7
  export class Directives implements RTD.Directives {
8
8
  private readonly sets: RTD.DirectiveSet[]
@@ -1,12 +1,12 @@
1
1
  import { Readable } from 'node:stream'
2
2
  import { console } from 'openspan'
3
- import { Mapping } from './Mapping'
4
- import * as http from './HTTP'
5
- import type { Introspection, Schema } from './Introspection'
3
+ import { Mapping } from './Mapping.js'
4
+ import * as http from './HTTP/index.js'
5
+ import type { Introspection, Schema } from './Introspection.js'
6
6
  import type { Remote } from '@toa.io/core'
7
- import type { Remotes } from './Remotes'
8
- import type { Context } from './Context'
9
- import type * as RTD from './RTD'
7
+ import type { Remotes } from './Remotes.js'
8
+ import type { Context } from './Context.js'
9
+ import type * as RTD from './RTD/index.js'
10
10
 
11
11
  export class Endpoint implements RTD.Endpoint {
12
12
  private readonly endpoint: string
package/source/Factory.ts CHANGED
@@ -1,20 +1,20 @@
1
1
  import assert from 'node:assert'
2
2
  import { createHash } from 'node:crypto'
3
3
  import { console, traces, type LevelName, type TracesOptions } from 'openspan'
4
- import { Tenant } from './Tenant'
5
- import { Gateway } from './Gateway'
6
- import { Remotes } from './Remotes'
7
- import { Tree } from './RTD'
8
- import { EndpointsFactory } from './Endpoint'
9
- import { families, interceptors } from './directives'
10
- import { DirectivesFactory } from './Directive'
11
- import { Composition } from './Composition'
12
- import * as root from './root'
13
- import { Interception } from './Interception'
14
- import * as http from './HTTP'
15
- import type { Branch } from './Branch'
16
- import type { syntax } from './RTD'
17
- import type { Broadcast } from './Gateway'
4
+ import { Tenant } from './Tenant.js'
5
+ import { Gateway } from './Gateway.js'
6
+ import { Remotes } from './Remotes.js'
7
+ import { Tree } from './RTD/index.js'
8
+ import { EndpointsFactory } from './Endpoint.js'
9
+ import { families, interceptors } from './directives/index.js'
10
+ import { DirectivesFactory } from './Directive.js'
11
+ import { Composition } from './Composition.js'
12
+ import * as root from './root.js'
13
+ import { Interception } from './Interception.js'
14
+ import * as http from './HTTP/index.js'
15
+ import type { Branch } from './Branch.js'
16
+ import type { syntax } from './RTD/index.js'
17
+ import type { Broadcast } from './Gateway.js'
18
18
  import type { Connector, Locator, extensions } from '@toa.io/core'
19
19
 
20
20
  export class Factory implements extensions.Factory {
@@ -24,8 +24,8 @@ export class Factory implements extensions.Factory {
24
24
  this.boot = boot
25
25
  }
26
26
 
27
- public tenant (locator: Locator, node: syntax.Node): Connector {
28
- const broadcast: Broadcast = this.boot.bindings.broadcast(CHANNEL, locator.id)
27
+ public async tenant (locator: Locator, node: syntax.Node): Promise<Connector> {
28
+ const broadcast: Broadcast = await this.boot.bindings.broadcast(CHANNEL, locator.id)
29
29
  const hash = createHash('sha256').update(JSON.stringify(node)).digest('hex')
30
30
 
31
31
  // no timestamp: the tenant stamps each announcement with its own start time
@@ -40,14 +40,14 @@ export class Factory implements extensions.Factory {
40
40
  return new Tenant(broadcast, branch)
41
41
  }
42
42
 
43
- public service (): Connector | null {
43
+ public async service (): Promise<Connector | null> {
44
44
  assert.ok(process.env.TOA_EXPOSITION_PROPERTIES,
45
45
  'TOA_EXPOSITION_PROPERTIES is undefined')
46
46
 
47
47
  configureLogs()
48
48
 
49
49
  const options = JSON.parse(process.env.TOA_EXPOSITION_PROPERTIES) as http.Options
50
- const broadcast: Broadcast = this.boot.bindings.broadcast(CHANNEL)
50
+ const broadcast: Broadcast = await this.boot.bindings.broadcast(CHANNEL)
51
51
  const server = http.Server.create({ ...options })
52
52
  const remotes = new Remotes(this.boot)
53
53
  const node = root.resolve()
package/source/Gateway.ts CHANGED
@@ -2,13 +2,13 @@ import assert from 'node:assert'
2
2
  import { setTimeout } from 'node:timers/promises'
3
3
  import { console } from 'openspan'
4
4
  import { type bindings, Connector } from '@toa.io/core'
5
- import * as http from './HTTP'
6
- import { rethrow } from './exceptions'
7
- import { decide } from './Branch'
8
- import type { Interception } from './Interception'
9
- import type { Method, Node, Parameter, Tree, Match } from './RTD'
10
- import type { Label } from './discovery'
11
- import type { Branch, Exposed } from './Branch'
5
+ import * as http from './HTTP/index.js'
6
+ import { rethrow } from './exceptions.js'
7
+ import { decide } from './Branch.js'
8
+ import type { Interception } from './Interception.js'
9
+ import type { Method, Node, Parameter, Tree, Match } from './RTD/index.js'
10
+ import type { Label } from './discovery.js'
11
+ import type { Branch, Exposed } from './Branch.js'
12
12
 
13
13
  export class Gateway extends Connector {
14
14
  private readonly broadcast: Broadcast
@@ -2,11 +2,11 @@ import crypto from 'node:crypto'
2
2
  import { buffer } from 'node:stream/consumers'
3
3
  import Negotiator from 'negotiator'
4
4
  import { console } from 'openspan'
5
- import { Timing } from './Timing'
6
- import { type Format, formats, types } from './formats'
7
- import { read } from './messages'
8
- import type { OutgoingMessage } from './messages'
9
- import type * as http from 'node:http'
5
+ import { Timing } from './Timing.js'
6
+ import { type Format, formats, types } from './formats/index.js'
7
+ import { read } from './messages.js'
8
+ import type { OutgoingMessage } from './messages.js'
9
+ import type { IncomingMessage } from './types.js'
10
10
 
11
11
  export class Context {
12
12
  public readonly id: string
@@ -87,11 +87,6 @@ export class Context {
87
87
  }
88
88
  }
89
89
 
90
- export interface IncomingMessage extends http.IncomingMessage {
91
- url: string
92
- method: string
93
- }
94
-
95
90
  interface Pipelines {
96
91
  body: Array<(input: unknown) => unknown>
97
92
  response: Array<(output: OutgoingMessage) => void | Promise<void>>