text-to-map 1.1.45 → 1.1.47

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