@xyo-network/module-abstract-mongodb 2.88.8 → 2.89.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.
Files changed (131) hide show
  1. package/dist/browser/IndexDescription.d.cts +0 -15
  2. package/dist/browser/IndexDescription.d.cts.map +1 -1
  3. package/dist/browser/IndexDescription.d.mts +0 -15
  4. package/dist/browser/IndexDescription.d.mts.map +1 -1
  5. package/dist/browser/IndexDescription.d.ts +0 -15
  6. package/dist/browser/IndexDescription.d.ts.map +1 -1
  7. package/dist/browser/Indexes/index.d.cts +1 -1
  8. package/dist/browser/Indexes/index.d.cts.map +1 -1
  9. package/dist/browser/Indexes/index.d.mts +1 -1
  10. package/dist/browser/Indexes/index.d.mts.map +1 -1
  11. package/dist/browser/Indexes/index.d.ts +1 -1
  12. package/dist/browser/Indexes/index.d.ts.map +1 -1
  13. package/dist/browser/Module.d.cts +21 -85
  14. package/dist/browser/Module.d.cts.map +1 -1
  15. package/dist/browser/Module.d.mts +21 -85
  16. package/dist/browser/Module.d.mts.map +1 -1
  17. package/dist/browser/Module.d.ts +21 -85
  18. package/dist/browser/Module.d.ts.map +1 -1
  19. package/dist/browser/config/getBaseMongoSdk.d.cts.map +1 -1
  20. package/dist/browser/config/getBaseMongoSdk.d.mts.map +1 -1
  21. package/dist/browser/config/getBaseMongoSdk.d.ts.map +1 -1
  22. package/dist/browser/config/index.d.cts +3 -3
  23. package/dist/browser/config/index.d.cts.map +1 -1
  24. package/dist/browser/config/index.d.mts +3 -3
  25. package/dist/browser/config/index.d.mts.map +1 -1
  26. package/dist/browser/config/index.d.ts +3 -3
  27. package/dist/browser/config/index.d.ts.map +1 -1
  28. package/dist/browser/index.cjs.map +1 -1
  29. package/dist/browser/index.d.cts +8 -8
  30. package/dist/browser/index.d.cts.map +1 -1
  31. package/dist/browser/index.d.mts +8 -8
  32. package/dist/browser/index.d.mts.map +1 -1
  33. package/dist/browser/index.d.ts +8 -8
  34. package/dist/browser/index.d.ts.map +1 -1
  35. package/dist/browser/index.js.map +1 -1
  36. package/dist/browser/util/index.d.cts +1 -1
  37. package/dist/browser/util/index.d.cts.map +1 -1
  38. package/dist/browser/util/index.d.mts +1 -1
  39. package/dist/browser/util/index.d.mts.map +1 -1
  40. package/dist/browser/util/index.d.ts +1 -1
  41. package/dist/browser/util/index.d.ts.map +1 -1
  42. package/dist/neutral/IndexDescription.d.cts +0 -15
  43. package/dist/neutral/IndexDescription.d.cts.map +1 -1
  44. package/dist/neutral/IndexDescription.d.mts +0 -15
  45. package/dist/neutral/IndexDescription.d.mts.map +1 -1
  46. package/dist/neutral/IndexDescription.d.ts +0 -15
  47. package/dist/neutral/IndexDescription.d.ts.map +1 -1
  48. package/dist/neutral/Indexes/index.d.cts +1 -1
  49. package/dist/neutral/Indexes/index.d.cts.map +1 -1
  50. package/dist/neutral/Indexes/index.d.mts +1 -1
  51. package/dist/neutral/Indexes/index.d.mts.map +1 -1
  52. package/dist/neutral/Indexes/index.d.ts +1 -1
  53. package/dist/neutral/Indexes/index.d.ts.map +1 -1
  54. package/dist/neutral/Module.d.cts +21 -85
  55. package/dist/neutral/Module.d.cts.map +1 -1
  56. package/dist/neutral/Module.d.mts +21 -85
  57. package/dist/neutral/Module.d.mts.map +1 -1
  58. package/dist/neutral/Module.d.ts +21 -85
  59. package/dist/neutral/Module.d.ts.map +1 -1
  60. package/dist/neutral/config/getBaseMongoSdk.d.cts.map +1 -1
  61. package/dist/neutral/config/getBaseMongoSdk.d.mts.map +1 -1
  62. package/dist/neutral/config/getBaseMongoSdk.d.ts.map +1 -1
  63. package/dist/neutral/config/index.d.cts +3 -3
  64. package/dist/neutral/config/index.d.cts.map +1 -1
  65. package/dist/neutral/config/index.d.mts +3 -3
  66. package/dist/neutral/config/index.d.mts.map +1 -1
  67. package/dist/neutral/config/index.d.ts +3 -3
  68. package/dist/neutral/config/index.d.ts.map +1 -1
  69. package/dist/neutral/index.cjs.map +1 -1
  70. package/dist/neutral/index.d.cts +8 -8
  71. package/dist/neutral/index.d.cts.map +1 -1
  72. package/dist/neutral/index.d.mts +8 -8
  73. package/dist/neutral/index.d.mts.map +1 -1
  74. package/dist/neutral/index.d.ts +8 -8
  75. package/dist/neutral/index.d.ts.map +1 -1
  76. package/dist/neutral/index.js.map +1 -1
  77. package/dist/neutral/util/index.d.cts +1 -1
  78. package/dist/neutral/util/index.d.cts.map +1 -1
  79. package/dist/neutral/util/index.d.mts +1 -1
  80. package/dist/neutral/util/index.d.mts.map +1 -1
  81. package/dist/neutral/util/index.d.ts +1 -1
  82. package/dist/neutral/util/index.d.ts.map +1 -1
  83. package/dist/node/IndexDescription.d.cts +0 -15
  84. package/dist/node/IndexDescription.d.cts.map +1 -1
  85. package/dist/node/IndexDescription.d.mts +0 -15
  86. package/dist/node/IndexDescription.d.mts.map +1 -1
  87. package/dist/node/IndexDescription.d.ts +0 -15
  88. package/dist/node/IndexDescription.d.ts.map +1 -1
  89. package/dist/node/Indexes/index.d.cts +1 -1
  90. package/dist/node/Indexes/index.d.cts.map +1 -1
  91. package/dist/node/Indexes/index.d.mts +1 -1
  92. package/dist/node/Indexes/index.d.mts.map +1 -1
  93. package/dist/node/Indexes/index.d.ts +1 -1
  94. package/dist/node/Indexes/index.d.ts.map +1 -1
  95. package/dist/node/Module.d.cts +21 -85
  96. package/dist/node/Module.d.cts.map +1 -1
  97. package/dist/node/Module.d.mts +21 -85
  98. package/dist/node/Module.d.mts.map +1 -1
  99. package/dist/node/Module.d.ts +21 -85
  100. package/dist/node/Module.d.ts.map +1 -1
  101. package/dist/node/config/getBaseMongoSdk.d.cts.map +1 -1
  102. package/dist/node/config/getBaseMongoSdk.d.mts.map +1 -1
  103. package/dist/node/config/getBaseMongoSdk.d.ts.map +1 -1
  104. package/dist/node/config/index.d.cts +3 -3
  105. package/dist/node/config/index.d.cts.map +1 -1
  106. package/dist/node/config/index.d.mts +3 -3
  107. package/dist/node/config/index.d.mts.map +1 -1
  108. package/dist/node/config/index.d.ts +3 -3
  109. package/dist/node/config/index.d.ts.map +1 -1
  110. package/dist/node/index.cjs.map +1 -1
  111. package/dist/node/index.d.cts +8 -8
  112. package/dist/node/index.d.cts.map +1 -1
  113. package/dist/node/index.d.mts +8 -8
  114. package/dist/node/index.d.mts.map +1 -1
  115. package/dist/node/index.d.ts +8 -8
  116. package/dist/node/index.d.ts.map +1 -1
  117. package/dist/node/index.js.map +1 -1
  118. package/dist/node/util/index.d.cts +1 -1
  119. package/dist/node/util/index.d.cts.map +1 -1
  120. package/dist/node/util/index.d.mts +1 -1
  121. package/dist/node/util/index.d.mts.map +1 -1
  122. package/dist/node/util/index.d.ts +1 -1
  123. package/dist/node/util/index.d.ts.map +1 -1
  124. package/package.json +13 -13
  125. package/src/Indexes/index.ts +1 -1
  126. package/src/Module.ts +3 -3
  127. package/src/config/getBaseMongoSdk.ts +1 -1
  128. package/src/config/hasMongoDBConfig.ts +1 -1
  129. package/src/config/index.ts +3 -3
  130. package/src/index.ts +8 -8
  131. package/src/util/index.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"getBaseMongoSdk.d.ts","sourceRoot":"","sources":["../../../src/config/getBaseMongoSdk.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAIlC,eAAO,MAAM,4BAA4B,QAAO,yBAS/C,CAAA;AAED,eAAO,MAAM,eAAe,mCAAoC,MAAM,oBAErE,CAAA"}
