@xyo-network/sdk-js 3.12.5 → 3.14.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/eslint.config.mjs +1 -1
- package/package.json +23 -21
- package/scripts/run-cycle.mjs +71 -0
- package/packages/modules-mongo/dist/browser/index.mjs +0 -195
- package/packages/modules-mongo/dist/browser/index.mjs.map +0 -1
- package/packages/modules-mongo/dist/neutral/index.mjs +0 -195
- package/packages/modules-mongo/dist/neutral/index.mjs.map +0 -1
- package/packages/modules-mongo/dist/node/index.mjs +0 -195
- package/packages/modules-mongo/dist/node/index.mjs.map +0 -1
- package/packages/modules-mongo/dist/types/Archivist/addArchivistModuleFactories.d.ts +0 -3
- package/packages/modules-mongo/dist/types/Archivist/addArchivistModuleFactories.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Archivist/index.d.ts +0 -2
- package/packages/modules-mongo/dist/types/Archivist/index.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Diviner/addDivinerModuleFactories.d.ts +0 -3
- package/packages/modules-mongo/dist/types/Diviner/addDivinerModuleFactories.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Diviner/index.d.ts +0 -2
- package/packages/modules-mongo/dist/types/Diviner/index.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Job/getJobs.d.ts +0 -4
- package/packages/modules-mongo/dist/types/Job/getJobs.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Job/index.d.ts +0 -2
- package/packages/modules-mongo/dist/types/Job/index.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/JobQueue/JobQueueContainerModule.d.ts +0 -3
- package/packages/modules-mongo/dist/types/JobQueue/JobQueueContainerModule.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/JobQueue/getJobQueue.d.ts +0 -3
- package/packages/modules-mongo/dist/types/JobQueue/getJobQueue.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/JobQueue/getName.d.ts +0 -2
- package/packages/modules-mongo/dist/types/JobQueue/getName.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/JobQueue/index.d.ts +0 -2
- package/packages/modules-mongo/dist/types/JobQueue/index.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Mongo/AddressInfo.d.ts +0 -6
- package/packages/modules-mongo/dist/types/Mongo/AddressInfo.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Mongo/Indexes/IndexCreationInfo.d.ts +0 -3
- package/packages/modules-mongo/dist/types/Mongo/Indexes/IndexCreationInfo.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Mongo/Indexes/Specifications/AddressInfo/UX_address.d.ts +0 -3
- package/packages/modules-mongo/dist/types/Mongo/Indexes/Specifications/AddressInfo/UX_address.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Mongo/Indexes/Specifications/AddressInfo/index.d.ts +0 -3
- package/packages/modules-mongo/dist/types/Mongo/Indexes/Specifications/AddressInfo/index.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Mongo/Indexes/Specifications/index.d.ts +0 -2
- package/packages/modules-mongo/dist/types/Mongo/Indexes/Specifications/index.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Mongo/Indexes/addIndexes.d.ts +0 -2
- package/packages/modules-mongo/dist/types/Mongo/Indexes/addIndexes.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Mongo/Indexes/index.d.ts +0 -2
- package/packages/modules-mongo/dist/types/Mongo/Indexes/index.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Mongo/index.d.ts +0 -3
- package/packages/modules-mongo/dist/types/Mongo/index.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/Mongo/initializeDatabase.d.ts +0 -2
- package/packages/modules-mongo/dist/types/Mongo/initializeDatabase.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/PreviousHashStore/MongoDBPreviousHashStore.d.ts +0 -12
- package/packages/modules-mongo/dist/types/PreviousHashStore/MongoDBPreviousHashStore.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/PreviousHashStore/addPreviousHashStore.d.ts +0 -2
- package/packages/modules-mongo/dist/types/PreviousHashStore/addPreviousHashStore.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/PreviousHashStore/index.d.ts +0 -2
- package/packages/modules-mongo/dist/types/PreviousHashStore/index.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/addMongoModules.d.ts +0 -3
- package/packages/modules-mongo/dist/types/addMongoModules.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/canAddMongoModules.d.ts +0 -2
- package/packages/modules-mongo/dist/types/canAddMongoModules.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/index.d.ts +0 -4
- package/packages/modules-mongo/dist/types/index.d.ts.map +0 -1
- package/packages/modules-mongo/dist/types/mongoTypes.d.ts +0 -5
- package/packages/modules-mongo/dist/types/mongoTypes.d.ts.map +0 -1
- package/packages/modules-mongo/packages/archivist/dist/browser/index.mjs +0 -274
- package/packages/modules-mongo/packages/archivist/dist/browser/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/archivist/dist/neutral/index.mjs +0 -274
- package/packages/modules-mongo/packages/archivist/dist/neutral/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/archivist/dist/node/index.mjs +0 -274
- package/packages/modules-mongo/packages/archivist/dist/node/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/archivist/dist/types/Archivist.d.ts +0 -69
- package/packages/modules-mongo/packages/archivist/dist/types/Archivist.d.ts.map +0 -1
- package/packages/modules-mongo/packages/archivist/dist/types/ArchivistV2.d.ts +0 -65
- package/packages/modules-mongo/packages/archivist/dist/types/ArchivistV2.d.ts.map +0 -1
- package/packages/modules-mongo/packages/archivist/dist/types/index.d.ts +0 -4
- package/packages/modules-mongo/packages/archivist/dist/types/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/archivist/dist/types/lib/index.d.ts +0 -2
- package/packages/modules-mongo/packages/archivist/dist/types/lib/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/archivist/dist/types/lib/validByType.d.ts +0 -4
- package/packages/modules-mongo/packages/archivist/dist/types/lib/validByType.d.ts.map +0 -1
- package/packages/modules-mongo/packages/archivist/packages/model/dist/browser/index.mjs +0 -6
- package/packages/modules-mongo/packages/archivist/packages/model/dist/browser/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/archivist/packages/model/dist/neutral/index.mjs +0 -6
- package/packages/modules-mongo/packages/archivist/packages/model/dist/neutral/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/archivist/packages/model/dist/node/index.mjs +0 -6
- package/packages/modules-mongo/packages/archivist/packages/model/dist/node/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Config.d.ts +0 -9
- package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Config.d.ts.map +0 -1
- package/packages/modules-mongo/packages/archivist/packages/model/dist/types/ConfigV2.d.ts +0 -8
- package/packages/modules-mongo/packages/archivist/packages/model/dist/types/ConfigV2.d.ts.map +0 -1
- package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Labels.d.ts +0 -5
- package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Labels.d.ts.map +0 -1
- package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Params.d.ts +0 -9
- package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Params.d.ts.map +0 -1
- package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Schema.d.ts +0 -3
- package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Schema.d.ts.map +0 -1
- package/packages/modules-mongo/packages/archivist/packages/model/dist/types/index.d.ts +0 -5
- package/packages/modules-mongo/packages/archivist/packages/model/dist/types/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/browser/index.mjs +0 -1100
- package/packages/modules-mongo/packages/diviner/dist/browser/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/neutral/index.mjs +0 -1100
- package/packages/modules-mongo/packages/diviner/dist/neutral/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/node/index.mjs +0 -1100
- package/packages/modules-mongo/packages/diviner/dist/node/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/defineJobs.d.ts +0 -3
- package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/defineJobs.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/getName.d.ts +0 -2
- package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/getName.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/index.d.ts +0 -3
- package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/scheduleJobs.d.ts +0 -3
- package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/scheduleJobs.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBAddressHistoryDiviner.d.ts +0 -61
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBAddressHistoryDiviner.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBAddressSpaceBatchDiviner.d.ts +0 -67
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBAddressSpaceBatchDiviner.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBAddressSpaceDiviner.d.ts +0 -57
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBAddressSpaceDiviner.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBBoundWitnessDiviner.d.ts +0 -59
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBBoundWitnessDiviner.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBBoundWitnessStatsDiviner.d.ts +0 -91
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBBoundWitnessStatsDiviner.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBPayloadDiviner.d.ts +0 -57
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBPayloadDiviner.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBPayloadStatsDiviner.d.ts +0 -104
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBPayloadStatsDiviner.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBSchemaListDiviner.d.ts +0 -61
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBSchemaListDiviner.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBSchemaStatsDiviner.d.ts +0 -113
- package/packages/modules-mongo/packages/diviner/dist/types/MongoDBSchemaStatsDiviner.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/SetIterator/BatchSetIterator.d.ts +0 -10
- package/packages/modules-mongo/packages/diviner/dist/types/SetIterator/BatchSetIterator.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/SetIterator/SetIterator.d.ts +0 -9
- package/packages/modules-mongo/packages/diviner/dist/types/SetIterator/SetIterator.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/SetIterator/index.d.ts +0 -3
- package/packages/modules-mongo/packages/diviner/dist/types/SetIterator/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/UserLocationsDiviner.d.ts +0 -41
- package/packages/modules-mongo/packages/diviner/dist/types/UserLocationsDiviner.d.ts.map +0 -1
- package/packages/modules-mongo/packages/diviner/dist/types/index.d.ts +0 -12
- package/packages/modules-mongo/packages/diviner/dist/types/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/dist/browser/index.mjs +0 -4
- package/packages/modules-mongo/packages/module/dist/browser/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/module/dist/neutral/index.mjs +0 -4
- package/packages/modules-mongo/packages/module/dist/neutral/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/module/dist/node/index.mjs +0 -4
- package/packages/modules-mongo/packages/module/dist/node/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/module/dist/types/index.d.ts +0 -3
- package/packages/modules-mongo/packages/module/dist/types/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/browser/index.mjs +0 -277
- package/packages/modules-mongo/packages/module/packages/abstract/dist/browser/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/neutral/index.mjs +0 -277
- package/packages/modules-mongo/packages/module/packages/abstract/dist/neutral/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/node/index.mjs +0 -277
- package/packages/modules-mongo/packages/module/packages/abstract/dist/node/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/AnyAbstractModule.d.ts +0 -4
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/AnyAbstractModule.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Collections.d.ts +0 -9
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Collections.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Databases.d.ts +0 -4
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Databases.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Defaults.d.ts +0 -5
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Defaults.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/IndexDescription.d.ts +0 -24
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/IndexDescription.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Indexes/CollectionIndexFunction.d.ts +0 -3
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Indexes/CollectionIndexFunction.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Indexes/index.d.ts +0 -2
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Indexes/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Module.d.ts +0 -42
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Module.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/ModuleV2.d.ts +0 -39
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/ModuleV2.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/getBaseMongoSdk.d.ts +0 -6
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/getBaseMongoSdk.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/getMongoDBConfig.d.ts +0 -5
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/getMongoDBConfig.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/hasMongoDBConfig.d.ts +0 -2
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/hasMongoDBConfig.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/index.d.ts +0 -4
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/index.d.ts +0 -10
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/util/dbProperty.d.ts +0 -4
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/util/dbProperty.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/util/index.d.ts +0 -2
- package/packages/modules-mongo/packages/module/packages/abstract/dist/types/util/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/model/dist/browser/index.mjs +0 -10
- package/packages/modules-mongo/packages/module/packages/model/dist/browser/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/module/packages/model/dist/neutral/index.mjs +0 -10
- package/packages/modules-mongo/packages/module/packages/model/dist/neutral/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/module/packages/model/dist/node/index.mjs +0 -10
- package/packages/modules-mongo/packages/module/packages/model/dist/node/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/module/packages/model/dist/types/Config.d.ts +0 -9
- package/packages/modules-mongo/packages/module/packages/model/dist/types/Config.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/model/dist/types/ConfigV2.d.ts +0 -8
- package/packages/modules-mongo/packages/module/packages/model/dist/types/ConfigV2.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/model/dist/types/Labels.d.ts +0 -6
- package/packages/modules-mongo/packages/module/packages/model/dist/types/Labels.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/model/dist/types/Module.d.ts +0 -9
- package/packages/modules-mongo/packages/module/packages/model/dist/types/Module.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/model/dist/types/ModuleV2.d.ts +0 -7
- package/packages/modules-mongo/packages/module/packages/model/dist/types/ModuleV2.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/model/dist/types/MongoDBModuleStatic.d.ts +0 -5
- package/packages/modules-mongo/packages/module/packages/model/dist/types/MongoDBModuleStatic.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/model/dist/types/Params.d.ts +0 -10
- package/packages/modules-mongo/packages/module/packages/model/dist/types/Params.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/model/dist/types/ParamsV2.d.ts +0 -9
- package/packages/modules-mongo/packages/module/packages/model/dist/types/ParamsV2.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/model/dist/types/Schema.d.ts +0 -3
- package/packages/modules-mongo/packages/module/packages/model/dist/types/Schema.d.ts.map +0 -1
- package/packages/modules-mongo/packages/module/packages/model/dist/types/index.d.ts +0 -10
- package/packages/modules-mongo/packages/module/packages/model/dist/types/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/payload/dist/browser/index.mjs +0 -51
- package/packages/modules-mongo/packages/payload/dist/browser/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/payload/dist/neutral/index.mjs +0 -51
- package/packages/modules-mongo/packages/payload/dist/neutral/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/payload/dist/node/index.mjs +0 -51
- package/packages/modules-mongo/packages/payload/dist/node/index.mjs.map +0 -1
- package/packages/modules-mongo/packages/payload/dist/types/BoundWitness/BoundWitnessMongoMeta.d.ts +0 -7
- package/packages/modules-mongo/packages/payload/dist/types/BoundWitness/BoundWitnessMongoMeta.d.ts.map +0 -1
- package/packages/modules-mongo/packages/payload/dist/types/BoundWitness/BoundWitnessWithMongoMeta.d.ts +0 -6
- package/packages/modules-mongo/packages/payload/dist/types/BoundWitness/BoundWitnessWithMongoMeta.d.ts.map +0 -1
- package/packages/modules-mongo/packages/payload/dist/types/BoundWitness/index.d.ts +0 -3
- package/packages/modules-mongo/packages/payload/dist/types/BoundWitness/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/payload/dist/types/Mappings/fromDbRepresentation.d.ts +0 -8
- package/packages/modules-mongo/packages/payload/dist/types/Mappings/fromDbRepresentation.d.ts.map +0 -1
- package/packages/modules-mongo/packages/payload/dist/types/Mappings/index.d.ts +0 -3
- package/packages/modules-mongo/packages/payload/dist/types/Mappings/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/payload/dist/types/Mappings/toDbRepresentation.d.ts +0 -8
- package/packages/modules-mongo/packages/payload/dist/types/Mappings/toDbRepresentation.d.ts.map +0 -1
- package/packages/modules-mongo/packages/payload/dist/types/Payload/PayloadMongoMeta.d.ts +0 -11
- package/packages/modules-mongo/packages/payload/dist/types/Payload/PayloadMongoMeta.d.ts.map +0 -1
- package/packages/modules-mongo/packages/payload/dist/types/Payload/PayloadWithMongoMeta.d.ts +0 -5
- package/packages/modules-mongo/packages/payload/dist/types/Payload/PayloadWithMongoMeta.d.ts.map +0 -1
- package/packages/modules-mongo/packages/payload/dist/types/Payload/index.d.ts +0 -3
- package/packages/modules-mongo/packages/payload/dist/types/Payload/index.d.ts.map +0 -1
- package/packages/modules-mongo/packages/payload/dist/types/index.d.ts +0 -4
- package/packages/modules-mongo/packages/payload/dist/types/index.d.ts.map +0 -1
package/eslint.config.mjs
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from '@xylabs/eslint-config-flat'
|
|
9
9
|
|
|
10
10
|
export default [
|
|
11
|
-
{ ignores: ['dist', '**/packages/*/dist', '.yarn', 'node_modules', '**/packages/*/node_modules', 'docs'] },
|
|
11
|
+
{ ignores: ['dist', '**/packages/*/dist', '.yarn', 'node_modules', '**/packages/*/node_modules', 'docs', '.dependency-cruiser.mjs'] },
|
|
12
12
|
unicornConfig,
|
|
13
13
|
workspacesConfig,
|
|
14
14
|
rulesConfig,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/sdk-js",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.14.0",
|
|
4
4
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"build-typedoc-site": "typedoc",
|
|
39
39
|
"compile": "./scripts/clear-scrollback-buffer.sh && yarn xy compile",
|
|
40
40
|
"coverage": "vitest --coverage --watch false",
|
|
41
|
+
"cycle": "node ./scripts/run-cycle.mjs",
|
|
41
42
|
"deploy": "xy deploy",
|
|
42
43
|
"free-3033": "kill -9 $(lsof -t -i :3033)",
|
|
43
44
|
"free-8080": "kill -9 $(lsof -t -i :8080)",
|
|
@@ -47,46 +48,47 @@
|
|
|
47
48
|
"test": "vitest --watch false"
|
|
48
49
|
},
|
|
49
50
|
"resolutions": {
|
|
50
|
-
"@noble/hashes": "^1",
|
|
51
|
+
"@noble/hashes": "^1.6",
|
|
51
52
|
"axios": "^1",
|
|
52
53
|
"ethers": "^6",
|
|
53
54
|
"fake-indexeddb": "^4",
|
|
54
55
|
"quick-lru": "^4"
|
|
55
56
|
},
|
|
56
57
|
"dependencies": {
|
|
57
|
-
"@xyo-network/core-payload-plugins": "^3.
|
|
58
|
-
"@xyo-network/manifest": "^3.
|
|
59
|
-
"@xyo-network/modules": "^3.
|
|
60
|
-
"@xyo-network/protocol": "^3.
|
|
61
|
-
"@xyo-network/sdk-utils": "^3.
|
|
62
|
-
"@xyo-network/shared": "^3.
|
|
58
|
+
"@xyo-network/core-payload-plugins": "^3.14.0",
|
|
59
|
+
"@xyo-network/manifest": "^3.14.0",
|
|
60
|
+
"@xyo-network/modules": "^3.14.0",
|
|
61
|
+
"@xyo-network/protocol": "^3.14.0",
|
|
62
|
+
"@xyo-network/sdk-utils": "^3.14.0",
|
|
63
|
+
"@xyo-network/shared": "^3.14.0"
|
|
63
64
|
},
|
|
64
65
|
"devDependencies": {
|
|
65
|
-
"@firebase/app": "^0.11.
|
|
66
|
-
"@firebase/app-compat": "^0.2.
|
|
66
|
+
"@firebase/app": "^0.11.5",
|
|
67
|
+
"@firebase/app-compat": "^0.2.54",
|
|
67
68
|
"@stylistic/eslint-plugin": "^4.2.0",
|
|
68
69
|
"@types/supertest": "^6.0.3",
|
|
69
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
70
|
-
"@typescript-eslint/parser": "^8.
|
|
71
|
-
"@vitest/coverage-v8": "^3.1.
|
|
72
|
-
"@xylabs/eslint-config-flat": "^6.
|
|
70
|
+
"@typescript-eslint/eslint-plugin": "^8.31.0",
|
|
71
|
+
"@typescript-eslint/parser": "^8.31.0",
|
|
72
|
+
"@vitest/coverage-v8": "^3.1.2",
|
|
73
|
+
"@xylabs/eslint-config-flat": "^6.3.5",
|
|
73
74
|
"@xylabs/forget": "^4.8.7",
|
|
74
|
-
"@xylabs/ts-scripts-yarn3": "^6.
|
|
75
|
-
"@xylabs/tsconfig": "^6.
|
|
75
|
+
"@xylabs/ts-scripts-yarn3": "^6.3.5",
|
|
76
|
+
"@xylabs/tsconfig": "^6.3.5",
|
|
76
77
|
"@xylabs/vitest-extended": "^4.8.7",
|
|
78
|
+
"dependency-cruiser": "^16.10.1",
|
|
77
79
|
"dotenv": "^16.5.0",
|
|
78
|
-
"eslint": "^9.
|
|
79
|
-
"eslint-import-resolver-typescript": "^4.3.
|
|
80
|
+
"eslint": "^9.25.1",
|
|
81
|
+
"eslint-import-resolver-typescript": "^4.3.4",
|
|
80
82
|
"jsdom": "^26.1.0",
|
|
81
83
|
"knip": "^5.50.5",
|
|
82
84
|
"reflect-metadata": "^0.2.2",
|
|
83
85
|
"rimraf": "^6.0.1",
|
|
84
86
|
"supertest": "^7.1.0",
|
|
85
87
|
"tslib": "^2.8.1",
|
|
86
|
-
"typedoc": "^0.28.
|
|
87
|
-
"typedoc-plugin-markdown": "^4.6.
|
|
88
|
+
"typedoc": "^0.28.3",
|
|
89
|
+
"typedoc-plugin-markdown": "^4.6.3",
|
|
88
90
|
"typescript": "^5.8.3",
|
|
89
|
-
"vitest": "^3.1.
|
|
91
|
+
"vitest": "^3.1.2"
|
|
90
92
|
},
|
|
91
93
|
"packageManager": "yarn@4.9.1",
|
|
92
94
|
"volta": {
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { cruise } from 'dependency-cruiser'
|
|
4
|
+
import { spawnSync } from 'node:child_process'
|
|
5
|
+
|
|
6
|
+
export const yarnWorkspaces = () => {
|
|
7
|
+
const result = spawnSync('yarn', ['workspaces', 'list', '--json', '--recursive'], { encoding: 'utf8', shell: true })
|
|
8
|
+
if (result.error) {
|
|
9
|
+
throw result.error
|
|
10
|
+
}
|
|
11
|
+
return (
|
|
12
|
+
result.stdout
|
|
13
|
+
.toString()
|
|
14
|
+
// NOTE: This probably doesn't work on Windows
|
|
15
|
+
// TODO: Replace /r/n with /n first
|
|
16
|
+
.split('\n')
|
|
17
|
+
.slice(0, -1)
|
|
18
|
+
.map((item) => {
|
|
19
|
+
return JSON.parse(item)
|
|
20
|
+
})
|
|
21
|
+
)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export const cycleAll = async () => {
|
|
25
|
+
const pkgName = process.env.npm_package_name
|
|
26
|
+
|
|
27
|
+
const cruiseOptions = {
|
|
28
|
+
ruleSet: {
|
|
29
|
+
forbidden: [
|
|
30
|
+
{
|
|
31
|
+
name: 'no-circular',
|
|
32
|
+
severity: 'error',
|
|
33
|
+
comment: 'This dependency creates a circular reference',
|
|
34
|
+
from: {},
|
|
35
|
+
to: { circular: true },
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
exclude: 'node_modules|packages/.*/packages',
|
|
40
|
+
validate: true,
|
|
41
|
+
doNotFollow: { path: 'node_modules|packages/.*/packages' },
|
|
42
|
+
tsPreCompilationDeps: false,
|
|
43
|
+
combinedDependencies: true,
|
|
44
|
+
outputType: 'err',
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const packages = yarnWorkspaces()
|
|
48
|
+
const targets = packages.map(({ location }) => `${location}/src/**`)
|
|
49
|
+
|
|
50
|
+
console.log('Checking for circular dependencies in packages...')
|
|
51
|
+
|
|
52
|
+
const result = await cruise(targets, cruiseOptions)
|
|
53
|
+
if (result.output) {
|
|
54
|
+
console.log(result.output)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (result.exitCode === 0) {
|
|
58
|
+
console.log(`${pkgName} ✅ No dependency violations`)
|
|
59
|
+
} else {
|
|
60
|
+
console.error(`${pkgName} ❌ Dependency violations found`)
|
|
61
|
+
}
|
|
62
|
+
return result.exitCode
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
cycleAll().then(() => {
|
|
66
|
+
console.log('Exiting with code 0')
|
|
67
|
+
process.exit(0)
|
|
68
|
+
}).catch((error) => {
|
|
69
|
+
console.error('Error while checking for circular dependencies:', error)
|
|
70
|
+
process.exit(1)
|
|
71
|
+
})
|
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
// src/Archivist/addArchivistModuleFactories.ts
|
|
2
|
-
import { MongoDBArchivist } from "@xyo-network/archivist-mongodb";
|
|
3
|
-
import { TYPES } from "@xyo-network/node-core-types";
|
|
4
|
-
var addArchivistModuleFactories = (container) => {
|
|
5
|
-
const locator = container.get(TYPES.ModuleFactoryLocator);
|
|
6
|
-
locator.register(MongoDBArchivist);
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
// src/Diviner/addDivinerModuleFactories.ts
|
|
10
|
-
import {
|
|
11
|
-
MongoDBAddressHistoryDiviner,
|
|
12
|
-
MongoDBBoundWitnessDiviner,
|
|
13
|
-
MongoDBBoundWitnessStatsDiviner,
|
|
14
|
-
MongoDBPayloadDiviner,
|
|
15
|
-
MongoDBPayloadStatsDiviner,
|
|
16
|
-
MongoDBSchemaListDiviner,
|
|
17
|
-
MongoDBSchemaStatsDiviner
|
|
18
|
-
} from "@xyo-network/diviner-mongodb";
|
|
19
|
-
import { ModuleFactory } from "@xyo-network/module-model";
|
|
20
|
-
import { TYPES as TYPES2 } from "@xyo-network/node-core-types";
|
|
21
|
-
var getMongoDBBoundWitnessStatsDiviner = (container) => {
|
|
22
|
-
const jobQueue = container.get(TYPES2.JobQueue);
|
|
23
|
-
const schema = MongoDBBoundWitnessStatsDiviner.defaultConfigSchema;
|
|
24
|
-
const params = { config: { schema }, jobQueue };
|
|
25
|
-
return ModuleFactory.withParams(MongoDBBoundWitnessStatsDiviner, params);
|
|
26
|
-
};
|
|
27
|
-
var getMongoDBPayloadStatsDiviner = (container) => {
|
|
28
|
-
const jobQueue = container.get(TYPES2.JobQueue);
|
|
29
|
-
const schema = MongoDBPayloadStatsDiviner.defaultConfigSchema;
|
|
30
|
-
const params = { config: { schema }, jobQueue };
|
|
31
|
-
return ModuleFactory.withParams(MongoDBPayloadStatsDiviner, params);
|
|
32
|
-
};
|
|
33
|
-
var getMongoDBSchemaStatsDiviner = (container) => {
|
|
34
|
-
const jobQueue = container.get(TYPES2.JobQueue);
|
|
35
|
-
const schema = MongoDBSchemaStatsDiviner.defaultConfigSchema;
|
|
36
|
-
const params = { config: { schema }, jobQueue };
|
|
37
|
-
return ModuleFactory.withParams(MongoDBSchemaStatsDiviner, params);
|
|
38
|
-
};
|
|
39
|
-
var addDivinerModuleFactories = (container) => {
|
|
40
|
-
const locator = container.get(TYPES2.ModuleFactoryLocator);
|
|
41
|
-
locator.register(MongoDBAddressHistoryDiviner);
|
|
42
|
-
locator.register(MongoDBBoundWitnessDiviner);
|
|
43
|
-
locator.register(getMongoDBBoundWitnessStatsDiviner(container));
|
|
44
|
-
locator.register(MongoDBPayloadDiviner);
|
|
45
|
-
locator.register(getMongoDBPayloadStatsDiviner(container));
|
|
46
|
-
locator.register(MongoDBSchemaListDiviner);
|
|
47
|
-
locator.register(getMongoDBSchemaStatsDiviner(container));
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
// src/JobQueue/JobQueueContainerModule.ts
|
|
51
|
-
import { TYPES as TYPES3 } from "@xyo-network/node-core-types";
|
|
52
|
-
import { ContainerModule } from "inversify";
|
|
53
|
-
|
|
54
|
-
// src/JobQueue/getJobQueue.ts
|
|
55
|
-
import { assertEx } from "@xylabs/assert";
|
|
56
|
-
import { Agenda } from "agenda";
|
|
57
|
-
|
|
58
|
-
// src/JobQueue/getName.ts
|
|
59
|
-
import { v4 as uuid } from "uuid";
|
|
60
|
-
var getName = () => {
|
|
61
|
-
return uuid();
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
// src/JobQueue/getJobQueue.ts
|
|
65
|
-
var collection = "node";
|
|
66
|
-
var dbName = "job";
|
|
67
|
-
var isLocalhost = (domain) => {
|
|
68
|
-
const d = domain.toLowerCase();
|
|
69
|
-
return d.includes("127.0.0.1") || d.includes("localhost");
|
|
70
|
-
};
|
|
71
|
-
var getJobQueue = () => {
|
|
72
|
-
const dbDomain = assertEx(process.env.MONGO_DOMAIN, () => "Missing Mongo Domain");
|
|
73
|
-
const dbPassword = assertEx(process.env.MONGO_PASSWORD, () => "Missing Mongo Password");
|
|
74
|
-
const dbUserName = assertEx(process.env.MONGO_USERNAME, () => "Missing Mongo Username");
|
|
75
|
-
const address = isLocalhost(dbDomain) ? `mongodb://${dbUserName}:${dbPassword}@${dbDomain}/${dbName}?authSource=admin` : `mongodb+srv://${dbUserName}:${dbPassword}@${dbDomain}.mongodb.net/${dbName}?authSource=admin`;
|
|
76
|
-
const db = { address, collection };
|
|
77
|
-
const name = getName();
|
|
78
|
-
const jobQueue = new Agenda({ db, name });
|
|
79
|
-
const jobProcessingInterval = process.env.JOB_PROCESSING_INTERVAL || "20 seconds";
|
|
80
|
-
jobQueue.processEvery(jobProcessingInterval);
|
|
81
|
-
return jobQueue;
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
// src/JobQueue/JobQueueContainerModule.ts
|
|
85
|
-
var JobQueueContainerModule = new ContainerModule((bind) => {
|
|
86
|
-
bind(TYPES3.JobQueue).toConstantValue(getJobQueue());
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
// src/Mongo/Indexes/addIndexes.ts
|
|
90
|
-
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
91
|
-
import { DATABASES, getMongoDBConfig } from "@xyo-network/module-abstract-mongodb";
|
|
92
|
-
import { MongoClient, WriteConcern } from "mongodb";
|
|
93
|
-
|
|
94
|
-
// src/Mongo/Indexes/Specifications/AddressInfo/UX_address.ts
|
|
95
|
-
import { COLLECTIONS } from "@xyo-network/module-abstract-mongodb";
|
|
96
|
-
var UX_address = {
|
|
97
|
-
key: { address: 1 },
|
|
98
|
-
name: `${COLLECTIONS.AddressInfo}.UX_address`,
|
|
99
|
-
unique: true
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
// src/Mongo/Indexes/Specifications/AddressInfo/index.ts
|
|
103
|
-
var AddressInfoIndexes = [UX_address];
|
|
104
|
-
|
|
105
|
-
// src/Mongo/Indexes/addIndexes.ts
|
|
106
|
-
var indexesByCollection = {
|
|
107
|
-
// TODO: This collection can be removed once MongoDBPreviousHashStore
|
|
108
|
-
// has a way of bootstrapping itself with indexes like our modules do
|
|
109
|
-
address_info: AddressInfoIndexes
|
|
110
|
-
};
|
|
111
|
-
var oneMinute = 60 * 1e3;
|
|
112
|
-
var getMongoClientForIndexCreation = () => {
|
|
113
|
-
const env = getMongoDBConfig();
|
|
114
|
-
const uri = assertEx2(env.MONGO_CONNECTION_STRING);
|
|
115
|
-
const client = new MongoClient(uri, {
|
|
116
|
-
connectTimeoutMS: oneMinute,
|
|
117
|
-
maxIdleTimeMS: oneMinute,
|
|
118
|
-
serverSelectionTimeoutMS: oneMinute,
|
|
119
|
-
socketTimeoutMS: oneMinute,
|
|
120
|
-
waitQueueTimeoutMS: oneMinute,
|
|
121
|
-
writeConcern: new WriteConcern(1)
|
|
122
|
-
});
|
|
123
|
-
return client;
|
|
124
|
-
};
|
|
125
|
-
var addIndexes = async () => {
|
|
126
|
-
const client = getMongoClientForIndexCreation();
|
|
127
|
-
try {
|
|
128
|
-
for (const [collection2, indexSpecs] of Object.entries(indexesByCollection)) {
|
|
129
|
-
if (indexSpecs.length > 0) {
|
|
130
|
-
try {
|
|
131
|
-
await client.db(DATABASES.Archivist).collection(collection2).createIndexes(indexSpecs);
|
|
132
|
-
} catch (error) {
|
|
133
|
-
console.log(error);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
} finally {
|
|
138
|
-
await client.close(true);
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
// src/Mongo/initializeDatabase.ts
|
|
143
|
-
var initializeDatabase = async () => {
|
|
144
|
-
await addIndexes();
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
// src/PreviousHashStore/addPreviousHashStore.ts
|
|
148
|
-
import { Account } from "@xyo-network/account";
|
|
149
|
-
import { COLLECTIONS as COLLECTIONS2, getBaseMongoSdk } from "@xyo-network/module-abstract-mongodb";
|
|
150
|
-
|
|
151
|
-
// src/PreviousHashStore/MongoDBPreviousHashStore.ts
|
|
152
|
-
var MongoDBPreviousHashStore = class {
|
|
153
|
-
constructor(addressInfoSdk) {
|
|
154
|
-
this.addressInfoSdk = addressInfoSdk;
|
|
155
|
-
}
|
|
156
|
-
async getItem(address) {
|
|
157
|
-
const value = await this.addressInfoSdk.findOne({ address });
|
|
158
|
-
return value?.previousHash ?? null;
|
|
159
|
-
}
|
|
160
|
-
async removeItem(address) {
|
|
161
|
-
await this.addressInfoSdk.deleteOne({ address });
|
|
162
|
-
}
|
|
163
|
-
async setItem(address, previousHash) {
|
|
164
|
-
await this.addressInfoSdk.upsertOne({ address }, { $set: { previousHash } });
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
// src/PreviousHashStore/addPreviousHashStore.ts
|
|
169
|
-
var addPreviousHashStore = () => {
|
|
170
|
-
if (process.env.STORE_PREVIOUS_HASH) {
|
|
171
|
-
const store = new MongoDBPreviousHashStore(getBaseMongoSdk(COLLECTIONS2.AddressInfo));
|
|
172
|
-
Account.previousHashStore = store;
|
|
173
|
-
}
|
|
174
|
-
};
|
|
175
|
-
|
|
176
|
-
// src/addMongoModules.ts
|
|
177
|
-
var addMongoModules = async (container) => {
|
|
178
|
-
await initializeDatabase();
|
|
179
|
-
void container.load(JobQueueContainerModule);
|
|
180
|
-
addArchivistModuleFactories(container);
|
|
181
|
-
addDivinerModuleFactories(container);
|
|
182
|
-
addPreviousHashStore();
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
// src/canAddMongoModules.ts
|
|
186
|
-
import { hasMongoDBConfig } from "@xyo-network/module-abstract-mongodb";
|
|
187
|
-
var canAddMongoModules = () => {
|
|
188
|
-
return hasMongoDBConfig();
|
|
189
|
-
};
|
|
190
|
-
export {
|
|
191
|
-
addDivinerModuleFactories,
|
|
192
|
-
addMongoModules,
|
|
193
|
-
canAddMongoModules
|
|
194
|
-
};
|
|
195
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Archivist/addArchivistModuleFactories.ts","../../src/Diviner/addDivinerModuleFactories.ts","../../src/JobQueue/JobQueueContainerModule.ts","../../src/JobQueue/getJobQueue.ts","../../src/JobQueue/getName.ts","../../src/Mongo/Indexes/addIndexes.ts","../../src/Mongo/Indexes/Specifications/AddressInfo/UX_address.ts","../../src/Mongo/Indexes/Specifications/AddressInfo/index.ts","../../src/Mongo/initializeDatabase.ts","../../src/PreviousHashStore/addPreviousHashStore.ts","../../src/PreviousHashStore/MongoDBPreviousHashStore.ts","../../src/addMongoModules.ts","../../src/canAddMongoModules.ts"],"sourcesContent":["import { MongoDBArchivist } from '@xyo-network/archivist-mongodb'\nimport type { ModuleFactoryLocator } from '@xyo-network/module-factory-locator'\nimport { TYPES } from '@xyo-network/node-core-types'\nimport type { Container } from 'inversify'\n\nexport const addArchivistModuleFactories = (container: Container) => {\n const locator = container.get<ModuleFactoryLocator>(TYPES.ModuleFactoryLocator)\n locator.register(MongoDBArchivist)\n}\n","import {\n MongoDBAddressHistoryDiviner,\n MongoDBBoundWitnessDiviner,\n MongoDBBoundWitnessStatsDiviner,\n MongoDBPayloadDiviner,\n MongoDBPayloadStatsDiviner,\n MongoDBSchemaListDiviner,\n MongoDBSchemaStatsDiviner,\n} from '@xyo-network/diviner-mongodb'\nimport type { ModuleFactoryLocator } from '@xyo-network/module-factory-locator'\nimport { ModuleFactory } from '@xyo-network/module-model'\nimport type { MongoDBModuleParams } from '@xyo-network/module-model-mongodb'\nimport type { JobQueue } from '@xyo-network/node-core-model'\nimport { TYPES } from '@xyo-network/node-core-types'\nimport type { Container } from 'inversify'\n\nconst getMongoDBBoundWitnessStatsDiviner = (container: Container) => {\n const jobQueue = container.get<JobQueue>(TYPES.JobQueue)\n const schema = MongoDBBoundWitnessStatsDiviner.defaultConfigSchema\n const params: MongoDBModuleParams = { config: { schema }, jobQueue }\n return ModuleFactory.withParams(MongoDBBoundWitnessStatsDiviner, params)\n}\nconst getMongoDBPayloadStatsDiviner = (container: Container) => {\n const jobQueue = container.get<JobQueue>(TYPES.JobQueue)\n const schema = MongoDBPayloadStatsDiviner.defaultConfigSchema\n const params: MongoDBModuleParams = { config: { schema }, jobQueue }\n return ModuleFactory.withParams(MongoDBPayloadStatsDiviner, params)\n}\nconst getMongoDBSchemaStatsDiviner = (container: Container) => {\n const jobQueue = container.get<JobQueue>(TYPES.JobQueue)\n const schema = MongoDBSchemaStatsDiviner.defaultConfigSchema\n const params: MongoDBModuleParams = { config: { schema }, jobQueue }\n return ModuleFactory.withParams(MongoDBSchemaStatsDiviner, params)\n}\n\nexport const addDivinerModuleFactories = (container: Container) => {\n const locator = container.get<ModuleFactoryLocator>(TYPES.ModuleFactoryLocator)\n locator.register(MongoDBAddressHistoryDiviner)\n // locator.register(MongoDBAddressSpaceDiviner)\n // locator.register(MongoDBAddressSpaceBatchDiviner)\n locator.register(MongoDBBoundWitnessDiviner)\n locator.register(getMongoDBBoundWitnessStatsDiviner(container))\n locator.register(MongoDBPayloadDiviner)\n locator.register(getMongoDBPayloadStatsDiviner(container))\n locator.register(MongoDBSchemaListDiviner)\n locator.register(getMongoDBSchemaStatsDiviner(container))\n}\n","import type { JobQueue } from '@xyo-network/node-core-model'\nimport { TYPES } from '@xyo-network/node-core-types'\nimport type { interfaces } from 'inversify'\nimport { ContainerModule } from 'inversify'\n\nimport { getJobQueue } from './getJobQueue.js'\n\nexport const JobQueueContainerModule = new ContainerModule((bind: interfaces.Bind) => {\n bind<JobQueue>(TYPES.JobQueue).toConstantValue(getJobQueue())\n})\n","import { assertEx } from '@xylabs/assert'\nimport type { JobQueue } from '@xyo-network/node-core-model'\nimport { Agenda } from 'agenda'\n\nimport { getName } from './getName.js'\n\n/**\n * Collection to use for managing jobs\n */\nconst collection = 'node'\n\n/**\n * DB to use for managing jobs\n */\nconst dbName = 'job'\n\nconst isLocalhost = (domain: string) => {\n const d = domain.toLowerCase()\n return d.includes('127.0.0.1') || d.includes('localhost')\n}\n\nexport const getJobQueue = (): JobQueue => {\n const dbDomain = assertEx(process.env.MONGO_DOMAIN, () => 'Missing Mongo Domain')\n const dbPassword = assertEx(process.env.MONGO_PASSWORD, () => 'Missing Mongo Password')\n const dbUserName = assertEx(process.env.MONGO_USERNAME, () => 'Missing Mongo Username')\n // TODO: Temp fix to match current ENV VAR format\n const address\n = isLocalhost(dbDomain)\n ? `mongodb://${dbUserName}:${dbPassword}@${dbDomain}/${dbName}?authSource=admin`\n : `mongodb+srv://${dbUserName}:${dbPassword}@${dbDomain}.mongodb.net/${dbName}?authSource=admin`\n const db = { address, collection }\n const name = getName()\n const jobQueue = new Agenda({ db, name })\n\n // TODO: Depends on minimum job interval, set to 20 seconds for\n // default since we should never be running jobs faster than every minute\n const jobProcessingInterval = process.env.JOB_PROCESSING_INTERVAL || '20 seconds'\n jobQueue.processEvery(jobProcessingInterval)\n\n return jobQueue\n}\n","import { v4 as uuid } from 'uuid'\n\n// TODO: When running in AWS use Task Metadata Endpoint to get Task ID\n// https://docs.aws.amazon.com/AmazonECS/latest/userguide/task-metadata-endpoint-v4-fargate.html\nexport const getName = (): string => {\n return uuid()\n}\n","import { assertEx } from '@xylabs/assert'\nimport { DATABASES, getMongoDBConfig } from '@xyo-network/module-abstract-mongodb'\nimport type { IndexDescription } from 'mongodb'\nimport { MongoClient, WriteConcern } from 'mongodb'\n\nimport { AddressInfoIndexes } from './Specifications/index.js'\n\nconst indexesByCollection: Record<string, IndexDescription[]> = {\n // TODO: This collection can be removed once MongoDBPreviousHashStore\n // has a way of bootstrapping itself with indexes like our modules do\n address_info: AddressInfoIndexes,\n}\n\nconst oneMinute = 60 * 1000\n\nconst getMongoClientForIndexCreation = () => {\n const env = getMongoDBConfig()\n const uri = assertEx(env.MONGO_CONNECTION_STRING)\n const client: MongoClient = new MongoClient(uri, {\n connectTimeoutMS: oneMinute,\n maxIdleTimeMS: oneMinute,\n serverSelectionTimeoutMS: oneMinute,\n socketTimeoutMS: oneMinute,\n waitQueueTimeoutMS: oneMinute,\n writeConcern: new WriteConcern(1),\n })\n return client\n}\n\n// TODO: Use injected client. However, we control\n// timeout and relevant params for index creation\n// with this client.\nexport const addIndexes = async () => {\n // Create the required indexes\n const client = getMongoClientForIndexCreation()\n try {\n for (const [collection, indexSpecs] of Object.entries(indexesByCollection)) {\n if (indexSpecs.length > 0) {\n try {\n await client.db(DATABASES.Archivist).collection(collection).createIndexes(indexSpecs)\n } catch (error) {\n console.log(error)\n }\n }\n }\n } finally {\n await client.close(true)\n }\n}\n","import { COLLECTIONS } from '@xyo-network/module-abstract-mongodb'\nimport type { IndexDescription } from 'mongodb'\n\nexport const UX_address: IndexDescription = {\n key: { address: 1 },\n name: `${COLLECTIONS.AddressInfo}.UX_address`,\n unique: true,\n}\n","import type { IndexDescription } from 'mongodb'\n\nimport { UX_address } from './UX_address.js'\n\nexport const AddressInfoIndexes: IndexDescription[] = [UX_address]\n","import { addIndexes } from './Indexes/index.js'\n\nexport const initializeDatabase = async () => {\n await addIndexes()\n}\n","import { Account } from '@xyo-network/account'\nimport { COLLECTIONS, getBaseMongoSdk } from '@xyo-network/module-abstract-mongodb'\n\nimport type { AddressInfo } from '../Mongo/index.js'\nimport { MongoDBPreviousHashStore } from './MongoDBPreviousHashStore.js'\n\nexport const addPreviousHashStore = () => {\n if (process.env.STORE_PREVIOUS_HASH) {\n const store = new MongoDBPreviousHashStore(getBaseMongoSdk<AddressInfo>(COLLECTIONS.AddressInfo))\n Account.previousHashStore = store\n }\n}\n","import type { Address, Hash } from '@xylabs/hex'\nimport type { BaseMongoSdk } from '@xylabs/mongo'\nimport type { PreviousHashStore } from '@xyo-network/previous-hash-store-model'\n\nimport type { AddressInfo } from '../Mongo/index.js'\n\nexport class MongoDBPreviousHashStore implements PreviousHashStore {\n constructor(protected readonly addressInfoSdk: BaseMongoSdk<AddressInfo>) {}\n\n async getItem(address: Address): Promise<Hash | null> {\n const value = await this.addressInfoSdk.findOne({ address })\n return value?.previousHash ?? null\n }\n\n async removeItem(address: Address): Promise<void> {\n await this.addressInfoSdk.deleteOne({ address })\n }\n\n async setItem(address: Address, previousHash: Hash): Promise<void> {\n await this.addressInfoSdk.upsertOne({ address }, { $set: { previousHash } })\n }\n}\n","import type { Container } from 'inversify'\n\nimport { addArchivistModuleFactories } from './Archivist/index.js'\nimport { addDivinerModuleFactories } from './Diviner/index.js'\nimport { JobQueueContainerModule } from './JobQueue/index.js'\nimport { initializeDatabase } from './Mongo/index.js'\nimport { addPreviousHashStore } from './PreviousHashStore/index.js'\n\nexport const addMongoModules = async (container: Container) => {\n await initializeDatabase()\n void container.load(JobQueueContainerModule)\n addArchivistModuleFactories(container)\n addDivinerModuleFactories(container)\n addPreviousHashStore()\n}\n","import { hasMongoDBConfig } from '@xyo-network/module-abstract-mongodb'\n\nexport const canAddMongoModules = (): boolean => {\n return hasMongoDBConfig()\n}\n"],"mappings":"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","names":["TYPES","TYPES","TYPES","assertEx","assertEx","collection","COLLECTIONS","COLLECTIONS"]}
|
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
// src/Archivist/addArchivistModuleFactories.ts
|
|
2
|
-
import { MongoDBArchivist } from "@xyo-network/archivist-mongodb";
|
|
3
|
-
import { TYPES } from "@xyo-network/node-core-types";
|
|
4
|
-
var addArchivistModuleFactories = (container) => {
|
|
5
|
-
const locator = container.get(TYPES.ModuleFactoryLocator);
|
|
6
|
-
locator.register(MongoDBArchivist);
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
// src/Diviner/addDivinerModuleFactories.ts
|
|
10
|
-
import {
|
|
11
|
-
MongoDBAddressHistoryDiviner,
|
|
12
|
-
MongoDBBoundWitnessDiviner,
|
|
13
|
-
MongoDBBoundWitnessStatsDiviner,
|
|
14
|
-
MongoDBPayloadDiviner,
|
|
15
|
-
MongoDBPayloadStatsDiviner,
|
|
16
|
-
MongoDBSchemaListDiviner,
|
|
17
|
-
MongoDBSchemaStatsDiviner
|
|
18
|
-
} from "@xyo-network/diviner-mongodb";
|
|
19
|
-
import { ModuleFactory } from "@xyo-network/module-model";
|
|
20
|
-
import { TYPES as TYPES2 } from "@xyo-network/node-core-types";
|
|
21
|
-
var getMongoDBBoundWitnessStatsDiviner = (container) => {
|
|
22
|
-
const jobQueue = container.get(TYPES2.JobQueue);
|
|
23
|
-
const schema = MongoDBBoundWitnessStatsDiviner.defaultConfigSchema;
|
|
24
|
-
const params = { config: { schema }, jobQueue };
|
|
25
|
-
return ModuleFactory.withParams(MongoDBBoundWitnessStatsDiviner, params);
|
|
26
|
-
};
|
|
27
|
-
var getMongoDBPayloadStatsDiviner = (container) => {
|
|
28
|
-
const jobQueue = container.get(TYPES2.JobQueue);
|
|
29
|
-
const schema = MongoDBPayloadStatsDiviner.defaultConfigSchema;
|
|
30
|
-
const params = { config: { schema }, jobQueue };
|
|
31
|
-
return ModuleFactory.withParams(MongoDBPayloadStatsDiviner, params);
|
|
32
|
-
};
|
|
33
|
-
var getMongoDBSchemaStatsDiviner = (container) => {
|
|
34
|
-
const jobQueue = container.get(TYPES2.JobQueue);
|
|
35
|
-
const schema = MongoDBSchemaStatsDiviner.defaultConfigSchema;
|
|
36
|
-
const params = { config: { schema }, jobQueue };
|
|
37
|
-
return ModuleFactory.withParams(MongoDBSchemaStatsDiviner, params);
|
|
38
|
-
};
|
|
39
|
-
var addDivinerModuleFactories = (container) => {
|
|
40
|
-
const locator = container.get(TYPES2.ModuleFactoryLocator);
|
|
41
|
-
locator.register(MongoDBAddressHistoryDiviner);
|
|
42
|
-
locator.register(MongoDBBoundWitnessDiviner);
|
|
43
|
-
locator.register(getMongoDBBoundWitnessStatsDiviner(container));
|
|
44
|
-
locator.register(MongoDBPayloadDiviner);
|
|
45
|
-
locator.register(getMongoDBPayloadStatsDiviner(container));
|
|
46
|
-
locator.register(MongoDBSchemaListDiviner);
|
|
47
|
-
locator.register(getMongoDBSchemaStatsDiviner(container));
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
// src/JobQueue/JobQueueContainerModule.ts
|
|
51
|
-
import { TYPES as TYPES3 } from "@xyo-network/node-core-types";
|
|
52
|
-
import { ContainerModule } from "inversify";
|
|
53
|
-
|
|
54
|
-
// src/JobQueue/getJobQueue.ts
|
|
55
|
-
import { assertEx } from "@xylabs/assert";
|
|
56
|
-
import { Agenda } from "agenda";
|
|
57
|
-
|
|
58
|
-
// src/JobQueue/getName.ts
|
|
59
|
-
import { v4 as uuid } from "uuid";
|
|
60
|
-
var getName = () => {
|
|
61
|
-
return uuid();
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
// src/JobQueue/getJobQueue.ts
|
|
65
|
-
var collection = "node";
|
|
66
|
-
var dbName = "job";
|
|
67
|
-
var isLocalhost = (domain) => {
|
|
68
|
-
const d = domain.toLowerCase();
|
|
69
|
-
return d.includes("127.0.0.1") || d.includes("localhost");
|
|
70
|
-
};
|
|
71
|
-
var getJobQueue = () => {
|
|
72
|
-
const dbDomain = assertEx(process.env.MONGO_DOMAIN, () => "Missing Mongo Domain");
|
|
73
|
-
const dbPassword = assertEx(process.env.MONGO_PASSWORD, () => "Missing Mongo Password");
|
|
74
|
-
const dbUserName = assertEx(process.env.MONGO_USERNAME, () => "Missing Mongo Username");
|
|
75
|
-
const address = isLocalhost(dbDomain) ? `mongodb://${dbUserName}:${dbPassword}@${dbDomain}/${dbName}?authSource=admin` : `mongodb+srv://${dbUserName}:${dbPassword}@${dbDomain}.mongodb.net/${dbName}?authSource=admin`;
|
|
76
|
-
const db = { address, collection };
|
|
77
|
-
const name = getName();
|
|
78
|
-
const jobQueue = new Agenda({ db, name });
|
|
79
|
-
const jobProcessingInterval = process.env.JOB_PROCESSING_INTERVAL || "20 seconds";
|
|
80
|
-
jobQueue.processEvery(jobProcessingInterval);
|
|
81
|
-
return jobQueue;
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
// src/JobQueue/JobQueueContainerModule.ts
|
|
85
|
-
var JobQueueContainerModule = new ContainerModule((bind) => {
|
|
86
|
-
bind(TYPES3.JobQueue).toConstantValue(getJobQueue());
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
// src/Mongo/Indexes/addIndexes.ts
|
|
90
|
-
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
91
|
-
import { DATABASES, getMongoDBConfig } from "@xyo-network/module-abstract-mongodb";
|
|
92
|
-
import { MongoClient, WriteConcern } from "mongodb";
|
|
93
|
-
|
|
94
|
-
// src/Mongo/Indexes/Specifications/AddressInfo/UX_address.ts
|
|
95
|
-
import { COLLECTIONS } from "@xyo-network/module-abstract-mongodb";
|
|
96
|
-
var UX_address = {
|
|
97
|
-
key: { address: 1 },
|
|
98
|
-
name: `${COLLECTIONS.AddressInfo}.UX_address`,
|
|
99
|
-
unique: true
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
// src/Mongo/Indexes/Specifications/AddressInfo/index.ts
|
|
103
|
-
var AddressInfoIndexes = [UX_address];
|
|
104
|
-
|
|
105
|
-
// src/Mongo/Indexes/addIndexes.ts
|
|
106
|
-
var indexesByCollection = {
|
|
107
|
-
// TODO: This collection can be removed once MongoDBPreviousHashStore
|
|
108
|
-
// has a way of bootstrapping itself with indexes like our modules do
|
|
109
|
-
address_info: AddressInfoIndexes
|
|
110
|
-
};
|
|
111
|
-
var oneMinute = 60 * 1e3;
|
|
112
|
-
var getMongoClientForIndexCreation = () => {
|
|
113
|
-
const env = getMongoDBConfig();
|
|
114
|
-
const uri = assertEx2(env.MONGO_CONNECTION_STRING);
|
|
115
|
-
const client = new MongoClient(uri, {
|
|
116
|
-
connectTimeoutMS: oneMinute,
|
|
117
|
-
maxIdleTimeMS: oneMinute,
|
|
118
|
-
serverSelectionTimeoutMS: oneMinute,
|
|
119
|
-
socketTimeoutMS: oneMinute,
|
|
120
|
-
waitQueueTimeoutMS: oneMinute,
|
|
121
|
-
writeConcern: new WriteConcern(1)
|
|
122
|
-
});
|
|
123
|
-
return client;
|
|
124
|
-
};
|
|
125
|
-
var addIndexes = async () => {
|
|
126
|
-
const client = getMongoClientForIndexCreation();
|
|
127
|
-
try {
|
|
128
|
-
for (const [collection2, indexSpecs] of Object.entries(indexesByCollection)) {
|
|
129
|
-
if (indexSpecs.length > 0) {
|
|
130
|
-
try {
|
|
131
|
-
await client.db(DATABASES.Archivist).collection(collection2).createIndexes(indexSpecs);
|
|
132
|
-
} catch (error) {
|
|
133
|
-
console.log(error);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
} finally {
|
|
138
|
-
await client.close(true);
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
// src/Mongo/initializeDatabase.ts
|
|
143
|
-
var initializeDatabase = async () => {
|
|
144
|
-
await addIndexes();
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
// src/PreviousHashStore/addPreviousHashStore.ts
|
|
148
|
-
import { Account } from "@xyo-network/account";
|
|
149
|
-
import { COLLECTIONS as COLLECTIONS2, getBaseMongoSdk } from "@xyo-network/module-abstract-mongodb";
|
|
150
|
-
|
|
151
|
-
// src/PreviousHashStore/MongoDBPreviousHashStore.ts
|
|
152
|
-
var MongoDBPreviousHashStore = class {
|
|
153
|
-
constructor(addressInfoSdk) {
|
|
154
|
-
this.addressInfoSdk = addressInfoSdk;
|
|
155
|
-
}
|
|
156
|
-
async getItem(address) {
|
|
157
|
-
const value = await this.addressInfoSdk.findOne({ address });
|
|
158
|
-
return value?.previousHash ?? null;
|
|
159
|
-
}
|
|
160
|
-
async removeItem(address) {
|
|
161
|
-
await this.addressInfoSdk.deleteOne({ address });
|
|
162
|
-
}
|
|
163
|
-
async setItem(address, previousHash) {
|
|
164
|
-
await this.addressInfoSdk.upsertOne({ address }, { $set: { previousHash } });
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
// src/PreviousHashStore/addPreviousHashStore.ts
|
|
169
|
-
var addPreviousHashStore = () => {
|
|
170
|
-
if (process.env.STORE_PREVIOUS_HASH) {
|
|
171
|
-
const store = new MongoDBPreviousHashStore(getBaseMongoSdk(COLLECTIONS2.AddressInfo));
|
|
172
|
-
Account.previousHashStore = store;
|
|
173
|
-
}
|
|
174
|
-
};
|
|
175
|
-
|
|
176
|
-
// src/addMongoModules.ts
|
|
177
|
-
var addMongoModules = async (container) => {
|
|
178
|
-
await initializeDatabase();
|
|
179
|
-
void container.load(JobQueueContainerModule);
|
|
180
|
-
addArchivistModuleFactories(container);
|
|
181
|
-
addDivinerModuleFactories(container);
|
|
182
|
-
addPreviousHashStore();
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
// src/canAddMongoModules.ts
|
|
186
|
-
import { hasMongoDBConfig } from "@xyo-network/module-abstract-mongodb";
|
|
187
|
-
var canAddMongoModules = () => {
|
|
188
|
-
return hasMongoDBConfig();
|
|
189
|
-
};
|
|
190
|
-
export {
|
|
191
|
-
addDivinerModuleFactories,
|
|
192
|
-
addMongoModules,
|
|
193
|
-
canAddMongoModules
|
|
194
|
-
};
|
|
195
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Archivist/addArchivistModuleFactories.ts","../../src/Diviner/addDivinerModuleFactories.ts","../../src/JobQueue/JobQueueContainerModule.ts","../../src/JobQueue/getJobQueue.ts","../../src/JobQueue/getName.ts","../../src/Mongo/Indexes/addIndexes.ts","../../src/Mongo/Indexes/Specifications/AddressInfo/UX_address.ts","../../src/Mongo/Indexes/Specifications/AddressInfo/index.ts","../../src/Mongo/initializeDatabase.ts","../../src/PreviousHashStore/addPreviousHashStore.ts","../../src/PreviousHashStore/MongoDBPreviousHashStore.ts","../../src/addMongoModules.ts","../../src/canAddMongoModules.ts"],"sourcesContent":["import { MongoDBArchivist } from '@xyo-network/archivist-mongodb'\nimport type { ModuleFactoryLocator } from '@xyo-network/module-factory-locator'\nimport { TYPES } from '@xyo-network/node-core-types'\nimport type { Container } from 'inversify'\n\nexport const addArchivistModuleFactories = (container: Container) => {\n const locator = container.get<ModuleFactoryLocator>(TYPES.ModuleFactoryLocator)\n locator.register(MongoDBArchivist)\n}\n","import {\n MongoDBAddressHistoryDiviner,\n MongoDBBoundWitnessDiviner,\n MongoDBBoundWitnessStatsDiviner,\n MongoDBPayloadDiviner,\n MongoDBPayloadStatsDiviner,\n MongoDBSchemaListDiviner,\n MongoDBSchemaStatsDiviner,\n} from '@xyo-network/diviner-mongodb'\nimport type { ModuleFactoryLocator } from '@xyo-network/module-factory-locator'\nimport { ModuleFactory } from '@xyo-network/module-model'\nimport type { MongoDBModuleParams } from '@xyo-network/module-model-mongodb'\nimport type { JobQueue } from '@xyo-network/node-core-model'\nimport { TYPES } from '@xyo-network/node-core-types'\nimport type { Container } from 'inversify'\n\nconst getMongoDBBoundWitnessStatsDiviner = (container: Container) => {\n const jobQueue = container.get<JobQueue>(TYPES.JobQueue)\n const schema = MongoDBBoundWitnessStatsDiviner.defaultConfigSchema\n const params: MongoDBModuleParams = { config: { schema }, jobQueue }\n return ModuleFactory.withParams(MongoDBBoundWitnessStatsDiviner, params)\n}\nconst getMongoDBPayloadStatsDiviner = (container: Container) => {\n const jobQueue = container.get<JobQueue>(TYPES.JobQueue)\n const schema = MongoDBPayloadStatsDiviner.defaultConfigSchema\n const params: MongoDBModuleParams = { config: { schema }, jobQueue }\n return ModuleFactory.withParams(MongoDBPayloadStatsDiviner, params)\n}\nconst getMongoDBSchemaStatsDiviner = (container: Container) => {\n const jobQueue = container.get<JobQueue>(TYPES.JobQueue)\n const schema = MongoDBSchemaStatsDiviner.defaultConfigSchema\n const params: MongoDBModuleParams = { config: { schema }, jobQueue }\n return ModuleFactory.withParams(MongoDBSchemaStatsDiviner, params)\n}\n\nexport const addDivinerModuleFactories = (container: Container) => {\n const locator = container.get<ModuleFactoryLocator>(TYPES.ModuleFactoryLocator)\n locator.register(MongoDBAddressHistoryDiviner)\n // locator.register(MongoDBAddressSpaceDiviner)\n // locator.register(MongoDBAddressSpaceBatchDiviner)\n locator.register(MongoDBBoundWitnessDiviner)\n locator.register(getMongoDBBoundWitnessStatsDiviner(container))\n locator.register(MongoDBPayloadDiviner)\n locator.register(getMongoDBPayloadStatsDiviner(container))\n locator.register(MongoDBSchemaListDiviner)\n locator.register(getMongoDBSchemaStatsDiviner(container))\n}\n","import type { JobQueue } from '@xyo-network/node-core-model'\nimport { TYPES } from '@xyo-network/node-core-types'\nimport type { interfaces } from 'inversify'\nimport { ContainerModule } from 'inversify'\n\nimport { getJobQueue } from './getJobQueue.js'\n\nexport const JobQueueContainerModule = new ContainerModule((bind: interfaces.Bind) => {\n bind<JobQueue>(TYPES.JobQueue).toConstantValue(getJobQueue())\n})\n","import { assertEx } from '@xylabs/assert'\nimport type { JobQueue } from '@xyo-network/node-core-model'\nimport { Agenda } from 'agenda'\n\nimport { getName } from './getName.js'\n\n/**\n * Collection to use for managing jobs\n */\nconst collection = 'node'\n\n/**\n * DB to use for managing jobs\n */\nconst dbName = 'job'\n\nconst isLocalhost = (domain: string) => {\n const d = domain.toLowerCase()\n return d.includes('127.0.0.1') || d.includes('localhost')\n}\n\nexport const getJobQueue = (): JobQueue => {\n const dbDomain = assertEx(process.env.MONGO_DOMAIN, () => 'Missing Mongo Domain')\n const dbPassword = assertEx(process.env.MONGO_PASSWORD, () => 'Missing Mongo Password')\n const dbUserName = assertEx(process.env.MONGO_USERNAME, () => 'Missing Mongo Username')\n // TODO: Temp fix to match current ENV VAR format\n const address\n = isLocalhost(dbDomain)\n ? `mongodb://${dbUserName}:${dbPassword}@${dbDomain}/${dbName}?authSource=admin`\n : `mongodb+srv://${dbUserName}:${dbPassword}@${dbDomain}.mongodb.net/${dbName}?authSource=admin`\n const db = { address, collection }\n const name = getName()\n const jobQueue = new Agenda({ db, name })\n\n // TODO: Depends on minimum job interval, set to 20 seconds for\n // default since we should never be running jobs faster than every minute\n const jobProcessingInterval = process.env.JOB_PROCESSING_INTERVAL || '20 seconds'\n jobQueue.processEvery(jobProcessingInterval)\n\n return jobQueue\n}\n","import { v4 as uuid } from 'uuid'\n\n// TODO: When running in AWS use Task Metadata Endpoint to get Task ID\n// https://docs.aws.amazon.com/AmazonECS/latest/userguide/task-metadata-endpoint-v4-fargate.html\nexport const getName = (): string => {\n return uuid()\n}\n","import { assertEx } from '@xylabs/assert'\nimport { DATABASES, getMongoDBConfig } from '@xyo-network/module-abstract-mongodb'\nimport type { IndexDescription } from 'mongodb'\nimport { MongoClient, WriteConcern } from 'mongodb'\n\nimport { AddressInfoIndexes } from './Specifications/index.js'\n\nconst indexesByCollection: Record<string, IndexDescription[]> = {\n // TODO: This collection can be removed once MongoDBPreviousHashStore\n // has a way of bootstrapping itself with indexes like our modules do\n address_info: AddressInfoIndexes,\n}\n\nconst oneMinute = 60 * 1000\n\nconst getMongoClientForIndexCreation = () => {\n const env = getMongoDBConfig()\n const uri = assertEx(env.MONGO_CONNECTION_STRING)\n const client: MongoClient = new MongoClient(uri, {\n connectTimeoutMS: oneMinute,\n maxIdleTimeMS: oneMinute,\n serverSelectionTimeoutMS: oneMinute,\n socketTimeoutMS: oneMinute,\n waitQueueTimeoutMS: oneMinute,\n writeConcern: new WriteConcern(1),\n })\n return client\n}\n\n// TODO: Use injected client. However, we control\n// timeout and relevant params for index creation\n// with this client.\nexport const addIndexes = async () => {\n // Create the required indexes\n const client = getMongoClientForIndexCreation()\n try {\n for (const [collection, indexSpecs] of Object.entries(indexesByCollection)) {\n if (indexSpecs.length > 0) {\n try {\n await client.db(DATABASES.Archivist).collection(collection).createIndexes(indexSpecs)\n } catch (error) {\n console.log(error)\n }\n }\n }\n } finally {\n await client.close(true)\n }\n}\n","import { COLLECTIONS } from '@xyo-network/module-abstract-mongodb'\nimport type { IndexDescription } from 'mongodb'\n\nexport const UX_address: IndexDescription = {\n key: { address: 1 },\n name: `${COLLECTIONS.AddressInfo}.UX_address`,\n unique: true,\n}\n","import type { IndexDescription } from 'mongodb'\n\nimport { UX_address } from './UX_address.js'\n\nexport const AddressInfoIndexes: IndexDescription[] = [UX_address]\n","import { addIndexes } from './Indexes/index.js'\n\nexport const initializeDatabase = async () => {\n await addIndexes()\n}\n","import { Account } from '@xyo-network/account'\nimport { COLLECTIONS, getBaseMongoSdk } from '@xyo-network/module-abstract-mongodb'\n\nimport type { AddressInfo } from '../Mongo/index.js'\nimport { MongoDBPreviousHashStore } from './MongoDBPreviousHashStore.js'\n\nexport const addPreviousHashStore = () => {\n if (process.env.STORE_PREVIOUS_HASH) {\n const store = new MongoDBPreviousHashStore(getBaseMongoSdk<AddressInfo>(COLLECTIONS.AddressInfo))\n Account.previousHashStore = store\n }\n}\n","import type { Address, Hash } from '@xylabs/hex'\nimport type { BaseMongoSdk } from '@xylabs/mongo'\nimport type { PreviousHashStore } from '@xyo-network/previous-hash-store-model'\n\nimport type { AddressInfo } from '../Mongo/index.js'\n\nexport class MongoDBPreviousHashStore implements PreviousHashStore {\n constructor(protected readonly addressInfoSdk: BaseMongoSdk<AddressInfo>) {}\n\n async getItem(address: Address): Promise<Hash | null> {\n const value = await this.addressInfoSdk.findOne({ address })\n return value?.previousHash ?? null\n }\n\n async removeItem(address: Address): Promise<void> {\n await this.addressInfoSdk.deleteOne({ address })\n }\n\n async setItem(address: Address, previousHash: Hash): Promise<void> {\n await this.addressInfoSdk.upsertOne({ address }, { $set: { previousHash } })\n }\n}\n","import type { Container } from 'inversify'\n\nimport { addArchivistModuleFactories } from './Archivist/index.js'\nimport { addDivinerModuleFactories } from './Diviner/index.js'\nimport { JobQueueContainerModule } from './JobQueue/index.js'\nimport { initializeDatabase } from './Mongo/index.js'\nimport { addPreviousHashStore } from './PreviousHashStore/index.js'\n\nexport const addMongoModules = async (container: Container) => {\n await initializeDatabase()\n void container.load(JobQueueContainerModule)\n addArchivistModuleFactories(container)\n addDivinerModuleFactories(container)\n addPreviousHashStore()\n}\n","import { hasMongoDBConfig } from '@xyo-network/module-abstract-mongodb'\n\nexport const canAddMongoModules = (): boolean => {\n return hasMongoDBConfig()\n}\n"],"mappings":"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","names":["TYPES","TYPES","TYPES","assertEx","assertEx","collection","COLLECTIONS","COLLECTIONS"]}
|