@xyo-network/module-abstract-mongodb 2.82.0-rc.1 → 2.83.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/Module.d.cts +47 -56
- package/dist/browser/Module.d.cts.map +1 -1
- package/dist/browser/Module.d.mts +47 -56
- package/dist/browser/Module.d.mts.map +1 -1
- package/dist/browser/Module.d.ts +47 -56
- package/dist/browser/Module.d.ts.map +1 -1
- package/dist/browser/util/removeId.d.cts +2 -2
- package/dist/browser/util/removeId.d.cts.map +1 -1
- package/dist/browser/util/removeId.d.mts +2 -2
- package/dist/browser/util/removeId.d.mts.map +1 -1
- package/dist/browser/util/removeId.d.ts +2 -2
- package/dist/browser/util/removeId.d.ts.map +1 -1
- package/dist/node/Module.d.cts +47 -56
- package/dist/node/Module.d.cts.map +1 -1
- package/dist/node/Module.d.mts +47 -56
- package/dist/node/Module.d.mts.map +1 -1
- package/dist/node/Module.d.ts +47 -56
- package/dist/node/Module.d.ts.map +1 -1
- package/dist/node/{index.mjs → index.cjs} +65 -26
- package/dist/node/index.cjs.map +1 -0
- package/dist/node/index.js +25 -64
- package/dist/node/index.js.map +1 -1
- package/dist/node/util/removeId.d.cts +2 -2
- package/dist/node/util/removeId.d.cts.map +1 -1
- package/dist/node/util/removeId.d.mts +2 -2
- package/dist/node/util/removeId.d.mts.map +1 -1
- package/dist/node/util/removeId.d.ts +2 -2
- package/dist/node/util/removeId.d.ts.map +1 -1
- package/package.json +19 -28
- package/dist/node/index.mjs.map +0 -1
|
@@ -1,11 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
2
6
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
7
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
4
21
|
var __publicField = (obj, key, value) => {
|
|
5
22
|
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
6
23
|
return value;
|
|
7
24
|
};
|
|
8
25
|
|
|
26
|
+
// src/index.ts
|
|
27
|
+
var src_exports = {};
|
|
28
|
+
__export(src_exports, {
|
|
29
|
+
COLLECTIONS: () => COLLECTIONS,
|
|
30
|
+
DATABASES: () => DATABASES,
|
|
31
|
+
DefaultAggregateTimeoutMs: () => DefaultAggregateTimeoutMs,
|
|
32
|
+
DefaultLimit: () => DefaultLimit,
|
|
33
|
+
DefaultMaxTimeMS: () => DefaultMaxTimeMS,
|
|
34
|
+
DefaultOrder: () => DefaultOrder,
|
|
35
|
+
MongoDBModuleMixin: () => MongoDBModuleMixin,
|
|
36
|
+
escapeChar: () => escapeChar,
|
|
37
|
+
fromDbProperty: () => fromDbProperty,
|
|
38
|
+
getBaseMongoSdk: () => getBaseMongoSdk,
|
|
39
|
+
getBaseMongoSdkPrivateConfig: () => getBaseMongoSdkPrivateConfig,
|
|
40
|
+
getMongoDBConfig: () => getMongoDBConfig,
|
|
41
|
+
hasMongoDBConfig: () => hasMongoDBConfig,
|
|
42
|
+
removeId: () => removeId,
|
|
43
|
+
toDbProperty: () => toDbProperty
|
|
44
|
+
});
|
|
45
|
+
module.exports = __toCommonJS(src_exports);
|
|
46
|
+
|
|
9
47
|
// src/Collections.ts
|
|
10
48
|
var COLLECTIONS = {
|
|
11
49
|
AddressInfo: "address_info",
|
|
@@ -17,8 +55,8 @@ var COLLECTIONS = {
|
|
|
17
55
|
};
|
|
18
56
|
|
|
19
57
|
// src/config/getBaseMongoSdk.ts
|
|
20
|
-
|
|
21
|
-
|
|
58
|
+
var import_assert = require("@xylabs/assert");
|
|
59
|
+
var import_sdk_xyo_mongo_js = require("@xyo-network/sdk-xyo-mongo-js");
|
|
22
60
|
|
|
23
61
|
// src/config/getMongoDBConfig.ts
|
|
24
62
|
var getMongoDBConfig = /* @__PURE__ */ __name(() => {
|
|
@@ -40,21 +78,21 @@ var getBaseMongoSdkPrivateConfig = /* @__PURE__ */ __name(() => {
|
|
|
40
78
|
const env = getMongoDBConfig();
|
|
41
79
|
return {
|
|
42
80
|
dbConnectionString: env.MONGO_CONNECTION_STRING,
|
|
43
|
-
dbDomain: assertEx(env.MONGO_DOMAIN, "Missing Mongo Domain"),
|
|
44
|
-
dbName: assertEx(env.MONGO_DATABASE, "Missing Mongo Database"),
|
|
45
|
-
dbPassword: assertEx(env.MONGO_PASSWORD, "Missing Mongo Password"),
|
|
46
|
-
dbUserName: assertEx(env.MONGO_USERNAME, "Missing Mongo Username")
|
|
81
|
+
dbDomain: (0, import_assert.assertEx)(env.MONGO_DOMAIN, "Missing Mongo Domain"),
|
|
82
|
+
dbName: (0, import_assert.assertEx)(env.MONGO_DATABASE, "Missing Mongo Database"),
|
|
83
|
+
dbPassword: (0, import_assert.assertEx)(env.MONGO_PASSWORD, "Missing Mongo Password"),
|
|
84
|
+
dbUserName: (0, import_assert.assertEx)(env.MONGO_USERNAME, "Missing Mongo Username")
|
|
47
85
|
};
|
|
48
86
|
}, "getBaseMongoSdkPrivateConfig");
|
|
49
87
|
var getBaseMongoSdk = /* @__PURE__ */ __name((collection) => {
|
|
50
|
-
return new BaseMongoSdk({
|
|
88
|
+
return new import_sdk_xyo_mongo_js.BaseMongoSdk({
|
|
51
89
|
...getBaseMongoSdkPrivateConfig(),
|
|
52
90
|
collection
|
|
53
91
|
});
|
|
54
92
|
}, "getBaseMongoSdk");
|
|
55
93
|
|
|
56
94
|
// src/config/hasMongoDBConfig.ts
|
|
57
|
-
|
|
95
|
+
var import_exists = require("@xylabs/exists");
|
|
58
96
|
var hasMongoDBConfig = /* @__PURE__ */ __name(() => {
|
|
59
97
|
const env = getMongoDBConfig();
|
|
60
98
|
const requiredValues = [
|
|
@@ -64,7 +102,7 @@ var hasMongoDBConfig = /* @__PURE__ */ __name(() => {
|
|
|
64
102
|
env.MONGO_PASSWORD,
|
|
65
103
|
env.MONGO_USERNAME
|
|
66
104
|
];
|
|
67
|
-
return requiredValues.every(exists);
|
|
105
|
+
return requiredValues.every(import_exists.exists);
|
|
68
106
|
}, "hasMongoDBConfig");
|
|
69
107
|
|
|
70
108
|
// src/Databases.ts
|
|
@@ -79,11 +117,11 @@ var DefaultMaxTimeMS = 2e3;
|
|
|
79
117
|
var DefaultOrder = "desc";
|
|
80
118
|
|
|
81
119
|
// src/Module.ts
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
120
|
+
var import_assert2 = require("@xylabs/assert");
|
|
121
|
+
var import_lodash = require("@xylabs/lodash");
|
|
122
|
+
var import_static_implements = require("@xylabs/static-implements");
|
|
123
|
+
var import_module_model_mongodb = require("@xyo-network/module-model-mongodb");
|
|
124
|
+
var import_sdk_xyo_mongo_js2 = require("@xyo-network/sdk-xyo-mongo-js");
|
|
87
125
|
function _ts_decorate(decorators, target, key, desc) {
|
|
88
126
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
89
127
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
@@ -106,16 +144,16 @@ var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
|
|
|
106
144
|
collection: COLLECTIONS.BoundWitnesses,
|
|
107
145
|
...getBaseMongoSdkPrivateConfig()
|
|
108
146
|
};
|
|
109
|
-
return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {
|
|
147
|
+
return (0, import_lodash.merge)(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {
|
|
110
148
|
collection: ((_a2 = this.config.boundWitnessSdkConfig) == null ? void 0 : _a2.collection) ?? ((_b = this.params.boundWitnessSdkConfig) == null ? void 0 : _b.collection) ?? COLLECTIONS.BoundWitnesses
|
|
111
149
|
});
|
|
112
150
|
}
|
|
113
151
|
get boundWitnesses() {
|
|
114
|
-
this._boundWitnessSdk = this._boundWitnessSdk ?? new
|
|
115
|
-
return
|
|
152
|
+
this._boundWitnessSdk = this._boundWitnessSdk ?? new import_sdk_xyo_mongo_js2.BaseMongoSdk(this.boundWitnessSdkConfig);
|
|
153
|
+
return (0, import_assert2.assertEx)(this._boundWitnessSdk);
|
|
116
154
|
}
|
|
117
155
|
get jobQueue() {
|
|
118
|
-
return
|
|
156
|
+
return (0, import_assert2.assertEx)(this.params.jobQueue, "MongoDBModule Error: jobQueue required for this module but is not defined");
|
|
119
157
|
}
|
|
120
158
|
get payloadSdkConfig() {
|
|
121
159
|
var _a2, _b;
|
|
@@ -123,13 +161,13 @@ var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
|
|
|
123
161
|
collection: COLLECTIONS.Payloads,
|
|
124
162
|
...getBaseMongoSdkPrivateConfig()
|
|
125
163
|
};
|
|
126
|
-
return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {
|
|
164
|
+
return (0, import_lodash.merge)(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {
|
|
127
165
|
collection: ((_a2 = this.config.payloadSdkConfig) == null ? void 0 : _a2.collection) ?? ((_b = this.params.payloadSdkConfig) == null ? void 0 : _b.collection) ?? COLLECTIONS.Payloads
|
|
128
166
|
});
|
|
129
167
|
}
|
|
130
168
|
get payloads() {
|
|
131
|
-
this._payloadSdk = this._payloadSdk ?? new
|
|
132
|
-
return
|
|
169
|
+
this._payloadSdk = this._payloadSdk ?? new import_sdk_xyo_mongo_js2.BaseMongoSdk(this.payloadSdkConfig);
|
|
170
|
+
return (0, import_assert2.assertEx)(this._payloadSdk);
|
|
133
171
|
}
|
|
134
172
|
/**
|
|
135
173
|
* Ensures any indexes specified within the config are created. This method should be idempotent
|
|
@@ -141,9 +179,9 @@ var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
|
|
|
141
179
|
await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes);
|
|
142
180
|
await ensureIndexesExistOnCollection(this.payloads, configIndexes);
|
|
143
181
|
}
|
|
144
|
-
}, __name(_a, "MongoModuleBase"), __publicField(_a, "labels", MongoDBStorageClassLabels), _a);
|
|
182
|
+
}, __name(_a, "MongoModuleBase"), __publicField(_a, "labels", import_module_model_mongodb.MongoDBStorageClassLabels), _a);
|
|
145
183
|
MongoModuleBase = _ts_decorate([
|
|
146
|
-
staticImplements()
|
|
184
|
+
(0, import_static_implements.staticImplements)()
|
|
147
185
|
], MongoModuleBase);
|
|
148
186
|
return MongoModuleBase;
|
|
149
187
|
}, "MongoDBModuleMixin");
|
|
@@ -184,7 +222,8 @@ var removeId = /* @__PURE__ */ __name((payload) => {
|
|
|
184
222
|
const { _id, ...withoutId } = payload;
|
|
185
223
|
return withoutId;
|
|
186
224
|
}, "removeId");
|
|
187
|
-
export
|
|
225
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
226
|
+
0 && (module.exports = {
|
|
188
227
|
COLLECTIONS,
|
|
189
228
|
DATABASES,
|
|
190
229
|
DefaultAggregateTimeoutMs,
|
|
@@ -200,5 +239,5 @@ export {
|
|
|
200
239
|
hasMongoDBConfig,
|
|
201
240
|
removeId,
|
|
202
241
|
toDbProperty
|
|
203
|
-
};
|
|
204
|
-
//# sourceMappingURL=index.
|
|
242
|
+
});
|
|
243
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts","../../src/util/removeId.ts"],"sourcesContent":["export * from './Collections'\nexport * from './config'\nexport * from './Databases'\nexport * from './Defaults'\nexport * from './IndexDescription'\nexport * from './Indexes'\nexport * from './Module'\nexport * from './util'\n","// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\nimport { IndexDescription } from './IndexDescription'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMeta> | BaseMongoSdk<BoundWitnessWithMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n","import { Payload } from '@xyo-network/payload-model'\nimport { OptionalId, WithId, WithoutId } from 'mongodb'\n\nexport const removeId = <T extends Payload = Payload>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>): WithoutId<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _id, ...withoutId } = payload as OptionalId<T>\n return withoutId as WithoutId<T>\n}\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","import_assert","import_sdk_xyo_mongo_js","MongoDBModuleMixin","ModuleBase","MongoModuleBase","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","_a","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","labels","MongoDBStorageClassLabels","staticImplements","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty","removeId","payload","_id","withoutId"]}
|
package/dist/node/index.js
CHANGED
|
@@ -1,49 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
3
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
4
|
var __publicField = (obj, key, value) => {
|
|
22
5
|
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
23
6
|
return value;
|
|
24
7
|
};
|
|
25
8
|
|
|
26
|
-
// src/index.ts
|
|
27
|
-
var src_exports = {};
|
|
28
|
-
__export(src_exports, {
|
|
29
|
-
COLLECTIONS: () => COLLECTIONS,
|
|
30
|
-
DATABASES: () => DATABASES,
|
|
31
|
-
DefaultAggregateTimeoutMs: () => DefaultAggregateTimeoutMs,
|
|
32
|
-
DefaultLimit: () => DefaultLimit,
|
|
33
|
-
DefaultMaxTimeMS: () => DefaultMaxTimeMS,
|
|
34
|
-
DefaultOrder: () => DefaultOrder,
|
|
35
|
-
MongoDBModuleMixin: () => MongoDBModuleMixin,
|
|
36
|
-
escapeChar: () => escapeChar,
|
|
37
|
-
fromDbProperty: () => fromDbProperty,
|
|
38
|
-
getBaseMongoSdk: () => getBaseMongoSdk,
|
|
39
|
-
getBaseMongoSdkPrivateConfig: () => getBaseMongoSdkPrivateConfig,
|
|
40
|
-
getMongoDBConfig: () => getMongoDBConfig,
|
|
41
|
-
hasMongoDBConfig: () => hasMongoDBConfig,
|
|
42
|
-
removeId: () => removeId,
|
|
43
|
-
toDbProperty: () => toDbProperty
|
|
44
|
-
});
|
|
45
|
-
module.exports = __toCommonJS(src_exports);
|
|
46
|
-
|
|
47
9
|
// src/Collections.ts
|
|
48
10
|
var COLLECTIONS = {
|
|
49
11
|
AddressInfo: "address_info",
|
|
@@ -55,8 +17,8 @@ var COLLECTIONS = {
|
|
|
55
17
|
};
|
|
56
18
|
|
|
57
19
|
// src/config/getBaseMongoSdk.ts
|
|
58
|
-
|
|
59
|
-
|
|
20
|
+
import { assertEx } from "@xylabs/assert";
|
|
21
|
+
import { BaseMongoSdk } from "@xyo-network/sdk-xyo-mongo-js";
|
|
60
22
|
|
|
61
23
|
// src/config/getMongoDBConfig.ts
|
|
62
24
|
var getMongoDBConfig = /* @__PURE__ */ __name(() => {
|
|
@@ -78,21 +40,21 @@ var getBaseMongoSdkPrivateConfig = /* @__PURE__ */ __name(() => {
|
|
|
78
40
|
const env = getMongoDBConfig();
|
|
79
41
|
return {
|
|
80
42
|
dbConnectionString: env.MONGO_CONNECTION_STRING,
|
|
81
|
-
dbDomain:
|
|
82
|
-
dbName:
|
|
83
|
-
dbPassword:
|
|
84
|
-
dbUserName:
|
|
43
|
+
dbDomain: assertEx(env.MONGO_DOMAIN, "Missing Mongo Domain"),
|
|
44
|
+
dbName: assertEx(env.MONGO_DATABASE, "Missing Mongo Database"),
|
|
45
|
+
dbPassword: assertEx(env.MONGO_PASSWORD, "Missing Mongo Password"),
|
|
46
|
+
dbUserName: assertEx(env.MONGO_USERNAME, "Missing Mongo Username")
|
|
85
47
|
};
|
|
86
48
|
}, "getBaseMongoSdkPrivateConfig");
|
|
87
49
|
var getBaseMongoSdk = /* @__PURE__ */ __name((collection) => {
|
|
88
|
-
return new
|
|
50
|
+
return new BaseMongoSdk({
|
|
89
51
|
...getBaseMongoSdkPrivateConfig(),
|
|
90
52
|
collection
|
|
91
53
|
});
|
|
92
54
|
}, "getBaseMongoSdk");
|
|
93
55
|
|
|
94
56
|
// src/config/hasMongoDBConfig.ts
|
|
95
|
-
|
|
57
|
+
import { exists } from "@xylabs/exists";
|
|
96
58
|
var hasMongoDBConfig = /* @__PURE__ */ __name(() => {
|
|
97
59
|
const env = getMongoDBConfig();
|
|
98
60
|
const requiredValues = [
|
|
@@ -102,7 +64,7 @@ var hasMongoDBConfig = /* @__PURE__ */ __name(() => {
|
|
|
102
64
|
env.MONGO_PASSWORD,
|
|
103
65
|
env.MONGO_USERNAME
|
|
104
66
|
];
|
|
105
|
-
return requiredValues.every(
|
|
67
|
+
return requiredValues.every(exists);
|
|
106
68
|
}, "hasMongoDBConfig");
|
|
107
69
|
|
|
108
70
|
// src/Databases.ts
|
|
@@ -117,11 +79,11 @@ var DefaultMaxTimeMS = 2e3;
|
|
|
117
79
|
var DefaultOrder = "desc";
|
|
118
80
|
|
|
119
81
|
// src/Module.ts
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
82
|
+
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
83
|
+
import { merge } from "@xylabs/lodash";
|
|
84
|
+
import { staticImplements } from "@xylabs/static-implements";
|
|
85
|
+
import { MongoDBStorageClassLabels } from "@xyo-network/module-model-mongodb";
|
|
86
|
+
import { BaseMongoSdk as BaseMongoSdk2 } from "@xyo-network/sdk-xyo-mongo-js";
|
|
125
87
|
function _ts_decorate(decorators, target, key, desc) {
|
|
126
88
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
127
89
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
@@ -144,16 +106,16 @@ var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
|
|
|
144
106
|
collection: COLLECTIONS.BoundWitnesses,
|
|
145
107
|
...getBaseMongoSdkPrivateConfig()
|
|
146
108
|
};
|
|
147
|
-
return
|
|
109
|
+
return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {
|
|
148
110
|
collection: ((_a2 = this.config.boundWitnessSdkConfig) == null ? void 0 : _a2.collection) ?? ((_b = this.params.boundWitnessSdkConfig) == null ? void 0 : _b.collection) ?? COLLECTIONS.BoundWitnesses
|
|
149
111
|
});
|
|
150
112
|
}
|
|
151
113
|
get boundWitnesses() {
|
|
152
|
-
this._boundWitnessSdk = this._boundWitnessSdk ?? new
|
|
153
|
-
return (
|
|
114
|
+
this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk2(this.boundWitnessSdkConfig);
|
|
115
|
+
return assertEx2(this._boundWitnessSdk);
|
|
154
116
|
}
|
|
155
117
|
get jobQueue() {
|
|
156
|
-
return (
|
|
118
|
+
return assertEx2(this.params.jobQueue, "MongoDBModule Error: jobQueue required for this module but is not defined");
|
|
157
119
|
}
|
|
158
120
|
get payloadSdkConfig() {
|
|
159
121
|
var _a2, _b;
|
|
@@ -161,13 +123,13 @@ var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
|
|
|
161
123
|
collection: COLLECTIONS.Payloads,
|
|
162
124
|
...getBaseMongoSdkPrivateConfig()
|
|
163
125
|
};
|
|
164
|
-
return
|
|
126
|
+
return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {
|
|
165
127
|
collection: ((_a2 = this.config.payloadSdkConfig) == null ? void 0 : _a2.collection) ?? ((_b = this.params.payloadSdkConfig) == null ? void 0 : _b.collection) ?? COLLECTIONS.Payloads
|
|
166
128
|
});
|
|
167
129
|
}
|
|
168
130
|
get payloads() {
|
|
169
|
-
this._payloadSdk = this._payloadSdk ?? new
|
|
170
|
-
return (
|
|
131
|
+
this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk2(this.payloadSdkConfig);
|
|
132
|
+
return assertEx2(this._payloadSdk);
|
|
171
133
|
}
|
|
172
134
|
/**
|
|
173
135
|
* Ensures any indexes specified within the config are created. This method should be idempotent
|
|
@@ -179,9 +141,9 @@ var MongoDBModuleMixin = /* @__PURE__ */ __name((ModuleBase) => {
|
|
|
179
141
|
await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes);
|
|
180
142
|
await ensureIndexesExistOnCollection(this.payloads, configIndexes);
|
|
181
143
|
}
|
|
182
|
-
}, __name(_a, "MongoModuleBase"), __publicField(_a, "labels",
|
|
144
|
+
}, __name(_a, "MongoModuleBase"), __publicField(_a, "labels", MongoDBStorageClassLabels), _a);
|
|
183
145
|
MongoModuleBase = _ts_decorate([
|
|
184
|
-
|
|
146
|
+
staticImplements()
|
|
185
147
|
], MongoModuleBase);
|
|
186
148
|
return MongoModuleBase;
|
|
187
149
|
}, "MongoDBModuleMixin");
|
|
@@ -222,8 +184,7 @@ var removeId = /* @__PURE__ */ __name((payload) => {
|
|
|
222
184
|
const { _id, ...withoutId } = payload;
|
|
223
185
|
return withoutId;
|
|
224
186
|
}, "removeId");
|
|
225
|
-
|
|
226
|
-
0 && (module.exports = {
|
|
187
|
+
export {
|
|
227
188
|
COLLECTIONS,
|
|
228
189
|
DATABASES,
|
|
229
190
|
DefaultAggregateTimeoutMs,
|
|
@@ -239,5 +200,5 @@ var removeId = /* @__PURE__ */ __name((payload) => {
|
|
|
239
200
|
hasMongoDBConfig,
|
|
240
201
|
removeId,
|
|
241
202
|
toDbProperty
|
|
242
|
-
}
|
|
203
|
+
};
|
|
243
204
|
//# sourceMappingURL=index.js.map
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts","../../src/util/removeId.ts"],"sourcesContent":["export * from './Collections'\nexport * from './config'\nexport * from './Databases'\nexport * from './Defaults'\nexport * from './IndexDescription'\nexport * from './Indexes'\nexport * from './Module'\nexport * from './util'\n","// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\nimport { IndexDescription } from './IndexDescription'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMeta> | BaseMongoSdk<BoundWitnessWithMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n","import { Payload } from '@xyo-network/payload-model'\nimport { OptionalId, WithId, WithoutId } from 'mongodb'\n\nexport const removeId = <T extends Payload = Payload>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>): WithoutId<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _id, ...withoutId } = payload as OptionalId<T>\n return withoutId as WithoutId<T>\n}\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","import_assert","import_sdk_xyo_mongo_js","MongoDBModuleMixin","ModuleBase","MongoModuleBase","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","_a","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","labels","MongoDBStorageClassLabels","staticImplements","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty","removeId","payload","_id","withoutId"]}
|
|
1
|
+
{"version":3,"sources":["../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts","../../src/util/removeId.ts"],"sourcesContent":["// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMeta, PayloadWithMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\nimport { IndexDescription } from './IndexDescription'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMeta> | BaseMongoSdk<BoundWitnessWithMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n","import { Payload } from '@xyo-network/payload-model'\nimport { OptionalId, WithId, WithoutId } from 'mongodb'\n\nexport const removeId = <T extends Payload = Payload>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>): WithoutId<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _id, ...withoutId } = payload as OptionalId<T>\n return withoutId as WithoutId<T>\n}\n"],"mappings":";;;;;;;;;AACO,IAAMA,cAAc;EACzBC,aAAa;EACbC,gBAAgB;EAChBC,gBAAgB;EAChBC,UAAU;EACVC,YAAY;EACZC,OAAO;AACT;;;ACRA,SAASC,gBAAgB;AACzB,SAASC,oBAA+C;;;ACIjD,IAAMC,mBAAmB,6BAAA;AAC9B,QAAMC,MAAgB,CAAC;AACvB,MAAIC,QAAQD,IAAIE,yBAAyB;AACvCF,QAAIE,0BAA0BD,QAAQD,IAAIE;EAC5C;AACA,MAAID,QAAQD,IAAIG,cAAc;AAC5BH,QAAII,iBAAiBH,QAAQD,IAAII;AACjCJ,QAAIG,eAAeF,QAAQD,IAAIG;AAC/BH,QAAIK,iBAAiBJ,QAAQD,IAAIK;AACjCL,QAAIM,iBAAiBL,QAAQD,IAAIM;EACnC;AACA,SAAON;AACT,GAZgC;;;ADCzB,IAAMO,+BAA+B,6BAAA;AAC1C,QAAMC,MAAMC,iBAAAA;AACZ,SAAO;IACLC,oBAAoBF,IAAIG;IACxBC,UAAUC,SAASL,IAAIM,cAAc,sBAAA;IACrCC,QAAQF,SAASL,IAAIQ,gBAAgB,wBAAA;IACrCC,YAAYJ,SAASL,IAAIU,gBAAgB,wBAAA;IACzCC,YAAYN,SAASL,IAAIY,gBAAgB,wBAAA;EAC3C;AACF,GAT4C;AAWrC,IAAMC,kBAAkB,wBAAqBC,eAAAA;AAClD,SAAO,IAAIC,aAAgB;IAAE,GAAGhB,6BAAAA;IAAgCe;EAAW,CAAA;AAC7E,GAF+B;;;AEjB/B,SAASE,cAAc;AAIhB,IAAMC,mBAAmB,6BAAA;AAC9B,QAAMC,MAAMC,iBAAAA;AACZ,QAAMC,iBAAiB;IAACF,IAAIG;IAAyBH,IAAII;IAAgBJ,IAAIK;IAAcL,IAAIM;IAAgBN,IAAIO;;AACnH,SAAOL,eAAeM,MAAMC,MAAAA;AAC9B,GAJgC;;;ACJzB,IAAMC,YAAY;EACvBC,WAAW;AACb;;;ACFO,IAAMC,4BAA4B;AAClC,IAAMC,eAAe;AACrB,IAAMC,mBAAmB;AACzB,IAAMC,eAAe;;;ACH5B,SAASC,YAAAA,iBAAgB;AACzB,SAASC,aAAa;AACtB,SAASC,wBAAwB;AAEjC,SAAkEC,iCAAiC;AAEnG,SAASC,gBAAAA,qBAAwC;;;;;;;;;;;;AAU1C,IAAMC,qBAAqB,wBAIhCC,eAAAA;;AAGA,MAAeC,mBAAf,mBAAuCD,WAAAA;IAErCE;IACAC;IAEA,IAAIC,wBAA4C;;AAC9C,YAAMC,SAAS;QAAEC,YAAYC,YAAYC;QAAgB,GAAGC,6BAAAA;MAA+B;AAC3F,aAAOC,MAAML,QAAQ,KAAKM,OAAOP,uBAAuB,KAAKC,OAAOD,uBAAuB;QACzFE,cAAYM,MAAA,KAAKP,OAAOD,0BAAZ,gBAAAQ,IAAmCN,iBAAc,UAAKK,OAAOP,0BAAZ,mBAAmCE,eAAcC,YAAYC;MAC5H,CAAA;IACF;IAEA,IAAIK,iBAAiB;AACnB,WAAKX,mBAAmB,KAAKA,oBAAoB,IAAIY,cAAmC,KAAKV,qBAAqB;AAClH,aAAOW,UAAS,KAAKb,gBAAgB;IACvC;IAEA,IAAIc,WAAW;AACb,aAAOD,UAAS,KAAKJ,OAAOK,UAAU,2EAAA;IACxC;IAEA,IAAIC,mBAAuC;;AACzC,YAAMZ,SAAS;QAAEC,YAAYC,YAAYW;QAAU,GAAGT,6BAAAA;MAA+B;AACrF,aAAOC,MAAML,QAAQ,KAAKM,OAAOM,kBAAkB,KAAKZ,OAAOY,kBAAkB;QAC/EX,cAAYM,MAAA,KAAKP,OAAOY,qBAAZ,gBAAAL,IAA8BN,iBAAc,UAAKK,OAAOM,qBAAZ,mBAA8BX,eAAcC,YAAYW;MAClH,CAAA;IACF;IAEA,IAAIC,WAAW;AACb,WAAKhB,cAAc,KAAKA,eAAe,IAAIW,cAA8B,KAAKG,gBAAgB;AAC9F,aAAOF,UAAS,KAAKZ,WAAW;IAClC;;;;;IAMA,MAAMiB,gBAA+B;;AACnC,YAAMC,kBAAiB,MAAAT,MAAA,KAAKP,WAAL,gBAAAO,IAAgEU,YAAhE,mBAAyEC,YAAW,CAAA;AAC3G,YAAMC,+BAA+B,KAAKX,gBAAgBQ,aAAAA;AAC1D,YAAMG,+BAA+B,KAAKL,UAAUE,aAAAA;IACtD;EACF,GA1CuCrB,+BACrC,cADF,IACSyB,UAASC,4BADlB;AAAezB,oBAAAA,aAAAA;IADd0B,iBAAAA;KACc1B,eAAAA;AA2Cf,SAAOA;AACT,GAnDkC;AA0DlC,IAAMuB,iCAAiC,8BACrCI,KACAP,kBAAAA;AAEA,QAAMO,IAAIC,cAAc,OAAOvB,eAAAA;AAC7B,UAAMwB,iBAAiBxB,WAAWwB,eAAeC,YAAW;AAC5D,UAAMR,UAAUF,cAAcW,OAAO,CAACC,OAAAA;;AAAOA,4CAAIC,SAAJD,mBAAUF,cAAcI,WAAWL;KAAAA;AAChF,QAAIP,QAAQa,WAAW;AAAG;AAC1B,eAAWH,MAAMV,SAAS;AACxB,UAAI;AACF,cAAMjB,WAAW+B,cAAc;UAACJ;SAAG;MACrC,SAASK,OAAO;AACd,cAAMC,mBAAmBD;AACzB,cAAM,EAAEE,SAAQ,IAAKD;AACrB,YAAIC,aAAa,2BAA2BA,aAAa,wBAAwB;AAK/E;QACF;AACAC,gBAAQH,MAAM,wBAAwBL,GAAGC,IAAI,mBAAmBJ,cAAAA,KAAmBQ,KAAAA,EAAO;AAC1F,cAAMA;MACR;IACF;EACF,CAAA;AACF,GA1BuC;;;AC1EhC,IAAMI,aAAa;AAEnB,IAAMC,eAAe,wBAACC,UAAkBA,MAAMC,WAAW,KAAKH,UAAAA,GAAzC;AAErB,IAAMI,iBAAiB,wBAACF,UAAkBA,MAAMC,WAAWH,YAAY,GAAA,GAAhD;;;ACDvB,IAAMK,WAAW,wBAA8BC,YAAAA;AAEpD,QAAM,EAAEC,KAAK,GAAGC,UAAAA,IAAcF;AAC9B,SAAOE;AACT,GAJwB;","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","assertEx","BaseMongoSdk","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","exists","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","assertEx","merge","staticImplements","MongoDBStorageClassLabels","BaseMongoSdk","MongoDBModuleMixin","ModuleBase","MongoModuleBase","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","_a","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","labels","MongoDBStorageClassLabels","staticImplements","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty","removeId","payload","_id","withoutId"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OptionalId, WithId, WithoutId } from 'mongodb';
|
|
2
2
|
export declare const removeId: <T extends {
|
|
3
3
|
schema: string;
|
|
4
|
-
} = {
|
|
4
|
+
} & object = {
|
|
5
5
|
schema: string;
|
|
6
|
-
}>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>) => WithoutId<T>;
|
|
6
|
+
} & object>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>) => WithoutId<T>;
|
|
7
7
|
//# sourceMappingURL=removeId.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeId.d.ts","sourceRoot":"","sources":["../../../src/util/removeId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEvD,eAAO,MAAM,QAAQ;;;;
|
|
1
|
+
{"version":3,"file":"removeId.d.ts","sourceRoot":"","sources":["../../../src/util/removeId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEvD,eAAO,MAAM,QAAQ;;;;kFAIpB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OptionalId, WithId, WithoutId } from 'mongodb';
|
|
2
2
|
export declare const removeId: <T extends {
|
|
3
3
|
schema: string;
|
|
4
|
-
} = {
|
|
4
|
+
} & object = {
|
|
5
5
|
schema: string;
|
|
6
|
-
}>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>) => WithoutId<T>;
|
|
6
|
+
} & object>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>) => WithoutId<T>;
|
|
7
7
|
//# sourceMappingURL=removeId.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeId.d.ts","sourceRoot":"","sources":["../../../src/util/removeId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEvD,eAAO,MAAM,QAAQ;;;;
|
|
1
|
+
{"version":3,"file":"removeId.d.ts","sourceRoot":"","sources":["../../../src/util/removeId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEvD,eAAO,MAAM,QAAQ;;;;kFAIpB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OptionalId, WithId, WithoutId } from 'mongodb';
|
|
2
2
|
export declare const removeId: <T extends {
|
|
3
3
|
schema: string;
|
|
4
|
-
} = {
|
|
4
|
+
} & object = {
|
|
5
5
|
schema: string;
|
|
6
|
-
}>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>) => WithoutId<T>;
|
|
6
|
+
} & object>(payload: T | WithId<T> | WithoutId<T> | OptionalId<T>) => WithoutId<T>;
|
|
7
7
|
//# sourceMappingURL=removeId.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeId.d.ts","sourceRoot":"","sources":["../../../src/util/removeId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEvD,eAAO,MAAM,QAAQ;;;;
|
|
1
|
+
{"version":3,"file":"removeId.d.ts","sourceRoot":"","sources":["../../../src/util/removeId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEvD,eAAO,MAAM,QAAQ;;;;kFAIpB,CAAA"}
|
package/package.json
CHANGED
|
@@ -10,33 +10,24 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/assert": "^2.13.
|
|
14
|
-
"@xylabs/exists": "^2.13.
|
|
15
|
-
"@xylabs/lodash": "^2.13.
|
|
16
|
-
"@xylabs/static-implements": "^2.13.
|
|
17
|
-
"@xyo-network/module-model": "
|
|
18
|
-
"@xyo-network/module-model-mongodb": "~2.
|
|
19
|
-
"@xyo-network/payload-model": "
|
|
20
|
-
"@xyo-network/payload-mongodb": "~2.
|
|
13
|
+
"@xylabs/assert": "^2.13.23",
|
|
14
|
+
"@xylabs/exists": "^2.13.23",
|
|
15
|
+
"@xylabs/lodash": "^2.13.23",
|
|
16
|
+
"@xylabs/static-implements": "^2.13.23",
|
|
17
|
+
"@xyo-network/module-model": "^2.86.1",
|
|
18
|
+
"@xyo-network/module-model-mongodb": "~2.83.0",
|
|
19
|
+
"@xyo-network/payload-model": "^2.86.1",
|
|
20
|
+
"@xyo-network/payload-mongodb": "~2.83.0",
|
|
21
|
+
"@xyo-network/sdk-xyo-mongo-js": "~2.83.0",
|
|
21
22
|
"mongodb": "^6.3.0"
|
|
22
23
|
},
|
|
23
|
-
"peerDependencies": {
|
|
24
|
-
"@xyo-network/sdk-xyo-mongo-js": "~2.82.0-rc.1"
|
|
25
|
-
},
|
|
26
|
-
"peerDependenciesMeta": {
|
|
27
|
-
"@xyo-network/sdk-xyo-mongo-js": {
|
|
28
|
-
"optional": true
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
24
|
"devDependencies": {
|
|
32
|
-
"@xylabs/ts-scripts-yarn3": "^3.2.
|
|
33
|
-
"@xylabs/tsconfig": "^3.2.
|
|
34
|
-
"@xyo-network/sdk-xyo-mongo-js": "~2.82.0-rc.1",
|
|
25
|
+
"@xylabs/ts-scripts-yarn3": "^3.2.28",
|
|
26
|
+
"@xylabs/tsconfig": "^3.2.28",
|
|
35
27
|
"fake-indexeddb": "^4.0.2",
|
|
36
|
-
"typescript": "^5.3.
|
|
28
|
+
"typescript": "^5.3.3"
|
|
37
29
|
},
|
|
38
30
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
39
|
-
"docs": "dist/docs.json",
|
|
40
31
|
"types": "dist/node/index.d.ts",
|
|
41
32
|
"exports": {
|
|
42
33
|
".": {
|
|
@@ -52,19 +43,19 @@
|
|
|
52
43
|
},
|
|
53
44
|
"node": {
|
|
54
45
|
"require": {
|
|
55
|
-
"types": "./dist/node/index.d.
|
|
56
|
-
"default": "./dist/node/index.
|
|
46
|
+
"types": "./dist/node/index.d.cts",
|
|
47
|
+
"default": "./dist/node/index.cjs"
|
|
57
48
|
},
|
|
58
49
|
"import": {
|
|
59
50
|
"types": "./dist/node/index.d.mts",
|
|
60
|
-
"default": "./dist/node/index.
|
|
51
|
+
"default": "./dist/node/index.js"
|
|
61
52
|
}
|
|
62
53
|
}
|
|
63
54
|
},
|
|
64
55
|
"./package.json": "./package.json"
|
|
65
56
|
},
|
|
66
|
-
"main": "dist/node/index.
|
|
67
|
-
"module": "dist/node/index.
|
|
57
|
+
"main": "dist/node/index.cjs",
|
|
58
|
+
"module": "dist/node/index.js",
|
|
68
59
|
"homepage": "https://xyo.network",
|
|
69
60
|
"license": "LGPL-3.0-only",
|
|
70
61
|
"publishConfig": {
|
|
@@ -75,6 +66,6 @@
|
|
|
75
66
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
76
67
|
},
|
|
77
68
|
"sideEffects": false,
|
|
78
|
-
"version": "2.
|
|
79
|
-
"
|
|
69
|
+
"version": "2.83.0",
|
|
70
|
+
"type": "module"
|
|
80
71
|
}
|