@prosopo/database 4.2.9 → 4.3.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 (316) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +3 -3
  2. package/.turbo/{turbo-build.log → turbo-build$colon$esm.log} +15 -16
  3. package/.turbo/turbo-build$colon$tsc.log +15 -15
  4. package/.turbo/turbo-build$colon$types.log +1 -0
  5. package/CHANGELOG.md +38 -0
  6. package/dist/cjs/databases/client.cjs +3 -1
  7. package/dist/cjs/databases/provider.cjs +1 -1
  8. package/dist/{databases → esm/databases}/client.js +3 -1
  9. package/dist/{databases → esm/databases}/provider.js +1 -1
  10. package/dist/tsc/base/index.d.ts.map +1 -0
  11. package/dist/tsc/base/index.js +3 -0
  12. package/dist/tsc/base/index.js.map +1 -0
  13. package/dist/tsc/base/mongo.d.ts.map +1 -0
  14. package/dist/tsc/base/mongo.js +142 -0
  15. package/dist/tsc/base/mongo.js.map +1 -0
  16. package/dist/tsc/base/mongoMemory.d.ts.map +1 -0
  17. package/dist/tsc/base/mongoMemory.js +21 -0
  18. package/dist/tsc/base/mongoMemory.js.map +1 -0
  19. package/dist/tsc/databases/captcha.d.ts.map +1 -0
  20. package/dist/tsc/databases/captcha.js +276 -0
  21. package/dist/tsc/databases/captcha.js.map +1 -0
  22. package/dist/tsc/databases/centralDbStreamer.d.ts.map +1 -0
  23. package/dist/tsc/databases/centralDbStreamer.js +163 -0
  24. package/dist/tsc/databases/centralDbStreamer.js.map +1 -0
  25. package/dist/{databases → tsc/databases}/client.d.ts +1 -1
  26. package/dist/tsc/databases/client.d.ts.map +1 -0
  27. package/dist/tsc/databases/client.js +72 -0
  28. package/dist/tsc/databases/client.js.map +1 -0
  29. package/dist/tsc/databases/clientRecordCache.d.ts.map +1 -0
  30. package/dist/tsc/databases/clientRecordCache.js +31 -0
  31. package/dist/tsc/databases/clientRecordCache.js.map +1 -0
  32. package/dist/tsc/databases/index.d.ts.map +1 -0
  33. package/dist/tsc/databases/index.js +18 -0
  34. package/dist/tsc/databases/index.js.map +1 -0
  35. package/dist/tsc/databases/provider.d.ts.map +1 -0
  36. package/dist/tsc/databases/provider.js +2052 -0
  37. package/dist/tsc/databases/provider.js.map +1 -0
  38. package/dist/tsc/errorSites.d.ts.map +1 -0
  39. package/dist/{errorSites.js.map → tsc/errorSites.js.map} +1 -1
  40. package/dist/tsc/index.d.ts.map +1 -0
  41. package/dist/tsc/index.js +7 -0
  42. package/dist/tsc/index.js.map +1 -0
  43. package/dist/tsc/mongooseOptions.d.ts.map +1 -0
  44. package/dist/tsc/mongooseOptions.js +56 -0
  45. package/dist/tsc/mongooseOptions.js.map +1 -0
  46. package/dist/tsc/redisCache.d.ts.map +1 -0
  47. package/dist/tsc/redisCache.js +340 -0
  48. package/dist/tsc/redisCache.js.map +1 -0
  49. package/dist/tsc/tests/integration/centralStreamingEnrichment.integration.test.d.ts.map +1 -0
  50. package/dist/tsc/tests/integration/centralStreamingEnrichment.integration.test.js.map +1 -0
  51. package/dist/tsc/tests/integration/clientRecordCache.integration.test.d.ts.map +1 -0
  52. package/dist/tsc/tests/integration/clientRecordCache.integration.test.js.map +1 -0
  53. package/dist/tsc/tests/integration/commitmentRecordProjection.integration.test.d.ts.map +1 -0
  54. package/dist/tsc/tests/integration/commitmentRecordProjection.integration.test.js.map +1 -0
  55. package/dist/tsc/tests/integration/commitmentUpdateTimestamp.integration.test.d.ts.map +1 -0
  56. package/dist/tsc/tests/integration/commitmentUpdateTimestamp.integration.test.js.map +1 -0
  57. package/dist/tsc/tests/integration/commitmentUpsertNoMutation.integration.test.d.ts.map +1 -0
  58. package/dist/tsc/tests/integration/commitmentUpsertNoMutation.integration.test.js.map +1 -0
  59. package/dist/tsc/tests/integration/countCommitmentsByNormalisedEmail.integration.test.d.ts.map +1 -0
  60. package/dist/tsc/tests/integration/countCommitmentsByNormalisedEmail.integration.test.js.map +1 -0
  61. package/dist/tsc/tests/integration/getUpdatedClients.integration.test.d.ts.map +1 -0
  62. package/dist/{tests → tsc/tests}/integration/getUpdatedClients.integration.test.js +39 -1
  63. package/dist/tsc/tests/integration/getUpdatedClients.integration.test.js.map +1 -0
  64. package/dist/tsc/tests/integration/ipInfoPersistence.integration.test.d.ts.map +1 -0
  65. package/dist/tsc/tests/integration/ipInfoPersistence.integration.test.js.map +1 -0
  66. package/dist/tsc/tests/integration/projectionContract.d.ts.map +1 -0
  67. package/dist/tsc/tests/integration/projectionContract.js.map +1 -0
  68. package/dist/tsc/tests/integration/projectionContracts.integration.test.d.ts.map +1 -0
  69. package/dist/tsc/tests/integration/projectionContracts.integration.test.js.map +1 -0
  70. package/dist/tsc/tests/integration/providedIpPipelineCast.integration.test.d.ts.map +1 -0
  71. package/dist/tsc/tests/integration/providedIpPipelineCast.integration.test.js.map +1 -0
  72. package/dist/tsc/tests/integration/puzzleCentralStreaming.integration.test.d.ts.map +1 -0
  73. package/dist/tsc/tests/integration/puzzleCentralStreaming.integration.test.js.map +1 -0
  74. package/dist/tsc/tests/integration/redisCacheSessionPatch.integration.test.d.ts.map +1 -0
  75. package/dist/tsc/tests/integration/redisCacheSessionPatch.integration.test.js.map +1 -0
  76. package/dist/tsc/tests/integration/saveCaptchasSessionUpsert.integration.test.d.ts.map +1 -0
  77. package/dist/tsc/tests/integration/saveCaptchasSessionUpsert.integration.test.js.map +1 -0
  78. package/dist/tsc/tests/integration/serverCheckClaim.integration.test.d.ts.map +1 -0
  79. package/dist/tsc/tests/integration/serverCheckClaim.integration.test.js.map +1 -0
  80. package/dist/tsc/tests/integration/sessionRecordProjection.integration.test.d.ts.map +1 -0
  81. package/dist/tsc/tests/integration/sessionRecordProjection.integration.test.js.map +1 -0
  82. package/dist/tsc/tests/mongoGlobalSetup.d.ts.map +1 -0
  83. package/dist/tsc/tests/mongoGlobalSetup.js.map +1 -0
  84. package/dist/tsc/tests/mongooseOptions.unit.test.d.ts.map +1 -0
  85. package/dist/tsc/tests/mongooseOptions.unit.test.js.map +1 -0
  86. package/dist/tsc/tests/unit/base/mongo.unit.test.d.ts.map +1 -0
  87. package/dist/tsc/tests/unit/base/mongo.unit.test.js.map +1 -0
  88. package/dist/tsc/tests/unit/captchaLabel.unit.test.d.ts.map +1 -0
  89. package/dist/tsc/tests/unit/captchaLabel.unit.test.js.map +1 -0
  90. package/dist/tsc/tests/unit/databases/centralDbStreamer.unit.test.d.ts.map +1 -0
  91. package/dist/tsc/tests/unit/databases/centralDbStreamer.unit.test.js.map +1 -0
  92. package/dist/tsc/tests/unit/detectorBundleTtl.unit.test.d.ts.map +1 -0
  93. package/dist/tsc/tests/unit/detectorBundleTtl.unit.test.js.map +1 -0
  94. package/dist/tsc/tests/unit/inputMethods.unit.test.d.ts.map +1 -0
  95. package/dist/tsc/tests/unit/inputMethods.unit.test.js.map +1 -0
  96. package/dist/tsc/tests/unit/redisCacheEscalation.unit.test.d.ts.map +1 -0
  97. package/dist/tsc/tests/unit/redisCacheEscalation.unit.test.js.map +1 -0
  98. package/dist/types/base/index.d.ts +3 -0
  99. package/dist/types/base/index.d.ts.map +1 -0
  100. package/dist/types/base/mongo.d.ts +24 -0
  101. package/dist/types/base/mongo.d.ts.map +1 -0
  102. package/dist/types/base/mongoMemory.d.ts +10 -0
  103. package/dist/types/base/mongoMemory.d.ts.map +1 -0
  104. package/dist/types/databases/captcha.d.ts +34 -0
  105. package/dist/types/databases/captcha.d.ts.map +1 -0
  106. package/dist/types/databases/centralDbStreamer.d.ts +29 -0
  107. package/dist/types/databases/centralDbStreamer.d.ts.map +1 -0
  108. package/dist/types/databases/client.d.ts +12 -0
  109. package/dist/types/databases/client.d.ts.map +1 -0
  110. package/dist/types/databases/clientRecordCache.d.ts +11 -0
  111. package/dist/types/databases/clientRecordCache.d.ts.map +1 -0
  112. package/dist/types/databases/index.d.ts +17 -0
  113. package/dist/types/databases/index.d.ts.map +1 -0
  114. package/dist/types/databases/provider.d.ts +171 -0
  115. package/dist/types/databases/provider.d.ts.map +1 -0
  116. package/dist/types/errorSites.d.ts +57 -0
  117. package/dist/types/errorSites.d.ts.map +1 -0
  118. package/dist/types/index.d.ts +5 -0
  119. package/dist/types/index.d.ts.map +1 -0
  120. package/dist/types/mongooseOptions.d.ts +15 -0
  121. package/dist/types/mongooseOptions.d.ts.map +1 -0
  122. package/dist/types/redisCache.d.ts +26 -0
  123. package/dist/types/redisCache.d.ts.map +1 -0
  124. package/dist/types/tests/integration/centralStreamingEnrichment.integration.test.d.ts +2 -0
  125. package/dist/types/tests/integration/centralStreamingEnrichment.integration.test.d.ts.map +1 -0
  126. package/dist/types/tests/integration/clientRecordCache.integration.test.d.ts +2 -0
  127. package/dist/types/tests/integration/clientRecordCache.integration.test.d.ts.map +1 -0
  128. package/dist/types/tests/integration/commitmentRecordProjection.integration.test.d.ts +2 -0
  129. package/dist/types/tests/integration/commitmentRecordProjection.integration.test.d.ts.map +1 -0
  130. package/dist/types/tests/integration/commitmentUpdateTimestamp.integration.test.d.ts +2 -0
  131. package/dist/types/tests/integration/commitmentUpdateTimestamp.integration.test.d.ts.map +1 -0
  132. package/dist/types/tests/integration/commitmentUpsertNoMutation.integration.test.d.ts +2 -0
  133. package/dist/types/tests/integration/commitmentUpsertNoMutation.integration.test.d.ts.map +1 -0
  134. package/dist/types/tests/integration/countCommitmentsByNormalisedEmail.integration.test.d.ts +2 -0
  135. package/dist/types/tests/integration/countCommitmentsByNormalisedEmail.integration.test.d.ts.map +1 -0
  136. package/dist/types/tests/integration/getUpdatedClients.integration.test.d.ts +2 -0
  137. package/dist/types/tests/integration/getUpdatedClients.integration.test.d.ts.map +1 -0
  138. package/dist/types/tests/integration/ipInfoPersistence.integration.test.d.ts +2 -0
  139. package/dist/types/tests/integration/ipInfoPersistence.integration.test.d.ts.map +1 -0
  140. package/dist/types/tests/integration/projectionContract.d.ts +9 -0
  141. package/dist/types/tests/integration/projectionContract.d.ts.map +1 -0
  142. package/dist/types/tests/integration/projectionContracts.integration.test.d.ts +2 -0
  143. package/dist/types/tests/integration/projectionContracts.integration.test.d.ts.map +1 -0
  144. package/dist/types/tests/integration/providedIpPipelineCast.integration.test.d.ts +2 -0
  145. package/dist/types/tests/integration/providedIpPipelineCast.integration.test.d.ts.map +1 -0
  146. package/dist/types/tests/integration/puzzleCentralStreaming.integration.test.d.ts +2 -0
  147. package/dist/types/tests/integration/puzzleCentralStreaming.integration.test.d.ts.map +1 -0
  148. package/dist/types/tests/integration/redisCacheSessionPatch.integration.test.d.ts +2 -0
  149. package/dist/types/tests/integration/redisCacheSessionPatch.integration.test.d.ts.map +1 -0
  150. package/dist/types/tests/integration/saveCaptchasSessionUpsert.integration.test.d.ts +2 -0
  151. package/dist/types/tests/integration/saveCaptchasSessionUpsert.integration.test.d.ts.map +1 -0
  152. package/dist/types/tests/integration/serverCheckClaim.integration.test.d.ts +2 -0
  153. package/dist/types/tests/integration/serverCheckClaim.integration.test.d.ts.map +1 -0
  154. package/dist/types/tests/integration/sessionRecordProjection.integration.test.d.ts +2 -0
  155. package/dist/types/tests/integration/sessionRecordProjection.integration.test.d.ts.map +1 -0
  156. package/dist/types/tests/mongoGlobalSetup.d.ts +2 -0
  157. package/dist/types/tests/mongoGlobalSetup.d.ts.map +1 -0
  158. package/dist/types/tests/mongooseOptions.unit.test.d.ts +2 -0
  159. package/dist/types/tests/mongooseOptions.unit.test.d.ts.map +1 -0
  160. package/dist/types/tests/unit/base/mongo.unit.test.d.ts +2 -0
  161. package/dist/types/tests/unit/base/mongo.unit.test.d.ts.map +1 -0
  162. package/dist/types/tests/unit/captchaLabel.unit.test.d.ts +2 -0
  163. package/dist/types/tests/unit/captchaLabel.unit.test.d.ts.map +1 -0
  164. package/dist/types/tests/unit/databases/centralDbStreamer.unit.test.d.ts +2 -0
  165. package/dist/types/tests/unit/databases/centralDbStreamer.unit.test.d.ts.map +1 -0
  166. package/dist/types/tests/unit/detectorBundleTtl.unit.test.d.ts +2 -0
  167. package/dist/types/tests/unit/detectorBundleTtl.unit.test.d.ts.map +1 -0
  168. package/dist/types/tests/unit/inputMethods.unit.test.d.ts +2 -0
  169. package/dist/types/tests/unit/inputMethods.unit.test.d.ts.map +1 -0
  170. package/dist/types/tests/unit/redisCacheEscalation.unit.test.d.ts +2 -0
  171. package/dist/types/tests/unit/redisCacheEscalation.unit.test.d.ts.map +1 -0
  172. package/package.json +16 -17
  173. package/dist/base/index.d.ts.map +0 -1
  174. package/dist/base/index.js.map +0 -1
  175. package/dist/base/mongo.d.ts.map +0 -1
  176. package/dist/base/mongo.js.map +0 -1
  177. package/dist/base/mongoMemory.d.ts.map +0 -1
  178. package/dist/base/mongoMemory.js.map +0 -1
  179. package/dist/databases/captcha.d.ts.map +0 -1
  180. package/dist/databases/captcha.js.map +0 -1
  181. package/dist/databases/centralDbStreamer.d.ts.map +0 -1
  182. package/dist/databases/centralDbStreamer.js.map +0 -1
  183. package/dist/databases/client.d.ts.map +0 -1
  184. package/dist/databases/client.js.map +0 -1
  185. package/dist/databases/clientRecordCache.d.ts.map +0 -1
  186. package/dist/databases/clientRecordCache.js.map +0 -1
  187. package/dist/databases/index.d.ts.map +0 -1
  188. package/dist/databases/index.js.map +0 -1
  189. package/dist/databases/provider.d.ts.map +0 -1
  190. package/dist/databases/provider.js.map +0 -1
  191. package/dist/errorSites.d.ts.map +0 -1
  192. package/dist/index.d.ts.map +0 -1
  193. package/dist/index.js.map +0 -1
  194. package/dist/mongooseOptions.d.ts.map +0 -1
  195. package/dist/mongooseOptions.js.map +0 -1
  196. package/dist/redisCache.d.ts.map +0 -1
  197. package/dist/redisCache.js.map +0 -1
  198. package/dist/tests/integration/centralStreamingEnrichment.integration.test.d.ts.map +0 -1
  199. package/dist/tests/integration/centralStreamingEnrichment.integration.test.js.map +0 -1
  200. package/dist/tests/integration/clientRecordCache.integration.test.d.ts.map +0 -1
  201. package/dist/tests/integration/clientRecordCache.integration.test.js.map +0 -1
  202. package/dist/tests/integration/commitmentRecordProjection.integration.test.d.ts.map +0 -1
  203. package/dist/tests/integration/commitmentRecordProjection.integration.test.js.map +0 -1
  204. package/dist/tests/integration/commitmentUpdateTimestamp.integration.test.d.ts.map +0 -1
  205. package/dist/tests/integration/commitmentUpdateTimestamp.integration.test.js.map +0 -1
  206. package/dist/tests/integration/commitmentUpsertNoMutation.integration.test.d.ts.map +0 -1
  207. package/dist/tests/integration/commitmentUpsertNoMutation.integration.test.js.map +0 -1
  208. package/dist/tests/integration/countCommitmentsByNormalisedEmail.integration.test.d.ts.map +0 -1
  209. package/dist/tests/integration/countCommitmentsByNormalisedEmail.integration.test.js.map +0 -1
  210. package/dist/tests/integration/getUpdatedClients.integration.test.d.ts.map +0 -1
  211. package/dist/tests/integration/getUpdatedClients.integration.test.js.map +0 -1
  212. package/dist/tests/integration/ipInfoPersistence.integration.test.d.ts.map +0 -1
  213. package/dist/tests/integration/ipInfoPersistence.integration.test.js.map +0 -1
  214. package/dist/tests/integration/projectionContract.d.ts.map +0 -1
  215. package/dist/tests/integration/projectionContract.js.map +0 -1
  216. package/dist/tests/integration/projectionContracts.integration.test.d.ts.map +0 -1
  217. package/dist/tests/integration/projectionContracts.integration.test.js.map +0 -1
  218. package/dist/tests/integration/providedIpPipelineCast.integration.test.d.ts.map +0 -1
  219. package/dist/tests/integration/providedIpPipelineCast.integration.test.js.map +0 -1
  220. package/dist/tests/integration/puzzleCentralStreaming.integration.test.d.ts.map +0 -1
  221. package/dist/tests/integration/puzzleCentralStreaming.integration.test.js.map +0 -1
  222. package/dist/tests/integration/redisCacheSessionPatch.integration.test.d.ts.map +0 -1
  223. package/dist/tests/integration/redisCacheSessionPatch.integration.test.js.map +0 -1
  224. package/dist/tests/integration/saveCaptchasSessionUpsert.integration.test.d.ts.map +0 -1
  225. package/dist/tests/integration/saveCaptchasSessionUpsert.integration.test.js.map +0 -1
  226. package/dist/tests/integration/serverCheckClaim.integration.test.d.ts.map +0 -1
  227. package/dist/tests/integration/serverCheckClaim.integration.test.js.map +0 -1
  228. package/dist/tests/integration/sessionRecordProjection.integration.test.d.ts.map +0 -1
  229. package/dist/tests/integration/sessionRecordProjection.integration.test.js.map +0 -1
  230. package/dist/tests/mongoGlobalSetup.d.ts.map +0 -1
  231. package/dist/tests/mongoGlobalSetup.js.map +0 -1
  232. package/dist/tests/mongooseOptions.unit.test.d.ts.map +0 -1
  233. package/dist/tests/mongooseOptions.unit.test.js.map +0 -1
  234. package/dist/tests/unit/base/mongo.unit.test.d.ts.map +0 -1
  235. package/dist/tests/unit/base/mongo.unit.test.js.map +0 -1
  236. package/dist/tests/unit/captchaLabel.unit.test.d.ts.map +0 -1
  237. package/dist/tests/unit/captchaLabel.unit.test.js.map +0 -1
  238. package/dist/tests/unit/databases/centralDbStreamer.unit.test.d.ts.map +0 -1
  239. package/dist/tests/unit/databases/centralDbStreamer.unit.test.js.map +0 -1
  240. package/dist/tests/unit/detectorBundleTtl.unit.test.d.ts.map +0 -1
  241. package/dist/tests/unit/detectorBundleTtl.unit.test.js.map +0 -1
  242. package/dist/tests/unit/inputMethods.unit.test.d.ts.map +0 -1
  243. package/dist/tests/unit/inputMethods.unit.test.js.map +0 -1
  244. package/dist/tests/unit/redisCacheEscalation.unit.test.d.ts.map +0 -1
  245. package/dist/tests/unit/redisCacheEscalation.unit.test.js.map +0 -1
  246. /package/dist/{_virtual → esm/_virtual}/_rolldown/runtime.js +0 -0
  247. /package/dist/{base → esm/base}/index.js +0 -0
  248. /package/dist/{base → esm/base}/mongo.js +0 -0
  249. /package/dist/{base → esm/base}/mongoMemory.js +0 -0
  250. /package/dist/{databases → esm/databases}/captcha.js +0 -0
  251. /package/dist/{databases → esm/databases}/centralDbStreamer.js +0 -0
  252. /package/dist/{databases → esm/databases}/clientRecordCache.js +0 -0
  253. /package/dist/{databases → esm/databases}/index.js +0 -0
  254. /package/dist/{index.js → esm/index.js} +0 -0
  255. /package/dist/{mongooseOptions.js → esm/mongooseOptions.js} +0 -0
  256. /package/dist/{redisCache.js → esm/redisCache.js} +0 -0
  257. /package/dist/{base → tsc/base}/index.d.ts +0 -0
  258. /package/dist/{base → tsc/base}/mongo.d.ts +0 -0
  259. /package/dist/{base → tsc/base}/mongoMemory.d.ts +0 -0
  260. /package/dist/{databases → tsc/databases}/captcha.d.ts +0 -0
  261. /package/dist/{databases → tsc/databases}/centralDbStreamer.d.ts +0 -0
  262. /package/dist/{databases → tsc/databases}/clientRecordCache.d.ts +0 -0
  263. /package/dist/{databases → tsc/databases}/index.d.ts +0 -0
  264. /package/dist/{databases → tsc/databases}/provider.d.ts +0 -0
  265. /package/dist/{errorSites.d.ts → tsc/errorSites.d.ts} +0 -0
  266. /package/dist/{errorSites.js → tsc/errorSites.js} +0 -0
  267. /package/dist/{index.d.ts → tsc/index.d.ts} +0 -0
  268. /package/dist/{mongooseOptions.d.ts → tsc/mongooseOptions.d.ts} +0 -0
  269. /package/dist/{redisCache.d.ts → tsc/redisCache.d.ts} +0 -0
  270. /package/dist/{tests → tsc/tests}/integration/centralStreamingEnrichment.integration.test.d.ts +0 -0
  271. /package/dist/{tests → tsc/tests}/integration/centralStreamingEnrichment.integration.test.js +0 -0
  272. /package/dist/{tests → tsc/tests}/integration/clientRecordCache.integration.test.d.ts +0 -0
  273. /package/dist/{tests → tsc/tests}/integration/clientRecordCache.integration.test.js +0 -0
  274. /package/dist/{tests → tsc/tests}/integration/commitmentRecordProjection.integration.test.d.ts +0 -0
  275. /package/dist/{tests → tsc/tests}/integration/commitmentRecordProjection.integration.test.js +0 -0
  276. /package/dist/{tests → tsc/tests}/integration/commitmentUpdateTimestamp.integration.test.d.ts +0 -0
  277. /package/dist/{tests → tsc/tests}/integration/commitmentUpdateTimestamp.integration.test.js +0 -0
  278. /package/dist/{tests → tsc/tests}/integration/commitmentUpsertNoMutation.integration.test.d.ts +0 -0
  279. /package/dist/{tests → tsc/tests}/integration/commitmentUpsertNoMutation.integration.test.js +0 -0
  280. /package/dist/{tests → tsc/tests}/integration/countCommitmentsByNormalisedEmail.integration.test.d.ts +0 -0
  281. /package/dist/{tests → tsc/tests}/integration/countCommitmentsByNormalisedEmail.integration.test.js +0 -0
  282. /package/dist/{tests → tsc/tests}/integration/getUpdatedClients.integration.test.d.ts +0 -0
  283. /package/dist/{tests → tsc/tests}/integration/ipInfoPersistence.integration.test.d.ts +0 -0
  284. /package/dist/{tests → tsc/tests}/integration/ipInfoPersistence.integration.test.js +0 -0
  285. /package/dist/{tests → tsc/tests}/integration/projectionContract.d.ts +0 -0
  286. /package/dist/{tests → tsc/tests}/integration/projectionContract.js +0 -0
  287. /package/dist/{tests → tsc/tests}/integration/projectionContracts.integration.test.d.ts +0 -0
  288. /package/dist/{tests → tsc/tests}/integration/projectionContracts.integration.test.js +0 -0
  289. /package/dist/{tests → tsc/tests}/integration/providedIpPipelineCast.integration.test.d.ts +0 -0
  290. /package/dist/{tests → tsc/tests}/integration/providedIpPipelineCast.integration.test.js +0 -0
  291. /package/dist/{tests → tsc/tests}/integration/puzzleCentralStreaming.integration.test.d.ts +0 -0
  292. /package/dist/{tests → tsc/tests}/integration/puzzleCentralStreaming.integration.test.js +0 -0
  293. /package/dist/{tests → tsc/tests}/integration/redisCacheSessionPatch.integration.test.d.ts +0 -0
  294. /package/dist/{tests → tsc/tests}/integration/redisCacheSessionPatch.integration.test.js +0 -0
  295. /package/dist/{tests → tsc/tests}/integration/saveCaptchasSessionUpsert.integration.test.d.ts +0 -0
  296. /package/dist/{tests → tsc/tests}/integration/saveCaptchasSessionUpsert.integration.test.js +0 -0
  297. /package/dist/{tests → tsc/tests}/integration/serverCheckClaim.integration.test.d.ts +0 -0
  298. /package/dist/{tests → tsc/tests}/integration/serverCheckClaim.integration.test.js +0 -0
  299. /package/dist/{tests → tsc/tests}/integration/sessionRecordProjection.integration.test.d.ts +0 -0
  300. /package/dist/{tests → tsc/tests}/integration/sessionRecordProjection.integration.test.js +0 -0
  301. /package/dist/{tests → tsc/tests}/mongoGlobalSetup.d.ts +0 -0
  302. /package/dist/{tests → tsc/tests}/mongoGlobalSetup.js +0 -0
  303. /package/dist/{tests → tsc/tests}/mongooseOptions.unit.test.d.ts +0 -0
  304. /package/dist/{tests → tsc/tests}/mongooseOptions.unit.test.js +0 -0
  305. /package/dist/{tests → tsc/tests}/unit/base/mongo.unit.test.d.ts +0 -0
  306. /package/dist/{tests → tsc/tests}/unit/base/mongo.unit.test.js +0 -0
  307. /package/dist/{tests → tsc/tests}/unit/captchaLabel.unit.test.d.ts +0 -0
  308. /package/dist/{tests → tsc/tests}/unit/captchaLabel.unit.test.js +0 -0
  309. /package/dist/{tests → tsc/tests}/unit/databases/centralDbStreamer.unit.test.d.ts +0 -0
  310. /package/dist/{tests → tsc/tests}/unit/databases/centralDbStreamer.unit.test.js +0 -0
  311. /package/dist/{tests → tsc/tests}/unit/detectorBundleTtl.unit.test.d.ts +0 -0
  312. /package/dist/{tests → tsc/tests}/unit/detectorBundleTtl.unit.test.js +0 -0
  313. /package/dist/{tests → tsc/tests}/unit/inputMethods.unit.test.d.ts +0 -0
  314. /package/dist/{tests → tsc/tests}/unit/inputMethods.unit.test.js +0 -0
  315. /package/dist/{tests → tsc/tests}/unit/redisCacheEscalation.unit.test.d.ts +0 -0
  316. /package/dist/{tests → tsc/tests}/unit/redisCacheEscalation.unit.test.js +0 -0
