@opengis/fastify-table 2.3.5 → 2.4.0
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/errors.d.ts +38 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -9
- package/dist/server/plugins/access/funcs/getAdminAccess.d.ts +1 -4
- package/dist/server/plugins/access/funcs/getAdminAccess.d.ts.map +1 -1
- package/dist/server/plugins/access/funcs/getAdminAccess.js +3 -2
- package/dist/server/plugins/auth/funcs/getQuery.d.ts.map +1 -1
- package/dist/server/plugins/auth/funcs/getQuery.js +2 -1
- package/dist/server/plugins/auth/funcs/loginFile.d.ts +1 -4
- package/dist/server/plugins/auth/funcs/loginFile.d.ts.map +1 -1
- package/dist/server/plugins/auth/funcs/loginFile.js +10 -5
- package/dist/server/plugins/auth/funcs/loginUser.d.ts.map +1 -1
- package/dist/server/plugins/auth/funcs/loginUser.js +25 -18
- package/dist/server/plugins/auth/index.d.ts.map +1 -1
- package/dist/server/plugins/auth/index.js +3 -4
- package/dist/server/plugins/crud/funcs/dataInsert.js +1 -1
- package/dist/server/plugins/extra/extraData.d.ts.map +1 -1
- package/dist/server/plugins/extra/extraData.js +3 -2
- package/dist/server/plugins/extra/extraDataGet.d.ts +1 -4
- package/dist/server/plugins/extra/extraDataGet.d.ts.map +1 -1
- package/dist/server/plugins/extra/extraDataGet.js +4 -6
- package/dist/server/plugins/file/uploadMultiPart.js +1 -1
- package/dist/server/plugins/grpc/utils/html2doc.d.ts +0 -6
- package/dist/server/plugins/grpc/utils/html2doc.d.ts.map +1 -1
- package/dist/server/plugins/grpc/utils/html2doc.js +3 -8
- package/dist/server/plugins/grpc/utils/html2img.d.ts +0 -6
- package/dist/server/plugins/grpc/utils/html2img.d.ts.map +1 -1
- package/dist/server/plugins/grpc/utils/html2img.js +3 -8
- package/dist/server/plugins/grpc/utils/html2pdf.d.ts +0 -6
- package/dist/server/plugins/grpc/utils/html2pdf.d.ts.map +1 -1
- package/dist/server/plugins/grpc/utils/html2pdf.js +7 -12
- package/dist/server/plugins/grpc/utils/mergePdf.d.ts +0 -7
- package/dist/server/plugins/grpc/utils/mergePdf.d.ts.map +1 -1
- package/dist/server/plugins/grpc/utils/mergePdf.js +4 -9
- package/dist/server/plugins/logger/checkUserAccess.d.ts +1 -4
- package/dist/server/plugins/logger/checkUserAccess.d.ts.map +1 -1
- package/dist/server/plugins/logger/checkUserAccess.js +4 -6
- package/dist/server/plugins/logger/errorMessage.d.ts +1 -1
- package/dist/server/plugins/logger/errorMessage.d.ts.map +1 -1
- package/dist/server/plugins/logger/errorMessage.js +7 -8
- package/dist/server/plugins/logger/errorStatus.d.ts.map +1 -1
- package/dist/server/plugins/logger/errorStatus.js +6 -0
- package/dist/server/plugins/logger/index.d.ts +2 -2
- package/dist/server/plugins/logger/index.d.ts.map +1 -1
- package/dist/server/plugins/logger/index.js +16 -18
- package/dist/server/plugins/pg/funcs/getMeta.d.ts.map +1 -1
- package/dist/server/plugins/pg/funcs/getMeta.js +5 -3
- package/dist/server/plugins/policy/funcs/checkJWT.d.ts +0 -9
- package/dist/server/plugins/policy/funcs/checkJWT.d.ts.map +1 -1
- package/dist/server/plugins/policy/funcs/checkJWT.js +6 -5
- package/dist/server/plugins/policy/funcs/checkPermissions.d.ts +1 -4
- package/dist/server/plugins/policy/funcs/checkPermissions.d.ts.map +1 -1
- package/dist/server/plugins/policy/funcs/checkPermissions.js +2 -1
- package/dist/server/plugins/policy/funcs/checkPolicy.d.ts +1 -4
- package/dist/server/plugins/policy/funcs/checkPolicy.d.ts.map +1 -1
- package/dist/server/plugins/policy/funcs/checkPolicy.js +8 -7
- package/dist/server/plugins/policy/index.d.ts.map +1 -1
- package/dist/server/plugins/policy/index.js +2 -11
- package/dist/server/plugins/table/funcs/getFilterSQL/index.d.ts +1 -15
- package/dist/server/plugins/table/funcs/getFilterSQL/index.d.ts.map +1 -1
- package/dist/server/plugins/table/funcs/getFilterSQL/index.js +6 -4
- package/dist/server/plugins/table/funcs/gisIRColumn.d.ts +0 -22
- package/dist/server/plugins/table/funcs/gisIRColumn.d.ts.map +1 -1
- package/dist/server/plugins/table/funcs/gisIRColumn.js +5 -3
- package/dist/server/plugins/upload/index.d.ts.map +1 -1
- package/dist/server/plugins/upload/index.js +7 -0
- package/dist/server/plugins/upload/s3.d.ts +7 -1
- package/dist/server/plugins/upload/s3.d.ts.map +1 -1
- package/dist/server/plugins/upload/s3.js +54 -10
- package/dist/server/plugins/upload/s3minio.d.ts +59 -0
- package/dist/server/plugins/upload/s3minio.d.ts.map +1 -0
- package/dist/server/plugins/upload/s3minio.js +199 -0
- package/dist/server/plugins/upload/startUpload.d.ts.map +1 -1
- package/dist/server/plugins/upload/startUpload.js +16 -8
- package/dist/server/plugins/upload/uploadChunk.d.ts.map +1 -1
- package/dist/server/plugins/upload/uploadChunk.js +14 -9
- package/dist/server/plugins/usercls/index.js +1 -1
- package/dist/server/routes/access/controllers/access.group.d.ts.map +1 -1
- package/dist/server/routes/access/controllers/access.group.js +3 -5
- package/dist/server/routes/access/controllers/access.group.post.d.ts.map +1 -1
- package/dist/server/routes/access/controllers/access.group.post.js +3 -5
- package/dist/server/routes/access/controllers/access.interface.d.ts.map +1 -1
- package/dist/server/routes/access/controllers/access.interface.js +1 -4
- package/dist/server/routes/access/controllers/access.user.d.ts +5 -1
- package/dist/server/routes/access/controllers/access.user.d.ts.map +1 -1
- package/dist/server/routes/access/controllers/access.user.js +4 -5
- package/dist/server/routes/access/controllers/access.user.post.d.ts.map +1 -1
- package/dist/server/routes/access/controllers/access.user.post.js +4 -5
- package/dist/server/routes/access/index.d.ts.map +1 -1
- package/dist/server/routes/access/index.js +10 -6
- package/dist/server/routes/auth/controllers/2factor/providers/totp.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/2factor/providers/totp.js +4 -3
- package/dist/server/routes/auth/controllers/2factor/qrcode.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/2factor/qrcode.js +6 -10
- package/dist/server/routes/auth/controllers/2factor/recovery.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/2factor/recovery.js +14 -23
- package/dist/server/routes/auth/controllers/2factor/reset.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/2factor/reset.js +3 -5
- package/dist/server/routes/auth/controllers/2factor/verify.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/2factor/verify.js +30 -43
- package/dist/server/routes/auth/controllers/core/login.d.ts +1 -4
- package/dist/server/routes/auth/controllers/core/login.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/core/passwordRecovery.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/core/passwordRecovery.js +7 -8
- 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 +10 -24
- package/dist/server/routes/auth/controllers/core/updateUserInfo.d.ts +1 -2
- package/dist/server/routes/auth/controllers/core/updateUserInfo.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/core/updateUserInfo.js +3 -2
- package/dist/server/routes/auth/controllers/euSign/authByData.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/euSign/authByData.js +4 -7
- package/dist/server/routes/auth/controllers/jwt/authorize.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/jwt/authorize.js +6 -9
- package/dist/server/routes/auth/controllers/jwt/token.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/jwt/token.js +9 -12
- package/dist/server/routes/auth/controllers/page/login2faTemplate.d.ts.map +1 -1
- package/dist/server/routes/auth/controllers/page/login2faTemplate.js +3 -2
- package/dist/server/routes/auth/index.d.ts +1 -2
- package/dist/server/routes/auth/index.d.ts.map +1 -1
- package/dist/server/routes/auth/index.js +4 -3
- package/dist/server/routes/cron/controllers/cronApi.d.ts.map +1 -1
- package/dist/server/routes/cron/controllers/cronApi.js +3 -4
- package/dist/server/routes/cron/index.js +1 -1
- package/dist/server/routes/crud/controllers/deleteCrud.d.ts.map +1 -1
- package/dist/server/routes/crud/controllers/deleteCrud.js +11 -33
- package/dist/server/routes/crud/controllers/insert.d.ts +1 -1
- package/dist/server/routes/crud/controllers/insert.d.ts.map +1 -1
- package/dist/server/routes/crud/controllers/insert.js +17 -31
- package/dist/server/routes/crud/controllers/table.d.ts.map +1 -1
- package/dist/server/routes/crud/controllers/table.js +14 -18
- package/dist/server/routes/crud/controllers/update.d.ts.map +1 -1
- package/dist/server/routes/crud/controllers/update.js +16 -28
- package/dist/server/routes/crud/index.d.ts.map +1 -1
- package/dist/server/routes/crud/index.js +14 -4
- package/dist/server/routes/dblist/controllers/setItem.d.ts +0 -6
- package/dist/server/routes/dblist/controllers/setItem.d.ts.map +1 -1
- package/dist/server/routes/dblist/controllers/setItem.js +3 -2
- package/dist/server/routes/dblist/index.d.ts.map +1 -1
- package/dist/server/routes/dblist/index.js +5 -3
- package/dist/server/routes/file/controllers/delete.d.ts +4 -1
- package/dist/server/routes/file/controllers/delete.d.ts.map +1 -1
- package/dist/server/routes/file/controllers/delete.js +8 -8
- package/dist/server/routes/file/controllers/download.d.ts.map +1 -1
- package/dist/server/routes/file/controllers/download.js +5 -8
- package/dist/server/routes/file/controllers/export.d.ts.map +1 -1
- package/dist/server/routes/file/controllers/export.js +8 -8
- package/dist/server/routes/file/controllers/files.d.ts.map +1 -1
- package/dist/server/routes/file/controllers/files.js +6 -8
- package/dist/server/routes/file/controllers/resize.d.ts.map +1 -1
- package/dist/server/routes/file/controllers/resize.js +4 -12
- package/dist/server/routes/file/index.d.ts.map +1 -1
- package/dist/server/routes/file/index.js +10 -7
- package/dist/server/routes/grpc/controllers/file2geojson.d.ts.map +1 -1
- package/dist/server/routes/grpc/controllers/file2geojson.js +7 -7
- package/dist/server/routes/grpc/controllers/filePreview.d.ts.map +1 -1
- package/dist/server/routes/grpc/controllers/filePreview.js +5 -4
- package/dist/server/routes/grpc/index.d.ts.map +1 -1
- package/dist/server/routes/grpc/index.js +3 -2
- package/dist/server/routes/logger/controllers/logger.file.d.ts +1 -1
- package/dist/server/routes/logger/controllers/logger.file.d.ts.map +1 -1
- package/dist/server/routes/logger/controllers/logger.file.js +4 -5
- package/dist/server/routes/logger/controllers/logger.metrics.d.ts.map +1 -1
- package/dist/server/routes/logger/controllers/logger.metrics.js +1 -4
- package/dist/server/routes/logger/index.d.ts.map +1 -1
- package/dist/server/routes/logger/index.js +4 -2
- package/dist/server/routes/menu/controllers/getMenu.d.ts.map +1 -1
- package/dist/server/routes/menu/controllers/getMenu.js +2 -1
- package/dist/server/routes/menu/index.d.ts.map +1 -1
- package/dist/server/routes/menu/index.js +9 -2
- package/dist/server/routes/notifications/controllers/addUserNotification.d.ts +1 -2
- package/dist/server/routes/notifications/controllers/addUserNotification.d.ts.map +1 -1
- package/dist/server/routes/notifications/controllers/addUserNotification.js +5 -6
- package/dist/server/routes/notifications/controllers/deleteUserNotification.d.ts +1 -2
- package/dist/server/routes/notifications/controllers/deleteUserNotification.d.ts.map +1 -1
- package/dist/server/routes/notifications/controllers/deleteUserNotification.js +5 -6
- package/dist/server/routes/notifications/controllers/editUserNotification.d.ts +1 -2
- package/dist/server/routes/notifications/controllers/editUserNotification.d.ts.map +1 -1
- package/dist/server/routes/notifications/controllers/editUserNotification.js +6 -9
- package/dist/server/routes/notifications/controllers/readNotifications.d.ts +4 -2
- package/dist/server/routes/notifications/controllers/readNotifications.d.ts.map +1 -1
- package/dist/server/routes/notifications/controllers/readNotifications.js +4 -3
- package/dist/server/routes/notifications/controllers/userNotifications.d.ts +5 -2
- package/dist/server/routes/notifications/controllers/userNotifications.d.ts.map +1 -1
- package/dist/server/routes/notifications/controllers/userNotifications.js +4 -5
- package/dist/server/routes/notifications/index.d.ts +1 -2
- package/dist/server/routes/notifications/index.d.ts.map +1 -1
- package/dist/server/routes/notifications/index.js +3 -1
- package/dist/server/routes/properties/controllers/properties.get.d.ts +5 -2
- package/dist/server/routes/properties/controllers/properties.get.d.ts.map +1 -1
- package/dist/server/routes/properties/controllers/properties.get.js +6 -5
- package/dist/server/routes/properties/controllers/properties.post.d.ts +1 -1
- package/dist/server/routes/properties/controllers/properties.post.d.ts.map +1 -1
- package/dist/server/routes/properties/controllers/properties.post.js +7 -6
- package/dist/server/routes/properties/index.d.ts.map +1 -1
- package/dist/server/routes/properties/index.js +4 -7
- 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 +9 -7
- package/dist/server/routes/table/controllers/cardData.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/cardData.js +4 -6
- package/dist/server/routes/table/controllers/cardTabData.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/cardTabData.js +3 -2
- package/dist/server/routes/table/controllers/dataInfo.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/dataInfo.js +4 -3
- package/dist/server/routes/table/controllers/filter.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/filter.js +3 -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 +7 -5
- package/dist/server/routes/table/controllers/getFormByTable.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/getFormByTable.js +12 -12
- 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 +14 -29
- package/dist/server/routes/table/controllers/tableInfo.d.ts +1 -2
- package/dist/server/routes/table/controllers/tableInfo.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/tableInfo.js +9 -8
- package/dist/server/routes/table/controllers/tokenInfo.d.ts.map +1 -1
- package/dist/server/routes/table/controllers/tokenInfo.js +2 -1
- package/dist/server/routes/table/functions/getData.d.ts.map +1 -1
- package/dist/server/routes/table/functions/getData.js +19 -25
- package/dist/server/routes/table/index.d.ts.map +1 -1
- package/dist/server/routes/table/index.js +15 -13
- package/dist/server/routes/templates/controllers/getTemplate.d.ts.map +1 -1
- package/dist/server/routes/templates/controllers/getTemplate.js +9 -5
- package/dist/server/routes/templates/index.d.ts.map +1 -1
- package/dist/server/routes/templates/index.js +2 -1
- package/dist/server/routes/upload/index.d.ts.map +1 -1
- package/dist/server/routes/upload/index.js +31 -20
- package/dist/server/routes/usercls/controllers/addUserCls.d.ts.map +1 -1
- package/dist/server/routes/usercls/controllers/addUserCls.js +2 -1
- package/dist/server/routes/usercls/controllers/deleteUserCls.d.ts.map +1 -1
- package/dist/server/routes/usercls/controllers/deleteUserCls.js +2 -1
- package/dist/server/routes/usercls/controllers/editUserCls.d.ts.map +1 -1
- package/dist/server/routes/usercls/controllers/editUserCls.js +2 -1
- package/dist/server/routes/usercls/controllers/getUserCls.d.ts +1 -1
- package/dist/server/routes/usercls/controllers/getUserCls.d.ts.map +1 -1
- package/dist/server/routes/usercls/controllers/getUserCls.js +4 -3
- package/dist/server/routes/usercls/index.d.ts.map +1 -1
- package/dist/server/routes/usercls/index.js +12 -5
- package/dist/server/routes/util/controllers/api.list.d.ts +19 -0
- package/dist/server/routes/util/controllers/api.list.d.ts.map +1 -0
- package/dist/server/routes/util/controllers/api.list.js +58 -0
- package/dist/server/routes/util/controllers/code.generator.d.ts.map +1 -1
- package/dist/server/routes/util/controllers/code.generator.js +7 -6
- package/dist/server/routes/util/controllers/user.tokens.d.ts +1 -2
- package/dist/server/routes/util/controllers/user.tokens.d.ts.map +1 -1
- package/dist/server/routes/util/controllers/user.tokens.js +6 -5
- package/dist/server/routes/util/index.d.ts.map +1 -1
- package/dist/server/routes/util/index.js +8 -7
- package/dist/server/routes/widget/controllers/file.edit.d.ts.map +1 -1
- package/dist/server/routes/widget/controllers/file.edit.js +5 -4
- package/dist/server/routes/widget/controllers/widget.del.d.ts.map +1 -1
- package/dist/server/routes/widget/controllers/widget.del.js +6 -7
- package/dist/server/routes/widget/controllers/widget.get.d.ts.map +1 -1
- package/dist/server/routes/widget/controllers/widget.get.js +4 -3
- package/dist/server/routes/widget/controllers/widget.set.d.ts.map +1 -1
- package/dist/server/routes/widget/controllers/widget.set.js +5 -4
- package/dist/server/routes/widget/index.d.ts.map +1 -1
- package/dist/server/routes/widget/index.js +3 -2
- package/package.json +3 -1
- package/dist/module/core/cls/constraint_type.json +0 -14
- package/dist/module/core/cls/constraint_type_table.json +0 -18
- package/dist/server/migrations/oauth.sql.sql +0 -77
- package/dist/server/plugins/auth/funcs/getUserPermissions.d.ts +0 -2
- package/dist/server/plugins/auth/funcs/getUserPermissions.d.ts.map +0 -1
- package/dist/server/plugins/auth/funcs/getUserPermissions.js +0 -24
- package/dist/server/plugins/auth/onRequest.d.ts +0 -4
- package/dist/server/plugins/auth/onRequest.d.ts.map +0 -1
- package/dist/server/plugins/auth/onRequest.js +0 -104
- package/dist/server/plugins/migration/index.d.ts +0 -3
- package/dist/server/plugins/migration/index.d.ts.map +0 -1
- package/dist/server/plugins/migration/index.js +0 -5
- package/dist/server/plugins/policy/funcs/checkAuth.d.ts +0 -4
- package/dist/server/plugins/policy/funcs/checkAuth.d.ts.map +0 -1
- package/dist/server/plugins/policy/funcs/checkAuth.js +0 -104
- package/dist/server/routes/access/controllers/access.resources.d.ts +0 -6
- package/dist/server/routes/access/controllers/access.resources.d.ts.map +0 -1
- package/dist/server/routes/access/controllers/access.resources.js +0 -14
- package/dist/server/routes/access/controllers/resources.d.ts +0 -11
- package/dist/server/routes/access/controllers/resources.d.ts.map +0 -1
- package/dist/server/routes/access/controllers/resources.js +0 -14
- package/dist/server/routes/access/functions/resources.d.ts +0 -6
- package/dist/server/routes/access/functions/resources.d.ts.map +0 -1
- package/dist/server/routes/access/functions/resources.js +0 -11
- package/dist/server/types/errors.d.ts +0 -14
- package/dist/server/types/errors.d.ts.map +0 -1
- package/dist/server/types/errors.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorMessage.d.ts","sourceRoot":"","sources":["../../../../server/plugins/logger/errorMessage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errorMessage.d.ts","sourceRoot":"","sources":["../../../../server/plugins/logger/errorMessage.ts"],"names":[],"mappings":"AAOA,iBAAS,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAuB/C;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
import config from "../../../config.js";
|
|
2
2
|
import applyHookSync from "../hook/applyHookSync.js";
|
|
3
|
-
import errorStatus from "./errorStatus.js";
|
|
4
3
|
const defaultMessage = {
|
|
5
4
|
602: "Порушення цілісності бази даних",
|
|
6
5
|
};
|
|
7
|
-
function errorMessage(error) {
|
|
6
|
+
function errorMessage(error, status) {
|
|
8
7
|
const hook = applyHookSync("errorMessage", error);
|
|
9
8
|
if (hook)
|
|
10
9
|
return hook;
|
|
10
|
+
if (error.validation) {
|
|
11
|
+
return error.message;
|
|
12
|
+
}
|
|
11
13
|
if (error.routine === "exec_stmt_raise" && error.file === "pl_exec.c") {
|
|
12
14
|
return error.message;
|
|
13
15
|
}
|
|
14
|
-
//
|
|
15
|
-
const status = errorStatus(error);
|
|
16
|
+
// message status
|
|
16
17
|
if (config.errorMessage?.[status])
|
|
17
18
|
return config.errorMessage[status.toString()];
|
|
18
|
-
if (defaultMessage[status])
|
|
19
|
+
if (defaultMessage[status]) {
|
|
19
20
|
return defaultMessage[status];
|
|
20
|
-
if (error.statusCode && error.statusCode !== 500 && error.message) {
|
|
21
|
-
return config.errorMessage?.[error.statusCode] || error.message;
|
|
22
21
|
}
|
|
23
22
|
return config.local
|
|
24
|
-
? error.toString()
|
|
23
|
+
? error.message || error.toString()
|
|
25
24
|
: config.errorMessage?.[500] || "ServerError";
|
|
26
25
|
}
|
|
27
26
|
export default errorMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorStatus.d.ts","sourceRoot":"","sources":["../../../../server/plugins/logger/errorStatus.ts"],"names":[],"mappings":"AAEA,iBAAS,WAAW,CAAC,KAAK,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"errorStatus.d.ts","sourceRoot":"","sources":["../../../../server/plugins/logger/errorStatus.ts"],"names":[],"mappings":"AAEA,iBAAS,WAAW,CAAC,KAAK,EAAE,GAAG,OAuB9B;AACD,eAAe,WAAW,CAAC"}
|
|
@@ -3,6 +3,9 @@ function errorStatus(error) {
|
|
|
3
3
|
const hook = applyHookSync("errorStatus", error);
|
|
4
4
|
if (hook)
|
|
5
5
|
return hook;
|
|
6
|
+
if (error.validation) {
|
|
7
|
+
return 422;
|
|
8
|
+
}
|
|
6
9
|
if (error.routine === "exec_stmt_raise" && error.file === "pl_exec.c") {
|
|
7
10
|
return 601;
|
|
8
11
|
}
|
|
@@ -12,6 +15,9 @@ function errorStatus(error) {
|
|
|
12
15
|
if (error.type === "DatabaseError") {
|
|
13
16
|
return 600;
|
|
14
17
|
}
|
|
18
|
+
if (error.statusCode) {
|
|
19
|
+
return error.statusCode;
|
|
20
|
+
}
|
|
15
21
|
return 500;
|
|
16
22
|
}
|
|
17
23
|
export default errorStatus;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { FastifyInstance } from "fastify";
|
|
2
|
-
declare function
|
|
3
|
-
export default
|
|
2
|
+
declare function loggerPlugin(fastify: FastifyInstance): void;
|
|
3
|
+
export default loggerPlugin;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/plugins/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/plugins/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAyD7E,iBAAS,YAAY,CAAC,OAAO,EAAE,eAAe,QA+B7C;AACD,eAAe,YAAY,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import errorMessage from "./errorMessage.js";
|
|
2
|
+
import errorStatus from "./errorStatus.js";
|
|
2
3
|
import logger from "./getLogger.js";
|
|
3
4
|
import pgClients from "../pg/pgClients.js";
|
|
4
5
|
// avoid process exit with exception on network changes: disconnect from db, internet altogether etc
|
|
@@ -33,43 +34,40 @@ process.on("unhandledRejection", (err) => {
|
|
|
33
34
|
console.warn("Ignored fastify reply sent exception:", err.toString());
|
|
34
35
|
return;
|
|
35
36
|
}
|
|
37
|
+
if (err.message === "sorry, too many clients already") {
|
|
38
|
+
logger.file("pg", { error: err.message, stack: err.stack });
|
|
39
|
+
console.warn("Ignored pg pool sent exception:", err.toString());
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
36
42
|
logger.file("unhandledRejection", {
|
|
37
43
|
error: err.toString(),
|
|
38
44
|
stack: err.stack,
|
|
39
45
|
});
|
|
40
46
|
throw err;
|
|
41
47
|
});
|
|
42
|
-
|
|
48
|
+
function loggerPlugin(fastify) {
|
|
43
49
|
fastify.addHook("onResponse", async (req, reply) => {
|
|
44
50
|
if (reply?.statusCode && reply.statusCode >= 400) {
|
|
45
51
|
logger.metrics(`error-count:${reply.statusCode}`);
|
|
46
52
|
}
|
|
47
53
|
});
|
|
48
54
|
fastify.setErrorHandler(async (error, request, reply) => {
|
|
49
|
-
|
|
50
|
-
if (error.validation) {
|
|
51
|
-
request.log.warn(request, {
|
|
52
|
-
code: error?.code,
|
|
53
|
-
status: 422,
|
|
54
|
-
error: error.toString(),
|
|
55
|
-
});
|
|
56
|
-
return reply.status(422).send({ error: error.toString(), code: 422 });
|
|
57
|
-
}
|
|
58
|
-
// logger
|
|
59
|
-
request.log.error(error, request);
|
|
55
|
+
logger.error(error, request);
|
|
60
56
|
console.error({
|
|
61
57
|
msg: error.message,
|
|
62
58
|
where: error.where,
|
|
63
59
|
stack: error.stack,
|
|
64
60
|
});
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
return reply
|
|
68
|
-
|
|
69
|
-
|
|
61
|
+
const statusCode = errorStatus(error) || 500;
|
|
62
|
+
const message = errorMessage(error, statusCode);
|
|
63
|
+
return reply.status(statusCode).send({
|
|
64
|
+
message,
|
|
65
|
+
error: error.code || "INTERNAL_SERVER_ERROR",
|
|
66
|
+
statusCode,
|
|
67
|
+
});
|
|
70
68
|
});
|
|
71
69
|
fastify.addHook("onListen", async () => {
|
|
72
70
|
logger.file("init", { db: pgClients.client?.options?.database });
|
|
73
71
|
});
|
|
74
72
|
}
|
|
75
|
-
export default
|
|
73
|
+
export default loggerPlugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMeta.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/pg/funcs/getMeta.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getMeta.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/pg/funcs/getMeta.ts"],"names":[],"mappings":"AAMA,wBAA8B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,gBAyE5D"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import init from "./init.js";
|
|
2
2
|
import getPG from "./getPG.js";
|
|
3
|
+
import { BadRequestError } from "../../../../errors.js";
|
|
3
4
|
const data = {};
|
|
4
5
|
export default async function getMeta(opt, nocache) {
|
|
5
6
|
const pg = opt?.pg || getPG({ name: "client" });
|
|
6
|
-
if (!pg)
|
|
7
|
-
|
|
7
|
+
if (!pg) {
|
|
8
|
+
throw BadRequestError("pg client not found");
|
|
9
|
+
}
|
|
8
10
|
// reconnect if at start of process connection was unavailable
|
|
9
11
|
if (!pg.pk || nocache) {
|
|
10
12
|
await init(pg);
|
|
@@ -15,7 +17,7 @@ export default async function getMeta(opt, nocache) {
|
|
|
15
17
|
return data[pg.options.database][table];
|
|
16
18
|
if (!pg?.tlist?.includes(table) &&
|
|
17
19
|
!pg?.tlist?.includes(table?.replace?.(/"/g, ""))) {
|
|
18
|
-
|
|
20
|
+
throw BadRequestError(`table not found: ${table}`);
|
|
19
21
|
}
|
|
20
22
|
const { fields = [] } = await pg.query(`select * from ${table} limit 0`);
|
|
21
23
|
const pks1 = await pg
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
import type { ExtendedRequest } from "../../../types/core.js";
|
|
2
2
|
export default function checkJWT(req: ExtendedRequest): Promise<{
|
|
3
|
-
error: string;
|
|
4
|
-
code: number;
|
|
5
|
-
token?: undefined;
|
|
6
|
-
valid?: undefined;
|
|
7
|
-
payload?: undefined;
|
|
8
|
-
redirectURIs?: undefined;
|
|
9
|
-
} | {
|
|
10
3
|
token: any;
|
|
11
4
|
valid: boolean;
|
|
12
5
|
payload: any;
|
|
13
6
|
redirectURIs: any;
|
|
14
|
-
error?: undefined;
|
|
15
|
-
code?: undefined;
|
|
16
7
|
} | null>;
|
|
17
8
|
//# sourceMappingURL=checkJWT.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkJWT.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/policy/funcs/checkJWT.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"checkJWT.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/policy/funcs/checkJWT.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAOhC,wBAA8B,QAAQ,CAAC,GAAG,EAAE,eAAe;;;;;UAoG1D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import getIP from "./getIP.js";
|
|
2
2
|
import logger from "../../logger/getLogger.js";
|
|
3
3
|
import { scryptVerify, verify } from "../../auth/funcs/jwt.js";
|
|
4
|
+
import { ForbiddenError, UnauthorizedError } from "../../../../errors.js";
|
|
4
5
|
export default async function checkJWT(req) {
|
|
5
6
|
const { originalUrl: path, headers, method, routeOptions, pg } = req;
|
|
6
7
|
const ip = getIP(req);
|
|
@@ -28,10 +29,10 @@ export default async function checkJWT(req) {
|
|
|
28
29
|
ip,
|
|
29
30
|
uid: user?.uid,
|
|
30
31
|
});
|
|
31
|
-
|
|
32
|
+
throw UnauthorizedError("unaothorized");
|
|
32
33
|
}
|
|
33
34
|
if (!pg) {
|
|
34
|
-
|
|
35
|
+
throw new Error("empty pg");
|
|
35
36
|
}
|
|
36
37
|
const { clientId, tokenHash, isRevoked, isExpired } = await pg
|
|
37
38
|
.query('select client_id as "clientId", token_hash as "tokenHash", revoked_at is not null as "isRevoked", expires_at <= now() as "isExpired" from oauth.tokens where ip=$1 and token_hint=$2', [ip, jwtToken.slice(-6)])
|
|
@@ -45,7 +46,7 @@ export default async function checkJWT(req) {
|
|
|
45
46
|
jwtToken: jwtToken.slice(-6),
|
|
46
47
|
uid: user?.uid,
|
|
47
48
|
});
|
|
48
|
-
|
|
49
|
+
throw ForbiddenError("forbidden");
|
|
49
50
|
}
|
|
50
51
|
const isValid = await scryptVerify(tokenHash || "", jwtToken);
|
|
51
52
|
if (requireJWT && !isValid) {
|
|
@@ -57,7 +58,7 @@ export default async function checkJWT(req) {
|
|
|
57
58
|
clientId,
|
|
58
59
|
uid: user?.uid,
|
|
59
60
|
});
|
|
60
|
-
|
|
61
|
+
throw ForbiddenError("forbidden");
|
|
61
62
|
}
|
|
62
63
|
const q = `select client_secret_hash as "secret", redirect_uris as "redirectURIs" from oauth.clients where client_id=$1 and token_endpoint_auth_method=$2`;
|
|
63
64
|
const { secret, redirectURIs } = pg?.pk?.["oauth.clients"]
|
|
@@ -76,7 +77,7 @@ export default async function checkJWT(req) {
|
|
|
76
77
|
clientId,
|
|
77
78
|
uid: user?.uid,
|
|
78
79
|
});
|
|
79
|
-
|
|
80
|
+
throw ForbiddenError("forbidden");
|
|
80
81
|
}
|
|
81
82
|
return { token: jwtToken, valid: true, payload, redirectURIs };
|
|
82
83
|
}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
1
|
import type { ExtendedRequest } from "../../../types/core.js";
|
|
2
|
-
export default function checkPermissions(req: ExtendedRequest): Promise<
|
|
3
|
-
error: string;
|
|
4
|
-
code: number;
|
|
5
|
-
} | null>;
|
|
2
|
+
export default function checkPermissions(req: ExtendedRequest): Promise<null>;
|
|
6
3
|
//# sourceMappingURL=checkPermissions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkPermissions.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/policy/funcs/checkPermissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"checkPermissions.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/policy/funcs/checkPermissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAOhC,wBAA8B,gBAAgB,CAAC,GAAG,EAAE,eAAe,iBA4DlE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import logger from "../../logger/getLogger.js";
|
|
2
2
|
import getUserPermissions from "../../access/funcs/getUserPermissions.js";
|
|
3
3
|
import pgClients from "../../pg/pgClients.js";
|
|
4
|
+
import { ForbiddenError } from "../../../../errors.js";
|
|
4
5
|
export default async function checkPermissions(req) {
|
|
5
6
|
const { originalUrl: path, query, params, method, routeOptions, pg = pgClients.client, } = req;
|
|
6
7
|
const user = req.user || req.session?.passport?.user;
|
|
@@ -28,7 +29,7 @@ export default async function checkPermissions(req) {
|
|
|
28
29
|
message: "access restricted: permissions",
|
|
29
30
|
uid: user?.uid,
|
|
30
31
|
});
|
|
31
|
-
|
|
32
|
+
throw ForbiddenError("access restricted: permissions");
|
|
32
33
|
}
|
|
33
34
|
return null;
|
|
34
35
|
}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
1
|
import type { ExtendedRequest } from "../../../types/core.js";
|
|
2
|
-
export default function checkPolicy(req: ExtendedRequest, jwt?: any):
|
|
3
|
-
error: string;
|
|
4
|
-
code: number;
|
|
5
|
-
} | null;
|
|
2
|
+
export default function checkPolicy(req: ExtendedRequest, jwt?: any): null;
|
|
6
3
|
//# sourceMappingURL=checkPolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkPolicy.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/policy/funcs/checkPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"checkPolicy.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/policy/funcs/checkPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAMhC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,GAAG,QAqKlE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { config, logger } from "../../../../utils.js";
|
|
2
|
+
import { ConflictError, ForbiddenError } from "../../../../errors.js";
|
|
2
3
|
import block from "../sqlInjection.js";
|
|
3
4
|
export default function checkPolicy(req, jwt) {
|
|
4
5
|
const { originalUrl: path, hostname, query, params, headers, method, routeOptions, } = req;
|
|
@@ -31,7 +32,7 @@ export default function checkPolicy(req, jwt) {
|
|
|
31
32
|
method,
|
|
32
33
|
userRole: user.user_type,
|
|
33
34
|
});
|
|
34
|
-
|
|
35
|
+
throw ForbiddenError("access restricted: 0");
|
|
35
36
|
}
|
|
36
37
|
// ! role
|
|
37
38
|
if (isRole) {
|
|
@@ -45,7 +46,7 @@ export default function checkPolicy(req, jwt) {
|
|
|
45
46
|
body,
|
|
46
47
|
uid: user?.uid,
|
|
47
48
|
});
|
|
48
|
-
|
|
49
|
+
throw ForbiddenError("access restricted: 0");
|
|
49
50
|
}
|
|
50
51
|
// ! file injection
|
|
51
52
|
if (JSON.stringify(params || {})?.includes("../") ||
|
|
@@ -59,7 +60,7 @@ export default function checkPolicy(req, jwt) {
|
|
|
59
60
|
body,
|
|
60
61
|
uid: user?.uid,
|
|
61
62
|
});
|
|
62
|
-
|
|
63
|
+
throw ConflictError("access restricted: 1");
|
|
63
64
|
}
|
|
64
65
|
// ! invalid file extension
|
|
65
66
|
if (path.includes("files/") && allowExtPublic.includes(ext)) {
|
|
@@ -77,7 +78,7 @@ export default function checkPolicy(req, jwt) {
|
|
|
77
78
|
stopWords,
|
|
78
79
|
uid: user?.uid,
|
|
79
80
|
});
|
|
80
|
-
|
|
81
|
+
throw ConflictError("access restricted: 2");
|
|
81
82
|
}
|
|
82
83
|
// ! user required, but not logged in
|
|
83
84
|
if (requireUser && !user && !jwt?.valid) {
|
|
@@ -88,7 +89,7 @@ export default function checkPolicy(req, jwt) {
|
|
|
88
89
|
query,
|
|
89
90
|
body,
|
|
90
91
|
});
|
|
91
|
-
|
|
92
|
+
throw ForbiddenError("access restricted: 3");
|
|
92
93
|
}
|
|
93
94
|
// ! referer
|
|
94
95
|
if (requireReferer && !headers?.referer?.includes?.(hostname)) {
|
|
@@ -100,7 +101,7 @@ export default function checkPolicy(req, jwt) {
|
|
|
100
101
|
body,
|
|
101
102
|
uid: user?.uid,
|
|
102
103
|
});
|
|
103
|
-
|
|
104
|
+
throw ForbiddenError("access restricted: 4");
|
|
104
105
|
}
|
|
105
106
|
// ! public / token
|
|
106
107
|
if (isPublic || config.debug) {
|
|
@@ -121,7 +122,7 @@ export default function checkPolicy(req, jwt) {
|
|
|
121
122
|
message: "access restricted: 6",
|
|
122
123
|
uid: user?.uid,
|
|
123
124
|
});
|
|
124
|
-
|
|
125
|
+
throw ForbiddenError("access restricted: 6");
|
|
125
126
|
}
|
|
126
127
|
return null;
|
|
127
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/plugins/policy/index.ts"],"names":[],"mappings":"AAMA,iBAAS,MAAM,CAAC,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/plugins/policy/index.ts"],"names":[],"mappings":"AAMA,iBAAS,MAAM,CAAC,OAAO,EAAE,GAAG,QA6B3B;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -19,18 +19,9 @@ function plugin(fastify) {
|
|
|
19
19
|
if (!isApi) {
|
|
20
20
|
return null;
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
if (resp1) {
|
|
24
|
-
return reply.status(resp1.code || 403).send(resp1);
|
|
25
|
-
}
|
|
22
|
+
await checkPermissions(request);
|
|
26
23
|
const jwt = await checkJWT(request);
|
|
27
|
-
|
|
28
|
-
return reply.status(jwt.code).send(jwt);
|
|
29
|
-
}
|
|
30
|
-
const resp = checkPolicy(request, jwt);
|
|
31
|
-
if (resp) {
|
|
32
|
-
return reply.status(resp.code || 403).send(resp);
|
|
33
|
-
}
|
|
24
|
+
checkPolicy(request, jwt);
|
|
34
25
|
return null;
|
|
35
26
|
});
|
|
36
27
|
}
|
|
@@ -13,28 +13,14 @@ export default function getFilterSQL({ table, filter, pg, search, searchColumn:
|
|
|
13
13
|
objectId?: string;
|
|
14
14
|
order?: string;
|
|
15
15
|
}): Promise<{
|
|
16
|
-
error: string;
|
|
17
|
-
status: number;
|
|
18
|
-
filterList?: undefined;
|
|
19
|
-
filters?: undefined;
|
|
20
|
-
q?: undefined;
|
|
21
|
-
optimizedSQL?: undefined;
|
|
22
|
-
sqlTable?: undefined;
|
|
23
|
-
extraSqlColumns?: undefined;
|
|
24
|
-
tableCount?: undefined;
|
|
25
|
-
table?: undefined;
|
|
26
|
-
searchQuery?: undefined;
|
|
27
|
-
} | {
|
|
28
16
|
filterList: any[] | undefined;
|
|
29
17
|
filters: any;
|
|
30
18
|
q: string;
|
|
31
19
|
optimizedSQL: string;
|
|
32
20
|
sqlTable: any;
|
|
33
|
-
extraSqlColumns: string |
|
|
21
|
+
extraSqlColumns: string | null;
|
|
34
22
|
tableCount: string;
|
|
35
23
|
table: any;
|
|
36
24
|
searchQuery: string;
|
|
37
|
-
error?: undefined;
|
|
38
|
-
status?: undefined;
|
|
39
25
|
}>;
|
|
40
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../server/plugins/table/funcs/getFilterSQL/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../server/plugins/table/funcs/getFilterSQL/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAyC5D,wBAA8B,YAAY,CAAC,EACzC,KAAK,EACL,MAAM,EACN,EAAqB,EACrB,MAAM,EACN,YAAY,EAAE,aAAa,EAC3B,UAAU,EACV,KAAK,EACL,MAAM,EACN,KAAK,EACL,GAAG,EACH,QAAQ,EACR,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;;;;;;;;GA0RA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BadRequestError } from "../../../../../errors.js";
|
|
1
2
|
import getTemplate from "../getTemplate.js";
|
|
2
3
|
import getSelect from "../getSelect.js";
|
|
3
4
|
import pgClients from "../../../pg/pgClients.js";
|
|
@@ -23,8 +24,9 @@ function getExtraQuery(mainColumns, schema, table, pk) {
|
|
|
23
24
|
};
|
|
24
25
|
}
|
|
25
26
|
export default async function getFilterSQL({ table, filter, pg = pgClients.client, search, searchColumn: searchColumn1, filterList, query, custom, state, uid, objectId, order, }) {
|
|
26
|
-
if (!table)
|
|
27
|
-
|
|
27
|
+
if (!table) {
|
|
28
|
+
throw BadRequestError("param table is required");
|
|
29
|
+
}
|
|
28
30
|
const body = await getTemplate("table", table);
|
|
29
31
|
const loadTemplate = body?.form
|
|
30
32
|
? await getTemplate("form", body?.form)
|
|
@@ -42,7 +44,7 @@ export default async function getFilterSQL({ table, filter, pg = pgClients.clien
|
|
|
42
44
|
: {};
|
|
43
45
|
const { q: extraSqlColumns, extraColumns = [] } = extraDataTable && pg.pk?.[extraDataTable] && pg.pk?.[body.table || table]
|
|
44
46
|
? getExtraQuery(fieldsModel, loadTemplate?.schema, extraDataTable, pg.pk[body.table || table])
|
|
45
|
-
: {};
|
|
47
|
+
: { q: null };
|
|
46
48
|
// console.log('extra getFilterSQL', extraDataTable, pg.pk?.[extraDataTable]);
|
|
47
49
|
// check sql inline fields count
|
|
48
50
|
if (body?.table && !checkInline[body?.table] && body?.sql?.length) {
|
|
@@ -147,7 +149,7 @@ export default async function getFilterSQL({ table, filter, pg = pgClients.clien
|
|
|
147
149
|
column?.split?.("?")?.pop?.(),
|
|
148
150
|
pg,
|
|
149
151
|
})) || {}
|
|
150
|
-
: {};
|
|
152
|
+
: { arr: null, original: null };
|
|
151
153
|
const arr1 = arr ||
|
|
152
154
|
(original && pg?.queryCache
|
|
153
155
|
? await pg
|
|
@@ -10,36 +10,14 @@ export default function gisIRColumn({ pg, layer, column, sql, query, filter, sta
|
|
|
10
10
|
search?: string;
|
|
11
11
|
custom?: string;
|
|
12
12
|
}): Promise<string | {
|
|
13
|
-
error: string;
|
|
14
|
-
status: number;
|
|
15
|
-
message?: undefined;
|
|
16
|
-
count?: undefined;
|
|
17
|
-
sql?: undefined;
|
|
18
|
-
rows?: undefined;
|
|
19
|
-
time?: undefined;
|
|
20
|
-
} | {
|
|
21
|
-
status: number;
|
|
22
|
-
message: string;
|
|
23
|
-
error?: undefined;
|
|
24
|
-
count?: undefined;
|
|
25
|
-
sql?: undefined;
|
|
26
|
-
rows?: undefined;
|
|
27
|
-
time?: undefined;
|
|
28
|
-
} | {
|
|
29
13
|
count: any;
|
|
30
14
|
sql: string | undefined;
|
|
31
15
|
rows: any;
|
|
32
|
-
error?: undefined;
|
|
33
|
-
status?: undefined;
|
|
34
|
-
message?: undefined;
|
|
35
16
|
time?: undefined;
|
|
36
17
|
} | {
|
|
37
18
|
time: number;
|
|
38
19
|
count: any;
|
|
39
20
|
sql: string | undefined;
|
|
40
21
|
rows: any;
|
|
41
|
-
error?: undefined;
|
|
42
|
-
status?: undefined;
|
|
43
|
-
message?: undefined;
|
|
44
22
|
}>;
|
|
45
23
|
//# sourceMappingURL=gisIRColumn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gisIRColumn.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/table/funcs/gisIRColumn.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"gisIRColumn.d.ts","sourceRoot":"","sources":["../../../../../server/plugins/table/funcs/gisIRColumn.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,wBAA8B,WAAW,CAAC,EACxC,EAAqB,EACrB,KAAK,EACL,MAAM,EACN,GAAG,EACH,KAAU,EACV,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,GACP,EAAE;IACD,EAAE,EAAE,UAAU,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;;;;;;;;;;GAqGA"}
|
|
@@ -4,6 +4,7 @@ import getTemplate from "./getTemplate.js";
|
|
|
4
4
|
import pgClients from "../../pg/pgClients.js";
|
|
5
5
|
import config from "../../../../config.js";
|
|
6
6
|
import getSelectVal from "./metaFormat/getSelectVal.js";
|
|
7
|
+
import { BadRequestError } from "../../../../errors.js";
|
|
7
8
|
export default async function gisIRColumn({ pg = pgClients.client, layer, column, sql, query = {}, filter, state, search, custom, }) {
|
|
8
9
|
const time = Date.now();
|
|
9
10
|
const sel = await getSelect(query.cls || column, pg);
|
|
@@ -22,12 +23,13 @@ export default async function gisIRColumn({ pg = pgClients.client, layer, column
|
|
|
22
23
|
.then((el) => el.rows?.[0] || {});
|
|
23
24
|
const tableName = body?.table || layer;
|
|
24
25
|
if (!tlist.includes(tableName))
|
|
25
|
-
|
|
26
|
+
throw BadRequestError(`table not found: ${tableName}`);
|
|
26
27
|
// eslint-disable-next-line max-len
|
|
27
28
|
const { fields } = await pg.query(`select * from (${fData?.optimizedSQL || `select * from ${tableName}`})q limit 0`);
|
|
28
29
|
const col = fields.find((el) => el.name === column);
|
|
29
|
-
if (!col)
|
|
30
|
-
|
|
30
|
+
if (!col) {
|
|
31
|
+
throw BadRequestError(`column not found: ${column}`);
|
|
32
|
+
}
|
|
31
33
|
const colField = pg.pgType?.[col.dataTypeID]?.includes("[]")
|
|
32
34
|
? `unnest(${column})`
|
|
33
35
|
: column;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/plugins/upload/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAW1C,eAAO,MAAM,cAAc,QAE1B,CAAC;AAEF,eAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAErD,eAAO,MAAM,OAAO,QAEE,CAAC;AAEvB,eAAO,MAAM,OAAO,QAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/plugins/upload/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAW1C,eAAO,MAAM,cAAc,QAE1B,CAAC;AAEF,eAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAErD,eAAO,MAAM,OAAO,QAEE,CAAC;AAEvB,eAAO,MAAM,OAAO,QAA4B,CAAC;AAOjD,iBAAS,mBAAmB,CAAC,GAAG,EAAE,eAAe,QAWhD;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -10,11 +10,18 @@ export const fileDir = path
|
|
|
10
10
|
.join(rootDir, uploadChunkDirectory)
|
|
11
11
|
.replace(/\\/g, "/");
|
|
12
12
|
export const metaDir = path.join(fileDir, "tmp");
|
|
13
|
+
// import { close, cleanupMultipartUploads } from "./s3minio.js";
|
|
13
14
|
import { cleanupNonRedisUploads } from "./s3.js";
|
|
15
|
+
// import addCron from "../cron/funcs/addCron.js";
|
|
14
16
|
// w/ out redis - chunked uploads are non-resumable in order to avoid unclosed multiparts (non-discoverable via s3 commands with current version of minio)
|
|
15
17
|
function chunkedUploadPlugin(app) {
|
|
18
|
+
// addCron(cleanupMultipartUploads, 60 * 5);
|
|
16
19
|
app.addHook("onClose", async () => {
|
|
17
20
|
await cleanupNonRedisUploads();
|
|
21
|
+
// await cleanupMultipartUploads().catch((err) =>
|
|
22
|
+
// console.error("minio upload plugin onClose cleanUp error", err.toString())
|
|
23
|
+
// );
|
|
24
|
+
// close();
|
|
18
25
|
});
|
|
19
26
|
}
|
|
20
27
|
export default chunkedUploadPlugin;
|
|
@@ -38,6 +38,12 @@ export declare function startUpload({ Bucket, Key, ContentType, fileSize, }: {
|
|
|
38
38
|
ContentType?: undefined;
|
|
39
39
|
cache?: undefined;
|
|
40
40
|
}>;
|
|
41
|
+
export declare function savePart(id: string, part: {
|
|
42
|
+
ETag: string;
|
|
43
|
+
PartNumber: number;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
export declare function getStoredParts(id: string): Promise<any[]>;
|
|
46
|
+
export declare function deleteUploadParts(id: string): Promise<void>;
|
|
41
47
|
export declare function uploadChunk({ id, chunk, partNumber, }: {
|
|
42
48
|
id: string;
|
|
43
49
|
chunk: any;
|
|
@@ -55,7 +61,7 @@ export declare function finishUpload({ id, }: {
|
|
|
55
61
|
id: string;
|
|
56
62
|
}, s3?: any): Promise<{
|
|
57
63
|
finished: boolean;
|
|
58
|
-
uploaded:
|
|
64
|
+
uploaded: number | undefined;
|
|
59
65
|
filepath: any;
|
|
60
66
|
}>;
|
|
61
67
|
export declare function abortUpload({ id, }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../../../server/plugins/upload/s3.ts"],"names":[],"mappings":"AAiGA,wBAAsB,sBAAsB,CAAC,EAAE,MAAW,iBAwCzD;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,GAAG,EACT,GAAG,SAAqB,iBAazB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,GAAG,SAAqB,EACxB,EAAE,MAAW,iBAsBd;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../../../server/plugins/upload/s3.ts"],"names":[],"mappings":"AAiGA,wBAAsB,sBAAsB,CAAC,EAAE,MAAW,iBAwCzD;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,GAAG,EACT,GAAG,SAAqB,iBAazB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,GAAG,SAAqB,EACxB,EAAE,MAAW,iBAsBd;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,iBA2B9D;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,gBAQ7C;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,gBAMrD;AAED,wBAAsB,mBAAmB,CAAC,EAAE,MAAW,iBAyEtD;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,MAAW;;;;;;;;GAsCrE;AAKD,wBAAsB,WAAW,CAC/B,EACE,MAAM,EACN,GAAG,EACH,WAAW,EACX,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,EACD,EAAE,MAAW;;;;;;;;;;;;;;;;GAsDd;AASD,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,iBAwBF;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,kBAY9C;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,iBAQjD;AAED,wBAAsB,WAAW,CAC/B,EACE,EAAE,EACF,KAAK,EACL,UAAU,GACX,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACpB,EACD,EAAE,MAAW;;;;;;;;GA+Bd;AAED,wBAAsB,YAAY,CAChC,EACE,EAAE,GACH,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;CACZ,EACD,EAAE,MAAW;;;;GA2Cd;AAED,wBAAsB,WAAW,CAC/B,EACE,EAAE,GACH,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;CACZ,EACD,EAAE,MAAW;;GAwBd;AAED,wBAAsB,eAAe,CACnC,EACE,EAAE,EACF,GAAG,EACH,MAAM,GACP,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,EACD,EAAE,MAAW;;;;;;;;;;;;;;GAqEd"}
|