@xyo-network/module-abstract-mongodb 2.83.0 → 2.84.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
  import { Module } from '@xyo-network/module-model';
2
2
  import { MongoDBModuleParams, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb';
3
- import { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb';
3
+ import { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
4
4
  import { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js';
5
5
  export type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>;
6
- export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/object").BaseParamsFields & {
6
+ export declare const MongoDBModuleMixin: <TParams extends import("@xylabs/object").BaseParamsFields & {
7
7
  account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
8
8
  config: import("@xyo-network/payload-model").SchemaFields & object & Omit<{
9
9
  readonly archivist?: string | undefined;
@@ -12,6 +12,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
12
12
  readonly paging?: Record<string, {
13
13
  size?: number | undefined;
14
14
  }> | undefined;
15
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
15
16
  schema: "network.xyo.module.mongodb.config";
16
17
  readonly security?: {
17
18
  readonly allowAnonymous?: boolean | undefined;
@@ -28,6 +29,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
28
29
  readonly paging?: Record<string, {
29
30
  size?: number | undefined;
30
31
  }> | undefined;
32
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
31
33
  schema: "network.xyo.module.mongodb.config";
32
34
  readonly security?: {
33
35
  readonly allowAnonymous?: boolean | undefined;
@@ -49,7 +51,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
49
51
  boundWitnessSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
50
52
  jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
51
53
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
52
- } = import("@xyo-network/object").BaseParamsFields & {
54
+ } = import("@xylabs/object").BaseParamsFields & {
53
55
  account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
54
56
  config: import("@xyo-network/payload-model").SchemaFields & object & Omit<{
55
57
  readonly archivist?: string | undefined;
@@ -58,6 +60,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
58
60
  readonly paging?: Record<string, {
59
61
  size?: number | undefined;
60
62
  }> | undefined;
63
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
61
64
  schema: "network.xyo.module.mongodb.config";
62
65
  readonly security?: {
63
66
  readonly allowAnonymous?: boolean | undefined;
@@ -74,6 +77,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
74
77
  readonly paging?: Record<string, {
75
78
  size?: number | undefined;
76
79
  }> | undefined;
80
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
77
81
  schema: "network.xyo.module.mongodb.config";
78
82
  readonly security?: {
79
83
  readonly allowAnonymous?: boolean | undefined;
@@ -96,23 +100,13 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
96
100
  jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
97
101
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
98
102
  }, TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>>(ModuleBase: TModule) => ((abstract new (...args: any[]) => {
99
- _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined;
100
- _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined;
103
+ _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined;
104
+ _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined;
101
105
  readonly boundWitnessSdkConfig: BaseMongoSdkConfig;
102
- readonly boundWitnesses: BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
103
- _payloads?: (import("@xyo-network/payload-model").SchemaFields & object & Partial<import("@xyo-network/payload-mongodb").PayloadMetaBase> & {
104
- schema: string;
105
- })[] | undefined;
106
- _source_ip?: string | undefined;
107
- _user_agent?: string | undefined;
108
- } & import("@xyo-network/payload-mongodb").PayloadMetaBase & {
109
- schema: "network.xyo.boundwitness";
110
- }>;
106
+ readonly boundWitnesses: BaseMongoSdk<BoundWitnessWithMongoMeta>;
111
107
  readonly jobQueue: import("@xyo-network/node-core-model").JobQueue;
112
108
  readonly payloadSdkConfig: BaseMongoSdkConfig;
113
- readonly payloads: BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/payload-mongodb").PayloadMetaBase & {
114
- schema: string;
115
- }>;
109
+ readonly payloads: BaseMongoSdk<PayloadWithMongoMeta>;
116
110
  /**
117
111
  * Ensures any indexes specified within the config are created. This method should be idempotent
118
112
  * allowing for multiple calls without causing errors while ensuring the desired state.
@@ -143,6 +137,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
143
137
  readonly paging?: Record<string, {
144
138
  size?: number | undefined;
145
139
  }> | undefined;
140
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
146
141
  schema: "network.xyo.module.config";
147
142
  readonly security?: {
148
143
  readonly allowAnonymous?: boolean | undefined;
@@ -159,6 +154,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
159
154
  readonly paging?: Record<string, {
160
155
  size?: number | undefined;
161
156
  }> | undefined;
157
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
162
158
  schema: "network.xyo.module.config";
163
159
  readonly security?: {
164
160
  readonly allowAnonymous?: boolean | undefined;
@@ -190,6 +186,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
190
186
  readonly paging?: Record<string, {
191
187
  size?: number | undefined;
192
188
  }> | undefined;
189
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
193
190
  schema: "network.xyo.module.config";
194
191
  readonly security?: {
195
192
  readonly allowAnonymous?: boolean | undefined;
@@ -206,6 +203,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
206
203
  readonly paging?: Record<string, {
207
204
  size?: number | undefined;
208
205
  }> | undefined;
206
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
209
207
  schema: "network.xyo.module.config";
210
208
  readonly security?: {
211
209
  readonly allowAnonymous?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6HAFmF,GAAG,EAAE;sBAWjG,aAAa,oBAAoB,CAAC,GAAG,SAAS;iBACnD,aAAa,eAAe,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;IA8BtD;;;OAGG;qBACoB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAOvC,CAAA"}
1
+ {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC9F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6HAFmF,GAAG,EAAE;sBAWjG,aAAa,yBAAyB,CAAC,GAAG,SAAS;iBACxD,aAAa,oBAAoB,CAAC,GAAG,SAAS;;;;;;IA8B3D;;;OAGG;qBACoB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAOvC,CAAA"}
@@ -1,9 +1,9 @@
1
1
  import { Module } from '@xyo-network/module-model';
2
2
  import { MongoDBModuleParams, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb';
3
- import { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb';
3
+ import { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
4
4
  import { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js';
5
5
  export type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>;
6
- export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/object").BaseParamsFields & {
6
+ export declare const MongoDBModuleMixin: <TParams extends import("@xylabs/object").BaseParamsFields & {
7
7
  account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
8
8
  config: import("@xyo-network/payload-model").SchemaFields & object & Omit<{
9
9
  readonly archivist?: string | undefined;
@@ -12,6 +12,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
12
12
  readonly paging?: Record<string, {
13
13
  size?: number | undefined;
14
14
  }> | undefined;
15
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
15
16
  schema: "network.xyo.module.mongodb.config";
16
17
  readonly security?: {
17
18
  readonly allowAnonymous?: boolean | undefined;
@@ -28,6 +29,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
28
29
  readonly paging?: Record<string, {
29
30
  size?: number | undefined;
30
31
  }> | undefined;
32
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
31
33
  schema: "network.xyo.module.mongodb.config";
32
34
  readonly security?: {
33
35
  readonly allowAnonymous?: boolean | undefined;
@@ -49,7 +51,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
49
51
  boundWitnessSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
50
52
  jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
51
53
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
52
- } = import("@xyo-network/object").BaseParamsFields & {
54
+ } = import("@xylabs/object").BaseParamsFields & {
53
55
  account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
54
56
  config: import("@xyo-network/payload-model").SchemaFields & object & Omit<{
55
57
  readonly archivist?: string | undefined;
@@ -58,6 +60,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
58
60
  readonly paging?: Record<string, {
59
61
  size?: number | undefined;
60
62
  }> | undefined;
63
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
61
64
  schema: "network.xyo.module.mongodb.config";
62
65
  readonly security?: {
63
66
  readonly allowAnonymous?: boolean | undefined;
@@ -74,6 +77,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
74
77
  readonly paging?: Record<string, {
75
78
  size?: number | undefined;
76
79
  }> | undefined;
80
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
77
81
  schema: "network.xyo.module.mongodb.config";
78
82
  readonly security?: {
79
83
  readonly allowAnonymous?: boolean | undefined;
@@ -96,23 +100,13 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
96
100
  jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
97
101
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
98
102
  }, TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>>(ModuleBase: TModule) => ((abstract new (...args: any[]) => {
99
- _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined;
100
- _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined;
103
+ _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined;
104
+ _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined;
101
105
  readonly boundWitnessSdkConfig: BaseMongoSdkConfig;
102
- readonly boundWitnesses: BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
103
- _payloads?: (import("@xyo-network/payload-model").SchemaFields & object & Partial<import("@xyo-network/payload-mongodb").PayloadMetaBase> & {
104
- schema: string;
105
- })[] | undefined;
106
- _source_ip?: string | undefined;
107
- _user_agent?: string | undefined;
108
- } & import("@xyo-network/payload-mongodb").PayloadMetaBase & {
109
- schema: "network.xyo.boundwitness";
110
- }>;
106
+ readonly boundWitnesses: BaseMongoSdk<BoundWitnessWithMongoMeta>;
111
107
  readonly jobQueue: import("@xyo-network/node-core-model").JobQueue;
112
108
  readonly payloadSdkConfig: BaseMongoSdkConfig;
113
- readonly payloads: BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/payload-mongodb").PayloadMetaBase & {
114
- schema: string;
115
- }>;
109
+ readonly payloads: BaseMongoSdk<PayloadWithMongoMeta>;
116
110
  /**
117
111
  * Ensures any indexes specified within the config are created. This method should be idempotent
118
112
  * allowing for multiple calls without causing errors while ensuring the desired state.
@@ -143,6 +137,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
143
137
  readonly paging?: Record<string, {
144
138
  size?: number | undefined;
145
139
  }> | undefined;
140
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
146
141
  schema: "network.xyo.module.config";
147
142
  readonly security?: {
148
143
  readonly allowAnonymous?: boolean | undefined;
@@ -159,6 +154,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
159
154
  readonly paging?: Record<string, {
160
155
  size?: number | undefined;
161
156
  }> | undefined;
157
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
162
158
  schema: "network.xyo.module.config";
163
159
  readonly security?: {
164
160
  readonly allowAnonymous?: boolean | undefined;
@@ -190,6 +186,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
190
186
  readonly paging?: Record<string, {
191
187
  size?: number | undefined;
192
188
  }> | undefined;
189
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
193
190
  schema: "network.xyo.module.config";
194
191
  readonly security?: {
195
192
  readonly allowAnonymous?: boolean | undefined;
@@ -206,6 +203,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
206
203
  readonly paging?: Record<string, {
207
204
  size?: number | undefined;
208
205
  }> | undefined;
206
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
209
207
  schema: "network.xyo.module.config";
210
208
  readonly security?: {
211
209
  readonly allowAnonymous?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6HAFmF,GAAG,EAAE;sBAWjG,aAAa,oBAAoB,CAAC,GAAG,SAAS;iBACnD,aAAa,eAAe,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;IA8BtD;;;OAGG;qBACoB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAOvC,CAAA"}
1
+ {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC9F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6HAFmF,GAAG,EAAE;sBAWjG,aAAa,yBAAyB,CAAC,GAAG,SAAS;iBACxD,aAAa,oBAAoB,CAAC,GAAG,SAAS;;;;;;IA8B3D;;;OAGG;qBACoB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAOvC,CAAA"}
@@ -1,9 +1,9 @@
1
1
  import { Module } from '@xyo-network/module-model';
2
2
  import { MongoDBModuleParams, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb';
3
- import { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb';
3
+ import { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
4
4
  import { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js';
5
5
  export type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>;
6
- export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/object").BaseParamsFields & {
6
+ export declare const MongoDBModuleMixin: <TParams extends import("@xylabs/object").BaseParamsFields & {
7
7
  account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
8
8
  config: import("@xyo-network/payload-model").SchemaFields & object & Omit<{
9
9
  readonly archivist?: string | undefined;
@@ -12,6 +12,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
12
12
  readonly paging?: Record<string, {
13
13
  size?: number | undefined;
14
14
  }> | undefined;
15
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
15
16
  schema: "network.xyo.module.mongodb.config";
16
17
  readonly security?: {
17
18
  readonly allowAnonymous?: boolean | undefined;
@@ -28,6 +29,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
28
29
  readonly paging?: Record<string, {
29
30
  size?: number | undefined;
30
31
  }> | undefined;
32
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
31
33
  schema: "network.xyo.module.mongodb.config";
32
34
  readonly security?: {
33
35
  readonly allowAnonymous?: boolean | undefined;
@@ -49,7 +51,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
49
51
  boundWitnessSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
50
52
  jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
51
53
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
52
- } = import("@xyo-network/object").BaseParamsFields & {
54
+ } = import("@xylabs/object").BaseParamsFields & {
53
55
  account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
54
56
  config: import("@xyo-network/payload-model").SchemaFields & object & Omit<{
55
57
  readonly archivist?: string | undefined;
@@ -58,6 +60,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
58
60
  readonly paging?: Record<string, {
59
61
  size?: number | undefined;
60
62
  }> | undefined;
63
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
61
64
  schema: "network.xyo.module.mongodb.config";
62
65
  readonly security?: {
63
66
  readonly allowAnonymous?: boolean | undefined;
@@ -74,6 +77,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
74
77
  readonly paging?: Record<string, {
75
78
  size?: number | undefined;
76
79
  }> | undefined;
80
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
77
81
  schema: "network.xyo.module.mongodb.config";
78
82
  readonly security?: {
79
83
  readonly allowAnonymous?: boolean | undefined;
@@ -96,23 +100,13 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
96
100
  jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
97
101
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
98
102
  }, TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>>(ModuleBase: TModule) => ((abstract new (...args: any[]) => {
99
- _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined;
100
- _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined;
103
+ _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined;
104
+ _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined;
101
105
  readonly boundWitnessSdkConfig: BaseMongoSdkConfig;
102
- readonly boundWitnesses: BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
103
- _payloads?: (import("@xyo-network/payload-model").SchemaFields & object & Partial<import("@xyo-network/payload-mongodb").PayloadMetaBase> & {
104
- schema: string;
105
- })[] | undefined;
106
- _source_ip?: string | undefined;
107
- _user_agent?: string | undefined;
108
- } & import("@xyo-network/payload-mongodb").PayloadMetaBase & {
109
- schema: "network.xyo.boundwitness";
110
- }>;
106
+ readonly boundWitnesses: BaseMongoSdk<BoundWitnessWithMongoMeta>;
111
107
  readonly jobQueue: import("@xyo-network/node-core-model").JobQueue;
112
108
  readonly payloadSdkConfig: BaseMongoSdkConfig;
113
- readonly payloads: BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/payload-mongodb").PayloadMetaBase & {
114
- schema: string;
115
- }>;
109
+ readonly payloads: BaseMongoSdk<PayloadWithMongoMeta>;
116
110
  /**
117
111
  * Ensures any indexes specified within the config are created. This method should be idempotent
118
112
  * allowing for multiple calls without causing errors while ensuring the desired state.
@@ -143,6 +137,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
143
137
  readonly paging?: Record<string, {
144
138
  size?: number | undefined;
145
139
  }> | undefined;
140
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
146
141
  schema: "network.xyo.module.config";
147
142
  readonly security?: {
148
143
  readonly allowAnonymous?: boolean | undefined;
@@ -159,6 +154,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
159
154
  readonly paging?: Record<string, {
160
155
  size?: number | undefined;
161
156
  }> | undefined;
157
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
162
158
  schema: "network.xyo.module.config";
163
159
  readonly security?: {
164
160
  readonly allowAnonymous?: boolean | undefined;
@@ -190,6 +186,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
190
186
  readonly paging?: Record<string, {
191
187
  size?: number | undefined;
192
188
  }> | undefined;
189
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
193
190
  schema: "network.xyo.module.config";
194
191
  readonly security?: {
195
192
  readonly allowAnonymous?: boolean | undefined;
@@ -206,6 +203,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
206
203
  readonly paging?: Record<string, {
207
204
  size?: number | undefined;
208
205
  }> | undefined;
206
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
209
207
  schema: "network.xyo.module.config";
210
208
  readonly security?: {
211
209
  readonly allowAnonymous?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6HAFmF,GAAG,EAAE;sBAWjG,aAAa,oBAAoB,CAAC,GAAG,SAAS;iBACnD,aAAa,eAAe,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;IA8BtD;;;OAGG;qBACoB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAOvC,CAAA"}
1
+ {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC9F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6HAFmF,GAAG,EAAE;sBAWjG,aAAa,yBAAyB,CAAC,GAAG,SAAS;iBACxD,aAAa,oBAAoB,CAAC,GAAG,SAAS;;;;;;IA8B3D;;;OAGG;qBACoB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAOvC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts","../../src/util/removeId.ts"],"sourcesContent":["export * from './Collections'\nexport * from './config'\nexport * from './Databases'\nexport * from './Defaults'\nexport * from './IndexDescription'\nexport * from './Indexes'\nexport * from './Module'\nexport * from './util'\n","// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\nimport { IndexDescription } from './IndexDescription'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMeta> | BaseMongoSdk<BoundWitnessWithMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n","import { Payload } from '@xyo-network/payload-model'\nimport { OptionalId, WithId, WithoutId } from 'mongodb'\n\nexport const removeId = <T extends Payload = Payload>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>): WithoutId<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _id, ...withoutId } = payload as OptionalId<T>\n return withoutId as WithoutId<T>\n}\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","import_assert","import_sdk_xyo_mongo_js","MongoDBModuleMixin","ModuleBase","MongoModuleBase","labels","MongoDBStorageClassLabels","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","staticImplements","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty","removeId","payload","_id","withoutId"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts","../../src/util/removeId.ts"],"sourcesContent":["export * from './Collections'\nexport * from './config'\nexport * from './Databases'\nexport * from './Defaults'\nexport * from './IndexDescription'\nexport * from './Indexes'\nexport * from './Module'\nexport * from './util'\n","// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\nimport { IndexDescription } from './IndexDescription'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMongoMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMongoMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMongoMeta> | BaseMongoSdk<BoundWitnessWithMongoMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n","import { Payload } from '@xyo-network/payload-model'\nimport { OptionalId, WithId, WithoutId } from 'mongodb'\n\nexport const removeId = <T extends Payload = Payload>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>): WithoutId<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _id, ...withoutId } = payload as OptionalId<T>\n return withoutId as WithoutId<T>\n}\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","import_assert","import_sdk_xyo_mongo_js","MongoDBModuleMixin","ModuleBase","MongoModuleBase","labels","MongoDBStorageClassLabels","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","staticImplements","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty","removeId","payload","_id","withoutId"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts","../../src/util/removeId.ts"],"sourcesContent":["// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\nimport { IndexDescription } from './IndexDescription'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMeta> | BaseMongoSdk<BoundWitnessWithMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n","import { Payload } from '@xyo-network/payload-model'\nimport { OptionalId, WithId, WithoutId } from 'mongodb'\n\nexport const removeId = <T extends Payload = Payload>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>): WithoutId<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _id, ...withoutId } = payload as OptionalId<T>\n return withoutId as WithoutId<T>\n}\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","assertEx","BaseMongoSdk","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","exists","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","assertEx","merge","staticImplements","MongoDBStorageClassLabels","BaseMongoSdk","MongoDBModuleMixin","ModuleBase","MongoModuleBase","labels","MongoDBStorageClassLabels","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","staticImplements","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty","removeId","payload","_id","withoutId"]}
1
+ {"version":3,"sources":["../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts","../../src/util/removeId.ts"],"sourcesContent":["// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\nimport { IndexDescription } from './IndexDescription'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMongoMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMongoMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMongoMeta> | BaseMongoSdk<BoundWitnessWithMongoMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n","import { Payload } from '@xyo-network/payload-model'\nimport { OptionalId, WithId, WithoutId } from 'mongodb'\n\nexport const removeId = <T extends Payload = Payload>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>): WithoutId<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _id, ...withoutId } = payload as OptionalId<T>\n return withoutId as WithoutId<T>\n}\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","assertEx","BaseMongoSdk","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","exists","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","assertEx","merge","staticImplements","MongoDBStorageClassLabels","BaseMongoSdk","MongoDBModuleMixin","ModuleBase","MongoModuleBase","labels","MongoDBStorageClassLabels","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","staticImplements","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty","removeId","payload","_id","withoutId"]}
@@ -1,9 +1,9 @@
1
1
  import { Module } from '@xyo-network/module-model';
2
2
  import { MongoDBModuleParams, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb';
3
- import { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb';
3
+ import { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
4
4
  import { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js';
5
5
  export type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>;
6
- export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/object").BaseParamsFields & {
6
+ export declare const MongoDBModuleMixin: <TParams extends import("@xylabs/object").BaseParamsFields & {
7
7
  account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
8
8
  config: import("@xyo-network/payload-model").SchemaFields & object & Omit<{
9
9
  readonly archivist?: string | undefined;
@@ -12,6 +12,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
12
12
  readonly paging?: Record<string, {
13
13
  size?: number | undefined;
14
14
  }> | undefined;
15
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
15
16
  schema: "network.xyo.module.mongodb.config";
16
17
  readonly security?: {
17
18
  readonly allowAnonymous?: boolean | undefined;
@@ -28,6 +29,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
28
29
  readonly paging?: Record<string, {
29
30
  size?: number | undefined;
30
31
  }> | undefined;
32
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
31
33
  schema: "network.xyo.module.mongodb.config";
32
34
  readonly security?: {
33
35
  readonly allowAnonymous?: boolean | undefined;
@@ -49,7 +51,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
49
51
  boundWitnessSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
50
52
  jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
51
53
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
52
- } = import("@xyo-network/object").BaseParamsFields & {
54
+ } = import("@xylabs/object").BaseParamsFields & {
53
55
  account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
54
56
  config: import("@xyo-network/payload-model").SchemaFields & object & Omit<{
55
57
  readonly archivist?: string | undefined;
@@ -58,6 +60,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
58
60
  readonly paging?: Record<string, {
59
61
  size?: number | undefined;
60
62
  }> | undefined;
63
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
61
64
  schema: "network.xyo.module.mongodb.config";
62
65
  readonly security?: {
63
66
  readonly allowAnonymous?: boolean | undefined;
@@ -74,6 +77,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
74
77
  readonly paging?: Record<string, {
75
78
  size?: number | undefined;
76
79
  }> | undefined;
80
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
77
81
  schema: "network.xyo.module.mongodb.config";
78
82
  readonly security?: {
79
83
  readonly allowAnonymous?: boolean | undefined;
@@ -96,23 +100,13 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
96
100
  jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
97
101
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
98
102
  }, TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>>(ModuleBase: TModule) => ((abstract new (...args: any[]) => {
99
- _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined;
100
- _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined;
103
+ _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined;
104
+ _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined;
101
105
  readonly boundWitnessSdkConfig: BaseMongoSdkConfig;
102
- readonly boundWitnesses: BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
103
- _payloads?: (import("@xyo-network/payload-model").SchemaFields & object & Partial<import("@xyo-network/payload-mongodb").PayloadMetaBase> & {
104
- schema: string;
105
- })[] | undefined;
106
- _source_ip?: string | undefined;
107
- _user_agent?: string | undefined;
108
- } & import("@xyo-network/payload-mongodb").PayloadMetaBase & {
109
- schema: "network.xyo.boundwitness";
110
- }>;
106
+ readonly boundWitnesses: BaseMongoSdk<BoundWitnessWithMongoMeta>;
111
107
  readonly jobQueue: import("@xyo-network/node-core-model").JobQueue;
112
108
  readonly payloadSdkConfig: BaseMongoSdkConfig;
113
- readonly payloads: BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/payload-mongodb").PayloadMetaBase & {
114
- schema: string;
115
- }>;
109
+ readonly payloads: BaseMongoSdk<PayloadWithMongoMeta>;
116
110
  /**
117
111
  * Ensures any indexes specified within the config are created. This method should be idempotent
118
112
  * allowing for multiple calls without causing errors while ensuring the desired state.
@@ -143,6 +137,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
143
137
  readonly paging?: Record<string, {
144
138
  size?: number | undefined;
145
139
  }> | undefined;
140
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
146
141
  schema: "network.xyo.module.config";
147
142
  readonly security?: {
148
143
  readonly allowAnonymous?: boolean | undefined;
@@ -159,6 +154,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
159
154
  readonly paging?: Record<string, {
160
155
  size?: number | undefined;
161
156
  }> | undefined;
157
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
162
158
  schema: "network.xyo.module.config";
163
159
  readonly security?: {
164
160
  readonly allowAnonymous?: boolean | undefined;
@@ -190,6 +186,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
190
186
  readonly paging?: Record<string, {
191
187
  size?: number | undefined;
192
188
  }> | undefined;
189
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
193
190
  schema: "network.xyo.module.config";
194
191
  readonly security?: {
195
192
  readonly allowAnonymous?: boolean | undefined;
@@ -206,6 +203,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
206
203
  readonly paging?: Record<string, {
207
204
  size?: number | undefined;
208
205
  }> | undefined;
206
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
209
207
  schema: "network.xyo.module.config";
210
208
  readonly security?: {
211
209
  readonly allowAnonymous?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6HAFmF,GAAG,EAAE;sBAWjG,aAAa,oBAAoB,CAAC,GAAG,SAAS;iBACnD,aAAa,eAAe,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;IA8BtD;;;OAGG;qBACoB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAOvC,CAAA"}
1
+ {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC9F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6HAFmF,GAAG,EAAE;sBAWjG,aAAa,yBAAyB,CAAC,GAAG,SAAS;iBACxD,aAAa,oBAAoB,CAAC,GAAG,SAAS;;;;;;IA8B3D;;;OAGG;qBACoB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAOvC,CAAA"}
@@ -1,9 +1,9 @@
1
1
  import { Module } from '@xyo-network/module-model';
2
2
  import { MongoDBModuleParams, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb';
3
- import { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb';
3
+ import { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
4
4
  import { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js';
5
5
  export type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>;
6
- export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/object").BaseParamsFields & {
6
+ export declare const MongoDBModuleMixin: <TParams extends import("@xylabs/object").BaseParamsFields & {
7
7
  account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
8
8
  config: import("@xyo-network/payload-model").SchemaFields & object & Omit<{
9
9
  readonly archivist?: string | undefined;
@@ -12,6 +12,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
12
12
  readonly paging?: Record<string, {
13
13
  size?: number | undefined;
14
14
  }> | undefined;
15
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
15
16
  schema: "network.xyo.module.mongodb.config";
16
17
  readonly security?: {
17
18
  readonly allowAnonymous?: boolean | undefined;
@@ -28,6 +29,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
28
29
  readonly paging?: Record<string, {
29
30
  size?: number | undefined;
30
31
  }> | undefined;
32
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
31
33
  schema: "network.xyo.module.mongodb.config";
32
34
  readonly security?: {
33
35
  readonly allowAnonymous?: boolean | undefined;
@@ -49,7 +51,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
49
51
  boundWitnessSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
50
52
  jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
51
53
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
52
- } = import("@xyo-network/object").BaseParamsFields & {
54
+ } = import("@xylabs/object").BaseParamsFields & {
53
55
  account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
54
56
  config: import("@xyo-network/payload-model").SchemaFields & object & Omit<{
55
57
  readonly archivist?: string | undefined;
@@ -58,6 +60,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
58
60
  readonly paging?: Record<string, {
59
61
  size?: number | undefined;
60
62
  }> | undefined;
63
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
61
64
  schema: "network.xyo.module.mongodb.config";
62
65
  readonly security?: {
63
66
  readonly allowAnonymous?: boolean | undefined;
@@ -74,6 +77,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
74
77
  readonly paging?: Record<string, {
75
78
  size?: number | undefined;
76
79
  }> | undefined;
80
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
77
81
  schema: "network.xyo.module.mongodb.config";
78
82
  readonly security?: {
79
83
  readonly allowAnonymous?: boolean | undefined;
@@ -96,23 +100,13 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
96
100
  jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
97
101
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
98
102
  }, TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>>(ModuleBase: TModule) => ((abstract new (...args: any[]) => {
99
- _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined;
100
- _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined;
103
+ _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined;
104
+ _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined;
101
105
  readonly boundWitnessSdkConfig: BaseMongoSdkConfig;
102
- readonly boundWitnesses: BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
103
- _payloads?: (import("@xyo-network/payload-model").SchemaFields & object & Partial<import("@xyo-network/payload-mongodb").PayloadMetaBase> & {
104
- schema: string;
105
- })[] | undefined;
106
- _source_ip?: string | undefined;
107
- _user_agent?: string | undefined;
108
- } & import("@xyo-network/payload-mongodb").PayloadMetaBase & {
109
- schema: "network.xyo.boundwitness";
110
- }>;
106
+ readonly boundWitnesses: BaseMongoSdk<BoundWitnessWithMongoMeta>;
111
107
  readonly jobQueue: import("@xyo-network/node-core-model").JobQueue;
112
108
  readonly payloadSdkConfig: BaseMongoSdkConfig;
113
- readonly payloads: BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/payload-mongodb").PayloadMetaBase & {
114
- schema: string;
115
- }>;
109
+ readonly payloads: BaseMongoSdk<PayloadWithMongoMeta>;
116
110
  /**
117
111
  * Ensures any indexes specified within the config are created. This method should be idempotent
118
112
  * allowing for multiple calls without causing errors while ensuring the desired state.
@@ -143,6 +137,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
143
137
  readonly paging?: Record<string, {
144
138
  size?: number | undefined;
145
139
  }> | undefined;
140
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
146
141
  schema: "network.xyo.module.config";
147
142
  readonly security?: {
148
143
  readonly allowAnonymous?: boolean | undefined;
@@ -159,6 +154,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
159
154
  readonly paging?: Record<string, {
160
155
  size?: number | undefined;
161
156
  }> | undefined;
157
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
162
158
  schema: "network.xyo.module.config";
163
159
  readonly security?: {
164
160
  readonly allowAnonymous?: boolean | undefined;
@@ -190,6 +186,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
190
186
  readonly paging?: Record<string, {
191
187
  size?: number | undefined;
192
188
  }> | undefined;
189
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
193
190
  schema: "network.xyo.module.config";
194
191
  readonly security?: {
195
192
  readonly allowAnonymous?: boolean | undefined;
@@ -206,6 +203,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
206
203
  readonly paging?: Record<string, {
207
204
  size?: number | undefined;
208
205
  }> | undefined;
206
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
209
207
  schema: "network.xyo.module.config";
210
208
  readonly security?: {
211
209
  readonly allowAnonymous?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6HAFmF,GAAG,EAAE;sBAWjG,aAAa,oBAAoB,CAAC,GAAG,SAAS;iBACnD,aAAa,eAAe,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;IA8BtD;;;OAGG;qBACoB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAOvC,CAAA"}
1
+ {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC9F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6HAFmF,GAAG,EAAE;sBAWjG,aAAa,yBAAyB,CAAC,GAAG,SAAS;iBACxD,aAAa,oBAAoB,CAAC,GAAG,SAAS;;;;;;IA8B3D;;;OAGG;qBACoB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAOvC,CAAA"}
@@ -1,9 +1,9 @@
1
1
  import { Module } from '@xyo-network/module-model';
2
2
  import { MongoDBModuleParams, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb';
3
- import { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb';
3
+ import { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
4
4
  import { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js';
5
5
  export type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>;
6
- export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/object").BaseParamsFields & {
6
+ export declare const MongoDBModuleMixin: <TParams extends import("@xylabs/object").BaseParamsFields & {
7
7
  account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
8
8
  config: import("@xyo-network/payload-model").SchemaFields & object & Omit<{
9
9
  readonly archivist?: string | undefined;
@@ -12,6 +12,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
12
12
  readonly paging?: Record<string, {
13
13
  size?: number | undefined;
14
14
  }> | undefined;
15
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
15
16
  schema: "network.xyo.module.mongodb.config";
16
17
  readonly security?: {
17
18
  readonly allowAnonymous?: boolean | undefined;
@@ -28,6 +29,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
28
29
  readonly paging?: Record<string, {
29
30
  size?: number | undefined;
30
31
  }> | undefined;
32
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
31
33
  schema: "network.xyo.module.mongodb.config";
32
34
  readonly security?: {
33
35
  readonly allowAnonymous?: boolean | undefined;
@@ -49,7 +51,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
49
51
  boundWitnessSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
50
52
  jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
51
53
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
52
- } = import("@xyo-network/object").BaseParamsFields & {
54
+ } = import("@xylabs/object").BaseParamsFields & {
53
55
  account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
54
56
  config: import("@xyo-network/payload-model").SchemaFields & object & Omit<{
55
57
  readonly archivist?: string | undefined;
@@ -58,6 +60,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
58
60
  readonly paging?: Record<string, {
59
61
  size?: number | undefined;
60
62
  }> | undefined;
63
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
61
64
  schema: "network.xyo.module.mongodb.config";
62
65
  readonly security?: {
63
66
  readonly allowAnonymous?: boolean | undefined;
@@ -74,6 +77,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
74
77
  readonly paging?: Record<string, {
75
78
  size?: number | undefined;
76
79
  }> | undefined;
80
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
77
81
  schema: "network.xyo.module.mongodb.config";
78
82
  readonly security?: {
79
83
  readonly allowAnonymous?: boolean | undefined;
@@ -96,23 +100,13 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
96
100
  jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
97
101
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
98
102
  }, TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>>(ModuleBase: TModule) => ((abstract new (...args: any[]) => {
99
- _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined;
100
- _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined;
103
+ _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined;
104
+ _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined;
101
105
  readonly boundWitnessSdkConfig: BaseMongoSdkConfig;
102
- readonly boundWitnesses: BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
103
- _payloads?: (import("@xyo-network/payload-model").SchemaFields & object & Partial<import("@xyo-network/payload-mongodb").PayloadMetaBase> & {
104
- schema: string;
105
- })[] | undefined;
106
- _source_ip?: string | undefined;
107
- _user_agent?: string | undefined;
108
- } & import("@xyo-network/payload-mongodb").PayloadMetaBase & {
109
- schema: "network.xyo.boundwitness";
110
- }>;
106
+ readonly boundWitnesses: BaseMongoSdk<BoundWitnessWithMongoMeta>;
111
107
  readonly jobQueue: import("@xyo-network/node-core-model").JobQueue;
112
108
  readonly payloadSdkConfig: BaseMongoSdkConfig;
113
- readonly payloads: BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/payload-mongodb").PayloadMetaBase & {
114
- schema: string;
115
- }>;
109
+ readonly payloads: BaseMongoSdk<PayloadWithMongoMeta>;
116
110
  /**
117
111
  * Ensures any indexes specified within the config are created. This method should be idempotent
118
112
  * allowing for multiple calls without causing errors while ensuring the desired state.
@@ -143,6 +137,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
143
137
  readonly paging?: Record<string, {
144
138
  size?: number | undefined;
145
139
  }> | undefined;
140
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
146
141
  schema: "network.xyo.module.config";
147
142
  readonly security?: {
148
143
  readonly allowAnonymous?: boolean | undefined;
@@ -159,6 +154,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
159
154
  readonly paging?: Record<string, {
160
155
  size?: number | undefined;
161
156
  }> | undefined;
157
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
162
158
  schema: "network.xyo.module.config";
163
159
  readonly security?: {
164
160
  readonly allowAnonymous?: boolean | undefined;
@@ -190,6 +186,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
190
186
  readonly paging?: Record<string, {
191
187
  size?: number | undefined;
192
188
  }> | undefined;
189
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
193
190
  schema: "network.xyo.module.config";
194
191
  readonly security?: {
195
192
  readonly allowAnonymous?: boolean | undefined;
@@ -206,6 +203,7 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xyo-network/o
206
203
  readonly paging?: Record<string, {
207
204
  size?: number | undefined;
208
205
  }> | undefined;
206
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
209
207
  schema: "network.xyo.module.config";
210
208
  readonly security?: {
211
209
  readonly allowAnonymous?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6HAFmF,GAAG,EAAE;sBAWjG,aAAa,oBAAoB,CAAC,GAAG,SAAS;iBACnD,aAAa,eAAe,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;IA8BtD;;;OAGG;qBACoB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAOvC,CAAA"}
1
+ {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC9F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6HAFmF,GAAG,EAAE;sBAWjG,aAAa,yBAAyB,CAAC,GAAG,SAAS;iBACxD,aAAa,oBAAoB,CAAC,GAAG,SAAS;;;;;;IA8B3D;;;OAGG;qBACoB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAOvC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts","../../src/util/removeId.ts"],"sourcesContent":["export * from './Collections'\nexport * from './config'\nexport * from './Databases'\nexport * from './Defaults'\nexport * from './IndexDescription'\nexport * from './Indexes'\nexport * from './Module'\nexport * from './util'\n","// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\nimport { IndexDescription } from './IndexDescription'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMeta> | BaseMongoSdk<BoundWitnessWithMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n","import { Payload } from '@xyo-network/payload-model'\nimport { OptionalId, WithId, WithoutId } from 'mongodb'\n\nexport const removeId = <T extends Payload = Payload>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>): WithoutId<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _id, ...withoutId } = payload as OptionalId<T>\n return withoutId as WithoutId<T>\n}\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","import_assert","import_sdk_xyo_mongo_js","MongoDBModuleMixin","ModuleBase","MongoModuleBase","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","_a","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","labels","MongoDBStorageClassLabels","staticImplements","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty","removeId","payload","_id","withoutId"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts","../../src/util/removeId.ts"],"sourcesContent":["export * from './Collections'\nexport * from './config'\nexport * from './Databases'\nexport * from './Defaults'\nexport * from './IndexDescription'\nexport * from './Indexes'\nexport * from './Module'\nexport * from './util'\n","// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\nimport { IndexDescription } from './IndexDescription'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMongoMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMongoMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMongoMeta> | BaseMongoSdk<BoundWitnessWithMongoMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n","import { Payload } from '@xyo-network/payload-model'\nimport { OptionalId, WithId, WithoutId } from 'mongodb'\n\nexport const removeId = <T extends Payload = Payload>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>): WithoutId<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _id, ...withoutId } = payload as OptionalId<T>\n return withoutId as WithoutId<T>\n}\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","import_assert","import_sdk_xyo_mongo_js","MongoDBModuleMixin","ModuleBase","MongoModuleBase","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","_a","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","labels","MongoDBStorageClassLabels","staticImplements","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty","removeId","payload","_id","withoutId"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts","../../src/util/removeId.ts"],"sourcesContent":["// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\nimport { IndexDescription } from './IndexDescription'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMeta> | BaseMongoSdk<BoundWitnessWithMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n","import { Payload } from '@xyo-network/payload-model'\nimport { OptionalId, WithId, WithoutId } from 'mongodb'\n\nexport const removeId = <T extends Payload = Payload>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>): WithoutId<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _id, ...withoutId } = payload as OptionalId<T>\n return withoutId as WithoutId<T>\n}\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","assertEx","BaseMongoSdk","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","exists","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","assertEx","merge","staticImplements","MongoDBStorageClassLabels","BaseMongoSdk","MongoDBModuleMixin","ModuleBase","MongoModuleBase","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","_a","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","labels","MongoDBStorageClassLabels","staticImplements","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty","removeId","payload","_id","withoutId"]}
1
+ {"version":3,"sources":["../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts","../../src/util/removeId.ts"],"sourcesContent":["// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\nimport { IndexDescription } from './IndexDescription'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMongoMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMongoMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMongoMeta> | BaseMongoSdk<BoundWitnessWithMongoMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n","import { Payload } from '@xyo-network/payload-model'\nimport { OptionalId, WithId, WithoutId } from 'mongodb'\n\nexport const removeId = <T extends Payload = Payload>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>): WithoutId<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _id, ...withoutId } = payload as OptionalId<T>\n return withoutId as WithoutId<T>\n}\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","assertEx","BaseMongoSdk","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","exists","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","assertEx","merge","staticImplements","MongoDBStorageClassLabels","BaseMongoSdk","MongoDBModuleMixin","ModuleBase","MongoModuleBase","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","_a","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","labels","MongoDBStorageClassLabels","staticImplements","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty","removeId","payload","_id","withoutId"]}
package/package.json CHANGED
@@ -10,20 +10,20 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^2.13.23",
14
- "@xylabs/exists": "^2.13.23",
15
- "@xylabs/lodash": "^2.13.23",
16
- "@xylabs/static-implements": "^2.13.23",
17
- "@xyo-network/module-model": "^2.86.1",
18
- "@xyo-network/module-model-mongodb": "~2.83.0",
19
- "@xyo-network/payload-model": "^2.86.1",
20
- "@xyo-network/payload-mongodb": "~2.83.0",
21
- "@xyo-network/sdk-xyo-mongo-js": "~2.83.0",
13
+ "@xylabs/assert": "^2.14.0",
14
+ "@xylabs/exists": "^2.14.0",
15
+ "@xylabs/lodash": "^2.14.0",
16
+ "@xylabs/static-implements": "^2.14.0",
17
+ "@xyo-network/module-model": "^2.89.0-rc.14",
18
+ "@xyo-network/module-model-mongodb": "~2.84.0-rc.2",
19
+ "@xyo-network/payload-model": "^2.89.0-rc.14",
20
+ "@xyo-network/payload-mongodb": "~2.84.0-rc.2",
21
+ "@xyo-network/sdk-xyo-mongo-js": "~2.84.0-rc.2",
22
22
  "mongodb": "^6.3.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@xylabs/ts-scripts-yarn3": "^3.2.28",
26
- "@xylabs/tsconfig": "^3.2.28",
25
+ "@xylabs/ts-scripts-yarn3": "^3.2.42",
26
+ "@xylabs/tsconfig": "^3.2.42",
27
27
  "fake-indexeddb": "^4.0.2",
28
28
  "typescript": "^5.3.3"
29
29
  },
@@ -66,6 +66,7 @@
66
66
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
67
67
  },
68
68
  "sideEffects": false,
69
- "version": "2.83.0",
70
- "type": "module"
69
+ "version": "2.84.0-rc.2",
70
+ "type": "module",
71
+ "stableVersion": "2.83.0"
71
72
  }
package/src/Module.ts CHANGED
@@ -3,7 +3,7 @@ import { merge } from '@xylabs/lodash'
3
3
  import { staticImplements } from '@xylabs/static-implements'
4
4
  import { Module } from '@xyo-network/module-model'
5
5
  import { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'
6
- import { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb'
6
+ import { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'
7
7
  import { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'
8
8
  import { MongoServerError } from 'mongodb'
9
9
 
@@ -23,8 +23,8 @@ export const MongoDBModuleMixin = <
23
23
  @staticImplements<MongoDBModuleStatic>()
24
24
  abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {
25
25
  static labels = MongoDBStorageClassLabels
26
- _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined
27
- _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined
26
+ _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined
27
+ _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined
28
28
 
29
29
  get boundWitnessSdkConfig(): BaseMongoSdkConfig {
30
30
  const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }
@@ -34,7 +34,7 @@ export const MongoDBModuleMixin = <
34
34
  }
35
35
 
36
36
  get boundWitnesses() {
37
- this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)
37
+ this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMongoMeta>(this.boundWitnessSdkConfig)
38
38
  return assertEx(this._boundWitnessSdk)
39
39
  }
40
40
 
@@ -50,7 +50,7 @@ export const MongoDBModuleMixin = <
50
50
  }
51
51
 
52
52
  get payloads() {
53
- this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)
53
+ this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMongoMeta>(this.payloadSdkConfig)
54
54
  return assertEx(this._payloadSdk)
55
55
  }
56
56
 
@@ -73,7 +73,7 @@ export const MongoDBModuleMixin = <
73
73
  * @param configIndexes The indexes to ensure exist on the collection
74
74
  */
75
75
  const ensureIndexesExistOnCollection = async (
76
- sdk: BaseMongoSdk<PayloadWithMeta> | BaseMongoSdk<BoundWitnessWithMeta>,
76
+ sdk: BaseMongoSdk<PayloadWithMongoMeta> | BaseMongoSdk<BoundWitnessWithMongoMeta>,
77
77
  configIndexes: IndexDescription[],
78
78
  ) => {
79
79
  await sdk.useCollection(async (collection) => {