@opengis/gis 0.2.88 → 0.2.89

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.
@@ -13,15 +13,19 @@
13
13
  "ua": "Назва",
14
14
  "name": "name",
15
15
  "format": "text",
16
+ "slot": "<div><p>{{data?.name}}</p></div><p class='text-xs text-gray-500'>{{data?.source_path}}</p>",
16
17
  "link": "/gis.cartocss/{id}"
17
18
  },
18
19
  {
19
20
  "ua": "Шлях",
20
21
  "name": "source_path",
22
+ "width": 100,
23
+ "hidden": true,
21
24
  "format": "text"
22
25
  },
23
26
  {
24
27
  "ua": "Опис",
28
+ "hidden": true,
25
29
  "name": "description",
26
30
  "format": "text"
27
31
  },
@@ -35,6 +39,7 @@
35
39
  "ua": "Включений",
36
40
  "name": "enabled",
37
41
  "data": "yes_no",
42
+ "width": 100,
38
43
  "format": "boolean",
39
44
  "edit": true
40
45
  },
@@ -42,6 +47,7 @@
42
47
  "ua": "Публічний",
43
48
  "name": "is_public",
44
49
  "data": "yes_no",
50
+ "width": 100,
45
51
  "format": "boolean",
46
52
  "edit": true
47
53
  }
@@ -66,4 +72,4 @@
66
72
  "type": "Check"
67
73
  }
68
74
  ]
69
- }
75
+ }
@@ -37,12 +37,14 @@
37
37
  "meta": "title",
38
38
  "name": "name",
39
39
  "format": "slot",
40
+ "max-w": 500,
40
41
  "link": "/gis.maps/{id}",
41
42
  "slot": "<div><p>{{data?.name}}</p></div><p class='text-xs text-gray-500'>{{data?.description}}</p>"
42
43
  },
43
44
  {
44
45
  "ua": "Ключові слова",
45
46
  "name": "keywords",
47
+ "hidden": true,
46
48
  "format": "text"
47
49
  },
48
50
  {
@@ -54,6 +56,7 @@
54
56
  {
55
57
  "ua": "Набори даних",
56
58
  "name": "services",
59
+ "hidden": true,
57
60
  "format": "text"
58
61
  },
59
62
  {
@@ -82,6 +85,7 @@
82
85
  "ua": "Карта",
83
86
  "name": "map",
84
87
  "format": "slot",
88
+ "width": 50,
85
89
  "link": "/maps/{}id}",
86
90
  "slot": "<div class='flex items-center gap-3'><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='w-5 h-5 text-blue-600' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z'></path><path d='M15 5.764v15'></path><path d='M9 3.236v15'></path></svg></div>"
87
91
  }
@@ -105,4 +109,4 @@
105
109
  "type": "Check"
106
110
  }
107
111
  ]
108
- }
112
+ }
@@ -37,6 +37,7 @@
37
37
  "ua": "Тип сервісу",
38
38
  "name": "service",
39
39
  "data": "ogc.service",
40
+ "hidden": true,
40
41
  "format": "select"
41
42
  },
42
43
  {
@@ -48,7 +49,7 @@
48
49
  {
49
50
  "ua": "Шлях",
50
51
  "name": "url",
51
- "width": 300,
52
+ "width": 200,
52
53
  "edit": true,
53
54
  "hidden": true,
54
55
  "format": "text"
@@ -57,6 +58,7 @@
57
58
  "ua": "Активний",
58
59
  "name": "enabled",
59
60
  "data": "yes_no",
61
+ "width": 100,
60
62
  "edit": true,
61
63
  "format": "boolean"
62
64
  },
@@ -65,6 +67,7 @@
65
67
  "name": "ispublic",
66
68
  "data": "yes_no",
67
69
  "edit": true,
70
+ "width": 100,
68
71
  "format": "boolean"
69
72
  }
70
73
  ],
@@ -95,4 +98,4 @@
95
98
  "type": "Check"
96
99
  }
97
100
  ]
98
- }
101
+ }
@@ -23,13 +23,14 @@
23
23
  "link": "/gis.rasters/{id}"
24
24
  },
25
25
  {
26
- "ua": "Система координат",
27
- "name": "srid",
26
+ "ua": "Шлях до растру",
27
+ "name": "source_path",
28
28
  "format": "text"
29
29
  },
