@opengis/gis 0.2.10 → 0.2.12

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 (147) hide show
  1. package/README.md +5 -5
  2. package/dist/index.css +1 -1
  3. package/dist/index.js +3591 -3469
  4. package/dist/index.umd.cjs +41 -41
  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/ts.temp_status.json +18 -18
  69. package/module/test/cls/ts.temp_structure.ts_class.json +49 -49
  70. package/module/test/cls/ts.temp_type.json +9 -9
  71. package/module/test/layer/bp.json +59 -59
  72. package/module/test/layer/bp1.yml +33 -33
  73. package/module/test/layer/individual.yml +53 -53
  74. package/module/test/layer/ts.linking_passport.yml +55 -55
  75. package/module/test/layer/ts.temp_structure.yml +50 -50
  76. package/module/test/map/addr.yml +21 -21
  77. package/module/test/map/bp_myo.json +43 -43
  78. package/module/test/map/bpf.json +43 -43
  79. package/module/test/map/main.json +36 -36
  80. package/module/test/map/mbd.json +91 -91
  81. package/module/test/map/ts.json +52 -52
  82. package/module/test/select/address_id.json +2 -2
  83. package/module/test/select/address_id.sql +7 -7
  84. package/module/test/table/data_address.street.table.json +69 -69
  85. package/module/test/table/data_bp_myo.bp.table.json +122 -122
  86. package/package.json +67 -67
  87. package/plugin.js +44 -44
  88. package/server/migrations/ogc.sql +106 -106
  89. package/server/migrations/rasters.sql +263 -263
  90. package/server/migrations/services.sql +247 -247
  91. package/server/migrations/widgets.sql +20 -20
  92. package/server/plugins/crons.js +21 -21
  93. package/server/plugins/mapnik/funcs/createXML.js +72 -72
  94. package/server/plugins/mapnik/funcs/gdalWrapper.js +72 -72
  95. package/server/plugins/mapnik/funcs/map.proto +241 -241
  96. package/server/plugins/mapnik/funcs/mapnik.js +106 -106
  97. package/server/plugins/mapnik/funcs/rasterConfig.js +11 -11
  98. package/server/plugins/mapnik/funcs/rasterExists.js +20 -20
  99. package/server/plugins/mapnik/funcs/rasterInfo.js +109 -109
  100. package/server/plugins/mapnik/funcs/rasterVrt.js +55 -55
  101. package/server/plugins/mapnik/funcs/rasterXML.js +65 -65
  102. package/server/plugins/mapnik/funcs/rootFolder.mjs +8 -8
  103. package/server/plugins/mapnik/utils/map.proto +241 -241
  104. package/server/plugins/vite.js +74 -74
  105. package/server/routes/gis/index.mjs +59 -59
  106. package/server/routes/gis/metadata/metadataXML.js +13 -13
  107. package/server/routes/gis/ogc/map.info.point.js +124 -124
  108. package/server/routes/gis/registers/add.registry.js +35 -35
  109. package/server/routes/gis/registers/del.registry.js +14 -14
  110. package/server/routes/gis/registers/funcs/classifiers.js +100 -100
  111. package/server/routes/gis/registers/funcs/columns.js +4 -4
  112. package/server/routes/gis/registers/funcs/content.type.js +9 -9
  113. package/server/routes/gis/registers/funcs/get.info.js +89 -89
  114. package/server/routes/gis/registers/funcs/handleRegistryRequest.js +122 -122
  115. package/server/routes/gis/registers/gis.export.js +148 -148
  116. package/server/routes/gis/registers/gis.registry.js +38 -38
  117. package/server/routes/gis/registers/gis.registry.list.js +59 -59
  118. package/server/routes/gis/registers/insert.columns.js +107 -107
  119. package/server/routes/gis/registers/insert.filters.js +110 -110
  120. package/server/routes/gis/registers/map.registry.js +79 -79
  121. package/server/routes/gis/services/add.service.js +64 -64
  122. package/server/routes/gis/services/del.service.js +12 -12
  123. package/server/routes/gis/services/get.layer.geom.js +27 -27
  124. package/server/routes/gis/services/get.services.col.js +33 -33
  125. package/server/routes/gis/services/get.services.js +84 -84
  126. package/server/routes/gis/services/legend.auto.js +77 -77
  127. package/server/routes/map/controllers/layerList.js +60 -60
  128. package/server/routes/map/controllers/map.js +123 -123
  129. package/server/routes/map/controllers/mapCatalog.js +72 -72
  130. package/server/routes/map/controllers/mapCatalogAttribute.js +55 -55
  131. package/server/routes/map/controllers/mapFeatures.js +128 -128
  132. package/server/routes/map/controllers/mapFormat.js +83 -83
  133. package/server/routes/map/controllers/mapTiles.js +152 -152
  134. package/server/routes/map/controllers/maps.js +15 -15
  135. package/server/routes/map/controllers/marker_icon.js +43 -43
  136. package/server/routes/map/controllers/rtile.js +134 -134
  137. package/server/routes/map/controllers/vtile.js +172 -172
  138. package/server/routes/map/index.mjs +86 -86
  139. package/server/routes/map/maps/add.map.js +41 -41
  140. package/server/routes/map/maps/del.map.js +18 -18
  141. package/server/routes/map/maps/get.map.js +88 -88
  142. package/server/routes/map/vtile1.js +170 -170
  143. package/server/routes/map/widgets/add.widget.js +38 -38
  144. package/server/routes/map/widgets/del.widget.js +22 -22
  145. package/server/routes/map/widgets/get.widget.js +40 -40
  146. package/server/routes/root.mjs +3 -3
  147. package/utils.js +11 -11
