@opengis/gis 0.2.6 → 0.2.8

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.
@@ -26,7 +26,8 @@
26
26
  "ua": "Назва",
27
27
  "meta": "title",
28
28
  "name": "name",
29
- "link": "/service/{id}",
29
+ "link": "/service/{id}",
30
+ "width": 200,
30
31
  "format": "text"
31
32
  },
32
33
  {
@@ -35,14 +36,15 @@
35
36
  "edit":true,
36
37
  "width": 300,
37
38
  "format": "text"
39
+
38
40
  },
39
41
  {
40
42
  "ua": "Група",
41
43
  "name": "group_id",
42
- "width": 300,
44
+ "width": 220,
43
45
  "edit":true,
44
46
  "data": "gis.group_list",
45
- "format": "select"
47
+ "format": "badge"
46
48
  },
47
49
  {
48
50
  "ua": "Ключові слова",
@@ -67,6 +69,7 @@
67
69
  "ua": "Публічний",
68
70
  "name": "is_public",
69
71
  "edit":true,
72
+ "width": 100,
70
73
  "format": "boolean"
71
74
  },
72
75
  {
@@ -74,6 +77,7 @@
74
77
  "name": "is_active",
75
78
  "data": "yes_no",
76
79
  "edit":true,
80
+ "width": 100,
77
81
  "format": "boolean"
78
82
  },
79
83
  {
@@ -81,6 +85,7 @@
81
85
  "name": "is_downloadable",
82
86
  "data": "yes_no",
83
87
  "edit":true,
88
+ "width": 180,
84
89
  "format": "boolean"
85
90
  }
86
91
  ],
@@ -1,33 +1,33 @@
1
- source_path: data_bp_myo.bp
2
- name: Будівельні паспорти Template
3
- visible: true
4
- style:
5
- type: point
6
- color: '#d970d5'
7
- width: 2
8
- radius: 10
9
- border: 1
10
- opacity: 0.4
11
- popup:
12
- - ua: Назва замовника
13
- name: bp_customer_name
14
- meta: title
15
- - label: Реєстраційний номер БП
16
- name: bp_code
17
- format: badge
18
- - label: Адреса
19
- name: address
20
- card:
21
- - label: Реєстраційний номер БП
22
- name: bp_code
23
- - ua: Адреса
24
- name: address
25
- - ua: Вид будівництва
26
- data: bp_build_type
27
- name: bp_build_type
28
- - ua: Назва замовника
29
- name: bp_customer_name
30
- - ua: Статус документа
31
- data: doc_status
32
- name: bp_doc_status
33
-
1
+ source_path: data_bp_myo.bp
2
+ name: Будівельні паспорти Template
3
+ visible: true
4
+ style:
5
+ type: point
6
+ color: '#d970d5'
7
+ width: 2
8
+ radius: 10
9
+ border: 1
10
+ opacity: 0.4
11
+ popup:
12
+ - ua: Назва замовника
13
+ name: bp_customer_name
14
+ meta: title
15
+ - label: Реєстраційний номер БП
16
+ name: bp_code
17
+ format: badge
18
+ - label: Адреса
19
+ name: address
20
+ card:
21
+ - label: Реєстраційний номер БП
22
+ name: bp_code
23
+ - ua: Адреса
24
+ name: address
25
+ - ua: Вид будівництва
26
+ data: bp_build_type
27
+ name: bp_build_type
28
+ - ua: Назва замовника
29
+ name: bp_customer_name
30
+ - ua: Статус документа
31
+ data: doc_status
32
+ name: bp_doc_status
33
+
@@ -18,7 +18,7 @@
18
18
  {
19
19
  "type": "layers",
20
20
  "position": "bottom-left",
21
- "visible": false
21
+ "visible": true
22
22
  },
