@xyo-network/module-abstract-mongodb 3.1.7 → 3.2.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,19 +4,56 @@ import { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/pa
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
6
  export declare const MongoDBModuleMixin: <TParams extends MongoDBModuleParams = import("@xylabs/object").BaseParamsFields & {
7
- account?: import("@xyo-network/account-model").AccountInstance | "random";
7
+ account?: import(".store/@xyo-network-account-model-virtual-6f489a9106/package").AccountInstance | "random";
8
8
  addToResolvers?: boolean;
9
- additionalSigners?: import("@xyo-network/account-model").AccountInstance[];
9
+ additionalSigners?: import(".store/@xyo-network-account-model-virtual-6f489a9106/package").AccountInstance[];
10
10
  allowNameResolution?: boolean;
11
- config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
12
- boundWitnessSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
13
- payloadSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
14
- schema: import("@xyo-network/module-model-mongodb").MongoDBModuleConfigSchema;
15
- }, "schema"> & {
16
- schema: "network.xyo.module.mongodb.config";
17
- }, "schema"> & {
18
- schema: string;
19
- };
11
+ config: import("@xylabs/object").DeepRestrictToStringKeys<{
12
+ schema: import("@xyo-network/payload-model").Schema;
13
+ readonly archivist?: import("@xyo-network/module-model").ModuleIdentifier | undefined;
14
+ readonly archiving?: {
15
+ readonly archivists?: string[] | undefined;
16
+ readonly queries?: string[] | undefined;
17
+ } | undefined;
18
+ readonly allowedQueries?: string[] | undefined;
19
+ readonly consoleLogger?: import(".store/@xylabs-logger-npm-4.4.25-f61ab04e23/package").LogLevel | undefined;
20
+ readonly labels?: {
21
+ [x: string]: string | undefined;
22
+ } | undefined;
23
+ readonly name?: import("@xyo-network/module-model").ModuleName | undefined;
24
+ readonly paging?: {
25
+ [x: string]: {
26
+ size?: number | undefined;
27
+ };
28
+ } | undefined;
29
+ readonly retry?: {
30
+ backoff?: number | undefined;
31
+ interval?: number | undefined;
32
+ retries?: number | undefined;
33
+ } | undefined;
34
+ readonly security?: {
35
+ readonly allowAnonymous?: boolean | undefined;
36
+ readonly allowed?: {
37
+ [x: string]: (Lowercase<string> | Lowercase<string>[])[];
38
+ } | undefined;
39
+ readonly disallowed?: {
40
+ [x: string]: Lowercase<string>[];
41
+ } | undefined;
42
+ } | undefined;
43
+ readonly sign?: boolean | undefined;
44
+ readonly storeQueries?: boolean | undefined;
45
+ readonly timestamp?: boolean | undefined;
46
+ boundWitnessSdkConfig?: {
47
+ closeDelay?: number | undefined;
48
+ collection?: string | undefined;
49
+ maxPoolSize?: number | undefined;
50
+ } | undefined;
51
+ payloadSdkConfig?: {
52
+ closeDelay?: number | undefined;
53
+ collection?: string | undefined;
54
+ maxPoolSize?: number | undefined;
55
+ } | undefined;
56
+ }>;
20
57
  ephemeralQueryAccountEnabled?: boolean;
21
58
  moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
22
59
  } & {
@@ -41,22 +78,22 @@ export declare const MongoDBModuleMixin: <TParams extends MongoDBModuleParams =
41
78
  id: string;
42
79
  modName?: import("@xyo-network/module-model").ModuleName;
43
80
  params: TParams;
44
- previousHash: () => import("@xylabs/promise").Promisable<string | undefined>;
81
+ previousHash: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<string | undefined>;
45
82
  queries: string[];
46
- query: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf) => import("@xylabs/promise").Promisable<import("@xyo-network/module-model").ModuleQueryResult>;
47
- queryable: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf_1 extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf_1) => import("@xylabs/promise").Promisable<boolean>;
48
- start?: () => import("@xylabs/promise").Promisable<boolean>;
49
- stop?: () => import("@xylabs/promise").Promisable<boolean>;
83
+ query: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf) => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<import("@xyo-network/module-model").ModuleQueryResult>;
84
+ queryable: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf_1 extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf_1) => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
85
+ start?: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
86
+ stop?: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
50
87
  eventData: import("@xyo-network/module-model").ModuleEventData<object>;
51
88
  clearListeners(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): void;
52
89
  emit<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
53
90
  emitSerial<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
54
91
  listenerCount(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): number;
55
- off<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): void;
56
- offAny(listener: import("@xyo-network/module-events").EventAnyListener | Promise<void>): void;
57
- on<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
58
- onAny(listener: import("@xyo-network/module-events").EventAnyListener): import("@xyo-network/module-events").EventUnsubscribeFunction;
59
- once<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
92
+ off<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): void;
93
+ offAny(listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventAnyListener | Promise<void>): void;
94
+ on<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
95
+ onAny(listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventAnyListener): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
96
+ once<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
60
97
  }) & {
61
98
  labels: MongoDBStorageClassLabels;
62
99
  }) & TModule;
@@ -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,EACU,mBAAmB,EAAuB,yBAAyB,EACnF,MAAM,mCAAmC,CAAA;AAC1C,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,GAC7B,OAAO,SAAS,mBAAmB;;;;;;;;;;;;;;;;;;;;GACnC,OAAO,SAAS,iBAAiB,CAAC,OAAO,CAAC,2CAE9B,OAAO,8BAN6F,GAAG,EAAE;sBAWjG,YAAY,CAAC,yBAAyB,CAAC,GAAG,SAAS;iBACxD,YAAY,CAAC,oBAAoB,CAAC,GAAG,SAAS;oCAE9B,kBAAkB;;;+BAmBvB,kBAAkB;;IAe1C;;;OAGG;qBACoB,OAAO,CAAC,IAAI,CAAC;;;;;;;;sRApD8F,CAAC,6DAErH,CAAC;4RAIL,CAAA,6DAEN,CAAC;;;;;;;;;;;;;;;YAmDR,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,EACU,mBAAmB,EAAuB,yBAAyB,EACnF,MAAM,mCAAmC,CAAA;AAC1C,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,GAC7B,OAAO,SAAS,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GACnC,OAAO,SAAS,iBAAiB,CAAC,OAAO,CAAC,2CAE9B,OAAO,8BAN6F,GAAG,EAAE;sBAWjG,YAAY,CAAC,yBAAyB,CAAC,GAAG,SAAS;iBACxD,YAAY,CAAC,oBAAoB,CAAC,GAAG,SAAS;oCAE9B,kBAAkB;;;+BAmBvB,kBAAkB;;IAe1C;;;OAGG;qBACoB,OAAO,CAAC,IAAI,CAAC;;;;;;;;sRApD8F,CAAC,6DAErH,CAAC;4RAIL,CAAA,6DAEN,CAAC;;;;;;;;;;;;;;;YAmDR,CAAA"}
@@ -1,5 +1,15 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __decorateClass = (decorators, target, key, kind) => {
5
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
6
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
7
+ if (decorator = decorators[i])
8
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
9
+ if (kind && result) __defProp(target, key, result);
10
+ return result;
11
+ };
12
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
3
13
 