@@ -1,241 +1,241 @@
1
- syntax = "proto3";
2
-
3
-
4
- message render_in {
5
- string path = 1;
6
- string name = 2;
7
- repeated double bbox = 3 [packed=true];
8
- string tile = 4;
9
- string xml = 5;
10
- int32 width = 6;
11
- int32 height = 7;
12
- }
13
-
14
-
15
- message render_out {
16
- string err = 1;
17
- string base64 = 2;
18
- string tile = 3;
19
- }
20
-
21
- message xml_in {
22
- string path = 1;
23
- string name = 2;
24
- string xml = 3;
25
- bool reload = 4;
26
- }
27
-
28
- message xml_out {
29
- string err = 1;
30
- bool is_ok = 2;
31
- }
32
-
33
- message cmd_in {
34
- string cmd = 1;
35
- string svg = 2;
36
- string filename = 3;
37
- }
38
-
39
- message cmd_out {
40
- string err = 1;
41
- string base64 = 2;
42
- }
43
-
44
- message gdal_in {
45
- string name = 1;
46
- string path = 2;
47
- string out = 3;
48
- string params = 4;
49
- }
50
- message gdal_out {
51
- string result = 1;
52
- string err = 2;
53
- }
54
-
55
- message clear_tiles_in {
56
- string path = 1;
57
- }
58
-
59
- message clear_tiles_out {
60
- oneof clear_message {
61
- bool ok = 1;
62
- string err = 2;
63
- }
64
- }
65
-
66
- message empty {}
67
-
68
- message statusRenderInfo {
69
- string name = 1;
70
- bool isActive = 2;
71
- float workTime = 3;
72
- }
73
-
74
- message statusInfo {
75
- repeated statusRenderInfo info = 1;
76
- }
77
-
78
- message printMapOut {
79
- string map = 1;
80
- string err = 2;
81
- }
82
-
83
- message xyz {
84
- float x = 1;
85
- float y = 2;
86
- float z = 3;
87
- }
88
-
89
- message printMapIn {
90
- string baseurl = 1;
91
- string baseImg = 2;
92
- repeated string xml = 3;
93
- string overlayXml = 4;
94
- string overlay = 5;
95
- int32 width = 6;
96
- int32 height = 7;
97
- repeated double bbox = 8;
98
- xyz pos = 9;
99
- string geojsonSettings = 10;
100
- }
101
-
102
- message log_in {
103
- uint32 rows = 1;
104
- string level = 2;
105
- }
106
-
107
- message log_out {
108
- repeated string logs = 1;
109
- }
110
-
111
- message sqlToShpIn {
112
- string db = 1;
113
- string host = 2;
114
- string port = 3;
115
- string sql = 4;
116
- string savePath = 5;
117
- string shpName = 6;
118
- }
119
-
120
- message shapeOut {
121
- string zipPath = 1;
122
- }
123
-
124
- message fileIn {
125
- bytes fileBytes = 1;
126
- string relativeFilepath = 2;
127
- }
128
-
129
- message deleteFileIn {
130
- string dir = 1;
131
- repeated string objectList = 2;
132
- }
133
-
134
- message fileManagerOut {
135
- bool status = 1;
136
- string operation = 2;
137
- }
138
-
139
- message checkFilesDir {
140
- string dir = 1;
141
- repeated string filesSearch = 2;
142
- }
143
-
144
- enum status {
145
- LOADING = 0;
146
- OK = 1;
147
- }
148
-
149
- message filesStatus {
150
- status fileLoadingStatus = 1;
151
- }
152
-
153
- message fileListIn {
154
- string dir = 1;
155
- }
156
-
157
- message fileInfo {
158
- repeated fileInfoL fileInfoList = 1;
159
- }
160
-
161
- message fileInfoL {
162
- oneof fileInfo {
163
- fileInfoObj file = 1;
164
- dirInfoObj dir = 2;
165
- }
166
- }
167
-
168
- message fileInfoObj {
169
- string type = 1;
170
- string birthtime = 2;
171
- string name = 3;
172
- uint64 size = 4;
173
- string ext = 5;
174
- string server = 6;
175
- }
176
-
177
- message dirInfoObj {
178
- string type = 1;
179
- string birthtime = 2;
180
- string name = 3;
181
- uint64 size = 4;
182
- uint64 count = 5;
183
- string server = 6;
184
- }
185
-
186
- message deleteOut {
187
- repeated deleteObjSuccess success = 1;
188
- repeated deleteObjError error = 2;
189
-
190
- }
191
-
192
- message deleteObjSuccess {
193
- string object = 1;
194
- string type = 2;
195
- string status = 3;
196
- }
197
-
198
- message deleteObjError {
199
- string object = 1;
200
- string fullPath = 2;
201
- string result = 3;
202
- }
203
-
204
- message readDirIn {
205
- string dir = 1;
206
- repeated string filter = 2;
207
- string fullPath = 3;
208
- }
209
-
210
- message readDirOut {
211
- repeated string res = 1;
212
-
213
- }
214
-
215
- message downloadFileIn {
216
- string filePath = 1;
217
- }
218
-
219
- message downloadFileOut {
220
- bytes chunk_data = 1;
221
- }
222
-
223
-
224
- service Map {
225
- rpc Render(render_in) returns (render_out) {}
226
- rpc RenderXML(render_in) returns (render_out) {}
227
- rpc LoadXML(xml_in) returns (xml_out) {}
228
- rpc MarkerIcon(cmd_in) returns (cmd_out) {}
229
- rpc Gdal(gdal_in) returns (gdal_out) {}
230
- rpc ClearTiles(clear_tiles_in) returns (clear_tiles_out) {}
231
- rpc RenderStatus(empty) returns (statusInfo) {}
232
- rpc PrintMap(printMapIn) returns (printMapOut) {}
233
- rpc Log(log_in) returns (log_out) {}
234
- rpc SqlToShp(sqlToShpIn) returns (shapeOut) {}
235
- rpc uploadFile(fileIn) returns (fileManagerOut) {}
236
- rpc deleteFiles(deleteFileIn) returns (deleteOut) {}
237
- rpc checkFiles(checkFilesDir) returns (filesStatus) {}
238
- rpc fileList(fileListIn) returns (fileInfo) {}
239
- rpc readDir(readDirIn) returns (readDirOut) {}
240
- rpc downloadFile(downloadFileIn) returns (stream downloadFileOut) {}
241
- }
1
+ syntax = "proto3";
2
+
3
+
4
+ message render_in {
5
+ string path = 1;
6
+ string name = 2;
7
+ repeated double bbox = 3 [packed=true];
8
+ string tile = 4;
9
+ string xml = 5;
10
+ int32 width = 6;
11
+ int32 height = 7;
12
+ }
13
+
14
+
15
+ message render_out {
16
+ string err = 1;
17
+ string base64 = 2;
18
+ string tile = 3;
19
+ }
20
+
21
+ message xml_in {
22
+ string path = 1;
23
+ string name = 2;
24
+ string xml = 3;
25
+ bool reload = 4;
26
+ }
27
+
28
+ message xml_out {
29
+ string err = 1;
30
+ bool is_ok = 2;
31
+ }
32
+
33
+ message cmd_in {
34
+ string cmd = 1;
35
+ string svg = 2;
36
+ string filename = 3;
37
+ }
38
+
39
+ message cmd_out {
40
+ string err = 1;
41
+ string base64 = 2;
42
+ }
43
+
44
+ message gdal_in {
45
+ string name = 1;
46
+ string path = 2;
47
+ string out = 3;
48
+ string params = 4;
49
+ }
50
+ message gdal_out {
51
+ string result = 1;
52
+ string err = 2;
53
+ }
54
+
55
+ message clear_tiles_in {
56
+ string path = 1;
57
+ }
58
+
59
+ message clear_tiles_out {
60
+ oneof clear_message {
61
+ bool ok = 1;
62
+ string err = 2;
63
+ }
64
+ }
65
+
66
+ message empty {}
67
+
68
+ message statusRenderInfo {
69
+ string name = 1;
70
+ bool isActive = 2;
71
+ float workTime = 3;
72
+ }
73
+
74
+ message statusInfo {
75
+ repeated statusRenderInfo info = 1;
76
+ }
77
+
78
+ message printMapOut {
79
+ string map = 1;
80
+ string err = 2;
81
+ }
82
+
83
+ message xyz {
84
+ float x = 1;
85
+ float y = 2;
86
+ float z = 3;
87
+ }
88
+
89
+ message printMapIn {
90
+ string baseurl = 1;
91
+ string baseImg = 2;
92
+ repeated string xml = 3;
93
+ string overlayXml = 4;
94
+ string overlay = 5;
95
+ int32 width = 6;
96
+ int32 height = 7;
97
+ repeated double bbox = 8;
98
+ xyz pos = 9;
99
+ string geojsonSettings = 10;
100
+ }
101
+
102
+ message log_in {
103
+ uint32 rows = 1;
104
+ string level = 2;
105
+ }
106
+
107
+ message log_out {
108
+ repeated string logs = 1;
109
+ }
110
+
111
+ message sqlToShpIn {
112
+ string db = 1;
113
+ string host = 2;
114
+ string port = 3;
115
+ string sql = 4;
116
+ string savePath = 5;
117
+ string shpName = 6;
118
+ }
119
+
120
+ message shapeOut {
121
+ string zipPath = 1;
122
+ }
123
+
124
+ message fileIn {
125
+ bytes fileBytes = 1;
126
+ string relativeFilepath = 2;
127
+ }
128
+
129
+ message deleteFileIn {
130
+ string dir = 1;
131
+ repeated string objectList = 2;
132
+ }
133
+
134
+ message fileManagerOut {
135
+ bool status = 1;
136
+ string operation = 2;
137
+ }
138
+
139
+ message checkFilesDir {
140
+ string dir = 1;
141
+ repeated string filesSearch = 2;
142
+ }
143
+
144
+ enum status {
145
+ LOADING = 0;
146
+ OK = 1;
147
+ }
148
+
149
+ message filesStatus {
150
+ status fileLoadingStatus = 1;
151
+ }
152
+
153
+ message fileListIn {
154
+ string dir = 1;
155
+ }
156
+
157
+ message fileInfo {
158
+ repeated fileInfoL fileInfoList = 1;
159
+ }
160
+
161
+ message fileInfoL {
162
+ oneof fileInfo {
163
+ fileInfoObj file = 1;
164
+ dirInfoObj dir = 2;
165
+ }
166
+ }
167
+
168
+ message fileInfoObj {
169
+ string type = 1;
170
+ string birthtime = 2;
171
+ string name = 3;
172
+ uint64 size = 4;
173
+ string ext = 5;
174
+ string server = 6;
175
+ }
176
+
177
+ message dirInfoObj {
178
+ string type = 1;
179
+ string birthtime = 2;
180
+ string name = 3;
181
+ uint64 size = 4;
182
+ uint64 count = 5;
183
+ string server = 6;
184
+ }
185
+
186
+ message deleteOut {
187
+ repeated deleteObjSuccess success = 1;
188
+ repeated deleteObjError error = 2;
189
+
190
+ }
191
+
192
+ message deleteObjSuccess {
193
+ string object = 1;
194
+ string type = 2;
195
+ string status = 3;
196
+ }
197
+
198
+ message deleteObjError {
199
+ string object = 1;
200
+ string fullPath = 2;
201
+ string result = 3;
202
+ }
203
+
204
+ message readDirIn {
205
+ string dir = 1;
206
+ repeated string filter = 2;
207
+ string fullPath = 3;
208
+ }
209
+
210
+ message readDirOut {
211
+ repeated string res = 1;
212
+
213
+ }
214
+
215
+ message downloadFileIn {
216
+ string filePath = 1;
217
+ }
218
+
219
+ message downloadFileOut {
220
+ bytes chunk_data = 1;
221
+ }
222
+
223
+
224
+ service Map {
225
+ rpc Render(render_in) returns (render_out) {}
226
+ rpc RenderXML(render_in) returns (render_out) {}
227
+ rpc LoadXML(xml_in) returns (xml_out) {}
228
+ rpc MarkerIcon(cmd_in) returns (cmd_out) {}
229
+ rpc Gdal(gdal_in) returns (gdal_out) {}
230
+ rpc ClearTiles(clear_tiles_in) returns (clear_tiles_out) {}
231
+ rpc RenderStatus(empty) returns (statusInfo) {}
232
+ rpc PrintMap(printMapIn) returns (printMapOut) {}
233
+ rpc Log(log_in) returns (log_out) {}
234
+ rpc SqlToShp(sqlToShpIn) returns (shapeOut) {}
235
+ rpc uploadFile(fileIn) returns (fileManagerOut) {}
236
+ rpc deleteFiles(deleteFileIn) returns (deleteOut) {}
237
+ rpc checkFiles(checkFilesDir) returns (filesStatus) {}
238
+ rpc fileList(fileListIn) returns (fileInfo) {}
239
+ rpc readDir(readDirIn) returns (readDirOut) {}
240
+ rpc downloadFile(downloadFileIn) returns (stream downloadFileOut) {}
241
+ }
@@ -1,74 +1,74 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import { createServer } from 'vite';
4
-
5
- import { config } from '@opengis/fastify-table/utils.js';
6
-
7
- const isProduction = process.env.NODE_ENV === 'production' || config.production;
8
-
9
- console.log({ isProduction });
10
-
11
- async function plugin(fastify, opts) {
12
- const viteServer = !isProduction ? await createServer({
13
- root: 'admin',
14
- server: {
15
- middlewareMode: true,
16
- },
17
- }) : null;
18
-
19
- if (!isProduction) {
20
- const dir1 = process.cwd();
21
- viteServer.watcher.add(dir1);
22
- viteServer.watcher.on('all', (d, t) => {
23
- if (!t.includes('module')) return;
24
- console.log(d, t);
25
- viteServer.ws.send({ type: 'full-reload' });
26
- });
27
-
28
- // this is middleware for vite's dev server
29
- fastify.addHook('onRequest', async (req, reply) => {
30
- const { user } = req.session?.passport || {};
31
- // console.log(req.url);
32
-
33
- const next = () => new Promise((resolve) => {
34
- viteServer.middlewares(req.raw, reply.raw, () => resolve());
35
- });
36
-
37
- await next();
38
- });
39
- }
40
-
41
- async function staticFile(req, reply) {
42
- const assetsDir = 'admin/dist';
43
-
44
- const filePathDist = path.join(assetsDir, req.url.replace('/public/', '/'));
45
- const filePathAssets = path.join('assets', req.url.replace('/assets', ''));
46
-
47
- const filePath = fs.existsSync(filePathDist) ? filePathDist : filePathAssets; // check dist or assets
48
- const ext = path.extname(filePath);
49
-
50
- if (!fs.existsSync(filePath)) return { status: 404, message: 'not found' };
51
- const mime = {
52
- '.js': 'text/javascript', '.css': 'text/css', '.woff2': 'application/font-woff', '.png': 'image/png', '.svg': 'image/svg+xml', '.jpg': 'image/jpg',
53
- }[ext];
54
- reply.headers({ 'Cache-control': 'max-age=3600, public', 'Content-Encoding': 'identity' });
55
-
56
- const stream = fs.createReadStream(filePath);
57
- return mime ? reply.type(mime).send(stream) : stream;
58
- }
59
- fastify.get('/assets/*', staticFile);
60
- fastify.get('/public/*', staticFile);
61
-
62
- fastify.get('*', async (req, reply) => {
63
- const { user } = req.session?.passport || {};
64
- // console.log(req.url);
65
- if (!user && req.url !== '/login') {
66
- return reply.redirect('/login');
67
- }
68
- if (!isProduction) return null; // admin vite
69
- const stream = fs.createReadStream('admin/dist/index.html');
70
- return reply.type('text/html').send(stream);
71
- });
72
- }
73
-
74
- export default plugin;
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { createServer } from 'vite';
4
+
5
+ import { config } from '@opengis/fastify-table/utils.js';
6
+
7
+ const isProduction = process.env.NODE_ENV === 'production' || config.production;
8
+
9
+ console.log({ isProduction });
10
+
11
+ async function plugin(fastify, opts) {
12
+ const viteServer = !isProduction ? await createServer({
13
+ root: 'admin',
14
+ server: {
15
+ middlewareMode: true,
16
+ },
17
+ }) : null;
18
+
19
+ if (!isProduction) {
20
+ const dir1 = process.cwd();
21
+ viteServer.watcher.add(dir1);
22
+ viteServer.watcher.on('all', (d, t) => {
23
+ if (!t.includes('module')) return;
24
+ console.log(d, t);
25
+ viteServer.ws.send({ type: 'full-reload' });
26
+ });
27
+
28
+ // this is middleware for vite's dev server
29
+ fastify.addHook('onRequest', async (req, reply) => {
30
+ const { user } = req.session?.passport || {};
31
+ // console.log(req.url);
32
+
33
+ const next = () => new Promise((resolve) => {
34
+ viteServer.middlewares(req.raw, reply.raw, () => resolve());
35
+ });
36
+
37
+ await next();
38
+ });
39
+ }
40
+
41
+ async function staticFile(req, reply) {
42
+ const assetsDir = 'admin/dist';
43
+
44
+ const filePathDist = path.join(assetsDir, req.url.replace('/public/', '/'));
45
+ const filePathAssets = path.join('assets', req.url.replace('/assets', ''));
46
+
47
+ const filePath = fs.existsSync(filePathDist) ? filePathDist : filePathAssets; // check dist or assets
48
+ const ext = path.extname(filePath);
49
+
50
+ if (!fs.existsSync(filePath)) return { status: 404, message: 'not found' };
51
+ const mime = {
52
+ '.js': 'text/javascript', '.css': 'text/css', '.woff2': 'application/font-woff', '.png': 'image/png', '.svg': 'image/svg+xml', '.jpg': 'image/jpg',
53
+ }[ext];
54
+ reply.headers({ 'Cache-control': 'max-age=3600, public', 'Content-Encoding': 'identity' });
55
+
56
+ const stream = fs.createReadStream(filePath);
57
+ return mime ? reply.type(mime).send(stream) : stream;
58
+ }
59
+ fastify.get('/assets/*', staticFile);
60
+ fastify.get('/public/*', staticFile);
61
+
62
+ fastify.get('*', async (req, reply) => {
63
+ const { user } = req.session?.passport || {};
64
+ // console.log(req.url);
65
+ if (!user && req.url !== '/login') {
66
+ return reply.redirect('/login');
67
+ }
68
+ if (!isProduction) return null; // admin vite
69
+ const stream = fs.createReadStream('admin/dist/index.html');
70
+ return reply.type('text/html').send(stream);
71
+ });
72
+ }
73
+
74
+ export default plugin;