@xyo-network/archivist-mongodb 3.1.7 → 3.2.0-rc.1
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/browser/Archivist.d.ts +109 -35
- package/dist/browser/Archivist.d.ts.map +1 -1
- package/dist/browser/index.mjs +75 -138
- package/dist/browser/index.mjs.map +1 -1
- package/dist/browser/lib/validByType.d.ts +5 -6
- package/dist/browser/lib/validByType.d.ts.map +1 -1
- package/dist/neutral/Archivist.d.ts +109 -35
- package/dist/neutral/Archivist.d.ts.map +1 -1
- package/dist/neutral/index.mjs +75 -138
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/lib/validByType.d.ts +5 -6
- package/dist/neutral/lib/validByType.d.ts.map +1 -1
- package/dist/node/Archivist.d.ts +109 -35
- package/dist/node/Archivist.d.ts.map +1 -1
- package/dist/node/index.mjs +75 -138
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/lib/validByType.d.ts +5 -6
- package/dist/node/lib/validByType.d.ts.map +1 -1
- package/package.json +24 -26
- package/src/Archivist.ts +28 -24
- package/src/lib/validByType.ts +3 -3
package/dist/node/Archivist.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Hash } from '@xylabs/hex';
|
|
2
2
|
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
3
|
import type { ArchivistNextOptions } from '@xyo-network/archivist-model';
|
|
4
|
-
import type { Payload, Schema,
|
|
4
|
+
import type { Payload, Schema, Sequence, WithStorageMeta } from '@xyo-network/payload-model';
|
|
5
5
|
import type { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
|
|
6
6
|
declare const MongoDBArchivistBase: (abstract new (...args: any[]) => {
|
|
7
7
|
_boundWitnessSdk: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<import("@xyo-network/payload-mongodb").BoundWitnessWithMongoMeta> | undefined;
|
|
@@ -13,31 +13,105 @@ declare const MongoDBArchivistBase: (abstract new (...args: any[]) => {
|
|
|
13
13
|
readonly payloads: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<PayloadWithMongoMeta>;
|
|
14
14
|
ensureIndexes(): Promise<void>;
|
|
15
15
|
address: import("@xylabs/hex").Address;
|
|
16
|
-
config: import("@
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
config: import("@xylabs/object").DeepRestrictToStringKeys<{
|
|
17
|
+
schema: import("@xyo-network/payload-model").Schema;
|
|
18
|
+
readonly archivist?: import("@xyo-network/module-model").ModuleIdentifier | undefined;
|
|
19
|
+
readonly archiving?: {
|
|
20
|
+
readonly archivists?: string[] | undefined;
|
|
21
|
+
readonly queries?: string[] | undefined;
|
|
22
|
+
} | undefined;
|
|
23
|
+
readonly allowedQueries?: string[] | undefined;
|
|
24
|
+
readonly consoleLogger?: import(".store/@xylabs-logger-npm-4.4.25-f61ab04e23/package").LogLevel | undefined;
|
|
25
|
+
readonly labels?: {
|
|
26
|
+
[x: string]: string | undefined;
|
|
27
|
+
} | undefined;
|
|
28
|
+
readonly name?: import("@xyo-network/module-model").ModuleName | undefined;
|
|
29
|
+
readonly paging?: {
|
|
30
|
+
[x: string]: {
|
|
31
|
+
size?: number | undefined;
|
|
32
|
+
};
|
|
33
|
+
} | undefined;
|
|
34
|
+
readonly retry?: {
|
|
35
|
+
backoff?: number | undefined;
|
|
36
|
+
interval?: number | undefined;
|
|
37
|
+
retries?: number | undefined;
|
|
38
|
+
} | undefined;
|
|
39
|
+
readonly security?: {
|
|
40
|
+
readonly allowAnonymous?: boolean | undefined;
|
|
41
|
+
readonly allowed?: {
|
|
42
|
+
[x: string]: (Lowercase<string> | Lowercase<string>[])[];
|
|
43
|
+
} | undefined;
|
|
44
|
+
readonly disallowed?: {
|
|
45
|
+
[x: string]: Lowercase<string>[];
|
|
46
|
+
} | undefined;
|
|
47
|
+
} | undefined;
|
|
48
|
+
readonly sign?: boolean | undefined;
|
|
49
|
+
readonly storeQueries?: boolean | undefined;
|
|
50
|
+
readonly timestamp?: boolean | undefined;
|
|
51
|
+
boundWitnessSdkConfig?: {
|
|
52
|
+
closeDelay?: number | undefined;
|
|
53
|
+
collection?: string | undefined;
|
|
54
|
+
maxPoolSize?: number | undefined;
|
|
55
|
+
} | undefined;
|
|
56
|
+
payloadSdkConfig?: {
|
|
57
|
+
closeDelay?: number | undefined;
|
|
58
|
+
collection?: string | undefined;
|
|
59
|
+
maxPoolSize?: number | undefined;
|
|
60
|
+
} | undefined;
|
|
61
|
+
}>;
|
|
25
62
|
id: string;
|
|
26
63
|
modName?: import("@xyo-network/module-model").ModuleName;
|
|
27
64
|
params: import("@xylabs/object").BaseParamsFields & {
|
|
28
|
-
account?: import("
|
|
65
|
+
account?: import(".store/@xyo-network-account-model-virtual-6f489a9106/package").AccountInstance | "random";
|
|
29
66
|
addToResolvers?: boolean;
|
|
30
|
-
additionalSigners?: import("
|
|
67
|
+
additionalSigners?: import(".store/@xyo-network-account-model-virtual-6f489a9106/package").AccountInstance[];
|
|
31
68
|
allowNameResolution?: boolean;
|
|
32
|
-
config: import("@
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
69
|
+
config: import("@xylabs/object").DeepRestrictToStringKeys<{
|
|
70
|
+
schema: import("@xyo-network/payload-model").Schema;
|
|
71
|
+
readonly archivist?: import("@xyo-network/module-model").ModuleIdentifier | undefined;
|
|
72
|
+
readonly archiving?: {
|
|
73
|
+
readonly archivists?: string[] | undefined;
|
|
74
|
+
readonly queries?: string[] | undefined;
|
|
75
|
+
} | undefined;
|
|
76
|
+
readonly allowedQueries?: string[] | undefined;
|
|
77
|
+
readonly consoleLogger?: import(".store/@xylabs-logger-npm-4.4.25-f61ab04e23/package").LogLevel | undefined;
|
|
78
|
+
readonly labels?: {
|
|
79
|
+
[x: string]: string | undefined;
|
|
80
|
+
} | undefined;
|
|
81
|
+
readonly name?: import("@xyo-network/module-model").ModuleName | undefined;
|
|
82
|
+
readonly paging?: {
|
|
83
|
+
[x: string]: {
|
|
84
|
+
size?: number | undefined;
|
|
85
|
+
};
|
|
86
|
+
} | undefined;
|
|
87
|
+
readonly retry?: {
|
|
88
|
+
backoff?: number | undefined;
|
|
89
|
+
interval?: number | undefined;
|
|
90
|
+
retries?: number | undefined;
|
|
91
|
+
} | undefined;
|
|
92
|
+
readonly security?: {
|
|
93
|
+
readonly allowAnonymous?: boolean | undefined;
|
|
94
|
+
readonly allowed?: {
|
|
95
|
+
[x: string]: (Lowercase<string> | Lowercase<string>[])[];
|
|
96
|
+
} | undefined;
|
|
97
|
+
readonly disallowed?: {
|
|
98
|
+
[x: string]: Lowercase<string>[];
|
|
99
|
+
} | undefined;
|
|
100
|
+
} | undefined;
|
|
101
|
+
readonly sign?: boolean | undefined;
|
|
102
|
+
readonly storeQueries?: boolean | undefined;
|
|
103
|
+
readonly timestamp?: boolean | undefined;
|
|
104
|
+
boundWitnessSdkConfig?: {
|
|
105
|
+
closeDelay?: number | undefined;
|
|
106
|
+
collection?: string | undefined;
|
|
107
|
+
maxPoolSize?: number | undefined;
|
|
108
|
+
} | undefined;
|
|
109
|
+
payloadSdkConfig?: {
|
|
110
|
+
closeDelay?: number | undefined;
|
|
111
|
+
collection?: string | undefined;
|
|
112
|
+
maxPoolSize?: number | undefined;
|
|
113
|
+
} | undefined;
|
|
114
|
+
}>;
|
|
41
115
|
ephemeralQueryAccountEnabled?: boolean;
|
|
42
116
|
moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
|
|
43
117
|
} & {
|
|
@@ -45,22 +119,22 @@ declare const MongoDBArchivistBase: (abstract new (...args: any[]) => {
|
|
|
45
119
|
jobQueue?: import("@xyo-network/node-core-model").JobQueue;
|
|
46
120
|
payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
|
|
47
121
|
};
|
|
48
|
-
previousHash: () => import("
|
|
122
|
+
previousHash: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<string | undefined>;
|
|
49
123
|
queries: string[];
|
|
50
|
-
query: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf) => import("
|
|
51
|
-
queryable: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf_1 extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf_1) => import("
|
|
52
|
-
start?: () => import("
|
|
53
|
-
stop?: () => import("
|
|
124
|
+
query: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf) => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<import("@xyo-network/module-model").ModuleQueryResult>;
|
|
125
|
+
queryable: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf_1 extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf_1) => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
|
|
126
|
+
start?: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
|
|
127
|
+
stop?: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
|
|
54
128
|
eventData: import("@xyo-network/module-model").ModuleEventData<object>;
|
|
55
129
|
clearListeners(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): void;
|
|
56
130
|
emit<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
|
|
57
131
|
emitSerial<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
|
|
58
132
|
listenerCount(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): number;
|
|
59
|
-
off<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("
|
|
60
|
-
offAny(listener: import("
|
|
61
|
-
on<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("
|
|
62
|
-
onAny(listener: import("
|
|
63
|
-
once<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, listener: import("
|
|
133
|
+
off<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): void;
|
|
134
|
+
offAny(listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventAnyListener | Promise<void>): void;
|
|
135
|
+
on<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
|
|
136
|
+
onAny(listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventAnyListener): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
|
|
137
|
+
once<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
|
|
64
138
|
}) & {
|
|
65
139
|
labels: import("@xyo-network/module-model-mongodb").MongoDBStorageClassLabels;
|
|
66
140
|
} & typeof AbstractArchivist;
|
|
@@ -72,11 +146,11 @@ export declare class MongoDBArchivist extends MongoDBArchivistBase {
|
|
|
72
146
|
* The amount of time to allow the aggregate query to execute
|
|
73
147
|
*/
|
|
74
148
|
protected readonly aggregateTimeoutMs = 10000;
|
|
75
|
-
head(): Promise<Payload | undefined>;
|
|
76
149
|
protected findOneByHash(hash: Hash): Promise<import("mongodb").WithId<PayloadWithMongoMeta> | undefined>;
|
|
77
|
-
protected
|
|
78
|
-
protected
|
|
79
|
-
protected
|
|
150
|
+
protected findOneBySequence(sequence: Sequence): Promise<import("mongodb").WithId<PayloadWithMongoMeta> | null>;
|
|
151
|
+
protected getHandler(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]>;
|
|
152
|
+
protected insertHandler(payloads: Payload[]): Promise<WithStorageMeta<Payload>[]>;
|
|
153
|
+
protected nextHandler(options?: ArchivistNextOptions): Promise<WithStorageMeta<Payload>[]>;
|
|
80
154
|
protected startHandler(): Promise<boolean>;
|
|
81
155
|
}
|
|
82
156
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAKxE,OAAO,KAAK,EACV,OAAO,EAAE,MAAM,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"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"}
|
package/dist/node/index.mjs
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/Archivist.ts
|
|
5
2
|
import { exists } from "@xylabs/exists";
|
|
6
3
|
import { AbstractArchivist } from "@xyo-network/archivist-abstract";
|
|
@@ -9,217 +6,157 @@ import { MongoDBArchivistConfigSchema } from "@xyo-network/archivist-model-mongo
|
|
|
9
6
|
import { MongoDBModuleMixin } from "@xyo-network/module-abstract-mongodb";
|
|
10
7
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
11
8
|
import { fromDbRepresentation, toDbRepresentation } from "@xyo-network/payload-mongodb";
|
|
12
|
-
import { PayloadWrapper as PayloadWrapper2 } from "@xyo-network/payload-wrapper";
|
|
13
9
|
import { ObjectId } from "mongodb";
|
|
14
10
|
|
|
15
11
|
// src/lib/validByType.ts
|
|
16
12
|
import { isBoundWitness, isQueryBoundWitness } from "@xyo-network/boundwitness-model";
|
|
17
13
|
import { BoundWitnessWrapper, QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
|
|
18
14
|
import { PayloadWrapper } from "@xyo-network/payload-wrapper";
|
|
19
|
-
var validByType =
|
|
20
|
-
const results = [
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
15
|
+
var validByType = async (payloads = []) => {
|
|
16
|
+
const results = [[], []];
|
|
17
|
+
await Promise.all(
|
|
18
|
+
payloads.map(async (payload) => {
|
|
19
|
+
if (isBoundWitness(payload)) {
|
|
20
|
+
const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper;
|
|
21
|
+
const bw = wrapper.parse(payload);
|
|
22
|
+
if (await bw.getValid()) {
|
|
23
|
+
results[0].push(payload);
|
|
24
|
+
} else {
|
|
25
|
+
const errors = await bw.getErrors();
|
|
26
|
+
console.log(`validByType.Error: ${JSON.stringify(errors, null, 2)}`);
|
|
27
|
+
}
|
|
30
28
|
} else {
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const payloadWrapper = PayloadWrapper.wrap(payload);
|
|
36
|
-
if (await payloadWrapper.getValid()) {
|
|
37
|
-
results[1].push(payload);
|
|
29
|
+
const payloadWrapper = PayloadWrapper.wrap(payload);
|
|
30
|
+
if (await payloadWrapper.getValid()) {
|
|
31
|
+
results[1].push(payload);
|
|
32
|
+
}
|
|
38
33
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
34
|
+
return;
|
|
35
|
+
})
|
|
36
|
+
);
|
|
42
37
|
return results;
|
|
43
|
-
}
|
|
38
|
+
};
|
|
44
39
|
|
|
45
40
|
// src/Archivist.ts
|
|
46
41
|
var MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist);
|
|
47
42
|
var MongoDBArchivist = class extends MongoDBArchivistBase {
|
|
48
|
-
static
|
|
49
|
-
__name(this, "MongoDBArchivist");
|
|
50
|
-
}
|
|
51
|
-
static configSchemas = [
|
|
52
|
-
...super.configSchemas,
|
|
53
|
-
MongoDBArchivistConfigSchema
|
|
54
|
-
];
|
|
43
|
+
static configSchemas = [...super.configSchemas, MongoDBArchivistConfigSchema];
|
|
55
44
|
static defaultConfigSchema = MongoDBArchivistConfigSchema;
|
|
56
|
-
queries = [
|
|
57
|
-
ArchivistInsertQuerySchema,
|
|
58
|
-
ArchivistNextQuerySchema,
|
|
59
|
-
...super.queries
|
|
60
|
-
];
|
|
45
|
+
queries = [ArchivistInsertQuerySchema, ArchivistNextQuerySchema, ...super.queries];
|
|
61
46
|
/**
|
|
62
|
-
|
|
63
|
-
|
|
47
|
+
* The amount of time to allow the aggregate query to execute
|
|
48
|
+
*/
|
|
64
49
|
aggregateTimeoutMs = 1e4;
|
|
65
|
-
async head() {
|
|
66
|
-
const head = await this.next({
|
|
67
|
-
limit: 1,
|
|
68
|
-
order: "desc"
|
|
69
|
-
});
|
|
70
|
-
return head[0] ? PayloadWrapper2.wrap(head[0]).payload : void 0;
|
|
71
|
-
}
|
|
72
50
|
async findOneByHash(hash) {
|
|
73
|
-
const dataPayload = await this.payloads.findOne({
|
|
74
|
-
_$hash: hash
|
|
75
|
-
});
|
|
51
|
+
const dataPayload = await this.payloads.findOne({ _$hash: hash });
|
|
76
52
|
if (dataPayload) {
|
|
77
53
|
return dataPayload;
|
|
78
54
|
} else {
|
|
79
|
-
const dataBw = await this.boundWitnesses.findOne({
|
|
80
|
-
_$hash: hash
|
|
81
|
-
});
|
|
55
|
+
const dataBw = await this.boundWitnesses.findOne({ _$hash: hash });
|
|
82
56
|
if (dataBw) {
|
|
83
57
|
return dataBw;
|
|
84
58
|
} else {
|
|
85
|
-
const payload = await this.payloads.findOne({
|
|
86
|
-
_hash: hash
|
|
87
|
-
});
|
|
59
|
+
const payload = await this.payloads.findOne({ _hash: hash });
|
|
88
60
|
if (payload) {
|
|
89
61
|
return payload;
|
|
90
62
|
} else {
|
|
91
|
-
const bw = await this.boundWitnesses.findOne({
|
|
92
|
-
_hash: hash
|
|
93
|
-
});
|
|
63
|
+
const bw = await this.boundWitnesses.findOne({ _hash: hash });
|
|
94
64
|
return bw ?? void 0;
|
|
95
65
|
}
|
|
96
66
|
}
|
|
97
67
|
}
|
|
98
68
|
}
|
|
69
|
+
async findOneBySequence(sequence) {
|
|
70
|
+
const dataPayload = await this.payloads.findOne({ _sequence: sequence });
|
|
71
|
+
if (dataPayload) {
|
|
72
|
+
return dataPayload;
|
|
73
|
+
} else {
|
|
74
|
+
const dataBw = await this.boundWitnesses.findOne({ _sequence: sequence });
|
|
75
|
+
return dataBw;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
99
78
|
async getHandler(hashes) {
|
|
100
|
-
let remainingHashes = [
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
const dataPayloads = (await Promise.all(remainingHashes.map((_$hash) => this.payloads.findOne({
|
|
104
|
-
_$hash
|
|
105
|
-
})))).filter(exists);
|
|
106
|
-
const dataPayloadsHashes = new Set(dataPayloads.map((payload) => payload._$hash));
|
|
79
|
+
let remainingHashes = [...hashes];
|
|
80
|
+
const dataPayloads = (await Promise.all(remainingHashes.map((_dataHash) => this.payloads.findOne({ _dataHash })))).filter(exists);
|
|
81
|
+
const dataPayloadsHashes = new Set(dataPayloads.map((payload) => payload._dataHash));
|
|
107
82
|
remainingHashes = remainingHashes.filter((hash) => !dataPayloadsHashes.has(hash));
|
|
108
|
-
const dataBws = (await Promise.all(remainingHashes.map((
|
|
109
|
-
|
|
110
|
-
})))).filter(exists);
|
|
111
|
-
const dataBwsHashes = new Set(dataBws.map((payload) => payload._$hash));
|
|
83
|
+
const dataBws = (await Promise.all(remainingHashes.map((_dataHash) => this.boundWitnesses.findOne({ _dataHash })))).filter(exists);
|
|
84
|
+
const dataBwsHashes = new Set(dataBws.map((payload) => payload._dataHash));
|
|
112
85
|
remainingHashes = remainingHashes.filter((hash) => !dataBwsHashes.has(hash));
|
|
113
|
-
const payloads = (await Promise.all(remainingHashes.map((_hash) => this.payloads.findOne({
|
|
114
|
-
_hash
|
|
115
|
-
})))).filter(exists);
|
|
86
|
+
const payloads = (await Promise.all(remainingHashes.map((_hash) => this.payloads.findOne({ _hash })))).filter(exists);
|
|
116
87
|
const payloadsHashes = new Set(payloads.map((payload) => payload._hash));
|
|
117
88
|
remainingHashes = remainingHashes.filter((hash) => !payloadsHashes.has(hash));
|
|
118
|
-
const bws = (await Promise.all(remainingHashes.map((_hash) => this.boundWitnesses.findOne({
|
|
119
|
-
_hash
|
|
120
|
-
})))).filter(exists);
|
|
89
|
+
const bws = (await Promise.all(remainingHashes.map((_hash) => this.boundWitnesses.findOne({ _hash })))).filter(exists);
|
|
121
90
|
const bwsHashes = new Set(bws.map((payload) => payload._hash));
|
|
122
91
|
remainingHashes = remainingHashes.filter((hash) => !bwsHashes.has(hash));
|
|
123
|
-
const foundPayloads = [
|
|
124
|
-
|
|
125
|
-
...dataBws,
|
|
126
|
-
...payloads,
|
|
127
|
-
...bws
|
|
128
|
-
];
|
|
129
|
-
const result = await PayloadBuilder.build(foundPayloads.map(fromDbRepresentation));
|
|
92
|
+
const foundPayloads = [...dataPayloads, ...dataBws, ...payloads, ...bws];
|
|
93
|
+
const result = foundPayloads.map(fromDbRepresentation);
|
|
130
94
|
return result;
|
|
131
95
|
}
|
|
132
96
|
async insertHandler(payloads) {
|
|
133
|
-
const [bw, p] = await validByType(payloads);
|
|
134
|
-
const payloadsWithExternalMeta = await Promise.all(p.map((value
|
|
97
|
+
const [bw, p] = await validByType(await PayloadBuilder.addStorageMeta(payloads));
|
|
98
|
+
const payloadsWithExternalMeta = await Promise.all(p.map((value) => toDbRepresentation(value)));
|
|
135
99
|
if (payloadsWithExternalMeta.length > 0) {
|
|
136
100
|
const payloadsResult = await this.payloads.insertMany(payloadsWithExternalMeta);
|
|
137
|
-
if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)
|
|
101
|
+
if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)
|
|
102
|
+
throw new Error("MongoDBArchivist: Error inserting Payloads");
|
|
138
103
|
}
|
|
139
|
-
const boundWitnessesWithExternalMeta = await Promise.all(bw.map((value
|
|
104
|
+
const boundWitnessesWithExternalMeta = await Promise.all(bw.map((value) => toDbRepresentation(value)));
|
|
140
105
|
if (boundWitnessesWithExternalMeta.length > 0) {
|
|
141
106
|
const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnessesWithExternalMeta);
|
|
142
|
-
if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length)
|
|
107
|
+
if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length)
|
|
108
|
+
throw new Error("MongoDBArchivist: Error inserting BoundWitnesses");
|
|
143
109
|
}
|
|
144
|
-
return
|
|
145
|
-
...boundWitnessesWithExternalMeta,
|
|
146
|
-
...payloadsWithExternalMeta
|
|
147
|
-
].map(fromDbRepresentation));
|
|
110
|
+
return [...boundWitnessesWithExternalMeta, ...payloadsWithExternalMeta].map(fromDbRepresentation);
|
|
148
111
|
}
|
|
149
112
|
async nextHandler(options) {
|
|
150
|
-
let {
|
|
151
|
-
limit
|
|
152
|
-
|
|
153
|
-
|
|
113
|
+
let {
|
|
114
|
+
limit,
|
|
115
|
+
cursor,
|
|
116
|
+
order
|
|
117
|
+
} = options ?? { limit: 10, order: "desc" };
|
|
154
118
|
if (!limit) limit = 10;
|
|
155
119
|
if (limit > 100) limit = 100;
|
|
156
120
|
if (order != "asc") order = "desc";
|
|
157
121
|
let id;
|
|
158
|
-
if (
|
|
159
|
-
const payload = await this.
|
|
122
|
+
if (cursor) {
|
|
123
|
+
const payload = await this.findOneBySequence(cursor);
|
|
160
124
|
if (payload) id = payload._id;
|
|
161
125
|
} else {
|
|
162
126
|
id = order === "asc" ? ObjectId.createFromTime(0) : ObjectId.createFromTime((Date.now() + 1e4) / 1e3);
|
|
163
127
|
}
|
|
164
128
|
if (!id) return [];
|
|
165
129
|
const sort = order === "asc" ? 1 : -1;
|
|
166
|
-
const match = order === "asc" ? {
|
|
167
|
-
_id: {
|
|
168
|
-
$gt: id
|
|
169
|
-
}
|
|
170
|
-
} : {
|
|
171
|
-
_id: {
|
|
172
|
-
$lt: id
|
|
173
|
-
}
|
|
174
|
-
};
|
|
130
|
+
const match = order === "asc" ? { _id: { $gt: id } } : { _id: { $lt: id } };
|
|
175
131
|
const foundPayloads = await this.payloads.useCollection((collection) => {
|
|
176
132
|
return collection.aggregate([
|
|
177
133
|
// Pre-filter payloads collection
|
|
178
|
-
{
|
|
179
|
-
$match: match
|
|
180
|
-
},
|
|
134
|
+
{ $match: match },
|
|
181
135
|
// Sort payloads by _id
|
|
182
|
-
{
|
|
183
|
-
$sort: {
|
|
184
|
-
_id: sort
|
|
185
|
-
}
|
|
186
|
-
},
|
|
136
|
+
{ $sort: { _id: sort } },
|
|
187
137
|
// Limit payloads to the first N payloads
|
|
188
|
-
{
|
|
189
|
-
$limit: limit
|
|
190
|
-
},
|
|
138
|
+
{ $limit: limit },
|
|
191
139
|
// Combine with filtered boundWitnesses collection
|
|
192
140
|
{
|
|
193
141
|
$unionWith: {
|
|
194
142
|
coll: this.boundWitnessSdkConfig.collection,
|
|
195
143
|
pipeline: [
|
|
196
|
-
{
|
|
197
|
-
|
|
198
|
-
},
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
$limit: limit
|
|
206
|
-
}
|
|
144
|
+
{ $match: match },
|
|
145
|
+
// Pre-filter boundWitnesses
|
|
146
|
+
{ $sort: { _id: sort } },
|
|
147
|
+
// Sort boundWitnesses by _id
|
|
148
|
+
{ $limit: limit }
|
|
149
|
+
// Limit boundWitnesses to the first N boundWitnesses
|
|
207
150
|
]
|
|
208
151
|
}
|
|
209
152
|
},
|
|
210
153
|
// Sort the combined result by _id
|
|
211
|
-
{
|
|
212
|
-
$sort: {
|
|
213
|
-
_id: sort
|
|
214
|
-
}
|
|
215
|
-
},
|
|
154
|
+
{ $sort: { _id: sort } },
|
|
216
155
|
// Limit the final result to N documents
|
|
217
|
-
{
|
|
218
|
-
$limit: limit
|
|
219
|
-
}
|
|
156
|
+
{ $limit: limit }
|
|
220
157
|
]).maxTimeMS(this.aggregateTimeoutMs).toArray();
|
|
221
158
|
});
|
|
222
|
-
return
|
|
159
|
+
return foundPayloads.map(fromDbRepresentation);
|
|
223
160
|
}
|
|
224
161
|
async startHandler() {
|
|
225
162
|
await super.startHandler();
|
package/dist/node/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Archivist.ts","../../src/lib/validByType.ts","../../src/index.ts"],"sourcesContent":["import { exists } from '@xylabs/exists'\nimport type { Hash } from '@xylabs/hex'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport type { ArchivistNextOptions } from '@xyo-network/archivist-model'\nimport { ArchivistInsertQuerySchema, ArchivistNextQuerySchema } from '@xyo-network/archivist-model'\nimport { MongoDBArchivistConfigSchema } from '@xyo-network/archivist-model-mongodb'\nimport { MongoDBModuleMixin } from '@xyo-network/module-abstract-mongodb'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n Payload, Schema, WithMeta,\n} from '@xyo-network/payload-model'\nimport type { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { fromDbRepresentation, toDbRepresentation } from '@xyo-network/payload-mongodb'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { ObjectId } from 'mongodb'\n\nimport { validByType } from './lib/index.js'\n\nconst MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist)\n\nexport class MongoDBArchivist extends MongoDBArchivistBase {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, MongoDBArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = MongoDBArchivistConfigSchema\n\n override readonly queries: string[] = [ArchivistInsertQuerySchema, ArchivistNextQuerySchema, ...super.queries]\n\n /**\n * The amount of time to allow the aggregate query to execute\n */\n protected readonly aggregateTimeoutMs = 10_000\n\n override async head(): Promise<Payload | undefined> {\n const head = await this.next({ limit: 1, order: 'desc' })\n return head[0] ? PayloadWrapper.wrap(head[0]).payload : undefined\n }\n\n protected async findOneByHash(hash: Hash) {\n const dataPayload = (await this.payloads.findOne({ _$hash: hash }))\n if (dataPayload) {\n return dataPayload\n } else {\n const dataBw = (await this.boundWitnesses.findOne({ _$hash: hash }))\n if (dataBw) {\n return dataBw\n } else {\n const payload = (await this.payloads.findOne({ _hash: hash }))\n if (payload) {\n return payload\n } else {\n const bw = (await this.boundWitnesses.findOne({ _hash: hash }))\n return bw ?? undefined\n }\n }\n }\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<WithMeta<Payload>[]> {\n let remainingHashes = [...hashes]\n\n const dataPayloads = (await Promise.all(remainingHashes.map(_$hash => this.payloads.findOne({ _$hash })))).filter(exists)\n const dataPayloadsHashes = new Set(dataPayloads.map(payload => payload._$hash))\n remainingHashes = remainingHashes.filter(hash => !dataPayloadsHashes.has(hash))\n\n const dataBws = (await Promise.all(remainingHashes.map(_$hash => this.boundWitnesses.findOne({ _$hash })))).filter(exists)\n const dataBwsHashes = new Set(dataBws.map(payload => payload._$hash))\n remainingHashes = remainingHashes.filter(hash => !dataBwsHashes.has(hash))\n\n const payloads = (await Promise.all(remainingHashes.map(_hash => this.payloads.findOne({ _hash })))).filter(exists)\n const payloadsHashes = new Set(payloads.map(payload => payload._hash))\n remainingHashes = remainingHashes.filter(hash => !payloadsHashes.has(hash))\n\n const bws = (await Promise.all(remainingHashes.map(_hash => this.boundWitnesses.findOne({ _hash })))).filter(exists)\n const bwsHashes = new Set(bws.map(payload => payload._hash))\n remainingHashes = remainingHashes.filter(hash => !bwsHashes.has(hash))\n\n const foundPayloads = [...dataPayloads, ...dataBws, ...payloads, ...bws] as PayloadWithMongoMeta<Payload & { _$hash: Hash; _$meta?: unknown }>[]\n const result = await PayloadBuilder.build(foundPayloads.map(fromDbRepresentation))\n // console.log(`getHandler: ${JSON.stringify(hashes, null, 2)}:${JSON.stringify(result, null, 2)}`)\n return result\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<WithMeta<Payload>[]> {\n const [bw, p] = await validByType(payloads)\n const payloadsWithExternalMeta = await Promise.all(p.map((value, index) => toDbRepresentation(value, index)))\n if (payloadsWithExternalMeta.length > 0) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithExternalMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)\n throw new Error('MongoDBArchivist: Error inserting Payloads')\n }\n const boundWitnessesWithExternalMeta = await Promise.all(bw.map((value, index) => toDbRepresentation(value, index)))\n if (boundWitnessesWithExternalMeta.length > 0) {\n const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnessesWithExternalMeta)\n if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length)\n throw new Error('MongoDBArchivist: Error inserting BoundWitnesses')\n }\n\n return await PayloadBuilder.build([...boundWitnessesWithExternalMeta, ...payloadsWithExternalMeta].map(fromDbRepresentation))\n }\n\n protected override async nextHandler(options?: ArchivistNextOptions): Promise<WithMeta<Payload>[]> {\n // Sanitize inputs and set defaults\n let {\n limit, offset, order,\n } = options ?? { limit: 10, order: 'desc' }\n\n if (!limit) limit = 10\n if (limit > 100) limit = 100\n\n if (order != 'asc') order = 'desc'\n\n let id: ObjectId | undefined\n if (offset) {\n const payload = await this.findOneByHash(offset)\n // TODO: Should we throw an error if the requested payload is not found?\n if (payload) id = payload._id\n } else {\n id = order === 'asc'\n // If ascending, start from the beginning of time\n ? ObjectId.createFromTime(0)\n // If descending, start from now (plus a bit more in the future to ensure\n // them most recent ObjectIds are included)\n : ObjectId.createFromTime((Date.now() + 10_000) / 1000)\n }\n if (!id) return []\n\n // Create aggregate criteria\n const sort = order === 'asc' ? 1 : -1\n // TODO: How to handle random component of ID across multiple collections\n // to ensure we don't skip some payloads\n const match = order === 'asc' ? { _id: { $gt: id } } : { _id: { $lt: id } }\n\n // Run the aggregate query\n const foundPayloads = await this.payloads.useCollection((collection) => {\n return collection\n .aggregate<PayloadWithMongoMeta>([\n // Pre-filter payloads collection\n { $match: match },\n // Sort payloads by _id\n { $sort: { _id: sort } },\n // Limit payloads to the first N payloads\n { $limit: limit },\n // Combine with filtered boundWitnesses collection\n {\n $unionWith: {\n coll: this.boundWitnessSdkConfig.collection,\n pipeline: [\n { $match: match }, // Pre-filter boundWitnesses\n { $sort: { _id: sort } }, // Sort boundWitnesses by _id\n { $limit: limit }, // Limit boundWitnesses to the first N boundWitnesses\n ],\n },\n },\n // Sort the combined result by _id\n { $sort: { _id: sort } },\n // Limit the final result to N documents\n { $limit: limit },\n ])\n .maxTimeMS(this.aggregateTimeoutMs)\n .toArray()\n })\n\n // Convert from DB representation to Payloads\n return await PayloadBuilder.build(foundPayloads.map(fromDbRepresentation))\n }\n\n protected override async startHandler() {\n await super.startHandler()\n await this.ensureIndexes()\n return true\n }\n}\n","import type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness, isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport const validByType = async (payloads: Payload[] = []) => {\n const results: [BoundWitness[], Payload[]] = [[], []]\n await Promise.all(\n payloads.map(async (payload) => {\n if (isBoundWitness(payload)) {\n const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper\n const bw = wrapper.parse(payload)\n if (await bw.getValid()) {\n results[0].push(payload)\n } else {\n const errors = await bw.getErrors()\n console.log(`validByType.Error: ${JSON.stringify(errors, null, 2)}`)\n }\n } else {\n const payloadWrapper = PayloadWrapper.wrap(payload)\n if (await payloadWrapper.getValid()) {\n results[1].push(payload)\n }\n }\n return\n }),\n )\n return results\n}\n","export * from './Archivist.js'\nexport * from '@xyo-network/archivist-model-mongodb'\n"],"mappings":";;;;AAAA,SAASA,cAAc;AAEvB,SAASC,yBAAyB;AAElC,SAASC,4BAA4BC,gCAAgC;AACrE,SAASC,oCAAoC;AAC7C,SAASC,0BAA0B;AACnC,SAASC,sBAAsB;AAK/B,SAASC,sBAAsBC,0BAA0B;AACzD,SAASC,kBAAAA,uBAAsB;AAC/B,SAASC,gBAAgB;;;ACbzB,SAASC,gBAAgBC,2BAA2B;AACpD,SAASC,qBAAqBC,gCAAgC;AAE9D,SAASC,sBAAsB;AAExB,IAAMC,cAAc,8BAAOC,WAAsB,CAAA,MAAE;AACxD,QAAMC,UAAuC;IAAC,CAAA;IAAI,CAAA;;AAClD,QAAMC,QAAQC,IACZH,SAASI,IAAI,OAAOC,YAAAA;AAClB,QAAIC,eAAeD,OAAAA,GAAU;AAC3B,YAAME,UAAUC,oBAAoBH,OAAAA,IAAWI,2BAA2BC;AAC1E,YAAMC,KAAKJ,QAAQK,MAAMP,OAAAA;AACzB,UAAI,MAAMM,GAAGE,SAAQ,GAAI;AACvBZ,gBAAQ,CAAA,EAAGa,KAAKT,OAAAA;MAClB,OAAO;AACL,cAAMU,SAAS,MAAMJ,GAAGK,UAAS;AACjCC,gBAAQC,IAAI,sBAAsBC,KAAKC,UAAUL,QAAQ,MAAM,CAAA,CAAA,EAAI;MACrE;IACF,OAAO;AACL,YAAMM,iBAAiBC,eAAeC,KAAKlB,OAAAA;AAC3C,UAAI,MAAMgB,eAAeR,SAAQ,GAAI;AACnCZ,gBAAQ,CAAA,EAAGa,KAAKT,OAAAA;MAClB;IACF;AACA;EACF,CAAA,CAAA;AAEF,SAAOJ;AACT,GAvB2B;;;ADY3B,IAAMuB,uBAAuBC,mBAAmBC,iBAAAA;AAEzC,IAAMC,mBAAN,cAA+BH,qBAAAA;EApBtC,OAoBsCA;;;EACpC,OAAyBI,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAErCE,UAAoB;IAACC;IAA4BC;OAA6B,MAAMF;;;;;EAKnFG,qBAAqB;EAExC,MAAeC,OAAqC;AAClD,UAAMA,OAAO,MAAM,KAAKC,KAAK;MAAEC,OAAO;MAAGC,OAAO;IAAO,CAAA;AACvD,WAAOH,KAAK,CAAA,IAAKI,gBAAeC,KAAKL,KAAK,CAAA,CAAE,EAAEM,UAAUC;EAC1D;EAEA,MAAgBC,cAAcC,MAAY;AACxC,UAAMC,cAAe,MAAM,KAAKC,SAASC,QAAQ;MAAEC,QAAQJ;IAAK,CAAA;AAChE,QAAIC,aAAa;AACf,aAAOA;IACT,OAAO;AACL,YAAMI,SAAU,MAAM,KAAKC,eAAeH,QAAQ;QAAEC,QAAQJ;MAAK,CAAA;AACjE,UAAIK,QAAQ;AACV,eAAOA;MACT,OAAO;AACL,cAAMR,UAAW,MAAM,KAAKK,SAASC,QAAQ;UAAEI,OAAOP;QAAK,CAAA;AAC3D,YAAIH,SAAS;AACX,iBAAOA;QACT,OAAO;AACL,gBAAMW,KAAM,MAAM,KAAKF,eAAeH,QAAQ;YAAEI,OAAOP;UAAK,CAAA;AAC5D,iBAAOQ,MAAMV;QACf;MACF;IACF;EACF;EAEA,MAAyBW,WAAWC,QAA8C;AAChF,QAAIC,kBAAkB;SAAID;;AAE1B,UAAME,gBAAgB,MAAMC,QAAQC,IAAIH,gBAAgBI,IAAIX,CAAAA,WAAU,KAAKF,SAASC,QAAQ;MAAEC;IAAO,CAAA,CAAA,CAAA,GAAMY,OAAOC,MAAAA;AAClH,UAAMC,qBAAqB,IAAIC,IAAIP,aAAaG,IAAIlB,CAAAA,YAAWA,QAAQO,MAAM,CAAA;AAC7EO,sBAAkBA,gBAAgBK,OAAOhB,CAAAA,SAAQ,CAACkB,mBAAmBE,IAAIpB,IAAAA,CAAAA;AAEzE,UAAMqB,WAAW,MAAMR,QAAQC,IAAIH,gBAAgBI,IAAIX,CAAAA,WAAU,KAAKE,eAAeH,QAAQ;MAAEC;IAAO,CAAA,CAAA,CAAA,GAAMY,OAAOC,MAAAA;AACnH,UAAMK,gBAAgB,IAAIH,IAAIE,QAAQN,IAAIlB,CAAAA,YAAWA,QAAQO,MAAM,CAAA;AACnEO,sBAAkBA,gBAAgBK,OAAOhB,CAAAA,SAAQ,CAACsB,cAAcF,IAAIpB,IAAAA,CAAAA;AAEpE,UAAME,YAAY,MAAMW,QAAQC,IAAIH,gBAAgBI,IAAIR,CAAAA,UAAS,KAAKL,SAASC,QAAQ;MAAEI;IAAM,CAAA,CAAA,CAAA,GAAMS,OAAOC,MAAAA;AAC5G,UAAMM,iBAAiB,IAAIJ,IAAIjB,SAASa,IAAIlB,CAAAA,YAAWA,QAAQU,KAAK,CAAA;AACpEI,sBAAkBA,gBAAgBK,OAAOhB,CAAAA,SAAQ,CAACuB,eAAeH,IAAIpB,IAAAA,CAAAA;AAErE,UAAMwB,OAAO,MAAMX,QAAQC,IAAIH,gBAAgBI,IAAIR,CAAAA,UAAS,KAAKD,eAAeH,QAAQ;MAAEI;IAAM,CAAA,CAAA,CAAA,GAAMS,OAAOC,MAAAA;AAC7G,UAAMQ,YAAY,IAAIN,IAAIK,IAAIT,IAAIlB,CAAAA,YAAWA,QAAQU,KAAK,CAAA;AAC1DI,sBAAkBA,gBAAgBK,OAAOhB,CAAAA,SAAQ,CAACyB,UAAUL,IAAIpB,IAAAA,CAAAA;AAEhE,UAAM0B,gBAAgB;SAAId;SAAiBS;SAAYnB;SAAasB;;AACpE,UAAMG,SAAS,MAAMC,eAAeC,MAAMH,cAAcX,IAAIe,oBAAAA,CAAAA;AAE5D,WAAOH;EACT;EAEA,MAAyBI,cAAc7B,UAAmD;AACxF,UAAM,CAACM,IAAIwB,CAAAA,IAAK,MAAMC,YAAY/B,QAAAA;AAClC,UAAMgC,2BAA2B,MAAMrB,QAAQC,IAAIkB,EAAEjB,IAAI,CAACoB,OAAOC,UAAUC,mBAAmBF,OAAOC,KAAAA,CAAAA,CAAAA;AACrG,QAAIF,yBAAyBI,SAAS,GAAG;AACvC,YAAMC,iBAAiB,MAAM,KAAKrC,SAASsC,WAAWN,wBAAAA;AACtD,UAAI,CAACK,eAAeE,gBAAgBF,eAAeG,kBAAkBR,yBAAyBI,OAC5F,OAAM,IAAIK,MAAM,4CAAA;IACpB;AACA,UAAMC,iCAAiC,MAAM/B,QAAQC,IAAIN,GAAGO,IAAI,CAACoB,OAAOC,UAAUC,mBAAmBF,OAAOC,KAAAA,CAAAA,CAAAA;AAC5G,QAAIQ,+BAA+BN,SAAS,GAAG;AAC7C,YAAMO,uBAAuB,MAAM,KAAKvC,eAAekC,WAAWI,8BAAAA;AAClE,UAAI,CAACC,qBAAqBJ,gBAAgBI,qBAAqBH,kBAAkBE,+BAA+BN,OAC9G,OAAM,IAAIK,MAAM,kDAAA;IACpB;AAEA,WAAO,MAAMf,eAAeC,MAAM;SAAIe;SAAmCV;MAA0BnB,IAAIe,oBAAAA,CAAAA;EACzG;EAEA,MAAyBgB,YAAYC,SAA8D;AAEjG,QAAI,EACFtD,OAAOuD,QAAQtD,MAAK,IAClBqD,WAAW;MAAEtD,OAAO;MAAIC,OAAO;IAAO;AAE1C,QAAI,CAACD,MAAOA,SAAQ;AACpB,QAAIA,QAAQ,IAAKA,SAAQ;AAEzB,QAAIC,SAAS,MAAOA,SAAQ;AAE5B,QAAIuD;AACJ,QAAID,QAAQ;AACV,YAAMnD,UAAU,MAAM,KAAKE,cAAciD,MAAAA;AAEzC,UAAInD,QAASoD,MAAKpD,QAAQqD;IAC5B,OAAO;AACLD,WAAKvD,UAAU,QAEXyD,SAASC,eAAe,CAAA,IAGxBD,SAASC,gBAAgBC,KAAKC,IAAG,IAAK,OAAU,GAAA;IACtD;AACA,QAAI,CAACL,GAAI,QAAO,CAAA;AAGhB,UAAMM,OAAO7D,UAAU,QAAQ,IAAI;AAGnC,UAAM8D,QAAQ9D,UAAU,QAAQ;MAAEwD,KAAK;QAAEO,KAAKR;MAAG;IAAE,IAAI;MAAEC,KAAK;QAAEQ,KAAKT;MAAG;IAAE;AAG1E,UAAMvB,gBAAgB,MAAM,KAAKxB,SAASyD,cAAc,CAACC,eAAAA;AACvD,aAAOA,WACJC,UAAgC;;QAE/B;UAAEC,QAAQN;QAAM;;QAEhB;UAAEO,OAAO;YAAEb,KAAKK;UAAK;QAAE;;QAEvB;UAAES,QAAQvE;QAAM;;QAEhB;UACEwE,YAAY;YACVC,MAAM,KAAKC,sBAAsBP;YACjCQ,UAAU;cACR;gBAAEN,QAAQN;cAAM;cAChB;gBAAEO,OAAO;kBAAEb,KAAKK;gBAAK;cAAE;cACvB;gBAAES,QAAQvE;cAAM;;UAEpB;QACF;;QAEA;UAAEsE,OAAO;YAAEb,KAAKK;UAAK;QAAE;;QAEvB;UAAES,QAAQvE;QAAM;OACjB,EACA4E,UAAU,KAAK/E,kBAAkB,EACjCgF,QAAO;IACZ,CAAA;AAGA,WAAO,MAAM1C,eAAeC,MAAMH,cAAcX,IAAIe,oBAAAA,CAAAA;EACtD;EAEA,MAAyByC,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,UAAM,KAAKC,cAAa;AACxB,WAAO;EACT;AACF;;;AEzKA,cAAc;","names":["exists","AbstractArchivist","ArchivistInsertQuerySchema","ArchivistNextQuerySchema","MongoDBArchivistConfigSchema","MongoDBModuleMixin","PayloadBuilder","fromDbRepresentation","toDbRepresentation","PayloadWrapper","ObjectId","isBoundWitness","isQueryBoundWitness","BoundWitnessWrapper","QueryBoundWitnessWrapper","PayloadWrapper","validByType","payloads","results","Promise","all","map","payload","isBoundWitness","wrapper","isQueryBoundWitness","QueryBoundWitnessWrapper","BoundWitnessWrapper","bw","parse","getValid","push","errors","getErrors","console","log","JSON","stringify","payloadWrapper","PayloadWrapper","wrap","MongoDBArchivistBase","MongoDBModuleMixin","AbstractArchivist","MongoDBArchivist","configSchemas","MongoDBArchivistConfigSchema","defaultConfigSchema","queries","ArchivistInsertQuerySchema","ArchivistNextQuerySchema","aggregateTimeoutMs","head","next","limit","order","PayloadWrapper","wrap","payload","undefined","findOneByHash","hash","dataPayload","payloads","findOne","_$hash","dataBw","boundWitnesses","_hash","bw","getHandler","hashes","remainingHashes","dataPayloads","Promise","all","map","filter","exists","dataPayloadsHashes","Set","has","dataBws","dataBwsHashes","payloadsHashes","bws","bwsHashes","foundPayloads","result","PayloadBuilder","build","fromDbRepresentation","insertHandler","p","validByType","payloadsWithExternalMeta","value","index","toDbRepresentation","length","payloadsResult","insertMany","acknowledged","insertedCount","Error","boundWitnessesWithExternalMeta","boundWitnessesResult","nextHandler","options","offset","id","_id","ObjectId","createFromTime","Date","now","sort","match","$gt","$lt","useCollection","collection","aggregate","$match","$sort","$limit","$unionWith","coll","boundWitnessSdkConfig","pipeline","maxTimeMS","toArray","startHandler","ensureIndexes"]}
|
|
1
|
+
{"version":3,"sources":["../../src/Archivist.ts","../../src/lib/validByType.ts","../../src/index.ts"],"sourcesContent":["import { exists } from '@xylabs/exists'\nimport type { Hash } from '@xylabs/hex'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport type { ArchivistNextOptions } from '@xyo-network/archivist-model'\nimport { ArchivistInsertQuerySchema, ArchivistNextQuerySchema } from '@xyo-network/archivist-model'\nimport { MongoDBArchivistConfigSchema } from '@xyo-network/archivist-model-mongodb'\nimport { MongoDBModuleMixin } from '@xyo-network/module-abstract-mongodb'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n Payload, Schema, Sequence, WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport type { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { fromDbRepresentation, toDbRepresentation } from '@xyo-network/payload-mongodb'\nimport { ObjectId } from 'mongodb'\n\nimport { validByType } from './lib/index.js'\n\nconst MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist)\n\nexport class MongoDBArchivist extends MongoDBArchivistBase {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, MongoDBArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = MongoDBArchivistConfigSchema\n\n override readonly queries: string[] = [ArchivistInsertQuerySchema, ArchivistNextQuerySchema, ...super.queries]\n\n /**\n * The amount of time to allow the aggregate query to execute\n */\n protected readonly aggregateTimeoutMs = 10_000\n\n protected async findOneByHash(hash: Hash) {\n const dataPayload = (await this.payloads.findOne({ _$hash: hash }))\n if (dataPayload) {\n return dataPayload\n } else {\n const dataBw = (await this.boundWitnesses.findOne({ _$hash: hash }))\n if (dataBw) {\n return dataBw\n } else {\n const payload = (await this.payloads.findOne({ _hash: hash }))\n if (payload) {\n return payload\n } else {\n const bw = (await this.boundWitnesses.findOne({ _hash: hash }))\n return bw ?? undefined\n }\n }\n }\n }\n\n protected async findOneBySequence(sequence: Sequence) {\n const dataPayload = (await this.payloads.findOne({ _sequence: sequence }))\n if (dataPayload) {\n return dataPayload\n } else {\n const dataBw = (await this.boundWitnesses.findOne({ _sequence: sequence }))\n return dataBw\n }\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n let remainingHashes = [...hashes]\n\n const dataPayloads = (await Promise.all(remainingHashes.map(_dataHash => this.payloads.findOne({ _dataHash })))).filter(exists)\n const dataPayloadsHashes = new Set(dataPayloads.map(payload => payload._dataHash))\n remainingHashes = remainingHashes.filter(hash => !dataPayloadsHashes.has(hash))\n\n const dataBws = (await Promise.all(remainingHashes.map(_dataHash => this.boundWitnesses.findOne({ _dataHash })))).filter(exists)\n const dataBwsHashes = new Set(dataBws.map(payload => payload._dataHash))\n remainingHashes = remainingHashes.filter(hash => !dataBwsHashes.has(hash))\n\n const payloads = (await Promise.all(remainingHashes.map(_hash => this.payloads.findOne({ _hash })))).filter(exists)\n const payloadsHashes = new Set(payloads.map(payload => payload._hash))\n remainingHashes = remainingHashes.filter(hash => !payloadsHashes.has(hash))\n\n const bws = (await Promise.all(remainingHashes.map(_hash => this.boundWitnesses.findOne({ _hash })))).filter(exists)\n const bwsHashes = new Set(bws.map(payload => payload._hash))\n remainingHashes = remainingHashes.filter(hash => !bwsHashes.has(hash))\n\n const foundPayloads = [...dataPayloads, ...dataBws, ...payloads, ...bws] as PayloadWithMongoMeta<Payload>[]\n const result = foundPayloads.map(fromDbRepresentation)\n // console.log(`getHandler: ${JSON.stringify(hashes, null, 2)}:${JSON.stringify(result, null, 2)}`)\n return result\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<WithStorageMeta<Payload>[]> {\n const [bw, p] = await validByType(await PayloadBuilder.addStorageMeta(payloads))\n const payloadsWithExternalMeta = await Promise.all(p.map(value => toDbRepresentation(value)))\n if (payloadsWithExternalMeta.length > 0) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithExternalMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)\n throw new Error('MongoDBArchivist: Error inserting Payloads')\n }\n const boundWitnessesWithExternalMeta = await Promise.all(bw.map(value => toDbRepresentation(value)))\n if (boundWitnessesWithExternalMeta.length > 0) {\n const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnessesWithExternalMeta)\n if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length)\n throw new Error('MongoDBArchivist: Error inserting BoundWitnesses')\n }\n\n return [...boundWitnessesWithExternalMeta, ...payloadsWithExternalMeta].map(fromDbRepresentation)\n }\n\n protected override async nextHandler(options?: ArchivistNextOptions): Promise<WithStorageMeta<Payload>[]> {\n // Sanitize inputs and set defaults\n let {\n limit, cursor, order,\n } = options ?? { limit: 10, order: 'desc' }\n\n if (!limit) limit = 10\n if (limit > 100) limit = 100\n\n if (order != 'asc') order = 'desc'\n\n let id: ObjectId | undefined\n if (cursor) {\n const payload = await this.findOneBySequence(cursor)\n // TODO: Should we throw an error if the requested payload is not found?\n if (payload) id = payload._id\n } else {\n id = order === 'asc'\n // If ascending, start from the beginning of time\n ? ObjectId.createFromTime(0)\n // If descending, start from now (plus a bit more in the future to ensure\n // them most recent ObjectIds are included)\n : ObjectId.createFromTime((Date.now() + 10_000) / 1000)\n }\n if (!id) return []\n\n // Create aggregate criteria\n const sort = order === 'asc' ? 1 : -1\n // TODO: How to handle random component of ID across multiple collections\n // to ensure we don't skip some payloads\n const match = order === 'asc' ? { _id: { $gt: id } } : { _id: { $lt: id } }\n\n // Run the aggregate query\n const foundPayloads = await this.payloads.useCollection((collection) => {\n return collection\n .aggregate<PayloadWithMongoMeta>([\n // Pre-filter payloads collection\n { $match: match },\n // Sort payloads by _id\n { $sort: { _id: sort } },\n // Limit payloads to the first N payloads\n { $limit: limit },\n // Combine with filtered boundWitnesses collection\n {\n $unionWith: {\n coll: this.boundWitnessSdkConfig.collection,\n pipeline: [\n { $match: match }, // Pre-filter boundWitnesses\n { $sort: { _id: sort } }, // Sort boundWitnesses by _id\n { $limit: limit }, // Limit boundWitnesses to the first N boundWitnesses\n ],\n },\n },\n // Sort the combined result by _id\n { $sort: { _id: sort } },\n // Limit the final result to N documents\n { $limit: limit },\n ])\n .maxTimeMS(this.aggregateTimeoutMs)\n .toArray()\n })\n\n // Convert from DB representation to Payloads\n return foundPayloads.map(fromDbRepresentation)\n }\n\n protected override async startHandler() {\n await super.startHandler()\n await this.ensureIndexes()\n return true\n }\n}\n","import type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness, isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport const validByType = async (payloads: WithStorageMeta<Payload>[] = []) => {\n const results: [WithStorageMeta<BoundWitness>[], WithStorageMeta<Payload>[]] = [[], []]\n await Promise.all(\n payloads.map(async (payload) => {\n if (isBoundWitness(payload)) {\n const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper\n const bw = wrapper.parse(payload)\n if (await bw.getValid()) {\n results[0].push(payload)\n } else {\n const errors = await bw.getErrors()\n console.log(`validByType.Error: ${JSON.stringify(errors, null, 2)}`)\n }\n } else {\n const payloadWrapper = PayloadWrapper.wrap(payload)\n if (await payloadWrapper.getValid()) {\n results[1].push(payload)\n }\n }\n return\n }),\n )\n return results\n}\n","export * from './Archivist.js'\nexport * from '@xyo-network/archivist-model-mongodb'\n"],"mappings":"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","names":[]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
} & import("@xyo-network/payload-model").PayloadFields)[]]>;
|
|
1
|
+
import type { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
+
import type { Payload, WithStorageMeta } from '@xyo-network/payload-model';
|
|
3
|
+
export declare const validByType: (payloads?: WithStorageMeta<Payload>[]) => Promise<[WithStorageMeta<BoundWitness>[], WithStorageMeta<import("@xylabs/object").DeepRestrictToStringKeys<{
|
|
4
|
+
schema: import("@xyo-network/payload-model").Schema;
|
|
5
|
+
}>>[]]>;
|
|
7
6
|
//# sourceMappingURL=validByType.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validByType.d.ts","sourceRoot":"","sources":["../../../src/lib/validByType.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validByType.d.ts","sourceRoot":"","sources":["../../../src/lib/validByType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAGnE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAG1E,eAAO,MAAM,WAAW,cAAoB,eAAe,CAAC,OAAO,CAAC,EAAE;;OAuBrE,CAAA"}
|