text-to-map 1.1.29 → 1.1.30

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 +127 -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 -152
  37. package/dist/street-markdown/types.d.ts +19 -10
  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,26 +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
- export function up(knex) {
11
- return __awaiter(this, void 0, void 0, function* () {
12
- yield knex.schema.alterTable("city", (t) => {
13
- t.double("wgs84_latitude").nullable();
14
- t.double("wgs84_longitude").nullable();
15
- });
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();
16
5
  });
17
6
  }
18
- export function down(knex) {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- yield knex.schema.alterTable("city", (t) => {
21
- t.dropColumn("wgs84_latitude");
22
- t.dropColumn("wgs84_longitude");
23
- });
7
+ export async function down(knex) {
8
+ await knex.schema.alterTable("city", (t) => {
9
+ t.dropColumn("wgs84_latitude");
10
+ t.dropColumn("wgs84_longitude");
24
11
  });
25
12
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAyMzA3MzEyMzI5MTVfY2l0eV9wb3NpdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGIvbWlncmF0aW9ucy8yMDIzMDczMTIzMjkxNV9jaXR5X3Bvc2l0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQSxNQUFNLFVBQWdCLEVBQUUsQ0FBQyxJQUFVOztRQUNqQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3pDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0QyxDQUFDLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQUE7QUFFRCxNQUFNLFVBQWdCLElBQUksQ0FBQyxJQUFVOztRQUNuQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3pDLENBQUMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLbmV4IH0gZnJvbSBcImtuZXhcIjtcclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cChrbmV4OiBLbmV4KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcclxuICAgIHQuZG91YmxlKFwid2dzODRfbGF0aXR1ZGVcIikubnVsbGFibGUoKTtcclxuICAgIHQuZG91YmxlKFwid2dzODRfbG9uZ2l0dWRlXCIpLm51bGxhYmxlKCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb3duKGtuZXg6IEtuZXgpIHtcclxuICBhd2FpdCBrbmV4LnNjaGVtYS5hbHRlclRhYmxlKFwiY2l0eVwiLCAodCkgPT4ge1xyXG4gICAgdC5kcm9wQ29sdW1uKFwid2dzODRfbGF0aXR1ZGVcIik7XHJcbiAgICB0LmRyb3BDb2x1bW4oXCJ3Z3M4NF9sb25naXR1ZGVcIik7XHJcbiAgfSk7XHJcbn1cclxuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAyMzA3MzEyMzI5MTVfY2l0eV9wb3NpdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGIvbWlncmF0aW9ucy8yMDIzMDczMTIzMjkxNV9jaXR5X3Bvc2l0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQyxJQUFVO0lBQ2pDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDekMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxJQUFVO0lBQ25DLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDekMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLbmV4IH0gZnJvbSBcImtuZXhcIjtcclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cChrbmV4OiBLbmV4KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcclxuICAgIHQuZG91YmxlKFwid2dzODRfbGF0aXR1ZGVcIikubnVsbGFibGUoKTtcclxuICAgIHQuZG91YmxlKFwid2dzODRfbG9uZ2l0dWRlXCIpLm51bGxhYmxlKCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb3duKGtuZXg6IEtuZXgpIHtcclxuICBhd2FpdCBrbmV4LnNjaGVtYS5hbHRlclRhYmxlKFwiY2l0eVwiLCAodCkgPT4ge1xyXG4gICAgdC5kcm9wQ29sdW1uKFwid2dzODRfbGF0aXR1ZGVcIik7XHJcbiAgICB0LmRyb3BDb2x1bW4oXCJ3Z3M4NF9sb25naXR1ZGVcIik7XHJcbiAgfSk7XHJcbn1cclxuIl19
@@ -1,24 +1,11 @@
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
- export function up(knex) {
11
- return __awaiter(this, void 0, void 0, function* () {
12
- yield knex.schema.alterTable("city", (t) => {
13
- t.text("polygon_geojson", "longtext").nullable();
14
- });
1
+ export async function up(knex) {
2
+ await knex.schema.alterTable("city", (t) => {
3
+ t.text("polygon_geojson", "longtext").nullable();
15
4
  });
16
5
  }
17
- export function down(knex) {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- yield knex.schema.alterTable("city", (t) => {
20
- t.dropColumn("polygon_geojson");
21
- });
6
+ export async function down(knex) {
7
+ await knex.schema.alterTable("city", (t) => {
8
+ t.dropColumn("polygon_geojson");
22
9
  });
23
10
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAyNDAxMDYyMjQ2MDNfY2l0eV9wb2x5Z29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RiL21pZ3JhdGlvbnMvMjAyNDAxMDYyMjQ2MDNfY2l0eV9wb2x5Z29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBLE1BQU0sVUFBZ0IsRUFBRSxDQUFDLElBQVU7O1FBQ2pDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FBQTtBQUVELE1BQU0sVUFBZ0IsSUFBSSxDQUFDLElBQVU7O1FBQ25DLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS25leCB9IGZyb20gXCJrbmV4XCI7XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXAoa25leDogS25leCk6IFByb21pc2U8dm9pZD4ge1xyXG4gIGF3YWl0IGtuZXguc2NoZW1hLmFsdGVyVGFibGUoXCJjaXR5XCIsICh0KSA9PiB7XHJcbiAgICB0LnRleHQoXCJwb2x5Z29uX2dlb2pzb25cIiwgXCJsb25ndGV4dFwiKS5udWxsYWJsZSgpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bihrbmV4OiBLbmV4KSB7XHJcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcclxuICAgIHQuZHJvcENvbHVtbihcInBvbHlnb25fZ2VvanNvblwiKTtcclxuICB9KTtcclxufVxyXG4iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAyNDAxMDYyMjQ2MDNfY2l0eV9wb2x5Z29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RiL21pZ3JhdGlvbnMvMjAyNDAxMDYyMjQ2MDNfY2l0eV9wb2x5Z29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxLQUFLLFVBQVUsRUFBRSxDQUFDLElBQVU7SUFDakMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN6QyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25ELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsSUFBSSxDQUFDLElBQVU7SUFDbkMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN6QyxDQUFDLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS25leCB9IGZyb20gXCJrbmV4XCI7XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXAoa25leDogS25leCk6IFByb21pc2U8dm9pZD4ge1xyXG4gIGF3YWl0IGtuZXguc2NoZW1hLmFsdGVyVGFibGUoXCJjaXR5XCIsICh0KSA9PiB7XHJcbiAgICB0LnRleHQoXCJwb2x5Z29uX2dlb2pzb25cIiwgXCJsb25ndGV4dFwiKS5udWxsYWJsZSgpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bihrbmV4OiBLbmV4KSB7XHJcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcclxuICAgIHQuZHJvcENvbHVtbihcInBvbHlnb25fZ2VvanNvblwiKTtcclxuICB9KTtcclxufVxyXG4iXX0=
@@ -1,24 +1,11 @@
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
- export function up(knex) {
11
- return __awaiter(this, void 0, void 0, function* () {
12
- yield knex.schema.alterTable("city", (t) => {
13
- t.text("districts_polygon_geojson", "longtext").nullable();
14
- });
1
+ export async function up(knex) {
2
+ await knex.schema.alterTable("city", (t) => {
3
+ t.text("districts_polygon_geojson", "longtext").nullable();
15
4
  });
16
5
  }
17
- export function down(knex) {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- yield knex.schema.alterTable("city", (t) => {
20
- t.dropColumn("districts_polygon_geojson");
21
- });
6
+ export async function down(knex) {
7
+ await knex.schema.alterTable("city", (t) => {
8
+ t.dropColumn("districts_polygon_geojson");
22
9
  });
23
10
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAyNDAzMjAyMDA1MzRfZGlzdHJpY3RfcG9seWdvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYi9taWdyYXRpb25zLzIwMjQwMzIwMjAwNTM0X2Rpc3RyaWN0X3BvbHlnb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUEsTUFBTSxVQUFnQixFQUFFLENBQUMsSUFBVTs7UUFDakMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QyxDQUFDLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUFBO0FBRUQsTUFBTSxVQUFnQixJQUFJLENBQUMsSUFBVTs7UUFDbkMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QyxDQUFDLENBQUMsVUFBVSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLbmV4IH0gZnJvbSBcImtuZXhcIjtcclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cChrbmV4OiBLbmV4KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcclxuICAgIHQudGV4dChcImRpc3RyaWN0c19wb2x5Z29uX2dlb2pzb25cIiwgXCJsb25ndGV4dFwiKS5udWxsYWJsZSgpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bihrbmV4OiBLbmV4KSB7XHJcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcclxuICAgIHQuZHJvcENvbHVtbihcImRpc3RyaWN0c19wb2x5Z29uX2dlb2pzb25cIik7XHJcbiAgfSk7XHJcbn1cclxuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAyNDAzMjAyMDA1MzRfZGlzdHJpY3RfcG9seWdvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYi9taWdyYXRpb25zLzIwMjQwMzIwMjAwNTM0X2Rpc3RyaWN0X3BvbHlnb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLEtBQUssVUFBVSxFQUFFLENBQUMsSUFBVTtJQUNqQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3pDLENBQUMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxJQUFJLENBQUMsSUFBVTtJQUNuQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3pDLENBQUMsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLbmV4IH0gZnJvbSBcImtuZXhcIjtcclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cChrbmV4OiBLbmV4KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcclxuICAgIHQudGV4dChcImRpc3RyaWN0c19wb2x5Z29uX2dlb2pzb25cIiwgXCJsb25ndGV4dFwiKS5udWxsYWJsZSgpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bihrbmV4OiBLbmV4KSB7XHJcbiAgYXdhaXQga25leC5zY2hlbWEuYWx0ZXJUYWJsZShcImNpdHlcIiwgKHQpID0+IHtcclxuICAgIHQuZHJvcENvbHVtbihcImRpc3RyaWN0c19wb2x5Z29uX2dlb2pzb25cIik7XHJcbiAgfSk7XHJcbn1cclxuIl19
@@ -0,0 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAyNDA3MjkyMTEzMjNfb3JkaW5hbmNlX2NpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGIvbWlncmF0aW9ucy8yMDI0MDcyOTIxMTMyM19vcmRpbmFuY2VfY2l0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQyxJQUFVO0lBQ2pDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxJQUFVO0lBQ25DLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDekMsQ0FBQyxDQUFDLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtuZXggfSBmcm9tIFwia25leFwiO1xyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwKGtuZXg6IEtuZXgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICBhd2FpdCBrbmV4LnNjaGVtYS5hbHRlclRhYmxlKFwiY2l0eVwiLCAodCkgPT4ge1xyXG4gICAgdC50ZXh0KFwiZGlzdHJpY3RzX3BvbHlnb25fZ2VvanNvblwiLCBcImxvbmd0ZXh0XCIpLm51bGxhYmxlKCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb3duKGtuZXg6IEtuZXgpIHtcclxuICBhd2FpdCBrbmV4LnNjaGVtYS5hbHRlclRhYmxlKFwiY2l0eVwiLCAodCkgPT4ge1xyXG4gICAgdC5kcm9wQ29sdW1uKFwiZGlzdHJpY3RzX3BvbHlnb25fZ2VvanNvblwiKTtcclxuICB9KTtcclxufVxyXG4iXX0=
@@ -1,25 +1,16 @@
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 { extractKeyValuesPairs, getKnexDb, insertMultipleRows } from "./db";
11
- export const insertRegionsAndOrps = (data, schema) => __awaiter(void 0, void 0, void 0, function* () {
2
+ export const insertRegionsAndOrps = async (data, schema) => {
12
3
  const columnIndex = getColumnIndexFromSchema(schema);
13
4
  let changes = 0;
14
- changes += yield insertRegions(data, columnIndex);
15
- changes += yield insertCounties(data, columnIndex);
16
- changes += yield insertOrps(data, columnIndex);
5
+ changes += await insertRegions(data, columnIndex);
6
+ changes += await insertCounties(data, columnIndex);
7
+ changes += await insertOrps(data, columnIndex);
17
8
  // cities are most likely already inserted, but in case they're not,
18
9
  // we need to insert them before updating them with region data
19
- changes += yield insertCities(data, columnIndex);
10
+ changes += await insertCities(data, columnIndex);
20
11
  const knex = getKnexDb();
21
12
  for (const row of data) {
22
- yield knex
13
+ await knex
23
14
  .from("city")
24
15
  .update({
25
16
  region_code: row[columnIndex.regionRuianCode],
@@ -30,34 +21,34 @@ export const insertRegionsAndOrps = (data, schema) => __awaiter(void 0, void 0,
30
21
  changes++;
31
22
  }
32
23
  return changes;
33
- });
34
- export const insertRegions = (buffer, columnIndex) => __awaiter(void 0, void 0, void 0, function* () {
35
- return yield insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.regionRuianCode, [
24
+ };
25
+ export const insertRegions = async (buffer, columnIndex) => {
26
+ return await insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.regionRuianCode, [
36
27
  columnIndex.regionName,
37
28
  columnIndex.regionShortName,
38
29
  columnIndex.regionCsuCode100,
39
30
  columnIndex.regionCsuCode108Nuts,
40
31
  ]), "region", ["code", "name", "short_name", "csu_code_100", "csu_code_108_nuts"]);
41
- });
42
- export const insertCounties = (buffer, columnIndex) => __awaiter(void 0, void 0, void 0, function* () {
43
- return yield insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.countyRuianCode, [
32
+ };
33
+ export const insertCounties = async (buffer, columnIndex) => {
34
+ return await insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.countyRuianCode, [
44
35
  columnIndex.countyName,
45
36
  columnIndex.countyCsuCode101Lau,
46
37
  columnIndex.countyCsuCode109Nuts,
47
38
  columnIndex.regionRuianCode,
48
39
  ]), "county", ["code", "name", "csu_code_101_lau", "csu_code_109_nuts", "region_code"]);
49
- });
50
- export const insertOrps = (buffer, columnIndex) => __awaiter(void 0, void 0, void 0, function* () {
51
- return yield insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.orpRuianCode, [
40
+ };
41
+ export const insertOrps = async (buffer, columnIndex) => {
42
+ return await insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.orpRuianCode, [
52
43
  columnIndex.orpName,
53
44
  columnIndex.orpCsuCode65,
54
45
  columnIndex.regionRuianCode,
55
46
  columnIndex.countyRuianCode,
56
47
  ]), "orp", ["code", "name", "csu_code_65", "region_code", "county_code"]);
57
- });
58
- export const insertCities = (buffer, columnIndex) => __awaiter(void 0, void 0, void 0, function* () {
59
- return yield insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.cityCode, [columnIndex.cityName]), "city", ["code", "name"]);
60
- });
48
+ };
49
+ export const insertCities = async (buffer, columnIndex) => {
50
+ return await insertMultipleRows(extractKeyValuesPairs(buffer, columnIndex.cityCode, [columnIndex.cityName]), "city", ["code", "name"]);
51
+ };
61
52
  const getColumnIndexFromSchema = (schema) => {
62
53
  const names = schema.tableSchema.columns.map((column) => column.name);
63
54
  const columnIndex = {
@@ -87,4 +78,4 @@ const findOrDie = (columnNames, name) => {
87
78
  }
88
79
  return index;
89
80
  };
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYi9yZWdpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsU0FBUyxFQUNULGtCQUFrQixFQUNuQixNQUFNLE1BQU0sQ0FBQztBQTZCZCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUNsQyxJQUFnQixFQUNoQixNQUEwQixFQUNULEVBQUU7SUFDbkIsTUFBTSxXQUFXLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFckQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbEQsT0FBTyxJQUFJLE1BQU0sY0FBYyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNuRCxPQUFPLElBQUksTUFBTSxVQUFVLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRS9DLG9FQUFvRTtJQUNwRSwrREFBK0Q7SUFDL0QsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUVqRCxNQUFNLElBQUksR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUV6QixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtRQUN0QixNQUFNLElBQUk7YUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ1osTUFBTSxDQUFDO1lBQ04sV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQzdDLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUM3QyxRQUFRLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7U0FDeEMsQ0FBQzthQUNELEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsV0FB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Qy9DLFdBQVcsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDO1FBQ25ELFVBQVUsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUMxQyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLDBCQUEwQixDQUFDO1FBQ2pFLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsMkJBQTJCLENBQUM7UUFDbkUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUM7UUFDcEQsVUFBVSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDO1FBQ3pDLGVBQWUsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQztRQUNqRCxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDO1FBQ3pELG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsMEJBQTBCLENBQUM7UUFDbEUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLENBQUM7S0FDekQsQ0FBQztJQUVGLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLE1BQU0sU0FBUyxHQUFHLENBQUMsV0FBcUIsRUFBRSxJQUFZLEVBQVUsRUFBRTtJQUNoRSxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtRQUNiLE1BQU0sSUFBSSxLQUFLLENBQ2IsV0FBVyxJQUFJLG9VQUFvVSxDQUNwVixDQUFDO0tBQ0g7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgZXh0cmFjdEtleVZhbHVlc1BhaXJzLFxyXG4gIGdldEtuZXhEYixcclxuICBpbnNlcnRNdWx0aXBsZVJvd3NcclxufSBmcm9tIFwiLi9kYlwiO1xyXG5cclxuaW50ZXJmYWNlIFJlZ2lvbnNDb2x1bW4ge1xyXG4gIGNpdHlOYW1lOiBudW1iZXI7XHJcbiAgY2l0eUNvZGU6IG51bWJlcjtcclxuICBjaXR5VHlwZTogbnVtYmVyO1xyXG4gIG9ycE5hbWU6IG51bWJlcjtcclxuICBvcnBDc3VDb2RlNjU6IG51bWJlcjtcclxuICBvcnBSdWlhbkNvZGU6IG51bWJlcjtcclxuICBvcnBDaXR5Q29kZTogbnVtYmVyO1xyXG4gIGNvdW50eU5hbWU6IG51bWJlcjtcclxuICBjb3VudHlDc3VDb2RlMTAxTGF1OiBudW1iZXI7XHJcbiAgY291bnR5Q3N1Q29kZTEwOU51dHM6IG51bWJlcjtcclxuICBjb3VudHlSdWlhbkNvZGU6IG51bWJlcjtcclxuICByZWdpb25OYW1lOiBudW1iZXI7XHJcbiAgcmVnaW9uU2hvcnROYW1lOiBudW1iZXI7XHJcbiAgcmVnaW9uQ3N1Q29kZTEwMDogbnVtYmVyO1xyXG4gIHJlZ2lvbkNzdUNvZGUxMDhOdXRzOiBudW1iZXI7XHJcbiAgcmVnaW9uUnVpYW5Db2RlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uc1RhYmxlU2NoZW1hIHtcclxuICB0YWJsZVNjaGVtYToge1xyXG4gICAgY29sdW1uczoge1xyXG4gICAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICB9W107XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydFJlZ2lvbnNBbmRPcnBzID0gYXN5bmMgKFxyXG4gIGRhdGE6IHN0cmluZ1tdW10sXHJcbiAgc2NoZW1hOiBSZWdpb25zVGFibGVTY2hlbWFcclxuKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcclxuICBjb25zdCBjb2x1bW5JbmRleCA9IGdldENvbHVtbkluZGV4RnJvbVNjaGVtYShzY2hlbWEpO1xyXG5cclxuICBsZXQgY2hhbmdlcyA9IDA7XHJcbiAgY2hhbmdlcyArPSBhd2FpdCBpbnNlcnRSZWdpb25zKGRhdGEsIGNvbHVtbkluZGV4KTtcclxuICBjaGFuZ2VzICs9IGF3YWl0IGluc2VydENvdW50aWVzKGRhdGEsIGNvbHVtbkluZGV4KTtcclxuICBjaGFuZ2VzICs9IGF3YWl0IGluc2VydE9ycHMoZGF0YSwgY29sdW1uSW5kZXgpO1xyXG5cclxuICAvLyBjaXRpZXMgYXJlIG1vc3QgbGlrZWx5IGFscmVhZHkgaW5zZXJ0ZWQsIGJ1dCBpbiBjYXNlIHRoZXkncmUgbm90LFxyXG4gIC8vIHdlIG5lZWQgdG8gaW5zZXJ0IHRoZW0gYmVmb3JlIHVwZGF0aW5nIHRoZW0gd2l0aCByZWdpb24gZGF0YVxyXG4gIGNoYW5nZXMgKz0gYXdhaXQgaW5zZXJ0Q2l0aWVzKGRhdGEsIGNvbHVtbkluZGV4KTtcclxuXHJcbiAgY29uc3Qga25leCA9IGdldEtuZXhEYigpO1xyXG5cclxuICBmb3IgKGNvbnN0IHJvdyBvZiBkYXRhKSB7XHJcbiAgICBhd2FpdCBrbmV4XHJcbiAgICAgIC5mcm9tKFwiY2l0eVwiKVxyXG4gICAgICAudXBkYXRlKHtcclxuICAgICAgICByZWdpb25fY29kZTogcm93W2NvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZV0sXHJcbiAgICAgICAgY291bnR5X2NvZGU6IHJvd1tjb2x1bW5JbmRleC5jb3VudHlSdWlhbkNvZGVdLFxyXG4gICAgICAgIG9ycF9jb2RlOiByb3dbY29sdW1uSW5kZXgub3JwUnVpYW5Db2RlXSxcclxuICAgICAgfSlcclxuICAgICAgLndoZXJlKHsgY29kZTogcm93W2NvbHVtbkluZGV4LmNpdHlDb2RlXSB9KTtcclxuICAgIGNoYW5nZXMrKztcclxuICB9XHJcblxyXG4gIHJldHVybiBjaGFuZ2VzO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydFJlZ2lvbnMgPSBhc3luYyAoXHJcbiAgYnVmZmVyOiBzdHJpbmdbXVtdLFxyXG4gIGNvbHVtbkluZGV4OiBSZWdpb25zQ29sdW1uXHJcbik6IFByb21pc2U8bnVtYmVyPiA9PiB7XHJcbiAgcmV0dXJuIGF3YWl0IGluc2VydE11bHRpcGxlUm93cyhcclxuICAgIGV4dHJhY3RLZXlWYWx1ZXNQYWlycyhidWZmZXIsIGNvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZSwgW1xyXG4gICAgICBjb2x1bW5JbmRleC5yZWdpb25OYW1lLFxyXG4gICAgICBjb2x1bW5JbmRleC5yZWdpb25TaG9ydE5hbWUsXHJcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvbkNzdUNvZGUxMDAsXHJcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvbkNzdUNvZGUxMDhOdXRzLFxyXG4gICAgXSksXHJcbiAgICBcInJlZ2lvblwiLFxyXG4gICAgW1wiY29kZVwiLCBcIm5hbWVcIiwgXCJzaG9ydF9uYW1lXCIsIFwiY3N1X2NvZGVfMTAwXCIsIFwiY3N1X2NvZGVfMTA4X251dHNcIl1cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydENvdW50aWVzID0gYXN5bmMgKFxyXG4gIGJ1ZmZlcjogc3RyaW5nW11bXSxcclxuICBjb2x1bW5JbmRleDogUmVnaW9uc0NvbHVtblxyXG4pOiBQcm9taXNlPG51bWJlcj4gPT4ge1xyXG4gIHJldHVybiBhd2FpdCBpbnNlcnRNdWx0aXBsZVJvd3MoXHJcbiAgICBleHRyYWN0S2V5VmFsdWVzUGFpcnMoYnVmZmVyLCBjb2x1bW5JbmRleC5jb3VudHlSdWlhbkNvZGUsIFtcclxuICAgICAgY29sdW1uSW5kZXguY291bnR5TmFtZSxcclxuICAgICAgY29sdW1uSW5kZXguY291bnR5Q3N1Q29kZTEwMUxhdSxcclxuICAgICAgY29sdW1uSW5kZXguY291bnR5Q3N1Q29kZTEwOU51dHMsXHJcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZSxcclxuICAgIF0pLFxyXG4gICAgXCJjb3VudHlcIixcclxuICAgIFtcImNvZGVcIiwgXCJuYW1lXCIsIFwiY3N1X2NvZGVfMTAxX2xhdVwiLCBcImNzdV9jb2RlXzEwOV9udXRzXCIsIFwicmVnaW9uX2NvZGVcIl1cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydE9ycHMgPSBhc3luYyAoXHJcbiAgYnVmZmVyOiBzdHJpbmdbXVtdLFxyXG4gIGNvbHVtbkluZGV4OiBSZWdpb25zQ29sdW1uXHJcbik6IFByb21pc2U8bnVtYmVyPiA9PiB7XHJcbiAgcmV0dXJuIGF3YWl0IGluc2VydE11bHRpcGxlUm93cyhcclxuICAgIGV4dHJhY3RLZXlWYWx1ZXNQYWlycyhidWZmZXIsIGNvbHVtbkluZGV4Lm9ycFJ1aWFuQ29kZSwgW1xyXG4gICAgICBjb2x1bW5JbmRleC5vcnBOYW1lLFxyXG4gICAgICBjb2x1bW5JbmRleC5vcnBDc3VDb2RlNjUsXHJcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZSxcclxuICAgICAgY29sdW1uSW5kZXguY291bnR5UnVpYW5Db2RlLFxyXG4gICAgXSksXHJcbiAgICBcIm9ycFwiLFxyXG4gICAgW1wiY29kZVwiLCBcIm5hbWVcIiwgXCJjc3VfY29kZV82NVwiLCBcInJlZ2lvbl9jb2RlXCIsIFwiY291bnR5X2NvZGVcIl1cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydENpdGllcyA9IGFzeW5jIChcclxuICBidWZmZXI6IHN0cmluZ1tdW10sXHJcbiAgY29sdW1uSW5kZXg6IFJlZ2lvbnNDb2x1bW5cclxuKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcclxuICByZXR1cm4gYXdhaXQgaW5zZXJ0TXVsdGlwbGVSb3dzKFxyXG4gICAgZXh0cmFjdEtleVZhbHVlc1BhaXJzKGJ1ZmZlciwgY29sdW1uSW5kZXguY2l0eUNvZGUsIFtjb2x1bW5JbmRleC5jaXR5TmFtZV0pLFxyXG4gICAgXCJjaXR5XCIsXHJcbiAgICBbXCJjb2RlXCIsIFwibmFtZVwiXVxyXG4gICk7XHJcbn07XHJcblxyXG5jb25zdCBnZXRDb2x1bW5JbmRleEZyb21TY2hlbWEgPSAoXHJcbiAgc2NoZW1hOiBSZWdpb25zVGFibGVTY2hlbWFcclxuKTogUmVnaW9uc0NvbHVtbiA9PiB7XHJcbiAgY29uc3QgbmFtZXMgPSBzY2hlbWEudGFibGVTY2hlbWEuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLm5hbWUpO1xyXG5cclxuICBjb25zdCBjb2x1bW5JbmRleDogUmVnaW9uc0NvbHVtbiA9IHtcclxuICAgIGNpdHlOYW1lOiBmaW5kT3JEaWUobmFtZXMsIFwib2JlY190ZXh0XCIpLFxyXG4gICAgY2l0eUNvZGU6IGZpbmRPckRpZShuYW1lcywgXCJvYmVjX2tvZFwiKSxcclxuICAgIGNpdHlUeXBlOiBmaW5kT3JEaWUobmFtZXMsIFwib2JlY190eXBcIiksXHJcbiAgICBvcnBOYW1lOiBmaW5kT3JEaWUobmFtZXMsIFwib3JwX3RleHRcIiksXHJcbiAgICBvcnBDc3VDb2RlNjU6IGZpbmRPckRpZShuYW1lcywgXCJvcnBfY3N1X2NpczY1X2tvZFwiKSxcclxuICAgIG9ycFJ1aWFuQ29kZTogZmluZE9yRGllKG5hbWVzLCBcIm9ycF9ydWlhbl9rb2RcIiksXHJcbiAgICBvcnBDaXR5Q29kZTogZmluZE9yRGllKG5hbWVzLCBcIm9ycF9zaWRsb19vYmVjX2tvZFwiKSxcclxuICAgIGNvdW50eU5hbWU6IGZpbmRPckRpZShuYW1lcywgXCJva3Jlc190ZXh0XCIpLFxyXG4gICAgY291bnR5Q3N1Q29kZTEwMUxhdTogZmluZE9yRGllKG5hbWVzLCBcIm9rcmVzX2NzdV9jaXMxMDFfbGF1X2tvZFwiKSxcclxuICAgIGNvdW50eUNzdUNvZGUxMDlOdXRzOiBmaW5kT3JEaWUobmFtZXMsIFwib2tyZXNfY3N1X2NpczEwOV9udXRzX2tvZFwiKSxcclxuICAgIGNvdW50eVJ1aWFuQ29kZTogZmluZE9yRGllKG5hbWVzLCBcIm9rcmVzX3J1aWFuX2tvZFwiKSxcclxuICAgIHJlZ2lvbk5hbWU6IGZpbmRPckRpZShuYW1lcywgXCJrcmFqX3RleHRcIiksXHJcbiAgICByZWdpb25TaG9ydE5hbWU6IGZpbmRPckRpZShuYW1lcywgXCJrcmFqX3prcmF0a2FcIiksXHJcbiAgICByZWdpb25Dc3VDb2RlMTAwOiBmaW5kT3JEaWUobmFtZXMsIFwia3Jhal9jc3VfY2lzMTAwX2tvZFwiKSxcclxuICAgIHJlZ2lvbkNzdUNvZGUxMDhOdXRzOiBmaW5kT3JEaWUobmFtZXMsIFwia3Jhal9jc3VfY2lzMTA4X251dHNfa29kXCIpLFxyXG4gICAgcmVnaW9uUnVpYW5Db2RlOiBmaW5kT3JEaWUobmFtZXMsIFwia3Jhal9ydWlhbl92dXNjX2tvZFwiKSxcclxuICB9O1xyXG5cclxuICByZXR1cm4gY29sdW1uSW5kZXg7XHJcbn07XHJcblxyXG5jb25zdCBmaW5kT3JEaWUgPSAoY29sdW1uTmFtZXM6IHN0cmluZ1tdLCBuYW1lOiBzdHJpbmcpOiBudW1iZXIgPT4ge1xyXG4gIGNvbnN0IGluZGV4ID0gY29sdW1uTmFtZXMuaW5kZXhPZihuYW1lKTtcclxuICBpZiAoaW5kZXggPCAwKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgIGBDb2x1bW4gJyR7bmFtZX0nIG5vdCBmb3VuZCBpbiByZWdpb24gc2NoZW1hLiBDaGVjayBodHRwczovL2RhdGEuZ292LmN6L2RhdG92JUMzJUExLXNhZGE/aXJpPWh0dHBzJTNBJTJGJTJGZGF0YS5nb3YuY3olMkZ6ZHJvaiUyRmRhdG92JUMzJUE5LXNhZHklMkYwMDAyNTU5MyUyRjI3MWIwZmI3YzJhYmI3ZjQ0ZTEyYWQ1NzYxNzgyMWIyIGZvciBjdXJyZW50IGRhdGFzZXQgaW5mbyBvciBzZWFyY2ggZm9yICdTdHJ1a3R1cmEgw7p6ZW3DrSDEjFIgc2UgdsWhZW1pIGvDs2R5IMO6emVtw60gb2Qgb2Jjw60gcG8gc3TDoXQgZGxlIMSNw61zZWxuw61rxa8gxIxTw5osIGtsYXNpZmlrYWNlIE5VVFMgYSBrw7Nkxa8gUsOaSUFOLicuYFxyXG4gICAgKTtcclxuICB9XHJcbiAgcmV0dXJuIGluZGV4O1xyXG59O1xyXG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYi9yZWdpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsU0FBUyxFQUNULGtCQUFrQixFQUNuQixNQUFNLE1BQU0sQ0FBQztBQTZCZCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLEVBQ3ZDLElBQWdCLEVBQ2hCLE1BQTBCLEVBQ1QsRUFBRTtJQUNuQixNQUFNLFdBQVcsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVyRCxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDaEIsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsRCxPQUFPLElBQUksTUFBTSxjQUFjLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELE9BQU8sSUFBSSxNQUFNLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFL0Msb0VBQW9FO0lBQ3BFLCtEQUErRDtJQUMvRCxPQUFPLElBQUksTUFBTSxZQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRWpELE1BQU0sSUFBSSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBRXpCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1FBQ3RCLE1BQU0sSUFBSTthQUNQLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDWixNQUFNLENBQUM7WUFDTixXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDN0MsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQzdDLFFBQVEsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQztTQUN4QyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENB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RUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDO1FBQ25ELFVBQVUsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUMxQyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLDBCQUEwQixDQUFDO1FBQ2pFLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsMkJBQTJCLENBQUM7UUFDbkUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUM7UUFDcEQsVUFBVSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDO1FBQ3pDLGVBQWUsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQztRQUNqRCxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDO1FBQ3pELG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsMEJBQTBCLENBQUM7UUFDbEUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLENBQUM7S0FDekQsQ0FBQztJQUVGLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLE1BQU0sU0FBUyxHQUFHLENBQUMsV0FBcUIsRUFBRSxJQUFZLEVBQVUsRUFBRTtJQUNoRSxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtRQUNiLE1BQU0sSUFBSSxLQUFLLENBQ2IsV0FBVyxJQUFJLG9VQUFvVSxDQUNwVixDQUFDO0tBQ0g7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgZXh0cmFjdEtleVZhbHVlc1BhaXJzLFxyXG4gIGdldEtuZXhEYixcclxuICBpbnNlcnRNdWx0aXBsZVJvd3NcclxufSBmcm9tIFwiLi9kYlwiO1xyXG5cclxuaW50ZXJmYWNlIFJlZ2lvbnNDb2x1bW4ge1xyXG4gIGNpdHlOYW1lOiBudW1iZXI7XHJcbiAgY2l0eUNvZGU6IG51bWJlcjtcclxuICBjaXR5VHlwZTogbnVtYmVyO1xyXG4gIG9ycE5hbWU6IG51bWJlcjtcclxuICBvcnBDc3VDb2RlNjU6IG51bWJlcjtcclxuICBvcnBSdWlhbkNvZGU6IG51bWJlcjtcclxuICBvcnBDaXR5Q29kZTogbnVtYmVyO1xyXG4gIGNvdW50eU5hbWU6IG51bWJlcjtcclxuICBjb3VudHlDc3VDb2RlMTAxTGF1OiBudW1iZXI7XHJcbiAgY291bnR5Q3N1Q29kZTEwOU51dHM6IG51bWJlcjtcclxuICBjb3VudHlSdWlhbkNvZGU6IG51bWJlcjtcclxuICByZWdpb25OYW1lOiBudW1iZXI7XHJcbiAgcmVnaW9uU2hvcnROYW1lOiBudW1iZXI7XHJcbiAgcmVnaW9uQ3N1Q29kZTEwMDogbnVtYmVyO1xyXG4gIHJlZ2lvbkNzdUNvZGUxMDhOdXRzOiBudW1iZXI7XHJcbiAgcmVnaW9uUnVpYW5Db2RlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uc1RhYmxlU2NoZW1hIHtcclxuICB0YWJsZVNjaGVtYToge1xyXG4gICAgY29sdW1uczoge1xyXG4gICAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICB9W107XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydFJlZ2lvbnNBbmRPcnBzID0gYXN5bmMgKFxyXG4gIGRhdGE6IHN0cmluZ1tdW10sXHJcbiAgc2NoZW1hOiBSZWdpb25zVGFibGVTY2hlbWFcclxuKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcclxuICBjb25zdCBjb2x1bW5JbmRleCA9IGdldENvbHVtbkluZGV4RnJvbVNjaGVtYShzY2hlbWEpO1xyXG5cclxuICBsZXQgY2hhbmdlcyA9IDA7XHJcbiAgY2hhbmdlcyArPSBhd2FpdCBpbnNlcnRSZWdpb25zKGRhdGEsIGNvbHVtbkluZGV4KTtcclxuICBjaGFuZ2VzICs9IGF3YWl0IGluc2VydENvdW50aWVzKGRhdGEsIGNvbHVtbkluZGV4KTtcclxuICBjaGFuZ2VzICs9IGF3YWl0IGluc2VydE9ycHMoZGF0YSwgY29sdW1uSW5kZXgpO1xyXG5cclxuICAvLyBjaXRpZXMgYXJlIG1vc3QgbGlrZWx5IGFscmVhZHkgaW5zZXJ0ZWQsIGJ1dCBpbiBjYXNlIHRoZXkncmUgbm90LFxyXG4gIC8vIHdlIG5lZWQgdG8gaW5zZXJ0IHRoZW0gYmVmb3JlIHVwZGF0aW5nIHRoZW0gd2l0aCByZWdpb24gZGF0YVxyXG4gIGNoYW5nZXMgKz0gYXdhaXQgaW5zZXJ0Q2l0aWVzKGRhdGEsIGNvbHVtbkluZGV4KTtcclxuXHJcbiAgY29uc3Qga25leCA9IGdldEtuZXhEYigpO1xyXG5cclxuICBmb3IgKGNvbnN0IHJvdyBvZiBkYXRhKSB7XHJcbiAgICBhd2FpdCBrbmV4XHJcbiAgICAgIC5mcm9tKFwiY2l0eVwiKVxyXG4gICAgICAudXBkYXRlKHtcclxuICAgICAgICByZWdpb25fY29kZTogcm93W2NvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZV0sXHJcbiAgICAgICAgY291bnR5X2NvZGU6IHJvd1tjb2x1bW5JbmRleC5jb3VudHlSdWlhbkNvZGVdLFxyXG4gICAgICAgIG9ycF9jb2RlOiByb3dbY29sdW1uSW5kZXgub3JwUnVpYW5Db2RlXSxcclxuICAgICAgfSlcclxuICAgICAgLndoZXJlKHsgY29kZTogcm93W2NvbHVtbkluZGV4LmNpdHlDb2RlXSB9KTtcclxuICAgIGNoYW5nZXMrKztcclxuICB9XHJcblxyXG4gIHJldHVybiBjaGFuZ2VzO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydFJlZ2lvbnMgPSBhc3luYyAoXHJcbiAgYnVmZmVyOiBzdHJpbmdbXVtdLFxyXG4gIGNvbHVtbkluZGV4OiBSZWdpb25zQ29sdW1uXHJcbik6IFByb21pc2U8bnVtYmVyPiA9PiB7XHJcbiAgcmV0dXJuIGF3YWl0IGluc2VydE11bHRpcGxlUm93cyhcclxuICAgIGV4dHJhY3RLZXlWYWx1ZXNQYWlycyhidWZmZXIsIGNvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZSwgW1xyXG4gICAgICBjb2x1bW5JbmRleC5yZWdpb25OYW1lLFxyXG4gICAgICBjb2x1bW5JbmRleC5yZWdpb25TaG9ydE5hbWUsXHJcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvbkNzdUNvZGUxMDAsXHJcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvbkNzdUNvZGUxMDhOdXRzLFxyXG4gICAgXSksXHJcbiAgICBcInJlZ2lvblwiLFxyXG4gICAgW1wiY29kZVwiLCBcIm5hbWVcIiwgXCJzaG9ydF9uYW1lXCIsIFwiY3N1X2NvZGVfMTAwXCIsIFwiY3N1X2NvZGVfMTA4X251dHNcIl1cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydENvdW50aWVzID0gYXN5bmMgKFxyXG4gIGJ1ZmZlcjogc3RyaW5nW11bXSxcclxuICBjb2x1bW5JbmRleDogUmVnaW9uc0NvbHVtblxyXG4pOiBQcm9taXNlPG51bWJlcj4gPT4ge1xyXG4gIHJldHVybiBhd2FpdCBpbnNlcnRNdWx0aXBsZVJvd3MoXHJcbiAgICBleHRyYWN0S2V5VmFsdWVzUGFpcnMoYnVmZmVyLCBjb2x1bW5JbmRleC5jb3VudHlSdWlhbkNvZGUsIFtcclxuICAgICAgY29sdW1uSW5kZXguY291bnR5TmFtZSxcclxuICAgICAgY29sdW1uSW5kZXguY291bnR5Q3N1Q29kZTEwMUxhdSxcclxuICAgICAgY29sdW1uSW5kZXguY291bnR5Q3N1Q29kZTEwOU51dHMsXHJcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZSxcclxuICAgIF0pLFxyXG4gICAgXCJjb3VudHlcIixcclxuICAgIFtcImNvZGVcIiwgXCJuYW1lXCIsIFwiY3N1X2NvZGVfMTAxX2xhdVwiLCBcImNzdV9jb2RlXzEwOV9udXRzXCIsIFwicmVnaW9uX2NvZGVcIl1cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydE9ycHMgPSBhc3luYyAoXHJcbiAgYnVmZmVyOiBzdHJpbmdbXVtdLFxyXG4gIGNvbHVtbkluZGV4OiBSZWdpb25zQ29sdW1uXHJcbik6IFByb21pc2U8bnVtYmVyPiA9PiB7XHJcbiAgcmV0dXJuIGF3YWl0IGluc2VydE11bHRpcGxlUm93cyhcclxuICAgIGV4dHJhY3RLZXlWYWx1ZXNQYWlycyhidWZmZXIsIGNvbHVtbkluZGV4Lm9ycFJ1aWFuQ29kZSwgW1xyXG4gICAgICBjb2x1bW5JbmRleC5vcnBOYW1lLFxyXG4gICAgICBjb2x1bW5JbmRleC5vcnBDc3VDb2RlNjUsXHJcbiAgICAgIGNvbHVtbkluZGV4LnJlZ2lvblJ1aWFuQ29kZSxcclxuICAgICAgY29sdW1uSW5kZXguY291bnR5UnVpYW5Db2RlLFxyXG4gICAgXSksXHJcbiAgICBcIm9ycFwiLFxyXG4gICAgW1wiY29kZVwiLCBcIm5hbWVcIiwgXCJjc3VfY29kZV82NVwiLCBcInJlZ2lvbl9jb2RlXCIsIFwiY291bnR5X2NvZGVcIl1cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydENpdGllcyA9IGFzeW5jIChcclxuICBidWZmZXI6IHN0cmluZ1tdW10sXHJcbiAgY29sdW1uSW5kZXg6IFJlZ2lvbnNDb2x1bW5cclxuKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcclxuICByZXR1cm4gYXdhaXQgaW5zZXJ0TXVsdGlwbGVSb3dzKFxyXG4gICAgZXh0cmFjdEtleVZhbHVlc1BhaXJzKGJ1ZmZlciwgY29sdW1uSW5kZXguY2l0eUNvZGUsIFtjb2x1bW5JbmRleC5jaXR5TmFtZV0pLFxyXG4gICAgXCJjaXR5XCIsXHJcbiAgICBbXCJjb2RlXCIsIFwibmFtZVwiXVxyXG4gICk7XHJcbn07XHJcblxyXG5jb25zdCBnZXRDb2x1bW5JbmRleEZyb21TY2hlbWEgPSAoXHJcbiAgc2NoZW1hOiBSZWdpb25zVGFibGVTY2hlbWFcclxuKTogUmVnaW9uc0NvbHVtbiA9PiB7XHJcbiAgY29uc3QgbmFtZXMgPSBzY2hlbWEudGFibGVTY2hlbWEuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLm5hbWUpO1xyXG5cclxuICBjb25zdCBjb2x1bW5JbmRleDogUmVnaW9uc0NvbHVtbiA9IHtcclxuICAgIGNpdHlOYW1lOiBmaW5kT3JEaWUobmFtZXMsIFwib2JlY190ZXh0XCIpLFxyXG4gICAgY2l0eUNvZGU6IGZpbmRPckRpZShuYW1lcywgXCJvYmVjX2tvZFwiKSxcclxuICAgIGNpdHlUeXBlOiBmaW5kT3JEaWUobmFtZXMsIFwib2JlY190eXBcIiksXHJcbiAgICBvcnBOYW1lOiBmaW5kT3JEaWUobmFtZXMsIFwib3JwX3RleHRcIiksXHJcbiAgICBvcnBDc3VDb2RlNjU6IGZpbmRPckRpZShuYW1lcywgXCJvcnBfY3N1X2NpczY1X2tvZFwiKSxcclxuICAgIG9ycFJ1aWFuQ29kZTogZmluZE9yRGllKG5hbWVzLCBcIm9ycF9ydWlhbl9rb2RcIiksXHJcbiAgICBvcnBDaXR5Q29kZTogZmluZE9yRGllKG5hbWVzLCBcIm9ycF9zaWRsb19vYmVjX2tvZFwiKSxcclxuICAgIGNvdW50eU5hbWU6IGZpbmRPckRpZShuYW1lcywgXCJva3Jlc190ZXh0XCIpLFxyXG4gICAgY291bnR5Q3N1Q29kZTEwMUxhdTogZmluZE9yRGllKG5hbWVzLCBcIm9rcmVzX2NzdV9jaXMxMDFfbGF1X2tvZFwiKSxcclxuICAgIGNvdW50eUNzdUNvZGUxMDlOdXRzOiBmaW5kT3JEaWUobmFtZXMsIFwib2tyZXNfY3N1X2NpczEwOV9udXRzX2tvZFwiKSxcclxuICAgIGNvdW50eVJ1aWFuQ29kZTogZmluZE9yRGllKG5hbWVzLCBcIm9rcmVzX3J1aWFuX2tvZFwiKSxcclxuICAgIHJlZ2lvbk5hbWU6IGZpbmRPckRpZShuYW1lcywgXCJrcmFqX3RleHRcIiksXHJcbiAgICByZWdpb25TaG9ydE5hbWU6IGZpbmRPckRpZShuYW1lcywgXCJrcmFqX3prcmF0a2FcIiksXHJcbiAgICByZWdpb25Dc3VDb2RlMTAwOiBmaW5kT3JEaWUobmFtZXMsIFwia3Jhal9jc3VfY2lzMTAwX2tvZFwiKSxcclxuICAgIHJlZ2lvbkNzdUNvZGUxMDhOdXRzOiBmaW5kT3JEaWUobmFtZXMsIFwia3Jhal9jc3VfY2lzMTA4X251dHNfa29kXCIpLFxyXG4gICAgcmVnaW9uUnVpYW5Db2RlOiBmaW5kT3JEaWUobmFtZXMsIFwia3Jhal9ydWlhbl92dXNjX2tvZFwiKSxcclxuICB9O1xyXG5cclxuICByZXR1cm4gY29sdW1uSW5kZXg7XHJcbn07XHJcblxyXG5jb25zdCBmaW5kT3JEaWUgPSAoY29sdW1uTmFtZXM6IHN0cmluZ1tdLCBuYW1lOiBzdHJpbmcpOiBudW1iZXIgPT4ge1xyXG4gIGNvbnN0IGluZGV4ID0gY29sdW1uTmFtZXMuaW5kZXhPZihuYW1lKTtcclxuICBpZiAoaW5kZXggPCAwKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgIGBDb2x1bW4gJyR7bmFtZX0nIG5vdCBmb3VuZCBpbiByZWdpb24gc2NoZW1hLiBDaGVjayBodHRwczovL2RhdGEuZ292LmN6L2RhdG92JUMzJUExLXNhZGE/aXJpPWh0dHBzJTNBJTJGJTJGZGF0YS5nb3YuY3olMkZ6ZHJvaiUyRmRhdG92JUMzJUE5LXNhZHklMkYwMDAyNTU5MyUyRjI3MWIwZmI3YzJhYmI3ZjQ0ZTEyYWQ1NzYxNzgyMWIyIGZvciBjdXJyZW50IGRhdGFzZXQgaW5mbyBvciBzZWFyY2ggZm9yICdTdHJ1a3R1cmEgw7p6ZW3DrSDEjFIgc2UgdsWhZW1pIGvDs2R5IMO6emVtw60gb2Qgb2Jjw60gcG8gc3TDoXQgZGxlIMSNw61zZWxuw61rxa8gxIxTw5osIGtsYXNpZmlrYWNlIE5VVFMgYSBrw7Nkxa8gUsOaSUFOLicuYFxyXG4gICAgKTtcclxuICB9XHJcbiAgcmV0dXJuIGluZGV4O1xyXG59O1xyXG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { SmdError } from "../street-markdown/types";
2
2
  import { School } from "./types";
3
3
  export declare const insertSchools: (schools: School[]) => Promise<number>;
4
- export declare const findSchool: (name: string, schools: School[]) => {
4
+ export declare const findSchool: (name: string, schools: School[], maxDistance?: number) => {
5
5
  school: School | null;
6
6
  errors: SmdError[];
7
7
  };
@@ -1,28 +1,19 @@
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 { wholeLineError } from "../street-markdown/smd";
11
2
  import { findClosestString } from "../utils/helpers";
12
3
  import { getKnexDb, insertMultipleRows } from "./db";
13
- export const insertSchools = (schools) => __awaiter(void 0, void 0, void 0, function* () {
4
+ export const insertSchools = async (schools) => {
14
5
  const knex = getKnexDb();
15
6
  const uniqueSchools = filterOutDuplicates(schools);
16
- const existingIzo = (yield knex.select("izo").from("school")).map((row) => row.izo);
7
+ const existingIzo = (await knex.select("izo").from("school")).map((row) => row.izo);
17
8
  const toInsert = uniqueSchools.filter((school) => !existingIzo.includes(school.izo));
18
9
  const toUpdate = uniqueSchools.filter((school) => existingIzo.includes(school.izo));
19
10
  for (const school of toUpdate) {
20
- yield knex.from("school").where("izo", school.izo).update({
11
+ await knex.from("school").where("izo", school.izo).update({
21
12
  name: school.name,
22
13
  capacity: school.capacity,
23
14
  });
24
15
  }
25
- const insertedSchools = yield insertMultipleRows(toInsert.map((school) => [
16
+ const insertedSchools = await insertMultipleRows(toInsert.map((school) => [
26
17
  school.izo,
27
18
  school.redizo,
28
19
  school.name,
@@ -38,32 +29,35 @@ export const insertSchools = (schools) => __awaiter(void 0, void 0, void 0, func
38
29
  // plus filter out duplicate locations (same address id + izo)
39
30
  for (const location of locations) {
40
31
  try {
41
- insertedLocations += yield insertMultipleRows([location], "school_location", ["school_izo", "address_point_id"], true);
32
+ insertedLocations += await insertMultipleRows([location], "school_location", ["school_izo", "address_point_id"], true);
42
33
  }
43
34
  catch (error) {
44
35
  console.log(`Cannot add location with RUIAN code ${location[1]} (school IZO = ${location[0]}): code does not exist.`);
45
36
  }
46
37
  }
47
38
  return insertedSchools + insertedLocations;
48
- });
49
- export const findSchool = (name, schools) => {
39
+ };
40
+ export const findSchool = (name, schools, maxDistance) => {
50
41
  if (schools.length === 0) {
51
42
  return {
52
43
  school: null,
53
44
  errors: [wholeLineError("Aktuální zřizovatel nemá žádné školy.", name)],
54
45
  };
55
46
  }
56
- let school = null;
57
47
  const errors = [];
58
- school = schools.find((school) => school.name === name);
59
- if (school) {
60
- return { school, errors };
48
+ const exactSchool = schools.find((school) => school.name === name);
49
+ if (exactSchool) {
50
+ return { school: exactSchool, errors };
61
51
  }
62
52
  const namesList = schools.map((school) => school.name);
63
- const bestMatch = findClosestString(name, namesList);
64
- school = schools.find((school) => bestMatch === school.name);
53
+ const bestMatch = findClosestString(name, namesList, maxDistance);
54
+ if (bestMatch === null) {
55
+ errors.push(wholeLineError(`Škola s názvem '${name}' neexistuje.`, name));
56
+ return { school: null, errors };
57
+ }
58
+ const closestSchool = schools.find((school) => bestMatch === school.name);
65
59
  errors.push(wholeLineError(`Škola s názvem '${name}' neexistuje, mysleli jste '${bestMatch}'?`, name));
66
- return { school, errors };
60
+ return { school: closestSchool, errors };
67
61
  };
68
62
  const filterOutDuplicates = (schools) => {
69
63
  const izoSet = new Set();
@@ -73,4 +67,4 @@ const filterOutDuplicates = (schools) => {
73
67
  return !duplicate;
74
68
  });
75
69
  };
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nob29scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYi9zY2hvb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3JELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFPLE9BQWlCLEVBQW1CLEVBQUU7SUFDeEUsTUFBTSxJQUFJLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFFekIsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUMvRCxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FDakIsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQ25DLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUM5QyxDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQy9DLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUNqQyxDQUFDO0lBRUYsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLEVBQUU7UUFDN0IsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxD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QUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQUMsT0FBaUIsRUFBWSxFQUFFO0lBQzFELE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDekIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDL0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdob2xlTGluZUVycm9yIH0gZnJvbSBcIi4uL3N0cmVldC1tYXJrZG93bi9zbWRcIjtcclxuaW1wb3J0IHsgU21kRXJyb3IgfSBmcm9tIFwiLi4vc3RyZWV0LW1hcmtkb3duL3R5cGVzXCI7XHJcbmltcG9ydCB7IGZpbmRDbG9zZXN0U3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2hlbHBlcnNcIjtcclxuaW1wb3J0IHsgZ2V0S25leERiLCBpbnNlcnRNdWx0aXBsZVJvd3MgfSBmcm9tIFwiLi9kYlwiO1xyXG5pbXBvcnQgeyBTY2hvb2wgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGluc2VydFNjaG9vbHMgPSBhc3luYyAoc2Nob29sczogU2Nob29sW10pOiBQcm9taXNlPG51bWJlcj4gPT4ge1xyXG4gIGNvbnN0IGtuZXggPSBnZXRLbmV4RGIoKTtcclxuXHJcbiAgY29uc3QgdW5pcXVlU2Nob29scyA9IGZpbHRlck91dER1cGxpY2F0ZXMoc2Nob29scyk7XHJcbiAgY29uc3QgZXhpc3RpbmdJem8gPSAoYXdhaXQga25leC5zZWxlY3QoXCJpem9cIikuZnJvbShcInNjaG9vbFwiKSkubWFwKFxyXG4gICAgKHJvdykgPT4gcm93Lml6b1xyXG4gICk7XHJcblxyXG4gIGNvbnN0IHRvSW5zZXJ0ID0gdW5pcXVlU2Nob29scy5maWx0ZXIoXHJcbiAgICAoc2Nob29sKSA9PiAhZXhpc3RpbmdJem8uaW5jbHVkZXMoc2Nob29sLml6bylcclxuICApO1xyXG4gIGNvbnN0IHRvVXBkYXRlID0gdW5pcXVlU2Nob29scy5maWx0ZXIoKHNjaG9vbCkgPT5cclxuICAgIGV4aXN0aW5nSXpvLmluY2x1ZGVzKHNjaG9vbC5pem8pXHJcbiAgKTtcclxuXHJcbiAgZm9yIChjb25zdCBzY2hvb2wgb2YgdG9VcGRhdGUpIHtcclxuICAgIGF3YWl0IGtuZXguZnJvbShcInNjaG9vbFwiKS53aGVyZShcIml6b1wiLCBzY2hvb2wuaXpvKS51cGRhdGUoe1xyXG4gICAgICBuYW1lOiBzY2hvb2wubmFtZSxcclxuICAgICAgY2FwYWNpdHk6IHNjaG9vbC5jYXBhY2l0eSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgaW5zZXJ0ZWRTY2hvb2xzID0gYXdhaXQgaW5zZXJ0TXVsdGlwbGVSb3dzKFxyXG4gICAgdG9JbnNlcnQubWFwKChzY2hvb2wpID0+IFtcclxuICAgICAgc2Nob29sLml6byxcclxuICAgICAgc2Nob29sLnJlZGl6byxcclxuICAgICAgc2Nob29sLm5hbWUsXHJcbiAgICAgIHNjaG9vbC5jYXBhY2l0eS50b1N0cmluZygpLFxyXG4gICAgXSksXHJcbiAgICBcInNjaG9vbFwiLFxyXG4gICAgW1wiaXpvXCIsIFwicmVkaXpvXCIsIFwibmFtZVwiLCBcImNhcGFjaXR5XCJdXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgbG9jYXRpb25zID0gdG9JbnNlcnRcclxuICAgIC5maWx0ZXIoKHNjaG9vbCkgPT4gc2Nob29sLmxvY2F0aW9ucy5sZW5ndGggPiAwKVxyXG4gICAgLm1hcCgoc2Nob29sKSA9PiBbXHJcbiAgICAgIHNjaG9vbC5pem8sXHJcbiAgICAgIHNjaG9vbC5sb2NhdGlvbnNbMF0uYWRkcmVzc1BvaW50SWQudG9TdHJpbmcoKSwgLy8gYWRkIG9ubHkgZmlyc3QgbG9jYXRpb25cclxuICAgIF0pO1xyXG5cclxuICBsZXQgaW5zZXJ0ZWRMb2NhdGlvbnMgPSAwO1xyXG5cclxuICAvLyBwbHVzIGZpbHRlciBvdXQgZHVwbGljYXRlIGxvY2F0aW9ucyAoc2FtZSBhZGRyZXNzIGlkICsgaXpvKVxyXG4gIGZvciAoY29uc3QgbG9jYXRpb24gb2YgbG9jYXRpb25zKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpbnNlcnRlZExvY2F0aW9ucyArPSBhd2FpdCBpbnNlcnRNdWx0aXBsZVJvd3MoXHJcbiAgICAgICAgW2xvY2F0aW9uXSxcclxuICAgICAgICBcInNjaG9vbF9sb2NhdGlvblwiLFxyXG4gICAgICAgIFtcInNjaG9vbF9pem9cIiwgXCJhZGRyZXNzX3BvaW50X2lkXCJdLFxyXG4gICAgICAgIHRydWVcclxuICAgICAgKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIGBDYW5ub3QgYWRkIGxvY2F0aW9uIHdpdGggUlVJQU4gY29kZSAke2xvY2F0aW9uWzFdfSAoc2Nob29sIElaTyA9ICR7bG9jYXRpb25bMF19KTogY29kZSBkb2VzIG5vdCBleGlzdC5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW5zZXJ0ZWRTY2hvb2xzICsgaW5zZXJ0ZWRMb2NhdGlvbnM7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZmluZFNjaG9vbCA9IChcclxuICBuYW1lOiBzdHJpbmcsXHJcbiAgc2Nob29sczogU2Nob29sW11cclxuKTogeyBzY2hvb2w6IFNjaG9vbCB8IG51bGw7IGVycm9yczogU21kRXJyb3JbXSB9ID0+IHtcclxuICBpZiAoc2Nob29scy5sZW5ndGggPT09IDApIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNjaG9vbDogbnVsbCxcclxuICAgICAgZXJyb3JzOiBbd2hvbGVMaW5lRXJyb3IoXCJBa3R1w6FsbsOtIHrFmWl6b3ZhdGVsIG5lbcOhIMW+w6FkbsOpIMWha29seS5cIiwgbmFtZSldLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGxldCBzY2hvb2w6IFNjaG9vbCB8IG51bGwgPSBudWxsO1xyXG4gIGNvbnN0IGVycm9yczogU21kRXJyb3JbXSA9IFtdO1xyXG5cclxuICBzY2hvb2wgPSBzY2hvb2xzLmZpbmQoKHNjaG9vbCkgPT4gc2Nob29sLm5hbWUgPT09IG5hbWUpO1xyXG4gIGlmIChzY2hvb2wpIHtcclxuICAgIHJldHVybiB7IHNjaG9vbCwgZXJyb3JzIH07XHJcbiAgfVxyXG5cclxuICBjb25zdCBuYW1lc0xpc3QgPSBzY2hvb2xzLm1hcCgoc2Nob29sKSA9PiBzY2hvb2wubmFtZSk7XHJcbiAgY29uc3QgYmVzdE1hdGNoID0gZmluZENsb3Nlc3RTdHJpbmcobmFtZSwgbmFtZXNMaXN0KTtcclxuICBzY2hvb2wgPSBzY2hvb2xzLmZpbmQoKHNjaG9vbCkgPT4gYmVzdE1hdGNoID09PSBzY2hvb2wubmFtZSk7XHJcblxyXG4gIGVycm9ycy5wdXNoKFxyXG4gICAgd2hvbGVMaW5lRXJyb3IoXHJcbiAgICAgIGDFoGtvbGEgcyBuw6F6dmVtICcke25hbWV9JyBuZWV4aXN0dWplLCBteXNsZWxpIGpzdGUgJyR7YmVzdE1hdGNofSc/YCxcclxuICAgICAgbmFtZVxyXG4gICAgKVxyXG4gICk7XHJcblxyXG4gIHJldHVybiB7IHNjaG9vbCwgZXJyb3JzIH07XHJcbn07XHJcblxyXG5jb25zdCBmaWx0ZXJPdXREdXBsaWNhdGVzID0gKHNjaG9vbHM6IFNjaG9vbFtdKTogU2Nob29sW10gPT4ge1xyXG4gIGNvbnN0IGl6b1NldCA9IG5ldyBTZXQoKTtcclxuICByZXR1cm4gc2Nob29scy5maWx0ZXIoKHNjaG9vbCkgPT4ge1xyXG4gICAgY29uc3QgZHVwbGljYXRlID0gaXpvU2V0LmhhcyhzY2hvb2wuaXpvKTtcclxuICAgIGl6b1NldC5hZGQoc2Nob29sLml6byk7XHJcbiAgICByZXR1cm4gIWR1cGxpY2F0ZTtcclxuICB9KTtcclxufTtcclxuIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nob29scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYi9zY2hvb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3JELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQUUsT0FBaUIsRUFBbUIsRUFBRTtJQUN4RSxNQUFNLElBQUksR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUV6QixNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRCxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQy9ELENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUNqQixDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FDbkMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQzlDLENBQUM7SUFDRixNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDL0MsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQ2pDLENBQUM7SUFFRixLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsRUFBRTtRQUM3QixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMs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QUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFFLE1BQU0sQ0FBQyxJQUFJLENBQ1QsY0FBYyxDQUNaLG1CQUFtQixJQUFJLCtCQUErQixTQUFTLElBQUksRUFDbkUsSUFBSSxDQUNMLENBQ0YsQ0FBQztJQUVGLE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQzNDLENBQUMsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxPQUFpQixFQUFZLEVBQUU7SUFDMUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUN6QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUMvQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2hvbGVMaW5lRXJyb3IgfSBmcm9tIFwiLi4vc3RyZWV0LW1hcmtkb3duL3NtZFwiO1xyXG5pbXBvcnQgeyBTbWRFcnJvciB9IGZyb20gXCIuLi9zdHJlZXQtbWFya2Rvd24vdHlwZXNcIjtcclxuaW1wb3J0IHsgZmluZENsb3Nlc3RTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbHMvaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBnZXRLbmV4RGIsIGluc2VydE11bHRpcGxlUm93cyB9IGZyb20gXCIuL2RiXCI7XHJcbmltcG9ydCB7IFNjaG9vbCB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgaW5zZXJ0U2Nob29scyA9IGFzeW5jIChzY2hvb2xzOiBTY2hvb2xbXSk6IFByb21pc2U8bnVtYmVyPiA9PiB7XHJcbiAgY29uc3Qga25leCA9IGdldEtuZXhEYigpO1xyXG5cclxuICBjb25zdCB1bmlxdWVTY2hvb2xzID0gZmlsdGVyT3V0RHVwbGljYXRlcyhzY2hvb2xzKTtcclxuICBjb25zdCBleGlzdGluZ0l6byA9IChhd2FpdCBrbmV4LnNlbGVjdChcIml6b1wiKS5mcm9tKFwic2Nob29sXCIpKS5tYXAoXHJcbiAgICAocm93KSA9PiByb3cuaXpvXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgdG9JbnNlcnQgPSB1bmlxdWVTY2hvb2xzLmZpbHRlcihcclxuICAgIChzY2hvb2wpID0+ICFleGlzdGluZ0l6by5pbmNsdWRlcyhzY2hvb2wuaXpvKVxyXG4gICk7XHJcbiAgY29uc3QgdG9VcGRhdGUgPSB1bmlxdWVTY2hvb2xzLmZpbHRlcigoc2Nob29sKSA9PlxyXG4gICAgZXhpc3RpbmdJem8uaW5jbHVkZXMoc2Nob29sLml6bylcclxuICApO1xyXG5cclxuICBmb3IgKGNvbnN0IHNjaG9vbCBvZiB0b1VwZGF0ZSkge1xyXG4gICAgYXdhaXQga25leC5mcm9tKFwic2Nob29sXCIpLndoZXJlKFwiaXpvXCIsIHNjaG9vbC5pem8pLnVwZGF0ZSh7XHJcbiAgICAgIG5hbWU6IHNjaG9vbC5uYW1lLFxyXG4gICAgICBjYXBhY2l0eTogc2Nob29sLmNhcGFjaXR5LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBpbnNlcnRlZFNjaG9vbHMgPSBhd2FpdCBpbnNlcnRNdWx0aXBsZVJvd3MoXHJcbiAgICB0b0luc2VydC5tYXAoKHNjaG9vbCkgPT4gW1xyXG4gICAgICBzY2hvb2wuaXpvLFxyXG4gICAgICBzY2hvb2wucmVkaXpvLFxyXG4gICAgICBzY2hvb2wubmFtZSxcclxuICAgICAgc2Nob29sLmNhcGFjaXR5LnRvU3RyaW5nKCksXHJcbiAgICBdKSxcclxuICAgIFwic2Nob29sXCIsXHJcbiAgICBbXCJpem9cIiwgXCJyZWRpem9cIiwgXCJuYW1lXCIsIFwiY2FwYWNpdHlcIl1cclxuICApO1xyXG5cclxuICBjb25zdCBsb2NhdGlvbnMgPSB0b0luc2VydFxyXG4gICAgLmZpbHRlcigoc2Nob29sKSA9PiBzY2hvb2wubG9jYXRpb25zLmxlbmd0aCA+IDApXHJcbiAgICAubWFwKChzY2hvb2wpID0+IFtcclxuICAgICAgc2Nob29sLml6byxcclxuICAgICAgc2Nob29sLmxvY2F0aW9uc1swXS5hZGRyZXNzUG9pbnRJZC50b1N0cmluZygpLCAvLyBhZGQgb25seSBmaXJzdCBsb2NhdGlvblxyXG4gICAgXSk7XHJcblxyXG4gIGxldCBpbnNlcnRlZExvY2F0aW9ucyA9IDA7XHJcblxyXG4gIC8vIHBsdXMgZmlsdGVyIG91dCBkdXBsaWNhdGUgbG9jYXRpb25zIChzYW1lIGFkZHJlc3MgaWQgKyBpem8pXHJcbiAgZm9yIChjb25zdCBsb2NhdGlvbiBvZiBsb2NhdGlvbnMpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGluc2VydGVkTG9jYXRpb25zICs9IGF3YWl0IGluc2VydE11bHRpcGxlUm93cyhcclxuICAgICAgICBbbG9jYXRpb25dLFxyXG4gICAgICAgIFwic2Nob29sX2xvY2F0aW9uXCIsXHJcbiAgICAgICAgW1wic2Nob29sX2l6b1wiLCBcImFkZHJlc3NfcG9pbnRfaWRcIl0sXHJcbiAgICAgICAgdHJ1ZVxyXG4gICAgICApO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgYENhbm5vdCBhZGQgbG9jYXRpb24gd2l0aCBSVUlBTiBjb2RlICR7bG9jYXRpb25bMV19IChzY2hvb2wgSVpPID0gJHtsb2NhdGlvblswXX0pOiBjb2RlIGRvZXMgbm90IGV4aXN0LmBcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBpbnNlcnRlZFNjaG9vbHMgKyBpbnNlcnRlZExvY2F0aW9ucztcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBmaW5kU2Nob29sID0gKFxyXG4gIG5hbWU6IHN0cmluZyxcclxuICBzY2hvb2xzOiBTY2hvb2xbXSxcclxuICBtYXhEaXN0YW5jZT86IG51bWJlclxyXG4pOiB7IHNjaG9vbDogU2Nob29sIHwgbnVsbDsgZXJyb3JzOiBTbWRFcnJvcltdIH0gPT4ge1xyXG4gIGlmIChzY2hvb2xzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2Nob29sOiBudWxsLFxyXG4gICAgICBlcnJvcnM6IFt3aG9sZUxpbmVFcnJvcihcIkFrdHXDoWxuw60gesWZaXpvdmF0ZWwgbmVtw6Egxb7DoWRuw6kgxaFrb2x5LlwiLCBuYW1lKV0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZXJyb3JzOiBTbWRFcnJvcltdID0gW107XHJcblxyXG4gIGNvbnN0IGV4YWN0U2Nob29sID0gc2Nob29scy5maW5kKChzY2hvb2wpID0+IHNjaG9vbC5uYW1lID09PSBuYW1lKTtcclxuICBpZiAoZXhhY3RTY2hvb2wpIHtcclxuICAgIHJldHVybiB7IHNjaG9vbDogZXhhY3RTY2hvb2wsIGVycm9ycyB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbmFtZXNMaXN0ID0gc2Nob29scy5tYXAoKHNjaG9vbCkgPT4gc2Nob29sLm5hbWUpO1xyXG4gIGNvbnN0IGJlc3RNYXRjaCA9IGZpbmRDbG9zZXN0U3RyaW5nKG5hbWUsIG5hbWVzTGlzdCwgbWF4RGlzdGFuY2UpO1xyXG4gIGlmIChiZXN0TWF0Y2ggPT09IG51bGwpIHtcclxuICAgIGVycm9ycy5wdXNoKHdob2xlTGluZUVycm9yKGDFoGtvbGEgcyBuw6F6dmVtICcke25hbWV9JyBuZWV4aXN0dWplLmAsIG5hbWUpKTtcclxuICAgIHJldHVybiB7IHNjaG9vbDogbnVsbCwgZXJyb3JzIH07XHJcbiAgfVxyXG4gIGNvbnN0IGNsb3Nlc3RTY2hvb2wgPSBzY2hvb2xzLmZpbmQoKHNjaG9vbCkgPT4gYmVzdE1hdGNoID09PSBzY2hvb2wubmFtZSk7XHJcblxyXG4gIGVycm9ycy5wdXNoKFxyXG4gICAgd2hvbGVMaW5lRXJyb3IoXHJcbiAgICAgIGDFoGtvbGEgcyBuw6F6dmVtICcke25hbWV9JyBuZWV4aXN0dWplLCBteXNsZWxpIGpzdGUgJyR7YmVzdE1hdGNofSc/YCxcclxuICAgICAgbmFtZVxyXG4gICAgKVxyXG4gICk7XHJcblxyXG4gIHJldHVybiB7IHNjaG9vbDogY2xvc2VzdFNjaG9vbCwgZXJyb3JzIH07XHJcbn07XHJcblxyXG5jb25zdCBmaWx0ZXJPdXREdXBsaWNhdGVzID0gKHNjaG9vbHM6IFNjaG9vbFtdKTogU2Nob29sW10gPT4ge1xyXG4gIGNvbnN0IGl6b1NldCA9IG5ldyBTZXQoKTtcclxuICByZXR1cm4gc2Nob29scy5maWx0ZXIoKHNjaG9vbCkgPT4ge1xyXG4gICAgY29uc3QgZHVwbGljYXRlID0gaXpvU2V0LmhhcyhzY2hvb2wuaXpvKTtcclxuICAgIGl6b1NldC5hZGQoc2Nob29sLml6byk7XHJcbiAgICByZXR1cm4gIWR1cGxpY2F0ZTtcclxuICB9KTtcclxufTtcclxuIl19
@@ -1,28 +1,19 @@
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 { deleteMultipleRowsKnex, getKnexDb, insertMultipleRows } from "./db";
11
- export const setStreetAsSynced = (streetFeedUrl) => __awaiter(void 0, void 0, void 0, function* () {
12
- yield getKnexDb()("street_sync")
2
+ export const setStreetAsSynced = async (streetFeedUrl) => {
3
+ await getKnexDb()("street_sync")
13
4
  .insert({ feed_url: streetFeedUrl })
14
5
  .onConflict("feed_url")
15
6
  .ignore();
16
- });
17
- export const getAllSyncedStreets = () => __awaiter(void 0, void 0, void 0, function* () {
18
- return new Set(yield getKnexDb()("street_sync")
7
+ };
8
+ export const getAllSyncedStreets = async () => {
9
+ return new Set(await getKnexDb()("street_sync")
19
10
  .select("feed_url")
20
11
  .then((rows) => rows.map((row) => row.feed_url)));
21
- });
22
- export const deleteStreets = (streetUrls) => __awaiter(void 0, void 0, void 0, function* () {
23
- yield deleteMultipleRowsKnex(streetUrls, "street_sync", "feed_url");
24
- });
25
- export const insertStreetsFromDbf = (data) => __awaiter(void 0, void 0, void 0, function* () {
26
- return yield insertMultipleRows(data.map((street) => [street.KOD, street.OBEC_KOD, street.NAZEV]), "street", ["code", "city_code", "name"]);
27
- });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWV0LXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGIvc3RyZWV0LXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixTQUFTLEVBQ1Qsa0JBQWtCLEVBQ25CLE1BQU0sTUFBTSxDQUFDO0FBR2QsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FDL0IsYUFBcUIsRUFDTixFQUFFO0lBQ2pCLE1BQU0sU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsQ0FBQztTQUNuQyxVQUFVLENBQUMsVUFBVSxDQUFDO1NBQ3RCLE1BQU0sRUFBRSxDQUFDO0FBQ2QsQ0FBQyxDQUFBLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUErQixFQUFFO0lBQ2xFLE9BQU8sSUFBSSxHQUFHLENBQ1osTUFBTSxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUM7U0FDN0IsTUFBTSxDQUFDLFVBQVUsQ0FBQztTQUNsQixJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUNuRCxDQUFDO0FBQ0osQ0FBQyxDQUFBLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBTyxVQUFvQixFQUFpQixFQUFFO0lBQ3pFLE1BQU0sc0JBQXNCLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN0RSxDQUFDLENBQUEsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQ2xDLElBQWlCLEVBQ0EsRUFBRTtJQUNuQixPQUFPLE1BQU0sa0JBQWtCLENBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNqRSxRQUFRLEVBQ1IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUM5QixDQUFDO0FBQ0osQ0FBQyxDQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGRlbGV0ZU11bHRpcGxlUm93c0tuZXgsXHJcbiAgZ2V0S25leERiLFxyXG4gIGluc2VydE11bHRpcGxlUm93c1xyXG59IGZyb20gXCIuL2RiXCI7XHJcbmltcG9ydCB7IERiZlN0cmVldCB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG5leHBvcnQgY29uc3Qgc2V0U3RyZWV0QXNTeW5jZWQgPSBhc3luYyAoXHJcbiAgc3RyZWV0RmVlZFVybDogc3RyaW5nXHJcbik6IFByb21pc2U8dm9pZD4gPT4ge1xyXG4gIGF3YWl0IGdldEtuZXhEYigpKFwic3RyZWV0X3N5bmNcIilcclxuICAgIC5pbnNlcnQoeyBmZWVkX3VybDogc3RyZWV0RmVlZFVybCB9KVxyXG4gICAgLm9uQ29uZmxpY3QoXCJmZWVkX3VybFwiKVxyXG4gICAgLmlnbm9yZSgpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldEFsbFN5bmNlZFN0cmVldHMgPSBhc3luYyAoKTogUHJvbWlzZTxTZXQ8c3RyaW5nPj4gPT4ge1xyXG4gIHJldHVybiBuZXcgU2V0PHN0cmluZz4oXHJcbiAgICBhd2FpdCBnZXRLbmV4RGIoKShcInN0cmVldF9zeW5jXCIpXHJcbiAgICAgIC5zZWxlY3QoXCJmZWVkX3VybFwiKVxyXG4gICAgICAudGhlbigocm93cykgPT4gcm93cy5tYXAoKHJvdykgPT4gcm93LmZlZWRfdXJsKSlcclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlbGV0ZVN0cmVldHMgPSBhc3luYyAoc3RyZWV0VXJsczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+ID0+IHtcclxuICBhd2FpdCBkZWxldGVNdWx0aXBsZVJvd3NLbmV4KHN0cmVldFVybHMsIFwic3RyZWV0X3N5bmNcIiwgXCJmZWVkX3VybFwiKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpbnNlcnRTdHJlZXRzRnJvbURiZiA9IGFzeW5jIChcclxuICBkYXRhOiBEYmZTdHJlZXRbXVxyXG4pOiBQcm9taXNlPG51bWJlcj4gPT4ge1xyXG4gIHJldHVybiBhd2FpdCBpbnNlcnRNdWx0aXBsZVJvd3MoXHJcbiAgICBkYXRhLm1hcCgoc3RyZWV0KSA9PiBbc3RyZWV0LktPRCwgc3RyZWV0Lk9CRUNfS09ELCBzdHJlZXQuTkFaRVZdKSxcclxuICAgIFwic3RyZWV0XCIsXHJcbiAgICBbXCJjb2RlXCIsIFwiY2l0eV9jb2RlXCIsIFwibmFtZVwiXVxyXG4gICk7XHJcbn07XHJcbiJdfQ==
12
+ };
13
+ export const deleteStreets = async (streetUrls) => {
14
+ await deleteMultipleRowsKnex(streetUrls, "street_sync", "feed_url");
15
+ };
16
+ export const insertStreetsFromDbf = async (data) => {
17
+ return await insertMultipleRows(data.map((street) => [street.KOD, street.OBEC_KOD, street.NAZEV]), "street", ["code", "city_code", "name"]);
18
+ };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWV0LXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGIvc3RyZWV0LXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixTQUFTLEVBQ1Qsa0JBQWtCLEVBQ25CLE1BQU0sTUFBTSxDQUFDO0FBR2QsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUNwQyxhQUFxQixFQUNOLEVBQUU7SUFDakIsTUFBTSxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUM7U0FDN0IsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDO1NBQ25DLFVBQVUsQ0FBQyxVQUFVLENBQUM7U0FDdEIsTUFBTSxFQUFFLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLElBQTBCLEVBQUU7SUFDbEUsT0FBTyxJQUFJLEdBQUcsQ0FDWixNQUFNLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQztTQUM3QixNQUFNLENBQUMsVUFBVSxDQUFDO1NBQ2xCLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQ25ELENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLFVBQW9CLEVBQWlCLEVBQUU7SUFDekUsTUFBTSxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3RFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEtBQUssRUFDdkMsSUFBaUIsRUFDQSxFQUFFO0lBQ25CLE9BQU8sTUFBTSxrQkFBa0IsQ0FDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ2pFLFFBQVEsRUFDUixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQzlCLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGRlbGV0ZU11bHRpcGxlUm93c0tuZXgsXHJcbiAgZ2V0S25leERiLFxyXG4gIGluc2VydE11bHRpcGxlUm93c1xyXG59IGZyb20gXCIuL2RiXCI7XHJcbmltcG9ydCB7IERiZlN0cmVldCB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG5leHBvcnQgY29uc3Qgc2V0U3RyZWV0QXNTeW5jZWQgPSBhc3luYyAoXHJcbiAgc3RyZWV0RmVlZFVybDogc3RyaW5nXHJcbik6IFByb21pc2U8dm9pZD4gPT4ge1xyXG4gIGF3YWl0IGdldEtuZXhEYigpKFwic3RyZWV0X3N5bmNcIilcclxuICAgIC5pbnNlcnQoeyBmZWVkX3VybDogc3RyZWV0RmVlZFVybCB9KVxyXG4gICAgLm9uQ29uZmxpY3QoXCJmZWVkX3VybFwiKVxyXG4gICAgLmlnbm9yZSgpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldEFsbFN5bmNlZFN0cmVldHMgPSBhc3luYyAoKTogUHJvbWlzZTxTZXQ8c3RyaW5nPj4gPT4ge1xyXG4gIHJldHVybiBuZXcgU2V0PHN0cmluZz4oXHJcbiAgICBhd2FpdCBnZXRLbmV4RGIoKShcInN0cmVldF9zeW5jXCIpXHJcbiAgICAgIC5zZWxlY3QoXCJmZWVkX3VybFwiKVxyXG4gICAgICAudGhlbigocm93cykgPT4gcm93cy5tYXAoKHJvdykgPT4gcm93LmZlZWRfdXJsKSlcclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlbGV0ZVN0cmVldHMgPSBhc3luYyAoc3RyZWV0VXJsczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+ID0+IHtcclxuICBhd2FpdCBkZWxldGVNdWx0aXBsZVJvd3NLbmV4KHN0cmVldFVybHMsIFwic3RyZWV0X3N5bmNcIiwgXCJmZWVkX3VybFwiKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpbnNlcnRTdHJlZXRzRnJvbURiZiA9IGFzeW5jIChcclxuICBkYXRhOiBEYmZTdHJlZXRbXVxyXG4pOiBQcm9taXNlPG51bWJlcj4gPT4ge1xyXG4gIHJldHVybiBhd2FpdCBpbnNlcnRNdWx0aXBsZVJvd3MoXHJcbiAgICBkYXRhLm1hcCgoc3RyZWV0KSA9PiBbc3RyZWV0LktPRCwgc3RyZWV0Lk9CRUNfS09ELCBzdHJlZXQuTkFaRVZdKSxcclxuICAgIFwic3RyZWV0XCIsXHJcbiAgICBbXCJjb2RlXCIsIFwiY2l0eV9jb2RlXCIsIFwibmFtZVwiXVxyXG4gICk7XHJcbn07XHJcbiJdfQ==
@@ -1,12 +1,3 @@
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 { getKnexDb, insertAutoincrementRow, isSqlite } from "./db";
11
2
  import { SyncPart } from "./types";
12
3
  const allParts = [
@@ -21,33 +12,33 @@ const serializeDate = (date) => {
21
12
  const deserializeDate = (date) => {
22
13
  return isSqlite(getKnexDb()) ? new Date(date) : date;
23
14
  };
24
- export const startSyncPart = (part) => __awaiter(void 0, void 0, void 0, function* () {
25
- return yield insertAutoincrementRow([part.toString(), serializeDate(new Date())], "sync_log", ["part", "started_at"]);
26
- });
27
- export const setSyncPartAsCompleted = (id) => __awaiter(void 0, void 0, void 0, function* () {
28
- yield getKnexDb()
15
+ export const startSyncPart = async (part) => {
16
+ return await insertAutoincrementRow([part.toString(), serializeDate(new Date())], "sync_log", ["part", "started_at"]);
17
+ };
18
+ export const setSyncPartAsCompleted = async (id) => {
19
+ await getKnexDb()
29
20
  .update({ finished_at: serializeDate(new Date()), completed: true })
30
21
  .from("sync_log")
31
22
  .where({ id });
32
- });
33
- export const isSyncPartCompleted = (part) => __awaiter(void 0, void 0, void 0, function* () {
34
- const result = yield getKnexDb()
23
+ };
24
+ export const isSyncPartCompleted = async (part) => {
25
+ const result = await getKnexDb()
35
26
  .select("id")
36
27
  .from("sync_log")
37
28
  .where({ part, completed: true })
38
29
  .limit(1);
39
30
  return result.length > 0;
40
- });
41
- export const isEverythingSynced = () => __awaiter(void 0, void 0, void 0, function* () {
42
- const results = yield Promise.all(allParts.map(isSyncPartCompleted));
31
+ };
32
+ export const isEverythingSynced = async () => {
33
+ const results = await Promise.all(allParts.map(isSyncPartCompleted));
43
34
  return results.every((r) => r);
44
- });
45
- export const millisecondsSinceLastSyncOfPart = (part) => __awaiter(void 0, void 0, void 0, function* () {
46
- const result = yield lastSyncOfPart(part);
35
+ };
36
+ export const millisecondsSinceLastSyncOfPart = async (part) => {
37
+ const result = await lastSyncOfPart(part);
47
38
  return result === null ? null : new Date().getTime() - result.getTime();
48
- });
49
- export const lastSyncOfPart = (part) => __awaiter(void 0, void 0, void 0, function* () {
50
- const result = yield getKnexDb()
39
+ };
40
+ export const lastSyncOfPart = async (part) => {
41
+ const result = await getKnexDb()
51
42
  .select("finished_at")
52
43
  .from("sync_log")
53
44
  .where({ part, completed: true })
@@ -57,19 +48,19 @@ export const lastSyncOfPart = (part) => __awaiter(void 0, void 0, void 0, functi
57
48
  return null;
58
49
  }
59
50
  return deserializeDate(result[0].finished_at);
60
- });
61
- export const millisecondsSinceLastSync = () => __awaiter(void 0, void 0, void 0, function* () {
62
- const results = yield Promise.all(allParts.map(millisecondsSinceLastSyncOfPart));
51
+ };
52
+ export const millisecondsSinceLastSync = async () => {
53
+ const results = await Promise.all(allParts.map(millisecondsSinceLastSyncOfPart));
63
54
  if (results.some((r) => r === null)) {
64
55
  return null;
65
56
  }
66
57
  return Math.max(...results);
67
- });
68
- export const lastSync = () => __awaiter(void 0, void 0, void 0, function* () {
69
- const results = yield Promise.all(allParts.map(lastSyncOfPart));
58
+ };
59
+ export const lastSync = async () => {
60
+ const results = await Promise.all(allParts.map(lastSyncOfPart));
70
61
  if (results.some((r) => r === null)) {
71
62
  return null;
72
63
  }
73
64
  return new Date(Math.min(...results.map((r) => r.getTime())));
74
- });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1sb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGIvc3luYy1sb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVuQyxNQUFNLFFBQVEsR0FBRztJQUNmLFFBQVEsQ0FBQyxhQUFhO0lBQ3RCLFFBQVEsQ0FBQyxPQUFPO0lBQ2hCLFFBQVEsQ0FBQyxPQUFPO0lBQ2hCLFFBQVEsQ0FBQyxPQUFPO0NBQ2pCLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVUsRUFBaUIsRUFBRTtJQUNsRCxPQUFPLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDeEUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFtQixFQUFRLEVBQUU7SUFDcEQsT0FBTyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQWEsQ0FBQztBQUNqRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBTyxJQUFjLEVBQW1CLEVBQUU7SUFDckUsT0FBTyxNQUFNLHNCQUFzQixDQUNqQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxhQUFhLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQzVDLFVBQVUsRUFDVixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FDdkIsQ0FBQztBQUNKLENBQUMsQ0FB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TSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNoRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRTtRQUNuQyxPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUMsQ0FBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0S25leERiLCBpbnNlcnRBdXRvaW5jcmVtZW50Um93LCBpc1NxbGl0ZSB9IGZyb20gXCIuL2RiXCI7XHJcbmltcG9ydCB7IFN5bmNQYXJ0IH0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbmNvbnN0IGFsbFBhcnRzID0gW1xyXG4gIFN5bmNQYXJ0LkFkZHJlc3NQb2ludHMsXHJcbiAgU3luY1BhcnQuU2Nob29scyxcclxuICBTeW5jUGFydC5SZWdpb25zLFxyXG4gIFN5bmNQYXJ0LlN0cmVldHMsXHJcbl07XHJcblxyXG5jb25zdCBzZXJpYWxpemVEYXRlID0gKGRhdGU6IERhdGUpOiBzdHJpbmcgfCBEYXRlID0+IHtcclxuICByZXR1cm4gaXNTcWxpdGUoZ2V0S25leERiKCkpID8gZGF0ZS50b0lTT1N0cmluZygpLnNsaWNlKDAsIC0xKSA6IGRhdGU7XHJcbn07XHJcblxyXG5jb25zdCBkZXNlcmlhbGl6ZURhdGUgPSAoZGF0ZTogc3RyaW5nIHwgRGF0ZSk6IERhdGUgPT4ge1xyXG4gIHJldHVybiBpc1NxbGl0ZShnZXRLbmV4RGIoKSkgPyBuZXcgRGF0ZShkYXRlKSA6IChkYXRlIGFzIERhdGUpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHN0YXJ0U3luY1BhcnQgPSBhc3luYyAocGFydDogU3luY1BhcnQpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xyXG4gIHJldHVybiBhd2FpdCBpbnNlcnRBdXRvaW5jcmVtZW50Um93KFxyXG4gICAgW3BhcnQudG9TdHJpbmcoKSwgc2VyaWFsaXplRGF0ZShuZXcgRGF0ZSgpKV0sXHJcbiAgICBcInN5bmNfbG9nXCIsXHJcbiAgICBbXCJwYXJ0XCIsIFwic3RhcnRlZF9hdFwiXVxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3Qgc2V0U3luY1BhcnRBc0NvbXBsZXRlZCA9IGFzeW5jIChpZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiA9PiB7XHJcbiAgYXdhaXQgZ2V0S25leERiKClcclxuICAgIC51cGRhdGUoeyBmaW5pc2hlZF9hdDogc2VyaWFsaXplRGF0ZShuZXcgRGF0ZSgpKSwgY29tcGxldGVkOiB0cnVlIH0pXHJcbiAgICAuZnJvbShcInN5bmNfbG9nXCIpXHJcbiAgICAud2hlcmUoeyBpZCB9KTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1N5bmNQYXJ0Q29tcGxldGVkID0gYXN5bmMgKHBhcnQ6IFN5bmNQYXJ0KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XHJcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0S25leERiKClcclxuICAgIC5zZWxlY3QoXCJpZFwiKVxyXG4gICAgLmZyb20oXCJzeW5jX2xvZ1wiKVxyXG4gICAgLndoZXJlKHsgcGFydCwgY29tcGxldGVkOiB0cnVlIH0pXHJcbiAgICAubGltaXQoMSk7XHJcblxyXG4gIHJldHVybiByZXN1bHQubGVuZ3RoID4gMDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc0V2ZXJ5dGhpbmdTeW5jZWQgPSBhc3luYyAoKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XHJcbiAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKGFsbFBhcnRzLm1hcChpc1N5bmNQYXJ0Q29tcGxldGVkKSk7XHJcbiAgcmV0dXJuIHJlc3VsdHMuZXZlcnkoKHIpID0+IHIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IG1pbGxpc2Vjb25kc1NpbmNlTGFzdFN5bmNPZlBhcnQgPSBhc3luYyAoXHJcbiAgcGFydDogU3luY1BhcnRcclxuKTogUHJvbWlzZTxudW1iZXIgfCBudWxsPiA9PiB7XHJcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbGFzdFN5bmNPZlBhcnQocGFydCk7XHJcbiAgcmV0dXJuIHJlc3VsdCA9PT0gbnVsbCA/IG51bGwgOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHJlc3VsdC5nZXRUaW1lKCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgbGFzdFN5bmNPZlBhcnQgPSBhc3luYyAocGFydDogU3luY1BhcnQpOiBQcm9taXNlPERhdGUgfCBudWxsPiA9PiB7XHJcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0S25leERiKClcclxuICAgIC5zZWxlY3QoXCJmaW5pc2hlZF9hdFwiKVxyXG4gICAgLmZyb20oXCJzeW5jX2xvZ1wiKVxyXG4gICAgLndoZXJlKHsgcGFydCwgY29tcGxldGVkOiB0cnVlIH0pXHJcbiAgICAub3JkZXJCeShcImZpbmlzaGVkX2F0XCIsIFwiZGVzY1wiKVxyXG4gICAgLmxpbWl0KDEpO1xyXG5cclxuICBpZiAocmVzdWx0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZGVzZXJpYWxpemVEYXRlKHJlc3VsdFswXS5maW5pc2hlZF9hdCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgbWlsbGlzZWNvbmRzU2luY2VMYXN0U3luYyA9IGFzeW5jICgpOiBQcm9taXNlPG51bWJlciB8IG51bGw+ID0+IHtcclxuICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICBhbGxQYXJ0cy5tYXAobWlsbGlzZWNvbmRzU2luY2VMYXN0U3luY09mUGFydClcclxuICApO1xyXG4gIGlmIChyZXN1bHRzLnNvbWUoKHIpID0+IHIgPT09IG51bGwpKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgcmV0dXJuIE1hdGgubWF4KC4uLnJlc3VsdHMpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGxhc3RTeW5jID0gYXN5bmMgKCk6IFByb21pc2U8RGF0ZSB8IG51bGw+ID0+IHtcclxuICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoYWxsUGFydHMubWFwKGxhc3RTeW5jT2ZQYXJ0KSk7XHJcbiAgaWYgKHJlc3VsdHMuc29tZSgocikgPT4gciA9PT0gbnVsbCkpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICByZXR1cm4gbmV3IERhdGUoTWF0aC5taW4oLi4ucmVzdWx0cy5tYXAoKHIpID0+IHIuZ2V0VGltZSgpKSkpO1xyXG59O1xyXG4iXX0=
65
+ };
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1sb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGIvc3luYy1sb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVuQyxNQUFNLFFBQVEsR0FBRztJQUNmLFFBQVEsQ0FBQyxhQUFhO0lBQ3RCLFFBQVEsQ0FBQyxPQUFPO0lBQ2hCLFFBQVEsQ0FBQyxPQUFPO0lBQ2hCLFFBQVEsQ0FBQyxPQUFPO0NBQ2pCLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVUsRUFBaUIsRUFBRTtJQUNsRCxPQUFPLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDeEUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFtQixFQUFRLEVBQUU7SUFDcEQsT0FBTyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQWEsQ0FBQztBQUNqRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLElBQWMsRUFBbUIsRUFBRTtJQUNyRSxPQUFPLE1BQU0sc0JBQXNCLENBQ2pDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLGFBQWEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFDNUMsVUFBVSxFQUNWLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUN2QixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FB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QU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0S25leERiLCBpbnNlcnRBdXRvaW5jcmVtZW50Um93LCBpc1NxbGl0ZSB9IGZyb20gXCIuL2RiXCI7XHJcbmltcG9ydCB7IFN5bmNQYXJ0IH0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbmNvbnN0IGFsbFBhcnRzID0gW1xyXG4gIFN5bmNQYXJ0LkFkZHJlc3NQb2ludHMsXHJcbiAgU3luY1BhcnQuU2Nob29scyxcclxuICBTeW5jUGFydC5SZWdpb25zLFxyXG4gIFN5bmNQYXJ0LlN0cmVldHMsXHJcbl07XHJcblxyXG5jb25zdCBzZXJpYWxpemVEYXRlID0gKGRhdGU6IERhdGUpOiBzdHJpbmcgfCBEYXRlID0+IHtcclxuICByZXR1cm4gaXNTcWxpdGUoZ2V0S25leERiKCkpID8gZGF0ZS50b0lTT1N0cmluZygpLnNsaWNlKDAsIC0xKSA6IGRhdGU7XHJcbn07XHJcblxyXG5jb25zdCBkZXNlcmlhbGl6ZURhdGUgPSAoZGF0ZTogc3RyaW5nIHwgRGF0ZSk6IERhdGUgPT4ge1xyXG4gIHJldHVybiBpc1NxbGl0ZShnZXRLbmV4RGIoKSkgPyBuZXcgRGF0ZShkYXRlKSA6IChkYXRlIGFzIERhdGUpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHN0YXJ0U3luY1BhcnQgPSBhc3luYyAocGFydDogU3luY1BhcnQpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xyXG4gIHJldHVybiBhd2FpdCBpbnNlcnRBdXRvaW5jcmVtZW50Um93KFxyXG4gICAgW3BhcnQudG9TdHJpbmcoKSwgc2VyaWFsaXplRGF0ZShuZXcgRGF0ZSgpKV0sXHJcbiAgICBcInN5bmNfbG9nXCIsXHJcbiAgICBbXCJwYXJ0XCIsIFwic3RhcnRlZF9hdFwiXVxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3Qgc2V0U3luY1BhcnRBc0NvbXBsZXRlZCA9IGFzeW5jIChpZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiA9PiB7XHJcbiAgYXdhaXQgZ2V0S25leERiKClcclxuICAgIC51cGRhdGUoeyBmaW5pc2hlZF9hdDogc2VyaWFsaXplRGF0ZShuZXcgRGF0ZSgpKSwgY29tcGxldGVkOiB0cnVlIH0pXHJcbiAgICAuZnJvbShcInN5bmNfbG9nXCIpXHJcbiAgICAud2hlcmUoeyBpZCB9KTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1N5bmNQYXJ0Q29tcGxldGVkID0gYXN5bmMgKHBhcnQ6IFN5bmNQYXJ0KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XHJcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0S25leERiKClcclxuICAgIC5zZWxlY3QoXCJpZFwiKVxyXG4gICAgLmZyb20oXCJzeW5jX2xvZ1wiKVxyXG4gICAgLndoZXJlKHsgcGFydCwgY29tcGxldGVkOiB0cnVlIH0pXHJcbiAgICAubGltaXQoMSk7XHJcblxyXG4gIHJldHVybiByZXN1bHQubGVuZ3RoID4gMDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc0V2ZXJ5dGhpbmdTeW5jZWQgPSBhc3luYyAoKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XHJcbiAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKGFsbFBhcnRzLm1hcChpc1N5bmNQYXJ0Q29tcGxldGVkKSk7XHJcbiAgcmV0dXJuIHJlc3VsdHMuZXZlcnkoKHIpID0+IHIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IG1pbGxpc2Vjb25kc1NpbmNlTGFzdFN5bmNPZlBhcnQgPSBhc3luYyAoXHJcbiAgcGFydDogU3luY1BhcnRcclxuKTogUHJvbWlzZTxudW1iZXIgfCBudWxsPiA9PiB7XHJcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbGFzdFN5bmNPZlBhcnQocGFydCk7XHJcbiAgcmV0dXJuIHJlc3VsdCA9PT0gbnVsbCA/IG51bGwgOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHJlc3VsdC5nZXRUaW1lKCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgbGFzdFN5bmNPZlBhcnQgPSBhc3luYyAocGFydDogU3luY1BhcnQpOiBQcm9taXNlPERhdGUgfCBudWxsPiA9PiB7XHJcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0S25leERiKClcclxuICAgIC5zZWxlY3QoXCJmaW5pc2hlZF9hdFwiKVxyXG4gICAgLmZyb20oXCJzeW5jX2xvZ1wiKVxyXG4gICAgLndoZXJlKHsgcGFydCwgY29tcGxldGVkOiB0cnVlIH0pXHJcbiAgICAub3JkZXJCeShcImZpbmlzaGVkX2F0XCIsIFwiZGVzY1wiKVxyXG4gICAgLmxpbWl0KDEpO1xyXG5cclxuICBpZiAocmVzdWx0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZGVzZXJpYWxpemVEYXRlKHJlc3VsdFswXS5maW5pc2hlZF9hdCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgbWlsbGlzZWNvbmRzU2luY2VMYXN0U3luYyA9IGFzeW5jICgpOiBQcm9taXNlPG51bWJlciB8IG51bGw+ID0+IHtcclxuICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICBhbGxQYXJ0cy5tYXAobWlsbGlzZWNvbmRzU2luY2VMYXN0U3luY09mUGFydClcclxuICApO1xyXG4gIGlmIChyZXN1bHRzLnNvbWUoKHIpID0+IHIgPT09IG51bGwpKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgcmV0dXJuIE1hdGgubWF4KC4uLnJlc3VsdHMpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGxhc3RTeW5jID0gYXN5bmMgKCk6IFByb21pc2U8RGF0ZSB8IG51bGw+ID0+IHtcclxuICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoYWxsUGFydHMubWFwKGxhc3RTeW5jT2ZQYXJ0KSk7XHJcbiAgaWYgKHJlc3VsdHMuc29tZSgocikgPT4gciA9PT0gbnVsbCkpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICByZXR1cm4gbmV3IERhdGUoTWF0aC5taW4oLi4ucmVzdWx0cy5tYXAoKHIpID0+IHIuZ2V0VGltZSgpKSkpO1xyXG59O1xyXG4iXX0=