@talkpilot/core-db 1.3.74 → 1.3.75

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 (274) hide show
  1. package/.cursor/rules/development.mdc +65 -65
  2. package/AGENTS.md +49 -49
  3. package/DEVELOPMENT.md +141 -141
  4. package/README.md +818 -844
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/municipal/index.d.ts +1 -0
  10. package/dist/municipal/index.d.ts.map +1 -1
  11. package/dist/municipal/index.js +1 -0
  12. package/dist/municipal/index.js.map +1 -1
  13. package/dist/municipal/residents/index.d.ts +5 -0
  14. package/dist/municipal/residents/index.d.ts.map +1 -0
  15. package/dist/municipal/residents/index.js +24 -0
  16. package/dist/municipal/residents/index.js.map +1 -0
  17. package/dist/municipal/residents/residents.constants.d.ts +3 -0
  18. package/dist/municipal/residents/residents.constants.d.ts.map +1 -0
  19. package/dist/municipal/residents/residents.constants.js +6 -0
  20. package/dist/municipal/residents/residents.constants.js.map +1 -0
  21. package/dist/municipal/residents/residents.getters.d.ts +9 -0
  22. package/dist/municipal/residents/residents.getters.d.ts.map +1 -0
  23. package/dist/municipal/residents/residents.getters.js +32 -0
  24. package/dist/municipal/residents/residents.getters.js.map +1 -0
  25. package/dist/municipal/residents/residents.schema.d.ts +4 -0
  26. package/dist/municipal/residents/residents.schema.d.ts.map +1 -0
  27. package/dist/municipal/residents/residents.schema.js +29 -0
  28. package/dist/municipal/residents/residents.schema.js.map +1 -0
  29. package/dist/municipal/residents/residents.types.d.ts +15 -0
  30. package/dist/municipal/residents/residents.types.d.ts.map +1 -0
  31. package/dist/municipal/residents/residents.types.js +3 -0
  32. package/dist/municipal/residents/residents.types.js.map +1 -0
  33. package/dist/talkpilot/calls/calls.constants.d.ts +0 -7
  34. package/dist/talkpilot/calls/calls.constants.d.ts.map +1 -1
  35. package/dist/talkpilot/calls/calls.constants.js +1 -8
  36. package/dist/talkpilot/calls/calls.constants.js.map +1 -1
  37. package/dist/talkpilot/calls/calls.getters.d.ts +1 -2
  38. package/dist/talkpilot/calls/calls.getters.d.ts.map +1 -1
  39. package/dist/talkpilot/calls/calls.getters.js +1 -6
  40. package/dist/talkpilot/calls/calls.getters.js.map +1 -1
  41. package/dist/talkpilot/calls/calls.types.d.ts +2 -4
  42. package/dist/talkpilot/calls/calls.types.d.ts.map +1 -1
  43. package/dist/talkpilot/flows/flows.schema.d.ts +28 -0
  44. package/dist/talkpilot/flows/flows.schema.d.ts.map +1 -1
  45. package/dist/talkpilot/flows/flows.schema.js +16 -0
  46. package/dist/talkpilot/flows/flows.schema.js.map +1 -1
  47. package/dist/talkpilot/flows/flows.types.d.ts +8 -0
  48. package/dist/talkpilot/flows/flows.types.d.ts.map +1 -1
  49. package/dist/talkpilot/subscriptions/subscriptions.utils.d.ts +4 -0
  50. package/dist/talkpilot/subscriptions/subscriptions.utils.d.ts.map +1 -0
  51. package/dist/talkpilot/subscriptions/subscriptions.utils.js +20 -0
  52. package/dist/talkpilot/subscriptions/subscriptions.utils.js.map +1 -0
  53. package/dist/test-utils/factories/index.d.ts +1 -0
  54. package/dist/test-utils/factories/index.d.ts.map +1 -1
  55. package/dist/test-utils/factories/index.js +1 -0
  56. package/dist/test-utils/factories/index.js.map +1 -1
  57. package/dist/test-utils/factories/municipal/residents.d.ts +5 -0
  58. package/dist/test-utils/factories/municipal/residents.d.ts.map +1 -0
  59. package/dist/test-utils/factories/municipal/residents.js +22 -0
  60. package/dist/test-utils/factories/municipal/residents.js.map +1 -0
  61. package/jest.config.js +20 -20
  62. package/package.json +46 -46
  63. package/src/__tests__/setup.ts +20 -20
  64. package/src/bulkWrite/__tests__/bulkWrite.spec.ts +65 -65
  65. package/src/bulkWrite/bulkWrite.ops.ts +45 -45
  66. package/src/bulkWrite/bulkWrite.types.ts +4 -4
  67. package/src/bulkWrite/index.ts +2 -2
  68. package/src/config.ts +9 -9
  69. package/src/configuration/index.ts +17 -17
  70. package/src/configuration/internalModels/index.ts +3 -3
  71. package/src/configuration/internalModels/internalModels.constants.ts +1 -1
  72. package/src/configuration/internalModels/internalModels.getters.ts +33 -33
  73. package/src/configuration/internalModels/internalModels.types.ts +12 -12
  74. package/src/configuration/models/__tests__/models.getters.spec.ts +67 -67
  75. package/src/configuration/models/index.ts +27 -27
  76. package/src/configuration/models/models.constants.ts +20 -20
  77. package/src/configuration/models/models.getters.ts +71 -71
  78. package/src/configuration/models/models.types.ts +80 -80
  79. package/src/configuration/mongodb-client.ts +62 -62
  80. package/src/configuration/prompts/index.ts +2 -2
  81. package/src/configuration/prompts/prompts.getters.ts +49 -49
  82. package/src/configuration/prompts/prompts.types.ts +11 -11
  83. package/src/connection.ts +81 -81
  84. package/src/index.ts +48 -47
  85. package/src/municipal/__tests__/validation.spec.ts +62 -62
  86. package/src/municipal/cities/cities.getters.ts +50 -50
  87. package/src/municipal/cities/cities.types.ts +11 -11
  88. package/src/municipal/cities/index.ts +2 -2
  89. package/src/municipal/departmentsSubjects/__tests__/departmentsSubjects.spec.ts +272 -272
  90. package/src/municipal/departmentsSubjects/departmentsSubjects.getters.ts +317 -317
  91. package/src/municipal/departmentsSubjects/departmentsSubjects.types.ts +73 -73
  92. package/src/municipal/departmentsSubjects/index.ts +9 -9
  93. package/src/municipal/index.ts +23 -22
  94. package/src/municipal/mongodb-client.ts +61 -61
  95. package/src/municipal/muniIssues/__tests__/muniIssues.setters.spec.ts +94 -94
  96. package/src/municipal/muniIssues/__tests__/muniIssues.setup.spec.ts +92 -92
  97. package/src/municipal/muniIssues/index.ts +17 -17
  98. package/src/municipal/muniIssues/muniIssues.constants.ts +18 -18
  99. package/src/municipal/muniIssues/muniIssues.getters.ts +24 -24
  100. package/src/municipal/muniIssues/muniIssues.schema.ts +66 -66
  101. package/src/municipal/muniIssues/muniIssues.setters.ts +24 -24
  102. package/src/municipal/muniIssues/muniIssues.setup.ts +65 -65
  103. package/src/municipal/muniIssues/muniIssues.types.ts +37 -37
  104. package/src/municipal/residents/__tests__/residents.spec.ts +92 -0
  105. package/src/municipal/residents/index.ts +4 -0
  106. package/src/municipal/residents/residents.constants.ts +2 -0
  107. package/src/municipal/residents/residents.getters.ts +42 -0
  108. package/src/municipal/residents/residents.schema.ts +28 -0
  109. package/src/municipal/residents/residents.types.ts +17 -0
  110. package/src/municipal/streets/__tests__/streets.spec.ts +253 -253
  111. package/src/municipal/streets/index.ts +2 -2
  112. package/src/municipal/streets/streets.getters.ts +140 -140
  113. package/src/municipal/streets/streets.types.ts +19 -19
  114. package/src/municipal/systemInstructions/__tests__/getters.spec.ts +113 -113
  115. package/src/municipal/systemInstructions/__tests__/setters.spec.ts +274 -274
  116. package/src/municipal/systemInstructions/index.ts +7 -7
  117. package/src/municipal/systemInstructions/instructions.getters.ts +57 -57
  118. package/src/municipal/systemInstructions/instructions.setters.ts +119 -119
  119. package/src/municipal/systemInstructions/instructions.types.ts +30 -30
  120. package/src/municipal/tickets/__tests__/tickets.getters.spec.ts +30 -30
  121. package/src/municipal/tickets/__tests__/tickets.statistics.spec.ts +99 -99
  122. package/src/municipal/tickets/index.ts +9 -9
  123. package/src/municipal/tickets/tickets.constants.ts +8 -8
  124. package/src/municipal/tickets/tickets.getters.ts +121 -121
  125. package/src/municipal/tickets/tickets.statistics.aggregation.ts +110 -110
  126. package/src/municipal/tickets/tickets.statistics.getters.ts +145 -145
  127. package/src/municipal/tickets/tickets.types.ts +54 -54
  128. package/src/municipal/utils/types.ts +11 -11
  129. package/src/talkpilot/__tests__/db.spec.ts +38 -38
  130. package/src/talkpilot/__tests__/mongodb-client.spec.ts +18 -18
  131. package/src/talkpilot/__tests__/validation.spec.ts +68 -68
  132. package/src/talkpilot/agents/__tests__/agents.getters.spec.ts +29 -29
  133. package/src/talkpilot/agents/agents.getters.ts +34 -34
  134. package/src/talkpilot/agents/agents.types.ts +14 -14
  135. package/src/talkpilot/agents/index.ts +2 -2
  136. package/src/talkpilot/backgroundToolResults/__tests__/backgroundToolResults.getters.spec.ts +147 -147
  137. package/src/talkpilot/backgroundToolResults/backgroundToolResults.getters.ts +65 -65
  138. package/src/talkpilot/backgroundToolResults/backgroundToolResults.types.ts +23 -23
  139. package/src/talkpilot/backgroundToolResults/index.ts +2 -2
  140. package/src/talkpilot/callTokenUsage/__tests__/callTokenUsage.getters.spec.ts +57 -57
  141. package/src/talkpilot/callTokenUsage/callTokenUsage.getters.ts +42 -42
  142. package/src/talkpilot/callTokenUsage/callTokenUsage.types.ts +28 -28
  143. package/src/talkpilot/callTokenUsage/index.ts +2 -2
  144. package/src/talkpilot/calls/__tests__/callStats.utils.spec.ts +128 -128
  145. package/src/talkpilot/calls/__tests__/calls.dashboard.spec.ts +229 -229
  146. package/src/talkpilot/calls/__tests__/calls.spec.ts +471 -519
  147. package/src/talkpilot/calls/__tests__/calls.statistics.spec.ts +483 -483
  148. package/src/talkpilot/calls/calls.constants.ts +49 -57
  149. package/src/talkpilot/calls/calls.getters.ts +277 -295
  150. package/src/talkpilot/calls/calls.statistics.getters.ts +668 -668
  151. package/src/talkpilot/calls/calls.statistics.types.ts +48 -48
  152. package/src/talkpilot/calls/calls.types.ts +151 -155
  153. package/src/talkpilot/calls/dashboard/calls.dashboard.ts +295 -295
  154. package/src/talkpilot/calls/dashboard/calls.dashboard.types.ts +57 -57
  155. package/src/talkpilot/calls/index.ts +6 -6
  156. package/src/talkpilot/clientAudioBuffers/__tests__/clientAudioBuffer.getters.spec.ts +160 -160
  157. package/src/talkpilot/clientAudioBuffers/clientAudioBuffer.getters.ts +117 -117
  158. package/src/talkpilot/clientAudioBuffers/clientsAudioBuffers.types.ts +25 -25
  159. package/src/talkpilot/clientAudioBuffers/index.ts +2 -2
  160. package/src/talkpilot/clients/__tests__/clients.quota.spec.ts +123 -123
  161. package/src/talkpilot/clients/clients.getters.ts +19 -19
  162. package/src/talkpilot/clients/clients.quota.getters.ts +119 -119
  163. package/src/talkpilot/clients/clients.quota.types.ts +27 -27
  164. package/src/talkpilot/clients/clients.types.ts +18 -18
  165. package/src/talkpilot/clients/index.ts +4 -4
  166. package/src/talkpilot/clientsConfig/__tests__/clientsConfig.getters.spec.ts +423 -423
  167. package/src/talkpilot/clientsConfig/__tests__/clientsConfig.spec.ts +212 -212
  168. package/src/talkpilot/clientsConfig/clientsConfig.constants.ts +2 -2
  169. package/src/talkpilot/clientsConfig/clientsConfig.getters.ts +247 -247
  170. package/src/talkpilot/clientsConfig/clientsConfig.types.ts +137 -137
  171. package/src/talkpilot/clientsConfig/index.ts +3 -3
  172. package/src/talkpilot/contextNotes/__tests__/contextNotes.getters.spec.ts +217 -217
  173. package/src/talkpilot/contextNotes/contextNotes.getters.ts +85 -85
  174. package/src/talkpilot/contextNotes/contextNotes.types.ts +20 -20
  175. package/src/talkpilot/contextNotes/index.ts +2 -2
  176. package/src/talkpilot/flows/__tests__/flows.schema.spec.ts +152 -124
  177. package/src/talkpilot/flows/flows.getter.ts +34 -34
  178. package/src/talkpilot/flows/flows.schema.ts +196 -180
  179. package/src/talkpilot/flows/flows.types.ts +220 -211
  180. package/src/talkpilot/flows/index.ts +7 -7
  181. package/src/talkpilot/groups/__tests__/groups.spec.ts +90 -90
  182. package/src/talkpilot/groups/__tests__/phone.utils.spec.ts +32 -32
  183. package/src/talkpilot/groups/groups.getters.ts +30 -30
  184. package/src/talkpilot/groups/groups.types.ts +29 -29
  185. package/src/talkpilot/groups/index.ts +3 -3
  186. package/src/talkpilot/groups/phone.utils.ts +46 -46
  187. package/src/talkpilot/index.ts +32 -32
  188. package/src/talkpilot/leads/index.ts +2 -2
  189. package/src/talkpilot/leads/leads.getter.ts +6 -6
  190. package/src/talkpilot/leads/leads.schema.ts +33 -33
  191. package/src/talkpilot/leads/leads.types.ts +20 -20
  192. package/src/talkpilot/mongodb-client.ts +78 -78
  193. package/src/talkpilot/phone_numbers/__tests__/phone_numbers.spec.ts +530 -530
  194. package/src/talkpilot/phone_numbers/index.ts +2 -2
  195. package/src/talkpilot/phone_numbers/phone_numbers.getter.ts +240 -240
  196. package/src/talkpilot/phone_numbers/phone_numbers.schema.ts +17 -17
  197. package/src/talkpilot/phone_numbers/phone_numbers.types.ts +30 -30
  198. package/src/talkpilot/phone_numbers/phone_numbers.utils.ts +9 -9
  199. package/src/talkpilot/plans/__tests__/plans.spec.ts +70 -70
  200. package/src/talkpilot/plans/index.ts +2 -2
  201. package/src/talkpilot/plans/plans.getters.ts +132 -132
  202. package/src/talkpilot/plans/plans.types.ts +89 -89
  203. package/src/talkpilot/products/__tests__/products.getters.spec.ts +44 -44
  204. package/src/talkpilot/products/index.ts +2 -2
  205. package/src/talkpilot/products/products.getters.ts +12 -12
  206. package/src/talkpilot/products/products.types.ts +9 -9
  207. package/src/talkpilot/results/index.ts +7 -7
  208. package/src/talkpilot/results/results.getter.ts +39 -39
  209. package/src/talkpilot/results/results.schema.ts +25 -25
  210. package/src/talkpilot/results/results.types.ts +34 -34
  211. package/src/talkpilot/retry_analyze/__tests__/retryAnalyze.getters.spec.ts +156 -156
  212. package/src/talkpilot/retry_analyze/index.ts +2 -2
  213. package/src/talkpilot/retry_analyze/retryAnalyze.getters.ts +84 -84
  214. package/src/talkpilot/retry_analyze/retryAnalyze.types.ts +13 -13
  215. package/src/talkpilot/sessions/__tests__/sessions.spec.ts +147 -147
  216. package/src/talkpilot/sessions/index.ts +2 -2
  217. package/src/talkpilot/sessions/sessions.getter.ts +92 -92
  218. package/src/talkpilot/sessions/sessions.schema.ts +34 -34
  219. package/src/talkpilot/sessions/sessions.types.ts +30 -30
  220. package/src/talkpilot/subscriptions/__tests__/subscriptions.getters.utils.spec.ts +45 -45
  221. package/src/talkpilot/subscriptions/index.ts +3 -3
  222. package/src/talkpilot/subscriptions/subscriptions.getters.ts +146 -146
  223. package/src/talkpilot/subscriptions/subscriptions.getters.utils.ts +33 -33
  224. package/src/talkpilot/subscriptions/subscriptions.types.ts +66 -66
  225. package/src/talkpilot/utils/__tests__/query.utils.spec.ts +49 -49
  226. package/src/talkpilot/utils/query.utils.ts +21 -21
  227. package/src/test-utils/db-utils.ts +33 -33
  228. package/src/test-utils/factories/index.ts +19 -18
  229. package/src/test-utils/factories/municipal/cities.ts +16 -16
  230. package/src/test-utils/factories/municipal/departmentsSubjects.ts +37 -37
  231. package/src/test-utils/factories/municipal/muniIssues.ts +32 -32
  232. package/src/test-utils/factories/municipal/residents.ts +20 -0
  233. package/src/test-utils/factories/municipal/streets.ts +22 -22
  234. package/src/test-utils/factories/municipal/tickets.ts +39 -39
  235. package/src/test-utils/factories/talkpilot/agents.ts +19 -19
  236. package/src/test-utils/factories/talkpilot/calls.ts +37 -37
  237. package/src/test-utils/factories/talkpilot/clientAudioBuffers.ts +20 -20
  238. package/src/test-utils/factories/talkpilot/clientsConfig.ts +18 -18
  239. package/src/test-utils/factories/talkpilot/contextNotes.ts +40 -40
  240. package/src/test-utils/factories/talkpilot/flows.ts +33 -33
  241. package/src/test-utils/factories/talkpilot/groups.ts +33 -33
  242. package/src/test-utils/factories/talkpilot/phone_numbers.ts +22 -22
  243. package/src/test-utils/factories/talkpilot/sessions.ts +35 -35
  244. package/src/test-utils/factories/websitalk/knowledgeDocuments.ts +29 -29
  245. package/src/test-utils/factories/websitalk/scanResources.ts +26 -26
  246. package/src/test-utils/factories/websitalk/scans.ts +30 -30
  247. package/src/test-utils/factories/websitalk/websiteUrls.ts +17 -17
  248. package/src/utils/date.utils.ts +126 -126
  249. package/src/utils/shared.types.ts +4 -4
  250. package/src/utils/validation.ts +23 -23
  251. package/src/websitalk/index.ts +18 -18
  252. package/src/websitalk/knowledgeDocuments/__tests__/knowledgeDocuments.spec.ts +238 -238
  253. package/src/websitalk/knowledgeDocuments/index.ts +3 -3
  254. package/src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts +26 -26
  255. package/src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts +95 -95
  256. package/src/websitalk/knowledgeDocuments/knowledgeDocuments.types.ts +75 -75
  257. package/src/websitalk/mongodb-client.ts +61 -61
  258. package/src/websitalk/scanResources/__tests__/scanResources.spec.ts +267 -267
  259. package/src/websitalk/scanResources/index.ts +4 -4
  260. package/src/websitalk/scanResources/scanResources.constants.ts +60 -60
  261. package/src/websitalk/scanResources/scanResources.getters.ts +128 -128
  262. package/src/websitalk/scanResources/scanResources.types.ts +105 -105
  263. package/src/websitalk/scanResources/scanResources.utils.ts +31 -31
  264. package/src/websitalk/scans/__tests__/scans.spec.ts +362 -362
  265. package/src/websitalk/scans/index.ts +4 -4
  266. package/src/websitalk/scans/scans.constants.ts +18 -18
  267. package/src/websitalk/scans/scans.getters.ts +172 -172
  268. package/src/websitalk/scans/scans.types.ts +58 -58
  269. package/src/websitalk/scans/scans.utils.ts +5 -5
  270. package/src/websitalk/websiteUrls/__tests__/websiteUrls.spec.ts +77 -77
  271. package/src/websitalk/websiteUrls/index.ts +2 -2
  272. package/src/websitalk/websiteUrls/websiteUrls.getters.ts +65 -65
  273. package/src/websitalk/websiteUrls/websiteUrls.types.ts +13 -13
  274. package/tsconfig.json +23 -23
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions.utils.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/subscriptions/subscriptions.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAA6B,MAAM,UAAU,CAAC;AAE7F,eAAO,MAAM,gBAAgB,GAAI,QAAQ,wBAAwB,KAAG,MAAM,CAAC,YAAY,CAetF,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSimpleQuery = void 0;
4
+ const mongodb_1 = require("mongodb");
5
+ const index_1 = require("../index");
6
+ const buildSimpleQuery = (filter) => {
7
+ const query = {};
8
+ if (filter._id) {
9
+ query._id = new mongodb_1.ObjectId(filter._id);
10
+ }
11
+ index_1.simpleFields.forEach((field) => {
12
+ const val = filter[field];
13
+ if (val !== undefined) {
14
+ query[field] = val;
15
+ }
16
+ });
17
+ return query;
18
+ };
19
+ exports.buildSimpleQuery = buildSimpleQuery;
20
+ //# sourceMappingURL=subscriptions.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions.utils.js","sourceRoot":"","sources":["../../../src/talkpilot/subscriptions/subscriptions.utils.ts"],"names":[],"mappings":";;;AAAA,qCAA2C;AAC3C,oCAA6F;AAEtF,MAAM,gBAAgB,GAAG,CAAC,MAAgC,EAAwB,EAAE;IACzF,MAAM,KAAK,GAAyB,EAAE,CAAC;IAEvC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,KAAK,CAAC,GAAG,GAAG,IAAI,kBAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,oBAAY,CAAC,OAAO,CAAC,CAAC,KAAkB,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,KAAK,CAAC,GAAG,GAAU,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAfW,QAAA,gBAAgB,oBAe3B"}
@@ -10,6 +10,7 @@ export * from "./talkpilot/sessions";
10
10
  export * from "./municipal/cities";