4
14
  // src/Collections.ts
5
15
  var COLLECTIONS = {
@@ -16,7 +26,7 @@ import { assertEx } from "@xylabs/assert";
16
26
  import { BaseMongoSdk } from "@xyo-network/sdk-xyo-mongo-js";
17
27
 
18
28
  // src/config/getMongoDBConfig.ts
19
- var getMongoDBConfig = /* @__PURE__ */ __name(() => {
29
+ var getMongoDBConfig = () => {
20
30
  const env = {};
21
31
  if (process.env.MONGO_CONNECTION_STRING) {
22
32
  env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING;
@@ -28,10 +38,10 @@ var getMongoDBConfig = /* @__PURE__ */ __name(() => {
28
38
  env.MONGO_USERNAME = process.env.MONGO_USERNAME;
29
39
  }
30
40
  return env;
31
- }, "getMongoDBConfig");
41
+ };
32
42
 
33
43
  // src/config/getBaseMongoSdk.ts
34
- var getBaseMongoSdkPrivateConfig = /* @__PURE__ */ __name(() => {
44
+ var getBaseMongoSdkPrivateConfig = () => {
35
45
  const env = getMongoDBConfig();
36
46
  return {
37
47
  dbConnectionString: env.MONGO_CONNECTION_STRING,
@@ -40,32 +50,21 @@ var getBaseMongoSdkPrivateConfig = /* @__PURE__ */ __name(() => {
40
50
  dbPassword: assertEx(env.MONGO_PASSWORD, () => "Missing Mongo Password"),
41
51
  dbUserName: assertEx(env.MONGO_USERNAME, () => "Missing Mongo Username")
42
52
  };
43
- }, "getBaseMongoSdkPrivateConfig");
44
- var getBaseMongoSdk = /* @__PURE__ */ __name((collection) => {
45
- return new BaseMongoSdk({
46
- ...getBaseMongoSdkPrivateConfig(),
47
- collection
48
- });
49
- }, "getBaseMongoSdk");
53
+ };
54
+ var getBaseMongoSdk = (collection) => {
55
+ return new BaseMongoSdk({ ...getBaseMongoSdkPrivateConfig(), collection });
56
+ };
50
57
 
51
58
  // src/config/hasMongoDBConfig.ts
52
59
  import { exists } from "@xylabs/exists";
53
- var hasMongoDBConfig = /* @__PURE__ */ __name(() => {
60
+ var hasMongoDBConfig = () => {
54
61
  const env = getMongoDBConfig();
55
- const requiredValues = [
56
- env.MONGO_CONNECTION_STRING,
57
- env.MONGO_DATABASE,
58
- env.MONGO_DOMAIN,
59
- env.MONGO_PASSWORD,
60
- env.MONGO_USERNAME
61
- ];
62
+ const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME];
62
63
  return requiredValues.every(exists);
63
- }, "hasMongoDBConfig");
64
+ };
64
65
 
65
66
  // src/Databases.ts
66
- var DATABASES = {
67
- Archivist: "archivist"
68
- };
67
+ var DATABASES = { Archivist: "archivist" };
69
68
 
70
69
  // src/Defaults.ts
71
70
  var DefaultAggregateTimeoutMs = 1e4;
@@ -77,31 +76,22 @@ var DefaultOrder = "desc";
77
76
  import { assertEx as assertEx2 } from "@xylabs/assert";
78
77
  import { merge } from "@xylabs/lodash";
79
78
  import { staticImplements } from "@xylabs/static-implements";
80
- import { MongoDBStorageClassLabels } from "@xyo-network/module-model-mongodb";
79
+ import {
80
+ MongoDBStorageClassLabels
81
+ } from "@xyo-network/module-model-mongodb";
81
82
  import { BaseMongoSdk as BaseMongoSdk2 } from "@xyo-network/sdk-xyo-mongo-js";
82
- function _ts_decorate(decorators, target, key, desc) {
83
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
84
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
85
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
86
- return c > 3 && r && Object.defineProperty(target, key, r), r;
87
- }
88
- __name(_ts_decorate, "_ts_decorate");
89
- var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
90
- let MongoModuleBase = class MongoModuleBase extends ModuleBase {
91
- static {
92
- __name(this, "MongoModuleBase");
93
- }
94
- static labels = MongoDBStorageClassLabels;
83
+ var MongoDBModuleMixin = (ModuleBase) => {
84
+ let MongoModuleBase = class extends ModuleBase {
95
85
  _boundWitnessSdk;
96
86
  _payloadSdk;
97
87
  get boundWitnessSdkConfig() {
98
- const config = {
99
- collection: COLLECTIONS.BoundWitnesses,
100
- ...getBaseMongoSdkPrivateConfig()
101
- };
102
- return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {
103
- collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses
104
- });
88
+ const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() };
89
+ return merge(
90
+ config,
91
+ this.params.boundWitnessSdkConfig,
92
+ this.config.boundWitnessSdkConfig,
93
+ { collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses }
94
+ );
105
95
  }
106
96
  get boundWitnesses() {
107
97
  this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk2(this.boundWitnessSdkConfig);
@@ -111,43 +101,42 @@ var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
111
101
  return assertEx2(this.params.jobQueue, () => "MongoDBModule Error: jobQueue required for this module but is not defined");
112
102
  }
113
103
  get payloadSdkConfig() {
114
- const config = {
115
- collection: COLLECTIONS.Payloads,
116
- ...getBaseMongoSdkPrivateConfig()
117
- };
118
- return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {
119
- collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads
120
- });
104
+ const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() };
105
+ return merge(
106
+ config,
107
+ this.params.payloadSdkConfig,
108
+ this.config.payloadSdkConfig,
109
+ { collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads }
110
+ );
121
111
  }
122
112
  get payloads() {
123
113
  this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk2(this.payloadSdkConfig);
124
114
  return assertEx2(this._payloadSdk);
125
115
  }
126
116
  /**
127
- * Ensures any indexes specified within the config are created. This method should be idempotent
128
- * allowing for multiple calls without causing errors while ensuring the desired state.
129
- */
117
+ * Ensures any indexes specified within the config are created. This method should be idempotent
118
+ * allowing for multiple calls without causing errors while ensuring the desired state.
119
+ */
130
120
  async ensureIndexes() {
131
121
  const configIndexes = this.config?.storage?.indexes ?? [];
132
122
  await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes);
133
123
  await ensureIndexesExistOnCollection(this.payloads, configIndexes);
134
124
  }
135
125
  };
136
- MongoModuleBase = _ts_decorate([
126
+ __publicField(MongoModuleBase, "labels", MongoDBStorageClassLabels);
127
+ MongoModuleBase = __decorateClass([
137
128
  staticImplements()
138
129
  ], MongoModuleBase);
139
130
  return MongoModuleBase;
140
- }, "MongoDBModuleMixin");
141
- var ensureIndexesExistOnCollection = /* @__PURE__ */ __name(async (sdk, configIndexes) => {
131
+ };
132
+ var ensureIndexesExistOnCollection = async (sdk, configIndexes) => {
142
133
  await sdk.useCollection(async (collection) => {
143
134
  const collectionName = collection.collectionName.toLowerCase();
144
135
  const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName));
145
136
  if (indexes.length === 0) return;
146
137
  for (const ix of indexes) {
147
138
  try {
148
- await collection.createIndexes([
149
- ix
150
- ]);
139
+ await collection.createIndexes([ix]);
151
140
  } catch (error) {
152
141
  const mongoServerError = error;
153
142
  const { codeName } = mongoServerError;
@@ -159,12 +148,12 @@ var ensureIndexesExistOnCollection = /* @__PURE__ */ __name(async (sdk, configIn
159
148
  }
160
149
  }
161
150
  });
162
- }, "ensureIndexesExistOnCollection");
151
+ };
163
152
 
