@opengis/fastify-table 2.0.66 → 2.0.67
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.
- package/dist/server/plugins/grpc/utils/server/plugins/grpc/utils/convertp.proto +137 -0
- package/dist/server/plugins/grpc/utils/server/plugins/grpc/utils/office2pdf.proto +14 -0
- package/dist/server/plugins/hook/funcs/addHook.js +7 -0
- package/dist/server/plugins/hook/funcs/applyHook.js +25 -0
- package/dist/server/plugins/hook/funcs/applyHookSync.js +7 -0
- package/dist/server/plugins/hook/index.js +7 -0
- package/dist/server/routes/logger/controllers/utils/checkUserAccess.js +22 -0
- package/dist/server/routes/logger/controllers/utils/getRootDir.js +25 -0
- package/dist/server/routes/table/functions/getData.d.ts.map +1 -1
- package/dist/server/routes/table/functions/getData.js +10 -6
- package/package.json +88 -88
- package/dist/log/migration/dist-geoname-cls.json +0 -1
- package/dist/log/migration/dist-geoname-cls.sql +0 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
service Convert {
|
|
4
|
+
rpc csvToXls(csvToXlsParams) returns (FileBase64) {}
|
|
5
|
+
rpc jsonToXls(jsonToXlsParams) returns (FileBase64) {}
|
|
6
|
+
rpc pdfMerge(pdfMergeParams) returns (FileBase64) {}
|
|
7
|
+
rpc htmlToPdf(htmlToPdfParams) returns (FileBase64) {}
|
|
8
|
+
rpc excelToJson(excelToJsonParams) returns (FileBase64) {}
|
|
9
|
+
rpc xmlToJson(xmlToJsonParams) returns (FileBase64) {}
|
|
10
|
+
rpc htmlToDoc(htmlToDocParams) returns (FileBase64) {}
|
|
11
|
+
rpc htmlToImage(htmlToImageParams) returns (FileBase64) {}
|
|
12
|
+
rpc geojsonToShp(geojsonToShpParams) returns (FileBase64) {}
|
|
13
|
+
rpc shpToGeojson(shpToGeojsonParams) returns (FileBase64) {}
|
|
14
|
+
rpc docToPDF(docToPDFParams) returns (FileBase64) {}
|
|
15
|
+
rpc mergeImages(mergeImagesIn) returns (FileBase64) {}
|
|
16
|
+
rpc resizeImage(resizeImageIn) returns (FileBase64) {}
|
|
17
|
+
rpc jsonToYaml(jsonToYamlIn) returns (FileBase64) {}
|
|
18
|
+
rpc yamlToJson(yamlToJsonIn) returns (FileBase64) {}
|
|
19
|
+
rpc log(log_in) returns (log_out) {}
|
|
20
|
+
rpc geojsonToGpkg(geojsonToShpParams) returns (FileBase64) {}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
message jsonToYamlIn {
|
|
24
|
+
string json = 1;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
message yamlToJsonIn {
|
|
28
|
+
string yaml = 1;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
message resizeImageIn {
|
|
32
|
+
string base64 = 1;
|
|
33
|
+
uint64 width = 2;
|
|
34
|
+
uint64 height = 3;
|
|
35
|
+
uint32 quality = 4;
|
|
36
|
+
uint32 subsampling = 5;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
message pdfToImgIn {
|
|
40
|
+
string pdfPath = 1;
|
|
41
|
+
string imgPath = 2;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
message pdfToImgOut {
|
|
45
|
+
string imgPath = 1;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
message log_in {
|
|
49
|
+
uint32 rows = 1;
|
|
50
|
+
string level = 2;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
message log_out {
|
|
54
|
+
repeated string logs = 1;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
enum mergeImageFormat {
|
|
58
|
+
VERTICAL = 0;
|
|
59
|
+
HORIZONTAL = 1;
|
|
60
|
+
OVERLAY = 2;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
message imageMeta {
|
|
64
|
+
string base64 = 1;
|
|
65
|
+
mergeImageFormat mergeFormat = 2;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
message mergeImagesIn {
|
|
69
|
+
repeated string images = 1;
|
|
70
|
+
repeated imageMeta imagesMeta = 2;
|
|
71
|
+
string background = 3;
|
|
72
|
+
string mergeFormat = 4;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
message docToPDFParams {
|
|
76
|
+
string base64 = 1;
|
|
77
|
+
string to = 2;
|
|
78
|
+
string ext = 3;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
message shpToGeojsonParams {
|
|
82
|
+
string base64 = 1;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
message geojsonToShpParams {
|
|
86
|
+
string geojson = 1;
|
|
87
|
+
string proj = 2;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
message xmlToJsonParams {
|
|
91
|
+
string xml = 1;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
message jsonToXlsParams {
|
|
95
|
+
string json = 1;
|
|
96
|
+
string header = 2;
|
|
97
|
+
string subheader = 3;
|
|
98
|
+
string colmodel = 4;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
message csvToXlsParams {
|
|
102
|
+
string csv = 1;
|
|
103
|
+
string header = 2;
|
|
104
|
+
string subheader = 3;
|
|
105
|
+
string separator = 4;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
message excelToJsonParams {
|
|
109
|
+
string base64 = 1;
|
|
110
|
+
string type = 2;
|
|
111
|
+
string delimiter = 3;
|
|
112
|
+
string encoding = 4;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
message htmlToPdfParams {
|
|
116
|
+
string html = 1;
|
|
117
|
+
string pdfPageConfig = 2;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
message pdfMergeParams {
|
|
121
|
+
repeated string mergeFiles = 1;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
message htmlToImageParams {
|
|
125
|
+
string html = 1;
|
|
126
|
+
string format = 2;
|
|
127
|
+
uint64 width = 3;
|
|
128
|
+
uint64 height = 4;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
message htmlToDocParams {
|
|
132
|
+
string html = 1;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
message FileBase64 {
|
|
136
|
+
string result = 1;
|
|
137
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
service OfficeConverterService {
|
|
4
|
+
rpc OfficeToPdf(OfficeToPdfRequest) returns (OfficeToPdfResponse) {}
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
message OfficeToPdfRequest {
|
|
8
|
+
string file = 1;
|
|
9
|
+
string ext = 2;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
message OfficeToPdfResponse {
|
|
13
|
+
string file = 1;
|
|
14
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import config from "../../../../config.js";
|
|
3
|
+
import hookList from "../hookList.js";
|
|
4
|
+
export default async function applyHook(name, data) {
|
|
5
|
+
const { trace } = config;
|
|
6
|
+
if (trace)
|
|
7
|
+
console.log("applyHook", name);
|
|
8
|
+
if (!hookList[name]?.length)
|
|
9
|
+
return null;
|
|
10
|
+
const result = {};
|
|
11
|
+
await Promise.all(hookList[name].map(async (hook) => {
|
|
12
|
+
const hookData = await hook({ ...data, config });
|
|
13
|
+
if (hookData) {
|
|
14
|
+
if (trace)
|
|
15
|
+
console.log("applyHook", name, hookData);
|
|
16
|
+
Object.assign(result, hookData);
|
|
17
|
+
}
|
|
18
|
+
})).catch((err) => {
|
|
19
|
+
console.error("applyHook", name, err.toString());
|
|
20
|
+
});
|
|
21
|
+
if (Object.keys(result).length) {
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import config from "../../../../../config.js";
|
|
2
|
+
const { accessToken = "0NWcGQxKRP8AsRxD" } = config.auth || {};
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @summary check user access to logger interface - per admin user type or user group
|
|
6
|
+
* @returns {Object} message, status
|
|
7
|
+
*/
|
|
8
|
+
export default function checkUserAccess({ user = {}, token, }) {
|
|
9
|
+
if (token && token === accessToken) {
|
|
10
|
+
return { message: "access granted", status: 200 };
|
|
11
|
+
}
|
|
12
|
+
// console.log(user);
|
|
13
|
+
if (!user.user_type?.includes?.("admin") &&
|
|
14
|
+
!config?.local &&
|
|
15
|
+
!config.auth?.disable) {
|
|
16
|
+
return { message: "access restricted", status: 403 };
|
|
17
|
+
}
|
|
18
|
+
/* if (!['admin', 'superadmin']?.includes(user.user_type) && count === '0') {
|
|
19
|
+
return { message: 'access restricted', status: 403 };
|
|
20
|
+
} */
|
|
21
|
+
return { message: "access granted", status: 200 };
|
|
22
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import config from "../../../../../config.js";
|
|
5
|
+
// import { existsSync } from 'fs';
|
|
6
|
+
let logDir = null;
|
|
7
|
+
export default function getRootDir() {
|
|
8
|
+
// absolute / relative path
|
|
9
|
+
if (logDir)
|
|
10
|
+
return logDir;
|
|
11
|
+
const file = ["config.json", "/data/local/config.json"].find((el) => fs.existsSync(el) ? el : null);
|
|
12
|
+
const root = file === "config.json" ? process.cwd() : "/data/local";
|
|
13
|
+
logDir = config.logDir || path.join(root, config.log?.dir || "log");
|
|
14
|
+
console.log({ logDir });
|
|
15
|
+
return logDir;
|
|
16
|
+
// windows debug support
|
|
17
|
+
/* const customLogDir = process.cwd().includes(':') ? 'c:/data/local' : '/data/local';
|
|
18
|
+
// docker default path
|
|
19
|
+
if (existsSync(customLogDir)) {
|
|
20
|
+
return path.join(customLogDir, config.folder || '', 'log');
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// non-docker default path
|
|
24
|
+
return path.join(config.root || '/data/local', config.folder || '', 'log'); */
|
|
25
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getData.d.ts","sourceRoot":"","sources":["../../../../../server/routes/table/functions/getData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AA4DzD,wBAA8B,OAAO,CACnC,EACE,EAAqB,EACrB,MAAM,EACN,KAAK,EACL,EAAE,EACF,OAAY,EACZ,KAAU,EACV,IAAS,EACT,YAAY,EACZ,KAAY,EACZ,UAAU,EACV,OAAO,EAAE,YAAY,GACtB,EAAE;IACD,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,EACD,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"getData.d.ts","sourceRoot":"","sources":["../../../../../server/routes/table/functions/getData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AA4DzD,wBAA8B,OAAO,CACnC,EACE,EAAqB,EACrB,MAAM,EACN,KAAK,EACL,EAAE,EACF,OAAY,EACZ,KAAU,EACV,IAAS,EACT,YAAY,EACZ,KAAY,EACZ,UAAU,EACV,OAAO,EAAE,YAAY,GACtB,EAAE;IACD,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,EACD,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,GAAG,gBAgzBb"}
|
|
@@ -521,12 +521,6 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
521
521
|
});
|
|
522
522
|
const name = el[0].substring(0, el[0].lastIndexOf("."));
|
|
523
523
|
html[name] = htmlContent;
|
|
524
|
-
panels?.forEach?.((panel) => panel?.items
|
|
525
|
-
?.filter?.((item) => item.name === name)
|
|
526
|
-
?.forEach?.((el1) => Object.assign(el1, { html: htmlContent })));
|
|
527
|
-
panels
|
|
528
|
-
?.filter?.((el1) => el1.name === name)
|
|
529
|
-
?.forEach?.((el1) => Object.assign(el1, { html: htmlContent }));
|
|
530
524
|
}
|
|
531
525
|
catch (err) {
|
|
532
526
|
const name = el[0].substring(0, el[0].lastIndexOf("."));
|
|
@@ -539,6 +533,16 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
539
533
|
html[name] = "handlebars compile error";
|
|
540
534
|
}
|
|
541
535
|
}));
|
|
536
|
+
panels?.forEach?.((panel) => {
|
|
537
|
+
panel?.items?.forEach?.((el) => {
|
|
538
|
+
if (html[el.name]) {
|
|
539
|
+
Object.assign(el, { html: html[el.name] });
|
|
540
|
+
}
|
|
541
|
+
el.items?.forEach?.((el1) => {
|
|
542
|
+
Object.assign(el1, { html: html[el1.name] });
|
|
543
|
+
});
|
|
544
|
+
});
|
|
545
|
+
});
|
|
542
546
|
}
|
|
543
547
|
const route = pg.tlist?.includes?.("admin.routes")
|
|
544
548
|
? await pg
|
package/package.json
CHANGED
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@opengis/fastify-table",
|
|
3
|
-
"version": "2.0.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"description": "core-plugins",
|
|
6
|
-
"keywords": [
|
|
7
|
-
"fastify",
|
|
8
|
-
"table",
|
|
9
|
-
"crud",
|
|
10
|
-
"auth",
|
|
11
|
-
"pg",
|
|
12
|
-
"backend"
|
|
13
|
-
],
|
|
14
|
-
"main": "dist/index.js",
|
|
15
|
-
"exports": {
|
|
16
|
-
".": "./dist/index.js",
|
|
17
|
-
"./index.js": "./dist/index.js",
|
|
18
|
-
"./utils.js": "./dist/utils.js"
|
|
19
|
-
},
|
|
20
|
-
"files": [
|
|
21
|
-
"dist/*"
|
|
22
|
-
],
|
|
23
|
-
"scripts": {
|
|
24
|
-
"prepublishOnly": "npm run build",
|
|
25
|
-
"clean": "tsc -b --clean",
|
|
26
|
-
"build": "tsc -b --clean && tsc && copyfiles server/plugins/grpc/utils/*.proto dist && copyfiles server/migrations/*.sql dist && copyfiles server/templates/**/*.html dist",
|
|
27
|
-
"prod": "NODE_ENV=production bun dist/server",
|
|
28
|
-
"patch": "npm version patch && git push && npm publish",
|
|
29
|
-
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
|
30
|
-
"test": "bun test",
|
|
31
|
-
"compress": "node compress.js",
|
|
32
|
-
"dev1": "bun --hot dist/server",
|
|
33
|
-
"dev": "NODE_ENV=production bun start",
|
|
34
|
-
"start": "bun server"
|
|
35
|
-
},
|
|
36
|
-
"dependencies": {
|
|
37
|
-
"@aws-sdk/client-s3": "3.879.0",
|
|
38
|
-
"@aws-sdk/lib-storage": "3.879.0",
|
|
39
|
-
"@fastify/cookie": "11.0.2",
|
|
40
|
-
"@fastify/http-proxy": "11.1.2",
|
|
41
|
-
"@fastify/multipart": "9.0.3",
|
|
42
|
-
"@fastify/passport": "3.0.2",
|
|
43
|
-
"@fastify/rate-limit": "10.3.0",
|
|
44
|
-
"@fastify/session": "11.1.0",
|
|
45
|
-
"@grpc/grpc-js": "1.10.11",
|
|
46
|
-
"@grpc/proto-loader": "0.7.15",
|
|
47
|
-
"apache-crypt": "1.2.6",
|
|
48
|
-
"better-sqlite3": "12.2.0",
|
|
49
|
-
"dotenv": "16.5.0",
|
|
50
|
-
"fastify": "5.3.3",
|
|
51
|
-
"fastify-plugin": "5.0.1",
|
|
52
|
-
"fastify-session-redis-store": "7.1.2",
|
|
53
|
-
"handlebars": "4.7.8",
|
|
54
|
-
"image-size": "1.2.0",
|
|
55
|
-
"ioredis": "5.3.2",
|
|
56
|
-
"js-yaml": "4.1.0",
|
|
57
|
-
"markdown-it": "14.1.0",
|
|
58
|
-
"nodemailer": "7.0.6",
|
|
59
|
-
"otplib": "12.0.1",
|
|
60
|
-
"pg": "8.11.6",
|
|
61
|
-
"pino": "9.5.0",
|
|
62
|
-
"pino-abstract-transport": "2.0.0",
|
|
63
|
-
"promised-handlebars": "2.0.1",
|
|
64
|
-
"qrcode": "1.5.4",
|
|
65
|
-
"uglify-js": "3.19.3",
|
|
66
|
-
"undici": "7.16.0"
|
|
67
|
-
},
|
|
68
|
-
"devDependencies": {
|
|
69
|
-
"@types/better-sqlite3": "^7.6.13",
|
|
70
|
-
"@types/bun": "^1.2.21",
|
|
71
|
-
"@types/js-yaml": "^4.0.9",
|
|
72
|
-
"@types/markdown-it": "^14.1.2",
|
|
73
|
-
"@types/node": "^24.3.1",
|
|
74
|
-
"@types/nodemailer": "^7.0.1",
|
|
75
|
-
"@types/passport": "^1.0.17",
|
|
76
|
-
"@types/passport-local": "^1.0.38",
|
|
77
|
-
"@types/pg": "^8.15.5",
|
|
78
|
-
"@types/qrcode": "^1.5.5",
|
|
79
|
-
"copyfiles": "^2.4.1",
|
|
80
|
-
"eslint": "^9.35.0",
|
|
81
|
-
"eslint-config-airbnb-extended": "^2.3.1",
|
|
82
|
-
"ts-migrate": "^0.1.35",
|
|
83
|
-
"typescript": "^5.9.2",
|
|
84
|
-
"vitest": "^3.2.4"
|
|
85
|
-
},
|
|
86
|
-
"author": "Softpro",
|
|
87
|
-
"license": "ISC"
|
|
88
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@opengis/fastify-table",
|
|
3
|
+
"version": "2.0.67",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "core-plugins",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"fastify",
|
|
8
|
+
"table",
|
|
9
|
+
"crud",
|
|
10
|
+
"auth",
|
|
11
|
+
"pg",
|
|
12
|
+
"backend"
|
|
13
|
+
],
|
|
14
|
+
"main": "dist/index.js",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": "./dist/index.js",
|
|
17
|
+
"./index.js": "./dist/index.js",
|
|
18
|
+
"./utils.js": "./dist/utils.js"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist/*"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"prepublishOnly": "npm run build",
|
|
25
|
+
"clean": "tsc -b --clean",
|
|
26
|
+
"build": "tsc -b --clean && tsc && copyfiles server/plugins/grpc/utils/*.proto dist && copyfiles server/migrations/*.sql dist && copyfiles server/templates/**/*.html dist",
|
|
27
|
+
"prod": "NODE_ENV=production bun dist/server",
|
|
28
|
+
"patch": "npm version patch && git push && npm publish",
|
|
29
|
+
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
|
30
|
+
"test": "bun test",
|
|
31
|
+
"compress": "node compress.js",
|
|
32
|
+
"dev1": "bun --hot dist/server",
|
|
33
|
+
"dev": "NODE_ENV=production bun start",
|
|
34
|
+
"start": "bun server"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@aws-sdk/client-s3": "3.879.0",
|
|
38
|
+
"@aws-sdk/lib-storage": "3.879.0",
|
|
39
|
+
"@fastify/cookie": "11.0.2",
|
|
40
|
+
"@fastify/http-proxy": "11.1.2",
|
|
41
|
+
"@fastify/multipart": "9.0.3",
|
|
42
|
+
"@fastify/passport": "3.0.2",
|
|
43
|
+
"@fastify/rate-limit": "10.3.0",
|
|
44
|
+
"@fastify/session": "11.1.0",
|
|
45
|
+
"@grpc/grpc-js": "1.10.11",
|
|
46
|
+
"@grpc/proto-loader": "0.7.15",
|
|
47
|
+
"apache-crypt": "1.2.6",
|
|
48
|
+
"better-sqlite3": "12.2.0",
|
|
49
|
+
"dotenv": "16.5.0",
|
|
50
|
+
"fastify": "5.3.3",
|
|
51
|
+
"fastify-plugin": "5.0.1",
|
|
52
|
+
"fastify-session-redis-store": "7.1.2",
|
|
53
|
+
"handlebars": "4.7.8",
|
|
54
|
+
"image-size": "1.2.0",
|
|
55
|
+
"ioredis": "5.3.2",
|
|
56
|
+
"js-yaml": "4.1.0",
|
|
57
|
+
"markdown-it": "14.1.0",
|
|
58
|
+
"nodemailer": "7.0.6",
|
|
59
|
+
"otplib": "12.0.1",
|
|
60
|
+
"pg": "8.11.6",
|
|
61
|
+
"pino": "9.5.0",
|
|
62
|
+
"pino-abstract-transport": "2.0.0",
|
|
63
|
+
"promised-handlebars": "2.0.1",
|
|
64
|
+
"qrcode": "1.5.4",
|
|
65
|
+
"uglify-js": "3.19.3",
|
|
66
|
+
"undici": "7.16.0"
|
|
67
|
+
},
|
|
68
|
+
"devDependencies": {
|
|
69
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
70
|
+
"@types/bun": "^1.2.21",
|
|
71
|
+
"@types/js-yaml": "^4.0.9",
|
|
72
|
+
"@types/markdown-it": "^14.1.2",
|
|
73
|
+
"@types/node": "^24.3.1",
|
|
74
|
+
"@types/nodemailer": "^7.0.1",
|
|
75
|
+
"@types/passport": "^1.0.17",
|
|
76
|
+
"@types/passport-local": "^1.0.38",
|
|
77
|
+
"@types/pg": "^8.15.5",
|
|
78
|
+
"@types/qrcode": "^1.5.5",
|
|
79
|
+
"copyfiles": "^2.4.1",
|
|
80
|
+
"eslint": "^9.35.0",
|
|
81
|
+
"eslint-config-airbnb-extended": "^2.3.1",
|
|
82
|
+
"ts-migrate": "^0.1.35",
|
|
83
|
+
"typescript": "^5.9.2",
|
|
84
|
+
"vitest": "^3.2.4"
|
|
85
|
+
},
|
|
86
|
+
"author": "Softpro",
|
|
87
|
+
"license": "ISC"
|
|
88
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[{"name":"admin.user_id","module":"data","type":"select","hash":"29f728fe5e89fed0f2bec41657fae26e","dbhash":"29f728fe5e89fed0f2bec41657fae26e","update":false},{"name":"data.admin_statistic","module":"data","type":"select","hash":"8f0689a8995711c7693379a177ea4e92","dbhash":"8f0689a8995711c7693379a177ea4e92","update":false},{"name":"data.last_objects_all","module":"data","type":"select","hash":"f942c95781b420a837ae38c324cca7a9","dbhash":"f942c95781b420a837ae38c324cca7a9","update":false},{"name":"data.object_id","module":"data","type":"select","hash":"f5b4f8e86d5b3bf5da599b4e7d126ea2","dbhash":"f5b4f8e86d5b3bf5da599b4e7d126ea2","update":false},{"name":"data.site_statistic","module":"data","type":"select","hash":"fbc3b42fee3ef287b3a576bb1a0b43b4","dbhash":"fbc3b42fee3ef287b3a576bb1a0b43b4","update":false},{"name":"data_addition.change_status.parent","module":"data_addition","type":"select","hash":"517f0390a98a5642b94a62dbbd058441","dbhash":"517f0390a98a5642b94a62dbbd058441","update":false},{"name":"data_addition.deregistration.parent","module":"data_addition","type":"select","hash":"1dbbd6e0a48e52a9c23dedad368f06c3","dbhash":"1dbbd6e0a48e52a9c23dedad368f06c3","update":false},{"name":"data_addition.historical_name.parent","module":"data_addition","type":"select","hash":"3d42dee53b639fb594e9961492f577cc","dbhash":"3d42dee53b639fb594e9961492f577cc","update":false},{"name":"data_addition.national_lang_name.parent","module":"data_addition","type":"select","hash":"c3a9ac90dd38c02736503d003a0ca012","dbhash":"c3a9ac90dd38c02736503d003a0ca012","update":false},{"name":"data_addition.objects_atu.parent","module":"data_addition","type":"select","hash":"1629be10ba3bd71280621dc7e6737092","dbhash":"1629be10ba3bd71280621dc7e6737092","update":false},{"name":"data_addition.objects_countries.parent","module":"data_addition","type":"select","hash":"b389f543053bf35a5469580333cc1b0b","dbhash":"b389f543053bf35a5469580333cc1b0b","update":false},{"name":"data_addition.options_name.parent","module":"data_addition","type":"select","hash":"e5d02b5f8d64a18cf21b1daa448fe54e","dbhash":"e5d02b5f8d64a18cf21b1daa448fe54e","update":false},{"name":"data_addition.options_type.parent","module":"data_addition","type":"select","hash":"fb41e8f7b9cf18786611d8e880ff4051","dbhash":"fb41e8f7b9cf18786611d8e880ff4051","update":false},{"name":"data_addition.rename.parent","module":"data_addition","type":"select","hash":"c883a3baf1beb4a7d3d5bdb28062be69","dbhash":"c883a3baf1beb4a7d3d5bdb28062be69","update":false},{"name":"data_countries.object_id","module":"data_countries","type":"select","hash":"a6f120bea7bd0df1afcdb1b56484e516","dbhash":"a6f120bea7bd0df1afcdb1b56484e516","update":false},{"name":"dict.admin_status","module":"dict","type":"select","hash":"10452051e966f3051456226b78d1e11b","dbhash":"10452051e966f3051456226b78d1e11b","update":false},{"name":"dict.atu_countries","module":"dict","type":"select","hash":"c7368a1b9c10350e5709872d933a6ffb","dbhash":"c7368a1b9c10350e5709872d933a6ffb","update":false},{"name":"dict.atu_type","module":"dict","type":"select","hash":"376a4e7a7e77d5f9ee865b8a1fb25e07","dbhash":"376a4e7a7e77d5f9ee865b8a1fb25e07","update":false},{"name":"dict.community","module":"dict","type":"select","hash":"deb128826eb03dbca6762f058f49e980","dbhash":"deb128826eb03dbca6762f058f49e980","update":false},{"name":"dict.country_location","module":"dict","type":"select","hash":"333f3f56fc1a9f79f176f509d8aeca53","dbhash":"333f3f56fc1a9f79f176f509d8aeca53","update":false},{"name":"dict.district","module":"dict","type":"select","hash":"0d3a18d3fe4e6329567f5ba5cc360d53","dbhash":"0d3a18d3fe4e6329567f5ba5cc360d53","update":false},{"name":"dict.existence","module":"dict","type":"select","hash":"781bb2394e4f5eee87cbaf6ff1cc358e","dbhash":"781bb2394e4f5eee87cbaf6ff1cc358e","update":false},{"name":"dict.foreign_country","module":"dict","type":"select","hash":"dd4d5c31a9eea9abd538acdb952e99e9","dbhash":"dd4d5c31a9eea9abd538acdb952e99e9","update":false},{"name":"dict.info_source","module":"dict","type":"select","hash":"0ae17d8e43740078dea206cc7949151f","dbhash":"0ae17d8e43740078dea206cc7949151f","update":false},{"name":"dict.language","module":"dict","type":"select","hash":"fd1826c9ca150ef93bd251b923d6094e","dbhash":"fd1826c9ca150ef93bd251b923d6094e","update":false},{"name":"dict.object_type.adm","module":"dict","type":"select","hash":"0faeff4dc1c1f60996efe614d44a6e5f","dbhash":"0faeff4dc1c1f60996efe614d44a6e5f","update":false},{"name":"dict.object_type.geo","module":"dict","type":"select","hash":"34b82095969396e8a8497f93cda3dcc5","dbhash":"34b82095969396e8a8497f93cda3dcc5","update":false},{"name":"dict.object_type.pzf","module":"dict","type":"select","hash":"df2c1ced6405602aa8f262e437ac5062","dbhash":"df2c1ced6405602aa8f262e437ac5062","update":false},{"name":"dict.object_type.soc","module":"dict","type":"select","hash":"d60d3f993acb76e5782e4a3046756858","dbhash":"d60d3f993acb76e5782e4a3046756858","update":false},{"name":"dict.object_type","module":"dict","type":"select","hash":"9630e32f344f33580d5a90e305bf5cf2","dbhash":"9630e32f344f33580d5a90e305bf5cf2","update":false},{"name":"dict.region","module":"dict","type":"select","hash":"c1e0b38f520a004726694109398d5544","dbhash":"c1e0b38f520a004726694109398d5544","update":false},{"name":"dict.settlement_type","module":"dict","type":"select","hash":"49261c87bf6cd01e4ab32f65c94b5dbf","dbhash":"49261c87bf6cd01e4ab32f65c94b5dbf","update":false},{"name":"dict.source","module":"dict","type":"select","hash":"ac2bf8aca5c819e42b6529c73a7e1cb5","dbhash":"ac2bf8aca5c819e42b6529c73a7e1cb5","update":false},{"name":"dict.source_name","module":"dict","type":"select","hash":"9550cb3ad87783d7528c3c440be50a89","dbhash":"9550cb3ad87783d7528c3c440be50a89","update":false},{"name":"dict.source_type","module":"dict","type":"select","hash":"fee4eb12cd50344d2de7c49290238501","dbhash":"fee4eb12cd50344d2de7c49290238501","update":false},{"name":"core.accounts","module":"settings","type":"select","hash":"36eef3856f46bc0eecb61a6f911ced2e","dbhash":"36eef3856f46bc0eecb61a6f911ced2e","update":false},{"name":"core.menu_id","module":"settings","type":"select","hash":"3b08d360628afa15339f364f5e2ff211","dbhash":"3b08d360628afa15339f364f5e2ff211","update":false},{"name":"core.roles","module":"settings","type":"select","hash":"ed1290380ea5e5e7e48bd08b41cb7793","dbhash":"ed1290380ea5e5e7e48bd08b41cb7793","update":false},{"name":"core.routes.alias","module":"settings","type":"select","hash":"ac6afe9a8ebaf0b26236c4bae5297709","dbhash":"ac6afe9a8ebaf0b26236c4bae5297709","update":false},{"name":"core.routes","module":"settings","type":"select","hash":"306bddbe5b73b0628728a60f5335aaee","dbhash":"306bddbe5b73b0628728a60f5335aaee","update":false},{"name":"core.rules","module":"settings","type":"select","hash":"a86085f579f4abff5cf09e775e034ed3","dbhash":"a86085f579f4abff5cf09e775e034ed3","update":false},{"name":"core.user_mentioned","module":"settings","type":"select","hash":"6687f073de73a3ec4b6e0811d9310e7e","dbhash":"6687f073de73a3ec4b6e0811d9310e7e","update":false},{"name":"core.user_uid","module":"settings","type":"select","hash":"45f7d8a57ecbca5b433be7937be51d5c","dbhash":"45f7d8a57ecbca5b433be7937be51d5c","update":false},{"name":"data.exist_flag","module":"data","type":"cls","hash":"4cc57ff8d055dd194b51a6937d70f04c","dbhash":"4cc57ff8d055dd194b51a6937d70f04c","update":false},{"name":"data.latitude_dir","module":"data","type":"cls","hash":"542cd461818ff655002fec7bf23dcdb1","dbhash":"542cd461818ff655002fec7bf23dcdb1","update":false},{"name":"data.longitude_dir","module":"data","type":"cls","hash":"39f5c0554eab4f34ae25312d8dfafa78","dbhash":"39f5c0554eab4f34ae25312d8dfafa78","update":false},{"name":"data._type","module":"data","type":"cls","hash":"588c9b704054165dc6977f1262bbfee7","dbhash":"588c9b704054165dc6977f1262bbfee7","update":false},{"name":"access_type","module":"settings","type":"cls","hash":"e02065dbaed2ccb437a1722c00ed3fab","dbhash":"e02065dbaed2ccb437a1722c00ed3fab","update":false},{"name":"change_type","module":"settings","type":"cls","hash":"0fcaac1864fc81b9760075836c1bb2ac","dbhash":"0fcaac1864fc81b9760075836c1bb2ac","update":false},{"name":"core.actions","module":"settings","type":"cls","hash":"17862ea92ef5ad846a284fd68b4ff1f7","dbhash":"17862ea92ef5ad846a284fd68b4ff1f7","update":false},{"name":"core.column_type","module":"settings","type":"cls","hash":"8004d1fc1876e6f5a096b4f40a7f3775","dbhash":"8004d1fc1876e6f5a096b4f40a7f3775","update":false},{"name":"core.scope","module":"settings","type":"cls","hash":"c274693f6c7e9849704bbf4c46334871","dbhash":"c274693f6c7e9849704bbf4c46334871","update":false},{"name":"properties.site_status","module":"settings","type":"cls","hash":"2c2980706c5afe8808000d971b304cc9","dbhash":"2c2980706c5afe8808000d971b304cc9","update":false},{"name":"properties.widget_status","module":"settings","type":"cls","hash":"232f321af15895a9b33953c9bd500043","dbhash":"232f321af15895a9b33953c9bd500043","update":false},{"name":"users.user_type","module":"settings","type":"cls","hash":"9f6a303d48d2d33c68dbcd8e72ad0e83","dbhash":"9f6a303d48d2d33c68dbcd8e72ad0e83","update":false},{"name":"yes_no","module":"settings","type":"cls","hash":"50c527053426248c20b0a2f112ff9046","dbhash":"50c527053426248c20b0a2f112ff9046","update":false}]
|
|
File without changes
|