@xyo-network/archivist-mongodb 3.1.6 → 3.2.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import type { Hash } from '@xylabs/hex';
2
2
  import { AbstractArchivist } from '@xyo-network/archivist-abstract';
3
3
  import type { ArchivistNextOptions } from '@xyo-network/archivist-model';
4
- import type { Payload, Schema, WithMeta } from '@xyo-network/payload-model';
4
+ import type { Payload, Schema, Sequence, WithStorageMeta } from '@xyo-network/payload-model';
5
5
  import type { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
6
6
  declare const MongoDBArchivistBase: (abstract new (...args: any[]) => {
7
7
  _boundWitnessSdk: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<import("@xyo-network/payload-mongodb").BoundWitnessWithMongoMeta> | undefined;
@@ -13,31 +13,105 @@ declare const MongoDBArchivistBase: (abstract new (...args: any[]) => {
13
13
  readonly payloads: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<PayloadWithMongoMeta>;
14
14
  ensureIndexes(): Promise<void>;
15
15
  address: import("@xylabs/hex").Address;
16
- config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
17
- boundWitnessSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
18
- payloadSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
19
- schema: import("@xyo-network/module-model-mongodb").MongoDBModuleConfigSchema;
20
- }, "schema"> & {
21
- schema: "network.xyo.module.mongodb.config";
22
- }, "schema"> & {
23
- schema: string;
24
- };
16
+ config: import("@xylabs/object").DeepRestrictToStringKeys<{
17
+ schema: import("@xyo-network/payload-model").Schema;
18
+ readonly archivist?: import("@xyo-network/module-model").ModuleIdentifier | undefined;
19
+ readonly archiving?: {
20
+ readonly archivists?: string[] | undefined;
21
+ readonly queries?: string[] | undefined;
22
+ } | undefined;
23
+ readonly allowedQueries?: string[] | undefined;
24
+ readonly consoleLogger?: import(".store/@xylabs-logger-npm-4.4.25-f61ab04e23/package").LogLevel | undefined;
25
+ readonly labels?: {
26
+ [x: string]: string | undefined;
27
+ } | undefined;
28
+ readonly name?: import("@xyo-network/module-model").ModuleName | undefined;
29
+ readonly paging?: {
30
+ [x: string]: {
31
+ size?: number | undefined;
32
+ };
33
+ } | undefined;
34
+ readonly retry?: {
35
+ backoff?: number | undefined;
36
+ interval?: number | undefined;
37
+ retries?: number | undefined;
38
+ } | undefined;
39
+ readonly security?: {
40
+ readonly allowAnonymous?: boolean | undefined;
41
+ readonly allowed?: {
42
+ [x: string]: (Lowercase<string> | Lowercase<string>[])[];
43
+ } | undefined;
44
+ readonly disallowed?: {
45
+ [x: string]: Lowercase<string>[];
46
+ } | undefined;
47
+ } | undefined;
48
+ readonly sign?: boolean | undefined;
49
+ readonly storeQueries?: boolean | undefined;
50
+ readonly timestamp?: boolean | undefined;
51
+ boundWitnessSdkConfig?: {
52
+ closeDelay?: number | undefined;
53
+ collection?: string | undefined;
54
+ maxPoolSize?: number | undefined;
55
+ } | undefined;
56
+ payloadSdkConfig?: {
57
+ closeDelay?: number | undefined;
58
+ collection?: string | undefined;
59
+ maxPoolSize?: number | undefined;
60
+ } | undefined;
61
+ }>;
25
62
  id: string;
26
63
  modName?: import("@xyo-network/module-model").ModuleName;
27
64
  params: import("@xylabs/object").BaseParamsFields & {
28
- account?: import("@xyo-network/account-model").AccountInstance | "random";
65
+ account?: import(".store/@xyo-network-account-model-virtual-6f489a9106/package").AccountInstance | "random";
29
66
  addToResolvers?: boolean;
30
- additionalSigners?: import("@xyo-network/account-model").AccountInstance[];
67
+ additionalSigners?: import(".store/@xyo-network-account-model-virtual-6f489a9106/package").AccountInstance[];
31
68
  allowNameResolution?: boolean;
32
- config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
33
- boundWitnessSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
34
- payloadSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
35
- schema: import("@xyo-network/module-model-mongodb").MongoDBModuleConfigSchema;
36
- }, "schema"> & {
37
- schema: "network.xyo.module.mongodb.config";
38
- }, "schema"> & {
39
- schema: string;
40
- };
69
+ config: import("@xylabs/object").DeepRestrictToStringKeys<{
70
+ schema: import("@xyo-network/payload-model").Schema;
71
+ readonly archivist?: import("@xyo-network/module-model").ModuleIdentifier | undefined;
72
+ readonly archiving?: {
73
+ readonly archivists?: string[] | undefined;
74
+ readonly queries?: string[] | undefined;
75
+ } | undefined;
76
+ readonly allowedQueries?: string[] | undefined;
77
+ readonly consoleLogger?: import(".store/@xylabs-logger-npm-4.4.25-f61ab04e23/package").LogLevel | undefined;
78
+ readonly labels?: {
79
+ [x: string]: string | undefined;
80
+ } | undefined;
81
+ readonly name?: import("@xyo-network/module-model").ModuleName | undefined;
82
+ readonly paging?: {
83
+ [x: string]: {
84
+ size?: number | undefined;
85
+ };
86
+ } | undefined;
87
+ readonly retry?: {
88
+ backoff?: number | undefined;
89
+ interval?: number | undefined;
90
+ retries?: number | undefined;
91
+ } | undefined;
92
+ readonly security?: {
93
+ readonly allowAnonymous?: boolean | undefined;
94
+ readonly allowed?: {
95
+ [x: string]: (Lowercase<string> | Lowercase<string>[])[];
96
+ } | undefined;
97
+ readonly disallowed?: {
98
+ [x: string]: Lowercase<string>[];
99
+ } | undefined;
100
+ } | undefined;
101
+ readonly sign?: boolean | undefined;
102
+ readonly storeQueries?: boolean | undefined;
103
+ readonly timestamp?: boolean | undefined;
104
+ boundWitnessSdkConfig?: {
105
+ closeDelay?: number | undefined;
106
+ collection?: string | undefined;
107
+ maxPoolSize?: number | undefined;
108
+ } | undefined;
109
+ payloadSdkConfig?: {
110
+ closeDelay?: number | undefined;
111
+ collection?: string | undefined;
112
+ maxPoolSize?: number | undefined;
113
+ } | undefined;
114
+ }>;
41
115
  ephemeralQueryAccountEnabled?: boolean;
42
116
  moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
43
117
  } & {
@@ -45,22 +119,22 @@ declare const MongoDBArchivistBase: (abstract new (...args: any[]) => {
45
119
  jobQueue?: import("@xyo-network/node-core-model").JobQueue;
46
120
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
47
121
  };
48
- previousHash: () => import("@xylabs/promise").Promisable<string | undefined>;
122
+ previousHash: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<string | undefined>;
49
123
  queries: string[];
50
- query: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf) => import("@xylabs/promise").Promisable<import("@xyo-network/module-model").ModuleQueryResult>;
51
- queryable: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf_1 extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf_1) => import("@xylabs/promise").Promisable<boolean>;
52
- start?: () => import("@xylabs/promise").Promisable<boolean>;
53
- stop?: () => import("@xylabs/promise").Promisable<boolean>;
124
+ query: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf) => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<import("@xyo-network/module-model").ModuleQueryResult>;
125
+ queryable: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf_1 extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf_1) => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
126
+ start?: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
127
+ stop?: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
54
128
  eventData: import("@xyo-network/module-model").ModuleEventData<object>;
55
129
  clearListeners(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): void;
56
130
  emit<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
57
131
  emitSerial<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
58
132
  listenerCount(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): number;
59
- off<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): void;
60
- offAny(listener: import("@xyo-network/module-events").EventAnyListener | Promise<void>): void;
61
- on<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
62
- onAny(listener: import("@xyo-network/module-events").EventAnyListener): import("@xyo-network/module-events").EventUnsubscribeFunction;
63
- once<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
133
+ off<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): void;
134
+ offAny(listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventAnyListener | Promise<void>): void;
135
+ on<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
136
+ onAny(listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventAnyListener): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
137
+ once<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
64
138
  }) & {
65
139
  labels: import("@xyo-network/module-model-mongodb").MongoDBStorageClassLabels;
66
140
  } & typeof AbstractArchivist;
