@xyo-network/archivist-mongodb 2.89.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/Archivist.d.ts +3 -3
- package/dist/browser/Archivist.d.ts.map +1 -1
- package/dist/browser/{index.js → index.mjs} +1 -1
- package/dist/browser/index.mjs.map +1 -0
- package/dist/browser/lib/validByType.d.ts +1 -1
- package/dist/browser/lib/validByType.d.ts.map +1 -1
- package/dist/neutral/Archivist.d.ts +3 -3
- package/dist/neutral/Archivist.d.ts.map +1 -1
- package/dist/neutral/{index.js → index.mjs} +1 -1
- package/dist/neutral/index.mjs.map +1 -0
- package/dist/neutral/lib/validByType.d.ts +1 -1
- package/dist/neutral/lib/validByType.d.ts.map +1 -1
- package/dist/node/Archivist.d.ts +3 -3
- package/dist/node/Archivist.d.ts.map +1 -1
- package/dist/node/{index.js → index.mjs} +10 -14
- package/dist/node/index.mjs.map +1 -0
- package/dist/node/lib/validByType.d.ts +1 -1
- package/dist/node/lib/validByType.d.ts.map +1 -1
- package/package.json +50 -59
- package/src/Archivist.ts +19 -16
- package/src/lib/validByType.ts +3 -2
- package/dist/browser/Archivist.d.cts +0 -76
- package/dist/browser/Archivist.d.cts.map +0 -1
- package/dist/browser/Archivist.d.mts +0 -76
- package/dist/browser/Archivist.d.mts.map +0 -1
- package/dist/browser/index.cjs +0 -149
- package/dist/browser/index.cjs.map +0 -1
- package/dist/browser/index.d.cts +0 -3
- package/dist/browser/index.d.cts.map +0 -1
- package/dist/browser/index.d.mts +0 -3
- package/dist/browser/index.d.mts.map +0 -1
- package/dist/browser/index.js.map +0 -1
- package/dist/browser/lib/index.d.cts +0 -2
- package/dist/browser/lib/index.d.cts.map +0 -1
- package/dist/browser/lib/index.d.mts +0 -2
- package/dist/browser/lib/index.d.mts.map +0 -1
- package/dist/browser/lib/validByType.d.cts +0 -7
- package/dist/browser/lib/validByType.d.cts.map +0 -1
- package/dist/browser/lib/validByType.d.mts +0 -7
- package/dist/browser/lib/validByType.d.mts.map +0 -1
- package/dist/neutral/Archivist.d.cts +0 -76
- package/dist/neutral/Archivist.d.cts.map +0 -1
- package/dist/neutral/Archivist.d.mts +0 -76
- package/dist/neutral/Archivist.d.mts.map +0 -1
- package/dist/neutral/index.cjs +0 -149
- package/dist/neutral/index.cjs.map +0 -1
- package/dist/neutral/index.d.cts +0 -3
- package/dist/neutral/index.d.cts.map +0 -1
- package/dist/neutral/index.d.mts +0 -3
- package/dist/neutral/index.d.mts.map +0 -1
- package/dist/neutral/index.js.map +0 -1
- package/dist/neutral/lib/index.d.cts +0 -2
- package/dist/neutral/lib/index.d.cts.map +0 -1
- package/dist/neutral/lib/index.d.mts +0 -2
- package/dist/neutral/lib/index.d.mts.map +0 -1
- package/dist/neutral/lib/validByType.d.cts +0 -7
- package/dist/neutral/lib/validByType.d.cts.map +0 -1
- package/dist/neutral/lib/validByType.d.mts +0 -7
- package/dist/neutral/lib/validByType.d.mts.map +0 -1
- package/dist/node/Archivist.d.cts +0 -76
- package/dist/node/Archivist.d.cts.map +0 -1
- package/dist/node/Archivist.d.mts +0 -76
- package/dist/node/Archivist.d.mts.map +0 -1
- package/dist/node/index.cjs +0 -158
- package/dist/node/index.cjs.map +0 -1
- package/dist/node/index.d.cts +0 -3
- package/dist/node/index.d.cts.map +0 -1
- package/dist/node/index.d.mts +0 -3
- package/dist/node/index.d.mts.map +0 -1
- package/dist/node/index.js.map +0 -1
- package/dist/node/lib/index.d.cts +0 -2
- package/dist/node/lib/index.d.cts.map +0 -1
- package/dist/node/lib/index.d.mts +0 -2
- package/dist/node/lib/index.d.mts.map +0 -1
- package/dist/node/lib/validByType.d.cts +0 -7
- package/dist/node/lib/validByType.d.cts.map +0 -1
- package/dist/node/lib/validByType.d.mts +0 -7
- package/dist/node/lib/validByType.d.mts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Hash } from '@xylabs/hex';
|
|
1
|
+
import type { Hash } from '@xylabs/hex';
|
|
2
2
|
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
|
-
import { Payload, Schema, WithMeta } from '@xyo-network/payload-model';
|
|
4
|
-
import { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
|
|
3
|
+
import type { Payload, Schema, WithMeta } from '@xyo-network/payload-model';
|
|
4
|
+
import type { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
|
|
5
5
|
declare const MongoDBArchivistBase: (abstract new (...args: any[]) => {
|
|
6
6
|
_boundWitnessSdk: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<import("@xyo-network/payload-mongodb").BoundWitnessWithMongoMeta> | undefined;
|
|
7
7
|
_payloadSdk: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<PayloadWithMongoMeta> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;
|
|
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;AAKnE,OAAO,KAAK,EACV,OAAO,EAAE,MAAM,EAAE,QAAQ,EAC1B,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAMxE,QAAA,MAAM,oBAAoB;;;;;8BAgCoD,8BAA8B;;;;oBAE1D,aAAa;;+CAzBc,+BACnE;0CAGQ,+BAA+B;uBACtB,mCAEJ;;;;;;;qBAsBR,2BAA2B;;yBA3ClB,4BAA4B;;mCACG,4BAEnC;;uBAE6B,4BAExC,wBAAwB,4BACjC,8BAA8B,2BAA2B,iCAAiC,2BACjF,8BAA8B,4BAA4B,wBAE/D,4BAA4B,8BAA8B,2BAE7D,iCAAiC,2BAC7B;iCAAsD,CAAC,iBAAiB,+BACnE;4BAGR,CAAD,iBAAiB,+BAA+B;2BACtB,mCAEJ;;;;;;;8CAE+B,2BAA2B;;wCAEV,+BAA+B,6CAClF,+BAA+B;0BACV,8BAA8B;mCAErC,+BAA+B,6CAA6C,+BACzF;;+BAcN,iBAAgB;;6BACsC,iCAAiC,6BACrF,iCACd,0CAA0C,2BAA2B,wBAC9D,2BAA2B,kCAAkC,CAAC,SAAS,4BAChF,wBAAwB,CAAC,mBAAmB,iBAAiB,oBAC1D,2BACgB;iCAAwD,iCAAgC,6BAC5F,iCAAiC,4CACR,2BAA0B,wBAAwB,2BAC7E,kCAAkC,CAAC,SAAS,4BAA4B,wBAAwB,CAAC,qBACvG,iBAAe;yBAAiD,iBAAgB;wBAGjD,iBAAiB;sBAA6C,2BAGlF;4CAEJ,2BACJ,0CAGoB,2BAA2B;yCAA8E,2BAA2B,oEAAoE,2BAA2B;+CAAsG,2BAA2B,oEAAoE,2BAA2B;2CAAkG,2BAA2B,0CAA0C,2BAA2B;wCAA+E,2BAA2B,mFAAmF,4BAA4B,uBAAuB,2BAA2B;4BAA2E,4BAA4B;uCAAkF,2BAA2B,mFAAmF,4BAA4B,uBAAuB,2BAA2B,gDAAgD,4BAA4B;2BAAuD,4BAA4B,4BAA4B,4BAA4B;yCAAqE,2BAA2B,mEAAmE,4BAA4B,uBAAuB,2BAA2B,gDAAgD,4BAA4B;;;4BA9DtvD,CAAA;AAElE,qBAAa,gBAAiB,SAAQ,oBAAoB;IACxD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAyD;IACzG,gBAAyB,mBAAmB,EAAE,MAAM,CAA+B;IAEnF,SAAkB,OAAO,EAAE,MAAM,EAAE,CAAiD;IAErE,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;cAK1B,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;cAyBxD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;cAkBhE,YAAY;CAKtC"}
|
|
@@ -0,0 +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 { 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 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'\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, ...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: 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('MongoDBDeterministicArchivist: 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('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 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(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.js'\nexport * from '@xyo-network/archivist-model-mongodb'\n"],"mappings":"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","names":["exists","AbstractArchivist","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","configSchemas","MongoDBArchivistConfigSchema","defaultConfigSchema","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","Set","hash","has","dataBws","boundWitnesses","dataBwsHashes","_hash","payloadsHashes","bws","bwsHashes","foundPayloads","result","PayloadBuilder","build","fromDbRepresentation","insertHandler","bw","p","validByType","payloadsWithExternalMeta","value","index","toDbRepresentation","length","payloadsResult","insertMany","acknowledged","insertedCount","Error","boundWitnessesWithExternalMeta","boundWitnessesResult","startHandler","ensureIndexes"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
1
|
+
import type { Payload } from '@xyo-network/payload-model';
|
|
2
2
|
export declare const validByType: (payloads?: Payload[]) => Promise<[(import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
3
3
|
schema: "network.xyo.boundwitness";
|
|
4
4
|
})[], ({
|
|
@@ -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":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD,eAAO,MAAM,WAAW,cAAoB,OAAO,EAAE;;;;2DAuBpD,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Hash } from '@xylabs/hex';
|
|
1
|
+
import type { Hash } from '@xylabs/hex';
|
|
2
2
|
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
|
-
import { Payload, Schema, WithMeta } from '@xyo-network/payload-model';
|
|
4
|
-
import { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
|
|
3
|
+
import type { Payload, Schema, WithMeta } from '@xyo-network/payload-model';
|
|
4
|
+
import type { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
|
|
5
5
|
declare const MongoDBArchivistBase: (abstract new (...args: any[]) => {
|
|
6
6
|
_boundWitnessSdk: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<import("@xyo-network/payload-mongodb").BoundWitnessWithMongoMeta> | undefined;
|
|
7
7
|
_payloadSdk: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<PayloadWithMongoMeta> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;
|
|
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;AAKnE,OAAO,KAAK,EACV,OAAO,EAAE,MAAM,EAAE,QAAQ,EAC1B,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAMxE,QAAA,MAAM,oBAAoB;;;;;8BAgCoD,8BAA8B;;;;oBAE1D,aAAa;;+CAzBc,+BACnE;0CAGQ,+BAA+B;uBACtB,mCAEJ;;;;;;;qBAsBR,2BAA2B;;yBA3ClB,4BAA4B;;mCACG,4BAEnC;;uBAE6B,4BAExC,wBAAwB,4BACjC,8BAA8B,2BAA2B,iCAAiC,2BACjF,8BAA8B,4BAA4B,wBAE/D,4BAA4B,8BAA8B,2BAE7D,iCAAiC,2BAC7B;iCAAsD,CAAC,iBAAiB,+BACnE;4BAGR,CAAD,iBAAiB,+BAA+B;2BACtB,mCAEJ;;;;;;;8CAE+B,2BAA2B;;wCAEV,+BAA+B,6CAClF,+BAA+B;0BACV,8BAA8B;mCAErC,+BAA+B,6CAA6C,+BACzF;;+BAcN,iBAAgB;;6BACsC,iCAAiC,6BACrF,iCACd,0CAA0C,2BAA2B,wBAC9D,2BAA2B,kCAAkC,CAAC,SAAS,4BAChF,wBAAwB,CAAC,mBAAmB,iBAAiB,oBAC1D,2BACgB;iCAAwD,iCAAgC,6BAC5F,iCAAiC,4CACR,2BAA0B,wBAAwB,2BAC7E,kCAAkC,CAAC,SAAS,4BAA4B,wBAAwB,CAAC,qBACvG,iBAAe;yBAAiD,iBAAgB;wBAGjD,iBAAiB;sBAA6C,2BAGlF;4CAEJ,2BACJ,0CAGoB,2BAA2B;yCAA8E,2BAA2B,oEAAoE,2BAA2B;+CAAsG,2BAA2B,oEAAoE,2BAA2B;2CAAkG,2BAA2B,0CAA0C,2BAA2B;wCAA+E,2BAA2B,mFAAmF,4BAA4B,uBAAuB,2BAA2B;4BAA2E,4BAA4B;uCAAkF,2BAA2B,mFAAmF,4BAA4B,uBAAuB,2BAA2B,gDAAgD,4BAA4B;2BAAuD,4BAA4B,4BAA4B,4BAA4B;yCAAqE,2BAA2B,mEAAmE,4BAA4B,uBAAuB,2BAA2B,gDAAgD,4BAA4B;;;4BA9DtvD,CAAA;AAElE,qBAAa,gBAAiB,SAAQ,oBAAoB;IACxD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAyD;IACzG,gBAAyB,mBAAmB,EAAE,MAAM,CAA+B;IAEnF,SAAkB,OAAO,EAAE,MAAM,EAAE,CAAiD;IAErE,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;cAK1B,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;cAyBxD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;cAkBhE,YAAY;CAKtC"}
|
|
@@ -0,0 +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 { 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 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'\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, ...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: 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('MongoDBDeterministicArchivist: 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('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 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(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.js'\nexport * from '@xyo-network/archivist-model-mongodb'\n"],"mappings":"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","names":["exists","AbstractArchivist","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","configSchemas","MongoDBArchivistConfigSchema","defaultConfigSchema","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","Set","hash","has","dataBws","boundWitnesses","dataBwsHashes","_hash","payloadsHashes","bws","bwsHashes","foundPayloads","result","PayloadBuilder","build","fromDbRepresentation","insertHandler","bw","p","validByType","payloadsWithExternalMeta","value","index","toDbRepresentation","length","payloadsResult","insertMany","acknowledged","insertedCount","Error","boundWitnessesWithExternalMeta","boundWitnessesResult","startHandler","ensureIndexes"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
1
|
+
import type { Payload } from '@xyo-network/payload-model';
|
|
2
2
|
export declare const validByType: (payloads?: Payload[]) => Promise<[(import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
3
3
|
schema: "network.xyo.boundwitness";
|
|
4
4
|
})[], ({
|
|
@@ -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":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD,eAAO,MAAM,WAAW,cAAoB,OAAO,EAAE;;;;2DAuBpD,CAAA"}
|
package/dist/node/Archivist.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Hash } from '@xylabs/hex';
|
|
1
|
+
import type { Hash } from '@xylabs/hex';
|
|
2
2
|
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
|
-
import { Payload, Schema, WithMeta } from '@xyo-network/payload-model';
|
|
4
|
-
import { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
|
|
3
|
+
import type { Payload, Schema, WithMeta } from '@xyo-network/payload-model';
|
|
4
|
+
import type { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
|
|
5
5
|
declare const MongoDBArchivistBase: (abstract new (...args: any[]) => {
|
|
6
6
|
_boundWitnessSdk: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<import("@xyo-network/payload-mongodb").BoundWitnessWithMongoMeta> | undefined;
|
|
7
7
|
_payloadSdk: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<PayloadWithMongoMeta> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;
|
|
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;AAKnE,OAAO,KAAK,EACV,OAAO,EAAE,MAAM,EAAE,QAAQ,EAC1B,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAMxE,QAAA,MAAM,oBAAoB;;;;;8BAgCoD,8BAA8B;;;;oBAE1D,aAAa;;+CAzBc,+BACnE;0CAGQ,+BAA+B;uBACtB,mCAEJ;;;;;;;qBAsBR,2BAA2B;;yBA3ClB,4BAA4B;;mCACG,4BAEnC;;uBAE6B,4BAExC,wBAAwB,4BACjC,8BAA8B,2BAA2B,iCAAiC,2BACjF,8BAA8B,4BAA4B,wBAE/D,4BAA4B,8BAA8B,2BAE7D,iCAAiC,2BAC7B;iCAAsD,CAAC,iBAAiB,+BACnE;4BAGR,CAAD,iBAAiB,+BAA+B;2BACtB,mCAEJ;;;;;;;8CAE+B,2BAA2B;;wCAEV,+BAA+B,6CAClF,+BAA+B;0BACV,8BAA8B;mCAErC,+BAA+B,6CAA6C,+BACzF;;+BAcN,iBAAgB;;6BACsC,iCAAiC,6BACrF,iCACd,0CAA0C,2BAA2B,wBAC9D,2BAA2B,kCAAkC,CAAC,SAAS,4BAChF,wBAAwB,CAAC,mBAAmB,iBAAiB,oBAC1D,2BACgB;iCAAwD,iCAAgC,6BAC5F,iCAAiC,4CACR,2BAA0B,wBAAwB,2BAC7E,kCAAkC,CAAC,SAAS,4BAA4B,wBAAwB,CAAC,qBACvG,iBAAe;yBAAiD,iBAAgB;wBAGjD,iBAAiB;sBAA6C,2BAGlF;4CAEJ,2BACJ,0CAGoB,2BAA2B;yCAA8E,2BAA2B,oEAAoE,2BAA2B;+CAAsG,2BAA2B,oEAAoE,2BAA2B;2CAAkG,2BAA2B,0CAA0C,2BAA2B;wCAA+E,2BAA2B,mFAAmF,4BAA4B,uBAAuB,2BAA2B;4BAA2E,4BAA4B;uCAAkF,2BAA2B,mFAAmF,4BAA4B,uBAAuB,2BAA2B,gDAAgD,4BAA4B;2BAAuD,4BAA4B,4BAA4B,4BAA4B;yCAAqE,2BAA2B,mEAAmE,4BAA4B,uBAAuB,2BAA2B,gDAAgD,4BAA4B;;;4BA9DtvD,CAAA;AAElE,qBAAa,gBAAiB,SAAQ,oBAAoB;IACxD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAyD;IACzG,gBAAyB,mBAAmB,EAAE,MAAM,CAA+B;IAEnF,SAAkB,OAAO,EAAE,MAAM,EAAE,CAAiD;IAErE,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;cAK1B,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;cAyBxD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;cAkBhE,YAAY;CAKtC"}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
3
|
-
var __reflectGet = Reflect.get;
|
|
4
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
-
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
7
|
-
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
8
3
|
|
|
9
4
|
// src/Archivist.ts
|
|
10
5
|
import { exists } from "@xylabs/exists";
|
|
@@ -48,7 +43,15 @@ var validByType = /* @__PURE__ */ __name(async (payloads = []) => {
|
|
|
48
43
|
|
|
49
44
|
// src/Archivist.ts
|
|
50
45
|
var MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist);
|
|
51
|
-
var
|
|
46
|
+
var MongoDBArchivist = class extends MongoDBArchivistBase {
|
|
47
|
+
static {
|
|
48
|
+
__name(this, "MongoDBArchivist");
|
|
49
|
+
}
|
|
50
|
+
static configSchemas = [
|
|
51
|
+
...super.configSchemas,
|
|
52
|
+
MongoDBArchivistConfigSchema
|
|
53
|
+
];
|
|
54
|
+
static defaultConfigSchema = MongoDBArchivistConfigSchema;
|
|
52
55
|
queries = [
|
|
53
56
|
ArchivistInsertQuerySchema,
|
|
54
57
|
...super.queries
|
|
@@ -115,17 +118,10 @@ var _MongoDBArchivist = class _MongoDBArchivist extends MongoDBArchivistBase {
|
|
|
115
118
|
return true;
|
|
116
119
|
}
|
|
117
120
|
};
|
|
118
|
-
__name(_MongoDBArchivist, "MongoDBArchivist");
|
|
119
|
-
__publicField(_MongoDBArchivist, "configSchemas", [
|
|
120
|
-
...__superGet(_MongoDBArchivist, _MongoDBArchivist, "configSchemas"),
|
|
121
|
-
MongoDBArchivistConfigSchema
|
|
122
|
-
]);
|
|
123
|
-
__publicField(_MongoDBArchivist, "defaultConfigSchema", MongoDBArchivistConfigSchema);
|
|
124
|
-
var MongoDBArchivist = _MongoDBArchivist;
|
|
125
121
|
|
|
126
122
|
// src/index.ts
|
|
127
123
|
export * from "@xyo-network/archivist-model-mongodb";
|
|
128
124
|
export {
|
|
129
125
|
MongoDBArchivist
|
|
130
126
|
};
|
|
131
|
-
//# sourceMappingURL=index.
|
|
127
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +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 { 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 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'\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, ...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: 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('MongoDBDeterministicArchivist: 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('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 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(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.js'\nexport * from '@xyo-network/archivist-model-mongodb'\n"],"mappings":"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","names":["exists","AbstractArchivist","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","configSchemas","MongoDBArchivistConfigSchema","defaultConfigSchema","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","Set","hash","has","dataBws","boundWitnesses","dataBwsHashes","_hash","payloadsHashes","bws","bwsHashes","foundPayloads","result","PayloadBuilder","build","fromDbRepresentation","insertHandler","bw","p","validByType","payloadsWithExternalMeta","value","index","toDbRepresentation","length","payloadsResult","insertMany","acknowledged","insertedCount","Error","boundWitnessesWithExternalMeta","boundWitnessesResult","startHandler","ensureIndexes"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
1
|
+
import type { Payload } from '@xyo-network/payload-model';
|
|
2
2
|
export declare const validByType: (payloads?: Payload[]) => Promise<[(import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
3
3
|
schema: "network.xyo.boundwitness";
|
|
4
4
|
})[], ({
|
|
@@ -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":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD,eAAO,MAAM,WAAW,cAAoB,OAAO,EAAE;;;;2DAuBpD,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,81 +1,72 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/archivist-mongodb",
|
|
3
|
-
"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
"url": "https://xyo.network"
|
|
7
|
-
},
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
5
|
+
"homepage": "https://xyo.network",
|
|
8
6
|
"bugs": {
|
|
9
|
-
"
|
|
10
|
-
"
|
|
7
|
+
"url": "git+https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues",
|
|
8
|
+
"email": "support@xyo.network"
|
|
11
9
|
},
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"@xyo-network/archivist-abstract": "^2.110.7",
|
|
16
|
-
"@xyo-network/archivist-model": "^2.110.7",
|
|
17
|
-
"@xyo-network/archivist-model-mongodb": "^2.89.1",
|
|
18
|
-
"@xyo-network/boundwitness-model": "^2.110.7",
|
|
19
|
-
"@xyo-network/boundwitness-wrapper": "^2.110.7",
|
|
20
|
-
"@xyo-network/module-abstract-mongodb": "^2.89.1",
|
|
21
|
-
"@xyo-network/payload-builder": "^2.110.7",
|
|
22
|
-
"@xyo-network/payload-model": "^2.110.7",
|
|
23
|
-
"@xyo-network/payload-mongodb": "^2.89.1",
|
|
24
|
-
"@xyo-network/payload-wrapper": "^2.110.7"
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
25
13
|
},
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"@xyo-network/account": "^2.110.7",
|
|
32
|
-
"@xyo-network/account-model": "^2.110.7",
|
|
33
|
-
"@xyo-network/archivist-wrapper": "^2.110.7",
|
|
34
|
-
"@xyo-network/boundwitness-builder": "^2.110.7",
|
|
35
|
-
"@xyo-network/sdk-xyo-mongo-js": "^2.89.1",
|
|
36
|
-
"fake-indexeddb": "^4.0.2",
|
|
37
|
-
"jest": "^29.7.0",
|
|
38
|
-
"typescript": "^5.5.3"
|
|
14
|
+
"license": "LGPL-3.0-only",
|
|
15
|
+
"author": {
|
|
16
|
+
"name": "XYO Development Team",
|
|
17
|
+
"email": "support@xyo.network",
|
|
18
|
+
"url": "https://xyo.network"
|
|
39
19
|
},
|
|
40
|
-
"
|
|
41
|
-
"
|
|
20
|
+
"sideEffects": false,
|
|
21
|
+
"type": "module",
|
|
42
22
|
"exports": {
|
|
43
23
|
".": {
|
|
44
24
|
"browser": {
|
|
45
|
-
"require": {
|
|
46
|
-
"types": "./dist/browser/index.d.cts",
|
|
47
|
-
"default": "./dist/browser/index.cjs"
|
|
48
|
-
},
|
|
49
25
|
"import": {
|
|
50
|
-
"types": "./dist/browser/index.d.
|
|
51
|
-
"default": "./dist/browser/index.
|
|
26
|
+
"types": "./dist/browser/index.d.ts",
|
|
27
|
+
"default": "./dist/browser/index.mjs"
|
|
52
28
|
}
|
|
53
29
|
},
|
|
54
30
|
"node": {
|
|
55
|
-
"require": {
|
|
56
|
-
"types": "./dist/node/index.d.cts",
|
|
57
|
-
"default": "./dist/node/index.cjs"
|
|
58
|
-
},
|
|
59
31
|
"import": {
|
|
60
|
-
"types": "./dist/node/index.d.
|
|
61
|
-
"default": "./dist/node/index.
|
|
32
|
+
"types": "./dist/node/index.d.ts",
|
|
33
|
+
"default": "./dist/node/index.mjs"
|
|
62
34
|
}
|
|
63
35
|
}
|
|
64
36
|
},
|
|
65
37
|
"./package.json": "./package.json"
|
|
66
38
|
},
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
"
|
|
39
|
+
"module": "dist/node/index.mjs",
|
|
40
|
+
"types": "dist/node/index.d.ts",
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@xylabs/exists": "^4.0.5",
|
|
43
|
+
"@xylabs/hex": "^4.0.5",
|
|
44
|
+
"@xyo-network/archivist-abstract": "^3.0.11",
|
|
45
|
+
"@xyo-network/archivist-model": "^3.0.11",
|
|
46
|
+
"@xyo-network/archivist-model-mongodb": "^3.0.0",
|
|
47
|
+
"@xyo-network/boundwitness-model": "^3.0.11",
|
|
48
|
+
"@xyo-network/boundwitness-wrapper": "^3.0.11",
|
|
49
|
+
"@xyo-network/module-abstract-mongodb": "^3.0.0",
|
|
50
|
+
"@xyo-network/payload-builder": "^3.0.11",
|
|
51
|
+
"@xyo-network/payload-model": "^3.0.11",
|
|
52
|
+
"@xyo-network/payload-mongodb": "^3.0.0",
|
|
53
|
+
"@xyo-network/payload-wrapper": "^3.0.11"
|
|
73
54
|
},
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
55
|
+
"devDependencies": {
|
|
56
|
+
"@xylabs/arraybuffer": "^4.0.5",
|
|
57
|
+
"@xylabs/jest-helpers": "^4.0.5",
|
|
58
|
+
"@xylabs/ts-scripts-yarn3": "^4.0.7",
|
|
59
|
+
"@xylabs/tsconfig": "^4.0.7",
|
|
60
|
+
"@xyo-network/account": "^3.0.11",
|
|
61
|
+
"@xyo-network/account-model": "^3.0.11",
|
|
62
|
+
"@xyo-network/archivist-wrapper": "^3.0.11",
|
|
63
|
+
"@xyo-network/boundwitness-builder": "^3.0.11",
|
|
64
|
+
"@xyo-network/sdk-xyo-mongo-js": "^3.0.0",
|
|
65
|
+
"fake-indexeddb": "^6.0.0",
|
|
66
|
+
"jest": "^29.7.0",
|
|
67
|
+
"typescript": "^5.5.4"
|
|
77
68
|
},
|
|
78
|
-
"
|
|
79
|
-
|
|
80
|
-
|
|
69
|
+
"publishConfig": {
|
|
70
|
+
"access": "public"
|
|
71
|
+
}
|
|
81
72
|
}
|
package/src/Archivist.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { exists } from '@xylabs/exists'
|
|
2
|
-
import { Hash } from '@xylabs/hex'
|
|
2
|
+
import type { Hash } from '@xylabs/hex'
|
|
3
3
|
import { AbstractArchivist } from '@xyo-network/archivist-abstract'
|
|
4
4
|
import { 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
7
|
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
8
|
-
import {
|
|
9
|
-
|
|
8
|
+
import type {
|
|
9
|
+
Payload, Schema, WithMeta,
|
|
10
|
+
} from '@xyo-network/payload-model'
|
|
11
|
+
import type { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'
|
|
12
|
+
import { fromDbRepresentation, toDbRepresentation } from '@xyo-network/payload-mongodb'
|
|
10
13
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
11
14
|
|
|
12
15
|
import { validByType } from './lib/index.js'
|
|
@@ -27,25 +30,25 @@ export class MongoDBArchivist extends MongoDBArchivistBase {
|
|
|
27
30
|
protected override async getHandler(hashes: Hash[]): Promise<WithMeta<Payload>[]> {
|
|
28
31
|
let remainingHashes = [...hashes]
|
|
29
32
|
|
|
30
|
-
const dataPayloads = (await Promise.all(remainingHashes.map(
|
|
31
|
-
const dataPayloadsHashes = new Set(dataPayloads.map(
|
|
32
|
-
remainingHashes = remainingHashes.filter(
|
|
33
|
+
const dataPayloads = (await Promise.all(remainingHashes.map(_$hash => this.payloads.findOne({ _$hash })))).filter(exists)
|
|
34
|
+
const dataPayloadsHashes = new Set(dataPayloads.map(payload => payload._$hash))
|
|
35
|
+
remainingHashes = remainingHashes.filter(hash => !dataPayloadsHashes.has(hash))
|
|
33
36
|
|
|
34
|
-
const dataBws = (await Promise.all(remainingHashes.map(
|
|
35
|
-
const dataBwsHashes = new Set(dataBws.map(
|
|
36
|
-
remainingHashes = remainingHashes.filter(
|
|
37
|
+
const dataBws = (await Promise.all(remainingHashes.map(_$hash => this.boundWitnesses.findOne({ _$hash })))).filter(exists)
|
|
38
|
+
const dataBwsHashes = new Set(dataBws.map(payload => payload._$hash))
|
|
39
|
+
remainingHashes = remainingHashes.filter(hash => !dataBwsHashes.has(hash))
|
|
37
40
|
|
|
38
|
-
const payloads = (await Promise.all(remainingHashes.map(
|
|
39
|
-
const payloadsHashes = new Set(payloads.map(
|
|
40
|
-
remainingHashes = remainingHashes.filter(
|
|
41
|
+
const payloads = (await Promise.all(remainingHashes.map(_hash => this.payloads.findOne({ _hash })))).filter(exists)
|
|
42
|
+
const payloadsHashes = new Set(payloads.map(payload => payload._hash))
|
|
43
|
+
remainingHashes = remainingHashes.filter(hash => !payloadsHashes.has(hash))
|
|
41
44
|
|
|
42
|
-
const bws = (await Promise.all(remainingHashes.map(
|
|
43
|
-
const bwsHashes = new Set(bws.map(
|
|
44
|
-
remainingHashes = remainingHashes.filter(
|
|
45
|
+
const bws = (await Promise.all(remainingHashes.map(_hash => this.boundWitnesses.findOne({ _hash })))).filter(exists)
|
|
46
|
+
const bwsHashes = new Set(bws.map(payload => payload._hash))
|
|
47
|
+
remainingHashes = remainingHashes.filter(hash => !bwsHashes.has(hash))
|
|
45
48
|
|
|
46
49
|
const foundPayloads = [...dataPayloads, ...dataBws, ...payloads, ...bws] as PayloadWithMongoMeta<Payload & { _$hash: Hash; _$meta?: unknown }>[]
|
|
47
50
|
const result = await PayloadBuilder.build(foundPayloads.map(fromDbRepresentation))
|
|
48
|
-
//console.log(`getHandler: ${JSON.stringify(hashes, null, 2)}:${JSON.stringify(result, null, 2)}`)
|
|
51
|
+
// console.log(`getHandler: ${JSON.stringify(hashes, null, 2)}:${JSON.stringify(result, null, 2)}`)
|
|
49
52
|
return result
|
|
50
53
|
}
|
|
51
54
|
|
package/src/lib/validByType.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { BoundWitness
|
|
1
|
+
import type { BoundWitness } from '@xyo-network/boundwitness-model'
|
|
2
|
+
import { isBoundWitness, isQueryBoundWitness } from '@xyo-network/boundwitness-model'
|
|
2
3
|
import { BoundWitnessWrapper, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
|
|
3
|
-
import { Payload } from '@xyo-network/payload-model'
|
|
4
|
+
import type { Payload } from '@xyo-network/payload-model'
|
|
4
5
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
5
6
|
|
|
6
7
|
export const validByType = async (payloads: Payload[] = []) => {
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { Hash } from '@xylabs/hex';
|
|
2
|
-
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
3
|
-
import { Payload, Schema, WithMeta } from '@xyo-network/payload-model';
|
|
4
|
-
import { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
|
|
5
|
-
declare const MongoDBArchivistBase: (abstract new (...args: any[]) => {
|
|
6
|
-
_boundWitnessSdk: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<import("@xyo-network/payload-mongodb").BoundWitnessWithMongoMeta> | undefined;
|
|
7
|
-
_payloadSdk: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<PayloadWithMongoMeta> | undefined;
|
|
8
|
-
readonly boundWitnessSdkConfig: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkConfig;
|
|
9
|
-
readonly boundWitnesses: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<import("@xyo-network/payload-mongodb").BoundWitnessWithMongoMeta>;
|
|
10
|
-
readonly jobQueue: import("@xyo-network/node-core-model").JobQueue;
|
|
11
|
-
readonly payloadSdkConfig: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkConfig;
|
|
12
|
-
readonly payloads: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<PayloadWithMongoMeta>;
|
|
13
|
-
ensureIndexes(): Promise<void>;
|
|
14
|
-
address: import("@xylabs/hex").Address;
|
|
15
|
-
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
|
|
16
|
-
boundWitnessSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
|
|
17
|
-
payloadSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
|
|
18
|
-
schema: import("@xyo-network/module-model-mongodb").MongoDBModuleConfigSchema;
|
|
19
|
-
}, "schema"> & {
|
|
20
|
-
schema: "network.xyo.module.mongodb.config";
|
|
21
|
-
}, "schema"> & {
|
|
22
|
-
schema: string;
|
|
23
|
-
};
|
|
24
|
-
id: string;
|
|
25
|
-
modName?: import("@xyo-network/module-model").ModuleName;
|
|
26
|
-
params: import("@xylabs/object").BaseParamsFields & {
|
|
27
|
-
account?: import("@xyo-network/account-model").AccountInstance | "random";
|
|
28
|
-
addToResolvers?: boolean;
|
|
29
|
-
additionalSigners?: import("@xyo-network/account-model").AccountInstance[];
|
|
30
|
-
allowNameResolution?: boolean;
|
|
31
|
-
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
|
|
32
|
-
boundWitnessSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
|
|
33
|
-
payloadSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
|
|
34
|
-
schema: import("@xyo-network/module-model-mongodb").MongoDBModuleConfigSchema;
|
|
35
|
-
}, "schema"> & {
|
|
36
|
-
schema: "network.xyo.module.mongodb.config";
|
|
37
|
-
}, "schema"> & {
|
|
38
|
-
schema: string;
|
|
39
|
-
};
|
|
40
|
-
ephemeralQueryAccountEnabled?: boolean;
|
|
41
|
-
moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
|
|
42
|
-
} & {
|
|
43
|
-
boundWitnessSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
|
|
44
|
-
jobQueue?: import("@xyo-network/node-core-model").JobQueue;
|
|
45
|
-
payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
|
|
46
|
-
};
|
|
47
|
-
previousHash: () => import("@xylabs/promise").Promisable<string | undefined>;
|
|
48
|
-
queries: string[];
|
|
49
|
-
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("@xylabs/promise").Promisable<import("@xyo-network/module-model").ModuleQueryResult>;
|
|
50
|
-
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("@xylabs/promise").Promisable<boolean>;
|
|
51
|
-
start?: () => import("@xylabs/promise").Promisable<boolean>;
|
|
52
|
-
stop?: () => import("@xylabs/promise").Promisable<boolean>;
|
|
53
|
-
eventData: import("@xyo-network/module-model").ModuleEventData<object>;
|
|
54
|
-
clearListeners(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): void;
|
|
55
|
-
emit<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
|
|
56
|
-
emitSerial<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
|
|
57
|
-
listenerCount(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): number;
|
|
58
|
-
off<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): void;
|
|
59
|
-
offAny(listener: import("@xyo-network/module-events").EventAnyListener | Promise<void>): void;
|
|
60
|
-
on<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
|
|
61
|
-
onAny(listener: import("@xyo-network/module-events").EventAnyListener): import("@xyo-network/module-events").EventUnsubscribeFunction;
|
|
62
|
-
once<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
|
|
63
|
-
}) & {
|
|
64
|
-
labels: import("@xyo-network/module-model-mongodb").MongoDBStorageClassLabels;
|
|
65
|
-
} & typeof AbstractArchivist;
|
|
66
|
-
export declare class MongoDBArchivist extends MongoDBArchivistBase {
|
|
67
|
-
static readonly configSchemas: Schema[];
|
|
68
|
-
static readonly defaultConfigSchema: Schema;
|
|
69
|
-
readonly queries: string[];
|
|
70
|
-
head(): Promise<Payload | undefined>;
|
|
71
|
-
protected getHandler(hashes: Hash[]): Promise<WithMeta<Payload>[]>;
|
|
72
|
-
protected insertHandler(payloads: Payload[]): Promise<WithMeta<Payload>[]>;
|
|
73
|
-
protected startHandler(): Promise<boolean>;
|
|
74
|
-
}
|
|
75
|
-
export {};
|
|
76
|
-
//# sourceMappingURL=Archivist.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAKnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EAAwB,oBAAoB,EAAsB,MAAM,8BAA8B,CAAA;AAK7G,QAAA,MAAM,oBAAoB;;;;;8BAgC4F,8BAA8B;;;;oBAEzD,aAC3F;;+CAzB2C,+BAE3C;0CACkF,+BACvD;uBAEyB,mCAAmC;;;;;;;WAsBzC,CAAC,SAAS,2BAA2B;;yBA1CnF,4BAA4B;;mCAIlB,4BAA4B;;uBAEO,4BACjC,wBAAwB,4BAA4B,8BAA8B,2BACjF,iCAAiC,2BAA2B,8BAEzD,4BAA4B,wBAAyB,4BAE7D,8BAA8B,2BAC7B,iCAAiC,2BAA2B;iCAC5C,CAAC,iBAAiB,+BAE3C;4BACgE,CAAC,iBAAiB,+BACvD;2BAEyB,mCAAmC;;;;;;;8CAI5D,2BAA2B;;wCAClD,+BAA2B,6CAC3B,+BAA2B;0BAElB,8BAA8B;mCAA2C,+BAA+B,6CAC7E,+BAA+B;;+BAehE,iBAAiB;;6BAAsF,iCACjF,6BACjB,iCAAgC,0CACtC,2BAAqB,wBAAwB,2BAA2B,kCACtE,CAAH,SAAS,4BAA4B,wBAAwB,CAAC,mBAC/D,iBACU,oBAAoB,2BAA2B;iCAAuD,iCACxF,6BACtB,iCAA+B,4CAA4C,2BAC7E,wBAAwB,2BAA2B,kCAAkC,CAAC,SAAS,4BAClG,wBAAwB,CAAC,qBAAqB,iBAAiB;SAG5D,CAAH,eAAgB,iBAAgB;QAA+B,CAAC,eAAe,iBAAiB;sBAGhE,2BACjB;4CAKb,2BAA2B,0CAA0C,2BAA2B;yCAA8E,2BAA2B,oEAAoE,2BAA2B;+CAAsG,2BAA2B,oEAAoE,2BAA2B;2CAAkG,2BAA2B,0CAA0C,2BAA2B;wCAA+E,2BAA2B,mFAAmF,4BAA4B,uBAAuB,2BAA2B;4BAA2E,4BAA4B;uCAAkF,2BAA2B,mFAAmF,4BAA4B,uBAAuB,2BAA2B,gDAAgD,4BAA4B;2BAAuD,4BAA4B,4BAA4B,4BAA4B;yCAAqE,2BAA2B,mEAAmE,4BAA4B,uBAAuB,2BAA2B,gDAAgD,4BAA4B;;;4BA9D/xD,CAAA;AAElE,qBAAa,gBAAiB,SAAQ,oBAAoB;IACxD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAyD;IACzG,gBAAyB,mBAAmB,EAAE,MAAM,CAA+B;IAEnF,SAAkB,OAAO,EAAE,MAAM,EAAE,CAAiD;IAErE,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;cAK1B,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;cAyBxD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;cAkBhE,YAAY;CAKtC"}
|