@talkpilot/core-db 1.3.13 → 1.3.15

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 (108) hide show
  1. package/README.md +57 -50
  2. package/README_OLD.md +160 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/municipal/index.d.ts +1 -1
  8. package/dist/municipal/index.d.ts.map +1 -1
  9. package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts +3 -0
  10. package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts.map +1 -1
  11. package/dist/talkpilot/clientsConfig/clientsConfig.getters.js +17 -1
  12. package/dist/talkpilot/clientsConfig/clientsConfig.getters.js.map +1 -1
  13. package/dist/talkpilot/clientsConfig/clientsConfig.types.d.ts +1 -2
  14. package/dist/talkpilot/clientsConfig/clientsConfig.types.d.ts.map +1 -1
  15. package/dist/talkpilot/flows/flows.schema.d.ts +0 -3
  16. package/dist/talkpilot/flows/flows.schema.d.ts.map +1 -1
  17. package/dist/talkpilot/flows/flows.schema.js +0 -1
  18. package/dist/talkpilot/flows/flows.schema.js.map +1 -1
  19. package/dist/talkpilot/flows/flows.types.d.ts +0 -2
  20. package/dist/talkpilot/flows/flows.types.d.ts.map +1 -1
  21. package/dist/test-utils/factories/index.d.ts +1 -0
  22. package/dist/test-utils/factories/index.d.ts.map +1 -1
  23. package/dist/test-utils/factories/index.js +1 -0
  24. package/dist/test-utils/factories/index.js.map +1 -1
  25. package/dist/test-utils/factories/talkpilot/flows.d.ts.map +1 -1
  26. package/dist/test-utils/factories/talkpilot/flows.js +0 -1
  27. package/dist/test-utils/factories/talkpilot/flows.js.map +1 -1
  28. package/dist/test-utils/factories/websitalk/scans.d.ts.map +1 -1
  29. package/dist/test-utils/factories/websitalk/scans.js +2 -1
  30. package/dist/test-utils/factories/websitalk/scans.js.map +1 -1
  31. package/dist/test-utils/factories/websitalk/websiteUrls.d.ts +5 -0
  32. package/dist/test-utils/factories/websitalk/websiteUrls.d.ts.map +1 -0
  33. package/dist/test-utils/factories/websitalk/websiteUrls.js +17 -0
  34. package/dist/test-utils/factories/websitalk/websiteUrls.js.map +1 -0
  35. package/dist/websitalk/index.d.ts +1 -0
  36. package/dist/websitalk/index.d.ts.map +1 -1
  37. package/dist/websitalk/index.js +1 -0
  38. package/dist/websitalk/index.js.map +1 -1
  39. package/dist/websitalk/scans/index.d.ts +1 -0
  40. package/dist/websitalk/scans/index.d.ts.map +1 -1
  41. package/dist/websitalk/scans/index.js +1 -0
  42. package/dist/websitalk/scans/index.js.map +1 -1
  43. package/dist/websitalk/scans/scans.constants.d.ts +5 -0
  44. package/dist/websitalk/scans/scans.constants.d.ts.map +1 -0
  45. package/dist/websitalk/scans/scans.constants.js +12 -0
  46. package/dist/websitalk/scans/scans.constants.js.map +1 -0
  47. package/dist/websitalk/scans/scans.getters.d.ts +10 -3
  48. package/dist/websitalk/scans/scans.getters.d.ts.map +1 -1
  49. package/dist/websitalk/scans/scans.getters.js +48 -9
  50. package/dist/websitalk/scans/scans.getters.js.map +1 -1
  51. package/dist/websitalk/scans/scans.types.d.ts +2 -8
  52. package/dist/websitalk/scans/scans.types.d.ts.map +1 -1
  53. package/dist/websitalk/websitalk.setup.d.ts +3 -0
  54. package/dist/websitalk/websitalk.setup.d.ts.map +1 -0
  55. package/dist/websitalk/websitalk.setup.js +34 -0
  56. package/dist/websitalk/websitalk.setup.js.map +1 -0
  57. package/dist/websitalk/websiteUrls/index.d.ts +3 -0
  58. package/dist/websitalk/websiteUrls/index.d.ts.map +1 -0
  59. package/dist/websitalk/websiteUrls/index.js +19 -0
  60. package/dist/websitalk/websiteUrls/index.js.map +1 -0
  61. package/dist/websitalk/websiteUrls/websiteUrls.constants.d.ts +2 -0
  62. package/dist/websitalk/websiteUrls/websiteUrls.constants.d.ts.map +1 -0
  63. package/dist/websitalk/websiteUrls/websiteUrls.constants.js +5 -0
  64. package/dist/websitalk/websiteUrls/websiteUrls.constants.js.map +1 -0
  65. package/dist/websitalk/websiteUrls/websiteUrls.context.d.ts +11 -0
  66. package/dist/websitalk/websiteUrls/websiteUrls.context.d.ts.map +1 -0
  67. package/dist/websitalk/websiteUrls/websiteUrls.context.js +35 -0
  68. package/dist/websitalk/websiteUrls/websiteUrls.context.js.map +1 -0
  69. package/dist/websitalk/websiteUrls/websiteUrls.getters.d.ts +10 -0
  70. package/dist/websitalk/websiteUrls/websiteUrls.getters.d.ts.map +1 -0
  71. package/dist/websitalk/websiteUrls/websiteUrls.getters.js +47 -0
  72. package/dist/websitalk/websiteUrls/websiteUrls.getters.js.map +1 -0
  73. package/dist/websitalk/websiteUrls/websiteUrls.setters.d.ts +7 -0
  74. package/dist/websitalk/websiteUrls/websiteUrls.setters.d.ts.map +1 -0
  75. package/dist/websitalk/websiteUrls/websiteUrls.setters.js +29 -0
  76. package/dist/websitalk/websiteUrls/websiteUrls.setters.js.map +1 -0
  77. package/dist/websitalk/websiteUrls/websiteUrls.types.d.ts +13 -0
  78. package/dist/websitalk/websiteUrls/websiteUrls.types.d.ts.map +1 -0
  79. package/dist/websitalk/websiteUrls/websiteUrls.types.js +3 -0
  80. package/dist/websitalk/websiteUrls/websiteUrls.types.js.map +1 -0
  81. package/package.json +1 -1
  82. package/src/index.ts +1 -0
  83. package/src/municipal/index.ts +1 -1
  84. package/src/talkpilot/clientsConfig/__tests__/clientsConfig.getters.spec.ts +57 -5
  85. package/src/talkpilot/clientsConfig/__tests__/clientsConfig.spec.ts +0 -4
  86. package/src/talkpilot/clientsConfig/clientsConfig.getters.ts +24 -0
  87. package/src/talkpilot/clientsConfig/clientsConfig.types.ts +1 -2
  88. package/src/talkpilot/flows/flows.schema.ts +0 -1
  89. package/src/talkpilot/flows/flows.types.ts +0 -2
  90. package/src/test-utils/factories/index.ts +1 -0
  91. package/src/test-utils/factories/talkpilot/flows.ts +0 -1
  92. package/src/test-utils/factories/websitalk/scans.ts +2 -1
  93. package/src/test-utils/factories/websitalk/websiteUrls.ts +17 -0
  94. package/src/websitalk/index.ts +1 -0
  95. package/src/websitalk/scans/__tests__/scans.spec.ts +121 -26
  96. package/src/websitalk/scans/index.ts +1 -0
  97. package/src/websitalk/scans/scans.constants.ts +12 -0
  98. package/src/websitalk/scans/scans.getters.ts +67 -17
  99. package/src/websitalk/scans/scans.types.ts +3 -6
  100. package/src/websitalk/websiteUrls/__tests__/websiteUrls.spec.ts +77 -0
  101. package/src/websitalk/websiteUrls/index.ts +2 -0
  102. package/src/websitalk/websiteUrls/websiteUrls.getters.ts +65 -0
  103. package/src/websitalk/websiteUrls/websiteUrls.types.ts +13 -0
  104. package/tsconfig.json +4 -4
  105. package/dist/talkpilot/subscriptions/subscriptions.utils.d.ts +0 -4
  106. package/dist/talkpilot/subscriptions/subscriptions.utils.d.ts.map +0 -1
  107. package/dist/talkpilot/subscriptions/subscriptions.utils.js +0 -20
  108. package/dist/talkpilot/subscriptions/subscriptions.utils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../../../src/test-utils/factories/talkpilot/flows.ts"],"names":[],"mappings":";;;AAqBA,gCAYC;AAjCD,qCAAkC;AAClC,qCAAmC;AACnC,2CAAwC;AAG3B,QAAA,WAAW,GAAG,iBAAO,CAAC,MAAM,CAA2B,GAAG,EAAE;IACvE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,OAAO;QACL,GAAG,EAAE,IAAI,kBAAQ,EAAE;QACnB,QAAQ,EAAE,aAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,QAAQ,EAAE,aAAK,CAAC,MAAM,CAAC,IAAI,EAAE;QAC7B,kBAAkB,EAAE,aAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5C,eAAe,EAAE,aAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;QACvC,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,qBAAqB,EAAE,KAAK;QAC5B,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAgB,UAAU,CACxB,SAAyB;IAEzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,mBAAW,CAAC,KAAK,EAAE,CAAC;IACjC,OAAO;QACL,GAAG,IAAI;QACP,GAAG,SAAS;QACZ,GAAG,EAAG,SAAS,EAAE,GAAgB,IAAI,IAAI,CAAC,GAAG;QAC7C,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI,GAAG;KACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../../../src/test-utils/factories/talkpilot/flows.ts"],"names":[],"mappings":";;;AAoBA,gCAYC;AAhCD,qCAAkC;AAClC,qCAAmC;AACnC,2CAAwC;AAG3B,QAAA,WAAW,GAAG,iBAAO,CAAC,MAAM,CAA2B,GAAG,EAAE;IACvE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,OAAO;QACL,GAAG,EAAE,IAAI,kBAAQ,EAAE;QACnB,QAAQ,EAAE,aAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,QAAQ,EAAE,aAAK,CAAC,MAAM,CAAC,IAAI,EAAE;QAC7B,kBAAkB,EAAE,aAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5C,eAAe,EAAE,aAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;QACvC,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAgB,UAAU,CACxB,SAAyB;IAEzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,mBAAW,CAAC,KAAK,EAAE,CAAC;IACjC,OAAO;QACL,GAAG,IAAI;QACP,GAAG,SAAS;QACZ,GAAG,EAAG,SAAS,EAAE,GAAgB,IAAI,IAAI,CAAC,GAAG;QAC7C,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI,GAAG;KACvC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scans.d.ts","sourceRoot":"","sources":["../../../../src/test-utils/factories/websitalk/scans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C,eAAO,MAAM,WAAW,qEAcrB,CAAC;AAEJ,wBAAgB,iBAAiB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAEjE"}
