@toa.io/extensions.exposition 1.0.0-alpha.292 → 1.0.0-alpha.293

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 (443) hide show
  1. package/components/identity.basic/package.json +8 -0
  2. package/components/identity.federation/package.json +8 -0
  3. package/components/identity.passkeys/package.json +8 -0
  4. package/components/identity.tokens/package.json +10 -0
  5. package/package.json +24 -13
  6. package/transpiled/Endpoint.js +3 -0
  7. package/transpiled/Endpoint.js.map +1 -1
  8. package/transpiled/Introspection.d.ts +6 -0
  9. package/transpiled/Introspection.js +1 -0
  10. package/transpiled/Introspection.js.map +1 -1
  11. package/transpiled/MCP/schema.js +2 -2
  12. package/transpiled/Query.d.ts +2 -12
  13. package/transpiled/Query.js +2 -12
  14. package/transpiled/Query.js.map +1 -1
  15. package/transpiled/RTD/Endpoint.d.ts +2 -3
  16. package/ui/dist/_app/immutable/assets/0.Cu0AnR_8.css +2 -0
  17. package/ui/dist/_app/immutable/assets/2.BghF56l_.css +1 -0
  18. package/ui/dist/_app/immutable/assets/ui.C8aD6zzF.css +1 -0
  19. package/ui/dist/_app/immutable/chunks/B8GvXrmq.js +1 -0
  20. package/ui/dist/_app/immutable/chunks/BVDJTrf4.js +3 -0
  21. package/ui/dist/_app/immutable/chunks/D6q28_Ok.js +86 -0
  22. package/ui/dist/_app/immutable/chunks/{aLpTDmOc.js → DVlaUfVU.js} +1 -1
  23. package/ui/dist/_app/immutable/chunks/DpB73ZB6.js +6 -0
  24. package/ui/dist/_app/immutable/entry/app.CTava8yn.js +2 -0
  25. package/ui/dist/_app/immutable/entry/start.yWN0gSLA.js +1 -0
  26. package/ui/dist/_app/immutable/nodes/0.HKRDBYrC.js +1 -0
  27. package/ui/dist/_app/immutable/nodes/1.CLa0ydOi.js +1 -0
  28. package/ui/dist/_app/immutable/nodes/2.C9Kaym8C.js +8 -0
  29. package/ui/dist/_app/immutable/nodes/3.C1X4_rXZ.js +1 -0
  30. package/ui/dist/_app/immutable/nodes/4.DdzDIi9E.js +1 -0
  31. package/ui/dist/_app/immutable/nodes/5.DpbmCMdw.js +1 -0
  32. package/ui/dist/_app/version.json +1 -1
  33. package/ui/dist/index.html +12 -12
  34. package/CHANGELOG.md +0 -42
  35. package/components/identity.bans/tsconfig.tsbuildinfo +0 -1
  36. package/components/identity.basic/source/lib/credentials.test.ts +0 -18
  37. package/components/identity.basic/tsconfig.tsbuildinfo +0 -1
  38. package/components/identity.clients/source/lib/canonical.test.ts +0 -43
  39. package/components/identity.clients/source/lib/cimd.test.ts +0 -122
  40. package/components/identity.clients/source/lib/redirect.test.ts +0 -47
  41. package/components/identity.clients/tsconfig.tsbuildinfo +0 -1
  42. package/components/identity.credentials/source/list.test.ts +0 -70
  43. package/components/identity.credentials/tsconfig.tsbuildinfo +0 -1
  44. package/components/identity.federation/source/lib/discovery.test.ts +0 -60
  45. package/components/identity.federation/source/list.test.ts +0 -41
  46. package/components/identity.federation/tsconfig.tsbuildinfo +0 -1
  47. package/components/identity.grants/tsconfig.tsbuildinfo +0 -1
  48. package/components/identity.keys/tsconfig.tsbuildinfo +0 -1
  49. package/components/identity.otp/tsconfig.tsbuildinfo +0 -1
  50. package/components/identity.passkeys/source/errors.test.ts +0 -34
  51. package/components/identity.passkeys/source/webauthn.test.ts +0 -26
  52. package/components/identity.passkeys/tsconfig.tsbuildinfo +0 -1
  53. package/components/identity.roles/tsconfig.tsbuildinfo +0 -1
  54. package/components/identity.tokens/source/authenticate.test.ts +0 -112
  55. package/components/identity.tokens/source/decrypt.test.ts +0 -216
  56. package/components/identity.tokens/source/encrypt.test.ts +0 -150
  57. package/components/identity.tokens/source/issue.test.ts +0 -73
  58. package/components/identity.tokens/source/lib/form.test.ts +0 -25
  59. package/components/identity.tokens/source/lib/paseto.test.ts +0 -62
  60. package/components/identity.tokens/tsconfig.tsbuildinfo +0 -1
  61. package/context.toa.yaml +0 -31
  62. package/cucumber.mjs +0 -7
  63. package/documentation/.assets/ia3-dark.jpg +0 -0
  64. package/documentation/.assets/ia3-light.jpg +0 -0
  65. package/documentation/.assets/overview-dark.jpg +0 -0
  66. package/documentation/.assets/overview-light.jpg +0 -0
  67. package/documentation/.assets/role-scopes-dark.jpg +0 -0
  68. package/documentation/.assets/role-scopes-light.jpg +0 -0
  69. package/documentation/.assets/rtd-dark.jpg +0 -0
  70. package/documentation/.assets/rtd-light.jpg +0 -0
  71. package/documentation/access.md +0 -350
  72. package/documentation/authorities.md +0 -51
  73. package/documentation/cache.md +0 -72
  74. package/documentation/components.md +0 -472
  75. package/documentation/consent.md +0 -101
  76. package/documentation/credentials.md +0 -88
  77. package/documentation/dev.md +0 -30
  78. package/documentation/discovery.md +0 -81
  79. package/documentation/flow.md +0 -44
  80. package/documentation/help.md +0 -122
  81. package/documentation/identity.md +0 -304
  82. package/documentation/introspection.md +0 -123
  83. package/documentation/io.md +0 -167
  84. package/documentation/ip.md +0 -24
  85. package/documentation/map.md +0 -123
  86. package/documentation/mcp.md +0 -183
  87. package/documentation/notes/desync.jpg +0 -0
  88. package/documentation/notes/peers.md +0 -59
  89. package/documentation/notes/sse.md +0 -71
  90. package/documentation/notes/throttling.md +0 -122
  91. package/documentation/oauth.md +0 -180
  92. package/documentation/octets.md +0 -334
  93. package/documentation/passkeys.md +0 -11
  94. package/documentation/protocol.md +0 -120
  95. package/documentation/query.md +0 -324
  96. package/documentation/require.md +0 -15
  97. package/documentation/rpc.md +0 -154
  98. package/documentation/tracing.md +0 -70
  99. package/documentation/tree.md +0 -199
  100. package/features/access.feature +0 -596
  101. package/features/annotation.feature +0 -32
  102. package/features/auth.assert.feature +0 -55
  103. package/features/auth.bearer.feature +0 -120
  104. package/features/auth.claims.feature +0 -171
  105. package/features/auth.incept.feature +0 -166
  106. package/features/auth.input.feature +0 -59
  107. package/features/authorities.basic.feature +0 -141
  108. package/features/authorities.feature +0 -71
  109. package/features/authorities.federation.feature +0 -100
  110. package/features/authorities.tokens.feature +0 -117
  111. package/features/body.feature +0 -76
  112. package/features/cache.feature +0 -368
  113. package/features/configuration.feature +0 -206
  114. package/features/cors.feature +0 -127
  115. package/features/credentials.feature +0 -106
  116. package/features/debug.feature +0 -34
  117. package/features/dev.feature +0 -90
  118. package/features/directives.feature +0 -61
  119. package/features/discovery.feature +0 -213
  120. package/features/discovery.ui.feature +0 -213
  121. package/features/dynamic.feature +0 -192
  122. package/features/errors.feature +0 -258
  123. package/features/etag.feature +0 -239
  124. package/features/flow.feature +0 -148
  125. package/features/help.feature +0 -512
  126. package/features/identity.bans.feature +0 -200
  127. package/features/identity.basic.feature +0 -666
  128. package/features/identity.feature +0 -240
  129. package/features/identity.federation.feature +0 -396
  130. package/features/identity.otp.feature +0 -142
  131. package/features/identity.roles.feature +0 -568
  132. package/features/identity.tokens.custom.feature +0 -430
  133. package/features/identity.tokens.feature +0 -131
  134. package/features/interruptions.feature +0 -20
  135. package/features/introspection.feature +0 -565
  136. package/features/introspection.map.feature +0 -108
  137. package/features/io.feature +0 -204
  138. package/features/io.throttle.feature +0 -166
  139. package/features/map.feature +0 -360
  140. package/features/mcp.feature +0 -753
  141. package/features/methods.feature +0 -48
  142. package/features/oauth.clients.feature +0 -195
  143. package/features/oauth.discovery.feature +0 -164
  144. package/features/oauth.grants.feature +0 -301
  145. package/features/octets.cloudinary.feature +0 -233
  146. package/features/octets.download.feature +0 -194
  147. package/features/octets.entries.feature +0 -83
  148. package/features/octets.feature +0 -306
  149. package/features/octets.head.feature +0 -40
  150. package/features/octets.location.feature +0 -83
  151. package/features/octets.meta.feature +0 -117
  152. package/features/octets.workflows.feature +0 -565
  153. package/features/passkeys.feature +0 -66
  154. package/features/probes.feature +0 -18
  155. package/features/query.feature +0 -389
  156. package/features/realtime.feature +0 -34
  157. package/features/require.feature +0 -66
  158. package/features/response.feature +0 -103
  159. package/features/routes.feature +0 -224
  160. package/features/rpc.feature +0 -429
  161. package/features/server.feature +0 -21
  162. package/features/site/_app/immutable/asset.js +0 -1
  163. package/features/site/favicon.ico +0 -0
  164. package/features/site/index.html +0 -10
  165. package/features/steps/.env.example +0 -5
  166. package/features/steps/Captures.ts +0 -20
  167. package/features/steps/Cloudinary.ts +0 -12
  168. package/features/steps/Common.ts +0 -38
  169. package/features/steps/Components.ts +0 -115
  170. package/features/steps/Database.ts +0 -106
  171. package/features/steps/Gateway.ts +0 -239
  172. package/features/steps/HTTP.ts +0 -96
  173. package/features/steps/IDP.ts +0 -361
  174. package/features/steps/Identity.ts +0 -54
  175. package/features/steps/OTP.ts +0 -42
  176. package/features/steps/Parameters.ts +0 -162
  177. package/features/steps/Probe.ts +0 -38
  178. package/features/steps/Realtime.ts +0 -175
  179. package/features/steps/Workspace.ts +0 -48
  180. package/features/steps/components/audit/manifest.toa.yaml +0 -20
  181. package/features/steps/components/audit/operations/record.js +0 -5
  182. package/features/steps/components/echo/manifest.toa.yaml +0 -59
  183. package/features/steps/components/echo/operations/affect.js +0 -3
  184. package/features/steps/components/echo/operations/compute.js +0 -3
  185. package/features/steps/components/echo/operations/echo.js +0 -3
  186. package/features/steps/components/echo/operations/error.js +0 -7
  187. package/features/steps/components/echo/operations/identity.js +0 -3
  188. package/features/steps/components/echo/operations/parameters.js +0 -3
  189. package/features/steps/components/echo/operations/ping.js +0 -3
  190. package/features/steps/components/echo/operations/unwrap.js +0 -3
  191. package/features/steps/components/echo.beacon/manifest.toa.yaml +0 -2
  192. package/features/steps/components/echo.beacon/operations/hello.js +0 -3
  193. package/features/steps/components/greeter/manifest.toa.yaml +0 -5
  194. package/features/steps/components/greeter/operations/greet.js +0 -3
  195. package/features/steps/components/notify/manifest.toa.yaml +0 -20
  196. package/features/steps/components/notify/operations/send.js +0 -5
  197. package/features/steps/components/octets.tester/manifest.toa.yaml +0 -73
  198. package/features/steps/components/octets.tester/operations/authority.js +0 -3
  199. package/features/steps/components/octets.tester/operations/bar.js +0 -9
  200. package/features/steps/components/octets.tester/operations/baz.js +0 -9
  201. package/features/steps/components/octets.tester/operations/concat.js +0 -5
  202. package/features/steps/components/octets.tester/operations/echo.js +0 -5
  203. package/features/steps/components/octets.tester/operations/err.js +0 -14
  204. package/features/steps/components/octets.tester/operations/foo.js +0 -5
  205. package/features/steps/components/octets.tester/operations/id.js +0 -5
  206. package/features/steps/components/octets.tester/operations/identity.js +0 -5
  207. package/features/steps/components/octets.tester/operations/lenna.png +0 -0
  208. package/features/steps/components/octets.tester/operations/redirect.js +0 -17
  209. package/features/steps/components/octets.tester/operations/yex.js +0 -14
  210. package/features/steps/components/octets.tester/operations/yield.js +0 -11
  211. package/features/steps/components/orders/manifest.toa.yaml +0 -30
  212. package/features/steps/components/orders/operations/create.js +0 -7
  213. package/features/steps/components/pots/manifest.toa.yaml +0 -91
  214. package/features/steps/components/pots/migrations/0002-indexes.yaml +0 -4
  215. package/features/steps/components/pricing/manifest.toa.yaml +0 -13
  216. package/features/steps/components/pricing/operations/quote.js +0 -3
  217. package/features/steps/components/sequences/manifest.toa.yaml +0 -11
  218. package/features/steps/components/sequences/operations/numbers.js +0 -5
  219. package/features/steps/components/sequences/operations/tokens.js +0 -14
  220. package/features/steps/components/users/manifest.toa.yaml +0 -30
  221. package/features/steps/components/users/operations/create.js +0 -11
  222. package/features/steps/components/users.properties/manifest.toa.yaml +0 -22
  223. package/features/steps/map.ts +0 -30
  224. package/features/steps/tsconfig.json +0 -9
  225. package/features/streams.feature +0 -35
  226. package/features/timestamps.feature +0 -41
  227. package/features/timing.feature +0 -49
  228. package/features/tracing.feature +0 -123
  229. package/source/Branch.test.ts +0 -40
  230. package/source/Branch.ts +0 -44
  231. package/source/Composition.ts +0 -51
  232. package/source/Context.ts +0 -11
  233. package/source/Directive.test.ts +0 -199
  234. package/source/Directive.ts +0 -248
  235. package/source/Discovery/Explorer.ts +0 -34
  236. package/source/Discovery/Site.test.ts +0 -147
  237. package/source/Discovery/Site.ts +0 -202
  238. package/source/Discovery/index.ts +0 -3
  239. package/source/Discovery/tree.test.ts +0 -175
  240. package/source/Discovery/tree.ts +0 -77
  241. package/source/Discovery/trunk.ts +0 -33
  242. package/source/Endpoint.test.ts +0 -67
  243. package/source/Endpoint.ts +0 -157
  244. package/source/Factory.ts +0 -42
  245. package/source/Gateway.ts +0 -390
  246. package/source/HTTP/Context.ts +0 -143
  247. package/source/HTTP/Probe.ts +0 -99
  248. package/source/HTTP/Server.ts +0 -435
  249. package/source/HTTP/Timing.ts +0 -14
  250. package/source/HTTP/address.test.ts +0 -28
  251. package/source/HTTP/address.ts +0 -16
  252. package/source/HTTP/exceptions.ts +0 -99
  253. package/source/HTTP/formats/form.ts +0 -21
  254. package/source/HTTP/formats/index.ts +0 -36
  255. package/source/HTTP/formats/json.ts +0 -14
  256. package/source/HTTP/formats/msgpack.ts +0 -14
  257. package/source/HTTP/formats/text.ts +0 -10
  258. package/source/HTTP/formats/yaml.test.ts +0 -22
  259. package/source/HTTP/formats/yaml.ts +0 -40
  260. package/source/HTTP/index.ts +0 -6
  261. package/source/HTTP/messages.test.ts +0 -196
  262. package/source/HTTP/messages.ts +0 -186
  263. package/source/HTTP/types.ts +0 -39
  264. package/source/Interception.ts +0 -37
  265. package/source/Introspection.ts +0 -179
  266. package/source/MCP/Server.ts +0 -335
  267. package/source/MCP/discover.ts +0 -51
  268. package/source/MCP/errors.ts +0 -80
  269. package/source/MCP/index.ts +0 -1
  270. package/source/MCP/schema.test.ts +0 -91
  271. package/source/MCP/schema.ts +0 -94
  272. package/source/MCP/tools.ts +0 -144
  273. package/source/MCP/types.ts +0 -84
  274. package/source/Mapping.ts +0 -101
  275. package/source/Query.test.ts +0 -54
  276. package/source/Query.ts +0 -277
  277. package/source/RPC/Context.ts +0 -75
  278. package/source/RPC/Dispatcher.ts +0 -150
  279. package/source/RPC/errors.test.ts +0 -77
  280. package/source/RPC/errors.ts +0 -82
  281. package/source/RPC/index.ts +0 -1
  282. package/source/RPC/names.test.ts +0 -141
  283. package/source/RPC/names.ts +0 -176
  284. package/source/RPC/types.ts +0 -34
  285. package/source/RTD/Context.ts +0 -16
  286. package/source/RTD/Directives.ts +0 -126
  287. package/source/RTD/Endpoint.ts +0 -27
  288. package/source/RTD/Match.ts +0 -11
  289. package/source/RTD/Method.ts +0 -39
  290. package/source/RTD/Node.ts +0 -169
  291. package/source/RTD/Route.ts +0 -93
  292. package/source/RTD/Tree.ts +0 -137
  293. package/source/RTD/expiration.test.ts +0 -81
  294. package/source/RTD/factory.ts +0 -105
  295. package/source/RTD/index.ts +0 -8
  296. package/source/RTD/segment.test.ts +0 -35
  297. package/source/RTD/segment.ts +0 -51
  298. package/source/RTD/syntax/index.ts +0 -1
  299. package/source/RTD/walk.test.ts +0 -147
  300. package/source/Remotes.test.ts +0 -79
  301. package/source/Remotes.ts +0 -39
  302. package/source/Tenant.ts +0 -73
  303. package/source/directives/auth/Anonymous.test.ts +0 -70
  304. package/source/directives/auth/Anonymous.ts +0 -36
  305. package/source/directives/auth/Anyone.ts +0 -23
  306. package/source/directives/auth/Assert.ts +0 -43
  307. package/source/directives/auth/Authorization.test.ts +0 -24
  308. package/source/directives/auth/Authorization.ts +0 -388
  309. package/source/directives/auth/Delegate.test.ts +0 -36
  310. package/source/directives/auth/Delegate.ts +0 -54
  311. package/source/directives/auth/Echo.ts +0 -24
  312. package/source/directives/auth/Federation.ts +0 -104
  313. package/source/directives/auth/Id.ts +0 -37
  314. package/source/directives/auth/Incept.ts +0 -117
  315. package/source/directives/auth/Input.ts +0 -92
  316. package/source/directives/auth/Role.test.ts +0 -147
  317. package/source/directives/auth/Role.ts +0 -99
  318. package/source/directives/auth/Rule.ts +0 -59
  319. package/source/directives/auth/Scheme.ts +0 -31
  320. package/source/directives/auth/create.ts +0 -11
  321. package/source/directives/auth/index.ts +0 -3
  322. package/source/directives/auth/schemes.test.ts +0 -18
  323. package/source/directives/auth/schemes.ts +0 -39
  324. package/source/directives/auth/split.ts +0 -14
  325. package/source/directives/auth/types.ts +0 -75
  326. package/source/directives/cache/Cache.ts +0 -92
  327. package/source/directives/cache/Control.ts +0 -81
  328. package/source/directives/cache/Exact.ts +0 -7
  329. package/source/directives/cache/etag.ts +0 -38
  330. package/source/directives/cache/index.ts +0 -3
  331. package/source/directives/cache/types.ts +0 -9
  332. package/source/directives/cors/CORS.test.ts +0 -75
  333. package/source/directives/cors/CORS.ts +0 -88
  334. package/source/directives/cors/index.ts +0 -3
  335. package/source/directives/dev/Development.ts +0 -41
  336. package/source/directives/dev/Faulty.ts +0 -31
  337. package/source/directives/dev/Sleep.ts +0 -53
  338. package/source/directives/dev/Stub.ts +0 -14
  339. package/source/directives/dev/Throw.ts +0 -14
  340. package/source/directives/dev/index.ts +0 -3
  341. package/source/directives/dev/types.ts +0 -5
  342. package/source/directives/flow/Compose.ts +0 -98
  343. package/source/directives/flow/Fetch.ts +0 -86
  344. package/source/directives/flow/Flow.ts +0 -43
  345. package/source/directives/flow/index.ts +0 -3
  346. package/source/directives/flow/types.ts +0 -7
  347. package/source/directives/help/Family.ts +0 -122
  348. package/source/directives/help/Help.test.ts +0 -227
  349. package/source/directives/help/Help.ts +0 -47
  350. package/source/directives/help/Parameters.ts +0 -47
  351. package/source/directives/help/described.ts +0 -57
  352. package/source/directives/help/index.ts +0 -45
  353. package/source/directives/index.ts +0 -33
  354. package/source/directives/io/Directive.ts +0 -17
  355. package/source/directives/io/IO.ts +0 -118
  356. package/source/directives/io/Input.ts +0 -55
  357. package/source/directives/io/Message.ts +0 -1
  358. package/source/directives/io/Output.ts +0 -81
  359. package/source/directives/io/Status.test.ts +0 -88
  360. package/source/directives/io/Status.ts +0 -47
  361. package/source/directives/io/Throttle.ts +0 -30
  362. package/source/directives/io/index.ts +0 -3
  363. package/source/directives/io/lib/throttle/Configuration.test.ts +0 -72
  364. package/source/directives/io/lib/throttle/Configuration.ts +0 -68
  365. package/source/directives/io/lib/throttle/Keys.ts +0 -53
  366. package/source/directives/io/lib/throttle/Quotas.test.ts +0 -411
  367. package/source/directives/io/lib/throttle/Quotas.ts +0 -190
  368. package/source/directives/io/lib/throttle/Sync.test.ts +0 -163
  369. package/source/directives/io/lib/throttle/Sync.ts +0 -93
  370. package/source/directives/io/lib/throttle/Warning.test.ts +0 -32
  371. package/source/directives/io/lib/throttle/Warning.ts +0 -29
  372. package/source/directives/io/lib/throttle/components/Component.ts +0 -7
  373. package/source/directives/io/lib/throttle/components/IP.ts +0 -30
  374. package/source/directives/io/lib/throttle/components/Identity.ts +0 -19
  375. package/source/directives/io/lib/throttle/components/Path.ts +0 -8
  376. package/source/directives/io/lib/throttle/components/Route.ts +0 -19
  377. package/source/directives/io/lib/throttle/components/Segment.ts +0 -19
  378. package/source/directives/io/lib/throttle/components/index.ts +0 -19
  379. package/source/directives/io/lib/throttle/conditions/Condition.ts +0 -5
  380. package/source/directives/io/lib/throttle/conditions/Status.ts +0 -17
  381. package/source/directives/io/lib/throttle/conditions/index.ts +0 -11
  382. package/source/directives/io/lib/throttle/index.ts +0 -4
  383. package/source/directives/io/schemas.test.ts +0 -40
  384. package/source/directives/io/schemas.ts +0 -16
  385. package/source/directives/map/Authority.ts +0 -15
  386. package/source/directives/map/Buffer.ts +0 -15
  387. package/source/directives/map/Claims.ts +0 -63
  388. package/source/directives/map/Directive.ts +0 -4
  389. package/source/directives/map/Headers.ts +0 -60
  390. package/source/directives/map/Language.ts +0 -45
  391. package/source/directives/map/Languages.ts +0 -17
  392. package/source/directives/map/Map.ts +0 -85
  393. package/source/directives/map/Mapping.ts +0 -45
  394. package/source/directives/map/Properties.ts +0 -15
  395. package/source/directives/map/Segments.ts +0 -52
  396. package/source/directives/map/index.ts +0 -3
  397. package/source/directives/mcp/MCP.ts +0 -33
  398. package/source/directives/mcp/Tool.test.ts +0 -56
  399. package/source/directives/mcp/Tool.ts +0 -32
  400. package/source/directives/mcp/index.ts +0 -6
  401. package/source/directives/oauth/Discovery.ts +0 -66
  402. package/source/directives/oauth/documents.ts +0 -110
  403. package/source/directives/oauth/index.ts +0 -3
  404. package/source/directives/octets/Context.ts +0 -23
  405. package/source/directives/octets/Delete.ts +0 -96
  406. package/source/directives/octets/Directive.ts +0 -21
  407. package/source/directives/octets/Get.ts +0 -88
  408. package/source/directives/octets/Octets.ts +0 -82
  409. package/source/directives/octets/Put.ts +0 -186
  410. package/source/directives/octets/Workflow.ts +0 -60
  411. package/source/directives/octets/bytes.test.ts +0 -33
  412. package/source/directives/octets/bytes.ts +0 -18
  413. package/source/directives/octets/index.ts +0 -3
  414. package/source/directives/octets/schemas.test.ts +0 -20
  415. package/source/directives/octets/schemas.ts +0 -15
  416. package/source/directives/octets/types.ts +0 -9
  417. package/source/directives/octets/workflows/Execution.ts +0 -130
  418. package/source/directives/octets/workflows/Workflow.ts +0 -51
  419. package/source/directives/octets/workflows/index.ts +0 -1
  420. package/source/directives/require/Directive.ts +0 -5
  421. package/source/directives/require/Headers.ts +0 -19
  422. package/source/directives/require/Require.ts +0 -27
  423. package/source/directives/require/index.ts +0 -3
  424. package/source/discovery.ts +0 -1
  425. package/source/exceptions.ts +0 -47
  426. package/source/index.ts +0 -10
  427. package/source/io.ts +0 -4
  428. package/source/octets.d.ts +0 -17
  429. package/source/root.ts +0 -59
  430. package/source/service.ts +0 -95
  431. package/source/userland.ts +0 -47
  432. package/tsconfig.json +0 -13
  433. package/tsconfig.tsbuildinfo +0 -1
  434. package/ui/dist/_app/immutable/assets/0.Bl7vLmIK.css +0 -2
  435. package/ui/dist/_app/immutable/assets/2.BC0-Jhqu.css +0 -1
  436. package/ui/dist/_app/immutable/chunks/BaWe3aOV.js +0 -1
  437. package/ui/dist/_app/immutable/chunks/DjIYL2zC.js +0 -3
  438. package/ui/dist/_app/immutable/chunks/GZTfV0ks.js +0 -6
  439. package/ui/dist/_app/immutable/entry/app.D5v4JoUx.js +0 -2
  440. package/ui/dist/_app/immutable/entry/start.CWxFoIyZ.js +0 -1
  441. package/ui/dist/_app/immutable/nodes/0.DIh5T_5-.js +0 -1
  442. package/ui/dist/_app/immutable/nodes/1.CY-bFzHC.js +0 -1
  443. package/ui/dist/_app/immutable/nodes/2.6Ubd1ItY.js +0 -14
