@toa.io/extensions.exposition 1.0.0-alpha.284 → 1.0.0-alpha.286

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 (620) hide show
  1. package/components/exposition.octets/operations/delete.js +1 -1
  2. package/components/exposition.octets/operations/get.js +5 -2
  3. package/components/exposition.octets/operations/head.js +1 -1
  4. package/components/exposition.octets/operations/put.js +29 -37
  5. package/components/exposition.octets/types/toa.d.ts +1 -1
  6. package/components/identity.bans/manifest.toa.yaml +12 -13
  7. package/components/identity.bans/migrations/0001-system-properties.yaml +14 -0
  8. package/components/identity.bans/operations/transit.js +1 -1
  9. package/components/identity.bans/source/transit.ts +1 -1
  10. package/components/identity.bans/tsconfig.tsbuildinfo +1 -1
  11. package/components/identity.bans/types/toa.d.ts +5 -5
  12. package/components/identity.basic/events/principal.js +3 -1
  13. package/components/identity.basic/manifest.toa.yaml +17 -23
  14. package/components/identity.basic/migrations/0001-system-properties.yaml +14 -0
  15. package/components/identity.basic/migrations/0002-indexes.yaml +13 -0
  16. package/components/identity.basic/operations/add.js +1 -1
  17. package/components/identity.basic/operations/authenticate.js +2 -2
  18. package/components/identity.basic/operations/check.js +4 -2
  19. package/components/identity.basic/operations/delete.js +1 -1
  20. package/components/identity.basic/operations/incept.js +1 -1
  21. package/components/identity.basic/operations/info.js +1 -1
  22. package/components/identity.basic/operations/lib/credentials.js +1 -1
  23. package/components/identity.basic/operations/transit.js +7 -8
  24. package/components/identity.basic/source/add.ts +5 -2
  25. package/components/identity.basic/source/authenticate.ts +11 -13
  26. package/components/identity.basic/source/check.ts +9 -6
  27. package/components/identity.basic/source/delete.ts +4 -1
  28. package/components/identity.basic/source/incept.ts +13 -10
  29. package/components/identity.basic/source/info.ts +4 -1
  30. package/components/identity.basic/source/lib/credentials.ts +2 -3
  31. package/components/identity.basic/source/transit.ts +27 -21
  32. package/components/identity.basic/tsconfig.tsbuildinfo +1 -1
  33. package/components/identity.basic/types/index.d.ts +7 -3
  34. package/components/identity.basic/types/toa.d.ts +5 -5
  35. package/components/identity.clients/manifest.toa.yaml +36 -40
  36. package/components/identity.clients/migrations/0001-system-properties.yaml +14 -0
  37. package/components/identity.clients/migrations/0002-indexes.yaml +4 -0
  38. package/components/identity.clients/operations/describe.js +1 -1
  39. package/components/identity.clients/operations/lib/canonical.js +1 -1
  40. package/components/identity.clients/operations/lib/cimd.js +3 -2
  41. package/components/identity.clients/operations/lib/redirect.js +7 -4
  42. package/components/identity.clients/operations/register.js +2 -2
  43. package/components/identity.clients/source/describe.ts +6 -8
  44. package/components/identity.clients/source/lib/Context.ts +6 -3
  45. package/components/identity.clients/source/lib/Entity.ts +1 -1
  46. package/components/identity.clients/source/lib/canonical.ts +1 -1
  47. package/components/identity.clients/source/lib/cimd.test.ts +8 -6
  48. package/components/identity.clients/source/lib/cimd.ts +24 -19
  49. package/components/identity.clients/source/lib/redirect.test.ts +8 -2
  50. package/components/identity.clients/source/lib/redirect.ts +12 -8
  51. package/components/identity.clients/source/register.ts +18 -18
  52. package/components/identity.clients/tsconfig.tsbuildinfo +1 -1
  53. package/components/identity.clients/types/toa.d.ts +5 -5
  54. package/components/identity.credentials/manifest.toa.yaml +4 -4
  55. package/components/identity.credentials/operations/list.js +8 -4
  56. package/components/identity.credentials/source/list.test.ts +39 -20
  57. package/components/identity.credentials/source/list.ts +12 -8
  58. package/components/identity.credentials/tsconfig.tsbuildinfo +1 -1
  59. package/components/identity.credentials/types/toa.d.ts +2 -2
  60. package/components/identity.federation/manifest.toa.yaml +23 -32
  61. package/components/identity.federation/migrations/0001-system-properties.yaml +14 -0
  62. package/components/identity.federation/migrations/0002-indexes.yaml +25 -0
  63. package/components/identity.federation/operations/authenticate.js +4 -2
  64. package/components/identity.federation/operations/create.js +2 -2
  65. package/components/identity.federation/operations/decode.js +1 -1
  66. package/components/identity.federation/operations/delete.js +1 -1
  67. package/components/identity.federation/operations/incept.js +1 -1
  68. package/components/identity.federation/operations/lib/decode.js +1 -1
  69. package/components/identity.federation/operations/lib/discovery.js +2 -2
  70. package/components/identity.federation/operations/lib/exchange.js +8 -4
  71. package/components/identity.federation/operations/lib/principal.js +1 -1
  72. package/components/identity.federation/operations/lib/resolve.js +1 -1
  73. package/components/identity.federation/operations/list.js +2 -2
  74. package/components/identity.federation/source/authenticate.ts +19 -17
  75. package/components/identity.federation/source/create.ts +6 -7
  76. package/components/identity.federation/source/decode.ts +4 -1
  77. package/components/identity.federation/source/delete.ts +4 -1
  78. package/components/identity.federation/source/incept.ts +2 -3
  79. package/components/identity.federation/source/lib/decode.ts +4 -7
  80. package/components/identity.federation/source/lib/discovery.test.ts +15 -5
  81. package/components/identity.federation/source/lib/discovery.ts +10 -9
  82. package/components/identity.federation/source/lib/exchange.ts +18 -15
  83. package/components/identity.federation/source/lib/jose.d.ts +1 -1
  84. package/components/identity.federation/source/lib/principal.ts +5 -3
  85. package/components/identity.federation/source/lib/resolve.ts +5 -1
  86. package/components/identity.federation/source/list.test.ts +26 -10
  87. package/components/identity.federation/source/list.ts +5 -2
  88. package/components/identity.federation/source/types/context.ts +5 -2
  89. package/components/identity.federation/source/types/entity.ts +2 -2
  90. package/components/identity.federation/tsconfig.tsbuildinfo +1 -1
  91. package/components/identity.federation/types/toa.d.ts +5 -5
  92. package/components/identity.grants/manifest.toa.yaml +27 -31
  93. package/components/identity.grants/migrations/0001-system-properties.yaml +14 -0
  94. package/components/identity.grants/migrations/0002-indexes.yaml +5 -0
  95. package/components/identity.grants/operations/authorize.js +1 -1
  96. package/components/identity.grants/operations/exchange.js +5 -2
  97. package/components/identity.grants/operations/lib/code.js +1 -1
  98. package/components/identity.grants/operations/lib/identify.js +1 -1
  99. package/components/identity.grants/operations/list.js +1 -1
  100. package/components/identity.grants/operations/revoke.js +3 -2
  101. package/components/identity.grants/source/authorize.ts +27 -19
  102. package/components/identity.grants/source/exchange.ts +15 -11
  103. package/components/identity.grants/source/lib/code.ts +20 -8
  104. package/components/identity.grants/source/lib/identify.ts +1 -1
  105. package/components/identity.grants/source/list.ts +2 -2
  106. package/components/identity.grants/source/revoke.ts +9 -7
  107. package/components/identity.grants/tsconfig.tsbuildinfo +1 -1
  108. package/components/identity.grants/types/index.d.ts +3 -3
  109. package/components/identity.grants/types/toa.d.ts +5 -5
  110. package/components/identity.keys/manifest.toa.yaml +18 -23
  111. package/components/identity.keys/migrations/0001-system-properties.yaml +14 -0
  112. package/components/identity.keys/migrations/0002-indexes.yaml +4 -0
  113. package/components/identity.keys/operations/create.js +1 -1
  114. package/components/identity.keys/operations/disable.js +1 -1
  115. package/components/identity.keys/operations/revoke.js +1 -1
  116. package/components/identity.keys/source/create.ts +2 -3
  117. package/components/identity.keys/source/disable.ts +1 -1
  118. package/components/identity.keys/source/revoke.ts +2 -2
  119. package/components/identity.keys/tsconfig.tsbuildinfo +1 -1
  120. package/components/identity.keys/types/toa.d.ts +5 -5
  121. package/components/identity.otp/manifest.toa.yaml +16 -24
  122. package/components/identity.otp/migrations/0001-system-properties.yaml +14 -0
  123. package/components/identity.otp/migrations/0002-indexes.yaml +5 -0
  124. package/components/identity.otp/operations/authenticate.js +1 -1
  125. package/components/identity.otp/operations/issue.js +1 -1
  126. package/components/identity.otp/source/authenticate.ts +4 -7
  127. package/components/identity.otp/source/issue.ts +1 -1
  128. package/components/identity.otp/source/lib/Context.ts +1 -1
  129. package/components/identity.otp/tsconfig.tsbuildinfo +1 -1
  130. package/components/identity.otp/types/toa.d.ts +5 -5
  131. package/components/identity.passkeys/manifest.toa.yaml +45 -53
  132. package/components/identity.passkeys/migrations/0001-system-properties.yaml +14 -0
  133. package/components/identity.passkeys/migrations/0002-indexes.yaml +11 -0
  134. package/components/identity.passkeys/operations/authenticate.js +1 -1
  135. package/components/identity.passkeys/operations/challenge.js +6 -3
  136. package/components/identity.passkeys/operations/create.js +1 -1
  137. package/components/identity.passkeys/operations/delete.js +1 -1
  138. package/components/identity.passkeys/operations/list.js +1 -1
  139. package/components/identity.passkeys/operations/use.js +1 -1
  140. package/components/identity.passkeys/source/authenticate.ts +3 -4
  141. package/components/identity.passkeys/source/challenge.ts +29 -25
  142. package/components/identity.passkeys/source/create.ts +8 -6
  143. package/components/identity.passkeys/source/delete.ts +4 -1
  144. package/components/identity.passkeys/source/list.ts +4 -1
  145. package/components/identity.passkeys/source/types/Context.ts +1 -1
  146. package/components/identity.passkeys/source/use.ts +12 -10
  147. package/components/identity.passkeys/tsconfig.tsbuildinfo +1 -1
  148. package/components/identity.passkeys/types/toa.d.ts +5 -5
  149. package/components/identity.roles/manifest.toa.yaml +12 -16
  150. package/components/identity.roles/migrations/0001-system-properties.yaml +14 -0
  151. package/components/identity.roles/migrations/0002-indexes.yaml +8 -0
  152. package/components/identity.roles/operations/grant.js +1 -1
  153. package/components/identity.roles/operations/list.js +1 -1
  154. package/components/identity.roles/operations/principal.js +2 -2
  155. package/components/identity.roles/source/grant.ts +7 -6
  156. package/components/identity.roles/source/list.ts +1 -1
  157. package/components/identity.roles/source/principal.ts +5 -7
  158. package/components/identity.roles/tsconfig.tsbuildinfo +1 -1
  159. package/components/identity.roles/types/toa.d.ts +5 -5
  160. package/components/identity.tokens/manifest.toa.yaml +17 -15
  161. package/components/identity.tokens/migrations/0001-system-properties.yaml +14 -0
  162. package/components/identity.tokens/operations/authenticate.js +2 -2
  163. package/components/identity.tokens/operations/decrypt.js +11 -5
  164. package/components/identity.tokens/operations/encrypt.js +2 -2
  165. package/components/identity.tokens/operations/issue.js +2 -4
  166. package/components/identity.tokens/operations/lib/form.js +1 -1
  167. package/components/identity.tokens/operations/lib/key.js +1 -1
  168. package/components/identity.tokens/operations/revoke.js +1 -1
  169. package/components/identity.tokens/source/authenticate.test.ts +22 -16
  170. package/components/identity.tokens/source/authenticate.ts +7 -10
  171. package/components/identity.tokens/source/decrypt.test.ts +62 -29
  172. package/components/identity.tokens/source/decrypt.ts +30 -27
  173. package/components/identity.tokens/source/encrypt.test.ts +21 -16
  174. package/components/identity.tokens/source/encrypt.ts +8 -11
  175. package/components/identity.tokens/source/issue.test.ts +4 -2
  176. package/components/identity.tokens/source/issue.ts +6 -8
  177. package/components/identity.tokens/source/lib/form.ts +5 -9
  178. package/components/identity.tokens/source/lib/jose.d.ts +1 -1
  179. package/components/identity.tokens/source/lib/key.ts +1 -1
  180. package/components/identity.tokens/source/lib/paseto.test.ts +17 -6
  181. package/components/identity.tokens/source/revoke.ts +1 -1
  182. package/components/identity.tokens/tsconfig.tsbuildinfo +1 -1
  183. package/components/identity.tokens/types/index.d.ts +13 -4
  184. package/components/identity.tokens/types/toa.d.ts +5 -5
  185. package/context.toa.yaml +2 -2
  186. package/cucumber.mjs +3 -0
  187. package/documentation/access.md +4 -3
  188. package/documentation/cache.md +17 -3
  189. package/documentation/components.md +2 -2
  190. package/documentation/credentials.md +2 -2
  191. package/documentation/identity.md +7 -9
  192. package/documentation/map.md +2 -2
  193. package/documentation/mcp.md +23 -17
  194. package/documentation/notes/peers.md +1 -1
  195. package/documentation/notes/throttling.md +1 -1
  196. package/documentation/octets.md +4 -4
  197. package/documentation/protocol.md +3 -3
  198. package/documentation/query.md +14 -8
  199. package/documentation/rpc.md +45 -31
  200. package/documentation/tracing.md +3 -3
  201. package/documentation/tree.md +1 -1
  202. package/features/auth.assert.feature +2 -2
  203. package/features/auth.bearer.feature +1 -1
  204. package/features/auth.claims.feature +5 -5
  205. package/features/auth.incept.feature +2 -2
  206. package/features/authorities.federation.feature +1 -1
  207. package/features/configuration.feature +3 -4
  208. package/features/credentials.feature +9 -9
  209. package/features/dev.feature +1 -0
  210. package/features/dynamic.feature +1 -0
  211. package/features/errors.feature +21 -0
  212. package/features/etag.feature +0 -86
  213. package/features/identity.bans.feature +3 -3
  214. package/features/identity.basic.feature +9 -9
  215. package/features/identity.federation.feature +11 -11
  216. package/features/identity.tokens.custom.feature +5 -5
  217. package/features/identity.tokens.feature +2 -2
  218. package/features/interruptions.feature +1 -0
  219. package/features/introspection.map.feature +4 -4
  220. package/features/io.throttle.feature +1 -0
  221. package/features/map.feature +2 -2
  222. package/features/mcp.feature +32 -28
  223. package/features/oauth.grants.feature +1 -1
  224. package/features/octets.cloudinary.feature +1 -1
  225. package/features/octets.download.feature +1 -0
  226. package/features/require.feature +1 -2
  227. package/features/rpc.feature +21 -21
  228. package/features/steps/Captures.ts +1 -1
  229. package/features/steps/Cloudinary.ts +1 -2
  230. package/features/steps/Common.ts +4 -5
  231. package/features/steps/Components.ts +17 -12
  232. package/features/steps/Database.ts +42 -23
  233. package/features/steps/Gateway.ts +55 -71
  234. package/features/steps/HTTP.ts +12 -15
  235. package/features/steps/IDP.ts +118 -94
  236. package/features/steps/Identity.ts +3 -3
  237. package/features/steps/OTP.ts +3 -3
  238. package/features/steps/Parameters.ts +20 -10
  239. package/features/steps/Probe.ts +9 -7
  240. package/features/steps/Realtime.ts +40 -22
  241. package/features/steps/Workspace.ts +10 -7
  242. package/features/steps/components/audit/operations/record.js +1 -1
  243. package/features/steps/components/echo/operations/affect.js +1 -1
  244. package/features/steps/components/echo/operations/compute.js +1 -1
  245. package/features/steps/components/echo/operations/echo.js +1 -1
  246. package/features/steps/components/echo/operations/error.js +1 -1
  247. package/features/steps/components/echo/operations/identity.js +1 -1
  248. package/features/steps/components/echo/operations/parameters.js +1 -1
  249. package/features/steps/components/echo/operations/ping.js +1 -1
  250. package/features/steps/components/echo/operations/unwrap.js +1 -1
  251. package/features/steps/components/greeter/operations/greet.js +1 -1
  252. package/features/steps/components/notify/operations/send.js +1 -1
  253. package/features/steps/components/octets.tester/operations/authority.js +1 -1
  254. package/features/steps/components/octets.tester/operations/bar.js +1 -1
  255. package/features/steps/components/octets.tester/operations/baz.js +1 -1
  256. package/features/steps/components/octets.tester/operations/concat.js +1 -1
  257. package/features/steps/components/octets.tester/operations/echo.js +1 -1
  258. package/features/steps/components/octets.tester/operations/err.js +1 -1
  259. package/features/steps/components/octets.tester/operations/foo.js +1 -1
  260. package/features/steps/components/octets.tester/operations/id.js +1 -1
  261. package/features/steps/components/octets.tester/operations/identity.js +1 -1
  262. package/features/steps/components/octets.tester/operations/redirect.js +6 -4
  263. package/features/steps/components/octets.tester/operations/yex.js +1 -1
  264. package/features/steps/components/octets.tester/operations/yield.js +1 -1
  265. package/features/steps/components/orders/manifest.toa.yaml +10 -12
  266. package/features/steps/components/orders/operations/create.js +4 -2
  267. package/features/steps/components/pots/manifest.toa.yaml +15 -20
  268. package/features/steps/components/pots/migrations/0002-indexes.yaml +4 -0
  269. package/features/steps/components/pricing/operations/quote.js +1 -1
  270. package/features/steps/components/sequences/manifest.toa.yaml +0 -1
  271. package/features/steps/components/sequences/operations/numbers.js +1 -1
  272. package/features/steps/components/sequences/operations/tokens.js +3 -3
  273. package/features/steps/components/users/manifest.toa.yaml +3 -5
  274. package/features/steps/components/users/operations/create.js +1 -1
  275. package/features/steps/components/users.properties/manifest.toa.yaml +5 -6
  276. package/features/steps/map.ts +2 -2
  277. package/features/timestamps.feature +1 -1
  278. package/package.json +7 -7
  279. package/readme.md +11 -11
  280. package/schemas/annotation.cos.yaml +1 -3
  281. package/schemas/method.cos.yaml +2 -0
  282. package/source/Branch.test.ts +2 -2
  283. package/source/Branch.ts +3 -5
  284. package/source/Composition.ts +5 -5
  285. package/source/Directive.test.ts +38 -20
  286. package/source/Directive.ts +61 -47
  287. package/source/Endpoint.test.ts +1 -1
  288. package/source/Endpoint.ts +27 -92
  289. package/source/Factory.ts +26 -12
  290. package/source/Gateway.ts +87 -76
  291. package/source/HTTP/Context.ts +23 -30
  292. package/source/HTTP/Probe.ts +7 -9
  293. package/source/HTTP/Server.ts +88 -69
  294. package/source/HTTP/Timing.ts +6 -21
  295. package/source/HTTP/address.test.ts +8 -2
  296. package/source/HTTP/address.ts +2 -3
  297. package/source/HTTP/exceptions.ts +20 -18
  298. package/source/HTTP/formats/form.ts +1 -1
  299. package/source/HTTP/formats/json.ts +2 -2
  300. package/source/HTTP/formats/msgpack.ts +3 -4
  301. package/source/HTTP/formats/text.ts +2 -2
  302. package/source/HTTP/formats/yaml.test.ts +4 -1
  303. package/source/HTTP/formats/yaml.ts +14 -11
  304. package/source/HTTP/messages.test.ts +38 -28
  305. package/source/HTTP/messages.ts +44 -98
  306. package/source/Interception.ts +3 -4
  307. package/source/Introspection.ts +29 -14
  308. package/source/MCP/Server.ts +114 -54
  309. package/source/MCP/discover.ts +6 -7
  310. package/source/MCP/errors.ts +7 -8
  311. package/source/MCP/schema.test.ts +9 -3
  312. package/source/MCP/schema.ts +12 -16
  313. package/source/MCP/tools.ts +33 -27
  314. package/source/MCP/types.ts +4 -1
  315. package/source/Mapping.ts +25 -27
  316. package/source/Query.ts +58 -44
  317. package/source/RPC/Context.ts +8 -11
  318. package/source/RPC/Dispatcher.ts +46 -26
  319. package/source/RPC/errors.test.ts +41 -16
  320. package/source/RPC/errors.ts +9 -10
  321. package/source/RPC/names.test.ts +51 -32
  322. package/source/RPC/names.ts +26 -32
  323. package/source/RTD/Directives.ts +21 -10
  324. package/source/RTD/Endpoint.ts +4 -1
  325. package/source/RTD/Method.ts +8 -6
  326. package/source/RTD/Node.ts +32 -34
  327. package/source/RTD/Route.ts +18 -21
  328. package/source/RTD/Tree.ts +18 -18
  329. package/source/RTD/factory.ts +13 -16
  330. package/source/RTD/segment.ts +12 -10
  331. package/source/RTD/syntax/parse.test.ts +12 -6
  332. package/source/RTD/syntax/parse.ts +30 -26
  333. package/source/RTD/syntax/types.ts +17 -1
  334. package/source/RTD/walk.test.ts +64 -27
  335. package/source/Remotes.test.ts +25 -4
  336. package/source/Remotes.ts +9 -4
  337. package/source/Tenant.ts +12 -12
  338. package/source/deployment.ts +20 -20
  339. package/source/directives/auth/Anonymous.test.ts +8 -2
  340. package/source/directives/auth/Anonymous.ts +5 -8
  341. package/source/directives/auth/Anyone.ts +3 -3
  342. package/source/directives/auth/Assert.ts +10 -10
  343. package/source/directives/auth/Authorization.ts +83 -69
  344. package/source/directives/auth/Delegate.test.ts +2 -2
  345. package/source/directives/auth/Delegate.ts +8 -10
  346. package/source/directives/auth/Echo.ts +5 -8
  347. package/source/directives/auth/Federation.ts +30 -21
  348. package/source/directives/auth/Id.ts +7 -4
  349. package/source/directives/auth/Incept.ts +32 -26
  350. package/source/directives/auth/Input.ts +36 -20
  351. package/source/directives/auth/Role.test.ts +49 -23
  352. package/source/directives/auth/Role.ts +29 -22
  353. package/source/directives/auth/Rule.ts +13 -8
  354. package/source/directives/auth/Scheme.ts +7 -7
  355. package/source/directives/auth/create.ts +1 -1
  356. package/source/directives/auth/schemes.ts +1 -1
  357. package/source/directives/auth/split.ts +2 -3
  358. package/source/directives/auth/types.ts +5 -2
  359. package/source/directives/cache/Cache.ts +44 -9
  360. package/source/directives/cache/Control.ts +25 -26
  361. package/source/directives/cache/Exact.ts +1 -1
  362. package/source/directives/cache/etag.ts +38 -0
  363. package/source/directives/cors/CORS.ts +9 -7
  364. package/source/directives/dev/Development.ts +3 -4
  365. package/source/directives/dev/Faulty.ts +11 -6
  366. package/source/directives/dev/Sleep.ts +5 -7
  367. package/source/directives/dev/Stub.ts +2 -2
  368. package/source/directives/dev/Throw.ts +2 -2
  369. package/source/directives/flow/Compose.ts +26 -20
  370. package/source/directives/flow/Fetch.ts +15 -15
  371. package/source/directives/flow/Flow.ts +9 -8
  372. package/source/directives/index.ts +11 -2
  373. package/source/directives/io/IO.ts +29 -20
  374. package/source/directives/io/Input.ts +9 -12
  375. package/source/directives/io/Output.ts +20 -23
  376. package/source/directives/io/Status.test.ts +12 -8
  377. package/source/directives/io/Status.ts +9 -8
  378. package/source/directives/io/Throttle.ts +6 -7
  379. package/source/directives/io/lib/throttle/Configuration.test.ts +32 -23
  380. package/source/directives/io/lib/throttle/Configuration.ts +14 -9
  381. package/source/directives/io/lib/throttle/Keys.ts +15 -10
  382. package/source/directives/io/lib/throttle/Quotas.test.ts +33 -17
  383. package/source/directives/io/lib/throttle/Quotas.ts +20 -26
  384. package/source/directives/io/lib/throttle/Sync.test.ts +14 -10
  385. package/source/directives/io/lib/throttle/Sync.ts +9 -12
  386. package/source/directives/io/lib/throttle/Warning.ts +3 -4
  387. package/source/directives/io/lib/throttle/components/IP.ts +4 -5
  388. package/source/directives/io/lib/throttle/components/Identity.ts +1 -1
  389. package/source/directives/io/lib/throttle/components/Path.ts +1 -1
  390. package/source/directives/io/lib/throttle/components/Route.ts +2 -2
  391. package/source/directives/io/lib/throttle/components/Segment.ts +2 -2
  392. package/source/directives/io/lib/throttle/conditions/Status.ts +2 -2
  393. package/source/directives/io/schemas.test.ts +12 -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 +25 -20
  397. package/source/directives/map/Headers.ts +17 -13
  398. package/source/directives/map/Language.ts +8 -5
  399. package/source/directives/map/Languages.ts +9 -3
  400. package/source/directives/map/Map.ts +25 -12
  401. package/source/directives/map/Mapping.ts +9 -6
  402. package/source/directives/map/Properties.ts +1 -1
  403. package/source/directives/map/Segments.ts +22 -15
  404. package/source/directives/mcp/MCP.ts +14 -5
  405. package/source/directives/mcp/Tool.test.ts +42 -6
  406. package/source/directives/mcp/Tool.ts +38 -7
  407. package/source/directives/oauth/Discovery.ts +7 -11
  408. package/source/directives/oauth/documents.ts +11 -14
  409. package/source/directives/octets/Context.ts +6 -3
  410. package/source/directives/octets/Delete.ts +33 -25
  411. package/source/directives/octets/Directive.ts +5 -1
  412. package/source/directives/octets/Get.ts +13 -21
  413. package/source/directives/octets/Octets.ts +20 -15
  414. package/source/directives/octets/Put.ts +62 -27
  415. package/source/directives/octets/Workflow.ts +18 -12
  416. package/source/directives/octets/bytes.ts +1 -1
  417. package/source/directives/octets/schemas.test.ts +8 -14
  418. package/source/directives/octets/workflows/Execution.ts +19 -21
  419. package/source/directives/octets/workflows/Workflow.ts +10 -7
  420. package/source/directives/require/Headers.ts +3 -4
  421. package/source/directives/require/Require.ts +3 -4
  422. package/source/exceptions.ts +19 -12
  423. package/source/index.ts +1 -1
  424. package/source/manifest.test.ts +4 -1
  425. package/source/manifest.ts +19 -13
  426. package/source/octets.d.ts +1 -1
  427. package/source/root.ts +3 -2
  428. package/source/schemas.test.ts +17 -3
  429. package/transpiled/Branch.js.map +1 -1
  430. package/transpiled/Composition.js.map +1 -1
  431. package/transpiled/Directive.js +6 -2
  432. package/transpiled/Directive.js.map +1 -1
  433. package/transpiled/Endpoint.d.ts +0 -2
  434. package/transpiled/Endpoint.js +11 -52
  435. package/transpiled/Endpoint.js.map +1 -1
  436. package/transpiled/Factory.d.ts +2 -1
  437. package/transpiled/Factory.js +1 -0
  438. package/transpiled/Factory.js.map +1 -1
  439. package/transpiled/Gateway.d.ts +2 -1
  440. package/transpiled/Gateway.js +24 -15
  441. package/transpiled/Gateway.js.map +1 -1
  442. package/transpiled/HTTP/Context.d.ts +0 -3
  443. package/transpiled/HTTP/Context.js +7 -9
  444. package/transpiled/HTTP/Context.js.map +1 -1
  445. package/transpiled/HTTP/Probe.js.map +1 -1
  446. package/transpiled/HTTP/Server.js +19 -4
  447. package/transpiled/HTTP/Server.js.map +1 -1
  448. package/transpiled/HTTP/Timing.d.ts +1 -2
  449. package/transpiled/HTTP/Timing.js +2 -10
  450. package/transpiled/HTTP/Timing.js.map +1 -1
  451. package/transpiled/HTTP/address.js.map +1 -1
  452. package/transpiled/HTTP/exceptions.js.map +1 -1
  453. package/transpiled/HTTP/formats/form.js.map +1 -1
  454. package/transpiled/HTTP/formats/json.js.map +1 -1
  455. package/transpiled/HTTP/formats/msgpack.js.map +1 -1
  456. package/transpiled/HTTP/formats/text.js.map +1 -1
  457. package/transpiled/HTTP/formats/yaml.js +4 -1
  458. package/transpiled/HTTP/formats/yaml.js.map +1 -1
  459. package/transpiled/HTTP/messages.d.ts +3 -2
  460. package/transpiled/HTTP/messages.js +1 -43
  461. package/transpiled/HTTP/messages.js.map +1 -1
  462. package/transpiled/Interception.js.map +1 -1
  463. package/transpiled/Introspection.d.ts +2 -0
  464. package/transpiled/Introspection.js +13 -2
  465. package/transpiled/Introspection.js.map +1 -1
  466. package/transpiled/MCP/Server.js +15 -4
  467. package/transpiled/MCP/Server.js.map +1 -1
  468. package/transpiled/MCP/discover.js.map +1 -1
  469. package/transpiled/MCP/errors.js.map +1 -1
  470. package/transpiled/MCP/schema.js +1 -1
  471. package/transpiled/MCP/schema.js.map +1 -1
  472. package/transpiled/MCP/tools.js +10 -6
  473. package/transpiled/MCP/tools.js.map +1 -1
  474. package/transpiled/MCP/types.d.ts +3 -1
  475. package/transpiled/Mapping.d.ts +2 -2
  476. package/transpiled/Mapping.js +3 -5
  477. package/transpiled/Mapping.js.map +1 -1
  478. package/transpiled/Query.d.ts +6 -2
  479. package/transpiled/Query.js +23 -8
  480. package/transpiled/Query.js.map +1 -1
  481. package/transpiled/RPC/Context.js +0 -7
  482. package/transpiled/RPC/Context.js.map +1 -1
  483. package/transpiled/RPC/Dispatcher.js +4 -1
  484. package/transpiled/RPC/Dispatcher.js.map +1 -1
  485. package/transpiled/RPC/errors.js.map +1 -1
  486. package/transpiled/RPC/names.d.ts +3 -2
  487. package/transpiled/RPC/names.js +1 -1
  488. package/transpiled/RPC/names.js.map +1 -1
  489. package/transpiled/RTD/Directives.d.ts +1 -1
  490. package/transpiled/RTD/Method.js +1 -3
  491. package/transpiled/RTD/Method.js.map +1 -1
  492. package/transpiled/RTD/Node.js +5 -4
  493. package/transpiled/RTD/Node.js.map +1 -1
  494. package/transpiled/RTD/Route.js +4 -1
  495. package/transpiled/RTD/Route.js.map +1 -1
  496. package/transpiled/RTD/Tree.js +1 -1
  497. package/transpiled/RTD/Tree.js.map +1 -1
  498. package/transpiled/RTD/factory.js.map +1 -1
  499. package/transpiled/RTD/segment.js.map +1 -1
  500. package/transpiled/RTD/syntax/parse.js.map +1 -1
  501. package/transpiled/RTD/syntax/types.d.ts +6 -0
  502. package/transpiled/RTD/syntax/types.js +10 -1
  503. package/transpiled/RTD/syntax/types.js.map +1 -1
  504. package/transpiled/Remotes.js.map +1 -1
  505. package/transpiled/Tenant.d.ts +1 -1
  506. package/transpiled/Tenant.js.map +1 -1
  507. package/transpiled/deployment.d.ts +3 -0
  508. package/transpiled/deployment.js +6 -1
  509. package/transpiled/deployment.js.map +1 -1
  510. package/transpiled/directives/auth/Anonymous.js +1 -3
  511. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  512. package/transpiled/directives/auth/Anyone.js.map +1 -1
  513. package/transpiled/directives/auth/Assert.js.map +1 -1
  514. package/transpiled/directives/auth/Authorization.js +7 -3
  515. package/transpiled/directives/auth/Authorization.js.map +1 -1
  516. package/transpiled/directives/auth/Delegate.js.map +1 -1
  517. package/transpiled/directives/auth/Echo.js +1 -3
  518. package/transpiled/directives/auth/Echo.js.map +1 -1
  519. package/transpiled/directives/auth/Federation.js +3 -7
  520. package/transpiled/directives/auth/Federation.js.map +1 -1
  521. package/transpiled/directives/auth/Id.js.map +1 -1
  522. package/transpiled/directives/auth/Incept.js +1 -1
  523. package/transpiled/directives/auth/Incept.js.map +1 -1
  524. package/transpiled/directives/auth/Input.js.map +1 -1
  525. package/transpiled/directives/auth/Role.js.map +1 -1
  526. package/transpiled/directives/auth/Rule.js.map +1 -1
  527. package/transpiled/directives/auth/Scheme.js +1 -2
  528. package/transpiled/directives/auth/Scheme.js.map +1 -1
  529. package/transpiled/directives/auth/create.js.map +1 -1
  530. package/transpiled/directives/auth/schemes.js.map +1 -1
  531. package/transpiled/directives/auth/split.js.map +1 -1
  532. package/transpiled/directives/auth/types.d.ts +3 -1
  533. package/transpiled/directives/cache/Cache.js +28 -2
  534. package/transpiled/directives/cache/Cache.js.map +1 -1
  535. package/transpiled/directives/cache/Control.js +1 -1
  536. package/transpiled/directives/cache/Control.js.map +1 -1
  537. package/transpiled/directives/cache/etag.d.ts +10 -0
  538. package/transpiled/directives/cache/etag.js +30 -0
  539. package/transpiled/directives/cache/etag.js.map +1 -0
  540. package/transpiled/directives/cors/CORS.js.map +1 -1
  541. package/transpiled/directives/dev/Development.js.map +1 -1
  542. package/transpiled/directives/dev/Faulty.js.map +1 -1
  543. package/transpiled/directives/dev/Sleep.js.map +1 -1
  544. package/transpiled/directives/dev/Stub.js.map +1 -1
  545. package/transpiled/directives/dev/Throw.js.map +1 -1
  546. package/transpiled/directives/flow/Compose.js +7 -3
  547. package/transpiled/directives/flow/Compose.js.map +1 -1
  548. package/transpiled/directives/flow/Fetch.js.map +1 -1
  549. package/transpiled/directives/flow/Flow.js.map +1 -1
  550. package/transpiled/directives/index.js +11 -1
  551. package/transpiled/directives/index.js.map +1 -1
  552. package/transpiled/directives/io/IO.d.ts +1 -1
  553. package/transpiled/directives/io/IO.js.map +1 -1
  554. package/transpiled/directives/io/Input.js +1 -1
  555. package/transpiled/directives/io/Input.js.map +1 -1
  556. package/transpiled/directives/io/Output.js +3 -3
  557. package/transpiled/directives/io/Output.js.map +1 -1
  558. package/transpiled/directives/io/Status.js.map +1 -1
  559. package/transpiled/directives/io/Throttle.js +1 -1
  560. package/transpiled/directives/io/Throttle.js.map +1 -1
  561. package/transpiled/directives/io/lib/throttle/Configuration.js +8 -2
  562. package/transpiled/directives/io/lib/throttle/Configuration.js.map +1 -1
  563. package/transpiled/directives/io/lib/throttle/Keys.js.map +1 -1
  564. package/transpiled/directives/io/lib/throttle/Quotas.js +4 -3
  565. package/transpiled/directives/io/lib/throttle/Quotas.js.map +1 -1
  566. package/transpiled/directives/io/lib/throttle/Sync.d.ts +1 -1
  567. package/transpiled/directives/io/lib/throttle/Sync.js.map +1 -1
  568. package/transpiled/directives/io/lib/throttle/Warning.js.map +1 -1
  569. package/transpiled/directives/io/lib/throttle/components/IP.js.map +1 -1
  570. package/transpiled/directives/io/lib/throttle/components/Identity.js.map +1 -1
  571. package/transpiled/directives/io/lib/throttle/components/Path.js.map +1 -1
  572. package/transpiled/directives/io/lib/throttle/components/Route.js.map +1 -1
  573. package/transpiled/directives/io/lib/throttle/components/Segment.js.map +1 -1
  574. package/transpiled/directives/io/lib/throttle/conditions/Status.js.map +1 -1
  575. package/transpiled/directives/map/Authority.js.map +1 -1
  576. package/transpiled/directives/map/Buffer.js.map +1 -1
  577. package/transpiled/directives/map/Claims.js.map +1 -1
  578. package/transpiled/directives/map/Headers.js.map +1 -1
  579. package/transpiled/directives/map/Language.js.map +1 -1
  580. package/transpiled/directives/map/Languages.js.map +1 -1
  581. package/transpiled/directives/map/Map.js.map +1 -1
  582. package/transpiled/directives/map/Mapping.js.map +1 -1
  583. package/transpiled/directives/map/Properties.js.map +1 -1
  584. package/transpiled/directives/map/Segments.js.map +1 -1
  585. package/transpiled/directives/mcp/MCP.js +7 -1
  586. package/transpiled/directives/mcp/MCP.js.map +1 -1
  587. package/transpiled/directives/mcp/Tool.d.ts +6 -1
  588. package/transpiled/directives/mcp/Tool.js +16 -3
  589. package/transpiled/directives/mcp/Tool.js.map +1 -1
  590. package/transpiled/directives/oauth/Discovery.js.map +1 -1
  591. package/transpiled/directives/oauth/documents.js.map +1 -1
  592. package/transpiled/directives/octets/Context.js +1 -1
  593. package/transpiled/directives/octets/Context.js.map +1 -1
  594. package/transpiled/directives/octets/Delete.js.map +1 -1
  595. package/transpiled/directives/octets/Directive.js.map +1 -1
  596. package/transpiled/directives/octets/Get.js.map +1 -1
  597. package/transpiled/directives/octets/Octets.js +1 -1
  598. package/transpiled/directives/octets/Octets.js.map +1 -1
  599. package/transpiled/directives/octets/Put.js.map +1 -1
  600. package/transpiled/directives/octets/Workflow.js.map +1 -1
  601. package/transpiled/directives/octets/bytes.js.map +1 -1
  602. package/transpiled/directives/octets/workflows/Execution.js +1 -2
  603. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  604. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  605. package/transpiled/directives/require/Headers.js.map +1 -1
  606. package/transpiled/directives/require/Require.js.map +1 -1
  607. package/transpiled/exceptions.js.map +1 -1
  608. package/transpiled/index.d.ts +1 -1
  609. package/transpiled/index.js +1 -1
  610. package/transpiled/index.js.map +1 -1
  611. package/transpiled/manifest.js +5 -1
  612. package/transpiled/manifest.js.map +1 -1
  613. package/transpiled/root.js.map +1 -1
  614. package/tsconfig.tsbuildinfo +1 -1
  615. package/CHANGELOG.md +0 -541
  616. package/source/redact.test.ts +0 -27
  617. package/source/redact.ts +0 -21
  618. package/transpiled/redact.d.ts +0 -5
  619. package/transpiled/redact.js +0 -17
  620. package/transpiled/redact.js.map +0 -1
