@opengis/fastify-table 2.5.0 → 2.5.2

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 (56) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +27 -0
  3. package/dist/server/migrations/oauth.sql.sql +77 -0
  4. package/dist/server/migrations/users.sql +11 -1
  5. package/dist/server/plugins/crud/funcs/utils/logChanges.d.ts.map +1 -1
  6. package/dist/server/plugins/crud/funcs/utils/logChanges.js +5 -2
  7. package/dist/server/plugins/grpc/utils/server/plugins/grpc/utils/convertp.proto +137 -0
  8. package/dist/server/plugins/grpc/utils/server/plugins/grpc/utils/office2pdf.proto +14 -0
  9. package/dist/server/plugins/hook/funcs/addHook.js +7 -0
  10. package/dist/server/plugins/hook/funcs/applyHook.js +25 -0
  11. package/dist/server/plugins/hook/funcs/applyHookSync.js +7 -0
  12. package/dist/server/plugins/hook/index.js +7 -0
  13. package/dist/server/plugins/migration/index.d.ts +3 -0
  14. package/dist/server/plugins/migration/index.d.ts.map +1 -0
  15. package/dist/server/plugins/migration/index.js +5 -0
  16. package/dist/server/plugins/policy/funcs/checkPolicy.d.ts.map +1 -1
  17. package/dist/server/plugins/policy/funcs/checkPolicy.js +4 -1
  18. package/dist/server/plugins/table/funcs/getSelectMeta.d.ts.map +1 -1
  19. package/dist/server/plugins/table/funcs/getSelectMeta.js +10 -5
  20. package/dist/server/routes/access/schema.d.ts.map +1 -1
  21. package/dist/server/routes/auth/controllers/2factor/generate.d.ts +19 -0
  22. package/dist/server/routes/auth/controllers/2factor/generate.d.ts.map +1 -0
  23. package/dist/server/routes/auth/controllers/2factor/generate.js +38 -0
  24. package/dist/server/routes/auth/controllers/2factor/toggle.d.ts +18 -0
  25. package/dist/server/routes/auth/controllers/2factor/toggle.d.ts.map +1 -0
  26. package/dist/server/routes/auth/controllers/2factor/toggle.js +39 -0
  27. package/dist/server/routes/file/controllers/export.d.ts.map +1 -1
  28. package/dist/server/routes/file/controllers/export.js +5 -3
  29. package/dist/server/routes/file/controllers/resizeAll.d.ts.map +1 -1
  30. package/dist/server/routes/file/controllers/resizeAll.js +4 -3
  31. package/dist/server/routes/file/index.d.ts.map +1 -1
  32. package/dist/server/routes/file/index.js +20 -5
  33. package/dist/server/routes/file/schema.d.ts +27 -4
  34. package/dist/server/routes/file/schema.d.ts.map +1 -1
  35. package/dist/server/routes/file/schema.js +23 -9
  36. package/dist/server/routes/logger/controllers/utils/checkUserAccess.js +22 -0
  37. package/dist/server/routes/logger/controllers/utils/getRootDir.js +25 -0
  38. package/dist/server/routes/table/controllers/search.d.ts.map +1 -1
  39. package/dist/server/routes/table/controllers/search.js +19 -11
  40. package/dist/server/routes/table/controllers/suggest.js +1 -1
  41. package/dist/server/routes/table/functions/getData.d.ts +1 -1
  42. package/dist/server/routes/table/functions/getData.d.ts.map +1 -1
  43. package/dist/server/routes/table/functions/getData.js +80 -46
  44. package/dist/server/routes/table/index.js +2 -1
  45. package/dist/server/routes/table/schema.d.ts +6 -10
  46. package/dist/server/routes/table/schema.d.ts.map +1 -1
  47. package/dist/server/routes/table/schema.js +50 -50
  48. package/dist/server/routes/templates/index.d.ts.map +1 -1
  49. package/dist/server/routes/templates/index.js +7 -1
  50. package/dist/server/routes/templates/schema.d.ts +3 -3
  51. package/dist/server/routes/templates/schema.d.ts.map +1 -1
  52. package/dist/server/routes/templates/schema.js +4 -4
  53. package/dist/server/types/errors.d.ts +10 -0
  54. package/dist/server/types/errors.d.ts.map +1 -0
  55. package/dist/server/types/errors.js +3 -0
  56. package/package.json +98 -98