164
153
  // src/util/dbProperty.ts
165
154
  var escapeChar = "#";
166
- var toDbProperty = /* @__PURE__ */ __name((value) => value.replaceAll(".", escapeChar), "toDbProperty");
167
- var fromDbProperty = /* @__PURE__ */ __name((value) => value.replaceAll(escapeChar, "."), "fromDbProperty");
155
+ var toDbProperty = (value) => value.replaceAll(".", escapeChar);
156
+ var fromDbProperty = (value) => value.replaceAll(escapeChar, ".");
168
157
  export {
169
158
  COLLECTIONS,
170
159
  DATABASES,
@@ -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"],"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 type { BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { BaseMongoSdk } from '@xyo-network/sdk-xyo-mongo-js'\nimport type { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig.js'\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.js'\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 = { Archivist: 'archivist' as const }\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 {\n MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels,\n} 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.js'\nimport { getBaseMongoSdkPrivateConfig } from './config/index.js'\nimport { IndexDescription } from './IndexDescription.js'\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(\n config,\n this.params.boundWitnessSdkConfig,\n 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(\n config,\n this.params.payloadSdkConfig,\n 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"],"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","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty"]}
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"],"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 type { BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { BaseMongoSdk } from '@xyo-network/sdk-xyo-mongo-js'\nimport type { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig.js'\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.js'\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 = { Archivist: 'archivist' as const }\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 {\n MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels,\n} 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.js'\nimport { getBaseMongoSdkPrivateConfig } from './config/index.js'\nimport { IndexDescription } from './IndexDescription.js'\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(\n config,\n this.params.boundWitnessSdkConfig,\n 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(\n config,\n this.params.payloadSdkConfig,\n 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"],"mappings":"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","names":["assertEx","BaseMongoSdk","BaseMongoSdk","assertEx"]}
@@ -4,19 +4,56 @@ import { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/pa
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
6
  export declare const MongoDBModuleMixin: <TParams extends MongoDBModuleParams = import("@xylabs/object").BaseParamsFields & {
7
- account?: import("@xyo-network/account-model").AccountInstance | "random";
7
+ account?: import(".store/@xyo-network-account-model-virtual-6f489a9106/package").AccountInstance | "random";
8
8
  addToResolvers?: boolean;
9
- additionalSigners?: import("@xyo-network/account-model").AccountInstance[];
9
+ additionalSigners?: import(".store/@xyo-network-account-model-virtual-6f489a9106/package").AccountInstance[];
10
10
  allowNameResolution?: boolean;
11
- config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
12
- boundWitnessSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
13
- payloadSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
14
- schema: import("@xyo-network/module-model-mongodb").MongoDBModuleConfigSchema;
15
- }, "schema"> & {
16
- schema: "network.xyo.module.mongodb.config";
17
- }, "schema"> & {
18
- schema: string;
19
- };
11
+ config: import("@xylabs/object").DeepRestrictToStringKeys<{
12
+ schema: import("@xyo-network/payload-model").Schema;
13
+ readonly archivist?: import("@xyo-network/module-model").ModuleIdentifier | undefined;
14
+ readonly archiving?: {
15
+ readonly archivists?: string[] | undefined;
16
+ readonly queries?: string[] | undefined;
17
+ } | undefined;
18
+ readonly allowedQueries?: string[] | undefined;
19
+ readonly consoleLogger?: import(".store/@xylabs-logger-npm-4.4.25-f61ab04e23/package").LogLevel | undefined;
20
+ readonly labels?: {
21
+ [x: string]: string | undefined;
22
+ } | undefined;
23
+ readonly name?: import("@xyo-network/module-model").ModuleName | undefined;
24
+ readonly paging?: {
25
+ [x: string]: {
26
+ size?: number | undefined;
27
+ };
28
+ } | undefined;
29
+ readonly retry?: {
30
+ backoff?: number | undefined;
31
+ interval?: number | undefined;
32
+ retries?: number | undefined;
33
+ } | undefined;
34
+ readonly security?: {
35
+ readonly allowAnonymous?: boolean | undefined;
36
+ readonly allowed?: {
37
+ [x: string]: (Lowercase<string> | Lowercase<string>[])[];
38
+ } | undefined;
39
+ readonly disallowed?: {
40
+ [x: string]: Lowercase<string>[];
41
+ } | undefined;
42
+ } | undefined;
43
+ readonly sign?: boolean | undefined;
44
+ readonly storeQueries?: boolean | undefined;
45
+ readonly timestamp?: boolean | undefined;
46
+ boundWitnessSdkConfig?: {
47
+ closeDelay?: number | undefined;
48
+ collection?: string | undefined;
49
+ maxPoolSize?: number | undefined;
50
+ } | undefined;
51
+ payloadSdkConfig?: {
52
+ closeDelay?: number | undefined;
53
+ collection?: string | undefined;
54
+ maxPoolSize?: number | undefined;
55
+ } | undefined;
56
+ }>;
20
57
  ephemeralQueryAccountEnabled?: boolean;
21
58
  moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
22
59
  } & {
@@ -41,22 +78,22 @@ export declare const MongoDBModuleMixin: <TParams extends MongoDBModuleParams =
41
78
  id: string;
42
79
  modName?: import("@xyo-network/module-model").ModuleName;
43
80
  params: TParams;
44
- previousHash: () => import("@xylabs/promise").Promisable<string | undefined>;
81
+ previousHash: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<string | undefined>;
45
82
  queries: string[];
46
- query: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf) => import("@xylabs/promise").Promisable<import("@xyo-network/module-model").ModuleQueryResult>;
47
- queryable: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf_1 extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf_1) => import("@xylabs/promise").Promisable<boolean>;
48
- start?: () => import("@xylabs/promise").Promisable<boolean>;
49
- stop?: () => import("@xylabs/promise").Promisable<boolean>;
83
+ query: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf) => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<import("@xyo-network/module-model").ModuleQueryResult>;
84
+ queryable: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf_1 extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf_1) => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
85
+ start?: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
86
+ stop?: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
50
87
  eventData: import("@xyo-network/module-model").ModuleEventData<object>;
51
88
  clearListeners(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): void;
52
89
  emit<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
53
90
  emitSerial<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
54
91
  listenerCount(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): number;
55
- off<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): void;
56
- offAny(listener: import("@xyo-network/module-events").EventAnyListener | Promise<void>): void;
57
- on<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
58
- onAny(listener: import("@xyo-network/module-events").EventAnyListener): import("@xyo-network/module-events").EventUnsubscribeFunction;
59
- once<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
92
+ off<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): void;
93
+ offAny(listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventAnyListener | Promise<void>): void;
94
+ on<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
95
+ onAny(listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventAnyListener): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
96
+ once<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
60
97
  }) & {
61
98
  labels: MongoDBStorageClassLabels;
62
99
  }) & TModule;