@@ -72,11 +146,11 @@ export declare class MongoDBArchivist extends MongoDBArchivistBase {
72
146
  * The amount of time to allow the aggregate query to execute
73
147
  */
74
148
  protected readonly aggregateTimeoutMs = 10000;
75
- head(): Promise<Payload | undefined>;
76
149
  protected findOneByHash(hash: Hash): Promise<import("mongodb").WithId<PayloadWithMongoMeta> | undefined>;
77
- protected getHandler(hashes: Hash[]): Promise<WithMeta<Payload>[]>;
78
- protected insertHandler(payloads: Payload[]): Promise<WithMeta<Payload>[]>;
79
- protected nextHandler(options?: ArchivistNextOptions): Promise<WithMeta<Payload>[]>;
150
+ protected findOneBySequence(sequence: Sequence): Promise<import("mongodb").WithId<PayloadWithMongoMeta> | null>;
151
+ protected getHandler(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]>;
152
+ protected insertHandler(payloads: Payload[]): Promise<WithStorageMeta<Payload>[]>;
153
+ protected nextHandler(options?: ArchivistNextOptions): Promise<WithStorageMeta<Payload>[]>;
80
154
  protected startHandler(): Promise<boolean>;
81
155
  }
82
156
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAKxE,OAAO,KAAK,EACV,OAAO,EAAE,MAAM,EAAE,QAAQ,EAC1B,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAOxE,QAAA,MAAM,oBAAoB;;;;;8BA6CsC,8BAA8B;;;;oBAMzF,aAAa;;+CA7CqE,+BAEnF;0CAGQ,+BAA8B;uBAGtC,mCAA+B;;;;;;;qBAuCnB,2BAA2B;;yBA7DT,4BACR;;mCACkB,4BAA4B;;uBACb,4BAClC,wBAEZ,4BAA4B,8BAEhB,2BAA2B,iCAEnC,2BAA2B,8BAC/B,4BAA4B,wBAAwB,4BAA4B,8BAC9E,2BAA2B,iCAAiC,2BAE5D;iCAAsD,CAAC,iBAAiB,+BAEnF;4BAED,CAAH,iBACY,+BAA8B;2BAGtC,mCAA+B;;;;;;;8CAMd,2BAErB;;wCAC8D,+BAC5C,6CAGV,+BAA6B;0BAE3B,8BACE;mCAC0B,+BAA+B,6CAE7D,+BAKC;;+BAeoG,iBACxG;;6BACqB,iCAAiC,6BAE/C,iCAAiC,0CAA0C,2BAA2B,wBAAwB,2BAC1H,kCAAkC,CAAC,SAAS,4BAC3D,wBAAwB,CAAC,mBAAmB,iBAAiB,oBAAoB,2BAC7E;iCAGgC,iCAAiC,6BACjE,iCAAiC,4CACH,2BAA0B,wBAAwB,2BAA2B,kCAChF,CAAC,SAAS,4BACnB,wBAAwB,CAAC,qBAAqB,iBACrE;yBAAgD,iBAAiB;wBACzD,iBAAa;sBAA6C,2BAE9D;4CAAwE,2BAA0B,0CAC/E,2BAA2B;yCACyB,2BAA2B,oEACpC,2BAA2B;+CACxB,2BAGrE,oEAAoE,2BAA2B;2CAGrC,2BAA2B,0CAC7D,2BAEvB;wCAGG,2BACD,mFAIS,4BACL,uBACK,2BAA2B;4BACoB,4BACnD;uCAGM,2BAA2B,mFAET,4BAA2B,uBAEnD,2BADmB,gDACJ,4BAA4B;2BAIvC,4BACL,4BAA4B,4BACd;yCACT,2BAA2B,mEACsB,4BAErD,uBACJ,2BAAuB,gDAAiD,4BAE3E;;;4BApHiE,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,CAA2E;IAE9G;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,SAAS;IAE/B,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;cAKnC,aAAa,CAAC,IAAI,EAAE,IAAI;cAoBf,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,WAAW,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;cAkEzE,YAAY;CAKtC"}
1
+ {"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
1
  // src/Archivist.ts
5
2
  import { exists } from "@xylabs/exists";
6
3
  import { AbstractArchivist } from "@xyo-network/archivist-abstract";
@@ -9,217 +6,157 @@ import { MongoDBArchivistConfigSchema } from "@xyo-network/archivist-model-mongo
9
6
  import { MongoDBModuleMixin } from "@xyo-network/module-abstract-mongodb";
10
7
  import { PayloadBuilder } from "@xyo-network/payload-builder";
11
8
  import { fromDbRepresentation, toDbRepresentation } from "@xyo-network/payload-mongodb";
12
- import { PayloadWrapper as PayloadWrapper2 } from "@xyo-network/payload-wrapper";
13
9
  import { ObjectId } from "mongodb";
14
10
 
15
11
  // src/lib/validByType.ts
16
12
  import { isBoundWitness, isQueryBoundWitness } from "@xyo-network/boundwitness-model";
17
13
  import { BoundWitnessWrapper, QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
18
14
  import { PayloadWrapper } from "@xyo-network/payload-wrapper";
19
- var validByType = /* @__PURE__ */ __name(async (payloads = []) => {
20
- const results = [
21
- [],
22
- []
23
- ];
24
- await Promise.all(payloads.map(async (payload) => {
25
- if (isBoundWitness(payload)) {
26
- const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper;
27
- const bw = wrapper.parse(payload);
28
- if (await bw.getValid()) {
29
- results[0].push(bw.payload);
15
+ var validByType = async (payloads = []) => {
16
+ const results = [[], []];
17
+ await Promise.all(
18
+ payloads.map(async (payload) => {
19
+ if (isBoundWitness(payload)) {
20
+ const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper;
21
+ const bw = wrapper.parse(payload);
22
+ if (await bw.getValid()) {
23
+ results[0].push(payload);
24
+ } else {
25
+ const errors = await bw.getErrors();
26
+ console.log(`validByType.Error: ${JSON.stringify(errors, null, 2)}`);
27
+ }
30
28
  } else {
31
- const errors = await bw.getErrors();
32
- console.log(`validByType.Error: ${JSON.stringify(errors, null, 2)}`);
33
- }
34
- } else {
35
- const payloadWrapper = PayloadWrapper.wrap(payload);
36
- if (await payloadWrapper.getValid()) {
37
- results[1].push(payloadWrapper.payload);
29
+ const payloadWrapper = PayloadWrapper.wrap(payload);
30
+ if (await payloadWrapper.getValid()) {
31
+ results[1].push(payload);
32
+ }
38
33
  }
39
- }
40
- return;
41
- }));
34
+ return;
35
+ })
36
+ );
42
37
  return results;
43
- }, "validByType");
38
+ };
44
39
 
45
40
  // src/Archivist.ts
46
41
  var MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist);
47
42
  var MongoDBArchivist = class extends MongoDBArchivistBase {
48
- static {
49
- __name(this, "MongoDBArchivist");
50
- }
51
- static configSchemas = [
52
- ...super.configSchemas,
53
- MongoDBArchivistConfigSchema
54
- ];
43
+ static configSchemas = [...super.configSchemas, MongoDBArchivistConfigSchema];
55
44
  static defaultConfigSchema = MongoDBArchivistConfigSchema;
56
- queries = [
57
- ArchivistInsertQuerySchema,
58
- ArchivistNextQuerySchema,
59
- ...super.queries
60
- ];
45
+ queries = [ArchivistInsertQuerySchema, ArchivistNextQuerySchema, ...super.queries];
61
46
  /**
62
- * The amount of time to allow the aggregate query to execute
63
- */
47
+ * The amount of time to allow the aggregate query to execute
48
+ */
64
49
  aggregateTimeoutMs = 1e4;
65
- async head() {
66
- const head = await this.next({
67
- limit: 1,
68
- order: "desc"
69
- });
70
- return head[0] ? PayloadWrapper2.wrap(head[0]).payload : void 0;
71
- }
72
50
  async findOneByHash(hash) {
73
- const dataPayload = await this.payloads.findOne({
74
- _$hash: hash
75
- });
51
+ const dataPayload = await this.payloads.findOne({ _$hash: hash });
76
52
  if (dataPayload) {
77
53
  return dataPayload;
78
54
  } else {
79
- const dataBw = await this.boundWitnesses.findOne({
80
- _$hash: hash
81
- });
55
+ const dataBw = await this.boundWitnesses.findOne({ _$hash: hash });
82
56
  if (dataBw) {
83
57
  return dataBw;
84
58
  } else {
85
- const payload = await this.payloads.findOne({
86
- _hash: hash
87
- });
59
+ const payload = await this.payloads.findOne({ _hash: hash });
88
60
  if (payload) {
89
61
  return payload;
90
62
  } else {
91
- const bw = await this.boundWitnesses.findOne({
92
- _hash: hash
93
- });
63
+ const bw = await this.boundWitnesses.findOne({ _hash: hash });
94
64
  return bw ?? void 0;
95
65
  }
96
66
  }
97
67
  }
98
68
  }
69
+ async findOneBySequence(sequence) {
70
+ const dataPayload = await this.payloads.findOne({ _sequence: sequence });
71
+ if (dataPayload) {
72
+ return dataPayload;
73
+ } else {
74
+ const dataBw = await this.boundWitnesses.findOne({ _sequence: sequence });
75
+ return dataBw;
76
+ }
77
+ }
99
78
  async getHandler(hashes) {
100
- let remainingHashes = [
101
- ...hashes
102
- ];
103
- const dataPayloads = (await Promise.all(remainingHashes.map((_$hash) => this.payloads.findOne({
104
- _$hash
105
- })))).filter(exists);
106
- const dataPayloadsHashes = new Set(dataPayloads.map((payload) => payload._$hash));
79
+ let remainingHashes = [...hashes];
80
+ const dataPayloads = (await Promise.all(remainingHashes.map((_dataHash) => this.payloads.findOne({ _dataHash })))).filter(exists);
81
+ const dataPayloadsHashes = new Set(dataPayloads.map((payload) => payload._dataHash));
107
82
  remainingHashes = remainingHashes.filter((hash) => !dataPayloadsHashes.has(hash));
108
- const dataBws = (await Promise.all(remainingHashes.map((_$hash) => this.boundWitnesses.findOne({
109
- _$hash
110
- })))).filter(exists);
111
- const dataBwsHashes = new Set(dataBws.map((payload) => payload._$hash));
83
+ const dataBws = (await Promise.all(remainingHashes.map((_dataHash) => this.boundWitnesses.findOne({ _dataHash })))).filter(exists);
84
+ const dataBwsHashes = new Set(dataBws.map((payload) => payload._dataHash));
112
85
  remainingHashes = remainingHashes.filter((hash) => !dataBwsHashes.has(hash));
113
- const payloads = (await Promise.all(remainingHashes.map((_hash) => this.payloads.findOne({
114
- _hash
115
- })))).filter(exists);
86
+ const payloads = (await Promise.all(remainingHashes.map((_hash) => this.payloads.findOne({ _hash })))).filter(exists);
116
87
  const payloadsHashes = new Set(payloads.map((payload) => payload._hash));
117
88
  remainingHashes = remainingHashes.filter((hash) => !payloadsHashes.has(hash));
118
- const bws = (await Promise.all(remainingHashes.map((_hash) => this.boundWitnesses.findOne({
119
- _hash
120
- })))).filter(exists);
89
+ const bws = (await Promise.all(remainingHashes.map((_hash) => this.boundWitnesses.findOne({ _hash })))).filter(exists);
121
90
  const bwsHashes = new Set(bws.map((payload) => payload._hash));
122
91
  remainingHashes = remainingHashes.filter((hash) => !bwsHashes.has(hash));
123
- const foundPayloads = [
124
- ...dataPayloads,
125
- ...dataBws,
126
- ...payloads,
127
- ...bws
128
- ];
129
- const result = await PayloadBuilder.build(foundPayloads.map(fromDbRepresentation));
92
+ const foundPayloads = [...dataPayloads, ...dataBws, ...payloads, ...bws];
93
+ const result = foundPayloads.map(fromDbRepresentation);
130
94
  return result;
131
95
  }
132
96
  async insertHandler(payloads) {
133
- const [bw, p] = await validByType(payloads);
134
- const payloadsWithExternalMeta = await Promise.all(p.map((value, index) => toDbRepresentation(value, index)));
97
+ const [bw, p] = await validByType(await PayloadBuilder.addStorageMeta(payloads));
98
+ const payloadsWithExternalMeta = await Promise.all(p.map((value) => toDbRepresentation(value)));
135
99
  if (payloadsWithExternalMeta.length > 0) {
136
100
  const payloadsResult = await this.payloads.insertMany(payloadsWithExternalMeta);
137
- if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length) throw new Error("MongoDBDeterministicArchivist: Error inserting Payloads");
101
+ if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)
102
+ throw new Error("MongoDBArchivist: Error inserting Payloads");
138
103
  }
139
- const boundWitnessesWithExternalMeta = await Promise.all(bw.map((value, index) => toDbRepresentation(value, index)));
104
+ const boundWitnessesWithExternalMeta = await Promise.all(bw.map((value) => toDbRepresentation(value)));
140
105
  if (boundWitnessesWithExternalMeta.length > 0) {
141
106
  const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnessesWithExternalMeta);
142
- if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length) throw new Error("MongoDBDeterministicArchivist: Error inserting BoundWitnesses");
107
+ if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length)
108
+ throw new Error("MongoDBArchivist: Error inserting BoundWitnesses");
143
109
  }