@@ -1,175 +0,0 @@
1
- import { EventEmitter, once } from 'node:events'
2
- import * as assert from 'node:assert'
3
- import tsflow from 'cucumber-tsflow'
4
-
5
- import { Factory } from '@toa.io/extensions.realtime'
6
- import * as boot from '@toa.io/boot'
7
- import { environment, match, timeout } from '@toa.io/generic'
8
- import { load as parse } from 'js-yaml'
9
- import { Agent } from '@toa.io/agent'
10
- import { Parameters } from './Parameters.js'
11
- import { Gateway } from './Gateway.js'
12
- import { Captures } from './Captures.js'
13
- import type { Connector } from '@toa.io/core'
14
-
15
- const { after, binding, given, afterAll, then } = tsflow
16
-
17
- @binding([Gateway, Parameters, Captures])
18
- export class Realtime {
19
- private static instance: Connector | null = null
20
- private readonly gateway: Gateway
21
- private readonly agent: Agent
22
- private readonly events = new EventEmitter()
23
- private log: Record<string, unknown[]> = {}
24
- private aborted = false
25
-
26
- public constructor(gateway: Gateway, parameters: Parameters, captures: Captures) {
27
- this.gateway = gateway
28
- this.agent = new Agent(parameters.origin, captures)
29
- }
30
-
31
- @given('the Realtime is running with the following annotation:')
32
- public async start(yaml: string): Promise<void> {
33
- await Realtime.stop()
34
-
35
- const annotation = parse(yaml) as Record<string, string>
36
- const routes = []
37
-
38
- for (const [event, property] of Object.entries(annotation))
39
- routes.push({ event, properties: [property] })
40
-
41
- environment.set('TOA_REALTIME', JSON.stringify(routes))
42
-
43
- const factory = new Factory(boot.host())
44
-
45
- Realtime.instance = await factory.service()
46
-
47
- // not awaited: the routes connect to the components that produce the events, and this
48
- // scenario starts the producer after the service, so the connection settles later
49
- void Realtime.instance.connect()
50
- }
51
-
52
- @given('the identity {word} is consuming realtime events')
53
- public async connect(name: string): Promise<void> {
54
- await this.gateway.start()
55
-
56
- const id = await this.createIdentity(name)
57
-
58
- const parts = await this.open(name)
59
-
60
- void this.consume(id, parts).catch((e) => {
61
- if (!this.aborted) console.debug('Consumption interrupted', e)
62
- })
63
- }
64
-
65
- @then('the following event `{word}` is received by {word}:')
66
- public async received(label: string, name: string, yaml: string): Promise<void> {
67
- const id = this.agent.captures.get(`${name}.id`)
68
- const tag = `${id}:${label}`
69
- const expected = parse(yaml)
70
-
71
- if (this.log[tag] !== undefined)
72
- for (const data of this.log[tag])
73
- // eslint-disable-next-line max-depth
74
- if (match(data, expected)) return
75
-
76
- const [event] = await once(this.events, tag)
77
-
78
- assert.ok(match(event, expected), 'Event does not match')
79
- }
80
-
81
- @after()
82
- public abort(): void {
83
- this.aborted = true
84
- this.agent.abort()
85
- this.log = {}
86
- this.events.removeAllListeners()
87
- }
88
-
89
- @afterAll()
90
- public static async stop(): Promise<void> {
91
- if (this.instance === null) return
92
-
93
- await this.instance.disconnect()
94
-
95
- this.instance = null
96
- environment.delete('TOA_REALTIME')
97
- }
98
-
99
- /**
100
- * The stream is asked for until the gateway has the route, not once. The realtime service
101
- * is started by the step before this one and its `connect` is not awaited there — so the
102
- * branch that carries `/realtime/streams` is still being announced while this runs, and
103
- * asking too early reads the 404 that precedes the route.
104
- */
105
- private async open(name: string): Promise<AsyncIterable<Uint8Array>> {
106
- const deadline = Date.now() + DISCOVERY
107
-
108
- for (;;)
109
- try {
110
- return (await this.agent.parts(`
111
- GET /realtime/streams/\${{ ${name}.id }}/ HTTP/1.1
112
- authorization: Token \${{ ${name}.token }}
113
- accept: application/json
114
- `)) as AsyncIterable<Uint8Array>
115
- } catch (error) {
116
- if (Date.now() > deadline) throw error
117
-
118
- await timeout(POLL)
119
- }
120
- }
121
-
122
- private async createIdentity(name: string): Promise<string> {
123
- const password = Math.random().toString(36).slice(2)
124
- const username = name + Math.random().toString(36).slice(2)
125
-
126
- await this.agent.request(`
127
- POST /identity/basic/ HTTP/1.1
128
- accept: application/yaml
129
- content-type: application/yaml
130
-
131
- username: ${username}
132
- password: ${password}
133
- `)
134
-
135
- this.agent.responseIncludes(`
136
- 201 Created
137
- `)
138
-
139
- const credentials = Buffer.from(`${username}:${password}`).toString('base64')
140
-
141
- await this.agent.request(`
142
- GET /identity/ HTTP/1.1
143
- authorization: Basic ${credentials}
144
- accept: application/yaml
145
- `)
146
-
147
- this.agent.responseIncludes(`
148
- 200 OK
149
- authorization: Token \${{ ${name}.token }}
150
-
151
- id: \${{ ${name}.id }}
152
- `)
153
-
154
- return this.agent.captures.get(`${name}.id`) as string
155
- }
156
-
157
- private async consume(id: string, parts: any): Promise<void> {
158
- for await (const part of parts) {
159
- const text = Buffer.from(part.body).toString('utf8')
160
- const event = JSON.parse(text)
161
-
162
- if (typeof event === 'string') continue
163
-
164
- const tag = `${id}:${event.event}`
165
-
166
- this.events.emit(tag, event.data)
167
- this.log[tag] ??= []
168
- this.log[tag].push(event.data)
169
- }
170
- }
171
- }
172
-
173
- /** How long the route is waited for, and how often it is asked for. */
174
- const DISCOVERY = 5000
175
- const POLL = 50
@@ -1,48 +0,0 @@
1
- import { join } from 'node:path'
2
- import { tmpdir, devNull } from 'node:os'
3
- import { mkdtemp, cp, readFile, writeFile } from 'node:fs/promises'
4
- import { load, dump } from 'js-yaml'
5
- import { overwrite } from '@toa.io/generic'
6
-
7
- export class Workspace {
8
- private root: string = devNull
9
-
10
- public static exists(
11
- _0: unknown,
12
- _1: unknown,
13
- descriptor: PropertyDescriptor
14
- ): PropertyDescriptor {
15
- const method = descriptor.value
16
-
17
- descriptor.value = async function (this: Workspace, ...args: any[]): Promise<any> {
18
- if (this.root === devNull)
19
- this.root = await mkdtemp(join(tmpdir(), Math.random().toString(36).slice(2)))
20
-
21
- return method.apply(this, args)
22
- }
23
-
24
- return descriptor
25
- }
26
-
27
- @Workspace.exists
28
- public async addComponent(name: string, patch?: object): Promise<string> {
29
- const source = join(import.meta.dirname, 'components', name)
30
- const target = join(this.root, name)
31
-
32
- await cp(source, target, { force: true, recursive: true })
33
-
34
- if (patch !== undefined) await this.patchManifest(target, patch)
35
-
36
- return target
37
- }
38
-
39
- private async patchManifest(target: string, patch: object): Promise<void> {
40
- const path = join(target, 'manifest.toa.yaml')
41
-
42
- const manifest = load(await readFile(path, 'utf8')) as object
43
-
44
- overwrite(manifest, patch)
45
-
46
- await writeFile(path, dump(manifest, { noRefs: true, lineWidth: -1 }), 'utf8')
47
- }
48
- }
@@ -1,20 +0,0 @@
1
- name: audit
2
-
3
- operations:
4
- record:
5
- input:
6
- properties:
7
- id:
8
- type: string
9
- title:
10
- type: string
11
- volume:
12
- type: number
13
- price:
14
- type: number
15
- type: object
16
- output:
17
- {}
18
-
19
- receivers:
20
- orders.created: record
@@ -1,5 +0,0 @@
1
- export async function effect(input) {
2
- await new Promise((resolve) => setTimeout(resolve, 500))
3
-
4
- return null
5
- }
@@ -1,59 +0,0 @@
1
- name: echo
2
-
3
- operations:
4
- compute:
5
- input:
6
- properties:
7
- name:
8
- type: string
9
- type: object
10
- required:
11
- - name
12
- affect:
13
- input:
14
- properties:
15
- name:
16
- type: string
17
- type: object
18
- required:
19
- - name
20
- identity:
21
- input:
22
- properties:
23
- identity:
24
- properties:
25
- id:
26
- type: string
27
- roles:
28
- type: array
29
- items:
30
- type: string
31
- type: object
32
- type: object
33
- parameters:
34
- description: Answers with what it was given.
35
- input:
36
- type: object
37
- properties:
38
- a:
39
- type: string
40
- b:
41
- type: string
42
- output:
43
- type: object
44
- properties:
45
- a:
46
- type: string
47
- b:
48
- type: string
49
- echo:
50
- input:
51
- type: object
52
- unwrap:
53
- input:
54
- type: object
55
- properties:
56
- buf:
57
- type: string
58
- error:
59
- errors: [CODE]
@@ -1,3 +0,0 @@
1
- export function effect(input) {
2
- return `Hello ${input.name}`
3
- }
@@ -1,3 +0,0 @@
1
- export function computation(input) {
2
- return `Hello ${input.name}`
3
- }
@@ -1,3 +0,0 @@
1
- export function computation(input) {
2
- return input
3
- }
@@ -1,7 +0,0 @@
1
- export function computation() {
2
- const err = { code: 'CODE', message: 'message' }
3
-
4
- Object.setPrototypeOf(err, Error.prototype)
5
-
6
- return err
7
- }
@@ -1,3 +0,0 @@
1
- export function computation(input) {
2
- return input
3
- }
@@ -1,3 +0,0 @@
1
- export function computation(input) {
2
- return input
3
- }
@@ -1,3 +0,0 @@
1
- export function computation() {
2
- return 'pong'
3
- }
@@ -1,3 +0,0 @@
1
- export function computation(input) {
2
- return JSON.parse(input.buf)
3
- }
@@ -1,2 +0,0 @@
1
- namespace: echo
2
- name: beacon
@@ -1,3 +0,0 @@
1
- export const computation = () => {
2
- return 'Hello!'
3
- }
@@ -1,5 +0,0 @@
1
- name: greeter
2
-
3
- exposition:
4
- /:
5
- GET: greet
@@ -1,3 +0,0 @@
1
- export function computation() {
2
- return 'Hello'
3
- }
@@ -1,20 +0,0 @@
1
- name: notify
2
-
3
- operations:
4
- send:
5
- input:
6
- properties:
7
- id:
8
- type: string
9
- title:
10
- type: string
11
- volume:
12
- type: number
13
- price:
14
- type: number
15
- type: object
16
- output:
17
- {}
18
-
19
- receivers:
20
- orders.created: send
@@ -1,5 +0,0 @@
1
- export async function effect(input) {
2
- await new Promise((resolve) => setTimeout(resolve, 800))
3
-
4
- return null
5
- }
@@ -1,73 +0,0 @@
1
- namespace: octets
2
- name: tester
3
-
4
- storages: octets
5
-
6
- operations:
7
- foo: &operation
8
- errors: [ERROR, NOT_FOUND]
9
- input:
10
- properties:
11
- identity:
12
- type: string
13
- parameters:
14
- type: object
15
- steps:
16
- type: object
17
- authority:
18
- type: string
19
- storage:
20
- type: string
21
- path:
22
- type: string
23
- entry:
24
- type: object
25
- type: object
26
- required:
27
- - authority
28
- - storage
29
- - path
30
- - entry
31
- bar: *operation
32
- baz: *operation
33
- err: *operation
34
- id: *operation
35
- echo: *operation
36
- concat: *operation
37
- yield: *operation
38
- yex: *operation
39
- authority: *operation
40
- identity: *operation
41
- redirect:
42
- errors: [ERROR]
43
- input:
44
- properties:
45
- parameters:
46
- type: object
47
- patternProperties:
48
- ^.+$:
49
- type: string
50
- authority:
51
- type: string
52
- path:
53
- type: string
54
- type: object
55
- required:
56
- - authority
57
- - path
58
- output:
59
- type: object
60
- properties:
61
- url:
62
- type: string
63
- options:
64
- type: object
65
- properties:
66
- method:
67
- type: string
68
- headers:
69
- type: object
70
- body:
71
- type: string
72
- required:
73
- - url
@@ -1,3 +0,0 @@
1
- export function computation(input) {
2
- return input.authority
3
- }
@@ -1,9 +0,0 @@
1
- import { setTimeout } from 'node:timers/promises'
2
-
3
- async function bar(input, context) {
4
- await setTimeout(10)
5
-
6
- return { bar: 'baz' }
7
- }
8
-
9
- export { bar as effect }
@@ -1,9 +0,0 @@
1
- import { setTimeout } from 'node:timers/promises'
2
-
3
- async function baz(input, context) {
4
- await setTimeout(30)
5
-
6
- return input.steps ?? null
7
- }
8
-
9
- export { baz as effect }
@@ -1,5 +0,0 @@
1
- function concat(input) {
2
- return input.parameters.a + ' ' + input.parameters.b
3
- }
4
-
5
- export { concat as computation }
@@ -1,5 +0,0 @@
1
- function echo(input) {
2
- return input
3
- }
4
-
5
- export { echo as computation }
@@ -1,14 +0,0 @@
1
- import { setTimeout } from 'node:timers/promises'
2
-
3
- async function err(_) {
4
- await setTimeout(20)
5
-
6
- const err = Object.create(Error.prototype)
7
-
8
- err.code = 'ERROR'
9
- err.message = 'Something went wrong'
10
-
11
- return err
12
- }
13
-
14
- export { err as effect }
@@ -1,5 +0,0 @@
1
- async function foo(input, context) {
2
- return { foo: 'bar' }
3
- }
4
-
5
- export { foo as effect }
@@ -1,5 +0,0 @@
1
- function id(input) {
2
- return input.entry.id
3
- }
4
-
5
- export { id as computation }
@@ -1,5 +0,0 @@
1
- function identity(input) {
2
- return input.identity
3
- }
4
-
5
- export { identity as computation }
@@ -1,17 +0,0 @@
1
- function redirect(input) {
2
- return input.parameters.type in urls
3
- ? { url: urls[input.parameters.type] }
4
- : ERR_UNKNOWN
5
- }
6
-
7
- // an error a caller is meant to see carries a code, always
8
- const ERR_UNKNOWN = new (class UnknownError extends Error {
9
- code = 'ERROR'
10
- })()
11
-
12
- const urls = {
13
- rfc: 'https://www.rfc-editor.org/rfc/rfc9564.txt',
14
- img: 'https://www.w3.org/assets/logos/w3c/w3c-no-bars.svg'
15
- }
16
-
17
- export { redirect as computation }
@@ -1,14 +0,0 @@
1
- import { setTimeout } from 'node:timers/promises'
2
-
3
- async function* effect(_) {
4
- await setTimeout(10)
5
- yield 'hello'
6
-
7
- await setTimeout(10)
8
- yield 'world'
9
-
10
- await setTimeout(10)
11
- throw new Error('Oops!')
12
- }
13
-
14
- export { effect }
@@ -1,11 +0,0 @@
1
- import { setTimeout } from 'node:timers/promises'
2
-
3
- async function* effect(_) {
4
- await setTimeout(10)
5
- yield 'hello'
6
-
7
- await setTimeout(10)
8
- yield 'world'
9
- }
10
-
11
- export { effect }
@@ -1,30 +0,0 @@
1
- name: orders
2
-
3
- entity:
4
- properties:
5
- title:
6
- type: string
7
- volume:
8
- type: number
9
- price:
10
- type: number
11
- required:
12
- - title
13
- - volume
14
-
15
- operations:
16
- create:
17
- concurrency: retry
18
- query: false
19
- input:
20
- properties:
21
- title:
22
- type: string
23
- default: .
24
- volume:
25
- type: string
26
- default: .
27
- type: object
28
- required:
29
- - title
30
- - volume
@@ -1,7 +0,0 @@
1
- export async function transition(input, object, context) {
2
- const price = await context.remote.default.pricing.quote({
3
- input: { volume: input.volume }
4
- })
5
-
6
- return Object.assign(object, { ...input, price })
7
- }