@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.
Files changed (235) hide show
  1. package/eslint.config.mjs +1 -1
  2. package/package.json +23 -21
  3. package/scripts/run-cycle.mjs +71 -0
  4. package/packages/modules-mongo/dist/browser/index.mjs +0 -195
  5. package/packages/modules-mongo/dist/browser/index.mjs.map +0 -1
  6. package/packages/modules-mongo/dist/neutral/index.mjs +0 -195
  7. package/packages/modules-mongo/dist/neutral/index.mjs.map +0 -1
  8. package/packages/modules-mongo/dist/node/index.mjs +0 -195
  9. package/packages/modules-mongo/dist/node/index.mjs.map +0 -1
  10. package/packages/modules-mongo/dist/types/Archivist/addArchivistModuleFactories.d.ts +0 -3
  11. package/packages/modules-mongo/dist/types/Archivist/addArchivistModuleFactories.d.ts.map +0 -1
  12. package/packages/modules-mongo/dist/types/Archivist/index.d.ts +0 -2
  13. package/packages/modules-mongo/dist/types/Archivist/index.d.ts.map +0 -1
  14. package/packages/modules-mongo/dist/types/Diviner/addDivinerModuleFactories.d.ts +0 -3
  15. package/packages/modules-mongo/dist/types/Diviner/addDivinerModuleFactories.d.ts.map +0 -1
  16. package/packages/modules-mongo/dist/types/Diviner/index.d.ts +0 -2
  17. package/packages/modules-mongo/dist/types/Diviner/index.d.ts.map +0 -1
  18. package/packages/modules-mongo/dist/types/Job/getJobs.d.ts +0 -4
  19. package/packages/modules-mongo/dist/types/Job/getJobs.d.ts.map +0 -1
  20. package/packages/modules-mongo/dist/types/Job/index.d.ts +0 -2
  21. package/packages/modules-mongo/dist/types/Job/index.d.ts.map +0 -1
  22. package/packages/modules-mongo/dist/types/JobQueue/JobQueueContainerModule.d.ts +0 -3
  23. package/packages/modules-mongo/dist/types/JobQueue/JobQueueContainerModule.d.ts.map +0 -1
  24. package/packages/modules-mongo/dist/types/JobQueue/getJobQueue.d.ts +0 -3
  25. package/packages/modules-mongo/dist/types/JobQueue/getJobQueue.d.ts.map +0 -1
  26. package/packages/modules-mongo/dist/types/JobQueue/getName.d.ts +0 -2
  27. package/packages/modules-mongo/dist/types/JobQueue/getName.d.ts.map +0 -1
  28. package/packages/modules-mongo/dist/types/JobQueue/index.d.ts +0 -2
  29. package/packages/modules-mongo/dist/types/JobQueue/index.d.ts.map +0 -1
  30. package/packages/modules-mongo/dist/types/Mongo/AddressInfo.d.ts +0 -6
  31. package/packages/modules-mongo/dist/types/Mongo/AddressInfo.d.ts.map +0 -1
  32. package/packages/modules-mongo/dist/types/Mongo/Indexes/IndexCreationInfo.d.ts +0 -3
  33. package/packages/modules-mongo/dist/types/Mongo/Indexes/IndexCreationInfo.d.ts.map +0 -1
  34. package/packages/modules-mongo/dist/types/Mongo/Indexes/Specifications/AddressInfo/UX_address.d.ts +0 -3
  35. package/packages/modules-mongo/dist/types/Mongo/Indexes/Specifications/AddressInfo/UX_address.d.ts.map +0 -1
  36. package/packages/modules-mongo/dist/types/Mongo/Indexes/Specifications/AddressInfo/index.d.ts +0 -3
  37. package/packages/modules-mongo/dist/types/Mongo/Indexes/Specifications/AddressInfo/index.d.ts.map +0 -1
  38. package/packages/modules-mongo/dist/types/Mongo/Indexes/Specifications/index.d.ts +0 -2
  39. package/packages/modules-mongo/dist/types/Mongo/Indexes/Specifications/index.d.ts.map +0 -1
  40. package/packages/modules-mongo/dist/types/Mongo/Indexes/addIndexes.d.ts +0 -2
  41. package/packages/modules-mongo/dist/types/Mongo/Indexes/addIndexes.d.ts.map +0 -1
  42. package/packages/modules-mongo/dist/types/Mongo/Indexes/index.d.ts +0 -2
  43. package/packages/modules-mongo/dist/types/Mongo/Indexes/index.d.ts.map +0 -1
  44. package/packages/modules-mongo/dist/types/Mongo/index.d.ts +0 -3
  45. package/packages/modules-mongo/dist/types/Mongo/index.d.ts.map +0 -1
  46. package/packages/modules-mongo/dist/types/Mongo/initializeDatabase.d.ts +0 -2
  47. package/packages/modules-mongo/dist/types/Mongo/initializeDatabase.d.ts.map +0 -1
  48. package/packages/modules-mongo/dist/types/PreviousHashStore/MongoDBPreviousHashStore.d.ts +0 -12
  49. package/packages/modules-mongo/dist/types/PreviousHashStore/MongoDBPreviousHashStore.d.ts.map +0 -1
  50. package/packages/modules-mongo/dist/types/PreviousHashStore/addPreviousHashStore.d.ts +0 -2
  51. package/packages/modules-mongo/dist/types/PreviousHashStore/addPreviousHashStore.d.ts.map +0 -1
  52. package/packages/modules-mongo/dist/types/PreviousHashStore/index.d.ts +0 -2
  53. package/packages/modules-mongo/dist/types/PreviousHashStore/index.d.ts.map +0 -1
  54. package/packages/modules-mongo/dist/types/addMongoModules.d.ts +0 -3
  55. package/packages/modules-mongo/dist/types/addMongoModules.d.ts.map +0 -1
  56. package/packages/modules-mongo/dist/types/canAddMongoModules.d.ts +0 -2
  57. package/packages/modules-mongo/dist/types/canAddMongoModules.d.ts.map +0 -1
  58. package/packages/modules-mongo/dist/types/index.d.ts +0 -4
  59. package/packages/modules-mongo/dist/types/index.d.ts.map +0 -1
  60. package/packages/modules-mongo/dist/types/mongoTypes.d.ts +0 -5
  61. package/packages/modules-mongo/dist/types/mongoTypes.d.ts.map +0 -1
  62. package/packages/modules-mongo/packages/archivist/dist/browser/index.mjs +0 -274
  63. package/packages/modules-mongo/packages/archivist/dist/browser/index.mjs.map +0 -1
  64. package/packages/modules-mongo/packages/archivist/dist/neutral/index.mjs +0 -274
  65. package/packages/modules-mongo/packages/archivist/dist/neutral/index.mjs.map +0 -1
  66. package/packages/modules-mongo/packages/archivist/dist/node/index.mjs +0 -274
  67. package/packages/modules-mongo/packages/archivist/dist/node/index.mjs.map +0 -1
  68. package/packages/modules-mongo/packages/archivist/dist/types/Archivist.d.ts +0 -69
  69. package/packages/modules-mongo/packages/archivist/dist/types/Archivist.d.ts.map +0 -1
  70. package/packages/modules-mongo/packages/archivist/dist/types/ArchivistV2.d.ts +0 -65
  71. package/packages/modules-mongo/packages/archivist/dist/types/ArchivistV2.d.ts.map +0 -1
  72. package/packages/modules-mongo/packages/archivist/dist/types/index.d.ts +0 -4
  73. package/packages/modules-mongo/packages/archivist/dist/types/index.d.ts.map +0 -1
  74. package/packages/modules-mongo/packages/archivist/dist/types/lib/index.d.ts +0 -2
  75. package/packages/modules-mongo/packages/archivist/dist/types/lib/index.d.ts.map +0 -1
  76. package/packages/modules-mongo/packages/archivist/dist/types/lib/validByType.d.ts +0 -4
  77. package/packages/modules-mongo/packages/archivist/dist/types/lib/validByType.d.ts.map +0 -1
  78. package/packages/modules-mongo/packages/archivist/packages/model/dist/browser/index.mjs +0 -6
  79. package/packages/modules-mongo/packages/archivist/packages/model/dist/browser/index.mjs.map +0 -1
  80. package/packages/modules-mongo/packages/archivist/packages/model/dist/neutral/index.mjs +0 -6
  81. package/packages/modules-mongo/packages/archivist/packages/model/dist/neutral/index.mjs.map +0 -1
  82. package/packages/modules-mongo/packages/archivist/packages/model/dist/node/index.mjs +0 -6
  83. package/packages/modules-mongo/packages/archivist/packages/model/dist/node/index.mjs.map +0 -1
  84. package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Config.d.ts +0 -9
  85. package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Config.d.ts.map +0 -1
  86. package/packages/modules-mongo/packages/archivist/packages/model/dist/types/ConfigV2.d.ts +0 -8
  87. package/packages/modules-mongo/packages/archivist/packages/model/dist/types/ConfigV2.d.ts.map +0 -1
  88. package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Labels.d.ts +0 -5
  89. package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Labels.d.ts.map +0 -1
  90. package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Params.d.ts +0 -9
  91. package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Params.d.ts.map +0 -1
  92. package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Schema.d.ts +0 -3
  93. package/packages/modules-mongo/packages/archivist/packages/model/dist/types/Schema.d.ts.map +0 -1
  94. package/packages/modules-mongo/packages/archivist/packages/model/dist/types/index.d.ts +0 -5
  95. package/packages/modules-mongo/packages/archivist/packages/model/dist/types/index.d.ts.map +0 -1
  96. package/packages/modules-mongo/packages/diviner/dist/browser/index.mjs +0 -1100
  97. package/packages/modules-mongo/packages/diviner/dist/browser/index.mjs.map +0 -1
  98. package/packages/modules-mongo/packages/diviner/dist/neutral/index.mjs +0 -1100
  99. package/packages/modules-mongo/packages/diviner/dist/neutral/index.mjs.map +0 -1
  100. package/packages/modules-mongo/packages/diviner/dist/node/index.mjs +0 -1100
  101. package/packages/modules-mongo/packages/diviner/dist/node/index.mjs.map +0 -1
  102. package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/defineJobs.d.ts +0 -3
  103. package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/defineJobs.d.ts.map +0 -1
  104. package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/getName.d.ts +0 -2
  105. package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/getName.d.ts.map +0 -1
  106. package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/index.d.ts +0 -3
  107. package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/index.d.ts.map +0 -1
  108. package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/scheduleJobs.d.ts +0 -3
  109. package/packages/modules-mongo/packages/diviner/dist/types/JobQueue/scheduleJobs.d.ts.map +0 -1
  110. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBAddressHistoryDiviner.d.ts +0 -61
  111. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBAddressHistoryDiviner.d.ts.map +0 -1
  112. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBAddressSpaceBatchDiviner.d.ts +0 -67
  113. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBAddressSpaceBatchDiviner.d.ts.map +0 -1
  114. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBAddressSpaceDiviner.d.ts +0 -57
  115. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBAddressSpaceDiviner.d.ts.map +0 -1
  116. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBBoundWitnessDiviner.d.ts +0 -59
  117. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBBoundWitnessDiviner.d.ts.map +0 -1
  118. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBBoundWitnessStatsDiviner.d.ts +0 -91
  119. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBBoundWitnessStatsDiviner.d.ts.map +0 -1
  120. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBPayloadDiviner.d.ts +0 -57
  121. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBPayloadDiviner.d.ts.map +0 -1
  122. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBPayloadStatsDiviner.d.ts +0 -104
  123. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBPayloadStatsDiviner.d.ts.map +0 -1
  124. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBSchemaListDiviner.d.ts +0 -61
  125. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBSchemaListDiviner.d.ts.map +0 -1
  126. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBSchemaStatsDiviner.d.ts +0 -113
  127. package/packages/modules-mongo/packages/diviner/dist/types/MongoDBSchemaStatsDiviner.d.ts.map +0 -1
  128. package/packages/modules-mongo/packages/diviner/dist/types/SetIterator/BatchSetIterator.d.ts +0 -10
  129. package/packages/modules-mongo/packages/diviner/dist/types/SetIterator/BatchSetIterator.d.ts.map +0 -1
  130. package/packages/modules-mongo/packages/diviner/dist/types/SetIterator/SetIterator.d.ts +0 -9
  131. package/packages/modules-mongo/packages/diviner/dist/types/SetIterator/SetIterator.d.ts.map +0 -1
  132. package/packages/modules-mongo/packages/diviner/dist/types/SetIterator/index.d.ts +0 -3
  133. package/packages/modules-mongo/packages/diviner/dist/types/SetIterator/index.d.ts.map +0 -1
  134. package/packages/modules-mongo/packages/diviner/dist/types/UserLocationsDiviner.d.ts +0 -41
  135. package/packages/modules-mongo/packages/diviner/dist/types/UserLocationsDiviner.d.ts.map +0 -1
  136. package/packages/modules-mongo/packages/diviner/dist/types/index.d.ts +0 -12
  137. package/packages/modules-mongo/packages/diviner/dist/types/index.d.ts.map +0 -1
  138. package/packages/modules-mongo/packages/module/dist/browser/index.mjs +0 -4
  139. package/packages/modules-mongo/packages/module/dist/browser/index.mjs.map +0 -1
  140. package/packages/modules-mongo/packages/module/dist/neutral/index.mjs +0 -4
  141. package/packages/modules-mongo/packages/module/dist/neutral/index.mjs.map +0 -1
  142. package/packages/modules-mongo/packages/module/dist/node/index.mjs +0 -4
  143. package/packages/modules-mongo/packages/module/dist/node/index.mjs.map +0 -1
  144. package/packages/modules-mongo/packages/module/dist/types/index.d.ts +0 -3
  145. package/packages/modules-mongo/packages/module/dist/types/index.d.ts.map +0 -1
  146. package/packages/modules-mongo/packages/module/packages/abstract/dist/browser/index.mjs +0 -277
  147. package/packages/modules-mongo/packages/module/packages/abstract/dist/browser/index.mjs.map +0 -1
  148. package/packages/modules-mongo/packages/module/packages/abstract/dist/neutral/index.mjs +0 -277
  149. package/packages/modules-mongo/packages/module/packages/abstract/dist/neutral/index.mjs.map +0 -1
  150. package/packages/modules-mongo/packages/module/packages/abstract/dist/node/index.mjs +0 -277
  151. package/packages/modules-mongo/packages/module/packages/abstract/dist/node/index.mjs.map +0 -1
  152. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/AnyAbstractModule.d.ts +0 -4
  153. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/AnyAbstractModule.d.ts.map +0 -1
  154. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Collections.d.ts +0 -9
  155. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Collections.d.ts.map +0 -1
  156. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Databases.d.ts +0 -4
  157. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Databases.d.ts.map +0 -1
  158. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Defaults.d.ts +0 -5
  159. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Defaults.d.ts.map +0 -1
  160. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/IndexDescription.d.ts +0 -24
  161. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/IndexDescription.d.ts.map +0 -1
  162. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Indexes/CollectionIndexFunction.d.ts +0 -3
  163. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Indexes/CollectionIndexFunction.d.ts.map +0 -1
  164. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Indexes/index.d.ts +0 -2
  165. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Indexes/index.d.ts.map +0 -1
  166. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Module.d.ts +0 -42
  167. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/Module.d.ts.map +0 -1
  168. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/ModuleV2.d.ts +0 -39
  169. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/ModuleV2.d.ts.map +0 -1
  170. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/getBaseMongoSdk.d.ts +0 -6
  171. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/getBaseMongoSdk.d.ts.map +0 -1
  172. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/getMongoDBConfig.d.ts +0 -5
  173. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/getMongoDBConfig.d.ts.map +0 -1
  174. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/hasMongoDBConfig.d.ts +0 -2
  175. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/hasMongoDBConfig.d.ts.map +0 -1
  176. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/index.d.ts +0 -4
  177. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/config/index.d.ts.map +0 -1
  178. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/index.d.ts +0 -10
  179. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/index.d.ts.map +0 -1
  180. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/util/dbProperty.d.ts +0 -4
  181. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/util/dbProperty.d.ts.map +0 -1
  182. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/util/index.d.ts +0 -2
  183. package/packages/modules-mongo/packages/module/packages/abstract/dist/types/util/index.d.ts.map +0 -1
  184. package/packages/modules-mongo/packages/module/packages/model/dist/browser/index.mjs +0 -10
  185. package/packages/modules-mongo/packages/module/packages/model/dist/browser/index.mjs.map +0 -1
  186. package/packages/modules-mongo/packages/module/packages/model/dist/neutral/index.mjs +0 -10
  187. package/packages/modules-mongo/packages/module/packages/model/dist/neutral/index.mjs.map +0 -1
  188. package/packages/modules-mongo/packages/module/packages/model/dist/node/index.mjs +0 -10
  189. package/packages/modules-mongo/packages/module/packages/model/dist/node/index.mjs.map +0 -1
  190. package/packages/modules-mongo/packages/module/packages/model/dist/types/Config.d.ts +0 -9
  191. package/packages/modules-mongo/packages/module/packages/model/dist/types/Config.d.ts.map +0 -1
  192. package/packages/modules-mongo/packages/module/packages/model/dist/types/ConfigV2.d.ts +0 -8
  193. package/packages/modules-mongo/packages/module/packages/model/dist/types/ConfigV2.d.ts.map +0 -1
  194. package/packages/modules-mongo/packages/module/packages/model/dist/types/Labels.d.ts +0 -6
  195. package/packages/modules-mongo/packages/module/packages/model/dist/types/Labels.d.ts.map +0 -1
  196. package/packages/modules-mongo/packages/module/packages/model/dist/types/Module.d.ts +0 -9
  197. package/packages/modules-mongo/packages/module/packages/model/dist/types/Module.d.ts.map +0 -1
  198. package/packages/modules-mongo/packages/module/packages/model/dist/types/ModuleV2.d.ts +0 -7
  199. package/packages/modules-mongo/packages/module/packages/model/dist/types/ModuleV2.d.ts.map +0 -1
  200. package/packages/modules-mongo/packages/module/packages/model/dist/types/MongoDBModuleStatic.d.ts +0 -5
  201. package/packages/modules-mongo/packages/module/packages/model/dist/types/MongoDBModuleStatic.d.ts.map +0 -1
  202. package/packages/modules-mongo/packages/module/packages/model/dist/types/Params.d.ts +0 -10
  203. package/packages/modules-mongo/packages/module/packages/model/dist/types/Params.d.ts.map +0 -1
  204. package/packages/modules-mongo/packages/module/packages/model/dist/types/ParamsV2.d.ts +0 -9
  205. package/packages/modules-mongo/packages/module/packages/model/dist/types/ParamsV2.d.ts.map +0 -1
  206. package/packages/modules-mongo/packages/module/packages/model/dist/types/Schema.d.ts +0 -3
  207. package/packages/modules-mongo/packages/module/packages/model/dist/types/Schema.d.ts.map +0 -1
  208. package/packages/modules-mongo/packages/module/packages/model/dist/types/index.d.ts +0 -10
  209. package/packages/modules-mongo/packages/module/packages/model/dist/types/index.d.ts.map +0 -1
  210. package/packages/modules-mongo/packages/payload/dist/browser/index.mjs +0 -51
  211. package/packages/modules-mongo/packages/payload/dist/browser/index.mjs.map +0 -1
  212. package/packages/modules-mongo/packages/payload/dist/neutral/index.mjs +0 -51
  213. package/packages/modules-mongo/packages/payload/dist/neutral/index.mjs.map +0 -1
  214. package/packages/modules-mongo/packages/payload/dist/node/index.mjs +0 -51
  215. package/packages/modules-mongo/packages/payload/dist/node/index.mjs.map +0 -1
  216. package/packages/modules-mongo/packages/payload/dist/types/BoundWitness/BoundWitnessMongoMeta.d.ts +0 -7
  217. package/packages/modules-mongo/packages/payload/dist/types/BoundWitness/BoundWitnessMongoMeta.d.ts.map +0 -1
  218. package/packages/modules-mongo/packages/payload/dist/types/BoundWitness/BoundWitnessWithMongoMeta.d.ts +0 -6
  219. package/packages/modules-mongo/packages/payload/dist/types/BoundWitness/BoundWitnessWithMongoMeta.d.ts.map +0 -1
  220. package/packages/modules-mongo/packages/payload/dist/types/BoundWitness/index.d.ts +0 -3
  221. package/packages/modules-mongo/packages/payload/dist/types/BoundWitness/index.d.ts.map +0 -1
  222. package/packages/modules-mongo/packages/payload/dist/types/Mappings/fromDbRepresentation.d.ts +0 -8
  223. package/packages/modules-mongo/packages/payload/dist/types/Mappings/fromDbRepresentation.d.ts.map +0 -1
  224. package/packages/modules-mongo/packages/payload/dist/types/Mappings/index.d.ts +0 -3
  225. package/packages/modules-mongo/packages/payload/dist/types/Mappings/index.d.ts.map +0 -1
  226. package/packages/modules-mongo/packages/payload/dist/types/Mappings/toDbRepresentation.d.ts +0 -8
  227. package/packages/modules-mongo/packages/payload/dist/types/Mappings/toDbRepresentation.d.ts.map +0 -1
  228. package/packages/modules-mongo/packages/payload/dist/types/Payload/PayloadMongoMeta.d.ts +0 -11
  229. package/packages/modules-mongo/packages/payload/dist/types/Payload/PayloadMongoMeta.d.ts.map +0 -1
  230. package/packages/modules-mongo/packages/payload/dist/types/Payload/PayloadWithMongoMeta.d.ts +0 -5
  231. package/packages/modules-mongo/packages/payload/dist/types/Payload/PayloadWithMongoMeta.d.ts.map +0 -1
  232. package/packages/modules-mongo/packages/payload/dist/types/Payload/index.d.ts +0 -3
  233. package/packages/modules-mongo/packages/payload/dist/types/Payload/index.d.ts.map +0 -1
  234. package/packages/modules-mongo/packages/payload/dist/types/index.d.ts +0 -4
  235. 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.12.5",
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.12.5",
58
- "@xyo-network/manifest": "^3.12.5",
59
- "@xyo-network/modules": "^3.12.5",
60
- "@xyo-network/protocol": "^3.12.5",
61
- "@xyo-network/sdk-utils": "^3.12.5",
62
- "@xyo-network/shared": "^3.12.5"
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.4",
66
- "@firebase/app-compat": "^0.2.53",
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.30.1",
70
- "@typescript-eslint/parser": "^8.30.1",
71
- "@vitest/coverage-v8": "^3.1.1",
72
- "@xylabs/eslint-config-flat": "^6.2.1",
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.2.1",
75
- "@xylabs/tsconfig": "^6.2.1",
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.24.0",
79
- "eslint-import-resolver-typescript": "^4.3.2",
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.2",
87
- "typedoc-plugin-markdown": "^4.6.2",
88
+ "typedoc": "^0.28.3",
89
+ "typedoc-plugin-markdown": "^4.6.3",
88
90
  "typescript": "^5.8.3",
89
- "vitest": "^3.1.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"]}