@golemio/waze-ccp 1.1.1 → 1.1.2-dev.797096163
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/db/migrations/postgresql/20230220093543-waze-alerts.js +53 -0
- package/db/migrations/postgresql/sqls/20230220093543-waze-alerts-down.sql +35 -0
- package/db/migrations/postgresql/sqls/20230220093543-waze-alerts-up.sql +96 -0
- package/dist/integration-engine/WazeCCPAlertsTransformation.d.ts +3 -2
- package/dist/integration-engine/WazeCCPAlertsTransformation.js +17 -24
- package/dist/integration-engine/WazeCCPAlertsTransformation.js.map +1 -1
- package/dist/integration-engine/WazeCCPWorker.js +11 -13
- package/dist/integration-engine/WazeCCPWorker.js.map +1 -1
- package/dist/integration-engine/helpers/AlertsHelper.d.ts +4 -0
- package/dist/integration-engine/helpers/AlertsHelper.js +22 -0
- package/dist/integration-engine/helpers/AlertsHelper.js.map +1 -0
- package/dist/integration-engine/interfaces/WazeAlertsInterface.d.ts +24 -0
- package/dist/integration-engine/interfaces/WazeAlertsInterface.js +3 -0
- package/dist/integration-engine/interfaces/WazeAlertsInterface.js.map +1 -0
- package/dist/integration-engine/repositories/WazeAlertsRepository.d.ts +7 -0
- package/dist/integration-engine/repositories/WazeAlertsRepository.js +50 -0
- package/dist/integration-engine/repositories/WazeAlertsRepository.js.map +1 -0
- package/dist/schema-definitions/index.d.ts +0 -38
- package/dist/schema-definitions/index.js +0 -201
- package/dist/schema-definitions/index.js.map +1 -1
- package/dist/schema-definitions/interfaces/IAlertDto.d.ts +24 -0
- package/dist/schema-definitions/interfaces/IAlertDto.js +3 -0
- package/dist/schema-definitions/interfaces/IAlertDto.js.map +1 -0
- package/dist/schema-definitions/interfaces/IIrregularityDto.d.ts +36 -0
- package/dist/schema-definitions/interfaces/IIrregularityDto.js +3 -0
- package/dist/schema-definitions/interfaces/IIrregularityDto.js.map +1 -0
- package/dist/schema-definitions/interfaces/IJamDto.d.ts +29 -0
- package/dist/schema-definitions/interfaces/IJamDto.js +3 -0
- package/dist/schema-definitions/interfaces/IJamDto.js.map +1 -0
- package/dist/schema-definitions/models/AlertDto.d.ts +29 -0
- package/dist/schema-definitions/models/AlertDto.js +64 -0
- package/dist/schema-definitions/models/AlertDto.js.map +1 -0
- package/dist/schema-definitions/models/IrregularityDto.d.ts +41 -0
- package/dist/schema-definitions/models/IrregularityDto.js +108 -0
- package/dist/schema-definitions/models/IrregularityDto.js.map +1 -0
- package/dist/schema-definitions/models/JamDto.d.ts +34 -0
- package/dist/schema-definitions/models/JamDto.js +82 -0
- package/dist/schema-definitions/models/JamDto.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var dbm;
|
|
4
|
+
var type;
|
|
5
|
+
var seed;
|
|
6
|
+
var fs = require('fs');
|
|
7
|
+
var path = require('path');
|
|
8
|
+
var Promise;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* We receive the dbmigrate dependency from dbmigrate initially.
|
|
12
|
+
* This enables us to not have to rely on NODE_PATH.
|
|
13
|
+
*/
|
|
14
|
+
exports.setup = function(options, seedLink) {
|
|
15
|
+
dbm = options.dbmigrate;
|
|
16
|
+
type = dbm.dataType;
|
|
17
|
+
seed = seedLink;
|
|
18
|
+
Promise = options.Promise;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.up = function(db) {
|
|
22
|
+
var filePath = path.join(__dirname, 'sqls', '20230220093543-waze-alerts-up.sql');
|
|
23
|
+
return new Promise( function( resolve, reject ) {
|
|
24
|
+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
|
|
25
|
+
if (err) return reject(err);
|
|
26
|
+
console.log('received data: ' + data);
|
|
27
|
+
|
|
28
|
+
resolve(data);
|
|
29
|
+
});
|
|
30
|
+
})
|
|
31
|
+
.then(function(data) {
|
|
32
|
+
return db.runSql(data);
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.down = function(db) {
|
|
37
|
+
var filePath = path.join(__dirname, 'sqls', '20230220093543-waze-alerts-down.sql');
|
|
38
|
+
return new Promise( function( resolve, reject ) {
|
|
39
|
+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
|
|
40
|
+
if (err) return reject(err);
|
|
41
|
+
console.log('received data: ' + data);
|
|
42
|
+
|
|
43
|
+
resolve(data);
|
|
44
|
+
});
|
|
45
|
+
})
|
|
46
|
+
.then(function(data) {
|
|
47
|
+
return db.runSql(data);
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
exports._meta = {
|
|
52
|
+
"version": 1
|
|
53
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
DROP VIEW v_waze_potholes_last_days;
|
|
2
|
+
DROP TABLE wazeccp_alerts;
|
|
3
|
+
|
|
4
|
+
-- wazeccp_alerts_old -> wazeccp_alerts
|
|
5
|
+
ALTER TABLE wazeccp_alerts_old RENAME TO wazeccp_alerts;
|
|
6
|
+
ALTER TABLE wazeccp_alerts_old_min RENAME TO wazeccp_alerts_min;
|
|
7
|
+
ALTER TABLE wazeccp_alerts_old_y2019 RENAME TO wazeccp_alerts_y2019;
|
|
8
|
+
ALTER TABLE wazeccp_alerts_old_y2020 RENAME TO wazeccp_alerts_y2020;
|
|
9
|
+
ALTER TABLE wazeccp_alerts_old_y2021 RENAME TO wazeccp_alerts_y2021;
|
|
10
|
+
ALTER TABLE wazeccp_alerts_old_y2022 RENAME TO wazeccp_alerts_y2022;
|
|
11
|
+
ALTER TABLE wazeccp_alerts_old_y2023 RENAME TO wazeccp_alerts_y2023;
|
|
12
|
+
ALTER TABLE wazeccp_alerts_old_y2024 RENAME TO wazeccp_alerts_y2024;
|
|
13
|
+
ALTER TABLE wazeccp_alerts_old_y2025 RENAME TO wazeccp_alerts_y2025;
|
|
14
|
+
ALTER TABLE wazeccp_alerts_old_y2026 RENAME TO wazeccp_alerts_y2026;
|
|
15
|
+
ALTER TABLE wazeccp_alerts_old_y2027mxx RENAME TO wazeccp_alerts_y2027mxx;
|
|
16
|
+
|
|
17
|
+
ALTER INDEX wazeccp_alerts_old_pkey RENAME TO wazeccp_alerts_pkey;
|
|
18
|
+
ALTER INDEX wazeccp_alerts_old_idx1 RENAME TO wazeccp_alerts_idx1;
|
|
19
|
+
ALTER INDEX wazeccp_alerts_old_uuid RENAME TO wazeccp_alerts_uuid;
|
|
20
|
+
|
|
21
|
+
CREATE VIEW v_waze_potholes_last_days
|
|
22
|
+
AS SELECT DISTINCT ON (wa.uuid) wa.uuid,
|
|
23
|
+
wa.city,
|
|
24
|
+
wa.location #>> '{}' as location,
|
|
25
|
+
wa.street,
|
|
26
|
+
wa.road_type,
|
|
27
|
+
wa.magvar AS event_direction,
|
|
28
|
+
timezone('Europe/Prague'::text, wa.pub_utc_date) AS published_at,
|
|
29
|
+
timezone('Europe/Prague'::text, wa.created_at) AS last_reported,
|
|
30
|
+
wa.reliability,
|
|
31
|
+
wa.report_rating,
|
|
32
|
+
wa.confidence
|
|
33
|
+
FROM wazeccp_alerts wa
|
|
34
|
+
WHERE wa.subtype = 'HAZARD_ON_ROAD_POT_HOLE'::text AND wa.pub_utc_date > (now()::date - '7 days'::interval)
|
|
35
|
+
ORDER BY wa.uuid, wa.pub_utc_date, wa.created_at DESC;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
-- wazeccp_alerts -> wazeccp_alerts_old
|
|
2
|
+
ALTER TABLE wazeccp_alerts RENAME TO wazeccp_alerts_old;
|
|
3
|
+
ALTER TABLE wazeccp_alerts_min RENAME TO wazeccp_alerts_old_min;
|
|
4
|
+
ALTER TABLE wazeccp_alerts_y2019 RENAME TO wazeccp_alerts_old_y2019;
|
|
5
|
+
ALTER TABLE wazeccp_alerts_y2020 RENAME TO wazeccp_alerts_old_y2020;
|
|
6
|
+
ALTER TABLE wazeccp_alerts_y2021 RENAME TO wazeccp_alerts_old_y2021;
|
|
7
|
+
ALTER TABLE wazeccp_alerts_y2022 RENAME TO wazeccp_alerts_old_y2022;
|
|
8
|
+
ALTER TABLE wazeccp_alerts_y2023 RENAME TO wazeccp_alerts_old_y2023;
|
|
9
|
+
ALTER TABLE wazeccp_alerts_y2024 RENAME TO wazeccp_alerts_old_y2024;
|
|
10
|
+
ALTER TABLE wazeccp_alerts_y2025 RENAME TO wazeccp_alerts_old_y2025;
|
|
11
|
+
ALTER TABLE wazeccp_alerts_y2026 RENAME TO wazeccp_alerts_old_y2026;
|
|
12
|
+
ALTER TABLE wazeccp_alerts_y2027mxx RENAME TO wazeccp_alerts_old_y2027mxx;
|
|
13
|
+
|
|
14
|
+
ALTER INDEX wazeccp_alerts_pkey RENAME TO wazeccp_alerts_old_pkey;
|
|
15
|
+
ALTER INDEX wazeccp_alerts_idx1 RENAME TO wazeccp_alerts_old_idx1;
|
|
16
|
+
ALTER INDEX wazeccp_alerts_uuid RENAME TO wazeccp_alerts_old_uuid;
|
|
17
|
+
|
|
18
|
+
-- wazeccp_alerts
|
|
19
|
+
CREATE TABLE wazeccp_alerts (
|
|
20
|
+
uuid text NOT NULL,
|
|
21
|
+
pub_millis int8 NOT NULL,
|
|
22
|
+
pub_utc_date timestamp NULL,
|
|
23
|
+
road_type int4 NULL,
|
|
24
|
+
"location" jsonb NULL,
|
|
25
|
+
street text NULL,
|
|
26
|
+
city text NULL,
|
|
27
|
+
country text NULL,
|
|
28
|
+
magvar int4 NULL,
|
|
29
|
+
reliability int4 NULL,
|
|
30
|
+
report_description text NULL,
|
|
31
|
+
report_rating int4 NULL,
|
|
32
|
+
confidence int4 NULL,
|
|
33
|
+
"type" text NULL,
|
|
34
|
+
subtype text NULL,
|
|
35
|
+
report_by_municipality_user bool NULL,
|
|
36
|
+
thumbs_up int4 NULL,
|
|
37
|
+
jam_uuid text NULL,
|
|
38
|
+
create_batch_id int8 NULL,
|
|
39
|
+
created_at timestamptz NULL,
|
|
40
|
+
created_by varchar(150) NULL,
|
|
41
|
+
update_batch_id int8 NULL,
|
|
42
|
+
updated_at timestamptz NULL,
|
|
43
|
+
updated_by varchar(150) NULL,
|
|
44
|
+
valid_from int8 NOT NULL,
|
|
45
|
+
downloaded_at int8 NOT NULL,
|
|
46
|
+
CONSTRAINT wazeccp_alerts_pkey PRIMARY KEY (uuid,pub_utc_date,valid_from)
|
|
47
|
+
) partition by range(pub_utc_date);
|
|
48
|
+
|
|
49
|
+
CREATE INDEX wazeccp_alerts_idx ON wazeccp_alerts USING btree (subtype, pub_utc_date);
|
|
50
|
+
CREATE INDEX wazeccp_alerts_downloaded_at_idx ON wazeccp_alerts (downloaded_at);
|
|
51
|
+
|
|
52
|
+
CREATE TABLE wazeccp_alerts_min PARTITION OF wazeccp_alerts
|
|
53
|
+
FOR VALUES FROM (MINVALUE) TO ('2019-01-01'::timestamp);
|
|
54
|
+
|
|
55
|
+
CREATE TABLE wazeccp_alerts_y2019 PARTITION OF wazeccp_alerts
|
|
56
|
+
FOR VALUES FROM ('2019-01-01'::timestamp) TO ('2020-01-01'::timestamp);
|
|
57
|
+
|
|
58
|
+
CREATE TABLE wazeccp_alerts_y2020 PARTITION OF wazeccp_alerts
|
|
59
|
+
FOR VALUES FROM ('2020-01-01'::timestamp) TO ('2021-01-01'::timestamp);
|
|
60
|
+
|
|
61
|
+
CREATE TABLE wazeccp_alerts_y2021 PARTITION OF wazeccp_alerts
|
|
62
|
+
FOR VALUES FROM ('2021-01-01'::timestamp) TO ('2022-01-01'::timestamp);
|
|
63
|
+
|
|
64
|
+
CREATE TABLE wazeccp_alerts_y2022 PARTITION OF wazeccp_alerts
|
|
65
|
+
FOR VALUES FROM ('2022-01-01'::timestamp) TO ('2023-01-01'::timestamp);
|
|
66
|
+
|
|
67
|
+
CREATE TABLE wazeccp_alerts_y2023 PARTITION OF wazeccp_alerts
|
|
68
|
+
FOR VALUES FROM ('2023-01-01'::timestamp) TO ('2024-01-01'::timestamp);
|
|
69
|
+
|
|
70
|
+
CREATE TABLE wazeccp_alerts_y2024 PARTITION OF wazeccp_alerts
|
|
71
|
+
FOR VALUES FROM ('2024-01-01'::timestamp) TO ('2025-01-01'::timestamp);
|
|
72
|
+
|
|
73
|
+
CREATE TABLE wazeccp_alerts_y2025 PARTITION OF wazeccp_alerts
|
|
74
|
+
FOR VALUES FROM ('2025-01-01'::timestamp) TO ('2026-01-01'::timestamp);
|
|
75
|
+
|
|
76
|
+
CREATE TABLE wazeccp_alerts_y2026 PARTITION OF wazeccp_alerts
|
|
77
|
+
FOR VALUES FROM ('2026-01-01'::timestamp) TO ('2027-01-01'::timestamp);
|
|
78
|
+
|
|
79
|
+
CREATE TABLE wazeccp_alerts_y2027max PARTITION OF wazeccp_alerts
|
|
80
|
+
FOR VALUES FROM ('2027-01-01'::timestamp) TO (MAXVALUE);
|
|
81
|
+
|
|
82
|
+
CREATE OR REPLACE VIEW v_waze_potholes_last_days
|
|
83
|
+
AS SELECT DISTINCT ON (wa.uuid) wa.uuid,
|
|
84
|
+
wa.city,
|
|
85
|
+
wa.location #>> '{}' as location,
|
|
86
|
+
wa.street,
|
|
87
|
+
wa.road_type,
|
|
88
|
+
wa.magvar AS event_direction,
|
|
89
|
+
timezone('Europe/Prague'::text, wa.pub_utc_date) AS published_at,
|
|
90
|
+
timezone('Europe/Prague'::text, wa.created_at) AS last_reported,
|
|
91
|
+
wa.reliability,
|
|
92
|
+
wa.report_rating,
|
|
93
|
+
wa.confidence
|
|
94
|
+
FROM wazeccp_alerts wa
|
|
95
|
+
WHERE wa.subtype = 'HAZARD_ON_ROAD_POT_HOLE'::text AND wa.pub_utc_date > (now()::date - '7 days'::interval)
|
|
96
|
+
ORDER BY wa.uuid, wa.pub_utc_date, wa.created_at DESC;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { BaseTransformation, ITransformation } from "@golemio/core/dist/integration-engine/transformations";
|
|
2
|
+
import { IWazeAlerts } from "./interfaces/WazeAlertsInterface";
|
|
2
3
|
export declare class WazeCCPAlertsTransformation extends BaseTransformation implements ITransformation {
|
|
3
4
|
name: string;
|
|
4
5
|
constructor();
|
|
5
6
|
/**
|
|
6
7
|
* Transform the whole collection or one single element
|
|
7
8
|
*/
|
|
8
|
-
transform: (data: any | any[]) => Promise<
|
|
9
|
-
protected transformElement: (alert: any) =>
|
|
9
|
+
transform: (data: any | any[]) => Promise<IWazeAlerts[]>;
|
|
10
|
+
protected transformElement: (alert: any) => IWazeAlerts;
|
|
10
11
|
}
|
|
@@ -17,7 +17,6 @@ const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/mom
|
|
|
17
17
|
const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
|
|
18
18
|
const transformations_1 = require("@golemio/core/dist/integration-engine/transformations");
|
|
19
19
|
const index_1 = require("../schema-definitions/index");
|
|
20
|
-
const _1 = require("./");
|
|
21
20
|
class WazeCCPAlertsTransformation extends transformations_1.BaseTransformation {
|
|
22
21
|
constructor() {
|
|
23
22
|
super();
|
|
@@ -25,7 +24,6 @@ class WazeCCPAlertsTransformation extends transformations_1.BaseTransformation {
|
|
|
25
24
|
* Transform the whole collection or one single element
|
|
26
25
|
*/
|
|
27
26
|
this.transform = (data) => __awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
const rootStart = data.startTimeMillis;
|
|
29
27
|
const downloadedAt = data.downloadedAt;
|
|
30
28
|
if (!data.alerts) {
|
|
31
29
|
helpers_1.log.warn(`${this.name}: Data source returned empty data.`);
|
|
@@ -33,8 +31,7 @@ class WazeCCPAlertsTransformation extends transformations_1.BaseTransformation {
|
|
|
33
31
|
}
|
|
34
32
|
const results = [];
|
|
35
33
|
data.alerts.forEach((element) => {
|
|
36
|
-
const res = this.transformElement(Object.assign(Object.assign({}, element), { downloadedAt
|
|
37
|
-
rootStart }));
|
|
34
|
+
const res = this.transformElement(Object.assign(Object.assign({}, element), { downloadedAt }));
|
|
38
35
|
if (res) {
|
|
39
36
|
results.push(res);
|
|
40
37
|
}
|
|
@@ -42,34 +39,30 @@ class WazeCCPAlertsTransformation extends transformations_1.BaseTransformation {
|
|
|
42
39
|
return results;
|
|
43
40
|
});
|
|
44
41
|
this.transformElement = (alert) => {
|
|
45
|
-
|
|
46
|
-
delete alert.rootStart;
|
|
42
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
47
43
|
const downloadedAt = alert.downloadedAt;
|
|
48
44
|
delete alert.downloadedAt;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
country: alert.country,
|
|
45
|
+
return {
|
|
46
|
+
city: (_a = alert.city) !== null && _a !== void 0 ? _a : null,
|
|
47
|
+
confidence: (_b = alert.confidence) !== null && _b !== void 0 ? _b : null,
|
|
48
|
+
country: (_c = alert.country) !== null && _c !== void 0 ? _c : null,
|
|
54
49
|
downloaded_at: downloadedAt,
|
|
55
|
-
|
|
56
|
-
jam_uuid: alert.jamUuid,
|
|
50
|
+
jam_uuid: (_d = alert.jamUuid) !== null && _d !== void 0 ? _d : null,
|
|
57
51
|
location: alert.location,
|
|
58
|
-
magvar: alert.magvar,
|
|
52
|
+
magvar: (_e = alert.magvar) !== null && _e !== void 0 ? _e : null,
|
|
59
53
|
pub_millis: alert.pubMillis,
|
|
60
54
|
pub_utc_date: moment_timezone_1.default.utc(alert.pubMillis).toDate(),
|
|
61
|
-
reliability: alert.reliability,
|
|
62
|
-
report_by_municipality_user: alert.reportByMunicipalityUser,
|
|
63
|
-
report_description: alert.reportDescription,
|
|
64
|
-
report_rating: alert.reportRating,
|
|
65
|
-
road_type: alert.roadType,
|
|
66
|
-
street: alert.street,
|
|
67
|
-
subtype: alert.subtype,
|
|
68
|
-
thumbs_up: alert.nThumbsUp,
|
|
69
|
-
type: alert.type,
|
|
55
|
+
reliability: (_f = alert.reliability) !== null && _f !== void 0 ? _f : null,
|
|
56
|
+
report_by_municipality_user: alert.reportByMunicipalityUser === "true",
|
|
57
|
+
report_description: (_g = alert.reportDescription) !== null && _g !== void 0 ? _g : null,
|
|
58
|
+
report_rating: (_h = alert.reportRating) !== null && _h !== void 0 ? _h : null,
|
|
59
|
+
road_type: (_j = alert.roadType) !== null && _j !== void 0 ? _j : null,
|
|
60
|
+
street: (_k = alert.street) !== null && _k !== void 0 ? _k : null,
|
|
61
|
+
subtype: (_l = alert.subtype) !== null && _l !== void 0 ? _l : null,
|
|
62
|
+
thumbs_up: (_m = alert.nThumbsUp) !== null && _m !== void 0 ? _m : null,
|
|
63
|
+
type: (_o = alert.type) !== null && _o !== void 0 ? _o : null,
|
|
70
64
|
uuid: alert.uuid,
|
|
71
65
|
};
|
|
72
|
-
return res;
|
|
73
66
|
};
|
|
74
67
|
this.name = index_1.WazeCCP.alerts.name;
|
|
75
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WazeCCPAlertsTransformation.js","sourceRoot":"","sources":["../../src/integration-engine/WazeCCPAlertsTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gGAA+D;AAC/D,2EAAoE;AACpE,2FAA4G;AAC5G,uDAAqC;
|
|
1
|
+
{"version":3,"file":"WazeCCPAlertsTransformation.js","sourceRoot":"","sources":["../../src/integration-engine/WazeCCPAlertsTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gGAA+D;AAC/D,2EAAoE;AACpE,2FAA4G;AAC5G,uDAAqC;AAGrC,MAAa,2BAA4B,SAAQ,oCAAkB;IAG/D;QACI,KAAK,EAAE,CAAC;QAIZ;;WAEG;QACI,cAAS,GAAG,CAAO,IAAiB,EAA0B,EAAE;YACnE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAEvC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACd,aAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,oCAAoC,CAAC,CAAC;gBAC3D,OAAO,EAAE,CAAC;aACb;YAED,MAAM,OAAO,GAAU,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,iCAC1B,OAAO,KACV,YAAY,IACd,CAAC;gBACH,IAAI,GAAG,EAAE;oBACL,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACrB;YACL,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACnB,CAAC,CAAA,CAAC;QAEQ,qBAAgB,GAAG,CAAC,KAAU,EAAe,EAAE;;YACrD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACxC,OAAO,KAAK,CAAC,YAAY,CAAC;YAE1B,OAAO;gBACH,IAAI,EAAE,MAAA,KAAK,CAAC,IAAI,mCAAI,IAAI;gBACxB,UAAU,EAAE,MAAA,KAAK,CAAC,UAAU,mCAAI,IAAI;gBACpC,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,IAAI;gBAC9B,aAAa,EAAE,YAAY;gBAC3B,QAAQ,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,IAAI;gBAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,MAAA,KAAK,CAAC,MAAM,mCAAI,IAAI;gBAC5B,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,YAAY,EAAE,yBAAM,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;gBAClD,WAAW,EAAE,MAAA,KAAK,CAAC,WAAW,mCAAI,IAAI;gBACtC,2BAA2B,EAAE,KAAK,CAAC,wBAAwB,KAAK,MAAM;gBACtE,kBAAkB,EAAE,MAAA,KAAK,CAAC,iBAAiB,mCAAI,IAAI;gBACnD,aAAa,EAAE,MAAA,KAAK,CAAC,YAAY,mCAAI,IAAI;gBACzC,SAAS,EAAE,MAAA,KAAK,CAAC,QAAQ,mCAAI,IAAI;gBACjC,MAAM,EAAE,MAAA,KAAK,CAAC,MAAM,mCAAI,IAAI;gBAC5B,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,IAAI;gBAC9B,SAAS,EAAE,MAAA,KAAK,CAAC,SAAS,mCAAI,IAAI;gBAClC,IAAI,EAAE,MAAA,KAAK,CAAC,IAAI,mCAAI,IAAI;gBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;aACnB,CAAC;QACN,CAAC,CAAC;QApDE,IAAI,CAAC,IAAI,GAAG,eAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IACpC,CAAC;CAoDJ;AA1DD,kEA0DC"}
|
|
@@ -10,12 +10,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.WazeCCPWorker = void 0;
|
|
13
|
-
const
|
|
13
|
+
const WazeAlertsRepository_1 = require("./repositories/WazeAlertsRepository");
|
|
14
|
+
const index_1 = require("../schema-definitions/index");
|
|
15
|
+
const IrregularityDto_1 = require("../schema-definitions/models/IrregularityDto");
|
|
16
|
+
const JamDto_1 = require("../schema-definitions/models/JamDto");
|
|
14
17
|
const config_1 = require("@golemio/core/dist/integration-engine/config");
|
|
15
18
|
const datasources_1 = require("@golemio/core/dist/integration-engine/datasources");
|
|
16
19
|
const models_1 = require("@golemio/core/dist/integration-engine/models");
|
|
17
20
|
const workers_1 = require("@golemio/core/dist/integration-engine/workers");
|
|
18
|
-
const
|
|
21
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
19
22
|
const _1 = require("./");
|
|
20
23
|
class WazeCCPWorker extends workers_1.BaseWorker {
|
|
21
24
|
constructor() {
|
|
@@ -25,7 +28,7 @@ class WazeCCPWorker extends workers_1.BaseWorker {
|
|
|
25
28
|
// enrich data by downloadedAt unix timestamp
|
|
26
29
|
const dataWithDownloadAt = Object.assign(Object.assign({}, data), { downloadedAt: new Date().valueOf() });
|
|
27
30
|
const transformedData = yield this.transformationAlerts.transform(dataWithDownloadAt);
|
|
28
|
-
yield this.modelAlerts.
|
|
31
|
+
yield this.modelAlerts.saveAlerts(transformedData);
|
|
29
32
|
});
|
|
30
33
|
this.refreshIrregularitiesInDB = (msg) => __awaiter(this, void 0, void 0, function* () {
|
|
31
34
|
const data = yield this.dataSourceIrregularities.getAll();
|
|
@@ -65,24 +68,19 @@ class WazeCCPWorker extends workers_1.BaseWorker {
|
|
|
65
68
|
this.transformationAlerts = new _1.WazeCCPAlertsTransformation();
|
|
66
69
|
this.transformationIrregularities = new _1.WazeCCPIrregularitiesTransformation();
|
|
67
70
|
this.transformationJams = new _1.WazeCCPJamsTransformation();
|
|
68
|
-
this.modelAlerts = new
|
|
69
|
-
outputSequelizeAttributes: index_1.WazeCCP.alerts.outputSequelizeAttributes,
|
|
70
|
-
pgTableName: index_1.WazeCCP.alerts.pgTableName,
|
|
71
|
-
pgSchema: index_1.WazeCCP.pgSchema,
|
|
72
|
-
savingType: "insertOrUpdate",
|
|
73
|
-
}, new golemio_validator_1.Validator(index_1.WazeCCP.alerts.name + "ModelValidator", index_1.WazeCCP.alerts.outputMongooseSchemaObject));
|
|
71
|
+
this.modelAlerts = new WazeAlertsRepository_1.WazeAlertsRepository();
|
|
74
72
|
this.modelIrregularities = new models_1.PostgresModel(index_1.WazeCCP.irregularities.name + "Model", {
|
|
75
|
-
outputSequelizeAttributes:
|
|
73
|
+
outputSequelizeAttributes: IrregularityDto_1.IrregularitiesDto.attributeModel,
|
|
76
74
|
pgTableName: index_1.WazeCCP.irregularities.pgTableName,
|
|
77
75
|
pgSchema: index_1.WazeCCP.pgSchema,
|
|
78
76
|
savingType: "insertOrUpdate",
|
|
79
|
-
}, new golemio_validator_1.
|
|
77
|
+
}, new golemio_validator_1.JSONSchemaValidator(index_1.WazeCCP.irregularities.name + "ModelValidator", IrregularityDto_1.IrregularitiesDto.jsonSchema));
|
|
80
78
|
this.modelJams = new models_1.PostgresModel(index_1.WazeCCP.jams.name + "Model", {
|
|
81
|
-
outputSequelizeAttributes:
|
|
79
|
+
outputSequelizeAttributes: JamDto_1.JamDto.attributeModel,
|
|
82
80
|
pgTableName: index_1.WazeCCP.jams.pgTableName,
|
|
83
81
|
pgSchema: index_1.WazeCCP.pgSchema,
|
|
84
82
|
savingType: "insertOrUpdate",
|
|
85
|
-
}, new golemio_validator_1.Validator(index_1.WazeCCP.jams.name + "ModelValidator",
|
|
83
|
+
}, new golemio_validator_1.Validator(index_1.WazeCCP.jams.name + "ModelValidator", JamDto_1.JamDto.jsonSchema));
|
|
86
84
|
this.queuePrefix = config_1.config.RABBIT_EXCHANGE_NAME + "." + index_1.WazeCCP.name.toLowerCase();
|
|
87
85
|
}
|
|
88
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WazeCCPWorker.js","sourceRoot":"","sources":["../../src/integration-engine/WazeCCPWorker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"WazeCCPWorker.js","sourceRoot":"","sources":["../../src/integration-engine/WazeCCPWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AlertsHelper = void 0;
|
|
4
|
+
class AlertsHelper {
|
|
5
|
+
}
|
|
6
|
+
exports.AlertsHelper = AlertsHelper;
|
|
7
|
+
AlertsHelper.isAlertEqual = (dbRecord, newRecord) => {
|
|
8
|
+
return (
|
|
9
|
+
// select by uuid - dbRecord.uuid === newRecord.uuid &&
|
|
10
|
+
dbRecord.pub_millis === newRecord.pub_millis.toString() &&
|
|
11
|
+
dbRecord.road_type === newRecord.road_type &&
|
|
12
|
+
dbRecord.location.x === newRecord.location.x &&
|
|
13
|
+
dbRecord.location.y === newRecord.location.y &&
|
|
14
|
+
dbRecord.street === newRecord.street &&
|
|
15
|
+
dbRecord.city === newRecord.city &&
|
|
16
|
+
dbRecord.country === newRecord.country &&
|
|
17
|
+
dbRecord.type === newRecord.type &&
|
|
18
|
+
dbRecord.subtype === newRecord.subtype &&
|
|
19
|
+
dbRecord.report_by_municipality_user === newRecord.report_by_municipality_user &&
|
|
20
|
+
dbRecord.jam_uuid === newRecord.jam_uuid);
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=AlertsHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlertsHelper.js","sourceRoot":"","sources":["../../../src/integration-engine/helpers/AlertsHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;;AAAzB,oCAiBC;AAhBU,yBAAY,GAAG,CAAC,QAAqB,EAAE,SAAsB,EAAE,EAAE;IACpE,OAAO;IACH,uDAAuD;IACvD,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE;QACvD,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS;QAC1C,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5C,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5C,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;QACpC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;QAChC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO;QACtC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;QAChC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO;QACtC,QAAQ,CAAC,2BAA2B,KAAK,SAAS,CAAC,2BAA2B;QAC9E,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CAC3C,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface IWazeAlerts {
|
|
2
|
+
city: string | null;
|
|
3
|
+
confidence: number | null;
|
|
4
|
+
country: string | null;
|
|
5
|
+
downloaded_at: string;
|
|
6
|
+
jam_uuid: string | null;
|
|
7
|
+
location: {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
};
|
|
11
|
+
magvar: number | null;
|
|
12
|
+
pub_millis: string;
|
|
13
|
+
pub_utc_date: Date | string;
|
|
14
|
+
reliability: number | null;
|
|
15
|
+
report_by_municipality_user: boolean;
|
|
16
|
+
report_description: string | null;
|
|
17
|
+
report_rating: number | null;
|
|
18
|
+
road_type: number | null;
|
|
19
|
+
street: string | null;
|
|
20
|
+
subtype: string | null;
|
|
21
|
+
thumbs_up: number | null;
|
|
22
|
+
type: string | null;
|
|
23
|
+
uuid: string;
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WazeAlertsInterface.js","sourceRoot":"","sources":["../../../src/integration-engine/interfaces/WazeAlertsInterface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IWazeAlerts } from "../interfaces/WazeAlertsInterface";
|
|
2
|
+
import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine/models";
|
|
3
|
+
export declare class WazeAlertsRepository extends PostgresModel implements IModel {
|
|
4
|
+
constructor();
|
|
5
|
+
saveAlerts: (data: IWazeAlerts[]) => Promise<void>;
|
|
6
|
+
private saveAlert;
|
|
7
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.WazeAlertsRepository = void 0;
|
|
13
|
+
const AlertsHelper_1 = require("../helpers/AlertsHelper");
|
|
14
|
+
const _sch_1 = require("../../schema-definitions");
|
|
15
|
+
const AlertDto_1 = require("../../schema-definitions/models/AlertDto");
|
|
16
|
+
const models_1 = require("@golemio/core/dist/integration-engine/models");
|
|
17
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
18
|
+
class WazeAlertsRepository extends models_1.PostgresModel {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(_sch_1.WazeCCP.alerts.name + "Repository", {
|
|
21
|
+
outputSequelizeAttributes: AlertDto_1.AlertDto.attributeModel,
|
|
22
|
+
pgTableName: _sch_1.WazeCCP.alerts.pgTableName,
|
|
23
|
+
pgSchema: _sch_1.WazeCCP.pgSchema,
|
|
24
|
+
savingType: "insertOrUpdate",
|
|
25
|
+
}, new golemio_validator_1.JSONSchemaValidator(_sch_1.WazeCCP.alerts.name + "Validator", AlertDto_1.AlertDto.jsonSchema));
|
|
26
|
+
this.saveAlerts = (data) => __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
for (const item of data) {
|
|
28
|
+
yield this.saveAlert(item);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
this.saveAlert = (data) => __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
if (yield this.validate([data])) {
|
|
33
|
+
const records = yield this.sequelizeModel.findAll({
|
|
34
|
+
where: {
|
|
35
|
+
uuid: data.uuid,
|
|
36
|
+
},
|
|
37
|
+
raw: true,
|
|
38
|
+
order: [["downloaded_at", "DESC"]],
|
|
39
|
+
limit: 1,
|
|
40
|
+
});
|
|
41
|
+
if (records.length && AlertsHelper_1.AlertsHelper.isAlertEqual(records[0], data)) {
|
|
42
|
+
return this.update({ downloaded_at: data.downloaded_at }, { where: { uuid: records[0].uuid, pub_utc_date: records[0].pub_utc_date, valid_from: records[0].valid_from } });
|
|
43
|
+
}
|
|
44
|
+
return this.sequelizeModel.create(Object.assign(Object.assign({}, data), { valid_from: data.downloaded_at }));
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.WazeAlertsRepository = WazeAlertsRepository;
|
|
50
|
+
//# sourceMappingURL=WazeAlertsRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WazeAlertsRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/repositories/WazeAlertsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0DAAwD;AAExD,mDAA+B;AAC/B,uEAAgD;AAChD,yEAAqF;AACrF,mFAAkF;AAElF,MAAa,oBAAqB,SAAQ,sBAAa;IACnD;QACI,KAAK,CACD,cAAO,CAAC,MAAM,CAAC,IAAI,GAAG,YAAY,EAClC;YACI,yBAAyB,EAAE,mBAAQ,CAAC,cAAc;YAClD,WAAW,EAAE,cAAO,CAAC,MAAM,CAAC,WAAW;YACvC,QAAQ,EAAE,cAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,uCAAmB,CAAC,cAAO,CAAC,MAAM,CAAC,IAAI,GAAG,WAAW,EAAE,mBAAQ,CAAC,UAAU,CAAC,CAClF,CAAC;QAGC,eAAU,GAAG,CAAO,IAAmB,EAAE,EAAE;YAC9C,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;gBACrB,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAC9B;QACL,CAAC,CAAA,CAAC;QAEM,cAAS,GAAG,CAAO,IAAiB,EAAE,EAAE;YAC5C,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;gBAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC9C,KAAK,EAAE;wBACH,IAAI,EAAE,IAAI,CAAC,IAAI;qBAClB;oBACD,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;oBAClC,KAAK,EAAE,CAAC;iBACX,CAAC,CAAC;gBAEH,IAAI,OAAO,CAAC,MAAM,IAAI,2BAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;oBAC/D,OAAO,IAAI,CAAC,MAAM,CACd,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,EACrC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CACjH,CAAC;iBACL;gBAED,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,iCAAM,IAAI,KAAE,UAAU,EAAE,IAAI,CAAC,aAAa,IAAG,CAAC;aAClF;QACL,CAAC,CAAA,CAAC;IA5BF,CAAC;CA6BJ;AAzCD,oDAyCC"}
|
|
@@ -1,29 +1,3 @@
|
|
|
1
|
-
/// <reference types="mongoose/types/aggregate" />
|
|
2
|
-
/// <reference types="mongoose/types/callback" />
|
|
3
|
-
/// <reference types="mongoose/types/collection" />
|
|
4
|
-
/// <reference types="mongoose/types/connection" />
|
|
5
|
-
/// <reference types="mongoose/types/cursor" />
|
|
6
|
-
/// <reference types="mongoose/types/document" />
|
|
7
|
-
/// <reference types="mongoose/types/error" />
|
|
8
|
-
/// <reference types="mongoose/types/expressions" />
|
|
9
|
-
/// <reference types="mongoose/types/helpers" />
|
|
10
|
-
/// <reference types="mongoose/types/middlewares" />
|
|
11
|
-
/// <reference types="mongoose/types/indexes" />
|
|
12
|
-
/// <reference types="mongoose/types/models" />
|
|
13
|
-
/// <reference types="mongoose/types/mongooseoptions" />
|
|
14
|
-
/// <reference types="mongoose/types/pipelinestage" />
|
|
15
|
-
/// <reference types="mongoose/types/populate" />
|
|
16
|
-
/// <reference types="mongoose/types/query" />
|
|
17
|
-
/// <reference types="mongoose/types/schemaoptions" />
|
|
18
|
-
/// <reference types="mongoose/types/schematypes" />
|
|
19
|
-
/// <reference types="mongoose/types/session" />
|
|
20
|
-
/// <reference types="mongoose/types/types" />
|
|
21
|
-
/// <reference types="mongoose/types/utility" />
|
|
22
|
-
/// <reference types="mongoose/types/validation" />
|
|
23
|
-
/// <reference types="mongoose/types/virtuals" />
|
|
24
|
-
/// <reference types="mongoose" />
|
|
25
|
-
/// <reference types="mongoose/types/inferschematype" />
|
|
26
|
-
import Sequelize from "@golemio/core/dist/shared/sequelize";
|
|
27
1
|
declare const forExport: {
|
|
28
2
|
pgSchema: string;
|
|
29
3
|
alerts: {
|
|
@@ -105,10 +79,6 @@ declare const forExport: {
|
|
|
105
79
|
required: string[];
|
|
106
80
|
};
|
|
107
81
|
name: string;
|
|
108
|
-
outputMongooseSchemaObject: {
|
|
109
|
-
[path: string]: import("mongoose").SchemaDefinitionProperty<undefined>;
|
|
110
|
-
};
|
|
111
|
-
outputSequelizeAttributes: Sequelize.ModelAttributes<any, any>;
|
|
112
82
|
pgTableName: string;
|
|
113
83
|
};
|
|
114
84
|
irregularities: {
|
|
@@ -229,10 +199,6 @@ declare const forExport: {
|
|
|
229
199
|
required: string[];
|
|
230
200
|
};
|
|
231
201
|
name: string;
|
|
232
|
-
outputMongooseSchemaObject: {
|
|
233
|
-
[path: string]: import("mongoose").SchemaDefinitionProperty<undefined>;
|
|
234
|
-
};
|
|
235
|
-
outputSequelizeAttributes: Sequelize.ModelAttributes<any, any>;
|
|
236
202
|
pgTableName: string;
|
|
237
203
|
};
|
|
238
204
|
jams: {
|
|
@@ -329,10 +295,6 @@ declare const forExport: {
|
|
|
329
295
|
required: string[];
|
|
330
296
|
};
|
|
331
297
|
name: string;
|
|
332
|
-
outputMongooseSchemaObject: {
|
|
333
|
-
[path: string]: import("mongoose").SchemaDefinitionProperty<undefined>;
|
|
334
|
-
};
|
|
335
|
-
outputSequelizeAttributes: Sequelize.ModelAttributes<any, any>;
|
|
336
298
|
pgTableName: string;
|
|
337
299
|
};
|
|
338
300
|
name: string;
|