30
30
  {
31
- "ua": "Шлях до растру",
32
- "name": "source_path",
31
+ "ua": "Система координат",
32
+ "name": "srid",
33
+ "width": 100,
33
34
  "format": "text"
34
35
  },
35
36
  {
@@ -98,4 +99,4 @@
98
99
  "type": "Check"
99
100
  }
100
101
  ]
101
- }
102
+ }
@@ -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
+
package/package.json CHANGED
@@ -1,76 +1,76 @@
1
- {
2
- "name": "@opengis/gis",
3
- "version": "0.2.88",
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
- "dump": "bun ./node_modules/@opengis/fastify-table/dist/script/dump.js",
19
- "migrate": "MIGRATE=true bun ./node_modules/@opengis/fastify-table/dist/script/migrate.js",
20
- "start": "bun server",
21
- "start:kyiv-demo": "bun --env-file=.env.kyiv-demo server",
22
- "kamyanske": "bun --env-file=.env.kamyanske server",
23
- "start:kr": "bun --env-file=.env.kr server",
24
- "poltava": "bun --env-file=.env.poltava --hot server",
25
- "dev:kyiv-demo": "bun --env-file=.env.kyiv-demo --hot server",
26
- "dev:kamyanske": "bun --env-file=.env.kamyanske --hot server",
27
- "dev:kr": "bun --env-file=.env.kr --hot server",
28
- "lint": "eslint src --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts",
29
- "fix": "eslint src --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix",
30
- "patch": "npm version patch && git push && npm publish",
31
- "dev": "bun --hot server",
32
- "front": "vite dev",
33
- "build-lib": "vite build",
34
- "build:admin": "vite build admin",
35
- "build": "vite build",
36
- "preview": "vite preview",
37
- "prod": "NODE_ENV=production node server",
38
- "docs:install": "npm install --prefix ./docs",
39
- "docs:dev": "npm run --prefix ./docs docs:dev",
40
- "docs:build": "npm run --prefix ./docs docs:build",
41
- "docs:preview": "npm run --prefix ./docs docs:preview",
42
- "prepublishOnly": "npm run build"
43
- },
44
- "dependencies": {
45
- "@mapbox/sphericalmercator": "1.2.0",
46
- "carto": "0.16.3"
47
- },
48
- "peerDependencies": {
49
- "@opengis/fastify-table": "^2.0.32"
50
- },
51
- "resolutions": {
52
- "rollup": "4.30.0"
53
- },
54
- "devDependencies": {
55
- "@opengis/core": "^0.0.23",
56
- "@opengis/fastify-table": "^2.0.135",
57
- "@opengis/filter": "0.1.31",
58
- "@opengis/form": "^0.0.103",
59
- "@opengis/table": "^0.0.27",
60
- "@vitejs/plugin-vue": "^5.2.4",
61
- "axios": "^1.13.5",
62
- "eslint": "^8.57.1",
63
- "eslint-config-airbnb": "19.0.4",
64
- "eslint-plugin-import": "^2.32.0",
65
- "eslint-plugin-vue": "^9.33.0",
66
- "@vue/eslint-config-typescript": "^12.0.0",
67
- "vue-eslint-parser": "^10.4.0",
68
- "lucide-vue-next": "^0.514.0",
69
- "sass-embedded": "1.86.3",
70
- "typescript": "^5.9.3",
71
- "vite": "^6.4.1",
72
- "vue": "^3.5.28",
73
- "vue-router": "4.5.1",
74
- "vuedraggable": "^4.1.0"
75
- }
76
- }
1
+ {
2
+ "name": "@opengis/gis",
3
+ "version": "0.2.89",
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
+ "dump": "bun ./node_modules/@opengis/fastify-table/dist/script/dump.js",
19
+ "migrate": "MIGRATE=true bun ./node_modules/@opengis/fastify-table/dist/script/migrate.js",
20
+ "start": "bun server",
21
+ "start:kyiv-demo": "bun --env-file=.env.kyiv-demo server",
22
+ "kamyanske": "bun --env-file=.env.kamyanske server",
23
+ "start:kr": "bun --env-file=.env.kr server",
24
+ "poltava": "bun --env-file=.env.poltava --hot server",
25
+ "dev:kyiv-demo": "bun --env-file=.env.kyiv-demo --hot server",
26
+ "dev:kamyanske": "bun --env-file=.env.kamyanske --hot server",
27
+ "kr": "bun --env-file=.env.kr --hot server",
28
+ "lint": "eslint src --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts",
29
+ "fix": "eslint src --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix",
30
+ "patch": "npm version patch && git push && npm publish",
31
+ "dev": "bun --hot server",
32
+ "front": "vite dev",
33
+ "build-lib": "vite build",
34
+ "build:admin": "vite build admin",
35
+ "build": "vite build",
36
+ "preview": "vite preview",
37
+ "prod": "NODE_ENV=production node server",
38
+ "docs:install": "npm install --prefix ./docs",
39
+ "docs:dev": "npm run --prefix ./docs docs:dev",
40
+ "docs:build": "npm run --prefix ./docs docs:build",
41
+ "docs:preview": "npm run --prefix ./docs docs:preview",
42
+ "prepublishOnly": "npm run build"
43
+ },
44
+ "dependencies": {
45
+ "@mapbox/sphericalmercator": "1.2.0",
46
+ "carto": "0.16.3"
47
+ },
48
+ "peerDependencies": {
49
+ "@opengis/fastify-table": "^2.0.32"
50
+ },
51
+ "resolutions": {
52
+ "rollup": "4.30.0"
53
+ },
54
+ "devDependencies": {
55
+ "@opengis/core": "^0.0.23",
56
+ "@opengis/fastify-table": "^2.0.135",
57
+ "@opengis/filter": "0.1.31",
58
+ "@opengis/form": "^0.0.103",
59
+ "@opengis/table": "^0.0.27",
60
+ "@vitejs/plugin-vue": "^5.2.4",
61
+ "axios": "^1.13.5",
62
+ "eslint": "^8.57.1",
63
+ "eslint-config-airbnb": "19.0.4",
64
+ "eslint-plugin-import": "^2.32.0",
65
+ "eslint-plugin-vue": "^9.33.0",
66
+ "@vue/eslint-config-typescript": "^12.0.0",
67
+ "vue-eslint-parser": "^10.4.0",
68
+ "lucide-vue-next": "^0.514.0",
69
+ "sass-embedded": "1.86.3",
70
+ "typescript": "^5.9.3",
71
+ "vite": "^6.4.1",
72
+ "vue": "^3.5.28",
73
+ "vue-router": "4.5.1",
74
+ "vuedraggable": "^4.1.0"
75
+ }
76
+ }
package/plugin.js CHANGED
@@ -5,9 +5,10 @@ import {
5
5
  } from '@opengis/fastify-table/utils.js';
