text-to-map 1.1.29 → 1.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/bin/clear-all.js +8 -19
  2. package/dist/bin/init-db.js +5 -16
  3. package/dist/bin/knex.js +6 -17
  4. package/dist/bin/parse-ordinance.js +60 -71
  5. package/dist/bin/polygons.js +22 -33
  6. package/dist/db/address-points.js +43 -54
  7. package/dist/db/cities.js +25 -31
  8. package/dist/db/db.js +24 -33
  9. package/dist/db/founders.js +101 -89
  10. package/dist/db/meta.js +12 -21
  11. package/dist/db/migrations/20230704125715_initial.js +291 -304
  12. package/dist/db/migrations/20230731232915_city_positions.js +9 -22
  13. package/dist/db/migrations/20240106224603_city_polygon.js +7 -20
  14. package/dist/db/migrations/20240320200534_district_polygon.js +7 -20
  15. package/dist/db/migrations/20240729211323_ordinance_city.js +11 -0
  16. package/dist/db/regions.js +20 -29
  17. package/dist/db/schools.d.ts +1 -1
  18. package/dist/db/schools.js +18 -24
  19. package/dist/db/street-sync.js +13 -22
  20. package/dist/db/sync-log.js +25 -34
  21. package/dist/index.js +10 -21
  22. package/dist/open-data-sync/address-points.js +21 -30
  23. package/dist/open-data-sync/cities.js +10 -19
  24. package/dist/open-data-sync/common.js +8 -17
  25. package/dist/open-data-sync/regions.js +13 -22
  26. package/dist/open-data-sync/schools.js +20 -29
  27. package/dist/open-data-sync/streets.js +29 -35
  28. package/dist/smd-to-csv/ordinance-to-csv-rules.js +4 -13
  29. package/dist/smd-to-csv/txt-to-json.js +59 -70
  30. package/dist/street-markdown/municipality.js +26 -29
  31. package/dist/street-markdown/polygons.d.ts +4 -4
  32. package/dist/street-markdown/polygons.js +123 -70
  33. package/dist/street-markdown/smd-line-parser.js +6 -9
  34. package/dist/street-markdown/smd-parser.js +2 -3
  35. package/dist/street-markdown/smd.d.ts +7 -1
  36. package/dist/street-markdown/smd.js +180 -154
  37. package/dist/street-markdown/types.d.ts +19 -12
  38. package/dist/street-markdown/types.js +1 -1
  39. package/dist/utils/atom.js +9 -18
  40. package/dist/utils/helpers.d.ts +1 -1
  41. package/dist/utils/helpers.js +10 -5
  42. package/package.json +5 -1
@@ -1,24 +1,13 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { clearDb, disconnectKnex } from "../db/db";
11
2
  import { deleteSchoolsXmlFile } from "../open-data-sync/schools";
12
3
  import { defaultBinOptions } from "./constants";
