@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.
Files changed (93) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +8 -7
  3. package/src/assignment.js +2 -6
  4. package/src/call.js +5 -7
  5. package/src/cascade.js +2 -6
  6. package/src/component.js +4 -8
  7. package/src/composition.js +3 -7
  8. package/src/connector.js +2 -6
  9. package/src/context.js +2 -6
  10. package/src/contract/contract.js +2 -6
  11. package/src/contract/index.js +2 -7
  12. package/src/contract/reply.js +4 -8
  13. package/src/contract/request.js +4 -8
  14. package/src/contract/schemas/index.js +7 -9
  15. package/src/discovery.js +3 -7
  16. package/src/effect.js +2 -6
  17. package/src/emission.js +2 -6
  18. package/src/entities/changeset.js +2 -6
  19. package/src/entities/entity.js +3 -7
  20. package/src/entities/factory.js +5 -9
  21. package/src/entities/index.js +1 -5
  22. package/src/entities/newid.js +2 -4
  23. package/src/entities/set.js +2 -6
  24. package/src/event.js +3 -7
  25. package/src/exceptions.js +37 -30
  26. package/src/exposition.js +2 -6
  27. package/src/guard.js +1 -5
  28. package/src/index.js +28 -55
  29. package/src/locator.js +2 -6
  30. package/src/observation.js +2 -6
  31. package/src/operation.js +4 -8
  32. package/src/outbox/index.js +1 -6
  33. package/src/outbox/outbox.js +5 -10
  34. package/src/query/criteria.js +3 -7
  35. package/src/query/options.js +2 -6
  36. package/src/query.js +5 -6
  37. package/src/receiver.js +4 -8
  38. package/src/reflection.js +2 -6
  39. package/src/remote.js +3 -7
  40. package/src/state.js +2 -6
  41. package/src/transition.js +4 -8
  42. package/src/transmission.js +3 -7
  43. package/src/unmanaged.js +2 -6
  44. package/test/call.fixtures.js +8 -12
  45. package/test/call.test.js +21 -9
  46. package/test/component.fixtures.js +5 -8
  47. package/test/component.test.js +22 -11
  48. package/test/connector.fixtures.js +5 -11
  49. package/test/connector.test.js +42 -41
  50. package/test/context.fixtures.js +8 -12
  51. package/test/context.test.js +18 -7
  52. package/test/contract/conditions.test.js +8 -6
  53. package/test/contract/contract.fixtures.js +12 -17
  54. package/test/contract/request.test.js +51 -40
  55. package/test/discovery.test.js +25 -17
  56. package/test/emission.fixtures.js +5 -8
  57. package/test/emission.test.js +29 -12
  58. package/test/entities/entity.fixtures.js +7 -11
  59. package/test/entities/entity.test.js +30 -19
  60. package/test/entities/factory.fixtures.js +22 -10
  61. package/test/entities/factory.test.js +29 -17
  62. package/test/entities/set.fixtures.js +6 -8
  63. package/test/entities/set.test.js +6 -5
  64. package/test/event.fixtures.js +9 -14
  65. package/test/event.test.js +57 -31
  66. package/test/locator.test.js +25 -24
  67. package/test/outbox.test.js +44 -37
  68. package/test/query.fixtures.js +1 -5
  69. package/test/query.test.js +28 -17
  70. package/test/receiver.fixtures.js +8 -12
  71. package/test/receiver.test.js +45 -22
  72. package/test/reflection.test.js +7 -6
  73. package/test/state.fixtures.js +24 -32
  74. package/test/state.test.js +35 -30
  75. package/test/transmission.fixtures.js +4 -6
  76. package/test/transmission.test.js +33 -15
  77. package/types/atomicity.d.ts +1 -1
  78. package/types/bindings.d.ts +1 -1
  79. package/types/bridges.ts +3 -3
  80. package/types/component.d.ts +4 -4
  81. package/types/context.d.ts +4 -4
  82. package/types/entity.d.ts +2 -2
  83. package/types/event.d.ts +1 -1
  84. package/types/extensions.d.ts +8 -7
  85. package/types/index.ts +16 -16
  86. package/types/operations.d.ts +1 -1
  87. package/types/outbox.d.ts +2 -2
  88. package/types/receiver.d.ts +2 -2
  89. package/types/reflection.d.ts +1 -1
  90. package/types/remote.d.ts +1 -1
  91. package/types/request.d.ts +1 -1
  92. package/types/state.d.ts +2 -2
  93. package/types/storages.d.ts +3 -3
