@opengis/fastify-table 1.4.87 → 1.5.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/config.js +33 -0
- package/dist/dblist.js +5 -0
- package/dist/index.js +170 -0
- package/dist/redactionList.js +6 -0
- package/dist/server/helpers/core/badge.js +16 -0
- package/dist/server/helpers/core/buttonFilePreview.js +12 -0
- package/dist/server/helpers/core/buttonHelper.js +20 -0
- package/{server → dist/server}/helpers/core/token.js +16 -18
- package/dist/server/helpers/format/formatAuto.js +14 -0
- package/dist/server/helpers/format/formatDate.js +231 -0
- package/{server → dist/server}/helpers/format/formatDigit.js +21 -21
- package/dist/server/helpers/format/formatNum.js +331 -0
- package/{server → dist/server}/helpers/format/formatNumber.js +50 -55
- package/dist/server/helpers/format/formatRelative.js +180 -0
- package/{server → dist/server}/helpers/format/formatUnit.js +41 -40
- package/{server → dist/server}/helpers/format/num_format.js +40 -44
- package/{server → dist/server}/helpers/format/set.js +26 -27
- package/{server → dist/server}/helpers/funcs/_math.js +49 -50
- package/{server → dist/server}/helpers/funcs/contentList.js +52 -57
- package/{server → dist/server}/helpers/funcs/empty.js +21 -21
- package/dist/server/helpers/funcs/ifCond.js +109 -0
- package/dist/server/helpers/funcs/ifCondAnd.js +109 -0
- package/dist/server/helpers/funcs/ifCondOr.js +110 -0
- package/{server → dist/server}/helpers/funcs/inc.js +19 -20
- package/{server → dist/server}/helpers/funcs/json.js +3 -3
- package/dist/server/helpers/funcs/qrcode.js +65 -0
- package/{server → dist/server}/helpers/funcs/round.js +27 -29
- package/dist/server/helpers/funcs/select.js +39 -0
- package/dist/server/helpers/index.js +125 -0
- package/dist/server/helpers/list/buttonHelper.js +20 -0
- package/{server → dist/server}/helpers/list/descriptionList.js +39 -45
- package/dist/server/helpers/list/tableList.js +104 -0
- package/{server → dist/server}/helpers/list/utils/button.js +3 -3
- package/{server → dist/server}/helpers/list/utils/buttonDel.js +8 -9
- package/{server → dist/server}/helpers/list/utils/buttonEdit.js +8 -9
- package/{server → dist/server}/helpers/string/coalesce.js +33 -39
- package/{server → dist/server}/helpers/string/concat.js +25 -28
- package/{server → dist/server}/helpers/string/split.js +19 -20
- package/{server → dist/server}/helpers/string/str_replace.js +57 -62
- package/{server → dist/server}/helpers/string/substr.js +28 -32
- package/{server → dist/server}/helpers/string/translit.js +20 -23
- package/dist/server/helpers/string/utils/alphabet.js +76 -0
- package/{server → dist/server}/helpers/utils/button.js +3 -3
- package/{server → dist/server}/helpers/utils/buttonAdd.js +4 -4
- package/{server → dist/server}/helpers/utils/buttonDel.js +11 -15
- package/{server → dist/server}/helpers/utils/buttonDownload.js +3 -3
- package/dist/server/helpers/utils/buttonEdit.js +14 -0
- package/{server → dist/server}/helpers/utils/buttonPreview.js +3 -3
- package/{server → dist/server}/helpers/utils/mdToHTML.js +16 -17
- package/{server → dist/server}/helpers/utils/paddingNumber.js +5 -5
- package/dist/server/plugins/access/funcs/getAdminAccess.js +11 -0
- package/dist/server/plugins/cron/cronList.js +2 -0
- package/dist/server/plugins/cron/funcs/addCron.js +41 -0
- package/{server → dist/server}/plugins/cron/funcs/interval2ms.js +36 -40
- package/dist/server/plugins/cron/funcs/runCron.js +20 -0
- package/{server → dist/server}/plugins/cron/funcs/verifyUnique.js +19 -23
- package/dist/server/plugins/cron/index.js +75 -0
- package/dist/server/plugins/crud/funcs/dataDelete.js +87 -0
- package/dist/server/plugins/crud/funcs/dataInsert.js +134 -0
- package/dist/server/plugins/crud/funcs/dataUpdate.js +198 -0
- package/dist/server/plugins/crud/funcs/getAccess.js +82 -0
- package/dist/server/plugins/crud/funcs/getOpt.js +13 -0
- package/dist/server/plugins/crud/funcs/getToken.js +24 -0
- package/dist/server/plugins/crud/funcs/isFileExists.js +11 -0
- package/dist/server/plugins/crud/funcs/setOpt.js +19 -0
- package/dist/server/plugins/crud/funcs/setToken.js +41 -0
- package/dist/server/plugins/crud/funcs/utils/getFolder.js +13 -0
- package/dist/server/plugins/crud/funcs/utils/getInsertQuery.js +54 -0
- package/dist/server/plugins/crud/funcs/utils/logChanges.js +144 -0
- package/{server → dist/server}/plugins/crud/funcs/validateData.js +91 -83
- package/dist/server/plugins/extra/extraData.js +81 -0
- package/dist/server/plugins/extra/extraDataGet.js +52 -0
- package/dist/server/plugins/file/downloadFile.js +15 -0
- package/{server → dist/server}/plugins/file/getExport.js +18 -38
- package/dist/server/plugins/file/isFileExists.js +13 -0
- package/dist/server/plugins/file/providers/fs.js +86 -0
- package/dist/server/plugins/file/providers/index.js +28 -0
- package/dist/server/plugins/file/providers/mime/index.js +7 -0
- package/dist/server/plugins/file/providers/mime/mimes.js +1179 -0
- package/dist/server/plugins/file/providers/s3/client.js +26 -0
- package/dist/server/plugins/file/providers/s3/funcs/downloadFile.js +42 -0
- package/dist/server/plugins/file/providers/s3/funcs/fileExists.js +24 -0
- package/dist/server/plugins/file/providers/s3/funcs/uploadFile.js +35 -0
- package/dist/server/plugins/file/providers/s3/funcs/utils/getS3FilePath.js +18 -0
- package/{server → dist/server}/plugins/file/providers/s3/index.js +11 -12
- package/dist/server/plugins/file/providers/utils/getDataSize.js +19 -0
- package/dist/server/plugins/file/providers/utils/getValidData.js +30 -0
- package/dist/server/plugins/file/providers/utils/handlers/dataTypes.js +7 -0
- package/dist/server/plugins/file/providers/utils/handlers/index.js +50 -0
- package/dist/server/plugins/file/providers/utils/handlers/sizeHandlers.js +9 -0
- package/dist/server/plugins/file/providers/utils/streamToBuffer.js +7 -0
- package/{server → dist/server}/plugins/file/providers/utils/typeguards/isArray.js +2 -3
- package/{server → dist/server}/plugins/file/providers/utils/typeguards/isBuffer.js +2 -3
- package/dist/server/plugins/file/providers/utils/typeguards/isPath.js +3 -0
- package/dist/server/plugins/file/providers/utils/typeguards/isReadableStream.js +7 -0
- package/{server → dist/server}/plugins/file/providers/utils/typeguards/isText.js +2 -3
- package/dist/server/plugins/file/uploadFile.js +14 -0
- package/dist/server/plugins/file/uploadMultiPart.js +101 -0
- package/dist/server/plugins/file/utils/allowedExtensions.js +60 -0
- package/{server → dist/server}/plugins/file/utils/getFileType.js +12 -10
- package/dist/server/plugins/file/utils/getPath.js +30 -0
- package/dist/server/plugins/file/utils/isFileExists.js +15 -0
- package/dist/server/plugins/grpc/file2json.js +50 -0
- package/dist/server/plugins/grpc/grpc.js +103 -0
- package/dist/server/plugins/grpc/office2pdf.js +78 -0
- package/dist/server/plugins/grpc/utils/csv2xls.js +6 -0
- package/dist/server/plugins/grpc/utils/excel2Json.js +10 -0
- package/dist/server/plugins/grpc/utils/html2doc.js +17 -0
- package/dist/server/plugins/grpc/utils/html2img.js +17 -0
- package/dist/server/plugins/grpc/utils/html2pdf.js +19 -0
- package/{server → dist/server}/plugins/grpc/utils/htmlTemplate.js +3 -4
- package/dist/server/plugins/grpc/utils/json2xls.js +11 -0
- package/dist/server/plugins/grpc/utils/mergePdf.js +18 -0
- package/dist/server/plugins/hook/funcs/addHook.js +7 -0
- package/dist/server/plugins/hook/funcs/applyHook.js +25 -0
- package/dist/server/plugins/hook/funcs/applyHookSync.js +7 -0
- package/dist/server/plugins/hook/hookList.js +2 -0
- package/{server → dist/server}/plugins/hook/index.js +7 -8
- package/dist/server/plugins/logger/createFileStream.js +79 -0
- package/dist/server/plugins/logger/errorMessage.js +24 -0
- package/dist/server/plugins/logger/errorStatus.js +17 -0
- package/dist/server/plugins/logger/getHooks.js +17 -0
- package/dist/server/plugins/logger/getLogger.js +52 -0
- package/dist/server/plugins/logger/index.js +37 -0
- package/dist/server/plugins/logger/labels.js +10 -0
- package/dist/server/plugins/logger/serializers.js +22 -0
- package/{server → dist/server}/plugins/logger/timestampWithTimeZone.js +5 -5
- package/dist/server/plugins/md/funcs/formatMdoc.js +45 -0
- package/{server → dist/server}/plugins/md/funcs/mdToHTML.js +16 -17
- package/dist/server/plugins/metric/index.js +6 -0
- package/dist/server/plugins/metric/loggerSystem.js +127 -0
- package/dist/server/plugins/metric/systemMetricsFifthly.js +20 -0
- package/dist/server/plugins/migration/exec.migrations.js +59 -0
- package/dist/server/plugins/migration/exec.sql.js +61 -0
- package/{server → dist/server}/plugins/migration/index.js +5 -7
- package/dist/server/plugins/pg/funcs/autoIndex.js +102 -0
- package/{server → dist/server}/plugins/pg/funcs/getDBParams.js +16 -15
- package/dist/server/plugins/pg/funcs/getMeta.js +48 -0
- package/dist/server/plugins/pg/funcs/getPG.js +39 -0
- package/dist/server/plugins/pg/funcs/getPGAsync.js +45 -0
- package/dist/server/plugins/pg/funcs/init.js +157 -0
- package/dist/server/plugins/pg/index.js +47 -0
- package/dist/server/plugins/pg/pgClients.js +20 -0
- package/dist/server/plugins/policy/funcs/checkPolicy.js +173 -0
- package/dist/server/plugins/policy/funcs/checkXSS.js +44 -0
- package/dist/server/plugins/policy/index.js +11 -0
- package/dist/server/plugins/policy/sqlInjection.js +33 -0
- package/dist/server/plugins/policy/xssInjection.js +72 -0
- package/{server → dist/server}/plugins/redis/client.js +6 -8
- package/dist/server/plugins/redis/funcs/getRedis.js +23 -0
- package/{server → dist/server}/plugins/redis/funcs/redisClients.js +2 -3
- package/dist/server/plugins/redis/index.js +8 -0
- package/dist/server/plugins/sqlite/funcs/getSqlite.js +27 -0
- package/dist/server/plugins/sqlite/funcs/init.js +45 -0
- package/dist/server/plugins/sqlite/index.js +8 -0
- package/dist/server/plugins/sqlite/sqliteClients.js +24 -0
- package/dist/server/plugins/table/funcs/addMenu.js +12 -0
- package/dist/server/plugins/table/funcs/addTemplateDir.js +16 -0
- package/dist/server/plugins/table/funcs/customTokens.js +2 -0
- package/dist/server/plugins/table/funcs/getData.js +25 -0
- package/dist/server/plugins/table/funcs/getFilter.js +18 -0
- package/dist/server/plugins/table/funcs/getFilterSQL/index.js +201 -0
- package/dist/server/plugins/table/funcs/getFilterSQL/util/formatValue.js +131 -0
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getCustomQuery.js +11 -0
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getFilterQuery.js +84 -0
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getOptimizedQuery.js +11 -0
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getRangeQuery.js +161 -0
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getTableSql.js +40 -0
- package/dist/server/plugins/table/funcs/getSelect.js +37 -0
- package/dist/server/plugins/table/funcs/getSelectMeta.js +77 -0
- package/dist/server/plugins/table/funcs/getTemplate.js +86 -0
- package/dist/server/plugins/table/funcs/getTemplatePath.js +60 -0
- package/dist/server/plugins/table/funcs/getTemplateSync.js +84 -0
- package/dist/server/plugins/table/funcs/getTemplates.js +15 -0
- package/dist/server/plugins/table/funcs/gisIRColumn.js +81 -0
- package/dist/server/plugins/table/funcs/loadTemplate.js +2 -0
- package/dist/server/plugins/table/funcs/loadTemplatePath.js +2 -0
- package/dist/server/plugins/table/funcs/menuDirs.js +2 -0
- package/dist/server/plugins/table/funcs/metaFormat/getSelectVal.js +75 -0
- package/dist/server/plugins/table/funcs/metaFormat/index.js +64 -0
- package/dist/server/plugins/table/funcs/userTemplateDir.js +2 -0
- package/dist/server/plugins/table/funcs/userTokens.js +2 -0
- package/dist/server/plugins/util/funcs/eventStream.js +28 -0
- package/{server → dist/server}/plugins/util/funcs/flattenObject.js +14 -12
- package/{server → dist/server}/plugins/util/funcs/unflattenObject.js +48 -46
- package/{server → dist/server}/plugins/yml/funcs/json2yml.js +3 -5
- package/{server → dist/server}/plugins/yml/funcs/yml2json.js +11 -14
- package/{server → dist/server}/routes/access/controllers/access.group.js +17 -23
- package/{server → dist/server}/routes/access/controllers/access.group.post.js +46 -53
- package/dist/server/routes/access/controllers/access.interface.js +36 -0
- package/{server/routes/access/index.mjs → dist/server/routes/access/index.js} +10 -12
- package/{server/routes/access/schema.mjs → dist/server/routes/access/schema.js} +65 -68
- package/dist/server/routes/cron/controllers/cronApi.js +16 -0
- package/dist/server/routes/cron/index.js +15 -0
- package/dist/server/routes/crud/controllers/deleteCrud.js +90 -0
- package/dist/server/routes/crud/controllers/insert.js +110 -0
- package/dist/server/routes/crud/controllers/table.js +144 -0
- package/dist/server/routes/crud/controllers/update.js +113 -0
- package/dist/server/routes/crud/index.js +22 -0
- package/dist/server/routes/dblist/controllers/readItems.js +25 -0
- package/dist/server/routes/dblist/controllers/setItem.js +20 -0
- package/dist/server/routes/dblist/index.js +17 -0
- package/dist/server/routes/dblist/utils/formatData.js +8 -0
- package/dist/server/routes/file/controllers/delete.js +99 -0
- package/dist/server/routes/file/controllers/download.js +56 -0
- package/dist/server/routes/file/controllers/export.js +294 -0
- package/dist/server/routes/file/controllers/files.js +57 -0
- package/dist/server/routes/file/controllers/resize.js +86 -0
- package/dist/server/routes/file/controllers/resizeAll.js +140 -0
- package/dist/server/routes/file/controllers/upload.js +56 -0
- package/dist/server/routes/file/controllers/uploadImage.js +45 -0
- package/dist/server/routes/file/controllers/utils/formatResult.js +13 -0
- package/dist/server/routes/file/controllers/utils/jsonToCsv.js +40 -0
- package/dist/server/routes/file/controllers/utils/jsonToXls.js +37 -0
- package/dist/server/routes/file/index.js +22 -0
- package/dist/server/routes/file/schema.js +14 -0
- package/dist/server/routes/grpc/controllers/file2geojson.js +54 -0
- package/dist/server/routes/grpc/controllers/filePreview.js +87 -0
- package/dist/server/routes/grpc/index.js +9 -0
- package/dist/server/routes/logger/controllers/logger.file.js +81 -0
- package/dist/server/routes/logger/controllers/logger.test.api.js +42 -0
- package/dist/server/routes/logger/controllers/utils/checkUserAccess.js +22 -0
- package/dist/server/routes/logger/controllers/utils/getRootDir.js +25 -0
- package/dist/server/routes/logger/index.js +18 -0
- package/dist/server/routes/menu/controllers/getMenu.js +98 -0
- package/dist/server/routes/menu/controllers/interfaces.js +18 -0
- package/dist/server/routes/menu/index.js +7 -0
- package/dist/server/routes/properties/controllers/properties.get.js +23 -0
- package/dist/server/routes/properties/controllers/properties.post.js +68 -0
- package/dist/server/routes/properties/index.js +21 -0
- package/dist/server/routes/table/controllers/card.js +79 -0
- package/dist/server/routes/table/controllers/cardData.js +161 -0
- package/dist/server/routes/table/controllers/cardTabData.js +49 -0
- package/dist/server/routes/table/controllers/dataInfo.js +57 -0
- package/dist/server/routes/table/controllers/filter.js +181 -0
- package/dist/server/routes/table/controllers/form.js +41 -0
- package/{server → dist/server}/routes/table/controllers/getFormByTable.js +105 -125
- package/dist/server/routes/table/controllers/search.js +80 -0
- package/dist/server/routes/table/controllers/suggest.js +242 -0
- package/dist/server/routes/table/controllers/tableData.js +88 -0
- package/dist/server/routes/table/controllers/tableInfo.js +112 -0
- package/dist/server/routes/table/controllers/tokenInfo.js +10 -0
- package/dist/server/routes/table/controllers/utils/conditions.js +30 -0
- package/dist/server/routes/table/controllers/utils/formatSchema.js +35 -0
- package/dist/server/routes/table/controllers/utils/locales.js +2 -0
- package/dist/server/routes/table/functions/getData.js +584 -0
- package/dist/server/routes/table/index.js +44 -0
- package/dist/server/routes/table/schema.js +117 -0
- package/dist/server/routes/templates/controllers/getTemplate.js +65 -0
- package/dist/server/routes/templates/index.js +7 -0
- package/{server → dist/server}/routes/templates/schema.js +11 -12
- package/dist/server/routes/util/controllers/code.generator.js +75 -0
- package/dist/server/routes/util/controllers/next.id.js +4 -0
- package/dist/server/routes/util/controllers/status.monitor.js +6 -0
- package/dist/server/routes/util/controllers/user.tokens.js +32 -0
- package/dist/server/routes/util/index.js +13 -0
- package/dist/server/routes/widget/controllers/file.edit.js +48 -0
- package/dist/server/routes/widget/controllers/widget.del.js +84 -0
- package/dist/server/routes/widget/controllers/widget.get.js +164 -0
- package/dist/server/routes/widget/controllers/widget.set.js +117 -0
- package/dist/server/routes/widget/hook/onWidgetSet.js +10 -0
- package/dist/server/routes/widget/index.js +42 -0
- package/dist/server/types/core.js +12 -0
- package/dist/utils.js +93 -0
- package/package.json +24 -17
- package/config.js +0 -37
- package/dblist.js +0 -5
- package/index.js +0 -193
- package/redactionList.js +0 -7
- package/server/helpers/core/badge.js +0 -14
- package/server/helpers/core/buttonFilePreview.js +0 -12
- package/server/helpers/core/buttonHelper.js +0 -22
- package/server/helpers/format/formatAuto.js +0 -13
- package/server/helpers/format/formatDate.js +0 -258
- package/server/helpers/format/formatNum.js +0 -365
- package/server/helpers/format/formatRelative.js +0 -106
- package/server/helpers/funcs/ifCond.js +0 -109
- package/server/helpers/funcs/ifCondAnd.js +0 -114
- package/server/helpers/funcs/ifCondOr.js +0 -115
- package/server/helpers/funcs/qrcode.js +0 -68
- package/server/helpers/funcs/select.js +0 -46
- package/server/helpers/index.js +0 -137
- package/server/helpers/list/buttonHelper.js +0 -22
- package/server/helpers/list/tableList.js +0 -87
- package/server/helpers/string/utils/alphabet.js +0 -76
- package/server/helpers/utils/buttonEdit.js +0 -17
- package/server/migrations/0.sql +0 -84
- package/server/migrations/cls.sql +0 -40
- package/server/migrations/context.sql +0 -135
- package/server/migrations/crm.sql +0 -155
- package/server/migrations/log.sql +0 -87
- package/server/migrations/properties.sql +0 -115
- package/server/migrations/roles.sql +0 -191
- package/server/migrations/template.sql +0 -44
- package/server/migrations/users.sql +0 -176
- package/server/plugins/access/funcs/getAdminAccess.js +0 -14
- package/server/plugins/access/index.mjs +0 -6
- package/server/plugins/cron/cronList.js +0 -1
- package/server/plugins/cron/funcs/addCron.js +0 -52
- package/server/plugins/cron/funcs/runCron.js +0 -24
- package/server/plugins/cron/index.js +0 -77
- package/server/plugins/crud/funcs/dataDelete.js +0 -86
- package/server/plugins/crud/funcs/dataInsert.js +0 -131
- package/server/plugins/crud/funcs/dataUpdate.js +0 -179
- package/server/plugins/crud/funcs/getAccess.js +0 -94
- package/server/plugins/crud/funcs/getOpt.js +0 -14
- package/server/plugins/crud/funcs/getToken.js +0 -33
- package/server/plugins/crud/funcs/isFileExists.js +0 -13
- package/server/plugins/crud/funcs/setOpt.js +0 -21
- package/server/plugins/crud/funcs/setToken.js +0 -43
- package/server/plugins/crud/funcs/utils/getFolder.js +0 -11
- package/server/plugins/crud/funcs/utils/getInsertQuery.js +0 -44
- package/server/plugins/crud/funcs/utils/logChanges.js +0 -121
- package/server/plugins/crud/index.js +0 -23
- package/server/plugins/extra/extraData.js +0 -79
- package/server/plugins/extra/extraDataGet.js +0 -56
- package/server/plugins/file/downloadFile.js +0 -18
- package/server/plugins/file/isFileExists.js +0 -17
- package/server/plugins/file/providers/fs.js +0 -100
- package/server/plugins/file/providers/index.d.ts +0 -49
- package/server/plugins/file/providers/index.js +0 -36
- package/server/plugins/file/providers/mime/index.js +0 -12
- package/server/plugins/file/providers/mime/mimes.js +0 -1180
- package/server/plugins/file/providers/s3/client.js +0 -41
- package/server/plugins/file/providers/s3/funcs/downloadFile.js +0 -50
- package/server/plugins/file/providers/s3/funcs/fileExists.js +0 -32
- package/server/plugins/file/providers/s3/funcs/uploadFile.js +0 -46
- package/server/plugins/file/providers/s3/funcs/utils/getS3FilePath.js +0 -23
- package/server/plugins/file/providers/utils/getDataSize.js +0 -20
- package/server/plugins/file/providers/utils/getValidData.js +0 -32
- package/server/plugins/file/providers/utils/handlers/dataTypes.js +0 -8
- package/server/plugins/file/providers/utils/handlers/index.js +0 -53
- package/server/plugins/file/providers/utils/handlers/sizeHandlers.js +0 -11
- package/server/plugins/file/providers/utils/streamToBuffer.js +0 -8
- package/server/plugins/file/providers/utils/typeguards/isPath.js +0 -5
- package/server/plugins/file/providers/utils/typeguards/isReadableStream.js +0 -8
- package/server/plugins/file/uploadFile.js +0 -19
- package/server/plugins/file/uploadMultiPart.js +0 -131
- package/server/plugins/file/utils/allowedExtensions.js +0 -25
- package/server/plugins/file/utils/getPath.js +0 -25
- package/server/plugins/file/utils/isFileExists.js +0 -16
- package/server/plugins/grpc/file2json.js +0 -54
- package/server/plugins/grpc/grpc.js +0 -125
- package/server/plugins/grpc/office2pdf.js +0 -91
- package/server/plugins/grpc/utils/csv2xls.js +0 -8
- package/server/plugins/grpc/utils/excel2Json.js +0 -8
- package/server/plugins/grpc/utils/html2doc.js +0 -19
- package/server/plugins/grpc/utils/html2img.js +0 -18
- package/server/plugins/grpc/utils/html2pdf.js +0 -23
- package/server/plugins/grpc/utils/json2xls.js +0 -13
- package/server/plugins/grpc/utils/mergePdf.js +0 -20
- package/server/plugins/hook/funcs/addHook.js +0 -8
- package/server/plugins/hook/funcs/applyHook.js +0 -25
- package/server/plugins/hook/funcs/applyHookSync.js +0 -9
- package/server/plugins/hook/hookList.js +0 -1
- package/server/plugins/logger/createFileStream.js +0 -88
- package/server/plugins/logger/errorMessage.js +0 -25
- package/server/plugins/logger/errorStatus.js +0 -19
- package/server/plugins/logger/getHooks.js +0 -21
- package/server/plugins/logger/getLogger.js +0 -58
- package/server/plugins/logger/index.js +0 -33
- package/server/plugins/logger/labels.js +0 -11
- package/server/plugins/logger/serializers.js +0 -25
- package/server/plugins/md/funcs/formatMdoc.js +0 -40
- package/server/plugins/metric/index.js +0 -8
- package/server/plugins/metric/loggerSystem.js +0 -131
- package/server/plugins/metric/systemMetricsFifthly.js +0 -24
- package/server/plugins/migration/exec.migrations.js +0 -63
- package/server/plugins/migration/exec.sql.js +0 -67
- package/server/plugins/pg/funcs/autoIndex.js +0 -103
- package/server/plugins/pg/funcs/getMeta.js +0 -49
- package/server/plugins/pg/funcs/getPG.js +0 -42
- package/server/plugins/pg/funcs/getPGAsync.js +0 -62
- package/server/plugins/pg/funcs/init.js +0 -117
- package/server/plugins/pg/index.js +0 -54
- package/server/plugins/pg/pgClients.js +0 -22
- package/server/plugins/policy/funcs/checkPolicy.js +0 -127
- package/server/plugins/policy/funcs/checkXSS.js +0 -37
- package/server/plugins/policy/index.js +0 -11
- package/server/plugins/policy/sqlInjection.js +0 -34
- package/server/plugins/policy/xssInjection.js +0 -73
- package/server/plugins/redis/funcs/getRedis.js +0 -25
- package/server/plugins/redis/index.js +0 -17
- package/server/plugins/sqlite/funcs/getSqlite.js +0 -39
- package/server/plugins/sqlite/funcs/init.js +0 -53
- package/server/plugins/sqlite/index.js +0 -11
- package/server/plugins/sqlite/sqliteClients.js +0 -26
- package/server/plugins/table/funcs/addMenu.js +0 -16
- package/server/plugins/table/funcs/addTemplateDir.js +0 -19
- package/server/plugins/table/funcs/customTokens.js +0 -1
- package/server/plugins/table/funcs/getData.js +0 -14
- package/server/plugins/table/funcs/getFilter.js +0 -14
- package/server/plugins/table/funcs/getFilterSQL/index.js +0 -163
- package/server/plugins/table/funcs/getFilterSQL/util/formatValue.js +0 -136
- package/server/plugins/table/funcs/getFilterSQL/util/getCustomQuery.js +0 -13
- package/server/plugins/table/funcs/getFilterSQL/util/getFilterQuery.js +0 -75
- package/server/plugins/table/funcs/getFilterSQL/util/getOptimizedQuery.js +0 -12
- package/server/plugins/table/funcs/getFilterSQL/util/getRangeQuery.js +0 -156
- package/server/plugins/table/funcs/getFilterSQL/util/getTableSql.js +0 -34
- package/server/plugins/table/funcs/getSelect.js +0 -31
- package/server/plugins/table/funcs/getSelectMeta.js +0 -74
- package/server/plugins/table/funcs/getTemplate.js +0 -88
- package/server/plugins/table/funcs/getTemplatePath.js +0 -60
- package/server/plugins/table/funcs/getTemplateSync.js +0 -87
- package/server/plugins/table/funcs/getTemplates.js +0 -19
- package/server/plugins/table/funcs/gisIRColumn.js +0 -82
- package/server/plugins/table/funcs/loadTemplate.js +0 -1
- package/server/plugins/table/funcs/loadTemplatePath.js +0 -1
- package/server/plugins/table/funcs/menuDirs.js +0 -1
- package/server/plugins/table/funcs/metaFormat/getSelectVal.js +0 -61
- package/server/plugins/table/funcs/metaFormat/index.js +0 -49
- package/server/plugins/table/funcs/userTemplateDir.js +0 -1
- package/server/plugins/table/funcs/userTokens.js +0 -1
- package/server/plugins/table/index.js +0 -13
- package/server/plugins/util/funcs/eventStream.js +0 -29
- package/server/plugins/util/index.js +0 -7
- package/server/routes/access/controllers/access.interface.js +0 -37
- package/server/routes/cron/controllers/cronApi.js +0 -22
- package/server/routes/cron/index.js +0 -19
- package/server/routes/crud/controllers/deleteCrud.js +0 -84
- package/server/routes/crud/controllers/insert.js +0 -103
- package/server/routes/crud/controllers/table.js +0 -116
- package/server/routes/crud/controllers/update.js +0 -108
- package/server/routes/crud/index.js +0 -26
- package/server/routes/dblist/controllers/readItems.js +0 -28
- package/server/routes/dblist/controllers/setItem.js +0 -25
- package/server/routes/dblist/index.mjs +0 -19
- package/server/routes/dblist/utils/formatData.js +0 -7
- package/server/routes/file/controllers/delete.js +0 -108
- package/server/routes/file/controllers/download.js +0 -66
- package/server/routes/file/controllers/export.js +0 -290
- package/server/routes/file/controllers/files.js +0 -72
- package/server/routes/file/controllers/resize.js +0 -96
- package/server/routes/file/controllers/resizeAll.js +0 -165
- package/server/routes/file/controllers/upload.js +0 -55
- package/server/routes/file/controllers/uploadImage.js +0 -47
- package/server/routes/file/controllers/utils/formatResult.js +0 -17
- package/server/routes/file/controllers/utils/jsonToCsv.js +0 -36
- package/server/routes/file/controllers/utils/jsonToXls.js +0 -42
- package/server/routes/file/index.mjs +0 -26
- package/server/routes/file/schema.js +0 -16
- package/server/routes/grpc/controllers/file2geojson.js +0 -60
- package/server/routes/grpc/controllers/filePreview.js +0 -89
- package/server/routes/grpc/index.mjs +0 -12
- package/server/routes/logger/controllers/logger.file.js +0 -97
- package/server/routes/logger/controllers/logger.test.api.js +0 -48
- package/server/routes/logger/controllers/utils/checkUserAccess.js +0 -24
- package/server/routes/logger/controllers/utils/getRootDir.js +0 -27
- package/server/routes/logger/index.js +0 -22
- package/server/routes/menu/controllers/getMenu.js +0 -98
- package/server/routes/menu/controllers/interfaces.js +0 -21
- package/server/routes/menu/index.mjs +0 -8
- package/server/routes/menu/schema.js +0 -0
- package/server/routes/properties/controllers/properties.get.js +0 -33
- package/server/routes/properties/controllers/properties.post.js +0 -76
- package/server/routes/properties/index.js +0 -25
- package/server/routes/table/controllers/card.js +0 -77
- package/server/routes/table/controllers/cardData.js +0 -155
- package/server/routes/table/controllers/cardTabData.js +0 -57
- package/server/routes/table/controllers/dataInfo.js +0 -56
- package/server/routes/table/controllers/filter.js +0 -154
- package/server/routes/table/controllers/form.js +0 -42
- package/server/routes/table/controllers/search.js +0 -74
- package/server/routes/table/controllers/suggest.js +0 -246
- package/server/routes/table/controllers/tableData.js +0 -62
- package/server/routes/table/controllers/tableInfo.js +0 -110
- package/server/routes/table/controllers/tokenInfo.js +0 -12
- package/server/routes/table/controllers/utils/conditions.js +0 -21
- package/server/routes/table/controllers/utils/formatSchema.js +0 -23
- package/server/routes/table/controllers/utils/locales.js +0 -1
- package/server/routes/table/functions/getData.js +0 -436
- package/server/routes/table/index.js +0 -57
- package/server/routes/table/schema.js +0 -127
- package/server/routes/templates/controllers/getTemplate.js +0 -51
- package/server/routes/templates/index.mjs +0 -10
- package/server/routes/util/controllers/code.generator.js +0 -94
- package/server/routes/util/controllers/next.id.js +0 -4
- package/server/routes/util/controllers/status.monitor.js +0 -8
- package/server/routes/util/controllers/user.tokens.js +0 -45
- package/server/routes/util/index.js +0 -14
- package/server/routes/widget/controllers/file.edit.js +0 -55
- package/server/routes/widget/controllers/widget.del.js +0 -99
- package/server/routes/widget/controllers/widget.get.js +0 -137
- package/server/routes/widget/controllers/widget.set.js +0 -108
- package/server/routes/widget/hook/onWidgetSet.js +0 -13
- package/server/routes/widget/index.mjs +0 -38
- package/utils.js +0 -112
- /package/{server → dist/server}/plugins/grpc/utils/convertp.proto +0 -0
- /package/{server → dist/server}/plugins/grpc/utils/office2pdf.proto +0 -0
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-promise-executor-return */
|
|
2
|
-
/* eslint-disable no-console */
|
|
3
|
-
|
|
4
|
-
import path from 'node:path';
|
|
5
|
-
import { fileURLToPath } from 'url';
|
|
6
|
-
|
|
7
|
-
import grpc from '@grpc/grpc-js';
|
|
8
|
-
import protoLoader from '@grpc/proto-loader';
|
|
9
|
-
|
|
10
|
-
import config from '../../../config.js';
|
|
11
|
-
import logger from '../logger/getLogger.js';
|
|
12
|
-
|
|
13
|
-
const filename = fileURLToPath(import.meta.url);
|
|
14
|
-
const dirname = path.dirname(filename);
|
|
15
|
-
|
|
16
|
-
config.ready = config.ready || {};
|
|
17
|
-
|
|
18
|
-
// external ip not-accessible from internal network
|
|
19
|
-
const defaultConvertServerAddress = config.pg?.host?.startsWith?.('192.168.3')
|
|
20
|
-
? '192.168.1.96:4003'
|
|
21
|
-
: '193.239.152.181:44003';
|
|
22
|
-
|
|
23
|
-
const convertServerAddress = config.convertServerAddress === true
|
|
24
|
-
? defaultConvertServerAddress
|
|
25
|
-
: config.convertServerAddress;
|
|
26
|
-
|
|
27
|
-
if (config.local || config.debug) console.log('convertServerAddress: ', convertServerAddress, !!config.convertServerAddress);
|
|
28
|
-
|
|
29
|
-
// const relpath = 'server/plugins/grpc/utils/convertp.proto';
|
|
30
|
-
// const protoLocation = process.cwd().includes('fastify-table') ? relpath : `node_modules/@opengis/fastify-table/${relpath}`;
|
|
31
|
-
|
|
32
|
-
const proto = grpc.loadPackageDefinition(
|
|
33
|
-
protoLoader.loadSync(`${dirname}/utils/convertp.proto`, {
|
|
34
|
-
keepCase: true,
|
|
35
|
-
longs: String,
|
|
36
|
-
enums: String,
|
|
37
|
-
defaults: true,
|
|
38
|
-
oneofs: true,
|
|
39
|
-
}),
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
const convertClient = convertServerAddress ? new proto.Convert(
|
|
43
|
-
convertServerAddress,
|
|
44
|
-
grpc.credentials.createInsecure(),
|
|
45
|
-
{
|
|
46
|
-
'grpc.max_send_message_length': 512 * 1024 * 1024,
|
|
47
|
-
'grpc.max_receive_message_length': 512 * 1024 * 1024,
|
|
48
|
-
},
|
|
49
|
-
) : {};
|
|
50
|
-
|
|
51
|
-
if (convertServerAddress) {
|
|
52
|
-
convertClient.waitForReady(Date.now() + 5000, (err) => {
|
|
53
|
-
if (err) {
|
|
54
|
-
config.ready.convert = false;
|
|
55
|
-
console.error('Client connection timeout or failure:', err);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
config.ready.convert = true;
|
|
59
|
-
console.log('Client connected successfully.');
|
|
60
|
-
// You can now make RPC calls safely
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const methodNames = [
|
|
66
|
-
'pdfMerge',
|
|
67
|
-
'htmlToPdf',
|
|
68
|
-
'csvToXls',
|
|
69
|
-
'jsonToXls',
|
|
70
|
-
'excelToJson',
|
|
71
|
-
'xmlToJson',
|
|
72
|
-
'htmlToDoc',
|
|
73
|
-
'htmlToImage',
|
|
74
|
-
'shpToGeojson',
|
|
75
|
-
'geojsonToShp',
|
|
76
|
-
'geojsonToGpkg',
|
|
77
|
-
'docToPDF',
|
|
78
|
-
'mergeImages',
|
|
79
|
-
'resizeImage',
|
|
80
|
-
'jsonToYaml',
|
|
81
|
-
'yamlToJson',
|
|
82
|
-
'log',
|
|
83
|
-
];
|
|
84
|
-
|
|
85
|
-
const wrapGrpcCall = (methodName) => async (data) => new Promise((res, rej) => {
|
|
86
|
-
if (!convertServerAddress) {
|
|
87
|
-
logger.file('grpc/convert', {
|
|
88
|
-
method: methodName,
|
|
89
|
-
error: 'grpc convert not set',
|
|
90
|
-
stack: new Error().stack,
|
|
91
|
-
});
|
|
92
|
-
return rej(new Error('grpc convert not set'));
|
|
93
|
-
}
|
|
94
|
-
convertClient[methodName](data, (err, response) => {
|
|
95
|
-
if (err) {
|
|
96
|
-
logger.file('grpc/convert', {
|
|
97
|
-
method: methodName,
|
|
98
|
-
error: err.toString(),
|
|
99
|
-
stack: err.stack,
|
|
100
|
-
ready: config.ready.convert,
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
if (!config.ready.convert) {
|
|
104
|
-
return rej(new Error('no grpc convert connection'));
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
return rej(err);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
return res(response);
|
|
111
|
-
});
|
|
112
|
-
return null;
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
const grpcMethods = methodNames.reduce((acc, name) => {
|
|
116
|
-
acc[name] = wrapGrpcCall(name);
|
|
117
|
-
return acc;
|
|
118
|
-
}, {});
|
|
119
|
-
|
|
120
|
-
const getGRPC = () => ({
|
|
121
|
-
...grpcMethods,
|
|
122
|
-
convertServerAddress,
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
export default getGRPC;
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-promise-executor-return */
|
|
2
|
-
/* eslint-disable no-console */
|
|
3
|
-
import path from 'node:path';
|
|
4
|
-
import { fileURLToPath } from 'url';
|
|
5
|
-
|
|
6
|
-
import grpc from '@grpc/grpc-js';
|
|
7
|
-
import protoLoader from '@grpc/proto-loader';
|
|
8
|
-
|
|
9
|
-
import config from '../../../config.js';
|
|
10
|
-
import logger from '../logger/getLogger.js';
|
|
11
|
-
|
|
12
|
-
const filename = fileURLToPath(import.meta.url);
|
|
13
|
-
const dirname = path.dirname(filename);
|
|
14
|
-
|
|
15
|
-
config.ready = config.ready || {};
|
|
16
|
-
|
|
17
|
-
// external ip not-accessible from internal network
|
|
18
|
-
const defaultOfficeConverterServerAddress = config.pg?.host?.startsWith?.('192.168.3')
|
|
19
|
-
? '192.168.1.96:4011'
|
|
20
|
-
: '193.239.152.181:44011';
|
|
21
|
-
|
|
22
|
-
const officeConverterServerAddress = config.officeConverterServerAddress === true
|
|
23
|
-
? defaultOfficeConverterServerAddress
|
|
24
|
-
: config.officeConverterServerAddress;
|
|
25
|
-
|
|
26
|
-
console.log('officeConverterServerAddress: ', officeConverterServerAddress, !!config.officeConverterServerAddress);
|
|
27
|
-
|
|
28
|
-
// const relpath = 'server/plugins/grpc/utils/office2pdf.proto';
|
|
29
|
-
// const protoLocation = process.cwd().includes('fastify-table') ? relpath : `node_modules/@opengis/fastify-table/${relpath}`;
|
|
30
|
-
|
|
31
|
-
const proto = grpc.loadPackageDefinition(
|
|
32
|
-
protoLoader.loadSync(`${dirname}/utils/office2pdf.proto`, {
|
|
33
|
-
keepCase: true,
|
|
34
|
-
longs: String,
|
|
35
|
-
enums: String,
|
|
36
|
-
defaults: true,
|
|
37
|
-
oneofs: true,
|
|
38
|
-
}),
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
const officeClient = officeConverterServerAddress ? new proto.OfficeConverterService(
|
|
42
|
-
officeConverterServerAddress,
|
|
43
|
-
grpc.credentials.createInsecure(),
|
|
44
|
-
{
|
|
45
|
-
'grpc.max_send_message_length': 512 * 1024 * 1024,
|
|
46
|
-
'grpc.max_receive_message_length': 512 * 1024 * 1024,
|
|
47
|
-
},
|
|
48
|
-
) : {};
|
|
49
|
-
|
|
50
|
-
if (officeConverterServerAddress) {
|
|
51
|
-
officeClient.waitForReady(Date.now() + 5000, (err) => {
|
|
52
|
-
if (err) {
|
|
53
|
-
config.ready.office2pdf = false;
|
|
54
|
-
console.error('Client connection timeout or failure:', err);
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
config.ready.office2pdf = true;
|
|
58
|
-
console.log('Client connected successfully.');
|
|
59
|
-
// You can now make RPC calls safely
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
const officeToPdf = async (data) => new Promise((res, rej) => {
|
|
65
|
-
if (!officeConverterServerAddress) {
|
|
66
|
-
logger.file('grpc/convert', {
|
|
67
|
-
method: 'officeToPdf',
|
|
68
|
-
error: 'grpc office2pdf not set',
|
|
69
|
-
stack: new Error().stack,
|
|
70
|
-
});
|
|
71
|
-
return rej(new Error('grpc office2pdf not set'));
|
|
72
|
-
}
|
|
73
|
-
officeClient.OfficeToPdf(data, (err, data1) => {
|
|
74
|
-
if (err) {
|
|
75
|
-
logger.file('grpc/office2pdf', { error: err.toString(), stack: err.stack, ready: config.ready.office2pdf });
|
|
76
|
-
if (!config.ready.office2pdf) {
|
|
77
|
-
return rej(new Error('no grpc office2pdf connection'));
|
|
78
|
-
}
|
|
79
|
-
return rej(err);
|
|
80
|
-
}
|
|
81
|
-
return res(data1);
|
|
82
|
-
});
|
|
83
|
-
return null;
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
const getOffice = () => ({
|
|
87
|
-
officeToPdf,
|
|
88
|
-
officeConverterServerAddress,
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
export default getOffice;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { mkdir, writeFile } from 'fs/promises';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
|
|
4
|
-
import grpc from '../grpc.js';
|
|
5
|
-
|
|
6
|
-
export default async function html2doc({
|
|
7
|
-
html, filepath,
|
|
8
|
-
}) {
|
|
9
|
-
const result = await grpc.html2Doc({ html });
|
|
10
|
-
if (result.err) throw new Error(result.err);
|
|
11
|
-
try {
|
|
12
|
-
await mkdir(path.dirname(filepath), { recursive: true });
|
|
13
|
-
await writeFile(filepath, result.result, 'base64');
|
|
14
|
-
return { filepath };
|
|
15
|
-
}
|
|
16
|
-
catch (err) {
|
|
17
|
-
return { err: err.toString(), status: 500 };
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { mkdir, writeFile } from 'fs/promises';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import grpc from '../grpc.js';
|
|
4
|
-
|
|
5
|
-
export default async function html2pdf({
|
|
6
|
-
html, filepath,
|
|
7
|
-
}) {
|
|
8
|
-
const result = await grpc.htmlToImg({ html });
|
|
9
|
-
if (result.err) throw new Error(result.err);
|
|
10
|
-
try {
|
|
11
|
-
await mkdir(path.dirname(filepath), { recursive: true });
|
|
12
|
-
await writeFile(filepath, result.result, 'base64');
|
|
13
|
-
return { filepath };
|
|
14
|
-
}
|
|
15
|
-
catch (err) {
|
|
16
|
-
return { err: err.toString(), status: 500 };
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { mkdir, writeFile } from 'fs/promises';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
|
|
4
|
-
import grpc from '../grpc.js';
|
|
5
|
-
|
|
6
|
-
export default async function html2pdf({
|
|
7
|
-
html, filepath, logger,
|
|
8
|
-
}) {
|
|
9
|
-
const time = Date.now();
|
|
10
|
-
try {
|
|
11
|
-
const result = await grpc.htmlToPdf({ html });
|
|
12
|
-
logger.file('format/pdf', { msec: Date.now() - time, resp_code: 200 });
|
|
13
|
-
|
|
14
|
-
if (result.err) throw new Error(result.err);
|
|
15
|
-
|
|
16
|
-
await mkdir(path.dirname(filepath), { recursive: true });
|
|
17
|
-
await writeFile(filepath, result.result, 'base64');
|
|
18
|
-
return { filepath };
|
|
19
|
-
}
|
|
20
|
-
catch (err) {
|
|
21
|
-
return { err: err.toString(), status: 500 };
|
|
22
|
-
}
|
|
23
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import grpc from '../grpc.js';
|
|
2
|
-
|
|
3
|
-
export default async function json2xls({
|
|
4
|
-
json,
|
|
5
|
-
}) {
|
|
6
|
-
try {
|
|
7
|
-
const result = await grpc.jsonToXls({ buffer: json });
|
|
8
|
-
return { resultBuffer: result.result };
|
|
9
|
-
}
|
|
10
|
-
catch (err) {
|
|
11
|
-
return { err: err.toString() };
|
|
12
|
-
}
|
|
13
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
import { mkdir, writeFile } from 'fs/promises';
|
|
3
|
-
|
|
4
|
-
import grpc from '../grpc.js';
|
|
5
|
-
|
|
6
|
-
export default async function mergePdf({
|
|
7
|
-
pdfStringList, pathToSave, filename,
|
|
8
|
-
}) {
|
|
9
|
-
const filename1 = filename || path.basename(pathToSave);
|
|
10
|
-
const result = grpc.pdfMerge(pdfStringList);
|
|
11
|
-
if (result.err) return { err: result.err, status: 500 };
|
|
12
|
-
try {
|
|
13
|
-
await mkdir(path.dirname(pathToSave), { recursive: true });
|
|
14
|
-
await writeFile(pathToSave, result.result, 'base64');
|
|
15
|
-
return { filename: `${filename1}.pdf`, filepath: pathToSave };
|
|
16
|
-
}
|
|
17
|
-
catch (err) {
|
|
18
|
-
return { err: err.toString(), status: 500 };
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
|
-
import config from '../../../../config.js';
|
|
3
|
-
import hookList from '../hookList.js';
|
|
4
|
-
|
|
5
|
-
export default async function applyHook(name, data) {
|
|
6
|
-
const { trace } = config;
|
|
7
|
-
if (trace) console.log('applyHook', name);
|
|
8
|
-
if (!hookList[name]?.length) return null;
|
|
9
|
-
const result = {};
|
|
10
|
-
await Promise.all(hookList[name].map(async (hook) => {
|
|
11
|
-
const hookData = await hook({ ...data, config });
|
|
12
|
-
if (hookData) {
|
|
13
|
-
if (trace) console.log('applyHook', name, hookData);
|
|
14
|
-
Object.assign(result, hookData);
|
|
15
|
-
}
|
|
16
|
-
})).catch((err) => {
|
|
17
|
-
console.error('applyHook', name, err.toString());
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
if (Object.keys(result).length) {
|
|
21
|
-
return result;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default {};
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
|
-
|
|
3
|
-
const streams = {};
|
|
4
|
-
|
|
5
|
-
import build from 'pino-abstract-transport';
|
|
6
|
-
import fs from 'node:fs';
|
|
7
|
-
|
|
8
|
-
import labels from './labels.js';
|
|
9
|
-
import timestampWithTimeZone from './timestampWithTimeZone.js';
|
|
10
|
-
|
|
11
|
-
import config from '../../../config.js';
|
|
12
|
-
|
|
13
|
-
const generator = () => () => `${timestampWithTimeZone().split('T')[0].replace(/:/g, '_')}.log`;
|
|
14
|
-
|
|
15
|
-
const {
|
|
16
|
-
dir = 'log', interval = '1d', compress = 'gzip', // maxFiles = 90, local: teeToStdout,
|
|
17
|
-
} = config?.log || {};
|
|
18
|
-
function createFileStream({ level, status }) {
|
|
19
|
-
console.log(dir, level, generator({ interval })(), interval, compress);
|
|
20
|
-
/* const params = {
|
|
21
|
-
maxFiles, // logs to save limit
|
|
22
|
-
history: 'history', // history file name
|
|
23
|
-
interval, // rotate daily
|
|
24
|
-
compress, // compress rotated files
|
|
25
|
-
teeToStdout, // debug / logs to stdout
|
|
26
|
-
path: `${dir}/${level}`, // absolute path (root directory)
|
|
27
|
-
intervalBoundary: true, // true - log name with lower boundary of rotation interval
|
|
28
|
-
initialRotation: true, // true - log rotation check on init
|
|
29
|
-
// intervalUTC: true, // local tz -> utc
|
|
30
|
-
};
|
|
31
|
-
return createStream(generator({ interval }), params); */
|
|
32
|
-
const dt = new Date().toISOString().split('T')[0];
|
|
33
|
-
|
|
34
|
-
const fileName = `${dir}/${level}/${dt}${status ? `_${status}` : ''}.log`;
|
|
35
|
-
|
|
36
|
-
fs.mkdirSync(`${dir}/${level}`, { recursive: true });
|
|
37
|
-
|
|
38
|
-
const stream = fs.createWriteStream(fileName, {
|
|
39
|
-
encoding: 'utf8', flags: 'a+',
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
stream.on('finish', () => stream.destroy());
|
|
43
|
-
stream.on('close', () => stream.destroy());
|
|
44
|
-
stream.on('error', () => stream.destroy());
|
|
45
|
-
return stream;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
setInterval(() => {
|
|
49
|
-
const dt = new Date().toISOString().split('T')[0];
|
|
50
|
-
Object.keys(streams).filter(el => !el.includes(dt)).forEach(el => streams[el].destroy());
|
|
51
|
-
}, 1000 * 3600 * 2);
|
|
52
|
-
|
|
53
|
-
export default function transportTarget() {
|
|
54
|
-
return build((source) => {
|
|
55
|
-
const dt = new Date().toISOString().split('T')[0];
|
|
56
|
-
source.on('data', (obj) => {
|
|
57
|
-
if (['incoming request', 'request completed'].includes(obj.msg)) return;
|
|
58
|
-
|
|
59
|
-
// console.log(obj)
|
|
60
|
-
const file = obj.msg?.logfolder || obj.logfolder;
|
|
61
|
-
|
|
62
|
-
const level = file || labels[obj.level];
|
|
63
|
-
const lvl = level + dt;
|
|
64
|
-
|
|
65
|
-
// write error status
|
|
66
|
-
if (obj.err?.status) {
|
|
67
|
-
const status = obj.err?.status;
|
|
68
|
-
streams[status] = streams[status] || createFileStream({ level, status });
|
|
69
|
-
streams[status].write(`${JSON.stringify({ ...obj, level: labels[obj.level] })}\n`);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// write error type
|
|
73
|
-
if (obj.err?.type) {
|
|
74
|
-
const status = obj.err?.type;
|
|
75
|
-
streams[status] = streams[status] || createFileStream({ level, status });
|
|
76
|
-
streams[status].write(`${JSON.stringify({ ...obj, level: labels[obj.level] })}\n`);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
if (streams[lvl]?.closed) { streams[lvl].destroy(); }
|
|
80
|
-
if (streams[lvl]?.destroyed) { delete streams[lvl]; }
|
|
81
|
-
|
|
82
|
-
streams[lvl] = streams[lvl] || createFileStream({ level });
|
|
83
|
-
streams[lvl].write(`${JSON.stringify({ ...obj, level: labels[obj.level] })}\n`);
|
|
84
|
-
});
|
|
85
|
-
}, {
|
|
86
|
-
parseLine: (line) => JSON.parse(line),
|
|
87
|
-
});
|
|
88
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import config from '../../../config.js';
|
|
2
|
-
import applyHookSync from '../hook/funcs/applyHookSync.js';
|
|
3
|
-
import errorStatus from './errorStatus.js';
|
|
4
|
-
|
|
5
|
-
const defaultMessage = {
|
|
6
|
-
602: 'Порушення цілісності бази даних',
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
function errorMessage(error) {
|
|
10
|
-
const hook = applyHookSync('errorMessage', error);
|
|
11
|
-
if (hook) return hook;
|
|
12
|
-
|
|
13
|
-
if (error.routine === 'exec_stmt_raise' && error.file === 'pl_exec.c') {
|
|
14
|
-
return error.message;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
// messgae status
|
|
18
|
-
const status = errorStatus(error);
|
|
19
|
-
if (config.errorMessage?.[status]) return config.errorMessage[status.toString()];
|
|
20
|
-
if (defaultMessage[status]) return defaultMessage[status];
|
|
21
|
-
|
|
22
|
-
return config.local ? error.toString() : (config.errorMessage?.[500] || 'ServerError');
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export default errorMessage;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import applyHookSync from '../hook/funcs/applyHookSync.js';
|
|
2
|
-
|
|
3
|
-
function errorStatus(error) {
|
|
4
|
-
const hook = applyHookSync('errorStatus', error);
|
|
5
|
-
if (hook) return hook;
|
|
6
|
-
|
|
7
|
-
if (error.routine === 'exec_stmt_raise' && error.file === 'pl_exec.c') {
|
|
8
|
-
return 601;
|
|
9
|
-
}
|
|
10
|
-
if (error.routine === 'ExecConstraints') {
|
|
11
|
-
return 602;
|
|
12
|
-
}
|
|
13
|
-
if (error.type === 'DatabaseError') {
|
|
14
|
-
return 600;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return 500;
|
|
18
|
-
}
|
|
19
|
-
export default errorStatus;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import errorStatus from './errorStatus.js';
|
|
2
|
-
|
|
3
|
-
function getHooks() {
|
|
4
|
-
return {
|
|
5
|
-
logMethod(inputArgs, method) {
|
|
6
|
-
// string name param to object
|
|
7
|
-
|
|
8
|
-
if (inputArgs?.length === 2 && inputArgs[1]?.originalUrl) {
|
|
9
|
-
const req = inputArgs[1];
|
|
10
|
-
const err = inputArgs[0]?.stack ? inputArgs[0] : undefined;
|
|
11
|
-
if (err) err.status = errorStatus(err);
|
|
12
|
-
|
|
13
|
-
return method.apply(this, [{ req, err }, err ? inputArgs[0].toString() : inputArgs[0]]);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return method.apply(this, inputArgs);
|
|
17
|
-
},
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export default getHooks;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
|
-
|
|
3
|
-
import pino from 'pino';
|
|
4
|
-
// import path from 'node:path';
|
|
5
|
-
|
|
6
|
-
import config from '../../../config.js';
|
|
7
|
-
import getRedis from '../redis/funcs/getRedis.js';
|
|
8
|
-
import redactionList from '../../../redactionList.js';
|
|
9
|
-
|
|
10
|
-
// utils
|
|
11
|
-
import getHooks from './getHooks.js';
|
|
12
|
-
import serializers from './serializers.js';
|
|
13
|
-
import timestampWithTimeZone from './timestampWithTimeZone.js';
|
|
14
|
-
|
|
15
|
-
const isServer = process.argv[2];
|
|
16
|
-
|
|
17
|
-
const rclient2 = getRedis({ db: 2 });
|
|
18
|
-
|
|
19
|
-
if (!config.log) config.log = {};
|
|
20
|
-
|
|
21
|
-
const level = config.log?.level || process.env.PINO_LOG_LEVEL || 'info';
|
|
22
|
-
console.log(`log level: ${level}`);
|
|
23
|
-
const options = {
|
|
24
|
-
level, // minimal log level to write
|
|
25
|
-
timestamp: () => `,"time":"${timestampWithTimeZone()}"`, // timestamp as isostring
|
|
26
|
-
hooks: getHooks(),
|
|
27
|
-
serializers, // custom log params
|
|
28
|
-
transport: {
|
|
29
|
-
targets: [{
|
|
30
|
-
target: './createFileStream.js', // path.resolve('utils/createFileStream.js')
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
level: 'error',
|
|
34
|
-
target: 'pino/file',
|
|
35
|
-
options: { destination: 1 },
|
|
36
|
-
},
|
|
37
|
-
],
|
|
38
|
-
},
|
|
39
|
-
redact: redactionList,
|
|
40
|
-
};
|
|
41
|
-
const logger = pino(options);
|
|
42
|
-
|
|
43
|
-
logger.file = function userFile(logfolder, msg, req) {
|
|
44
|
-
logger.info({ logfolder, ...(typeof msg === 'string' ? { msg } : msg) }, req);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
if (config.debug) {
|
|
48
|
-
logger.file('test/redaction', { clientId: 'should be redacted', clientSecret: 'should be redacted' });
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
logger.metrics = function metrics(key, val, dbName) {
|
|
52
|
-
const dbname = dbName || config.pg?.database;
|
|
53
|
-
if (!dbname && !isServer) return;
|
|
54
|
-
if (!config.redis) return;
|
|
55
|
-
rclient2.hincrby(`${dbname}:system_metrics`, key, val || 1);
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
export default logger;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import errorMessage from './errorMessage.js';
|
|
2
|
-
import logger from './getLogger.js';
|
|
3
|
-
import pgClients from '../pg/pgClients.js';
|
|
4
|
-
|
|
5
|
-
async function plugin(fastify) {
|
|
6
|
-
fastify.addHook('onResponse', async (req, reply) => {
|
|
7
|
-
if (reply?.statusCode && reply.statusCode >= 400) {
|
|
8
|
-
logger.metrics(`error-count:${reply.statusCode}`);
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
fastify.setErrorHandler(async (error, request, reply) => {
|
|
13
|
-
// validation not error
|
|
14
|
-
if (error.validation) {
|
|
15
|
-
request.log.warn(request, { code: error?.code, status: 422, error: error.toString() });
|
|
16
|
-
return reply.status(422).send(error.toString());
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// logger
|
|
20
|
-
request.log.error(error, request);
|
|
21
|
-
console.error({ msg: error.message, where: error.where, stack: error.stack });
|
|
22
|
-
|
|
23
|
-
// errorMessage
|
|
24
|
-
const msg = errorMessage(error);
|
|
25
|
-
|
|
26
|
-
return reply.status(error.statusCode || 500).send(msg);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
fastify.addHook('onListen', async () => {
|
|
30
|
-
logger.file('init', { db: pgClients.client?.options?.database });
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
export default plugin;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
const serializers = {
|
|
2
|
-
req(request) {
|
|
3
|
-
const {
|
|
4
|
-
method, url, referer, params, query, body, session,
|
|
5
|
-
} = request;
|
|
6
|
-
const { uid = undefined, user_name: userName = undefined } = session?.passport?.user || {};
|
|
7
|
-
return {
|
|
8
|
-
method,
|
|
9
|
-
url,
|
|
10
|
-
referer,
|
|
11
|
-
ip: request.headers?.['x-real-ip']
|
|
12
|
-
|| request.headers?.['x-forwarded-for']
|
|
13
|
-
|| request.ip
|
|
14
|
-
|| request.connection?.remoteAddress,
|
|
15
|
-
uid,
|
|
16
|
-
dbName: request.pg?.options?.database,
|
|
17
|
-
user_name: userName,
|
|
18
|
-
params,
|
|
19
|
-
query,
|
|
20
|
-
body,
|
|
21
|
-
};
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export default serializers;
|