@opengis/fastify-table 2.0.105 → 2.0.107
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/config.d.ts.map +1 -1
- package/dist/script/adduser +15 -0
- package/dist/script/dump.js +176 -0
- package/dist/script/migrate.js +25 -0
- package/dist/server/migrations/users.sql +1 -1
- package/dist/server/plugins/auth/funcs/verifyPassword.d.ts.map +1 -1
- package/dist/server/plugins/auth/funcs/verifyPassword.js +3 -1
- package/dist/server/plugins/crud/funcs/dataInsert.js +1 -1
- package/dist/server/plugins/crud/funcs/dataUpdate.d.ts.map +1 -1
- package/dist/server/plugins/crud/funcs/dataUpdate.js +7 -4
- package/dist/server/plugins/file/providers/s3/client.d.ts +12 -4
- package/dist/server/plugins/file/providers/s3/client.d.ts.map +1 -1
- package/dist/server/plugins/file/providers/s3/client.js +21 -15
- package/dist/server/plugins/file/providers/s3/funcs/downloadFile.d.ts +1 -1
- package/dist/server/plugins/file/providers/s3/funcs/downloadFile.d.ts.map +1 -1
- package/dist/server/plugins/file/providers/s3/funcs/downloadFile.js +9 -4
- package/dist/server/plugins/file/providers/s3/funcs/fileExists.d.ts +1 -1
- package/dist/server/plugins/file/providers/s3/funcs/fileExists.d.ts.map +1 -1
- package/dist/server/plugins/file/providers/s3/funcs/fileExists.js +13 -10
- package/dist/server/plugins/file/providers/s3/funcs/uploadFile.d.ts +1 -1
- package/dist/server/plugins/file/providers/s3/funcs/uploadFile.d.ts.map +1 -1
- package/dist/server/plugins/file/providers/s3/funcs/uploadFile.js +4 -4
- package/dist/server/plugins/file/providers/s3/funcs/utils/getS3FilePath.d.ts +1 -1
- package/dist/server/plugins/file/providers/s3/funcs/utils/getS3FilePath.d.ts.map +1 -1
- package/dist/server/plugins/file/providers/s3/funcs/utils/getS3FilePath.js +1 -1
- package/dist/server/plugins/file/providers/s3/index.d.ts +1 -1
- package/dist/server/plugins/logger/getLogger.d.ts.map +1 -1
- package/dist/server/plugins/logger/getLogger.js +13 -10
- package/dist/server/plugins/logger/index.d.ts.map +1 -1
- package/dist/server/plugins/logger/index.js +7 -3
- package/dist/server/plugins/pg/funcs/getPG.d.ts.map +1 -1
- package/dist/server/plugins/pg/funcs/getPG.js +1 -0
- package/dist/server/plugins/pg/funcs/getPGAsync.js +1 -1
- package/dist/server/plugins/pg/funcs/init.d.ts +1 -1
- package/dist/server/plugins/pg/funcs/init.d.ts.map +1 -1
- package/dist/server/plugins/pg/funcs/init.js +20 -5
- package/dist/server/plugins/pg/funcs/pool.d.ts.map +1 -1
- package/dist/server/plugins/pg/funcs/pool.js +10 -16
- package/dist/server/plugins/pg/index.d.ts.map +1 -1
- package/dist/server/plugins/pg/index.js +3 -2
- package/dist/server/plugins/redis/funcs/getRedis.d.ts.map +1 -1
- package/dist/server/plugins/redis/funcs/getRedis.js +6 -4
- package/dist/server/plugins/redis/index.d.ts.map +1 -1
- package/dist/server/plugins/redis/index.js +4 -1
- package/dist/server/plugins/sqlite/index.d.ts.map +1 -1
- package/dist/server/plugins/sqlite/index.js +7 -3
- package/dist/server/plugins/table/funcs/getFilter.d.ts +1 -1
- package/dist/server/plugins/table/funcs/getFilter.d.ts.map +1 -1
- package/dist/server/plugins/table/funcs/getFilter.js +14 -1
- package/dist/server/plugins/table/funcs/getSelectMeta.d.ts +4 -2
- package/dist/server/plugins/table/funcs/getSelectMeta.d.ts.map +1 -1
- package/dist/server/plugins/table/funcs/getSelectMeta.js +21 -7
- package/dist/server/plugins/table/funcs/gisIRColumn.d.ts +2 -2
- package/dist/server/plugins/table/funcs/gisIRColumn.js +1 -1
- package/dist/server/plugins/util/funcs/unflattenObject.d.ts.map +1 -1
- package/dist/server/plugins/util/funcs/unflattenObject.js +3 -1
- package/dist/server/routes/access/controllers/access.group.d.ts +2 -2
- package/dist/server/routes/access/controllers/access.group.d.ts.map +1 -1
- package/dist/server/routes/access/controllers/access.group.js +0 -1
- package/dist/server/routes/access/controllers/access.group.post.d.ts +2 -2
- package/dist/server/routes/access/controllers/access.group.post.d.ts.map +1 -1
- package/dist/server/routes/access/controllers/access.group.post.js +0 -1
- package/dist/server/routes/auth/controllers/core/registration.d.ts +1 -4
- package/dist/server/routes/auth/controllers/core/registration.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/core/registration.js +28 -9
- package/dist/server/routes/auth/controllers/core/updateUserInfo.js +1 -1
- package/dist/server/routes/auth/controllers/jwt/authorize.js +5 -5
- package/dist/server/routes/auth/controllers/jwt/token.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/jwt/token.js +10 -12
- package/dist/server/routes/cron/controllers/cronApi.d.ts +1 -1
- package/dist/server/routes/cron/controllers/cronApi.d.ts.map +1 -1
- package/dist/server/routes/cron/controllers/cronApi.js +5 -3
- package/dist/server/routes/crud/controllers/insert.d.ts +1 -4
- package/dist/server/routes/crud/controllers/insert.d.ts.map +1 -1
- package/dist/server/routes/crud/controllers/insert.js +24 -16
- package/dist/server/routes/crud/controllers/table.d.ts.map +1 -1
- package/dist/server/routes/crud/controllers/table.js +13 -6
- package/dist/server/routes/crud/controllers/update.d.ts.map +1 -1
- package/dist/server/routes/crud/controllers/update.js +23 -15
- package/dist/server/routes/file/controllers/delete.d.ts +1 -15
- package/dist/server/routes/file/controllers/delete.d.ts.map +1 -1
- package/dist/server/routes/file/controllers/delete.js +13 -20
- package/dist/server/routes/file/controllers/download.d.ts +2 -2
- package/dist/server/routes/file/controllers/download.d.ts.map +1 -1
- package/dist/server/routes/file/controllers/download.js +39 -30
- package/dist/server/routes/file/controllers/files.d.ts +2 -1
- package/dist/server/routes/file/controllers/files.d.ts.map +1 -1
- package/dist/server/routes/file/controllers/files.js +15 -11
- package/dist/server/routes/file/controllers/resize.d.ts +1 -2
- package/dist/server/routes/file/controllers/resize.d.ts.map +1 -1
- package/dist/server/routes/file/controllers/resize.js +17 -6
- package/dist/server/routes/file/controllers/upload.d.ts.map +1 -1
- package/dist/server/routes/file/controllers/upload.js +17 -16
- package/dist/server/routes/file/controllers/uploadImage.d.ts +11 -13
- package/dist/server/routes/file/controllers/uploadImage.d.ts.map +1 -1
- package/dist/server/routes/file/controllers/uploadImage.js +13 -15
- package/dist/server/routes/logger/controllers/logger.file.js +1 -1
- package/dist/server/routes/menu/controllers/interfaces.d.ts +1 -7
- package/dist/server/routes/menu/controllers/interfaces.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/card.d.ts +1 -1
- package/dist/server/routes/table/controllers/card.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/card.js +15 -9
- package/dist/server/routes/table/controllers/filter.d.ts +1 -1
- package/dist/server/routes/table/controllers/filter.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/filter.js +2 -2
- package/dist/server/routes/table/controllers/form.d.ts +1 -1
- package/dist/server/routes/table/controllers/form.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/form.js +8 -5
- package/dist/server/routes/table/controllers/search.d.ts +1 -1
- package/dist/server/routes/table/controllers/search.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/search.js +5 -6
- package/dist/server/routes/table/controllers/suggest.d.ts +1 -1
- package/dist/server/routes/table/controllers/suggest.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/suggest.js +53 -24
- package/dist/server/routes/table/functions/getData.d.ts +1 -1
- package/dist/server/routes/table/functions/getData.d.ts.map +1 -1
- package/dist/server/routes/table/functions/getData.js +60 -34
- package/dist/server/routes/util/controllers/config.d.ts +2 -0
- package/dist/server/routes/util/controllers/config.d.ts.map +1 -0
- package/dist/server/routes/util/controllers/config.js +33 -0
- package/dist/server/routes/util/index.js +2 -2
- package/dist/server/types/core.d.ts +7 -0
- package/dist/server/types/core.d.ts.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -0
- package/package.json +3 -3
|
@@ -1,30 +1,27 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { existsSync, readFileSync } from "node:fs";
|
|
3
3
|
import { config, getPG, getTemplate, getSelectMeta, getMeta, applyHook, getSelectVal, logger, getSelect, metaFormat, getColumnCLS, } from "../../../../utils.js";
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
"Access-Control-Allow-Methods": "GET",
|
|
8
|
-
"Cache-Control": "no-cache",
|
|
9
|
-
};
|
|
10
|
-
async function getTableColumnMeta(tableName, column, filtered, pg) {
|
|
11
|
-
if (!tableName || !column) {
|
|
4
|
+
const defaultLimit = 50;
|
|
5
|
+
async function getTableColumnMeta({ table, column, filtered, startsWith, key, pg, }) {
|
|
6
|
+
if (!table || !column) {
|
|
12
7
|
return null;
|
|
13
8
|
}
|
|
14
|
-
const loadTable = await getTemplate("table",
|
|
9
|
+
const loadTable = await getTemplate("table", table);
|
|
15
10
|
const { data: clsName } = loadTable?.columns?.find?.((el) => el.name === column) || {};
|
|
16
11
|
const { arr } = (await getSelect(clsName, pg)) || {};
|
|
17
12
|
const original = filtered
|
|
18
|
-
? `with c(id,text) as (select ${column} as id, ${column} as text from ${loadTable?.table ||
|
|
19
|
-
: `with c(id,text) as (select ${column} as id, ${column} as text, count(*) from ${loadTable?.table ||
|
|
13
|
+
? `with c(id,text) as (select ${column} as id, ${column} as text from ${loadTable?.table || table} group by ${column}) select id, text from c`
|
|
14
|
+
: `with c(id,text) as (select ${column} as id, ${column} as text, count(*) from ${loadTable?.table || table} group by ${column} limit ${defaultLimit}) select * from c`;
|
|
20
15
|
return {
|
|
21
16
|
arr,
|
|
22
17
|
original,
|
|
23
|
-
searchQuery:
|
|
18
|
+
searchQuery: startsWith && key
|
|
19
|
+
? `(left(lower("text"),${key.length}) = $1 )`
|
|
20
|
+
: '(lower("text") ~ $1 )',
|
|
24
21
|
pk: "id",
|
|
25
22
|
};
|
|
26
23
|
}
|
|
27
|
-
export default async function suggest(req) {
|
|
24
|
+
export default async function suggest(req, reply) {
|
|
28
25
|
const { params, query, pg: pg1, user } = req;
|
|
29
26
|
const lang = query.lang || "ua";
|
|
30
27
|
const time = Date.now();
|
|
@@ -40,8 +37,12 @@ export default async function suggest(req) {
|
|
|
40
37
|
? params.data.split(":")
|
|
41
38
|
: [query.token, query.column];
|
|
42
39
|
const selectName = query.sel || params.data;
|
|
43
|
-
if (!selectName)
|
|
44
|
-
return
|
|
40
|
+
if (!selectName) {
|
|
41
|
+
return reply.status(400).send({
|
|
42
|
+
error: "name is required",
|
|
43
|
+
code: 400,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
45
46
|
const { body: hookBody } = table || query.token
|
|
46
47
|
? (await applyHook("preSuggest", {
|
|
47
48
|
pg: pg1,
|
|
@@ -51,32 +52,57 @@ export default async function suggest(req) {
|
|
|
51
52
|
const body = await getTemplate("table", table || query.token);
|
|
52
53
|
const tableName = hookBody?.table || body?.table || table || query.token;
|
|
53
54
|
if (table && !pg1.pk?.[tableName]) {
|
|
54
|
-
return
|
|
55
|
+
return reply.status(400).send({
|
|
56
|
+
error: "param name is invalid: 1",
|
|
57
|
+
code: 400,
|
|
58
|
+
});
|
|
55
59
|
}
|
|
56
60
|
const tableMeta = await getMeta({ pg: pg1, table: tableName });
|
|
57
61
|
const columnExists = (hookBody?.columns ||
|
|
58
62
|
body?.columns ||
|
|
59
63
|
tableMeta?.columns)?.find((col) => col?.name === (column || query.column));
|
|
60
64
|
if (table && (!column || !columnExists)) {
|
|
61
|
-
return
|
|
65
|
+
return reply.status(400).send({
|
|
66
|
+
error: "param name is invalid: 2",
|
|
67
|
+
code: 400,
|
|
68
|
+
});
|
|
62
69
|
}
|
|
63
70
|
if (query.limit && query.limit < 0) {
|
|
64
|
-
return
|
|
71
|
+
return reply.status(400).send({
|
|
72
|
+
error: "param limit is invalid",
|
|
73
|
+
code: 400,
|
|
74
|
+
});
|
|
65
75
|
}
|
|
66
76
|
const meta = tableName && column
|
|
67
|
-
? await getTableColumnMeta(
|
|
68
|
-
|
|
77
|
+
? await getTableColumnMeta({
|
|
78
|
+
table,
|
|
79
|
+
column,
|
|
80
|
+
filtered: query?.key || query?.val,
|
|
81
|
+
startsWith: !!query.start,
|
|
82
|
+
key: query.key,
|
|
69
83
|
pg: pg1,
|
|
84
|
+
})
|
|
85
|
+
: await getSelectMeta({
|
|
70
86
|
name: selectName,
|
|
71
87
|
nocache: query?.nocache,
|
|
88
|
+
startsWith: !!query.start,
|
|
89
|
+
key: query.key,
|
|
72
90
|
parent,
|
|
91
|
+
pg: pg1,
|
|
73
92
|
});
|
|
74
93
|
if (meta?.minLength && query.key && query.key.length < meta?.minLength) {
|
|
75
|
-
return {
|
|
94
|
+
return reply.status(400).send({
|
|
95
|
+
error: `min length: ${meta.minLength}`,
|
|
96
|
+
code: 400,
|
|
97
|
+
});
|
|
76
98
|
}
|
|
99
|
+
const limit = meta?.limit || defaultLimit;
|
|
77
100
|
const pg = meta?.db ? getPG(meta.db) : pg1;
|
|
78
101
|
if (!meta) {
|
|
79
|
-
return
|
|
102
|
+
return reply.status(404).send({
|
|
103
|
+
error: "Not found query select",
|
|
104
|
+
code: 404,
|
|
105
|
+
});
|
|
80
106
|
}
|
|
81
107
|
if (query.meta) {
|
|
82
108
|
return meta;
|
|
@@ -183,7 +209,7 @@ export default async function suggest(req) {
|
|
|
183
209
|
? ` ${meta.pk}=any('{${query.val.replace(/'/g, "''")}}')`
|
|
184
210
|
: "";
|
|
185
211
|
const where = [search, val, meta.pk ? `${meta.pk} is not null` : null]
|
|
186
|
-
.filter(
|
|
212
|
+
.filter(Boolean)
|
|
187
213
|
.join(" and ") || "true";
|
|
188
214
|
const loadTable = await getTemplate("table", query.token);
|
|
189
215
|
const tableName1 = hookBody?.table || loadTable?.table || query.token;
|
|
@@ -204,7 +230,7 @@ export default async function suggest(req) {
|
|
|
204
230
|
return sqlSuggest;
|
|
205
231
|
}
|
|
206
232
|
// query
|
|
207
|
-
const { rows: dataNew } = await pg.query(sqlSuggest, query.key ? [
|
|
233
|
+
const { rows: dataNew } = await pg.query(sqlSuggest, query.key ? [query.key.toLowerCase()] : []);
|
|
208
234
|
// const { rows: dataNew1 } = dataNew.length < limit ? await pg.query(sqlSuggest, query.key ? [`${query.key}`] : []) : {};
|
|
209
235
|
// const ids = dataNew.map((el) => el.id);
|
|
210
236
|
const data = dataNew.filter((el) => el.id && el.text);
|
|
@@ -223,6 +249,9 @@ export default async function suggest(req) {
|
|
|
223
249
|
total: meta.count - 0,
|
|
224
250
|
mode: type === "cls" ? "array" : "sql",
|
|
225
251
|
db: meta.db,
|
|
252
|
+
sql: config.local || user?.user_type?.includes?.("admin")
|
|
253
|
+
? sqlSuggest
|
|
254
|
+
: undefined,
|
|
226
255
|
data: data.map((el) => ({
|
|
227
256
|
count: el.count,
|
|
228
257
|
id: el.id,
|
|
@@ -17,5 +17,5 @@ export default function dataAPI({ pg, params, table, id, headers, query, user, c
|
|
|
17
17
|
filterList?: any[];
|
|
18
18
|
actions?: string[];
|
|
19
19
|
columns?: string[];
|
|
20
|
-
},
|
|
20
|
+
}, reply1?: FastifyReply, called?: any): Promise<any>;
|
|
21
21
|
//# sourceMappingURL=getData.d.ts.map
|
|
@@ -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;
|
|
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;AA4EzD,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,EACrB,OAAO,EAAE,YAAY,GACtB,EAAE;IACD,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,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,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,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;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,EACD,MAAM,CAAC,EAAE,YAAY,EACrB,MAAM,CAAC,EAAE,GAAG,gBA+0Bb"}
|
|
@@ -22,6 +22,19 @@ const components = {
|
|
|
22
22
|
"vs-widget-file": "select 'vs-widget-file' as component, count(*) from crm.files where entity_id=$1 and file_status<>3",
|
|
23
23
|
"vs-widget-comments": "select 'vs-widget-comments' as component, count(*) from crm.communications where entity_id=$1",
|
|
24
24
|
};
|
|
25
|
+
const mockReply = {
|
|
26
|
+
response: {},
|
|
27
|
+
// redirect: (txt) => txt,
|
|
28
|
+
redirect: (txt) => Object.assign(mockReply.response, {
|
|
29
|
+
body: txt,
|
|
30
|
+
statusCode: mockReply.response.statusCode || 200,
|
|
31
|
+
}),
|
|
32
|
+
status: (statusCode) => {
|
|
33
|
+
Object.assign(mockReply.response, { status: statusCode });
|
|
34
|
+
return mockReply;
|
|
35
|
+
},
|
|
36
|
+
send: (txt) => Object.assign(mockReply.response, txt),
|
|
37
|
+
};
|
|
25
38
|
function getOrder(queryOrder, queryDesc, defaultOrder, columnList, iscalled = false) {
|
|
26
39
|
if (iscalled && queryOrder) {
|
|
27
40
|
return `order by ${queryOrder}`;
|
|
@@ -39,14 +52,17 @@ function getOrder(queryOrder, queryDesc, defaultOrder, columnList, iscalled = fa
|
|
|
39
52
|
const checkInline = {};
|
|
40
53
|
const maxLimit = 100;
|
|
41
54
|
const defaultLimit = 20;
|
|
42
|
-
export default async function dataAPI({ pg = pgClients.client, params, table, id, headers = {}, query = {}, user = {}, contextQuery, sufix = true, filterList, actions: actionsParam, columns: columnsParam, },
|
|
55
|
+
export default async function dataAPI({ pg = pgClients.client, params, table, id, headers = {}, query = {}, user = {}, contextQuery, sufix = true, filterList, actions: actionsParam, columns: columnsParam, }, reply1, called) {
|
|
43
56
|
const time = Date.now();
|
|
44
57
|
const timeArr = [Date.now()];
|
|
45
58
|
const { uid } = user;
|
|
59
|
+
const reply = reply1 || mockReply;
|
|
46
60
|
const checkQuery = (item) => user?.user_type === "superadmin" ? !item.includes("{{uid}}") : true;
|
|
47
61
|
const paramsTable = params?.table || table;
|
|
48
62
|
if (!paramsTable) {
|
|
49
|
-
return
|
|
63
|
+
return reply
|
|
64
|
+
.status(400)
|
|
65
|
+
.send({ error: "not enough params: table", code: 400 });
|
|
50
66
|
}
|
|
51
67
|
const hookData = (await applyHook("preData", {
|
|
52
68
|
pg,
|
|
@@ -55,7 +71,10 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
55
71
|
user,
|
|
56
72
|
}));
|
|
57
73
|
if (hookData?.message && hookData?.status) {
|
|
58
|
-
|
|
74
|
+
const response = hookData.status >= 400
|
|
75
|
+
? { error: hookData.message, code: hookData.status }
|
|
76
|
+
: hookData.message;
|
|
77
|
+
return reply.status(hookData.status).send(response);
|
|
59
78
|
}
|
|
60
79
|
/* from tableData START */
|
|
61
80
|
const tokenData1 = await getOpt(paramsTable, uid);
|
|
@@ -96,7 +115,7 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
96
115
|
else if (checkInline[paramsTable]) {
|
|
97
116
|
loadTable.sql = checkInline[paramsTable];
|
|
98
117
|
}
|
|
99
|
-
if (query
|
|
118
|
+
if (query?.sql === "0")
|
|
100
119
|
return loadTable;
|
|
101
120
|
if (!pg) {
|
|
102
121
|
return reply.status(500).send("empty pg");
|
|
@@ -143,8 +162,11 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
143
162
|
const viewSql = await getTemplate("view", table1);
|
|
144
163
|
timeArr.push(Date.now());
|
|
145
164
|
if (tableMeta?.view) {
|
|
146
|
-
if (!loadTable?.key && !tokenData?.key)
|
|
147
|
-
return
|
|
165
|
+
if (!loadTable?.key && !tokenData?.key) {
|
|
166
|
+
return reply
|
|
167
|
+
.status(404)
|
|
168
|
+
.send({ error: `key not found: ${table1}`, code: 404 });
|
|
169
|
+
}
|
|
148
170
|
Object.assign(tableMeta, { pk: loadTable?.key || tokenData?.key });
|
|
149
171
|
}
|
|
150
172
|
const { pk, columns: dbColumns = [] } = (viewSql
|
|
@@ -160,7 +182,9 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
160
182
|
Object.assign(col, locales[`${table1 || paramsTable}.${col.name}`] || {});
|
|
161
183
|
});
|
|
162
184
|
if (!pk) {
|
|
163
|
-
return reply
|
|
185
|
+
return reply
|
|
186
|
+
.status(404)
|
|
187
|
+
.send({ error: `table not found: ${table1}`, code: 404 });
|
|
164
188
|
}
|
|
165
189
|
const columnList = dbColumns.map((el) => el.name || el).join(",");
|
|
166
190
|
const sqlTable = sql
|
|
@@ -200,57 +224,57 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
200
224
|
pg,
|
|
201
225
|
layer: paramsTable,
|
|
202
226
|
column: objectId,
|
|
203
|
-
sql: query
|
|
204
|
-
filter: query
|
|
205
|
-
search: query
|
|
206
|
-
state: query
|
|
207
|
-
custom: query
|
|
227
|
+
sql: query?.sql,
|
|
228
|
+
filter: query?.filter,
|
|
229
|
+
search: query?.search,
|
|
230
|
+
state: query?.state,
|
|
231
|
+
custom: query?.custom,
|
|
208
232
|
});
|
|
209
233
|
}
|
|
210
234
|
const isdefault = !objectId ? filters.find((el) => el.default) : null;
|
|
211
235
|
const checkFilter = [
|
|
212
|
-
query
|
|
213
|
-
query
|
|
214
|
-
query
|
|
215
|
-
query
|
|
236
|
+
query?.filter,
|
|
237
|
+
query?.search,
|
|
238
|
+
query?.state,
|
|
239
|
+
query?.custom,
|
|
216
240
|
isdefault,
|
|
217
241
|
].filter(Boolean).length;
|
|
218
242
|
const fData = checkFilter
|
|
219
243
|
? await getFilterSQL({
|
|
220
244
|
pg,
|
|
221
245
|
table: loadTable ? paramsTable : table1,
|
|
222
|
-
filter: query
|
|
223
|
-
search: query
|
|
224
|
-
state: query
|
|
225
|
-
custom: query
|
|
246
|
+
filter: query?.filter,
|
|
247
|
+
search: query?.search,
|
|
248
|
+
state: query?.state,
|
|
249
|
+
custom: query?.custom,
|
|
226
250
|
uid,
|
|
227
251
|
objectId,
|
|
228
252
|
filterList,
|
|
229
253
|
})
|
|
230
254
|
: {};
|
|
231
255
|
timeArr.push(Date.now());
|
|
232
|
-
const keyQuery = query
|
|
256
|
+
const keyQuery = query?.key && (loadTable?.key || tokenData?.key) && !objectId
|
|
233
257
|
? `${loadTable?.key || tokenData?.key}=$1`
|
|
234
258
|
: null;
|
|
235
259
|
const limit = (called
|
|
236
|
-
? query
|
|
237
|
-
: Math.min(maxLimit, +(query
|
|
238
|
-
const offset = query
|
|
239
|
-
? ` offset ${(query
|
|
260
|
+
? query?.limit || defaultLimit
|
|
261
|
+
: Math.min(maxLimit, +(query?.limit || defaultLimit))) || defaultLimit;
|
|
262
|
+
const offset = query?.page && query?.page > 0 && !objectId
|
|
263
|
+
? ` offset ${(query?.page - 1) * limit}`
|
|
240
264
|
: "";
|
|
241
|
-
const order = getOrder(query
|
|
265
|
+
const order = getOrder(query?.order, query?.desc, loadTable?.order, columnList, !!called);
|
|
242
266
|
if (config.trace)
|
|
243
267
|
console.log(order);
|
|
244
|
-
const search = loadTable?.meta?.search && query
|
|
268
|
+
const search = loadTable?.meta?.search && query?.search
|
|
245
269
|
? `(${loadTable?.meta?.search
|
|
246
270
|
?.split(",")
|
|
247
|
-
?.map((el) => `${el} ilike '%${query
|
|
271
|
+
?.map((el) => `${el} ilike '%${query?.search
|
|
248
272
|
.replace(/%/g, "\\%")
|
|
249
273
|
.replace(/'/g, "''")}%'`)
|
|
250
274
|
.join(" or ")})`
|
|
251
275
|
: null;
|
|
252
276
|
const queryBbox = query?.bbox
|
|
253
|
-
? query
|
|
277
|
+
? query?.bbox
|
|
254
278
|
.replace(/ /g, ",")
|
|
255
279
|
.split(",")
|
|
256
280
|
?.map((el) => el - 0)
|
|
@@ -289,7 +313,7 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
289
313
|
.filter(Boolean)
|
|
290
314
|
.filter((el) => checkQuery(el));
|
|
291
315
|
const q = `select ${pk ? `"${pk}" as id,` : ""}
|
|
292
|
-
${objectId || query
|
|
316
|
+
${objectId || query?.key
|
|
293
317
|
? "*"
|
|
294
318
|
: columnsParam || sqlColumns || cols || "*"}
|
|
295
319
|
${metaCols}
|
|
@@ -309,12 +333,12 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
309
333
|
${order} ${offset} limit ${limit}`.replace(/{{uid}}/g, uid);
|
|
310
334
|
if (config.trace)
|
|
311
335
|
console.log(q);
|
|
312
|
-
if (query
|
|
336
|
+
if (query?.sql === "1") {
|
|
313
337
|
return q;
|
|
314
338
|
}
|
|
315
339
|
const { rows = [] } = await pg
|
|
316
340
|
.query(q, (objectId ? [objectId] : null) ||
|
|
317
|
-
(query
|
|
341
|
+
(query?.key && loadTable.key ? [query?.key] : []))
|
|
318
342
|
.catch((err) => {
|
|
319
343
|
console.error(err.toString());
|
|
320
344
|
throw err;
|
|
@@ -322,7 +346,9 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
322
346
|
if (!rows.length &&
|
|
323
347
|
headers?.referer?.includes?.("/card/") &&
|
|
324
348
|
headers?.referer?.includes?.(templateName)) {
|
|
325
|
-
return reply
|
|
349
|
+
return reply
|
|
350
|
+
.status(403)
|
|
351
|
+
.send({ error: "access restricted: empty rows", code: 403 });
|
|
326
352
|
}
|
|
327
353
|
timeArr.push(Date.now());
|
|
328
354
|
if (uid &&
|
|
@@ -385,7 +411,7 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
385
411
|
.filter(Boolean)
|
|
386
412
|
.filter((el) => checkQuery(el))
|
|
387
413
|
.join(" and ") || "true"} `.replace(/{{uid}}/g, uid);
|
|
388
|
-
if (query
|
|
414
|
+
if (query?.sql === "2") {
|
|
389
415
|
return qCount;
|
|
390
416
|
}
|
|
391
417
|
const counts = keyQuery || objectId
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../server/routes/util/controllers/config.ts"],"names":[],"mappings":"AAyBA,wBAA8B,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,gBAOpD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import config from "../../../../config.js";
|
|
2
|
+
function substringObject(data, substr) {
|
|
3
|
+
if (typeof data === "boolean")
|
|
4
|
+
return data;
|
|
5
|
+
if (!data)
|
|
6
|
+
return "null";
|
|
7
|
+
// array string
|
|
8
|
+
if (typeof data === "string")
|
|
9
|
+
return data.substring(0, substr);
|
|
10
|
+
// array object
|
|
11
|
+
return Object.keys(data).reduce((acc, curr) => {
|
|
12
|
+
if (Array.isArray(data[curr])) {
|
|
13
|
+
return { [curr]: processObject(data[curr], substr) };
|
|
14
|
+
}
|
|
15
|
+
return { ...acc, [curr]: processObject(data[curr], substr) };
|
|
16
|
+
}, {});
|
|
17
|
+
}
|
|
18
|
+
function processObject(obj, substr) {
|
|
19
|
+
// root string
|
|
20
|
+
if (typeof obj === "string")
|
|
21
|
+
return obj.substring(0, substr);
|
|
22
|
+
// root array / object
|
|
23
|
+
return Array.isArray(obj)
|
|
24
|
+
? obj.map((el) => substringObject(el, substr))
|
|
25
|
+
: substringObject(obj, substr);
|
|
26
|
+
}
|
|
27
|
+
export default async function apiConfig({ user }) {
|
|
28
|
+
if (config.local || (config.debug && user?.user_type?.includes?.("admin"))) {
|
|
29
|
+
return config;
|
|
30
|
+
}
|
|
31
|
+
const reductConfig = processObject(config, 3);
|
|
32
|
+
return reductConfig;
|
|
33
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import apiConfig from "./controllers/config.js";
|
|
2
2
|
import nextId from "./controllers/next.id.js";
|
|
3
3
|
import statusMonitor from "./controllers/status.monitor.js";
|
|
4
4
|
import userTokens from "./controllers/user.tokens.js";
|
|
@@ -12,6 +12,6 @@ function plugin(app, opt = {}) {
|
|
|
12
12
|
...(req.headers || {}),
|
|
13
13
|
sessionId: req.session?.sessionId,
|
|
14
14
|
}));
|
|
15
|
-
app.get("/config", { config: { role: "admin" } },
|
|
15
|
+
app.get("/config", { config: { policy: "L0" /*role: "admin"*/ } }, apiConfig);
|
|
16
16
|
}
|
|
17
17
|
export default plugin;
|
|
@@ -4,6 +4,13 @@ import { Pool } from "pg";
|
|
|
4
4
|
declare let Database: any;
|
|
5
5
|
export interface ExtendedPG extends Pool {
|
|
6
6
|
readonly?: any;
|
|
7
|
+
connect: any;
|
|
8
|
+
query: any;
|
|
9
|
+
database: string;
|
|
10
|
+
host: string;
|
|
11
|
+
user: string;
|
|
12
|
+
password: string;
|
|
13
|
+
port: number;
|
|
7
14
|
init?: () => void;
|
|
8
15
|
connectionAttempt: number;
|
|
9
16
|
pk?: Record<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../server/types/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAM1B,QAAA,IAAI,QAAQ,EAAE,GAAG,CAAC;AAUlB,MAAM,WAAW,UAAW,SAAQ,IAAI;IACtC,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;CACjE;AAYD,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IAC3D,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,YAAY,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG;QAC7C,MAAM,EAAE,0BAA0B,CAAC;KACpC,CAAC;CACH;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY,CAAC,OAAO,QAAQ,CAAC;IACnE,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,0BAA2B,SAAQ,oBAAoB;IACtE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../server/types/core.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -80,6 +80,7 @@ export { default as getAdminAccess } from "./server/plugins/access/funcs/getAdmi
|
|
|
80
80
|
export { default as sendNotification } from "./server/plugins/auth/funcs/sendNotification.js";
|
|
81
81
|
export { default as addUserNotification } from "./server/plugins/notifications/addNotification.js";
|
|
82
82
|
export { addUserCls, editUserCls, deleteUserCls, getUserCls, } from "./server/plugins/usercls/index.js";
|
|
83
|
+
export { default as s3Client } from "./server/plugins/file/providers/s3/client.js";
|
|
83
84
|
declare const _default: null;
|
|
84
85
|
export default _default;
|
|
85
86
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGvE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAGhF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAGvF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAGnF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kDAAkD,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAGjF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qDAAqD,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAGtF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AAGhF,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAG5E,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAG5E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAGzE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAEpF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAEtF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iDAAiD,CAAC;AAExF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAE7E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAE5E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAG5F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAGhG,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qDAAqD,CAAC;AAE3F,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAE5F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AAE9F,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAEnG,OAAO,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,GACX,MAAM,mCAAmC,CAAC
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.js
CHANGED
|
@@ -97,4 +97,5 @@ export { default as getAdminAccess } from "./server/plugins/access/funcs/getAdmi
|
|
|
97
97
|
export { default as sendNotification } from "./server/plugins/auth/funcs/sendNotification.js"; // email
|
|
98
98
|
export { default as addUserNotification } from "./server/plugins/notifications/addNotification.js"; // popup, widget, interface etc.
|
|
99
99
|
export { addUserCls, editUserCls, deleteUserCls, getUserCls, } from "./server/plugins/usercls/index.js";
|
|
100
|
+
export { default as s3Client } from "./server/plugins/file/providers/s3/client.js";
|
|
100
101
|
export default null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengis/fastify-table",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.107",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "core-plugins",
|
|
6
6
|
"keywords": [
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
"scripts": {
|
|
24
24
|
"prepublishOnly": "npm run build",
|
|
25
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 && copyfiles server/templates/**/*.hbs dist",
|
|
26
|
+
"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",
|
|
27
27
|
"prod": "NODE_ENV=production bun dist/server",
|
|
28
28
|
"migrate": "MIGRATE=true bun script/migrate",
|
|
29
29
|
"patch": "npm version patch && git push && npm publish",
|
|
30
30
|
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
|
31
|
-
"test": "
|
|
31
|
+
"test": "npx vitest run",
|
|
32
32
|
"compress": "node compress.js",
|
|
33
33
|
"dev1": "bun --hot dist/server",
|
|
34
34
|
"dev": "NODE_ENV=production bun start",
|