1
+ {"version":3,"file":"scans.d.ts","sourceRoot":"","sources":["../../../../src/test-utils/factories/websitalk/scans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C,eAAO,MAAM,WAAW,qEAcrB,CAAC;AAEJ,wBAAgB,iBAAiB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAEjE"}
@@ -4,9 +4,10 @@ exports.scanFactory = void 0;
4
4
  exports.createScanFixture = createScanFixture;
5
5
  const fishery_1 = require("fishery");
6
6
  const faker_1 = require("@faker-js/faker");
7
+ const mongodb_1 = require("mongodb");
7
8
  exports.scanFactory = fishery_1.Factory.define(() => ({
8
9
  clientId: faker_1.faker.string.uuid(),
9
- baseUrl: faker_1.faker.internet.url(),
10
+ websiteUrlId: new mongodb_1.ObjectId().toString(),
10
11
  status: "CHECKING",
11
12
  activeTasksCount: 0,
12
13
  pagesScanned: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"scans.js","sourceRoot":"","sources":["../../../../src/test-utils/factories/websitalk/scans.ts"],"names":[],"mappings":";;;AAoBA,8CAEC;AAtBD,qCAAkC;AAClC,2CAAwC;AAG3B,QAAA,WAAW,GAAG,iBAAO,CAAC,MAAM,CAAO,GAAG,EAAE,CAAC,CAAC;IACrD,QAAQ,EAAE,aAAK,CAAC,MAAM,CAAC,IAAI,EAAE;IAC7B,OAAO,EAAE,aAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;IAC7B,MAAM,EAAE,UAAU;IAClB,gBAAgB,EAAE,CAAC;IACnB,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,EAAE;IACX,UAAU,EAAE;QACV,GAAG,EAAE,aAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QACzB,UAAU,EAAE,aAAa;KAC1B;IACD,SAAS,EAAE,IAAI,IAAI,EAAE;IACrB,SAAS,EAAE,IAAI,IAAI,EAAE;CACtB,CAAC,CAAC,CAAC;AAEJ,SAAgB,iBAAiB,CAAC,SAAyB;IACzD,OAAO,mBAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"scans.js","sourceRoot":"","sources":["../../../../src/test-utils/factories/websitalk/scans.ts"],"names":[],"mappings":";;;AAqBA,8CAEC;AAvBD,qCAAkC;AAClC,2CAAwC;AACxC,qCAAmC;AAGtB,QAAA,WAAW,GAAG,iBAAO,CAAC,MAAM,CAAO,GAAG,EAAE,CAAC,CAAC;IACrD,QAAQ,EAAE,aAAK,CAAC,MAAM,CAAC,IAAI,EAAE;IAC7B,YAAY,EAAE,IAAI,kBAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,UAAU;IAClB,gBAAgB,EAAE,CAAC;IACnB,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,EAAE;IACX,UAAU,EAAE;QACV,GAAG,EAAE,aAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QACzB,UAAU,EAAE,aAAa;KAC1B;IACD,SAAS,EAAE,IAAI,IAAI,EAAE;IACrB,SAAS,EAAE,IAAI,IAAI,EAAE;CACtB,CAAC,CAAC,CAAC;AAEJ,SAAgB,iBAAiB,CAAC,SAAyB;IACzD,OAAO,mBAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Factory } from "fishery";
2
+ import type { WebsiteUrl } from "../../../websitalk/websiteUrls";
3
+ export declare const websiteUrlFactory: Factory<WebsiteUrl, any, WebsiteUrl, import("fishery").DeepPartialObject<WebsiteUrl>>;
4
+ export declare function createWebsiteUrlFixture(overrides?: Partial<WebsiteUrl>): WebsiteUrl;
5
+ //# sourceMappingURL=websiteUrls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websiteUrls.d.ts","sourceRoot":"","sources":["../../../../src/test-utils/factories/websitalk/websiteUrls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,eAAO,MAAM,iBAAiB,uFAM3B,CAAC;AAEJ,wBAAgB,uBAAuB,CACrC,SAAS,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAC9B,UAAU,CAEZ"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.websiteUrlFactory = void 0;
4
+ exports.createWebsiteUrlFixture = createWebsiteUrlFixture;
5
+ const fishery_1 = require("fishery");
6
+ const faker_1 = require("@faker-js/faker");
7
+ exports.websiteUrlFactory = fishery_1.Factory.define(() => ({
8
+ clientId: faker_1.faker.string.uuid(),
9
+ name: faker_1.faker.company.name(),
10
+ baseUrl: faker_1.faker.internet.url(),
11
+ createdAt: new Date(),
12
+ updatedAt: new Date(),
13
+ }));
14
+ function createWebsiteUrlFixture(overrides) {
15
+ return exports.websiteUrlFactory.build(overrides);
16
+ }
17
+ //# sourceMappingURL=websiteUrls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websiteUrls.js","sourceRoot":"","sources":["../../../../src/test-utils/factories/websitalk/websiteUrls.ts"],"names":[],"mappings":";;;AAYA,0DAIC;AAhBD,qCAAkC;AAClC,2CAAwC;AAG3B,QAAA,iBAAiB,GAAG,iBAAO,CAAC,MAAM,CAAa,GAAG,EAAE,CAAC,CAAC;IACjE,QAAQ,EAAE,aAAK,CAAC,MAAM,CAAC,IAAI,EAAE;IAC7B,IAAI,EAAE,aAAK,CAAC,OAAO,CAAC,IAAI,EAAE;IAC1B,OAAO,EAAE,aAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;IAC7B,SAAS,EAAE,IAAI,IAAI,EAAE;IACrB,SAAS,EAAE,IAAI,IAAI,EAAE;CACtB,CAAC,CAAC,CAAC;AAEJ,SAAgB,uBAAuB,CACrC,SAA+B;IAE/B,OAAO,yBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Db, ObjectId as MongoObjectId } from "mongodb";
2
2
  export * from "./scans";
3
+ export * from "./websiteUrls";
3
4
  export { websitalkMongodbClient } from "./mongodb-client";
4
5
  export declare const setDb: (d: Db) => void;
5
6
  export declare const getDb: () => Db;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/websitalk/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAExD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,eAAO,MAAM,KAAK,GAAI,GAAG,EAAE,SAE1B,CAAC;AAEF,eAAO,MAAM,KAAK,QAAO,EAGxB,CAAC;AACF,eAAO,MAAM,QAAQ,sBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/websitalk/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAExD,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,eAAO,MAAM,KAAK,GAAI,GAAG,EAAE,SAE1B,CAAC;AAEF,eAAO,MAAM,KAAK,QAAO,EAGxB,CAAC;AACF,eAAO,MAAM,QAAQ,sBAAgB,CAAC"}
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.ObjectId = exports.getDb = exports.setDb = exports.websitalkMongodbClient = void 0;
18
18
  const mongodb_1 = require("mongodb");
19
19
  __exportStar(require("./scans"), exports);
20
+ __exportStar(require("./websiteUrls"), exports);
20
21
  var mongodb_client_1 = require("./mongodb-client");
21
22
  Object.defineProperty(exports, "websitalkMongodbClient", { enumerable: true, get: function () { return mongodb_client_1.websitalkMongodbClient; } });
22
23
  let db;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/websitalk/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qCAAwD;AAExD,0CAAwB;AACxB,mDAA0D;AAAjD,wHAAA,sBAAsB,OAAA;AAE/B,IAAI,EAAM,CAAC;AACJ,MAAM,KAAK,GAAG,CAAC,CAAK,EAAE,EAAE;IAC7B,EAAE,GAAG,CAAC,CAAC;AACT,CAAC,CAAC;AAFW,QAAA,KAAK,SAEhB;AAEK,MAAM,KAAK,GAAG,GAAO,EAAE;IAC5B,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC5D,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAHW,QAAA,KAAK,SAGhB;AACW,QAAA,QAAQ,GAAG,kBAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/websitalk/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qCAAwD;AAExD,0CAAwB;AACxB,gDAA8B;AAC9B,mDAA0D;AAAjD,wHAAA,sBAAsB,OAAA;AAE/B,IAAI,EAAM,CAAC;AACJ,MAAM,KAAK,GAAG,CAAC,CAAK,EAAE,EAAE;IAC7B,EAAE,GAAG,CAAC,CAAC;AACT,CAAC,CAAC;AAFW,QAAA,KAAK,SAEhB;AAEK,MAAM,KAAK,GAAG,GAAO,EAAE;IAC5B,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC5D,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAHW,QAAA,KAAK,SAGhB;AACW,QAAA,QAAQ,GAAG,kBAAa,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from "./scans.constants";
1
2
  export * from "./scans.getters";
2
3
  export * from "./scans.types";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scans/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scans/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./scans.constants"), exports);
17
18
  __exportStar(require("./scans.getters"), exports);
18
19
  __exportStar(require("./scans.types"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/websitalk/scans/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/websitalk/scans/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,kDAAgC;AAChC,gDAA8B"}
@@ -0,0 +1,5 @@
1
+ import type { Scan, ScanStatus } from "./scans.types";
2
+ export declare const INITIAL_SCAN_STATUS: "CHECKING";
3
+ export declare const FINISHED_SCAN_STATUSES: ScanStatus[];
4
+ export declare const isInProgressScan: (scan: Scan) => boolean;
5
+ //# sourceMappingURL=scans.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scans.constants.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scans/scans.constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEtD,eAAO,MAAM,mBAAmB,YAA2C,CAAC;AAE5E,eAAO,MAAM,sBAAsB,EAAE,UAAU,EAI9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM,IAAI,KAAG,OACC,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isInProgressScan = exports.FINISHED_SCAN_STATUSES = exports.INITIAL_SCAN_STATUS = void 0;
4
+ exports.INITIAL_SCAN_STATUS = "CHECKING";
5
+ exports.FINISHED_SCAN_STATUSES = [
6
+ "COMPLETED",
7
+ "FAILED",
8
+ "OVERWRITTEN",
9
+ ];
10
+ const isInProgressScan = (scan) => !exports.FINISHED_SCAN_STATUSES.includes(scan.status);
11
+ exports.isInProgressScan = isInProgressScan;
12
+ //# sourceMappingURL=scans.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scans.constants.js","sourceRoot":"","sources":["../../../src/websitalk/scans/scans.constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAG,UAAwC,CAAC;AAE/D,QAAA,sBAAsB,GAAiB;IAClD,WAAW;IACX,QAAQ;IACR,aAAa;CACd,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAW,EAAE,CACtD,CAAC,8BAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AADnC,QAAA,gBAAgB,oBACmB"}
@@ -1,12 +1,19 @@
1
1
  import { Collection, Filter, ObjectId } from "mongodb";
2
2
  import { QueryOptions } from "../../talkpilot/utils/query.utils";
3
- import type { ActiveScanStatus, Scan, ScanDoc } from "./scans.types";
3
+ import type { Scan, ScanDoc } from "./scans.types";
4
4
  export declare const getScansCollection: () => Collection<Scan>;
5
5
  export declare const getScansByClientAndDateRange: (clientId: string, startDate: Date, endDate: Date) => Promise<ScanDoc[]>;
6
6
  export declare const getScanFieldsByClientAndDateRange: <K extends keyof Scan>(clientId: string, startDate: Date, endDate: Date, fields: K[]) => Promise<Pick<ScanDoc, "_id" | K>[]>;
7
- export declare const createScanDoc: (scan: Pick<Scan, "clientId" | "baseUrl" | "notifyPhoneNumber">) => Promise<import("mongodb").InsertOneResult<Scan>>;
8
- export declare const getActiveScanStatus: (clientId: string) => Promise<ActiveScanStatus>;
7
+ export declare const createScanDoc: (scan: Pick<Scan, "clientId" | "websiteUrlId"> & Partial<Pick<Scan, "notifyPhoneNumber">>) => Promise<import("mongodb").InsertOneResult<Scan>>;
8
+ export declare const getScanById: (id: string) => Promise<ScanDoc | null>;
9
+ export declare const getScansByWebsiteUrl: (websiteUrlId: string) => Promise<ScanDoc[]>;
10
+ export declare const getLatestScanByWebsiteUrl: (websiteUrlId: string) => Promise<ScanDoc | null>;
11
+ export declare const getInProgressScanByWebsiteUrl: (websiteUrlId: string) => Promise<ScanDoc | null>;
12
+ export declare const findInProgressScansByClient: (clientId: string) => Promise<ScanDoc[]>;
9
13
  export declare const updateScanDoc: (scanId: ObjectId, updates: Partial<Omit<Scan, "clientId" | "createdAt">>) => Promise<ScanDoc | null>;
10
14
  export declare const findScansByQuery: (query: Filter<Scan>, options?: QueryOptions) => Promise<ScanDoc[]>;
11
15
  export declare const countScans: (query: Filter<Scan>) => Promise<number>;
16
+ export declare const hasScansForWebsiteUrl: (websiteUrlId: string) => Promise<boolean>;
17
+ export declare const getLatestCompletedScanByWebsiteUrl: (websiteUrlId: string) => Promise<ScanDoc | null>;
18
+ export declare const deleteScansByWebsiteUrl: (websiteUrlId: string) => Promise<number>;
12
19
  //# sourceMappingURL=scans.getters.d.ts.map
@@ -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,EACV,gBAAgB,EAChB,IAAI,EACJ,OAAO,EAER,MAAM,eAAe,CAAC;AAEvB,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,SAAS,GAAG,mBAAmB,CAAC,qDAa/D,CAAC;AAIF,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,KACf,OAAO,CAAC,gBAAgB,CAW1B,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"}
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;AAOnD,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,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.countScans = exports.findScansByQuery = exports.updateScanDoc = exports.getActiveScanStatus = exports.createScanDoc = exports.getScanFieldsByClientAndDateRange = exports.getScansByClientAndDateRange = exports.getScansCollection = void 0;
3
+ exports.deleteScansByWebsiteUrl = exports.getLatestCompletedScanByWebsiteUrl = exports.hasScansForWebsiteUrl = exports.countScans = exports.findScansByQuery = exports.updateScanDoc = exports.findInProgressScansByClient = exports.getInProgressScanByWebsiteUrl = exports.getLatestScanByWebsiteUrl = exports.getScansByWebsiteUrl = exports.getScanById = exports.createScanDoc = exports.getScanFieldsByClientAndDateRange = exports.getScansByClientAndDateRange = exports.getScansCollection = void 0;
4
+ const mongodb_1 = require("mongodb");
4
5
  const index_1 = require("../index");
5
6
  const query_utils_1 = require("../../talkpilot/utils/query.utils");
7
+ const scans_constants_1 = require("./scans.constants");
6
8
  const getScansCollection = () => {
7
9
  return (0, index_1.getDb)().collection("scans");
8
10
  };
@@ -38,7 +40,7 @@ exports.getScanFieldsByClientAndDateRange = getScanFieldsByClientAndDateRange;
38
40
  const createScanDoc = (scan) => {
39
41
  return (0, exports.getScansCollection)().insertOne({
40
42
  ...scan,
41
- status: "CHECKING",
43
+ status: scans_constants_1.INITIAL_SCAN_STATUS,
42
44
  activeTasksCount: 0,
43
45
  pagesScanned: 0,
44
46
  pagesSkipped: 0,
@@ -49,15 +51,39 @@ const createScanDoc = (scan) => {
49
51
  });
50
52
  };
51
53
  exports.createScanDoc = createScanDoc;
52
- const FINISHED_SCAN_STATUSES = ["COMPLETED", "FAILED"];
53
- const getActiveScanStatus = async (clientId) => {
54
- const latestScan = await (0, exports.getScansCollection)().findOne({ clientId }, { sort: { createdAt: -1 } });
55
- if (!latestScan || FINISHED_SCAN_STATUSES.includes(latestScan.status)) {
56
- return { isActive: false };
54
+ const getScanById = async (id) => {
55
+ return (0, exports.getScansCollection)().findOne({ _id: new mongodb_1.ObjectId(id) });
56
+ };
57
+ exports.getScanById = getScanById;
58
+ const getScansByWebsiteUrl = async (websiteUrlId) => {
59
+ return (0, exports.getScansCollection)()
60
+ .find({ websiteUrlId })
61
+ .sort({ createdAt: -1 })
62
+ .toArray();
63
+ };
64
+ exports.getScansByWebsiteUrl = getScansByWebsiteUrl;
65
+ const getLatestScanByWebsiteUrl = async (websiteUrlId) => {
66
+ return (0, exports.getScansCollection)().findOne({ websiteUrlId }, { sort: { createdAt: -1 } });
67
+ };
68
+ exports.getLatestScanByWebsiteUrl = getLatestScanByWebsiteUrl;
69
+ const getInProgressScanByWebsiteUrl = async (websiteUrlId) => {
70
+ const latestScan = await (0, exports.getLatestScanByWebsiteUrl)(websiteUrlId);
71
+ if (!latestScan || !(0, scans_constants_1.isInProgressScan)(latestScan)) {
72
+ return null;
57
73
  }
58
- return { isActive: true, status: latestScan.status };
74
+ return latestScan;
75
+ };
76
+ exports.getInProgressScanByWebsiteUrl = getInProgressScanByWebsiteUrl;
77
+ const findInProgressScansByClient = async (clientId) => {
78
+ return (0, exports.getScansCollection)()
79
+ .find({
80
+ clientId,
81
+ status: { $nin: scans_constants_1.FINISHED_SCAN_STATUSES },
82
+ })
83
+ .sort({ createdAt: -1 })
84
+ .toArray();
59
85
  };
60
- exports.getActiveScanStatus = getActiveScanStatus;
86
+ exports.findInProgressScansByClient = findInProgressScansByClient;
61
87
  const updateScanDoc = async (scanId, updates) => {
62
88
  return await (0, exports.getScansCollection)().findOneAndUpdate({ _id: scanId }, { $set: { ...updates, updatedAt: new Date() } }, { returnDocument: "after" });
63
89
  };
@@ -71,4 +97,17 @@ const countScans = async (query) => {
71
97
  return (0, exports.getScansCollection)().countDocuments(query);
72
98
  };
73
99
  exports.countScans = countScans;
100
+ const hasScansForWebsiteUrl = async (websiteUrlId) => {
101
+ return (await (0, exports.countScans)({ websiteUrlId })) > 0;
102
+ };
103
+ exports.hasScansForWebsiteUrl = hasScansForWebsiteUrl;
104
+ const getLatestCompletedScanByWebsiteUrl = async (websiteUrlId) => {
105
+ return (0, exports.getScansCollection)().findOne({ websiteUrlId, status: "COMPLETED" }, { sort: { createdAt: -1 } });
106
+ };
107
+ exports.getLatestCompletedScanByWebsiteUrl = getLatestCompletedScanByWebsiteUrl;
108
+ const deleteScansByWebsiteUrl = async (websiteUrlId) => {
109
+ const result = await (0, exports.getScansCollection)().deleteMany({ websiteUrlId });
110
+ return result.deletedCount;
111
+ };
112
+ exports.deleteScansByWebsiteUrl = deleteScansByWebsiteUrl;
74
113
  //# sourceMappingURL=scans.getters.js.map
@@ -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":";;;AAAA,qCAAuD;AACvD,oCAAiC;AACjC,mEAG2C;AAE3C,uDAI2B;AAEpB,MAAM,kBAAkB,GAAG,GAAqB,EAAE;IACvD,OAAO,IAAA,aAAK,GAAE,CAAC,UAAU,CAAO,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEK,MAAM,4BAA4B,GAAG,CAC1C,QAAgB,EAChB,SAAe,EACf,OAAa,EACO,EAAE;IACtB,OAAO,IAAA,0BAAkB,GAAE;SACxB,IAAI,CAAC;QACJ,QAAQ;QACR,SAAS,EAAE;YACT,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO;SACd;KACF,CAAC;SACD,OAAO,EAAE,CAAC;AACf,CAAC,CAAC;AAdW,QAAA,4BAA4B,gCAcvC;AAEK,MAAM,iCAAiC,GAAG,CAC/C,QAAgB,EAChB,SAAe,EACf,OAAa,EACb,MAAW,EAC0B,EAAE;IACvC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACjE,GAAG,CAAC,KAAe,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAA,0BAAkB,GAAE;SACxB,IAAI,CACH;QACE,QAAQ;QACR,SAAS,EAAE;YACT,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO;SACd;KACF,EACD,EAAE,UAAU,EAAE,CACf;SACA,OAAO,EAAyC,CAAC;AACtD,CAAC,CAAC;AAvBW,QAAA,iCAAiC,qCAuB5C;AAEK,MAAM,aAAa,GAAG,CAC3B,IAC0C,EAC1C,EAAE;IACF,OAAO,IAAA,0BAAkB,GAAE,CAAC,SAAS,CAAC;QACpC,GAAG,IAAI;QACP,MAAM,EAAE,qCAAmB;QAC3B,gBAAgB,EAAE,CAAC;QACnB,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAwB;QACpC,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC,CAAC;AACL,CAAC,CAAC;AAfW,QAAA,aAAa,iBAexB;AAEK,MAAM,WAAW,GAAG,KAAK,EAAE,EAAU,EAA2B,EAAE;IACvE,OAAO,IAAA,0BAAkB,GAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,kBAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB;AAEK,MAAM,oBAAoB,GAAG,KAAK,EACvC,YAAoB,EACA,EAAE;IACtB,OAAO,IAAA,0BAAkB,GAAE;SACxB,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;SACtB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;SACvB,OAAO,EAAE,CAAC;AACf,CAAC,CAAC;AAPW,QAAA,oBAAoB,wBAO/B;AAEK,MAAM,yBAAyB,GAAG,KAAK,EAC5C,YAAoB,EACK,EAAE;IAC3B,OAAO,IAAA,0BAAkB,GAAE,CAAC,OAAO,CACjC,EAAE,YAAY,EAAE,EAChB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5B,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,yBAAyB,6BAOpC;AAEK,MAAM,6BAA6B,GAAG,KAAK,EAChD,YAAoB,EACK,EAAE;IAC3B,MAAM,UAAU,GAAG,MAAM,IAAA,iCAAyB,EAAC,YAAY,CAAC,CAAC;IACjE,IAAI,CAAC,UAAU,IAAI,CAAC,IAAA,kCAAgB,EAAC,UAAU,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AARW,QAAA,6BAA6B,iCAQxC;AAEK,MAAM,2BAA2B,GAAG,KAAK,EAC9C,QAAgB,EACI,EAAE;IACtB,OAAO,IAAA,0BAAkB,GAAE;SACxB,IAAI,CAAC;QACJ,QAAQ;QACR,MAAM,EAAE,EAAE,IAAI,EAAE,wCAAsB,EAAE;KACzC,CAAC;SACD,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;SACvB,OAAO,EAAE,CAAC;AACf,CAAC,CAAC;AAVW,QAAA,2BAA2B,+BAUtC;AAEK,MAAM,aAAa,GAAG,KAAK,EAChC,MAAgB,EAChB,OAAsD,EAC7B,EAAE;IAC3B,OAAO,MAAM,IAAA,0BAAkB,GAAE,CAAC,gBAAgB,CAChD,EAAE,GAAG,EAAE,MAAM,EAAE,EACf,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAC/C,EAAE,cAAc,EAAE,OAAO,EAAE,CAC5B,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB;AAEK,MAAM,gBAAgB,GAAG,KAAK,EACnC,KAAmB,EACnB,OAAsB,EACF,EAAE;IACtB,MAAM,MAAM,GAAG,IAAA,0BAAkB,GAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,MAAM,IAAA,+BAAiB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;AAC5D,CAAC,CAAC;AANW,QAAA,gBAAgB,oBAM3B;AAEK,MAAM,UAAU,GAAG,KAAK,EAAE,KAAmB,EAAmB,EAAE;IACvE,OAAO,IAAA,0BAAkB,GAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB;AAEK,MAAM,qBAAqB,GAAG,KAAK,EACxC,YAAoB,EACF,EAAE;IACpB,OAAO,CAAC,MAAM,IAAA,kBAAU,EAAC,EAAE,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC,CAAC;AAJW,QAAA,qBAAqB,yBAIhC;AAEK,MAAM,kCAAkC,GAAG,KAAK,EACrD,YAAoB,EACK,EAAE;IAC3B,OAAO,IAAA,0BAAkB,GAAE,CAAC,OAAO,CACjC,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,EACrC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5B,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,kCAAkC,sCAO7C;AAEK,MAAM,uBAAuB,GAAG,KAAK,EAC1C,YAAoB,EACH,EAAE;IACnB,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAkB,GAAE,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B,CAAC,CAAC;AALW,QAAA,uBAAuB,2BAKlC"}
@@ -1,11 +1,5 @@
1
1
  import { WithId } from "mongodb";
2
- export type ScanStatus = "CHECKING" | "PREPARING" | "SCANNING" | "PROCESSING" | "COMPLETED" | "FAILED";
3
- export type ActiveScanStatus = {
4
- isActive: true;
5
- status: ScanStatus;
6
- } | {
7
- isActive: false;
8
- };
2
+ export type ScanStatus = "CHECKING" | "PREPARING" | "SCANNING" | "PROCESSING" | "COMPLETED" | "FAILED" | "OVERWRITTEN";
9
3
  export type SiteChromeEntry = {
10
4
  url: string;
11
5
  urlCanonical?: string | null;
@@ -30,7 +24,7 @@ export type SkippedEntry = {
30
24
  };
31
25
  export type Scan = {
32
26
  clientId: string;
33
- baseUrl: string;
27
+ websiteUrlId: string;
34
28
  notifyPhoneNumber?: string | null;
35
29
  status: ScanStatus;
36
30
  activeTasksCount: number;
@@ -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,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,WAAW,GACX,UAAU,GACV,YAAY,GACZ,WAAW,GACX,QAAQ,CAAC;AAEb,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACtC;IAAE,QAAQ,EAAE,KAAK,CAAA;CAAE,CAAC;AAExB,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,OAAO,EAAE,MAAM,CAAC;IAChB,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,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,WAAW,GACX,UAAU,GACV,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,aAAa,CAAC;AAElB,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"}
@@ -0,0 +1,3 @@
1
+ export declare const ensureWebsitalkIndexes: () => Promise<void>;
2
+ export declare const ensureWebsitalkIndexesOnce: () => Promise<void>;
3
+ //# sourceMappingURL=websitalk.setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websitalk.setup.d.ts","sourceRoot":"","sources":["../../src/websitalk/websitalk.setup.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,sBAAsB,QAAa,OAAO,CAAC,IAAI,CAW3D,CAAC;AAIF,eAAO,MAAM,0BAA0B,QAAO,OAAO,CAAC,IAAI,CAWzD,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureWebsitalkIndexesOnce = exports.ensureWebsitalkIndexes = void 0;
4
+ const index_1 = require("./index");
5
+ const scans_getters_1 = require("./scans/scans.getters");
6
+ const websiteUrls_getters_1 = require("./websiteUrls/websiteUrls.getters");
7
+ const ensureWebsitalkIndexes = async () => {
8
+ await (0, index_1.getDb)().collection(websiteUrls_getters_1.WEBSITE_URLS_COLLECTION).createIndex({ clientId: 1 });
9
+ await (0, scans_getters_1.getScansCollection)().createIndexes([
10
+ { key: { clientId: 1, createdAt: -1 } },
11
+ { key: { websiteUrlId: 1, createdAt: -1 } },
12
+ {
13
+ key: { websiteUrlId: 1, status: 1 },
14
+ unique: true,
15
+ partialFilterExpression: { status: "COMPLETED" },
16
+ },
17
+ ]);
18
+ };
19
+ exports.ensureWebsitalkIndexes = ensureWebsitalkIndexes;
20
+ const provisioningByDb = new WeakMap();
21
+ const ensureWebsitalkIndexesOnce = () => {
22
+ const db = (0, index_1.getDb)();
23
+ let provisioning = provisioningByDb.get(db);
24
+ if (!provisioning) {
25
+ provisioning = (0, exports.ensureWebsitalkIndexes)().catch((err) => {
26
+ provisioningByDb.delete(db);
27
+ throw err;
28
+ });
29
+ provisioningByDb.set(db, provisioning);
30
+ }
31
+ return provisioning;
32
+ };
33
+ exports.ensureWebsitalkIndexesOnce = ensureWebsitalkIndexesOnce;
34
+ //# sourceMappingURL=websitalk.setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websitalk.setup.js","sourceRoot":"","sources":["../../src/websitalk/websitalk.setup.ts"],"names":[],"mappings":";;;AACA,mCAAgC;AAChC,yDAA2D;AAC3D,2EAA4E;AAErE,MAAM,sBAAsB,GAAG,KAAK,IAAmB,EAAE;IAC9D,MAAM,IAAA,aAAK,GAAE,CAAC,UAAU,CAAC,6CAAuB,CAAC,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/E,MAAM,IAAA,kCAAkB,GAAE,CAAC,aAAa,CAAC;QACvC,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QACvC,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QAC3C;YACE,GAAG,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;YACnC,MAAM,EAAE,IAAI;YACZ,uBAAuB,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;SACjD;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,sBAAsB,0BAWjC;AAEF,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAqB,CAAC;AAEnD,MAAM,0BAA0B,GAAG,GAAkB,EAAE;IAC5D,MAAM,EAAE,GAAG,IAAA,aAAK,GAAE,CAAC;IACnB,IAAI,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAA,8BAAsB,GAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACpD,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5B,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAXW,QAAA,0BAA0B,8BAWrC"}
@@ -0,0 +1,3 @@
1
+ export * from "./websiteUrls.types";
2
+ export * from "./websiteUrls.getters";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/websitalk/websiteUrls/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./websiteUrls.types"), exports);
18
+ __exportStar(require("./websiteUrls.getters"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/websitalk/websiteUrls/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,wDAAsC"}
@@ -0,0 +1,2 @@
1
+ export declare const WEBSITE_URLS_COLLECTION = "websiteUrls";
2
+ //# sourceMappingURL=websiteUrls.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websiteUrls.constants.d.ts","sourceRoot":"","sources":["../../../src/websitalk/websiteUrls/websiteUrls.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,gBAAgB,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WEBSITE_URLS_COLLECTION = void 0;
4
+ exports.WEBSITE_URLS_COLLECTION = "websiteUrls";
5
+ //# sourceMappingURL=websiteUrls.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websiteUrls.constants.js","sourceRoot":"","sources":["../../../src/websitalk/websiteUrls/websiteUrls.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ScanDoc } from "../scans/scans.types";
2
+ import type { WebsiteUrlDoc } from "./websiteUrls.types";
3
+ export type ActiveWebsiteContext = {
4
+ websiteUrl: WebsiteUrlDoc | null;
5
+ scan: ScanDoc | null;
6
+ activeScanId: string | null;
7
+ };
8
+ export declare const resolveActiveWebsiteContext: (clientId: string) => Promise<ActiveWebsiteContext>;
9
+ export declare const getSelectedScanByClient: (clientId: string) => Promise<ScanDoc | null>;
10
+ export declare const getActiveWebsiteUrlByClient: (clientId: string) => Promise<WebsiteUrlDoc | null>;
11
+ //# sourceMappingURL=websiteUrls.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websiteUrls.context.d.ts","sourceRoot":"","sources":["../../../src/websitalk/websiteUrls/websiteUrls.context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,UAAU,MAAM,KACf,OAAO,CAAC,oBAAoB,CAgB9B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,UAAU,MAAM,KACf,OAAO,CAAC,OAAO,GAAG,IAAI,CAOxB,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,UAAU,MAAM,KACf,OAAO,CAAC,aAAa,GAAG,IAAI,CAG9B,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getActiveWebsiteUrlByClient = exports.getSelectedScanByClient = exports.resolveActiveWebsiteContext = void 0;
4
+ const clientsConfig_getters_1 = require("../../talkpilot/clientsConfig/clientsConfig.getters");
5
+ const scans_getters_1 = require("../scans/scans.getters");
6
+ const websiteUrls_getters_1 = require("./websiteUrls.getters");
7
+ const resolveActiveWebsiteContext = async (clientId) => {
8
+ const config = await (0, clientsConfig_getters_1.getClientConfig)(clientId);
9
+ const activeScanId = config?.products?.websiteTalk?.activeScanId ?? null;
10
+ if (!activeScanId) {
11
+ return { websiteUrl: null, scan: null, activeScanId: null };
12
+ }
13
+ const scan = await (0, scans_getters_1.getScanById)(activeScanId);
14
+ if (!scan) {
15
+ return { websiteUrl: null, scan: null, activeScanId };
16
+ }
17
+ const websiteUrl = await (0, websiteUrls_getters_1.getWebsiteUrlById)(scan.websiteUrlId);
18
+ return { websiteUrl, scan, activeScanId };
19
+ };
20
+ exports.resolveActiveWebsiteContext = resolveActiveWebsiteContext;
21
+ const getSelectedScanByClient = async (clientId) => {
22
+ const config = await (0, clientsConfig_getters_1.getClientConfig)(clientId);
23
+ const activeScanId = config?.products?.websiteTalk?.activeScanId;
24
+ if (!activeScanId) {
25
+ return null;
26
+ }
27
+ return (0, scans_getters_1.getScanById)(activeScanId);
28
+ };
29
+ exports.getSelectedScanByClient = getSelectedScanByClient;
30
+ const getActiveWebsiteUrlByClient = async (clientId) => {
31
+ const context = await (0, exports.resolveActiveWebsiteContext)(clientId);
32
+ return context.websiteUrl;
33
+ };
34
+ exports.getActiveWebsiteUrlByClient = getActiveWebsiteUrlByClient;
35
+ //# sourceMappingURL=websiteUrls.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websiteUrls.context.js","sourceRoot":"","sources":["../../../src/websitalk/websiteUrls/websiteUrls.context.ts"],"names":[],"mappings":";;;AAAA,+FAAsF;AACtF,0DAAqD;AAErD,+DAE+B;AASxB,MAAM,2BAA2B,GAAG,KAAK,EAC9C,QAAgB,EACe,EAAE;IACjC,MAAM,MAAM,GAAG,MAAM,IAAA,uCAAe,EAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,IAAI,IAAI,CAAC;IAEzE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC9D,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,IAAA,2BAAW,EAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACxD,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,IAAA,uCAAiB,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE9D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAC5C,CAAC,CAAC;AAlBW,QAAA,2BAA2B,+BAkBtC;AAEK,MAAM,uBAAuB,GAAG,KAAK,EAC1C,QAAgB,EACS,EAAE;IAC3B,MAAM,MAAM,GAAG,MAAM,IAAA,uCAAe,EAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC;IACjE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAA,2BAAW,EAAC,YAAY,CAAC,CAAC;AACnC,CAAC,CAAC;AATW,QAAA,uBAAuB,2BASlC;AAEK,MAAM,2BAA2B,GAAG,KAAK,EAC9C,QAAgB,EACe,EAAE;IACjC,MAAM,OAAO,GAAG,MAAM,IAAA,mCAA2B,EAAC,QAAQ,CAAC,CAAC;IAC5D,OAAO,OAAO,CAAC,UAAU,CAAC;AAC5B,CAAC,CAAC;AALW,QAAA,2BAA2B,+BAKtC"}
@@ -0,0 +1,10 @@
1
+ import { Collection, Filter, ObjectId as MongoObjectId } from "mongodb";
2
+ import type { CreateWebsiteUrlInput, WebsiteUrl, WebsiteUrlDoc } from "./websiteUrls.types";
3
+ export declare const getWebsiteUrlsCollection: () => Collection<WebsiteUrl>;
4
+ export declare const getWebsiteUrlsByClient: (clientId: string) => Promise<WebsiteUrlDoc[]>;
5
+ export declare const getWebsiteUrlById: (id: string) => Promise<WebsiteUrlDoc | null>;
6
+ export declare const findWebsiteUrls: (filter?: Filter<WebsiteUrl>) => Promise<WebsiteUrlDoc[]>;
7
+ export declare const createWebsiteUrl: (input: CreateWebsiteUrlInput) => Promise<MongoObjectId>;
8
+ export declare const updateWebsiteUrl: (id: string, updates: Partial<Pick<WebsiteUrl, "name" | "baseUrl">>) => Promise<WebsiteUrlDoc | null>;
9
+ export declare const deleteWebsiteUrl: (id: string) => Promise<boolean>;
10
+ //# sourceMappingURL=websiteUrls.getters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websiteUrls.getters.d.ts","sourceRoot":"","sources":["../../../src/websitalk/websiteUrls/websiteUrls.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAExE,OAAO,KAAK,EACV,qBAAqB,EACrB,UAAU,EACV,aAAa,EACd,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,wBAAwB,QAAO,UAAU,CAAC,UAAU,CAEhE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,KACf,OAAO,CAAC,aAAa,EAAE,CAKzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,IAAI,MAAM,KACT,OAAO,CAAC,aAAa,GAAG,IAAI,CAE9B,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,SAAQ,MAAM,CAAC,UAAU,CAAM,KAC9B,OAAO,CAAC,aAAa,EAAE,CAEzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,qBAAqB,KAC3B,OAAO,CAAC,aAAa,CAWvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,IAAI,MAAM,EACV,SAAS,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,KACrD,OAAO,CAAC,aAAa,GAAG,IAAI,CAM9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,OAAO,CAKlE,CAAC"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteWebsiteUrl = exports.updateWebsiteUrl = exports.createWebsiteUrl = exports.findWebsiteUrls = exports.getWebsiteUrlById = exports.getWebsiteUrlsByClient = exports.getWebsiteUrlsCollection = void 0;
4
+ const index_1 = require("../index");
5
+ const getWebsiteUrlsCollection = () => {
6
+ return (0, index_1.getDb)().collection("websiteUrls");
7
+ };
8
+ exports.getWebsiteUrlsCollection = getWebsiteUrlsCollection;
9
+ const getWebsiteUrlsByClient = async (clientId) => {
10
+ return (0, exports.getWebsiteUrlsCollection)()
11
+ .find({ clientId })
12
+ .sort({ createdAt: 1 })
13
+ .toArray();
14
+ };
15
+ exports.getWebsiteUrlsByClient = getWebsiteUrlsByClient;
16
+ const getWebsiteUrlById = async (id) => {
17
+ return (0, exports.getWebsiteUrlsCollection)().findOne({ _id: new index_1.ObjectId(id) });
18
+ };
19
+ exports.getWebsiteUrlById = getWebsiteUrlById;
20
+ const findWebsiteUrls = async (filter = {}) => {
21
+ return (0, exports.getWebsiteUrlsCollection)().find(filter).toArray();
22
+ };
23
+ exports.findWebsiteUrls = findWebsiteUrls;
24
+ const createWebsiteUrl = async (input) => {
25
+ const now = new Date();
26
+ const { insertedId } = await (0, exports.getWebsiteUrlsCollection)().insertOne({
27
+ clientId: input.clientId,
28
+ name: input.name,
29
+ baseUrl: input.baseUrl,
30
+ createdAt: now,
31
+ updatedAt: now,
32
+ });
33
+ return insertedId;
34
+ };
35
+ exports.createWebsiteUrl = createWebsiteUrl;
36
+ const updateWebsiteUrl = async (id, updates) => {
37
+ return (0, exports.getWebsiteUrlsCollection)().findOneAndUpdate({ _id: new index_1.ObjectId(id) }, { $set: { ...updates, updatedAt: new Date() } }, { returnDocument: "after" });
38
+ };
39
+ exports.updateWebsiteUrl = updateWebsiteUrl;
40
+ const deleteWebsiteUrl = async (id) => {
41
+ const result = await (0, exports.getWebsiteUrlsCollection)().deleteOne({
42
+ _id: new index_1.ObjectId(id),
43
+ });
44
+ return result.deletedCount === 1;
45
+ };
46
+ exports.deleteWebsiteUrl = deleteWebsiteUrl;
47
+ //# sourceMappingURL=websiteUrls.getters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websiteUrls.getters.js","sourceRoot":"","sources":["../../../src/websitalk/websiteUrls/websiteUrls.getters.ts"],"names":[],"mappings":";;;AACA,oCAA2C;AAOpC,MAAM,wBAAwB,GAAG,GAA2B,EAAE;IACnE,OAAO,IAAA,aAAK,GAAE,CAAC,UAAU,CAAa,aAAa,CAAC,CAAC;AACvD,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC;AAEK,MAAM,sBAAsB,GAAG,KAAK,EACzC,QAAgB,EACU,EAAE;IAC5B,OAAO,IAAA,gCAAwB,GAAE;SAC9B,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;SAClB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;SACtB,OAAO,EAAE,CAAC;AACf,CAAC,CAAC;AAPW,QAAA,sBAAsB,0BAOjC;AAEK,MAAM,iBAAiB,GAAG,KAAK,EACpC,EAAU,EACqB,EAAE;IACjC,OAAO,IAAA,gCAAwB,GAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,gBAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACvE,CAAC,CAAC;AAJW,QAAA,iBAAiB,qBAI5B;AAEK,MAAM,eAAe,GAAG,KAAK,EAClC,SAA6B,EAAE,EACL,EAAE;IAC5B,OAAO,IAAA,gCAAwB,GAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;AAC3D,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B;AAEK,MAAM,gBAAgB,GAAG,KAAK,EACnC,KAA4B,EACJ,EAAE;IAC1B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,gCAAwB,GAAE,CAAC,SAAS,CAAC;QAChE,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAbW,QAAA,gBAAgB,oBAa3B;AAEK,MAAM,gBAAgB,GAAG,KAAK,EACnC,EAAU,EACV,OAAsD,EACvB,EAAE;IACjC,OAAO,IAAA,gCAAwB,GAAE,CAAC,gBAAgB,CAChD,EAAE,GAAG,EAAE,IAAI,gBAAQ,CAAC,EAAE,CAAC,EAAE,EACzB,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAC/C,EAAE,cAAc,EAAE,OAAO,EAAE,CAC5B,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,gBAAgB,oBAS3B;AAEK,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAAU,EAAoB,EAAE;IACrE,MAAM,MAAM,GAAG,MAAM,IAAA,gCAAwB,GAAE,CAAC,SAAS,CAAC;QACxD,GAAG,EAAE,IAAI,gBAAQ,CAAC,EAAE,CAAC;KACtB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,YAAY,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B"}
@@ -0,0 +1,7 @@
1
+ import { ObjectId as MongoObjectId } from "mongodb";
2
+ import type { WebsiteUrl, WebsiteUrlDoc } from "./websiteUrls.types";
3
+ export type CreateWebsiteUrlInput = Omit<WebsiteUrl, "createdAt" | "updatedAt">;
4
+ export declare const createWebsiteUrl: (input: CreateWebsiteUrlInput) => Promise<MongoObjectId>;
5
+ export declare const updateWebsiteUrl: (id: string, updates: Partial<Pick<WebsiteUrl, "name" | "baseUrl">>) => Promise<WebsiteUrlDoc | null>;
6
+ export declare const deleteWebsiteUrl: (id: string) => Promise<boolean>;
7
+ //# sourceMappingURL=websiteUrls.setters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websiteUrls.setters.d.ts","sourceRoot":"","sources":["../../../src/websitalk/websiteUrls/websiteUrls.setters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAErE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,UAAU,EACV,WAAW,GAAG,WAAW,CAC1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,qBAAqB,KAC3B,OAAO,CAAC,aAAa,CAWvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,IAAI,MAAM,EACV,SAAS,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,KACrD,OAAO,CAAC,aAAa,GAAG,IAAI,CAM9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,OAAO,CAMlE,CAAC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteWebsiteUrl = exports.updateWebsiteUrl = exports.createWebsiteUrl = void 0;
4
+ const index_1 = require("../index");
5
+ const websiteUrls_getters_1 = require("./websiteUrls.getters");
6
+ const createWebsiteUrl = async (input) => {
7
+ const now = new Date();
8
+ const { insertedId } = await (0, websiteUrls_getters_1.getWebsiteUrlsCollection)().insertOne({
9
+ clientId: input.clientId,
10
+ name: input.name,
11
+ baseUrl: input.baseUrl,
12
+ createdAt: now,
13
+ updatedAt: now,
14
+ });
15
+ return insertedId;
16
+ };
17
+ exports.createWebsiteUrl = createWebsiteUrl;
18
+ const updateWebsiteUrl = async (id, updates) => {
19
+ return (0, websiteUrls_getters_1.getWebsiteUrlsCollection)().findOneAndUpdate({ _id: new index_1.ObjectId(id) }, { $set: { ...updates, updatedAt: new Date() } }, { returnDocument: "after" });
20
+ };
21
+ exports.updateWebsiteUrl = updateWebsiteUrl;
22
+ const deleteWebsiteUrl = async (id) => {
23
+ const result = await (0, websiteUrls_getters_1.getWebsiteUrlsCollection)().deleteOne({
24
+ _id: new index_1.ObjectId(id),
25
+ });
26
+ return result.deletedCount > 0;
27
+ };
28
+ exports.deleteWebsiteUrl = deleteWebsiteUrl;
29
+ //# sourceMappingURL=websiteUrls.setters.js.map