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,11 +1,11 @@
1
- import { Founder } from "../db/types";
2
- import { DbMunicipalityResult, MunicipalityPartResult } from "./types";
3
- export declare const isMunicipalitySwitch: (line: string) => boolean;
4
- export declare const getSwitchMunicipality: (line: string, founder: Founder) => Promise<DbMunicipalityResult>;
5
- export declare const isWholeMunicipality: (line: string) => boolean;
6
- export declare const isRestWithNoStreetNameLine: (line: string) => boolean;
7
- export declare const isRestOfMunicipalityLine: (line: string) => boolean;
8
- export declare const isRestOfMunicipalityPartLine: (line: string) => boolean;
9
- export declare const getRestOfMunicipalityPart: (line: string, founder: Founder) => Promise<MunicipalityPartResult>;
10
- export declare const getWholeMunicipality: (line: string, founder: Founder) => Promise<DbMunicipalityResult>;
11
- export declare const getMunicipalityPartResult: (name: string, line: string, cityCode: number) => Promise<MunicipalityPartResult>;
1
+ import { Founder } from "../db/types";
2
+ import { DbMunicipalityResult, MunicipalityPartResult } from "./types";
3
+ export declare const isMunicipalitySwitch: (line: string) => boolean;
4
+ export declare const getSwitchMunicipality: (line: string, founder: Founder) => Promise<DbMunicipalityResult>;
5
+ export declare const isWholeMunicipality: (line: string) => boolean;
6
+ export declare const isRestWithNoStreetNameLine: (line: string) => boolean;
7
+ export declare const isRestOfMunicipalityLine: (line: string) => boolean;
8
+ export declare const isRestOfMunicipalityPartLine: (line: string) => boolean;
9
+ export declare const getRestOfMunicipalityPart: (line: string, founder: Founder) => Promise<MunicipalityPartResult>;
10
+ export declare const getWholeMunicipality: (line: string, founder: Founder) => Promise<DbMunicipalityResult>;
11
+ export declare const getMunicipalityPartResult: (name: string, line: string, cityCode: number) => Promise<MunicipalityPartResult>;
@@ -1,116 +1,116 @@
1
- import { findMunicipalityByNameAndType, findMunicipalityPartByName, getFounderCityCode, } from "../db/founders";
2
- import { MunicipalityType } from "../db/types";
3
- const municipalitySwitchStartPattern = /^navíc ulice /;
4
- const municipalitySwitchPattern = /^navíc ulice (z )?(?<type>městské části|městského obvodu|obce|města) (?<name>.+):$/;
5
- const wholeMunicipalityStartPattern = /^území /;
6
- const wholeMunicipalityPattern = /^území (?<type>městské části|městského obvodu|obce|města) (?<name>.+)$/;
7
- const restWithNoStreetNamePattern = /^všechny ostatní budovy bez názvu ulice\s*$/;
8
- const restOfMunicipalityPattern = /^zbytek (?<type>městské části|městského obvodu|obce|města)\s*$/;
9
- const restOfMunicipalityPartPattern = /^zbytek části (obce|města) (?<name>.+)\s*$/;
10
- export const isMunicipalitySwitch = (line) => {
11
- return municipalitySwitchStartPattern.test(line);
12
- };
13
- export const getSwitchMunicipality = async (line, founder) => {
14
- const match = municipalitySwitchPattern.exec(line);
15
- if (match === null) {
16
- return {
17
- errors: [
18
- {
19
- message: "Neplatný zápis pro dočasnou změnu obce v definici ulic. Správný zápis je: navíc ulice <typ> <název obce>. Např.: 'navíc ulice obce Mokrá Lhota:' (název obce musí být v 1. pádě).",
20
- startOffset: 0,
21
- endOffset: line.length + 1,
22
- },
23
- ],
24
- municipality: null,
25
- };
26
- }
27
- const { type, name } = match.groups;
28
- return await getMunicipalityResult(type, cleanName(name), line, founder);
29
- };
30
- export const isWholeMunicipality = (line) => {
31
- return wholeMunicipalityStartPattern.test(line);
32
- };
33
- export const isRestWithNoStreetNameLine = (line) => {
34
- return restWithNoStreetNamePattern.test(line);
35
- };
36
- export const isRestOfMunicipalityLine = (line) => {
37
- return restOfMunicipalityPattern.test(line);
38
- };
39
- export const isRestOfMunicipalityPartLine = (line) => {
40
- return restOfMunicipalityPartPattern.test(line);
41
- };
42
- export const getRestOfMunicipalityPart = async (line, founder) => {
43
- const match = restOfMunicipalityPartPattern.exec(line);
44
- if (match === null) {
45
- return {
46
- errors: [
47
- {
48
- message: "Neplatný zápis pro přidání zbytku části obce. Správný zápis je: zbytek části <typ> <název obce>. Např.: 'zbytek části obce Malšovice' (název části obce musí být v 1. pádě).",
49
- startOffset: 0,
50
- endOffset: line.length + 1,
51
- },
52
- ],
53
- municipalityPartCode: null,
54
- };
55
- }
56
- const { name } = match.groups;
57
- return await getMunicipalityPartResult(name, line, await getFounderCityCode(founder.municipalityType, founder.municipalityCode));
58
- };
59
- export const getWholeMunicipality = async (line, founder) => {
60
- const match = wholeMunicipalityPattern.exec(line);
61
- if (match === null) {
62
- return {
63
- errors: [
64
- {
65
- message: "Neplatný zápis pro přidání celé obce. Správný zápis je: území <typ> <název obce>. Např.: 'území obce Kladno' (název obce musí být v 1. pádě).",
66
- startOffset: 0,
67
- endOffset: line.length + 1,
68
- },
69
- ],
70
- municipality: null,
71
- };
72
- }
73
- const { type, name } = match.groups;
74
- return await getMunicipalityResult(type, cleanName(name), line, founder);
75
- };
76
- const getMunicipalityResult = async (type, name, line, founder) => {
77
- const typeValue = getMunicipalityType(type);
78
- const { municipality, errors } = await findMunicipalityByNameAndType(name, typeValue, founder);
79
- const startOffset = line.indexOf(name);
80
- const endOffset = startOffset + name.length + 1;
81
- return {
82
- municipality,
83
- errors: errors.map((error) => ({
84
- ...error,
85
- startOffset,
86
- endOffset,
87
- })),
88
- };
89
- };
90
- export const getMunicipalityPartResult = async (name, line, cityCode) => {
91
- const { municipalityPartCode, errors } = await findMunicipalityPartByName(name, cityCode);
92
- const startOffset = line.indexOf(name);
93
- const endOffset = startOffset + name.length + 1;
94
- return {
95
- municipalityPartCode,
96
- errors: errors.map((error) => ({
97
- ...error,
98
- startOffset,
99
- endOffset,
100
- })),
101
- };
102
- };
103
- const getMunicipalityType = (type) => {
104
- switch (type) {
105
- case "městské části":
106
- case "městského obvodu":
107
- return MunicipalityType.District;
108
- case "obce":
109
- case "města":
110
- return MunicipalityType.City;
111
- }
112
- };
113
- const cleanName = (name) => {
114
- return name.trim();
115
- };
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVuaWNpcGFsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmVldC1tYXJrZG93bi9tdW5pY2lwYWxpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIsa0JBQWtCLEdBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFXLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3hELE1BQU0sOEJBQThCLEdBQUcsZUFBZSxDQUFDO0FBRXZELE1BQU0seUJBQXlCLEdBQzdCLG9GQUFvRixDQUFDO0FBRXZGLE1BQU0sNkJBQTZCLEdBQUcsU0FBUyxDQUFDO0FBRWhELE1BQU0sd0JBQXdCLEdBQzVCLHdFQUF3RSxDQUFDO0FBRTNFLE1BQU0sMkJBQTJCLEdBQy9CLDZDQUE2QyxDQUFDO0FBRWhELE1BQU0seUJBQXlCLEdBQzdCLGdFQUFnRSxDQUFDO0FBQ25FLE1BQU0sNkJBQTZCLEdBQ2pDLDRDQUE0QyxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsSUFBWSxFQUFXLEVBQUU7SUFDNUQsT0FBTyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxFQUN4QyxJQUFZLEVBQ1osT0FBZ0IsRUFDZSxFQUFFO0lBQ2pDLE1BQU0sS0FBSyxHQUFHLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7UUFDbEIsT0FBTztZQUNMLE1BQU0sRUFBRTtnQkFDTjtvQkFDRSxPQUFPLEVBQ0wsbUxBQW1MO29CQUNyTCxXQUFXLEVBQUUsQ0FBQztvQkFDZCxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDO2lCQUMzQjthQUNGO1lB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QUFLLGtCQUFrQjtZQUNyQixPQUFPLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztRQUNuQyxLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssT0FBTztZQUNWLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0tBQ2hDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQVUsRUFBRTtJQUN6QyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNyQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGZpbmRNdW5pY2lwYWxpdHlCeU5hbWVBbmRUeXBlLFxyXG4gIGZpbmRNdW5pY2lwYWxpdHlQYXJ0QnlOYW1lLFxyXG4gIGdldEZvdW5kZXJDaXR5Q29kZSxcclxufSBmcm9tIFwiLi4vZGIvZm91bmRlcnNcIjtcclxuaW1wb3J0IHsgRm91bmRlciwgTXVuaWNpcGFsaXR5VHlwZSB9IGZyb20gXCIuLi9kYi90eXBlc1wiO1xyXG5pbXBvcnQgeyBEYk11bmljaXBhbGl0eVJlc3VsdCwgTXVuaWNpcGFsaXR5UGFydFJlc3VsdCB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG5jb25zdCBtdW5pY2lwYWxpdHlTd2l0Y2hTdGFydFBhdHRlcm4gPSAvXm5hdsOtYyB1bGljZSAvO1xyXG5cclxuY29uc3QgbXVuaWNpcGFsaXR5U3dpdGNoUGF0dGVybiA9XHJcbiAgL15uYXbDrWMgdWxpY2UgKHogKT8oPzx0eXBlPm3Em3N0c2vDqSDEjcOhc3RpfG3Em3N0c2vDqWhvIG9idm9kdXxvYmNlfG3Em3N0YSkgKD88bmFtZT4uKyk6JC87XHJcblxyXG5jb25zdCB3aG9sZU11bmljaXBhbGl0eVN0YXJ0UGF0dGVybiA9IC9ew7p6ZW3DrSAvO1xyXG5cclxuY29uc3Qgd2hvbGVNdW5pY2lwYWxpdHlQYXR0ZXJuID1cclxuICAvXsO6emVtw60gKD88dHlwZT5txJtzdHNrw6kgxI3DoXN0aXxtxJtzdHNrw6lobyBvYnZvZHV8b2JjZXxtxJtzdGEpICg/PG5hbWU+LispJC87XHJcblxyXG5jb25zdCByZXN0V2l0aE5vU3RyZWV0TmFtZVBhdHRlcm4gPVxyXG4gIC9edsWhZWNobnkgb3N0YXRuw60gYnVkb3Z5IGJleiBuw6F6dnUgdWxpY2VcXHMqJC87XHJcblxyXG5jb25zdCByZXN0T2ZNdW5pY2lwYWxpdHlQYXR0ZXJuID1cclxuICAvXnpieXRlayAoPzx0eXBlPm3Em3N0c2vDqSDEjcOhc3RpfG3Em3N0c2vDqWhvIG9idm9kdXxvYmNlfG3Em3N0YSlcXHMqJC87XHJcbmNvbnN0IHJlc3RPZk11bmljaXBhbGl0eVBhcnRQYXR0ZXJuID1cclxuICAvXnpieXRlayDEjcOhc3RpIChvYmNlfG3Em3N0YSkgKD88bmFtZT4uKylcXHMqJC87XHJcblxyXG5leHBvcnQgY29uc3QgaXNNdW5pY2lwYWxpdHlTd2l0Y2ggPSAobGluZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XHJcbiAgcmV0dXJuIG11bmljaXBhbGl0eVN3aXRjaFN0YXJ0UGF0dGVybi50ZXN0KGxpbmUpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFN3aXRjaE11bmljaXBhbGl0eSA9IGFzeW5jIChcclxuICBsaW5lOiBzdHJpbmcsXHJcbiAgZm91bmRlcjogRm91bmRlclxyXG4pOiBQcm9taXNlPERiTXVuaWNpcGFsaXR5UmVzdWx0PiA9PiB7XHJcbiAgY29uc3QgbWF0Y2ggPSBtdW5pY2lwYWxpdHlTd2l0Y2hQYXR0ZXJuLmV4ZWMobGluZSk7XHJcbiAgaWYgKG1hdGNoID09PSBudWxsKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBlcnJvcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBtZXNzYWdlOlxyXG4gICAgICAgICAgICBcIk5lcGxhdG7DvSB6w6FwaXMgcHJvIGRvxI1hc25vdSB6bcSbbnUgb2JjZSB2IGRlZmluaWNpIHVsaWMuIFNwcsOhdm7DvSB6w6FwaXMgamU6IG5hdsOtYyB1bGljZSA8dHlwPiA8bsOhemV2IG9iY2U+LiBOYXDFmS46ICduYXbDrWMgdWxpY2Ugb2JjZSBNb2tyw6EgTGhvdGE6JyAobsOhemV2IG9iY2UgbXVzw60gYsO9dCB2IDEuIHDDoWTEmykuXCIsXHJcbiAgICAgICAgICBzdGFydE9mZnNldDogMCxcclxuICAgICAgICAgIGVuZE9mZnNldDogbGluZS5sZW5ndGggKyAxLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIG11bmljaXBhbGl0eTogbnVsbCxcclxuICAgIH07XHJcbiAgfVxyXG4gIGNvbnN0IHsgdHlwZSwgbmFtZSB9ID0gbWF0Y2guZ3JvdXBzO1xyXG4gIHJldHVybiBhd2FpdCBnZXRNdW5pY2lwYWxpdHlSZXN1bHQodHlwZSwgY2xlYW5OYW1lKG5hbWUpLCBsaW5lLCBmb3VuZGVyKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1dob2xlTXVuaWNpcGFsaXR5ID0gKGxpbmU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xyXG4gIHJldHVybiB3aG9sZU11bmljaXBhbGl0eVN0YXJ0UGF0dGVybi50ZXN0KGxpbmUpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGlzUmVzdFdpdGhOb1N0cmVldE5hbWVMaW5lID0gKGxpbmU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xyXG4gIHJldHVybiByZXN0V2l0aE5vU3RyZWV0TmFtZVBhdHRlcm4udGVzdChsaW5lKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1Jlc3RPZk11bmljaXBhbGl0eUxpbmUgPSAobGluZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XHJcbiAgcmV0dXJuIHJlc3RPZk11bmljaXBhbGl0eVBhdHRlcm4udGVzdChsaW5lKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1Jlc3RPZk11bmljaXBhbGl0eVBhcnRMaW5lID0gKGxpbmU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xyXG4gIHJldHVybiByZXN0T2ZNdW5pY2lwYWxpdHlQYXJ0UGF0dGVybi50ZXN0KGxpbmUpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFJlc3RPZk11bmljaXBhbGl0eVBhcnQgPSBhc3luYyAoXHJcbiAgbGluZTogc3RyaW5nLFxyXG4gIGZvdW5kZXI6IEZvdW5kZXJcclxuKTogUHJvbWlzZTxNdW5pY2lwYWxpdHlQYXJ0UmVzdWx0PiA9PiB7XHJcbiAgY29uc3QgbWF0Y2ggPSByZXN0T2ZNdW5pY2lwYWxpdHlQYXJ0UGF0dGVybi5leGVjKGxpbmUpO1xyXG4gIGlmIChtYXRjaCA9PT0gbnVsbCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZXJyb3JzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbWVzc2FnZTpcclxuICAgICAgICAgICAgXCJOZXBsYXRuw70gesOhcGlzIHBybyBwxZlpZMOhbsOtIHpieXRrdSDEjcOhc3RpIG9iY2UuIFNwcsOhdm7DvSB6w6FwaXMgamU6IHpieXRlayDEjcOhc3RpIDx0eXA+IDxuw6F6ZXYgb2JjZT4uIE5hcMWZLjogJ3pieXRlayDEjcOhc3RpIG9iY2UgTWFsxaFvdmljZScgKG7DoXpldiDEjcOhc3RpIG9iY2UgbXVzw60gYsO9dCB2IDEuIHDDoWTEmykuXCIsXHJcbiAgICAgICAgICBzdGFydE9mZnNldDogMCxcclxuICAgICAgICAgIGVuZE9mZnNldDogbGluZS5sZW5ndGggKyAxLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIG11bmljaXBhbGl0eVBhcnRDb2RlOiBudWxsLFxyXG4gICAgfTtcclxuICB9XHJcbiAgY29uc3QgeyBuYW1lIH0gPSBtYXRjaC5ncm91cHM7XHJcbiAgcmV0dXJuIGF3YWl0IGdldE11bmljaXBhbGl0eVBhcnRSZXN1bHQoXHJcbiAgICBuYW1lLFxyXG4gICAgbGluZSxcclxuICAgIGF3YWl0IGdldEZvdW5kZXJDaXR5Q29kZShmb3VuZGVyLm11bmljaXBhbGl0eVR5cGUsIGZvdW5kZXIubXVuaWNpcGFsaXR5Q29kZSlcclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFdob2xlTXVuaWNpcGFsaXR5ID0gYXN5bmMgKFxyXG4gIGxpbmU6IHN0cmluZyxcclxuICBmb3VuZGVyOiBGb3VuZGVyXHJcbik6IFByb21pc2U8RGJNdW5pY2lwYWxpdHlSZXN1bHQ+ID0+IHtcclxuICBjb25zdCBtYXRjaCA9IHdob2xlTXVuaWNpcGFsaXR5UGF0dGVybi5leGVjKGxpbmUpO1xyXG4gIGlmIChtYXRjaCA9PT0gbnVsbCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZXJyb3JzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbWVzc2FnZTpcclxuICAgICAgICAgICAgXCJOZXBsYXRuw70gesOhcGlzIHBybyBwxZlpZMOhbsOtIGNlbMOpIG9iY2UuIFNwcsOhdm7DvSB6w6FwaXMgamU6IMO6emVtw60gPHR5cD4gPG7DoXpldiBvYmNlPi4gTmFwxZkuOiAnw7p6ZW3DrSBvYmNlIEtsYWRubycgKG7DoXpldiBvYmNlIG11c8OtIGLDvXQgdiAxLiBww6FkxJspLlwiLFxyXG4gICAgICAgICAgc3RhcnRPZmZzZXQ6IDAsXHJcbiAgICAgICAgICBlbmRPZmZzZXQ6IGxpbmUubGVuZ3RoICsgMSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgICBtdW5pY2lwYWxpdHk6IG51bGwsXHJcbiAgICB9O1xyXG4gIH1cclxuICBjb25zdCB7IHR5cGUsIG5hbWUgfSA9IG1hdGNoLmdyb3VwcztcclxuICByZXR1cm4gYXdhaXQgZ2V0TXVuaWNpcGFsaXR5UmVzdWx0KHR5cGUsIGNsZWFuTmFtZShuYW1lKSwgbGluZSwgZm91bmRlcik7XHJcbn07XHJcblxyXG5jb25zdCBnZXRNdW5pY2lwYWxpdHlSZXN1bHQgPSBhc3luYyAoXHJcbiAgdHlwZTogc3RyaW5nLFxyXG4gIG5hbWU6IHN0cmluZyxcclxuICBsaW5lOiBzdHJpbmcsXHJcbiAgZm91bmRlcjogRm91bmRlclxyXG4pOiBQcm9taXNlPERiTXVuaWNpcGFsaXR5UmVzdWx0PiA9PiB7XHJcbiAgY29uc3QgdHlwZVZhbHVlID0gZ2V0TXVuaWNpcGFsaXR5VHlwZSh0eXBlKTtcclxuICBjb25zdCB7IG11bmljaXBhbGl0eSwgZXJyb3JzIH0gPSBhd2FpdCBmaW5kTXVuaWNpcGFsaXR5QnlOYW1lQW5kVHlwZShcclxuICAgIG5hbWUsXHJcbiAgICB0eXBlVmFsdWUsXHJcbiAgICBmb3VuZGVyXHJcbiAgKTtcclxuXHJcbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBsaW5lLmluZGV4T2YobmFtZSk7XHJcbiAgY29uc3QgZW5kT2Zmc2V0ID0gc3RhcnRPZmZzZXQgKyBuYW1lLmxlbmd0aCArIDE7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBtdW5pY2lwYWxpdHksXHJcbiAgICBlcnJvcnM6IGVycm9ycy5tYXAoKGVycm9yKSA9PiAoe1xyXG4gICAgICAuLi5lcnJvcixcclxuICAgICAgc3RhcnRPZmZzZXQsXHJcbiAgICAgIGVuZE9mZnNldCxcclxuICAgIH0pKSxcclxuICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldE11bmljaXBhbGl0eVBhcnRSZXN1bHQgPSBhc3luYyAoXHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIGxpbmU6IHN0cmluZyxcclxuICBjaXR5Q29kZTogbnVtYmVyXHJcbik6IFByb21pc2U8TXVuaWNpcGFsaXR5UGFydFJlc3VsdD4gPT4ge1xyXG4gIGNvbnN0IHsgbXVuaWNpcGFsaXR5UGFydENvZGUsIGVycm9ycyB9ID0gYXdhaXQgZmluZE11bmljaXBhbGl0eVBhcnRCeU5hbWUoXHJcbiAgICBuYW1lLFxyXG4gICAgY2l0eUNvZGVcclxuICApO1xyXG5cclxuICBjb25zdCBzdGFydE9mZnNldCA9IGxpbmUuaW5kZXhPZihuYW1lKTtcclxuICBjb25zdCBlbmRPZmZzZXQgPSBzdGFydE9mZnNldCArIG5hbWUubGVuZ3RoICsgMTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIG11bmljaXBhbGl0eVBhcnRDb2RlLFxyXG4gICAgZXJyb3JzOiBlcnJvcnMubWFwKChlcnJvcikgPT4gKHtcclxuICAgICAgLi4uZXJyb3IsXHJcbiAgICAgIHN0YXJ0T2Zmc2V0LFxyXG4gICAgICBlbmRPZmZzZXQsXHJcbiAgICB9KSksXHJcbiAgfTtcclxufTtcclxuXHJcbmNvbnN0IGdldE11bmljaXBhbGl0eVR5cGUgPSAodHlwZTogc3RyaW5nKTogTXVuaWNpcGFsaXR5VHlwZSA9PiB7XHJcbiAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICBjYXNlIFwibcSbc3Rza8OpIMSNw6FzdGlcIjpcclxuICAgIGNhc2UgXCJtxJtzdHNrw6lobyBvYnZvZHVcIjpcclxuICAgICAgcmV0dXJuIE11bmljaXBhbGl0eVR5cGUuRGlzdHJpY3Q7XHJcbiAgICBjYXNlIFwib2JjZVwiOlxyXG4gICAgY2FzZSBcIm3Em3N0YVwiOlxyXG4gICAgICByZXR1cm4gTXVuaWNpcGFsaXR5VHlwZS5DaXR5O1xyXG4gIH1cclxufTtcclxuXHJcbmNvbnN0IGNsZWFuTmFtZSA9IChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gIHJldHVybiBuYW1lLnRyaW0oKTtcclxufTtcclxuIl19
1
+ import { findMunicipalityByNameAndType, findMunicipalityPartByName, getFounderCityCode, } from "../db/founders";
2
+ import { MunicipalityType } from "../db/types";
3
+ const municipalitySwitchStartPattern = /^navíc ulice /;
4
+ const municipalitySwitchPattern = /^navíc ulice (z )?(?<type>městské části|městského obvodu|obce|města) (?<name>.+):$/;
5
+ const wholeMunicipalityStartPattern = /^území /;
6
+ const wholeMunicipalityPattern = /^území (?<type>městské části|městského obvodu|obce|města) (?<name>.+)$/;
7
+ const restWithNoStreetNamePattern = /^všechny ostatní budovy bez názvu ulice\s*$/;
8
+ const restOfMunicipalityPattern = /^zbytek (?<type>městské části|městského obvodu|obce|města)\s*$/;
9
+ const restOfMunicipalityPartPattern = /^zbytek části (obce|města) (?<name>.+)\s*$/;
10
+ export const isMunicipalitySwitch = (line) => {
11
+ return municipalitySwitchStartPattern.test(line);
12
+ };
13
+ export const getSwitchMunicipality = async (line, founder) => {
14
+ const match = municipalitySwitchPattern.exec(line);
15
+ if (match === null) {
16
+ return {
17
+ errors: [
18
+ {
19
+ message: "Neplatný zápis pro dočasnou změnu obce v definici ulic. Správný zápis je: navíc ulice <typ> <název obce>. Např.: 'navíc ulice obce Mokrá Lhota:' (název obce musí být v 1. pádě).",
20
+ startOffset: 0,
21
+ endOffset: line.length + 1,
22
+ },
23
+ ],
24
+ municipality: null,
25
+ };
26
+ }
27
+ const { type, name } = match.groups;
28
+ return await getMunicipalityResult(type, cleanName(name), line, founder);
29
+ };
30
+ export const isWholeMunicipality = (line) => {
31
+ return wholeMunicipalityStartPattern.test(line);
32
+ };
33
+ export const isRestWithNoStreetNameLine = (line) => {
34
+ return restWithNoStreetNamePattern.test(line);
35
+ };
36
+ export const isRestOfMunicipalityLine = (line) => {
37
+ return restOfMunicipalityPattern.test(line);
38
+ };
39
+ export const isRestOfMunicipalityPartLine = (line) => {
40
+ return restOfMunicipalityPartPattern.test(line);
41
+ };
42
+ export const getRestOfMunicipalityPart = async (line, founder) => {
43
+ const match = restOfMunicipalityPartPattern.exec(line);
44
+ if (match === null) {
45
+ return {
46
+ errors: [
47
+ {
48
+ message: "Neplatný zápis pro přidání zbytku části obce. Správný zápis je: zbytek části <typ> <název obce>. Např.: 'zbytek části obce Malšovice' (název části obce musí být v 1. pádě).",
49
+ startOffset: 0,
50
+ endOffset: line.length + 1,
51
+ },
52
+ ],
53
+ municipalityPartCode: null,
54
+ };
55
+ }
56
+ const { name } = match.groups;
57
+ return await getMunicipalityPartResult(name, line, await getFounderCityCode(founder.municipalityType, founder.municipalityCode));
58
+ };
59
+ export const getWholeMunicipality = async (line, founder) => {
60
+ const match = wholeMunicipalityPattern.exec(line);
61
+ if (match === null) {
62
+ return {
63
+ errors: [
64
+ {
65
+ message: "Neplatný zápis pro přidání celé obce. Správný zápis je: území <typ> <název obce>. Např.: 'území obce Kladno' (název obce musí být v 1. pádě).",
66
+ startOffset: 0,
67
+ endOffset: line.length + 1,
68
+ },
69
+ ],
70
+ municipality: null,
71
+ };
72
+ }
73
+ const { type, name } = match.groups;
74
+ return await getMunicipalityResult(type, cleanName(name), line, founder);
75
+ };
76
+ const getMunicipalityResult = async (type, name, line, founder) => {
77
+ const typeValue = getMunicipalityType(type);
78
+ const { municipality, errors } = await findMunicipalityByNameAndType(name, typeValue, founder);
79
+ const startOffset = line.indexOf(name);
80
+ const endOffset = startOffset + name.length + 1;
81
+ return {
82
+ municipality,
83
+ errors: errors.map((error) => ({
84
+ ...error,
85
+ startOffset,
86
+ endOffset,
87
+ })),
88
+ };
89
+ };
90
+ export const getMunicipalityPartResult = async (name, line, cityCode) => {
91
+ const { municipalityPartCode, errors } = await findMunicipalityPartByName(name, cityCode);
92
+ const startOffset = line.indexOf(name);
93
+ const endOffset = startOffset + name.length + 1;
94
+ return {
95
+ municipalityPartCode,
96
+ errors: errors.map((error) => ({
97
+ ...error,
98
+ startOffset,
99
+ endOffset,
100
+ })),
101
+ };
102
+ };
103
+ const getMunicipalityType = (type) => {
104
+ switch (type) {
105
+ case "městské části":
106
+ case "městského obvodu":
107
+ return MunicipalityType.District;
108
+ case "obce":
109
+ case "města":
110
+ return MunicipalityType.City;
111
+ }
112
+ };
113
+ const cleanName = (name) => {
114
+ return name.trim();
115
+ };
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVuaWNpcGFsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmVldC1tYXJrZG93bi9tdW5pY2lwYWxpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIsa0JBQWtCLEdBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFXLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3hELE1BQU0sOEJBQThCLEdBQUcsZUFBZSxDQUFDO0FBRXZELE1BQU0seUJBQXlCLEdBQzdCLG9GQUFvRixDQUFDO0FBRXZGLE1BQU0sNkJBQTZCLEdBQUcsU0FBUyxDQUFDO0FBRWhELE1BQU0sd0JBQXdCLEdBQzVCLHdFQUF3RSxDQUFDO0FBRTNFLE1BQU0sMkJBQTJCLEdBQy9CLDZDQUE2QyxDQUFDO0FBRWhELE1BQU0seUJBQXlCLEdBQzdCLGdFQUFnRSxDQUFDO0FBQ25FLE1BQU0sNkJBQTZCLEdBQ2pDLDRDQUE0QyxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsSUFBWSxFQUFXLEVBQUU7SUFDNUQsT0FBTyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxFQUN4QyxJQUFZLEVBQ1osT0FBZ0IsRUFDZSxFQUFFO0lBQ2pDLE1BQU0sS0FBSyxHQUFHLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7UUFDbEIsT0FBTztZQUNMLE1BQU0sRUFBRTtnQkFDTjtvQkFDRSxPQUFPLEVBQ0wsbUxBQW1MO29CQUNyTCxXQUFXLEVBQUUsQ0FBQztvQkFDZCxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDO2lCQUMzQjthQUNGO1lB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QUFLLGtCQUFrQjtZQUNyQixPQUFPLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztRQUNuQyxLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssT0FBTztZQUNWLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0tBQ2hDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQVUsRUFBRTtJQUN6QyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNyQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBmaW5kTXVuaWNpcGFsaXR5QnlOYW1lQW5kVHlwZSxcbiAgZmluZE11bmljaXBhbGl0eVBhcnRCeU5hbWUsXG4gIGdldEZvdW5kZXJDaXR5Q29kZSxcbn0gZnJvbSBcIi4uL2RiL2ZvdW5kZXJzXCI7XG5pbXBvcnQgeyBGb3VuZGVyLCBNdW5pY2lwYWxpdHlUeXBlIH0gZnJvbSBcIi4uL2RiL3R5cGVzXCI7XG5pbXBvcnQgeyBEYk11bmljaXBhbGl0eVJlc3VsdCwgTXVuaWNpcGFsaXR5UGFydFJlc3VsdCB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmNvbnN0IG11bmljaXBhbGl0eVN3aXRjaFN0YXJ0UGF0dGVybiA9IC9ebmF2w61jIHVsaWNlIC87XG5cbmNvbnN0IG11bmljaXBhbGl0eVN3aXRjaFBhdHRlcm4gPVxuICAvXm5hdsOtYyB1bGljZSAoeiApPyg/PHR5cGU+bcSbc3Rza8OpIMSNw6FzdGl8bcSbc3Rza8OpaG8gb2J2b2R1fG9iY2V8bcSbc3RhKSAoPzxuYW1lPi4rKTokLztcblxuY29uc3Qgd2hvbGVNdW5pY2lwYWxpdHlTdGFydFBhdHRlcm4gPSAvXsO6emVtw60gLztcblxuY29uc3Qgd2hvbGVNdW5pY2lwYWxpdHlQYXR0ZXJuID1cbiAgL17DunplbcOtICg/PHR5cGU+bcSbc3Rza8OpIMSNw6FzdGl8bcSbc3Rza8OpaG8gb2J2b2R1fG9iY2V8bcSbc3RhKSAoPzxuYW1lPi4rKSQvO1xuXG5jb25zdCByZXN0V2l0aE5vU3RyZWV0TmFtZVBhdHRlcm4gPVxuICAvXnbFoWVjaG55IG9zdGF0bsOtIGJ1ZG92eSBiZXogbsOhenZ1IHVsaWNlXFxzKiQvO1xuXG5jb25zdCByZXN0T2ZNdW5pY2lwYWxpdHlQYXR0ZXJuID1cbiAgL156Ynl0ZWsgKD88dHlwZT5txJtzdHNrw6kgxI3DoXN0aXxtxJtzdHNrw6lobyBvYnZvZHV8b2JjZXxtxJtzdGEpXFxzKiQvO1xuY29uc3QgcmVzdE9mTXVuaWNpcGFsaXR5UGFydFBhdHRlcm4gPVxuICAvXnpieXRlayDEjcOhc3RpIChvYmNlfG3Em3N0YSkgKD88bmFtZT4uKylcXHMqJC87XG5cbmV4cG9ydCBjb25zdCBpc011bmljaXBhbGl0eVN3aXRjaCA9IChsaW5lOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIG11bmljaXBhbGl0eVN3aXRjaFN0YXJ0UGF0dGVybi50ZXN0KGxpbmUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFN3aXRjaE11bmljaXBhbGl0eSA9IGFzeW5jIChcbiAgbGluZTogc3RyaW5nLFxuICBmb3VuZGVyOiBGb3VuZGVyXG4pOiBQcm9taXNlPERiTXVuaWNpcGFsaXR5UmVzdWx0PiA9PiB7XG4gIGNvbnN0IG1hdGNoID0gbXVuaWNpcGFsaXR5U3dpdGNoUGF0dGVybi5leGVjKGxpbmUpO1xuICBpZiAobWF0Y2ggPT09IG51bGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3JzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgXCJOZXBsYXRuw70gesOhcGlzIHBybyBkb8SNYXNub3Ugem3Em251IG9iY2UgdiBkZWZpbmljaSB1bGljLiBTcHLDoXZuw70gesOhcGlzIGplOiBuYXbDrWMgdWxpY2UgPHR5cD4gPG7DoXpldiBvYmNlPi4gTmFwxZkuOiAnbmF2w61jIHVsaWNlIG9iY2UgTW9rcsOhIExob3RhOicgKG7DoXpldiBvYmNlIG11c8OtIGLDvXQgdiAxLiBww6FkxJspLlwiLFxuICAgICAgICAgIHN0YXJ0T2Zmc2V0OiAwLFxuICAgICAgICAgIGVuZE9mZnNldDogbGluZS5sZW5ndGggKyAxLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG11bmljaXBhbGl0eTogbnVsbCxcbiAgICB9O1xuICB9XG4gIGNvbnN0IHsgdHlwZSwgbmFtZSB9ID0gbWF0Y2guZ3JvdXBzO1xuICByZXR1cm4gYXdhaXQgZ2V0TXVuaWNpcGFsaXR5UmVzdWx0KHR5cGUsIGNsZWFuTmFtZShuYW1lKSwgbGluZSwgZm91bmRlcik7XG59O1xuXG5leHBvcnQgY29uc3QgaXNXaG9sZU11bmljaXBhbGl0eSA9IChsaW5lOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIHdob2xlTXVuaWNpcGFsaXR5U3RhcnRQYXR0ZXJuLnRlc3QobGluZSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNSZXN0V2l0aE5vU3RyZWV0TmFtZUxpbmUgPSAobGluZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiByZXN0V2l0aE5vU3RyZWV0TmFtZVBhdHRlcm4udGVzdChsaW5lKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1Jlc3RPZk11bmljaXBhbGl0eUxpbmUgPSAobGluZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiByZXN0T2ZNdW5pY2lwYWxpdHlQYXR0ZXJuLnRlc3QobGluZSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNSZXN0T2ZNdW5pY2lwYWxpdHlQYXJ0TGluZSA9IChsaW5lOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIHJlc3RPZk11bmljaXBhbGl0eVBhcnRQYXR0ZXJuLnRlc3QobGluZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVzdE9mTXVuaWNpcGFsaXR5UGFydCA9IGFzeW5jIChcbiAgbGluZTogc3RyaW5nLFxuICBmb3VuZGVyOiBGb3VuZGVyXG4pOiBQcm9taXNlPE11bmljaXBhbGl0eVBhcnRSZXN1bHQ+ID0+IHtcbiAgY29uc3QgbWF0Y2ggPSByZXN0T2ZNdW5pY2lwYWxpdHlQYXJ0UGF0dGVybi5leGVjKGxpbmUpO1xuICBpZiAobWF0Y2ggPT09IG51bGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3JzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgXCJOZXBsYXRuw70gesOhcGlzIHBybyBwxZlpZMOhbsOtIHpieXRrdSDEjcOhc3RpIG9iY2UuIFNwcsOhdm7DvSB6w6FwaXMgamU6IHpieXRlayDEjcOhc3RpIDx0eXA+IDxuw6F6ZXYgb2JjZT4uIE5hcMWZLjogJ3pieXRlayDEjcOhc3RpIG9iY2UgTWFsxaFvdmljZScgKG7DoXpldiDEjcOhc3RpIG9iY2UgbXVzw60gYsO9dCB2IDEuIHDDoWTEmykuXCIsXG4gICAgICAgICAgc3RhcnRPZmZzZXQ6IDAsXG4gICAgICAgICAgZW5kT2Zmc2V0OiBsaW5lLmxlbmd0aCArIDEsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgbXVuaWNpcGFsaXR5UGFydENvZGU6IG51bGwsXG4gICAgfTtcbiAgfVxuICBjb25zdCB7IG5hbWUgfSA9IG1hdGNoLmdyb3VwcztcbiAgcmV0dXJuIGF3YWl0IGdldE11bmljaXBhbGl0eVBhcnRSZXN1bHQoXG4gICAgbmFtZSxcbiAgICBsaW5lLFxuICAgIGF3YWl0IGdldEZvdW5kZXJDaXR5Q29kZShmb3VuZGVyLm11bmljaXBhbGl0eVR5cGUsIGZvdW5kZXIubXVuaWNpcGFsaXR5Q29kZSlcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRXaG9sZU11bmljaXBhbGl0eSA9IGFzeW5jIChcbiAgbGluZTogc3RyaW5nLFxuICBmb3VuZGVyOiBGb3VuZGVyXG4pOiBQcm9taXNlPERiTXVuaWNpcGFsaXR5UmVzdWx0PiA9PiB7XG4gIGNvbnN0IG1hdGNoID0gd2hvbGVNdW5pY2lwYWxpdHlQYXR0ZXJuLmV4ZWMobGluZSk7XG4gIGlmIChtYXRjaCA9PT0gbnVsbCkge1xuICAgIHJldHVybiB7XG4gICAgICBlcnJvcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICBcIk5lcGxhdG7DvSB6w6FwaXMgcHJvIHDFmWlkw6Fuw60gY2Vsw6kgb2JjZS4gU3Byw6F2bsO9IHrDoXBpcyBqZTogw7p6ZW3DrSA8dHlwPiA8bsOhemV2IG9iY2U+LiBOYXDFmS46ICfDunplbcOtIG9iY2UgS2xhZG5vJyAobsOhemV2IG9iY2UgbXVzw60gYsO9dCB2IDEuIHDDoWTEmykuXCIsXG4gICAgICAgICAgc3RhcnRPZmZzZXQ6IDAsXG4gICAgICAgICAgZW5kT2Zmc2V0OiBsaW5lLmxlbmd0aCArIDEsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgbXVuaWNpcGFsaXR5OiBudWxsLFxuICAgIH07XG4gIH1cbiAgY29uc3QgeyB0eXBlLCBuYW1lIH0gPSBtYXRjaC5ncm91cHM7XG4gIHJldHVybiBhd2FpdCBnZXRNdW5pY2lwYWxpdHlSZXN1bHQodHlwZSwgY2xlYW5OYW1lKG5hbWUpLCBsaW5lLCBmb3VuZGVyKTtcbn07XG5cbmNvbnN0IGdldE11bmljaXBhbGl0eVJlc3VsdCA9IGFzeW5jIChcbiAgdHlwZTogc3RyaW5nLFxuICBuYW1lOiBzdHJpbmcsXG4gIGxpbmU6IHN0cmluZyxcbiAgZm91bmRlcjogRm91bmRlclxuKTogUHJvbWlzZTxEYk11bmljaXBhbGl0eVJlc3VsdD4gPT4ge1xuICBjb25zdCB0eXBlVmFsdWUgPSBnZXRNdW5pY2lwYWxpdHlUeXBlKHR5cGUpO1xuICBjb25zdCB7IG11bmljaXBhbGl0eSwgZXJyb3JzIH0gPSBhd2FpdCBmaW5kTXVuaWNpcGFsaXR5QnlOYW1lQW5kVHlwZShcbiAgICBuYW1lLFxuICAgIHR5cGVWYWx1ZSxcbiAgICBmb3VuZGVyXG4gICk7XG5cbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBsaW5lLmluZGV4T2YobmFtZSk7XG4gIGNvbnN0IGVuZE9mZnNldCA9IHN0YXJ0T2Zmc2V0ICsgbmFtZS5sZW5ndGggKyAxO1xuXG4gIHJldHVybiB7XG4gICAgbXVuaWNpcGFsaXR5LFxuICAgIGVycm9yczogZXJyb3JzLm1hcCgoZXJyb3IpID0+ICh7XG4gICAgICAuLi5lcnJvcixcbiAgICAgIHN0YXJ0T2Zmc2V0LFxuICAgICAgZW5kT2Zmc2V0LFxuICAgIH0pKSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNdW5pY2lwYWxpdHlQYXJ0UmVzdWx0ID0gYXN5bmMgKFxuICBuYW1lOiBzdHJpbmcsXG4gIGxpbmU6IHN0cmluZyxcbiAgY2l0eUNvZGU6IG51bWJlclxuKTogUHJvbWlzZTxNdW5pY2lwYWxpdHlQYXJ0UmVzdWx0PiA9PiB7XG4gIGNvbnN0IHsgbXVuaWNpcGFsaXR5UGFydENvZGUsIGVycm9ycyB9ID0gYXdhaXQgZmluZE11bmljaXBhbGl0eVBhcnRCeU5hbWUoXG4gICAgbmFtZSxcbiAgICBjaXR5Q29kZVxuICApO1xuXG4gIGNvbnN0IHN0YXJ0T2Zmc2V0ID0gbGluZS5pbmRleE9mKG5hbWUpO1xuICBjb25zdCBlbmRPZmZzZXQgPSBzdGFydE9mZnNldCArIG5hbWUubGVuZ3RoICsgMTtcblxuICByZXR1cm4ge1xuICAgIG11bmljaXBhbGl0eVBhcnRDb2RlLFxuICAgIGVycm9yczogZXJyb3JzLm1hcCgoZXJyb3IpID0+ICh7XG4gICAgICAuLi5lcnJvcixcbiAgICAgIHN0YXJ0T2Zmc2V0LFxuICAgICAgZW5kT2Zmc2V0LFxuICAgIH0pKSxcbiAgfTtcbn07XG5cbmNvbnN0IGdldE11bmljaXBhbGl0eVR5cGUgPSAodHlwZTogc3RyaW5nKTogTXVuaWNpcGFsaXR5VHlwZSA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgXCJtxJtzdHNrw6kgxI3DoXN0aVwiOlxuICAgIGNhc2UgXCJtxJtzdHNrw6lobyBvYnZvZHVcIjpcbiAgICAgIHJldHVybiBNdW5pY2lwYWxpdHlUeXBlLkRpc3RyaWN0O1xuICAgIGNhc2UgXCJvYmNlXCI6XG4gICAgY2FzZSBcIm3Em3N0YVwiOlxuICAgICAgcmV0dXJuIE11bmljaXBhbGl0eVR5cGUuQ2l0eTtcbiAgfVxufTtcblxuY29uc3QgY2xlYW5OYW1lID0gKG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBuYW1lLnRyaW0oKTtcbn07XG4iXX0=
@@ -1,7 +1,7 @@
1
- import { Area, Municipality } from "./types";
2
- import { Feature, FeatureCollection, MultiPolygon, Polygon, featureCollection } from "@turf/helpers";
3
- export declare const municipalitiesToPolygons: (municipalities: Municipality[]) => Promise<Record<number, FeatureCollection>>;
4
- export declare const createPolygons: (municipality: Municipality, extraAreas: Area[], municipalityPolygons: Record<number, FeatureCollection<Polygon | MultiPolygon>>) => {
5
- featureCollection: FeatureCollection<Polygon | MultiPolygon>;
6
- extraPolygons: Map<number, Feature<Polygon | MultiPolygon>>;
7
- };
1
+ import { Area, Municipality } from "./types";
2
+ import { Feature, FeatureCollection, MultiPolygon, Polygon, featureCollection } from "@turf/helpers";
3
+ export declare const municipalitiesToPolygons: (municipalities: Municipality[]) => Promise<Record<number, FeatureCollection>>;
4
+ export declare const createPolygons: (municipality: Municipality, extraAreas: Area[], municipalityPolygons: Record<number, FeatureCollection<Polygon | MultiPolygon>>) => {
5
+ featureCollection: FeatureCollection<Polygon | MultiPolygon>;
6
+ extraPolygons: Map<number, Feature<Polygon | MultiPolygon>>;
7
+ };