@@ -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,EACU,mBAAmB,EAAuB,yBAAyB,EACnF,MAAM,mCAAmC,CAAA;AAC1C,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,GAC7B,OAAO,SAAS,mBAAmB;;;;;;;;;;;;;;;;;;;;GACnC,OAAO,SAAS,iBAAiB,CAAC,OAAO,CAAC,2CAE9B,OAAO,8BAN6F,GAAG,EAAE;sBAWjG,YAAY,CAAC,yBAAyB,CAAC,GAAG,SAAS;iBACxD,YAAY,CAAC,oBAAoB,CAAC,GAAG,SAAS;oCAE9B,kBAAkB;;;+BAmBvB,kBAAkB;;IAe1C;;;OAGG;qBACoB,OAAO,CAAC,IAAI,CAAC;;;;;;;;sRApD8F,CAAC,6DAErH,CAAC;4RAIL,CAAA,6DAEN,CAAC;;;;;;;;;;;;;;;YAmDR,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,EACU,mBAAmB,EAAuB,yBAAyB,EACnF,MAAM,mCAAmC,CAAA;AAC1C,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,GAC7B,OAAO,SAAS,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GACnC,OAAO,SAAS,iBAAiB,CAAC,OAAO,CAAC,2CAE9B,OAAO,8BAN6F,GAAG,EAAE;sBAWjG,YAAY,CAAC,yBAAyB,CAAC,GAAG,SAAS;iBACxD,YAAY,CAAC,oBAAoB,CAAC,GAAG,SAAS;oCAE9B,kBAAkB;;;+BAmBvB,kBAAkB;;IAe1C;;;OAGG;qBACoB,OAAO,CAAC,IAAI,CAAC;;;;;;;;sRApD8F,CAAC,6DAErH,CAAC;4RAIL,CAAA,6DAEN,CAAC;;;;;;;;;;;;;;;YAmDR,CAAA"}
@@ -1,5 +1,15 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __decorateClass = (decorators, target, key, kind) => {
5
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
6
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
7
+ if (decorator = decorators[i])
8
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
9
+ if (kind && result) __defProp(target, key, result);
10
+ return result;
11
+ };
12
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
3
13
 
4
14
  // src/Collections.ts
