@toa.io/norm 1.0.0-alpha.320 → 1.0.0-alpha.321
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.
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
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.321](https://github.com/toa-io/toa/compare/v1.0.0-alpha.320...v1.0.0-alpha.321) (2026-09-28)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **core:** let an operation declared unchained begin a chain of its own ([6d94324](https://github.com/toa-io/toa/commit/6d94324cb43ff4b12e1bc267d81498445b40a02e))
|
|
11
|
+
|
|
12
|
+
|
|
6
13
|
# [1.0.0-alpha.320](https://github.com/toa-io/toa/compare/v1.0.0-alpha.319...v1.0.0-alpha.320) (2026-09-28)
|
|
7
14
|
|
|
8
15
|
**Note:** Version bump only for package @toa.io/norm
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toa.io/norm",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.321",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Toa declarations normalization and validation",
|
|
6
6
|
"author": "temich <tema.gurtovoy@gmail.com>",
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@toa.io/core": "1.0.0-alpha.
|
|
25
|
-
"@toa.io/definitions": "1.0.0-alpha.
|
|
24
|
+
"@toa.io/core": "1.0.0-alpha.321",
|
|
25
|
+
"@toa.io/definitions": "1.0.0-alpha.321",
|
|
26
26
|
"@toa.io/generic": "1.0.0-alpha.311",
|
|
27
27
|
"@toa.io/prototype": "1.0.0-alpha.319",
|
|
28
28
|
"@toa.io/schemas": "1.0.0-alpha.311",
|
|
29
29
|
"fast-glob": "3.3.3"
|
|
30
30
|
},
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "fa850e861a0c748d7364ccf7c8a09ce26973fc04"
|
|
32
32
|
}
|
|
@@ -166,6 +166,9 @@ properties:
|
|
|
166
166
|
stateful:
|
|
167
167
|
# served by every process under an address of its own, which a call names; see documentation/stateful.md
|
|
168
168
|
type: boolean
|
|
169
|
+
unchained:
|
|
170
|
+
# every call begins a chain of its own, so a circle through it is refused by neither rule; see documentation/cycles.md
|
|
171
|
+
type: boolean
|
|
169
172
|
stream:
|
|
170
173
|
# the input property that carries a stream, read as its caller writes it; see documentation/streams.md
|
|
171
174
|
$ref: "#/definitions/name"
|
|
@@ -383,6 +383,24 @@ describe('stateful', () => {
|
|
|
383
383
|
})
|
|
384
384
|
})
|
|
385
385
|
|
|
386
|
+
describe('unchained', () => {
|
|
387
|
+
it('should be allowed on an operation', async () => {
|
|
388
|
+
const [operation] = Object.values(manifest.operations)
|
|
389
|
+
|
|
390
|
+
operation.unchained = true
|
|
391
|
+
|
|
392
|
+
await assert.doesNotReject(validate(manifest))
|
|
393
|
+
})
|
|
394
|
+
|
|
395
|
+
it('should be a boolean', async () => {
|
|
396
|
+
const [operation] = Object.values(manifest.operations)
|
|
397
|
+
|
|
398
|
+
operation.unchained = 'yes'
|
|
399
|
+
|
|
400
|
+
await assert.rejects(validate(manifest), (error) => /must be boolean/.test(error.message))
|
|
401
|
+
})
|
|
402
|
+
})
|
|
403
|
+
|
|
386
404
|
describe('stream', () => {
|
|
387
405
|
beforeEach(() => {
|
|
388
406
|
manifest.operations.read = {
|
package/types/component.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export type Operation = {
|
|
|
16
16
|
query?: boolean
|
|
17
17
|
/** served by every process under an address of its own, which a call to it names */
|
|
18
18
|
stateful?: boolean
|
|
19
|
+
/** every call begins a chain of its own */
|
|
20
|
+
unchained?: boolean
|
|
19
21
|
/** the input property that carries a stream, read as its caller writes it */
|
|
20
22
|
stream?: string
|
|
21
23
|
}
|