@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
@@ -1,6 +1,5 @@
1
1
  import { compare } from 'bcryptjs'
2
2
  import { type Query, type Maybe } from '@toa.io/types'
3
- import { Err } from 'error-value'
4
3
  import { type Context } from './types'
5
4
 
6
5
  export async function computation (input: Input, context: Context): Promise<Maybe<Output>> {
@@ -27,8 +26,13 @@ export async function computation (input: Input, context: Context): Promise<Mayb
27
26
  return ERR_PASSWORD_MISMATCH
28
27
  }
29
28
 
30
- const ERR_NOT_FOUND = new Err('NOT_FOUND')
31
- const ERR_PASSWORD_MISMATCH = new Err('PASSWORD_MISMATCH')
29
+ const ERR_NOT_FOUND = new (class NotFoundError extends Error {
30
+ public readonly code = 'NOT_FOUND'
31
+ })()
32
+
33
+ const ERR_PASSWORD_MISMATCH = new (class PasswordMismatchError extends Error {
34
+ public readonly code = 'PASSWORD_MISMATCH'
35
+ })()
32
36
 
33
37
  interface Input {
34
38
  authority: string
@@ -1,4 +1,3 @@
1
- import { Err } from 'error-value'
2
1
  import type { Context } from './types'
3
2
  import type { Maybe } from '@toa.io/types'
4
3
 
@@ -25,7 +24,9 @@ export async function effect (input: Input, context: Context): Promise<Maybe<Out
25
24
  return await context.local.transit(request)
26
25
  }
27
26
 
28
- const INVALID_CREDENTIALS = new Err('INVALID_CREDENTIALS')
27
+ const INVALID_CREDENTIALS = new (class InvalidCredentialsError extends Error {
28
+ public readonly code = 'INVALID_CREDENTIALS'
29
+ })()
29
30
 
30
31
  interface Input {
31
32
  authority: string
@@ -1,5 +1,4 @@
1
1
  import { genSalt, hash } from 'bcryptjs'
2
- import { Err } from 'error-value'
3
2
  import type { Maybe, Operation } from '@toa.io/types'
4
3
  import type { Context, Entity, TransitInput, IdOutput } from './types'
5
4
 
@@ -65,9 +64,24 @@ function invalid (value: string, expressions: RegExp[]): boolean {
65
64
  return expressions.some((expression) => !expression.test(value))
66
65
  }
67
66
 
68
- const ERR_PRINCIPAL_LOCKED = new Err('PRINCIPAL_LOCKED', 'Principal username cannot be changed')
69
- const ERR_INVALID_USERNAME = new Err('INVALID_USERNAME', 'Username is not meeting the requirements')
70
- const ERR_INVALID_PASSWORD = new Err('INVALID_PASSWORD', 'Password is not meeting the requirements')
71
- const ERR_EXISTS = new Err('EXISTS', 'Basic credentials already exist')
67
+ const ERR_PRINCIPAL_LOCKED = new (class PrincipalLockedError extends Error {
68
+ public readonly code = 'PRINCIPAL_LOCKED'
69
+ public override readonly message = 'Principal username cannot be changed'
70
+ })()
71
+
72
+ const ERR_INVALID_USERNAME = new (class InvalidUsernameError extends Error {
73
+ public readonly code = 'INVALID_USERNAME'
74
+ public override readonly message = 'Username is not meeting the requirements'
75
+ })()
76
+
77
+ const ERR_INVALID_PASSWORD = new (class InvalidPasswordError extends Error {
78
+ public readonly code = 'INVALID_PASSWORD'
79
+ public override readonly message = 'Password is not meeting the requirements'
80
+ })()
81
+
82
+ const ERR_EXISTS = new (class ExistsError extends Error {
83
+ public readonly code = 'EXISTS'
84
+ public override readonly message = 'Basic credentials already exist'
85
+ })()
72
86
 
73
87
  type Tokens = Context['remote']['identity']['tokens']
@@ -10,7 +10,9 @@ operations:
10
10
  type: string
11
11
  identity:
12
12
  type: string
13
- required: [authority, identity]
13
+ required:
14
+ - authority
15
+ - identity
14
16
  output:
15
17
  type: object
16
18
  properties:
@@ -21,30 +23,49 @@ operations:
21
23
  properties:
22
24
  username:
23
25
  type: string
24
- required: [username]
26
+ required:
27
+ - username
25
28
  federation:
26
29
  type: array
27
30
  items:
28
31
  type: object
29
32
  additionalProperties: false
30
33
  properties:
31
- id: { type: string }
32
- iss: { type: string }
33
- _created: { type: number }
34
- required: [id, iss, _created]
34
+ id:
35
+ type: string
36
+ iss:
37
+ type: string
38
+ _created:
39
+ type: number
40
+ required:
41
+ - id
42
+ - iss
43
+ - _created
35
44
  passkeys:
36
45
  type: array
37
46
  items:
38
47
  type: object
39
48
  additionalProperties: false
40
49
  properties:
41
- id: { type: string }
42
- aid: { type: string }
43
- synced: { type: boolean }
44
- label: { type: string }
45
- _created: { type: number }
46
- required: [id, aid, synced, _created]
47
- required: [basic, federation, passkeys]
50
+ id:
51
+ type: string
52
+ aid:
53
+ type: string
54
+ synced:
55
+ type: boolean
56
+ label:
57
+ type: string
58
+ _created:
59
+ type: number
60
+ required:
61
+ - id
62
+ - aid
63
+ - synced
64
+ - _created
65
+ required:
66
+ - basic
67
+ - federation
68
+ - passkeys
48
69
 
49
70
  exposition:
50
71
  /:identity: