@xyo-network/archivist-mongodb 2.88.9 → 2.89.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/Archivist.d.cts.map +1 -1
- package/dist/browser/Archivist.d.mts.map +1 -1
- package/dist/browser/Archivist.d.ts.map +1 -1
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.d.cts +1 -1
- package/dist/browser/index.d.cts.map +1 -1
- package/dist/browser/index.d.mts +1 -1
- package/dist/browser/index.d.mts.map +1 -1
- package/dist/browser/index.d.ts +1 -1
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/lib/index.d.cts +1 -1
- package/dist/browser/lib/index.d.cts.map +1 -1
- package/dist/browser/lib/index.d.mts +1 -1
- package/dist/browser/lib/index.d.mts.map +1 -1
- package/dist/browser/lib/index.d.ts +1 -1
- package/dist/browser/lib/index.d.ts.map +1 -1
- package/dist/neutral/Archivist.d.cts.map +1 -1
- package/dist/neutral/Archivist.d.mts.map +1 -1
- package/dist/neutral/Archivist.d.ts.map +1 -1
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.d.cts +1 -1
- package/dist/neutral/index.d.cts.map +1 -1
- package/dist/neutral/index.d.mts +1 -1
- package/dist/neutral/index.d.mts.map +1 -1
- package/dist/neutral/index.d.ts +1 -1
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.js.map +1 -1
- package/dist/neutral/lib/index.d.cts +1 -1
- package/dist/neutral/lib/index.d.cts.map +1 -1
- package/dist/neutral/lib/index.d.mts +1 -1
- package/dist/neutral/lib/index.d.mts.map +1 -1
- package/dist/neutral/lib/index.d.ts +1 -1
- package/dist/neutral/lib/index.d.ts.map +1 -1
- package/dist/node/Archivist.d.cts.map +1 -1
- package/dist/node/Archivist.d.mts.map +1 -1
- package/dist/node/Archivist.d.ts.map +1 -1
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +1 -1
- package/dist/node/index.d.cts.map +1 -1
- package/dist/node/index.d.mts +1 -1
- package/dist/node/index.d.mts.map +1 -1
- package/dist/node/index.d.ts +1 -1
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/lib/index.d.cts +1 -1
- package/dist/node/lib/index.d.cts.map +1 -1
- package/dist/node/lib/index.d.mts +1 -1
- package/dist/node/lib/index.d.mts.map +1 -1
- package/dist/node/lib/index.d.ts +1 -1
- package/dist/node/lib/index.d.ts.map +1 -1
- package/package.json +22 -22
- package/src/Archivist.ts +1 -1
- package/src/index.ts +1 -1
- package/src/lib/index.ts +1 -1
|
@@ -1 +1 @@
|
|
|
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;;;;;
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
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;;;;;
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
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;;;;;
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
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 { 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, Schema, 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 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 { 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 = 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","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
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Archivist.ts","../../src/lib/validByType.ts"],"sourcesContent":["export * from './Archivist.js'\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 { 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, Schema, 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/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 { 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 = 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","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"]}
|
package/dist/browser/index.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sCAAsC,CAAA"}
|
package/dist/browser/index.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sCAAsC,CAAA"}
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sCAAsC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
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 { 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, Schema, 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 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 { 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 = 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","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
|
+
{"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 { 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, Schema, 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/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 { 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 = 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,2 +1,2 @@
|
|
|
1
|
-
export * from './validByType';
|
|
1
|
+
export * from './validByType.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,kBAAkB,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './validByType';
|
|
1
|
+
export * from './validByType.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,kBAAkB,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './validByType';
|
|
1
|
+
export * from './validByType.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,kBAAkB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
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;;;;;
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
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;;;;;
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
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;;;;;
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
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 { 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, Schema, 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 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 { 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 = 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","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
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Archivist.ts","../../src/lib/validByType.ts"],"sourcesContent":["export * from './Archivist.js'\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 { 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, Schema, 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/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 { 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 = 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","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"]}
|
package/dist/neutral/index.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sCAAsC,CAAA"}
|
package/dist/neutral/index.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sCAAsC,CAAA"}
|
package/dist/neutral/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sCAAsC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
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 { 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, Schema, 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 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 { 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 = 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","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
|
+
{"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 { 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, Schema, 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/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 { 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 = 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":";;;;AAAA,SAASA,cAAc;AAEvB,SAASC,yBAAyB;AAClC,SAASC,kCAAkC;AAC3C,SAASC,oCAAoC;AAC7C,SAASC,0BAA0B;AACnC,SAASC,sBAAsB;AAE/B,SAASC,sBAA4CC,0BAA0B;AAC/E,SAASC,kBAAAA,uBAAsB;;;ACT/B,SAAuBC,gBAAgBC,2BAA2B;AAClE,SAASC,qBAAqBC,gCAAgC;AAE9D,SAASC,sBAAsB;AAExB,IAAMC,cAAc,8BAAOC,WAAsB,CAAA,MAAE;AACxD,QAAMC,UAAuC;IAAC,CAAA;IAAI,CAAA;;AAClD,QAAMC,QAAQC,IACZH,SAASI,IAAI,OAAOC,YAAAA;AAClB,QAAIC,eAAeD,OAAAA,GAAU;AAC3B,YAAME,UAAUC,oBAAoBH,OAAAA,IAAWI,2BAA2BC;AAC1E,YAAMC,KAAKJ,QAAQK,MAAMP,OAAAA;AACzB,UAAI,MAAMM,GAAGE,SAAQ,GAAI;AACvBZ,gBAAQ,CAAA,EAAGa,KAAKH,GAAGN,OAAO;MAC5B,OAAO;AACL,cAAMU,SAAS,MAAMJ,GAAGK,UAAS;AACjCC,gBAAQC,IAAI,sBAAsBC,KAAKC,UAAUL,QAAQ,MAAM,CAAA,CAAA,EAAI;MACrE;IACF,OAAO;AACL,YAAMM,iBAAiBC,eAAeC,KAAKlB,OAAAA;AAC3C,UAAI,MAAMgB,eAAeR,SAAQ,GAAI;AACnCZ,gBAAQ,CAAA,EAAGa,KAAKO,eAAehB,OAAO;MACxC;IACF;AACA;EACF,CAAA,CAAA;AAEF,SAAOJ;AACT,GAvB2B;;;ADQ3B,IAAMuB,uBAAuBC,mBAAmBC,iBAAAA;AAEzC,IAAMC,mBAAN,cAA+BH,qBAAAA;EAftC,OAesCA;;;EACpC,OAAyBI,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAErCE,UAAoB;IAACC;OAA+B,MAAMD;;EAE5E,MAAeE,OAAqC;AAClD,UAAMA,OAAO,OAAO,MAAM,KAAKC,SAASC,KAAK,CAAC,CAAA,GAAIC,KAAK;MAAEC,YAAY;IAAG,CAAA,EAAGC,MAAM,CAAA,EAAGC,QAAO;AAC3F,WAAON,KAAK,CAAA,IAAKO,gBAAeC,KAAKR,KAAK,CAAA,CAAE,EAAES,UAAUC;EAC1D;EAEA,MAAyBC,WAAWC,QAA8C;AAChF,QAAIC,kBAAkB;SAAID;;AAE1B,UAAME,gBAAgB,MAAMC,QAAQC,IAAIH,gBAAgBI,IAAI,CAACC,WAAW,KAAKjB,SAASkB,QAAQ;MAAED;IAAO,CAAA,CAAA,CAAA,GAAME,OAAOC,MAAAA;AACpH,UAAMC,qBAAqB,IAAIC,IAAIT,aAAaG,IAAI,CAACR,YAAYA,QAAQS,MAAM,CAAA;AAC/EL,sBAAkBA,gBAAgBO,OAAO,CAACI,SAAS,CAACF,mBAAmBG,IAAID,IAAAA,CAAAA;AAE3E,UAAME,WAAW,MAAMX,QAAQC,IAAIH,gBAAgBI,IAAI,CAACC,WAAW,KAAKS,eAAeR,QAAQ;MAAED;IAAO,CAAA,CAAA,CAAA,GAAME,OAAOC,MAAAA;AACrH,UAAMO,gBAAgB,IAAIL,IAAIG,QAAQT,IAAI,CAACR,YAAYA,QAAQS,MAAM,CAAA;AACrEL,sBAAkBA,gBAAgBO,OAAO,CAACI,SAAS,CAACI,cAAcH,IAAID,IAAAA,CAAAA;AAEtE,UAAMvB,YAAY,MAAMc,QAAQC,IAAIH,gBAAgBI,IAAI,CAACY,UAAU,KAAK5B,SAASkB,QAAQ;MAAEU;IAAM,CAAA,CAAA,CAAA,GAAMT,OAAOC,MAAAA;AAC9G,UAAMS,iBAAiB,IAAIP,IAAItB,SAASgB,IAAI,CAACR,YAAYA,QAAQoB,KAAK,CAAA;AACtEhB,sBAAkBA,gBAAgBO,OAAO,CAACI,SAAS,CAACM,eAAeL,IAAID,IAAAA,CAAAA;AAEvE,UAAMO,OAAO,MAAMhB,QAAQC,IAAIH,gBAAgBI,IAAI,CAACY,UAAU,KAAKF,eAAeR,QAAQ;MAAEU;IAAM,CAAA,CAAA,CAAA,GAAMT,OAAOC,MAAAA;AAC/G,UAAMW,YAAY,IAAIT,IAAIQ,IAAId,IAAI,CAACR,YAAYA,QAAQoB,KAAK,CAAA;AAC5DhB,sBAAkBA,gBAAgBO,OAAO,CAACI,SAAS,CAACQ,UAAUP,IAAID,IAAAA,CAAAA;AAElE,UAAMS,gBAAgB;SAAInB;SAAiBY;SAAYzB;SAAa8B;;AACpE,UAAMG,SAAS,MAAMC,eAAeC,MAAMH,cAAchB,IAAIoB,oBAAAA,CAAAA;AAE5D,WAAOH;EACT;EAEA,MAAyBI,cAAcrC,UAAmD;AACxF,UAAM,CAACsC,IAAIC,CAAAA,IAAK,MAAMC,YAAYxC,QAAAA;AAClC,UAAMyC,2BAA2B,MAAM3B,QAAQC,IAAIwB,EAAEvB,IAAI,CAAC0B,OAAOC,UAAUC,mBAAmBF,OAAOC,KAAAA,CAAAA,CAAAA;AACrG,QAAIF,yBAAyBI,SAAS,GAAG;AACvC,YAAMC,iBAAiB,MAAM,KAAK9C,SAAS+C,WAAWN,wBAAAA;AACtD,UAAI,CAACK,eAAeE,gBAAgBF,eAAeG,kBAAkBR,yBAAyBI,OAC5F,OAAM,IAAIK,MAAM,yDAAA;IACpB;AACA,UAAMC,iCAAiC,MAAMrC,QAAQC,IAAIuB,GAAGtB,IAAI,CAAC0B,OAAOC,UAAUC,mBAAmBF,OAAOC,KAAAA,CAAAA,CAAAA;AAC5G,QAAIQ,+BAA+BN,SAAS,GAAG;AAC7C,YAAMO,uBAAuB,MAAM,KAAK1B,eAAeqB,WAAWI,8BAAAA;AAClE,UAAI,CAACC,qBAAqBJ,gBAAgBI,qBAAqBH,kBAAkBE,+BAA+BN,OAC9G,OAAM,IAAIK,MAAM,+DAAA;IACpB;AAEA,WAAO,MAAMhB,eAAeC,MAAM;SAAIgB;SAAmCV;KAAyB;EACpG;EAEA,MAAyBY,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,UAAM,KAAKC,cAAa;AACxB,WAAO;EACT;AACF;;;AEzEA,cAAc;","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,2 +1,2 @@
|
|
|
1
|
-
export * from './validByType';
|
|
1
|
+
export * from './validByType.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,kBAAkB,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './validByType';
|
|
1
|
+
export * from './validByType.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,kBAAkB,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './validByType';
|
|
1
|
+
export * from './validByType.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,kBAAkB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
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;;;;;
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
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;;;;;
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
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;;;;;
|
|
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"}
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 { 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, Schema, 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 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 { 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 = 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","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","configSchemas","MongoDBArchivistConfigSchema","defaultConfigSchema"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Archivist.ts","../../src/lib/validByType.ts"],"sourcesContent":["export * from './Archivist.js'\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 { 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, Schema, 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/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 { 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 = 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","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","configSchemas","MongoDBArchivistConfigSchema","defaultConfigSchema"]}
|
package/dist/node/index.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sCAAsC,CAAA"}
|
package/dist/node/index.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sCAAsC,CAAA"}
|
package/dist/node/index.d.ts
CHANGED
package/dist/node/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sCAAsC,CAAA"}
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Archivist.ts","../../src/lib/validByType.ts","../../src/index.ts"],"sourcesContent":["import { exists } from '@xylabs/exists'\nimport { 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 { Payload, Schema, 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 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 { 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 = 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","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","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","configSchemas","MongoDBArchivistConfigSchema","defaultConfigSchema"]}
|
|
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 { 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, Schema, 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/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 { 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 = 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","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","configSchemas","MongoDBArchivistConfigSchema","defaultConfigSchema"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './validByType';
|
|
1
|
+
export * from './validByType.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,kBAAkB,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './validByType';
|
|
1
|
+
export * from './validByType.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,kBAAkB,CAAA"}
|
package/dist/node/lib/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './validByType';
|
|
1
|
+
export * from './validByType.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,kBAAkB,CAAA"}
|
package/package.json
CHANGED
|
@@ -10,29 +10,29 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/exists": "^3.
|
|
14
|
-
"@xylabs/hex": "^3.
|
|
15
|
-
"@xyo-network/archivist-abstract": "^2.
|
|
16
|
-
"@xyo-network/archivist-model": "^2.
|
|
17
|
-
"@xyo-network/archivist-model-mongodb": "^2.
|
|
18
|
-
"@xyo-network/boundwitness-model": "^2.
|
|
19
|
-
"@xyo-network/boundwitness-wrapper": "^2.
|
|
20
|
-
"@xyo-network/module-abstract-mongodb": "^2.
|
|
21
|
-
"@xyo-network/payload-builder": "^2.
|
|
22
|
-
"@xyo-network/payload-model": "^2.
|
|
23
|
-
"@xyo-network/payload-mongodb": "^2.
|
|
24
|
-
"@xyo-network/payload-wrapper": "^2.
|
|
13
|
+
"@xylabs/exists": "^3.6.4",
|
|
14
|
+
"@xylabs/hex": "^3.6.4",
|
|
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"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@xylabs/arraybuffer": "^3.
|
|
28
|
-
"@xylabs/jest-helpers": "^3.
|
|
29
|
-
"@xylabs/ts-scripts-yarn3": "^3.
|
|
30
|
-
"@xylabs/tsconfig": "^3.
|
|
31
|
-
"@xyo-network/account": "^2.
|
|
32
|
-
"@xyo-network/account-model": "^2.
|
|
33
|
-
"@xyo-network/archivist-wrapper": "^2.
|
|
34
|
-
"@xyo-network/boundwitness-builder": "^2.
|
|
35
|
-
"@xyo-network/sdk-xyo-mongo-js": "^2.
|
|
27
|
+
"@xylabs/arraybuffer": "^3.6.4",
|
|
28
|
+
"@xylabs/jest-helpers": "^3.6.4",
|
|
29
|
+
"@xylabs/ts-scripts-yarn3": "^3.12.3",
|
|
30
|
+
"@xylabs/tsconfig": "^3.12.3",
|
|
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
36
|
"fake-indexeddb": "^4.0.2",
|
|
37
37
|
"jest": "^29.7.0",
|
|
38
38
|
"typescript": "^5.5.3"
|
|
@@ -76,6 +76,6 @@
|
|
|
76
76
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
77
77
|
},
|
|
78
78
|
"sideEffects": false,
|
|
79
|
-
"version": "2.
|
|
79
|
+
"version": "2.89.1",
|
|
80
80
|
"type": "module"
|
|
81
81
|
}
|
package/src/Archivist.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { Payload, Schema, WithMeta } from '@xyo-network/payload-model'
|
|
|
9
9
|
import { fromDbRepresentation, PayloadWithMongoMeta, toDbRepresentation } from '@xyo-network/payload-mongodb'
|
|
10
10
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
11
11
|
|
|
12
|
-
import { validByType } from './lib'
|
|
12
|
+
import { validByType } from './lib/index.js'
|
|
13
13
|
|
|
14
14
|
const MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist)
|
|
15
15
|
|
package/src/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './Archivist'
|
|
1
|
+
export * from './Archivist.js'
|
|
2
2
|
export * from '@xyo-network/archivist-model-mongodb'
|
package/src/lib/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './validByType'
|
|
1
|
+
export * from './validByType.js'
|