@talkpilot/core-db 1.1.15 → 1.1.16
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.
- package/.cursor/rules/development.mdc +65 -65
- package/DEVELOPMENT.md +141 -98
- package/README.md +297 -160
- package/README_OLD.md +160 -0
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +10 -0
- package/dist/connection.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/municipal/index.d.ts +1 -0
- package/dist/municipal/index.d.ts.map +1 -1
- package/dist/municipal/index.js +1 -0
- package/dist/municipal/index.js.map +1 -1
- package/dist/municipal/muniIssues/index.d.ts +7 -0
- package/dist/municipal/muniIssues/index.d.ts.map +1 -0
- package/dist/municipal/muniIssues/index.js +29 -0
- package/dist/municipal/muniIssues/index.js.map +1 -0
- package/dist/municipal/muniIssues/muniIssues.constants.d.ts +14 -0
- package/dist/municipal/muniIssues/muniIssues.constants.d.ts.map +1 -0
- package/dist/municipal/muniIssues/muniIssues.constants.js +17 -0
- package/dist/municipal/muniIssues/muniIssues.constants.js.map +1 -0
- package/dist/municipal/muniIssues/muniIssues.getters.d.ts +7 -0
- package/dist/municipal/muniIssues/muniIssues.getters.d.ts.map +1 -0
- package/dist/municipal/muniIssues/muniIssues.getters.js +24 -0
- package/dist/municipal/muniIssues/muniIssues.getters.js.map +1 -0
- package/dist/municipal/muniIssues/muniIssues.schema.d.ts +4 -0
- package/dist/municipal/muniIssues/muniIssues.schema.d.ts.map +1 -0
- package/dist/municipal/muniIssues/muniIssues.schema.js +63 -0
- package/dist/municipal/muniIssues/muniIssues.schema.js.map +1 -0
- package/dist/municipal/muniIssues/muniIssues.setters.d.ts +4 -0
- package/dist/municipal/muniIssues/muniIssues.setters.d.ts.map +1 -0
- package/dist/municipal/muniIssues/muniIssues.setters.js +22 -0
- package/dist/municipal/muniIssues/muniIssues.setters.js.map +1 -0
- package/dist/municipal/muniIssues/muniIssues.setup.d.ts +3 -0
- package/dist/municipal/muniIssues/muniIssues.setup.d.ts.map +1 -0
- package/dist/municipal/muniIssues/muniIssues.setup.js +61 -0
- package/dist/municipal/muniIssues/muniIssues.setup.js.map +1 -0
- package/dist/municipal/muniIssues/muniIssues.types.d.ts +30 -0
- package/dist/municipal/muniIssues/muniIssues.types.d.ts.map +1 -0
- package/dist/municipal/muniIssues/muniIssues.types.js +3 -0
- package/dist/municipal/muniIssues/muniIssues.types.js.map +1 -0
- package/dist/municipal/tickets/index.d.ts +2 -1
- package/dist/municipal/tickets/index.d.ts.map +1 -1
- package/dist/municipal/tickets/index.js +1 -0
- package/dist/municipal/tickets/index.js.map +1 -1
- package/dist/municipal/tickets/tickets.constants.d.ts +7 -0
- package/dist/municipal/tickets/tickets.constants.d.ts.map +1 -0
- package/dist/municipal/tickets/tickets.constants.js +10 -0
- package/dist/municipal/tickets/tickets.constants.js.map +1 -0
- package/dist/municipal/tickets/tickets.getters.d.ts +0 -11
- package/dist/municipal/tickets/tickets.getters.d.ts.map +1 -1
- package/dist/municipal/tickets/tickets.getters.js +0 -128
- package/dist/municipal/tickets/tickets.getters.js.map +1 -1
- package/dist/municipal/tickets/tickets.statistics.aggregation.d.ts +69 -0
- package/dist/municipal/tickets/tickets.statistics.aggregation.d.ts.map +1 -0
- package/dist/municipal/tickets/tickets.statistics.aggregation.js +99 -0
- package/dist/municipal/tickets/tickets.statistics.aggregation.js.map +1 -0
- package/dist/municipal/tickets/tickets.statistics.getters.d.ts +12 -0
- package/dist/municipal/tickets/tickets.statistics.getters.d.ts.map +1 -0
- package/dist/municipal/tickets/tickets.statistics.getters.js +80 -0
- package/dist/municipal/tickets/tickets.statistics.getters.js.map +1 -0
- package/dist/municipal/tickets/tickets.types.d.ts +15 -5
- package/dist/municipal/tickets/tickets.types.d.ts.map +1 -1
- package/dist/talkpilot/calls/calls.constants.d.ts +17 -0
- package/dist/talkpilot/calls/calls.constants.d.ts.map +1 -0
- package/dist/talkpilot/calls/calls.constants.js +20 -0
- package/dist/talkpilot/calls/calls.constants.js.map +1 -0
- package/dist/talkpilot/calls/calls.dashboard.d.ts +3 -0
- package/dist/talkpilot/calls/calls.dashboard.d.ts.map +1 -0
- package/dist/talkpilot/calls/calls.dashboard.js +191 -0
- package/dist/talkpilot/calls/calls.dashboard.js.map +1 -0
- package/dist/talkpilot/calls/calls.getters.d.ts +3 -2
- package/dist/talkpilot/calls/calls.getters.d.ts.map +1 -1
- package/dist/talkpilot/calls/calls.getters.js +1 -2
- package/dist/talkpilot/calls/calls.getters.js.map +1 -1
- package/dist/talkpilot/calls/calls.statistics.getters.d.ts +28 -0
- package/dist/talkpilot/calls/calls.statistics.getters.d.ts.map +1 -0
- package/dist/talkpilot/calls/calls.statistics.getters.js +453 -0
- package/dist/talkpilot/calls/calls.statistics.getters.js.map +1 -0
- package/dist/talkpilot/calls/calls.statistics.types.d.ts +43 -0
- package/dist/talkpilot/calls/calls.statistics.types.d.ts.map +1 -0
- package/dist/talkpilot/calls/calls.statistics.types.js +3 -0
- package/dist/talkpilot/calls/calls.statistics.types.js.map +1 -0
- package/dist/talkpilot/calls/calls.types.d.ts +8 -7
- package/dist/talkpilot/calls/calls.types.d.ts.map +1 -1
- package/dist/talkpilot/calls/calls.types.js +0 -3
- package/dist/talkpilot/calls/calls.types.js.map +1 -1
- package/dist/talkpilot/calls/dashboard/calls.dashboard.d.ts +4 -0
- package/dist/talkpilot/calls/dashboard/calls.dashboard.d.ts.map +1 -0
- package/dist/talkpilot/calls/dashboard/calls.dashboard.js +223 -0
- package/dist/talkpilot/calls/dashboard/calls.dashboard.js.map +1 -0
- package/dist/talkpilot/calls/dashboard/calls.dashboard.types.d.ts +45 -0
- package/dist/talkpilot/calls/dashboard/calls.dashboard.types.d.ts.map +1 -0
- package/dist/talkpilot/calls/dashboard/calls.dashboard.types.js +3 -0
- package/dist/talkpilot/calls/dashboard/calls.dashboard.types.js.map +1 -0
- package/dist/talkpilot/calls/index.d.ts +4 -0
- package/dist/talkpilot/calls/index.d.ts.map +1 -1
- package/dist/talkpilot/calls/index.js +4 -0
- package/dist/talkpilot/calls/index.js.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts +2 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.js +14 -0
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.js.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.types.d.ts +20 -7
- package/dist/talkpilot/clientsConfig/clientsConfig.types.d.ts.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.types.js +6 -0
- package/dist/talkpilot/clientsConfig/clientsConfig.types.js.map +1 -1
- package/dist/talkpilot/contextNotes/contextNotes.getters.d.ts +19 -0
- package/dist/talkpilot/contextNotes/contextNotes.getters.d.ts.map +1 -0
- package/dist/talkpilot/contextNotes/contextNotes.getters.js +55 -0
- package/dist/talkpilot/contextNotes/contextNotes.getters.js.map +1 -0
- package/dist/talkpilot/contextNotes/contextNotes.types.d.ts +19 -0
- package/dist/talkpilot/contextNotes/contextNotes.types.d.ts.map +1 -0
- package/dist/talkpilot/contextNotes/contextNotes.types.js +3 -0
- package/dist/talkpilot/contextNotes/contextNotes.types.js.map +1 -0
- package/dist/talkpilot/contextNotes/index.d.ts +3 -0
- package/dist/talkpilot/contextNotes/index.d.ts.map +1 -0
- package/dist/talkpilot/contextNotes/index.js +19 -0
- package/dist/talkpilot/contextNotes/index.js.map +1 -0
- package/dist/talkpilot/flows/flows.schema.d.ts +3 -0
- package/dist/talkpilot/flows/flows.schema.d.ts.map +1 -1
- package/dist/talkpilot/flows/flows.schema.js +2 -1
- package/dist/talkpilot/flows/flows.schema.js.map +1 -1
- package/dist/talkpilot/flows/flows.types.d.ts +2 -0
- package/dist/talkpilot/flows/flows.types.d.ts.map +1 -1
- package/dist/talkpilot/index.d.ts +3 -0
- package/dist/talkpilot/index.d.ts.map +1 -1
- package/dist/talkpilot/index.js +3 -0
- package/dist/talkpilot/index.js.map +1 -1
- package/dist/talkpilot/phone_numbers/index.d.ts +2 -2
- package/dist/talkpilot/phone_numbers/phone_numbers.getter.d.ts +1 -1
- package/dist/talkpilot/phone_numbers/phone_numbers.getter.d.ts.map +1 -1
- package/dist/talkpilot/phone_numbers/phone_numbers.getter.js +5 -3
- package/dist/talkpilot/phone_numbers/phone_numbers.getter.js.map +1 -1
- package/dist/talkpilot/phone_numbers/phone_numbers.schema.js +12 -12
- package/dist/talkpilot/phone_numbers/phone_numbers.types.d.ts +4 -4
- package/dist/talkpilot/products/index.d.ts +3 -0
- package/dist/talkpilot/products/index.d.ts.map +1 -0
- package/dist/talkpilot/products/index.js +19 -0
- package/dist/talkpilot/products/index.js.map +1 -0
- package/dist/talkpilot/products/products.getters.d.ts +6 -0
- package/dist/talkpilot/products/products.getters.d.ts.map +1 -0
- package/dist/talkpilot/products/products.getters.js +14 -0
- package/dist/talkpilot/products/products.getters.js.map +1 -0
- package/dist/talkpilot/products/products.types.d.ts +9 -0
- package/dist/talkpilot/products/products.types.d.ts.map +1 -0
- package/dist/talkpilot/products/products.types.js +3 -0
- package/dist/talkpilot/products/products.types.js.map +1 -0
- package/dist/talkpilot/results/index.d.ts +1 -1
- package/dist/talkpilot/results/index.d.ts.map +1 -1
- package/dist/talkpilot/results/index.js +3 -1
- package/dist/talkpilot/results/index.js.map +1 -1
- package/dist/talkpilot/results/results.getter.d.ts +3 -1
- package/dist/talkpilot/results/results.getter.d.ts.map +1 -1
- package/dist/talkpilot/results/results.getter.js +11 -2
- package/dist/talkpilot/results/results.getter.js.map +1 -1
- package/dist/talkpilot/retry_analyze/index.d.ts +3 -0
- package/dist/talkpilot/retry_analyze/index.d.ts.map +1 -0
- package/dist/talkpilot/retry_analyze/index.js +19 -0
- package/dist/talkpilot/retry_analyze/index.js.map +1 -0
- package/dist/talkpilot/retry_analyze/retryAnalyze.getters.d.ts +10 -0
- package/dist/talkpilot/retry_analyze/retryAnalyze.getters.d.ts.map +1 -0
- package/dist/talkpilot/retry_analyze/retryAnalyze.getters.js +60 -0
- package/dist/talkpilot/retry_analyze/retryAnalyze.getters.js.map +1 -0
- package/dist/talkpilot/retry_analyze/retryAnalyze.types.d.ts +12 -0
- package/dist/talkpilot/retry_analyze/retryAnalyze.types.d.ts.map +1 -0
- package/dist/talkpilot/retry_analyze/retryAnalyze.types.js +3 -0
- package/dist/talkpilot/retry_analyze/retryAnalyze.types.js.map +1 -0
- package/dist/test-utils/db-utils.d.ts.map +1 -1
- package/dist/test-utils/db-utils.js +2 -0
- package/dist/test-utils/db-utils.js.map +1 -1
- package/dist/test-utils/factories/index.d.ts +3 -0
- package/dist/test-utils/factories/index.d.ts.map +1 -1
- package/dist/test-utils/factories/index.js +3 -0
- package/dist/test-utils/factories/index.js.map +1 -1
- package/dist/test-utils/factories/municipal/muniIssues.d.ts +10 -0
- package/dist/test-utils/factories/municipal/muniIssues.d.ts.map +1 -0
- package/dist/test-utils/factories/municipal/muniIssues.js +30 -0
- package/dist/test-utils/factories/municipal/muniIssues.js.map +1 -0
- package/dist/test-utils/factories/talkpilot/contextNotes.d.ts +16 -0
- package/dist/test-utils/factories/talkpilot/contextNotes.d.ts.map +1 -0
- package/dist/test-utils/factories/talkpilot/contextNotes.js +33 -0
- package/dist/test-utils/factories/talkpilot/contextNotes.js.map +1 -0
- package/dist/test-utils/factories/websitalk/scans.d.ts +5 -0
- package/dist/test-utils/factories/websitalk/scans.d.ts.map +1 -0
- package/dist/test-utils/factories/websitalk/scans.js +25 -0
- package/dist/test-utils/factories/websitalk/scans.js.map +1 -0
- package/dist/utils/date.utils.d.ts +49 -0
- package/dist/utils/date.utils.d.ts.map +1 -0
- package/dist/utils/date.utils.js +108 -0
- package/dist/utils/date.utils.js.map +1 -0
- package/dist/utils/shared.types.d.ts +5 -0
- package/dist/utils/shared.types.d.ts.map +1 -0
- package/dist/utils/shared.types.js +3 -0
- package/dist/utils/shared.types.js.map +1 -0
- package/dist/websitalk/index.d.ts +7 -0
- package/dist/websitalk/index.d.ts.map +1 -0
- package/dist/websitalk/index.js +34 -0
- package/dist/websitalk/index.js.map +1 -0
- package/dist/websitalk/mongodb-client.d.ts +13 -0
- package/dist/websitalk/mongodb-client.d.ts.map +1 -0
- package/dist/websitalk/mongodb-client.js +56 -0
- package/dist/websitalk/mongodb-client.js.map +1 -0
- package/dist/websitalk/scans/index.d.ts +3 -0
- package/dist/websitalk/scans/index.d.ts.map +1 -0
- package/dist/websitalk/scans/index.js +19 -0
- package/dist/websitalk/scans/index.js.map +1 -0
- package/dist/websitalk/scans/scans.getters.d.ts +12 -0
- package/dist/websitalk/scans/scans.getters.d.ts.map +1 -0
- package/dist/websitalk/scans/scans.getters.js +74 -0
- package/dist/websitalk/scans/scans.getters.js.map +1 -0
- package/dist/websitalk/scans/scans.types.d.ts +45 -0
- package/dist/websitalk/scans/scans.types.d.ts.map +1 -0
- package/dist/websitalk/scans/scans.types.js +3 -0
- package/dist/websitalk/scans/scans.types.js.map +1 -0
- package/jest.config.js +20 -19
- package/package.json +46 -45
- package/src/connection.ts +12 -0
- package/src/index.ts +10 -0
- package/src/municipal/index.ts +1 -0
- package/src/municipal/muniIssues/__tests__/muniIssues.setters.spec.ts +94 -0
- package/src/municipal/muniIssues/__tests__/muniIssues.setup.spec.ts +92 -0
- package/src/municipal/muniIssues/index.ts +17 -0
- package/src/municipal/muniIssues/muniIssues.constants.ts +18 -0
- package/src/municipal/muniIssues/muniIssues.getters.ts +24 -0
- package/src/municipal/muniIssues/muniIssues.schema.ts +66 -0
- package/src/municipal/muniIssues/muniIssues.setters.ts +24 -0
- package/src/municipal/muniIssues/muniIssues.setup.ts +65 -0
- package/src/municipal/muniIssues/muniIssues.types.ts +37 -0
- package/src/municipal/tickets/__tests__/tickets.getters.spec.ts +1 -37
- package/src/municipal/tickets/__tests__/tickets.statistics.spec.ts +99 -0
- package/src/municipal/tickets/index.ts +9 -2
- package/src/municipal/tickets/tickets.constants.ts +8 -0
- package/src/municipal/tickets/tickets.getters.ts +0 -140
- package/src/municipal/tickets/tickets.statistics.aggregation.ts +110 -0
- package/src/municipal/tickets/tickets.statistics.getters.ts +132 -0
- package/src/municipal/tickets/tickets.types.ts +54 -43
- package/src/talkpilot/calls/__tests__/calls.dashboard.spec.ts +149 -0
- package/src/talkpilot/calls/__tests__/calls.spec.ts +48 -30
- package/src/talkpilot/calls/__tests__/calls.statistics.spec.ts +481 -0
- package/src/talkpilot/calls/calls.constants.ts +20 -0
- package/src/talkpilot/calls/calls.getters.ts +6 -6
- package/src/talkpilot/calls/calls.statistics.getters.ts +668 -0
- package/src/talkpilot/calls/calls.statistics.types.ts +48 -0
- package/src/talkpilot/calls/calls.types.ts +18 -14
- package/src/talkpilot/calls/dashboard/calls.dashboard.ts +292 -0
- package/src/talkpilot/calls/dashboard/calls.dashboard.types.ts +57 -0
- package/src/talkpilot/calls/index.ts +4 -0
- package/src/talkpilot/clientsConfig/__tests__/clientsConfig.getters.spec.ts +53 -0
- package/src/talkpilot/clientsConfig/__tests__/clientsConfig.spec.ts +91 -7
- package/src/talkpilot/clientsConfig/clientsConfig.getters.ts +34 -1
- package/src/talkpilot/clientsConfig/clientsConfig.types.ts +127 -92
- package/src/talkpilot/contextNotes/__tests__/contextNotes.getters.spec.ts +217 -0
- package/src/talkpilot/contextNotes/contextNotes.getters.ts +85 -0
- package/src/talkpilot/contextNotes/contextNotes.types.ts +20 -0
- package/src/talkpilot/contextNotes/index.ts +2 -0
- package/src/talkpilot/flows/__tests__/flows.schema.spec.ts +31 -2
- package/src/talkpilot/flows/flows.schema.ts +2 -1
- package/src/talkpilot/flows/flows.types.ts +3 -0
- package/src/talkpilot/index.ts +3 -0
- package/src/talkpilot/phone_numbers/__tests__/phone_numbers.spec.ts +40 -35
- package/src/talkpilot/phone_numbers/index.ts +2 -2
- package/src/talkpilot/phone_numbers/phone_numbers.getter.ts +10 -6
- package/src/talkpilot/phone_numbers/phone_numbers.schema.ts +12 -12
- package/src/talkpilot/phone_numbers/phone_numbers.types.ts +4 -4
- package/src/talkpilot/products/__tests__/products.getters.spec.ts +44 -0
- package/src/talkpilot/products/index.ts +2 -0
- package/src/talkpilot/products/products.getters.ts +12 -0
- package/src/talkpilot/products/products.types.ts +9 -0
- package/src/talkpilot/results/index.ts +2 -0
- package/src/talkpilot/results/results.getter.ts +14 -2
- package/src/talkpilot/retry_analyze/__tests__/retryAnalyze.getters.spec.ts +156 -0
- package/src/talkpilot/retry_analyze/index.ts +2 -0
- package/src/talkpilot/retry_analyze/retryAnalyze.getters.ts +84 -0
- package/src/talkpilot/retry_analyze/retryAnalyze.types.ts +13 -0
- package/src/test-utils/db-utils.ts +3 -1
- package/src/test-utils/factories/index.ts +3 -0
- package/src/test-utils/factories/municipal/muniIssues.ts +32 -0
- package/src/test-utils/factories/talkpilot/contextNotes.ts +40 -0
- package/src/test-utils/factories/websitalk/scans.ts +23 -0
- package/src/utils/date.utils.ts +126 -0
- package/src/utils/shared.types.ts +4 -0
- package/src/websitalk/index.ts +15 -0
- package/src/websitalk/mongodb-client.ts +61 -0
- package/src/websitalk/scans/__tests__/scans.spec.ts +218 -0
- package/src/websitalk/scans/index.ts +2 -0
- package/src/websitalk/scans/scans.getters.ts +113 -0
- package/src/websitalk/scans/scans.types.ts +53 -0
- package/tsconfig.json +23 -23
- package/dist/talkpilot/subscriptions/subscriptions.utils.d.ts +0 -4
- package/dist/talkpilot/subscriptions/subscriptions.utils.d.ts.map +0 -1
- package/dist/talkpilot/subscriptions/subscriptions.utils.js +0 -20
- package/dist/talkpilot/subscriptions/subscriptions.utils.js.map +0 -1
package/dist/connection.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ensureDbConnected = ensureDbConnected;
|
|
4
4
|
const talkpilot_1 = require("./talkpilot");
|
|
5
5
|
const municipal_1 = require("./municipal");
|
|
6
|
+
const websitalk_1 = require("./websitalk");
|
|
6
7
|
let isConnected = false;
|
|
7
8
|
/**
|
|
8
9
|
* Ensures the database clients are initialized.
|
|
@@ -15,6 +16,7 @@ async function ensureDbConnected() {
|
|
|
15
16
|
const mongoUri = process.env.MONGO_URI || process.env.MONGODB_URI;
|
|
16
17
|
const talkpilotUri = mongoUri;
|
|
17
18
|
const municipalUri = mongoUri;
|
|
19
|
+
const websiteTalkUri = mongoUri;
|
|
18
20
|
if (!talkpilotUri) {
|
|
19
21
|
console.warn("[core-db] MONGO_URI is not set");
|
|
20
22
|
}
|
|
@@ -33,6 +35,14 @@ async function ensureDbConnected() {
|
|
|
33
35
|
await municipal_1.municipalDataMongodbClient.connect(municipalUri, dbName);
|
|
34
36
|
console.info(`[core-db] Connected to Municipal Data MongoDB: ${dbName || "via env"}`);
|
|
35
37
|
}
|
|
38
|
+
if (!websiteTalkUri) {
|
|
39
|
+
console.warn("[core-db] MONGO_URI is not set");
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
const dbName = process.env.WEBSITALK_DB_NAME;
|
|
43
|
+
await websitalk_1.websitalkMongodbClient.connect(websiteTalkUri, dbName);
|
|
44
|
+
console.info(`[core-db] Connected to Website Talk MongoDB: ${dbName || "website-talk (default)"}`);
|
|
45
|
+
}
|
|
36
46
|
isConnected = true;
|
|
37
47
|
}
|
|
38
48
|
//# sourceMappingURL=connection.js.map
|
package/dist/connection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":";;AAUA,8CA2CC;AArDD,2CAA4C;AAC5C,2CAAyD;AACzD,2CAAqD;AAErD,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB;;;GAGG;AACI,KAAK,UAAU,iBAAiB;IACrC,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAClE,MAAM,YAAY,GAAG,QAAQ,CAAC;IAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC;IAC9B,MAAM,cAAc,GAAG,QAAQ,CAAC;IAEhC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC9D,MAAM,yBAAa,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CACV,6CAA6C,MAAM,IAAI,SAAS,EAAE,CACnE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC9D,MAAM,sCAA0B,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CACV,kDAAkD,MAAM,IAAI,SAAS,EAAE,CACxE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC7C,MAAM,kCAAsB,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CACV,gDAAgD,MAAM,IAAI,wBAAwB,EAAE,CACrF,CAAC;IACJ,CAAC;IAED,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,5 +6,9 @@ export * from "./municipal/streets";
|
|
|
6
6
|
export * from "./municipal/departmentsSubjects";
|
|
7
7
|
export * from "./municipal/tickets";
|
|
8
8
|
export * from "./municipal/systemInstructions";
|
|
9
|
+
export * from "./municipal/muniIssues";
|
|
9
10
|
export * from "./municipal/utils/types";
|
|
11
|
+
export { websitalkMongodbClient, getDb as getWebsitalkDb, setDb as setWebsitalkDb, ObjectId as WebsitalkObjectId, } from "./websitalk";
|
|
12
|
+
export * from "./websitalk/scans/scans.getters";
|
|
13
|
+
export type * from "./websitalk/scans/scans.types";
|
|
10
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,OAAO,EACL,0BAA0B,EAC1B,KAAK,IAAI,kBAAkB,EAC3B,KAAK,IAAI,kBAAkB,EAC3B,QAAQ,IAAI,qBAAqB,GAClC,MAAM,aAAa,CAAC;AACrB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,OAAO,EACL,0BAA0B,EAC1B,KAAK,IAAI,kBAAkB,EAC3B,KAAK,IAAI,kBAAkB,EAC3B,QAAQ,IAAI,qBAAqB,GAClC,MAAM,aAAa,CAAC;AACrB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,OAAO,EACL,sBAAsB,EACtB,KAAK,IAAI,cAAc,EACvB,KAAK,IAAI,cAAc,EACvB,QAAQ,IAAI,iBAAiB,GAC9B,MAAM,aAAa,CAAC;AACrB,cAAc,iCAAiC,CAAC;AAChD,mBAAmB,+BAA+B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +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
|
-
exports.MunicipalDataObjectId = exports.setMunicipalDataDb = exports.getMunicipalDataDb = exports.municipalDataMongodbClient = void 0;
|
|
17
|
+
exports.WebsitalkObjectId = exports.setWebsitalkDb = exports.getWebsitalkDb = exports.websitalkMongodbClient = exports.MunicipalDataObjectId = exports.setMunicipalDataDb = exports.getMunicipalDataDb = exports.municipalDataMongodbClient = void 0;
|
|
18
18
|
// TalkPilot DB exports
|
|
19
19
|
__exportStar(require("./talkpilot"), exports);
|
|
20
20
|
__exportStar(require("./connection"), exports);
|
|
@@ -28,5 +28,12 @@ __exportStar(require("./municipal/streets"), exports);
|
|
|
28
28
|
__exportStar(require("./municipal/departmentsSubjects"), exports);
|
|
29
29
|
__exportStar(require("./municipal/tickets"), exports);
|
|
30
30
|
__exportStar(require("./municipal/systemInstructions"), exports);
|
|
31
|
+
__exportStar(require("./municipal/muniIssues"), exports);
|
|
31
32
|
__exportStar(require("./municipal/utils/types"), exports);
|
|
33
|
+
var websitalk_1 = require("./websitalk");
|
|
34
|
+
Object.defineProperty(exports, "websitalkMongodbClient", { enumerable: true, get: function () { return websitalk_1.websitalkMongodbClient; } });
|
|
35
|
+
Object.defineProperty(exports, "getWebsitalkDb", { enumerable: true, get: function () { return websitalk_1.getDb; } });
|
|
36
|
+
Object.defineProperty(exports, "setWebsitalkDb", { enumerable: true, get: function () { return websitalk_1.setDb; } });
|
|
37
|
+
Object.defineProperty(exports, "WebsitalkObjectId", { enumerable: true, get: function () { return websitalk_1.ObjectId; } });
|
|
38
|
+
__exportStar(require("./websitalk/scans/scans.getters"), exports);
|
|
32
39
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uBAAuB;AACvB,8CAA4B;AAC5B,+CAA6B;AAE7B,yCAKqB;AAJnB,uHAAA,0BAA0B,OAAA;AAC1B,+GAAA,KAAK,OAAsB;AAC3B,+GAAA,KAAK,OAAsB;AAC3B,kHAAA,QAAQ,OAAyB;AAEnC,qDAAmC;AACnC,sDAAoC;AACpC,kEAAgD;AAChD,sDAAoC;AACpC,iEAA+C;AAC/C,0DAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uBAAuB;AACvB,8CAA4B;AAC5B,+CAA6B;AAE7B,yCAKqB;AAJnB,uHAAA,0BAA0B,OAAA;AAC1B,+GAAA,KAAK,OAAsB;AAC3B,+GAAA,KAAK,OAAsB;AAC3B,kHAAA,QAAQ,OAAyB;AAEnC,qDAAmC;AACnC,sDAAoC;AACpC,kEAAgD;AAChD,sDAAoC;AACpC,iEAA+C;AAC/C,yDAAuC;AACvC,0DAAwC;AAExC,yCAKqB;AAJnB,mHAAA,sBAAsB,OAAA;AACtB,2GAAA,KAAK,OAAkB;AACvB,2GAAA,KAAK,OAAkB;AACvB,8GAAA,QAAQ,OAAqB;AAE/B,kEAAgD"}
|
|
@@ -4,6 +4,7 @@ export * from "./streets";
|
|
|
4
4
|
export * from "./departmentsSubjects";
|
|
5
5
|
export * from "./tickets";
|
|
6
6
|
export * from "./systemInstructions";
|
|
7
|
+
export * from "./muniIssues";
|
|
7
8
|
export * from "./utils/types";
|
|
8
9
|
export { CityName } from "./utils/types";
|
|
9
10
|
export { municipalDataMongodbClient } from "./mongodb-client";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/municipal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAExD,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAG9D,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/municipal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAExD,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAG9D,eAAO,MAAM,KAAK,GAAI,GAAG,EAAE,SAE1B,CAAC;AAEF,eAAO,MAAM,KAAK,QAAO,EAGxB,CAAC;AACF,eAAO,MAAM,QAAQ,sBAAgB,CAAC"}
|
package/dist/municipal/index.js
CHANGED
|
@@ -21,6 +21,7 @@ __exportStar(require("./streets"), exports);
|
|
|
21
21
|
__exportStar(require("./departmentsSubjects"), exports);
|
|
22
22
|
__exportStar(require("./tickets"), exports);
|
|
23
23
|
__exportStar(require("./systemInstructions"), exports);
|
|
24
|
+
__exportStar(require("./muniIssues"), exports);
|
|
24
25
|
__exportStar(require("./utils/types"), exports);
|
|
25
26
|
var mongodb_client_1 = require("./mongodb-client");
|
|
26
27
|
Object.defineProperty(exports, "municipalDataMongodbClient", { enumerable: true, get: function () { return mongodb_client_1.municipalDataMongodbClient; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/municipal/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qCAAwD;AAExD,2CAAyB;AACzB,4CAA0B;AAC1B,wDAAsC;AACtC,4CAA0B;AAC1B,uDAAqC;AACrC,gDAA8B;AAE9B,mDAA8D;AAArD,4HAAA,0BAA0B,OAAA;AAEnC,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,mCAAmC,CAAC,CAAC;IAC9D,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/municipal/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qCAAwD;AAExD,2CAAyB;AACzB,4CAA0B;AAC1B,wDAAsC;AACtC,4CAA0B;AAC1B,uDAAqC;AACrC,+CAA6B;AAC7B,gDAA8B;AAE9B,mDAA8D;AAArD,4HAAA,0BAA0B,OAAA;AAEnC,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,mCAAmC,CAAC,CAAC;IAC9D,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAHW,QAAA,KAAK,SAGhB;AACW,QAAA,QAAQ,GAAG,kBAAa,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "./muniIssues.getters";
|
|
2
|
+
export * from "./muniIssues.setters";
|
|
3
|
+
export * from "./muniIssues.setup";
|
|
4
|
+
export { MUNI_ISSUES_COLLECTION, MUNI_ISSUE_SYNC_STATUSES, MUNI_ISSUE_TEXT_MAX_LENGTH, MUNI_ISSUE_NAME_MAX_LENGTH, } from "./muniIssues.constants";
|
|
5
|
+
export { muniIssuesJsonSchema, muniIssuesIndexes } from "./muniIssues.schema";
|
|
6
|
+
export type { MuniIssue, MuniIssueContent, MuniIssueJira, MuniIssueSyncStatus, CreateMuniIssueInput, } from "./muniIssues.types";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/municipal/muniIssues/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
exports.muniIssuesIndexes = exports.muniIssuesJsonSchema = exports.MUNI_ISSUE_NAME_MAX_LENGTH = exports.MUNI_ISSUE_TEXT_MAX_LENGTH = exports.MUNI_ISSUE_SYNC_STATUSES = exports.MUNI_ISSUES_COLLECTION = void 0;
|
|
18
|
+
__exportStar(require("./muniIssues.getters"), exports);
|
|
19
|
+
__exportStar(require("./muniIssues.setters"), exports);
|
|
20
|
+
__exportStar(require("./muniIssues.setup"), exports);
|
|
21
|
+
var muniIssues_constants_1 = require("./muniIssues.constants");
|
|
22
|
+
Object.defineProperty(exports, "MUNI_ISSUES_COLLECTION", { enumerable: true, get: function () { return muniIssues_constants_1.MUNI_ISSUES_COLLECTION; } });
|
|
23
|
+
Object.defineProperty(exports, "MUNI_ISSUE_SYNC_STATUSES", { enumerable: true, get: function () { return muniIssues_constants_1.MUNI_ISSUE_SYNC_STATUSES; } });
|
|
24
|
+
Object.defineProperty(exports, "MUNI_ISSUE_TEXT_MAX_LENGTH", { enumerable: true, get: function () { return muniIssues_constants_1.MUNI_ISSUE_TEXT_MAX_LENGTH; } });
|
|
25
|
+
Object.defineProperty(exports, "MUNI_ISSUE_NAME_MAX_LENGTH", { enumerable: true, get: function () { return muniIssues_constants_1.MUNI_ISSUE_NAME_MAX_LENGTH; } });
|
|
26
|
+
var muniIssues_schema_1 = require("./muniIssues.schema");
|
|
27
|
+
Object.defineProperty(exports, "muniIssuesJsonSchema", { enumerable: true, get: function () { return muniIssues_schema_1.muniIssuesJsonSchema; } });
|
|
28
|
+
Object.defineProperty(exports, "muniIssuesIndexes", { enumerable: true, get: function () { return muniIssues_schema_1.muniIssuesIndexes; } });
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/municipal/muniIssues/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,uDAAqC;AACrC,qDAAmC;AACnC,+DAKgC;AAJ9B,8HAAA,sBAAsB,OAAA;AACtB,gIAAA,wBAAwB,OAAA;AACxB,kIAAA,0BAA0B,OAAA;AAC1B,kIAAA,0BAA0B,OAAA;AAE5B,yDAA8E;AAArE,yHAAA,oBAAoB,OAAA;AAAE,sHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Mongo collection name for reported municipal issues. */
|
|
2
|
+
export declare const MUNI_ISSUES_COLLECTION = "muniIssues";
|
|
3
|
+
/** Sync state of the issue's Jira ticket at write time. */
|
|
4
|
+
export declare const MUNI_ISSUE_SYNC_STATUSES: readonly ["created", "failed"];
|
|
5
|
+
/** Max length for the long free-text fields — well above the ~2000-char target. */
|
|
6
|
+
export declare const MUNI_ISSUE_TEXT_MAX_LENGTH = 5000;
|
|
7
|
+
/** Max length for the short identity fields (a person's name and role). */
|
|
8
|
+
export declare const MUNI_ISSUE_NAME_MAX_LENGTH = 200;
|
|
9
|
+
/** MongoDB error 48 (NamespaceExists): collection already exists, e.g. concurrent createCollection. */
|
|
10
|
+
export declare const NAMESPACE_EXISTS = 48;
|
|
11
|
+
/** Reject (not just flag) writes that fail the $jsonSchema validator. */
|
|
12
|
+
export declare const VALIDATION_LEVEL: "strict";
|
|
13
|
+
export declare const VALIDATION_ACTION: "error";
|
|
14
|
+
//# sourceMappingURL=muniIssues.constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muniIssues.constants.d.ts","sourceRoot":"","sources":["../../../src/municipal/muniIssues/muniIssues.constants.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB,eAAe,CAAC;AAEnD,2DAA2D;AAC3D,eAAO,MAAM,wBAAwB,gCAAiC,CAAC;AAEvE,mFAAmF;AACnF,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,uGAAuG;AACvG,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,yEAAyE;AACzE,eAAO,MAAM,gBAAgB,EAAG,QAAiB,CAAC;AAClD,eAAO,MAAM,iBAAiB,EAAG,OAAgB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VALIDATION_ACTION = exports.VALIDATION_LEVEL = exports.NAMESPACE_EXISTS = exports.MUNI_ISSUE_NAME_MAX_LENGTH = exports.MUNI_ISSUE_TEXT_MAX_LENGTH = exports.MUNI_ISSUE_SYNC_STATUSES = exports.MUNI_ISSUES_COLLECTION = void 0;
|
|
4
|
+
/** Mongo collection name for reported municipal issues. */
|
|
5
|
+
exports.MUNI_ISSUES_COLLECTION = "muniIssues";
|
|
6
|
+
/** Sync state of the issue's Jira ticket at write time. */
|
|
7
|
+
exports.MUNI_ISSUE_SYNC_STATUSES = ["created", "failed"];
|
|
8
|
+
/** Max length for the long free-text fields — well above the ~2000-char target. */
|
|
9
|
+
exports.MUNI_ISSUE_TEXT_MAX_LENGTH = 5000;
|
|
10
|
+
/** Max length for the short identity fields (a person's name and role). */
|
|
11
|
+
exports.MUNI_ISSUE_NAME_MAX_LENGTH = 200;
|
|
12
|
+
/** MongoDB error 48 (NamespaceExists): collection already exists, e.g. concurrent createCollection. */
|
|
13
|
+
exports.NAMESPACE_EXISTS = 48;
|
|
14
|
+
/** Reject (not just flag) writes that fail the $jsonSchema validator. */
|
|
15
|
+
exports.VALIDATION_LEVEL = "strict";
|
|
16
|
+
exports.VALIDATION_ACTION = "error";
|
|
17
|
+
//# sourceMappingURL=muniIssues.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muniIssues.constants.js","sourceRoot":"","sources":["../../../src/municipal/muniIssues/muniIssues.constants.ts"],"names":[],"mappings":";;;AAAA,2DAA2D;AAC9C,QAAA,sBAAsB,GAAG,YAAY,CAAC;AAEnD,2DAA2D;AAC9C,QAAA,wBAAwB,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU,CAAC;AAEvE,mFAAmF;AACtE,QAAA,0BAA0B,GAAG,IAAI,CAAC;AAE/C,2EAA2E;AAC9D,QAAA,0BAA0B,GAAG,GAAG,CAAC;AAE9C,uGAAuG;AAC1F,QAAA,gBAAgB,GAAG,EAAE,CAAC;AAEnC,yEAAyE;AAC5D,QAAA,gBAAgB,GAAG,QAAiB,CAAC;AACrC,QAAA,iBAAiB,GAAG,OAAgB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Collection, ObjectId } from "mongodb";
|
|
2
|
+
import { MuniIssue } from "./muniIssues.types";
|
|
3
|
+
export declare const getMuniIssuesCollection: () => Collection<MuniIssue>;
|
|
4
|
+
export declare const generateMuniIssueId: () => ObjectId;
|
|
5
|
+
export declare const getMuniIssueById: (id: string) => Promise<MuniIssue | null>;
|
|
6
|
+
export declare const getMuniIssueByJiraKey: (jiraKey: string) => Promise<MuniIssue | null>;
|
|
7
|
+
//# sourceMappingURL=muniIssues.getters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muniIssues.getters.d.ts","sourceRoot":"","sources":["../../../src/municipal/muniIssues/muniIssues.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,eAAO,MAAM,uBAAuB,QAAO,UAAU,CAAC,SAAS,CAE9D,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,QAA0B,CAAC;AAElE,eAAO,MAAM,gBAAgB,GAC3B,IAAI,MAAM,KACT,OAAO,CAAC,SAAS,GAAG,IAAI,CAI1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,SAAS,MAAM,KACd,OAAO,CAAC,SAAS,GAAG,IAAI,CAE1B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMuniIssueByJiraKey = exports.getMuniIssueById = exports.generateMuniIssueId = exports.getMuniIssuesCollection = void 0;
|
|
4
|
+
const mongodb_1 = require("mongodb");
|
|
5
|
+
const index_1 = require("../index");
|
|
6
|
+
const muniIssues_constants_1 = require("./muniIssues.constants");
|
|
7
|
+
const getMuniIssuesCollection = () => {
|
|
8
|
+
return (0, index_1.getDb)().collection(muniIssues_constants_1.MUNI_ISSUES_COLLECTION);
|
|
9
|
+
};
|
|
10
|
+
exports.getMuniIssuesCollection = getMuniIssuesCollection;
|
|
11
|
+
const generateMuniIssueId = () => new mongodb_1.ObjectId();
|
|
12
|
+
exports.generateMuniIssueId = generateMuniIssueId;
|
|
13
|
+
const getMuniIssueById = async (id) => {
|
|
14
|
+
// A malformed id is treated as not-found rather than throwing on `new ObjectId`.
|
|
15
|
+
if (!mongodb_1.ObjectId.isValid(id))
|
|
16
|
+
return null;
|
|
17
|
+
return (0, exports.getMuniIssuesCollection)().findOne({ _id: new mongodb_1.ObjectId(id) });
|
|
18
|
+
};
|
|
19
|
+
exports.getMuniIssueById = getMuniIssueById;
|
|
20
|
+
const getMuniIssueByJiraKey = async (jiraKey) => {
|
|
21
|
+
return (0, exports.getMuniIssuesCollection)().findOne({ "jira.key": jiraKey });
|
|
22
|
+
};
|
|
23
|
+
exports.getMuniIssueByJiraKey = getMuniIssueByJiraKey;
|
|
24
|
+
//# sourceMappingURL=muniIssues.getters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muniIssues.getters.js","sourceRoot":"","sources":["../../../src/municipal/muniIssues/muniIssues.getters.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAC/C,oCAAiC;AAEjC,iEAAgE;AAEzD,MAAM,uBAAuB,GAAG,GAA0B,EAAE;IACjE,OAAO,IAAA,aAAK,GAAE,CAAC,UAAU,CAAY,6CAAsB,CAAC,CAAC;AAC/D,CAAC,CAAC;AAFW,QAAA,uBAAuB,2BAElC;AAEK,MAAM,mBAAmB,GAAG,GAAa,EAAE,CAAC,IAAI,kBAAQ,EAAE,CAAC;AAArD,QAAA,mBAAmB,uBAAkC;AAE3D,MAAM,gBAAgB,GAAG,KAAK,EACnC,EAAU,EACiB,EAAE;IAC7B,iFAAiF;IACjF,IAAI,CAAC,kBAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,IAAA,+BAAuB,GAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,kBAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC,CAAC;AANW,QAAA,gBAAgB,oBAM3B;AAEK,MAAM,qBAAqB,GAAG,KAAK,EACxC,OAAe,EACY,EAAE;IAC7B,OAAO,IAAA,+BAAuB,GAAE,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;AACpE,CAAC,CAAC;AAJW,QAAA,qBAAqB,yBAIhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muniIssues.schema.d.ts","sourceRoot":"","sources":["../../../src/municipal/muniIssues/muniIssues.schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAO1D,eAAO,MAAM,oBAAoB,EAAE,QAmDlC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EAK/C,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.muniIssuesIndexes = exports.muniIssuesJsonSchema = void 0;
|
|
4
|
+
const muniIssues_constants_1 = require("./muniIssues.constants");
|
|
5
|
+
exports.muniIssuesJsonSchema = {
|
|
6
|
+
bsonType: "object",
|
|
7
|
+
required: [
|
|
8
|
+
"callSid",
|
|
9
|
+
"clientId",
|
|
10
|
+
"cityName",
|
|
11
|
+
"issueContent",
|
|
12
|
+
"jira",
|
|
13
|
+
"createdAt",
|
|
14
|
+
],
|
|
15
|
+
properties: {
|
|
16
|
+
callSid: { bsonType: "string" },
|
|
17
|
+
clientId: { bsonType: "string" },
|
|
18
|
+
cityName: { bsonType: "string" },
|
|
19
|
+
issueContent: {
|
|
20
|
+
bsonType: "object",
|
|
21
|
+
required: [
|
|
22
|
+
"issuerName",
|
|
23
|
+
"issuerRole",
|
|
24
|
+
"issueDescription",
|
|
25
|
+
"desiredBehavior",
|
|
26
|
+
],
|
|
27
|
+
properties: {
|
|
28
|
+
issuerName: {
|
|
29
|
+
bsonType: "string",
|
|
30
|
+
maxLength: muniIssues_constants_1.MUNI_ISSUE_NAME_MAX_LENGTH,
|
|
31
|
+
},
|
|
32
|
+
issuerRole: {
|
|
33
|
+
bsonType: "string",
|
|
34
|
+
maxLength: muniIssues_constants_1.MUNI_ISSUE_NAME_MAX_LENGTH,
|
|
35
|
+
},
|
|
36
|
+
issueDescription: {
|
|
37
|
+
bsonType: "string",
|
|
38
|
+
maxLength: muniIssues_constants_1.MUNI_ISSUE_TEXT_MAX_LENGTH,
|
|
39
|
+
},
|
|
40
|
+
desiredBehavior: {
|
|
41
|
+
bsonType: "string",
|
|
42
|
+
maxLength: muniIssues_constants_1.MUNI_ISSUE_TEXT_MAX_LENGTH,
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
jira: {
|
|
47
|
+
bsonType: "object",
|
|
48
|
+
required: ["key", "syncStatus"],
|
|
49
|
+
properties: {
|
|
50
|
+
key: { bsonType: "string" },
|
|
51
|
+
syncStatus: { enum: [...muniIssues_constants_1.MUNI_ISSUE_SYNC_STATUSES] },
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
createdAt: { bsonType: "date" },
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
exports.muniIssuesIndexes = [
|
|
58
|
+
{ key: { callSid: 1 }, name: "callSid_1" },
|
|
59
|
+
{ key: { createdAt: -1 }, name: "createdAt_-1" },
|
|
60
|
+
// Unique: one stored document per Jira ticket, guarding against duplicate writes.
|
|
61
|
+
{ key: { "jira.key": 1 }, name: "jira_key_unique", unique: true },
|
|
62
|
+
];
|
|
63
|
+
//# sourceMappingURL=muniIssues.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muniIssues.schema.js","sourceRoot":"","sources":["../../../src/municipal/muniIssues/muniIssues.schema.ts"],"names":[],"mappings":";;;AACA,iEAIgC;AAEnB,QAAA,oBAAoB,GAAa;IAC5C,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE;QACR,SAAS;QACT,UAAU;QACV,UAAU;QACV,cAAc;QACd,MAAM;QACN,WAAW;KACZ;IACD,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;QAC/B,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;QAChC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;QAChC,YAAY,EAAE;YACZ,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE;gBACR,YAAY;gBACZ,YAAY;gBACZ,kBAAkB;gBAClB,iBAAiB;aAClB;YACD,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,QAAQ,EAAE,QAAQ;oBAClB,SAAS,EAAE,iDAA0B;iBACtC;gBACD,UAAU,EAAE;oBACV,QAAQ,EAAE,QAAQ;oBAClB,SAAS,EAAE,iDAA0B;iBACtC;gBACD,gBAAgB,EAAE;oBAChB,QAAQ,EAAE,QAAQ;oBAClB,SAAS,EAAE,iDAA0B;iBACtC;gBACD,eAAe,EAAE;oBACf,QAAQ,EAAE,QAAQ;oBAClB,SAAS,EAAE,iDAA0B;iBACtC;aACF;SACF;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC;YAC/B,UAAU,EAAE;gBACV,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;gBAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,+CAAwB,CAAC,EAAE;aACpD;SACF;QACD,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;KAChC;CACF,CAAC;AAEW,QAAA,iBAAiB,GAAuB;IACnD,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;IAC1C,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;IAChD,kFAAkF;IAClF,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE;CAClE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muniIssues.setters.d.ts","sourceRoot":"","sources":["../../../src/municipal/muniIssues/muniIssues.setters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAa,MAAM,oBAAoB,CAAC;AAKrE,eAAO,MAAM,eAAe,GAC1B,WAAW,oBAAoB,EAC/B,IAAI,QAAQ,KACX,OAAO,CAAC,QAAQ,CAclB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createMuniIssue = void 0;
|
|
4
|
+
const muniIssues_getters_1 = require("./muniIssues.getters");
|
|
5
|
+
const muniIssues_setup_1 = require("./muniIssues.setup");
|
|
6
|
+
// Required `id`: MIS pre-generates it (generateMuniIssueId) and embeds it in the Jira ticket — the two-way link.
|
|
7
|
+
const createMuniIssue = async (issueData, id) => {
|
|
8
|
+
await (0, muniIssues_setup_1.ensureMuniIssuesCollectionOnce)();
|
|
9
|
+
const issue = {
|
|
10
|
+
_id: id,
|
|
11
|
+
...issueData,
|
|
12
|
+
jira: {
|
|
13
|
+
...issueData.jira,
|
|
14
|
+
syncStatus: issueData.jira.syncStatus ?? "created",
|
|
15
|
+
},
|
|
16
|
+
createdAt: new Date(),
|
|
17
|
+
};
|
|
18
|
+
const { insertedId } = await (0, muniIssues_getters_1.getMuniIssuesCollection)().insertOne(issue);
|
|
19
|
+
return insertedId;
|
|
20
|
+
};
|
|
21
|
+
exports.createMuniIssue = createMuniIssue;
|
|
22
|
+
//# sourceMappingURL=muniIssues.setters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muniIssues.setters.js","sourceRoot":"","sources":["../../../src/municipal/muniIssues/muniIssues.setters.ts"],"names":[],"mappings":";;;AAEA,6DAA+D;AAC/D,yDAAoE;AAEpE,iHAAiH;AAC1G,MAAM,eAAe,GAAG,KAAK,EAClC,SAA+B,EAC/B,EAAY,EACO,EAAE;IACrB,MAAM,IAAA,iDAA8B,GAAE,CAAC;IAEvC,MAAM,KAAK,GAAc;QACvB,GAAG,EAAE,EAAE;QACP,GAAG,SAAS;QACZ,IAAI,EAAE;YACJ,GAAG,SAAS,CAAC,IAAI;YACjB,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,SAAS;SACnD;QACD,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC;IACF,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,4CAAuB,GAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxE,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAjBW,QAAA,eAAe,mBAiB1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muniIssues.setup.d.ts","sourceRoot":"","sources":["../../../src/municipal/muniIssues/muniIssues.setup.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,0BAA0B,QAAa,OAAO,CAAC,IAAI,CA4B/D,CAAC;AAMF,eAAO,MAAM,8BAA8B,QAAO,OAAO,CAAC,IAAI,CAW7D,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ensureMuniIssuesCollectionOnce = exports.ensureMuniIssuesCollection = void 0;
|
|
4
|
+
const mongodb_1 = require("mongodb");
|
|
5
|
+
const index_1 = require("../index");
|
|
6
|
+
const muniIssues_constants_1 = require("./muniIssues.constants");
|
|
7
|
+
const muniIssues_schema_1 = require("./muniIssues.schema");
|
|
8
|
+
const applyValidator = (db, validator) => db.command({
|
|
9
|
+
collMod: muniIssues_constants_1.MUNI_ISSUES_COLLECTION,
|
|
10
|
+
validator,
|
|
11
|
+
validationLevel: muniIssues_constants_1.VALIDATION_LEVEL,
|
|
12
|
+
validationAction: muniIssues_constants_1.VALIDATION_ACTION,
|
|
13
|
+
});
|
|
14
|
+
// Provisions validator and indexes: createCollection first, collMod if already exists.
|
|
15
|
+
const ensureMuniIssuesCollection = async () => {
|
|
16
|
+
const db = (0, index_1.getDb)();
|
|
17
|
+
const validator = { $jsonSchema: muniIssues_schema_1.muniIssuesJsonSchema };
|
|
18
|
+
const existing = await db
|
|
19
|
+
.listCollections({ name: muniIssues_constants_1.MUNI_ISSUES_COLLECTION })
|
|
20
|
+
.toArray();
|
|
21
|
+
if (existing.length === 0) {
|
|
22
|
+
try {
|
|
23
|
+
await db.createCollection(muniIssues_constants_1.MUNI_ISSUES_COLLECTION, {
|
|
24
|
+
validator,
|
|
25
|
+
validationLevel: muniIssues_constants_1.VALIDATION_LEVEL,
|
|
26
|
+
validationAction: muniIssues_constants_1.VALIDATION_ACTION,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
// NamespaceExists race: collection exists — apply validator via collMod.
|
|
31
|
+
if (err instanceof mongodb_1.MongoServerError && err.code === muniIssues_constants_1.NAMESPACE_EXISTS) {
|
|
32
|
+
await applyValidator(db, validator);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
throw err;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
await applyValidator(db, validator);
|
|
41
|
+
}
|
|
42
|
+
await db.collection(muniIssues_constants_1.MUNI_ISSUES_COLLECTION).createIndexes(muniIssues_schema_1.muniIssuesIndexes);
|
|
43
|
+
};
|
|
44
|
+
exports.ensureMuniIssuesCollection = ensureMuniIssuesCollection;
|
|
45
|
+
// Per-Db cache so each test's in-memory Db re-provisions.
|
|
46
|
+
const provisioningByDb = new WeakMap();
|
|
47
|
+
// Once per Db; evicts failed run so the next call retries.
|
|
48
|
+
const ensureMuniIssuesCollectionOnce = () => {
|
|
49
|
+
const db = (0, index_1.getDb)();
|
|
50
|
+
let provisioning = provisioningByDb.get(db);
|
|
51
|
+
if (!provisioning) {
|
|
52
|
+
provisioning = (0, exports.ensureMuniIssuesCollection)().catch((err) => {
|
|
53
|
+
provisioningByDb.delete(db);
|
|
54
|
+
throw err;
|
|
55
|
+
});
|
|
56
|
+
provisioningByDb.set(db, provisioning);
|
|
57
|
+
}
|
|
58
|
+
return provisioning;
|
|
59
|
+
};
|
|
60
|
+
exports.ensureMuniIssuesCollectionOnce = ensureMuniIssuesCollectionOnce;
|
|
61
|
+
//# sourceMappingURL=muniIssues.setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muniIssues.setup.js","sourceRoot":"","sources":["../../../src/municipal/muniIssues/muniIssues.setup.ts"],"names":[],"mappings":";;;AAAA,qCAAyD;AACzD,oCAAiC;AACjC,iEAKgC;AAChC,2DAA8E;AAE9E,MAAM,cAAc,GAAG,CAAC,EAAM,EAAE,SAAmB,EAAoB,EAAE,CACvE,EAAE,CAAC,OAAO,CAAC;IACT,OAAO,EAAE,6CAAsB;IAC/B,SAAS;IACT,eAAe,EAAE,uCAAgB;IACjC,gBAAgB,EAAE,wCAAiB;CACpC,CAAC,CAAC;AAEL,uFAAuF;AAChF,MAAM,0BAA0B,GAAG,KAAK,IAAmB,EAAE;IAClE,MAAM,EAAE,GAAG,IAAA,aAAK,GAAE,CAAC;IACnB,MAAM,SAAS,GAAG,EAAE,WAAW,EAAE,wCAAoB,EAAE,CAAC;IAExD,MAAM,QAAQ,GAAG,MAAM,EAAE;SACtB,eAAe,CAAC,EAAE,IAAI,EAAE,6CAAsB,EAAE,CAAC;SACjD,OAAO,EAAE,CAAC;IAEb,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,gBAAgB,CAAC,6CAAsB,EAAE;gBAChD,SAAS;gBACT,eAAe,EAAE,uCAAgB;gBACjC,gBAAgB,EAAE,wCAAiB;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,yEAAyE;YACzE,IAAI,GAAG,YAAY,0BAAgB,IAAI,GAAG,CAAC,IAAI,KAAK,uCAAgB,EAAE,CAAC;gBACrE,MAAM,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,EAAE,CAAC,UAAU,CAAC,6CAAsB,CAAC,CAAC,aAAa,CAAC,qCAAiB,CAAC,CAAC;AAC/E,CAAC,CAAC;AA5BW,QAAA,0BAA0B,8BA4BrC;AAEF,0DAA0D;AAC1D,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAqB,CAAC;AAE1D,2DAA2D;AACpD,MAAM,8BAA8B,GAAG,GAAkB,EAAE;IAChE,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,kCAA0B,GAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACxD,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,8BAA8B,kCAWzC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ObjectId } from "mongodb";
|
|
2
|
+
import { CityName } from "../utils/types";
|
|
3
|
+
import { MUNI_ISSUE_SYNC_STATUSES } from "./muniIssues.constants";
|
|
4
|
+
export type MuniIssueSyncStatus = (typeof MUNI_ISSUE_SYNC_STATUSES)[number];
|
|
5
|
+
export type MuniIssueContent = {
|
|
6
|
+
issuerName: string;
|
|
7
|
+
issuerRole: string;
|
|
8
|
+
issueDescription: string;
|
|
9
|
+
desiredBehavior: string;
|
|
10
|
+
};
|
|
11
|
+
export type MuniIssueJira = {
|
|
12
|
+
key: string;
|
|
13
|
+
syncStatus: MuniIssueSyncStatus;
|
|
14
|
+
};
|
|
15
|
+
export type MuniIssue = {
|
|
16
|
+
_id: ObjectId;
|
|
17
|
+
callSid: string;
|
|
18
|
+
clientId: string;
|
|
19
|
+
cityName: CityName;
|
|
20
|
+
issueContent: MuniIssueContent;
|
|
21
|
+
jira: MuniIssueJira;
|
|
22
|
+
createdAt: Date;
|
|
23
|
+
};
|
|
24
|
+
export type CreateMuniIssueInput = Omit<MuniIssue, "_id" | "createdAt" | "jira"> & {
|
|
25
|
+
jira: {
|
|
26
|
+
key: string;
|
|
27
|
+
syncStatus?: MuniIssueSyncStatus;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=muniIssues.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muniIssues.types.d.ts","sourceRoot":"","sources":["../../../src/municipal/muniIssues/muniIssues.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,QAAQ,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAIF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,SAAS,EACT,KAAK,GAAG,WAAW,GAAG,MAAM,CAC7B,GAAG;IACF,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,mBAAmB,CAAA;KAAE,CAAC;CACzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muniIssues.types.js","sourceRoot":"","sources":["../../../src/municipal/muniIssues/muniIssues.types.ts"],"names":[],"mappings":""}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from "./tickets.getters";
|
|
2
|
-
export
|
|
2
|
+
export * from "./tickets.statistics.getters";
|
|
3
|
+
export type { Ticket, TicketDoc, SubjectItem, TicketStatsDateScope, TicketSubjectRow, } from "./tickets.types";
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/municipal/tickets/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/municipal/tickets/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,YAAY,EACV,MAAM,EACN,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC"}
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./tickets.getters"), exports);
|
|
18
|
+
__exportStar(require("./tickets.statistics.getters"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/municipal/tickets/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/municipal/tickets/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,+DAA6C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Label used when a ticket has no resolvable department/subject. */
|
|
2
|
+
export declare const UNCLASSIFIED = "\u05DC\u05DC\u05D0 \u05DE\u05D7\u05DC\u05E7\u05D4";
|
|
3
|
+
/** Max execution time (ms) for ticket statistics aggregations. */
|
|
4
|
+
export declare const STATS_MAX_TIME_MS = 30000;
|
|
5
|
+
/** Default look-back window (days) for ticket statistics date ranges. */
|
|
6
|
+
export declare const DEFAULT_LOOKBACK_DAYS = 30;
|
|
7
|
+
//# sourceMappingURL=tickets.constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tickets.constants.d.ts","sourceRoot":"","sources":["../../../src/municipal/tickets/tickets.constants.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,eAAO,MAAM,YAAY,sDAAc,CAAC;AAExC,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAExC,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,KAAK,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_LOOKBACK_DAYS = exports.STATS_MAX_TIME_MS = exports.UNCLASSIFIED = void 0;
|
|
4
|
+
/** Label used when a ticket has no resolvable department/subject. */
|
|
5
|
+
exports.UNCLASSIFIED = "ללא מחלקה";
|
|
6
|
+
/** Max execution time (ms) for ticket statistics aggregations. */
|
|
7
|
+
exports.STATS_MAX_TIME_MS = 30_000;
|
|
8
|
+
/** Default look-back window (days) for ticket statistics date ranges. */
|
|
9
|
+
exports.DEFAULT_LOOKBACK_DAYS = 30;
|
|
10
|
+
//# sourceMappingURL=tickets.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tickets.constants.js","sourceRoot":"","sources":["../../../src/municipal/tickets/tickets.constants.ts"],"names":[],"mappings":";;;AAAA,qEAAqE;AACxD,QAAA,YAAY,GAAG,WAAW,CAAC;AAExC,kEAAkE;AACrD,QAAA,iBAAiB,GAAG,MAAM,CAAC;AAExC,yEAAyE;AAC5D,QAAA,qBAAqB,GAAG,EAAE,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { CityName, Ticket } from "../index";
|
|
2
|
-
import type { SubjectStatsItem } from "./tickets.types";
|
|
3
2
|
import { Collection, Filter, ObjectId as MongoObjectId } from "mongodb";
|
|
4
3
|
/**
|
|
5
4
|
* Generate a new ticket ID as a string
|
|
@@ -13,16 +12,6 @@ export declare const getTicketById: (ticketId: string) => Promise<Ticket | null>
|
|
|
13
12
|
export declare const createTicket: (ticketData: Omit<Ticket, "_id" | "createdAt" | "updatedAt">, ticketId?: string) => Promise<MongoObjectId>;
|
|
14
13
|
export declare const updateTicket: (ticketId: string, data: Partial<Omit<Ticket, "_id" | "createdAt" | "updatedAt">>) => Promise<Ticket | null>;
|
|
15
14
|
export declare const deleteTicket: (ticketId: string) => Promise<boolean>;
|
|
16
|
-
/**
|
|
17
|
-
* Count tickets by city and date range (createdAt converted to given timezone).
|
|
18
|
-
* Used as "open" tickets count when status is not available.
|
|
19
|
-
*/
|
|
20
|
-
export declare function getTicketsCountByCityAndDateRange(cityName: string, startStr: string, endStr: string, timezone: string): Promise<number>;
|
|
21
|
-
/**
|
|
22
|
-
* Count of tickets by department (subject) from departmentsSubjects. Different departments (subject_id) are grouped, and sub-subjects are unified under their department.
|
|
23
|
-
* Date filter: createdAt in [startStr, endStr] (in the given timezone). Fallback to "Unclassified" when no match is found in the lookup.
|
|
24
|
-
*/
|
|
25
|
-
export declare function getTicketsSubjectStats(cityName: string, startStr: string, endStr: string, timezone: string): Promise<SubjectStatsItem[]>;
|
|
26
15
|
export declare const findTicketByQuery: (query: Partial<Ticket>) => Promise<import("mongodb").WithId<Ticket> | null>;
|
|
27
16
|
/**
|
|
28
17
|
* Update ticket files by external call number
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tickets.getters.d.ts","sourceRoot":"","sources":["../../../src/municipal/tickets/tickets.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"tickets.getters.d.ts","sourceRoot":"","sources":["../../../src/municipal/tickets/tickets.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAO,MAEnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,UAAU,CAAC,MAAM,CAExD,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,SAAQ,MAAM,CAAC,MAAM,CAAM,KAC1B,OAAO,CAAC,MAAM,EAAE,CAElB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,KACd,OAAO,CAAC,MAAM,EAAE,CAElB,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,UAAU,MAAM,KACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAKvB,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,YAAY,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,CAAC,EAC3D,WAAW,MAAM,KAChB,OAAO,CAAC,aAAa,CASvB,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,UAAU,MAAM,EAChB,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC,KAC7D,OAAO,CAAC,MAAM,GAAG,IAAI,CAOvB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAKpE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,OAAO,OAAO,CAAC,MAAM,CAAC,qDAE7D,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,6BAA6B,GAAU,QAAQ;IAC1D,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,KAAG,OAAO,CAAC,OAAO,CAsBlB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAU,QAAQ;IACtD,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,KAAG,OAAO,CAAC,OAAO,CASlB,CAAC"}
|