5
15
  var COLLECTIONS = {
@@ -16,7 +26,7 @@ import { assertEx } from "@xylabs/assert";
16
26
  import { BaseMongoSdk } from "@xyo-network/sdk-xyo-mongo-js";
17
27
 
18
28
  // src/config/getMongoDBConfig.ts
19
- var getMongoDBConfig = /* @__PURE__ */ __name(() => {
29
+ var getMongoDBConfig = () => {
20
30
  const env = {};
21
31
  if (process.env.MONGO_CONNECTION_STRING) {
22
32
  env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING;
@@ -28,10 +38,10 @@ var getMongoDBConfig = /* @__PURE__ */ __name(() => {
28
38
  env.MONGO_USERNAME = process.env.MONGO_USERNAME;
29
39
  }
30
40
  return env;
31
- }, "getMongoDBConfig");
41
+ };
32
42
 
33
43
  // src/config/getBaseMongoSdk.ts
34
- var getBaseMongoSdkPrivateConfig = /* @__PURE__ */ __name(() => {
44
+ var getBaseMongoSdkPrivateConfig = () => {
35
45
  const env = getMongoDBConfig();
36
46
  return {
37
47
  dbConnectionString: env.MONGO_CONNECTION_STRING,
@@ -40,32 +50,21 @@ var getBaseMongoSdkPrivateConfig = /* @__PURE__ */ __name(() => {
40
50
  dbPassword: assertEx(env.MONGO_PASSWORD, () => "Missing Mongo Password"),
41
51
  dbUserName: assertEx(env.MONGO_USERNAME, () => "Missing Mongo Username")
42
52
  };
43
- }, "getBaseMongoSdkPrivateConfig");
44
- var getBaseMongoSdk = /* @__PURE__ */ __name((collection) => {
45
- return new BaseMongoSdk({
46
- ...getBaseMongoSdkPrivateConfig(),
47
- collection
48
- });
49
- }, "getBaseMongoSdk");
53
+ };
54
+ var getBaseMongoSdk = (collection) => {
55
+ return new BaseMongoSdk({ ...getBaseMongoSdkPrivateConfig(), collection });
56
+ };
50
57
 
51
58
  // src/config/hasMongoDBConfig.ts
52
59
  import { exists } from "@xylabs/exists";
53
- var hasMongoDBConfig = /* @__PURE__ */ __name(() => {
60
+ var hasMongoDBConfig = () => {
54
61
  const env = getMongoDBConfig();
55
- const requiredValues = [
56
- env.MONGO_CONNECTION_STRING,
57
- env.MONGO_DATABASE,
58
- env.MONGO_DOMAIN,
59
- env.MONGO_PASSWORD,
60
- env.MONGO_USERNAME
61
- ];
62
+ const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME];
62
63
  return requiredValues.every(exists);
63
- }, "hasMongoDBConfig");
64
+ };
64
65
 
65
66
  // src/Databases.ts
66
- var DATABASES = {
67
- Archivist: "archivist"
68
- };
67
+ var DATABASES = { Archivist: "archivist" };
69
68
 
70
69
  // src/Defaults.ts
71
70
  var DefaultAggregateTimeoutMs = 1e4;
@@ -77,31 +76,22 @@ var DefaultOrder = "desc";
77
76
  import { assertEx as assertEx2 } from "@xylabs/assert";
78
77
  import { merge } from "@xylabs/lodash";
79
78
  import { staticImplements } from "@xylabs/static-implements";
80
- import { MongoDBStorageClassLabels } from "@xyo-network/module-model-mongodb";
79
+ import {
80
+ MongoDBStorageClassLabels
81
+ } from "@xyo-network/module-model-mongodb";
81
82
  import { BaseMongoSdk as BaseMongoSdk2 } from "@xyo-network/sdk-xyo-mongo-js";
82
- function _ts_decorate(decorators, target, key, desc) {
83
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
84
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
85
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
86
- return c > 3 && r && Object.defineProperty(target, key, r), r;
87
- }
88
- __name(_ts_decorate, "_ts_decorate");
89
- var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
90
- let MongoModuleBase = class MongoModuleBase extends ModuleBase {
91
- static {
92
- __name(this, "MongoModuleBase");
93
- }
94
- static labels = MongoDBStorageClassLabels;
83
+ var MongoDBModuleMixin = (ModuleBase) => {
84
+ let MongoModuleBase = class extends ModuleBase {
95
85
  _boundWitnessSdk;
96
86
  _payloadSdk;
97
87
  get boundWitnessSdkConfig() {
98
- const config = {
99
- collection: COLLECTIONS.BoundWitnesses,
100
- ...getBaseMongoSdkPrivateConfig()
101
- };
102
- return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {
103
- collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses
104
- });
88
+ const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() };
89
+ return merge(
90
+ config,
91
+ this.params.boundWitnessSdkConfig,
92
+ this.config.boundWitnessSdkConfig,
93
+ { collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses }
94
+ );
105
95
  }
106
96
  get boundWitnesses() {
107
97
  this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk2(this.boundWitnessSdkConfig);
@@ -111,43 +101,42 @@ var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
111
101
  return assertEx2(this.params.jobQueue, () => "MongoDBModule Error: jobQueue required for this module but is not defined");
112
102
  }
113
103
  get payloadSdkConfig() {
114
- const config = {
115
- collection: COLLECTIONS.Payloads,
116
- ...getBaseMongoSdkPrivateConfig()
117
- };
118
- return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {
119
- collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads
120
- });
104
+ const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() };
105
+ return merge(
106
+ config,
107
+ this.params.payloadSdkConfig,
108
+ this.config.payloadSdkConfig,
109
+ { collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads }
110
+ );
121
111
  }
122
112
  get payloads() {
123
113
  this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk2(this.payloadSdkConfig);
124
114
  return assertEx2(this._payloadSdk);
125
115
  }
126
116
  /**
127
- * Ensures any indexes specified within the config are created. This method should be idempotent
128
- * allowing for multiple calls without causing errors while ensuring the desired state.
129
- */
117
+ * Ensures any indexes specified within the config are created. This method should be idempotent
118
+ * allowing for multiple calls without causing errors while ensuring the desired state.
119
+ */
130
120
  async ensureIndexes() {
131
121
  const configIndexes = this.config?.storage?.indexes ?? [];
132
122
  await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes);
133
123
  await ensureIndexesExistOnCollection(this.payloads, configIndexes);
134
124
  }
135
125
  };
136
- MongoModuleBase = _ts_decorate([
126
+ __publicField(MongoModuleBase, "labels", MongoDBStorageClassLabels);
127
+ MongoModuleBase = __decorateClass([
137
128
  staticImplements()
138
129
  ], MongoModuleBase);
139
130
  return MongoModuleBase;
140
- }, "MongoDBModuleMixin");
141
- var ensureIndexesExistOnCollection = /* @__PURE__ */ __name(async (sdk, configIndexes) => {
131
+ };
132
+ var ensureIndexesExistOnCollection = async (sdk, configIndexes) => {
142
133
  await sdk.useCollection(async (collection) => {
143
134
  const collectionName = collection.collectionName.toLowerCase();
144
135
  const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName));
145
136
  if (indexes.length === 0) return;
146
137
  for (const ix of indexes) {
147
138
  try {
148
- await collection.createIndexes([
149
- ix
150
- ]);
139
+ await collection.createIndexes([ix]);
151
140
  } catch (error) {
152
141
  const mongoServerError = error;
153
142
  const { codeName } = mongoServerError;
@@ -159,12 +148,12 @@ var ensureIndexesExistOnCollection = /* @__PURE__ */ __name(async (sdk, configIn
159
148
  }
160
149
  }
161
150
  });
162
- }, "ensureIndexesExistOnCollection");
151
+ };
163
152
 
164
153
  // src/util/dbProperty.ts
165
154
  var escapeChar = "#";
