@toa.io/core 1.0.0-alpha.273 → 1.0.0-alpha.277
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 +8 -0
- package/package.json +8 -7
- package/src/assignment.js +2 -6
- package/src/call.js +5 -7
- package/src/cascade.js +2 -6
- package/src/component.js +4 -8
- package/src/composition.js +3 -7
- package/src/connector.js +2 -6
- package/src/context.js +2 -6
- package/src/contract/contract.js +2 -6
- package/src/contract/index.js +2 -7
- package/src/contract/reply.js +4 -8
- package/src/contract/request.js +4 -8
- package/src/contract/schemas/index.js +7 -9
- package/src/discovery.js +3 -7
- package/src/effect.js +2 -6
- package/src/emission.js +2 -6
- package/src/entities/changeset.js +2 -6
- package/src/entities/entity.js +3 -7
- package/src/entities/factory.js +5 -9
- package/src/entities/index.js +1 -5
- package/src/entities/newid.js +2 -4
- package/src/entities/set.js +2 -6
- package/src/event.js +3 -7
- package/src/exceptions.js +37 -30
- package/src/exposition.js +2 -6
- package/src/guard.js +1 -5
- package/src/index.js +28 -55
- package/src/locator.js +2 -6
- package/src/observation.js +2 -6
- package/src/operation.js +4 -8
- package/src/outbox/index.js +1 -6
- package/src/outbox/outbox.js +5 -10
- package/src/query/criteria.js +3 -7
- package/src/query/options.js +2 -6
- package/src/query.js +5 -6
- package/src/receiver.js +4 -8
- package/src/reflection.js +2 -6
- package/src/remote.js +3 -7
- package/src/state.js +2 -6
- package/src/transition.js +4 -8
- package/src/transmission.js +3 -7
- package/src/unmanaged.js +2 -6
- package/test/call.fixtures.js +8 -12
- package/test/call.test.js +21 -9
- package/test/component.fixtures.js +5 -8
- package/test/component.test.js +22 -11
- package/test/connector.fixtures.js +5 -11
- package/test/connector.test.js +42 -41
- package/test/context.fixtures.js +8 -12
- package/test/context.test.js +18 -7
- package/test/contract/conditions.test.js +8 -6
- package/test/contract/contract.fixtures.js +12 -17
- package/test/contract/request.test.js +51 -40
- package/test/discovery.test.js +25 -17
- package/test/emission.fixtures.js +5 -8
- package/test/emission.test.js +29 -12
- package/test/entities/entity.fixtures.js +7 -11
- package/test/entities/entity.test.js +30 -19
- package/test/entities/factory.fixtures.js +22 -10
- package/test/entities/factory.test.js +29 -17
- package/test/entities/set.fixtures.js +6 -8
- package/test/entities/set.test.js +6 -5
- package/test/event.fixtures.js +9 -14
- package/test/event.test.js +57 -31
- package/test/locator.test.js +25 -24
- package/test/outbox.test.js +44 -37
- package/test/query.fixtures.js +1 -5
- package/test/query.test.js +28 -17
- package/test/receiver.fixtures.js +8 -12
- package/test/receiver.test.js +45 -22
- package/test/reflection.test.js +7 -6
- package/test/state.fixtures.js +24 -32
- package/test/state.test.js +35 -30
- package/test/transmission.fixtures.js +4 -6
- package/test/transmission.test.js +33 -15
- package/types/atomicity.d.ts +1 -1
- package/types/bindings.d.ts +1 -1
- package/types/bridges.ts +3 -3
- package/types/component.d.ts +4 -4
- package/types/context.d.ts +4 -4
- package/types/entity.d.ts +2 -2
- package/types/event.d.ts +1 -1
- package/types/extensions.d.ts +8 -7
- package/types/index.ts +16 -16
- package/types/operations.d.ts +1 -1
- package/types/outbox.d.ts +2 -2
- package/types/receiver.d.ts +2 -2
- package/types/reflection.d.ts +1 -1
- package/types/remote.d.ts +1 -1
- package/types/request.d.ts +1 -1
- package/types/state.d.ts +2 -2
- package/types/storages.d.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
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.277](https://github.com/toa-io/toa/compare/v1.0.0-alpha.276...v1.0.0-alpha.277) (2026-09-03)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* read a manifest the way js-yaml read one before ([fcea1b2](https://github.com/toa-io/toa/commit/fcea1b21996d6efa6c3198acbfc9f70f1ce0c35c))
|
|
11
|
+
* settle what the module loader made asynchronous ([d4ab9df](https://github.com/toa-io/toa/commit/d4ab9dfb09e382da311dba08f52214e7645f4a6c))
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
# [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
15
|
|
|
8
16
|
**Note:** Version bump only for package @toa.io/core
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toa.io/core",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.277",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"description": "Toa Core",
|
|
5
6
|
"author": "temich <tema.gurtovoy@gmail.com>",
|
|
6
7
|
"homepage": "https://github.com/toa-io/toa#readme",
|
|
@@ -20,11 +21,11 @@
|
|
|
20
21
|
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
21
22
|
},
|
|
22
23
|
"dependencies": {
|
|
23
|
-
"@rsql/parser": "1.
|
|
24
|
-
"@toa.io/generic": "1.0.0-alpha.
|
|
25
|
-
"js-yaml": "4.
|
|
26
|
-
"openspan": "1.0.0-alpha.
|
|
27
|
-
"uuid": "
|
|
24
|
+
"@rsql/parser": "1.6.0",
|
|
25
|
+
"@toa.io/generic": "1.0.0-alpha.277",
|
|
26
|
+
"js-yaml": "5.4.1",
|
|
27
|
+
"openspan": "1.0.0-alpha.277",
|
|
28
|
+
"uuid": "14.0.2"
|
|
28
29
|
},
|
|
29
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "0c0071418c2c56a44e621ba5ced5cdd23dff1738"
|
|
30
31
|
}
|
package/src/assignment.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { Operation } from './operation.js'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class Assignment extends Operation {
|
|
3
|
+
export class Assignment extends Operation {
|
|
6
4
|
async acquire (store) {
|
|
7
5
|
store.scope = this.scope.changeset(store.request.query)
|
|
8
6
|
store.state = store.scope.get()
|
|
@@ -28,5 +26,3 @@ class Assignment extends Operation {
|
|
|
28
26
|
}
|
|
29
27
|
}
|
|
30
28
|
}
|
|
31
|
-
|
|
32
|
-
exports.Assignment = Assignment
|
package/src/call.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { Readable } from 'node:stream'
|
|
2
|
+
import { current, encode } from 'openspan'
|
|
3
|
+
import { Connector } from './connector.js'
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
const { current, encode } = require('openspan')
|
|
5
|
-
const { Connector } = require('./connector')
|
|
6
|
-
|
|
7
|
-
class Call extends Connector {
|
|
5
|
+
export class Call extends Connector {
|
|
8
6
|
#transmitter
|
|
9
7
|
#contract
|
|
10
8
|
#source
|
|
@@ -58,7 +56,7 @@ class Call extends Connector {
|
|
|
58
56
|
}
|
|
59
57
|
}
|
|
60
58
|
|
|
61
|
-
|
|
59
|
+
|
|
62
60
|
|
|
63
61
|
// the remote error as a value: every property it carries, and nothing else enumerable
|
|
64
62
|
class RemoteError extends Error {
|
package/src/cascade.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { Connector } from './connector.js'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class Cascade extends Connector {
|
|
3
|
+
export class Cascade extends Connector {
|
|
6
4
|
// #bridges
|
|
7
5
|
#last
|
|
8
6
|
|
|
@@ -34,5 +32,3 @@ class Cascade extends Connector {
|
|
|
34
32
|
return this.#last.execute(...args)
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
|
-
|
|
38
|
-
exports.Cascade = Cascade
|
package/src/component.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import assert from 'node:assert'
|
|
2
|
+
import { console, current, decode, run } from 'openspan'
|
|
3
|
+
import { Connector } from './connector.js'
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
const { console, current, decode, run } = require('openspan')
|
|
5
|
-
const { Connector } = require('./connector')
|
|
6
|
-
|
|
7
|
-
class Component extends Connector {
|
|
5
|
+
export class Component extends Connector {
|
|
8
6
|
locator
|
|
9
7
|
|
|
10
8
|
/** @protected */
|
|
@@ -81,5 +79,3 @@ class Component extends Connector {
|
|
|
81
79
|
return options
|
|
82
80
|
}
|
|
83
81
|
}
|
|
84
|
-
|
|
85
|
-
exports.Component = Component
|
package/src/composition.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { console } from 'openspan'
|
|
2
|
+
import { Connector } from './connector.js'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
const { Connector } = require('./connector')
|
|
5
|
-
|
|
6
|
-
class Composition extends Connector {
|
|
4
|
+
export class Composition extends Connector {
|
|
7
5
|
constructor (expositions, producers, receivers, tenants) {
|
|
8
6
|
super()
|
|
9
7
|
|
|
@@ -21,5 +19,3 @@ class Composition extends Connector {
|
|
|
21
19
|
console.info('Composition shutdown complete')
|
|
22
20
|
}
|
|
23
21
|
}
|
|
24
|
-
|
|
25
|
-
exports.Composition = Composition
|
package/src/connector.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const { console } = require('openspan')
|
|
1
|
+
import { console } from 'openspan'
|
|
4
2
|
|
|
5
3
|
/**
|
|
6
4
|
* Abstract connections hierarchy
|
|
7
5
|
* @implements {toa.core.Connector}
|
|
8
6
|
*/
|
|
9
|
-
class Connector {
|
|
7
|
+
export class Connector {
|
|
10
8
|
/** @type {Array<Connector>} */
|
|
11
9
|
#dependencies = []
|
|
12
10
|
|
|
@@ -190,5 +188,3 @@ class Connector {
|
|
|
190
188
|
|
|
191
189
|
const DELAY = 5000
|
|
192
190
|
const TRACE_BOOT = process.env.TOA_BOOT_TRACE === '1'
|
|
193
|
-
|
|
194
|
-
exports.Connector = Connector
|
package/src/context.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const { Connector } = require('./connector')
|
|
1
|
+
import { Connector } from './connector.js'
|
|
4
2
|
|
|
5
3
|
/**
|
|
6
4
|
* @implements {toa.core.Context}
|
|
7
5
|
*/
|
|
8
|
-
class Context extends Connector {
|
|
6
|
+
export class Context extends Connector {
|
|
9
7
|
env
|
|
10
8
|
name
|
|
11
9
|
aspects
|
|
@@ -57,5 +55,3 @@ class Context extends Connector {
|
|
|
57
55
|
return remote
|
|
58
56
|
}
|
|
59
57
|
}
|
|
60
|
-
|
|
61
|
-
exports.Context = Context
|
package/src/contract/contract.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { SystemException } from '../exceptions.js'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class Contract {
|
|
3
|
+
export class Contract {
|
|
6
4
|
schema
|
|
7
5
|
|
|
8
6
|
constructor (schema) {
|
|
@@ -18,5 +16,3 @@ class Contract {
|
|
|
18
16
|
|
|
19
17
|
static Exception = SystemException
|
|
20
18
|
}
|
|
21
|
-
|
|
22
|
-
exports.Contract = Contract
|
package/src/contract/index.js
CHANGED
package/src/contract/reply.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import * as schemas from './schemas/index.js'
|
|
2
|
+
import { Contract } from './contract.js'
|
|
3
|
+
import { ResponseContractException } from '../exceptions.js'
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
const { Contract } = require('./contract')
|
|
5
|
-
const { ResponseContractException } = require('../exceptions')
|
|
6
|
-
|
|
7
|
-
class Reply extends Contract {
|
|
5
|
+
export class Reply extends Contract {
|
|
8
6
|
static Exception = ResponseContractException
|
|
9
7
|
|
|
10
8
|
static schema (output, errors) {
|
|
@@ -46,5 +44,3 @@ class Reply extends Contract {
|
|
|
46
44
|
return schema
|
|
47
45
|
}
|
|
48
46
|
}
|
|
49
|
-
|
|
50
|
-
exports.Reply = Reply
|
package/src/contract/request.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import * as schemas from './schemas/index.js'
|
|
2
|
+
import { RequestContractException } from '../exceptions.js'
|
|
3
|
+
import { Contract } from './contract.js'
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
const { RequestContractException } = require('../exceptions')
|
|
5
|
-
const { Contract } = require('./contract')
|
|
6
|
-
|
|
7
|
-
class Request extends Contract {
|
|
5
|
+
export class Request extends Contract {
|
|
8
6
|
/** @readonly */
|
|
9
7
|
discovery = {}
|
|
10
8
|
|
|
@@ -77,5 +75,3 @@ class Request extends Contract {
|
|
|
77
75
|
return schema
|
|
78
76
|
}
|
|
79
77
|
}
|
|
80
|
-
|
|
81
|
-
exports.Request = Request
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { resolve } from 'path'
|
|
2
|
+
import { readFileSync } from 'node:fs'
|
|
3
|
+
import { yaml } from '@toa.io/generic'
|
|
2
4
|
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
exports.query = read(resolve(__dirname, './query.yaml'))
|
|
8
|
-
exports.error = read(resolve(__dirname, './error.yaml'))
|
|
9
|
-
exports.source = read(resolve(__dirname, './source.yaml'))
|
|
5
|
+
export const query = read(resolve(import.meta.dirname, './query.yaml'))
|
|
6
|
+
export const error = read(resolve(import.meta.dirname, './error.yaml'))
|
|
7
|
+
export const source = read(resolve(import.meta.dirname, './source.yaml'))
|
|
10
8
|
|
|
11
9
|
function read (path) {
|
|
12
|
-
return
|
|
10
|
+
return yaml.load(readFileSync(path, 'utf8'))
|
|
13
11
|
}
|
package/src/discovery.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { console } from 'openspan'
|
|
2
|
+
import { Connector } from './connector.js'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
const { Connector } = require('./connector')
|
|
5
|
-
|
|
6
|
-
class Discovery extends Connector {
|
|
4
|
+
export class Discovery extends Connector {
|
|
7
5
|
#lookup
|
|
8
6
|
#lookups
|
|
9
7
|
|
|
@@ -46,5 +44,3 @@ class Discovery extends Connector {
|
|
|
46
44
|
}
|
|
47
45
|
|
|
48
46
|
const INTERVAL = 5000
|
|
49
|
-
|
|
50
|
-
exports.Discovery = Discovery
|
package/src/effect.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { Observation } from './observation.js'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class Effect extends Observation {
|
|
3
|
+
export class Effect extends Observation {
|
|
6
4
|
|
|
7
5
|
async acquire (store) {
|
|
8
6
|
const { query, entity, input } = store.request
|
|
@@ -15,5 +13,3 @@ class Effect extends Observation {
|
|
|
15
13
|
}
|
|
16
14
|
|
|
17
15
|
}
|
|
18
|
-
|
|
19
|
-
exports.Effect = Effect
|
package/src/emission.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { Connector } from './connector.js'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class Emission extends Connector {
|
|
3
|
+
export class Emission extends Connector {
|
|
6
4
|
#events
|
|
7
5
|
|
|
8
6
|
constructor (events) {
|
|
@@ -19,5 +17,3 @@ class Emission extends Connector {
|
|
|
19
17
|
await Promise.all(emission)
|
|
20
18
|
}
|
|
21
19
|
}
|
|
22
|
-
|
|
23
|
-
exports.Emission = Emission
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { EntityContractException } from '../exceptions.js'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class Changeset {
|
|
3
|
+
export class Changeset {
|
|
6
4
|
/** @type {toa.core.Query} */
|
|
7
5
|
query
|
|
8
6
|
|
|
@@ -36,5 +34,3 @@ class Changeset {
|
|
|
36
34
|
return this.#state
|
|
37
35
|
}
|
|
38
36
|
}
|
|
39
|
-
|
|
40
|
-
exports.Changeset = Changeset
|
package/src/entities/entity.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { EntityContractException, EntityGuardException } from '../exceptions.js'
|
|
2
|
+
import { newid } from './newid.js'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
const { newid } = require('./newid')
|
|
5
|
-
|
|
6
|
-
class Entity {
|
|
4
|
+
export class Entity {
|
|
7
5
|
deleted = false
|
|
8
6
|
#schema
|
|
9
7
|
#guards
|
|
@@ -119,5 +117,3 @@ class Entity {
|
|
|
119
117
|
this.#state = value
|
|
120
118
|
}
|
|
121
119
|
}
|
|
122
|
-
|
|
123
|
-
exports.Entity = Entity
|
package/src/entities/factory.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import { newid } from './newid.js'
|
|
2
|
+
import { Entity } from './entity.js'
|
|
3
|
+
import { EntitySet } from './set.js'
|
|
4
|
+
import { Changeset } from './changeset.js'
|
|
2
5
|
|
|
3
|
-
|
|
4
|
-
const { Entity } = require('./entity')
|
|
5
|
-
const { EntitySet } = require('./set')
|
|
6
|
-
const { Changeset } = require('./changeset')
|
|
7
|
-
|
|
8
|
-
class Factory {
|
|
6
|
+
export class Factory {
|
|
9
7
|
#schema
|
|
10
8
|
#guards
|
|
11
9
|
|
|
@@ -40,5 +38,3 @@ class Factory {
|
|
|
40
38
|
return new Changeset(this.#schema, query)
|
|
41
39
|
}
|
|
42
40
|
}
|
|
43
|
-
|
|
44
|
-
exports.Factory = Factory
|
package/src/entities/index.js
CHANGED
package/src/entities/newid.js
CHANGED
package/src/entities/set.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { SystemException } from '../exceptions.js'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class EntitySet {
|
|
3
|
+
export class EntitySet {
|
|
6
4
|
#set
|
|
7
5
|
|
|
8
6
|
constructor (set) {
|
|
@@ -24,5 +22,3 @@ class EntitySet {
|
|
|
24
22
|
return this.#set.map((entity) => entity.event(input))
|
|
25
23
|
}
|
|
26
24
|
}
|
|
27
|
-
|
|
28
|
-
exports.EntitySet = EntitySet
|
package/src/event.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const { console, current, encode } = require('openspan')
|
|
4
|
-
const { Connector } = require('./connector')
|
|
1
|
+
import { console, current, encode } from 'openspan'
|
|
2
|
+
import { Connector } from './connector.js'
|
|
5
3
|
|
|
6
4
|
/**
|
|
7
5
|
* @implements {toa.core.Event}
|
|
8
6
|
*/
|
|
9
|
-
class Event extends Connector {
|
|
7
|
+
export class Event extends Connector {
|
|
10
8
|
/** @type {toa.core.bindings.Emitter} */
|
|
11
9
|
#emitter
|
|
12
10
|
#bridge
|
|
@@ -54,5 +52,3 @@ class Event extends Connector {
|
|
|
54
52
|
}
|
|
55
53
|
}
|
|
56
54
|
}
|
|
57
|
-
|
|
58
|
-
exports.Event = Event
|
package/src/exceptions.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { swap } from '@toa.io/generic'
|
|
2
2
|
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
const codes = {
|
|
3
|
+
export const codes = {
|
|
6
4
|
System: 0,
|
|
7
5
|
|
|
8
6
|
Contract: 200,
|
|
@@ -28,7 +26,7 @@ const codes = {
|
|
|
28
26
|
/**
|
|
29
27
|
* @implements {toa.core.Exception}
|
|
30
28
|
*/
|
|
31
|
-
class Exception {
|
|
29
|
+
export class Exception {
|
|
32
30
|
code
|
|
33
31
|
message
|
|
34
32
|
|
|
@@ -41,7 +39,7 @@ class Exception {
|
|
|
41
39
|
}
|
|
42
40
|
}
|
|
43
41
|
|
|
44
|
-
class SystemException extends Exception {
|
|
42
|
+
export class SystemException extends Exception {
|
|
45
43
|
stack
|
|
46
44
|
|
|
47
45
|
constructor (error) {
|
|
@@ -51,7 +49,7 @@ class SystemException extends Exception {
|
|
|
51
49
|
}
|
|
52
50
|
}
|
|
53
51
|
|
|
54
|
-
class ContractException extends Exception {
|
|
52
|
+
export class ContractException extends Exception {
|
|
55
53
|
constructor (code, error, cause) {
|
|
56
54
|
super(code || codes.Contract, typeof error === 'string' ? error : error?.message, cause)
|
|
57
55
|
|
|
@@ -62,46 +60,55 @@ class ContractException extends Exception {
|
|
|
62
60
|
}
|
|
63
61
|
}
|
|
64
62
|
|
|
65
|
-
class RequestContractException extends ContractException {
|
|
63
|
+
export class RequestContractException extends ContractException {
|
|
66
64
|
constructor (error, cause) { super(codes.RequestContract, error, cause) }
|
|
67
65
|
}
|
|
68
66
|
|
|
69
|
-
class ResponseContractException extends ContractException {
|
|
67
|
+
export class ResponseContractException extends ContractException {
|
|
70
68
|
constructor (error, cause) { super(codes.ResponseContract, error, cause) }
|
|
71
69
|
}
|
|
72
70
|
|
|
73
|
-
class EntityContractException extends ContractException {
|
|
71
|
+
export class EntityContractException extends ContractException {
|
|
74
72
|
constructor (error, cause) { super(codes.EntityContract, error, cause) }
|
|
75
73
|
}
|
|
76
74
|
|
|
77
|
-
class EntityGuardException extends ContractException {
|
|
75
|
+
export class EntityGuardException extends ContractException {
|
|
78
76
|
constructor (name, cause) { super(codes.EntityGuard, name, cause) }
|
|
79
77
|
}
|
|
80
78
|
|
|
81
79
|
// #region exports
|
|
82
|
-
exports.Exception = Exception
|
|
83
|
-
exports.SystemException = SystemException
|
|
84
|
-
exports.RequestContractException = RequestContractException
|
|
85
|
-
exports.ResponseContractException = ResponseContractException
|
|
86
|
-
exports.EntityContractException = EntityContractException
|
|
87
|
-
exports.EntityGuardException = EntityGuardException
|
|
88
|
-
|
|
89
|
-
for (const [name, code] of Object.entries(codes)) {
|
|
90
|
-
const classname = name + 'Exception'
|
|
91
80
|
|
|
92
|
-
if (exports[classname] === undefined) {
|
|
93
|
-
exports[classname] = class extends Exception {
|
|
94
|
-
constructor (message, cause) {
|
|
95
|
-
message = message
|
|
96
|
-
? `${classname}: ${message}`
|
|
97
|
-
: classname
|
|
98
81
|
|
|
99
|
-
|
|
100
|
-
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
// a module's exports are static, so the ones that follow a code are named rather
|
|
88
|
+
// than generated onto the namespace
|
|
89
|
+
function derive (name) {
|
|
90
|
+
const classname = name + 'Exception'
|
|
91
|
+
|
|
92
|
+
return class extends Exception {
|
|
93
|
+
constructor (message, cause) {
|
|
94
|
+
super(codes[name], message ? `${classname}: ${message}` : classname, cause)
|
|
101
95
|
}
|
|
96
|
+
|
|
97
|
+
static name = classname
|
|
102
98
|
}
|
|
103
99
|
}
|
|
104
100
|
|
|
105
|
-
|
|
106
|
-
|
|
101
|
+
export const RequestSyntaxException = derive('RequestSyntax')
|
|
102
|
+
export const RequestConflictException = derive('RequestConflict')
|
|
103
|
+
export const QuerySyntaxException = derive('QuerySyntax')
|
|
104
|
+
export const StateException = derive('State')
|
|
105
|
+
export const StateNotFoundException = derive('StateNotFound')
|
|
106
|
+
export const StatePreconditionException = derive('StatePrecondition')
|
|
107
|
+
export const StateConcurrencyException = derive('StateConcurrency')
|
|
108
|
+
export const StateInitializationException = derive('StateInitialization')
|
|
109
|
+
export const DuplicateException = derive('Duplicate')
|
|
110
|
+
export const CommunicationException = derive('Communication')
|
|
111
|
+
export const TransmissionException = derive('Transmission')
|
|
112
|
+
|
|
113
|
+
export const names = swap(codes)
|
|
107
114
|
// #endregion
|
package/src/exposition.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { Connector } from './connector.js'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class Exposition extends Connector {
|
|
3
|
+
export class Exposition extends Connector {
|
|
6
4
|
locator
|
|
7
5
|
|
|
8
6
|
#exposition
|
|
@@ -24,5 +22,3 @@ const expose = (manifest) => {
|
|
|
24
22
|
|
|
25
23
|
return { namespace, name, entity, operations, events }
|
|
26
24
|
}
|
|
27
|
-
|
|
28
|
-
exports.Exposition = Exposition
|