text-to-map 1.1.45 → 1.1.47
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/LICENSE +21 -21
- package/README.md +69 -69
- package/dist/bin/address-points.d.ts +1 -1
- package/dist/bin/address-points.js +16 -16
- package/dist/bin/cities.d.ts +1 -1
- package/dist/bin/cities.js +10 -10
- package/dist/bin/clear-all.d.ts +1 -1
- package/dist/bin/clear-all.js +13 -13
- package/dist/bin/constants.d.ts +2 -2
- package/dist/bin/constants.js +4 -4
- package/dist/bin/generate-syntax-diagrams.d.ts +1 -1
- package/dist/bin/generate-syntax-diagrams.js +20 -20
- package/dist/bin/init-db.d.ts +1 -1
- package/dist/bin/init-db.js +8 -8
- package/dist/bin/knex.d.ts +1 -1
- package/dist/bin/knex.js +10 -10
- package/dist/bin/parse-ordinance.d.ts +1 -1
- package/dist/bin/parse-ordinance.js +74 -74
- package/dist/bin/polygons.d.ts +1 -1
- package/dist/bin/polygons.js +27 -27
- package/dist/bin/regions.d.ts +1 -1
- package/dist/bin/regions.js +10 -10
- package/dist/bin/schools.d.ts +1 -1
- package/dist/bin/schools.js +10 -10
- package/dist/bin/streets.d.ts +1 -1
- package/dist/bin/streets.js +19 -19
- package/dist/bin/sync-all.d.ts +1 -1
- package/dist/bin/sync-all.js +4 -4
- package/dist/db/address-points.d.ts +59 -59
- package/dist/db/address-points.js +401 -399
- package/dist/db/cities.d.ts +7 -7
- package/dist/db/cities.js +95 -95
- package/dist/db/db.d.ts +37 -37
- package/dist/db/db.js +191 -191
- package/dist/db/founders.d.ts +14 -14
- package/dist/db/founders.js +461 -461
- package/dist/db/meta.d.ts +4 -4
- package/dist/db/meta.js +26 -26
- package/dist/db/migrations/20230704125715_initial.js +304 -304
- package/dist/db/migrations/20230731232915_city_positions.js +13 -13
- package/dist/db/migrations/20240106224603_city_polygon.js +11 -11
- package/dist/db/migrations/20240320200534_district_polygon.js +11 -11
- package/dist/db/migrations/20250316162700_kindergartens.js +12 -12
- package/dist/db/regions.d.ts +31 -31
- package/dist/db/regions.js +81 -81
- package/dist/db/schools.d.ts +7 -7
- package/dist/db/schools.js +95 -95
- package/dist/db/street-sync.d.ts +6 -6
- package/dist/db/street-sync.js +22 -22
- package/dist/db/sync-log.d.ts +9 -9
- package/dist/db/sync-log.js +66 -66
- package/dist/db/types.d.ts +59 -59
- package/dist/db/types.js +26 -26
- package/dist/index.d.ts +23 -23
- package/dist/index.js +32 -32
- package/dist/open-data-sync/address-points.d.ts +2 -2
- package/dist/open-data-sync/address-points.js +68 -68
- package/dist/open-data-sync/cities.d.ts +2 -2
- package/dist/open-data-sync/cities.js +32 -32
- package/dist/open-data-sync/common.d.ts +2 -2
- package/dist/open-data-sync/common.js +22 -22
- package/dist/open-data-sync/regions.d.ts +2 -2
- package/dist/open-data-sync/regions.js +37 -37
- package/dist/open-data-sync/schools.d.ts +3 -3
- package/dist/open-data-sync/schools.js +207 -207
- package/dist/open-data-sync/streets.d.ts +2 -2
- package/dist/open-data-sync/streets.js +132 -132
- package/dist/smd-to-csv/json-to-csv.d.ts +1 -1
- package/dist/smd-to-csv/json-to-csv.js +154 -154
- package/dist/smd-to-csv/ordinance-to-csv-rules.d.ts +1 -1
- package/dist/smd-to-csv/ordinance-to-csv-rules.js +23 -23
- package/dist/smd-to-csv/txt-to-json.d.ts +1 -1
- package/dist/smd-to-csv/txt-to-json.js +92 -92
- package/dist/souradnice.csv +6260 -6260
- package/dist/street-markdown/municipality.d.ts +11 -11
- package/dist/street-markdown/municipality.js +116 -116
- package/dist/street-markdown/polygons.d.ts +7 -7
- package/dist/street-markdown/polygons.js +261 -261
- package/dist/street-markdown/roman-numerals.d.ts +1 -1
- package/dist/street-markdown/roman-numerals.js +68 -68
- package/dist/street-markdown/smd-line-parser.d.ts +4 -4
- package/dist/street-markdown/smd-line-parser.js +40 -40
- package/dist/street-markdown/smd-parser.d.ts +23 -23
- package/dist/street-markdown/smd-parser.js +393 -393
- package/dist/street-markdown/smd.d.ts +24 -24
- package/dist/street-markdown/smd.js +440 -440
- package/dist/street-markdown/token-definition.d.ts +25 -25
- package/dist/street-markdown/token-definition.js +168 -168
- package/dist/street-markdown/types.d.ts +148 -148
- package/dist/street-markdown/types.js +13 -13
- package/dist/utils/atom.d.ts +2 -2
- package/dist/utils/atom.js +57 -57
- package/dist/utils/helpers.d.ts +28 -28
- package/dist/utils/helpers.js +176 -176
- package/dist/utils/jtsk2wgs84.d.ts +17 -17
- package/dist/utils/jtsk2wgs84.js +82 -82
- package/package.json +109 -109
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export async function up(knex) {
|
|
2
|
-
await knex.schema.alterTable("city", (t) => {
|
|
3
|
-
t.double("wgs84_latitude").nullable();
|
|
4
|
-
t.double("wgs84_longitude").nullable();
|
|
5
|
-
});
|
|
6
|
-
}
|
|
7
|
-
export async function down(knex) {
|
|
8
|
-
await knex.schema.alterTable("city", (t) => {
|
|
9
|
-
t.dropColumn("wgs84_latitude");
|
|
10
|
-
t.dropColumn("wgs84_longitude");
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export async function up(knex) {
|
|
2
|
+
await knex.schema.alterTable("city", (t) => {
|
|
3
|
+
t.double("wgs84_latitude").nullable();
|
|
4
|
+
t.double("wgs84_longitude").nullable();
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
export async function down(knex) {
|
|
8
|
+
await knex.schema.alterTable("city", (t) => {
|
|
9
|
+
t.dropColumn("wgs84_latitude");
|
|
10
|
+
t.dropColumn("wgs84_longitude");
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAyMzA3MzEyMzI5MTVfY2l0eV9wb3NpdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGIvbWlncmF0aW9ucy8yMDIzMDczMTIzMjkxNV9jaXR5X3Bvc2l0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQyxJQUFVO0lBQ2pDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDekMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxJQUFVO0lBQ25DLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDekMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLbmV4IH0gZnJvbSBcImtuZXhcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwKGtuZXg6IEtuZXgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcbiAgICB0LmRvdWJsZShcIndnczg0X2xhdGl0dWRlXCIpLm51bGxhYmxlKCk7XG4gICAgdC5kb3VibGUoXCJ3Z3M4NF9sb25naXR1ZGVcIikubnVsbGFibGUoKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb3duKGtuZXg6IEtuZXgpIHtcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcbiAgICB0LmRyb3BDb2x1bW4oXCJ3Z3M4NF9sYXRpdHVkZVwiKTtcbiAgICB0LmRyb3BDb2x1bW4oXCJ3Z3M4NF9sb25naXR1ZGVcIik7XG4gIH0pO1xufVxuIl19
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export async function up(knex) {
|
|
2
|
-
await knex.schema.alterTable("city", (t) => {
|
|
3
|
-
t.text("polygon_geojson", "longtext").nullable();
|
|
4
|
-
});
|
|
5
|
-
}
|
|
6
|
-
export async function down(knex) {
|
|
7
|
-
await knex.schema.alterTable("city", (t) => {
|
|
8
|
-
t.dropColumn("polygon_geojson");
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export async function up(knex) {
|
|
2
|
+
await knex.schema.alterTable("city", (t) => {
|
|
3
|
+
t.text("polygon_geojson", "longtext").nullable();
|
|
4
|
+
});
|
|
5
|
+
}
|
|
6
|
+
export async function down(knex) {
|
|
7
|
+
await knex.schema.alterTable("city", (t) => {
|
|
8
|
+
t.dropColumn("polygon_geojson");
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAyNDAxMDYyMjQ2MDNfY2l0eV9wb2x5Z29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RiL21pZ3JhdGlvbnMvMjAyNDAxMDYyMjQ2MDNfY2l0eV9wb2x5Z29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxLQUFLLFVBQVUsRUFBRSxDQUFDLElBQVU7SUFDakMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN6QyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25ELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsSUFBSSxDQUFDLElBQVU7SUFDbkMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN6QyxDQUFDLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS25leCB9IGZyb20gXCJrbmV4XCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cChrbmV4OiBLbmV4KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGtuZXguc2NoZW1hLmFsdGVyVGFibGUoXCJjaXR5XCIsICh0KSA9PiB7XG4gICAgdC50ZXh0KFwicG9seWdvbl9nZW9qc29uXCIsIFwibG9uZ3RleHRcIikubnVsbGFibGUoKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb3duKGtuZXg6IEtuZXgpIHtcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcbiAgICB0LmRyb3BDb2x1bW4oXCJwb2x5Z29uX2dlb2pzb25cIik7XG4gIH0pO1xufVxuIl19
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export async function up(knex) {
|
|
2
|
-
await knex.schema.alterTable("city", (t) => {
|
|
3
|
-
t.text("districts_polygon_geojson", "longtext").nullable();
|
|
4
|
-
});
|
|
5
|
-
}
|
|
6
|
-
export async function down(knex) {
|
|
7
|
-
await knex.schema.alterTable("city", (t) => {
|
|
8
|
-
t.dropColumn("districts_polygon_geojson");
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export async function up(knex) {
|
|
2
|
+
await knex.schema.alterTable("city", (t) => {
|
|
3
|
+
t.text("districts_polygon_geojson", "longtext").nullable();
|
|
4
|
+
});
|
|
5
|
+
}
|
|
6
|
+
export async function down(knex) {
|
|
7
|
+
await knex.schema.alterTable("city", (t) => {
|
|
8
|
+
t.dropColumn("districts_polygon_geojson");
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAyNDAzMjAyMDA1MzRfZGlzdHJpY3RfcG9seWdvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYi9taWdyYXRpb25zLzIwMjQwMzIwMjAwNTM0X2Rpc3RyaWN0X3BvbHlnb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLEtBQUssVUFBVSxFQUFFLENBQUMsSUFBVTtJQUNqQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3pDLENBQUMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxJQUFJLENBQUMsSUFBVTtJQUNuQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3pDLENBQUMsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLbmV4IH0gZnJvbSBcImtuZXhcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwKGtuZXg6IEtuZXgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcbiAgICB0LnRleHQoXCJkaXN0cmljdHNfcG9seWdvbl9nZW9qc29uXCIsIFwibG9uZ3RleHRcIikubnVsbGFibGUoKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb3duKGtuZXg6IEtuZXgpIHtcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcbiAgICB0LmRyb3BDb2x1bW4oXCJkaXN0cmljdHNfcG9seWdvbl9nZW9qc29uXCIpO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { SchoolType } from "../types";
|
|
2
|
-
export async function up(knex) {
|
|
3
|
-
await knex.schema.alterTable("school", (t) => {
|
|
4
|
-
t.tinyint("type", 2).defaultTo(SchoolType.Elementary);
|
|
5
|
-
});
|
|
6
|
-
}
|
|
7
|
-
export async function down(knex) {
|
|
8
|
-
await knex.schema.alterTable("city", (t) => {
|
|
9
|
-
t.dropColumn("type");
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { SchoolType } from "../types";
|
|
2
|
+
export async function up(knex) {
|
|
3
|
+
await knex.schema.alterTable("school", (t) => {
|
|
4
|
+
t.tinyint("type", 2).defaultTo(SchoolType.Elementary);
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
export async function down(knex) {
|
|
8
|
+
await knex.schema.alterTable("city", (t) => {
|
|
9
|
+
t.dropColumn("type");
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAyNTAzMTYxNjI3MDBfa2luZGVyZ2FydGVucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYi9taWdyYXRpb25zLzIwMjUwMzE2MTYyNzAwX2tpbmRlcmdhcnRlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV0QyxNQUFNLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQyxJQUFVO0lBQ2pDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDM0MsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxJQUFVO0lBQ25DLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDekMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLbmV4IH0gZnJvbSBcImtuZXhcIjtcbmltcG9ydCB7IFNjaG9vbFR5cGUgfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwKGtuZXg6IEtuZXgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcInNjaG9vbFwiLCAodCkgPT4ge1xuICAgIHQudGlueWludChcInR5cGVcIiwgMikuZGVmYXVsdFRvKFNjaG9vbFR5cGUuRWxlbWVudGFyeSk7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bihrbmV4OiBLbmV4KSB7XG4gIGF3YWl0IGtuZXguc2NoZW1hLmFsdGVyVGFibGUoXCJjaXR5XCIsICh0KSA9PiB7XG4gICAgdC5kcm9wQ29sdW1uKFwidHlwZVwiKTtcbiAgfSk7XG59XG4iXX0=
|
package/dist/db/regions.d.ts
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
interface RegionsColumn {
|
|
2
|
-
cityName: number;
|
|
3
|
-
cityCode: number;
|
|
4
|
-
cityType: number;
|
|
5
|
-
orpName: number;
|
|
6
|
-
orpCsuCode65: number;
|
|
7
|
-
orpRuianCode: number;
|
|
8
|
-
orpCityCode: number;
|
|
9
|
-
countyName: number;
|
|
10
|
-
countyCsuCode101Lau: number;
|
|
11
|
-
countyCsuCode109Nuts: number;
|
|
12
|
-
countyRuianCode: number;
|
|
13
|
-
regionName: number;
|
|
14
|
-
regionShortName: number;
|
|
15
|
-
regionCsuCode100: number;
|
|
16
|
-
regionCsuCode108Nuts: number;
|
|
17
|
-
regionRuianCode: number;
|
|
18
|
-
}
|
|
19
|
-
export interface RegionsTableSchema {
|
|
20
|
-
tableSchema: {
|
|
21
|
-
columns: {
|
|
22
|
-
name: string;
|
|
23
|
-
}[];
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
export declare const insertRegionsAndOrps: (data: string[][], schema: RegionsTableSchema) => Promise<number>;
|
|
27
|
-
export declare const insertRegions: (buffer: string[][], columnIndex: RegionsColumn) => Promise<number>;
|
|
28
|
-
export declare const insertCounties: (buffer: string[][], columnIndex: RegionsColumn) => Promise<number>;
|
|
29
|
-
export declare const insertOrps: (buffer: string[][], columnIndex: RegionsColumn) => Promise<number>;
|
|
30
|
-
export declare const insertCities: (buffer: string[][], columnIndex: RegionsColumn) => Promise<number>;
|
|
31
|
-
export {};
|
|
1
|
+
interface RegionsColumn {
|
|
2
|
+
cityName: number;
|
|
3
|
+
cityCode: number;
|
|
4
|
+
cityType: number;
|
|
5
|
+
orpName: number;
|
|
6
|
+
orpCsuCode65: number;
|
|
7
|
+
orpRuianCode: number;
|
|
8
|
+
orpCityCode: number;
|
|
9
|
+
countyName: number;
|
|
10
|
+
countyCsuCode101Lau: number;
|
|
11
|
+
countyCsuCode109Nuts: number;
|
|
12
|
+
countyRuianCode: number;
|
|
13
|
+
regionName: number;
|
|
14
|
+
regionShortName: number;
|
|
15
|
+
regionCsuCode100: number;
|
|
16
|
+
regionCsuCode108Nuts: number;
|
|
17
|
+
regionRuianCode: number;
|
|
18
|
+
}
|
|
19
|
+
export interface RegionsTableSchema {
|
|
20
|
+
tableSchema: {
|
|
21
|
+
columns: {
|
|
22
|
+
name: string;
|
|
23
|
+
}[];
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export declare const insertRegionsAndOrps: (data: string[][], schema: RegionsTableSchema) => Promise<number>;
|
|
27
|
+
export declare const insertRegions: (buffer: string[][], columnIndex: RegionsColumn) => Promise<number>;
|
|
28
|
+
export declare const insertCounties: (buffer: string[][], columnIndex: RegionsColumn) => Promise<number>;
|
|
29
|
+
export declare const insertOrps: (buffer: string[][], columnIndex: RegionsColumn) => Promise<number>;
|
|
30
|
+
export declare const insertCities: (buffer: string[][], columnIndex: RegionsColumn) => Promise<number>;
|
|
31
|
+
export {};
|
package/dist/db/regions.js
CHANGED
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
import { extractKeyValuesPairs, getKnexDb, insertMultipleRows } from "./db";
|
|
2
|
-
export const insertRegionsAndOrps = async (data, schema) => {
|
|
3
|
-
const columnIndex = getColumnIndexFromSchema(schema);
|
|
4
|
-
let changes = 0;
|
|
5
|
-
changes += await insertRegions(data, columnIndex);
|
|
6
|
-
changes += await insertCounties(data, columnIndex);
|
|
7
|
-
changes += await insertOrps(data, columnIndex);
|
|
8
|
-
// cities are most likely already inserted, but in case they're not,
|
|
9
|
-
// we need to insert them before updating them with region data
|
|
10
|
-
changes += await insertCities(data, columnIndex);
|
|
11
|
-
const knex = getKnexDb();
|
|
12
|
-
for (const row of data) {
|
|
13
|
-
await knex
|
|
14
|
-
.from("city")
|
|
15
|
-
.update({
|
|
16
|
-
region_code: row[columnIndex.regionRuianCode],
|
|
17
|
-
county_code: row[columnIndex.countyRuianCode],
|
|
18
|
-
orp_code: row[columnIndex.orpRuianCode],
|
|
19
|
-
})
|
|
20
|
-
.where({ code: row[columnIndex.cityCode] });
|
|
21
|
-
changes++;
|
|
22
|
-
}
|
|
23
|
-
return changes;
|
|
24
|
-
};
|
|
25
|
-
export const insertRegions = async (buffer, columnIndex) => {
|
|
26
|
-
return await insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.regionRuianCode, [
|
|
27
|
-
columnIndex.regionName,
|
|
28
|
-
columnIndex.regionShortName,
|
|
29
|
-
columnIndex.regionCsuCode100,
|
|
30
|
-
columnIndex.regionCsuCode108Nuts,
|
|
31
|
-
]), "region", ["code", "name", "short_name", "csu_code_100", "csu_code_108_nuts"]);
|
|
32
|
-
};
|
|
33
|
-
export const insertCounties = async (buffer, columnIndex) => {
|
|
34
|
-
return await insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.countyRuianCode, [
|
|
35
|
-
columnIndex.countyName,
|
|
36
|
-
columnIndex.countyCsuCode101Lau,
|
|
37
|
-
columnIndex.countyCsuCode109Nuts,
|
|
38
|
-
columnIndex.regionRuianCode,
|
|
39
|
-
]), "county", ["code", "name", "csu_code_101_lau", "csu_code_109_nuts", "region_code"]);
|
|
40
|
-
};
|
|
41
|
-
export const insertOrps = async (buffer, columnIndex) => {
|
|
42
|
-
return await insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.orpRuianCode, [
|
|
43
|
-
columnIndex.orpName,
|
|
44
|
-
columnIndex.orpCsuCode65,
|
|
45
|
-
columnIndex.regionRuianCode,
|
|
46
|
-
columnIndex.countyRuianCode,
|
|
47
|
-
]), "orp", ["code", "name", "csu_code_65", "region_code", "county_code"]);
|
|
48
|
-
};
|
|
49
|
-
export const insertCities = async (buffer, columnIndex) => {
|
|
50
|
-
return await insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.cityCode, [columnIndex.cityName]), "city", ["code", "name"]);
|
|
51
|
-
};
|
|
52
|
-
const getColumnIndexFromSchema = (schema) => {
|
|
53
|
-
const names = schema.tableSchema.columns.map((column) => column.name);
|
|
54
|
-
const columnIndex = {
|
|
55
|
-
cityName: findOrDie(names, "obec_text"),
|
|
56
|
-
cityCode: findOrDie(names, "obec_kod"),
|
|
57
|
-
cityType: findOrDie(names, "obec_typ"),
|
|
58
|
-
orpName: findOrDie(names, "orp_text"),
|
|
59
|
-
orpCsuCode65: findOrDie(names, "orp_csu_cis65_kod"),
|
|
60
|
-
orpRuianCode: findOrDie(names, "orp_ruian_kod"),
|
|
61
|
-
orpCityCode: findOrDie(names, "orp_sidlo_obec_kod"),
|
|
62
|
-
countyName: findOrDie(names, "okres_text"),
|
|
63
|
-
countyCsuCode101Lau: findOrDie(names, "okres_csu_cis101_lau_kod"),
|
|
64
|
-
countyCsuCode109Nuts: findOrDie(names, "okres_csu_cis109_nuts_kod"),
|
|
65
|
-
countyRuianCode: findOrDie(names, "okres_ruian_kod"),
|
|
66
|
-
regionName: findOrDie(names, "kraj_text"),
|
|
67
|
-
regionShortName: findOrDie(names, "kraj_zkratka"),
|
|
68
|
-
regionCsuCode100: findOrDie(names, "kraj_csu_cis100_kod"),
|
|
69
|
-
regionCsuCode108Nuts: findOrDie(names, "kraj_csu_cis108_nuts_kod"),
|
|
70
|
-
regionRuianCode: findOrDie(names, "kraj_ruian_vusc_kod"),
|
|
71
|
-
};
|
|
72
|
-
return columnIndex;
|
|
73
|
-
};
|
|
74
|
-
const findOrDie = (columnNames, name) => {
|
|
75
|
-
const index = columnNames.indexOf(name);
|
|
76
|
-
if (index < 0) {
|
|
77
|
-
throw new Error(`Column '${name}' not found in region schema. Check https://data.gov.cz/datov%C3%A1-sada?iri=https%3A%2F%2Fdata.gov.cz%2Fzdroj%2Fdatov%C3%A9-sady%2F00025593%2F271b0fb7c2abb7f44e12ad57617821b2 for current dataset info or search for 'Struktura území ČR se všemi kódy území od obcí po stát dle číselníků ČSÚ, klasifikace NUTS a kódů RÚIAN.'.`);
|
|
78
|
-
}
|
|
79
|
-
return index;
|
|
80
|
-
};
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYi9yZWdpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsU0FBUyxFQUNULGtCQUFrQixFQUNuQixNQUFNLE1BQU0sQ0FBQztBQTZCZCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLEVBQ3ZDLElBQWdCLEVBQ2hCLE1BQTBCLEVBQ1QsRUFBRTtJQUNuQixNQUFNLFdBQVcsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVyRCxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDaEIsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsRCxPQUFPLElBQUksTUFBTSxjQUFjLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELE9BQU8sSUFBSSxNQUFNLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFL0Msb0VBQW9FO0lBQ3BFLCtEQUErRDtJQUMvRCxPQUFPLElBQUksTUFBTSxZQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRWpELE1BQU0sSUFBSSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBRXpCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1FBQ3RCLE1BQU0sSUFBSTthQUNQLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDWixNQUFNLENBQUM7WUFDTixXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDN0MsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQzdDLFFBQVEsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQztTQUN4QyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENB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RUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDO1FBQ25ELFVBQVUsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUMxQyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLDBCQUEwQixDQUFDO1FBQ2pFLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsMkJBQTJCLENBQUM7UUFDbkUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUM7UUFDcEQsVUFBVSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDO1FBQ3pDLGVBQWUsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQztRQUNqRCxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDO1FBQ3pELG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsMEJBQTBCLENBQUM7UUFDbEUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLENBQUM7S0FDekQsQ0FBQztJQUVGLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLE1BQU0sU0FBUyxHQUFHLENBQUMsV0FBcUIsRUFBRSxJQUFZLEVBQVUsRUFBRTtJQUNoRSxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtRQUNiLE1BQU0sSUFBSSxLQUFLLENBQ2IsV0FBVyxJQUFJLG9VQUFvVSxDQUNwVixDQUFDO0tBQ0g7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgZXh0cmFjdEtleVZhbHVlc1BhaXJzLFxyXG4gIGdldEtuZXhEYixcclxuICBpbnNlcnRNdWx0aXBsZVJvd3NcclxufSBmcm9tIFwiLi9kYlwiO1xyXG5cclxuaW50ZXJmYWNlIFJlZ2lvbnNDb2x1bW4ge1xyXG4gIGNpdHlOYW1lOiBudW1iZXI7XHJcbiAgY2l0eUNvZGU6IG51bWJlcjtcclxuICBjaXR5VHlwZTogbnVtYmVyO1xyXG4gIG9ycE5hbWU6IG51bWJlcjtcclxuICBvcnBDc3VDb2RlNjU6IG51bWJlcjtcclxuICBvcnBSdWlhbkNvZGU6IG51bWJlcjtcclxuICBvcnBDaXR5Q29kZTogbnVtYmVyO1xyXG4gIGNvdW50eU5hbWU6IG51bWJlcjtcclxuICBjb3VudHlDc3VDb2RlMTAxTGF1OiBudW1iZXI7XHJcbiAgY291bnR5Q3N1Q29kZTEwOU51dHM6IG51bWJlcjtcclxuICBjb3VudHlSdWlhbkNvZGU6IG51bWJlcjtcclxuICByZWdpb25OYW1lOiBudW1iZXI7XHJcbiAgcmVnaW9uU2hvcnROYW1lOiBudW1iZXI7XHJcbiAgcmVnaW9uQ3N1Q29kZTEwMDogbnVtYmVyO1xyXG4gIHJlZ2lvbkNzdUNvZGUxMDhOdXRzOiBudW1iZXI7XHJcbiAgcmVnaW9uUnVpYW5Db2RlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uc1RhYmxlU2NoZW1hIHtcclxuICB0YWJsZVNjaGVtYToge1xyXG4gICAgY29sdW1uczoge1xyXG4gICAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICB9W107XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydFJlZ2lvbnNBbmRPcnBzID0gYXN5bmMgKFxyXG4gIGRhdGE6IHN0cmluZ1tdW10sXHJcbiAgc2NoZW1hOiBSZWdpb25zVGFibGVTY2hlbWFcclxuKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcclxuICBjb25zdCBjb2x1bW5JbmRleCA9IGdldENvbHVtbkluZGV4RnJvbVNjaGVtYShzY2hlbWEpO1xyXG5cclxuICBsZXQgY2hhbmdlcyA9IDA7XHJcbiAgY2hhbmdlcyArPSBhd2FpdCBpbnNlcnRSZWdpb25zKGRhdGEsIGNvbHVtbkluZGV4KTtcclxuICBjaGFuZ2VzICs9IGF3YWl0IGluc2VydENvdW50aWVzKGRhdGEsIGNvbHVtbkluZGV4KTtcclxuICBjaGFuZ2VzICs9IGF3YWl0IGluc2VydE9ycHMoZGF0YSwgY29sdW1uSW5kZXgpO1xyXG5cclxuICAvLyBjaXRpZXMgYXJlIG1vc3QgbGlrZWx5IGFscmVhZHkgaW5zZXJ0ZWQsIGJ1dCBpbiBjYXNlIHRoZXkncmUgbm90LFxyXG4gIC8vIHdlIG5lZWQgdG8gaW5zZXJ0IHRoZW0gYmVmb3JlIHVwZGF0aW5nIHRoZW0gd2l0aCByZWdpb24gZGF0YVxyXG4gIGNoYW5nZXMgKz0gYXdhaXQgaW5zZXJ0Q2l0aWVzKGRhdGEsIGNvbHVtbkluZGV4KTtcclxuXHJcbiAgY29uc3Qga25leCA9IGdldEtuZXhEYigpO1xyXG5cclxuICBmb3IgKGNvbnN0IHJvdyBvZiBkYXRhKSB7XHJcbiAgICBhd2FpdCBrbmV4XHJcbiAgICAgIC5mcm9tKFwiY2l0eVwiKVxyXG4gICAgICAudXBkYXRlKHtcclxuICAgICAgICByZWdpb25fY29kZTogcm93W2NvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZV0sXHJcbiAgICAgICAgY291bnR5X2NvZGU6IHJvd1tjb2x1bW5JbmRleC5jb3VudHlSdWlhbkNvZGVdLFxyXG4gICAgICAgIG9ycF9jb2RlOiByb3dbY29sdW1uSW5kZXgub3JwUnVpYW5Db2RlXSxcclxuICAgICAgfSlcclxuICAgICAgLndoZXJlKHsgY29kZTogcm93W2NvbHVtbkluZGV4LmNpdHlDb2RlXSB9KTtcclxuICAgIGNoYW5nZXMrKztcclxuICB9XHJcblxyXG4gIHJldHVybiBjaGFuZ2VzO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydFJlZ2lvbnMgPSBhc3luYyAoXHJcbiAgYnVmZmVyOiBzdHJpbmdbXVtdLFxyXG4gIGNvbHVtbkluZGV4OiBSZWdpb25zQ29sdW1uXHJcbik6IFByb21pc2U8bnVtYmVyPiA9PiB7XHJcbiAgcmV0dXJuIGF3YWl0IGluc2VydE11bHRpcGxlUm93cyhcclxuICAgIGV4dHJhY3RLZXlWYWx1ZXNQYWlycyhidWZmZXIsIGNvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZSwgW1xyXG4gICAgICBjb2x1bW5JbmRleC5yZWdpb25OYW1lLFxyXG4gICAgICBjb2x1bW5JbmRleC5yZWdpb25TaG9ydE5hbWUsXHJcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvbkNzdUNvZGUxMDAsXHJcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvbkNzdUNvZGUxMDhOdXRzLFxyXG4gICAgXSksXHJcbiAgICBcInJlZ2lvblwiLFxyXG4gICAgW1wiY29kZVwiLCBcIm5hbWVcIiwgXCJzaG9ydF9uYW1lXCIsIFwiY3N1X2NvZGVfMTAwXCIsIFwiY3N1X2NvZGVfMTA4X251dHNcIl1cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydENvdW50aWVzID0gYXN5bmMgKFxyXG4gIGJ1ZmZlcjogc3RyaW5nW11bXSxcclxuICBjb2x1bW5JbmRleDogUmVnaW9uc0NvbHVtblxyXG4pOiBQcm9taXNlPG51bWJlcj4gPT4ge1xyXG4gIHJldHVybiBhd2FpdCBpbnNlcnRNdWx0aXBsZVJvd3MoXHJcbiAgICBleHRyYWN0S2V5VmFsdWVzUGFpcnMoYnVmZmVyLCBjb2x1bW5JbmRleC5jb3VudHlSdWlhbkNvZGUsIFtcclxuICAgICAgY29sdW1uSW5kZXguY291bnR5TmFtZSxcclxuICAgICAgY29sdW1uSW5kZXguY291bnR5Q3N1Q29kZTEwMUxhdSxcclxuICAgICAgY29sdW1uSW5kZXguY291bnR5Q3N1Q29kZTEwOU51dHMsXHJcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZSxcclxuICAgIF0pLFxyXG4gICAgXCJjb3VudHlcIixcclxuICAgIFtcImNvZGVcIiwgXCJuYW1lXCIsIFwiY3N1X2NvZGVfMTAxX2xhdVwiLCBcImNzdV9jb2RlXzEwOV9udXRzXCIsIFwicmVnaW9uX2NvZGVcIl1cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydE9ycHMgPSBhc3luYyAoXHJcbiAgYnVmZmVyOiBzdHJpbmdbXVtdLFxyXG4gIGNvbHVtbkluZGV4OiBSZWdpb25zQ29sdW1uXHJcbik6IFByb21pc2U8bnVtYmVyPiA9PiB7XHJcbiAgcmV0dXJuIGF3YWl0IGluc2VydE11bHRpcGxlUm93cyhcclxuICAgIGV4dHJhY3RLZXlWYWx1ZXNQYWlycyhidWZmZXIsIGNvbHVtbkluZGV4Lm9ycFJ1aWFuQ29kZSwgW1xyXG4gICAgICBjb2x1bW5JbmRleC5vcnBOYW1lLFxyXG4gICAgICBjb2x1bW5JbmRleC5vcnBDc3VDb2RlNjUsXHJcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZSxcclxuICAgICAgY29sdW1uSW5kZXguY291bnR5UnVpYW5Db2RlLFxyXG4gICAgXSksXHJcbiAgICBcIm9ycFwiLFxyXG4gICAgW1wiY29kZVwiLCBcIm5hbWVcIiwgXCJjc3VfY29kZV82NVwiLCBcInJlZ2lvbl9jb2RlXCIsIFwiY291bnR5X2NvZGVcIl1cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydENpdGllcyA9IGFzeW5jIChcclxuICBidWZmZXI6IHN0cmluZ1tdW10sXHJcbiAgY29sdW1uSW5kZXg6IFJlZ2lvbnNDb2x1bW5cclxuKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcclxuICByZXR1cm4gYXdhaXQgaW5zZXJ0TXVsdGlwbGVSb3dzKFxyXG4gICAgZXh0cmFjdEtleVZhbHVlc1BhaXJzKGJ1ZmZlciwgY29sdW1uSW5kZXguY2l0eUNvZGUsIFtjb2x1bW5JbmRleC5jaXR5TmFtZV0pLFxyXG4gICAgXCJjaXR5XCIsXHJcbiAgICBbXCJjb2RlXCIsIFwibmFtZVwiXVxyXG4gICk7XHJcbn07XHJcblxyXG5jb25zdCBnZXRDb2x1bW5JbmRleEZyb21TY2hlbWEgPSAoXHJcbiAgc2NoZW1hOiBSZWdpb25zVGFibGVTY2hlbWFcclxuKTogUmVnaW9uc0NvbHVtbiA9PiB7XHJcbiAgY29uc3QgbmFtZXMgPSBzY2hlbWEudGFibGVTY2hlbWEuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLm5hbWUpO1xyXG5cclxuICBjb25zdCBjb2x1bW5JbmRleDogUmVnaW9uc0NvbHVtbiA9IHtcclxuICAgIGNpdHlOYW1lOiBmaW5kT3JEaWUobmFtZXMsIFwib2JlY190ZXh0XCIpLFxyXG4gICAgY2l0eUNvZGU6IGZpbmRPckRpZShuYW1lcywgXCJvYmVjX2tvZFwiKSxcclxuICAgIGNpdHlUeXBlOiBmaW5kT3JEaWUobmFtZXMsIFwib2JlY190eXBcIiksXHJcbiAgICBvcnBOYW1lOiBmaW5kT3JEaWUobmFtZXMsIFwib3JwX3RleHRcIiksXHJcbiAgICBvcnBDc3VDb2RlNjU6IGZpbmRPckRpZShuYW1lcywgXCJvcnBfY3N1X2NpczY1X2tvZFwiKSxcclxuICAgIG9ycFJ1aWFuQ29kZTogZmluZE9yRGllKG5hbWVzLCBcIm9ycF9ydWlhbl9rb2RcIiksXHJcbiAgICBvcnBDaXR5Q29kZTogZmluZE9yRGllKG5hbWVzLCBcIm9ycF9zaWRsb19vYmVjX2tvZFwiKSxcclxuICAgIGNvdW50eU5hbWU6IGZpbmRPckRpZShuYW1lcywgXCJva3Jlc190ZXh0XCIpLFxyXG4gICAgY291bnR5Q3N1Q29kZTEwMUxhdTogZmluZE9yRGllKG5hbWVzLCBcIm9rcmVzX2NzdV9jaXMxMDFfbGF1X2tvZFwiKSxcclxuICAgIGNvdW50eUNzdUNvZGUxMDlOdXRzOiBmaW5kT3JEaWUobmFtZXMsIFwib2tyZXNfY3N1X2NpczEwOV9udXRzX2tvZFwiKSxcclxuICAgIGNvdW50eVJ1aWFuQ29kZTogZmluZE9yRGllKG5hbWVzLCBcIm9rcmVzX3J1aWFuX2tvZFwiKSxcclxuICAgIHJlZ2lvbk5hbWU6IGZpbmRPckRpZShuYW1lcywgXCJrcmFqX3RleHRcIiksXHJcbiAgICByZWdpb25TaG9ydE5hbWU6IGZpbmRPckRpZShuYW1lcywgXCJrcmFqX3prcmF0a2FcIiksXHJcbiAgICByZWdpb25Dc3VDb2RlMTAwOiBmaW5kT3JEaWUobmFtZXMsIFwia3Jhal9jc3VfY2lzMTAwX2tvZFwiKSxcclxuICAgIHJlZ2lvbkNzdUNvZGUxMDhOdXRzOiBmaW5kT3JEaWUobmFtZXMsIFwia3Jhal9jc3VfY2lzMTA4X251dHNfa29kXCIpLFxyXG4gICAgcmVnaW9uUnVpYW5Db2RlOiBmaW5kT3JEaWUobmFtZXMsIFwia3Jhal9ydWlhbl92dXNjX2tvZFwiKSxcclxuICB9O1xyXG5cclxuICByZXR1cm4gY29sdW1uSW5kZXg7XHJcbn07XHJcblxyXG5jb25zdCBmaW5kT3JEaWUgPSAoY29sdW1uTmFtZXM6IHN0cmluZ1tdLCBuYW1lOiBzdHJpbmcpOiBudW1iZXIgPT4ge1xyXG4gIGNvbnN0IGluZGV4ID0gY29sdW1uTmFtZXMuaW5kZXhPZihuYW1lKTtcclxuICBpZiAoaW5kZXggPCAwKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgIGBDb2x1bW4gJyR7bmFtZX0nIG5vdCBmb3VuZCBpbiByZWdpb24gc2NoZW1hLiBDaGVjayBodHRwczovL2RhdGEuZ292LmN6L2RhdG92JUMzJUExLXNhZGE/aXJpPWh0dHBzJTNBJTJGJTJGZGF0YS5nb3YuY3olMkZ6ZHJvaiUyRmRhdG92JUMzJUE5LXNhZHklMkYwMDAyNTU5MyUyRjI3MWIwZmI3YzJhYmI3ZjQ0ZTEyYWQ1NzYxNzgyMWIyIGZvciBjdXJyZW50IGRhdGFzZXQgaW5mbyBvciBzZWFyY2ggZm9yICdTdHJ1a3R1cmEgw7p6ZW3DrSDEjFIgc2UgdsWhZW1pIGvDs2R5IMO6emVtw60gb2Qgb2Jjw60gcG8gc3TDoXQgZGxlIMSNw61zZWxuw61rxa8gxIxTw5osIGtsYXNpZmlrYWNlIE5VVFMgYSBrw7Nkxa8gUsOaSUFOLicuYFxyXG4gICAgKTtcclxuICB9XHJcbiAgcmV0dXJuIGluZGV4O1xyXG59O1xyXG4iXX0=
|
|
1
|
+
import { extractKeyValuesPairs, getKnexDb, insertMultipleRows } from "./db";
|
|
2
|
+
export const insertRegionsAndOrps = async (data, schema) => {
|
|
3
|
+
const columnIndex = getColumnIndexFromSchema(schema);
|
|
4
|
+
let changes = 0;
|
|
5
|
+
changes += await insertRegions(data, columnIndex);
|
|
6
|
+
changes += await insertCounties(data, columnIndex);
|
|
7
|
+
changes += await insertOrps(data, columnIndex);
|
|
8
|
+
// cities are most likely already inserted, but in case they're not,
|
|
9
|
+
// we need to insert them before updating them with region data
|
|
10
|
+
changes += await insertCities(data, columnIndex);
|
|
11
|
+
const knex = getKnexDb();
|
|
12
|
+
for (const row of data) {
|
|
13
|
+
await knex
|
|
14
|
+
.from("city")
|
|
15
|
+
.update({
|
|
16
|
+
region_code: row[columnIndex.regionRuianCode],
|
|
17
|
+
county_code: row[columnIndex.countyRuianCode],
|
|
18
|
+
orp_code: row[columnIndex.orpRuianCode],
|
|
19
|
+
})
|
|
20
|
+
.where({ code: row[columnIndex.cityCode] });
|
|
21
|
+
changes++;
|
|
22
|
+
}
|
|
23
|
+
return changes;
|
|
24
|
+
};
|
|
25
|
+
export const insertRegions = async (buffer, columnIndex) => {
|
|
26
|
+
return await insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.regionRuianCode, [
|
|
27
|
+
columnIndex.regionName,
|
|
28
|
+
columnIndex.regionShortName,
|
|
29
|
+
columnIndex.regionCsuCode100,
|
|
30
|
+
columnIndex.regionCsuCode108Nuts,
|
|
31
|
+
]), "region", ["code", "name", "short_name", "csu_code_100", "csu_code_108_nuts"]);
|
|
32
|
+
};
|
|
33
|
+
export const insertCounties = async (buffer, columnIndex) => {
|
|
34
|
+
return await insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.countyRuianCode, [
|
|
35
|
+
columnIndex.countyName,
|
|
36
|
+
columnIndex.countyCsuCode101Lau,
|
|
37
|
+
columnIndex.countyCsuCode109Nuts,
|
|
38
|
+
columnIndex.regionRuianCode,
|
|
39
|
+
]), "county", ["code", "name", "csu_code_101_lau", "csu_code_109_nuts", "region_code"]);
|
|
40
|
+
};
|
|
41
|
+
export const insertOrps = async (buffer, columnIndex) => {
|
|
42
|
+
return await insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.orpRuianCode, [
|
|
43
|
+
columnIndex.orpName,
|
|
44
|
+
columnIndex.orpCsuCode65,
|
|
45
|
+
columnIndex.regionRuianCode,
|
|
46
|
+
columnIndex.countyRuianCode,
|
|
47
|
+
]), "orp", ["code", "name", "csu_code_65", "region_code", "county_code"]);
|
|
48
|
+
};
|
|
49
|
+
export const insertCities = async (buffer, columnIndex) => {
|
|
50
|
+
return await insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.cityCode, [columnIndex.cityName]), "city", ["code", "name"]);
|
|
51
|
+
};
|
|
52
|
+
const getColumnIndexFromSchema = (schema) => {
|
|
53
|
+
const names = schema.tableSchema.columns.map((column) => column.name);
|
|
54
|
+
const columnIndex = {
|
|
55
|
+
cityName: findOrDie(names, "obec_text"),
|
|
56
|
+
cityCode: findOrDie(names, "obec_kod"),
|
|
57
|
+
cityType: findOrDie(names, "obec_typ"),
|
|
58
|
+
orpName: findOrDie(names, "orp_text"),
|
|
59
|
+
orpCsuCode65: findOrDie(names, "orp_csu_cis65_kod"),
|
|
60
|
+
orpRuianCode: findOrDie(names, "orp_ruian_kod"),
|
|
61
|
+
orpCityCode: findOrDie(names, "orp_sidlo_obec_kod"),
|
|
62
|
+
countyName: findOrDie(names, "okres_text"),
|
|
63
|
+
countyCsuCode101Lau: findOrDie(names, "okres_csu_cis101_lau_kod"),
|
|
64
|
+
countyCsuCode109Nuts: findOrDie(names, "okres_csu_cis109_nuts_kod"),
|
|
65
|
+
countyRuianCode: findOrDie(names, "okres_ruian_kod"),
|
|
66
|
+
regionName: findOrDie(names, "kraj_text"),
|
|
67
|
+
regionShortName: findOrDie(names, "kraj_zkratka"),
|
|
68
|
+
regionCsuCode100: findOrDie(names, "kraj_csu_cis100_kod"),
|
|
69
|
+
regionCsuCode108Nuts: findOrDie(names, "kraj_csu_cis108_nuts_kod"),
|
|
70
|
+
regionRuianCode: findOrDie(names, "kraj_ruian_vusc_kod"),
|
|
71
|
+
};
|
|
72
|
+
return columnIndex;
|
|
73
|
+
};
|
|
74
|
+
const findOrDie = (columnNames, name) => {
|
|
75
|
+
const index = columnNames.indexOf(name);
|
|
76
|
+
if (index < 0) {
|
|
77
|
+
throw new Error(`Column '${name}' not found in region schema. Check https://data.gov.cz/datov%C3%A1-sada?iri=https%3A%2F%2Fdata.gov.cz%2Fzdroj%2Fdatov%C3%A9-sady%2F00025593%2F271b0fb7c2abb7f44e12ad57617821b2 for current dataset info or search for 'Struktura území ČR se všemi kódy území od obcí po stát dle číselníků ČSÚ, klasifikace NUTS a kódů RÚIAN.'.`);
|
|
78
|
+
}
|
|
79
|
+
return index;
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYi9yZWdpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsU0FBUyxFQUNULGtCQUFrQixFQUNuQixNQUFNLE1BQU0sQ0FBQztBQTZCZCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLEVBQ3ZDLElBQWdCLEVBQ2hCLE1BQTBCLEVBQ1QsRUFBRTtJQUNuQixNQUFNLFdBQVcsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVyRCxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDaEIsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsRCxPQUFPLElBQUksTUFBTSxjQUFjLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELE9BQU8sSUFBSSxNQUFNLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFL0Msb0VBQW9FO0lBQ3BFLCtEQUErRDtJQUMvRCxPQUFPLElBQUksTUFBTSxZQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRWpELE1BQU0sSUFBSSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBRXpCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1FBQ3RCLE1BQU0sSUFBSTthQUNQLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDWixNQUFNLENBQUM7WUFDTixXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDN0MsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQzdDLFFBQVEsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQztTQUN4QyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENB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RUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDO1FBQ25ELFVBQVUsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUMxQyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLDBCQUEwQixDQUFDO1FBQ2pFLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsMkJBQTJCLENBQUM7UUFDbkUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUM7UUFDcEQsVUFBVSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDO1FBQ3pDLGVBQWUsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQztRQUNqRCxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDO1FBQ3pELG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsMEJBQTBCLENBQUM7UUFDbEUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLENBQUM7S0FDekQsQ0FBQztJQUVGLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLE1BQU0sU0FBUyxHQUFHLENBQUMsV0FBcUIsRUFBRSxJQUFZLEVBQVUsRUFBRTtJQUNoRSxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtRQUNiLE1BQU0sSUFBSSxLQUFLLENBQ2IsV0FBVyxJQUFJLG9VQUFvVSxDQUNwVixDQUFDO0tBQ0g7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGV4dHJhY3RLZXlWYWx1ZXNQYWlycyxcbiAgZ2V0S25leERiLFxuICBpbnNlcnRNdWx0aXBsZVJvd3Ncbn0gZnJvbSBcIi4vZGJcIjtcblxuaW50ZXJmYWNlIFJlZ2lvbnNDb2x1bW4ge1xuICBjaXR5TmFtZTogbnVtYmVyO1xuICBjaXR5Q29kZTogbnVtYmVyO1xuICBjaXR5VHlwZTogbnVtYmVyO1xuICBvcnBOYW1lOiBudW1iZXI7XG4gIG9ycENzdUNvZGU2NTogbnVtYmVyO1xuICBvcnBSdWlhbkNvZGU6IG51bWJlcjtcbiAgb3JwQ2l0eUNvZGU6IG51bWJlcjtcbiAgY291bnR5TmFtZTogbnVtYmVyO1xuICBjb3VudHlDc3VDb2RlMTAxTGF1OiBudW1iZXI7XG4gIGNvdW50eUNzdUNvZGUxMDlOdXRzOiBudW1iZXI7XG4gIGNvdW50eVJ1aWFuQ29kZTogbnVtYmVyO1xuICByZWdpb25OYW1lOiBudW1iZXI7XG4gIHJlZ2lvblNob3J0TmFtZTogbnVtYmVyO1xuICByZWdpb25Dc3VDb2RlMTAwOiBudW1iZXI7XG4gIHJlZ2lvbkNzdUNvZGUxMDhOdXRzOiBudW1iZXI7XG4gIHJlZ2lvblJ1aWFuQ29kZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lvbnNUYWJsZVNjaGVtYSB7XG4gIHRhYmxlU2NoZW1hOiB7XG4gICAgY29sdW1uczoge1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH1bXTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGluc2VydFJlZ2lvbnNBbmRPcnBzID0gYXN5bmMgKFxuICBkYXRhOiBzdHJpbmdbXVtdLFxuICBzY2hlbWE6IFJlZ2lvbnNUYWJsZVNjaGVtYVxuKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgY29uc3QgY29sdW1uSW5kZXggPSBnZXRDb2x1bW5JbmRleEZyb21TY2hlbWEoc2NoZW1hKTtcblxuICBsZXQgY2hhbmdlcyA9IDA7XG4gIGNoYW5nZXMgKz0gYXdhaXQgaW5zZXJ0UmVnaW9ucyhkYXRhLCBjb2x1bW5JbmRleCk7XG4gIGNoYW5nZXMgKz0gYXdhaXQgaW5zZXJ0Q291bnRpZXMoZGF0YSwgY29sdW1uSW5kZXgpO1xuICBjaGFuZ2VzICs9IGF3YWl0IGluc2VydE9ycHMoZGF0YSwgY29sdW1uSW5kZXgpO1xuXG4gIC8vIGNpdGllcyBhcmUgbW9zdCBsaWtlbHkgYWxyZWFkeSBpbnNlcnRlZCwgYnV0IGluIGNhc2UgdGhleSdyZSBub3QsXG4gIC8vIHdlIG5lZWQgdG8gaW5zZXJ0IHRoZW0gYmVmb3JlIHVwZGF0aW5nIHRoZW0gd2l0aCByZWdpb24gZGF0YVxuICBjaGFuZ2VzICs9IGF3YWl0IGluc2VydENpdGllcyhkYXRhLCBjb2x1bW5JbmRleCk7XG5cbiAgY29uc3Qga25leCA9IGdldEtuZXhEYigpO1xuXG4gIGZvciAoY29uc3Qgcm93IG9mIGRhdGEpIHtcbiAgICBhd2FpdCBrbmV4XG4gICAgICAuZnJvbShcImNpdHlcIilcbiAgICAgIC51cGRhdGUoe1xuICAgICAgICByZWdpb25fY29kZTogcm93W2NvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZV0sXG4gICAgICAgIGNvdW50eV9jb2RlOiByb3dbY29sdW1uSW5kZXguY291bnR5UnVpYW5Db2RlXSxcbiAgICAgICAgb3JwX2NvZGU6IHJvd1tjb2x1bW5JbmRleC5vcnBSdWlhbkNvZGVdLFxuICAgICAgfSlcbiAgICAgIC53aGVyZSh7IGNvZGU6IHJvd1tjb2x1bW5JbmRleC5jaXR5Q29kZV0gfSk7XG4gICAgY2hhbmdlcysrO1xuICB9XG5cbiAgcmV0dXJuIGNoYW5nZXM7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0UmVnaW9ucyA9IGFzeW5jIChcbiAgYnVmZmVyOiBzdHJpbmdbXVtdLFxuICBjb2x1bW5JbmRleDogUmVnaW9uc0NvbHVtblxuKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgcmV0dXJuIGF3YWl0IGluc2VydE11bHRpcGxlUm93cyhcbiAgICBleHRyYWN0S2V5VmFsdWVzUGFpcnMoYnVmZmVyLCBjb2x1bW5JbmRleC5yZWdpb25SdWlhbkNvZGUsIFtcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvbk5hbWUsXG4gICAgICBjb2x1bW5JbmRleC5yZWdpb25TaG9ydE5hbWUsXG4gICAgICBjb2x1bW5JbmRleC5yZWdpb25Dc3VDb2RlMTAwLFxuICAgICAgY29sdW1uSW5kZXgucmVnaW9uQ3N1Q29kZTEwOE51dHMsXG4gICAgXSksXG4gICAgXCJyZWdpb25cIixcbiAgICBbXCJjb2RlXCIsIFwibmFtZVwiLCBcInNob3J0X25hbWVcIiwgXCJjc3VfY29kZV8xMDBcIiwgXCJjc3VfY29kZV8xMDhfbnV0c1wiXVxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGluc2VydENvdW50aWVzID0gYXN5bmMgKFxuICBidWZmZXI6IHN0cmluZ1tdW10sXG4gIGNvbHVtbkluZGV4OiBSZWdpb25zQ29sdW1uXG4pOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICByZXR1cm4gYXdhaXQgaW5zZXJ0TXVsdGlwbGVSb3dzKFxuICAgIGV4dHJhY3RLZXlWYWx1ZXNQYWlycyhidWZmZXIsIGNvbHVtbkluZGV4LmNvdW50eVJ1aWFuQ29kZSwgW1xuICAgICAgY29sdW1uSW5kZXguY291bnR5TmFtZSxcbiAgICAgIGNvbHVtbkluZGV4LmNvdW50eUNzdUNvZGUxMDFMYXUsXG4gICAgICBjb2x1bW5JbmRleC5jb3VudHlDc3VDb2RlMTA5TnV0cyxcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZSxcbiAgICBdKSxcbiAgICBcImNvdW50eVwiLFxuICAgIFtcImNvZGVcIiwgXCJuYW1lXCIsIFwiY3N1X2NvZGVfMTAxX2xhdVwiLCBcImNzdV9jb2RlXzEwOV9udXRzXCIsIFwicmVnaW9uX2NvZGVcIl1cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRPcnBzID0gYXN5bmMgKFxuICBidWZmZXI6IHN0cmluZ1tdW10sXG4gIGNvbHVtbkluZGV4OiBSZWdpb25zQ29sdW1uXG4pOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICByZXR1cm4gYXdhaXQgaW5zZXJ0TXVsdGlwbGVSb3dzKFxuICAgIGV4dHJhY3RLZXlWYWx1ZXNQYWlycyhidWZmZXIsIGNvbHVtbkluZGV4Lm9ycFJ1aWFuQ29kZSwgW1xuICAgICAgY29sdW1uSW5kZXgub3JwTmFtZSxcbiAgICAgIGNvbHVtbkluZGV4Lm9ycENzdUNvZGU2NSxcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZSxcbiAgICAgIGNvbHVtbkluZGV4LmNvdW50eVJ1aWFuQ29kZSxcbiAgICBdKSxcbiAgICBcIm9ycFwiLFxuICAgIFtcImNvZGVcIiwgXCJuYW1lXCIsIFwiY3N1X2NvZGVfNjVcIiwgXCJyZWdpb25fY29kZVwiLCBcImNvdW50eV9jb2RlXCJdXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0Q2l0aWVzID0gYXN5bmMgKFxuICBidWZmZXI6IHN0cmluZ1tdW10sXG4gIGNvbHVtbkluZGV4OiBSZWdpb25zQ29sdW1uXG4pOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICByZXR1cm4gYXdhaXQgaW5zZXJ0TXVsdGlwbGVSb3dzKFxuICAgIGV4dHJhY3RLZXlWYWx1ZXNQYWlycyhidWZmZXIsIGNvbHVtbkluZGV4LmNpdHlDb2RlLCBbY29sdW1uSW5kZXguY2l0eU5hbWVdKSxcbiAgICBcImNpdHlcIixcbiAgICBbXCJjb2RlXCIsIFwibmFtZVwiXVxuICApO1xufTtcblxuY29uc3QgZ2V0Q29sdW1uSW5kZXhGcm9tU2NoZW1hID0gKFxuICBzY2hlbWE6IFJlZ2lvbnNUYWJsZVNjaGVtYVxuKTogUmVnaW9uc0NvbHVtbiA9PiB7XG4gIGNvbnN0IG5hbWVzID0gc2NoZW1hLnRhYmxlU2NoZW1hLmNvbHVtbnMubWFwKChjb2x1bW4pID0+IGNvbHVtbi5uYW1lKTtcblxuICBjb25zdCBjb2x1bW5JbmRleDogUmVnaW9uc0NvbHVtbiA9IHtcbiAgICBjaXR5TmFtZTogZmluZE9yRGllKG5hbWVzLCBcIm9iZWNfdGV4dFwiKSxcbiAgICBjaXR5Q29kZTogZmluZE9yRGllKG5hbWVzLCBcIm9iZWNfa29kXCIpLFxuICAgIGNpdHlUeXBlOiBmaW5kT3JEaWUobmFtZXMsIFwib2JlY190eXBcIiksXG4gICAgb3JwTmFtZTogZmluZE9yRGllKG5hbWVzLCBcIm9ycF90ZXh0XCIpLFxuICAgIG9ycENzdUNvZGU2NTogZmluZE9yRGllKG5hbWVzLCBcIm9ycF9jc3VfY2lzNjVfa29kXCIpLFxuICAgIG9ycFJ1aWFuQ29kZTogZmluZE9yRGllKG5hbWVzLCBcIm9ycF9ydWlhbl9rb2RcIiksXG4gICAgb3JwQ2l0eUNvZGU6IGZpbmRPckRpZShuYW1lcywgXCJvcnBfc2lkbG9fb2JlY19rb2RcIiksXG4gICAgY291bnR5TmFtZTogZmluZE9yRGllKG5hbWVzLCBcIm9rcmVzX3RleHRcIiksXG4gICAgY291bnR5Q3N1Q29kZTEwMUxhdTogZmluZE9yRGllKG5hbWVzLCBcIm9rcmVzX2NzdV9jaXMxMDFfbGF1X2tvZFwiKSxcbiAgICBjb3VudHlDc3VDb2RlMTA5TnV0czogZmluZE9yRGllKG5hbWVzLCBcIm9rcmVzX2NzdV9jaXMxMDlfbnV0c19rb2RcIiksXG4gICAgY291bnR5UnVpYW5Db2RlOiBmaW5kT3JEaWUobmFtZXMsIFwib2tyZXNfcnVpYW5fa29kXCIpLFxuICAgIHJlZ2lvbk5hbWU6IGZpbmRPckRpZShuYW1lcywgXCJrcmFqX3RleHRcIiksXG4gICAgcmVnaW9uU2hvcnROYW1lOiBmaW5kT3JEaWUobmFtZXMsIFwia3Jhal96a3JhdGthXCIpLFxuICAgIHJlZ2lvbkNzdUNvZGUxMDA6IGZpbmRPckRpZShuYW1lcywgXCJrcmFqX2NzdV9jaXMxMDBfa29kXCIpLFxuICAgIHJlZ2lvbkNzdUNvZGUxMDhOdXRzOiBmaW5kT3JEaWUobmFtZXMsIFwia3Jhal9jc3VfY2lzMTA4X251dHNfa29kXCIpLFxuICAgIHJlZ2lvblJ1aWFuQ29kZTogZmluZE9yRGllKG5hbWVzLCBcImtyYWpfcnVpYW5fdnVzY19rb2RcIiksXG4gIH07XG5cbiAgcmV0dXJuIGNvbHVtbkluZGV4O1xufTtcblxuY29uc3QgZmluZE9yRGllID0gKGNvbHVtbk5hbWVzOiBzdHJpbmdbXSwgbmFtZTogc3RyaW5nKTogbnVtYmVyID0+IHtcbiAgY29uc3QgaW5kZXggPSBjb2x1bW5OYW1lcy5pbmRleE9mKG5hbWUpO1xuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENvbHVtbiAnJHtuYW1lfScgbm90IGZvdW5kIGluIHJlZ2lvbiBzY2hlbWEuIENoZWNrIGh0dHBzOi8vZGF0YS5nb3YuY3ovZGF0b3YlQzMlQTEtc2FkYT9pcmk9aHR0cHMlM0ElMkYlMkZkYXRhLmdvdi5jeiUyRnpkcm9qJTJGZGF0b3YlQzMlQTktc2FkeSUyRjAwMDI1NTkzJTJGMjcxYjBmYjdjMmFiYjdmNDRlMTJhZDU3NjE3ODIxYjIgZm9yIGN1cnJlbnQgZGF0YXNldCBpbmZvIG9yIHNlYXJjaCBmb3IgJ1N0cnVrdHVyYSDDunplbcOtIMSMUiBzZSB2xaFlbWkga8OzZHkgw7p6ZW3DrSBvZCBvYmPDrSBwbyBzdMOhdCBkbGUgxI3DrXNlbG7DrWvFryDEjFPDmiwga2xhc2lmaWthY2UgTlVUUyBhIGvDs2TFryBSw5pJQU4uJy5gXG4gICAgKTtcbiAgfVxuICByZXR1cm4gaW5kZXg7XG59O1xuIl19
|
package/dist/db/schools.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SmdError } from "../street-markdown/types";
|
|
2
|
-
import { School } from "./types";
|
|
3
|
-
export declare const insertSchools: (schools: School[]) => Promise<number>;
|
|
4
|
-
export declare const findSchool: (name: string, schools: School[], maxDistance?: number) => {
|
|
5
|
-
school: School | null;
|
|
6
|
-
errors: SmdError[];
|
|
7
|
-
};
|
|
1
|
+
import { SmdError } from "../street-markdown/types";
|
|
2
|
+
import { School } from "./types";
|
|
3
|
+
export declare const insertSchools: (schools: School[]) => Promise<number>;
|
|
4
|
+
export declare const findSchool: (name: string, schools: School[], maxDistance?: number) => {
|
|
5
|
+
school: School | null;
|
|
6
|
+
errors: SmdError[];
|
|
7
|
+
};
|