166
- var toDbProperty = /* @__PURE__ */ __name((value) => value.replaceAll(".", escapeChar), "toDbProperty");
167
- var fromDbProperty = /* @__PURE__ */ __name((value) => value.replaceAll(escapeChar, "."), "fromDbProperty");
155
+ var toDbProperty = (value) => value.replaceAll(".", escapeChar);
156
+ var fromDbProperty = (value) => value.replaceAll(escapeChar, ".");
168
157
  export {
169
158
  COLLECTIONS,
170
159
  DATABASES,
@@ -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"],"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 type { BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { BaseMongoSdk } from '@xyo-network/sdk-xyo-mongo-js'\nimport type { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig.js'\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.js'\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 = { Archivist: 'archivist' as const }\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 {\n MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels,\n} 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.js'\nimport { getBaseMongoSdkPrivateConfig } from './config/index.js'\nimport { IndexDescription } from './IndexDescription.js'\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(\n config,\n this.params.boundWitnessSdkConfig,\n 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(\n config,\n this.params.payloadSdkConfig,\n 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"],"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","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty"]}
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"],"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 type { BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { BaseMongoSdk } from '@xyo-network/sdk-xyo-mongo-js'\nimport type { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig.js'\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.js'\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 = { Archivist: 'archivist' as const }\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 {\n MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels,\n} 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.js'\nimport { getBaseMongoSdkPrivateConfig } from './config/index.js'\nimport { IndexDescription } from './IndexDescription.js'\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(\n config,\n this.params.boundWitnessSdkConfig,\n 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(\n config,\n this.params.payloadSdkConfig,\n 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"],"mappings":"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","names":["assertEx","BaseMongoSdk","BaseMongoSdk","assertEx"]}
@@ -4,19 +4,56 @@ import { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/pa
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
6
  export declare const MongoDBModuleMixin: <TParams extends MongoDBModuleParams = import("@xylabs/object").BaseParamsFields & {
7
- account?: import("@xyo-network/account-model").AccountInstance | "random";
7
+ account?: import(".store/@xyo-network-account-model-virtual-6f489a9106/package").AccountInstance | "random";
8
8
  addToResolvers?: boolean;
9
- additionalSigners?: import("@xyo-network/account-model").AccountInstance[];
9
+ additionalSigners?: import(".store/@xyo-network-account-model-virtual-6f489a9106/package").AccountInstance[];
10
10
  allowNameResolution?: boolean;
11
- config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
12
- boundWitnessSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
13
- payloadSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
14
- schema: import("@xyo-network/module-model-mongodb").MongoDBModuleConfigSchema;
15
- }, "schema"> & {
16
- schema: "network.xyo.module.mongodb.config";
17
- }, "schema"> & {
18
- schema: string;
19
- };
11
+ config: import("@xylabs/object").DeepRestrictToStringKeys<{
12
+ schema: import("@xyo-network/payload-model").Schema;
13
+ readonly archivist?: import("@xyo-network/module-model").ModuleIdentifier | undefined;
14
+ readonly archiving?: {
15
+ readonly archivists?: string[] | undefined;
16
+ readonly queries?: string[] | undefined;
17
+ } | undefined;
18
+ readonly allowedQueries?: string[] | undefined;
19
+ readonly consoleLogger?: import(".store/@xylabs-logger-npm-4.4.25-f61ab04e23/package").LogLevel | undefined;
20
+ readonly labels?: {
21
+ [x: string]: string | undefined;
22
+ } | undefined;
23
+ readonly name?: import("@xyo-network/module-model").ModuleName | undefined;
24
+ readonly paging?: {
25
+ [x: string]: {
26
+ size?: number | undefined;
27
+ };
28
+ } | undefined;
29
+ readonly retry?: {
30
+ backoff?: number | undefined;
31
+ interval?: number | undefined;
32
+ retries?: number | undefined;
33
+ } | undefined;
34
+ readonly security?: {
35
+ readonly allowAnonymous?: boolean | undefined;
36
+ readonly allowed?: {
37
+ [x: string]: (Lowercase<string> | Lowercase<string>[])[];
38
+ } | undefined;
39
+ readonly disallowed?: {
40
+ [x: string]: Lowercase<string>[];
41
+ } | undefined;
42
+ } | undefined;
43
+ readonly sign?: boolean | undefined;
44
+ readonly storeQueries?: boolean | undefined;
45
+ readonly timestamp?: boolean | undefined;
46
+ boundWitnessSdkConfig?: {
47
+ closeDelay?: number | undefined;
48
+ collection?: string | undefined;
49
+ maxPoolSize?: number | undefined;
50
+ } | undefined;
51
+ payloadSdkConfig?: {
52
+ closeDelay?: number | undefined;
53
+ collection?: string | undefined;
54
+ maxPoolSize?: number | undefined;
55
+ } | undefined;
56
+ }>;
20
57
  ephemeralQueryAccountEnabled?: boolean;
21
58
  moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
22
59
  } & {
@@ -41,22 +78,22 @@ export declare const MongoDBModuleMixin: <TParams extends MongoDBModuleParams =
41
78
  id: string;
42
79
  modName?: import("@xyo-network/module-model").ModuleName;
43
80
  params: TParams;
44
- previousHash: () => import("@xylabs/promise").Promisable<string | undefined>;
81
+ previousHash: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<string | undefined>;
45
82
  queries: string[];
46
- query: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf) => import("@xylabs/promise").Promisable<import("@xyo-network/module-model").ModuleQueryResult>;
47
- queryable: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf_1 extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf_1) => import("@xylabs/promise").Promisable<boolean>;
48
- start?: () => import("@xylabs/promise").Promisable<boolean>;
49
- stop?: () => import("@xylabs/promise").Promisable<boolean>;
83
+ query: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf) => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<import("@xyo-network/module-model").ModuleQueryResult>;
84
+ queryable: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf_1 extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf_1) => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
85
+ start?: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
86
+ stop?: () => import(".store/@xylabs-promise-npm-4.4.25-d523bd119e/package").Promisable<boolean>;
50
87
  eventData: import("@xyo-network/module-model").ModuleEventData<object>;
51
88
  clearListeners(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): void;
52
89
  emit<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
53
90
  emitSerial<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
54
91
  listenerCount(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): number;
55
- off<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): void;
56
- offAny(listener: import("@xyo-network/module-events").EventAnyListener | Promise<void>): void;
57
- on<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
58
- onAny(listener: import("@xyo-network/module-events").EventAnyListener): import("@xyo-network/module-events").EventUnsubscribeFunction;
59
- once<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
92
+ off<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): void;
93
+ offAny(listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventAnyListener | Promise<void>): void;
94
+ on<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
95
+ onAny(listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventAnyListener): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
96
+ once<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, listener: import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import(".store/@xyo-network-module-events-npm-3.6.0-rc.16-bd93b34b4d/package").EventUnsubscribeFunction;
60
97
  }) & {
61
98
  labels: MongoDBStorageClassLabels;
62
99
  }) & TModule;