package/CHANGELOG.md DELETED
@@ -1,541 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- # [1.0.0-alpha.284](https://github.com/toa-io/toa/compare/v1.0.0-alpha.283...v1.0.0-alpha.284) (2026-09-05)
7
-
8
- ### Bug Fixes
9
-
10
- * **build:** an operations directory holds modules and nothing else ([21a8ca1](https://github.com/toa-io/toa/commit/21a8ca19f1c45aef6cbb443ada0a909d325e76e8))
11
- * **exposition:** a complete result says how long it may be held ([484613d](https://github.com/toa-io/toa/commit/484613d6fa8b42ad457773d9b3f536513c521853))
12
- * **exposition:** a Principal holds its Role in the Token that creates it ([250907f](https://github.com/toa-io/toa/commit/250907f091cc7b10e8d5ff9ad8f6893a6334174f))
13
- * **exposition:** a route parameter is what it means, not how it was spelled ([86bdbdc](https://github.com/toa-io/toa/commit/86bdbdc81f5a707c71876177ae0f33847c9a8b72))
14
- * **exposition:** a tool says what its query does, not what carries it ([75470ac](https://github.com/toa-io/toa/commit/75470acde4cea101d7dbc14396a455fc6e5f3fde))
15
- * **exposition:** an issuer is named over https ([3e2e090](https://github.com/toa-io/toa/commit/3e2e09046170a2235ea7ba7f26e8606b23e404f9))
16
- * **exposition:** what a directive fills from the identity is not the caller's to send ([c7f1658](https://github.com/toa-io/toa/commit/c7f16580a59aa73903a5ff5e11ac1322f94fd877))
17
- * **exposition:** what a tool call was refused for is the model's to correct ([030750c](https://github.com/toa-io/toa/commit/030750caec46ef888260704f9df1b201a661fffd))
18
- * **exposition:** what an operation states it is, is not what a method is ([82194f0](https://github.com/toa-io/toa/commit/82194f0dcd68e3699440abf7d0a8976749cee723))
19
- * run the feature suites on a fresh checkout ([712a03d](https://github.com/toa-io/toa/commit/712a03d37cca40709e919f9cc996a3d67bea2098))
20
-
21
- ### Features
22
-
23
- * an operation states what it is ([b5e2f66](https://github.com/toa-io/toa/commit/b5e2f66c8bf67924e2eaaaa11f283dfb4d810981))
24
- * **exposition:** a method describes itself through its directives ([a0cb486](https://github.com/toa-io/toa/commit/a0cb48651b5893b5504e0c2f74dac260d23e899f))
25
- * **exposition:** a method is a tool where it says so ([4948ca1](https://github.com/toa-io/toa/commit/4948ca1248b726800fae305b5b8c2b4016f197af))
26
- * **exposition:** a procedure is named in what a model can call ([4a34db7](https://github.com/toa-io/toa/commit/4a34db7fea1fc002c4f47a94d7410224e9afb17f))
27
- * **exposition:** a request may carry several calls ([d277207](https://github.com/toa-io/toa/commit/d27720758ef75874b32a09c207e2036a72f65a88))
28
- * **exposition:** a resource answers as a procedure ([9f231b7](https://github.com/toa-io/toa/commit/9f231b78b1713ecd3bcdf5f8b531f232d610e6fe))
29
- * **exposition:** every method is a tool, and a procedure is not a request ([06b6759](https://github.com/toa-io/toa/commit/06b675929318826ef714989dc97c63b0ab85bbef))
30
- * **exposition:** the gateway says which endpoints it serves ([1a0029b](https://github.com/toa-io/toa/commit/1a0029bc2df3d759dbe2bbee6ffdf9b2a00c411f))
31
- * **exposition:** the Model Context Protocol ([a31b2e1](https://github.com/toa-io/toa/commit/a31b2e146e7c20372f72a7f176946ed16e269266))
32
- * **exposition:** what a tool is, is the value that publishes it ([8e77119](https://github.com/toa-io/toa/commit/8e771192cefcb11d0c78ac1cf87d3120f74ce868))
33
-
34
-
35
- # [1.0.0-alpha.283](https://github.com/toa-io/toa/compare/v1.0.0-alpha.282...v1.0.0-alpha.283) (2026-09-04)
36
-
37
- ### Bug Fixes
38
-
39
- * **cli:** an assignment hands back the new state, not nothing ([91304e9](https://github.com/toa-io/toa/commit/91304e9e9a3bba5933b7421b7a0ffff0c2e47795))
40
- * **exposition:** declare error codes as the operations return them ([a9007c0](https://github.com/toa-io/toa/commit/a9007c0dd1b199429af50fb57441281bb19ff971))
41
- * **exposition:** declare the errors the built-in components return ([27200c3](https://github.com/toa-io/toa/commit/27200c348ab09068d58c52c3e83208cb29cd7290))
42
- * **exposition:** look up an authority by a key an object does not answer ([cea57f5](https://github.com/toa-io/toa/commit/cea57f5010530b13fd20becfc69f2b243da95544))
43
- * **exposition:** read the configured token lifetime in seconds ([60486c6](https://github.com/toa-io/toa/commit/60486c6c2d2ba97caa9d01ab755351c99a156806))
44
- * **exposition:** reject a malformed Bearer rather than failing on it ([2b1a46d](https://github.com/toa-io/toa/commit/2b1a46d5b3d2abb64703b10b1543749baeac7596))
45
- * **storages:** take `Maybe` from core, not from the deprecated package ([bcaeeb3](https://github.com/toa-io/toa/commit/bcaeeb3c76c89af34e94ff569a210d21b7e87f64))
46
-
47
- ### Features
48
-
49
- * **cli:** a type module is declarations, so it sits beside a component's source ([ca755d9](https://github.com/toa-io/toa/commit/ca755d93d1a04b7697dd0dd12eb59e5b6e2a71d1))
50
- * **cli:** generate an application's types from its manifests ([195ac94](https://github.com/toa-io/toa/commit/195ac94de0d8c9de995847599511782c399768a5))
51
- * **cli:** the built-in components ship types generated from their manifests ([bd7db9e](https://github.com/toa-io/toa/commit/bd7db9e88e46c1060223761898932239127f389a))
52
- * **exposition:** grant a client what a user allowed it ([95ef0cf](https://github.com/toa-io/toa/commit/95ef0cf6bcbb43580710ff9ce3e1d9e33c0f4963))
53
- * **exposition:** know what an OAuth client is ([5e101c8](https://github.com/toa-io/toa/commit/5e101c865f4bb75c01e7b5c637bfcd41f84c17e4))
54
- * **exposition:** let an operation state the status of its reply ([427864d](https://github.com/toa-io/toa/commit/427864d88f1c33a762b4b0f33489ad17eb7fb470))
55
- * **exposition:** let several providers claim one authentication scheme ([514177b](https://github.com/toa-io/toa/commit/514177b546fbd9fafe35c178cb38774f3e2f862a))
56
- * **exposition:** read a request sent as a form ([02fac86](https://github.com/toa-io/toa/commit/02fac86af392525fa374f16f51f1b3b07365b042))
57
- * **exposition:** serve OAuth discovery and challenge with it ([418890c](https://github.com/toa-io/toa/commit/418890cb30eb1dd041073a75f971b5820ae40a95))
58
- * **exposition:** set an exact cache-control whatever the method ([22f939a](https://github.com/toa-io/toa/commit/22f939a7a855d5ae2cfebb517caec98b8ca95de0))
59
- * **extensions:** an extension declares what it puts on a component's context ([133bc2a](https://github.com/toa-io/toa/commit/133bc2aad1e45a2d4aa68a08a5e44ca48d3b7414))
60
-
61
-
62
- # [1.0.0-alpha.282](https://github.com/toa-io/toa/compare/v1.0.0-alpha.281...v1.0.0-alpha.282) (2026-09-03)
63
-
64
- ### Bug Fixes
65
-
66
- * **exposition:** bouncer requires ip ([d470494](https://github.com/toa-io/toa/commit/d470494fdb42372a434d945205e93e27bca8880b))
67
- * **exposition:** bound OTP guessing ([44b5a6a](https://github.com/toa-io/toa/commit/44b5a6a1f743cca4bd80b0b7e9f9691af83fb2ab))
68
- * **exposition:** do not delegate the right to delegate ([cf1f83f](https://github.com/toa-io/toa/commit/cf1f83f6bb1051b8b399c632bb81f08a2fd9fb14))
69
- * **exposition:** keep credentials out of the logs ([17a5529](https://github.com/toa-io/toa/commit/17a55296ec530b6f3c3a1d4e746499e52ef1c126))
70
- * **exposition:** leave custom tokens unrefreshed ([ebec3d5](https://github.com/toa-io/toa/commit/ebec3d5ea421e8c780f7c7afd781c588851ef8fa))
71
- * **exposition:** match token permissions on the routed path ([6c888f5](https://github.com/toa-io/toa/commit/6c888f5e51a379c0cdf46e8e3b3b0fa406328de6))
72
- * **exposition:** name the client address header in the authentication annotation ([433ca3a](https://github.com/toa-io/toa/commit/433ca3ae19bc2c68fa26f6205e559ea7e652fcb9))
73
- * **exposition:** never key on the connection address ([ad719af](https://github.com/toa-io/toa/commit/ad719afb89455a9cbdb97f144928b233aababb73))
74
- * **exposition:** quote criteria values built from requests ([af3bf79](https://github.com/toa-io/toa/commit/af3bf794d8668a45a4390ad16ffa04aa4fe078e8))
75
- * **exposition:** read roles again when a token is refreshed ([96c59ca](https://github.com/toa-io/toa/commit/96c59cae39a1b023e6b2b05720ea0682d4c746ad))
76
- * **exposition:** read the client address from a header the deployment names ([216c2d8](https://github.com/toa-io/toa/commit/216c2d8f21bdb67c7d4387708c80f806f1c72360))
77
- * **exposition:** refuse rejected credentials before inception ([48e76a8](https://github.com/toa-io/toa/commit/48e76a8f421b95492d256b5c7a9ca61f71f0d7fd))
78
- * **exposition:** require the audience of a trusted issuer ([0d13604](https://github.com/toa-io/toa/commit/0d13604e3707ed2fcac01500beb27d992314c549))
79
- * **exposition:** resolve an authentication scheme by its own name only ([ae116d1](https://github.com/toa-io/toa/commit/ae116d1813fc1e5a42b5263daedb752703eb08f0))
80
- * **exposition:** resolve the client address once, into the request context ([2f36347](https://github.com/toa-io/toa/commit/2f36347d948bab0c421ff63105312549fffc660a))
81
- * **exposition:** revoke custom tokens through their keys ([359d882](https://github.com/toa-io/toa/commit/359d8825315fce010ea8ac3700d2778b48362f72))
82
- * **exposition:** revoke custom tokens when a role is revoked ([191a0c6](https://github.com/toa-io/toa/commit/191a0c603ef53dcab5ccd005dd7296d9c9bfaa0b))
83
- * **exposition:** scope the principal to an authority ([98a0d36](https://github.com/toa-io/toa/commit/98a0d36267523eb1a1aa58742744cd39a21e94e9))
84
- * **exposition:** split Basic credentials at the first colon ([596e5dc](https://github.com/toa-io/toa/commit/596e5dc2e6e589007dc7914374e1592ecc71c997))
85
- * **exposition:** validate the request authority ([68686c9](https://github.com/toa-io/toa/commit/68686c9340effb148532607caa1abbaaa5dc0519))
86
-
87
- ### Features
88
-
89
- * **core:** a Host for extensions ([6315eac](https://github.com/toa-io/toa/commit/6315eac1e9fb05be472272de06385c54ad5934ce))
90
- * **exposition:** meter failed authentications per address ([98b07d3](https://github.com/toa-io/toa/commit/98b07d307815ee4a2a0f30f189cbcfc9d78a4d62))
91
-
92
-
93
- # [1.0.0-alpha.278](https://github.com/toa-io/toa/compare/v1.0.0-alpha.277...v1.0.0-alpha.278) (2026-09-03)
94
-
95
- **Note:** Version bump only for package @toa.io/extensions.exposition
96
-
97
-
98
-
99
-
100
-
101
- # [1.0.0-alpha.277](https://github.com/toa-io/toa/compare/v1.0.0-alpha.276...v1.0.0-alpha.277) (2026-09-03)
102
-
103
- ### Bug Fixes
104
-
105
- * drop the build output that landed beside the sources ([a724f69](https://github.com/toa-io/toa/commit/a724f6921190e5c9d945e33c6035bb12d832e5c8))
106
- * read a manifest the way js-yaml read one before ([fcea1b2](https://github.com/toa-io/toa/commit/fcea1b21996d6efa6c3198acbfc9f70f1ce0c35c))
107
- * settle what the module loader made asynchronous ([d4ab9df](https://github.com/toa-io/toa/commit/d4ab9dfb09e382da311dba08f52214e7645f4a6c))
108
-
109
-
110
- # [1.0.0-alpha.276](https://github.com/toa-io/toa/compare/v1.0.0-alpha.275...v1.0.0-alpha.276) (2026-09-03)
111
-
112
-
113
- ### Bug Fixes
114
-
115
- * **exposition:** give a component `host` over HTTP/2 ([7635142](https://github.com/toa-io/toa/commit/7635142fccdd3a755b76c6b2de670bfee6da2d19))
116
- * **exposition:** move the readiness probe off the Telemetry port ([4be9385](https://github.com/toa-io/toa/commit/4be93850f7eec65ded03a0a3ba3090003e40cb5c))
117
-
118
-
119
-
120
-
121
-
122
- # [1.0.0-alpha.274](https://github.com/toa-io/toa/compare/v1.0.0-alpha.273...v1.0.0-alpha.274) (2026-09-02)
123
-
124
-
125
- * Configuration is served by a component, followed live, and kept per epoch (#1017) ([b05997d](https://github.com/toa-io/toa/commit/b05997d3adb784f238a222cb46878b23859339a2)), closes [#1017](https://github.com/toa-io/toa/issues/1017)
126
-
127
-
128
- ### BREAKING CHANGES
129
-
130
- * a secret configuration value is an object, not a string;
131
- read it with `unwrap()`.
132
-
133
- Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
134
-
135
- * test(configuration): wait for the second round rather than assume it
136
-
137
- Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
138
-
139
- * refactor(configuration)!: read a secret with its own unwrap
140
-
141
- Component code depends on no Toa package, so a secret is read as
142
- `context.configuration.apiKey.unwrap()` and the helper in `@toa.io/generic`
143
- goes. A value a component reads as a secret is therefore given as a reference:
144
- `identity.basic` no longer defaults `pepper` to `''`, the development context
145
- and the feature harness give the token keys, the federation client secret and
146
- the signing key as references, and the harness has a step for the secrets a
147
- scenario refers to. CONTRIBUTING states the rule.
148
- * `identity.basic` `pepper` has no default; a value read as a
149
- secret must be given as a `$NAME` reference.
150
-
151
- Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
152
-
153
- * feat(configuration): list the configurations
154
-
155
- `configuration.values.list` returns every component's configuration for its
156
- deployed epoch, by component name, and `GET /configuration/values/` serves it
157
- behind `system:configuration:get`.
158
-
159
- Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
160
-
161
- * fix(exposition): write a value in YAML the way its toJSON says
162
-
163
- A redacted secret in a reply was dumped as an empty object; it is written as
164
- `<REDACTED>`, as JSON and msgpack already write it.
165
-
166
- Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
167
-
168
- * test(configuration): a secret is an object, and stays redacted in a reply
169
-
170
- A component with `{ a: 1, b: $SECRET_B }` returns its configuration as
171
- `{ a: 1, b: '<REDACTED>' }` and the secret itself through `unwrap()`. The reply
172
- step also accepts a reply as a caller across a process boundary receives it,
173
- since a call within the process hands the object over as it is.
174
-
175
- Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
176
-
177
- * chore(schemas): bump the dependencies
178
-
179
- ajv 8.18.0 to 8.20.0, ajv-formats 2.1.1 to 3.0.1, better-ajv-errors 1.2.0
180
- to 2.0.3, fast-glob 3.2.12 to 3.3.3 and js-yaml 4.3.1 to 5.4.1 — the version
181
- exposition already uses. The three majors keep the CommonJS entry points this
182
- library calls: ajv-formats as a function, better-ajv-errors as .default, and
183
- js-yaml's load.
184
-
185
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
186
-
187
- * feat(configuration)!: serve the schema with the value
188
-
189
- GET /configuration/values/:component/ answers { configuration, schema, epoch }
190
- where it answered with the configuration alone, and list carries the schema of
191
- every component. Nothing reads a configuration without needing to know what it
192
- is checked against, and the schema was only ever on the values service.
193
-
194
- An epoch the deployment does not know has no schema; the value stored for it
195
- is still returned.
196
-
197
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
198
-
199
- * feat(configuration): publish a configuration UI
200
-
201
- The values service serves a page at /.configuration on port 8003, out of the
202
- directory ui builds: the configured components, a screen per component showing
203
- what it holds now, and a dialog creating the next one. Reading needs
204
- system:configuration:get and creating needs system:configuration:create.
205
-
206
- A configuration is immutable, so the dialog opens on the current value and what
207
- is left out of it is left out of the component. The editor takes YAML, the
208
- schema is applied before anything is sent, and a secret is a reference the page
209
- never shows.
210
-
211
- The page is always published: the annotation is the per-component values map
212
- and has nowhere to carry a switch.
213
-
214
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
215
-
216
- * feat(introspection): link a component to its configuration
217
-
218
- A card carrying @toa.io/extensions.configuration reads that extension as a link
219
- to the configuration UI rather than as a name, and configuration joins the
220
- namespaces the runtime provides, so its components band under System.
221
-
222
- Deployed, both pages sit behind the same ingress and the path alone is right;
223
- locally each console has its own port.
224
-
225
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
226
-
227
- * feat(introspection): scroll the map, zoom with a modifier
228
-
229
- The map was grabbed to move and zoomed with a bare wheel, which is neither what
230
- a page does nor what the wheel does anywhere else. A plain scroll now pans on
231
- both axes and the wheel scales only with the modifier held — a trackpad pinch
232
- arrives as one of those on every platform.
233
-
234
- A card's own scrollable box keeps its wheel, in both paths.
235
-
236
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
237
-
238
- * refactor(introspection): centre the filter in the header
239
-
240
- The sides take equal space, which is what leaves the filter between them.
241
- Neither side may shrink under what it holds, or the tabs run out from under
242
- their side and across the filter, and the filter across the sign-out button;
243
- the title gives way instead.
244
-
245
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
246
-
247
- * fix(configuration): connect the UI to the values service
248
-
249
- The page was declared as a dependency from inside `open`, and a connector connects
250
- what it depends on before `open` runs — so the server was constructed and never
251
- listened. Nothing caught it: the UI feature builds the server itself.
252
-
253
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
254
-
255
- * feat(configuration)!: reserve resources in the annotation
256
-
257
- The values service deploys like any other and must state what it may take, but the
258
- annotation is a map of component ids and had nowhere to put it — so `toa env` failed
259
- for every context using configuration unless it declared a context-wide `resources`.
260
-
261
- `resources` is now the service's own, read the way `introspection` and `realtime` read
262
- theirs. A component actually named `resources` is written `default.resources`, which is
263
- what its id is anyway.
264
-
265
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
266
-
267
- * feat(configuration): follow the system colour scheme
268
-
269
- The dark tokens were behind a `.dark` class nothing sets, and the `dark:` variant was
270
- pointed at that class too — so a component's own dark styling never applied either.
271
- Both now key off `prefers-color-scheme`, and `color-scheme` hands the native chrome
272
- the same answer.
273
-
274
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
275
-
276
- * feat(introspection): follow the system colour scheme
277
-
278
- The dark tokens were behind a `.dark` class nothing sets, and the `dark:` variant was
279
- pointed at that class too — so a component's own dark styling never applied either.
280
- Both now key off `prefers-color-scheme`, and `color-scheme` hands the native chrome
281
- the same answer.
282
-
283
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
284
-
285
- * feat(configuration): present a change as an edit of what is there
286
-
287
- A configuration is immutable and creating one replaces the whole of it, but the dialog
288
- opens on the current value and the page never shows an older one — so what the reader
289
- does is edit. The words follow: Edit rather than New, Update rather than Create, and
290
- the paragraph explaining the model goes, along with the field's label, which the title
291
- above it already said.
292
-
293
- The editor also stayed as wide as its longest line — `field-sizing: content` sizes to
294
- content, and no `max-width` clamps that — so a long value painted outside the dialog.
295
- It is fixed now, the dialog takes the width the screen has rather than a fixed step,
296
- and the band held for errors no longer leaves a gap when there are none.
297
-
298
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
299
-
300
- * feat(configuration): mark a component that keeps a secret
301
-
302
- A key after the name on the row, wherever the configuration holds a reference, however
303
- deep. The predicate reads the same lines the value screen renders, so the two cannot
304
- disagree about what counts as a secret.
305
-
306
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
307
-
308
- * feat(configuration): lead back to the list from the title
309
-
310
- Every address ends in a slash, so the way up is the address itself on the list and one
311
- level above it on a component's screen — which holds wherever the page is mounted.
312
-
313
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
314
-
315
-
316
-
317
-
318
-
319
- # [1.0.0-alpha.273](https://github.com/toa-io/toa/compare/v1.0.0-alpha.272...v1.0.0-alpha.273) (2026-09-02)
320
-
321
-
322
- ### Bug Fixes
323
-
324
- * **exposition:** green the feature suite ([67c25ad](https://github.com/toa-io/toa/commit/67c25ad627db3b3779b09405c5a3c319ecd47722))
325
- * **exposition:** keep a departing tenant from taking a branch back ([64a4eaf](https://github.com/toa-io/toa/commit/64a4eafc9122fabba7b59bf7d559a9d4ef36f773))
326
- * **exposition:** remove redundant inputs ([34763e4](https://github.com/toa-io/toa/commit/34763e417c93c4eecc5f96879a68c2b68bd6b8a8))
327
- * **exposition:** report a refreshed branch at trace ([4f170ef](https://github.com/toa-io/toa/commit/4f170ef529a04755b22494789407305f11ce395e))
328
-
329
-
330
-
331
-
332
-
333
- # [1.0.0-alpha.272](https://github.com/toa-io/toa/compare/v1.0.0-alpha.271...v1.0.0-alpha.272) (2026-09-01)
334
-
335
-
336
- ### Bug Fixes
337
-
338
- * **core:** stop the reply contract from relaxing the declaration ([6222893](https://github.com/toa-io/toa/commit/622289326630b94deff93499d6a851bfaa57c69a))
339
- * **exposition:** close the query string, and tell it about sample ([ba82e61](https://github.com/toa-io/toa/commit/ba82e617f9d6e18b2c01ee68661407a781952443))
340
- * **exposition:** stop a tenant announcing on its way out ([e1926fe](https://github.com/toa-io/toa/commit/e1926fe53186d9044c502e84f5894b6fbce88011))
341
- * **exposition:** stop the throttling ticker before what it calls goes down ([f770740](https://github.com/toa-io/toa/commit/f770740a8359762b10cd456bc64e259415f7ef75))
342
-
343
-
344
- * refactor(exposition)!: meter through the atom ([aa9c8f1](https://github.com/toa-io/toa/commit/aa9c8f16de3f4d315b14c49ff0b4f203053ede2c))
345
-
346
-
347
- ### BREAKING CHANGES
348
-
349
- * `context.stash.meter` is gone; meter through `context.atom` instead.
350
- A deployment that declared a stash for `exposition.stash` can drop it, and needs
351
- `atomicity.redis` set for throttling to reconcile.
352
-
353
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
354
-
355
-
356
-
357
-
358
-
359
- # [1.0.0-alpha.271](https://github.com/toa-io/toa/compare/v1.0.0-alpha.270...v1.0.0-alpha.271) (2026-08-31)
360
-
361
-
362
- ### Bug Fixes
363
-
364
- * **exposition:** ship the stash component's meter operation ([dee5ae4](https://github.com/toa-io/toa/commit/dee5ae43cd34581e10192c071d9dd673213a28c6))
365
-
366
-
367
-
368
-
369
-
370
- # [1.0.0-alpha.270](https://github.com/toa-io/toa/compare/v1.0.0-alpha.269...v1.0.0-alpha.270) (2026-08-31)
371
-
372
-
373
- * feat(exposition)!: throttle by a distributed GCRA ([287eb25](https://github.com/toa-io/toa/commit/287eb254b11339b20ef011deb659eb11f225defe))
374
-
375
-
376
- ### Performance Improvements
377
-
378
- * **exposition:** project io restrictions through a set ([d70b364](https://github.com/toa-io/toa/commit/d70b36478626dd29958a55ebf72f0373e07e34f5))
379
- * **exposition:** stop recomputing per-request what a route fixes ([b52f335](https://github.com/toa-io/toa/commit/b52f335023e58db42a21f1ee6bd99470e8547a2c))
380
- * **exposition:** tag a reply from the body already encoded ([e6ea7d7](https://github.com/toa-io/toa/commit/e6ea7d7b169783becddb2854ae6fb24caf611398))
381
- * **openspan:** create a span only when something records it ([a6efb0e](https://github.com/toa-io/toa/commit/a6efb0eed38393f4c169b067f23d7447f0169bca))
382
-
383
-
384
- ### BREAKING CHANGES
385
-
386
- * `io:throttle` no longer takes `cooldown`, and its schema now
387
- rejects unknown properties, so a declaration carrying one fails at boot instead of
388
- being ignored quietly. Metering earns the budget back rather than locking a key
389
- out, so the lockout is expressed as a rate: `requests: 20, interval: 600` admits a
390
- burst of twenty and then one every thirty seconds, where `requests: 20, interval:
391
- 60, cooldown: 600` used to refuse everything for ten minutes. The stash aspect's
392
- `count` is replaced by `meter`, which takes a batch of keys and debts and answers
393
- what the group has reached.
394
-
395
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
396
-
397
-
398
-
399
-
400
-
401
- # [1.0.0-alpha.269](https://github.com/toa-io/toa/compare/v1.0.0-alpha.268...v1.0.0-alpha.269) (2026-08-30)
402
-
403
-
404
- ### Bug Fixes
405
-
406
- * **exposition:** check input restrictions before directives add to the body ([b37961a](https://github.com/toa-io/toa/commit/b37961aa43b8ea52fbbbfd8d447fd20a71fbbef6))
407
-
408
-
409
-
410
-
411
-
412
- # [1.0.0-alpha.268](https://github.com/toa-io/toa/compare/v1.0.0-alpha.267...v1.0.0-alpha.268) (2026-08-30)
413
-
414
-
415
- ### Bug Fixes
416
-
417
- * **agent:** do not append a content-length a request already declares ([17893e9](https://github.com/toa-io/toa/commit/17893e9bc8c64c744dac2ad7cf057267a0932afb))
418
- * **exposition:** make the allowed CORS headers stable and per-gateway ([2ea3554](https://github.com/toa-io/toa/commit/2ea3554ad61bd4dc9246cebc30cad6cf553dcce5))
419
- * **exposition:** report the entity length on HEAD ([bf20086](https://github.com/toa-io/toa/commit/bf2008672d5f192bdeffa5d7c1d46fef7e06ea7b))
420
- * **exposition:** serialize the error a failed workflow step reports ([c11a3a6](https://github.com/toa-io/toa/commit/c11a3a6ecdf177227679bad590a886753cbdf2a5))
421
- * **exposition:** type the throttle key declaration precisely ([ac7d486](https://github.com/toa-io/toa/commit/ac7d4865f689f1a77f65ed3262da47fd49b62e81))
422
-
423
-
424
-
425
-
426
-
427
- # [1.0.0-alpha.267](https://github.com/toa-io/toa/compare/v1.0.0-alpha.266...v1.0.0-alpha.267) (2026-08-29)
428
-
429
- **Note:** Version bump only for package @toa.io/extensions.exposition
430
-
431
-
432
-
433
-
434
-
435
- # [1.0.0-alpha.266](https://github.com/toa-io/toa/compare/v1.0.0-alpha.265...v1.0.0-alpha.266) (2026-08-29)
436
-
437
- **Note:** Version bump only for package @toa.io/extensions.exposition
438
-
439
-
440
-
441
-
442
-
443
- # [1.0.0-alpha.265](https://github.com/toa-io/toa/compare/v1.0.0-alpha.264...v1.0.0-alpha.265) (2026-08-29)
444
-
445
- **Note:** Version bump only for package @toa.io/extensions.exposition
446
-
447
-
448
-
449
-
450
-
451
- # [1.0.0-alpha.264](https://github.com/toa-io/toa/compare/v1.0.0-alpha.263...v1.0.0-alpha.264) (2026-08-29)
452
-
453
- **Note:** Version bump only for package @toa.io/extensions.exposition
454
-
455
-
456
-
457
-
458
-
459
- # [1.0.0-alpha.263](https://github.com/toa-io/toa/compare/v1.0.0-alpha.262...v1.0.0-alpha.263) (2026-08-29)
460
-
461
-
462
- ### Bug Fixes
463
-
464
- * **exposition:** cancel the discovery settle timeout ([0124c9f](https://github.com/toa-io/toa/commit/0124c9f8956722b967681ac7bd49a26556761e66))
465
-
466
-
467
- ### Performance Improvements
468
-
469
- * **exposition:** let the probe own the startup delay ([1cb8e04](https://github.com/toa-io/toa/commit/1cb8e0459981d0a47c68dce48e17fa1fceb79a61))
470
- * **exposition:** settle discovery as soon as the branches go quiet ([d40bafd](https://github.com/toa-io/toa/commit/d40bafd5b6c71f34a2fcac201697823870460fa5))
471
-
472
-
473
-
474
-
475
-
476
- # [1.0.0-alpha.262](https://github.com/toa-io/toa/compare/v1.0.0-alpha.261...v1.0.0-alpha.262) (2026-08-28)
477
-
478
-
479
- ### Bug Fixes
480
-
481
- * **exposition:** serve endpoints declared in the context annotation ([49da8a4](https://github.com/toa-io/toa/commit/49da8a4234ee987b25023952d0622ce575dfb60c))
482
- * **introspection:** return the whole map over HTTP ([053c0cd](https://github.com/toa-io/toa/commit/053c0cd5c22b1a80bceb23d2cda68ede33a0d1c0))
483
-
484
-
485
- ### Features
486
-
487
- * **core:** identify the origin of a call with `request.source` ([9da6b66](https://github.com/toa-io/toa/commit/9da6b66df852690351a1e82c7b8cc176fd89774a))
488
- * **operations:** let a service claim a path prefix on the host ([02677d1](https://github.com/toa-io/toa/commit/02677d17fcd4222b07c3be458d93bcc496a016a8))
489
-
490
-
491
-
492
-
493
-
494
- # [1.0.0-alpha.259](https://github.com/toa-io/toa/compare/v1.0.0-alpha.258...v1.0.0-alpha.259) (2026-08-24)
495
-
496
- **Note:** Version bump only for package @toa.io/extensions.exposition
497
-
498
-
499
-
500
-
501
-
502
- # [1.0.0-alpha.258](https://github.com/toa-io/toa/compare/v1.0.0-alpha.257...v1.0.0-alpha.258) (2026-08-24)
503
-
504
-
505
- ### Bug Fixes
506
-
507
- * **exposition:** accept federation signature key as PEM ([121fb00](https://github.com/toa-io/toa/commit/121fb00a4e84ec31d65aa1f747f2a22770db9ba1))
508
-
509
-
510
-
511
-
512
-
513
- # [1.0.0-alpha.257](https://github.com/toa-io/toa/compare/v1.0.0-alpha.256...v1.0.0-alpha.257) (2026-08-24)
514
-
515
-
516
- ### Bug Fixes
517
-
518
- * **exposition:** allow null output of basic credentials info ([2a98d0c](https://github.com/toa-io/toa/commit/2a98d0c4c7dd510d57f23485fd516990c79e6759))
519
- * **exposition:** re-add deleted basic credentials ([93abdb7](https://github.com/toa-io/toa/commit/93abdb7c97f807d400a236c417af716dbd367189))
520
- * **exposition:** return identity id from federation inception ([4ddcb7e](https://github.com/toa-io/toa/commit/4ddcb7ee7e574d79f783816190381b5bd6eb2dce))
521
- * **exposition:** revive deleted federation credential on create ([89e6363](https://github.com/toa-io/toa/commit/89e6363778a5e503957c339d1626cda0827fbed8))
522
- * **storages.mongodb:** lift tombstone on set ([b33d227](https://github.com/toa-io/toa/commit/b33d227dbe1d6c95957d67d31bbe2543e1def8c1))
523
-
524
-
525
- ### Features
526
-
527
- * **exposition:** add federation create operation ([0262d7d](https://github.com/toa-io/toa/commit/0262d7d18362d580fc1dd923225c9acba01e751a))
528
- * **exposition:** detach federation credential id from identity ([63a54e4](https://github.com/toa-io/toa/commit/63a54e44a63c846886d7ed55b29de3e85b4725ff))
529
- * **exposition:** return the credential from federation inception ([fced302](https://github.com/toa-io/toa/commit/fced302d16979d234f5a3dbf0ed3897362e95b90))
530
- * **exposition:** unique federation credential per identity and issuer ([0c3e11b](https://github.com/toa-io/toa/commit/0c3e11b2e2497319dc66d566330f8e03c4e35f8d))
531
-
532
-
533
-
534
-
535
-
536
- # [1.0.0-alpha.256](https://github.com/toa-io/toa/compare/v1.0.0-alpha.255...v1.0.0-alpha.256) (2026-08-23)
537
-
538
-
539
- ### Features
540
-
541
- * add toa mono and discover components at components/* ([787a111](https://github.com/toa-io/toa/commit/787a111c8f83e56ebc734801c97106c585d034ea))
@@ -1,27 +0,0 @@
1
- import { it } from 'node:test'
2
- import assert from 'node:assert/strict'
3
-
4
- import { redact } from './redact.js'
5
-
6
- it('should replace credential values at any depth', () => {
7
- const input = { input: { username: 'bob', password: 'secret', nested: [{ token: 't' }] }, query: { id: '1' } }
8
-
9
- assert.deepEqual(redact(input), {
10
- input: { username: 'bob', password: '[redacted]', nested: [{ token: '[redacted]' }] },
11
- query: { id: '1' }
12
- })
13
- })
14
-
15
- it('should leave an error and its code alone', () => {
16
- const error = Object.assign(new Error('nope'), { code: 'NOT_FOUND' })
17
-
18
- assert.equal(redact(error), error)
19
- })
20
-
21
- it('should not modify the original', () => {
22
- const input = { password: 'secret' }
23
-
24
- redact(input)
25
-
26
- assert.equal(input.password, 'secret')
27
- })
package/source/redact.ts DELETED
@@ -1,21 +0,0 @@
1
- /**
2
- * A copy of a request or a reply fit for a log line: the values under the names a
3
- * credential travels by are replaced, whatever their depth.
4
- */
5
- export function redact<T> (value: T): T {
6
- if (value === null || typeof value !== 'object' || value instanceof Error)
7
- return value
8
-
9
- if (Array.isArray(value))
10
- return value.map(redact) as T
11
-
12
- const copy: Record<string, unknown> = {}
13
-
14
- for (const [key, item] of Object.entries(value))
15
- copy[key] = SENSITIVE.has(key) ? REDACTED : redact(item)
16
-
17
- return copy as T
18
- }
19
-
20
- const SENSITIVE = new Set(['password', 'credentials', 'token', 'key', 'secret', 'code'])
21
- const REDACTED = '[redacted]'
@@ -1,5 +0,0 @@
1
- /**
2
- * A copy of a request or a reply fit for a log line: the values under the names a
3
- * credential travels by are replaced, whatever their depth.
4
- */
5
- export declare function redact<T>(value: T): T;
@@ -1,17 +0,0 @@
1
- /**
2
- * A copy of a request or a reply fit for a log line: the values under the names a
3
- * credential travels by are replaced, whatever their depth.
4
- */
5
- export function redact(value) {
6
- if (value === null || typeof value !== 'object' || value instanceof Error)
7
- return value;
8
- if (Array.isArray(value))
9
- return value.map(redact);
10
- const copy = {};
11
- for (const [key, item] of Object.entries(value))
12
- copy[key] = SENSITIVE.has(key) ? REDACTED : redact(item);
13
- return copy;
14
- }
15
- const SENSITIVE = new Set(['password', 'credentials', 'token', 'key', 'secret', 'code']);
16
- const REDACTED = '[redacted]';
17
- //# sourceMappingURL=redact.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redact.js","sourceRoot":"","sources":["../source/redact.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAK,KAAQ;IACjC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,KAAK;QACvE,OAAO,KAAK,CAAA;IAEd,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACtB,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAM,CAAA;IAE/B,MAAM,IAAI,GAA4B,EAAE,CAAA;IAExC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAE1D,OAAO,IAAS,CAAA;AAClB,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;AACxF,MAAM,QAAQ,GAAG,YAAY,CAAA"}