1
+ {"version":3,"file":"getBaseMongoSdk.d.ts","sourceRoot":"","sources":["../../../src/config/getBaseMongoSdk.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAIlC,eAAO,MAAM,4BAA4B,QAAO,yBAS/C,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,QAAQ,cAAc,MAAM,oBAErE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getBaseMongoSdk.d.ts","sourceRoot":"","sources":["../../../src/config/getBaseMongoSdk.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAIlC,eAAO,MAAM,4BAA4B,QAAO,yBAS/C,CAAA;AAED,eAAO,MAAM,eAAe,mCAAoC,MAAM,oBAErE,CAAA"}
1
+ {"version":3,"file":"getBaseMongoSdk.d.ts","sourceRoot":"","sources":["../../../src/config/getBaseMongoSdk.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAIlC,eAAO,MAAM,4BAA4B,QAAO,yBAS/C,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,QAAQ,cAAc,MAAM,oBAErE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getBaseMongoSdk.d.ts","sourceRoot":"","sources":["../../../src/config/getBaseMongoSdk.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAIlC,eAAO,MAAM,4BAA4B,QAAO,yBAS/C,CAAA;AAED,eAAO,MAAM,eAAe,mCAAoC,MAAM,oBAErE,CAAA"}
1
+ {"version":3,"file":"getBaseMongoSdk.d.ts","sourceRoot":"","sources":["../../../src/config/getBaseMongoSdk.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAIlC,eAAO,MAAM,4BAA4B,QAAO,yBAS/C,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,QAAQ,cAAc,MAAM,oBAErE,CAAA"}
@@ -1,4 +1,4 @@
1
- export * from './getBaseMongoSdk';
2
- export * from './getMongoDBConfig';
3
- export * from './hasMongoDBConfig';
1
+ export * from './getBaseMongoSdk.js';
2
+ export * from './getMongoDBConfig.js';
3
+ export * from './hasMongoDBConfig.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
@@ -1,4 +1,4 @@
1
- export * from './getBaseMongoSdk';
2
- export * from './getMongoDBConfig';
3
- export * from './hasMongoDBConfig';
1
+ export * from './getBaseMongoSdk.js';
2
+ export * from './getMongoDBConfig.js';
3
+ export * from './hasMongoDBConfig.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
@@ -1,4 +1,4 @@
1
- export * from './getBaseMongoSdk';
2
- export * from './getMongoDBConfig';
3
- export * from './hasMongoDBConfig';
1
+ export * from './getBaseMongoSdk.js';
2
+ export * from './getMongoDBConfig.js';
3
+ export * from './hasMongoDBConfig.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts"],"sourcesContent":["export * from './Collections'\nexport * from './config'\nexport * from './Databases'\nexport * from './Defaults'\nexport * from './IndexDescription'\nexport * from './Indexes'\nexport * from './Module'\nexport * from './util'\n","// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, () => 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, () => 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, () => 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, () => 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\nimport { IndexDescription } from './IndexDescription'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMongoMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, () => 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMongoMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMongoMeta> | BaseMongoSdk<BoundWitnessWithMongoMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;ACCO,IAAMA,cAAc;EACzBC,aAAa;EACbC,gBAAgB;EAChBC,gBAAgB;EAChBC,UAAU;EACVC,YAAY;EACZC,OAAO;AACT;;;ACRA,oBAAyB;AACzB,8BAAwD;;;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,cAAUC,wBAASL,IAAIM,cAAc,MAAM,sBAAA;IAC3CC,YAAQF,wBAASL,IAAIQ,gBAAgB,MAAM,wBAAA;IAC3CC,gBAAYJ,wBAASL,IAAIU,gBAAgB,MAAM,wBAAA;IAC/CC,gBAAYN,wBAASL,IAAIY,gBAAgB,MAAM,wBAAA;EACjD;AACF,GAT4C;AAWrC,IAAMC,kBAAkB,wBAAqBC,eAAAA;AAClD,SAAO,IAAIC,qCAAgB;IAAE,GAAGhB,6BAAAA;IAAgCe;EAAW,CAAA;AAC7E,GAF+B;;;AEjB/B,oBAAuB;AAIhB,IAAME,mBAAmB,6BAAA;AAC9B,QAAMC,MAAMC,iBAAAA;AACZ,QAAMC,iBAAiB;IAACF,IAAIG;IAAyBH,IAAII;IAAgBJ,IAAIK;IAAcL,IAAIM;IAAgBN,IAAIO;;AACnH,SAAOL,eAAeM,MAAMC,oBAAAA;AAC9B,GAJgC;;;ACJzB,IAAMC,YAAY;EACvBC,WAAW;AACb;;;ACFO,IAAMC,4BAA4B;AAClC,IAAMC,eAAe;AACrB,IAAMC,mBAAmB;AACzB,IAAMC,eAAe;;;ACH5B,IAAAC,iBAAyB;AACzB,oBAAsB;AACtB,+BAAiC;AAEjC,kCAAmG;AAEnG,IAAAC,2BAAiD;;;;;;;;AAU1C,IAAMC,qBAAqB,wBAIhCC,eAAAA;AAGA,MAAeC,kBAAf,MAAeA,wBAAwBD,WAAAA;WAAAA;;;IACrC,OAAOE,SAASC;IAChBC;IACAC;IAEA,IAAIC,wBAA4C;AAC9C,YAAMC,SAAS;QAAEC,YAAYC,YAAYC;QAAgB,GAAGC,6BAAAA;MAA+B;AAC3F,iBAAOC,qBAAML,QAAQ,KAAKM,OAAOP,uBAAuB,KAAKC,OAAOD,uBAAuB;QACzFE,YAAY,KAAKD,OAAOD,uBAAuBE,cAAc,KAAKK,OAAOP,uBAAuBE,cAAcC,YAAYC;MAC5H,CAAA;IACF;IAEA,IAAII,iBAAiB;AACnB,WAAKV,mBAAmB,KAAKA,oBAAoB,IAAIW,sCAAwC,KAAKT,qBAAqB;AACvH,iBAAOU,yBAAS,KAAKZ,gBAAgB;IACvC;IAEA,IAAIa,WAAW;AACb,iBAAOD,yBAAS,KAAKH,OAAOI,UAAU,MAAM,2EAAA;IAC9C;IAEA,IAAIC,mBAAuC;AACzC,YAAMX,SAAS;QAAEC,YAAYC,YAAYU;QAAU,GAAGR,6BAAAA;MAA+B;AACrF,iBAAOC,qBAAML,QAAQ,KAAKM,OAAOK,kBAAkB,KAAKX,OAAOW,kBAAkB;QAC/EV,YAAY,KAAKD,OAAOW,kBAAkBV,cAAc,KAAKK,OAAOK,kBAAkBV,cAAcC,YAAYU;MAClH,CAAA;IACF;IAEA,IAAIC,WAAW;AACb,WAAKf,cAAc,KAAKA,eAAe,IAAIU,sCAAmC,KAAKG,gBAAgB;AACnG,iBAAOF,yBAAS,KAAKX,WAAW;IAClC;;;;;IAMA,MAAMgB,gBAA+B;AACnC,YAAMC,gBAAiB,KAAKf,QAA2DgB,SAASC,WAAW,CAAA;AAC3G,YAAMC,+BAA+B,KAAKX,gBAAgBQ,aAAAA;AAC1D,YAAMG,+BAA+B,KAAKL,UAAUE,aAAAA;IACtD;EACF;;;;AACA,SAAOrB;AACT,GAnDkC;AA0DlC,IAAMwB,iCAAiC,8BACrCC,KACAJ,kBAAAA;AAEA,QAAMI,IAAIC,cAAc,OAAOnB,eAAAA;AAC7B,UAAMoB,iBAAiBpB,WAAWoB,eAAeC,YAAW;AAC5D,UAAML,UAAUF,cAAcQ,OAAO,CAACC,OAAOA,IAAIC,MAAMH,YAAAA,EAAcI,WAAWL,cAAAA,CAAAA;AAChF,QAAIJ,QAAQU,WAAW,EAAG;AAC1B,eAAWH,MAAMP,SAAS;AACxB,UAAI;AACF,cAAMhB,WAAW2B,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;","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","import_assert","import_sdk_xyo_mongo_js","MongoDBModuleMixin","ModuleBase","MongoModuleBase","labels","MongoDBStorageClassLabels","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty"]}
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"],"sourcesContent":["export * from './Collections.js'\nexport * from './config/index.js'\nexport * from './Databases.js'\nexport * from './Defaults.js'\nexport * from './IndexDescription.js'\nexport * from './Indexes/index.js'\nexport * from './Module.js'\nexport * from './util/index.js'\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.js'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, () => 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, () => 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, () => 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, () => 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig.js'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections.js'\nimport { getBaseMongoSdkPrivateConfig } from './config/index.js'\nimport { IndexDescription } from './IndexDescription.js'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMongoMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, () => 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMongoMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMongoMeta> | BaseMongoSdk<BoundWitnessWithMongoMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","import_assert","import_sdk_xyo_mongo_js","MongoDBModuleMixin","ModuleBase","MongoModuleBase","labels","MongoDBStorageClassLabels","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty"]}
@@ -1,9 +1,9 @@
1
- export * from './Collections';
2
- export * from './config';
3
- export * from './Databases';
4
- export * from './Defaults';
5
- export * from './IndexDescription';
6
- export * from './Indexes';
7
- export * from './Module';
8
- export * from './util';
1
+ export * from './Collections.js';
2
+ export * from './config/index.js';
3
+ export * from './Databases.js';
4
+ export * from './Defaults.js';
5
+ export * from './IndexDescription.js';
6
+ export * from './Indexes/index.js';
7
+ export * from './Module.js';
8
+ export * from './util/index.js';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA"}
@@ -1,9 +1,9 @@
1
- export * from './Collections';
2
- export * from './config';
3
- export * from './Databases';
4
- export * from './Defaults';
5
- export * from './IndexDescription';
6
- export * from './Indexes';
7
- export * from './Module';
8
- export * from './util';
1
+ export * from './Collections.js';
2
+ export * from './config/index.js';
3
+ export * from './Databases.js';
4
+ export * from './Defaults.js';
5
+ export * from './IndexDescription.js';
6
+ export * from './Indexes/index.js';
7
+ export * from './Module.js';
8
+ export * from './util/index.js';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA"}
@@ -1,9 +1,9 @@
1
- export * from './Collections';
2
- export * from './config';
3
- export * from './Databases';
4
- export * from './Defaults';
5
- export * from './IndexDescription';
6
- export * from './Indexes';
7
- export * from './Module';
8
- export * from './util';
1
+ export * from './Collections.js';
2
+ export * from './config/index.js';
3
+ export * from './Databases.js';
4
+ export * from './Defaults.js';
5
+ export * from './IndexDescription.js';
6
+ export * from './Indexes/index.js';
7
+ export * from './Module.js';
8
+ export * from './util/index.js';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts"],"sourcesContent":["// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, () => 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, () => 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, () => 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, () => 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections'\nimport { getBaseMongoSdkPrivateConfig } from './config'\nimport { IndexDescription } from './IndexDescription'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMongoMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, () => 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMongoMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMongoMeta> | BaseMongoSdk<BoundWitnessWithMongoMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","assertEx","BaseMongoSdk","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","exists","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","assertEx","merge","staticImplements","MongoDBStorageClassLabels","BaseMongoSdk","MongoDBModuleMixin","ModuleBase","MongoModuleBase","labels","MongoDBStorageClassLabels","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty"]}
1
+ {"version":3,"sources":["../../src/Collections.ts","../../src/config/getBaseMongoSdk.ts","../../src/config/getMongoDBConfig.ts","../../src/config/hasMongoDBConfig.ts","../../src/Databases.ts","../../src/Defaults.ts","../../src/Module.ts","../../src/util/dbProperty.ts"],"sourcesContent":["// TODO: By DB\nexport const COLLECTIONS = {\n AddressInfo: 'address_info' as const,\n ArchivistStats: 'archivist_stats' as const,\n BoundWitnesses: 'bound_witnesses' as const,\n Payloads: 'payloads' as const,\n Thumbnails: 'thumbnails' as const,\n Users: 'users' as const,\n}\n","import { assertEx } from '@xylabs/assert'\nimport { BaseMongoSdk, BaseMongoSdkPrivateConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { Document } from 'mongodb'\n\nimport { getMongoDBConfig } from './getMongoDBConfig.js'\n\nexport const getBaseMongoSdkPrivateConfig = (): BaseMongoSdkPrivateConfig => {\n const env = getMongoDBConfig()\n return {\n dbConnectionString: env.MONGO_CONNECTION_STRING,\n dbDomain: assertEx(env.MONGO_DOMAIN, () => 'Missing Mongo Domain'),\n dbName: assertEx(env.MONGO_DATABASE, () => 'Missing Mongo Database'),\n dbPassword: assertEx(env.MONGO_PASSWORD, () => 'Missing Mongo Password'),\n dbUserName: assertEx(env.MONGO_USERNAME, () => 'Missing Mongo Username'),\n }\n}\n\nexport const getBaseMongoSdk = <T extends Document>(collection: string) => {\n return new BaseMongoSdk<T>({ ...getBaseMongoSdkPrivateConfig(), collection })\n}\n","export type MongoDbConnectionStringEnvVar = 'MONGO_CONNECTION_STRING'\nexport type MongoDbEnvVars = 'MONGO_DATABASE' | 'MONGO_DOMAIN' | 'MONGO_PASSWORD' | 'MONGO_USERNAME'\n\nexport type MongoEnv = Record<MongoDbEnvVars | MongoDbConnectionStringEnvVar, string | undefined>\n\nexport const getMongoDBConfig = (): MongoEnv => {\n const env: MongoEnv = {} as MongoEnv\n if (process.env.MONGO_CONNECTION_STRING) {\n env.MONGO_CONNECTION_STRING = process.env.MONGO_CONNECTION_STRING\n }\n if (process.env.MONGO_DOMAIN) {\n env.MONGO_DATABASE = process.env.MONGO_DATABASE\n env.MONGO_DOMAIN = process.env.MONGO_DOMAIN\n env.MONGO_PASSWORD = process.env.MONGO_PASSWORD\n env.MONGO_USERNAME = process.env.MONGO_USERNAME\n }\n return env\n}\n","import { exists } from '@xylabs/exists'\n\nimport { getMongoDBConfig } from './getMongoDBConfig.js'\n\nexport const hasMongoDBConfig = (): boolean => {\n const env = getMongoDBConfig()\n const requiredValues = [env.MONGO_CONNECTION_STRING, env.MONGO_DATABASE, env.MONGO_DOMAIN, env.MONGO_PASSWORD, env.MONGO_USERNAME]\n return requiredValues.every(exists)\n}\n","export const DATABASES = {\n Archivist: 'archivist' as const,\n}\n","export const DefaultAggregateTimeoutMs = 10_000\nexport const DefaultLimit = 20\nexport const DefaultMaxTimeMS = 2000\nexport const DefaultOrder = 'desc'\n","import { assertEx } from '@xylabs/assert'\nimport { merge } from '@xylabs/lodash'\nimport { staticImplements } from '@xylabs/static-implements'\nimport { Module } from '@xyo-network/module-model'\nimport { MongoDBModule, MongoDBModuleParams, MongoDBModuleStatic, MongoDBStorageClassLabels } from '@xyo-network/module-model-mongodb'\nimport { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb'\nimport { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js'\nimport { MongoServerError } from 'mongodb'\n\nimport { COLLECTIONS } from './Collections.js'\nimport { getBaseMongoSdkPrivateConfig } from './config/index.js'\nimport { IndexDescription } from './IndexDescription.js'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>\n\nexport const MongoDBModuleMixin = <\n TParams extends MongoDBModuleParams = MongoDBModuleParams,\n TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>,\n>(\n ModuleBase: TModule,\n) => {\n @staticImplements<MongoDBModuleStatic>()\n abstract class MongoModuleBase extends ModuleBase implements MongoDBModule {\n static labels = MongoDBStorageClassLabels\n _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined\n _payloadSdk: BaseMongoSdk<PayloadWithMongoMeta> | undefined\n\n get boundWitnessSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.BoundWitnesses, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.boundWitnessSdkConfig, this.config.boundWitnessSdkConfig, {\n collection: this.config.boundWitnessSdkConfig?.collection ?? this.params.boundWitnessSdkConfig?.collection ?? COLLECTIONS.BoundWitnesses,\n })\n }\n\n get boundWitnesses() {\n this._boundWitnessSdk = this._boundWitnessSdk ?? new BaseMongoSdk<BoundWitnessWithMongoMeta>(this.boundWitnessSdkConfig)\n return assertEx(this._boundWitnessSdk)\n }\n\n get jobQueue() {\n return assertEx(this.params.jobQueue, () => 'MongoDBModule Error: jobQueue required for this module but is not defined')\n }\n\n get payloadSdkConfig(): BaseMongoSdkConfig {\n const config = { collection: COLLECTIONS.Payloads, ...getBaseMongoSdkPrivateConfig() }\n return merge(config, this.params.payloadSdkConfig, this.config.payloadSdkConfig, {\n collection: this.config.payloadSdkConfig?.collection ?? this.params.payloadSdkConfig?.collection ?? COLLECTIONS.Payloads,\n })\n }\n\n get payloads() {\n this._payloadSdk = this._payloadSdk ?? new BaseMongoSdk<PayloadWithMongoMeta>(this.payloadSdkConfig)\n return assertEx(this._payloadSdk)\n }\n\n /**\n * Ensures any indexes specified within the config are created. This method should be idempotent\n * allowing for multiple calls without causing errors while ensuring the desired state.\n */\n async ensureIndexes(): Promise<void> {\n const configIndexes = (this.config as { storage?: { indexes?: IndexDescription[] } })?.storage?.indexes ?? []\n await ensureIndexesExistOnCollection(this.boundWitnesses, configIndexes)\n await ensureIndexesExistOnCollection(this.payloads, configIndexes)\n }\n }\n return MongoModuleBase\n}\n\n/**\n * Ensures the specified indexes exist on the collection\n * @param sdk The sdk to use for the collection\n * @param configIndexes The indexes to ensure exist on the collection\n */\nconst ensureIndexesExistOnCollection = async (\n sdk: BaseMongoSdk<PayloadWithMongoMeta> | BaseMongoSdk<BoundWitnessWithMongoMeta>,\n configIndexes: IndexDescription[],\n) => {\n await sdk.useCollection(async (collection) => {\n const collectionName = collection.collectionName.toLowerCase()\n const indexes = configIndexes.filter((ix) => ix?.name?.toLowerCase().startsWith(collectionName))\n if (indexes.length === 0) return\n for (const ix of indexes) {\n try {\n await collection.createIndexes([ix])\n } catch (error) {\n const mongoServerError = error as MongoServerError\n const { codeName } = mongoServerError\n if (codeName === 'IndexKeySpecsConflict' || codeName === 'IndexOptionsConflict') {\n // Index already exists which is fine OR index exists with another name which is fine\n // TODO: For the latter case (IndexOptionsConflict) we could get into this case\n // if we change the TTL an existing index. We currently don't support TTLs so\n // we'll need to revisit this assumption if we do.\n continue\n }\n console.error(`Error creating index ${ix.name} for collection ${collectionName}: ${error}`)\n throw error\n }\n }\n })\n}\n","export const escapeChar = '#'\n\nexport const toDbProperty = (value: string) => value.replaceAll('.', escapeChar)\n\nexport const fromDbProperty = (value: string) => value.replaceAll(escapeChar, '.')\n"],"mappings":"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","names":["COLLECTIONS","AddressInfo","ArchivistStats","BoundWitnesses","Payloads","Thumbnails","Users","assertEx","BaseMongoSdk","getMongoDBConfig","env","process","MONGO_CONNECTION_STRING","MONGO_DOMAIN","MONGO_DATABASE","MONGO_PASSWORD","MONGO_USERNAME","getBaseMongoSdkPrivateConfig","env","getMongoDBConfig","dbConnectionString","MONGO_CONNECTION_STRING","dbDomain","assertEx","MONGO_DOMAIN","dbName","MONGO_DATABASE","dbPassword","MONGO_PASSWORD","dbUserName","MONGO_USERNAME","getBaseMongoSdk","collection","BaseMongoSdk","exists","hasMongoDBConfig","env","getMongoDBConfig","requiredValues","MONGO_CONNECTION_STRING","MONGO_DATABASE","MONGO_DOMAIN","MONGO_PASSWORD","MONGO_USERNAME","every","exists","DATABASES","Archivist","DefaultAggregateTimeoutMs","DefaultLimit","DefaultMaxTimeMS","DefaultOrder","assertEx","merge","staticImplements","MongoDBStorageClassLabels","BaseMongoSdk","MongoDBModuleMixin","ModuleBase","MongoModuleBase","labels","MongoDBStorageClassLabels","_boundWitnessSdk","_payloadSdk","boundWitnessSdkConfig","config","collection","COLLECTIONS","BoundWitnesses","getBaseMongoSdkPrivateConfig","merge","params","boundWitnesses","BaseMongoSdk","assertEx","jobQueue","payloadSdkConfig","Payloads","payloads","ensureIndexes","configIndexes","storage","indexes","ensureIndexesExistOnCollection","sdk","useCollection","collectionName","toLowerCase","filter","ix","name","startsWith","length","createIndexes","error","mongoServerError","codeName","console","escapeChar","toDbProperty","value","replaceAll","fromDbProperty"]}
@@ -1,2 +1,2 @@
1
- export * from './dbProperty';
1
+ export * from './dbProperty.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
@@ -1,2 +1,2 @@
1
- export * from './dbProperty';
1
+ export * from './dbProperty.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
@@ -1,2 +1,2 @@
1
- export * from './dbProperty';
1
+ export * from './dbProperty.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
@@ -1,24 +1,9 @@
1
- /**
2
- * The index direction (1 for ascending, -1 for descending)
3
- */
4
1
  export type IndexDirection = -1 | 1;
5
- /**
6
- * Description of index(es) to be created on a store
7
- */
8
2
  export type IndexDescription = {
9
- /**
10
- * The key(s) to index
11
- */
12
3
  key: {
13
4
  [key: string]: IndexDirection;
14
5
  } | Map<string, IndexDirection>;
15
- /**
16
- * The name of the index
17
- */
18
6
  name?: string;
19
- /**
20
- * If true, the index must enforce uniqueness on the key
21
- */
22
7
  unique?: boolean;
23
8
  };
24
9
  //# sourceMappingURL=IndexDescription.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IndexDescription.d.ts","sourceRoot":"","sources":["../../src/IndexDescription.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAEnC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,GAAG,EACC;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAC9B,GACD,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC/B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA"}
1
+ {"version":3,"file":"IndexDescription.d.ts","sourceRoot":"","sources":["../../src/IndexDescription.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAKnC,MAAM,MAAM,gBAAgB,GAAG;IAI7B,GAAG,EACC;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAC9B,GACD,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAI/B,IAAI,CAAC,EAAE,MAAM,CAAA;IAIb,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA"}
@@ -1,24 +1,9 @@
1
- /**
2
- * The index direction (1 for ascending, -1 for descending)
3
- */
4
1
  export type IndexDirection = -1 | 1;
5
- /**
6
- * Description of index(es) to be created on a store
7
- */
8
2
  export type IndexDescription = {
9
- /**
10
- * The key(s) to index
11
- */
12
3
  key: {
13
4
  [key: string]: IndexDirection;
14
5
  } | Map<string, IndexDirection>;
15
- /**
16
- * The name of the index
17
- */
18
6
  name?: string;
19
- /**
20
- * If true, the index must enforce uniqueness on the key
21
- */
22
7
  unique?: boolean;
23
8
  };
24
9
  //# sourceMappingURL=IndexDescription.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IndexDescription.d.ts","sourceRoot":"","sources":["../../src/IndexDescription.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAEnC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,GAAG,EACC;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAC9B,GACD,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC/B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA"}
1
+ {"version":3,"file":"IndexDescription.d.ts","sourceRoot":"","sources":["../../src/IndexDescription.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAKnC,MAAM,MAAM,gBAAgB,GAAG;IAI7B,GAAG,EACC;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAC9B,GACD,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAI/B,IAAI,CAAC,EAAE,MAAM,CAAA;IAIb,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA"}
@@ -1,24 +1,9 @@
1
- /**
2
- * The index direction (1 for ascending, -1 for descending)
3
- */
4
1
  export type IndexDirection = -1 | 1;
5
- /**
6
- * Description of index(es) to be created on a store
7
- */
8
2
  export type IndexDescription = {
9
- /**
10
- * The key(s) to index
11
- */
12
3
  key: {
13
4
  [key: string]: IndexDirection;
14
5
  } | Map<string, IndexDirection>;
15
- /**
16
- * The name of the index
17
- */
18
6
  name?: string;
19
- /**
20
- * If true, the index must enforce uniqueness on the key
21
- */
22
7
  unique?: boolean;
23
8
  };
24
9
  //# sourceMappingURL=IndexDescription.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IndexDescription.d.ts","sourceRoot":"","sources":["../../src/IndexDescription.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAEnC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,GAAG,EACC;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAC9B,GACD,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC/B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA"}
1
+ {"version":3,"file":"IndexDescription.d.ts","sourceRoot":"","sources":["../../src/IndexDescription.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAKnC,MAAM,MAAM,gBAAgB,GAAG;IAI7B,GAAG,EACC;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAC9B,GACD,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAI/B,IAAI,CAAC,EAAE,MAAM,CAAA;IAIb,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA"}
@@ -1,2 +1,2 @@
1
- export * from './CollectionIndexFunction';
1
+ export * from './CollectionIndexFunction.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Indexes/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Indexes/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA"}
@@ -1,2 +1,2 @@
1
- export * from './CollectionIndexFunction';
1
+ export * from './CollectionIndexFunction.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Indexes/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Indexes/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA"}
@@ -1,2 +1,2 @@
1
- export * from './CollectionIndexFunction';
1
+ export * from './CollectionIndexFunction.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Indexes/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Indexes/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA"}
@@ -3,45 +3,25 @@ import { MongoDBModuleParams, MongoDBStorageClassLabels } from '@xyo-network/mod
3
3
  import { BoundWitnessWithMongoMeta, PayloadWithMongoMeta } from '@xyo-network/payload-mongodb';
4
4
  import { BaseMongoSdk, BaseMongoSdkConfig } from '@xyo-network/sdk-xyo-mongo-js';
5
5
  export type AnyAbstractModule<TParams extends MongoDBModuleParams = MongoDBModuleParams> = abstract new (...args: any[]) => Module<TParams>;
6
- export declare const MongoDBModuleMixin: <TParams extends import("@xylabs/object").BaseParamsFields & {
7
- account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
8
- addToResolvers?: boolean | undefined;
9
- additionalSigners?: import("@xyo-network/account-model").AccountInstance[] | undefined;
10
- allowNameResolution?: boolean | undefined;
6
+ export declare const MongoDBModuleMixin: <TParams extends MongoDBModuleParams = import("@xylabs/object").BaseParamsFields & {
7
+ account?: import("@xyo-network/account-model").AccountInstance | "random";
8
+ addToResolvers?: boolean;
9
+ additionalSigners?: import("@xyo-network/account-model").AccountInstance[];
10
+ allowNameResolution?: boolean;
11
11
  config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
12
12
  boundWitnessSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
13
13
  payloadSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
14
- schema: "network.xyo.module.mongodb.config";
14
+ schema: import("@xyo-network/module-model-mongodb").MongoDBModuleConfigSchema;
15
15
  }, "schema"> & {
16
16
  schema: "network.xyo.module.mongodb.config";
17
17
  }, "schema"> & {
18
18
  schema: string;
19
19
  };
20
- ephemeralQueryAccountEnabled?: boolean | undefined;
21
- moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[] | undefined;
20
+ ephemeralQueryAccountEnabled?: boolean;
21
+ moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
22
22
  } & {
23
23
  boundWitnessSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
24
- jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
25
- payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
26
- } = import("@xylabs/object").BaseParamsFields & {
27
- account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
28
- addToResolvers?: boolean | undefined;
29
- additionalSigners?: import("@xyo-network/account-model").AccountInstance[] | undefined;
30
- allowNameResolution?: boolean | undefined;
31
- config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
32
- boundWitnessSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
33
- payloadSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
34
- schema: "network.xyo.module.mongodb.config";
35
- }, "schema"> & {
36
- schema: "network.xyo.module.mongodb.config";
37
- }, "schema"> & {
38
- schema: string;
39
- };
40
- ephemeralQueryAccountEnabled?: boolean | undefined;
41
- moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[] | undefined;
42
- } & {
43
- boundWitnessSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
44
- jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
24
+ jobQueue?: import("@xyo-network/node-core-model").JobQueue;
45
25
  payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
46
26
  }, TModule extends AnyAbstractModule<TParams> = AnyAbstractModule<TParams>>(ModuleBase: TModule) => ((abstract new (...args: any[]) => {
47
27
  _boundWitnessSdk: BaseMongoSdk<BoundWitnessWithMongoMeta> | undefined;
@@ -51,72 +31,28 @@ export declare const MongoDBModuleMixin: <TParams extends import("@xylabs/object
51
31
  readonly jobQueue: import("@xyo-network/node-core-model").JobQueue;
52
32
  readonly payloadSdkConfig: BaseMongoSdkConfig;
53
33
  readonly payloads: BaseMongoSdk<PayloadWithMongoMeta>;
54
- /**
55
- * Ensures any indexes specified within the config are created. This method should be idempotent
56
- * allowing for multiple calls without causing errors while ensuring the desired state.
57
- */
58
34
  ensureIndexes(): Promise<void>;
59
- address: Lowercase<string>;
35
+ address: import("@xylabs/hex").Address;
60
36
  config: TParams["config"];
61
37
  id: string;
62
- modName?: string | undefined;
38
+ modName?: import("@xyo-network/module-model").ModuleName;
63
39
  params: TParams;
64
40
  previousHash: () => import("@xylabs/promise").Promisable<string | undefined>;
65
41
  queries: string[];
66
- query: <T extends import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/boundwitness-model").BoundWitnessFields & {
67
- additional?: Lowercase<string>[] | undefined;
68
- query: Lowercase<string>;
69
- resultSet?: string | undefined;
70
- schema: "network.xyo.boundwitness";
71
- }, "schema"> & {
72
- schema: "network.xyo.boundwitness";
73
- } = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/boundwitness-model").BoundWitnessFields & {
74
- additional?: Lowercase<string>[] | undefined;
75
- query: Lowercase<string>;
76
- resultSet?: string | undefined;
77
- schema: "network.xyo.boundwitness";
78
- }, "schema"> & {
79
- schema: "network.xyo.boundwitness";
80
- }, TConf extends import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
81
- schema: "network.xyo.module.config";
82
- } = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
83
- schema: "network.xyo.module.config";
84
- }>(query: T, payloads?: ({
85
- schema: string;
86
- } & import("@xyo-network/payload-model").PayloadFields)[] | undefined, queryConfig?: TConf | undefined) => import("@xylabs/promise").Promisable<import("@xyo-network/module-model").ModuleQueryResult>;
87
- queryable: <T_1 extends import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/boundwitness-model").BoundWitnessFields & {
88
- additional?: Lowercase<string>[] | undefined;
89
- query: Lowercase<string>;
90
- resultSet?: string | undefined;
91
- schema: "network.xyo.boundwitness";
92
- }, "schema"> & {
93
- schema: "network.xyo.boundwitness";
94
- } = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/boundwitness-model").BoundWitnessFields & {
95
- additional?: Lowercase<string>[] | undefined;
96
- query: Lowercase<string>;
97
- resultSet?: string | undefined;
98
- schema: "network.xyo.boundwitness";
99
- }, "schema"> & {
100
- schema: "network.xyo.boundwitness";
101
- }, TConf_1 extends import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
102
- schema: "network.xyo.module.config";
103
- } = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
104
- schema: "network.xyo.module.config";
105
- }>(query: T_1, payloads?: ({
106
- schema: string;
107
- } & import("@xyo-network/payload-model").PayloadFields)[] | undefined, queryConfig?: TConf_1 | undefined) => import("@xylabs/promise").Promisable<boolean>;
108
- start?: (() => import("@xylabs/promise").Promisable<boolean>) | undefined;
109
- stop?: (() => import("@xylabs/promise").Promisable<boolean>) | undefined;
42
+ query: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf) => import("@xylabs/promise").Promisable<import("@xyo-network/module-model").ModuleQueryResult>;
43
+ queryable: <T extends import("@xyo-network/boundwitness-model").QueryBoundWitness = import("@xyo-network/boundwitness-model").QueryBoundWitness, TConf_1 extends import("@xyo-network/module-model").ModuleConfig = import("@xyo-network/module-model").ModuleConfig>(query: T, payloads?: import("@xyo-network/payload-model").Payload[], queryConfig?: TConf_1) => import("@xylabs/promise").Promisable<boolean>;
44
+ start?: () => import("@xylabs/promise").Promisable<boolean>;
45
+ stop?: () => import("@xylabs/promise").Promisable<boolean>;
110
46
  eventData: import("@xyo-network/module-model").ModuleEventData<object>;
111
47
  clearListeners(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): void;
112
48
  emit<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
113
- emitSerial<TEventName_1 extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName_1, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName_1]): Promise<void>;
49
+ emitSerial<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
114
50
  listenerCount(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): number;