6
6
 
7
7
  config.prefix = config.prefix || '/api';
8
-
9
8
  import { join, dirname } from 'path';
10
9
  import { fileURLToPath } from 'url';
10
+ import mapnikLogger from './server/routes/mapnik/controllers/mapnikLogger.js';
11
+ import mapnikStat from './server/routes/mapnik/controllers/mapnikStat.js';
11
12
 
12
13
  const dir = dirname(fileURLToPath(import.meta.url));
13
14
 
@@ -22,13 +23,15 @@ const columnType = {
22
23
  'timestamp without time zone': 'date',
23
24
  'timestamp with time zone': 'date',
24
25
  };
25
-
26
+ const adminParams = { config: { policy: 'L1', role: 'admin' }, package: 'gis' };
26
27
  async function plugin(app, opts = config) {
27
28
  // API
28
29
  app.register(import('./server/routes/map/index.mjs'), opts);
29
30
  app.register(import('./server/plugins/crons.js'), opts);
30
31
  app.register(import('./server/routes/gis/index.mjs'), opts);
31
32
  app.register(import('./server/routes/mapnik/index.js'), opts);
33
+ app.get('/logger-gis/stat', adminParams, mapnikStat);
34
+ app.get('/logger-gis/*', adminParams, mapnikLogger);
32
35
 
33
36
  addHook('afterData', async ({
34
37
  pg = pgClients.client, payload, id, template,
@@ -2,9 +2,9 @@ import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { createServer } from 'vite';
4
4
 
5
- import { config } from '@opengis/fastify-table/utils.js';
5
+ // import { config } from '@opengis/fastify-table/utils.js';
6
6
 
7
- const isProduction = process.env.NODE_ENV === 'production' || config.production;
7
+ const isProduction = process.env.NODE_ENV === 'production';
8
8
 
9
9
  console.log({ isProduction });
10
10
 
@@ -61,9 +61,10 @@ async function plugin(fastify, opts) {
61
61
 
62
62
  fastify.get('*', async (req, reply) => {
63
63
  const { user } = req.session?.passport || {};
64
- // console.log(req.url);
65
- if (!user && req.url !== '/login') {
66
- return reply.redirect('/login');
64
+
65
+ if (!user && req.url.split('?')[0] !== '/login') {
66
+ console.log(req.url);
67
+ return reply.redirect(`/login?redirect=${req.url}`);
67
68
  }
68
69
  if (!isProduction) return null; // admin vite
69
70
  const stream = fs.createReadStream('admin/dist/index.html');
@@ -5,14 +5,14 @@ import mapnik from '../../../plugins/mapnik/funcs/mapnik.js';
5
5
  const { GetLogs } = mapnik();
6
6
 
7
7
  export default async function mapnikLogger({
8
- params, query,
8
+ params,
9
9
  }, reply) {
10
10
  if (!config.mapServerAddress) {
11
11
  return reply.status(400).send({ error: 'mapnik server address needed', code: 400 });
12
12
  }
13
13
 
14
14
  const { data, links, err } = await GetLogs({ path: params['*'] });
15
-
15
+ console.log(links);
16
16
  if (err) {
17
17
  return reply.status(400).send(err);
18
18
  }
@@ -22,7 +22,7 @@ export default async function mapnikLogger({
22
22
  "Content-Type": "text/html; charset=UTF-8",
23
23
  "Content-Security-Policy": "default-src 'none'",
24
24
  "X-Content-Type-Options": "nosniff",
25
- }).send(links);
25
+ }).send(links.replace(/\/api\/gis-logger/g, '/logger-gis'));
26
26
  }
27
27
 
28
28
  return reply.headers({ "Content-type": "text/plain; charset=UTF-8" }).send(data);
@@ -9,6 +9,7 @@ const { prefix = '/api' } = config;
9
9
  export default async function rasterInfo({
10
10
  pg = pgClients.client, params, query,
11
11
  }, reply) {
12
+ const time = Date.now();
12
13
  if (!config.mapServerAddress) {
13
14
  return reply.status(400).send({ error: 'mapnik server address needed', code: 400 });
14
15
  }
@@ -40,6 +41,10 @@ export default async function rasterInfo({
40
41
  }
41
42
 
42
43
  return {
43
- ...data, ...raster, cache, url: `${prefix}/gis-rtile/${Buffer.from(raster.source_path).toString('base64url')}/{z}/{x}/{y}.png`,
44
+ time: Date.now() - time,
45
+ ...data,
46
+ ...raster,
47
+ cache,
48
+ url: `${prefix}/gis-rtile/${Buffer.from(raster.source_path).toString('base64url')}/{z}/{x}/{y}.png`,
44
49
  };
45
50
  }
@@ -3,7 +3,7 @@ import createXml from './controllers/createXml.js';
3
3
  import rtile from './controllers/rtile.js';
4
4
  import rasterInfo from './controllers/rasterInfo.js';
5
5
  import mapnikStat from './controllers/mapnikStat.js';
6
- import mapnikLogger from './controllers/mapnikLogger.js';
6
+
7
7
  import createXmlMulti from './controllers/createXmlMulti.js';
8
8
  import readDir from './controllers/readDir.js';
9
9
  import fileStat from './controllers/fileStat.js';
@@ -19,8 +19,7 @@ export default async function route(app) {
19
19
  app.get('/gis-xml/:id', publicParams, createXml);
20
20
  app.get('/gis-rtile/:id/:z/:y/:x', publicParams, rtile);
21
21
  app.get('/gis-raster/:id', publicParams, rasterInfo);
22
- app.get('/gis-stat/:period?', adminParams, mapnikStat);
23
- app.get('/gis-logger/*', adminParams, mapnikLogger);
22
+
24
23
  app.get('/gis-create-xml/:id?', adminParams, createXmlMulti);
25
24
  app.get('/gis-files', adminParams, readDir);
26
25
  app.get('/gis-file-info', adminParams, fileStat);