@@ -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,EACU,mBAAmB,EAAuB,yBAAyB,EACnF,MAAM,mCAAmC,CAAA;AAC1C,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,GAC7B,OAAO,SAAS,mBAAmB;;;;;;;;;;;;;;;;;;;;GACnC,OAAO,SAAS,iBAAiB,CAAC,OAAO,CAAC,2CAE9B,OAAO,8BAN6F,GAAG,EAAE;sBAWjG,YAAY,CAAC,yBAAyB,CAAC,GAAG,SAAS;iBACxD,YAAY,CAAC,oBAAoB,CAAC,GAAG,SAAS;oCAE9B,kBAAkB;;;+BAmBvB,kBAAkB;;IAe1C;;;OAGG;qBACoB,OAAO,CAAC,IAAI,CAAC;;;;;;;;sRApD8F,CAAC,6DAErH,CAAC;4RAIL,CAAA,6DAEN,CAAC;;;;;;;;;;;;;;;YAmDR,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,EACU,mBAAmB,EAAuB,yBAAyB,EACnF,MAAM,mCAAmC,CAAA;AAC1C,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,GAC7B,OAAO,SAAS,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GACnC,OAAO,SAAS,iBAAiB,CAAC,OAAO,CAAC,2CAE9B,OAAO,8BAN6F,GAAG,EAAE;sBAWjG,YAAY,CAAC,yBAAyB,CAAC,GAAG,SAAS;iBACxD,YAAY,CAAC,oBAAoB,CAAC,GAAG,SAAS;oCAE9B,kBAAkB;;;+BAmBvB,kBAAkB;;IAe1C;;;OAGG;qBACoB,OAAO,CAAC,IAAI,CAAC;;;;;;;;sRApD8F,CAAC,6DAErH,CAAC;4RAIL,CAAA,6DAEN,CAAC;;;;;;;;;;;;;;;YAmDR,CAAA"}
@@ -1,5 +1,15 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __decorateClass = (decorators, target, key, kind) => {
5
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
6
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
7
+ if (decorator = decorators[i])
8
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
9
+ if (kind && result) __defProp(target, key, result);
10
+ return result;
11
+ };
12
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
3
13
 
4
14
  // src/Collections.ts
5
15
  var COLLECTIONS = {
@@ -16,7 +26,7 @@ import { assertEx } from "@xylabs/assert";
16
26
  import { BaseMongoSdk } from "@xyo-network/sdk-xyo-mongo-js";
17
27
 
18
28
  // src/config/getMongoDBConfig.ts
19
- var getMongoDBConfig = /* @__PURE__ */ __name(() => {
29
+ var getMongoDBConfig = () => {
20
30
  const env = {};
21
31
  if (process.env.MONGO_CONNECTION_STRING) {
22
32
  env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING;
@@ -28,10 +38,10 @@ var getMongoDBConfig = /* @__PURE__ */ __name(() => {
28
38
  env.MONGO_USERNAME = process.env.MONGO_USERNAME;
29
39
  }
30
40
  return env;
31
- }, "getMongoDBConfig");
41
+ };
32
42
 
33
43
  // src/config/getBaseMongoSdk.ts
34
- var getBaseMongoSdkPrivateConfig = /* @__PURE__ */ __name(() => {
44
+ var getBaseMongoSdkPrivateConfig = () => {
35
45
  const env = getMongoDBConfig();
36
46
  return {
37
47
  dbConnectionString: env.MONGO_CONNECTION_STRING,
@@ -40,32 +50,21 @@ var getBaseMongoSdkPrivateConfig = /* @__PURE__ */ __name(() => {
40
50
  dbPassword: assertEx(env.MONGO_PASSWORD, () => "Missing Mongo Password"),
41
51
  dbUserName: assertEx(env.MONGO_USERNAME, () => "Missing Mongo Username")
42
52
  };
43
- }, "getBaseMongoSdkPrivateConfig");
44
- var getBaseMongoSdk = /* @__PURE__ */ __name((collection) => {
45
- return new BaseMongoSdk({
46
- ...getBaseMongoSdkPrivateConfig(),
47
- collection
48
- });
49
- }, "getBaseMongoSdk");
53
+ };
54
+ var getBaseMongoSdk = (collection) => {
55
+ return new BaseMongoSdk({ ...getBaseMongoSdkPrivateConfig(), collection });
56
+ };
50
57
 
51
58
  // src/config/hasMongoDBConfig.ts
52
59
  import { exists } from "@xylabs/exists";
53
- var hasMongoDBConfig = /* @__PURE__ */ __name(() => {
60
+ var hasMongoDBConfig = () => {
54
61
  const env = getMongoDBConfig();
55
- const requiredValues = [
56
- env.MONGO_CONNECTION_STRING,
57
- env.MONGO_DATABASE,
58
- env.MONGO_DOMAIN,
59
- env.MONGO_PASSWORD,
60
- env.MONGO_USERNAME
61
- ];
62
+ const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME];
62
63
  return requiredValues.every(exists);
63
- }, "hasMongoDBConfig");
64
+ };
64
65
 
65
66
  // src/Databases.ts
66
- var DATABASES = {
67
- Archivist: "archivist"
68
- };
67
+ var DATABASES = { Archivist: "archivist" };
69
68
 
70
69
  // src/Defaults.ts
71
70
  var DefaultAggregateTimeoutMs = 1e4;
@@ -77,31 +76,22 @@ var DefaultOrder = "desc";
77
76
  import { assertEx as assertEx2 } from "@xylabs/assert";
78
77
  import { merge } from "@xylabs/lodash";
79
78
  import { staticImplements } from "@xylabs/static-implements";
80
- import { MongoDBStorageClassLabels } from "@xyo-network/module-model-mongodb";
79
+ import {
80
+ MongoDBStorageClassLabels
81
+ } from "@xyo-network/module-model-mongodb";
81
82
  import { BaseMongoSdk as BaseMongoSdk2 } from "@xyo-network/sdk-xyo-mongo-js";
82
- function _ts_decorate(decorators, target, key, desc) {
83
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
84
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
85
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
86
- return c > 3 && r && Object.defineProperty(target, key, r), r;
87
- }
88
- __name(_ts_decorate, "_ts_decorate");
89
- var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
90
- let MongoModuleBase = class MongoModuleBase extends ModuleBase {
91
- static {
92
- __name(this, "MongoModuleBase");
93
- }
94
- static labels = MongoDBStorageClassLabels;
83
+ var MongoDBModuleMixin = (ModuleBase) => {
84
+ let MongoModuleBase = class extends ModuleBase {
95
85
  _boundWitnessSdk;
96
86
  _payloadSdk;
97
87
  get boundWitnessSdkConfig() {
98
- const config = {
99
- collection: COLLECTIONS.BoundWitnesses,
100
- ...getBaseMongoSdkPrivateConfig()
101
- };
102
- return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {
103
- collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses
104
- });
88
+ const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() };
89
+ return merge(
90
+ config,
91
+ this.params.boundWitnessSdkConfig,
92
+ this.config.boundWitnessSdkConfig,
93
+ { collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses }
94
+ );
105
95
  }
106
96
  get boundWitnesses() {
107
97
  this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk2(this.boundWitnessSdkConfig);
@@ -111,43 +101,42 @@ var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
111
101
  return assertEx2(this.params.jobQueue, () => "MongoDBModule Error: jobQueue required for this module but is not defined");
112
102
  }
113
103
  get payloadSdkConfig() {
114
- const config = {
115
- collection: COLLECTIONS.Payloads,
116
- ...getBaseMongoSdkPrivateConfig()
117
- };
118
- return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {
119
- collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads
120
- });
104
+ const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() };
105
+ return merge(
106
+ config,
107
+ this.params.payloadSdkConfig,
108
+ this.config.payloadSdkConfig,
109
+ { collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads }
110
+ );
121
111
  }
122
112
  get payloads() {
123
113
  this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk2(this.payloadSdkConfig);
124
114
  return assertEx2(this._payloadSdk);
125
115
  }
126
116
  /**
127
- * Ensures any indexes specified within the config are created. This method should be idempotent
128
- * allowing for multiple calls without causing errors while ensuring the desired state.
129
- */
117
+ * Ensures any indexes specified within the config are created. This method should be idempotent
118
+ * allowing for multiple calls without causing errors while ensuring the desired state.
119
+ */
130
120
  async ensureIndexes() {
131
121
  const configIndexes = this.config?.storage?.indexes ?? [];
132
122
  await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes);
133
123
  await ensureIndexesExistOnCollection(this.payloads, configIndexes);
134
124
  }
135
125
  };
136
- MongoModuleBase = _ts_decorate([
126
+ __publicField(MongoModuleBase, "labels", MongoDBStorageClassLabels);
127
+ MongoModuleBase = __decorateClass([
137
128
  staticImplements()
138
129
  ], MongoModuleBase);
139
130
  return MongoModuleBase;
140
- }, "MongoDBModuleMixin");
141
- var ensureIndexesExistOnCollection = /* @__PURE__ */ __name(async (sdk, configIndexes) => {
131
+ };
132
+ var ensureIndexesExistOnCollection = async (sdk, configIndexes) => {
142
133
  await sdk.useCollection(async (collection) => {
143
134
  const collectionName = collection.collectionName.toLowerCase();
144
135
  const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName));
145
136
  if (indexes.length === 0) return;
146
137
  for (const ix of indexes) {
147
138
  try {
148
- await collection.createIndexes([
149
- ix
150
- ]);
139
+ await collection.createIndexes([ix]);
151
140
  } catch (error) {
152
141
  const mongoServerError = error;
153
142
  const { codeName } = mongoServerError;
@@ -159,12 +148,12 @@ var ensureIndexesExistOnCollection = /* @__PURE__ */ __name(async (sdk, configIn
159
148
  }
160
149
  }
161
150
  });
162
- }, "ensureIndexesExistOnCollection");
151
+ };
163
152
 
