@xyo-network/api 2.50.4 → 2.50.6
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/Api/Api.js +0 -10
- package/dist/cjs/Api/Api.js.map +1 -1
- package/dist/cjs/Api/Archive/Api.js +0 -27
- package/dist/cjs/Api/Archive/Api.js.map +1 -1
- package/dist/cjs/Api/Archive/index.js +0 -2
- package/dist/cjs/Api/Archive/index.js.map +1 -1
- package/dist/cjs/Api/Block/Api.js +1 -8
- package/dist/cjs/Api/Block/Api.js.map +1 -1
- package/dist/cjs/Api/index.js +0 -1
- package/dist/cjs/Api/index.js.map +1 -1
- package/dist/cjs/Diviner/index.js +0 -3
- package/dist/cjs/Diviner/index.js.map +1 -1
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/docs.json +23028 -64387
- package/dist/esm/Api/Api.js +0 -14
- package/dist/esm/Api/Api.js.map +1 -1
- package/dist/esm/Api/Archive/Api.js +0 -38
- package/dist/esm/Api/Archive/Api.js.map +1 -1
- package/dist/esm/Api/Archive/index.js +0 -2
- package/dist/esm/Api/Archive/index.js.map +1 -1
- package/dist/esm/Api/Block/Api.js +1 -11
- package/dist/esm/Api/Block/Api.js.map +1 -1
- package/dist/esm/Api/index.js +0 -1
- package/dist/esm/Api/index.js.map +1 -1
- package/dist/esm/Diviner/index.js +0 -3
- package/dist/esm/Diviner/index.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/types/Api/Api.d.ts +0 -6
- package/dist/types/Api/Api.d.ts.map +1 -1
- package/dist/types/Api/Archive/Api.d.ts +0 -17
- package/dist/types/Api/Archive/Api.d.ts.map +1 -1
- package/dist/types/Api/Archive/index.d.ts +0 -2
- package/dist/types/Api/Archive/index.d.ts.map +1 -1
- package/dist/types/Api/Block/Api.d.ts +1 -9
- package/dist/types/Api/Block/Api.d.ts.map +1 -1
- package/dist/types/Api/index.d.ts +0 -1
- package/dist/types/Api/index.d.ts.map +1 -1
- package/dist/types/Diviner/index.d.ts +0 -3
- package/dist/types/Diviner/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +15 -20
- package/src/Api/Api.ts +0 -15
- package/src/Api/Archive/Api.ts +0 -41
- package/src/Api/Archive/index.ts +0 -2
- package/src/Api/Block/Api.ts +3 -17
- package/src/Api/index.ts +0 -1
- package/src/Diviner/index.ts +0 -3
- package/src/index.ts +0 -1
- package/dist/cjs/Api/Addresses/Address/Api.js +0 -14
- package/dist/cjs/Api/Addresses/Address/Api.js.map +0 -1
- package/dist/cjs/Api/Addresses/Address/index.js +0 -5
- package/dist/cjs/Api/Addresses/Address/index.js.map +0 -1
- package/dist/cjs/Api/Addresses/Api.js +0 -15
- package/dist/cjs/Api/Addresses/Api.js.map +0 -1
- package/dist/cjs/Api/Addresses/index.js +0 -5
- package/dist/cjs/Api/Addresses/index.js.map +0 -1
- package/dist/cjs/Api/Archive/Schema/Api.js +0 -18
- package/dist/cjs/Api/Archive/Schema/Api.js.map +0 -1
- package/dist/cjs/Api/Archive/Schema/index.js +0 -5
- package/dist/cjs/Api/Archive/Schema/index.js.map +0 -1
- package/dist/cjs/Api/Archive/Schemas/Api.js +0 -17
- package/dist/cjs/Api/Archive/Schemas/Api.js.map +0 -1
- package/dist/cjs/Api/Archive/Schemas/index.js +0 -5
- package/dist/cjs/Api/Archive/Schemas/index.js.map +0 -1
- package/dist/cjs/Api/Payload/Api.js +0 -39
- package/dist/cjs/Api/Payload/Api.js.map +0 -1
- package/dist/cjs/Api/Payload/Schema/Api.js +0 -17
- package/dist/cjs/Api/Payload/Schema/Api.js.map +0 -1
- package/dist/cjs/Api/Payload/Schema/index.js +0 -5
- package/dist/cjs/Api/Payload/Schema/index.js.map +0 -1
- package/dist/cjs/Api/Payload/index.js +0 -6
- package/dist/cjs/Api/Payload/index.js.map +0 -1
- package/dist/cjs/Archivist/RemoteArchivistError.js +0 -14
- package/dist/cjs/Archivist/RemoteArchivistError.js.map +0 -1
- package/dist/cjs/Archivist/XyoRemoteArchivist.js +0 -135
- package/dist/cjs/Archivist/XyoRemoteArchivist.js.map +0 -1
- package/dist/cjs/Archivist/XyoRemoteArchivistConfig.js +0 -5
- package/dist/cjs/Archivist/XyoRemoteArchivistConfig.js.map +0 -1
- package/dist/cjs/Archivist/index.js +0 -7
- package/dist/cjs/Archivist/index.js.map +0 -1
- package/dist/cjs/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.js +0 -74
- package/dist/cjs/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.js.map +0 -1
- package/dist/cjs/Diviner/AddressHistoryDiviner/index.js +0 -5
- package/dist/cjs/Diviner/AddressHistoryDiviner/index.js.map +0 -1
- package/dist/cjs/Diviner/SchemaListApiDiviner/Payload.js +0 -3
- package/dist/cjs/Diviner/SchemaListApiDiviner/Payload.js.map +0 -1
- package/dist/cjs/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.js +0 -53
- package/dist/cjs/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.js.map +0 -1
- package/dist/cjs/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.js +0 -5
- package/dist/cjs/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.js.map +0 -1
- package/dist/cjs/Diviner/SchemaListApiDiviner/index.js +0 -7
- package/dist/cjs/Diviner/SchemaListApiDiviner/index.js.map +0 -1
- package/dist/cjs/Diviner/SchemaStatsApiDiviner/Payload.js +0 -5
- package/dist/cjs/Diviner/SchemaStatsApiDiviner/Payload.js.map +0 -1
- package/dist/cjs/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDiviner.js +0 -54
- package/dist/cjs/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDiviner.js.map +0 -1
- package/dist/cjs/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDivinerConfig.js +0 -5
- package/dist/cjs/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDivinerConfig.js.map +0 -1
- package/dist/cjs/Diviner/SchemaStatsApiDiviner/index.js +0 -7
- package/dist/cjs/Diviner/SchemaStatsApiDiviner/index.js.map +0 -1
- package/dist/esm/Api/Addresses/Address/Api.js +0 -13
- package/dist/esm/Api/Addresses/Address/Api.js.map +0 -1
- package/dist/esm/Api/Addresses/Address/index.js +0 -2
- package/dist/esm/Api/Addresses/Address/index.js.map +0 -1
- package/dist/esm/Api/Addresses/Api.js +0 -14
- package/dist/esm/Api/Addresses/Api.js.map +0 -1
- package/dist/esm/Api/Addresses/index.js +0 -2
- package/dist/esm/Api/Addresses/index.js.map +0 -1
- package/dist/esm/Api/Archive/Schema/Api.js +0 -18
- package/dist/esm/Api/Archive/Schema/Api.js.map +0 -1
- package/dist/esm/Api/Archive/Schema/index.js +0 -2
- package/dist/esm/Api/Archive/Schema/index.js.map +0 -1
- package/dist/esm/Api/Archive/Schemas/Api.js +0 -17
- package/dist/esm/Api/Archive/Schemas/Api.js.map +0 -1
- package/dist/esm/Api/Archive/Schemas/index.js +0 -2
- package/dist/esm/Api/Archive/Schemas/index.js.map +0 -1
- package/dist/esm/Api/Payload/Api.js +0 -42
- package/dist/esm/Api/Payload/Api.js.map +0 -1
- package/dist/esm/Api/Payload/Schema/Api.js +0 -17
- package/dist/esm/Api/Payload/Schema/Api.js.map +0 -1
- package/dist/esm/Api/Payload/Schema/index.js +0 -2
- package/dist/esm/Api/Payload/Schema/index.js.map +0 -1
- package/dist/esm/Api/Payload/index.js +0 -3
- package/dist/esm/Api/Payload/index.js.map +0 -1
- package/dist/esm/Archivist/RemoteArchivistError.js +0 -10
- package/dist/esm/Archivist/RemoteArchivistError.js.map +0 -1
- package/dist/esm/Archivist/XyoRemoteArchivist.js +0 -115
- package/dist/esm/Archivist/XyoRemoteArchivist.js.map +0 -1
- package/dist/esm/Archivist/XyoRemoteArchivistConfig.js +0 -2
- package/dist/esm/Archivist/XyoRemoteArchivistConfig.js.map +0 -1
- package/dist/esm/Archivist/index.js +0 -4
- package/dist/esm/Archivist/index.js.map +0 -1
- package/dist/esm/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.js +0 -61
- package/dist/esm/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.js.map +0 -1
- package/dist/esm/Diviner/AddressHistoryDiviner/index.js +0 -2
- package/dist/esm/Diviner/AddressHistoryDiviner/index.js.map +0 -1
- package/dist/esm/Diviner/SchemaListApiDiviner/Payload.js +0 -2
- package/dist/esm/Diviner/SchemaListApiDiviner/Payload.js.map +0 -1
- package/dist/esm/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.js +0 -35
- package/dist/esm/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.js.map +0 -1
- package/dist/esm/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.js +0 -2
- package/dist/esm/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.js.map +0 -1
- package/dist/esm/Diviner/SchemaListApiDiviner/index.js +0 -4
- package/dist/esm/Diviner/SchemaListApiDiviner/index.js.map +0 -1
- package/dist/esm/Diviner/SchemaStatsApiDiviner/Payload.js +0 -2
- package/dist/esm/Diviner/SchemaStatsApiDiviner/Payload.js.map +0 -1
- package/dist/esm/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDiviner.js +0 -36
- package/dist/esm/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDiviner.js.map +0 -1
- package/dist/esm/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDivinerConfig.js +0 -2
- package/dist/esm/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDivinerConfig.js.map +0 -1
- package/dist/esm/Diviner/SchemaStatsApiDiviner/index.js +0 -4
- package/dist/esm/Diviner/SchemaStatsApiDiviner/index.js.map +0 -1
- package/dist/types/Api/Addresses/Address/Api.d.ts +0 -11
- package/dist/types/Api/Addresses/Address/Api.d.ts.map +0 -1
- package/dist/types/Api/Addresses/Address/index.d.ts +0 -2
- package/dist/types/Api/Addresses/Address/index.d.ts.map +0 -1
- package/dist/types/Api/Addresses/Api.d.ts +0 -11
- package/dist/types/Api/Addresses/Api.d.ts.map +0 -1
- package/dist/types/Api/Addresses/index.d.ts +0 -2
- package/dist/types/Api/Addresses/index.d.ts.map +0 -1
- package/dist/types/Api/Archive/Schema/Api.d.ts +0 -11
- package/dist/types/Api/Archive/Schema/Api.d.ts.map +0 -1
- package/dist/types/Api/Archive/Schema/index.d.ts +0 -2
- package/dist/types/Api/Archive/Schema/index.d.ts.map +0 -1
- package/dist/types/Api/Archive/Schemas/Api.d.ts +0 -10
- package/dist/types/Api/Archive/Schemas/Api.d.ts.map +0 -1
- package/dist/types/Api/Archive/Schemas/index.d.ts +0 -2
- package/dist/types/Api/Archive/Schemas/index.d.ts.map +0 -1
- package/dist/types/Api/Payload/Api.d.ts +0 -28
- package/dist/types/Api/Payload/Api.d.ts.map +0 -1
- package/dist/types/Api/Payload/Schema/Api.d.ts +0 -12
- package/dist/types/Api/Payload/Schema/Api.d.ts.map +0 -1
- package/dist/types/Api/Payload/Schema/index.d.ts +0 -2
- package/dist/types/Api/Payload/Schema/index.d.ts.map +0 -1
- package/dist/types/Api/Payload/index.d.ts +0 -3
- package/dist/types/Api/Payload/index.d.ts.map +0 -1
- package/dist/types/Archivist/RemoteArchivistError.d.ts +0 -6
- package/dist/types/Archivist/RemoteArchivistError.d.ts.map +0 -1
- package/dist/types/Archivist/XyoRemoteArchivist.d.ts +0 -23
- package/dist/types/Archivist/XyoRemoteArchivist.d.ts.map +0 -1
- package/dist/types/Archivist/XyoRemoteArchivistConfig.d.ts +0 -12
- package/dist/types/Archivist/XyoRemoteArchivistConfig.d.ts.map +0 -1
- package/dist/types/Archivist/index.d.ts +0 -4
- package/dist/types/Archivist/index.d.ts.map +0 -1
- package/dist/types/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.d.ts +0 -20
- package/dist/types/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.d.ts.map +0 -1
- package/dist/types/Diviner/AddressHistoryDiviner/index.d.ts +0 -2
- package/dist/types/Diviner/AddressHistoryDiviner/index.d.ts.map +0 -1
- package/dist/types/Diviner/SchemaListApiDiviner/Payload.d.ts +0 -6
- package/dist/types/Diviner/SchemaListApiDiviner/Payload.d.ts.map +0 -1
- package/dist/types/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.d.ts +0 -20
- package/dist/types/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.d.ts.map +0 -1
- package/dist/types/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.d.ts +0 -9
- package/dist/types/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.d.ts.map +0 -1
- package/dist/types/Diviner/SchemaListApiDiviner/index.d.ts +0 -4
- package/dist/types/Diviner/SchemaListApiDiviner/index.d.ts.map +0 -1
- package/dist/types/Diviner/SchemaStatsApiDiviner/Payload.d.ts +0 -7
- package/dist/types/Diviner/SchemaStatsApiDiviner/Payload.d.ts.map +0 -1
- package/dist/types/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDiviner.d.ts +0 -20
- package/dist/types/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDiviner.d.ts.map +0 -1
- package/dist/types/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDivinerConfig.d.ts +0 -9
- package/dist/types/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDivinerConfig.d.ts.map +0 -1
- package/dist/types/Diviner/SchemaStatsApiDiviner/index.d.ts +0 -4
- package/dist/types/Diviner/SchemaStatsApiDiviner/index.d.ts.map +0 -1
- package/src/Api/Addresses/Address/Api.ts +0 -17
- package/src/Api/Addresses/Address/index.ts +0 -1
- package/src/Api/Addresses/Api.ts +0 -17
- package/src/Api/Addresses/index.ts +0 -1
- package/src/Api/Archive/Schema/Api.ts +0 -20
- package/src/Api/Archive/Schema/index.ts +0 -1
- package/src/Api/Archive/Schemas/Api.ts +0 -19
- package/src/Api/Archive/Schemas/index.ts +0 -1
- package/src/Api/Payload/Api.ts +0 -56
- package/src/Api/Payload/Schema/Api.ts +0 -21
- package/src/Api/Payload/Schema/index.ts +0 -1
- package/src/Api/Payload/index.ts +0 -2
- package/src/Archivist/RemoteArchivistError.ts +0 -9
- package/src/Archivist/XyoRemoteArchivist.ts +0 -130
- package/src/Archivist/XyoRemoteArchivistConfig.ts +0 -16
- package/src/Archivist/index.ts +0 -3
- package/src/Diviner/AddressHistoryDiviner/XyoRemoteAddressHistoryDiviner.ts +0 -70
- package/src/Diviner/AddressHistoryDiviner/index.ts +0 -1
- package/src/Diviner/SchemaListApiDiviner/Payload.ts +0 -9
- package/src/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.ts +0 -49
- package/src/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.ts +0 -13
- package/src/Diviner/SchemaListApiDiviner/index.ts +0 -3
- package/src/Diviner/SchemaStatsApiDiviner/Payload.ts +0 -11
- package/src/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDiviner.ts +0 -47
- package/src/Diviner/SchemaStatsApiDiviner/SchemaStatsApiDivinerConfig.ts +0 -13
- package/src/Diviner/SchemaStatsApiDiviner/index.ts +0 -3
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { AbstractArchivist, ArchivistFindQuerySchema, ArchivistInsertQuerySchema, ArchivistParams } from '@xyo-network/archivist'
|
|
2
|
-
import { isXyoBoundWitnessPayload, XyoBoundWitness } from '@xyo-network/boundwitness-model'
|
|
3
|
-
import { ModuleParams } from '@xyo-network/module'
|
|
4
|
-
import { PayloadFindFilter, XyoPayload } from '@xyo-network/payload-model'
|
|
5
|
-
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
6
|
-
import compact from 'lodash/compact'
|
|
7
|
-
|
|
8
|
-
import { XyoArchivistApi } from '../Api'
|
|
9
|
-
import { RemoteArchivistError } from './RemoteArchivistError'
|
|
10
|
-
import { XyoRemoteArchivistConfig, XyoRemoteArchivistConfigSchema } from './XyoRemoteArchivistConfig'
|
|
11
|
-
|
|
12
|
-
export type XyoRemoteArchivistParams = ModuleParams<XyoRemoteArchivistConfig> & { api?: XyoArchivistApi }
|
|
13
|
-
|
|
14
|
-
/** @description Archivist Context that connects to a remote archivist using the API */
|
|
15
|
-
export class XyoRemoteArchivist extends AbstractArchivist<ArchivistParams<XyoRemoteArchivistConfig>> {
|
|
16
|
-
static override configSchema = XyoRemoteArchivistConfigSchema
|
|
17
|
-
protected _api?: XyoArchivistApi
|
|
18
|
-
|
|
19
|
-
constructor(params: XyoRemoteArchivistParams) {
|
|
20
|
-
super(params)
|
|
21
|
-
this._api = params?.api
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
get api() {
|
|
25
|
-
if (this._api) {
|
|
26
|
-
return this._api
|
|
27
|
-
}
|
|
28
|
-
// eslint-disable-next-line deprecation/deprecation
|
|
29
|
-
if (this.config?.api) {
|
|
30
|
-
this.logger?.warn('api specified in config but should be specified in params')
|
|
31
|
-
// eslint-disable-next-line deprecation/deprecation
|
|
32
|
-
return this.config?.api
|
|
33
|
-
}
|
|
34
|
-
throw Error('No api specified')
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
get archive() {
|
|
38
|
-
return this.config?.archive
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
override get queries(): string[] {
|
|
42
|
-
return [ArchivistFindQuerySchema, ArchivistInsertQuerySchema, ...super.queries]
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
static override async create(params?: XyoRemoteArchivistParams): Promise<XyoRemoteArchivist> {
|
|
46
|
-
return (await super.create(params)) as XyoRemoteArchivist
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
override async find<R extends XyoPayload = XyoPayload>(filter: PayloadFindFilter): Promise<R[]> {
|
|
50
|
-
try {
|
|
51
|
-
const [payloads = [], payloadEnvelope, payloadResponse] = await this.api.archive(this.archive).payload.find(filter, 'tuple')
|
|
52
|
-
if (payloadEnvelope?.errors?.length) {
|
|
53
|
-
throw new RemoteArchivistError('find', payloadEnvelope.errors.shift(), 'payloads')
|
|
54
|
-
}
|
|
55
|
-
if (payloadResponse?.status >= 300) {
|
|
56
|
-
throw new RemoteArchivistError('find', `Invalid payload status [${payloadResponse.status}]`, 'payloads')
|
|
57
|
-
}
|
|
58
|
-
const [blocks = [], blockEnvelope, blockResponse] = await this.api.archive(this.archive).block.find(filter, 'tuple')
|
|
59
|
-
if (blockEnvelope?.errors?.length) {
|
|
60
|
-
throw new RemoteArchivistError('find', blockEnvelope.errors.shift(), 'payloads')
|
|
61
|
-
}
|
|
62
|
-
if (blockResponse?.status >= 300) {
|
|
63
|
-
throw new RemoteArchivistError('find', `Invalid block status [${blockResponse.status}]`, 'payloads')
|
|
64
|
-
}
|
|
65
|
-
return payloads.concat(blocks) as R[]
|
|
66
|
-
} catch (ex) {
|
|
67
|
-
console.error(ex)
|
|
68
|
-
throw ex
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
override async get(hashes: string[]): Promise<XyoPayload[]> {
|
|
73
|
-
return compact(
|
|
74
|
-
await Promise.all(
|
|
75
|
-
hashes.map(async (hash) => {
|
|
76
|
-
try {
|
|
77
|
-
const [payloads = [], payloadEnvelope, payloadResponse] = await this.api.archive(this.archive).payload.hash(hash).get('tuple')
|
|
78
|
-
if (payloadResponse?.status >= 400) {
|
|
79
|
-
throw new RemoteArchivistError('get', `Invalid payload status [${payloadResponse.status}]`, 'payloads')
|
|
80
|
-
}
|
|
81
|
-
if (payloadEnvelope?.errors?.length) {
|
|
82
|
-
throw new RemoteArchivistError('get', payloadEnvelope.errors.shift(), 'payloads')
|
|
83
|
-
}
|
|
84
|
-
const [blocks = [], blockEnvelope, blockResponse] = await this.api.archive(this.archive).block.hash(hash).get('tuple')
|
|
85
|
-
if (blockResponse?.status >= 400) {
|
|
86
|
-
throw new RemoteArchivistError('get', `Invalid block status [${blockResponse.status}]`, 'payloads')
|
|
87
|
-
}
|
|
88
|
-
if (blockEnvelope?.errors?.length) {
|
|
89
|
-
throw new RemoteArchivistError('get', blockEnvelope.errors.shift(), 'blocks')
|
|
90
|
-
}
|
|
91
|
-
return payloads?.[0] ?? blocks?.[0]
|
|
92
|
-
} catch (ex) {
|
|
93
|
-
console.error(ex)
|
|
94
|
-
throw ex
|
|
95
|
-
}
|
|
96
|
-
}),
|
|
97
|
-
),
|
|
98
|
-
)
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
async insert(payloads: XyoPayload[]): Promise<XyoBoundWitness[]> {
|
|
102
|
-
try {
|
|
103
|
-
const boundWitnesses: XyoBoundWitness[] = payloads.filter(isXyoBoundWitnessPayload)
|
|
104
|
-
boundWitnesses.forEach((boundwitness) => {
|
|
105
|
-
// doing this here to prevent breaking code (for now)
|
|
106
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
107
|
-
const anyBoundwitness: any = boundwitness
|
|
108
|
-
anyBoundwitness._payloads ===
|
|
109
|
-
payloads.filter((payload) => {
|
|
110
|
-
const hash = new PayloadWrapper(payload).hash
|
|
111
|
-
return boundwitness.payload_hashes.includes(hash)
|
|
112
|
-
})
|
|
113
|
-
})
|
|
114
|
-
const [boundwitness] = await this.bindResult(payloads)
|
|
115
|
-
const bwWithMeta: XyoBoundWitness & { _payloads: XyoPayload[] } = { ...boundwitness, _payloads: payloads }
|
|
116
|
-
const bwResult = await this.api.archive(this.archive).block.post([bwWithMeta], 'tuple')
|
|
117
|
-
const [, response, error] = bwResult
|
|
118
|
-
if (error?.status >= 400) {
|
|
119
|
-
throw new RemoteArchivistError('insert', `${error.statusText} [${error.status}]`)
|
|
120
|
-
}
|
|
121
|
-
if (response?.errors?.length) {
|
|
122
|
-
throw new RemoteArchivistError('insert', response?.errors)
|
|
123
|
-
}
|
|
124
|
-
return [boundwitness]
|
|
125
|
-
} catch (ex) {
|
|
126
|
-
console.error(ex)
|
|
127
|
-
throw ex
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { ArchivistConfig } from '@xyo-network/archivist'
|
|
2
|
-
import { XyoPayload } from '@xyo-network/payload-model'
|
|
3
|
-
|
|
4
|
-
import { XyoArchivistApi } from '../Api'
|
|
5
|
-
|
|
6
|
-
export type XyoRemoteArchivistConfigSchema = 'network.xyo.archivist.remote.config'
|
|
7
|
-
export const XyoRemoteArchivistConfigSchema: XyoRemoteArchivistConfigSchema = 'network.xyo.archivist.remote.config'
|
|
8
|
-
|
|
9
|
-
export type XyoRemoteArchivistConfig<T extends XyoPayload = XyoPayload> = ArchivistConfig<
|
|
10
|
-
{
|
|
11
|
-
/** @deprecated pass api in params instead */
|
|
12
|
-
api?: XyoArchivistApi
|
|
13
|
-
archive?: string
|
|
14
|
-
schema: XyoRemoteArchivistConfigSchema
|
|
15
|
-
} & T
|
|
16
|
-
>
|
package/src/Archivist/index.ts
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import { XyoBoundWitness, XyoBoundWitnessSchema } from '@xyo-network/boundwitness-model'
|
|
3
|
-
import { AbstractDiviner, AddressHistoryDiviner, DivinerParams, isAddressHistoryQueryPayload } from '@xyo-network/diviner'
|
|
4
|
-
import { ModuleParams } from '@xyo-network/module'
|
|
5
|
-
import { XyoPayloads } from '@xyo-network/payload-model'
|
|
6
|
-
|
|
7
|
-
import { XyoArchivistApi } from '../../Api'
|
|
8
|
-
import { RemoteDivinerError } from '../RemoteDivinerError'
|
|
9
|
-
import { XyoRemoteDivinerConfig, XyoRemoteDivinerConfigSchema } from '../XyoRemoteDivinerConfig'
|
|
10
|
-
|
|
11
|
-
export type XyoRemoteAddressHistoryDivinerParams = ModuleParams<XyoRemoteDivinerConfig> & {
|
|
12
|
-
api?: XyoArchivistApi
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/** @description Diviner Context that connects to a remote Diviner using the API */
|
|
16
|
-
export class XyoRemoteAddressHistoryDiviner extends AbstractDiviner<DivinerParams<XyoRemoteDivinerConfig>> implements AddressHistoryDiviner {
|
|
17
|
-
static override configSchema = XyoRemoteDivinerConfigSchema
|
|
18
|
-
static override targetSchema = XyoBoundWitnessSchema
|
|
19
|
-
|
|
20
|
-
protected _api?: XyoArchivistApi
|
|
21
|
-
|
|
22
|
-
protected constructor(params: XyoRemoteAddressHistoryDivinerParams) {
|
|
23
|
-
super(params)
|
|
24
|
-
this._api = params?.api
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
get api() {
|
|
28
|
-
if (this._api) {
|
|
29
|
-
return this._api
|
|
30
|
-
}
|
|
31
|
-
// eslint-disable-next-line deprecation/deprecation
|
|
32
|
-
if (this.config?.api) {
|
|
33
|
-
this.logger?.warn('api specified in config but should be specified in params')
|
|
34
|
-
// eslint-disable-next-line deprecation/deprecation
|
|
35
|
-
return this.config?.api
|
|
36
|
-
}
|
|
37
|
-
throw Error('No api specified')
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
static override async create(params?: XyoRemoteAddressHistoryDivinerParams) {
|
|
41
|
-
return (await super.create(params)) as XyoRemoteAddressHistoryDiviner
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
override async divine(payloads?: XyoPayloads): Promise<XyoBoundWitness[]> {
|
|
45
|
-
if (!payloads) return []
|
|
46
|
-
try {
|
|
47
|
-
const query = payloads.find(isAddressHistoryQueryPayload)
|
|
48
|
-
if (!query) return []
|
|
49
|
-
const { address, limit, offset } = query
|
|
50
|
-
const singleAddress = assertEx(Array.isArray(address) ? address[0] : address, 'At least one address required')
|
|
51
|
-
const find: { limit?: number; offset?: string } = {}
|
|
52
|
-
if (limit) find.limit = limit
|
|
53
|
-
if (offset) find.offset = `${offset}`
|
|
54
|
-
const [data, body, response] =
|
|
55
|
-
Object.keys(find).length > 0
|
|
56
|
-
? await this.api.addresses.address(singleAddress).boundWitnesses.find(find, 'tuple')
|
|
57
|
-
: await this.api.addresses.address(singleAddress).boundWitnesses.get('tuple')
|
|
58
|
-
if (response?.status >= 400) {
|
|
59
|
-
throw new RemoteDivinerError('divine', `${response.statusText} [${response.status}]`)
|
|
60
|
-
}
|
|
61
|
-
if (body?.errors?.length) {
|
|
62
|
-
throw new RemoteDivinerError('divine', body?.errors)
|
|
63
|
-
}
|
|
64
|
-
return data || []
|
|
65
|
-
} catch (ex) {
|
|
66
|
-
console.error(ex)
|
|
67
|
-
throw ex
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './XyoRemoteAddressHistoryDiviner'
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/* eslint-disable deprecation/deprecation */
|
|
2
|
-
import { assertEx } from '@xylabs/assert'
|
|
3
|
-
import { AbstractDiviner, DivinerParams } from '@xyo-network/diviner'
|
|
4
|
-
import { ModuleParams } from '@xyo-network/module'
|
|
5
|
-
import { XyoSchemaSchema } from '@xyo-network/schema-payload-plugin'
|
|
6
|
-
|
|
7
|
-
import { XyoArchivistApi } from '../../Api'
|
|
8
|
-
import { SchemaList } from './Payload'
|
|
9
|
-
import { XyoSchemaListApiDivinerConfig, XyoSchemaListApiDivinerConfigSchema } from './SchemaListApiDivinerConfig'
|
|
10
|
-
|
|
11
|
-
export type XyoSchemaListApiDivinerParams = ModuleParams<XyoSchemaListApiDivinerConfig> & { api: XyoArchivistApi }
|
|
12
|
-
|
|
13
|
-
/** @deprecated - send query to remote module instead */
|
|
14
|
-
export class SchemaListApiDiviner extends AbstractDiviner<DivinerParams<XyoSchemaListApiDivinerConfig>> {
|
|
15
|
-
static override configSchema = XyoSchemaListApiDivinerConfigSchema
|
|
16
|
-
static override targetSchema = XyoSchemaSchema
|
|
17
|
-
|
|
18
|
-
protected readonly api: XyoArchivistApi
|
|
19
|
-
|
|
20
|
-
protected constructor(params: XyoSchemaListApiDivinerParams) {
|
|
21
|
-
super(params)
|
|
22
|
-
this.api = params.api
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
get archive() {
|
|
26
|
-
return assertEx(this.config?.archive, `SchemaListApiDiviner config.archive required [${JSON.stringify(this.config, null, 2)}]`)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
static override async create(params: XyoSchemaListApiDivinerParams): Promise<SchemaListApiDiviner> {
|
|
30
|
-
return (await super.create(params)) as SchemaListApiDiviner
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
async divine(): Promise<SchemaList[]> {
|
|
34
|
-
const apiResult = (await this.api.archive(this.archive)?.payload.schema.get()) ?? []
|
|
35
|
-
return (
|
|
36
|
-
apiResult.map((schema) => {
|
|
37
|
-
return {
|
|
38
|
-
name: schema,
|
|
39
|
-
schema: XyoSchemaSchema,
|
|
40
|
-
}
|
|
41
|
-
}) ?? []
|
|
42
|
-
)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
protected override async start() {
|
|
46
|
-
await super.start()
|
|
47
|
-
return this
|
|
48
|
-
}
|
|
49
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { DivinerConfig } from '@xyo-network/diviner-model'
|
|
2
|
-
import { XyoPayload } from '@xyo-network/payload-model'
|
|
3
|
-
|
|
4
|
-
export type XyoSchemaListApiDivinerConfigSchema = 'network.xyo.diviner.schema.list.api.config'
|
|
5
|
-
export const XyoSchemaListApiDivinerConfigSchema: XyoSchemaListApiDivinerConfigSchema = 'network.xyo.diviner.schema.list.api.config'
|
|
6
|
-
|
|
7
|
-
export type XyoSchemaListApiDivinerConfig<T extends XyoPayload = XyoPayload> = DivinerConfig<
|
|
8
|
-
XyoPayload,
|
|
9
|
-
T & {
|
|
10
|
-
archive: string
|
|
11
|
-
schema: XyoSchemaListApiDivinerConfigSchema
|
|
12
|
-
}
|
|
13
|
-
>
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { XyoPayload } from '@xyo-network/payload-model'
|
|
2
|
-
|
|
3
|
-
export type SchemaStatsSchema = 'network.xyo.schema.stats'
|
|
4
|
-
export const SchemaStatsSchema: SchemaStatsSchema = 'network.xyo.schema.stats'
|
|
5
|
-
|
|
6
|
-
export type SchemaStats = XyoPayload<
|
|
7
|
-
{
|
|
8
|
-
counts: Record<string, number>
|
|
9
|
-
},
|
|
10
|
-
SchemaStatsSchema
|
|
11
|
-
>
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/* eslint-disable deprecation/deprecation */
|
|
2
|
-
import { assertEx } from '@xylabs/assert'
|
|
3
|
-
import { AbstractDiviner, DivinerParams } from '@xyo-network/diviner'
|
|
4
|
-
import { ModuleParams } from '@xyo-network/module'
|
|
5
|
-
|
|
6
|
-
import { XyoArchivistApi } from '../../Api'
|
|
7
|
-
import { SchemaStats, SchemaStatsSchema } from './Payload'
|
|
8
|
-
import { XyoSchemaStatsApiDivinerConfig, XyoSchemaStatsApiDivinerConfigSchema } from './SchemaStatsApiDivinerConfig'
|
|
9
|
-
|
|
10
|
-
export type XyoSchemaStatsApiDivinerParams = ModuleParams<XyoSchemaStatsApiDivinerConfig> & { api: XyoArchivistApi }
|
|
11
|
-
|
|
12
|
-
/** @deprecated - send query to remote module instead */
|
|
13
|
-
export class SchemaStatsApiDiviner extends AbstractDiviner<DivinerParams<XyoSchemaStatsApiDivinerConfig>> {
|
|
14
|
-
static override configSchema = XyoSchemaStatsApiDivinerConfigSchema
|
|
15
|
-
static override targetSchema = SchemaStatsSchema
|
|
16
|
-
|
|
17
|
-
protected readonly api: XyoArchivistApi
|
|
18
|
-
|
|
19
|
-
protected constructor(params: XyoSchemaStatsApiDivinerParams) {
|
|
20
|
-
super(params)
|
|
21
|
-
this.api = params.api
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
get archive() {
|
|
25
|
-
return assertEx(this.config?.archive, `SchemaStatsApiDiviner config.archive required [${JSON.stringify(this.config, null, 2)}]`)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
static override async create(params: XyoSchemaStatsApiDivinerParams): Promise<SchemaStatsApiDiviner> {
|
|
29
|
-
return (await super.create(params)) as SchemaStatsApiDiviner
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
async divine(): Promise<SchemaStats[]> {
|
|
33
|
-
const stats = await this.api.archive(this.archive).payload.schema.stats.get()
|
|
34
|
-
const result: SchemaStats[] = [
|
|
35
|
-
{
|
|
36
|
-
counts: stats?.counts ?? {},
|
|
37
|
-
schema: SchemaStatsSchema,
|
|
38
|
-
},
|
|
39
|
-
]
|
|
40
|
-
return result
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
protected override async start() {
|
|
44
|
-
await super.start()
|
|
45
|
-
return this
|
|
46
|
-
}
|
|
47
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { DivinerConfig } from '@xyo-network/diviner-model'
|
|
2
|
-
import { XyoPayload } from '@xyo-network/payload-model'
|
|
3
|
-
|
|
4
|
-
export type XyoSchemaStatsApiDivinerConfigSchema = 'network.xyo.diviner.schema.stats.api.config'
|
|
5
|
-
export const XyoSchemaStatsApiDivinerConfigSchema: XyoSchemaStatsApiDivinerConfigSchema = 'network.xyo.diviner.schema.stats.api.config'
|
|
6
|
-
|
|
7
|
-
export type XyoSchemaStatsApiDivinerConfig<T extends XyoPayload = XyoPayload> = DivinerConfig<
|
|
8
|
-
XyoPayload,
|
|
9
|
-
T & {
|
|
10
|
-
archive: string
|
|
11
|
-
schema: XyoSchemaStatsApiDivinerConfigSchema
|
|
12
|
-
}
|
|
13
|
-
>
|