@@ -43,12 +43,12 @@ dist/cjs/_virtual/_rolldown/runtime.cjs 1.00 kB │ gzip: 0.50 kB
43
43
  dist/cjs/databases/index.cjs 1.14 kB │ gzip: 0.32 kB
44
44
  dist/cjs/databases/clientRecordCache.cjs 1.45 kB │ gzip: 0.69 kB
45
45
  dist/cjs/index.cjs 1.66 kB │ gzip: 0.49 kB
46
- dist/cjs/databases/client.cjs 1.82 kB │ gzip: 0.79 kB
46
+ dist/cjs/databases/client.cjs 1.96 kB │ gzip: 0.82 kB
47
47
  dist/cjs/mongooseOptions.cjs 3.74 kB │ gzip: 1.56 kB
48
48
  dist/cjs/base/mongo.cjs 4.29 kB │ gzip: 1.42 kB
49
49
  dist/cjs/databases/centralDbStreamer.cjs 6.40 kB │ gzip: 1.52 kB
50
50
  dist/cjs/databases/captcha.cjs 8.23 kB │ gzip: 2.38 kB
51
51
  dist/cjs/redisCache.cjs 14.30 kB │ gzip: 4.45 kB
52
- dist/cjs/databases/provider.cjs 70.62 kB │ gzip: 13.47 kB
52
+ dist/cjs/databases/provider.cjs 70.62 kB │ gzip: 13.49 kB
53
53
 
