@talkpilot/core-db 1.3.39 → 1.3.40

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 (266) hide show
  1. package/.cursor/rules/development.mdc +65 -65
  2. package/DEVELOPMENT.md +141 -141
  3. package/README.md +747 -721
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/talkpilot/clients/clients.quota.constants.d.ts +2 -0
  9. package/dist/talkpilot/clients/clients.quota.constants.d.ts.map +1 -0
  10. package/dist/talkpilot/clients/clients.quota.constants.js +5 -0
  11. package/dist/talkpilot/clients/clients.quota.constants.js.map +1 -0
  12. package/dist/talkpilot/clients/clients.quota.utils.d.ts +8 -0
  13. package/dist/talkpilot/clients/clients.quota.utils.d.ts.map +1 -0
  14. package/dist/talkpilot/clients/clients.quota.utils.js +45 -0
  15. package/dist/talkpilot/clients/clients.quota.utils.js.map +1 -0
  16. package/dist/test-utils/factories/index.d.ts +1 -0
  17. package/dist/test-utils/factories/index.d.ts.map +1 -1
  18. package/dist/test-utils/factories/index.js +1 -0
  19. package/dist/test-utils/factories/index.js.map +1 -1
  20. package/dist/test-utils/factories/websitalk/knowledgeDocuments.d.ts +5 -0
  21. package/dist/test-utils/factories/websitalk/knowledgeDocuments.d.ts.map +1 -0
  22. package/dist/test-utils/factories/websitalk/knowledgeDocuments.js +23 -0
  23. package/dist/test-utils/factories/websitalk/knowledgeDocuments.js.map +1 -0
  24. package/dist/test-utils/factories/websitalk/scanResources.d.ts +5 -0
  25. package/dist/test-utils/factories/websitalk/scanResources.d.ts.map +1 -0
  26. package/dist/test-utils/factories/websitalk/scanResources.js +24 -0
  27. package/dist/test-utils/factories/websitalk/scanResources.js.map +1 -0
  28. package/dist/test-utils/factories/websitalk/scans.d.ts.map +1 -1
  29. package/dist/test-utils/factories/websitalk/scans.js +5 -0
  30. package/dist/test-utils/factories/websitalk/scans.js.map +1 -1
  31. package/dist/websitalk/index.d.ts +1 -0
  32. package/dist/websitalk/index.d.ts.map +1 -1
  33. package/dist/websitalk/index.js +1 -0
  34. package/dist/websitalk/index.js.map +1 -1
  35. package/dist/websitalk/knowledgeDocuments/index.d.ts +4 -0
  36. package/dist/websitalk/knowledgeDocuments/index.d.ts.map +1 -0
  37. package/dist/websitalk/knowledgeDocuments/index.js +20 -0
  38. package/dist/websitalk/knowledgeDocuments/index.js.map +1 -0
  39. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.d.ts +14 -0
  40. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.d.ts.map +1 -0
  41. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.js +15 -0
  42. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.js.map +1 -0
  43. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.d.ts +10 -0
  44. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.d.ts.map +1 -0
  45. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.js +61 -0
  46. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.js.map +1 -0
  47. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.d.ts +28 -0
  48. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.d.ts.map +1 -0
  49. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.js +3 -0
  50. package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.js.map +1 -0
  51. package/dist/websitalk/scanResources/index.d.ts +5 -0
  52. package/dist/websitalk/scanResources/index.d.ts.map +1 -0
  53. package/dist/websitalk/scanResources/index.js +21 -0
  54. package/dist/websitalk/scanResources/index.js.map +1 -0
  55. package/dist/websitalk/scanResources/scanResources.constants.d.ts +38 -0
  56. package/dist/websitalk/scanResources/scanResources.constants.d.ts.map +1 -0
  57. package/dist/websitalk/scanResources/scanResources.constants.js +47 -0
  58. package/dist/websitalk/scanResources/scanResources.constants.js.map +1 -0
  59. package/dist/websitalk/scanResources/scanResources.getters.d.ts +8 -0
  60. package/dist/websitalk/scanResources/scanResources.getters.d.ts.map +1 -0
  61. package/dist/websitalk/scanResources/scanResources.getters.js +68 -0
  62. package/dist/websitalk/scanResources/scanResources.getters.js.map +1 -0
  63. package/dist/websitalk/scanResources/scanResources.types.d.ts +60 -0
  64. package/dist/websitalk/scanResources/scanResources.types.d.ts.map +1 -0
  65. package/dist/websitalk/scanResources/scanResources.types.js +3 -0
  66. package/dist/websitalk/scanResources/scanResources.types.js.map +1 -0
  67. package/dist/websitalk/scanResources/scanResources.utils.d.ts +7 -0
  68. package/dist/websitalk/scanResources/scanResources.utils.d.ts.map +1 -0
  69. package/dist/websitalk/scanResources/scanResources.utils.js +20 -0
  70. package/dist/websitalk/scanResources/scanResources.utils.js.map +1 -0
  71. package/dist/websitalk/scans/scans.getters.d.ts.map +1 -1
  72. package/dist/websitalk/scans/scans.getters.js +8 -2
  73. package/dist/websitalk/scans/scans.getters.js.map +1 -1
  74. package/dist/websitalk/scans/scans.types.d.ts +5 -0
  75. package/dist/websitalk/scans/scans.types.d.ts.map +1 -1
  76. package/jest.config.js +20 -20
  77. package/package.json +46 -46
  78. package/src/__tests__/setup.ts +20 -20
  79. package/src/bulkWrite/__tests__/bulkWrite.spec.ts +65 -65
  80. package/src/bulkWrite/bulkWrite.ops.ts +45 -45
  81. package/src/bulkWrite/bulkWrite.types.ts +4 -4
  82. package/src/bulkWrite/index.ts +2 -2
  83. package/src/config.ts +9 -9
  84. package/src/configuration/index.ts +17 -17
  85. package/src/configuration/internalModels/index.ts +3 -3
  86. package/src/configuration/internalModels/internalModels.constants.ts +1 -1
  87. package/src/configuration/internalModels/internalModels.getters.ts +33 -33
  88. package/src/configuration/internalModels/internalModels.types.ts +12 -12
  89. package/src/configuration/models/index.ts +25 -25
  90. package/src/configuration/models/models.constants.ts +13 -13
  91. package/src/configuration/models/models.getters.ts +53 -53
  92. package/src/configuration/models/models.types.ts +79 -79
  93. package/src/configuration/mongodb-client.ts +62 -62
  94. package/src/configuration/prompts/index.ts +2 -2
  95. package/src/configuration/prompts/prompts.getters.ts +49 -49
  96. package/src/configuration/prompts/prompts.types.ts +11 -11
  97. package/src/connection.ts +81 -81
  98. package/src/index.ts +43 -42
  99. package/src/municipal/__tests__/validation.spec.ts +62 -62
  100. package/src/municipal/cities/cities.getters.ts +50 -50
  101. package/src/municipal/cities/cities.types.ts +11 -11
  102. package/src/municipal/cities/index.ts +2 -2
  103. package/src/municipal/departmentsSubjects/__tests__/departmentsSubjects.spec.ts +272 -272
  104. package/src/municipal/departmentsSubjects/departmentsSubjects.getters.ts +317 -317
  105. package/src/municipal/departmentsSubjects/departmentsSubjects.types.ts +73 -73
  106. package/src/municipal/departmentsSubjects/index.ts +9 -9
  107. package/src/municipal/index.ts +22 -22
  108. package/src/municipal/mongodb-client.ts +61 -61
  109. package/src/municipal/muniIssues/__tests__/muniIssues.setters.spec.ts +94 -94
  110. package/src/municipal/muniIssues/__tests__/muniIssues.setup.spec.ts +92 -92
  111. package/src/municipal/muniIssues/index.ts +17 -17
  112. package/src/municipal/muniIssues/muniIssues.constants.ts +18 -18
  113. package/src/municipal/muniIssues/muniIssues.getters.ts +24 -24
  114. package/src/municipal/muniIssues/muniIssues.schema.ts +66 -66
  115. package/src/municipal/muniIssues/muniIssues.setters.ts +24 -24
  116. package/src/municipal/muniIssues/muniIssues.setup.ts +65 -65
  117. package/src/municipal/muniIssues/muniIssues.types.ts +37 -37
  118. package/src/municipal/streets/__tests__/streets.spec.ts +253 -253
  119. package/src/municipal/streets/index.ts +2 -2
  120. package/src/municipal/streets/streets.getters.ts +140 -140
  121. package/src/municipal/streets/streets.types.ts +19 -19
  122. package/src/municipal/systemInstructions/__tests__/getters.spec.ts +113 -113
  123. package/src/municipal/systemInstructions/__tests__/setters.spec.ts +274 -274
  124. package/src/municipal/systemInstructions/index.ts +7 -7
  125. package/src/municipal/systemInstructions/instructions.getters.ts +57 -57
  126. package/src/municipal/systemInstructions/instructions.setters.ts +119 -119
  127. package/src/municipal/systemInstructions/instructions.types.ts +30 -30
  128. package/src/municipal/tickets/__tests__/tickets.getters.spec.ts +30 -30
  129. package/src/municipal/tickets/__tests__/tickets.statistics.spec.ts +99 -99
  130. package/src/municipal/tickets/index.ts +9 -9
  131. package/src/municipal/tickets/tickets.constants.ts +8 -8
  132. package/src/municipal/tickets/tickets.getters.ts +121 -121
  133. package/src/municipal/tickets/tickets.statistics.aggregation.ts +110 -110
  134. package/src/municipal/tickets/tickets.statistics.getters.ts +145 -145
  135. package/src/municipal/tickets/tickets.types.ts +54 -54
  136. package/src/municipal/utils/types.ts +11 -11
  137. package/src/talkpilot/__tests__/db.spec.ts +38 -38
  138. package/src/talkpilot/__tests__/mongodb-client.spec.ts +18 -18
  139. package/src/talkpilot/__tests__/validation.spec.ts +68 -68
  140. package/src/talkpilot/agents/__tests__/agents.getters.spec.ts +29 -29
  141. package/src/talkpilot/agents/agents.getters.ts +34 -34
  142. package/src/talkpilot/agents/agents.types.ts +14 -14
  143. package/src/talkpilot/agents/index.ts +2 -2
  144. package/src/talkpilot/backgroundToolResults/__tests__/backgroundToolResults.getters.spec.ts +147 -147
  145. package/src/talkpilot/backgroundToolResults/backgroundToolResults.getters.ts +65 -65
  146. package/src/talkpilot/backgroundToolResults/backgroundToolResults.types.ts +23 -23
  147. package/src/talkpilot/backgroundToolResults/index.ts +2 -2
  148. package/src/talkpilot/calls/__tests__/callStats.utils.spec.ts +128 -128
  149. package/src/talkpilot/calls/__tests__/calls.dashboard.spec.ts +229 -229
  150. package/src/talkpilot/calls/__tests__/calls.spec.ts +471 -471
  151. package/src/talkpilot/calls/__tests__/calls.statistics.spec.ts +483 -483
  152. package/src/talkpilot/calls/calls.constants.ts +49 -49
  153. package/src/talkpilot/calls/calls.getters.ts +277 -277
  154. package/src/talkpilot/calls/calls.statistics.getters.ts +668 -668
  155. package/src/talkpilot/calls/calls.statistics.types.ts +48 -48
  156. package/src/talkpilot/calls/calls.types.ts +134 -134
  157. package/src/talkpilot/calls/dashboard/calls.dashboard.ts +295 -295
  158. package/src/talkpilot/calls/dashboard/calls.dashboard.types.ts +57 -57
  159. package/src/talkpilot/calls/index.ts +6 -6
  160. package/src/talkpilot/clientAudioBuffers/__tests__/clientAudioBuffer.getters.spec.ts +160 -160
  161. package/src/talkpilot/clientAudioBuffers/clientAudioBuffer.getters.ts +117 -117
  162. package/src/talkpilot/clientAudioBuffers/clientsAudioBuffers.types.ts +25 -25
  163. package/src/talkpilot/clientAudioBuffers/index.ts +2 -2
  164. package/src/talkpilot/clients/__tests__/clients.quota.spec.ts +123 -123
  165. package/src/talkpilot/clients/clients.getters.ts +16 -16
  166. package/src/talkpilot/clients/clients.quota.getters.ts +119 -119
  167. package/src/talkpilot/clients/clients.quota.types.ts +27 -27
  168. package/src/talkpilot/clients/clients.types.ts +18 -18
  169. package/src/talkpilot/clients/index.ts +4 -4
  170. package/src/talkpilot/clientsConfig/__tests__/clientsConfig.spec.ts +212 -212
  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 +99 -99
  177. package/src/talkpilot/flows/flows.getter.ts +14 -14
  178. package/src/talkpilot/flows/flows.schema.ts +155 -155
  179. package/src/talkpilot/flows/flows.types.ts +189 -189
  180. package/src/talkpilot/flows/index.ts +2 -2
  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 +31 -31
  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 +282 -282
  194. package/src/talkpilot/phone_numbers/index.ts +2 -2
  195. package/src/talkpilot/phone_numbers/phone_numbers.getter.ts +176 -176
  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/plans/__tests__/plans.spec.ts +70 -70
  199. package/src/talkpilot/plans/index.ts +2 -2
  200. package/src/talkpilot/plans/plans.getters.ts +132 -132
  201. package/src/talkpilot/plans/plans.types.ts +89 -89
  202. package/src/talkpilot/products/__tests__/products.getters.spec.ts +44 -44
  203. package/src/talkpilot/products/index.ts +2 -2
  204. package/src/talkpilot/products/products.getters.ts +12 -12
  205. package/src/talkpilot/products/products.types.ts +9 -9
  206. package/src/talkpilot/results/index.ts +7 -7
  207. package/src/talkpilot/results/results.getter.ts +39 -39
  208. package/src/talkpilot/results/results.schema.ts +25 -25
  209. package/src/talkpilot/results/results.types.ts +34 -34
  210. package/src/talkpilot/retry_analyze/__tests__/retryAnalyze.getters.spec.ts +156 -156
  211. package/src/talkpilot/retry_analyze/index.ts +2 -2
  212. package/src/talkpilot/retry_analyze/retryAnalyze.getters.ts +84 -84
  213. package/src/talkpilot/retry_analyze/retryAnalyze.types.ts +13 -13
  214. package/src/talkpilot/sessions/__tests__/sessions.spec.ts +147 -147
  215. package/src/talkpilot/sessions/index.ts +2 -2
  216. package/src/talkpilot/sessions/sessions.getter.ts +92 -92
  217. package/src/talkpilot/sessions/sessions.schema.ts +34 -34
  218. package/src/talkpilot/sessions/sessions.types.ts +30 -30
  219. package/src/talkpilot/subscriptions/__tests__/subscriptions.getters.utils.spec.ts +45 -45
  220. package/src/talkpilot/subscriptions/index.ts +3 -3
  221. package/src/talkpilot/subscriptions/subscriptions.getters.ts +146 -146
  222. package/src/talkpilot/subscriptions/subscriptions.getters.utils.ts +33 -33
  223. package/src/talkpilot/subscriptions/subscriptions.types.ts +66 -66
  224. package/src/talkpilot/utils/__tests__/query.utils.spec.ts +49 -49
  225. package/src/talkpilot/utils/query.utils.ts +21 -21
  226. package/src/test-utils/db-utils.ts +33 -33
  227. package/src/test-utils/factories/index.ts +17 -16
  228. package/src/test-utils/factories/municipal/cities.ts +16 -16
  229. package/src/test-utils/factories/municipal/departmentsSubjects.ts +37 -37
  230. package/src/test-utils/factories/municipal/muniIssues.ts +32 -32
  231. package/src/test-utils/factories/municipal/streets.ts +22 -22
  232. package/src/test-utils/factories/municipal/tickets.ts +39 -39
  233. package/src/test-utils/factories/talkpilot/agents.ts +19 -19
  234. package/src/test-utils/factories/talkpilot/calls.ts +37 -37
  235. package/src/test-utils/factories/talkpilot/clientAudioBuffers.ts +20 -20
  236. package/src/test-utils/factories/talkpilot/clientsConfig.ts +18 -18
  237. package/src/test-utils/factories/talkpilot/contextNotes.ts +40 -40
  238. package/src/test-utils/factories/talkpilot/flows.ts +33 -33
  239. package/src/test-utils/factories/talkpilot/groups.ts +33 -33
  240. package/src/test-utils/factories/talkpilot/phone_numbers.ts +22 -22
  241. package/src/test-utils/factories/talkpilot/sessions.ts +35 -35
  242. package/src/test-utils/factories/websitalk/scanResources.ts +26 -0
  243. package/src/test-utils/factories/websitalk/scans.ts +29 -24
  244. package/src/test-utils/factories/websitalk/websiteUrls.ts +17 -17
  245. package/src/utils/date.utils.ts +126 -126
  246. package/src/utils/shared.types.ts +4 -4
  247. package/src/utils/validation.ts +23 -23
  248. package/src/websitalk/index.ts +17 -16
  249. package/src/websitalk/mongodb-client.ts +61 -61
  250. package/src/websitalk/scanResources/__tests__/scanResources.spec.ts +136 -0
  251. package/src/websitalk/scanResources/index.ts +4 -0
  252. package/src/websitalk/scanResources/scanResources.constants.ts +47 -0
  253. package/src/websitalk/scanResources/scanResources.getters.ts +94 -0
  254. package/src/websitalk/scanResources/scanResources.types.ts +90 -0
  255. package/src/websitalk/scanResources/scanResources.utils.ts +28 -0
  256. package/src/websitalk/scans/__tests__/scans.spec.ts +313 -313
  257. package/src/websitalk/scans/index.ts +4 -4
  258. package/src/websitalk/scans/scans.constants.ts +15 -15
  259. package/src/websitalk/scans/scans.getters.ts +166 -160
  260. package/src/websitalk/scans/scans.types.ts +54 -45
  261. package/src/websitalk/scans/scans.utils.ts +5 -5
  262. package/src/websitalk/websiteUrls/__tests__/websiteUrls.spec.ts +77 -77
  263. package/src/websitalk/websiteUrls/index.ts +2 -2
  264. package/src/websitalk/websiteUrls/websiteUrls.getters.ts +65 -65
  265. package/src/websitalk/websiteUrls/websiteUrls.types.ts +13 -13
  266. package/tsconfig.json +23 -23
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_PAGE_LIMIT = exports.DEFAULT_PAGE_LIMIT = exports.SCAN_RESOURCE_BOARD_PROJECTION = exports.BOARD_COLUMN_STATUSES = exports.URL_TASK_STATUSES = exports.SCAN_RESOURCES_COLLECTION = void 0;
4
+ exports.SCAN_RESOURCES_COLLECTION = "scanResources";
5
+ exports.URL_TASK_STATUSES = {
6
+ URL_PENDING: "URL_PENDING",
7
+ URL_SCANNING: "URL_SCANNING",
8
+ URL_READY_TO_PROCESS: "URL_READY_TO_PROCESS",
9
+ URL_PENDING_CHUNKS: "URL_PENDING_CHUNKS",
10
+ URL_CHUNKING: "URL_CHUNKING",
11
+ URL_EMBEDDING: "URL_EMBEDDING",
12
+ URL_COMPLETED: "URL_COMPLETED",
13
+ URL_FAILED: "URL_FAILED",
14
+ URL_DUPLICATE_CONTENT: "URL_DUPLICATE_CONTENT",
15
+ URL_PERMANENT_FAILURE: "URL_PERMANENT_FAILURE",
16
+ };
17
+ exports.BOARD_COLUMN_STATUSES = {
18
+ PENDING: [exports.URL_TASK_STATUSES.URL_PENDING],
19
+ SCANNING: [exports.URL_TASK_STATUSES.URL_SCANNING],
20
+ READY_TO_PROCESS: [exports.URL_TASK_STATUSES.URL_READY_TO_PROCESS],
21
+ CHUNKING: [exports.URL_TASK_STATUSES.URL_CHUNKING, exports.URL_TASK_STATUSES.URL_PENDING_CHUNKS],
22
+ PROCESSING: [exports.URL_TASK_STATUSES.URL_EMBEDDING],
23
+ COMPLETED: [
24
+ exports.URL_TASK_STATUSES.URL_COMPLETED,
25
+ exports.URL_TASK_STATUSES.URL_DUPLICATE_CONTENT,
26
+ ],
27
+ FAILED: [
28
+ exports.URL_TASK_STATUSES.URL_PERMANENT_FAILURE,
29
+ exports.URL_TASK_STATUSES.URL_FAILED,
30
+ ],
31
+ };
32
+ exports.SCAN_RESOURCE_BOARD_PROJECTION = {
33
+ url: 1,
34
+ title: 1,
35
+ status: 1,
36
+ statusEnteredAt: 1,
37
+ retryCount: 1,
38
+ processRetryCount: 1,
39
+ globalResurrections: 1,
40
+ noRetry: 1,
41
+ errorMessage: 1,
42
+ updatedAt: 1,
43
+ sourceType: 1,
44
+ };
45
+ exports.DEFAULT_PAGE_LIMIT = 4;
46
+ exports.MAX_PAGE_LIMIT = 50;
47
+ //# sourceMappingURL=scanResources.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanResources.constants.js","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,yBAAyB,GAAG,eAAe,CAAC;AAE5C,QAAA,iBAAiB,GAAG;IAC/B,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,qBAAqB,EAAE,uBAAuB;IAC9C,qBAAqB,EAAE,uBAAuB;CACtC,CAAC;AAEE,QAAA,qBAAqB,GAAG;IACnC,OAAO,EAAE,CAAC,yBAAiB,CAAC,WAAW,CAAC;IACxC,QAAQ,EAAE,CAAC,yBAAiB,CAAC,YAAY,CAAC;IAC1C,gBAAgB,EAAE,CAAC,yBAAiB,CAAC,oBAAoB,CAAC;IAC1D,QAAQ,EAAE,CAAC,yBAAiB,CAAC,YAAY,EAAE,yBAAiB,CAAC,kBAAkB,CAAC;IAChF,UAAU,EAAE,CAAC,yBAAiB,CAAC,aAAa,CAAC;IAC7C,SAAS,EAAE;QACT,yBAAiB,CAAC,aAAa;QAC/B,yBAAiB,CAAC,qBAAqB;KACxC;IACD,MAAM,EAAE;QACN,yBAAiB,CAAC,qBAAqB;QACvC,yBAAiB,CAAC,UAAU;KAC7B;CACO,CAAC;AAEE,QAAA,8BAA8B,GAAG;IAC5C,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,eAAe,EAAE,CAAC;IAClB,UAAU,EAAE,CAAC;IACb,iBAAiB,EAAE,CAAC;IACpB,mBAAmB,EAAE,CAAC;IACtB,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;CACL,CAAC;AAEE,QAAA,kBAAkB,GAAG,CAAC,CAAC;AACvB,QAAA,cAAc,GAAG,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Collection } from "mongodb";
2
+ import type { PagedResult, ScanPagesQuery, ScanResource, ScanResourceBoardProjection, ScanResourceDoc, UrlTaskStatus } from "./scanResources.types";
3
+ export declare const getScanResourcesCollection: () => Collection<ScanResource>;
4
+ export declare const getScanKpiCounts: (scanId: string) => Promise<Partial<Record<UrlTaskStatus, number>>>;
5
+ export declare const getScanResourceCountsByScanIds: (scanIds: string[]) => Promise<Record<string, number>>;
6
+ export declare const getScanPages: (query: ScanPagesQuery) => Promise<PagedResult<ScanResourceBoardProjection>>;
7
+ export declare const getScanResourceById: (scanId: string, pageId: string) => Promise<ScanResourceDoc | null>;
8
+ //# sourceMappingURL=scanResources.getters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanResources.getters.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,SAAS,CAAC;AAQvD,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,2BAA2B,EAC3B,eAAe,EACf,aAAa,EACd,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,0BAA0B,QAAO,UAAU,CAAC,YAAY,CACR,CAAC;AAE9D,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,KACb,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAYhD,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,SAAS,MAAM,EAAE,KAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWhC,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,OAAO,cAAc,KACpB,OAAO,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAiClD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,MAAM,EACd,QAAQ,MAAM,KACb,OAAO,CAAC,eAAe,GAAG,IAAI,CAC4C,CAAC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getScanResourceById = exports.getScanPages = exports.getScanResourceCountsByScanIds = exports.getScanKpiCounts = exports.getScanResourcesCollection = void 0;
4
+ const mongodb_1 = require("mongodb");
5
+ const index_1 = require("../index");
6
+ const scanResources_constants_1 = require("./scanResources.constants");
7
+ const scanResources_utils_1 = require("./scanResources.utils");
8
+ const getScanResourcesCollection = () => (0, index_1.getDb)().collection(scanResources_constants_1.SCAN_RESOURCES_COLLECTION);
9
+ exports.getScanResourcesCollection = getScanResourcesCollection;
10
+ const getScanKpiCounts = async (scanId) => {
11
+ const rows = await (0, exports.getScanResourcesCollection)()
12
+ .aggregate([
13
+ { $match: { scanId } },
14
+ { $group: { _id: "$status", count: { $sum: 1 } } },
15
+ ])
16
+ .toArray();
17
+ return rows.reduce((acc, row) => {
18
+ acc[row._id] = row.count;
19
+ return acc;
20
+ }, {});
21
+ };
22
+ exports.getScanKpiCounts = getScanKpiCounts;
23
+ const getScanResourceCountsByScanIds = async (scanIds) => {
24
+ if (scanIds.length === 0)
25
+ return {};
26
+ const rows = await (0, exports.getScanResourcesCollection)()
27
+ .aggregate([
28
+ { $match: { scanId: { $in: scanIds } } },
29
+ { $group: { _id: "$scanId", count: { $sum: 1 } } },
30
+ ])
31
+ .toArray();
32
+ return Object.fromEntries(rows.map((row) => [row._id, row.count]));
33
+ };
34
+ exports.getScanResourceCountsByScanIds = getScanResourceCountsByScanIds;
35
+ const getScanPages = async (query) => {
36
+ const limit = Math.min(query.limit ?? scanResources_constants_1.DEFAULT_PAGE_LIMIT, scanResources_constants_1.MAX_PAGE_LIMIT);
37
+ const filter = {
38
+ scanId: query.scanId,
39
+ status: { $in: [...(0, scanResources_utils_1.statusesForColumn)(query.column)] },
40
+ };
41
+ if (query.cursor) {
42
+ filter._id = { $gt: (0, scanResources_utils_1.decodeCursor)(query.cursor) };
43
+ }
44
+ if (query.search) {
45
+ filter.$or = [
46
+ { url: { $regex: query.search, $options: "i" } },
47
+ { title: { $regex: query.search, $options: "i" } },
48
+ ];
49
+ }
50
+ if (query.since) {
51
+ filter.updatedAt = { $gte: query.since };
52
+ }
53
+ const docs = await (0, exports.getScanResourcesCollection)()
54
+ .find(filter, {
55
+ projection: scanResources_constants_1.SCAN_RESOURCE_BOARD_PROJECTION,
56
+ sort: { _id: 1 },
57
+ limit: limit + 1,
58
+ })
59
+ .toArray();
60
+ const hasMore = docs.length > limit;
61
+ const items = (hasMore ? docs.slice(0, limit) : docs);
62
+ const nextCursor = hasMore ? (0, scanResources_utils_1.encodeCursor)(items[items.length - 1]._id) : null;
63
+ return { items, nextCursor };
64
+ };
65
+ exports.getScanPages = getScanPages;
66
+ const getScanResourceById = async (scanId, pageId) => (0, exports.getScanResourcesCollection)().findOne({ scanId, _id: new mongodb_1.ObjectId(pageId) });
67
+ exports.getScanResourceById = getScanResourceById;
68
+ //# sourceMappingURL=scanResources.getters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanResources.getters.js","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.getters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { WithId } from "mongodb";
2
+ import type { BOARD_COLUMN_STATUSES, URL_TASK_STATUSES } from "./scanResources.constants";
3
+ export type UrlTaskStatus = (typeof URL_TASK_STATUSES)[keyof typeof URL_TASK_STATUSES];
4
+ export type BoardColumn = keyof typeof BOARD_COLUMN_STATUSES;
5
+ export type StageLogEntry = {
6
+ from: UrlTaskStatus | null;
7
+ to: UrlTaskStatus;
8
+ occurredAt: Date;
9
+ details: Record<string, unknown>;
10
+ };
11
+ export type ScanResource = {
12
+ urlHashId: string;
13
+ clientId: string;
14
+ scanId: string;
15
+ websiteUrlId: string;
16
+ url: string;
17
+ urlCanonical?: string | null;
18
+ title?: string | null;
19
+ h1?: string | null;
20
+ language?: string | null;
21
+ sourceType?: string | null;
22
+ context?: string | null;
23
+ contentHash?: string | null;
24
+ duplicateOfTaskId?: string | null;
25
+ breadcrumbs?: unknown;
26
+ description?: string | null;
27
+ sourceUrl?: string | null;
28
+ errorMessage?: string | null;
29
+ status: UrlTaskStatus;
30
+ depth: number;
31
+ retryCount: number;
32
+ processRetryCount?: number;
33
+ globalResurrections?: number;
34
+ noRetry?: boolean;
35
+ reviveAt?: Date | null;
36
+ statusEnteredAt?: Date;
37
+ httpStatus?: number;
38
+ finalUrl?: string;
39
+ batchDone?: number;
40
+ batchTotal?: number;
41
+ stageLogs?: StageLogEntry[];
42
+ createdAt: Date;
43
+ updatedAt: Date;
44
+ fetchedAt?: Date | null;
45
+ };
46
+ export type ScanResourceDoc = WithId<ScanResource>;
47
+ export type ScanResourceBoardProjection = Pick<ScanResourceDoc, "_id" | "url" | "title" | "status" | "statusEnteredAt" | "retryCount" | "processRetryCount" | "globalResurrections" | "noRetry" | "errorMessage" | "updatedAt" | "sourceType">;
48
+ export type ScanPagesQuery = {
49
+ scanId: string;
50
+ column: BoardColumn;
51
+ search?: string;
52
+ cursor?: string | null;
53
+ since?: Date;
54
+ limit?: number;
55
+ };
56
+ export type PagedResult<T> = {
57
+ items: T[];
58
+ nextCursor: string | null;
59
+ };
60
+ //# sourceMappingURL=scanResources.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanResources.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=scanResources.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanResources.types.js","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { ObjectId } from "mongodb";
2
+ import type { BoardColumn, UrlTaskStatus } from "./scanResources.types";
3
+ export declare const boardColumn: (status: UrlTaskStatus) => BoardColumn;
4
+ export declare const statusesForColumn: (column: BoardColumn) => readonly UrlTaskStatus[];
5
+ export declare const encodeCursor: (id: ObjectId) => string;
6
+ export declare const decodeCursor: (cursor: string) => ObjectId;
7
+ //# sourceMappingURL=scanResources.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanResources.utils.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAcxE,eAAO,MAAM,WAAW,GAAI,QAAQ,aAAa,KAAG,WAC1B,CAAC;AAE3B,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,WAAW,KAClB,SAAS,aAAa,EAAmC,CAAC;AAE7D,eAAO,MAAM,YAAY,GAAI,IAAI,QAAQ,KAAG,MACM,CAAC;AAEnD,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,QACiB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeCursor = exports.encodeCursor = exports.statusesForColumn = exports.boardColumn = void 0;
4
+ const mongodb_1 = require("mongodb");
5
+ const scanResources_constants_1 = require("./scanResources.constants");
6
+ const STATUS_TO_COLUMN = Object.entries(scanResources_constants_1.BOARD_COLUMN_STATUSES).reduce((acc, [column, statuses]) => {
7
+ for (const status of statuses) {
8
+ acc[status] = column;
9
+ }
10
+ return acc;
11
+ }, {});
12
+ const boardColumn = (status) => STATUS_TO_COLUMN[status];
13
+ exports.boardColumn = boardColumn;
14
+ const statusesForColumn = (column) => scanResources_constants_1.BOARD_COLUMN_STATUSES[column];
15
+ exports.statusesForColumn = statusesForColumn;
16
+ const encodeCursor = (id) => Buffer.from(id.toHexString()).toString("base64");
17
+ exports.encodeCursor = encodeCursor;
18
+ const decodeCursor = (cursor) => new mongodb_1.ObjectId(Buffer.from(cursor, "base64").toString("utf-8"));
19
+ exports.decodeCursor = decodeCursor;
20
+ //# sourceMappingURL=scanResources.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanResources.utils.js","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.utils.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AACnC,uEAAkE;AAGlE,MAAM,gBAAgB,GAAuC,MAAM,CAAC,OAAO,CACzE,+CAAqB,CACtB,CAAC,MAAM,CACN,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE;IAC1B,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,MAAqB,CAAC;IACtC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,EACD,EAAwC,CACzC,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,MAAqB,EAAe,EAAE,CAChE,gBAAgB,CAAC,MAAM,CAAC,CAAC;AADd,QAAA,WAAW,eACG;AAEpB,MAAM,iBAAiB,GAAG,CAC/B,MAAmB,EACO,EAAE,CAAC,+CAAqB,CAAC,MAAM,CAAC,CAAC;AAFhD,QAAA,iBAAiB,qBAE+B;AAEtD,MAAM,YAAY,GAAG,CAAC,EAAY,EAAU,EAAE,CACnD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AADtC,QAAA,YAAY,gBAC0B;AAE5C,MAAM,YAAY,GAAG,CAAC,MAAc,EAAY,EAAE,CACvD,IAAI,kBAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AADnD,QAAA,YAAY,gBACuC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scans.getters.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scans/scans.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,EAEL,YAAY,EACb,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAInD,eAAO,MAAM,kBAAkB,QAAO,UAAU,CAAC,IAAI,CAEpD,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,UAAU,MAAM,EAChB,WAAW,IAAI,EACf,SAAS,IAAI,KACZ,OAAO,CAAC,OAAO,EAAE,CAUnB,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAAI,CAAC,SAAS,MAAM,IAAI,EACpE,UAAU,MAAM,EAChB,WAAW,IAAI,EACf,SAAS,IAAI,EACb,QAAQ,CAAC,EAAE,KACV,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,CAkBpC,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,MAAM,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,qDAa3C,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAEpE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,cAAc,MAAM,KACnB,OAAO,CAAC,OAAO,EAAE,CAKnB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,cAAc,MAAM,KACnB,OAAO,CAAC,OAAO,GAAG,IAAI,CAKxB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,cAAc,MAAM,KACnB,OAAO,CAAC,OAAO,GAAG,IAAI,CAMxB,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,UAAU,MAAM,KACf,OAAO,CAAC,OAAO,EAAE,CAQnB,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,QAAQ,QAAQ,EAChB,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC,KACrD,OAAO,CAAC,OAAO,GAAG,IAAI,CAMxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,EACnB,UAAU,YAAY,KACrB,OAAO,CAAC,OAAO,EAAE,CAGnB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,OAAO,MAAM,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,MAAM,CAEpE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,cAAc,MAAM,KACnB,OAAO,CAAC,OAAO,CAEjB,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC7C,cAAc,MAAM,KACnB,OAAO,CAAC,OAAO,GAAG,IAAI,CAKxB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,cAAc,MAAM,KACnB,OAAO,CAAC,MAAM,CAGhB,CAAC"}
1
+ {"version":3,"file":"scans.getters.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scans/scans.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,EAEL,YAAY,EACb,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAInD,eAAO,MAAM,kBAAkB,QAAO,UAAU,CAAC,IAAI,CAEpD,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,UAAU,MAAM,EAChB,WAAW,IAAI,EACf,SAAS,IAAI,KACZ,OAAO,CAAC,OAAO,EAAE,CAUnB,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAAI,CAAC,SAAS,MAAM,IAAI,EACpE,UAAU,MAAM,EAChB,WAAW,IAAI,EACf,SAAS,IAAI,EACb,QAAQ,CAAC,EAAE,KACV,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,CAkBpC,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,MAAM,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,qDAmB3C,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAEpE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,cAAc,MAAM,KACnB,OAAO,CAAC,OAAO,EAAE,CAKnB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,cAAc,MAAM,KACnB,OAAO,CAAC,OAAO,GAAG,IAAI,CAKxB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,cAAc,MAAM,KACnB,OAAO,CAAC,OAAO,GAAG,IAAI,CAMxB,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,UAAU,MAAM,KACf,OAAO,CAAC,OAAO,EAAE,CAQnB,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,QAAQ,QAAQ,EAChB,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC,KACrD,OAAO,CAAC,OAAO,GAAG,IAAI,CAMxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,EACnB,UAAU,YAAY,KACrB,OAAO,CAAC,OAAO,EAAE,CAGnB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,OAAO,MAAM,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,MAAM,CAEpE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,cAAc,MAAM,KACnB,OAAO,CAAC,OAAO,CAEjB,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC7C,cAAc,MAAM,KACnB,OAAO,CAAC,OAAO,GAAG,IAAI,CAKxB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,cAAc,MAAM,KACnB,OAAO,CAAC,MAAM,CAGhB,CAAC"}
@@ -39,6 +39,7 @@ const getScanFieldsByClientAndDateRange = (clientId, startDate, endDate, fields)
39
39
  };
