@opengis/fastify-table 1.4.88 → 1.5.1
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 +126 -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 +23 -16
- 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 -156
- 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,106 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-param-reassign */
|
|
2
|
-
/**
|
|
3
|
-
* Форматування часу скільки залишилося чи пройшло від заданого
|
|
4
|
-
*
|
|
5
|
-
* @priority 3
|
|
6
|
-
* @deprecated true
|
|
7
|
-
* @type helper
|
|
8
|
-
* @alias formatRelative
|
|
9
|
-
* @example
|
|
10
|
-
* {{formatRelative '2022-01-13T13:05:40.841795' locate='ua'}}
|
|
11
|
-
* @example
|
|
12
|
-
* {{formatRelative '2022-01-13T13:20:40.841795' locate='ua' percent=1}}
|
|
13
|
-
* @param {Any} percent Будь-яке значення для відображення часу у відсотках
|
|
14
|
-
* @param {String} locale Мова якою відобразити час: en ru ua
|
|
15
|
-
* @param {String} data Отримана та введена дата для форматування
|
|
16
|
-
* @param {String} short
|
|
17
|
-
* @param {String} units
|
|
18
|
-
* @param {String} unit
|
|
19
|
-
* @param {String} data_only
|
|
20
|
-
* @returns {String} Returns HTML
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
export default function formatRelative(data, options) {
|
|
24
|
-
if (!data) return 'Date is required';
|
|
25
|
-
if (typeof data === 'string') {
|
|
26
|
-
data = new Date(data);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
let chLang;
|
|
30
|
-
let timeOut;
|
|
31
|
-
|
|
32
|
-
const locale = options.hash.locate || 'en';
|
|
33
|
-
|
|
34
|
-
const dateFrom = data;
|
|
35
|
-
const dateTo = options.hash.date_to ? new Date(options.hash.date_to) : new Date();
|
|
36
|
-
|
|
37
|
-
const templDifPast = {
|
|
38
|
-
ua: ['секунд тому', 'хвилин тому', 'годин тому', 'днів тому', 'тижнів тому', 'місяців тому', 'років тому', 'Вибачте, але заданого типу не існує'],
|
|
39
|
-
ru: ['секунд назад', 'минут назад', 'часов назад', 'дней назад', 'недель назад', 'місяцев назад', 'лет назад', 'Простите, но данного типа не существует'],
|
|
40
|
-
en: ['seconds ago', 'minutes ago', 'hours ago', 'days ago', 'weeks ago', 'months ago', 'years ago', 'Sorry, no such type of date '],
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const templDifFeature = {
|
|
44
|
-
ua: ['секунд залишилось', 'хвилин залишилось', 'годин залишилось', 'днів залишилось', 'тижнів залишилось', 'місяців залишилось', 'років залишилось', 'Вибачте, але заданого типу не існує'],
|
|
45
|
-
ru: ['секунд осталось', 'минут осталось', 'часов осталось', 'дней осталось', 'недель осталось', 'місяцев осталось', 'лет осталось', 'Простите, но данного типа не существует'],
|
|
46
|
-
en: ['seconds left', 'minutes left', 'hours left', 'days left', 'weeks left', 'months left', 'years left', 'Sorry, no such type of date '],
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
const short = {
|
|
50
|
-
ua: ['сек', 'хв', 'год', 'дн', 'тижд', 'міс', 'р', 'Вибачте, але заданого типу не існує'],
|
|
51
|
-
ru: ['сек', 'мин', 'час', 'дн', 'нед', 'мес', 'г', 'Простите, но данного типа не существует'],
|
|
52
|
-
en: ['sec', 'min', 'hr', 'day', 'wk', 'mon', 'y', 'Sorry, no such type of date '],
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
let dif = Math.floor(dateTo.getTime() - dateFrom.getTime()) / 1000;
|
|
56
|
-
|
|
57
|
-
if (options.hash.percent) {
|
|
58
|
-
return ((new Date().getTime() - dateFrom.getTime()) * 100) / (dateTo.getTime() - dateFrom.getTime());
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if (dif > 0) {
|
|
62
|
-
chLang = options.hash.short ? short[locale] : templDifPast[locale];
|
|
63
|
-
}
|
|
64
|
-
else if (dif < 0) {
|
|
65
|
-
chLang = options.hash.short ? short[locale] : templDifFeature[locale];
|
|
66
|
-
}
|
|
67
|
-
dif = Math.abs(dif);
|
|
68
|
-
|
|
69
|
-
const bestFit = [
|
|
70
|
-
dif < 60,
|
|
71
|
-
dif < 3600,
|
|
72
|
-
dif < 3600 * 24,
|
|
73
|
-
dif < 3600 * 24 * 30,
|
|
74
|
-
dif < 3600 * 24 * 365,
|
|
75
|
-
].lastIndexOf(false) + 1;
|
|
76
|
-
|
|
77
|
-
options.hash.units = options.hash.units || options.hash.unit || ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'][bestFit];
|
|
78
|
-
|
|
79
|
-
switch (options.hash.units) {
|
|
80
|
-
case 'second':
|
|
81
|
-
timeOut = `${dif} ${options.hash.data_only ? '' : chLang[0]}`;
|
|
82
|
-
break;
|
|
83
|
-
case 'minute':
|
|
84
|
-
timeOut = `${Math.floor(dif / 60)} ${options.hash.data_only ? '' : chLang[1]}`;
|
|
85
|
-
break;
|
|
86
|
-
case 'hour':
|
|
87
|
-
timeOut = `${Math.floor(dif / (60 * 60))} ${options.hash.data_only ? '' : chLang[2]}`;
|
|
88
|
-
break;
|
|
89
|
-
case 'day':
|
|
90
|
-
timeOut = `${Math.floor(dif / (60 * 60 * 24))} ${options.hash.data_only ? '' : chLang[3]}`;
|
|
91
|
-
break;
|
|
92
|
-
case 'week':
|
|
93
|
-
timeOut = `${Math.floor(dif / (60 * 60 * 24 * 7))} ${options.hash.data_only ? '' : chLang[4]}`;
|
|
94
|
-
break;
|
|
95
|
-
case 'month':
|
|
96
|
-
timeOut = `${Math.floor(dif / (60 * 60 * 24 * 30))} ${options.hash.data_only ? '' : chLang[5]}`;
|
|
97
|
-
break;
|
|
98
|
-
case 'year':
|
|
99
|
-
timeOut = `${Math.floor(dif / (60 * 60 * 24 * 365))} ${options.hash.data_only ? '' : chLang[6]}`;
|
|
100
|
-
break;
|
|
101
|
-
default:
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return timeOut;
|
|
106
|
-
}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-param-reassign */
|
|
2
|
-
/**
|
|
3
|
-
* Перетинає два масиви
|
|
4
|
-
*
|
|
5
|
-
* @example
|
|
6
|
-
* // returns [1, 4, 5, 6]
|
|
7
|
-
* intersect([1,2,3,4,5,6],[1,4,5,6,7,8,9,11])
|
|
8
|
-
* @param {Array} a
|
|
9
|
-
* @param {Array} b
|
|
10
|
-
* @returns {Array} Returns new intersect array
|
|
11
|
-
*/
|
|
12
|
-
function intersect(a, b) {
|
|
13
|
-
let aN = a; let bN = b;
|
|
14
|
-
if (b.length > a.length) {
|
|
15
|
-
[aN, bN] = [bN, aN];
|
|
16
|
-
}
|
|
17
|
-
return aN.filter((e) => bN.includes(e));
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Створення шаблона або його частини внаслідок перевірки значення із веб-запиту та заздалегідь прописаного значення.
|
|
22
|
-
* Дозволяє змінювати наповнення сторінки через ряд перевірок. Є можливість внесення додаткової умови - що робити, коли умова не виконується.
|
|
23
|
-
*
|
|
24
|
-
* @summary Перевірка двох значень та виконання коду при виконанні умови, а також у всіх інших випадках.
|
|
25
|
-
* @priority 5
|
|
26
|
-
* @alias ifCond
|
|
27
|
-
* @type helper
|
|
28
|
-
* @tag condition
|
|
29
|
-
* @example
|
|
30
|
-
* {{#ifCond @root.req.domain 'in' 'help.softpro.ua,123'}} {{select user.uid data="get_full_uid"}} {{^}} Умова не виконана {{/ifCond}}
|
|
31
|
-
* @example
|
|
32
|
-
* {{#ifCond "1234567890" 'in' @root.user.group_list}} 1=1 {{^}} uid='{{uid}}' {{/ifCond}}
|
|
33
|
-
* @example
|
|
34
|
-
* {{#ifCond 'debug' 'in' @root.setting.core.setting}}Умова виконана{{^}}Не виконана умова{{/ifCond}}
|
|
35
|
-
* @param {Array} args Параметри для значень і умов
|
|
36
|
-
* @param {Array} args[0] Перше значення
|
|
37
|
-
* @param {Array} args[1] Оператор
|
|
38
|
-
* @param {Array} args[2] Друге значення
|
|
39
|
-
* @returns {String} Returns HTML
|
|
40
|
-
*/
|
|
41
|
-
export default function ifCond(v1, operator, v2, options) {
|
|
42
|
-
const obj = this;
|
|
43
|
-
|
|
44
|
-
const isEmpty = (val) => val === null || val === undefined || (Array.isArray(val) && val.length === 0) || val === '';
|
|
45
|
-
|
|
46
|
-
switch (operator) {
|
|
47
|
-
case '==':
|
|
48
|
-
// eslint-disable-next-line eqeqeq
|
|
49
|
-
return (v1 == v2) ? options.fn(obj) : options.inverse(obj);
|
|
50
|
-
case '!=':
|
|
51
|
-
// eslint-disable-next-line eqeqeq
|
|
52
|
-
return (v1 != v2) ? options.fn(obj) : options.inverse(obj);
|
|
53
|
-
case '===':
|
|
54
|
-
return (v1 === v2) ? options.fn(obj) : options.inverse(obj);
|
|
55
|
-
case '!==':
|
|
56
|
-
return (v1 !== v2) ? options.fn(obj) : options.inverse(obj);
|
|
57
|
-
case '&&':
|
|
58
|
-
return (v1 && v2) ? options.fn(obj) : options.inverse(obj);
|
|
59
|
-
case '||':
|
|
60
|
-
return (v1 || v2) ? options.fn(obj) : options.inverse(obj);
|
|
61
|
-
case '<':
|
|
62
|
-
return (v1 < v2) ? options.fn(obj) : options.inverse(obj);
|
|
63
|
-
case '<=':
|
|
64
|
-
return (v1 <= v2) ? options.fn(obj) : options.inverse(obj);
|
|
65
|
-
case '>':
|
|
66
|
-
return (v1 > v2) ? options.fn(obj) : options.inverse(obj);
|
|
67
|
-
case '>=':
|
|
68
|
-
return (v1 >= v2) ? options.fn(obj) : options.inverse(obj);
|
|
69
|
-
case '&':
|
|
70
|
-
return (!isEmpty(v1) && !isEmpty(v2) && intersect(v1, v2).length !== 0)
|
|
71
|
-
? options.fn(obj)
|
|
72
|
-
: options.inverse(obj);
|
|
73
|
-
case '!~':
|
|
74
|
-
return (v1 || '').indexOf(v2) === -1
|
|
75
|
-
? options.fn(obj)
|
|
76
|
-
: options.inverse(obj);
|
|
77
|
-
case '~':
|
|
78
|
-
return (v1 || '').indexOf(v2) !== -1
|
|
79
|
-
? options.fn(obj)
|
|
80
|
-
: options.inverse(obj);
|
|
81
|
-
case 'period':
|
|
82
|
-
return (!isEmpty(v1) && !isEmpty(v2) && new Date(v1) < new Date() && new Date(v2) > new Date())
|
|
83
|
-
? options.fn(obj)
|
|
84
|
-
: options.inverse(obj);
|
|
85
|
-
case 'in': {
|
|
86
|
-
if (typeof v2 === 'string') v2 = v2.split(',').map(item => item.trim());
|
|
87
|
-
if (isEmpty(v1) || isEmpty(v2)) return options.inverse(obj);
|
|
88
|
-
|
|
89
|
-
if (Array.isArray(v1)) {
|
|
90
|
-
return v1.some((value) => v2.includes(value.toString()))
|
|
91
|
-
? options.fn(obj)
|
|
92
|
-
: options.inverse(obj);
|
|
93
|
-
}
|
|
94
|
-
return v2.includes(v1.toString())
|
|
95
|
-
? options.fn(obj)
|
|
96
|
-
: options.inverse(obj);
|
|
97
|
-
}
|
|
98
|
-
case 'not in': {
|
|
99
|
-
if (typeof v2 === 'string') v2 = v2.split(',').map(item => item.trim());
|
|
100
|
-
if (isEmpty(v1) || isEmpty(v2)) return options.inverse(obj);
|
|
101
|
-
|
|
102
|
-
return !v2.includes(v1.toString())
|
|
103
|
-
? options.fn(obj)
|
|
104
|
-
: options.inverse(obj);
|
|
105
|
-
}
|
|
106
|
-
default:
|
|
107
|
-
return options.inverse(obj);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
/* eslint-disable prefer-rest-params */
|
|
2
|
-
function intersect(a, b) {
|
|
3
|
-
let aN = [];
|
|
4
|
-
let bN = [];
|
|
5
|
-
|
|
6
|
-
if (Array.isArray(a)) {
|
|
7
|
-
aN = a;
|
|
8
|
-
}
|
|
9
|
-
else if (typeof a === 'string') {
|
|
10
|
-
aN = a.split(',');
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (Array.isArray(b)) {
|
|
14
|
-
bN = b;
|
|
15
|
-
}
|
|
16
|
-
else if (typeof b === 'string') {
|
|
17
|
-
bN = b.split(',');
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
return aN.filter(e => bN.includes(e));
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Створення шаблона або його частини внаслідок виконання одразу декількох перевірок, кожна з яких повинна повернути true.
|
|
25
|
-
* Якщо хоча б одна умова не виконується, код у межах хелпера також не виконується.
|
|
26
|
-
*
|
|
27
|
-
* @summary Створення шаблона за перевіркою виконання декількох умов.
|
|
28
|
-
* @priority 4
|
|
29
|
-
* @type helper
|
|
30
|
-
* @tag condition
|
|
31
|
-
* @alias ifCondAnd
|
|
32
|
-
* @example
|
|
33
|
-
* {{#ifCondAnd 1 '==' 1 2 'in' '2,3' 2 'in' '1,2' }}1{{^}}2{{/ifCondAnd}}
|
|
34
|
-
* @descr Виконання перевірки порівняння параметрів та їх входження до певного масиву (множини)
|
|
35
|
-
* @example
|
|
36
|
-
*/
|
|
37
|
-
export default function ifCondAnd() {
|
|
38
|
-
const args = Array.from(arguments);
|
|
39
|
-
const options = args.pop();
|
|
40
|
-
|
|
41
|
-
const conditions = [];
|
|
42
|
-
for (let i = 0; i < args.length; i += 3) {
|
|
43
|
-
const v1 = args[i];
|
|
44
|
-
const operator = args[i + 1];
|
|
45
|
-
let v2 = args[i + 2];
|
|
46
|
-
|
|
47
|
-
switch (operator) {
|
|
48
|
-
case '==':
|
|
49
|
-
// eslint-disable-next-line eqeqeq
|
|
50
|
-
conditions.push(v1 == v2);
|
|
51
|
-
break;
|
|
52
|
-
case '!=':
|
|
53
|
-
// eslint-disable-next-line eqeqeq
|
|
54
|
-
conditions.push(v1 != v2);
|
|
55
|
-
break;
|
|
56
|
-
case '===':
|
|
57
|
-
conditions.push(v1 === v2);
|
|
58
|
-
break;
|
|
59
|
-
case '!==':
|
|
60
|
-
conditions.push(v1 !== v2);
|
|
61
|
-
break;
|
|
62
|
-
case '&&':
|
|
63
|
-
conditions.push(v1 && v2);
|
|
64
|
-
break;
|
|
65
|
-
case '||':
|
|
66
|
-
conditions.push(v1 || v2);
|
|
67
|
-
break;
|
|
68
|
-
case '<':
|
|
69
|
-
conditions.push(v1 < v2);
|
|
70
|
-
break;
|
|
71
|
-
case '<=':
|
|
72
|
-
conditions.push(v1 <= v2);
|
|
73
|
-
break;
|
|
74
|
-
case '>':
|
|
75
|
-
conditions.push(v1 > v2);
|
|
76
|
-
break;
|
|
77
|
-
case '>=':
|
|
78
|
-
conditions.push(v1 >= v2);
|
|
79
|
-
break;
|
|
80
|
-
case '&':
|
|
81
|
-
conditions.push(intersect(v1, v2).length > 0);
|
|
82
|
-
break;
|
|
83
|
-
case '!~':
|
|
84
|
-
conditions.push((v1 || '').indexOf(v2) === -1);
|
|
85
|
-
break;
|
|
86
|
-
case '~':
|
|
87
|
-
conditions.push((v1 || '').indexOf(v2) !== -1);
|
|
88
|
-
break;
|
|
89
|
-
case 'period':
|
|
90
|
-
conditions.push(new Date(v1) < new Date() && new Date(v2) > new Date());
|
|
91
|
-
break;
|
|
92
|
-
case 'in': {
|
|
93
|
-
if (typeof v2 === 'string') v2 = v2.split(',').map(item => item.trim());
|
|
94
|
-
if (Array.isArray(v1)) {
|
|
95
|
-
conditions.push(v1.some((value) => v2.includes(value.toString())));
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
conditions.push(v2.includes(v1.toString()));
|
|
99
|
-
}
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
case 'not in': {
|
|
103
|
-
if (typeof v2 === 'string') v2 = v2.split(',').map(item => item.trim());
|
|
104
|
-
conditions.push(!v2.includes(v1.toString()));
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
107
|
-
default:
|
|
108
|
-
conditions.push(false);
|
|
109
|
-
break;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return conditions.every(Boolean) ? options.fn(this) : options.inverse(this);
|
|
114
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/* eslint-disable prefer-rest-params */
|
|
2
|
-
function intersect(a, b) {
|
|
3
|
-
let aN = [];
|
|
4
|
-
let bN = [];
|
|
5
|
-
|
|
6
|
-
if (Array.isArray(a)) {
|
|
7
|
-
aN = a;
|
|
8
|
-
}
|
|
9
|
-
else if (typeof a === 'string') {
|
|
10
|
-
aN = a.split(',');
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (Array.isArray(b)) {
|
|
14
|
-
bN = b;
|
|
15
|
-
}
|
|
16
|
-
else if (typeof b === 'string') {
|
|
17
|
-
bN = b.split(',');
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
return aN.filter(e => bN.includes(e));
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Створення шаблона або його частини внаслідок виконання одразу декількох перевірок, хоча б одна з яких повинна повернути true
|
|
25
|
-
*
|
|
26
|
-
* @summary Створення шаблона за перевіркою "АБО". Повинна виконатись хоча б одна умова.
|
|
27
|
-
* @priority 4
|
|
28
|
-
* @type helper
|
|
29
|
-
* @tag condition
|
|
30
|
-
* @alias ifCondOr
|
|
31
|
-
* @example
|
|
32
|
-
* {{#ifCondOr 1 '==' 1 2 'in' '2,3' 2 'in' '1,2' }}Хоча б одна умова виконана{{^}}Жодна умова не була виконана{{/ifCondOr}}
|
|
33
|
-
* @descr Виконання перевірки порівняння параметрів та їх входження до певного масиву (множини)
|
|
34
|
-
* @example
|
|
35
|
-
* @param {Array} args Параметри для значень і умов
|
|
36
|
-
* @returns {String} Returns HTML
|
|
37
|
-
*/
|
|
38
|
-
export default function ifCondOr() {
|
|
39
|
-
const args = Array.from(arguments);
|
|
40
|
-
const options = args.pop();
|
|
41
|
-
|
|
42
|
-
const conditions = [];
|
|
43
|
-
for (let i = 0; i < args.length; i += 3) {
|
|
44
|
-
const v1 = args[i];
|
|
45
|
-
const operator = args[i + 1];
|
|
46
|
-
let v2 = args[i + 2];
|
|
47
|
-
|
|
48
|
-
switch (operator) {
|
|
49
|
-
case '==':
|
|
50
|
-
// eslint-disable-next-line eqeqeq
|
|
51
|
-
conditions.push(v1 == v2);
|
|
52
|
-
break;
|
|
53
|
-
case '!=':
|
|
54
|
-
// eslint-disable-next-line eqeqeq
|
|
55
|
-
conditions.push(v1 != v2);
|
|
56
|
-
break;
|
|
57
|
-
case '===':
|
|
58
|
-
conditions.push(v1 === v2);
|
|
59
|
-
break;
|
|
60
|
-
case '!==':
|
|
61
|
-
conditions.push(v1 !== v2);
|
|
62
|
-
break;
|
|
63
|
-
case '&&':
|
|
64
|
-
conditions.push(v1 && v2);
|
|
65
|
-
break;
|
|
66
|
-
case '||':
|
|
67
|
-
conditions.push(v1 || v2);
|
|
68
|
-
break;
|
|
69
|
-
case '<':
|
|
70
|
-
conditions.push(v1 < v2);
|
|
71
|
-
break;
|
|
72
|
-
case '<=':
|
|
73
|
-
conditions.push(v1 <= v2);
|
|
74
|
-
break;
|
|
75
|
-
case '>':
|
|
76
|
-
conditions.push(v1 > v2);
|
|
77
|
-
break;
|
|
78
|
-
case '>=':
|
|
79
|
-
conditions.push(v1 >= v2);
|
|
80
|
-
break;
|
|
81
|
-
case '&':
|
|
82
|
-
conditions.push(intersect(v1, v2).length > 0);
|
|
83
|
-
break;
|
|
84
|
-
case '!~':
|
|
85
|
-
conditions.push((v1 || '').indexOf(v2) === -1);
|
|
86
|
-
break;
|
|
87
|
-
case '~':
|
|
88
|
-
conditions.push((v1 || '').indexOf(v2) !== -1);
|
|
89
|
-
break;
|
|
90
|
-
case 'period':
|
|
91
|
-
conditions.push(new Date(v1) < new Date() && new Date(v2) > new Date());
|
|
92
|
-
break;
|
|
93
|
-
case 'in': {
|
|
94
|
-
if (typeof v2 === 'string') v2 = v2.split(',').map(item => item.trim());
|
|
95
|
-
if (Array.isArray(v1)) {
|
|
96
|
-
conditions.push(v1.some((value) => v2.includes(value.toString())));
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
conditions.push(v2.includes(v1.toString()));
|
|
100
|
-
}
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
case 'not in': {
|
|
104
|
-
if (typeof v2 === 'string') v2 = v2.split(',').map(item => item.trim());
|
|
105
|
-
conditions.push(!v2.includes(v1.toString()));
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
default:
|
|
109
|
-
conditions.push(false);
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
return conditions.some(Boolean) ? options.fn(this) : options.inverse(this);
|
|
115
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import qr from 'qrcode';
|
|
2
|
-
|
|
3
|
-
function isAllowedType(type) {
|
|
4
|
-
return Boolean({
|
|
5
|
-
png: 1, svg: 1, eps: 1, pdf: 1,
|
|
6
|
-
}[type]);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
function isAllowedErrorCorrectionLevel(ecLevel) {
|
|
10
|
-
return Boolean({
|
|
11
|
-
L: 1, M: 1, Q: 1, H: 1,
|
|
12
|
-
}[ecLevel]);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Генерує зображення з QR кодом, що перенаправляє на посилання.
|
|
17
|
-
*
|
|
18
|
-
* @summary Генератор QR код. Є можливість задання відступу та встановлення розширення вихідного зображення
|
|
19
|
-
* @priority 3
|
|
20
|
-
* @type helper
|
|
21
|
-
* @tag file
|
|
22
|
-
* @alias qrcode-generator-base64
|
|
23
|
-
* @example
|
|
24
|
-
* {{{qrcode-generator-base64 text=@root.req.domain type='png' margin=1}}}
|
|
25
|
-
* @param {String} text Змінна, що містить посилання на файл або сторінку
|
|
26
|
-
* @param {String} type Розширення зображення
|
|
27
|
-
* @param {String} ec_level (?)
|
|
28
|
-
* @param {Number} margin Відступ
|
|
29
|
-
* @param {Number} size Розмір
|
|
30
|
-
* @returns {String} Returns HTML
|
|
31
|
-
*/
|
|
32
|
-
export default async function qrcodeGenerator({ hash }) {
|
|
33
|
-
const text = String(hash?.text || '');
|
|
34
|
-
const type = String(hash?.type || 'png').toLowerCase();
|
|
35
|
-
const ecLevel = String(hash?.ec_level || 'M').toUpperCase();
|
|
36
|
-
const margin = Math.abs(hash?.margin || (type === 'png' ? 4 : 1));
|
|
37
|
-
let size;
|
|
38
|
-
|
|
39
|
-
if (type === 'png') {
|
|
40
|
-
size = Math.abs(hash?.size) || 5;
|
|
41
|
-
}
|
|
42
|
-
else if (type === 'svg') {
|
|
43
|
-
size = Math.abs(hash?.size) || undefined;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (!text) {
|
|
47
|
-
return 'Qr text is required.';
|
|
48
|
-
}
|
|
49
|
-
if (!isAllowedType(type)) {
|
|
50
|
-
return `Type "${type}" is not allowed.`;
|
|
51
|
-
}
|
|
52
|
-
if (!isAllowedErrorCorrectionLevel(ecLevel)) {
|
|
53
|
-
return `Error correction level "${ecLevel}" is not allowed.`;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const options = (type === 'png' || type === 'svg') ? {
|
|
57
|
-
ec_level: ecLevel, type, margin, size,
|
|
58
|
-
} : { ec_level: ecLevel, type, margin };
|
|
59
|
-
|
|
60
|
-
try {
|
|
61
|
-
const qrString = await qr.toDataURL(text, options);
|
|
62
|
-
|
|
63
|
-
return qrString;
|
|
64
|
-
}
|
|
65
|
-
catch (err) {
|
|
66
|
-
return err.toString();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import getPG from '../../plugins/pg/funcs/getPG.js';
|
|
2
|
-
import getSelect from '../../plugins/table/funcs/getSelect.js';
|
|
3
|
-
|
|
4
|
-
const pg = getPG();
|
|
5
|
-
|
|
6
|
-
// todo: remove dupe from npm/admin?
|
|
7
|
-
export default async function select(ids, options) {
|
|
8
|
-
if (!ids || (Array.isArray(ids) && ids.length === 0) || ids === '') {
|
|
9
|
-
return '';
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const data = options.hash?.data;
|
|
13
|
-
if (!data && data !== false && data !== 0) return '';
|
|
14
|
-
try {
|
|
15
|
-
const idsArray = Array.isArray(ids) ? ids : [ids];
|
|
16
|
-
|
|
17
|
-
const classifier = await getSelect(data);
|
|
18
|
-
|
|
19
|
-
if (!classifier) return `Не знайдено класифікатор ${data}`;
|
|
20
|
-
|
|
21
|
-
const arr = classifier.arr || [];
|
|
22
|
-
if (classifier.sql && typeof classifier.sql === 'string') {
|
|
23
|
-
const metaQuery = `SELECT * FROM (${classifier.sql})q LIMIT 0`;
|
|
24
|
-
const meta = await pg.query(metaQuery);
|
|
25
|
-
const idColumn = meta.fields[0].name;
|
|
26
|
-
const textColumn = meta.fields[1].name;
|
|
27
|
-
|
|
28
|
-
const q = `SELECT "${idColumn}" AS id, "${textColumn}" AS text FROM (${classifier.sql}) q WHERE "${idColumn}"::text = ANY($1::text[])`;
|
|
29
|
-
const values = [idsArray.map(id => String(id))];
|
|
30
|
-
|
|
31
|
-
const { rows } = await pg.query(q, values);
|
|
32
|
-
Object.assign(arr, rows);
|
|
33
|
-
}
|
|
34
|
-
if (!arr.length) return idsArray;
|
|
35
|
-
|
|
36
|
-
const results = idsArray.map(id => {
|
|
37
|
-
const result = arr.find(el => String(el.id) === String(id));
|
|
38
|
-
return result ? result.text : '';
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
return results.filter(Boolean).join(', ');
|
|
42
|
-
}
|
|
43
|
-
catch (err) {
|
|
44
|
-
return `Сталася помилка.<!-- err: ${err.toString()} -->`;
|
|
45
|
-
}
|
|
46
|
-
}
|