@opengis/gis 0.2.13 → 0.2.15

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 (149) hide show
  1. package/README.md +5 -5
  2. package/dist/index.css +1 -1
  3. package/dist/index.js +498 -499
  4. package/dist/index.umd.cjs +9 -9
  5. package/module/cls.json +6 -6
  6. package/module/gis/card/gis.maps.table/index.yml +14 -14
  7. package/module/gis/card/gis.maps.table/main_info.hbs +25 -25
  8. package/module/gis/card/gis.maps.table/maps_layers.hbs +19 -19
  9. package/module/gis/card/gis.metadata.table/index.yml +22 -22
  10. package/module/gis/card/gis.metadata.table/main_info.hbs +20 -20
  11. package/module/gis/card/gis.metadata.table/metadata_info.hbs +27 -27
  12. package/module/gis/card/gis.metadata.table/other.hbs +25 -25
  13. package/module/gis/card/gis.rasters.table/index.yml +11 -11
  14. package/module/gis/card/gis.rasters.table/main_info.hbs +27 -27
  15. package/module/gis/card/gis.registers.table/cls.hbs +36 -36
  16. package/module/gis/card/gis.registers.table/columns.hbs +89 -89
  17. package/module/gis/card/gis.registers.table/filters.hbs +80 -80
  18. package/module/gis/card/gis.registers.table/index.yml +23 -23
  19. package/module/gis/card/gis.registers.table/main_info.hbs +35 -35
  20. package/module/gis/card/gis.registers.table/source.hbs +45 -45
  21. package/module/gis/card/gis.services.table/attributes.hbs +91 -91
  22. package/module/gis/card/gis.services.table/filters.hbs +83 -83
  23. package/module/gis/card/gis.services.table/index.yml +25 -25
  24. package/module/gis/card/gis.services.table/main_info.hbs +27 -27
  25. package/module/gis/card/gis.services.table/source.hbs +25 -25
  26. package/module/gis/cls/bool.yes_no.json +12 -12
  27. package/module/gis/cls/encoding.json +14 -14
  28. package/module/gis/cls/geom_type.json +14 -14
  29. package/module/gis/cls/gis.column_type.json +34 -34
  30. package/module/gis/cls/gis.column_view_type.json +26 -26
  31. package/module/gis/cls/gis.filter_type.json +22 -22
  32. package/module/gis/cls/language.json +10 -10
  33. package/module/gis/cls/meta.service_type.json +42 -42
  34. package/module/gis/cls/ogc.service.json +21 -21
  35. package/module/gis/cls/service_type.json +42 -42
  36. package/module/gis/cls/source_type.json +10 -10
  37. package/module/gis/cls/standarts.json +6 -6
  38. package/module/gis/cls/topic_category.json +106 -106
  39. package/module/gis/cls/update_frequency.json +29 -29
  40. package/module/gis/cls/view.json +21 -21
  41. package/module/gis/form/gis.group_list.form.json +17 -17
  42. package/module/gis/form/gis.maps.form.json +64 -64
  43. package/module/gis/form/gis.metadata.form.json +240 -240
  44. package/module/gis/form/gis.ogc_service.form.json +40 -40
  45. package/module/gis/form/gis.rasters.form.json +99 -99
  46. package/module/gis/form/gis.registers.form.json +110 -110
  47. package/module/gis/form/gis.registers_column.form.json +84 -84
  48. package/module/gis/form/gis.registers_filter.form.json +65 -65
  49. package/module/gis/form/gis.services.form.json +120 -120
  50. package/module/gis/form/gis.services_attributes.form.json +75 -75
  51. package/module/gis/form/gis.services_filter.form.json +65 -65
  52. package/module/gis/menu.json +43 -43
  53. package/module/gis/select/pg.columns.parent.sql +6 -6
  54. package/module/gis/select/pg.table_name.sql +17 -17
  55. package/module/gis/select/service_id.sql +1 -1
  56. package/module/gis/table/gis.group_list.table.json +35 -35
  57. package/module/gis/table/gis.maps.table.json +69 -69
  58. package/module/gis/table/gis.metadata.table.json +70 -70
  59. package/module/gis/table/gis.ogc_service.table.json +91 -91
  60. package/module/gis/table/gis.rasters.table.json +97 -97
  61. package/module/gis/table/gis.registers.table.json +79 -79
  62. package/module/gis/table/gis.services.table.json +99 -99
  63. package/module/gis/table/site.gis.registers.table.json +88 -88
  64. package/module/gis/table/site.gis.services.table.json +106 -106
  65. package/module/gis/templates/ISO19136_2017_gml_template.xml +330 -330
  66. package/module/gis/tokens.yml +5 -5
  67. package/module/test/cls/bp_build_type.json +37 -37
  68. package/module/test/cls/doc_status.json +31 -31
  69. package/module/test/cls/ts.temp_status.json +18 -18
  70. package/module/test/cls/ts.temp_structure.ts_class.json +49 -49
  71. package/module/test/cls/ts.temp_type.json +9 -9
  72. package/module/test/layer/bp.json +59 -59
  73. package/module/test/layer/bp1.yml +33 -33
  74. package/module/test/layer/individual.yml +53 -53
  75. package/module/test/layer/ts.linking_passport.yml +55 -55
  76. package/module/test/layer/ts.temp_structure.yml +50 -50
  77. package/module/test/map/addr.yml +21 -21
  78. package/module/test/map/bp_myo.json +43 -43
  79. package/module/test/map/bpf.json +43 -43
  80. package/module/test/map/main.json +36 -36
  81. package/module/test/map/mbd.json +91 -91
  82. package/module/test/map/ts.json +52 -52
  83. package/module/test/select/address_id.json +2 -2
  84. package/module/test/select/address_id.sql +7 -7
  85. package/module/test/select/core.user_uid.sql +1 -1
  86. package/module/test/table/data_address.street.table.json +69 -69
  87. package/module/test/table/data_bp_myo.bp.table.json +122 -122
  88. package/package.json +67 -67
  89. package/plugin.js +44 -44
  90. package/server/migrations/ogc.sql +106 -106
  91. package/server/migrations/rasters.sql +263 -263
  92. package/server/migrations/services.sql +247 -247
  93. package/server/migrations/widgets.sql +20 -20
  94. package/server/plugins/crons.js +21 -21
  95. package/server/plugins/mapnik/funcs/createXML.js +72 -72
  96. package/server/plugins/mapnik/funcs/gdalWrapper.js +72 -72
  97. package/server/plugins/mapnik/funcs/map.proto +241 -241
  98. package/server/plugins/mapnik/funcs/mapnik.js +106 -106
  99. package/server/plugins/mapnik/funcs/rasterConfig.js +11 -11
  100. package/server/plugins/mapnik/funcs/rasterExists.js +20 -20
  101. package/server/plugins/mapnik/funcs/rasterInfo.js +109 -109
  102. package/server/plugins/mapnik/funcs/rasterVrt.js +55 -55
  103. package/server/plugins/mapnik/funcs/rasterXML.js +65 -65
  104. package/server/plugins/mapnik/funcs/rootFolder.mjs +8 -8
  105. package/server/plugins/mapnik/utils/map.proto +241 -241
  106. package/server/plugins/vite.js +74 -74
  107. package/server/routes/gis/index.mjs +59 -59
  108. package/server/routes/gis/metadata/metadataXML.js +13 -13
  109. package/server/routes/gis/ogc/map.info.point.js +124 -124
  110. package/server/routes/gis/registers/add.registry.js +35 -35
  111. package/server/routes/gis/registers/del.registry.js +14 -14
  112. package/server/routes/gis/registers/funcs/classifiers.js +100 -100
  113. package/server/routes/gis/registers/funcs/columns.js +4 -4
  114. package/server/routes/gis/registers/funcs/content.type.js +9 -9
  115. package/server/routes/gis/registers/funcs/get.info.js +89 -89
  116. package/server/routes/gis/registers/funcs/handleRegistryRequest.js +122 -122
  117. package/server/routes/gis/registers/gis.export.js +148 -148
  118. package/server/routes/gis/registers/gis.registry.js +38 -38
  119. package/server/routes/gis/registers/gis.registry.list.js +59 -59
  120. package/server/routes/gis/registers/insert.columns.js +107 -107
  121. package/server/routes/gis/registers/insert.filters.js +110 -110
  122. package/server/routes/gis/registers/map.registry.js +79 -79
  123. package/server/routes/gis/services/add.service.js +64 -64
  124. package/server/routes/gis/services/del.service.js +12 -12
  125. package/server/routes/gis/services/get.layer.geom.js +27 -27
  126. package/server/routes/gis/services/get.services.col.js +33 -33
  127. package/server/routes/gis/services/get.services.js +84 -84
  128. package/server/routes/gis/services/legend.auto.js +77 -77
  129. package/server/routes/map/controllers/layerList.js +60 -60
  130. package/server/routes/map/controllers/map.js +123 -123
  131. package/server/routes/map/controllers/mapCatalog.js +72 -72
  132. package/server/routes/map/controllers/mapCatalogAttribute.js +55 -55
  133. package/server/routes/map/controllers/mapFeatures.js +128 -128
  134. package/server/routes/map/controllers/mapFormat.js +83 -83
  135. package/server/routes/map/controllers/mapTiles.js +152 -152
  136. package/server/routes/map/controllers/maps.js +15 -15
  137. package/server/routes/map/controllers/marker_icon.js +43 -43
  138. package/server/routes/map/controllers/rtile.js +134 -134
  139. package/server/routes/map/controllers/vtile.js +172 -172
  140. package/server/routes/map/index.mjs +129 -86
  141. package/server/routes/map/maps/add.map.js +41 -41
  142. package/server/routes/map/maps/del.map.js +18 -18
  143. package/server/routes/map/maps/get.map.js +88 -88
  144. package/server/routes/map/vtile1.js +170 -170
  145. package/server/routes/map/widgets/add.widget.js +38 -38
  146. package/server/routes/map/widgets/del.widget.js +22 -22
  147. package/server/routes/map/widgets/get.widget.js +40 -40
  148. package/server/routes/root.mjs +3 -3
  149. package/utils.js +11 -11