54
- ✓ built in 65ms
54
+ ✓ built in 64ms
@@ -1,5 +1,4 @@
1
- $ pnpm run build:cross-env --mode ${NODE_ENV:-development}
2
- $ vite build --config vite.esm.config.ts --mode production
1
+ $ vite build --config vite.esm.config.ts --mode ${NODE_ENV:-development}
3
2
  ViteEsmConfig: .
4
3
  {
5
4
  tsConfigPaths: [
@@ -38,18 +37,18 @@ Bundle build started
38
37
  ✓ 13 modules transformed.
39
38
  rendering chunks...
40
39
  computing gzip size...
41
- dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
42
- dist/base/index.js 0.14 kB │ gzip: 0.08 kB
43
- dist/base/mongoMemory.js 0.60 kB │ gzip: 0.30 kB
44
- dist/databases/index.js 0.77 kB │ gzip: 0.27 kB
45
- dist/index.js 1.07 kB │ gzip: 0.38 kB
46
- dist/databases/clientRecordCache.js 1.40 kB │ gzip: 0.68 kB
47
- dist/databases/client.js 1.73 kB │ gzip: 0.77 kB
48
- dist/mongooseOptions.js 3.58 kB │ gzip: 1.53 kB
49
- dist/base/mongo.js 4.04 kB │ gzip: 1.33 kB
50
- dist/databases/centralDbStreamer.js 6.33 kB │ gzip: 1.51 kB
51
- dist/databases/captcha.js 8.17 kB │ gzip: 2.38 kB
52
- dist/redisCache.js 14.25 kB │ gzip: 4.43 kB
53
- dist/databases/provider.js 68.90 kB │ gzip: 13.47 kB
40
+ dist/esm/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
41
+ dist/esm/base/index.js 0.14 kB │ gzip: 0.08 kB
42
+ dist/esm/base/mongoMemory.js 0.60 kB │ gzip: 0.30 kB
43
+ dist/esm/databases/index.js 0.77 kB │ gzip: 0.27 kB
44
+ dist/esm/index.js 1.07 kB │ gzip: 0.38 kB
45
+ dist/esm/databases/clientRecordCache.js 1.40 kB │ gzip: 0.68 kB
46
+ dist/esm/databases/client.js 1.85 kB │ gzip: 0.80 kB
47
+ dist/esm/mongooseOptions.js 3.58 kB │ gzip: 1.53 kB
48
+ dist/esm/base/mongo.js 4.04 kB │ gzip: 1.33 kB
49
+ dist/esm/databases/centralDbStreamer.js 6.33 kB │ gzip: 1.51 kB
50
+ dist/esm/databases/captcha.js 8.17 kB │ gzip: 2.38 kB
51
+ dist/esm/redisCache.js 14.25 kB │ gzip: 4.43 kB
52
+ dist/esm/databases/provider.js 68.90 kB │ gzip: 13.49 kB
54
53
 
55
- ✓ built in 140ms
54
+ ✓ built in 68ms
@@ -1,5 +1,5 @@
1
1
  $ tsc --build --verbose
2
- 7:40:57 PM - Projects in this build:
2
+ 11:54:52 AM - Projects in this build:
3
3
  * ../../dev/config/tsconfig.json
4
4
  * ../util/tsconfig.json
5
5
  * ../locale/tsconfig.json
@@ -14,31 +14,31 @@ $ tsc --build --verbose
14
14
  * ../types-database/tsconfig.json
15
15
  * tsconfig.json
16
16
 
17
- 7:40:57 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
17
+ 11:54:52 AM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/dist/tsc/tsconfig.tsbuildinfo'
18
18
 
19
- 7:40:57 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
19
+ 11:54:52 AM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/dist/tsc/tsconfig.tsbuildinfo'
20
20
 
21
- 7:40:57 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/process.ts' is older than output '../locale/tsconfig.tsbuildinfo'
21
+ 11:54:52 AM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/process.ts' is older than output '../locale/dist/tsc/tsconfig.tsbuildinfo'
22
22
 
23
- 7:40:57 PM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
23
+ 11:54:52 AM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/dist/tsc/tsconfig.tsbuildinfo'
24
24
 
25
- 7:40:57 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/tsconfig.tsbuildinfo'
25
+ 11:54:52 AM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/dist/tsc/tsconfig.tsbuildinfo'
26
26
 
27
- 7:40:57 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/tests/utils/objectUtils.unit.test.ts' is older than output '../common/tsconfig.tsbuildinfo'
27
+ 11:54:52 AM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/error.ts' is older than output '../common/dist/tsc/tsconfig.tsbuildinfo'
28
28
 
29
- 7:40:57 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/tests/loggerBrowser.unit.test.ts' is older than output '../logger/tsconfig.tsbuildinfo'
29
+ 11:54:52 AM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/dist/tsc/tsconfig.tsbuildinfo'
30
30
 
31
- 7:40:57 PM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/tests/apiRoute.unit.test.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
31
+ 11:54:52 AM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/apiRoutes.ts' is older than output '../api-route/dist/tsc/tsconfig.tsbuildinfo'
32
32
 
33
- 7:40:57 PM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/index.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
33
+ 11:54:52 AM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/tests/redisIndex.integration.test.ts' is older than output '../redis-client/dist/tsc/tsconfig.tsbuildinfo'
34
34
 
35
- 7:40:57 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
35
+ 11:54:52 AM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/tests/apiHarness.ts' is older than output '../api/dist/tsc/tsconfig.tsbuildinfo'
36
36
 
37
- 7:40:57 PM - Project '../user-access-policy/tsconfig.json' is up to date because newest input '../user-access-policy/src/transformRule.ts' is older than output '../user-access-policy/tsconfig.tsbuildinfo'
37
+ 11:54:52 AM - Project '../user-access-policy/tsconfig.json' is up to date because newest input '../user-access-policy/src/transformRule.ts' is older than output '../user-access-policy/dist/tsc/tsconfig.tsbuildinfo'
38
38
 
39
- 7:40:57 PM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/index.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
39
+ 11:54:52 AM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/index.ts' is older than output '../types-database/dist/tsc/tsconfig.tsbuildinfo'
40
40
 
41
- 7:40:57 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
41
+ 11:54:52 AM - Project 'tsconfig.json' is out of date because output file 'dist/tsc/tsconfig.tsbuildinfo' does not exist
42
42
 
43
- 7:40:57 PM - Building project '/home/runner/work/captcha/captcha/packages/database/tsconfig.json'...
43
+ 11:54:52 AM - Building project '/home/runner/work/captcha/captcha/packages/database/tsconfig.json'...
44
44
 
@@ -0,0 +1 @@
1
+ $ tsc --project tsconfig.types.json
package/CHANGELOG.md CHANGED
@@ -1,5 +1,43 @@
1
1
  # @prosopo/database
2
2
 
3
+ ## 4.3.0
4
+ ### Minor Changes
5
+
6
+ - 915f30b: Traffic filter categories can now have exceptions. An exception matches visitors by country, by whether their country is inside or outside the account's market, by a minimum abuser score, or any mix of these. It then replaces the category's block or challenge action. When several exceptions match, the harshest wins: a block beats any challenge, and a stricter captcha beats a milder one. So the order of the list does not matter. For example, block proxies, but challenge those from the account's market unless their abuser score is at least 0.5.
7
+
8
+ The account's market countries now travel to providers inside each site's traffic filter, including when a provider pulls updated sites from the portal database. An exception that depends on the market never matches while the account has no market set.
9
+
10
+ `@prosopo/captcha-severity` gains `policyHarshness` and `harshestPolicy`. They rank a policy that may block, and the access rules now use them too, with the same ordering as before.
11
+
12
+ ### Patch Changes
13
+
14
+ - 2086040: Each kind of build now writes to its own folder under dist: dist/esm (vite ESM), dist/cjs (vite CommonJS), dist/types (declarations), dist/tsc (plain tsc), dist/bundle and dist/bundle-webpack (bundles) and dist/native (the Rust addons). Turbo caches each folder separately, so building one variant no longer overwrites or invalidates another. Package exports point at the new folders; anything importing a file from dist by path has to add the variant folder.
15
+
16
+ The Rust addons are no longer committed. They are built into dist/native, in debug for development and tests and fully optimised when NODE_ENV=production, so building them now needs a Rust toolchain.
17
+
18
+ Code that found the repo root or its certificates by climbing a fixed number of folders up from its own file now starts from its package's folder instead (new `packageDir` in @prosopo/util/node). The fixed count stopped working once the build output moved one folder deeper.
19
+ - Updated dependencies [2086040]
20
+ - Updated dependencies [915f30b]
21
+ - @prosopo/common@3.3.1
22
+ - @prosopo/logger@2.1.6
23
+ - @prosopo/redis-client@1.0.43
24
+ - @prosopo/types-database@5.12.0
25
+ - @prosopo/types@5.19.0
26
+ - @prosopo/user-access-policy@3.15.8
27
+ - @prosopo/util@3.3.17
28
+
29
+ ## 4.2.10
30
+ ### Patch Changes
31
+
32
+ - d02b3bc: The image challenge endpoint now answers 400 `INVALID_REQUEST` when the caller sends a `datasetId` that is not a stored dataset: an unknown hex id, a non-hex string or a byte array. Before, the id was only looked up once challenge generation had started, so a bad id came back as a 500. The response does not echo the id. If looking up the dataset fails for another reason, such as the database being unreachable, the endpoint still returns 500. Requests that leave `datasetId` out still use the provider's default dataset.
33
+
34
+ `getDatasetDetails` now throws `RECORD_NOT_FOUND` rather than `DB_QUERY_FAILED` when no dataset matches, so a missing dataset can be told apart from a failed query.
35
+ - Updated dependencies [159766a]
36
+ - @prosopo/types@5.18.0
37
+ - @prosopo/types-database@5.11.2
38
+ - @prosopo/common@3.3.0
39
+ - @prosopo/user-access-policy@3.15.7
40
+
3
41
  ## 4.2.9
4
42
  ### Patch Changes
5
43
 
@@ -1,5 +1,6 @@
1
1
  const require_mongo = require("../base/mongo.cjs");
2
2
  let _prosopo_common = require("@prosopo/common");
3
+ let _prosopo_types = require("@prosopo/types");
3
4
  let _prosopo_types_database = require("@prosopo/types-database");
4
5
  //#region src/databases/client.ts
5
6
  var CLIENT_TABLES = [{
@@ -34,6 +35,7 @@ var ClientDatabase = class extends require_mongo.MongoDatabase {
34
35
  "users.status": "active"
35
36
  }, {
36
37
  tier: 1,
38
+ marketCountries: 1,
37
39
  "sites.siteKey": 1,
38
40
  "sites.settings": 1,
39
41
  "sites.updatedAt": 1
@@ -44,7 +46,7 @@ var ClientDatabase = class extends require_mongo.MongoDatabase {
44
46
  if (!(site.updatedAt === void 0 || site.updatedAt > updatedAtTimestamp)) continue;
45
47
  newClientRecords.push({
46
48
  account: site.siteKey,
47
- settings: site.settings,
49
+ settings: (0, _prosopo_types.withMarketCountries)(site.settings, account.marketCountries),
48
50
  tier: account.tier
49
51
  });
50
52
  }
@@ -445,7 +445,7 @@ var ProviderDatabase = class ProviderDatabase extends require_mongo.MongoDatabas
445
445
  const doc = await this.tables?.dataset.findOne(filter).lean();
446
446
  if (doc) return doc;
447
447
  throw new _prosopo_common.ProsopoError({
448
- code: "DB_QUERY_FAILED",
448
+ code: "RECORD_NOT_FOUND",
449
449
  errorSite: "DBSE-17",
450
450
  message: "Failed to get dataset",
451
451
  context: {
@@ -1,5 +1,6 @@
1
1
  import { MongoDatabase } from "../base/mongo.js";
2
2
  import { ProsopoError } from "@prosopo/common";
3
+ import { withMarketCountries } from "@prosopo/types";
3
4
  import { AccountSchema, TableNames } from "@prosopo/types-database";
4
5
  //#region src/databases/client.ts
5
6
  var CLIENT_TABLES = [{
@@ -34,6 +35,7 @@ var ClientDatabase = class extends MongoDatabase {
34
35
  "users.status": "active"
35
36
  }, {
36
37
  tier: 1,
38
+ marketCountries: 1,
37
39
  "sites.siteKey": 1,
38
40
  "sites.settings": 1,
39
41
  "sites.updatedAt": 1
@@ -44,7 +46,7 @@ var ClientDatabase = class extends MongoDatabase {
44
46
  if (!(site.updatedAt === void 0 || site.updatedAt > updatedAtTimestamp)) continue;
45
47
  newClientRecords.push({
46
48
  account: site.siteKey,
47
- settings: site.settings,
49
+ settings: withMarketCountries(site.settings, account.marketCountries),
48
50
  tier: account.tier
49
51
  });
50
52
  }
@@ -445,7 +445,7 @@ var ProviderDatabase = class ProviderDatabase extends MongoDatabase {
445
445
  const doc = await this.tables?.dataset.findOne(filter).lean();
446
446
  if (doc) return doc;
447
447
  throw new ProsopoError({
448
- code: "DB_QUERY_FAILED",
448
+ code: "RECORD_NOT_FOUND",
449
449
  errorSite: "DBSE-17",
450
450
  message: "Failed to get dataset",
451
451
  context: {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/base/index.ts"],"names":[],"mappings":"AAaA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./mongo.js";
2
+ export * from "./mongoMemory.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/base/index.ts"],"names":[],"mappings":"AAaA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo.d.ts","sourceRoot":"","sources":["../../../src/base/mongo.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,QAAQ,EAAE,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAYrD,MAAM,WAAW,uBAAuB;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CAClC;AAQD,qBAAa,aAAc,YAAW,SAAS;IAC9C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,UAAS;IAClB,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC7C,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;gBAGpD,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,uBAAuB;IAoBnC,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,aAAa,IAAI,QAAQ,CAAC,UAAU;IAe9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAyIxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM5B"}
@@ -0,0 +1,142 @@
1
+ import { fileURLToPath } from "node:url";
2
+ import { ProsopoError } from "@prosopo/common";
3
+ import { getLogger } from "@prosopo/logger";
4
+ import mongoose from "mongoose";
5
+ import { getMongoConnectionOptions } from "../mongooseOptions.js";
6
+ mongoose.set("strictQuery", false);
7
+ const DEFAULT_ENDPOINT = "mongodb://127.0.0.1:27017";
8
+ export class MongoDatabase {
9
+ constructor(url, dbname, authSource, logger, timeouts) {
10
+ this.connected = false;
11
+ this.connectTimeoutMS = timeouts?.connectTimeoutMS;
12
+ this.serverSelectionTimeoutMS = timeouts?.serverSelectionTimeoutMS;
13
+ const baseEndpoint = url || DEFAULT_ENDPOINT;
14
+ const parsedUrl = new URL(baseEndpoint);
15
+ if (dbname) {
16
+ parsedUrl.pathname = dbname;
17
+ }
18
+ if (authSource) {
19
+ parsedUrl.searchParams.set("authSource", authSource);
20
+ }
21
+ this._url = parsedUrl.toString();
22
+ this.safeURL = this.url.replace(/\w+:\w+/, "<Credentials>");
23
+ this.dbname = dbname || parsedUrl.pathname.replace("/", "");
24
+ this.logger = (logger || getLogger("info", "database:mongo")).with({
25
+ mongoUrl: this.safeURL,
26
+ });
27
+ }
28
+ get url() {
29
+ return this._url;
30
+ }
31
+ getConnection() {
32
+ if (!this.connection) {
33
+ throw new ProsopoError({
34
+ code: "DB_UNAVAILABLE",
35
+ errorSite: "DBSE-1",
36
+ message: "Connection undefined",
37
+ context: { failedFuncName: this.getConnection.name },
38
+ });
39
+ }
40
+ return this.connection;
41
+ }
42
+ async connect() {
43
+ this.logger.debug(() => ({
44
+ msg: "Connecting to database",
45
+ }));
46
+ try {
47
+ if (this.connected) {
48
+ this.logger.debug(() => ({
49
+ msg: "Database connection already open",
50
+ }));
51
+ return;
52
+ }
53
+ if (this.connecting) {
54
+ this.logger.debug(() => ({
55
+ msg: "Database connection in progress, waiting for it to finish",
56
+ }));
57
+ return this.connecting;
58
+ }
59
+ this.connecting = new Promise((resolve, reject) => {
60
+ const appName = fileURLToPath(import.meta.url);
61
+ const connection = mongoose.createConnection(this.url, getMongoConnectionOptions({
62
+ url: this.url,
63
+ appName,
64
+ dbName: this.dbname,
65
+ maxPoolSize: 50,
66
+ minPoolSize: 5,
67
+ connectTimeoutMS: this.connectTimeoutMS,
68
+ serverSelectionTimeoutMS: this.serverSelectionTimeoutMS,
69
+ }));
70
+ let opened = false;
71
+ const onConnected = () => {
72
+ opened = true;
73
+ this.logger.debug(() => ({
74
+ msg: "Database connection opened",
75
+ }));
76
+ this.connected = true;
77
+ this.connection = connection;
78
+ this.connecting = undefined;
79
+ resolve();
80
+ };
81
+ const onError = (err) => {
82
+ this.logger.error(() => ({
83
+ err,
84
+ msg: "Database error",
85
+ }));
86
+ this.connected = false;
87
+ this.connecting = undefined;
88
+ if (!opened) {
89
+ connection.destroy(true).catch((destroyErr) => {
90
+ this.logger.error(() => ({
91
+ err: destroyErr,
92
+ msg: "Failed to destroy unconnected database connection",
93
+ }));
94
+ });
95
+ }
96
+ reject(err);
97
+ };
98
+ connection.once("open", onConnected);
99
+ connection.once("error", onError);
100
+ connection.on("disconnected", () => {
101
+ this.connected = false;
102
+ this.logger.debug(() => ({
103
+ msg: "Database disconnected",
104
+ }));
105
+ });
106
+ connection.on("reconnected", () => {
107
+ this.connected = true;
108
+ this.logger.debug(() => ({
109
+ msg: "Database reconnected",
110
+ }));
111
+ });
112
+ connection.on("close", () => {
113
+ this.connected = false;
114
+ this.logger.debug(() => ({
115
+ msg: "Database connection closed",
116
+ }));
117
+ });
118
+ connection.on("fullsetup", () => {
119
+ this.connected = true;
120
+ this.logger.debug(() => ({
121
+ msg: "Database connection is fully setup",
122
+ }));
123
+ });
124
+ });
125
+ return this.connecting;
126
+ }
127
+ catch (e) {
128
+ this.logger.error(() => ({
129
+ err: e,
130
+ msg: "Database connection error",
131
+ }));
132
+ throw e;
133
+ }
134
+ }
135
+ async close() {
136
+ this.logger.debug(() => ({
137
+ msg: "Closing connection",
138
+ }));
139
+ await this.connection?.close();
140
+ }
141
+ }
142
+ //# sourceMappingURL=mongo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo.js","sourceRoot":"","sources":["../../../src/base/mongo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongoMemory.d.ts","sourceRoot":"","sources":["../../../src/base/mongoMemory.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,qBAAa,mBAAoB,SAAQ,aAAa;IACrD,UAAmB,IAAI,SAAM;IAC7B,OAAO,CAAC,MAAM,CAAgC;gBAG7C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM;IAKL,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAKrC"}
@@ -0,0 +1,21 @@
1
+ import { MongoMemoryServer } from "mongodb-memory-server";
2
+ import { MongoDatabase } from "./mongo.js";
3
+ export class MongoMemoryDatabase extends MongoDatabase {
4
+ constructor(_url, dbname, logger, authSource) {
5
+ super("", dbname, authSource, logger);
6
+ this._url = "";
7
+ }
8
+ async connect() {
9
+ if (!this.mongod) {
10
+ this.mongod = await MongoMemoryServer.create();
11
+ this._url = this.mongod.getUri();
12
+ }
13
+ await super.connect();
14
+ }
15
+ async close() {
16
+ await super.close();
17
+ await this.mongod?.stop();
18
+ this.mongod = undefined;
19
+ }
20
+ }
21
+ //# sourceMappingURL=mongoMemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongoMemory.js","sourceRoot":"","sources":["../../../src/base/mongoMemory.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAIrD,YACC,IAAY,EACZ,MAAc,EACd,MAAc,EACd,UAAmB;QAEnB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QATpB,SAAI,GAAG,EAAE,CAAC;IAU7B,CAAC;IAEQ,KAAK,CAAC,OAAO;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,CAAC;QACD,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAEQ,KAAK,CAAC,KAAK;QACnB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IACzB,CAAC;CACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../../src/databases/captcha.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EAKxB,KAAK,aAAa,EAGlB,KAAK,MAAM,EACX,KAAK,oBAAoB,EACzB,MAAM,yBAAyB,CAAC;AAajC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,uBAAuB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAI/E,aAAK,UAAU;IACd,iBAAiB,sBAAsB;IACvC,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;CACrC;AAmCD,qBAAa,eAAgB,SAAQ,aAAc,YAAW,gBAAgB;IAC7E,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3B,OAAO,CAAC,cAAc,CAAS;gBAG9B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,uBAAuB;IAMpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUvC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC;IAYzB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAqDpC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAoBnC,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAajC,YAAY,CACjB,aAAa,EAAE,aAAa,EAAE,EAC9B,kBAAkB,EAAE,oBAAoB,EAAE,EAC1C,gBAAgB,EAAE,gBAAgB,EAAE,EACpC,mBAAmB,GAAE,mBAAmB,EAAO,EAC/C,sBAAsB,GAAE,sBAAsB,EAAO,EACrD,kBAAkB,GAAE,kBAAkB,EAAO;YA0HhC,sBAAsB;IAuC9B,WAAW,CAChB,MAAM,GAAE,WAAW,CAAC,iBAAiB,CAAM,EAC3C,KAAK,SAAM,GACT,OAAO,CAAC;QACV,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;QAC9C,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;QACtC,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;QAC5C,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;QAC1C,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;KAClD,CAAC;CA+CF"}