@@ -1,76 +1,76 @@
1
1
  const tableDataSchema = {
2
- type: 'object',
2
+ type: "object",
3
3
  properties: {
4
4
  querystring: {
5
- limit: { type: 'string', pattern: '^(\\d+)$' },
6
- page: { type: 'string', pattern: '^(\\d+)$' },
5
+ limit: { type: "number", minimum: 1 },
6
+ page: { type: "number", minimum: 1 },
7
7
  // filter: { type: 'string', pattern: '^([\\w\\d_-]+)=([А-Яа-яҐґЄєІіЇї\\d\\w\\s\\/\\[\\]\\(\\)\\{\\}\\|,.!?;:—_=-@%#$&^*+=`~]+)$' },
8
8
  // search: { type: 'string', pattern: '^([А-Яа-яҐґЄєІіЇї\\d\\w\\s\\/\\[\\]\\(\\)\\{\\}\\|,.!?;:—_=-@%#$&^*+=`~]+)$' },
9
- order: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
10
- desc: { type: 'string', pattern: '^(\\d+)$' },
11
- state: { type: 'string', pattern: '^([\\d\\w._-]+)$' },
12
- custom: { type: 'string', pattern: '^([\\d\\w._-]+)$' },
13
- bbox: { type: 'string', pattern: '^([\\d\\s,.-]+)$' },
14
- polyline: { type: 'string', pattern: '^([\\d\\w|@{}~_`]+)$' },
9
+ order: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
10
+ desc: { type: "string", pattern: "^(\\d+)$" },
11
+ state: { type: "string", pattern: "^([\\d\\w._-]+)$" },
12
+ custom: { type: "string", pattern: "^([\\d\\w._-]+)$" },
13
+ bbox: { type: "string", pattern: "^([\\d\\s,.-]+)$" },
14
+ polyline: { type: "string", pattern: "^([\\d\\w|@{}~_`]+)$" },
15
15
  // key: { type: 'string', pattern: '^([\\d\\w_]+)$' },
16
- sql: { type: 'string', pattern: '^(\\d)$' },
16
+ sql: { type: "number" },
17
17
  },
18
18
  params: {
19
- id: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
20
- table: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
19
+ id: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
20
+ table: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
21
21
  },
22
22
  },
23
23
  };
24
24
  const tableSchema = {
25
- type: 'object',
25
+ type: "object",
26
26
  properties: {
27
27
  querystring: {
28
- limit: { type: 'string', pattern: '^(\\d+)$' },
29
- page: { type: 'string', pattern: '^(\\d+)$' },
28
+ limit: { type: "number", minimum: 1 },
29
+ page: { type: "number", minimum: 1 },
30
30
  // filter: { type: 'string', pattern: '^([\\w\\d_-]+)=([А-Яа-яҐґЄєІіЇї\\d\\w\\s\\/\\[\\]\\(\\)\\{\\}\\|,.!?;:—_=-@%#$&^*+=`~]+)$' },
31
31
  // search: { type: 'string', pattern: '^([А-Яа-яҐґЄєІіЇї\\d\\w\\s\\/\\[\\]\\(\\)\\{\\}\\|,.!?;:—_=-@%#$&^*+=`~]+)$' },
32
- order: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
33
- desc: { type: 'string', pattern: '^(\\d+)$' },
32
+ order: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
33
+ desc: { type: "string", pattern: "^(\\d+)$" },
34
34
  // state: { type: 'string', pattern: '^([\\d\\w._-]+)$' },
35
35
  // custom: { type: 'string', pattern: '^([\\d\\w._-]+)$' },
36
- bbox: { type: 'string', pattern: '^([\\d\\s,.-]+)$' },
36
+ bbox: { type: "string", pattern: "^([\\d\\s,.-]+)$" },
37
37
  // polyline: { type: 'string', pattern: '^([\\d\\w\\|@\\/\\{\\}~_`]+)$' },
38
- key: { type: 'string', pattern: '^([А-Яа-яҐґЄєІіЇї\\d\\w\\s_.-]+)$' },
39
- uid: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
40
- sql: { type: 'string', pattern: '^(\\d)$' },
38
+ key: { type: "string", pattern: "^([А-Яа-яҐґЄєІіЇї\\d\\w\\s_.-]+)$" },
39
+ uid: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
40
+ sql: { type: "number" },
41
41
  },
42
42
  params: {
43
- id: { type: 'string', pattern: '^([\\d\\w]+)$' },
44
- table: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
43
+ id: { type: "string", pattern: "^([\\d\\w]+)$" },
44
+ table: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
45
45
  },
46
46
  },
47
47
  };