@@ -1,123 +1,123 @@
1
- {
2
- "key": "bp_id",
3
- "table": "data_bp_myo.bp",
4
- "actions": [
5
- "add",
6
- "edit",
7
- "del"
8
- ],
9
- "controls": [
10
- "search",
11
- "list",
12
- "add"
13
- ],
14
- "access": "user",
15
- "order": "cdate desc",
16
- "meta": {
17
- "title": "bp_code",
18
- "search": "bp_code,bp_number,bp_reg_num,bp_issued_name,bp_customer_name,bp_object_name"
19
- },
20
- "title": "Будівельні паспорти",
21
- "form": "data_bp_myo.bp.form",
22
- "columns": [
23
- {
24
- "ua": "Реєстраційний номер МБК",
25
- "name": "bp_number",
26
- "width": 100,
27
- "format": "text"
28
- },
29
- {
30
- "ua": "Реєстраційний номер в ЄДЕССБ",
31
- "meta": "title",
32
- "name": "bp_code",
33
- "hidden": true,
34
- "format": "text"
35
- },
36
- {
37
- "ua": "Реєстраційний номер",
38
- "name": "bp_reg_num",
39
- "width": 100,
40
- "format": "text"
41
- },
42
- {
43
- "ua": "Назва об’єкта будівництва",
44
- "name": "bp_object_name",
45
- "width": 300,
46
- "format": "text"
47
- },
48
- {
49
- "ua": "Адреса",
50
- "name": "address",
51
- "width": 300,
52
- "format": "text"
53
- },
54
- {
55
- "ua": "Вид будівництва",
56
- "name": "bp_build_type",
57
- "data": "bp_build_type",
58
- "width": 150,
59
- "format": "badge"
60
- },
61
- {
62
- "ua": "Дата видачі",
63
- "name": "bp_issued_date",
64
- "width": 100,
65
- "format": "date"
66
- },
67
- {
68
- "ua": "Статус реєстрації",
69
- "name": "bp_doc_status",
70
- "data": "doc_status",
71
- "width": 150,
72
- "hidden": true,
73
- "format": "badge"
74
- },
75
- {
76
- "ua": "Назва органу, що видав",
77
- "name": "bp_issued_name",
78
- "width": 300,
79
- "hidden": true,
80
- "format": "text"
81
- },
82
- {
83
- "ua": "Замовник",
84
- "name": "bp_customer_name",
85
- "width": 300,
86
- "format": "text"
87
- },
88
- {
89
- "ua": "Кадастрові номери",
90
- "name": "land_number",
91
- "format": "slot",
92
- "hidden": true,
93
- "slot": {
94
- "content": "<p v-for=\"item in data?.land_number\">{{item}}</p>"
95
- }
96
- },
97
- {
98
- "ua": "Версія документу",
99
- "name": "obj_version",
100
- "format": "text",
101
- "hidden": true
102
- }
103
- ],
104
- "filterList": [
105
- {
106
- "ua": "Вид будівництва",
107
- "name": "bp_build_type",
108
- "data": "bp_build_type",
109
- "type": "Check"
110
- },
111
- {
112
- "ua": "Дата видачі",
113
- "name": "bp_issued_date",
114
- "type": "Date"
115
- },
116
- {
117
- "ua": "Статус документа",
118
- "name": "bp_doc_status",
119
- "data": "doc_status",
120
- "type": "Check"
121
- }
122
- ]
1
+ {
2
+ "key": "bp_id",
3
+ "table": "data_bp_myo.bp",
4
+ "actions": [
5
+ "add",
6
+ "edit",
7
+ "del"
8
+ ],
9
+ "controls": [
10
+ "search",
11
+ "list",
12
+ "add"
13
+ ],
14
+ "access": "user",
15
+ "order": "cdate desc",
16
+ "meta": {
17
+ "title": "bp_code",
18
+ "search": "bp_code,bp_number,bp_reg_num,bp_issued_name,bp_customer_name,bp_object_name"
19
+ },
20
+ "title": "Будівельні паспорти",
21
+ "form": "data_bp_myo.bp.form",
22
+ "columns": [
23
+ {
24
+ "ua": "Реєстраційний номер МБК",
25
+ "name": "bp_number",
26
+ "width": 100,
27
+ "format": "text"
28
+ },
29
+ {
30
+ "ua": "Реєстраційний номер в ЄДЕССБ",
31
+ "meta": "title",
32
+ "name": "bp_code",
33
+ "hidden": true,
34
+ "format": "text"
35
+ },
36
+ {
37
+ "ua": "Реєстраційний номер",
38
+ "name": "bp_reg_num",
39
+ "width": 100,
40
+ "format": "text"
41
+ },
42
+ {
43
+ "ua": "Назва об’єкта будівництва",
44
+ "name": "bp_object_name",
45
+ "width": 300,
46
+ "format": "text"
47
+ },
48
+ {
49
+ "ua": "Адреса",
50
+ "name": "address",
51
+ "width": 300,
52
+ "format": "text"
53
+ },
54
+ {
55
+ "ua": "Вид будівництва",
56
+ "name": "bp_build_type",
57
+ "data": "bp_build_type",
58
+ "width": 150,
59
+ "format": "badge"
60
+ },
61
+ {
62
+ "ua": "Дата видачі",
63
+ "name": "bp_issued_date",
64
+ "width": 100,
65
+ "format": "date"
66
+ },
67
+ {
68
+ "ua": "Статус реєстрації",
69
+ "name": "bp_doc_status",
70
+ "data": "doc_status",
71
+ "width": 150,
72
+ "hidden": true,
73
+ "format": "badge"
74
+ },
75
+ {
76
+ "ua": "Назва органу, що видав",
77
+ "name": "bp_issued_name",
78
+ "width": 300,
79
+ "hidden": true,
80
+ "format": "text"
81
+ },
82
+ {
83
+ "ua": "Замовник",
84
+ "name": "bp_customer_name",
85
+ "width": 300,
86
+ "format": "text"
87
+ },
88
+ {
89
+ "ua": "Кадастрові номери",
90
+ "name": "land_number",
91
+ "format": "slot",
92
+ "hidden": true,
93
+ "slot": {
94
+ "content": "<p v-for=\"item in data?.land_number\">{{item}}</p>"
95
+ }
96
+ },
97
+ {
98
+ "ua": "Версія документу",
99
+ "name": "obj_version",
100
+ "format": "text",
101
+ "hidden": true
102
+ }
103
+ ],
104
+ "filterList": [
105
+ {
106
+ "ua": "Вид будівництва",
107
+ "name": "bp_build_type",
108
+ "data": "bp_build_type",
109
+ "type": "Check"
110
+ },
111
+ {
112
+ "ua": "Дата видачі",
113
+ "name": "bp_issued_date",
114
+ "type": "Date"
115
+ },
116
+ {
117
+ "ua": "Статус документа",
118
+ "name": "bp_doc_status",
119
+ "data": "doc_status",
120
+ "type": "Check"
121
+ }
122
+ ]
123
123
  }
package/package.json CHANGED
@@ -1,67 +1,67 @@
1
- {
2
- "name": "@opengis/gis",
3
- "version": "0.2.13",
4
- "type": "module",
5
- "author": "Softpro",
6
- "main": "./dist/index.js",
7
- "files": [
8
- "dist/*",
9
- "module/*",
10
- "server/*",
11
- "plugin.js",
12
- "utils.js",
13
- "config.js",
14
- "README.md",
15
- "LICENSE"
16
- ],
17
- "scripts": {
18
- "start1": "bun server",
19
- "lint": "eslint src --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts",
20
- "fix": "eslint src --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix",
21
- "patch": "npm version patch && git push && npm publish",
22
- "dev": "bun --hot server",
23
- "front": "vite dev",
24
- "build-lib": "vite build",
25
- "build:admin": "vite build admin",
26
- "build": "vite build",
27
- "preview": "vite preview",
28
- "prod": "NODE_ENV=production node server",
29
- "docs:install": "npm install --prefix ./docs",
30
- "docs:dev": "npm run --prefix ./docs docs:dev",
31
- "docs:build": "npm run --prefix ./docs docs:build",
32
- "docs:preview": "npm run --prefix ./docs docs:preview",
33
- "prepublishOnly": "npm run build"
34
- },
35
- "dependencies": {
36
- "@mapbox/sphericalmercator": "1.2.0",
37
- "carto": "0.16.3"
38
- },
39
- "peerDependencies": {
40
- "@opengis/fastify-table": "^2.0.32"
41
- },
42
- "resolutions": {
43
- "rollup": "4.30.0"
44
- },
45
- "devDependencies": {
46
- "@opengis/core": "^0.0.23",
47
- "@opengis/fastify-table": "^2.0.43",
48
- "@opengis/filter": "^0.1.25",
49
- "@opengis/form": "^0.0.48",
50
- "@opengis/table": "^0.0.27",
51
- "@vitejs/plugin-vue": "^5.2.3",
52
- "axios": "^1.11.0",
53
- "eslint": "^8.57.1",
54
- "eslint-config-airbnb": "19.0.4",
55
- "eslint-plugin-import": "^2.25.3",
56
- "eslint-plugin-vue": "^9.17.0",
57
- "@vue/eslint-config-typescript": "^12.0.0",
58
- "vue-eslint-parser": "^10.2.0",
59
- "lucide-vue-next": "^0.514.0",
60
- "sass-embedded": "1.86.3",
61
- "typescript": "^5.9.2",
62
- "vite": "^6.3.5",
63
- "vue": "^3.5.13",
64
- "vue-router": "4.5.1",
65
- "vuedraggable": "^4.1.0"
66
- }
67
- }
1
+ {
2
+ "name": "@opengis/gis",
3
+ "version": "0.2.15",
4
+ "type": "module",
5
+ "author": "Softpro",
6
+ "main": "./dist/index.js",
7
+ "files": [
8
+ "dist/*",
9
+ "module/*",
10
+ "server/*",
11
+ "plugin.js",
12
+ "utils.js",
13
+ "config.js",
14
+ "README.md",
15
+ "LICENSE"
16
+ ],
17
+ "scripts": {
18
+ "start1": "bun server",
19
+ "lint": "eslint src --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts",
20
+ "fix": "eslint src --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix",
21
+ "patch": "npm version patch && git push && npm publish",
22
+ "dev": "bun --hot server",
23
+ "front": "vite dev",
24
+ "build-lib": "vite build",
25
+ "build:admin": "vite build admin",
26
+ "build": "vite build",
27
+ "preview": "vite preview",
28
+ "prod": "NODE_ENV=production node server",
29
+ "docs:install": "npm install --prefix ./docs",
30
+ "docs:dev": "npm run --prefix ./docs docs:dev",
31
+ "docs:build": "npm run --prefix ./docs docs:build",
32
+ "docs:preview": "npm run --prefix ./docs docs:preview",
33
+ "prepublishOnly": "npm run build"
34
+ },
35
+ "dependencies": {
36
+ "@mapbox/sphericalmercator": "1.2.0",
37
+ "carto": "0.16.3"
38
+ },
39
+ "peerDependencies": {
40
+ "@opengis/fastify-table": "^2.0.32"
41
+ },
42
+ "resolutions": {
43
+ "rollup": "4.30.0"
44
+ },
45
+ "devDependencies": {
46
+ "@opengis/core": "^0.0.23",
47
+ "@opengis/fastify-table": "^2.0.43",
48
+ "@opengis/filter": "^0.1.25",
49
+ "@opengis/form": "^0.0.48",
50
+ "@opengis/table": "^0.0.27",
51
+ "@vitejs/plugin-vue": "^5.2.3",
52
+ "axios": "^1.11.0",
53
+ "eslint": "^8.57.1",
54
+ "eslint-config-airbnb": "19.0.4",
55
+ "eslint-plugin-import": "^2.25.3",
56
+ "eslint-plugin-vue": "^9.17.0",
57
+ "@vue/eslint-config-typescript": "^12.0.0",
58
+ "vue-eslint-parser": "^10.2.0",
59
+ "lucide-vue-next": "^0.514.0",
60
+ "sass-embedded": "1.86.3",
61
+ "typescript": "^5.9.2",
62
+ "vite": "^6.3.5",
63
+ "vue": "^3.5.13",
64
+ "vue-router": "4.5.1",
65
+ "vuedraggable": "^4.1.0"
66
+ }
67
+ }
package/plugin.js CHANGED
@@ -1,44 +1,44 @@
1
- import fp from 'fastify-plugin';
2
-
3
- import {
4
- config, addHook, getMeta, pgClients, execMigrations,
5
- } from '@opengis/fastify-table/utils.js';
6
-
7
- config.prefix = config.prefix || '/api';
8
-
9
- import { join, dirname } from 'path';
10
- import { fileURLToPath } from 'url';
11
-
12
- const dir = dirname(fileURLToPath(import.meta.url));
13
-
14
- execMigrations(join(dir, 'server/migrations'), pgClients.client).catch(err => console.error(err.toString()));
15
-
16
- const columnType = {
17
- text: 'text',
18
- date: 'date',
19
- bool: 'yes/no',
20
- numeric: 'number',
21
- integer: 'number',
22
- 'timestamp without time zone': 'date',
23
- 'timestamp with time zone': 'date',
24
- };
25
-
26
- async function plugin(app, opts = config) {
27
- // API
28
- app.register(import('./server/routes/map/index.mjs'), opts);
29
- app.register(import('./server/plugins/crons.js'), opts);
30
- app.register(import('./server/routes/gis/index.mjs'), opts);
31
-
32
- addHook('afterData', async ({
33
- pg = pgClients.client, payload, id, template,
34
- }) => {
35
- if (!template) return null;
36
- const table = { 'gis.services.table': payload?.rows?.[0]?.source_path, 'gis.registers.table': payload?.rows?.[0]?.table_name }[template];
37
- if (!table || !payload.columns?.length || !id || !pgClients?.client?.pk?.[table]) return null;
38
-
39
- const { columns = [] } = await getMeta({ table, pg });
40
- // payload.rows[0].token = payload.tokens?.edit; // token with ignore filtering of payload keys check
41
- Object.assign(payload, { fields: columns?.map?.(({ name, title, dataTypeID }) => ({ name, title: title || name, type: columnType[pg?.pgType?.[dataTypeID] || 'text'] })).filter(el => el.type) });
42
- });
43
- }
44
- export default fp(plugin);
1
+ import fp from 'fastify-plugin';
2
+
3
+ import {
4
+ config, addHook, getMeta, pgClients, execMigrations,
5
+ } from '@opengis/fastify-table/utils.js';
6
+
7
+ config.prefix = config.prefix || '/api';
8
+
9
+ import { join, dirname } from 'path';
10
+ import { fileURLToPath } from 'url';
11
+
12
+ const dir = dirname(fileURLToPath(import.meta.url));
13
+
14
+ execMigrations(join(dir, 'server/migrations'), pgClients.client).catch(err => console.error(err.toString()));
15
+
16
+ const columnType = {
17
+ text: 'text',
18
+ date: 'date',
19
+ bool: 'yes/no',
20
+ numeric: 'number',
21
+ integer: 'number',
22
+ 'timestamp without time zone': 'date',
23
+ 'timestamp with time zone': 'date',
24
+ };
25
+
26
+ async function plugin(app, opts = config) {
27
+ // API
28
+ app.register(import('./server/routes/map/index.mjs'), opts);
29
+ app.register(import('./server/plugins/crons.js'), opts);
30
+ app.register(import('./server/routes/gis/index.mjs'), opts);
31
+
32
+ addHook('afterData', async ({
33
+ pg = pgClients.client, payload, id, template,
34
+ }) => {
35
+ if (!template) return null;
36
+ const table = { 'gis.services.table': payload?.rows?.[0]?.source_path, 'gis.registers.table': payload?.rows?.[0]?.table_name }[template];
37
+ if (!table || !payload.columns?.length || !id || !pgClients?.client?.pk?.[table]) return null;
38
+
39
+ const { columns = [] } = await getMeta({ table, pg });
40
+ // payload.rows[0].token = payload.tokens?.edit; // token with ignore filtering of payload keys check
41
+ Object.assign(payload, { fields: columns?.map?.(({ name, title, dataTypeID }) => ({ name, title: title || name, type: columnType[pg?.pgType?.[dataTypeID] || 'text'] })).filter(el => el.type) });
42
+ });
43
+ }
44
+ export default fp(plugin);