23
23
  {
24
24
  "type": "dataset",
package/package.json CHANGED
@@ -1,67 +1,67 @@
1
- {
2
- "name": "@opengis/gis",
3
- "version": "0.2.6",
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.32",
48
- "@opengis/filter": "^0.1.11",
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.49.0",
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.8",
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.11",
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.49.0",
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
+ }
@@ -26,14 +26,14 @@ async function plugin(fastify, opts) {
26
26
  });
27
27
 
28
28
  // this is middleware for vite's dev server
29
- fastify.addHook('onRequest', async (request, reply) => {
30
- const { user } = request.session?.passport || {};
31
- if (!user && config.pg && !config.auth?.disable) {
32
- return reply.redirect('/login');
33
- }
29
+ fastify.addHook('onRequest', async (req, reply) => {
30
+ const { user } = req.session?.passport || {};
31
+ // console.log(req.url);
32
+
34
33
  const next = () => new Promise((resolve) => {
35
- viteServer.middlewares(request.raw, reply.raw, () => resolve());
34
+ viteServer.middlewares(req.raw, reply.raw, () => resolve());
36
35
  });
36
+
37
37
  await next();
38
38
  });
39
39
  }
@@ -61,8 +61,9 @@ async function plugin(fastify, opts) {
61
61
 
62
62
  fastify.get('*', async (req, reply) => {
63
63
  const { user } = req.session?.passport || {};
64
- if (!user && config.pg && !config.auth?.disable) {
65
- // return reply.redirect('/login');
64
+ // console.log(req.url);
65
+ if (!user && req.url !== '/login') {
66
+ return reply.redirect('/login');
66
67
  }
67
68
  if (!isProduction) return null; // admin vite
68
69
  const stream = fs.createReadStream('admin/dist/index.html');
@@ -43,14 +43,28 @@ export default async function getMap({ params = {}, pg = pgClients.client }, rep
43
43
 
44
44
  const obj = loadTemplate;
45
45
 
46
+ const layers = [];
47
+
48
+ if (Array.isArray(obj?.ogc) && obj.ogc.length && ['string', 'number'].includes(typeof obj.ogc[0])) {
49
+ await Promise.all(obj.ogc.map(async (layer) => {
50
+ const ogcData = await pg.query('select ogc_service_id as id, url as service_url, * from gis.ogc_service where ogc_service_id=$1', [layer]).then(el => el.rows?.[0]);
51
+ layers.push({
52
+ ...(ogcData || {}), id: layer, /* center: [], bbox: null, filters: [], style: { color: 'red' }, */ visible: !!ogcData, type: 'ogc',
53
+ });
54
+ }));
55
+ }
56
+
46
57
  if (Array.isArray(obj?.layers) && typeof obj?.layers?.[0] === 'string') {
47
- const layers = await Promise.all(obj.layers.map(async (layer) => {
58
+ await Promise.all(obj.layers.map(async (layer) => {
48
59
  const layerData = await getTemplate('layer', layer);
49
60
  const serviceData = layerData || await pg.query('select service_id as id, *, st_asgeojson(bbox)::json as bbox, st_asgeojson(center)::json as center from gis.services where service_id=$1', [layer]).then(el => el.rows?.[0]);
50
- Object.assign(serviceData, { count: totals[serviceData.source_path || ''] || 0 });
51
- serviceData.style = typeof serviceData.style === 'object' ? serviceData.style : yaml.load(serviceData.style);
52
- return { ...serviceData, id: layer, visible: true };
61
+ Object.assign(serviceData || {}, { count: totals[serviceData?.source_path || ''] || 0 });
62
+ if (serviceData) { serviceData.style = typeof serviceData.style === 'object' ? serviceData.style : yaml.load(serviceData.style); }
63
+ layers.push({ ...(serviceData || {}), id: layer, visible: !!serviceData });
53
64
  }));
65
+ }
66
+
67
+ if (obj?.layers || obj?.ogc) {
54
68
  return {
55
69
  maps, ...rows[0], ...obj, layers,
56
70
  };