164
153
  // src/util/dbProperty.ts
165
154
  var escapeChar = "#";
166
- var toDbProperty = /* @__PURE__ */ __name((value) => value.replaceAll(".", escapeChar), "toDbProperty");
167
- var fromDbProperty = /* @__PURE__ */ __name((value) => value.replaceAll(escapeChar, "."), "fromDbProperty");
155
+ var toDbProperty = (value) => value.replaceAll(".", escapeChar);
156
+ var fromDbProperty = (value) => value.replaceAll(escapeChar, ".");
168
157
  export {
169
158
  COLLECTIONS,
170
159
  DATABASES,
@@ -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"],"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 type { BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { BaseMongoSdk } from '@xyo-network/sdk-xyo-mongo-js'\nimport type { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig.js'\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.js'\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 = { Archivist: 'archivist' as const }\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 {\n MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels,\n} 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.js'\nimport { getBaseMongoSdkPrivateConfig } from './config/index.js'\nimport { IndexDescription } from './IndexDescription.js'\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(\n config,\n this.params.boundWitnessSdkConfig,\n 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(\n config,\n this.params.payloadSdkConfig,\n 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"],"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","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty"]}
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"],"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 type { BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { BaseMongoSdk } from '@xyo-network/sdk-xyo-mongo-js'\nimport type { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig.js'\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.js'\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 = { Archivist: 'archivist' as const }\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 {\n MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels,\n} 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.js'\nimport { getBaseMongoSdkPrivateConfig } from './config/index.js'\nimport { IndexDescription } from './IndexDescription.js'\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(\n config,\n this.params.boundWitnessSdkConfig,\n 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(\n config,\n this.params.payloadSdkConfig,\n 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"],"mappings":"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","names":["assertEx","BaseMongoSdk","BaseMongoSdk","assertEx"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/module-abstract-mongodb",
3
- "version": "3.1.7",
3
+ "version": "3.2.0-rc.1",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -37,23 +37,25 @@
37
37
  "module": "dist/node/index.mjs",
38
38
  "types": "dist/node/index.d.ts",
39
39
  "dependencies": {
40
- "@xylabs/assert": "^4.4.10",
41
- "@xylabs/exists": "^4.4.10",
42
- "@xylabs/lodash": "^4.4.10",
43
- "@xylabs/static-implements": "^4.4.10",
44
- "@xyo-network/module-model": "^3.5.2",
45
- "@xyo-network/module-model-mongodb": "^3.1.7",
46
- "@xyo-network/payload-mongodb": "^3.1.7",
47
- "@xyo-network/sdk-xyo-mongo-js": "^3.1.7",
48
- "mongodb": "~6.11.0"
40
+ "@xylabs/assert": "^4.4.25",
41
+ "@xylabs/exists": "^4.4.25",
42
+ "@xylabs/lodash": "^4.4.25",
43
+ "@xylabs/static-implements": "^4.4.25",
44
+ "@xyo-network/module-model": "^3.6.0-rc.16",
45
+ "@xyo-network/module-model-mongodb": "^3.2.0-rc.1",
46
+ "@xyo-network/payload-mongodb": "^3.2.0-rc.1",
47
+ "@xyo-network/sdk-xyo-mongo-js": "^3.2.0-rc.1",
48
+ "mongodb": "~6.12.0"
49
49
  },
50
50
  "devDependencies": {
51
- "@xylabs/ts-scripts-yarn3": "^4.2.4",
52
- "@xylabs/tsconfig": "^4.2.4",
51
+ "@xylabs/ts-scripts-yarn3": "^4.2.6",
52
+ "@xylabs/tsconfig": "^4.2.6",
53
53
  "fake-indexeddb": "^6.0.0",
54
+ "tslib": "^2.8.1",
54
55
  "typescript": "^5.7.2"
55
56
  },
56
57
  "publishConfig": {
57
58
  "access": "public"
58
- }
59
+ },
60
+ "stableVersion": "3.1.7"
59
61
  }