@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,130 +0,0 @@
1
- import { Readable } from 'node:stream'
2
- import { console } from 'openspan'
3
- import type { Unit } from './Workflow.js'
4
- import type { Remotes } from '../../../Remotes.js'
5
- import type { Component } from '@toa.io/core'
6
- import type { Maybe } from '@toa.io/core/types'
7
- import type { Entry } from '@toa.io/extensions.storages'
8
-
9
- export class Execution extends Readable {
10
- private readonly units: Unit[]
11
- private readonly remotes: Remotes
12
- private readonly context: Context
13
- private readonly components: Record<string, Component> = {}
14
- private readonly discovery: Record<string, Promise<Component>> = {}
15
- private interrupted = false
16
-
17
- public constructor(context: Context, units: Unit[], remotes: Remotes) {
18
- super({ objectMode: true })
19
-
20
- this.context = context
21
- this.units = units
22
- this.remotes = remotes
23
-
24
- void this.run()
25
- }
26
-
27
- public override _read(): void {}
28
-
29
- private async run(): Promise<void> {
30
- for (const unit of this.units) {
31
- await this.execute(unit)
32
-
33
- if (this.interrupted) break
34
- }
35
-
36
- this.push(null)
37
- }
38
-
39
- private async execute(unit: Unit): Promise<void> {
40
- const promises = Object.entries(unit).map(async ([step, endpoint]) => {
41
- try {
42
- const result = await this.call(endpoint)
43
-
44
- if (result instanceof Readable) return await this.stream(step, result)
45
-
46
- this.report(step, result)
47
- } catch (e: unknown) {
48
- this.exception(step, e)
49
- }
50
- })
51
-
52
- await Promise.all(promises)
53
- }
54
-
55
- private async stream(step: string, stream: Readable): Promise<void> {
56
- try {
57
- for await (const result of stream) this.report(step, result, false)
58
-
59
- this.report(step, undefined, true)
60
- } catch (e: unknown) {
61
- this.exception(step, e)
62
- }
63
- }
64
-
65
- private report(step: string, result?: Maybe<unknown>, completed = true): void {
66
- const report: Report = { step }
67
-
68
- if (completed) report.status = 'completed'
69
-
70
- if (result instanceof Error) {
71
- // an Error cannot be serialized where it sits, and the encoders only unwrap
72
- // one they are handed directly — this one travels nested inside the report
73
- report.error = { ...result }
74
- this.interrupted = true
75
- } else if (result !== undefined) {
76
- report.output = result
77
- this.context.steps[step] = structuredClone(result)
78
- }
79
-
80
- this.push(report)
81
- }
82
-
83
- private exception(step: string, error: unknown): void {
84
- console.error('Workflow exception', error as Error)
85
-
86
- this.push({ step, status: 'exception' } satisfies Report)
87
- this.interrupted = true
88
- }
89
-
90
- private async call(endpoint: string): Promise<Maybe<unknown>> {
91
- const task = endpoint.startsWith('task:')
92
-
93
- if (task) endpoint = endpoint.slice(5)
94
-
95
- const [operation, component, namespace = 'default'] = endpoint.split('.').reverse()
96
- const key = `${namespace}.${component}`
97
-
98
- this.components[key] ??= await this.discover(key, namespace, component)
99
-
100
- return this.components[key].invoke(operation, { input: this.context, task })
101
- }
102
-
103
- private async discover(
104
- key: string,
105
- namespace: string,
106
- component: string
107
- ): Promise<Component> {
108
- if (this.discovery[key] === undefined)
109
- this.discovery[key] = this.remotes.discover(namespace, component)
110
-
111
- return await this.discovery[key]
112
- }
113
- }
114
-
115
- export interface Context {
116
- authority: string
117
- identity?: string
118
- storage: string
119
- path: string
120
- entry: Entry
121
- parameters: Record<string, string>
122
- steps: Record<string, unknown>
123
- }
124
-
125
- interface Report {
126
- step: string
127
- status?: 'completed' | 'exception'
128
- output?: unknown
129
- error?: Record<string, unknown>
130
- }
@@ -1,51 +0,0 @@
1
- import { posix } from 'node:path'
2
- import { match } from 'matchacho'
3
- import { Execution } from './Execution.js'
4
- import type { Entry } from '@toa.io/extensions.storages'
5
- import type { Context } from './Execution.js'
6
- import type { Parameter } from '../../../RTD/index.js'
7
- import type { Remotes } from '../../../Remotes.js'
8
-
9
- export class Workflow {
10
- private readonly units: Unit[]
11
- private readonly remotes: Remotes
12
-
13
- public constructor(units: Unit[] | Unit, remotes: Remotes) {
14
- this.units = match<Unit[]>(
15
- units,
16
- Array,
17
- (units: Unit[]) => units,
18
- Object,
19
- (unit: Unit) => [unit]
20
- )
21
-
22
- this.remotes = remotes
23
- }
24
-
25
- public execute(location: Location, entry: Entry, params: Parameter[]): Execution {
26
- const parameters: Record<string, string> = {}
27
-
28
- for (const { name, value } of params) parameters[name] = value
29
-
30
- const context: Context = {
31
- authority: location.authority,
32
- identity: location.identity,
33
- storage: location.storage,
34
- path: posix.join(location.path, entry.id),
35
- entry,
36
- parameters,
37
- steps: {}
38
- }
39
-
40
- return new Execution(context, this.units, this.remotes)
41
- }
42
- }
43
-
44
- export interface Location {
45
- authority: string
46
- identity?: string
47
- storage: string
48
- path: string
49
- }
50
-
51
- export type Unit = Record<string, string>
@@ -1 +0,0 @@
1
- export { Workflow, type Unit, type Location } from './Workflow.js'
@@ -1,5 +0,0 @@
1
- import type { Input } from '../../io.js'
2
-
3
- export interface Directive {
4
- precall: (context: Input) => void
5
- }
@@ -1,19 +0,0 @@
1
- import { BadRequest } from '../../HTTP/index.js'
2
- import type { Input } from '../../io.js'
3
- import type { Directive } from './Directive.js'
4
-
5
- export class Headers implements Directive {
6
- private readonly headers: string[]
7
-
8
- public constructor(headers: string[]) {
9
- if (!Array.isArray(headers)) headers = [headers]
10
-
11
- this.headers = headers
12
- }
13
-
14
- public precall(context: Input): void {
15
- for (const header of this.headers)
16
- if (context.request.headers[header] === undefined)
17
- throw new BadRequest(`Header required: ${header}`)
18
- }
19
- }
@@ -1,27 +0,0 @@
1
- import assert from 'node:assert'
2
- import { Headers } from './Headers.js'
3
- import type { Input } from '../../io.js'
4
- import type { Directive } from './Directive.js'
5
- import type { DirectiveFamily } from '../../RTD/index.js'
6
-
7
- export class Require implements DirectiveFamily {
8
- public readonly name = 'require'
9
- public readonly mandatory = false
10
-
11
- public create(name: string, value: unknown): Directive {
12
- assert.ok(name in directives, `Unknown directive: require:${name}`)
13
-
14
- return new directives[name](value)
15
- }
16
-
17
- public precall(instances: Directive[], context: Input): null {
18
- for (const instance of instances) instance.precall(context)
19
-
20
- return null
21
- }
22
- }
23
-
24
- const directives: Record<string, new (value: any) => Directive> = {
25
- header: Headers,
26
- headers: Headers
27
- }
@@ -1,3 +0,0 @@
1
- import { Require } from './Require.js'
2
-
3
- export const req = new Require()
@@ -1 +0,0 @@
1
- export type Label = 'ping' | 'expose'
@@ -1,47 +0,0 @@
1
- import { match } from 'matchacho'
2
- import { console } from 'openspan'
3
- import * as http from './HTTP/index.js'
4
- import { Exception as HTTPException } from './HTTP/index.js'
5
- import type { Exception } from '@toa.io/core'
6
-
7
- export function rethrow(exception: Exception | HTTPException): void {
8
- if (exception instanceof HTTPException) throw exception
9
-
10
- // see /runtime/core/src/exceptions.js
11
- throw match(
12
- exception.code,
13
- badRequest,
14
- () => new http.BadRequest(exception.message),
15
- CORE_EXCEPTIONS.StateNotFound,
16
- NOT_FOUND,
17
- CORE_EXCEPTIONS.StatePrecondition,
18
- PRECONDITION_FAILED,
19
- CORE_EXCEPTIONS.Duplicate,
20
- CONFLICT,
21
- CORE_EXCEPTIONS.StateConcurrency,
22
- CONFLICT,
23
- CORE_EXCEPTIONS.EntityGuard,
24
- CONFLICT,
25
- () => {
26
- console.error('Request processing exception', exception)
27
-
28
- return exception
29
- }
30
- )
31
- }
32
-
33
- function badRequest(code: number): boolean {
34
- return (code >= 200 && code < 210) || code === 221
35
- }
36
-
37
- const NOT_FOUND = new http.NotFound()
38
- const PRECONDITION_FAILED = new http.PreconditionFailed()
39
- const CONFLICT = new http.Conflict()
40
-
41
- const CORE_EXCEPTIONS = {
42
- StateNotFound: 302,
43
- StatePrecondition: 303,
44
- StateConcurrency: 304,
45
- EntityGuard: 213,
46
- Duplicate: 306
47
- }
package/source/index.ts DELETED
@@ -1,10 +0,0 @@
1
- export { components } from './Composition.js'
2
- export { Factory } from './Factory.js'
3
-
4
- export type { Remotes } from './Remotes.js'
5
-
6
- // what an operation is written against, rather than the gateway's own
7
- export type { Claims, Identity } from './userland.js'
8
-
9
- // what an octets workflow is given
10
- export type * as octets from './octets.js'
package/source/io.ts DELETED
@@ -1,4 +0,0 @@
1
- import type { Context, OutgoingMessage } from './HTTP/index.js'
2
-
3
- export type Input = Context
4
- export type Output = OutgoingMessage | null
@@ -1,17 +0,0 @@
1
- export interface WorkflowInput<
2
- TParameters extends Record<string, string> = Record<string, string>,
3
- TSteps extends Record<string, unknown> = Record<string, unknown>
4
- > {
5
- authority: string
6
- identity?: string
7
- storage: string
8
- path: string
9
- entry: {
10
- id: string
11
- type: string
12
- size: number
13
- meta: Record<string, unknown>
14
- }
15
- parameters: TParameters
16
- steps: TSteps
17
- }
package/source/root.ts DELETED
@@ -1,59 +0,0 @@
1
- import { environment, merge } from '@toa.io/generic'
2
- import { syntax } from './RTD/index.js'
3
-
4
- export function resolve(): syntax.Node {
5
- const value = environment.get('TOA_EXPOSITION')
6
- const root =
7
- value !== undefined ? (JSON.parse(value) as syntax.Node) : syntax.createNode()
8
-
9
- merge(root, PREDEFINED)
10
-
11
- return root
12
- }
13
-
14
- const PREDEFINED: syntax.Node = {
15
- routes: [
16
- {
17
- path: '/identity',
18
- node: {
19
- isolated: true,
20
- routes: [],
21
- methods: [
22
- {
23
- verb: 'GET',
24
- directives: [
25
- {
26
- family: 'io',
27
- name: 'output',
28
- value: ['id', 'roles']
29
- },
30
- {
31
- family: 'auth',
32
- name: 'echo',
33
- value: null
34
- }
35
- ]
36
- },
37
- {
38
- verb: 'POST',
39
- directives: [
40
- {
41
- family: 'io',
42
- name: 'output',
43
- value: ['id', 'roles']
44
- },
45
- {
46
- family: 'auth',
47
- name: 'incept',
48
- value: null
49
- }
50
- ]
51
- }
52
- ],
53
- directives: []
54
- }
55
- }
56
- ],
57
- methods: [],
58
- directives: []
59
- }
package/source/service.ts DELETED
@@ -1,95 +0,0 @@
1
- import assert from 'node:assert'
2
- import { console, traces, type LevelName, type TracesOptions } from 'openspan'
3
- import { Gateway } from './Gateway.js'
4
- import { Remotes } from './Remotes.js'
5
- import { Tree } from './RTD/index.js'
6
- import { EndpointsFactory } from './Endpoint.js'
7
- import { families, interceptors } from './directives/index.js'
8
- import { DirectivesFactory } from './Directive.js'
9
- import { Composition } from './Composition.js'
10
- import * as root from './root.js'
11
- import { ATOM_GROUP, CHANNEL } from '@toa.io/definitions/extensions.exposition'
12
- import { Interception } from './Interception.js'
13
- import { Dispatcher } from './RPC/index.js'
14
- import { Server as Model } from './MCP/index.js'
15
- import * as http from './HTTP/index.js'
16
- import { environment } from '@toa.io/generic'
17
- import type { Broadcast } from './Gateway.js'
18
- import type { Connector } from '@toa.io/core'
19
- import type { Host } from './Factory.js'
20
-
21
- /**
22
- * The gateway. A composition loads this extension for its tenants alone, so what the
23
- * gateway is made of is reached from here and nowhere the factory imports.
24
- */
25
- export async function service(host: Host): Promise<Connector | null> {
26
- const properties = environment.get('TOA_EXPOSITION_PROPERTIES')
27
-
28
- assert.ok(properties !== undefined, 'TOA_EXPOSITION_PROPERTIES is undefined')
29
-
30
- configureLogs()
31
-
32
- const options = JSON.parse(properties) as http.Options
33
- const broadcast: Broadcast = await host.broadcast(CHANNEL)
34
- const server = http.Server.create({ ...options })
35
- const remotes = new Remotes(host)
36
- const node = root.resolve()
37
- const methods = new EndpointsFactory(remotes)
38
- const directives = new DirectivesFactory(families, remotes, host, options)
39
- const interception = new Interception(interceptors, options)
40
- const tree = new Tree(node, methods, directives)
41
-
42
- const composition = new Composition(host)
43
- const dispatcher = options.rpc === undefined ? null : new Dispatcher(options.rpc)
44
- const mcp = options.mcp === undefined ? null : new Model(options.mcp, tree)
45
- const gateway = new Gateway(broadcast, tree, interception, directives, dispatcher, mcp)
46
-
47
- gateway.depends(remotes)
48
- gateway.depends(composition)
49
- // what the directives meter through; one atom per process, connected once
50
- gateway.depends(host.atom(ATOM_GROUP))
51
-
52
- server.attach(gateway.process.bind(gateway))
53
- server.depends(gateway)
54
-
55
- return server
56
- }
57
-
58
- const LOGS_PREFIX = 'TOA_TELEMETRY_LOGS'
59
- const TRACES_ENV = 'TOA_TELEMETRY_TRACES'
60
-
61
- function configureLogs(): void {
62
- const globEnv = environment.get(LOGS_PREFIX)
63
- const level: LevelName = environment.get('TOA_DEV') === '1' ? 'trace' : 'info'
64
- const options =
65
- globEnv === undefined ? { level } : (JSON.parse(globEnv) as { level?: LevelName })
66
-
67
- console.configure({ level: options.level ?? level })
68
-
69
- const tracesEnv = environment.get(TRACES_ENV)
70
- const tracing =
71
- tracesEnv === undefined ? development() : (JSON.parse(tracesEnv) as TracesOptions)
72
-
73
- // `openspan` is not Toa's and reads the environment, which no longer holds the context by
74
- // the time the exporter is made — so the service is named here
75
- if (tracing.exporters?.otlp !== undefined)
76
- tracing.exporters.otlp.service ??= environment.get('TOA_CONTEXT')
77
-
78
- traces(tracing)
79
- }
80
-
81
- /**
82
- * Tracing is off unless it is configured. The console exporter is a local development
83
- * mechanism, so it is turned on for `toa dev` and for a boot trace the CLI has already
84
- * asked for (`runtime/boot/src/span.js`), and nowhere else — a deployment that wants
85
- * traces annotates `telemetry.traces.exporters`.
86
- *
87
- * The gateway boots without the telemetry extension, hence the copy of
88
- * `extensions/telemetry/source/extension.ts`.
89
- */
90
- function development(): TracesOptions {
91
- const local =
92
- environment.get('TOA_DEV') === '1' || environment.get('TOA_BOOT_TRACE') === '1'
93
-
94
- return local ? { exporters: { console: {} } } : {}
95
- }
@@ -1,47 +0,0 @@
1
- /**
2
- * What Exposition puts into an operation's input, for the operation to be written against.
3
- *
4
- * The gateway's own types are its business; these are the application's.
5
- */
6
-
7
- /**
8
- * The identity behind the call, as `auth:delegate` embeds it:
9
- *
10
- * ```yaml
11
- * /echo:
12
- * GET:
13
- * auth:assert: true
14
- * auth:delegate: identity
15
- * endpoint: echo
16
- * ```
17
- *
18
- * ```javascript
19
- * export async function computation ({ identity }, context) { }
20
- * ```
21
- */
22
- export interface Identity {
23
- readonly id: string
24
-
25
- /** What the identity holds. Delegation resolves them, so they are always here. */
26
- roles: string[]
27
-
28
- permissions?: Record<string, string[]>
29
-
30
- /** How the identity was authenticated; `null` for a transient one. */
31
- scheme: string | null
32
-
33
- /** Whether the credentials presented are due to be exchanged. */
34
- refresh: boolean
35
-
36
- /** The token's claims, where the identity was federated. */
37
- claims?: Claims
38
- }
39
-
40
- /** A federated token's payload: what it must carry, and whatever else the issuer put there. */
41
- export interface Claims {
42
- iss: string
43
- sub: string
44
- aud?: string | string[]
45
-
46
- [claim: string]: unknown
47
- }
package/tsconfig.json DELETED
@@ -1,13 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "./transpiled",
5
- "rootDir": "./source"
6
- },
7
- "include": [
8
- "source"
9
- ],
10
- "exclude": [
11
- "**/*.test.ts"
12
- ]
13
- }