11
11
  export * from "./municipal/departmentsSubjects";
12
12
  export * from "./municipal/muniIssues";
13
+ export * from "./municipal/residents";
13
14
  export * from "./municipal/streets";
14
15
  export * from "./municipal/tickets";
15
16
  export * from "./websitalk/scans";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test-utils/factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test-utils/factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC"}
@@ -26,6 +26,7 @@ __exportStar(require("./talkpilot/sessions"), exports);
26
26
  __exportStar(require("./municipal/cities"), exports);
27
27
  __exportStar(require("./municipal/departmentsSubjects"), exports);
28
28
  __exportStar(require("./municipal/muniIssues"), exports);
29
+ __exportStar(require("./municipal/residents"), exports);
29
30
  __exportStar(require("./municipal/streets"), exports);
30
31
  __exportStar(require("./municipal/tickets"), exports);
31
32
  __exportStar(require("./websitalk/scans"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test-utils/factories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,oDAAkC;AAClC,iEAA+C;AAC/C,4DAA0C;AAC1C,oDAAkC;AAClC,2DAAyC;AACzC,qDAAmC;AACnC,4DAA0C;AAC1C,uDAAqC;AACrC,qDAAmC;AACnC,kEAAgD;AAChD,yDAAuC;AACvC,sDAAoC;AACpC,sDAAoC;AACpC,oDAAkC;AAClC,4DAA0C;AAC1C,0DAAwC;AACxC,iEAA+C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test-utils/factories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,oDAAkC;AAClC,iEAA+C;AAC/C,4DAA0C;AAC1C,oDAAkC;AAClC,2DAAyC;AACzC,qDAAmC;AACnC,4DAA0C;AAC1C,uDAAqC;AACrC,qDAAmC;AACnC,kEAAgD;AAChD,yDAAuC;AACvC,wDAAsC;AACtC,sDAAoC;AACpC,sDAAoC;AACpC,oDAAkC;AAClC,4DAA0C;AAC1C,0DAAwC;AACxC,iEAA+C"}
@@ -0,0 +1,5 @@
1
+ import { Factory } from "fishery";
2
+ import type { Resident } from "../../../municipal";
3
+ export declare const residentFactory: Factory<Resident, any, Resident, import("fishery").DeepPartialObject<Resident>>;
4
+ export declare function createResident(overrides?: Partial<Resident>): Resident;
5
+ //# sourceMappingURL=residents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"residents.d.ts","sourceRoot":"","sources":["../../../../src/test-utils/factories/municipal/residents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,eAAO,MAAM,eAAe,iFAUzB,CAAC;AAEJ,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAEtE"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.residentFactory = void 0;
4
+ exports.createResident = createResident;
5
+ const fishery_1 = require("fishery");
6
+ const mongodb_1 = require("mongodb");
7
+ const faker_1 = require("@faker-js/faker");
8
+ exports.residentFactory = fishery_1.Factory.define(() => ({
9
+ _id: new mongodb_1.ObjectId(),
10
+ createdAt: new Date(),
11
+ updatedAt: new Date(),
12
+ cityName: faker_1.faker.location.city(),
13
+ firstName: faker_1.faker.person.firstName(),
14
+ lastName: faker_1.faker.person.lastName(),
15
+ idNumber: faker_1.faker.string.numeric(9),
16
+ phoneNumber: `+97250${faker_1.faker.string.numeric(7)}`,
17
+ address: faker_1.faker.location.streetAddress(),
18
+ }));
19
+ function createResident(overrides) {
20
+ return exports.residentFactory.build(overrides);
21
+ }
22
+ //# sourceMappingURL=residents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"residents.js","sourceRoot":"","sources":["../../../../src/test-utils/factories/municipal/residents.ts"],"names":[],"mappings":";;;AAiBA,wCAEC;AAnBD,qCAAkC;AAClC,qCAAmC;AACnC,2CAAwC;AAG3B,QAAA,eAAe,GAAG,iBAAO,CAAC,MAAM,CAAW,GAAG,EAAE,CAAC,CAAC;IAC7D,GAAG,EAAE,IAAI,kBAAQ,EAAE;IACnB,SAAS,EAAE,IAAI,IAAI,EAAE;IACrB,SAAS,EAAE,IAAI,IAAI,EAAE;IACrB,QAAQ,EAAE,aAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;IAC/B,SAAS,EAAE,aAAK,CAAC,MAAM,CAAC,SAAS,EAAE;IACnC,QAAQ,EAAE,aAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,aAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACjC,WAAW,EAAE,SAAS,aAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;IAC/C,OAAO,EAAE,aAAK,CAAC,QAAQ,CAAC,aAAa,EAAE;CACxC,CAAC,CAAC,CAAC;AAEJ,SAAgB,cAAc,CAAC,SAA6B;IAC1D,OAAO,uBAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC"}
package/jest.config.js CHANGED
@@ -1,20 +1,20 @@
1
- /** @type {import('ts-jest').JestConfigWithTsJest} */
2
- module.exports = {
3
- preset: 'ts-jest',
4
- testEnvironment: 'node',
5
- roots: ['<rootDir>/src'],
6
- testPathIgnorePatterns: ['<rootDir>/src/__tests__/legacy/'],
7
- testMatch: ['**/__tests__/**/*.spec.ts', '**/*.spec.ts'],
8
- transform: {
9
- '^.+\\.tsx?$': ['ts-jest', {
10
- tsconfig: 'tsconfig.json',
11
- }],
12
- },
13
- setupFilesAfterEnv: ['<rootDir>/src/__tests__/setup.ts'],
14
- maxWorkers: 1,
15
- verbose: true,
16
- forceExit: true,
17
- clearMocks: true,
18
- resetMocks: true,
19
- restoreMocks: true,
20
- };
1
+ /** @type {import('ts-jest').JestConfigWithTsJest} */
2
+ module.exports = {
3
+ preset: 'ts-jest',
4
+ testEnvironment: 'node',
5
+ roots: ['<rootDir>/src'],
6
+ testPathIgnorePatterns: ['<rootDir>/src/__tests__/legacy/'],
7
+ testMatch: ['**/__tests__/**/*.spec.ts', '**/*.spec.ts'],
8
+ transform: {
9
+ '^.+\\.tsx?$': ['ts-jest', {
10
+ tsconfig: 'tsconfig.json',
11
+ }],
12
+ },
13
+ setupFilesAfterEnv: ['<rootDir>/src/__tests__/setup.ts'],
14
+ maxWorkers: 1,
15
+ verbose: true,
16
+ forceExit: true,
17
+ clearMocks: true,
18
+ resetMocks: true,
19
+ restoreMocks: true,
20
+ };
package/package.json CHANGED
@@ -1,46 +1,46 @@
1
- {
2
- "name": "@talkpilot/core-db",
3
- "version": "1.3.74",
4
- "description": "Core database package for centralized connections and ORM integration.",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "scripts": {
8
- "build": "tsc",
9
- "dev": "tsc --watch",
10
- "test": "jest",
11
- "lint": "eslint 'src/**/*.{ts,tsx}'",
12
- "format": "prettier --write \"src/**/*.{ts,tsx}\"",
13
- "prepare": "npm run build"
14
- },
15
- "keywords": [
16
- "database",
17
- "orm",
18
- "typescript",
19
- "postgres",
20
- "db-client"
21
- ],
22
- "author": "",
23
- "license": "MIT",
24
- "dependencies": {
25
- "dayjs": "^1.11.21",
26
- "express": "^4.18.0",
27
- "google-libphonenumber": "^3.2.0",
28
- "mongodb": "^6.11.0"
29
- },
30
- "devDependencies": {
31
- "@faker-js/faker": "^8.0.0",
32
- "@types/express": "^4.17.0",
33
- "@types/google-libphonenumber": "^7.4.0",
34
- "@types/jest": "^29.0.0",
35
- "@types/node": "^20.0.0",
36
- "fishery": "^2.4.0",
37
- "jest": "^29.0.0",
38
- "mongodb-memory-server": "^10.0.0",
39
- "prettier": "^3.8.2",
40
- "ts-jest": "^29.0.0",
41
- "typescript": "^5.0.0"
42
- },
43
- "publishConfig": {
44
- "access": "public"
45
- }
46
- }
1
+ {
2
+ "name": "@talkpilot/core-db",
3
+ "version": "1.3.75",
4
+ "description": "Core database package for centralized connections and ORM integration.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "dev": "tsc --watch",
10
+ "test": "jest",
11
+ "lint": "eslint 'src/**/*.{ts,tsx}'",
12
+ "format": "prettier --write \"src/**/*.{ts,tsx}\"",
13
+ "prepare": "npm run build"
14
+ },
15
+ "keywords": [
16
+ "database",
17
+ "orm",
18
+ "typescript",
19
+ "postgres",
20
+ "db-client"
21
+ ],
22
+ "author": "",
23
+ "license": "MIT",
24
+ "dependencies": {
25
+ "dayjs": "^1.11.21",
26
+ "express": "^4.18.0",
27
+ "google-libphonenumber": "^3.2.0",
28
+ "mongodb": "^6.11.0"
29
+ },
30
+ "devDependencies": {
31
+ "@faker-js/faker": "^8.0.0",
32
+ "@types/express": "^4.17.0",
33
+ "@types/google-libphonenumber": "^7.4.0",
34
+ "@types/jest": "^29.0.0",
35
+ "@types/node": "^20.0.0",
36
+ "fishery": "^2.4.0",
37
+ "jest": "^29.0.0",
38
+ "mongodb-memory-server": "^10.0.0",
39
+ "prettier": "^3.8.2",
40
+ "ts-jest": "^29.0.0",
41
+ "typescript": "^5.0.0"
42
+ },
43
+ "publishConfig": {
44
+ "access": "public"
45
+ }
46
+ }
@@ -1,20 +1,20 @@
1
- import { initTestDb, closeTestDb } from "../test-utils/db-utils";
2
-
3
- declare global {
4
- // eslint-disable-next-line no-var
5
- var db: import("mongodb").Db;
6
- }
7
-
8
- // Set up global mocks if needed
9
- // global.fetch = jest.fn();
10
-
11
- beforeEach(async () => {
12
- global.db = await initTestDb();
13
- }, 30_000);
14
-
15
- afterEach(async () => {
16
- await closeTestDb();
17
- jest.resetAllMocks();
18
- });
19
-
20
- process.env.NODE_ENV = "test";
1
+ import { initTestDb, closeTestDb } from "../test-utils/db-utils";
2
+
3
+ declare global {
4
+ // eslint-disable-next-line no-var
5
+ var db: import("mongodb").Db;
6
+ }
7
+
8
+ // Set up global mocks if needed
9
+ // global.fetch = jest.fn();
10
+
11
+ beforeEach(async () => {
12
+ global.db = await initTestDb();
13
+ }, 30_000);
14
+
15
+ afterEach(async () => {
16
+ await closeTestDb();
17
+ jest.resetAllMocks();
18
+ });
19
+
20
+ process.env.NODE_ENV = "test";
@@ -1,65 +1,65 @@
1
- import {
2
- buildDeleteOp,
3
- buildInsertOp,
4
- buildSetOp,
5
- buildUpsertOp,
6
- } from "../bulkWrite.ops";
7
-
8
- interface TestDoc {
9
- _id: string;
10
- key: string;
11
- value: string;
12
- }
13
-
14
- describe("buildSetOp", () => {
15
- it("returns a plain $set updateOne with no upsert", () => {
16
- const op = buildSetOp<TestDoc>({ key: "k1" }, { value: "v2" });
17
- expect(op).toEqual({
18
- updateOne: { filter: { key: "k1" }, update: { $set: { value: "v2" } } },
19
- });
20
- });
21
- });
22
-
23
- describe("buildUpsertOp", () => {
24
- it("returns $set + $setOnInsert + upsert:true", () => {
25
- const op = buildUpsertOp<TestDoc>(
26
- { key: "k1" },
27
- { value: "v1" },
28
- { key: "k1" },
29
- );
30
- expect(op).toEqual({
31
- updateOne: {
32
- filter: { key: "k1" },
33
- update: { $set: { value: "v1" }, $setOnInsert: { key: "k1" } },
34
- upsert: true,
35
- },
36
- });
37
- });
38
-
39
- it("defaults $setOnInsert to an empty object when omitted", () => {
40
- const op = buildUpsertOp<TestDoc>({ key: "k1" }, { value: "v1" });
41
- expect(op).toEqual({
42
- updateOne: {
43
- filter: { key: "k1" },
44
- update: { $set: { value: "v1" }, $setOnInsert: {} },
45
- upsert: true,
46
- },
47
- });
48
- });
49
- });
50
-
51
- describe("buildInsertOp", () => {
52
- it("returns an insertOne with the given document", () => {
53
- const op = buildInsertOp<TestDoc>({ _id: "1", key: "k1", value: "v1" });
54
- expect(op).toEqual({
55
- insertOne: { document: { _id: "1", key: "k1", value: "v1" } },
56
- });
57
- });
58
- });
59
-
60
- describe("buildDeleteOp", () => {
61
- it("returns a deleteOne matching filter", () => {
62
- const op = buildDeleteOp<TestDoc>({ key: "k1" });
63
- expect(op).toEqual({ deleteOne: { filter: { key: "k1" } } });
64
- });
65
- });
1
+ import {
2
+ buildDeleteOp,
3
+ buildInsertOp,
4
+ buildSetOp,
5
+ buildUpsertOp,
6
+ } from "../bulkWrite.ops";
7
+
8
+ interface TestDoc {
9
+ _id: string;
10
+ key: string;
11
+ value: string;
12
+ }
13
+
14
+ describe("buildSetOp", () => {
15
+ it("returns a plain $set updateOne with no upsert", () => {
16
+ const op = buildSetOp<TestDoc>({ key: "k1" }, { value: "v2" });
17
+ expect(op).toEqual({
18
+ updateOne: { filter: { key: "k1" }, update: { $set: { value: "v2" } } },
19
+ });
20
+ });
21
+ });
22
+
23
+ describe("buildUpsertOp", () => {
24
+ it("returns $set + $setOnInsert + upsert:true", () => {
25
+ const op = buildUpsertOp<TestDoc>(
26
+ { key: "k1" },
27
+ { value: "v1" },
28
+ { key: "k1" },
29
+ );
30
+ expect(op).toEqual({
31
+ updateOne: {
32
+ filter: { key: "k1" },
33
+ update: { $set: { value: "v1" }, $setOnInsert: { key: "k1" } },
34
+ upsert: true,
35
+ },
36
+ });
37
+ });
38
+
39
+ it("defaults $setOnInsert to an empty object when omitted", () => {
40
+ const op = buildUpsertOp<TestDoc>({ key: "k1" }, { value: "v1" });
41
+ expect(op).toEqual({
42
+ updateOne: {
43
+ filter: { key: "k1" },
44
+ update: { $set: { value: "v1" }, $setOnInsert: {} },
45
+ upsert: true,
46
+ },
47
+ });
48
+ });
49
+ });
50
+
51
+ describe("buildInsertOp", () => {
52
+ it("returns an insertOne with the given document", () => {
53
+ const op = buildInsertOp<TestDoc>({ _id: "1", key: "k1", value: "v1" });
54
+ expect(op).toEqual({
55
+ insertOne: { document: { _id: "1", key: "k1", value: "v1" } },
56
+ });
57
+ });
58
+ });
59
+
60
+ describe("buildDeleteOp", () => {
61
+ it("returns a deleteOne matching filter", () => {
62
+ const op = buildDeleteOp<TestDoc>({ key: "k1" });
63
+ expect(op).toEqual({ deleteOne: { filter: { key: "k1" } } });
64
+ });
65
+ });
@@ -1,45 +1,45 @@
1
- import { Document, Filter, OptionalId } from "mongodb";
2
- import { BulkWriteOp } from "./bulkWrite.types";
3
-
4
- /**
5
- * Updates specific fields on the record matching filter.
6
- * Does nothing if no record matches.
7
- */
8
- export function buildSetOp<T extends Document>(
9
- filter: Filter<T>,
10
- setFields: Partial<T>,
11
- ): BulkWriteOp<T> {
12
- return { updateOne: { filter, update: { $set: setFields } } };
13
- }
14
-
15
- /**
16
- * Updates specific fields on the record matching the filter or creates a new record if none matches.
17
- * setOnInsertFields are only applied when a new record is created; they're ignored on an update.
18
- */
19
- export function buildUpsertOp<T extends Document>(
20
- filter: Filter<T>,
21
- setFields: Partial<T>,
22
- setOnInsertFields: Partial<T> = {},
23
- ): BulkWriteOp<T> {
24
- return {
25
- updateOne: {
26
- filter,
27
- update: { $set: setFields, $setOnInsert: setOnInsertFields },
28
- upsert: true,
29
- },
30
- };
31
- }
32
-
33
- /** Creates a new record. */
34
- export function buildInsertOp<T extends Document>(
35
- document: OptionalId<T>,
36
- ): BulkWriteOp<T> {
37
- return { insertOne: { document } };
38
- }
39
-
40
- /** Permanently removes the record matching the filter. */
41
- export function buildDeleteOp<T extends Document>(
42
- filter: Filter<T>,
43
- ): BulkWriteOp<T> {
44
- return { deleteOne: { filter } };
45
- }
1
+ import { Document, Filter, OptionalId } from "mongodb";
2
+ import { BulkWriteOp } from "./bulkWrite.types";
3
+
4
+ /**
5
+ * Updates specific fields on the record matching filter.
6
+ * Does nothing if no record matches.
7
+ */
8
+ export function buildSetOp<T extends Document>(
9
+ filter: Filter<T>,
10
+ setFields: Partial<T>,
11
+ ): BulkWriteOp<T> {
12
+ return { updateOne: { filter, update: { $set: setFields } } };
13
+ }
14
+
15
+ /**
16
+ * Updates specific fields on the record matching the filter or creates a new record if none matches.
17
+ * setOnInsertFields are only applied when a new record is created; they're ignored on an update.
18
+ */
19
+ export function buildUpsertOp<T extends Document>(
20
+ filter: Filter<T>,
21
+ setFields: Partial<T>,
22
+ setOnInsertFields: Partial<T> = {},
23
+ ): BulkWriteOp<T> {
24
+ return {
25
+ updateOne: {
26
+ filter,
27
+ update: { $set: setFields, $setOnInsert: setOnInsertFields },
28
+ upsert: true,
29
+ },
30
+ };
31
+ }
32
+
33
+ /** Creates a new record. */
34
+ export function buildInsertOp<T extends Document>(
35
+ document: OptionalId<T>,
36
+ ): BulkWriteOp<T> {
37
+ return { insertOne: { document } };
38
+ }
39
+
40
+ /** Permanently removes the record matching the filter. */
41
+ export function buildDeleteOp<T extends Document>(
42
+ filter: Filter<T>,
43
+ ): BulkWriteOp<T> {
44
+ return { deleteOne: { filter } };
45
+ }
@@ -1,4 +1,4 @@
1
- import { AnyBulkWriteOperation, Document } from "mongodb";
2
-
3
- /** A single MongoDB bulk-write operation, typed against the target document shape. */
4
- export type BulkWriteOp<T extends Document> = AnyBulkWriteOperation<T>;
1
+ import { AnyBulkWriteOperation, Document } from "mongodb";
2
+
3
+ /** A single MongoDB bulk-write operation, typed against the target document shape. */
4
+ export type BulkWriteOp<T extends Document> = AnyBulkWriteOperation<T>;
@@ -1,2 +1,2 @@
1
- export * from "./bulkWrite.types";
2
- export * from "./bulkWrite.ops";
1
+ export * from "./bulkWrite.types";
2
+ export * from "./bulkWrite.ops";
package/src/config.ts CHANGED
@@ -1,9 +1,9 @@
1
- /**
2
- * Centralized env var access. Add new fields here instead of reading
3
- * process.env directly elsewhere, so each env var has exactly one source of truth in the code.
4
- */
5
-
6
- export const configurationDbConfig = {
7
- mongoUri: process.env.MONGO_URI || process.env.MONGODB_URI,
8
- configurationDbName: process.env.CONFIGURATION_DB_NAME,
9
- };
1
+ /**
2
+ * Centralized env var access. Add new fields here instead of reading
3
+ * process.env directly elsewhere, so each env var has exactly one source of truth in the code.
4
+ */
5
+
6
+ export const configurationDbConfig = {
7
+ mongoUri: process.env.MONGO_URI || process.env.MONGODB_URI,
8
+ configurationDbName: process.env.CONFIGURATION_DB_NAME,
9
+ };
@@ -1,17 +1,17 @@
1
- import { Db, ObjectId as MongoObjectId } from "mongodb";
2
-
3
- export * from "./prompts";
4
- export * from "./models";
5
- export * from "./internalModels";
6
- export { configurationMongodbClient } from "./mongodb-client";
7
-
8
- let db: Db;
9
- export const setDb = (d: Db) => {
10
- db = d;
11
- };
12
-
13
- export const getDb = (): Db => {
14
- if (!db) throw new Error("Configuration DB not initialised");
15
- return db;
16
- };
17
- export const ObjectId = MongoObjectId;
1
+ import { Db, ObjectId as MongoObjectId } from "mongodb";
2
+
3
+ export * from "./prompts";
4
+ export * from "./models";
5
+ export * from "./internalModels";
6
+ export { configurationMongodbClient } from "./mongodb-client";
7
+
8
+ let db: Db;
9
+ export const setDb = (d: Db) => {
10
+ db = d;
11
+ };
12
+
13
+ export const getDb = (): Db => {
14
+ if (!db) throw new Error("Configuration DB not initialised");
15
+ return db;
16
+ };
17
+ export const ObjectId = MongoObjectId;
@@ -1,3 +1,3 @@
1
- export { INTERNAL_MODELS_COLLECTION } from "./internalModels.constants";
2
- export * from "./internalModels.getters";
3
- export type { InternalModel } from "./internalModels.types";
1
+ export { INTERNAL_MODELS_COLLECTION } from "./internalModels.constants";
2
+ export * from "./internalModels.getters";
3
+ export type { InternalModel } from "./internalModels.types";
@@ -1 +1 @@
1
- export const INTERNAL_MODELS_COLLECTION = "internal-models";
1
+ export const INTERNAL_MODELS_COLLECTION = "internal-models";
@@ -1,33 +1,33 @@
1
- import { getDb } from "../index";
2
- import { Collection, Filter } from "mongodb";
3
- import { InternalModel } from "./internalModels.types";
4
- import { INTERNAL_MODELS_COLLECTION } from "./internalModels.constants";
5
-
6
- export const getInternalModelsCollection = (): Collection<InternalModel> => {
7
- return getDb().collection<InternalModel>(INTERNAL_MODELS_COLLECTION);
8
- };
9
-
10
- /**
11
- * Get an internal model config by its unique name
12
- */
13
- export const getInternalModelByName = async (
14
- name: string
15
- ): Promise<InternalModel | null> => {
16
- return await getInternalModelsCollection().findOne({ name });
17
- };
18
-
19
- /**
20
- * Find internal models by filter.
21
- */
22
- export const findInternalModels = async (
23
- filter: Filter<InternalModel> = {}
24
- ): Promise<InternalModel[]> => {
25
- return await getInternalModelsCollection().find(filter).toArray();
26
- };
27
-
28
- /**
29
- * Get all internal models.
30
- */
31
- export const getAllInternalModels = async (): Promise<InternalModel[]> => {
32
- return await findInternalModels();
33
- };
1
+ import { getDb } from "../index";
2
+ import { Collection, Filter } from "mongodb";
3
+ import { InternalModel } from "./internalModels.types";
4
+ import { INTERNAL_MODELS_COLLECTION } from "./internalModels.constants";
5
+
6
+ export const getInternalModelsCollection = (): Collection<InternalModel> => {
7
+ return getDb().collection<InternalModel>(INTERNAL_MODELS_COLLECTION);
8
+ };
9
+
10
+ /**
11
+ * Get an internal model config by its unique name
12
+ */
13
+ export const getInternalModelByName = async (
14
+ name: string
15
+ ): Promise<InternalModel | null> => {
16
+ return await getInternalModelsCollection().findOne({ name });
17
+ };
18
+
19
+ /**
20
+ * Find internal models by filter.
21
+ */
22
+ export const findInternalModels = async (
23
+ filter: Filter<InternalModel> = {}
24
+ ): Promise<InternalModel[]> => {
25
+ return await getInternalModelsCollection().find(filter).toArray();
26
+ };
27
+
28
+ /**
29
+ * Get all internal models.
30
+ */
31
+ export const getAllInternalModels = async (): Promise<InternalModel[]> => {
32
+ return await findInternalModels();
33
+ };