@xyo-network/archivist-mongodb 2.84.0 → 2.84.2
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.cts +14 -4
- package/dist/browser/Archivist.d.cts.map +1 -1
- package/dist/browser/Archivist.d.mts +14 -4
- package/dist/browser/Archivist.d.mts.map +1 -1
- package/dist/browser/Archivist.d.ts +14 -4
- package/dist/browser/Archivist.d.ts.map +1 -1
- package/dist/browser/index.cjs +12 -36
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +12 -36
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/lib/index.d.cts +0 -2
- package/dist/browser/lib/index.d.cts.map +1 -1
- package/dist/browser/lib/index.d.mts +0 -2
- package/dist/browser/lib/index.d.mts.map +1 -1
- package/dist/browser/lib/index.d.ts +0 -2
- package/dist/browser/lib/index.d.ts.map +1 -1
- package/dist/browser/lib/validByType.d.cts.map +1 -1
- package/dist/browser/lib/validByType.d.mts.map +1 -1
- package/dist/browser/lib/validByType.d.ts.map +1 -1
- package/dist/node/Archivist.d.cts +14 -4
- package/dist/node/Archivist.d.cts.map +1 -1
- package/dist/node/Archivist.d.mts +14 -4
- package/dist/node/Archivist.d.mts.map +1 -1
- package/dist/node/Archivist.d.ts +14 -4
- package/dist/node/Archivist.d.ts.map +1 -1
- package/dist/node/index.cjs +12 -36
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +12 -36
- package/dist/node/index.js.map +1 -1
- package/dist/node/lib/index.d.cts +0 -2
- package/dist/node/lib/index.d.cts.map +1 -1
- package/dist/node/lib/index.d.mts +0 -2
- package/dist/node/lib/index.d.mts.map +1 -1
- package/dist/node/lib/index.d.ts +0 -2
- package/dist/node/lib/index.d.ts.map +1 -1
- package/dist/node/lib/validByType.d.cts.map +1 -1
- package/dist/node/lib/validByType.d.mts.map +1 -1
- package/dist/node/lib/validByType.d.ts.map +1 -1
- package/package.json +20 -22
- package/src/Archivist.ts +11 -10
- package/src/lib/index.ts +0 -2
- package/src/lib/validByType.ts +4 -5
- package/dist/browser/lib/toPayloadWithMongoMeta.d.cts +0 -5
- package/dist/browser/lib/toPayloadWithMongoMeta.d.cts.map +0 -1
- package/dist/browser/lib/toPayloadWithMongoMeta.d.mts +0 -5
- package/dist/browser/lib/toPayloadWithMongoMeta.d.mts.map +0 -1
- package/dist/browser/lib/toPayloadWithMongoMeta.d.ts +0 -5
- package/dist/browser/lib/toPayloadWithMongoMeta.d.ts.map +0 -1
- package/dist/browser/lib/toReturnValue.d.cts +0 -3
- package/dist/browser/lib/toReturnValue.d.cts.map +0 -1
- package/dist/browser/lib/toReturnValue.d.mts +0 -3
- package/dist/browser/lib/toReturnValue.d.mts.map +0 -1
- package/dist/browser/lib/toReturnValue.d.ts +0 -3
- package/dist/browser/lib/toReturnValue.d.ts.map +0 -1
- package/dist/node/lib/toPayloadWithMongoMeta.d.cts +0 -5
- package/dist/node/lib/toPayloadWithMongoMeta.d.cts.map +0 -1
- package/dist/node/lib/toPayloadWithMongoMeta.d.mts +0 -5
- package/dist/node/lib/toPayloadWithMongoMeta.d.mts.map +0 -1
- package/dist/node/lib/toPayloadWithMongoMeta.d.ts +0 -5
- package/dist/node/lib/toPayloadWithMongoMeta.d.ts.map +0 -1
- package/dist/node/lib/toReturnValue.d.cts +0 -3
- package/dist/node/lib/toReturnValue.d.cts.map +0 -1
- package/dist/node/lib/toReturnValue.d.mts +0 -3
- package/dist/node/lib/toReturnValue.d.mts.map +0 -1
- package/dist/node/lib/toReturnValue.d.ts +0 -3
- package/dist/node/lib/toReturnValue.d.ts.map +0 -1
- package/src/lib/toPayloadWithMongoMeta.ts +0 -10
- package/src/lib/toReturnValue.ts +0 -6
package/dist/node/Archivist.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
2
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
2
|
+
import { Payload, WithMeta } from '@xyo-network/payload-model';
|
|
3
3
|
import { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
|
|
4
4
|
declare const MongoDBArchivistBase: (abstract new (...args: any[]) => {
|
|
5
5
|
_boundWitnessSdk: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<import("@xyo-network/payload-mongodb").BoundWitnessWithMongoMeta> | undefined;
|
|
@@ -152,7 +152,17 @@ declare const MongoDBArchivistBase: (abstract new (...args: any[]) => {
|
|
|
152
152
|
readonly timestamp?: boolean | undefined;
|
|
153
153
|
} & import("@xyo-network/module-model").ArchivingModuleConfig>(query: T, payloads?: ({
|
|
154
154
|
schema: string;
|
|
155
|
-
} & object)[] | undefined, queryConfig?: TConf | undefined) => import("@xylabs/promise").Promisable<import("@xyo-network/module-model").ModuleQueryResult
|
|
155
|
+
} & object)[] | undefined, queryConfig?: TConf | undefined) => import("@xylabs/promise").Promisable<import("@xyo-network/module-model").ModuleQueryResult<{
|
|
156
|
+
schema: string;
|
|
157
|
+
} & object, import("@xyo-network/payload-model").SchemaFields & object & {
|
|
158
|
+
message?: string | undefined;
|
|
159
|
+
name?: string | undefined;
|
|
160
|
+
query?: string | undefined;
|
|
161
|
+
schema: "network.xyo.error.module";
|
|
162
|
+
sources?: string[] | undefined;
|
|
163
|
+
}, import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
164
|
+
schema: "network.xyo.boundwitness";
|
|
165
|
+
}>, never>;
|
|
156
166
|
queryable: <T_1 extends import("@xyo-network/payload-model").SchemaFields & object & Omit<import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
157
167
|
query: string;
|
|
158
168
|
resultSet?: string | undefined;
|
|
@@ -221,8 +231,8 @@ export declare class MongoDBArchivist extends MongoDBArchivistBase {
|
|
|
221
231
|
static configSchemas: string[];
|
|
222
232
|
readonly queries: string[];
|
|
223
233
|
head(): Promise<Payload | undefined>;
|
|
224
|
-
protected getHandler(hashes: string[]): Promise<Payload[]>;
|
|
225
|
-
protected insertHandler(payloads: Payload[]): Promise<Payload[]>;
|
|
234
|
+
protected getHandler(hashes: string[]): Promise<WithMeta<Payload>[]>;
|
|
235
|
+
protected insertHandler(payloads: Payload[]): Promise<WithMeta<Payload>[]>;
|
|
226
236
|
protected startHandler(): Promise<boolean>;
|
|
227
237
|
}
|
|
228
238
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAKnE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAwB,oBAAoB,EAAsB,MAAM,8BAA8B,CAAA;AAK7G,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAwC,CAAA;AAElE,qBAAa,gBAAiB,SAAQ,oBAAoB;IACxD,OAAgB,aAAa,WAAwD;IAErF,SAAkB,OAAO,EAAE,MAAM,EAAE,CAAiD;IAErE,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;cAK1B,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;cAuB1D,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;cAkBhE,YAAY;CAKtC"}
|
package/dist/node/index.cjs
CHANGED
|
@@ -37,31 +37,11 @@ var import_archivist_abstract = require("@xyo-network/archivist-abstract");
|
|
|
37
37
|
var import_archivist_model = require("@xyo-network/archivist-model");
|
|
38
38
|
var import_archivist_model_mongodb = require("@xyo-network/archivist-model-mongodb");
|
|
39
39
|
var import_module_abstract_mongodb = require("@xyo-network/module-abstract-mongodb");
|
|
40
|
-
var import_payload_wrapper2 = require("@xyo-network/payload-wrapper");
|
|
41
|
-
|
|
42
|
-
// src/lib/toPayloadWithMongoMeta.ts
|
|
43
40
|
var import_payload_builder = require("@xyo-network/payload-builder");
|
|
44
|
-
var
|
|
45
|
-
|
|
46
|
-
const _hash = await import_payload_builder.PayloadBuilder.hash(built);
|
|
47
|
-
const { $hash, $meta, ...fields } = built;
|
|
48
|
-
return {
|
|
49
|
-
...fields,
|
|
50
|
-
_$hash: $hash,
|
|
51
|
-
_$meta: $meta,
|
|
52
|
-
_hash,
|
|
53
|
-
_timestamp: Date.now()
|
|
54
|
-
};
|
|
55
|
-
}, "toPayloadWithMongoMeta");
|
|
56
|
-
|
|
57
|
-
// src/lib/toReturnValue.ts
|
|
58
|
-
var import_hash = require("@xyo-network/hash");
|
|
59
|
-
var toReturnValue = /* @__PURE__ */ __name((value) => {
|
|
60
|
-
return (0, import_hash.deepOmitPrefixedFields)(value, "_");
|
|
61
|
-
}, "toReturnValue");
|
|
41
|
+
var import_payload_mongodb = require("@xyo-network/payload-mongodb");
|
|
42
|
+
var import_payload_wrapper2 = require("@xyo-network/payload-wrapper");
|
|
62
43
|
|
|
63
44
|
// src/lib/validByType.ts
|
|
64
|
-
var import_boundwitness_builder = require("@xyo-network/boundwitness-builder");
|
|
65
45
|
var import_boundwitness_model = require("@xyo-network/boundwitness-model");
|
|
66
46
|
var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
|
|
67
47
|
var import_payload_wrapper = require("@xyo-network/payload-wrapper");
|
|
@@ -72,18 +52,18 @@ var validByType = /* @__PURE__ */ __name(async (payloads = []) => {
|
|
|
72
52
|
];
|
|
73
53
|
await Promise.all(payloads.map(async (payload) => {
|
|
74
54
|
if ((0, import_boundwitness_model.isBoundWitness)(payload)) {
|
|
75
|
-
const wrapper = (0, import_boundwitness_model.isQueryBoundWitness)(payload) ?
|
|
55
|
+
const wrapper = (0, import_boundwitness_model.isQueryBoundWitness)(payload) ? import_boundwitness_wrapper.QueryBoundWitnessWrapper : import_boundwitness_wrapper.BoundWitnessWrapper;
|
|
76
56
|
const bw = await wrapper.parse(payload);
|
|
77
57
|
if (await bw.getValid()) {
|
|
78
|
-
results[0].push(bw.
|
|
58
|
+
results[0].push(bw.payload);
|
|
79
59
|
} else {
|
|
80
60
|
const errors = await bw.getErrors();
|
|
81
61
|
console.log(`validByType.Error: ${JSON.stringify(errors, null, 2)}`);
|
|
82
62
|
}
|
|
83
63
|
} else {
|
|
84
|
-
const payloadWrapper =
|
|
64
|
+
const payloadWrapper = import_payload_wrapper.PayloadWrapper.wrap(payload);
|
|
85
65
|
if (await payloadWrapper.getValid()) {
|
|
86
|
-
results[1].push(payloadWrapper.
|
|
66
|
+
results[1].push(payloadWrapper.payload);
|
|
87
67
|
}
|
|
88
68
|
}
|
|
89
69
|
return;
|
|
@@ -102,7 +82,7 @@ var _MongoDBArchivist = class _MongoDBArchivist extends MongoDBArchivistBase {
|
|
|
102
82
|
const head = await (await this.payloads.find({})).sort({
|
|
103
83
|
_timestamp: -1
|
|
104
84
|
}).limit(1).toArray();
|
|
105
|
-
return head[0] ?
|
|
85
|
+
return head[0] ? import_payload_wrapper2.PayloadWrapper.wrap(head[0]).payload : void 0;
|
|
106
86
|
}
|
|
107
87
|
async getHandler(hashes) {
|
|
108
88
|
let remainingHashes = [
|
|
@@ -134,30 +114,26 @@ var _MongoDBArchivist = class _MongoDBArchivist extends MongoDBArchivistBase {
|
|
|
134
114
|
...payloads,
|
|
135
115
|
...bws
|
|
136
116
|
];
|
|
137
|
-
return foundPayloads.map(
|
|
138
|
-
$hash: _$hash,
|
|
139
|
-
$meta: _$meta,
|
|
140
|
-
...other
|
|
141
|
-
})).map(toReturnValue);
|
|
117
|
+
return await import_payload_builder.PayloadBuilder.build(foundPayloads.map(import_payload_mongodb.fromDbRepresentation));
|
|
142
118
|
}
|
|
143
119
|
async insertHandler(payloads) {
|
|
144
120
|
const [bw, p] = await validByType(payloads);
|
|
145
|
-
const payloadsWithExternalMeta = await Promise.all(p.map(
|
|
121
|
+
const payloadsWithExternalMeta = await Promise.all(p.map(import_payload_mongodb.toDbRepresentation));
|
|
146
122
|
if (payloadsWithExternalMeta.length) {
|
|
147
123
|
const payloadsResult = await this.payloads.insertMany(payloadsWithExternalMeta);
|
|
148
124
|
if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)
|
|
149
125
|
throw new Error("MongoDBDeterministicArchivist: Error inserting Payloads");
|
|
150
126
|
}
|
|
151
|
-
const boundWitnessesWithExternalMeta = await Promise.all(bw.map(
|
|
127
|
+
const boundWitnessesWithExternalMeta = await Promise.all(bw.map(import_payload_mongodb.toDbRepresentation));
|
|
152
128
|
if (boundWitnessesWithExternalMeta.length) {
|
|
153
129
|
const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnessesWithExternalMeta);
|
|
154
130
|
if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length)
|
|
155
131
|
throw new Error("MongoDBDeterministicArchivist: Error inserting BoundWitnesses");
|
|
156
132
|
}
|
|
157
|
-
return [
|
|
133
|
+
return await import_payload_builder.PayloadBuilder.build([
|
|
158
134
|
...boundWitnessesWithExternalMeta,
|
|
159
135
|
...payloadsWithExternalMeta
|
|
160
|
-
];
|
|
136
|
+
]);
|
|
161
137
|
}
|
|
162
138
|
async startHandler() {
|
|
163
139
|
await super.startHandler();
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/Archivist.ts","../../src/lib/toPayloadWithMongoMeta.ts","../../src/lib/toReturnValue.ts","../../src/lib/validByType.ts"],"sourcesContent":["export * from './Archivist'\nexport * from '@xyo-network/archivist-model-mongodb'\n","import { exists } from '@xylabs/exists'\nimport { Hash } from '@xylabs/hex'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { ArchivistConfigSchema, ArchivistInsertQuerySchema } from '@xyo-network/archivist-model'\nimport { MongoDBArchivistConfigSchema } from '@xyo-network/archivist-model-mongodb'\nimport { MongoDBModuleMixin } from '@xyo-network/module-abstract-mongodb'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { toPayloadWithMongoMeta, toReturnValue, validByType } from './lib'\n\nconst MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist)\n\nexport class MongoDBArchivist extends MongoDBArchivistBase {\n static override configSchemas = [MongoDBArchivistConfigSchema, ArchivistConfigSchema]\n\n override readonly queries: string[] = [ArchivistInsertQuerySchema, ...super.queries]\n\n override async head(): Promise<Payload | undefined> {\n const head = await (await this.payloads.find({})).sort({ _timestamp: -1 }).limit(1).toArray()\n return head[0] ? (await PayloadWrapper.wrap(head[0])).jsonPayload() : undefined\n }\n\n protected override async getHandler(hashes: string[]): Promise<Payload[]> {\n let remainingHashes = [...hashes]\n\n const dataPayloads = (await Promise.all(remainingHashes.map((_$hash) => this.payloads.findOne({ _$hash })))).filter(exists)\n const dataPayloadsHashes = dataPayloads.map((payload) => payload._$hash)\n remainingHashes = remainingHashes.filter((hash) => !dataPayloadsHashes.includes(hash))\n\n const dataBws = (await Promise.all(remainingHashes.map((_$hash) => this.boundWitnesses.findOne({ _$hash })))).filter(exists)\n const dataBwsHashes = dataBws.map((payload) => payload._$hash)\n remainingHashes = remainingHashes.filter((hash) => !dataBwsHashes.includes(hash))\n\n const payloads = (await Promise.all(remainingHashes.map((_hash) => this.payloads.findOne({ _hash })))).filter(exists)\n const payloadsHashes = payloads.map((payload) => payload._hash)\n remainingHashes = remainingHashes.filter((hash) => !payloadsHashes.includes(hash))\n\n const bws = (await Promise.all(remainingHashes.map((_hash) => this.boundWitnesses.findOne({ _hash })))).filter(exists)\n const bwsHashes = bws.map((payload) => payload._hash)\n remainingHashes = remainingHashes.filter((hash) => !bwsHashes.includes(hash))\n\n const foundPayloads = [...dataPayloads, ...dataBws, ...payloads, ...bws] as PayloadWithMongoMeta<Payload & { _$hash: Hash; _$meta?: unknown }>[]\n return foundPayloads.map(({ _$hash, _$meta, ...other }) => ({ $hash: _$hash, $meta: _$meta, ...other })).map(toReturnValue)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<Payload[]> {\n const [bw, p] = await validByType(payloads)\n const payloadsWithExternalMeta = await Promise.all(p.map((x) => toPayloadWithMongoMeta(x)))\n if (payloadsWithExternalMeta.length) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithExternalMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting Payloads')\n }\n const boundWitnessesWithExternalMeta = await Promise.all(bw.map((x) => toPayloadWithMongoMeta(x)))\n if (boundWitnessesWithExternalMeta.length) {\n const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnessesWithExternalMeta)\n if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting BoundWitnesses')\n }\n\n return [...boundWitnessesWithExternalMeta, ...payloadsWithExternalMeta]\n }\n\n protected override async startHandler() {\n await super.startHandler()\n await this.ensureIndexes()\n return true\n }\n}\n","import { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\n\nexport const toPayloadWithMongoMeta = async <T extends Payload>(payload: T): Promise<PayloadWithMongoMeta<T>> => {\n const built = await PayloadBuilder.build(payload)\n const _hash = await PayloadBuilder.hash(built)\n const { $hash, $meta, ...fields } = built\n return { ...fields, _$hash: $hash, _$meta: $meta, _hash, _timestamp: Date.now() } as PayloadWithMongoMeta<T>\n}\n","import { deepOmitPrefixedFields } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const toReturnValue = (value: Payload): Payload => {\n return deepOmitPrefixedFields(value, '_')\n}\n","import { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness, isBoundWitness, isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { 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 = await wrapper.parse(payload)\n if (await bw.getValid()) {\n results[0].push(bw.jsonPayload())\n } else {\n const errors = await bw.getErrors()\n console.log(`validByType.Error: ${JSON.stringify(errors, null, 2)}`)\n }\n } else {\n const payloadWrapper = await PayloadWrapper.wrap(payload)\n if (await payloadWrapper.getValid()) {\n results[1].push(payloadWrapper.jsonPayload())\n }\n }\n return\n }),\n )\n return results\n}\n"],"mappings":"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","names":["import_payload_wrapper","toPayloadWithMongoMeta","payload","built","PayloadBuilder","build","_hash","hash","$hash","$meta","fields","_$hash","_$meta","_timestamp","Date","now","toReturnValue","value","deepOmitPrefixedFields","validByType","payloads","results","Promise","all","map","payload","isBoundWitness","wrapper","isQueryBoundWitness","QueryBoundWitnessWrapper","BoundWitnessWrapper","bw","parse","getValid","push","jsonPayload","errors","getErrors","console","log","JSON","stringify","payloadWrapper","PayloadWrapper","wrap","MongoDBArchivistBase","MongoDBModuleMixin","AbstractArchivist","MongoDBArchivist","queries","ArchivistInsertQuerySchema","head","payloads","find","sort","_timestamp","limit","toArray","PayloadWrapper","wrap","jsonPayload","undefined","getHandler","hashes","remainingHashes","dataPayloads","Promise","all","map","_$hash","findOne","filter","exists","dataPayloadsHashes","payload","hash","includes","dataBws","boundWitnesses","dataBwsHashes","_hash","payloadsHashes","bws","bwsHashes","foundPayloads","_$meta","other","$hash","$meta","toReturnValue","insertHandler","bw","p","validByType","payloadsWithExternalMeta","x","toPayloadWithMongoMeta","length","payloadsResult","insertMany","acknowledged","insertedCount","Error","boundWitnessesWithExternalMeta","boundWitnessesResult","startHandler","ensureIndexes","configSchemas","MongoDBArchivistConfigSchema","ArchivistConfigSchema"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Archivist.ts","../../src/lib/validByType.ts"],"sourcesContent":["export * from './Archivist'\nexport * from '@xyo-network/archivist-model-mongodb'\n","import { exists } from '@xylabs/exists'\nimport { Hash } from '@xylabs/hex'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { ArchivistConfigSchema, ArchivistInsertQuerySchema } 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 { Payload, WithMeta } from '@xyo-network/payload-model'\nimport { fromDbRepresentation, PayloadWithMongoMeta, toDbRepresentation } from '@xyo-network/payload-mongodb'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { validByType } from './lib'\n\nconst MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist)\n\nexport class MongoDBArchivist extends MongoDBArchivistBase {\n static override configSchemas = [MongoDBArchivistConfigSchema, ArchivistConfigSchema]\n\n override readonly queries: string[] = [ArchivistInsertQuerySchema, ...super.queries]\n\n override async head(): Promise<Payload | undefined> {\n const head = await (await this.payloads.find({})).sort({ _timestamp: -1 }).limit(1).toArray()\n return head[0] ? PayloadWrapper.wrap(head[0]).payload : undefined\n }\n\n protected override async getHandler(hashes: string[]): 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 = dataPayloads.map((payload) => payload._$hash)\n remainingHashes = remainingHashes.filter((hash) => !dataPayloadsHashes.includes(hash))\n\n const dataBws = (await Promise.all(remainingHashes.map((_$hash) => this.boundWitnesses.findOne({ _$hash })))).filter(exists)\n const dataBwsHashes = dataBws.map((payload) => payload._$hash)\n remainingHashes = remainingHashes.filter((hash) => !dataBwsHashes.includes(hash))\n\n const payloads = (await Promise.all(remainingHashes.map((_hash) => this.payloads.findOne({ _hash })))).filter(exists)\n const payloadsHashes = payloads.map((payload) => payload._hash)\n remainingHashes = remainingHashes.filter((hash) => !payloadsHashes.includes(hash))\n\n const bws = (await Promise.all(remainingHashes.map((_hash) => this.boundWitnesses.findOne({ _hash })))).filter(exists)\n const bwsHashes = bws.map((payload) => payload._hash)\n remainingHashes = remainingHashes.filter((hash) => !bwsHashes.includes(hash))\n\n const foundPayloads = [...dataPayloads, ...dataBws, ...payloads, ...bws] as PayloadWithMongoMeta<Payload & { _$hash: Hash; _$meta?: unknown }>[]\n return await PayloadBuilder.build(foundPayloads.map(fromDbRepresentation))\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(toDbRepresentation))\n if (payloadsWithExternalMeta.length) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithExternalMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting Payloads')\n }\n const boundWitnessesWithExternalMeta = await Promise.all(bw.map(toDbRepresentation))\n if (boundWitnessesWithExternalMeta.length) {\n const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnessesWithExternalMeta)\n if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting BoundWitnesses')\n }\n\n return await PayloadBuilder.build([...boundWitnessesWithExternalMeta, ...payloadsWithExternalMeta])\n }\n\n protected override async startHandler() {\n await super.startHandler()\n await this.ensureIndexes()\n return true\n }\n}\n","import { BoundWitness, isBoundWitness, isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { 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 = await wrapper.parse(payload)\n if (await bw.getValid()) {\n results[0].push(bw.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(payloadWrapper.payload)\n }\n }\n return\n }),\n )\n return results\n}\n"],"mappings":"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","names":["import_payload_wrapper","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","queries","ArchivistInsertQuerySchema","head","payloads","find","sort","_timestamp","limit","toArray","PayloadWrapper","wrap","payload","undefined","getHandler","hashes","remainingHashes","dataPayloads","Promise","all","map","_$hash","findOne","filter","exists","dataPayloadsHashes","hash","includes","dataBws","boundWitnesses","dataBwsHashes","_hash","payloadsHashes","bws","bwsHashes","foundPayloads","PayloadBuilder","build","fromDbRepresentation","insertHandler","bw","p","validByType","payloadsWithExternalMeta","toDbRepresentation","length","payloadsResult","insertMany","acknowledged","insertedCount","Error","boundWitnessesWithExternalMeta","boundWitnessesResult","startHandler","ensureIndexes","configSchemas","MongoDBArchivistConfigSchema","ArchivistConfigSchema"]}
|
package/dist/node/index.js
CHANGED
|
@@ -12,33 +12,13 @@ import { AbstractArchivist } from "@xyo-network/archivist-abstract";
|
|
|
12
12
|
import { ArchivistConfigSchema, ArchivistInsertQuerySchema } from "@xyo-network/archivist-model";
|
|
13
13
|
import { MongoDBArchivistConfigSchema } from "@xyo-network/archivist-model-mongodb";
|
|
14
14
|
import { MongoDBModuleMixin } from "@xyo-network/module-abstract-mongodb";
|
|
15
|
-
import { PayloadWrapper as PayloadWrapper2 } from "@xyo-network/payload-wrapper";
|
|
16
|
-
|
|
17
|
-
// src/lib/toPayloadWithMongoMeta.ts
|
|
18
15
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const _hash = await PayloadBuilder.hash(built);
|
|
22
|
-
const { $hash, $meta, ...fields } = built;
|
|
23
|
-
return {
|
|
24
|
-
...fields,
|
|
25
|
-
_$hash: $hash,
|
|
26
|
-
_$meta: $meta,
|
|
27
|
-
_hash,
|
|
28
|
-
_timestamp: Date.now()
|
|
29
|
-
};
|
|
30
|
-
}, "toPayloadWithMongoMeta");
|
|
31
|
-
|
|
32
|
-
// src/lib/toReturnValue.ts
|
|
33
|
-
import { deepOmitPrefixedFields } from "@xyo-network/hash";
|
|
34
|
-
var toReturnValue = /* @__PURE__ */ __name((value) => {
|
|
35
|
-
return deepOmitPrefixedFields(value, "_");
|
|
36
|
-
}, "toReturnValue");
|
|
16
|
+
import { fromDbRepresentation, toDbRepresentation } from "@xyo-network/payload-mongodb";
|
|
17
|
+
import { PayloadWrapper as PayloadWrapper2 } from "@xyo-network/payload-wrapper";
|
|
37
18
|
|
|
38
19
|
// src/lib/validByType.ts
|
|
39
|
-
import { QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-builder";
|
|
40
20
|
import { isBoundWitness, isQueryBoundWitness } from "@xyo-network/boundwitness-model";
|
|
41
|
-
import { BoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
|
|
21
|
+
import { BoundWitnessWrapper, QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
|
|
42
22
|
import { PayloadWrapper } from "@xyo-network/payload-wrapper";
|
|
43
23
|
var validByType = /* @__PURE__ */ __name(async (payloads = []) => {
|
|
44
24
|
const results = [
|
|
@@ -50,15 +30,15 @@ var validByType = /* @__PURE__ */ __name(async (payloads = []) => {
|
|
|
50
30
|
const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper;
|
|
51
31
|
const bw = await wrapper.parse(payload);
|
|
52
32
|
if (await bw.getValid()) {
|
|
53
|
-
results[0].push(bw.
|
|
33
|
+
results[0].push(bw.payload);
|
|
54
34
|
} else {
|
|
55
35
|
const errors = await bw.getErrors();
|
|
56
36
|
console.log(`validByType.Error: ${JSON.stringify(errors, null, 2)}`);
|
|
57
37
|
}
|
|
58
38
|
} else {
|
|
59
|
-
const payloadWrapper =
|
|
39
|
+
const payloadWrapper = PayloadWrapper.wrap(payload);
|
|
60
40
|
if (await payloadWrapper.getValid()) {
|
|
61
|
-
results[1].push(payloadWrapper.
|
|
41
|
+
results[1].push(payloadWrapper.payload);
|
|
62
42
|
}
|
|
63
43
|
}
|
|
64
44
|
return;
|
|
@@ -77,7 +57,7 @@ var _MongoDBArchivist = class _MongoDBArchivist extends MongoDBArchivistBase {
|
|
|
77
57
|
const head = await (await this.payloads.find({})).sort({
|
|
78
58
|
_timestamp: -1
|
|
79
59
|
}).limit(1).toArray();
|
|
80
|
-
return head[0] ?
|
|
60
|
+
return head[0] ? PayloadWrapper2.wrap(head[0]).payload : void 0;
|
|
81
61
|
}
|
|
82
62
|
async getHandler(hashes) {
|
|
83
63
|
let remainingHashes = [
|
|
@@ -109,30 +89,26 @@ var _MongoDBArchivist = class _MongoDBArchivist extends MongoDBArchivistBase {
|
|
|
109
89
|
...payloads,
|
|
110
90
|
...bws
|
|
111
91
|
];
|
|
112
|
-
return foundPayloads.map(
|
|
113
|
-
$hash: _$hash,
|
|
114
|
-
$meta: _$meta,
|
|
115
|
-
...other
|
|
116
|
-
})).map(toReturnValue);
|
|
92
|
+
return await PayloadBuilder.build(foundPayloads.map(fromDbRepresentation));
|
|
117
93
|
}
|
|
118
94
|
async insertHandler(payloads) {
|
|
119
95
|
const [bw, p] = await validByType(payloads);
|
|
120
|
-
const payloadsWithExternalMeta = await Promise.all(p.map(
|
|
96
|
+
const payloadsWithExternalMeta = await Promise.all(p.map(toDbRepresentation));
|
|
121
97
|
if (payloadsWithExternalMeta.length) {
|
|
122
98
|
const payloadsResult = await this.payloads.insertMany(payloadsWithExternalMeta);
|
|
123
99
|
if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)
|
|
124
100
|
throw new Error("MongoDBDeterministicArchivist: Error inserting Payloads");
|
|
125
101
|
}
|
|
126
|
-
const boundWitnessesWithExternalMeta = await Promise.all(bw.map(
|
|
102
|
+
const boundWitnessesWithExternalMeta = await Promise.all(bw.map(toDbRepresentation));
|
|
127
103
|
if (boundWitnessesWithExternalMeta.length) {
|
|
128
104
|
const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnessesWithExternalMeta);
|
|
129
105
|
if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length)
|
|
130
106
|
throw new Error("MongoDBDeterministicArchivist: Error inserting BoundWitnesses");
|
|
131
107
|
}
|
|
132
|
-
return [
|
|
108
|
+
return await PayloadBuilder.build([
|
|
133
109
|
...boundWitnessesWithExternalMeta,
|
|
134
110
|
...payloadsWithExternalMeta
|
|
135
|
-
];
|
|
111
|
+
]);
|
|
136
112
|
}
|
|
137
113
|
async startHandler() {
|
|
138
114
|
await super.startHandler();
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Archivist.ts","../../src/lib/toPayloadWithMongoMeta.ts","../../src/lib/toReturnValue.ts","../../src/lib/validByType.ts","../../src/index.ts"],"sourcesContent":["import { exists } from '@xylabs/exists'\nimport { Hash } from '@xylabs/hex'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { ArchivistConfigSchema, ArchivistInsertQuerySchema } from '@xyo-network/archivist-model'\nimport { MongoDBArchivistConfigSchema } from '@xyo-network/archivist-model-mongodb'\nimport { MongoDBModuleMixin } from '@xyo-network/module-abstract-mongodb'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { toPayloadWithMongoMeta, toReturnValue, validByType } from './lib'\n\nconst MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist)\n\nexport class MongoDBArchivist extends MongoDBArchivistBase {\n static override configSchemas = [MongoDBArchivistConfigSchema, ArchivistConfigSchema]\n\n override readonly queries: string[] = [ArchivistInsertQuerySchema, ...super.queries]\n\n override async head(): Promise<Payload | undefined> {\n const head = await (await this.payloads.find({})).sort({ _timestamp: -1 }).limit(1).toArray()\n return head[0] ? (await PayloadWrapper.wrap(head[0])).jsonPayload() : undefined\n }\n\n protected override async getHandler(hashes: string[]): Promise<Payload[]> {\n let remainingHashes = [...hashes]\n\n const dataPayloads = (await Promise.all(remainingHashes.map((_$hash) => this.payloads.findOne({ _$hash })))).filter(exists)\n const dataPayloadsHashes = dataPayloads.map((payload) => payload._$hash)\n remainingHashes = remainingHashes.filter((hash) => !dataPayloadsHashes.includes(hash))\n\n const dataBws = (await Promise.all(remainingHashes.map((_$hash) => this.boundWitnesses.findOne({ _$hash })))).filter(exists)\n const dataBwsHashes = dataBws.map((payload) => payload._$hash)\n remainingHashes = remainingHashes.filter((hash) => !dataBwsHashes.includes(hash))\n\n const payloads = (await Promise.all(remainingHashes.map((_hash) => this.payloads.findOne({ _hash })))).filter(exists)\n const payloadsHashes = payloads.map((payload) => payload._hash)\n remainingHashes = remainingHashes.filter((hash) => !payloadsHashes.includes(hash))\n\n const bws = (await Promise.all(remainingHashes.map((_hash) => this.boundWitnesses.findOne({ _hash })))).filter(exists)\n const bwsHashes = bws.map((payload) => payload._hash)\n remainingHashes = remainingHashes.filter((hash) => !bwsHashes.includes(hash))\n\n const foundPayloads = [...dataPayloads, ...dataBws, ...payloads, ...bws] as PayloadWithMongoMeta<Payload & { _$hash: Hash; _$meta?: unknown }>[]\n return foundPayloads.map(({ _$hash, _$meta, ...other }) => ({ $hash: _$hash, $meta: _$meta, ...other })).map(toReturnValue)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<Payload[]> {\n const [bw, p] = await validByType(payloads)\n const payloadsWithExternalMeta = await Promise.all(p.map((x) => toPayloadWithMongoMeta(x)))\n if (payloadsWithExternalMeta.length) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithExternalMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting Payloads')\n }\n const boundWitnessesWithExternalMeta = await Promise.all(bw.map((x) => toPayloadWithMongoMeta(x)))\n if (boundWitnessesWithExternalMeta.length) {\n const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnessesWithExternalMeta)\n if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting BoundWitnesses')\n }\n\n return [...boundWitnessesWithExternalMeta, ...payloadsWithExternalMeta]\n }\n\n protected override async startHandler() {\n await super.startHandler()\n await this.ensureIndexes()\n return true\n }\n}\n","import { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\n\nexport const toPayloadWithMongoMeta = async <T extends Payload>(payload: T): Promise<PayloadWithMongoMeta<T>> => {\n const built = await PayloadBuilder.build(payload)\n const _hash = await PayloadBuilder.hash(built)\n const { $hash, $meta, ...fields } = built\n return { ...fields, _$hash: $hash, _$meta: $meta, _hash, _timestamp: Date.now() } as PayloadWithMongoMeta<T>\n}\n","import { deepOmitPrefixedFields } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const toReturnValue = (value: Payload): Payload => {\n return deepOmitPrefixedFields(value, '_')\n}\n","import { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness, isBoundWitness, isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { 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 = await wrapper.parse(payload)\n if (await bw.getValid()) {\n results[0].push(bw.jsonPayload())\n } else {\n const errors = await bw.getErrors()\n console.log(`validByType.Error: ${JSON.stringify(errors, null, 2)}`)\n }\n } else {\n const payloadWrapper = await PayloadWrapper.wrap(payload)\n if (await payloadWrapper.getValid()) {\n results[1].push(payloadWrapper.jsonPayload())\n }\n }\n return\n }),\n )\n return results\n}\n","export * from './Archivist'\nexport * from '@xyo-network/archivist-model-mongodb'\n"],"mappings":"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","names":["exists","AbstractArchivist","ArchivistConfigSchema","ArchivistInsertQuerySchema","MongoDBArchivistConfigSchema","MongoDBModuleMixin","PayloadWrapper","PayloadBuilder","toPayloadWithMongoMeta","payload","built","PayloadBuilder","build","_hash","hash","$hash","$meta","fields","_$hash","_$meta","_timestamp","Date","now","deepOmitPrefixedFields","toReturnValue","value","deepOmitPrefixedFields","QueryBoundWitnessWrapper","isBoundWitness","isQueryBoundWitness","BoundWitnessWrapper","PayloadWrapper","validByType","payloads","results","Promise","all","map","payload","isBoundWitness","wrapper","isQueryBoundWitness","QueryBoundWitnessWrapper","BoundWitnessWrapper","bw","parse","getValid","push","jsonPayload","errors","getErrors","console","log","JSON","stringify","payloadWrapper","PayloadWrapper","wrap","MongoDBArchivistBase","MongoDBModuleMixin","AbstractArchivist","MongoDBArchivist","queries","ArchivistInsertQuerySchema","head","payloads","find","sort","_timestamp","limit","toArray","PayloadWrapper","wrap","jsonPayload","undefined","getHandler","hashes","remainingHashes","dataPayloads","Promise","all","map","_$hash","findOne","filter","exists","dataPayloadsHashes","payload","hash","includes","dataBws","boundWitnesses","dataBwsHashes","_hash","payloadsHashes","bws","bwsHashes","foundPayloads","_$meta","other","$hash","$meta","toReturnValue","insertHandler","bw","p","validByType","payloadsWithExternalMeta","x","toPayloadWithMongoMeta","length","payloadsResult","insertMany","acknowledged","insertedCount","Error","boundWitnessesWithExternalMeta","boundWitnessesResult","startHandler","ensureIndexes","configSchemas","MongoDBArchivistConfigSchema","ArchivistConfigSchema"]}
|
|
1
|
+
{"version":3,"sources":["../../src/Archivist.ts","../../src/lib/validByType.ts","../../src/index.ts"],"sourcesContent":["import { exists } from '@xylabs/exists'\nimport { Hash } from '@xylabs/hex'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { ArchivistConfigSchema, ArchivistInsertQuerySchema } 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 { Payload, WithMeta } from '@xyo-network/payload-model'\nimport { fromDbRepresentation, PayloadWithMongoMeta, toDbRepresentation } from '@xyo-network/payload-mongodb'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { validByType } from './lib'\n\nconst MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist)\n\nexport class MongoDBArchivist extends MongoDBArchivistBase {\n static override configSchemas = [MongoDBArchivistConfigSchema, ArchivistConfigSchema]\n\n override readonly queries: string[] = [ArchivistInsertQuerySchema, ...super.queries]\n\n override async head(): Promise<Payload | undefined> {\n const head = await (await this.payloads.find({})).sort({ _timestamp: -1 }).limit(1).toArray()\n return head[0] ? PayloadWrapper.wrap(head[0]).payload : undefined\n }\n\n protected override async getHandler(hashes: string[]): 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 = dataPayloads.map((payload) => payload._$hash)\n remainingHashes = remainingHashes.filter((hash) => !dataPayloadsHashes.includes(hash))\n\n const dataBws = (await Promise.all(remainingHashes.map((_$hash) => this.boundWitnesses.findOne({ _$hash })))).filter(exists)\n const dataBwsHashes = dataBws.map((payload) => payload._$hash)\n remainingHashes = remainingHashes.filter((hash) => !dataBwsHashes.includes(hash))\n\n const payloads = (await Promise.all(remainingHashes.map((_hash) => this.payloads.findOne({ _hash })))).filter(exists)\n const payloadsHashes = payloads.map((payload) => payload._hash)\n remainingHashes = remainingHashes.filter((hash) => !payloadsHashes.includes(hash))\n\n const bws = (await Promise.all(remainingHashes.map((_hash) => this.boundWitnesses.findOne({ _hash })))).filter(exists)\n const bwsHashes = bws.map((payload) => payload._hash)\n remainingHashes = remainingHashes.filter((hash) => !bwsHashes.includes(hash))\n\n const foundPayloads = [...dataPayloads, ...dataBws, ...payloads, ...bws] as PayloadWithMongoMeta<Payload & { _$hash: Hash; _$meta?: unknown }>[]\n return await PayloadBuilder.build(foundPayloads.map(fromDbRepresentation))\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(toDbRepresentation))\n if (payloadsWithExternalMeta.length) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithExternalMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting Payloads')\n }\n const boundWitnessesWithExternalMeta = await Promise.all(bw.map(toDbRepresentation))\n if (boundWitnessesWithExternalMeta.length) {\n const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnessesWithExternalMeta)\n if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting BoundWitnesses')\n }\n\n return await PayloadBuilder.build([...boundWitnessesWithExternalMeta, ...payloadsWithExternalMeta])\n }\n\n protected override async startHandler() {\n await super.startHandler()\n await this.ensureIndexes()\n return true\n }\n}\n","import { BoundWitness, isBoundWitness, isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { 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 = await wrapper.parse(payload)\n if (await bw.getValid()) {\n results[0].push(bw.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(payloadWrapper.payload)\n }\n }\n return\n }),\n )\n return results\n}\n","export * from './Archivist'\nexport * from '@xyo-network/archivist-model-mongodb'\n"],"mappings":"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","names":["exists","AbstractArchivist","ArchivistConfigSchema","ArchivistInsertQuerySchema","MongoDBArchivistConfigSchema","MongoDBModuleMixin","PayloadBuilder","fromDbRepresentation","toDbRepresentation","PayloadWrapper","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","queries","ArchivistInsertQuerySchema","head","payloads","find","sort","_timestamp","limit","toArray","PayloadWrapper","wrap","payload","undefined","getHandler","hashes","remainingHashes","dataPayloads","Promise","all","map","_$hash","findOne","filter","exists","dataPayloadsHashes","hash","includes","dataBws","boundWitnesses","dataBwsHashes","_hash","payloadsHashes","bws","bwsHashes","foundPayloads","PayloadBuilder","build","fromDbRepresentation","insertHandler","bw","p","validByType","payloadsWithExternalMeta","toDbRepresentation","length","payloadsResult","insertMany","acknowledged","insertedCount","Error","boundWitnessesWithExternalMeta","boundWitnessesResult","startHandler","ensureIndexes","configSchemas","MongoDBArchivistConfigSchema","ArchivistConfigSchema"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
|
package/dist/node/lib/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
|
|
@@ -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":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD,eAAO,MAAM,WAAW,cAAoB,OAAO,EAAE;;;;eAuBpD,CAAA"}
|
|
@@ -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":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD,eAAO,MAAM,WAAW,cAAoB,OAAO,EAAE;;;;eAuBpD,CAAA"}
|
|
@@ -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":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD,eAAO,MAAM,WAAW,cAAoB,OAAO,EAAE;;;;eAuBpD,CAAA"}
|
package/package.json
CHANGED
|
@@ -10,31 +10,29 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/exists": "^2.14.
|
|
14
|
-
"@xylabs/hex": "^2.14.
|
|
15
|
-
"@xyo-network/archivist-abstract": "^2.
|
|
16
|
-
"@xyo-network/archivist-model": "^2.
|
|
17
|
-
"@xyo-network/archivist-model-mongodb": "~2.84.
|
|
18
|
-
"@xyo-network/boundwitness-
|
|
19
|
-
"@xyo-network/boundwitness-
|
|
20
|
-
"@xyo-network/
|
|
21
|
-
"@xyo-network/
|
|
22
|
-
"@xyo-network/
|
|
23
|
-
"@xyo-network/payload-
|
|
24
|
-
"@xyo-network/payload-
|
|
25
|
-
"@xyo-network/payload-mongodb": "~2.84.0",
|
|
26
|
-
"@xyo-network/payload-wrapper": "^2.89.0"
|
|
13
|
+
"@xylabs/exists": "^2.14.2",
|
|
14
|
+
"@xylabs/hex": "^2.14.2",
|
|
15
|
+
"@xyo-network/archivist-abstract": "^2.90.17",
|
|
16
|
+
"@xyo-network/archivist-model": "^2.90.17",
|
|
17
|
+
"@xyo-network/archivist-model-mongodb": "~2.84.2",
|
|
18
|
+
"@xyo-network/boundwitness-model": "^2.90.17",
|
|
19
|
+
"@xyo-network/boundwitness-wrapper": "^2.90.17",
|
|
20
|
+
"@xyo-network/module-abstract-mongodb": "~2.84.2",
|
|
21
|
+
"@xyo-network/payload-builder": "^2.90.17",
|
|
22
|
+
"@xyo-network/payload-model": "^2.90.17",
|
|
23
|
+
"@xyo-network/payload-mongodb": "~2.84.2",
|
|
24
|
+
"@xyo-network/payload-wrapper": "^2.90.17"
|
|
27
25
|
},
|
|
28
26
|
"devDependencies": {
|
|
29
|
-
"@xylabs/arraybuffer": "^2.14.
|
|
30
|
-
"@xylabs/jest-helpers": "^2.14.
|
|
27
|
+
"@xylabs/arraybuffer": "^2.14.2",
|
|
28
|
+
"@xylabs/jest-helpers": "^2.14.2",
|
|
31
29
|
"@xylabs/ts-scripts-yarn3": "^3.2.42",
|
|
32
30
|
"@xylabs/tsconfig": "^3.2.42",
|
|
33
|
-
"@xyo-network/account": "^2.
|
|
34
|
-
"@xyo-network/account-model": "^2.
|
|
35
|
-
"@xyo-network/archivist-wrapper": "^2.
|
|
36
|
-
"@xyo-network/
|
|
37
|
-
"@xyo-network/sdk-xyo-mongo-js": "~2.84.
|
|
31
|
+
"@xyo-network/account": "^2.90.17",
|
|
32
|
+
"@xyo-network/account-model": "^2.90.17",
|
|
33
|
+
"@xyo-network/archivist-wrapper": "^2.90.17",
|
|
34
|
+
"@xyo-network/boundwitness-builder": "^2.90.17",
|
|
35
|
+
"@xyo-network/sdk-xyo-mongo-js": "~2.84.2",
|
|
38
36
|
"fake-indexeddb": "^4.0.2",
|
|
39
37
|
"jest": "^29.7.0",
|
|
40
38
|
"typescript": "^5.3.3"
|
|
@@ -78,6 +76,6 @@
|
|
|
78
76
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
79
77
|
},
|
|
80
78
|
"sideEffects": false,
|
|
81
|
-
"version": "2.84.
|
|
79
|
+
"version": "2.84.2",
|
|
82
80
|
"type": "module"
|
|
83
81
|
}
|
package/src/Archivist.ts
CHANGED
|
@@ -4,11 +4,12 @@ import { AbstractArchivist } from '@xyo-network/archivist-abstract'
|
|
|
4
4
|
import { ArchivistConfigSchema, ArchivistInsertQuerySchema } from '@xyo-network/archivist-model'
|
|
5
5
|
import { MongoDBArchivistConfigSchema } from '@xyo-network/archivist-model-mongodb'
|
|
6
6
|
import { MongoDBModuleMixin } from '@xyo-network/module-abstract-mongodb'
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
8
|
+
import { Payload, WithMeta } from '@xyo-network/payload-model'
|
|
9
|
+
import { fromDbRepresentation, PayloadWithMongoMeta, toDbRepresentation } from '@xyo-network/payload-mongodb'
|
|
9
10
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
10
11
|
|
|
11
|
-
import {
|
|
12
|
+
import { validByType } from './lib'
|
|
12
13
|
|
|
13
14
|
const MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist)
|
|
14
15
|
|
|
@@ -19,10 +20,10 @@ export class MongoDBArchivist extends MongoDBArchivistBase {
|
|
|
19
20
|
|
|
20
21
|
override async head(): Promise<Payload | undefined> {
|
|
21
22
|
const head = await (await this.payloads.find({})).sort({ _timestamp: -1 }).limit(1).toArray()
|
|
22
|
-
return head[0] ?
|
|
23
|
+
return head[0] ? PayloadWrapper.wrap(head[0]).payload : undefined
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
protected override async getHandler(hashes: string[]): Promise<Payload[]> {
|
|
26
|
+
protected override async getHandler(hashes: string[]): Promise<WithMeta<Payload>[]> {
|
|
26
27
|
let remainingHashes = [...hashes]
|
|
27
28
|
|
|
28
29
|
const dataPayloads = (await Promise.all(remainingHashes.map((_$hash) => this.payloads.findOne({ _$hash })))).filter(exists)
|
|
@@ -42,25 +43,25 @@ export class MongoDBArchivist extends MongoDBArchivistBase {
|
|
|
42
43
|
remainingHashes = remainingHashes.filter((hash) => !bwsHashes.includes(hash))
|
|
43
44
|
|
|
44
45
|
const foundPayloads = [...dataPayloads, ...dataBws, ...payloads, ...bws] as PayloadWithMongoMeta<Payload & { _$hash: Hash; _$meta?: unknown }>[]
|
|
45
|
-
return foundPayloads.map(
|
|
46
|
+
return await PayloadBuilder.build(foundPayloads.map(fromDbRepresentation))
|
|
46
47
|
}
|
|
47
48
|
|
|
48
|
-
protected override async insertHandler(payloads: Payload[]): Promise<Payload[]> {
|
|
49
|
+
protected override async insertHandler(payloads: Payload[]): Promise<WithMeta<Payload>[]> {
|
|
49
50
|
const [bw, p] = await validByType(payloads)
|
|
50
|
-
const payloadsWithExternalMeta = await Promise.all(p.map(
|
|
51
|
+
const payloadsWithExternalMeta = await Promise.all(p.map(toDbRepresentation))
|
|
51
52
|
if (payloadsWithExternalMeta.length) {
|
|
52
53
|
const payloadsResult = await this.payloads.insertMany(payloadsWithExternalMeta)
|
|
53
54
|
if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)
|
|
54
55
|
throw new Error('MongoDBDeterministicArchivist: Error inserting Payloads')
|
|
55
56
|
}
|
|
56
|
-
const boundWitnessesWithExternalMeta = await Promise.all(bw.map(
|
|
57
|
+
const boundWitnessesWithExternalMeta = await Promise.all(bw.map(toDbRepresentation))
|
|
57
58
|
if (boundWitnessesWithExternalMeta.length) {
|
|
58
59
|
const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnessesWithExternalMeta)
|
|
59
60
|
if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length)
|
|
60
61
|
throw new Error('MongoDBDeterministicArchivist: Error inserting BoundWitnesses')
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
return [...boundWitnessesWithExternalMeta, ...payloadsWithExternalMeta]
|
|
64
|
+
return await PayloadBuilder.build([...boundWitnessesWithExternalMeta, ...payloadsWithExternalMeta])
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
protected override async startHandler() {
|
package/src/lib/index.ts
CHANGED
package/src/lib/validByType.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'
|
|
2
1
|
import { BoundWitness, isBoundWitness, isQueryBoundWitness } from '@xyo-network/boundwitness-model'
|
|
3
|
-
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
|
|
2
|
+
import { BoundWitnessWrapper, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
|
|
4
3
|
import { Payload } from '@xyo-network/payload-model'
|
|
5
4
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
6
5
|
|
|
@@ -12,15 +11,15 @@ export const validByType = async (payloads: Payload[] = []) => {
|
|
|
12
11
|
const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper
|
|
13
12
|
const bw = await wrapper.parse(payload)
|
|
14
13
|
if (await bw.getValid()) {
|
|
15
|
-
results[0].push(bw.
|
|
14
|
+
results[0].push(bw.payload)
|
|
16
15
|
} else {
|
|
17
16
|
const errors = await bw.getErrors()
|
|
18
17
|
console.log(`validByType.Error: ${JSON.stringify(errors, null, 2)}`)
|
|
19
18
|
}
|
|
20
19
|
} else {
|
|
21
|
-
const payloadWrapper =
|
|
20
|
+
const payloadWrapper = PayloadWrapper.wrap(payload)
|
|
22
21
|
if (await payloadWrapper.getValid()) {
|
|
23
|
-
results[1].push(payloadWrapper.
|
|
22
|
+
results[1].push(payloadWrapper.payload)
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
25
|
return
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toPayloadWithMongoMeta.d.ts","sourceRoot":"","sources":["../../../src/lib/toPayloadWithMongoMeta.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAEnE,eAAO,MAAM,sBAAsB;;2DAKlC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toPayloadWithMongoMeta.d.ts","sourceRoot":"","sources":["../../../src/lib/toPayloadWithMongoMeta.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAEnE,eAAO,MAAM,sBAAsB;;2DAKlC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toPayloadWithMongoMeta.d.ts","sourceRoot":"","sources":["../../../src/lib/toPayloadWithMongoMeta.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAEnE,eAAO,MAAM,sBAAsB;;2DAKlC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toReturnValue.d.ts","sourceRoot":"","sources":["../../../src/lib/toReturnValue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,eAAO,MAAM,aAAa,UAAW,OAAO,KAAG,OAE9C,CAAA"}
|