144
- return await PayloadBuilder.build([
145
- ...boundWitnessesWithExternalMeta,
146
- ...payloadsWithExternalMeta
147
- ].map(fromDbRepresentation));
110
+ return [...boundWitnessesWithExternalMeta, ...payloadsWithExternalMeta].map(fromDbRepresentation);
148
111
  }
149
112
  async nextHandler(options) {
150
- let { limit, offset, order } = options ?? {
151
- limit: 10,
152
- order: "desc"
153
- };
113
+ let {
114
+ limit,
115
+ cursor,
116
+ order
117
+ } = options ?? { limit: 10, order: "desc" };
154
118
  if (!limit) limit = 10;
155
119
  if (limit > 100) limit = 100;
156
120
  if (order != "asc") order = "desc";
157
121
  let id;
158
- if (offset) {
159
- const payload = await this.findOneByHash(offset);
122
+ if (cursor) {
123
+ const payload = await this.findOneBySequence(cursor);
160
124
  if (payload) id = payload._id;
161
125
  } else {
162
126
  id = order === "asc" ? ObjectId.createFromTime(0) : ObjectId.createFromTime((Date.now() + 1e4) / 1e3);
163
127
  }
164
128
  if (!id) return [];
165
129
  const sort = order === "asc" ? 1 : -1;
166
- const match = order === "asc" ? {
167
- _id: {
168
- $gt: id
169
- }
170
- } : {
171
- _id: {
172
- $lt: id
173
- }
174
- };
130
+ const match = order === "asc" ? { _id: { $gt: id } } : { _id: { $lt: id } };
175
131
  const foundPayloads = await this.payloads.useCollection((collection) => {
176
132
  return collection.aggregate([
177
133
  // Pre-filter payloads collection
178
- {
179
- $match: match
180
- },
134
+ { $match: match },
181
135
  // Sort payloads by _id
182
- {
183
- $sort: {
184
- _id: sort
185
- }
186
- },
136
+ { $sort: { _id: sort } },
187
137
  // Limit payloads to the first N payloads
188
- {
189
- $limit: limit
190
- },
138
+ { $limit: limit },
191
139
  // Combine with filtered boundWitnesses collection
192
140
  {
193
141
  $unionWith: {
194
142
  coll: this.boundWitnessSdkConfig.collection,
195
143
  pipeline: [
196
- {
197
- $match: match
198
- },
199
- {
200
- $sort: {
201
- _id: sort
202
- }
203
- },
204
- {
205
- $limit: limit
206
- }
144
+ { $match: match },
145
+ // Pre-filter boundWitnesses
146
+ { $sort: { _id: sort } },
147
+ // Sort boundWitnesses by _id
148
+ { $limit: limit }
149
+ // Limit boundWitnesses to the first N boundWitnesses
207
150
  ]
208
151
  }
209
152
  },
210
153
  // Sort the combined result by _id
211
- {
212
- $sort: {
213
- _id: sort
214
- }
215
- },
154
+ { $sort: { _id: sort } },
216
155
  // Limit the final result to N documents
217
- {
218
- $limit: limit
219
- }
156
+ { $limit: limit }
220
157
  ]).maxTimeMS(this.aggregateTimeoutMs).toArray();
221
158
  });
222
- return await PayloadBuilder.build(foundPayloads.map(fromDbRepresentation));
159
+ return foundPayloads.map(fromDbRepresentation);
223
160
  }
224
161
  async startHandler() {
225
162
  await super.startHandler();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Archivist.ts","../../src/lib/validByType.ts","../../src/index.ts"],"sourcesContent":["import { exists } from '@xylabs/exists'\nimport type { Hash } from '@xylabs/hex'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport type { ArchivistNextOptions } from '@xyo-network/archivist-model'\nimport { ArchivistInsertQuerySchema, ArchivistNextQuerySchema } from '@xyo-network/archivist-model'\nimport { MongoDBArchivistConfigSchema } from '@xyo-network/archivist-model-mongodb'\nimport { MongoDBModuleMixin } from '@xyo-network/module-abstract-mongodb'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n Payload, Schema, WithMeta,\n} from '@xyo-network/payload-model'\nimport type { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { fromDbRepresentation, toDbRepresentation } from '@xyo-network/payload-mongodb'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { ObjectId } from 'mongodb'\n\nimport { validByType } from './lib/index.js'\n\nconst MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist)\n\nexport class MongoDBArchivist extends MongoDBArchivistBase {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, MongoDBArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = MongoDBArchivistConfigSchema\n\n override readonly queries: string[] = [ArchivistInsertQuerySchema, ArchivistNextQuerySchema, ...super.queries]\n\n /**\n * The amount of time to allow the aggregate query to execute\n */\n protected readonly aggregateTimeoutMs = 10_000\n\n override async head(): Promise<Payload | undefined> {\n const head = await this.next({ limit: 1, order: 'desc' })\n return head[0] ? PayloadWrapper.wrap(head[0]).payload : undefined\n }\n\n protected async findOneByHash(hash: Hash) {\n const dataPayload = (await this.payloads.findOne({ _$hash: hash }))\n if (dataPayload) {\n return dataPayload\n } else {\n const dataBw = (await this.boundWitnesses.findOne({ _$hash: hash }))\n if (dataBw) {\n return dataBw\n } else {\n const payload = (await this.payloads.findOne({ _hash: hash }))\n if (payload) {\n return payload\n } else {\n const bw = (await this.boundWitnesses.findOne({ _hash: hash }))\n return bw ?? undefined\n }\n }\n }\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<WithMeta<Payload>[]> {\n let remainingHashes = [...hashes]\n\n const dataPayloads = (await Promise.all(remainingHashes.map(_$hash => this.payloads.findOne({ _$hash })))).filter(exists)\n const dataPayloadsHashes = new Set(dataPayloads.map(payload => payload._$hash))\n remainingHashes = remainingHashes.filter(hash => !dataPayloadsHashes.has(hash))\n\n const dataBws = (await Promise.all(remainingHashes.map(_$hash => this.boundWitnesses.findOne({ _$hash })))).filter(exists)\n const dataBwsHashes = new Set(dataBws.map(payload => payload._$hash))\n remainingHashes = remainingHashes.filter(hash => !dataBwsHashes.has(hash))\n\n const payloads = (await Promise.all(remainingHashes.map(_hash => this.payloads.findOne({ _hash })))).filter(exists)\n const payloadsHashes = new Set(payloads.map(payload => payload._hash))\n remainingHashes = remainingHashes.filter(hash => !payloadsHashes.has(hash))\n\n const bws = (await Promise.all(remainingHashes.map(_hash => this.boundWitnesses.findOne({ _hash })))).filter(exists)\n const bwsHashes = new Set(bws.map(payload => payload._hash))\n remainingHashes = remainingHashes.filter(hash => !bwsHashes.has(hash))\n\n const foundPayloads = [...dataPayloads, ...dataBws, ...payloads, ...bws] as PayloadWithMongoMeta<Payload & { _$hash: Hash; _$meta?: unknown }>[]\n const result = await PayloadBuilder.build(foundPayloads.map(fromDbRepresentation))\n // console.log(`getHandler: ${JSON.stringify(hashes, null, 2)}:${JSON.stringify(result, null, 2)}`)\n return result\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<WithMeta<Payload>[]> {\n const [bw, p] = await validByType(payloads)\n const payloadsWithExternalMeta = await Promise.all(p.map((value, index) => toDbRepresentation(value, index)))\n if (payloadsWithExternalMeta.length > 0) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithExternalMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)\n throw new Error('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].map(fromDbRepresentation))\n }\n\n protected override async nextHandler(options?: ArchivistNextOptions): Promise<WithMeta<Payload>[]> {\n // Sanitize inputs and set defaults\n let {\n limit, offset, order,\n } = options ?? { limit: 10, order: 'desc' }\n\n if (!limit) limit = 10\n if (limit > 100) limit = 100\n\n if (order != 'asc') order = 'desc'\n\n let id: ObjectId | undefined\n if (offset) {\n const payload = await this.findOneByHash(offset)\n // TODO: Should we throw an error if the requested payload is not found?\n if (payload) id = payload._id\n } else {\n id = order === 'asc'\n // If ascending, start from the beginning of time\n ? ObjectId.createFromTime(0)\n // If descending, start from now (plus a bit more in the future to ensure\n // them most recent ObjectIds are included)\n : ObjectId.createFromTime((Date.now() + 10_000) / 1000)\n }\n if (!id) return []\n\n // Create aggregate criteria\n const sort = order === 'asc' ? 1 : -1\n // TODO: How to handle random component of ID across multiple collections\n // to ensure we don't skip some payloads\n const match = order === 'asc' ? { _id: { $gt: id } } : { _id: { $lt: id } }\n\n // Run the aggregate query\n const foundPayloads = await this.payloads.useCollection((collection) => {\n return collection\n .aggregate<PayloadWithMongoMeta>([\n // Pre-filter payloads collection\n { $match: match },\n // Sort payloads by _id\n { $sort: { _id: sort } },\n // Limit payloads to the first N payloads\n { $limit: limit },\n // Combine with filtered boundWitnesses collection\n {\n $unionWith: {\n coll: this.boundWitnessSdkConfig.collection,\n pipeline: [\n { $match: match }, // Pre-filter boundWitnesses\n { $sort: { _id: sort } }, // Sort boundWitnesses by _id\n { $limit: limit }, // Limit boundWitnesses to the first N boundWitnesses\n ],\n },\n },\n // Sort the combined result by _id\n { $sort: { _id: sort } },\n // Limit the final result to N documents\n { $limit: limit },\n ])\n .maxTimeMS(this.aggregateTimeoutMs)\n .toArray()\n })\n\n // Convert from DB representation to Payloads\n return await PayloadBuilder.build(foundPayloads.map(fromDbRepresentation))\n }\n\n protected override async startHandler() {\n await super.startHandler()\n await this.ensureIndexes()\n return true\n }\n}\n","import type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness, isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport const validByType = async (payloads: Payload[] = []) => {\n const results: [BoundWitness[], Payload[]] = [[], []]\n await Promise.all(\n payloads.map(async (payload) => {\n if (isBoundWitness(payload)) {\n const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper\n const bw = wrapper.parse(payload)\n if (await bw.getValid()) {\n results[0].push(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","ArchivistNextQuerySchema","MongoDBArchivistConfigSchema","MongoDBModuleMixin","PayloadBuilder","fromDbRepresentation","toDbRepresentation","PayloadWrapper","ObjectId","isBoundWitness","isQueryBoundWitness","BoundWitnessWrapper","QueryBoundWitnessWrapper","PayloadWrapper","validByType","payloads","results","Promise","all","map","payload","isBoundWitness","wrapper","isQueryBoundWitness","QueryBoundWitnessWrapper","BoundWitnessWrapper","bw","parse","getValid","push","errors","getErrors","console","log","JSON","stringify","payloadWrapper","PayloadWrapper","wrap","MongoDBArchivistBase","MongoDBModuleMixin","AbstractArchivist","MongoDBArchivist","configSchemas","MongoDBArchivistConfigSchema","defaultConfigSchema","queries","ArchivistInsertQuerySchema","ArchivistNextQuerySchema","aggregateTimeoutMs","head","next","limit","order","PayloadWrapper","wrap","payload","undefined","findOneByHash","hash","dataPayload","payloads","findOne","_$hash","dataBw","boundWitnesses","_hash","bw","getHandler","hashes","remainingHashes","dataPayloads","Promise","all","map","filter","exists","dataPayloadsHashes","Set","has","dataBws","dataBwsHashes","payloadsHashes","bws","bwsHashes","foundPayloads","result","PayloadBuilder","build","fromDbRepresentation","insertHandler","p","validByType","payloadsWithExternalMeta","value","index","toDbRepresentation","length","payloadsResult","insertMany","acknowledged","insertedCount","Error","boundWitnessesWithExternalMeta","boundWitnessesResult","nextHandler","options","offset","id","_id","ObjectId","createFromTime","Date","now","sort","match","$gt","$lt","useCollection","collection","aggregate","$match","$sort","$limit","$unionWith","coll","boundWitnessSdkConfig","pipeline","maxTimeMS","toArray","startHandler","ensureIndexes"]}
1
+ {"version":3,"sources":["../../src/Archivist.ts","../../src/lib/validByType.ts","../../src/index.ts"],"sourcesContent":["import { exists } from '@xylabs/exists'\nimport type { Hash } from '@xylabs/hex'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport type { ArchivistNextOptions } from '@xyo-network/archivist-model'\nimport { ArchivistInsertQuerySchema, ArchivistNextQuerySchema } from '@xyo-network/archivist-model'\nimport { MongoDBArchivistConfigSchema } from '@xyo-network/archivist-model-mongodb'\nimport { MongoDBModuleMixin } from '@xyo-network/module-abstract-mongodb'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n Payload, Schema, Sequence, WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport type { PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { fromDbRepresentation, toDbRepresentation } from '@xyo-network/payload-mongodb'\nimport { ObjectId } from 'mongodb'\n\nimport { validByType } from './lib/index.js'\n\nconst MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist)\n\nexport class MongoDBArchivist extends MongoDBArchivistBase {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, MongoDBArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = MongoDBArchivistConfigSchema\n\n override readonly queries: string[] = [ArchivistInsertQuerySchema, ArchivistNextQuerySchema, ...super.queries]\n\n /**\n * The amount of time to allow the aggregate query to execute\n */\n protected readonly aggregateTimeoutMs = 10_000\n\n protected async findOneByHash(hash: Hash) {\n const dataPayload = (await this.payloads.findOne({ _$hash: hash }))\n if (dataPayload) {\n return dataPayload\n } else {\n const dataBw = (await this.boundWitnesses.findOne({ _$hash: hash }))\n if (dataBw) {\n return dataBw\n } else {\n const payload = (await this.payloads.findOne({ _hash: hash }))\n if (payload) {\n return payload\n } else {\n const bw = (await this.boundWitnesses.findOne({ _hash: hash }))\n return bw ?? undefined\n }\n }\n }\n }\n\n protected async findOneBySequence(sequence: Sequence) {\n const dataPayload = (await this.payloads.findOne({ _sequence: sequence }))\n if (dataPayload) {\n return dataPayload\n } else {\n const dataBw = (await this.boundWitnesses.findOne({ _sequence: sequence }))\n return dataBw\n }\n }\n\n protected override async getHandler(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {\n let remainingHashes = [...hashes]\n\n const dataPayloads = (await Promise.all(remainingHashes.map(_dataHash => this.payloads.findOne({ _dataHash })))).filter(exists)\n const dataPayloadsHashes = new Set(dataPayloads.map(payload => payload._dataHash))\n remainingHashes = remainingHashes.filter(hash => !dataPayloadsHashes.has(hash))\n\n const dataBws = (await Promise.all(remainingHashes.map(_dataHash => this.boundWitnesses.findOne({ _dataHash })))).filter(exists)\n const dataBwsHashes = new Set(dataBws.map(payload => payload._dataHash))\n remainingHashes = remainingHashes.filter(hash => !dataBwsHashes.has(hash))\n\n const payloads = (await Promise.all(remainingHashes.map(_hash => this.payloads.findOne({ _hash })))).filter(exists)\n const payloadsHashes = new Set(payloads.map(payload => payload._hash))\n remainingHashes = remainingHashes.filter(hash => !payloadsHashes.has(hash))\n\n const bws = (await Promise.all(remainingHashes.map(_hash => this.boundWitnesses.findOne({ _hash })))).filter(exists)\n const bwsHashes = new Set(bws.map(payload => payload._hash))\n remainingHashes = remainingHashes.filter(hash => !bwsHashes.has(hash))\n\n const foundPayloads = [...dataPayloads, ...dataBws, ...payloads, ...bws] as PayloadWithMongoMeta<Payload>[]\n const result = foundPayloads.map(fromDbRepresentation)\n // console.log(`getHandler: ${JSON.stringify(hashes, null, 2)}:${JSON.stringify(result, null, 2)}`)\n return result\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<WithStorageMeta<Payload>[]> {\n const [bw, p] = await validByType(await PayloadBuilder.addStorageMeta(payloads))\n const payloadsWithExternalMeta = await Promise.all(p.map(value => toDbRepresentation(value)))\n if (payloadsWithExternalMeta.length > 0) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithExternalMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithExternalMeta.length)\n throw new Error('MongoDBArchivist: Error inserting Payloads')\n }\n const boundWitnessesWithExternalMeta = await Promise.all(bw.map(value => toDbRepresentation(value)))\n if (boundWitnessesWithExternalMeta.length > 0) {\n const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnessesWithExternalMeta)\n if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnessesWithExternalMeta.length)\n throw new Error('MongoDBArchivist: Error inserting BoundWitnesses')\n }\n\n return [...boundWitnessesWithExternalMeta, ...payloadsWithExternalMeta].map(fromDbRepresentation)\n }\n\n protected override async nextHandler(options?: ArchivistNextOptions): Promise<WithStorageMeta<Payload>[]> {\n // Sanitize inputs and set defaults\n let {\n limit, cursor, order,\n } = options ?? { limit: 10, order: 'desc' }\n\n if (!limit) limit = 10\n if (limit > 100) limit = 100\n\n if (order != 'asc') order = 'desc'\n\n let id: ObjectId | undefined\n if (cursor) {\n const payload = await this.findOneBySequence(cursor)\n // TODO: Should we throw an error if the requested payload is not found?\n if (payload) id = payload._id\n } else {\n id = order === 'asc'\n // If ascending, start from the beginning of time\n ? ObjectId.createFromTime(0)\n // If descending, start from now (plus a bit more in the future to ensure\n // them most recent ObjectIds are included)\n : ObjectId.createFromTime((Date.now() + 10_000) / 1000)\n }\n if (!id) return []\n\n // Create aggregate criteria\n const sort = order === 'asc' ? 1 : -1\n // TODO: How to handle random component of ID across multiple collections\n // to ensure we don't skip some payloads\n const match = order === 'asc' ? { _id: { $gt: id } } : { _id: { $lt: id } }\n\n // Run the aggregate query\n const foundPayloads = await this.payloads.useCollection((collection) => {\n return collection\n .aggregate<PayloadWithMongoMeta>([\n // Pre-filter payloads collection\n { $match: match },\n // Sort payloads by _id\n { $sort: { _id: sort } },\n // Limit payloads to the first N payloads\n { $limit: limit },\n // Combine with filtered boundWitnesses collection\n {\n $unionWith: {\n coll: this.boundWitnessSdkConfig.collection,\n pipeline: [\n { $match: match }, // Pre-filter boundWitnesses\n { $sort: { _id: sort } }, // Sort boundWitnesses by _id\n { $limit: limit }, // Limit boundWitnesses to the first N boundWitnesses\n ],\n },\n },\n // Sort the combined result by _id\n { $sort: { _id: sort } },\n // Limit the final result to N documents\n { $limit: limit },\n ])\n .maxTimeMS(this.aggregateTimeoutMs)\n .toArray()\n })\n\n // Convert from DB representation to Payloads\n return foundPayloads.map(fromDbRepresentation)\n }\n\n protected override async startHandler() {\n await super.startHandler()\n await this.ensureIndexes()\n return true\n }\n}\n","import type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness, isQueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport const validByType = async (payloads: WithStorageMeta<Payload>[] = []) => {\n const results: [WithStorageMeta<BoundWitness>[], WithStorageMeta<Payload>[]] = [[], []]\n await Promise.all(\n payloads.map(async (payload) => {\n if (isBoundWitness(payload)) {\n const wrapper = isQueryBoundWitness(payload) ? QueryBoundWitnessWrapper : BoundWitnessWrapper\n const bw = wrapper.parse(payload)\n if (await bw.getValid()) {\n results[0].push(payload)\n } else {\n const errors = await bw.getErrors()\n console.log(`validByType.Error: ${JSON.stringify(errors, null, 2)}`)\n }\n } else {\n const payloadWrapper = PayloadWrapper.wrap(payload)\n if (await payloadWrapper.getValid()) {\n results[1].push(payload)\n }\n }\n return\n }),\n )\n return results\n}\n","export * from './Archivist.js'\nexport * from '@xyo-network/archivist-model-mongodb'\n"],"mappings":"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","names":[]}
@@ -1,7 +1,6 @@
1
- import type { Payload } from '@xyo-network/payload-model';
2
- export declare const validByType: (payloads?: Payload[]) => Promise<[(import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
3
- schema: "network.xyo.boundwitness";
4
- })[], ({
5
- schema: string;
6
- } & import("@xyo-network/payload-model").PayloadFields)[]]>;
1
+ import type { BoundWitness } from '@xyo-network/boundwitness-model';
2
+ import type { Payload, WithStorageMeta } from '@xyo-network/payload-model';
3
+ export declare const validByType: (payloads?: WithStorageMeta<Payload>[]) => Promise<[WithStorageMeta<BoundWitness>[], WithStorageMeta<import("@xylabs/object").DeepRestrictToStringKeys<{
4
+ schema: import("@xyo-network/payload-model").Schema;
5
+ }>>[]]>;
7
6
  //# sourceMappingURL=validByType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validByType.d.ts","sourceRoot":"","sources":["../../../src/lib/validByType.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD,eAAO,MAAM,WAAW,cAAoB,OAAO,EAAE;;;;2DAuBpD,CAAA"}
1
+ {"version":3,"file":"validByType.d.ts","sourceRoot":"","sources":["../../../src/lib/validByType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAGnE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAG1E,eAAO,MAAM,WAAW,cAAoB,eAAe,CAAC,OAAO,CAAC,EAAE;;OAuBrE,CAAA"}