13
- function main() {
14
- return __awaiter(this, void 0, void 0, function* () {
15
- console.log("Clearing all data...");
16
- yield clearDb();
17
- console.log("DB cleared. Now deleting schools XML file...");
18
- deleteSchoolsXmlFile(defaultBinOptions);
19
- yield disconnectKnex();
20
- console.log("Everything cleared, ready for a new sync.");
21
- });
4
+ async function main() {
5
+ console.log("Clearing all data...");
6
+ await clearDb();
7
+ console.log("DB cleared. Now deleting schools XML file...");
8
+ deleteSchoolsXmlFile(defaultBinOptions);
9
+ await disconnectKnex();
10
+ console.log("Everything cleared, ready for a new sync.");
22
11
  }
23
12
  main();
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItYWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9jbGVhci1hbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhELFNBQWUsSUFBSTs7UUFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQzVELG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDeEMsTUFBTSxjQUFjLEVBQUUsQ0FBQztRQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUFBO0FBRUQsSUFBSSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbGVhckRiLCBkaXNjb25uZWN0S25leCB9IGZyb20gXCIuLi9kYi9kYlwiO1xyXG5pbXBvcnQgeyBkZWxldGVTY2hvb2xzWG1sRmlsZSB9IGZyb20gXCIuLi9vcGVuLWRhdGEtc3luYy9zY2hvb2xzXCI7XHJcbmltcG9ydCB7IGRlZmF1bHRCaW5PcHRpb25zIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcblxyXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xyXG4gIGNvbnNvbGUubG9nKFwiQ2xlYXJpbmcgYWxsIGRhdGEuLi5cIik7XHJcbiAgYXdhaXQgY2xlYXJEYigpO1xyXG4gIGNvbnNvbGUubG9nKFwiREIgY2xlYXJlZC4gTm93IGRlbGV0aW5nIHNjaG9vbHMgWE1MIGZpbGUuLi5cIik7XHJcbiAgZGVsZXRlU2Nob29sc1htbEZpbGUoZGVmYXVsdEJpbk9wdGlvbnMpO1xyXG4gIGF3YWl0IGRpc2Nvbm5lY3RLbmV4KCk7XHJcbiAgY29uc29sZS5sb2coXCJFdmVyeXRoaW5nIGNsZWFyZWQsIHJlYWR5IGZvciBhIG5ldyBzeW5jLlwiKTtcclxufVxyXG5cclxubWFpbigpO1xyXG4iXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItYWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9jbGVhci1hbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhELEtBQUssVUFBVSxJQUFJO0lBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNwQyxNQUFNLE9BQU8sRUFBRSxDQUFDO0lBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUM1RCxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sY0FBYyxFQUFFLENBQUM7SUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsZWFyRGIsIGRpc2Nvbm5lY3RLbmV4IH0gZnJvbSBcIi4uL2RiL2RiXCI7XHJcbmltcG9ydCB7IGRlbGV0ZVNjaG9vbHNYbWxGaWxlIH0gZnJvbSBcIi4uL29wZW4tZGF0YS1zeW5jL3NjaG9vbHNcIjtcclxuaW1wb3J0IHsgZGVmYXVsdEJpbk9wdGlvbnMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuXHJcbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XHJcbiAgY29uc29sZS5sb2coXCJDbGVhcmluZyBhbGwgZGF0YS4uLlwiKTtcclxuICBhd2FpdCBjbGVhckRiKCk7XHJcbiAgY29uc29sZS5sb2coXCJEQiBjbGVhcmVkLiBOb3cgZGVsZXRpbmcgc2Nob29scyBYTUwgZmlsZS4uLlwiKTtcclxuICBkZWxldGVTY2hvb2xzWG1sRmlsZShkZWZhdWx0QmluT3B0aW9ucyk7XHJcbiAgYXdhaXQgZGlzY29ubmVjdEtuZXgoKTtcclxuICBjb25zb2xlLmxvZyhcIkV2ZXJ5dGhpbmcgY2xlYXJlZCwgcmVhZHkgZm9yIGEgbmV3IHN5bmMuXCIpO1xyXG59XHJcblxyXG5tYWluKCk7XHJcbiJdfQ==
@@ -1,19 +1,8 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { disconnectKnex, initDb } from "../db/db";
11
- function main() {
12
- return __awaiter(this, void 0, void 0, function* () {
13
- yield initDb();
14
- console.log("Database ready to use.");
15
- yield disconnectKnex();
16
- });
2
+ async function main() {
3
+ await initDb();
4
+ console.log("Database ready to use.");
5
+ await disconnectKnex();
17
6
  }
18
7
  main();
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vaW5pdC1kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsRCxTQUFlLElBQUk7O1FBQ2pCLE1BQU0sTUFBTSxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDdEMsTUFBTSxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBQUE7QUFFRCxJQUFJLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpc2Nvbm5lY3RLbmV4LCBpbml0RGIgfSBmcm9tIFwiLi4vZGIvZGJcIjtcclxuXHJcbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XHJcbiAgYXdhaXQgaW5pdERiKCk7XHJcbiAgY29uc29sZS5sb2coXCJEYXRhYmFzZSByZWFkeSB0byB1c2UuXCIpO1xyXG4gIGF3YWl0IGRpc2Nvbm5lY3RLbmV4KCk7XHJcbn1cclxuXHJcbm1haW4oKTtcclxuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vaW5pdC1kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsRCxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLE1BQU0sRUFBRSxDQUFDO0lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sY0FBYyxFQUFFLENBQUM7QUFDekIsQ0FBQztBQUVELElBQUksRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGlzY29ubmVjdEtuZXgsIGluaXREYiB9IGZyb20gXCIuLi9kYi9kYlwiO1xyXG5cclxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcclxuICBhd2FpdCBpbml0RGIoKTtcclxuICBjb25zb2xlLmxvZyhcIkRhdGFiYXNlIHJlYWR5IHRvIHVzZS5cIik7XHJcbiAgYXdhaXQgZGlzY29ubmVjdEtuZXgoKTtcclxufVxyXG5cclxubWFpbigpO1xyXG4iXX0=
package/dist/bin/knex.js CHANGED
@@ -1,21 +1,10 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { disconnectKnex, getKnexDb } from "../db/db";
11
- function main() {
12
- return __awaiter(this, void 0, void 0, function* () {
13
- const knex = getKnexDb();
14
- yield knex.schema.alterTable("school_founder", (table) => {
15
- table.unique(["school_izo", "founder_id"]);
16
- });
17
- yield disconnectKnex();
2
+ async function main() {
3
+ const knex = getKnexDb();
4
+ await knex.schema.alterTable("school_founder", (table) => {
5
+ table.unique(["school_izo", "founder_id"]);
18
6
  });
7
+ await disconnectKnex();
19
8
  }
20
9
  main();
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia25leC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4va25leC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVyRCxTQUFlLElBQUk7O1FBQ2pCLE1BQU0sSUFBSSxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2RCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FBQTtBQUVELElBQUksRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGlzY29ubmVjdEtuZXgsIGdldEtuZXhEYiB9IGZyb20gXCIuLi9kYi9kYlwiO1xyXG5cclxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcclxuICBjb25zdCBrbmV4ID0gZ2V0S25leERiKCk7XHJcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcInNjaG9vbF9mb3VuZGVyXCIsICh0YWJsZSkgPT4ge1xyXG4gICAgdGFibGUudW5pcXVlKFtcInNjaG9vbF9pem9cIiwgXCJmb3VuZGVyX2lkXCJdKTtcclxuICB9KTtcclxuICBhd2FpdCBkaXNjb25uZWN0S25leCgpO1xyXG59XHJcblxyXG5tYWluKCk7XHJcbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia25leC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4va25leC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVyRCxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLElBQUksR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUN6QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDdkQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxjQUFjLEVBQUUsQ0FBQztBQUN6QixDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaXNjb25uZWN0S25leCwgZ2V0S25leERiIH0gZnJvbSBcIi4uL2RiL2RiXCI7XHJcblxyXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xyXG4gIGNvbnN0IGtuZXggPSBnZXRLbmV4RGIoKTtcclxuICBhd2FpdCBrbmV4LnNjaGVtYS5hbHRlclRhYmxlKFwic2Nob29sX2ZvdW5kZXJcIiwgKHRhYmxlKSA9PiB7XHJcbiAgICB0YWJsZS51bmlxdWUoW1wic2Nob29sX2l6b1wiLCBcImZvdW5kZXJfaWRcIl0pO1xyXG4gIH0pO1xyXG4gIGF3YWl0IGRpc2Nvbm5lY3RLbmV4KCk7XHJcbn1cclxuXHJcbm1haW4oKTtcclxuIl19
@@ -1,78 +1,67 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { readFileSync, writeFileSync } from "fs";
11
- import { parseOrdinanceToAddressPoints } from "../street-markdown/smd";
2
+ import { parseOrdinanceToAddressPoints, } from "../street-markdown/smd";
12
3
  import { municipalitiesToPolygons } from "../street-markdown/polygons";
13
4
  import { disconnectKnex } from "../db/db";
14
- function main() {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- // take first node argument as a file name
17
- if (process.argv.length < 3) {
18
- console.error("Missing file name argument");
19
- process.exit(1);
20
- }
21
- const fileName = process.argv[2];
22
- const fileContent = readFileSync(fileName);
23
- const lines = fileContent.toString().split("\n");
24
- let errorCount = 0;
25
- const errorLines = [];
26
- let warningCount = 0;
27
- const reportErrors = ({ lineNumber, line, errors, }) => {
28
- errors.forEach((error) => console.error(error.message));
29
- console.error(`Invalid street definition on line ${lineNumber}: ${line}`);
30
- errorCount++;
31
- errorLines.push(`line ${lineNumber}: ${line}`);
32
- };
33
- const reportWarnings = ({ lineNumber, errors: warnings, }) => {
34
- warnings.forEach((error) => {
35
- console.error(`Line ${lineNumber}: ${error.message}`);
36
- });
37
- warningCount++;
38
- };
39
- console.time("parseOrdinanceToAddressPoints");
40
- // const { municipality } = await getNewMunicipalityByName("Česká Lípa");
41
- const municipalities = yield parseOrdinanceToAddressPoints({
42
- lines,
43
- initialState: {
44
- // currentMunicipality: municipality,
45
- },
46
- onError: reportErrors,
47
- onWarning: reportWarnings,
48
- includeUnmappedAddressPoints: true,
5
+ async function main() {
6
+ // take first node argument as a file name
7
+ if (process.argv.length < 3) {
8
+ console.error("Missing file name argument");
9
+ process.exit(1);
10
+ }
11
+ const fileName = process.argv[2];
12
+ const fileContent = readFileSync(fileName);
13
+ const lines = fileContent.toString().split("\n");
14
+ let errorCount = 0;
15
+ const errorLines = [];
16
+ let warningCount = 0;
17
+ const reportErrors = ({ lineNumber, line, errors, }) => {
18
+ errors.forEach((error) => console.error(error.message));
19
+ console.error(`Invalid street definition on line ${lineNumber}: ${line}`);
20
+ errorCount++;
21
+ errorLines.push(`line ${lineNumber}: ${line}`);
22
+ };
23
+ const reportWarnings = ({ lineNumber, errors: warnings, }) => {
24
+ warnings.forEach((error) => {
25
+ console.error(`Line ${lineNumber}: ${error.message}`);
49
26
  });
50
- console.timeEnd("parseOrdinanceToAddressPoints");
51
- console.log(`Parsed ${lines.length} lines, ${errorCount} errors, ${warningCount} warnings.`);
52
- // if (errorCount > 0) {
53
- // console.log("Errors:");
54
- // errorLines.forEach((line) => console.log(line));
55
- // }
56
- if (process.argv.length >= 4) {
57
- const outputFileName = process.argv[3];
58
- const output = JSON.stringify(municipalities);
59
- console.log(`Writing output to ${outputFileName}`);
60
- writeFileSync(outputFileName, output);
61
- }
62
- else {
63
- console.log(JSON.stringify(municipalities));
64
- }
65
- if (process.argv.length >= 5) {
66
- console.time("municipalityToPolygons");
67
- const polygons = yield municipalitiesToPolygons(municipalities);
68
- console.timeEnd("municipalityToPolygons");
69
- const outputFileName = process.argv[4];
70
- const output = JSON.stringify(polygons);
71
- console.log(`Writing polygons to ${outputFileName}`);
72
- writeFileSync(outputFileName, output);
73
- }
74
- yield disconnectKnex();
27
+ warningCount++;
28
+ };
29
+ console.time("parseOrdinanceToAddressPoints");
30
+ // const { municipality } = await getNewMunicipalityByFounderId(2016); // ostrava something
31
+ const municipalities = await parseOrdinanceToAddressPoints({
32
+ lines,
33
+ initialState: {
34
+ // currentMunicipality: municipality,
35
+ },
36
+ onError: reportErrors,
37
+ onWarning: reportWarnings,
38
+ includeUnmappedAddressPoints: true,
75
39
  });
40
+ console.timeEnd("parseOrdinanceToAddressPoints");
41
+ console.log(`Parsed ${lines.length} lines, ${errorCount} errors, ${warningCount} warnings.`);
42
+ // if (errorCount > 0) {
43
+ // console.log("Errors:");
44
+ // errorLines.forEach((line) => console.log(line));
45
+ // }
46
+ if (process.argv.length >= 4) {
47
+ const outputFileName = process.argv[3];
48
+ const output = JSON.stringify(municipalities);
49
+ console.log(`Writing output to ${outputFileName}`);
50
+ writeFileSync(outputFileName, output);
51
+ }
52
+ else {
53
+ console.log(JSON.stringify(municipalities));
54
+ }
55
+ if (process.argv.length >= 5) {
56
+ console.time("municipalityToPolygons");
57
+ const polygons = await municipalitiesToPolygons(municipalities);
58
+ console.timeEnd("municipalityToPolygons");
59
+ const outputFileName = process.argv[4];
60
+ const output = JSON.stringify(polygons);
61
+ console.log(`Writing polygons to ${outputFileName}`);
62
+ writeFileSync(outputFileName, output);
63
+ }
64
+ await disconnectKnex();
76
65
  }
77
66
  main();
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2Utb3JkaW5hbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9wYXJzZS1vcmRpbmFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDakQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUxQyxTQUFlLElBQUk7O1FBQ2pCLDBDQUEwQztRQUMxQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzQixPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDNUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqQjtRQUVELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLE1BQU0sVUFBVSxHQUFhLEVBQUUsQ0FBQztRQUNoQyxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7UUFFckIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxFQUNwQixVQUFVLEVBQ1YsSUFBSSxFQUNKLE1BQU0sR0FDYyxFQUFRLEVBQUU7WUFDOUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN4RCxPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMxRSxVQUFVLEVBQUUsQ0FBQztZQUNiLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUM7UUFFRixNQUFNLGNBQWMsR0FBRyxDQUFDLEVBQ3RCLFVBQVUsRUFDVixNQUFNLEVBQUUsUUFBUSxHQUNJLEVBQVEsRUFBRTtZQUM5QixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxVQUFVLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDeEQsQ0FBQyxDQUFDLENBQUM7WUFDSCxZQUFZLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFFOUMseUVBQXlFO1FBRXpFLE1BQU0sY0FBYyxHQUFHLE1BQU0sNkJBQTZCLENBQUM7WUFDekQsS0FBSztZQUNMLFlBQVksRUFBRTtZQUNaLHFDQUFxQzthQUN0QztZQUNELE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFNBQVMsRUFBRSxjQUFjO1lBQ3pCLDRCQUE0QixFQUFFLElBQUk7U0FDbkMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRWpELE9BQU8sQ0FBQyxHQUFHLENBQ1QsVUFBVSxLQUFLLENBQUMsTUFBTSxXQUFXLFVBQVUsWUFBWSxZQUFZLFlBQVksQ0FDaEYsQ0FBQztRQUNGLHdCQUF3QjtRQUN4Qiw0QkFBNEI7UUFDNUIscURBQXFEO1FBQ3JELElBQUk7UUFFSixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUM1QixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDOUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUNuRCxhQUFhLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3ZDO2FBQU07WUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztTQUM3QztRQUVELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUN2QyxNQUFNLFFBQVEsR0FBRyxNQUFNLHdCQUF3QixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUUxQyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUNyRCxhQUFhLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsTUFBTSxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBQUE7QUFFRCxJQUFJLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gXCJmc1wiO1xyXG5pbXBvcnQgeyBwYXJzZU9yZGluYW5jZVRvQWRkcmVzc1BvaW50cyB9IGZyb20gXCIuLi9zdHJlZXQtbWFya2Rvd24vc21kXCI7XHJcbmltcG9ydCB7IEVycm9yQ2FsbGJhY2tQYXJhbXMgfSBmcm9tIFwiLi4vc3RyZWV0LW1hcmtkb3duL3R5cGVzXCI7XHJcbmltcG9ydCB7IG11bmljaXBhbGl0aWVzVG9Qb2x5Z29ucyB9IGZyb20gXCIuLi9zdHJlZXQtbWFya2Rvd24vcG9seWdvbnNcIjtcclxuaW1wb3J0IHsgZGlzY29ubmVjdEtuZXggfSBmcm9tIFwiLi4vZGIvZGJcIjtcclxuXHJcbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XHJcbiAgLy8gdGFrZSBmaXJzdCBub2RlIGFyZ3VtZW50IGFzIGEgZmlsZSBuYW1lXHJcbiAgaWYgKHByb2Nlc3MuYXJndi5sZW5ndGggPCAzKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKFwiTWlzc2luZyBmaWxlIG5hbWUgYXJndW1lbnRcIik7XHJcbiAgICBwcm9jZXNzLmV4aXQoMSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBmaWxlTmFtZSA9IHByb2Nlc3MuYXJndlsyXTtcclxuICBjb25zdCBmaWxlQ29udGVudCA9IHJlYWRGaWxlU3luYyhmaWxlTmFtZSk7XHJcbiAgY29uc3QgbGluZXMgPSBmaWxlQ29udGVudC50b1N0cmluZygpLnNwbGl0KFwiXFxuXCIpO1xyXG5cclxuICBsZXQgZXJyb3JDb3VudCA9IDA7XHJcbiAgY29uc3QgZXJyb3JMaW5lczogc3RyaW5nW10gPSBbXTtcclxuICBsZXQgd2FybmluZ0NvdW50ID0gMDtcclxuXHJcbiAgY29uc3QgcmVwb3J0RXJyb3JzID0gKHtcclxuICAgIGxpbmVOdW1iZXIsXHJcbiAgICBsaW5lLFxyXG4gICAgZXJyb3JzLFxyXG4gIH06IEVycm9yQ2FsbGJhY2tQYXJhbXMpOiB2b2lkID0+IHtcclxuICAgIGVycm9ycy5mb3JFYWNoKChlcnJvcikgPT4gY29uc29sZS5lcnJvcihlcnJvci5tZXNzYWdlKSk7XHJcbiAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIHN0cmVldCBkZWZpbml0aW9uIG9uIGxpbmUgJHtsaW5lTnVtYmVyfTogJHtsaW5lfWApO1xyXG4gICAgZXJyb3JDb3VudCsrO1xyXG4gICAgZXJyb3JMaW5lcy5wdXNoKGBsaW5lICR7bGluZU51bWJlcn06ICR7bGluZX1gKTtcclxuICB9O1xyXG5cclxuICBjb25zdCByZXBvcnRXYXJuaW5ncyA9ICh7XHJcbiAgICBsaW5lTnVtYmVyLFxyXG4gICAgZXJyb3JzOiB3YXJuaW5ncyxcclxuICB9OiBFcnJvckNhbGxiYWNrUGFyYW1zKTogdm9pZCA9PiB7XHJcbiAgICB3YXJuaW5ncy5mb3JFYWNoKChlcnJvcikgPT4ge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGBMaW5lICR7bGluZU51bWJlcn06ICR7ZXJyb3IubWVzc2FnZX1gKTtcclxuICAgIH0pO1xyXG4gICAgd2FybmluZ0NvdW50Kys7XHJcbiAgfTtcclxuXHJcbiAgY29uc29sZS50aW1lKFwicGFyc2VPcmRpbmFuY2VUb0FkZHJlc3NQb2ludHNcIik7XHJcblxyXG4gIC8vIGNvbnN0IHsgbXVuaWNpcGFsaXR5IH0gPSBhd2FpdCBnZXROZXdNdW5pY2lwYWxpdHlCeU5hbWUoXCLEjGVza8OhIEzDrXBhXCIpO1xyXG5cclxuICBjb25zdCBtdW5pY2lwYWxpdGllcyA9IGF3YWl0IHBhcnNlT3JkaW5hbmNlVG9BZGRyZXNzUG9pbnRzKHtcclxuICAgIGxpbmVzLFxyXG4gICAgaW5pdGlhbFN0YXRlOiB7XHJcbiAgICAgIC8vIGN1cnJlbnRNdW5pY2lwYWxpdHk6IG11bmljaXBhbGl0eSxcclxuICAgIH0sXHJcbiAgICBvbkVycm9yOiByZXBvcnRFcnJvcnMsXHJcbiAgICBvbldhcm5pbmc6IHJlcG9ydFdhcm5pbmdzLFxyXG4gICAgaW5jbHVkZVVubWFwcGVkQWRkcmVzc1BvaW50czogdHJ1ZSxcclxuICB9KTtcclxuICBjb25zb2xlLnRpbWVFbmQoXCJwYXJzZU9yZGluYW5jZVRvQWRkcmVzc1BvaW50c1wiKTtcclxuXHJcbiAgY29uc29sZS5sb2coXHJcbiAgICBgUGFyc2VkICR7bGluZXMubGVuZ3RofSBsaW5lcywgJHtlcnJvckNvdW50fSBlcnJvcnMsICR7d2FybmluZ0NvdW50fSB3YXJuaW5ncy5gXHJcbiAgKTtcclxuICAvLyBpZiAoZXJyb3JDb3VudCA+IDApIHtcclxuICAvLyAgIGNvbnNvbGUubG9nKFwiRXJyb3JzOlwiKTtcclxuICAvLyAgIGVycm9yTGluZXMuZm9yRWFjaCgobGluZSkgPT4gY29uc29sZS5sb2cobGluZSkpO1xyXG4gIC8vIH1cclxuXHJcbiAgaWYgKHByb2Nlc3MuYXJndi5sZW5ndGggPj0gNCkge1xyXG4gICAgY29uc3Qgb3V0cHV0RmlsZU5hbWUgPSBwcm9jZXNzLmFyZ3ZbM107XHJcbiAgICBjb25zdCBvdXRwdXQgPSBKU09OLnN0cmluZ2lmeShtdW5pY2lwYWxpdGllcyk7XHJcbiAgICBjb25zb2xlLmxvZyhgV3JpdGluZyBvdXRwdXQgdG8gJHtvdXRwdXRGaWxlTmFtZX1gKTtcclxuICAgIHdyaXRlRmlsZVN5bmMob3V0cHV0RmlsZU5hbWUsIG91dHB1dCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KG11bmljaXBhbGl0aWVzKSk7XHJcbiAgfVxyXG5cclxuICBpZiAocHJvY2Vzcy5hcmd2Lmxlbmd0aCA+PSA1KSB7XHJcbiAgICBjb25zb2xlLnRpbWUoXCJtdW5pY2lwYWxpdHlUb1BvbHlnb25zXCIpO1xyXG4gICAgY29uc3QgcG9seWdvbnMgPSBhd2FpdCBtdW5pY2lwYWxpdGllc1RvUG9seWdvbnMobXVuaWNpcGFsaXRpZXMpO1xyXG4gICAgY29uc29sZS50aW1lRW5kKFwibXVuaWNpcGFsaXR5VG9Qb2x5Z29uc1wiKTtcclxuXHJcbiAgICBjb25zdCBvdXRwdXRGaWxlTmFtZSA9IHByb2Nlc3MuYXJndls0XTtcclxuICAgIGNvbnN0IG91dHB1dCA9IEpTT04uc3RyaW5naWZ5KHBvbHlnb25zKTtcclxuICAgIGNvbnNvbGUubG9nKGBXcml0aW5nIHBvbHlnb25zIHRvICR7b3V0cHV0RmlsZU5hbWV9YCk7XHJcbiAgICB3cml0ZUZpbGVTeW5jKG91dHB1dEZpbGVOYW1lLCBvdXRwdXQpO1xyXG4gIH1cclxuICBhd2FpdCBkaXNjb25uZWN0S25leCgpO1xyXG59XHJcblxyXG5tYWluKCk7XHJcbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2Utb3JkaW5hbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9wYXJzZS1vcmRpbmFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDakQsT0FBTyxFQUVMLDZCQUE2QixHQUM5QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFMUMsS0FBSyxVQUFVLElBQUk7SUFDakIsMENBQTBDO0lBQzFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUM1QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pCO0lBRUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqRCxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDbkIsTUFBTSxVQUFVLEdBQWEsRUFBRSxDQUFDO0lBQ2hDLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztJQUVyQixNQUFNLFlBQVksR0FBRyxDQUFDLEVBQ3BCLFVBQVUsRUFDVixJQUFJLEVBQ0osTUFBTSxHQUNjLEVBQVEsRUFBRTtRQUM5QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxLQUFLLENBQUMscUNBQXFDLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLFVBQVUsRUFBRSxDQUFDO1FBQ2IsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsRUFDdEIsVUFBVSxFQUNWLE1BQU0sRUFBRSxRQUFRLEdBQ0ksRUFBUSxFQUFFO1FBQzlCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN6QixPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsVUFBVSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxFQUFFLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBRTlDLDJGQUEyRjtJQUUzRixNQUFNLGNBQWMsR0FBRyxNQUFNLDZCQUE2QixDQUFDO1FBQ3pELEtBQUs7UUFDTCxZQUFZLEVBQUU7UUFDWixxQ0FBcUM7U0FDdEM7UUFDRCxPQUFPLEVBQUUsWUFBWTtRQUNyQixTQUFTLEVBQUUsY0FBYztRQUN6Qiw0QkFBNEIsRUFBRSxJQUFJO0tBQ25DLENBQUMsQ0FBQztJQUNILE9BQU8sQ0FBQyxPQUFPLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUVqRCxPQUFPLENBQUMsR0FBRyxDQUNULFVBQVUsS0FBSyxDQUFDLE1BQU0sV0FBVyxVQUFVLFlBQVksWUFBWSxZQUFZLENBQ2hGLENBQUM7SUFDRix3QkFBd0I7SUFDeEIsNEJBQTRCO0lBQzVCLHFEQUFxRDtJQUNyRCxJQUFJO0lBRUosSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7UUFDNUIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDbkQsYUFBYSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztLQUN2QztTQUFNO1FBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7S0FDN0M7SUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtRQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDdkMsTUFBTSxRQUFRLEdBQUcsTUFBTSx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRSxPQUFPLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFMUMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDckQsYUFBYSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztLQUN2QztJQUNELE1BQU0sY0FBYyxFQUFFLENBQUM7QUFDekIsQ0FBQztBQUVELElBQUksRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSBcImZzXCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0TmV3TXVuaWNpcGFsaXR5QnlGb3VuZGVySWQsXHJcbiAgcGFyc2VPcmRpbmFuY2VUb0FkZHJlc3NQb2ludHMsXHJcbn0gZnJvbSBcIi4uL3N0cmVldC1tYXJrZG93bi9zbWRcIjtcclxuaW1wb3J0IHsgRXJyb3JDYWxsYmFja1BhcmFtcyB9IGZyb20gXCIuLi9zdHJlZXQtbWFya2Rvd24vdHlwZXNcIjtcclxuaW1wb3J0IHsgbXVuaWNpcGFsaXRpZXNUb1BvbHlnb25zIH0gZnJvbSBcIi4uL3N0cmVldC1tYXJrZG93bi9wb2x5Z29uc1wiO1xyXG5pbXBvcnQgeyBkaXNjb25uZWN0S25leCB9IGZyb20gXCIuLi9kYi9kYlwiO1xyXG5cclxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcclxuICAvLyB0YWtlIGZpcnN0IG5vZGUgYXJndW1lbnQgYXMgYSBmaWxlIG5hbWVcclxuICBpZiAocHJvY2Vzcy5hcmd2Lmxlbmd0aCA8IDMpIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoXCJNaXNzaW5nIGZpbGUgbmFtZSBhcmd1bWVudFwiKTtcclxuICAgIHByb2Nlc3MuZXhpdCgxKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGZpbGVOYW1lID0gcHJvY2Vzcy5hcmd2WzJdO1xyXG4gIGNvbnN0IGZpbGVDb250ZW50ID0gcmVhZEZpbGVTeW5jKGZpbGVOYW1lKTtcclxuICBjb25zdCBsaW5lcyA9IGZpbGVDb250ZW50LnRvU3RyaW5nKCkuc3BsaXQoXCJcXG5cIik7XHJcblxyXG4gIGxldCBlcnJvckNvdW50ID0gMDtcclxuICBjb25zdCBlcnJvckxpbmVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGxldCB3YXJuaW5nQ291bnQgPSAwO1xyXG5cclxuICBjb25zdCByZXBvcnRFcnJvcnMgPSAoe1xyXG4gICAgbGluZU51bWJlcixcclxuICAgIGxpbmUsXHJcbiAgICBlcnJvcnMsXHJcbiAgfTogRXJyb3JDYWxsYmFja1BhcmFtcyk6IHZvaWQgPT4ge1xyXG4gICAgZXJyb3JzLmZvckVhY2goKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yLm1lc3NhZ2UpKTtcclxuICAgIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgc3RyZWV0IGRlZmluaXRpb24gb24gbGluZSAke2xpbmVOdW1iZXJ9OiAke2xpbmV9YCk7XHJcbiAgICBlcnJvckNvdW50Kys7XHJcbiAgICBlcnJvckxpbmVzLnB1c2goYGxpbmUgJHtsaW5lTnVtYmVyfTogJHtsaW5lfWApO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IHJlcG9ydFdhcm5pbmdzID0gKHtcclxuICAgIGxpbmVOdW1iZXIsXHJcbiAgICBlcnJvcnM6IHdhcm5pbmdzLFxyXG4gIH06IEVycm9yQ2FsbGJhY2tQYXJhbXMpOiB2b2lkID0+IHtcclxuICAgIHdhcm5pbmdzLmZvckVhY2goKGVycm9yKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYExpbmUgJHtsaW5lTnVtYmVyfTogJHtlcnJvci5tZXNzYWdlfWApO1xyXG4gICAgfSk7XHJcbiAgICB3YXJuaW5nQ291bnQrKztcclxuICB9O1xyXG5cclxuICBjb25zb2xlLnRpbWUoXCJwYXJzZU9yZGluYW5jZVRvQWRkcmVzc1BvaW50c1wiKTtcclxuXHJcbiAgLy8gY29uc3QgeyBtdW5pY2lwYWxpdHkgfSA9IGF3YWl0IGdldE5ld011bmljaXBhbGl0eUJ5Rm91bmRlcklkKDIwMTYpOyAvLyBvc3RyYXZhIHNvbWV0aGluZ1xyXG5cclxuICBjb25zdCBtdW5pY2lwYWxpdGllcyA9IGF3YWl0IHBhcnNlT3JkaW5hbmNlVG9BZGRyZXNzUG9pbnRzKHtcclxuICAgIGxpbmVzLFxyXG4gICAgaW5pdGlhbFN0YXRlOiB7XHJcbiAgICAgIC8vIGN1cnJlbnRNdW5pY2lwYWxpdHk6IG11bmljaXBhbGl0eSxcclxuICAgIH0sXHJcbiAgICBvbkVycm9yOiByZXBvcnRFcnJvcnMsXHJcbiAgICBvbldhcm5pbmc6IHJlcG9ydFdhcm5pbmdzLFxyXG4gICAgaW5jbHVkZVVubWFwcGVkQWRkcmVzc1BvaW50czogdHJ1ZSxcclxuICB9KTtcclxuICBjb25zb2xlLnRpbWVFbmQoXCJwYXJzZU9yZGluYW5jZVRvQWRkcmVzc1BvaW50c1wiKTtcclxuXHJcbiAgY29uc29sZS5sb2coXHJcbiAgICBgUGFyc2VkICR7bGluZXMubGVuZ3RofSBsaW5lcywgJHtlcnJvckNvdW50fSBlcnJvcnMsICR7d2FybmluZ0NvdW50fSB3YXJuaW5ncy5gXHJcbiAgKTtcclxuICAvLyBpZiAoZXJyb3JDb3VudCA+IDApIHtcclxuICAvLyAgIGNvbnNvbGUubG9nKFwiRXJyb3JzOlwiKTtcclxuICAvLyAgIGVycm9yTGluZXMuZm9yRWFjaCgobGluZSkgPT4gY29uc29sZS5sb2cobGluZSkpO1xyXG4gIC8vIH1cclxuXHJcbiAgaWYgKHByb2Nlc3MuYXJndi5sZW5ndGggPj0gNCkge1xyXG4gICAgY29uc3Qgb3V0cHV0RmlsZU5hbWUgPSBwcm9jZXNzLmFyZ3ZbM107XHJcbiAgICBjb25zdCBvdXRwdXQgPSBKU09OLnN0cmluZ2lmeShtdW5pY2lwYWxpdGllcyk7XHJcbiAgICBjb25zb2xlLmxvZyhgV3JpdGluZyBvdXRwdXQgdG8gJHtvdXRwdXRGaWxlTmFtZX1gKTtcclxuICAgIHdyaXRlRmlsZVN5bmMob3V0cHV0RmlsZU5hbWUsIG91dHB1dCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KG11bmljaXBhbGl0aWVzKSk7XHJcbiAgfVxyXG5cclxuICBpZiAocHJvY2Vzcy5hcmd2Lmxlbmd0aCA+PSA1KSB7XHJcbiAgICBjb25zb2xlLnRpbWUoXCJtdW5pY2lwYWxpdHlUb1BvbHlnb25zXCIpO1xyXG4gICAgY29uc3QgcG9seWdvbnMgPSBhd2FpdCBtdW5pY2lwYWxpdGllc1RvUG9seWdvbnMobXVuaWNpcGFsaXRpZXMpO1xyXG4gICAgY29uc29sZS50aW1lRW5kKFwibXVuaWNpcGFsaXR5VG9Qb2x5Z29uc1wiKTtcclxuXHJcbiAgICBjb25zdCBvdXRwdXRGaWxlTmFtZSA9IHByb2Nlc3MuYXJndls0XTtcclxuICAgIGNvbnN0IG91dHB1dCA9IEpTT04uc3RyaW5naWZ5KHBvbHlnb25zKTtcclxuICAgIGNvbnNvbGUubG9nKGBXcml0aW5nIHBvbHlnb25zIHRvICR7b3V0cHV0RmlsZU5hbWV9YCk7XHJcbiAgICB3cml0ZUZpbGVTeW5jKG91dHB1dEZpbGVOYW1lLCBvdXRwdXQpO1xyXG4gIH1cclxuICBhd2FpdCBkaXNjb25uZWN0S25leCgpO1xyXG59XHJcblxyXG5tYWluKCk7XHJcbiJdfQ==
@@ -1,38 +1,27 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { readFileSync, writeFileSync } from "fs";
11
2
  import { municipalitiesToPolygons } from "../street-markdown/polygons";
12
3
  import { disconnectKnex } from "../db/db";
13
- function main() {
14
- return __awaiter(this, void 0, void 0, function* () {
15
- // take first node argument as a file name
16
- if (process.argv.length < 3) {
17
- console.error("Missing file name argument");
18
- process.exit(1);
19
- }
20
- const fileName = process.argv[2];
21
- const fileContent = readFileSync(fileName);
22
- const json = JSON.parse(fileContent.toString());
23
- const municipalityPolygons = yield municipalitiesToPolygons(json);
24
- console.log(`Processed ${json.length} municipalities`);
25
- yield disconnectKnex();
26
- const output = JSON.stringify(municipalityPolygons);
27
- if (process.argv.length >= 4) {
28
- const outputFileName = process.argv[3];
29
- console.log(`Writing polygons to ${outputFileName}`);
30
- writeFileSync(outputFileName, output);
31
- }
32
- else {
33
- console.log(JSON.stringify(output));
34
- }
35
- });
4
+ async function main() {
5
+ // take first node argument as a file name
6
+ if (process.argv.length < 3) {
7
+ console.error("Missing file name argument");
8
+ process.exit(1);
9
+ }
10
+ const fileName = process.argv[2];
11
+ const fileContent = readFileSync(fileName);
12
+ const json = JSON.parse(fileContent.toString());
13
+ const municipalityPolygons = await municipalitiesToPolygons(json);
14
+ console.log(`Processed ${json.length} municipalities`);
15
+ await disconnectKnex();
16
+ const output = JSON.stringify(municipalityPolygons);
17
+ if (process.argv.length >= 4) {
18
+ const outputFileName = process.argv[3];
19
+ console.log(`Writing polygons to ${outputFileName}`);
20
+ writeFileSync(outputFileName, output);
21
+ }
22
+ else {
23
+ console.log(JSON.stringify(output));
24
+ }
36
25
  }
37
26
  main();
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWdvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL3BvbHlnb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ2pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHMUMsU0FBZSxJQUFJOztRQUNqQiwwQ0FBMEM7UUFDMUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakI7UUFFRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBbUIsQ0FBQztRQUVsRSxNQUFNLG9CQUFvQixHQUFHLE1BQU0sd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksQ0FBQyxNQUFNLGlCQUFpQixDQUFDLENBQUM7UUFDdkQsTUFBTSxjQUFjLEVBQUUsQ0FBQztRQUV2QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDcEQsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDNUIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELGFBQWEsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdkM7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztDQUFBO0FBRUQsSUFBSSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWFkRmlsZVN5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwiZnNcIjtcclxuaW1wb3J0IHsgbXVuaWNpcGFsaXRpZXNUb1BvbHlnb25zIH0gZnJvbSBcIi4uL3N0cmVldC1tYXJrZG93bi9wb2x5Z29uc1wiO1xyXG5pbXBvcnQgeyBkaXNjb25uZWN0S25leCB9IGZyb20gXCIuLi9kYi9kYlwiO1xyXG5pbXBvcnQgeyBNdW5pY2lwYWxpdHkgfSBmcm9tIFwiLi4vc3RyZWV0LW1hcmtkb3duL3R5cGVzXCI7XHJcblxyXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xyXG4gIC8vIHRha2UgZmlyc3Qgbm9kZSBhcmd1bWVudCBhcyBhIGZpbGUgbmFtZVxyXG4gIGlmIChwcm9jZXNzLmFyZ3YubGVuZ3RoIDwgMykge1xyXG4gICAgY29uc29sZS5lcnJvcihcIk1pc3NpbmcgZmlsZSBuYW1lIGFyZ3VtZW50XCIpO1xyXG4gICAgcHJvY2Vzcy5leGl0KDEpO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZmlsZU5hbWUgPSBwcm9jZXNzLmFyZ3ZbMl07XHJcbiAgY29uc3QgZmlsZUNvbnRlbnQgPSByZWFkRmlsZVN5bmMoZmlsZU5hbWUpO1xyXG4gIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKGZpbGVDb250ZW50LnRvU3RyaW5nKCkpIGFzIE11bmljaXBhbGl0eVtdO1xyXG5cclxuICBjb25zdCBtdW5pY2lwYWxpdHlQb2x5Z29ucyA9IGF3YWl0IG11bmljaXBhbGl0aWVzVG9Qb2x5Z29ucyhqc29uKTtcclxuXHJcbiAgY29uc29sZS5sb2coYFByb2Nlc3NlZCAke2pzb24ubGVuZ3RofSBtdW5pY2lwYWxpdGllc2ApO1xyXG4gIGF3YWl0IGRpc2Nvbm5lY3RLbmV4KCk7XHJcblxyXG4gIGNvbnN0IG91dHB1dCA9IEpTT04uc3RyaW5naWZ5KG11bmljaXBhbGl0eVBvbHlnb25zKTtcclxuICBpZiAocHJvY2Vzcy5hcmd2Lmxlbmd0aCA+PSA0KSB7XHJcbiAgICBjb25zdCBvdXRwdXRGaWxlTmFtZSA9IHByb2Nlc3MuYXJndlszXTtcclxuICAgIGNvbnNvbGUubG9nKGBXcml0aW5nIHBvbHlnb25zIHRvICR7b3V0cHV0RmlsZU5hbWV9YCk7XHJcbiAgICB3cml0ZUZpbGVTeW5jKG91dHB1dEZpbGVOYW1lLCBvdXRwdXQpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShvdXRwdXQpKTtcclxuICB9XHJcbn1cclxuXHJcbm1haW4oKTtcclxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWdvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL3BvbHlnb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ2pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHMUMsS0FBSyxVQUFVLElBQUk7SUFDakIsMENBQTBDO0lBQzFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUM1QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pCO0lBRUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQW1CLENBQUM7SUFFbEUsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWxFLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLENBQUMsTUFBTSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sY0FBYyxFQUFFLENBQUM7SUFFdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3BELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1FBQzVCLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUNyRCxhQUFhLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ3ZDO1NBQU07UUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUNyQztBQUNILENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gXCJmc1wiO1xyXG5pbXBvcnQgeyBtdW5pY2lwYWxpdGllc1RvUG9seWdvbnMgfSBmcm9tIFwiLi4vc3RyZWV0LW1hcmtkb3duL3BvbHlnb25zXCI7XHJcbmltcG9ydCB7IGRpc2Nvbm5lY3RLbmV4IH0gZnJvbSBcIi4uL2RiL2RiXCI7XHJcbmltcG9ydCB7IE11bmljaXBhbGl0eSB9IGZyb20gXCIuLi9zdHJlZXQtbWFya2Rvd24vdHlwZXNcIjtcclxuXHJcbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XHJcbiAgLy8gdGFrZSBmaXJzdCBub2RlIGFyZ3VtZW50IGFzIGEgZmlsZSBuYW1lXHJcbiAgaWYgKHByb2Nlc3MuYXJndi5sZW5ndGggPCAzKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKFwiTWlzc2luZyBmaWxlIG5hbWUgYXJndW1lbnRcIik7XHJcbiAgICBwcm9jZXNzLmV4aXQoMSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBmaWxlTmFtZSA9IHByb2Nlc3MuYXJndlsyXTtcclxuICBjb25zdCBmaWxlQ29udGVudCA9IHJlYWRGaWxlU3luYyhmaWxlTmFtZSk7XHJcbiAgY29uc3QganNvbiA9IEpTT04ucGFyc2UoZmlsZUNvbnRlbnQudG9TdHJpbmcoKSkgYXMgTXVuaWNpcGFsaXR5W107XHJcblxyXG4gIGNvbnN0IG11bmljaXBhbGl0eVBvbHlnb25zID0gYXdhaXQgbXVuaWNpcGFsaXRpZXNUb1BvbHlnb25zKGpzb24pO1xyXG5cclxuICBjb25zb2xlLmxvZyhgUHJvY2Vzc2VkICR7anNvbi5sZW5ndGh9IG11bmljaXBhbGl0aWVzYCk7XHJcbiAgYXdhaXQgZGlzY29ubmVjdEtuZXgoKTtcclxuXHJcbiAgY29uc3Qgb3V0cHV0ID0gSlNPTi5zdHJpbmdpZnkobXVuaWNpcGFsaXR5UG9seWdvbnMpO1xyXG4gIGlmIChwcm9jZXNzLmFyZ3YubGVuZ3RoID49IDQpIHtcclxuICAgIGNvbnN0IG91dHB1dEZpbGVOYW1lID0gcHJvY2Vzcy5hcmd2WzNdO1xyXG4gICAgY29uc29sZS5sb2coYFdyaXRpbmcgcG9seWdvbnMgdG8gJHtvdXRwdXRGaWxlTmFtZX1gKTtcclxuICAgIHdyaXRlRmlsZVN5bmMob3V0cHV0RmlsZU5hbWUsIG91dHB1dCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KG91dHB1dCkpO1xyXG4gIH1cclxufVxyXG5cclxubWFpbigpO1xyXG4iXX0=