@xyo-network/api 2.38.0-rc.8 → 2.38.0
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/dist/cjs/Archivist/Addresses/Address/Api.d.ts +8 -0
- package/dist/cjs/Archivist/Addresses/Address/Api.d.ts.map +1 -0
- package/dist/cjs/Archivist/Addresses/Address/Api.js +11 -0
- package/dist/cjs/Archivist/Addresses/Address/Api.js.map +1 -0
- package/dist/cjs/Archivist/Addresses/Address/index.d.ts +2 -0
- package/dist/cjs/Archivist/Addresses/Address/index.d.ts.map +1 -0
- package/dist/cjs/Archivist/Addresses/Address/index.js +5 -0
- package/dist/cjs/Archivist/Addresses/Address/index.js.map +1 -0
- package/dist/cjs/Archivist/Addresses/Api.d.ts +8 -0
- package/dist/cjs/Archivist/Addresses/Api.d.ts.map +1 -0
- package/dist/cjs/Archivist/Addresses/Api.js +12 -0
- package/dist/cjs/Archivist/Addresses/Api.js.map +1 -0
- package/dist/cjs/Archivist/Addresses/ModuleDescription.d.ts +5 -0
- package/dist/cjs/Archivist/Addresses/ModuleDescription.d.ts.map +1 -0
- package/dist/cjs/Archivist/Addresses/ModuleDescription.js +3 -0
- package/dist/cjs/Archivist/Addresses/ModuleDescription.js.map +1 -0
- package/dist/cjs/Archivist/Addresses/NodeModuleDescription.d.ts +5 -0
- package/dist/cjs/Archivist/Addresses/NodeModuleDescription.d.ts.map +1 -0
- package/dist/cjs/Archivist/Addresses/NodeModuleDescription.js +3 -0
- package/dist/cjs/Archivist/Addresses/NodeModuleDescription.js.map +1 -0
- package/dist/cjs/Archivist/Addresses/index.d.ts +4 -0
- package/dist/cjs/Archivist/Addresses/index.d.ts.map +1 -0
- package/dist/cjs/Archivist/Addresses/index.js +7 -0
- package/dist/cjs/Archivist/Addresses/index.js.map +1 -0
- package/dist/cjs/Archivist/Api.d.ts +3 -0
- package/dist/cjs/Archivist/Api.d.ts.map +1 -1
- package/dist/cjs/Archivist/Api.js +7 -0
- package/dist/cjs/Archivist/Api.js.map +1 -1
- package/dist/cjs/Archivist/XyoRemoteArchivist.d.ts +1 -1
- package/dist/cjs/Archivist/XyoRemoteArchivist.d.ts.map +1 -1
- package/dist/cjs/Archivist/XyoRemoteArchivist.js.map +1 -1
- package/dist/cjs/Diviner/AddressHistoryDiviner/AddressHistoryDiviner.d.ts +12 -0
- package/dist/cjs/Diviner/AddressHistoryDiviner/AddressHistoryDiviner.d.ts.map +1 -0
- package/dist/cjs/Diviner/AddressHistoryDiviner/AddressHistoryDiviner.js +7 -0
- package/dist/cjs/Diviner/AddressHistoryDiviner/AddressHistoryDiviner.js.map +1 -0
- package/dist/cjs/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.d.ts +14 -0
- package/dist/cjs/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.d.ts.map +1 -0
- package/dist/cjs/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.js +59 -0
- package/dist/cjs/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.js.map +1 -0
- package/dist/cjs/Diviner/AddressHistoryDiviner/index.d.ts +3 -0
- package/dist/cjs/Diviner/AddressHistoryDiviner/index.d.ts.map +1 -0
- package/dist/cjs/Diviner/AddressHistoryDiviner/index.js +6 -0
- package/dist/cjs/Diviner/AddressHistoryDiviner/index.js.map +1 -0
- package/dist/cjs/Diviner/RemoteDivinerError.d.ts +6 -0
- package/dist/cjs/Diviner/RemoteDivinerError.d.ts.map +1 -0
- package/dist/cjs/Diviner/RemoteDivinerError.js +14 -0
- package/dist/cjs/Diviner/RemoteDivinerError.js.map +1 -0
- package/dist/cjs/Diviner/XyoRemoteDivinerConfig.d.ts +10 -0
- package/dist/cjs/Diviner/XyoRemoteDivinerConfig.d.ts.map +1 -0
- package/dist/cjs/Diviner/XyoRemoteDivinerConfig.js +5 -0
- package/dist/cjs/Diviner/XyoRemoteDivinerConfig.js.map +1 -0
- package/dist/cjs/Diviner/index.d.ts +1 -0
- package/dist/cjs/Diviner/index.d.ts.map +1 -1
- package/dist/cjs/Diviner/index.js +1 -0
- package/dist/cjs/Diviner/index.js.map +1 -1
- package/dist/docs.json +9990 -6285
- package/dist/esm/Archivist/Addresses/Address/Api.d.ts +8 -0
- package/dist/esm/Archivist/Addresses/Address/Api.d.ts.map +1 -0
- package/dist/esm/Archivist/Addresses/Address/Api.js +10 -0
- package/dist/esm/Archivist/Addresses/Address/Api.js.map +1 -0
- package/dist/esm/Archivist/Addresses/Address/index.d.ts +2 -0
- package/dist/esm/Archivist/Addresses/Address/index.d.ts.map +1 -0
- package/dist/esm/Archivist/Addresses/Address/index.js +2 -0
- package/dist/esm/Archivist/Addresses/Address/index.js.map +1 -0
- package/dist/esm/Archivist/Addresses/Api.d.ts +8 -0
- package/dist/esm/Archivist/Addresses/Api.d.ts.map +1 -0
- package/dist/esm/Archivist/Addresses/Api.js +11 -0
- package/dist/esm/Archivist/Addresses/Api.js.map +1 -0
- package/dist/esm/Archivist/Addresses/ModuleDescription.d.ts +5 -0
- package/dist/esm/Archivist/Addresses/ModuleDescription.d.ts.map +1 -0
- package/dist/esm/Archivist/Addresses/ModuleDescription.js +2 -0
- package/dist/esm/Archivist/Addresses/ModuleDescription.js.map +1 -0
- package/dist/esm/Archivist/Addresses/NodeModuleDescription.d.ts +5 -0
- package/dist/esm/Archivist/Addresses/NodeModuleDescription.d.ts.map +1 -0
- package/dist/esm/Archivist/Addresses/NodeModuleDescription.js +2 -0
- package/dist/esm/Archivist/Addresses/NodeModuleDescription.js.map +1 -0
- package/dist/esm/Archivist/Addresses/index.d.ts +4 -0
- package/dist/esm/Archivist/Addresses/index.d.ts.map +1 -0
- package/dist/esm/Archivist/Addresses/index.js +4 -0
- package/dist/esm/Archivist/Addresses/index.js.map +1 -0
- package/dist/esm/Archivist/Api.d.ts +3 -0
- package/dist/esm/Archivist/Api.d.ts.map +1 -1
- package/dist/esm/Archivist/Api.js +11 -0
- package/dist/esm/Archivist/Api.js.map +1 -1
- package/dist/esm/Archivist/XyoRemoteArchivist.d.ts +1 -1
- package/dist/esm/Archivist/XyoRemoteArchivist.d.ts.map +1 -1
- package/dist/esm/Archivist/XyoRemoteArchivist.js.map +1 -1
- package/dist/esm/Diviner/AddressHistoryDiviner/AddressHistoryDiviner.d.ts +12 -0
- package/dist/esm/Diviner/AddressHistoryDiviner/AddressHistoryDiviner.d.ts.map +1 -0
- package/dist/esm/Diviner/AddressHistoryDiviner/AddressHistoryDiviner.js +3 -0
- package/dist/esm/Diviner/AddressHistoryDiviner/AddressHistoryDiviner.js.map +1 -0
- package/dist/esm/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.d.ts +14 -0
- package/dist/esm/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.d.ts.map +1 -0
- package/dist/esm/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.js +48 -0
- package/dist/esm/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.js.map +1 -0
- package/dist/esm/Diviner/AddressHistoryDiviner/index.d.ts +3 -0
- package/dist/esm/Diviner/AddressHistoryDiviner/index.d.ts.map +1 -0
- package/dist/esm/Diviner/AddressHistoryDiviner/index.js +3 -0
- package/dist/esm/Diviner/AddressHistoryDiviner/index.js.map +1 -0
- package/dist/esm/Diviner/RemoteDivinerError.d.ts +6 -0
- package/dist/esm/Diviner/RemoteDivinerError.d.ts.map +1 -0
- package/dist/esm/Diviner/RemoteDivinerError.js +10 -0
- package/dist/esm/Diviner/RemoteDivinerError.js.map +1 -0
- package/dist/esm/Diviner/XyoRemoteDivinerConfig.d.ts +10 -0
- package/dist/esm/Diviner/XyoRemoteDivinerConfig.d.ts.map +1 -0
- package/dist/esm/Diviner/XyoRemoteDivinerConfig.js +2 -0
- package/dist/esm/Diviner/XyoRemoteDivinerConfig.js.map +1 -0
- package/dist/esm/Diviner/index.d.ts +1 -0
- package/dist/esm/Diviner/index.d.ts.map +1 -1
- package/dist/esm/Diviner/index.js +1 -0
- package/dist/esm/Diviner/index.js.map +1 -1
- package/package.json +9 -9
- package/src/Archivist/Addresses/Address/Api.spec.ts +77 -0
- package/src/Archivist/Addresses/Address/Api.ts +14 -0
- package/src/Archivist/Addresses/Address/index.ts +1 -0
- package/src/Archivist/Addresses/Api.spec.ts +45 -0
- package/src/Archivist/Addresses/Api.ts +13 -0
- package/src/Archivist/Addresses/ModuleDescription.ts +4 -0
- package/src/Archivist/Addresses/NodeModuleDescription.ts +5 -0
- package/src/Archivist/Addresses/index.ts +3 -0
- package/src/Archivist/Api.ts +12 -0
- package/src/Archivist/XyoRemoteArchivist.ts +2 -2
- package/src/Diviner/AddressHistoryDiviner/AddressHistoryDiviner.ts +11 -0
- package/src/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.spec.ts +81 -0
- package/src/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.ts +52 -0
- package/src/Diviner/AddressHistoryDiviner/index.ts +2 -0
- package/src/Diviner/RemoteDivinerError.ts +9 -0
- package/src/Diviner/XyoRemoteDivinerConfig.ts +12 -0
- package/src/Diviner/index.ts +1 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { XyoApiConfig } from '../../models'
|
|
2
|
+
import { XyoApiSimple } from '../../Simple'
|
|
3
|
+
import { XyoAddressApi } from './Address'
|
|
4
|
+
import { NodeModuleDescription } from './NodeModuleDescription'
|
|
5
|
+
|
|
6
|
+
export class XyoAddressesApi<C extends XyoApiConfig = XyoApiConfig> extends XyoApiSimple<NodeModuleDescription[], C> {
|
|
7
|
+
public address(address: string): XyoAddressApi {
|
|
8
|
+
return new XyoAddressApi({
|
|
9
|
+
...this.config,
|
|
10
|
+
root: `${this.root}${address}/`,
|
|
11
|
+
})
|
|
12
|
+
}
|
|
13
|
+
}
|
package/src/Archivist/Api.ts
CHANGED
|
@@ -8,11 +8,23 @@ import { XyoApiResponseBody, XyoApiResponseTuple, XyoApiResponseTupleOrBody, Xyo
|
|
|
8
8
|
import { XyoApiSimple } from '../Simple'
|
|
9
9
|
import { XyoUserApi } from '../User'
|
|
10
10
|
import { XyoAccountApi } from './Account'
|
|
11
|
+
import { XyoAddressesApi } from './Addresses'
|
|
11
12
|
import { XyoArchivistArchiveApi } from './Archive'
|
|
12
13
|
import { XyoArchivistArchivesApi } from './Archives'
|
|
13
14
|
import { XyoArchivistNodeApi } from './Node'
|
|
14
15
|
|
|
15
16
|
export class XyoArchivistApi extends XyoApiBase {
|
|
17
|
+
private _addresses?: XyoAddressesApi
|
|
18
|
+
public get addresses(): XyoAddressesApi {
|
|
19
|
+
this._addresses =
|
|
20
|
+
this._addresses ??
|
|
21
|
+
new XyoAddressesApi({
|
|
22
|
+
...this.config,
|
|
23
|
+
root: `${this.root}address/`,
|
|
24
|
+
})
|
|
25
|
+
return this._addresses
|
|
26
|
+
}
|
|
27
|
+
|
|
16
28
|
private _archives?: XyoArchivistArchivesApi
|
|
17
29
|
public get archives(): XyoArchivistArchivesApi {
|
|
18
30
|
this._archives =
|
|
@@ -9,8 +9,8 @@ import { XyoRemoteArchivistConfig } from './XyoRemoteArchivistConfig'
|
|
|
9
9
|
|
|
10
10
|
/** @description Archivist Context that connects to a remote archivist using the API */
|
|
11
11
|
export class XyoRemoteArchivist extends XyoArchivist<XyoRemoteArchivistConfig> {
|
|
12
|
-
static override async create(params?: XyoModuleParams): Promise<XyoRemoteArchivist> {
|
|
13
|
-
const module = new XyoRemoteArchivist(params
|
|
12
|
+
static override async create(params?: XyoModuleParams<XyoRemoteArchivistConfig>): Promise<XyoRemoteArchivist> {
|
|
13
|
+
const module = new XyoRemoteArchivist(params)
|
|
14
14
|
await module.start()
|
|
15
15
|
return module
|
|
16
16
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { XyoDiviner } from '@xyo-network/diviner'
|
|
2
|
+
import { XyoQuery } from '@xyo-network/module'
|
|
3
|
+
import { XyoPayload, XyoPayloadFindFilter } from '@xyo-network/payload'
|
|
4
|
+
|
|
5
|
+
export type AddressHistoryQuerySchema = 'network.xyo.diviner.address.query'
|
|
6
|
+
export const AddressHistoryQuerySchema: AddressHistoryQuerySchema = 'network.xyo.diviner.address.query'
|
|
7
|
+
|
|
8
|
+
export type AddressHistoryQueryPayload = XyoQuery<{ address: string; schema: AddressHistoryQuerySchema } & XyoPayloadFindFilter>
|
|
9
|
+
export const isAddressHistoryQueryPayload = (x?: XyoPayload | null): x is AddressHistoryQueryPayload => x?.schema === AddressHistoryQuerySchema
|
|
10
|
+
|
|
11
|
+
export type AddressHistoryDiviner = XyoDiviner
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { XyoAccount } from '@xyo-network/account'
|
|
2
|
+
import { BoundWitnessWrapper, XyoBoundWitness, XyoBoundWitnessSchema } from '@xyo-network/boundwitness'
|
|
3
|
+
import { XyoDivinerWrapper } from '@xyo-network/diviner'
|
|
4
|
+
import { XyoPayloadBuilder } from '@xyo-network/payload'
|
|
5
|
+
|
|
6
|
+
import { XyoArchivistApi } from '../../Archivist'
|
|
7
|
+
import { XyoApiConfig } from '../../models'
|
|
8
|
+
import { XyoRemoteDivinerConfig, XyoRemoteDivinerConfigSchema } from '../XyoRemoteDivinerConfig'
|
|
9
|
+
import { AddressHistoryQuerySchema } from './AddressHistoryDiviner'
|
|
10
|
+
import { XyoRemoteAddressHistoryDiviner } from './XyoRemoteAddressHistoryDiviner'
|
|
11
|
+
|
|
12
|
+
const configData: XyoApiConfig = {
|
|
13
|
+
apiDomain: process.env.API_DOMAIN || 'https://beta.api.archivist.xyo.network',
|
|
14
|
+
onError: (error) => console.error(`Error: ${JSON.stringify(error)}`),
|
|
15
|
+
onFailure: (response) => response, //console.error(`Failure: ${response.statusText} [${response.status}] [${JSON.stringify(response.data)}]`),
|
|
16
|
+
onSuccess: (response) => response, //console.log(`Success: ${response.statusText} [${response.status}] [${JSON.stringify(response.data)}]`),
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
describe('XyoRemoteAddressHistoryDiviner', () => {
|
|
20
|
+
const address = new XyoAccount({ phrase: 'test' }).addressValue.hex
|
|
21
|
+
const api = new XyoArchivistApi(configData)
|
|
22
|
+
let diviner: XyoRemoteAddressHistoryDiviner
|
|
23
|
+
beforeAll(async () => {
|
|
24
|
+
diviner = await XyoRemoteAddressHistoryDiviner.create({ config: { api, schema: XyoRemoteDivinerConfigSchema } as XyoRemoteDivinerConfig })
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
describe('with valid address returns', () => {
|
|
28
|
+
let result: XyoBoundWitness[]
|
|
29
|
+
beforeAll(async () => {
|
|
30
|
+
const source = new XyoPayloadBuilder({ schema: AddressHistoryQuerySchema }).fields({ address }).build()
|
|
31
|
+
result = (await new XyoDivinerWrapper(diviner).divine([source])) as XyoBoundWitness[]
|
|
32
|
+
expect(result.length).toBeGreaterThan(0)
|
|
33
|
+
})
|
|
34
|
+
it('array of Bound Witnesses', () => {
|
|
35
|
+
result.map((bw) => {
|
|
36
|
+
expect(bw.schema).toBe(XyoBoundWitnessSchema)
|
|
37
|
+
})
|
|
38
|
+
})
|
|
39
|
+
it('from address', () => {
|
|
40
|
+
expect(result.length).toBeGreaterThan(0)
|
|
41
|
+
result.map((bw) => {
|
|
42
|
+
expect(bw.addresses).toContain(address)
|
|
43
|
+
})
|
|
44
|
+
})
|
|
45
|
+
})
|
|
46
|
+
describe('with hash offset returns', () => {
|
|
47
|
+
let result: XyoBoundWitness[]
|
|
48
|
+
let hash: string
|
|
49
|
+
beforeAll(async () => {
|
|
50
|
+
let source = new XyoPayloadBuilder({ schema: AddressHistoryQuerySchema }).fields({ address }).build()
|
|
51
|
+
result = (await new XyoDivinerWrapper(diviner).divine([source])) as XyoBoundWitness[]
|
|
52
|
+
expect(result.length).toBeGreaterThan(0)
|
|
53
|
+
hash = new BoundWitnessWrapper(result?.[0]).hash
|
|
54
|
+
source = new XyoPayloadBuilder({ schema: AddressHistoryQuerySchema }).fields({ address, offset: hash }).build()
|
|
55
|
+
result = (await new XyoDivinerWrapper(diviner).divine([source])) as XyoBoundWitness[]
|
|
56
|
+
expect(result.length).toBeGreaterThan(0)
|
|
57
|
+
})
|
|
58
|
+
it('results starting at hash', () => {
|
|
59
|
+
expect(new BoundWitnessWrapper(result?.[0]).hash).toBe(hash)
|
|
60
|
+
})
|
|
61
|
+
})
|
|
62
|
+
describe('with limit returns', () => {
|
|
63
|
+
const limit = 1
|
|
64
|
+
let result: XyoBoundWitness[]
|
|
65
|
+
beforeAll(async () => {
|
|
66
|
+
const source = new XyoPayloadBuilder({ schema: AddressHistoryQuerySchema }).fields({ address, limit }).build()
|
|
67
|
+
result = (await new XyoDivinerWrapper(diviner).divine([source])) as XyoBoundWitness[]
|
|
68
|
+
expect(result.length).toBeGreaterThan(0)
|
|
69
|
+
})
|
|
70
|
+
it('number of results specified by the limit', () => {
|
|
71
|
+
expect(result.length).toBe(limit)
|
|
72
|
+
})
|
|
73
|
+
})
|
|
74
|
+
describe('with non-existent address', () => {
|
|
75
|
+
it('returns empty array', async () => {
|
|
76
|
+
const source = new XyoPayloadBuilder({ schema: AddressHistoryQuerySchema }).fields({ address: 'foo' }).build()
|
|
77
|
+
const result = await new XyoDivinerWrapper(diviner).divine([source])
|
|
78
|
+
expect(result.length).toBe(0)
|
|
79
|
+
})
|
|
80
|
+
})
|
|
81
|
+
})
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import { XyoBoundWitness } from '@xyo-network/boundwitness'
|
|
3
|
+
import { XyoDiviner, XyoDivinerDivineQuerySchema } from '@xyo-network/diviner'
|
|
4
|
+
import { XyoModuleParams } from '@xyo-network/module'
|
|
5
|
+
import { XyoPayloads } from '@xyo-network/payload'
|
|
6
|
+
|
|
7
|
+
import { RemoteDivinerError } from '../RemoteDivinerError'
|
|
8
|
+
import { XyoRemoteDivinerConfig } from '../XyoRemoteDivinerConfig'
|
|
9
|
+
import { AddressHistoryDiviner, isAddressHistoryQueryPayload } from './AddressHistoryDiviner'
|
|
10
|
+
|
|
11
|
+
/** @description Diviner Context that connects to a remote Diviner using the API */
|
|
12
|
+
export class XyoRemoteAddressHistoryDiviner extends XyoDiviner<XyoRemoteDivinerConfig> implements AddressHistoryDiviner {
|
|
13
|
+
static override async create(params?: XyoModuleParams<XyoRemoteDivinerConfig>): Promise<XyoRemoteAddressHistoryDiviner> {
|
|
14
|
+
const module = new XyoRemoteAddressHistoryDiviner(params)
|
|
15
|
+
await module.start()
|
|
16
|
+
return module
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public get api() {
|
|
20
|
+
return assertEx(this.config?.api, 'API not defined')
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public override queries() {
|
|
24
|
+
return [XyoDivinerDivineQuerySchema, ...super.queries()]
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public override async divine(payloads?: XyoPayloads): Promise<XyoBoundWitness[]> {
|
|
28
|
+
if (!payloads) return []
|
|
29
|
+
try {
|
|
30
|
+
const query = payloads.find(isAddressHistoryQueryPayload)
|
|
31
|
+
if (!query) return []
|
|
32
|
+
const { address, limit, offset } = query
|
|
33
|
+
const find: { limit?: number; offset?: string } = {}
|
|
34
|
+
if (limit) find.limit = limit
|
|
35
|
+
if (offset) find.offset = `${offset}`
|
|
36
|
+
const [data, body, response] =
|
|
37
|
+
Object.keys(find).length > 0
|
|
38
|
+
? await this.api.addresses.address(address).boundWitnesses.find(find, 'tuple')
|
|
39
|
+
: await this.api.addresses.address(address).boundWitnesses.get('tuple')
|
|
40
|
+
if (response?.status >= 400) {
|
|
41
|
+
throw new RemoteDivinerError('divine', `${response.statusText} [${response.status}]`)
|
|
42
|
+
}
|
|
43
|
+
if (body?.error?.length) {
|
|
44
|
+
throw new RemoteDivinerError('divine', body?.error)
|
|
45
|
+
}
|
|
46
|
+
return data || []
|
|
47
|
+
} catch (ex) {
|
|
48
|
+
console.error(ex)
|
|
49
|
+
throw ex
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export class RemoteDivinerError extends Error {
|
|
2
|
+
constructor(action: string, error: Error['cause'], message?: string) {
|
|
3
|
+
super(`Remote Diviner [${action}] failed${message ? ` (${message})` : ''}`, { cause: error })
|
|
4
|
+
}
|
|
5
|
+
isRemoteDivinerError = true
|
|
6
|
+
static isRemoteDivinerError(error: unknown): RemoteDivinerError | undefined {
|
|
7
|
+
return (error as RemoteDivinerError).isRemoteDivinerError ? (error as RemoteDivinerError) : undefined
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { XyoDivinerConfig } from '@xyo-network/diviner'
|
|
2
|
+
|
|
3
|
+
import { XyoArchivistApi } from '../Archivist'
|
|
4
|
+
|
|
5
|
+
export type XyoRemoteDivinerConfigSchema = 'network.xyo.diviner.remote.config'
|
|
6
|
+
export const XyoRemoteDivinerConfigSchema: XyoRemoteDivinerConfigSchema = 'network.xyo.diviner.remote.config'
|
|
7
|
+
|
|
8
|
+
export type XyoRemoteDivinerConfig = XyoDivinerConfig & {
|
|
9
|
+
schema: XyoRemoteDivinerConfigSchema
|
|
10
|
+
api?: XyoArchivistApi
|
|
11
|
+
archive?: string
|
|
12
|
+
}
|
package/src/Diviner/index.ts
CHANGED