@@ -1,50 +1,42 @@
1
- 'use strict'
1
+ import { mock } from 'node:test'
2
2
 
3
- const { generate } = require('randomstring')
3
+ import { generate } from 'randomstring'
4
4
 
5
- const storage = {
5
+ export const storage = {
6
6
  name: 'dummy',
7
- get: jest.fn(() => ({ id: generate() })),
8
- find: jest.fn(() => ([{ id: generate() }])),
9
- add: jest.fn(() => true),
10
- set: jest.fn(() => true),
11
- store: jest.fn(() => true),
12
- massStore: jest.fn(() => true),
13
- upsert: jest.fn(() => ({ id: generate() })),
14
- ensure: jest.fn((query, properties, state) => state)
7
+ get: mock.fn(() => ({ id: generate() })),
8
+ find: mock.fn(() => ([{ id: generate() }])),
9
+ add: mock.fn(() => true),
10
+ set: mock.fn(() => true),
11
+ store: mock.fn(() => true),
12
+ massStore: mock.fn(() => true),
13
+ upsert: mock.fn(() => ({ id: generate() })),
14
+ ensure: mock.fn((query, properties, state) => state)
15
15
  }
16
16
 
17
- const factory = {
18
- object: jest.fn(() => ({ [generate()]: generate() })),
19
- objects: jest.fn(() => ({ [generate()]: generate() }))
17
+ export const factory = {
18
+ object: mock.fn(() => ({ [generate()]: generate() })),
19
+ objects: mock.fn(() => ({ [generate()]: generate() }))
20
20
  }
21
21
 
22
- const query = generate()
22
+ export const query = generate()
23
23
 
24
- const entity = {
25
- get: jest.fn(() => ({ [generate()]: generate() })),
26
- event: jest.fn(() => ({ state: { [generate()]: generate() } }))
24
+ export const entity = {
25
+ get: mock.fn(() => ({ [generate()]: generate() })),
26
+ event: mock.fn(() => ({ state: { [generate()]: generate() } }))
27
27
  }
28
28
 
29
- const initial = {
29
+ export const initial = {
30
30
  initial: true, ...entity
31
31
  }
32
32
 
33
- const unchanged = {
33
+ export const unchanged = {
34
34
  ...entity,
35
- event: jest.fn(() => ({ state: { [generate()]: generate() } }))
35
+ event: mock.fn(() => ({ state: { [generate()]: generate() } }))
36
36
  }
37
37
 
38
38
  // a legacy outbox: no storage capability, so `publish` emits inline
39
- const outbox = {
40
- row: jest.fn((event) => ({ id: generate(), lane: 0, published: false, pending: 0, event })),
41
- publish: jest.fn()
39
+ export const outbox = {
40
+ row: mock.fn((event) => ({ id: generate(), lane: 0, published: false, pending: 0, event })),
41
+ publish: mock.fn()
42
42
  }
43
-
44
- exports.storage = storage
45
- exports.factory = factory
46
- exports.outbox = outbox
47
- exports.query = query
48
- exports.entity = entity
49
- exports.initial = initial
50
- exports.unchanged = unchanged
@@ -1,12 +1,14 @@
1
- 'use strict'
1
+ import { describe, it, beforeEach, mock } from 'node:test'
2
+ import assert from 'node:assert/strict'
3
+ import { isDeepStrictEqual } from 'node:util'
2
4
 
3
- const { State } = require('../src/state')
4
- const fixtures = require('./state.fixtures')
5
+ import { State } from '../src/state.js'
6
+ import * as fixtures from './state.fixtures.js'
5
7
 
6
8
  let state
7
9
 
8
10
  beforeEach(() => {
9
- jest.clearAllMocks()
11
+ resetCalls()
10
12
 
11
13
  state = new State(fixtures.storage, fixtures.factory, fixtures.outbox)
12
14
  })
@@ -14,59 +16,53 @@ beforeEach(() => {
14
16
  it('should provide object', async () => {
15
17
  const entity = await state.object(fixtures.query)
16
18
 
17
- expect(fixtures.storage.get).toHaveBeenCalledWith(fixtures.query)
18
- expect(entity).toStrictEqual(fixtures.factory.object.mock.results[0].value)
19
- expect(fixtures.factory.object)
20
- .toHaveBeenCalledWith(fixtures.storage.get.mock.results[0].value, true)
19
+ assert.ok(fixtures.storage.get.mock.calls.some((call) => call.arguments.length === 1 && isDeepStrictEqual(call.arguments[0], fixtures.query)))
20
+ assert.deepStrictEqual(entity, fixtures.factory.object.mock.calls[0].result)
21
+ assert.ok(fixtures.factory.object.mock.calls.some((call) => call.arguments.length === 2 && isDeepStrictEqual(call.arguments[0], fixtures.storage.get.mock.calls[0].result) && isDeepStrictEqual(call.arguments[1], true)))
21
22
  })
22
23
 
23
24
  it('should provide read-only object', async () => {
24
25
  await state.object(fixtures.query, false)
25
26
 
26
- expect(fixtures.factory.object)
27
- .toHaveBeenCalledWith(fixtures.storage.get.mock.results[0].value, false)
27
+ assert.ok(fixtures.factory.object.mock.calls.some((call) => call.arguments.length === 2 && isDeepStrictEqual(call.arguments[0], fixtures.storage.get.mock.calls[0].result) && isDeepStrictEqual(call.arguments[1], false)))
28
28
  })
29
29
 
30
30
  it('should provide read-only objects', async () => {
31
31
  await state.objects(fixtures.query, false)
32
32
 
33
- expect(fixtures.factory.objects)
34
- .toHaveBeenCalledWith(fixtures.storage.find.mock.results[0].value, undefined, false)
33
+ assert.ok(fixtures.factory.objects.mock.calls.some((call) => call.arguments.length === 3 && isDeepStrictEqual(call.arguments[0], fixtures.storage.find.mock.calls[0].result) && isDeepStrictEqual(call.arguments[1], undefined) && isDeepStrictEqual(call.arguments[2], false)))
35
34
  })
36
35
 
37
36
  it('should store entity', async () => {
38
37
  await state.commit(fixtures.initial)
39
38
 
40
- expect(fixtures.storage.store).toHaveBeenCalledWith(
41
- fixtures.initial.get.mock.results[0].value,
42
- fixtures.outbox.row.mock.results[0].value)
39
+ assert.ok(fixtures.storage.store.mock.calls.some((call) => call.arguments.length === 2 && isDeepStrictEqual(call.arguments[0], fixtures.initial.get.mock.calls[0].result) && isDeepStrictEqual(call.arguments[1], fixtures.outbox.row.mock.calls[0].result)))
43
40
  })
44
41
 
45
42
  it('should publish the row', async () => {
46
43
  await state.commit(fixtures.entity)
47
44
 
48
- expect(fixtures.outbox.row).toHaveBeenCalledWith(fixtures.entity.event.mock.results[0].value)
49
- expect(fixtures.outbox.publish).toHaveBeenCalledWith(fixtures.outbox.row.mock.results[0].value)
45
+ assert.ok(fixtures.outbox.row.mock.calls.some((call) => call.arguments.length === 1 && isDeepStrictEqual(call.arguments[0], fixtures.entity.event.mock.calls[0].result)))
46
+ assert.ok(fixtures.outbox.publish.mock.calls.some((call) => call.arguments.length === 1 && isDeepStrictEqual(call.arguments[0], fixtures.outbox.row.mock.calls[0].result)))
50
47
  })
51
48
 
52
49
  it('should not publish if the write did not happen', async () => {
53
- fixtures.storage.store.mockImplementationOnce(() => false)
50
+ fixtures.storage.store.mock.mockImplementationOnce(() => false)
54
51
 
55
52
  await state.commit(fixtures.entity)
56
53
 
57
- expect(fixtures.outbox.publish).not.toHaveBeenCalled()
54
+ assert.strictEqual(fixtures.outbox.publish.mock.callCount(), 0)
58
55
  })
59
56
 
60
57
  it('should build the row before the write', async () => {
61
58
  // the storage commits the row in the same transaction, so it must already exist
62
- fixtures.storage.store.mockImplementationOnce((_, row) => {
63
- expect(row).toBeDefined()
59
+ fixtures.storage.store.mock.mockImplementationOnce((_, row) => {
60
+ assert.notStrictEqual(row, undefined)
64
61
 
65
62
  return true
66
63
  })
67
64
 
68
- expect.assertions(1)
69
-
65
+
70
66
  await state.commit(fixtures.entity)
71
67
  })
72
68
 
@@ -76,19 +72,28 @@ describe('assignment', () => {
76
72
  it('should pass the row to upsert and publish it', async () => {
77
73
  const result = await state.apply(changeset, { foo: 1 })
78
74
 
79
- expect(fixtures.storage.upsert).toHaveBeenCalledWith(
80
- changeset.query, { foo: 1 }, fixtures.outbox.row.mock.results[0].value)
75
+ assert.ok(fixtures.storage.upsert.mock.calls.some((call) => call.arguments.length === 3 && isDeepStrictEqual(call.arguments[0], changeset.query) && isDeepStrictEqual(call.arguments[1], { foo: 1 }) && isDeepStrictEqual(call.arguments[2], fixtures.outbox.row.mock.calls[0].result)))
81
76
 
82
- expect(fixtures.outbox.publish).toHaveBeenCalledWith(fixtures.outbox.row.mock.results[0].value)
83
- expect(result).toStrictEqual(fixtures.storage.upsert.mock.results[0].value)
77
+ assert.ok(fixtures.outbox.publish.mock.calls.some((call) => call.arguments.length === 1 && isDeepStrictEqual(call.arguments[0], fixtures.outbox.row.mock.calls[0].result)))
78
+ assert.deepStrictEqual(result, fixtures.storage.upsert.mock.calls[0].result)
84
79
  })
85
80
 
86
81
  it('should fill the state a storage without the outbox left alone', async () => {
87
82
  await state.apply(changeset, { foo: 1 })
88
83
 
89
- const row = fixtures.outbox.row.mock.results[0].value
84
+ const row = fixtures.outbox.row.mock.calls[0].result
90
85
 
91
- expect(row.event.state).toStrictEqual(fixtures.storage.upsert.mock.results[0].value)
92
- expect(row.event.input).toStrictEqual({ foo: 1 })
86
+ assert.deepStrictEqual(row.event.state, fixtures.storage.upsert.mock.calls[0].result)
87
+ assert.deepStrictEqual(row.event.input, { foo: 1 })
93
88
  })
94
89
  })
90
+
91
+ function resetCalls (target = [assert, fixtures], seen = new Set()) {
92
+ if (target === null || typeof target !== 'object' || seen.has(target)) return
93
+
94
+ seen.add(target)
95
+
96
+ for (const value of Object.values(target))
97
+ if (typeof value === 'function' && value.mock !== undefined) value.mock.resetCalls()
98
+ else resetCalls(value, seen)
99
+ }
@@ -1,15 +1,13 @@
1
- 'use strict'
1
+ import { mock } from 'node:test'
2
2
 
3
- const { generate } = require('randomstring')
3
+ import { generate } from 'randomstring'
4
4
 
5
5
  const binding = (index) => ({
6
- request: jest.fn(async (request) => {
6
+ request: mock.fn(async (request) => {
7
7
  if (request?.pick !== undefined && request.pick !== index) return false
8
8
 
9
9
  return { output: generate() }
10
10
  })
11
11
  })
12
12
 
13
- const bindings = [0, 1, 2, 3, 4].map(binding)
14
-
15
- exports.bindings = bindings
13
+ export const bindings = [0, 1, 2, 3, 4].map(binding)
@@ -1,16 +1,24 @@
1
- 'use strict'
1
+ import { it, beforeEach, mock } from 'node:test'
2
+ import assert from 'node:assert/strict'
3
+ import { isDeepStrictEqual } from 'node:util'
2
4
 
3
- jest.mock('../src/connector')
5
+ import { Connector } from '../src/connector.js'
4
6
 
5
- const { Connector } = require('../src/connector')
6
- const { Transmission } = require('../src/transmission')
7
- const { codes } = require('../src/exceptions')
8
- const fixtures = require('./transmission.fixtures')
7
+ // the fixtures are not connectors, so a dependency is recorded rather than linked
8
+ const depends = mock.method(Connector.prototype, 'depends', () => undefined)
9
+
10
+ const dependencies = (instance) => depends.mock.calls
11
+ .filter((call) => call.this === instance)
12
+ .map((call) => call.arguments[0])
13
+ import { Transmission } from '../src/transmission.js'
14
+ import { codes } from '../src/exceptions.js'
15
+ import * as fixtures from './transmission.fixtures.js'
9
16
 
10
17
  let transmission
11
18
 
12
19
  beforeEach(() => {
13
- jest.clearAllMocks()
20
+ resetCalls()
21
+ depends.mock.resetCalls()
14
22
  })
15
23
 
16
24
  beforeEach(() => {
@@ -18,29 +26,39 @@ beforeEach(() => {
18
26
  })
19
27
 
20
28
  it('should be instance of Connector depending on bindings', () => {
21
- expect(transmission).toBeInstanceOf(Connector)
22
- expect(Connector.mock.instances[0].depends).toHaveBeenCalledWith(fixtures.bindings)
29
+ assert.ok(transmission instanceof Connector)
30
+ assert.ok(dependencies(transmission).some((one) => isDeepStrictEqual(one, fixtures.bindings)))
23
31
  })
24
32
 
25
33
  it('should pass arguments and return value', async () => {
26
34
  const request = { foo: 'bar' }
27
35
  const result = await transmission.request(request)
28
36
 
29
- expect(fixtures.bindings[0].request).toHaveBeenCalledWith(request)
30
- expect(result).toBe(await fixtures.bindings[0].request.mock.results[0].value)
37
+ assert.ok(fixtures.bindings[0].request.mock.calls.some((call) => call.arguments.length === 1 && isDeepStrictEqual(call.arguments[0], request)))
38
+ assert.strictEqual(result, await fixtures.bindings[0].request.mock.calls[0].result)
31
39
  })
32
40
 
33
41
  it('should pick bindings sequentially', async () => {
34
42
  let result = await transmission.request()
35
- expect(result).toBe(await fixtures.bindings[0].request.mock.results[0].value)
43
+ assert.strictEqual(result, await fixtures.bindings[0].request.mock.calls[0].result)
36
44
 
37
45
  result = await transmission.request({ pick: 1 })
38
- expect(result).toBe(await fixtures.bindings[1].request.mock.results[0]?.value)
46
+ assert.strictEqual(result, await fixtures.bindings[1].request.mock.calls[0]?.result)
39
47
  })
40
48
 
41
49
  it('should throw exception if none succeeded', async () => {
42
- await expect(transmission.request({ pick: 5 })).rejects.toMatchObject({ code: codes.Transmission })
50
+ await assert.rejects(transmission.request({ pick: 5 }), (error) => { assert.partialDeepStrictEqual(error, { code: codes.Transmission }); return true })
43
51
 
44
52
  fixtures.bindings.forEach((binding) =>
45
- expect(binding.request).toHaveBeenCalled())
53
+ assert.ok(binding.request.mock.callCount() > 0))
46
54
  })
55
+
56
+ function resetCalls (target = [assert, depends, dependencies, fixtures], seen = new Set()) {
57
+ if (target === null || typeof target !== 'object' || seen.has(target)) return
58
+
59
+ seen.add(target)
60
+
61
+ for (const value of Object.values(target))
62
+ if (typeof value === 'function' && value.mock !== undefined) value.mock.resetCalls()
63
+ else resetCalls(value, seen)
64
+ }
@@ -1,6 +1,6 @@
1
1
  // noinspection ES6UnusedImports
2
2
 
3
- import { Connector } from './connector'
3
+ import { Connector } from './connector.js'
4
4
 
5
5
  declare namespace toa.core {
6
6
 
@@ -1,4 +1,4 @@
1
- import * as _core from './index'
1
+ import * as _core from './index.js'
2
2
 
3
3
  declare namespace toa.core.bindings {
4
4
 
package/types/bridges.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { Request, Reply } from './request'
2
- import type { Context } from './context'
3
- import type { Connector } from './connector'
1
+ import type { Request, Reply } from './request.js'
2
+ import type { Context } from './context.js'
3
+ import type { Connector } from './connector.js'
4
4
 
5
5
  export interface Algorithm {
6
6
  mount: (context?: Context) => Promise<void>
@@ -1,7 +1,7 @@
1
- import { Connector } from './connector'
2
- import { Locator } from './locator'
3
- import { Request } from './request'
4
- import { Operation } from './operations'
1
+ import { Connector } from './connector.js'
2
+ import { Locator } from './locator.js'
3
+ import { Request } from './request.js'
4
+ import { Operation } from './operations.js'
5
5
 
6
6
  export class Component extends Connector {
7
7
  locator: Locator
@@ -1,8 +1,8 @@
1
- import * as _request from './request'
2
- import { Locator } from './locator'
1
+ import * as _request from './request.js'
2
+ import { Locator } from './locator.js'
3
3
  import * as _reply from './reply'
4
- import * as _extensions from './extensions'
5
- import * as _connector from './connector'
4
+ import * as _extensions from './extensions.js'
5
+ import * as _connector from './connector.js'
6
6
 
7
7
  export interface Context extends _connector.Connector{
8
8
  aspects: _extensions.Aspect[]
package/types/entity.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import * as _event from './event'
2
- import * as _storages from './storages'
1
+ import * as _event from './event.js'
2
+ import * as _storages from './storages.js'
3
3
 
4
4
  declare namespace toa.core {
5
5
 
package/types/event.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as _state from './state'
1
+ import * as _state from './state.js'
2
2
 
3
3
  declare namespace toa.core {
4
4
 
@@ -1,16 +1,17 @@
1
- import * as _core from './index'
2
- import * as _component from './component'
3
- import * as _context from './context'
4
- import * as _storages from './storages'
5
- import * as _bindings from './bindings'
1
+ import * as _core from './index.js'
2
+ import * as _component from './component.js'
3
+ import * as _context from './context.js'
4
+ import * as _storages from './storages.js'
5
+ import * as _bindings from './bindings.js'
6
6
  import { Manifest } from '@toa.io/norm'
7
7
 
8
8
  export interface Factory {
9
- tenant? (locator: _core.Locator, manifest: object, component: Manifest): _core.Connector
9
+ tenant? (locator: _core.Locator, manifest: object, component: Manifest):
10
+ _core.Connector | Promise<_core.Connector>
10
11
 
11
12
  aspect? (locator: _core.Locator, manifest: object | null): Aspect | Aspect[]
12
13
 
13
- service? (name?: string): _core.Connector | null
14
+ service? (name?: string): _core.Connector | null | Promise<_core.Connector | null>
14
15
 
15
16
  component? (component: _component.Component): _component.Component
16
17
 
package/types/index.ts CHANGED
@@ -1,17 +1,17 @@
1
- export * as bindings from './bindings'
2
- export * as extensions from './extensions'
3
- export * as storages from './storages'
4
- export * as outbox from './outbox'
5
- export * as atomicity from './atomicity'
6
- export * as bridges from './bridges'
7
- export * as operations from './operations'
1
+ export * as bindings from './bindings.js'
2
+ export * as extensions from './extensions.js'
3
+ export * as storages from './storages.js'
4
+ export * as outbox from './outbox.js'
5
+ export * as atomicity from './atomicity.js'
6
+ export * as bridges from './bridges.js'
7
+ export * as operations from './operations.js'
8
8
 
9
- export type { Component } from './component'
10
- export type { Remote } from './remote'
11
- export { Connector } from './connector'
12
- export type { Context } from './context'
13
- export type { Exception } from './exception'
14
- export { Locator } from './locator'
15
- export type { Receiver } from './receiver'
16
- export type { Message } from './message'
17
- export type { Request, Query, Reply, Source } from './request'
9
+ export type { Component } from './component.js'
10
+ export type { Remote } from './remote.js'
11
+ export { Connector } from './connector.js'
12
+ export type { Context } from './context.js'
13
+ export type { Exception } from './exception.js'
14
+ export { Locator } from './locator.js'
15
+ export type { Receiver } from './receiver.js'
16
+ export type { Message } from './message.js'
17
+ export type { Request, Query, Reply, Source } from './request.js'
@@ -1,4 +1,4 @@
1
- import { Request } from './request'
1
+ import { Request } from './request.js'
2
2
 
3
3
  export type type = 'transition' | 'observation' | 'assignment' | 'computation' | 'effect'
4
4
  export type scope = 'object' | 'objects' | 'changeset'
package/types/outbox.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import * as _state from './state'
2
- import * as _atomicity from './atomicity'
1
+ import * as _state from './state.js'
2
+ import * as _atomicity from './atomicity.js'
3
3
 
4
4
  declare namespace toa.core {
5
5
 
@@ -1,5 +1,5 @@
1
- import * as _message from './message'
2
- import * as _connector from './connector'
1
+ import * as _message from './message.js'
2
+ import * as _connector from './connector.js'
3
3
 
4
4
  declare namespace toa.core {
5
5
 
@@ -1,4 +1,4 @@
1
- import * as _core from './connector'
1
+ import * as _core from './connector.js'
2
2
 
3
3
  declare namespace toa.core {
4
4
 
package/types/remote.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Component } from './component'
1
+ import { Component } from './component.js'
2
2
 
3
3
  export class Remote extends Component {
4
4
  explain (endpoint: string): Promise<Explanation>
@@ -1,4 +1,4 @@
1
- import { Exception } from './exception'
1
+ import { Exception } from './exception.js'
2
2
 
3
3
  export interface Query {
4
4
  id?: string
package/types/state.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import * as _entity from './entity'
2
- import * as _storages from './storages'
1
+ import * as _entity from './entity.js'
2
+ import * as _storages from './storages.js'
3
3
 
4
4
  declare namespace toa.core {
5
5
 
@@ -1,8 +1,8 @@
1
1
  // noinspection ES6UnusedImports
2
2
 
3
- import { Locator } from './locator'
4
- import { Connector } from './connector'
5
- import * as outbox from './outbox'
3
+ import { Locator } from './locator.js'
4
+ import { Connector } from './connector.js'
5
+ import * as outbox from './outbox.js'
6
6
 
7
7
  declare namespace toa.core {
8
8