48
48
  const searchSchema = {
49
- type: 'object',
49
+ type: "object",
50
50
  properties: {
51
51
  querystring: {
52
- page: { type: 'string', pattern: '^(\\d+)$' },
53
- limit: { type: 'string', pattern: '^(\\d+)$' },
54
- order: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
55
- desc: { type: 'string', pattern: '^(\\d+)$' },
56
- key: { type: 'string', pattern: '^([А-Яа-яҐґЄєІіЇї\\d\\w\\s_.-]+)$' },
57
- table: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
58
- sql: { type: 'string', pattern: '^(\\d)$' },
52
+ page: { type: "number", minimum: 1 },
53
+ limit: { type: "number", minimum: 1 },
54
+ order: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
55
+ desc: { type: "string", pattern: "^(\\d+)$" },
56
+ key: { type: "string", pattern: "^([А-Яа-яҐґЄєІіЇї\\d\\w\\s_.-]+)$" },
57
+ table: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
58
+ sql: { type: "string", pattern: "^(\\d)$" },
59
59
  },
60
60
  },
61
61
  };
62
62
  const suggestSchema = {
63
- type: 'object',
63
+ type: "object",
64
64
  properties: {
65
65
  querystring: {
66
- lang: { type: 'string', pattern: '^([\\w]+)$' },
67
- parent: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
68
- sel: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
69
- name: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
66
+ lang: { type: "string", pattern: "^([\\w]+)$" },
67
+ parent: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
68
+ sel: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
69
+ name: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
70
70
  // key: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
71
- val: { type: 'string', pattern: '([\\d\\w]+)$' },
72
- sql: { type: 'string', pattern: '^(\\d)$' },
73
- count: { type: 'string', pattern: '^(\\d)$' },
71
+ val: { type: "string", pattern: "([\\d\\w]+)$" },
72
+ sql: { type: "number" },
73
+ count: { type: "number" },
74
74
  },
75
75
  params: {
76
76
  // data: { type: 'string', pattern: '^([\\d\\w]+)$' },
@@ -78,39 +78,39 @@ const suggestSchema = {
78
78
  },
79
79
  };
80
80
  const formSchema = {
81
- type: 'object',
81
+ type: "object",
82
82
  properties: {
83
83
  params: {
84
- name: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
85
- id: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
84
+ name: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
85
+ id: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
86
86
  },
87
87
  },
88
88
  };
89
89
  const filterSchema = {
90
- type: 'object',
90
+ type: "object",
91
91
  properties: {
92
92
  params: {
93
- table: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
93
+ table: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
94
94
  },
95
95
  },
96
96
  };
97
97
  const cardTabDataSchema = {
98
- type: 'object',
98
+ type: "object",
99
99
  properties: {
100
100
  querystring: {
101
- sql: { type: 'string', pattern: '^(\\d)$' },
101
+ sql: { type: "string", pattern: "^(\\d)$" },
102
102
  },
103
103
  params: {
104
- token: { type: 'string', pattern: '^([\\d\\w]+)$' },
104
+ token: { type: "string", pattern: "^([\\d\\w]+)$" },
105
105
  },
106
106
  },
107
107
  };
108
108
  const tableDataIdSchema = {
109
- type: 'object',
109
+ type: "object",
110
110
  properties: {
111
111
  params: {
112
- id: { type: 'string', pattern: '^([\\d\\w_.-]+)$' },
113
- name: { type: 'string', pattern: '^([\\d\\w._-]+)$' },
112
+ id: { type: "string", pattern: "^([\\d\\w_.-]+)$" },
113
+ name: { type: "string", pattern: "^([\\d\\w._-]+)$" },
114
114
  },
115
115
  },
116
116
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/routes/templates/index.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAE,GAAQ,QAMpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/routes/templates/index.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAE,GAAQ,QAQpD"}
@@ -3,5 +3,11 @@ import { getTemplateSchema } from "./schema.js";
3
3
  const policy = "L0";
4
4
  const tags = ["core", "templates"];
5
5
  export default function route(app, opt = {}) {
6
- app.get("/template/:type/:name", { config: { tags, policy }, schema: getTemplateSchema }, getTemplateApi);
6
+ app.route({
7
+ method: "GET",
8
+ url: "/template/:type/:name",
9
+ config: { tags, policy },
10
+ schema: getTemplateSchema,
11
+ handler: getTemplateApi,
12
+ });
7
13
  }
@@ -1,7 +1,7 @@
1
1
  declare const getTemplateSchema: {
2
- type: string;
3
- properties: {
4
- params: {
2
+ params: {
3
+ type: string;
4
+ properties: {
5
5
  name: {
6
6
  type: string;
7
7
  pattern: string;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../server/routes/templates/schema.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB;;;;;;;;;;CAQtB,CAAC;;AAEF,wBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../server/routes/templates/schema.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB;;;;;;;;;;CAQtB,CAAC;;AAEF,wBAAoB;AAEpB,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,8 +1,8 @@
1
1
  const getTemplateSchema = {
2
- type: 'object',
3
- properties: {
4
- params: {
5
- name: { type: 'string', pattern: '^([\\d\\w._-]+)$' },
2
+ params: {
3
+ type: "object",
4
+ properties: {
5
+ name: { type: "string", pattern: "^([\\d\\w._-]+)$" },
6
6
  // type: { type: 'string' },
7
7
  },
8
8
  },
@@ -0,0 +1,10 @@
1
+ import createError from "@fastify/error";
2
+ export declare const NotFoundError: createError.FastifyErrorConstructor<{
3
+ code: "NOT_FOUND_ERROR";
4
+ statusCode: 404;
5
+ }, [any?, any?, any?]>;
6
+ export declare const BadRequestError: createError.FastifyErrorConstructor<{
7
+ code: "NOT_FOUND_ERROR";
8
+ statusCode: 400;
9
+ }, [any?, any?, any?]>;
10
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../server/types/errors.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAEzC,eAAO,MAAM,aAAa;;;sBAIzB,CAAC;AACF,eAAO,MAAM,eAAe;;;sBAI3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import createError from "@fastify/error";
2
+ export const NotFoundError = createError("NOT_FOUND_ERROR", "Resource not found: %s", 404);
3
+ export const BadRequestError = createError("NOT_FOUND_ERROR", "Bad request: %s", 400);
package/package.json CHANGED
@@ -1,98 +1,98 @@
1
- {
2
- "name": "@opengis/fastify-table",
3
- "version": "2.5.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
- "./errors.js": "./dist/errors.js",
19
- "./utils.js": "./dist/utils.js",
20
- "./package.json": "./package.json"
21
- },
22
- "files": [
23
- "dist/*"
24
- ],
25
- "scripts": {
26
- "dump": "bun ./script/dump.ts",
27
- "migrate": "bun ./script/migrate.ts",
28
- "dump1": "bun ./dist/script/dump.js",
29
- "migrate1": "bun ./dist/script/migrate.js",
30
- "prepublishOnly": "npm run build",
31
- "clean": "tsc -b --clean",
32
- "build": "tsc -b --clean && tsc && copyfiles server/plugins/grpc/utils/*.proto dist && copyfiles server/migrations/*.sql dist && copyfiles server/templates/**/*.html dist && copyfiles server/templates/**/*.hbs dist && copyfiles script/* dist && copyfiles -u 2 module/core/*/* dist/module/core",
33
- "prod": "NODE_ENV=production bun dist/server",
34
- "patch": "npm version patch && git push && npm publish",
35
- "minor": "npm version minor && git push && npm publish",
36
- "major": "npm version major && git push && npm publish",
37
- "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
38
- "test": "npx vitest run",
39
- "compress": "node compress.js",
40
- "dev1": "bun --hot dist/server",
41
- "dev": "NODE_ENV=development bun start",
42
- "start": "LOG_LEVEL=trace bun server",
43
- "start1": "npx tsx server"
44
- },
45
- "dependencies": {
46
- "@aws-sdk/client-s3": "3.1079.0",
47
- "@aws-sdk/lib-storage": "3.1079.0",
48
- "@fastify/cookie": "11.0.2",
49
- "@fastify/http-proxy": "11.5.0",
50
- "@fastify/multipart": "10.0.0",
51
- "@fastify/passport": "3.0.2",
52
- "@fastify/rate-limit": "11.1.0",
53
- "@fastify/session": "11.1.1",
54
- "@grpc/grpc-js": "1.14.4",
55
- "@grpc/proto-loader": "0.8.1",
56
- "apache-crypt": "1.2.6",
57
- "dotenv": "17.4.2",
58
- "fastify": "5.9.0",
59
- "fastify-plugin": "6.0.0",
60
- "fastify-session-redis-store": "7.1.2",
61
- "handlebars": "4.7.9",
62
- "image-size": "2.0.2",
63
- "ioredis": "5.11.1",
64
- "js-yaml": "5.2.1",
65
- "markdown-it": "14.3.0",
66
- "minio": "^8.0.7",
67
- "nodemailer": "9.0.3",
68
- "otplib": "13.4.1",
69
- "pg": "8.22.0",
70
- "pino": "10.3.1",
71
- "pino-abstract-transport": "3.0.0",
72
- "promised-handlebars": "2.0.1",
73
- "qrcode": "1.5.4",
74
- "sharp": "0.35.3",
75
- "uglify-js": "3.19.3",
76
- "undici": "8.6.0"
77
- },
78
- "devDependencies": {
79
- "@stylistic/eslint-plugin": "^5.10.0",
80
- "@types/bun": "^1.3.5",
81
- "@types/js-yaml": "^4.0.9",
82
- "@types/markdown-it": "^14.1.2",
83
- "@types/node": "^26.1.0",
84
- "@types/nodemailer": "^8.0.1",
85
- "@types/passport": "^1.0.17",
86
- "@types/passport-local": "^1.0.38",
87
- "@types/pg": "^8.20.0",
88
- "@types/qrcode": "^1.5.6",
89
- "copyfiles": "^2.4.1",
90
- "eslint": "^10.6.0",
91
- "eslint-stylistic-airbnb": "^3.2.0",
92
- "ts-migrate": "^0.1.35",
93
- "typescript": "^6.0.2",
94
- "vitest": "^4.1.2"
95
- },
96
- "author": "Softpro",
97
- "license": "ISC"
98
- }
1
+ {
2
+ "name": "@opengis/fastify-table",
3
+ "version": "2.5.2",
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
+ "./errors.js": "./dist/errors.js",
19
+ "./utils.js": "./dist/utils.js",
20
+ "./package.json": "./package.json"
21
+ },
22
+ "files": [
23
+ "dist/*"
24
+ ],
25
+ "scripts": {
26
+ "dump": "bun ./script/dump.ts",
27
+ "migrate": "bun ./script/migrate.ts",
28
+ "dump1": "bun ./dist/script/dump.js",
29
+ "migrate1": "bun ./dist/script/migrate.js",
30
+ "prepublishOnly": "npm run build",
31
+ "clean": "tsc -b --clean",
32
+ "build": "tsc -b --clean && tsc && copyfiles server/plugins/grpc/utils/*.proto dist && copyfiles server/migrations/*.sql dist && copyfiles server/templates/**/*.html dist && copyfiles server/templates/**/*.hbs dist && copyfiles script/* dist && copyfiles -u 2 module/core/*/* dist/module/core",
33
+ "prod": "NODE_ENV=production bun dist/server",
34
+ "patch": "npm version patch && git push && npm publish",
35
+ "minor": "npm version minor && git push && npm publish",
36
+ "major": "npm version major && git push && npm publish",
37
+ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
38
+ "test": "npx vitest run",
39
+ "compress": "node compress.js",
40
+ "dev1": "bun --hot dist/server",
41
+ "dev": "NODE_ENV=development bun start",
42
+ "start": "LOG_LEVEL=trace bun server",
43
+ "start1": "npx tsx server"
44
+ },
45
+ "dependencies": {
46
+ "@aws-sdk/client-s3": "3.1079.0",
47
+ "@aws-sdk/lib-storage": "3.1079.0",
48
+ "@fastify/cookie": "11.0.2",
49
+ "@fastify/http-proxy": "11.5.0",
50
+ "@fastify/multipart": "10.0.0",
51
+ "@fastify/passport": "3.0.2",
52
+ "@fastify/rate-limit": "11.1.0",
53
+ "@fastify/session": "11.1.1",
54
+ "@grpc/grpc-js": "1.14.4",
55
+ "@grpc/proto-loader": "0.8.1",
56
+ "apache-crypt": "1.2.6",
57
+ "dotenv": "17.4.2",
58
+ "fastify": "5.9.0",
59
+ "fastify-plugin": "6.0.0",
60
+ "fastify-session-redis-store": "7.1.2",
61
+ "handlebars": "4.7.9",
62
+ "image-size": "2.0.2",
63
+ "ioredis": "5.11.1",
64
+ "js-yaml": "5.2.1",
65
+ "markdown-it": "14.3.0",
66
+ "minio": "^8.0.7",
67
+ "nodemailer": "9.0.3",
68
+ "otplib": "13.4.1",
69
+ "pg": "8.22.0",
70
+ "pino": "10.3.1",
71
+ "pino-abstract-transport": "3.0.0",
72
+ "promised-handlebars": "2.0.1",
73
+ "qrcode": "1.5.4",
74
+ "sharp": "0.35.3",
75
+ "uglify-js": "3.19.3",
76
+ "undici": "8.6.0"
77
+ },
78
+ "devDependencies": {
79
+ "@stylistic/eslint-plugin": "^5.10.0",
80
+ "@types/bun": "^1.3.5",
81
+ "@types/js-yaml": "^4.0.9",
82
+ "@types/markdown-it": "^14.1.2",
83
+ "@types/node": "^26.1.0",
84
+ "@types/nodemailer": "^8.0.1",
85
+ "@types/passport": "^1.0.17",
86
+ "@types/passport-local": "^1.0.38",
87
+ "@types/pg": "^8.20.0",
88
+ "@types/qrcode": "^1.5.6",
89
+ "copyfiles": "^2.4.1",
90
+ "eslint": "^10.6.0",
91
+ "eslint-stylistic-airbnb": "^3.2.0",
92
+ "ts-migrate": "^0.1.35",
93
+ "typescript": "^6.0.2",
94
+ "vitest": "^4.1.2"
95
+ },
96
+ "author": "Softpro",
97
+ "license": "ISC"
98
+ }