40
40
  exports.getScanFieldsByClientAndDateRange = getScanFieldsByClientAndDateRange;
41
41
  const createScanDoc = (scan) => {
42
+ const now = new Date();
42
43
  return (0, exports.getScansCollection)().insertOne({
43
44
  ...scan,
44
45
  status: scans_constants_1.SCAN_STATUSES.CHECKING,
@@ -47,8 +48,13 @@ const createScanDoc = (scan) => {
47
48
  pagesSkipped: 0,
48
49
  skipped: [],
49
50
  siteChrome: {},
50
- createdAt: new Date(),
51
- updatedAt: new Date(),
51
+ createdAt: now,
52
+ updatedAt: now,
53
+ startedAt: now,
54
+ completedAt: null,
55
+ pagesCompleted: 0,
56
+ pagesFailedPermanent: 0,
57
+ pagesDuplicate: 0,
52
58
  });
53
59
  };
54
60
  exports.createScanDoc = createScanDoc;
@@ -1 +1 @@
1
- {"version":3,"file":"scans.getters.js","sourceRoot":"","sources":["../../../src/websitalk/scans/scans.getters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scans.getters.js","sourceRoot":"","sources":["../../../src/websitalk/scans/scans.getters.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,11 @@ export type Scan = {
35
35
  siteChrome: SiteChromeEntry;
36
36
  createdAt: Date;
37
37
  updatedAt: Date;
38
+ startedAt?: Date;
39
+ completedAt?: Date | null;
40
+ pagesCompleted?: number;
41
+ pagesFailedPermanent?: number;
42
+ pagesDuplicate?: number;
38
43
  };
39
44
  export type ScanDoc = WithId<Scan>;
40
45
  //# sourceMappingURL=scans.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scans.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scans/scans.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE5E,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"scans.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scans/scans.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE5E,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAKhB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,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.39",
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.40",
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";