@opengis/fastify-table 2.5.22 → 2.5.23
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/pg/funcs/autoIndex.d.ts.map +1 -1
- package/dist/server/plugins/pg/funcs/autoIndex.js +8 -3
- package/dist/server/plugins/table/funcs/getFilterSQL/index.js +1 -1
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/formatValue.d.ts +2 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/formatValue.d.ts.map +1 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/formatValue.js +211 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getFilterList.d.ts +8 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getFilterList.d.ts.map +1 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getFilterList.js +90 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getFilterQuery.d.ts +17 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getFilterQuery.d.ts.map +1 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getFilterQuery.js +90 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getRangeQuery.d.ts +17 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getRangeQuery.d.ts.map +1 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getRangeQuery.js +340 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getTableSql.d.ts +9 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getTableSql.d.ts.map +1 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getTableSql.js +40 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/index.d.ts +19 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/index.d.ts.map +1 -0
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/index.js +156 -0
- package/dist/server/routes/table/functions/getData.d.ts.map +1 -1
- package/dist/server/routes/table/functions/getData.js +35 -29
- package/dist/server/routes/table/functions/prettify.d.ts +2 -0
- package/dist/server/routes/table/functions/prettify.d.ts.map +1 -0
- package/dist/server/routes/table/functions/prettify.js +11 -0
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -0
- package/package.json +1 -1
- package/dist/server/plugins/policy/funcs/checkSQL.d.ts +0 -8
- package/dist/server/plugins/policy/funcs/checkSQL.d.ts.map +0 -1
- package/dist/server/plugins/policy/funcs/checkSQL.js +0 -19
- package/dist/server/plugins/policy/sqlInjection.d.ts +0 -3
- package/dist/server/plugins/policy/sqlInjection.d.ts.map +0 -1
- package/dist/server/plugins/policy/sqlInjection.js +0 -33
- package/dist/server/plugins/table/funcs/getData.d.ts +0 -2
- package/dist/server/plugins/table/funcs/getData.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getData.js +0 -25
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import config from "../../../../config.js";
|
|
2
2
|
import { handlebars, handlebarsSync } from "../../../helpers/index.js";
|
|
3
|
-
import
|
|
3
|
+
import getFilterSQLParametrized from "../../../plugins/table/funcs/getFilterSQLParametrized/index.js";
|
|
4
4
|
import getAccess from "../../../plugins/crud/funcs/getAccess.js";
|
|
5
5
|
import setToken from "../../../plugins/crud/funcs/setToken.js";
|
|
6
6
|
import getToken from "../../../plugins/crud/funcs/getToken.js";
|
|
@@ -20,6 +20,7 @@ import locales from "../controllers/utils/locales.js";
|
|
|
20
20
|
import conditions from "../controllers/utils/conditions.js";
|
|
21
21
|
import { resources } from "../../../plugins/access/funcs/getResources.js";
|
|
22
22
|
import { BadRequestError, ForbiddenError, NotFoundError, UnauthorizedError, } from "../../../../errors.js";
|
|
23
|
+
import prettify from "./prettify.js";
|
|
23
24
|
const components = {
|
|
24
25
|
"vs-widget-file": "select 'vs-widget-file' as component, count(*) from crm.files where entity_id=$1 and file_status<>3",
|
|
25
26
|
"vs-widget-comments": "select 'vs-widget-comments' as component, count(*) from crm.communications where entity_id=$1",
|
|
@@ -121,7 +122,7 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
121
122
|
else if (checkInline[paramsTable]) {
|
|
122
123
|
loadTable.sql = checkInline[paramsTable];
|
|
123
124
|
}
|
|
124
|
-
if (query?.sql ===
|
|
125
|
+
if (query?.sql === 0 && process.platform === "win32")
|
|
125
126
|
return loadTable;
|
|
126
127
|
if (!pg) {
|
|
127
128
|
throw Error("empty pg");
|
|
@@ -257,7 +258,7 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
257
258
|
isdefault,
|
|
258
259
|
].filter(Boolean).length;
|
|
259
260
|
const fData = checkFilter
|
|
260
|
-
? await
|
|
261
|
+
? await getFilterSQLParametrized({
|
|
261
262
|
pg,
|
|
262
263
|
table: loadTable
|
|
263
264
|
? tokenData?.table || resources[paramsTable] || paramsTable
|
|
@@ -273,42 +274,47 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
273
274
|
})
|
|
274
275
|
: {};
|
|
275
276
|
timeArr.push(Date.now());
|
|
277
|
+
const args = Array.from(fData.args || []);
|
|
278
|
+
if (objectId) {
|
|
279
|
+
args.push(objectId);
|
|
280
|
+
Object.assign(idx, { id: args.length });
|
|
281
|
+
}
|
|
282
|
+
else if (query?.key && loadTable.key) {
|
|
283
|
+
args.push(query.key);
|
|
284
|
+
Object.assign(idx, { id: args.length });
|
|
285
|
+
}
|
|
276
286
|
const keyQuery = query?.key && (loadTable?.key || tokenData?.key) && !objectId
|
|
277
|
-
? `${loadTable?.key || tokenData?.key}
|
|
287
|
+
? `${loadTable?.key || tokenData?.key}=$${args.length}`
|
|
278
288
|
: null;
|
|
279
|
-
const args = (objectId ? [objectId] : null) ||
|
|
280
|
-
(query?.key && loadTable.key ? [query.key] : []);
|
|
281
|
-
if (args[0]) {
|
|
282
|
-
Object.assign(idx, { id: 1 });
|
|
283
|
-
}
|
|
284
|
-
const isSingle = !!idx.id;
|
|
285
289
|
const limit = (called
|
|
286
290
|
? query?.limit || defaultLimit
|
|
287
291
|
: Math.min(maxLimit, +(query?.limit || defaultLimit))) || defaultLimit;
|
|
288
292
|
args.push(limit);
|
|
289
|
-
Object.assign(idx, { limit:
|
|
293
|
+
Object.assign(idx, { limit: args.length });
|
|
290
294
|
const offset = query?.page && query?.page > 0 && !objectId ? (query?.page - 1) * limit : 0;
|
|
291
295
|
args.push(offset);
|
|
292
|
-
Object.assign(idx, { offset:
|
|
296
|
+
Object.assign(idx, { offset: args.length });
|
|
293
297
|
const order = getOrder(query?.order, query?.desc, loadTable?.order, columnList, loadTable?.sqlColumns, !!called);
|
|
294
|
-
const isSearchable =
|
|
295
|
-
loadTable.meta.search
|
|
298
|
+
const isSearchable = loadTable?.meta?.search &&
|
|
299
|
+
typeof loadTable.meta.search === "string" &&
|
|
296
300
|
query?.search &&
|
|
297
|
-
!
|
|
301
|
+
!idx.id;
|
|
298
302
|
if (isSearchable) {
|
|
299
303
|
args.push(`%${query.search.replace(/%/g, "\\%")}%`);
|
|
300
|
-
Object.assign(idx, { search:
|
|
304
|
+
Object.assign(idx, { search: args.length });
|
|
301
305
|
}
|
|
302
306
|
if (meta?.bbox && query?.polyline) {
|
|
303
307
|
args.push(query.polyline);
|
|
304
|
-
Object.assign(idx, {
|
|
308
|
+
Object.assign(idx, {
|
|
309
|
+
polyline: args.length,
|
|
310
|
+
});
|
|
305
311
|
}
|
|
306
312
|
if (config.trace)
|
|
307
313
|
console.log(order);
|
|
308
314
|
const search = isSearchable
|
|
309
|
-
? `(${loadTable
|
|
310
|
-
|
|
311
|
-
|
|
315
|
+
? `(${loadTable.meta.search
|
|
316
|
+
.split(",")
|
|
317
|
+
.map((el) => `${el} ilike $${idx.search}`)
|
|
312
318
|
.join(" or ")})`
|
|
313
319
|
: null;
|
|
314
320
|
const queryBbox = query?.bbox
|
|
@@ -368,13 +374,13 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
368
374
|
${order} limit $${idx.limit}::bigint offset $${idx.offset}::bigint`;
|
|
369
375
|
if (q1.includes("{{uid}}")) {
|
|
370
376
|
args.push(uid || "");
|
|
371
|
-
Object.assign(idx, { uid:
|
|
377
|
+
Object.assign(idx, { uid: args.length });
|
|
372
378
|
}
|
|
373
379
|
const q = q1.replace(/'{{uid}}'/g, `$${idx.uid}`);
|
|
374
380
|
if (config.trace)
|
|
375
381
|
console.log(q);
|
|
376
|
-
if (query?.sql ===
|
|
377
|
-
return q;
|
|
382
|
+
if (query?.sql === 1 && process.platform === "win32") {
|
|
383
|
+
return prettify(q, args);
|
|
378
384
|
}
|
|
379
385
|
const rows = await pg.query(q, args).then((r) => r.rows || []);
|
|
380
386
|
if (!rows.length &&
|
|
@@ -409,18 +415,18 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
409
415
|
});
|
|
410
416
|
}
|
|
411
417
|
const idx1 = {};
|
|
412
|
-
const args1 = [];
|
|
418
|
+
const args1 = Array.from(fData.args || []);
|
|
413
419
|
if (idx.search) {
|
|
414
420
|
args1.push(args[idx.search - 1]);
|
|
415
|
-
Object.assign(idx1, { search:
|
|
421
|
+
Object.assign(idx1, { search: args1.length });
|
|
416
422
|
}
|
|
417
423
|
if (idx.uid) {
|
|
418
424
|
args1.push(args[idx.uid - 1]);
|
|
419
|
-
Object.assign(idx1, { uid:
|
|
425
|
+
Object.assign(idx1, { uid: args1.length });
|
|
420
426
|
}
|
|
421
427
|
if (idx.polyline) {
|
|
422
428
|
args1.push(args[idx.polyline - 1]);
|
|
423
|
-
Object.assign(idx1, { polyline:
|
|
429
|
+
Object.assign(idx1, { polyline: args1.length });
|
|
424
430
|
}
|
|
425
431
|
const search1 = idx.search
|
|
426
432
|
? `(${loadTable.meta.search
|
|
@@ -464,8 +470,8 @@ export default async function dataAPI({ pg = pgClients.client, params, table, id
|
|
|
464
470
|
where ${[loadTable?.query, tokenData?.query, accessQuery, contextQuery]
|
|
465
471
|
.filter(Boolean)
|
|
466
472
|
.join(" and ") || "true"} `.replace(/'{{uid}}'/g, `$${idx1.uid}`);
|
|
467
|
-
if (query?.sql ===
|
|
468
|
-
return qCount;
|
|
473
|
+
if (query?.sql === 2 && process.platform === "win32") {
|
|
474
|
+
return prettify(qCount, args1);
|
|
469
475
|
}
|
|
470
476
|
const counts = keyQuery || objectId
|
|
471
477
|
? { total: rows.length, filtered: rows.length }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prettify.d.ts","sourceRoot":"","sources":["../../../../../server/routes/table/functions/prettify.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,UAetD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default function prettify(q, args) {
|
|
2
|
+
if (!q)
|
|
3
|
+
throw new Error("query is empty");
|
|
4
|
+
if (!args?.length)
|
|
5
|
+
return q;
|
|
6
|
+
return q.replace(/\$(\d+)/g, (_, ind) => `${Array.isArray(args[ind - 1])
|
|
7
|
+
? `'{${args[ind - 1]}}'`
|
|
8
|
+
: ["number", "boolean"].includes(typeof args[ind - 1])
|
|
9
|
+
? args[ind - 1]
|
|
10
|
+
: `'${args[ind - 1]}'`}`);
|
|
11
|
+
}
|
package/dist/utils.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export { default as metaFormat } from "./server/plugins/table/funcs/metaFormat/i
|
|
|
26
26
|
export { default as autoIndex } from "./server/plugins/pg/funcs/autoIndex.js";
|
|
27
27
|
export { default as getSelectVal } from "./server/plugins/table/funcs/metaFormat/getSelectVal.js";
|
|
28
28
|
export { default as getFilterSQL } from "./server/plugins/table/funcs/getFilterSQL/index.js";
|
|
29
|
+
export { default as getFilterSQLParametrized } from "./server/plugins/table/funcs/getFilterSQLParametrized/index.js";
|
|
29
30
|
export { default as getSelect } from "./server/plugins/table/funcs/getSelect.js";
|
|
30
31
|
export { default as getSelectMeta } from "./server/plugins/table/funcs/getSelectMeta.js";
|
|
31
32
|
export { default as gisIRColumn } from "./server/plugins/table/funcs/gisIRColumn.js";
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.js
CHANGED
|
@@ -34,6 +34,7 @@ export { default as metaFormat } from "./server/plugins/table/funcs/metaFormat/i
|
|
|
34
34
|
export { default as autoIndex } from "./server/plugins/pg/funcs/autoIndex.js";
|
|
35
35
|
export { default as getSelectVal } from "./server/plugins/table/funcs/metaFormat/getSelectVal.js";
|
|
36
36
|
export { default as getFilterSQL } from "./server/plugins/table/funcs/getFilterSQL/index.js";
|
|
37
|
+
export { default as getFilterSQLParametrized } from "./server/plugins/table/funcs/getFilterSQLParametrized/index.js";
|
|
37
38
|
export { default as getSelect } from "./server/plugins/table/funcs/getSelect.js";
|
|
38
39
|
export { default as getSelectMeta } from "./server/plugins/table/funcs/getSelectMeta.js";
|
|
39
40
|
export { default as gisIRColumn } from "./server/plugins/table/funcs/gisIRColumn.js";
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkSQL.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/policy/funcs/checkSQL.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAW,EAAE,EAAE,GAAG;;;;;;EA0B1D"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import sqlInjection from "../sqlInjection.js";
|
|
2
|
-
export default function checkSQL({ body, schema = {} }) {
|
|
3
|
-
const data = typeof body === "string" ? body : JSON.stringify(body);
|
|
4
|
-
const stopWords = sqlInjection.filter((el) => data?.toLowerCase?.()?.includes?.(el));
|
|
5
|
-
if (!stopWords.length)
|
|
6
|
-
return { body };
|
|
7
|
-
const disabledCheckFields = Object.keys(schema || {})?.filter((el) => schema?.[el]?.sqlCheck === false); // exclude specific columns
|
|
8
|
-
const field = Object.keys(body)?.find((key) => body[key]?.toLowerCase &&
|
|
9
|
-
!disabledCheckFields.includes(key) &&
|
|
10
|
-
body[key].toLowerCase().includes(stopWords[0]));
|
|
11
|
-
if (field) {
|
|
12
|
-
console.error(stopWords[0], field, body[field]);
|
|
13
|
-
return {
|
|
14
|
-
error: `rule: ${stopWords[0]} | attr: ${field} | val: ${body[field]}`,
|
|
15
|
-
body,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
return { body };
|
|
19
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlInjection.d.ts","sourceRoot":"","sources":["../../../../server/plugins/policy/sqlInjection.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,YAAY,UA8BjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-script-url */
|
|
2
|
-
const sqlInjection = [
|
|
3
|
-
'()',
|
|
4
|
-
'^',
|
|
5
|
-
'*',
|
|
6
|
-
'like ',
|
|
7
|
-
'@variable',
|
|
8
|
-
'@@variable',
|
|
9
|
-
'group by ',
|
|
10
|
-
'union ',
|
|
11
|
-
'select ',
|
|
12
|
-
'having ',
|
|
13
|
-
'as injectx',
|
|
14
|
-
'where ',
|
|
15
|
-
'rlike ',
|
|
16
|
-
'if(',
|
|
17
|
-
'sleep(',
|
|
18
|
-
'waitfor delay',
|
|
19
|
-
'benchmark(',
|
|
20
|
-
'pg_sleep(',
|
|
21
|
-
"'\\\"",
|
|
22
|
-
'randomblob(',
|
|
23
|
-
'order by ',
|
|
24
|
-
'union all ',
|
|
25
|
-
'+or',
|
|
26
|
-
'or ',
|
|
27
|
-
'and ',
|
|
28
|
-
"'' ",
|
|
29
|
-
'""" ',
|
|
30
|
-
'<script',
|
|
31
|
-
'javascript:',
|
|
32
|
-
];
|
|
33
|
-
export default sqlInjection;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getData.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/table/funcs/getData.ts"],"names":[],"mappings":"AAEA,wBAA8B,OAAO,CACnC,EACE,EAAE,EACF,KAAK,EACL,EAAE,EACF,OAAO,EACP,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,GAAG,EACH,YAAY,EACZ,KAAK,EACL,UAAU,GACX,EAAE,GAAG,EACN,KAAK,EAAE,GAAG,EACV,MAAM,CAAC,EAAE,GAAG,gBA4Bb"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import routeData from "../../../routes/table/controllers/tableData.js";
|
|
2
|
-
export default async function getData({ id, table, pg, headers, filter, state, limit, page, search, user, order, desc, sql, contextQuery, sufix, filterList, }, reply, called) {
|
|
3
|
-
const params = { table, id };
|
|
4
|
-
const query = {
|
|
5
|
-
filter,
|
|
6
|
-
limit,
|
|
7
|
-
page,
|
|
8
|
-
search,
|
|
9
|
-
sql,
|
|
10
|
-
state,
|
|
11
|
-
order,
|
|
12
|
-
desc,
|
|
13
|
-
};
|
|
14
|
-
const result = await routeData({
|
|
15
|
-
pg,
|
|
16
|
-
headers,
|
|
17
|
-
params,
|
|
18
|
-
query,
|
|
19
|
-
user,
|
|
20
|
-
contextQuery,
|
|
21
|
-
sufix,
|
|
22
|
-
filterList,
|
|
23
|
-
}, reply, called);
|
|
24
|
-
return result;
|
|
25
|
-
}
|