115
- off<TEventName_2 extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName_2 | TEventName_2[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName_2]>): void;
116
- offAny(listener: Promise<void> | import("@xyo-network/module-events").EventAnyListener<import("@xyo-network/module-events").EventArgs>): void;
117
- on<TEventName_3 extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName_3 | TEventName_3[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName_3]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
118
- onAny(listener: import("@xyo-network/module-events").EventAnyListener<import("@xyo-network/module-events").EventArgs>): import("@xyo-network/module-events").EventUnsubscribeFunction;
119
- once<TEventName_4 extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName_4, listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName_4]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
51
+ off<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): void;
52
+ offAny(listener: import("@xyo-network/module-events").EventAnyListener | Promise<void>): void;
53
+ on<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName | TEventName[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
54
+ onAny(listener: import("@xyo-network/module-events").EventAnyListener): import("@xyo-network/module-events").EventUnsubscribeFunction;
55
+ once<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
120
56
  }) & {
121
57
  labels: MongoDBStorageClassLabels;
122
58
  }) & TModule;
@@ -1 +1 @@
1
- {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC9F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wFAIjB,OAAO,8BAN6F,GAAG,EAAE;sBAWjG,aAAa,yBAAyB,CAAC,GAAG,SAAS;iBACxD,aAAa,oBAAoB,CAAC,GAAG,SAAS;;;;;;IA8B3D;;;OAGG;qBACoB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAOvC,CAAA"}
1
+ {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../../src/Module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAiB,mBAAmB,EAAuB,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACtI,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC9F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAQhF,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;AAE3I,eAAO,MAAM,kBAAkB,GAC7B,OAAO,SAAS,mBAAmB;;;;;;;;;;;;;;;;;;;;GACnC,OAAO,SAAS,iBAAiB,CAAC,OAAO,CAAC,2CAE9B,OAAO,8BAN6F,GAAG,EAAE;sBAWjG,YAAY,CAAC,yBAAyB,CAAC,GAAG,SAAS;iBACxD,YAAY,CAAC,oBAAoB,CAAC,GAAG,SAAS;;;;;;qBAkCpC,OAAO,CAAC,IAAI,CAAC;;;;;;;;sRA9CF,CAAA,6DAAwB,CAAC;4RAGR,CAAC,6DACrC,CAAC;;;;;;;;;;;;;;;YAiDnB,CAAA"}