@toa.io/extensions.exposition 1.0.0-alpha.271 → 1.0.0-alpha.273

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 (151) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/components/{exposition.stash → exposition.atom}/manifest.toa.yaml +4 -4
  3. package/components/{exposition.stash → exposition.atom}/operations/meter.js +1 -1
  4. package/components/exposition.octets/manifest.toa.yaml +28 -10
  5. package/components/exposition.octets/operations/put.js +20 -5
  6. package/components/identity.bans/manifest.toa.yaml +26 -7
  7. package/components/identity.bans/operations/tsconfig.tsbuildinfo +1 -1
  8. package/components/identity.basic/manifest.toa.yaml +106 -30
  9. package/components/identity.basic/operations/authenticate.js +6 -3
  10. package/components/identity.basic/operations/authenticate.js.map +1 -1
  11. package/components/identity.basic/operations/incept.js +3 -2
  12. package/components/identity.basic/operations/incept.js.map +1 -1
  13. package/components/identity.basic/operations/transit.js +16 -5
  14. package/components/identity.basic/operations/transit.js.map +1 -1
  15. package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
  16. package/components/identity.basic/source/authenticate.ts +7 -3
  17. package/components/identity.basic/source/incept.ts +3 -2
  18. package/components/identity.basic/source/transit.ts +19 -5
  19. package/components/identity.credentials/manifest.toa.yaml +34 -13
  20. package/components/identity.credentials/operations/tsconfig.tsbuildinfo +1 -1
  21. package/components/identity.federation/manifest.toa.yaml +120 -28
  22. package/components/identity.federation/operations/authenticate.js +3 -2
  23. package/components/identity.federation/operations/authenticate.js.map +1 -1
  24. package/components/identity.federation/operations/create.js +4 -2
  25. package/components/identity.federation/operations/create.js.map +1 -1
  26. package/components/identity.federation/operations/lib/errors.d.ts +70 -11
  27. package/components/identity.federation/operations/lib/errors.js +40 -11
  28. package/components/identity.federation/operations/lib/errors.js.map +1 -1
  29. package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
  30. package/components/identity.federation/source/authenticate.ts +3 -2
  31. package/components/identity.federation/source/create.ts +4 -2
  32. package/components/identity.federation/source/lib/errors.ts +49 -12
  33. package/components/identity.keys/manifest.toa.yaml +14 -6
  34. package/components/identity.keys/operations/tsconfig.tsbuildinfo +1 -1
  35. package/components/identity.otp/manifest.toa.yaml +44 -15
  36. package/components/identity.otp/operations/authenticate.js +9 -4
  37. package/components/identity.otp/operations/authenticate.js.map +1 -1
  38. package/components/identity.otp/operations/tsconfig.tsbuildinfo +1 -1
  39. package/components/identity.otp/source/authenticate.ts +11 -4
  40. package/components/identity.passkeys/manifest.toa.yaml +38 -8
  41. package/components/identity.passkeys/operations/authenticate.js +3 -2
  42. package/components/identity.passkeys/operations/authenticate.js.map +1 -1
  43. package/components/identity.passkeys/operations/create.js +6 -3
  44. package/components/identity.passkeys/operations/create.js.map +1 -1
  45. package/components/identity.passkeys/operations/tsconfig.tsbuildinfo +1 -1
  46. package/components/identity.passkeys/operations/use.js +6 -3
  47. package/components/identity.passkeys/operations/use.js.map +1 -1
  48. package/components/identity.passkeys/source/authenticate.ts +3 -2
  49. package/components/identity.passkeys/source/create.ts +7 -3
  50. package/components/identity.passkeys/source/use.ts +7 -3
  51. package/components/identity.roles/manifest.toa.yaml +41 -10
  52. package/components/identity.roles/operations/grant.js +3 -2
  53. package/components/identity.roles/operations/grant.js.map +1 -1
  54. package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
  55. package/components/identity.roles/source/grant.ts +3 -2
  56. package/components/identity.tokens/manifest.toa.yaml +99 -39
  57. package/components/identity.tokens/operations/authenticate.js +6 -3
  58. package/components/identity.tokens/operations/authenticate.js.map +1 -1
  59. package/components/identity.tokens/operations/decrypt.js +9 -4
  60. package/components/identity.tokens/operations/decrypt.js.map +1 -1
  61. package/components/identity.tokens/operations/encrypt.js +3 -2
  62. package/components/identity.tokens/operations/encrypt.js.map +1 -1
  63. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
  64. package/components/identity.tokens/source/authenticate.ts +7 -3
  65. package/components/identity.tokens/source/decrypt.ts +11 -4
  66. package/components/identity.tokens/source/encrypt.ts +3 -2
  67. package/documentation/identity.md +4 -1
  68. package/documentation/notes/throttling.md +1 -1
  69. package/features/cors.feature +1 -1
  70. package/features/dev.feature +1 -1
  71. package/features/identity.federation.feature +3 -2
  72. package/features/{identtiy.tokens.custom.feature → identity.tokens.custom.feature} +39 -0
  73. package/features/introspection.feature +27 -34
  74. package/features/map.feature +1 -1
  75. package/features/octets.download.feature +1 -1
  76. package/features/octets.meta.feature +1 -1
  77. package/features/passkeys.feature +8 -8
  78. package/features/query.feature +27 -0
  79. package/features/require.feature +2 -2
  80. package/features/response.feature +3 -3
  81. package/features/steps/Components.ts +12 -4
  82. package/features/steps/Database.ts +9 -0
  83. package/features/steps/Gateway.ts +13 -13
  84. package/features/steps/HTTP.ts +3 -5
  85. package/features/steps/Parameters.ts +2 -3
  86. package/features/steps/Realtime.ts +4 -4
  87. package/features/steps/Workspace.ts +8 -3
  88. package/features/steps/components/audit/manifest.toa.yaml +12 -5
  89. package/features/steps/components/echo/manifest.toa.yaml +33 -8
  90. package/features/steps/components/notify/manifest.toa.yaml +12 -5
  91. package/features/steps/components/octets.tester/manifest.toa.yaml +43 -14
  92. package/features/steps/components/orders/manifest.toa.yaml +22 -5
  93. package/features/steps/components/pots/manifest.toa.yaml +71 -17
  94. package/features/steps/components/pricing/manifest.toa.yaml +8 -2
  95. package/features/steps/components/sequences/manifest.toa.yaml +3 -1
  96. package/features/steps/components/users/manifest.toa.yaml +18 -3
  97. package/features/steps/components/users.properties/manifest.toa.yaml +12 -2
  98. package/package.json +6 -7
  99. package/schemas/annotation.cos.yaml +37 -17
  100. package/schemas/directive.cos.yaml +7 -3
  101. package/schemas/io/throttle.cos.yaml +47 -8
  102. package/schemas/method.cos.yaml +21 -9
  103. package/schemas/node.cos.yaml +22 -7
  104. package/schemas/octets/delete.cos.yaml +15 -2
  105. package/schemas/octets/get.cos.yaml +5 -2
  106. package/schemas/octets/put.cos.yaml +6 -3
  107. package/schemas/octets/workflow.cos.yaml +0 -1
  108. package/schemas/query.cos.yaml +31 -14
  109. package/schemas/querystring.cos.yaml +19 -7
  110. package/schemas/range.cos.yaml +10 -2
  111. package/schemas/route.cos.yaml +6 -2
  112. package/source/Branch.test.ts +37 -0
  113. package/source/Branch.ts +37 -0
  114. package/source/Factory.ts +5 -5
  115. package/source/Gateway.ts +29 -14
  116. package/source/HTTP/formats/yaml.test.ts +4 -2
  117. package/source/RTD/Tree.ts +4 -1
  118. package/source/Tenant.ts +15 -4
  119. package/source/deployment.ts +3 -4
  120. package/source/directives/io/IO.ts +2 -2
  121. package/source/directives/io/lib/throttle/Sync.ts +4 -4
  122. package/source/directives/map/Headers.ts +8 -1
  123. package/source/directives/octets/Put.ts +6 -3
  124. package/source/root.ts +2 -2
  125. package/transpiled/Branch.d.ts +23 -0
  126. package/transpiled/Branch.js +16 -0
  127. package/transpiled/Branch.js.map +1 -1
  128. package/transpiled/Factory.js +4 -4
  129. package/transpiled/Factory.js.map +1 -1
  130. package/transpiled/Gateway.d.ts +7 -0
  131. package/transpiled/Gateway.js +26 -8
  132. package/transpiled/Gateway.js.map +1 -1
  133. package/transpiled/RTD/Tree.js +4 -1
  134. package/transpiled/RTD/Tree.js.map +1 -1
  135. package/transpiled/Tenant.d.ts +8 -2
  136. package/transpiled/Tenant.js +12 -2
  137. package/transpiled/Tenant.js.map +1 -1
  138. package/transpiled/deployment.js +3 -4
  139. package/transpiled/deployment.js.map +1 -1
  140. package/transpiled/directives/io/IO.d.ts +1 -1
  141. package/transpiled/directives/io/IO.js +2 -2
  142. package/transpiled/directives/io/IO.js.map +1 -1
  143. package/transpiled/directives/io/lib/throttle/Sync.d.ts +2 -2
  144. package/transpiled/directives/io/lib/throttle/Sync.js +4 -4
  145. package/transpiled/directives/io/lib/throttle/Sync.js.map +1 -1
  146. package/transpiled/directives/map/Headers.js +7 -1
  147. package/transpiled/directives/map/Headers.js.map +1 -1
  148. package/transpiled/directives/octets/Put.js.map +1 -1
  149. package/transpiled/root.js +1 -1
  150. package/transpiled/root.js.map +1 -1
  151. package/transpiled/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,46 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [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)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **exposition:** green the feature suite ([67c25ad](https://github.com/toa-io/toa/commit/67c25ad627db3b3779b09405c5a3c319ecd47722))
12
+ * **exposition:** keep a departing tenant from taking a branch back ([64a4eaf](https://github.com/toa-io/toa/commit/64a4eafc9122fabba7b59bf7d559a9d4ef36f773))
13
+ * **exposition:** remove redundant inputs ([34763e4](https://github.com/toa-io/toa/commit/34763e417c93c4eecc5f96879a68c2b68bd6b8a8))
14
+ * **exposition:** report a refreshed branch at trace ([4f170ef](https://github.com/toa-io/toa/commit/4f170ef529a04755b22494789407305f11ce395e))
15
+
16
+
17
+
18
+
19
+
20
+ # [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)
21
+
22
+
23
+ ### Bug Fixes
24
+
25
+ * **core:** stop the reply contract from relaxing the declaration ([6222893](https://github.com/toa-io/toa/commit/622289326630b94deff93499d6a851bfaa57c69a))
26
+ * **exposition:** close the query string, and tell it about sample ([ba82e61](https://github.com/toa-io/toa/commit/ba82e617f9d6e18b2c01ee68661407a781952443))
27
+ * **exposition:** stop a tenant announcing on its way out ([e1926fe](https://github.com/toa-io/toa/commit/e1926fe53186d9044c502e84f5894b6fbce88011))
28
+ * **exposition:** stop the throttling ticker before what it calls goes down ([f770740](https://github.com/toa-io/toa/commit/f770740a8359762b10cd456bc64e259415f7ef75))
29
+
30
+
31
+ * refactor(exposition)!: meter through the atom ([aa9c8f1](https://github.com/toa-io/toa/commit/aa9c8f16de3f4d315b14c49ff0b4f203053ede2c))
32
+
33
+
34
+ ### BREAKING CHANGES
35
+
36
+ * `context.stash.meter` is gone; meter through `context.atom` instead.
37
+ A deployment that declared a stash for `exposition.stash` can drop it, and needs
38
+ `atomicity.redis` set for throttling to reconcile.
39
+
40
+ Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
41
+
42
+
43
+
44
+
45
+
6
46
  # [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)
7
47
 
8
48
 
@@ -1,7 +1,5 @@
1
1
  namespace: exposition
2
- name: stash
3
-
4
- stash: ~
2
+ name: atom
5
3
 
6
4
  operations:
7
5
  meter:
@@ -17,5 +15,7 @@ operations:
17
15
  type: array
18
16
  items:
19
17
  type: number
20
- required: [keys, deltas]
18
+ required:
19
+ - keys
20
+ - deltas
21
21
  additionalProperties: false
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
2
 
3
3
  async function meter (input, context) {
4
- return context.stash.meter(input.keys, input.deltas)
4
+ return context.atom.meter(input.keys, input.deltas)
5
5
  }
6
6
 
7
7
  exports.computation = meter
@@ -7,12 +7,21 @@ operations:
7
7
  put:
8
8
  bindings: ~
9
9
  input:
10
- storage*: string
11
- request*: ~
12
- location: string
13
- accept: string
14
- limit: number
15
- trust: ~ # array of strings or regular expressions
10
+ properties:
11
+ location:
12
+ type: string
13
+ accept:
14
+ type: string
15
+ limit:
16
+ type: number
17
+ trust: {}
18
+ storage:
19
+ type: string
20
+ request: {}
21
+ type: object
22
+ required:
23
+ - storage
24
+ - request
16
25
  errors:
17
26
  - LOCATION_UNTRUSTED
18
27
  - LOCATION_LENGTH
@@ -21,9 +30,18 @@ operations:
21
30
  get: &simple
22
31
  bindings: ~
23
32
  input:
24
- storage*: string
25
- path*: string
26
- range: string
27
- agent: string
33
+ properties:
34
+ range:
35
+ type: string
36
+ agent:
37
+ type: string
38
+ storage:
39
+ type: string
40
+ path:
41
+ type: string
42
+ type: object
43
+ required:
44
+ - storage
45
+ - path
28
46
  head: *simple
29
47
  delete: *simple
@@ -2,7 +2,6 @@
2
2
 
3
3
  const { Readable } = require('node:stream')
4
4
  const { posix } = require('node:path')
5
- const { Err } = require('error-value')
6
5
  const { match } = require('matchacho')
7
6
 
8
7
  async function put (input, context) {
@@ -122,10 +121,26 @@ function toURL (location) {
122
121
  }
123
122
  }
124
123
 
125
- const ERR_UNTRUSTED = new Err('LOCATION_UNTRUSTED', 'Location is not trusted')
126
- const ERR_LENGTH = new Err('LOCATION_LENGTH', 'Content-Length must be 0 when Content-Location is used')
127
- const ERR_UNAVAILABLE = new Err('LOCATION_UNAVAILABLE', 'Location is not available')
128
- const ERR_INVALID_ID = new Err('INVALID_ID', 'Invalid Content-ID')
124
+ const ERR_UNTRUSTED = new (class LocationUntrustedError extends Error {
125
+ code = 'LOCATION_UNTRUSTED'
126
+ message = 'Location is not trusted'
127
+ })()
128
+
129
+ const ERR_LENGTH = new (class LocationLengthError extends Error {
130
+ code = 'LOCATION_LENGTH'
131
+ message = 'Content-Length must be 0 when Content-Location is used'
132
+ })()
133
+
134
+ const ERR_UNAVAILABLE = new (class LocationUnavailableError extends Error {
135
+ code = 'LOCATION_UNAVAILABLE'
136
+ message = 'Location is not available'
137
+ })()
138
+
139
+ const ERR_INVALID_ID = new (class InvalidIdError extends Error {
140
+ code = 'INVALID_ID'
141
+ message = 'Invalid Content-ID'
142
+ })()
143
+
129
144
 
130
145
  const ID_RX = /^[a-zA-Z0-9-_]{1,32}$/
131
146
 
@@ -3,19 +3,38 @@ name: bans
3
3
 
4
4
  entity:
5
5
  schema:
6
- banned*: false
7
- originator*: string
8
- comment: string
6
+ properties:
7
+ comment:
8
+ type: string
9
+ banned:
10
+ type: boolean
11
+ default: false
12
+ originator:
13
+ type: string
14
+ type: object
15
+ required:
16
+ - banned
17
+ - originator
9
18
  associated: true
10
19
 
11
20
  operations:
12
21
  transit:
13
22
  concurrency: retry
14
23
  input:
15
- banned*: boolean
16
- originator*:
17
- id: string
18
- comment: string
24
+ properties:
25
+ comment:
26
+ type: string
27
+ banned:
28
+ type: boolean
29
+ originator:
30
+ properties:
31
+ id:
32
+ type: string
33
+ type: object
34
+ type: object
35
+ required:
36
+ - banned
37
+ - originator
19
38
 
20
39
  exposition:
21
40
  isolated: true