@opengis/fastify-table 2.5.54 → 3.0.0-beta.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/_virtual/_rolldown/runtime.js +1 -0
- package/dist/config.d.ts +4 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -43
- package/dist/config.js.map +1 -0
- package/dist/core.d.ts +26 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +2 -0
- package/dist/core.js.map +1 -0
- package/dist/dblist.d.ts +3 -1
- package/dist/dblist.d.ts.map +1 -1
- package/dist/dblist.js +2 -5
- package/dist/dblist.js.map +1 -0
- package/dist/errors.d.ts +48 -45
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -12
- package/dist/errors.js.map +1 -0
- package/dist/functions.js +22 -533
- package/dist/functions.js.map +1 -0
- package/dist/handlebars/core/badge.js +3 -0
- package/dist/handlebars/core/badge.js.map +1 -0
- package/dist/handlebars/core/buttonFilePreview.js +2 -0
- package/dist/handlebars/core/buttonFilePreview.js.map +1 -0
- package/dist/handlebars/core/buttonHelper.js +2 -0
- package/dist/handlebars/core/buttonHelper.js.map +1 -0
- package/dist/handlebars/core/token.js +2 -0
- package/dist/handlebars/core/token.js.map +1 -0
- package/dist/handlebars/format/formatAuto.js +2 -0
- package/dist/handlebars/format/formatAuto.js.map +1 -0
- package/dist/handlebars/format/formatDate.js +2 -0
- package/dist/handlebars/format/formatDate.js.map +1 -0
- package/dist/handlebars/format/formatDigit.js +2 -0
- package/dist/handlebars/format/formatDigit.js.map +1 -0
- package/dist/handlebars/format/formatNum.js +2 -0
- package/dist/handlebars/format/formatNum.js.map +1 -0
- package/dist/handlebars/format/formatNumber.js +2 -0
- package/dist/handlebars/format/formatNumber.js.map +1 -0
- package/dist/handlebars/format/formatRelative.js +2 -0
- package/dist/handlebars/format/formatRelative.js.map +1 -0
- package/dist/handlebars/format/formatUnit.js +2 -0
- package/dist/handlebars/format/formatUnit.js.map +1 -0
- package/dist/handlebars/format/num_format.js +2 -0
- package/dist/handlebars/format/num_format.js.map +1 -0
- package/dist/handlebars/format/set.js +2 -0
- package/dist/handlebars/format/set.js.map +1 -0
- package/dist/handlebars/funcs/_math.js +2 -0
- package/dist/handlebars/funcs/_math.js.map +1 -0
- package/dist/handlebars/funcs/contentList.js +2 -0
- package/dist/handlebars/funcs/contentList.js.map +1 -0
- package/dist/handlebars/funcs/empty.js +2 -0
- package/dist/handlebars/funcs/empty.js.map +1 -0
- package/dist/handlebars/funcs/ifCond.js +2 -0
- package/dist/handlebars/funcs/ifCond.js.map +1 -0
- package/dist/handlebars/funcs/ifCondAnd.js +2 -0
- package/dist/handlebars/funcs/ifCondAnd.js.map +1 -0
- package/dist/handlebars/funcs/ifCondOr.js +2 -0
- package/dist/handlebars/funcs/ifCondOr.js.map +1 -0
- package/dist/handlebars/funcs/inc.js +2 -0
- package/dist/handlebars/funcs/inc.js.map +1 -0
- package/dist/handlebars/funcs/json.js +2 -0
- package/dist/handlebars/funcs/json.js.map +1 -0
- package/dist/handlebars/funcs/qrcode.js +2 -0
- package/dist/handlebars/funcs/qrcode.js.map +1 -0
- package/dist/handlebars/funcs/round.js +2 -0
- package/dist/handlebars/funcs/round.js.map +1 -0
- package/dist/handlebars/funcs/select.js +2 -0
- package/dist/handlebars/funcs/select.js.map +1 -0
- package/dist/handlebars/index.d.ts +6 -0
- package/dist/handlebars/index.d.ts.map +1 -0
- package/dist/handlebars/index.js +2 -0
- package/dist/handlebars/index.js.map +1 -0
- package/dist/handlebars/list/descriptionList.js +10 -0
- package/dist/handlebars/list/descriptionList.js.map +1 -0
- package/dist/handlebars/list/tableList.js +6 -0
- package/dist/handlebars/list/tableList.js.map +1 -0
- package/dist/handlebars/list/utils/buttonDel.js +5 -0
- package/dist/handlebars/list/utils/buttonDel.js.map +1 -0
- package/dist/handlebars/list/utils/buttonEdit.js +5 -0
- package/dist/handlebars/list/utils/buttonEdit.js.map +1 -0
- package/dist/handlebars/string/coalesce.js +2 -0
- package/dist/handlebars/string/coalesce.js.map +1 -0
- package/dist/handlebars/string/concat.js +2 -0
- package/dist/handlebars/string/concat.js.map +1 -0
- package/dist/handlebars/string/split.js +2 -0
- package/dist/handlebars/string/split.js.map +1 -0
- package/dist/handlebars/string/str_replace.js +5 -0
- package/dist/handlebars/string/str_replace.js.map +1 -0
- package/dist/handlebars/string/substr.js +2 -0
- package/dist/handlebars/string/substr.js.map +1 -0
- package/dist/handlebars/string/translit.js +2 -0
- package/dist/handlebars/string/translit.js.map +1 -0
- package/dist/handlebars/string/utils/alphabet.js +2 -0
- package/dist/handlebars/string/utils/alphabet.js.map +1 -0
- package/dist/handlebars/utils/button.js +3 -0
- package/dist/handlebars/utils/button.js.map +1 -0
- package/dist/handlebars/utils/buttonAdd.js +17 -0
- package/dist/handlebars/utils/buttonAdd.js.map +1 -0
- package/dist/handlebars/utils/buttonDel.js +13 -0
- package/dist/handlebars/utils/buttonDel.js.map +1 -0
- package/dist/handlebars/utils/buttonDownload.js +2 -0
- package/dist/handlebars/utils/buttonDownload.js.map +1 -0
- package/dist/handlebars/utils/buttonEdit.js +5 -0
- package/dist/handlebars/utils/buttonEdit.js.map +1 -0
- package/dist/handlebars/utils/buttonPreview.js +2 -0
- package/dist/handlebars/utils/buttonPreview.js.map +1 -0
- package/dist/handlebars/utils/mdToHTML.js +2 -0
- package/dist/handlebars/utils/mdToHTML.js.map +1 -0
- package/dist/handlebars/utils/paddingNumber.js +2 -0
- package/dist/handlebars/utils/paddingNumber.js.map +1 -0
- package/dist/helper.js +2 -70
- package/dist/helper.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -279
- package/dist/index.js.map +1 -0
- package/dist/modules/auth/auth.route.js +2 -0
- package/dist/modules/auth/auth.route.js.map +1 -0
- package/dist/modules/auth/auth.schema.js +2 -0
- package/dist/modules/auth/auth.schema.js.map +1 -0
- package/dist/modules/auth/providers/totp.js +7 -0
- package/dist/modules/auth/providers/totp.js.map +1 -0
- package/dist/modules/auth/services/authorizeByEusign.js +1 -0
- package/dist/modules/auth/services/authorizeOAuth.js +2 -0
- package/dist/modules/auth/services/authorizeOAuth.js.map +1 -0
- package/dist/modules/auth/services/getAccessGroup.js +8 -0
- package/dist/modules/auth/services/getAccessGroup.js.map +1 -0
- package/dist/modules/auth/services/getAccessInterface.js +1 -0
- package/dist/modules/auth/services/getAccessUser.js +8 -0
- package/dist/modules/auth/services/getAccessUser.js.map +1 -0
- package/dist/modules/auth/services/getCurrentUser.js +35 -0
- package/dist/modules/auth/services/getCurrentUser.js.map +1 -0
- package/dist/modules/auth/services/index.js +1 -0
- package/dist/modules/auth/services/issueOAuthToken.js +2 -0
- package/dist/modules/auth/services/issueOAuthToken.js.map +1 -0
- package/dist/modules/auth/services/login.js +2 -0
- package/dist/modules/auth/services/login.js.map +1 -0
- package/dist/modules/auth/services/loginPage.js +2 -0
- package/dist/modules/auth/services/loginPage.js.map +1 -0
- package/dist/modules/auth/services/loginPageTwoFactor.js +3 -0
- package/dist/modules/auth/services/loginPageTwoFactor.js.map +1 -0
- package/dist/modules/auth/services/logout.js +2 -0
- package/dist/modules/auth/services/logout.js.map +1 -0
- package/dist/modules/auth/services/qrCodetwoFactor.js +3 -0
- package/dist/modules/auth/services/qrCodetwoFactor.js.map +1 -0
- package/dist/modules/auth/services/recover.js +2 -0
- package/dist/modules/auth/services/recover.js.map +1 -0
- package/dist/modules/auth/services/recoverTwoFactor.js +3 -0
- package/dist/modules/auth/services/recoverTwoFactor.js.map +1 -0
- package/dist/modules/auth/services/register.js +1 -0
- package/dist/modules/auth/services/resetTwoFactor.js +2 -0
- package/dist/modules/auth/services/resetTwoFactor.js.map +1 -0
- package/dist/modules/auth/services/setAccessGroup.js +5 -0
- package/dist/modules/auth/services/setAccessGroup.js.map +1 -0
- package/dist/modules/auth/services/setAccessUser.js +2 -0
- package/dist/modules/auth/services/setAccessUser.js.map +1 -0
- package/dist/modules/auth/services/updateCurrentUserInfo.js +2 -0
- package/dist/modules/auth/services/updateCurrentUserInfo.js.map +1 -0
- package/dist/modules/auth/services/verifyTwoFactor.js +3 -0
- package/dist/modules/auth/services/verifyTwoFactor.js.map +1 -0
- package/dist/modules/data/data.route.js +2 -0
- package/dist/modules/data/data.route.js.map +1 -0
- package/dist/modules/data/data.schema.js +2 -0
- package/dist/modules/data/data.schema.js.map +1 -0
- package/dist/modules/data/services/dictionary/createDictionary.js +2 -0
- package/dist/modules/data/services/dictionary/createDictionary.js.map +1 -0
- package/dist/modules/data/services/dictionary/createDictionaryValue.js +2 -0
- package/dist/modules/data/services/dictionary/createDictionaryValue.js.map +1 -0
- package/dist/modules/data/services/dictionary/deleteDictionary.js +2 -0
- package/dist/modules/data/services/dictionary/deleteDictionary.js.map +1 -0
- package/dist/modules/data/services/dictionary/deleteDictionaryValue.js +2 -0
- package/dist/modules/data/services/dictionary/deleteDictionaryValue.js.map +1 -0
- package/dist/modules/data/services/dictionary/getDictionary.js +2 -0
- package/dist/modules/data/services/dictionary/getDictionary.js.map +1 -0
- package/dist/modules/data/services/dictionary/index.js +1 -0
- package/dist/modules/data/services/dictionary/listDictionaries.js +2 -0
- package/dist/modules/data/services/dictionary/listDictionaries.js.map +1 -0
- package/dist/modules/data/services/dictionary/updateDictionary.js +2 -0
- package/dist/modules/data/services/dictionary/updateDictionary.js.map +1 -0
- package/dist/modules/data/services/dictionary/updateDictionaryValue.js +2 -0
- package/dist/modules/data/services/dictionary/updateDictionaryValue.js.map +1 -0
- package/dist/modules/data/services/file/attachFile.js +2 -0
- package/dist/modules/data/services/file/attachFile.js.map +1 -0
- package/dist/modules/data/services/file/deleteFileLink.js +2 -0
- package/dist/modules/data/services/file/deleteFileLink.js.map +1 -0
- package/dist/modules/data/services/file/getFileLink.js +11 -0
- package/dist/modules/data/services/file/getFileLink.js.map +1 -0
- package/dist/modules/data/services/file/index.js +1 -0
- package/dist/modules/data/services/file/listFiles.js +11 -0
- package/dist/modules/data/services/file/listFiles.js.map +1 -0
- package/dist/modules/data/services/index.js +1 -0
- package/dist/modules/data/services/note/createNote.js +2 -0
- package/dist/modules/data/services/note/createNote.js.map +1 -0
- package/dist/modules/data/services/note/deleteNote.js +2 -0
- package/dist/modules/data/services/note/deleteNote.js.map +1 -0
- package/dist/modules/data/services/note/getNote.js +6 -0
- package/dist/modules/data/services/note/getNote.js.map +1 -0
- package/dist/modules/data/services/note/index.js +1 -0
- package/dist/modules/data/services/note/listNotes.js +3 -0
- package/dist/modules/data/services/note/listNotes.js.map +1 -0
- package/dist/modules/data/services/note/updateNote.js +2 -0
- package/dist/modules/data/services/note/updateNote.js.map +1 -0
- package/dist/modules/data/services/relation/createRelation.js +2 -0
- package/dist/modules/data/services/relation/createRelation.js.map +1 -0
- package/dist/modules/data/services/relation/deleteRelation.js +11 -0
- package/dist/modules/data/services/relation/deleteRelation.js.map +1 -0
- package/dist/modules/data/services/relation/getRelation.js +2 -0
- package/dist/modules/data/services/relation/getRelation.js.map +1 -0
- package/dist/modules/data/services/relation/index.js +1 -0
- package/dist/modules/data/services/relation/listRelation.js +2 -0
- package/dist/modules/data/services/relation/listRelation.js.map +1 -0
- package/dist/modules/data/services/relation/updateRelation.js +11 -0
- package/dist/modules/data/services/relation/updateRelation.js.map +1 -0
- package/dist/modules/data/services/resource/codeGenerator.js +2 -0
- package/dist/modules/data/services/resource/codeGenerator.js.map +1 -0
- package/dist/modules/data/services/resource/createResource.js +2 -0
- package/dist/modules/data/services/resource/createResource.js.map +1 -0
- package/dist/modules/data/services/resource/deleteResource.js +2 -0
- package/dist/modules/data/services/resource/deleteResource.js.map +1 -0
- package/dist/modules/data/services/resource/getData.d.ts +37 -0
- package/dist/modules/data/services/resource/getData.d.ts.map +1 -0
- package/dist/modules/data/services/resource/getData.js +16 -0
- package/dist/modules/data/services/resource/getData.js.map +1 -0
- package/dist/modules/data/services/resource/getFilter.d.ts +23 -0
- package/dist/modules/data/services/resource/getFilter.d.ts.map +1 -0
- package/dist/modules/data/services/resource/getFilter.js +8 -0
- package/dist/modules/data/services/resource/getFilter.js.map +1 -0
- package/dist/modules/data/services/resource/getResource.js +2 -0
- package/dist/modules/data/services/resource/getResource.js.map +1 -0
- package/dist/modules/data/services/resource/getResources.js +2 -0
- package/dist/modules/data/services/resource/getResources.js.map +1 -0
- package/dist/modules/data/services/resource/index.js +1 -0
- package/dist/modules/data/services/resource/listResource.js +2 -0
- package/dist/modules/data/services/resource/listResource.js.map +1 -0
- package/dist/modules/data/services/resource/listSuggestions.js +5 -0
- package/dist/modules/data/services/resource/listSuggestions.js.map +1 -0
- package/dist/modules/data/services/resource/searchData.js +3 -0
- package/dist/modules/data/services/resource/searchData.js.map +1 -0
- package/dist/modules/data/services/resource/updateResource.js +2 -0
- package/dist/modules/data/services/resource/updateResource.js.map +1 -0
- package/dist/modules/file/file.route.js +2 -0
- package/dist/modules/file/file.route.js.map +1 -0
- package/dist/modules/file/file.schema.js +2 -0
- package/dist/modules/file/file.schema.js.map +1 -0
- package/dist/modules/file/services/deleteFile.js +2 -0
- package/dist/modules/file/services/deleteFile.js.map +1 -0
- package/dist/modules/file/services/downloadFile.js +2 -0
- package/dist/modules/file/services/downloadFile.js.map +1 -0
- package/dist/modules/file/services/editFile.js +2 -0
- package/dist/modules/file/services/editFile.js.map +1 -0
- package/dist/modules/file/services/exportData.d.ts +49 -0
- package/dist/modules/file/services/exportData.d.ts.map +1 -0
- package/dist/modules/file/services/exportData.js +4 -0
- package/dist/modules/file/services/exportData.js.map +1 -0
- package/dist/modules/file/services/fileToGeoJson.js +15 -0
- package/dist/modules/file/services/fileToGeoJson.js.map +1 -0
- package/dist/modules/file/services/getFile.js +2 -0
- package/dist/modules/file/services/getFile.js.map +1 -0
- package/dist/modules/file/services/getUploadStatus.js +1 -0
- package/dist/modules/file/services/index.js +1 -0
- package/dist/modules/file/services/previewFile.js +2 -0
- package/dist/modules/file/services/previewFile.js.map +1 -0
- package/dist/modules/file/services/resizeAll.js +1 -0
- package/dist/modules/file/services/resizeFile.js +2 -0
- package/dist/modules/file/services/resizeFile.js.map +1 -0
- package/dist/modules/file/services/startUpload.js +1 -0
- package/dist/modules/file/services/uploadChunk.js +1 -0
- package/dist/modules/file/services/uploadFile.js +2 -0
- package/dist/modules/file/services/uploadFile.js.map +1 -0
- package/dist/modules/file/services/uploadImage.js +1 -0
- package/dist/modules/system/services/checkSystem.js +2 -0
- package/dist/modules/system/services/checkSystem.js.map +1 -0
- package/dist/modules/system/services/getConfig.js +2 -0
- package/dist/modules/system/services/getConfig.js.map +1 -0
- package/dist/modules/system/services/getDependencies.js +2 -0
- package/dist/modules/system/services/getDependencies.js.map +1 -0
- package/dist/modules/system/services/getInterfaces.js +2 -0
- package/dist/modules/system/services/getInterfaces.js.map +1 -0
- package/dist/modules/system/services/getLoggerFile.js +4 -0
- package/dist/modules/system/services/getLoggerFile.js.map +1 -0
- package/dist/modules/system/services/getLoggerMetrics.js +2 -0
- package/dist/modules/system/services/getLoggerMetrics.js.map +1 -0
- package/dist/modules/system/services/getNextId.js +2 -0
- package/dist/modules/system/services/getNextId.js.map +1 -0
- package/dist/modules/system/services/getSettings.js +2 -0
- package/dist/modules/system/services/getSettings.js.map +1 -0
- package/dist/modules/system/services/getStatus.js +2 -0
- package/dist/modules/system/services/getStatus.js.map +1 -0
- package/dist/modules/system/services/index.js +1 -0
- package/dist/modules/system/services/listApi.js +3 -0
- package/dist/modules/system/services/listApi.js.map +1 -0
- package/dist/modules/system/services/runCron.js +2 -0
- package/dist/modules/system/services/runCron.js.map +1 -0
- package/dist/modules/system/services/updateSettings.js +2 -0
- package/dist/modules/system/services/updateSettings.js.map +1 -0
- package/dist/modules/system/system.route.js +2 -0
- package/dist/modules/system/system.route.js.map +1 -0
- package/dist/modules/system/system.schema.js +2 -0
- package/dist/modules/system/system.schema.js.map +1 -0
- package/dist/modules/templates/services/addMenu.d.ts +5 -0
- package/dist/modules/templates/services/addMenu.d.ts.map +1 -0
- package/dist/modules/templates/services/addMenu.js +2 -0
- package/dist/modules/templates/services/addMenu.js.map +1 -0
- package/dist/modules/templates/services/addTemplateDir.d.ts +5 -0
- package/dist/modules/templates/services/addTemplateDir.d.ts.map +1 -0
- package/dist/modules/templates/services/addTemplateDir.js +2 -0
- package/dist/modules/templates/services/addTemplateDir.js.map +1 -0
- package/dist/modules/templates/services/customTokens.js +2 -0
- package/dist/modules/templates/services/customTokens.js.map +1 -0
- package/dist/modules/templates/services/getMenu.js +11 -0
- package/dist/modules/templates/services/getMenu.js.map +1 -0
- package/dist/modules/templates/services/getTemplate.d.ts +5 -0
- package/dist/modules/templates/services/getTemplate.d.ts.map +1 -0
- package/dist/modules/templates/services/getTemplate.js +2 -0
- package/dist/modules/templates/services/getTemplate.js.map +1 -0
- package/dist/modules/templates/services/getTemplatePath.d.ts +5 -0
- package/dist/modules/templates/services/getTemplatePath.d.ts.map +1 -0
- package/dist/modules/templates/services/getTemplatePath.js +2 -0
- package/dist/modules/templates/services/getTemplatePath.js.map +1 -0
- package/dist/modules/templates/services/getTemplateSync.d.ts +5 -0
- package/dist/modules/templates/services/getTemplateSync.d.ts.map +1 -0
- package/dist/modules/templates/services/getTemplateSync.js +2 -0
- package/dist/modules/templates/services/getTemplateSync.js.map +1 -0
- package/dist/modules/templates/services/getTemplates.d.ts +5 -0
- package/dist/modules/templates/services/getTemplates.d.ts.map +1 -0
- package/dist/modules/templates/services/getTemplates.js +2 -0
- package/dist/modules/templates/services/getTemplates.js.map +1 -0
- package/dist/modules/templates/services/index.js +1 -0
- package/dist/modules/templates/services/listTemplates.js +2 -0
- package/dist/modules/templates/services/listTemplates.js.map +1 -0
- package/dist/modules/templates/services/loadTemplate.js +2 -0
- package/dist/modules/templates/services/loadTemplate.js.map +1 -0
- package/dist/modules/templates/services/loadTemplatePath.js +2 -0
- package/dist/modules/templates/services/loadTemplatePath.js.map +1 -0
- package/dist/modules/templates/services/menuDirs.d.ts +5 -0
- package/dist/modules/templates/services/menuDirs.d.ts.map +1 -0
- package/dist/modules/templates/services/menuDirs.js +2 -0
- package/dist/modules/templates/services/menuDirs.js.map +1 -0
- package/dist/modules/templates/services/registerTemplateDir.js +1 -0
- package/dist/modules/templates/services/userTemplateDir.d.ts +5 -0
- package/dist/modules/templates/services/userTemplateDir.d.ts.map +1 -0
- package/dist/modules/templates/services/userTemplateDir.js +2 -0
- package/dist/modules/templates/services/userTemplateDir.js.map +1 -0
- package/dist/modules/templates/templates.route.js +2 -0
- package/dist/modules/templates/templates.route.js.map +1 -0
- package/dist/modules/templates/templates.schema.js +2 -0
- package/dist/modules/templates/templates.schema.js.map +1 -0
- package/dist/node_modules/@fastify/error/index.js +2 -0
- package/dist/node_modules/@fastify/error/index.js.map +1 -0
- package/dist/node_modules/@fastify/error/types/index.d.ts +36 -0
- package/dist/node_modules/@fastify/error/types/index.d.ts.map +1 -0
- package/dist/plugins/access/funcs/getResources.d.ts +7 -0
- package/dist/plugins/access/funcs/getResources.d.ts.map +1 -0
- package/dist/plugins/access/funcs/getResources.js +2 -0
- package/dist/plugins/access/funcs/getResources.js.map +1 -0
- package/dist/plugins/access/funcs/getUserPermissions.d.ts +11 -0
- package/dist/plugins/access/funcs/getUserPermissions.d.ts.map +1 -0
- package/dist/plugins/access/funcs/getUserPermissions.js +9 -0
- package/dist/plugins/access/funcs/getUserPermissions.js.map +1 -0
- package/dist/plugins/auth/funcs/authorizeUser.js +6 -0
- package/dist/plugins/auth/funcs/authorizeUser.js.map +1 -0
- package/dist/plugins/auth/funcs/getQuery.js +1 -0
- package/dist/plugins/auth/funcs/jwt.d.ts +35 -0
- package/dist/plugins/auth/funcs/jwt.d.ts.map +1 -0
- package/dist/plugins/auth/funcs/jwt.js +2 -0
- package/dist/plugins/auth/funcs/jwt.js.map +1 -0
- package/dist/plugins/auth/funcs/logAuth.js +2 -0
- package/dist/plugins/auth/funcs/logAuth.js.map +1 -0
- package/dist/plugins/auth/funcs/loginFile.js +4 -0
- package/dist/plugins/auth/funcs/loginFile.js.map +1 -0
- package/dist/plugins/auth/funcs/loginUser.js +2 -0
- package/dist/plugins/auth/funcs/loginUser.js.map +1 -0
- package/dist/plugins/auth/funcs/sendNotification.js +2 -0
- package/dist/plugins/auth/funcs/sendNotification.js.map +1 -0
- package/dist/plugins/auth/funcs/users.js +2 -0
- package/dist/plugins/auth/funcs/users.js.map +1 -0
- package/dist/plugins/auth/funcs/verifyPassword.js +2 -0
- package/dist/plugins/auth/funcs/verifyPassword.js.map +1 -0
- package/dist/plugins/auth/index.js +2 -0
- package/dist/plugins/auth/index.js.map +1 -0
- package/dist/plugins/context/index.js +2 -0
- package/dist/plugins/context/index.js.map +1 -0
- package/dist/plugins/cron/cronList.js +2 -0
- package/dist/plugins/cron/cronList.js.map +1 -0
- package/dist/plugins/cron/funcs/addCron.d.ts +16 -0
- package/dist/plugins/cron/funcs/addCron.d.ts.map +1 -0
- package/dist/plugins/cron/funcs/addCron.js +2 -0
- package/dist/plugins/cron/funcs/addCron.js.map +1 -0
- package/dist/plugins/cron/funcs/interval2ms.js +2 -0
- package/dist/plugins/cron/funcs/interval2ms.js.map +1 -0
- package/dist/plugins/cron/funcs/runCron.js +2 -0
- package/dist/plugins/cron/funcs/runCron.js.map +1 -0
- package/dist/plugins/cron/funcs/verifyUnique.js +2 -0
- package/dist/plugins/cron/funcs/verifyUnique.js.map +1 -0
- package/dist/plugins/cron/index.js +2 -0
- package/dist/plugins/cron/index.js.map +1 -0
- package/dist/plugins/crud/funcs/dataDelete.d.ts +15 -0
- package/dist/plugins/crud/funcs/dataDelete.d.ts.map +1 -0
- package/dist/plugins/crud/funcs/dataDelete.js +2 -0
- package/dist/plugins/crud/funcs/dataDelete.js.map +1 -0
- package/dist/plugins/crud/funcs/dataInsert.d.ts +14 -0
- package/dist/plugins/crud/funcs/dataInsert.d.ts.map +1 -0
- package/dist/plugins/crud/funcs/dataInsert.js +2 -0
- package/dist/plugins/crud/funcs/dataInsert.js.map +1 -0
- package/dist/plugins/crud/funcs/dataUpdate.d.ts +15 -0
- package/dist/plugins/crud/funcs/dataUpdate.d.ts.map +1 -0
- package/dist/plugins/crud/funcs/dataUpdate.js +9 -0
- package/dist/plugins/crud/funcs/dataUpdate.js.map +1 -0
- package/dist/plugins/crud/funcs/dataUpsert.d.ts +16 -0
- package/dist/plugins/crud/funcs/dataUpsert.d.ts.map +1 -0
- package/dist/plugins/crud/funcs/dataUpsert.js +2 -0
- package/dist/plugins/crud/funcs/dataUpsert.js.map +1 -0
- package/dist/plugins/crud/funcs/getAccess.d.ts +28 -0
- package/dist/plugins/crud/funcs/getAccess.d.ts.map +1 -0
- package/dist/plugins/crud/funcs/getAccess.js +2 -0
- package/dist/plugins/crud/funcs/getAccess.js.map +1 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/formatValue.js +2 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/formatValue.js.map +1 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/getFilterList.js +2 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/getFilterList.js.map +1 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/getFilterQuery.js +2 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/getFilterQuery.js.map +1 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/getRangeQuery.js +2 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/getRangeQuery.js.map +1 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/getTableSql.js +2 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/getTableSql.js.map +1 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/index.d.ts +22 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/index.d.ts.map +1 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/index.js +2 -0
- package/dist/plugins/crud/funcs/getFilterSQLParametrized/index.js.map +1 -0
- package/dist/plugins/crud/funcs/getToken.js +2 -0
- package/dist/plugins/crud/funcs/getToken.js.map +1 -0
- package/dist/plugins/crud/funcs/metaFormat/getSelectVal.d.ts +10 -0
- package/dist/plugins/crud/funcs/metaFormat/getSelectVal.d.ts.map +1 -0
- package/dist/plugins/crud/funcs/metaFormat/getSelectVal.js +2 -0
- package/dist/plugins/crud/funcs/metaFormat/getSelectVal.js.map +1 -0
- package/dist/plugins/crud/funcs/metaFormat/index.d.ts +13 -0
- package/dist/plugins/crud/funcs/metaFormat/index.d.ts.map +1 -0
- package/dist/plugins/crud/funcs/metaFormat/index.js +2 -0
- package/dist/plugins/crud/funcs/metaFormat/index.js.map +1 -0
- package/dist/plugins/crud/funcs/setToken.js +2 -0
- package/dist/plugins/crud/funcs/setToken.js.map +1 -0
- package/dist/plugins/crud/funcs/utils/conditions.js +2 -0
- package/dist/plugins/crud/funcs/utils/conditions.js.map +1 -0
- package/dist/plugins/crud/funcs/utils/getFolder.d.ts +14 -0
- package/dist/plugins/crud/funcs/utils/getFolder.d.ts.map +1 -0
- package/dist/plugins/crud/funcs/utils/getFolder.js +2 -0
- package/dist/plugins/crud/funcs/utils/getFolder.js.map +1 -0
- package/dist/plugins/crud/funcs/utils/getInsertQuery.d.ts +16 -0
- package/dist/plugins/crud/funcs/utils/getInsertQuery.d.ts.map +1 -0
- package/dist/plugins/crud/funcs/utils/getInsertQuery.js +8 -0
- package/dist/plugins/crud/funcs/utils/getInsertQuery.js.map +1 -0
- package/dist/plugins/crud/funcs/utils/locales.js +2 -0
- package/dist/plugins/crud/funcs/utils/locales.js.map +1 -0
- package/dist/plugins/crud/funcs/utils/logChanges.d.ts +39 -0
- package/dist/plugins/crud/funcs/utils/logChanges.d.ts.map +1 -0
- package/dist/plugins/crud/funcs/utils/logChanges.js +20 -0
- package/dist/plugins/crud/funcs/utils/logChanges.js.map +1 -0
- package/dist/plugins/crud/funcs/utils/nullif.js +2 -0
- package/dist/plugins/crud/funcs/utils/nullif.js.map +1 -0
- package/dist/plugins/crud/funcs/utils/prettify.js +2 -0
- package/dist/plugins/crud/funcs/utils/prettify.js.map +1 -0
- package/dist/plugins/crud/funcs/validateData.d.ts +9 -0
- package/dist/plugins/crud/funcs/validateData.d.ts.map +1 -0
- package/dist/plugins/crud/funcs/validateData.js +2 -0
- package/dist/plugins/crud/funcs/validateData.js.map +1 -0
- package/dist/plugins/extra/extraData.js +2 -0
- package/dist/plugins/extra/extraData.js.map +1 -0
- package/dist/plugins/extra/extraDataGet.js +2 -0
- package/dist/plugins/extra/extraDataGet.js.map +1 -0
- package/dist/plugins/file/downloadFile.d.ts +5 -0
- package/dist/plugins/file/downloadFile.d.ts.map +1 -0
- package/dist/plugins/file/downloadFile.js +2 -0
- package/dist/plugins/file/downloadFile.js.map +1 -0
- package/dist/plugins/file/isFileExists.d.ts +5 -0
- package/dist/plugins/file/isFileExists.d.ts.map +1 -0
- package/dist/plugins/file/isFileExists.js +2 -0
- package/dist/plugins/file/isFileExists.js.map +1 -0
- package/dist/plugins/file/providers/fs.js +2 -0
- package/dist/plugins/file/providers/fs.js.map +1 -0
- package/dist/plugins/file/providers/index.js +2 -0
- package/dist/plugins/file/providers/index.js.map +1 -0
- package/dist/plugins/file/providers/mime/index.d.ts +5 -0
- package/dist/plugins/file/providers/mime/index.d.ts.map +1 -0
- package/dist/plugins/file/providers/mime/index.js +2 -0
- package/dist/plugins/file/providers/mime/index.js.map +1 -0
- package/dist/plugins/file/providers/mime/mimes.js +2 -0
- package/dist/plugins/file/providers/mime/mimes.js.map +1 -0
- package/dist/plugins/file/providers/s3/client.d.ts +5 -0
- package/dist/plugins/file/providers/s3/client.d.ts.map +1 -0
- package/dist/plugins/file/providers/s3/client.js +2 -0
- package/dist/plugins/file/providers/s3/client.js.map +1 -0
- package/dist/plugins/file/providers/s3/funcs/checkHealth.js +2 -0
- package/dist/plugins/file/providers/s3/funcs/checkHealth.js.map +1 -0
- package/dist/plugins/file/providers/s3/funcs/downloadFile.js +2 -0
- package/dist/plugins/file/providers/s3/funcs/downloadFile.js.map +1 -0
- package/dist/plugins/file/providers/s3/funcs/fileExists.js +2 -0
- package/dist/plugins/file/providers/s3/funcs/fileExists.js.map +1 -0
- package/dist/plugins/file/providers/s3/funcs/getFileSize.js +2 -0
- package/dist/plugins/file/providers/s3/funcs/getFileSize.js.map +1 -0
- package/dist/plugins/file/providers/s3/funcs/uploadFile.js +2 -0
- package/dist/plugins/file/providers/s3/funcs/uploadFile.js.map +1 -0
- package/dist/plugins/file/providers/s3/funcs/utils/getS3FilePath.js +2 -0
- package/dist/plugins/file/providers/s3/funcs/utils/getS3FilePath.js.map +1 -0
- package/dist/plugins/file/providers/s3/index.js +2 -0
- package/dist/plugins/file/providers/s3/index.js.map +1 -0
- package/dist/plugins/file/providers/utils/getDataSize.js +2 -0
- package/dist/plugins/file/providers/utils/getDataSize.js.map +1 -0
- package/dist/plugins/file/providers/utils/getValidData.js +2 -0
- package/dist/plugins/file/providers/utils/getValidData.js.map +1 -0
- package/dist/plugins/file/providers/utils/handlers/dataTypes.js +2 -0
- package/dist/plugins/file/providers/utils/handlers/dataTypes.js.map +1 -0
- package/dist/plugins/file/providers/utils/handlers/index.js +2 -0
- package/dist/plugins/file/providers/utils/handlers/index.js.map +1 -0
- package/dist/plugins/file/providers/utils/handlers/sizeHandlers.js +2 -0
- package/dist/plugins/file/providers/utils/handlers/sizeHandlers.js.map +1 -0
- package/dist/plugins/file/providers/utils/streamToBuffer.js +2 -0
- package/dist/plugins/file/providers/utils/streamToBuffer.js.map +1 -0
- package/dist/plugins/file/providers/utils/typeguards/isArray.js +2 -0
- package/dist/plugins/file/providers/utils/typeguards/isArray.js.map +1 -0
- package/dist/plugins/file/providers/utils/typeguards/isBuffer.js +2 -0
- package/dist/plugins/file/providers/utils/typeguards/isBuffer.js.map +1 -0
- package/dist/plugins/file/providers/utils/typeguards/isPath.js +2 -0
- package/dist/plugins/file/providers/utils/typeguards/isPath.js.map +1 -0
- package/dist/plugins/file/providers/utils/typeguards/isReadableStream.js +2 -0
- package/dist/plugins/file/providers/utils/typeguards/isReadableStream.js.map +1 -0
- package/dist/plugins/file/providers/utils/typeguards/isText.js +2 -0
- package/dist/plugins/file/providers/utils/typeguards/isText.js.map +1 -0
- package/dist/plugins/file/uploadFile.d.ts +5 -0
- package/dist/plugins/file/uploadFile.d.ts.map +1 -0
- package/dist/plugins/file/uploadFile.js +2 -0
- package/dist/plugins/file/uploadFile.js.map +1 -0
- package/dist/plugins/file/utils/allowedExtensions.d.ts +10 -0
- package/dist/plugins/file/utils/allowedExtensions.d.ts.map +1 -0
- package/dist/plugins/file/utils/allowedExtensions.js +2 -0
- package/dist/plugins/file/utils/allowedExtensions.js.map +1 -0
- package/dist/plugins/file/utils/getFileType.d.ts +5 -0
- package/dist/plugins/file/utils/getFileType.d.ts.map +1 -0
- package/dist/plugins/file/utils/getFileType.js +2 -0
- package/dist/plugins/file/utils/getFileType.js.map +1 -0
- package/dist/plugins/file/utils/getPath.js +2 -0
- package/dist/plugins/file/utils/getPath.js.map +1 -0
- package/dist/plugins/file/utils/inspectContent.d.ts +15 -0
- package/dist/plugins/file/utils/inspectContent.d.ts.map +1 -0
- package/dist/plugins/file/utils/inspectContent.js +2 -0
- package/dist/plugins/file/utils/inspectContent.js.map +1 -0
- package/dist/plugins/file/utils/isFileExists.js +2 -0
- package/dist/plugins/file/utils/isFileExists.js.map +1 -0
- package/dist/plugins/grpc/createGrpc.d.ts +9 -0
- package/dist/plugins/grpc/createGrpc.d.ts.map +1 -0
- package/dist/plugins/grpc/createGrpc.js +2 -0
- package/dist/plugins/grpc/createGrpc.js.map +1 -0
- package/dist/plugins/grpc/file2json.d.ts +11 -0
- package/dist/plugins/grpc/file2json.d.ts.map +1 -0
- package/dist/plugins/grpc/file2json.js +2 -0
- package/dist/plugins/grpc/file2json.js.map +1 -0
- package/dist/plugins/grpc/office2pdf.d.ts +9 -0
- package/dist/plugins/grpc/office2pdf.d.ts.map +1 -0
- package/dist/plugins/grpc/office2pdf.js +2 -0
- package/dist/plugins/grpc/office2pdf.js.map +1 -0
- package/dist/plugins/hook/addHook.d.ts +5 -0
- package/dist/plugins/hook/addHook.d.ts.map +1 -0
- package/dist/plugins/hook/addHook.js +2 -0
- package/dist/plugins/hook/addHook.js.map +1 -0
- package/dist/plugins/hook/applyHook.d.ts +5 -0
- package/dist/plugins/hook/applyHook.d.ts.map +1 -0
- package/dist/plugins/hook/applyHook.js +2 -0
- package/dist/plugins/hook/applyHook.js.map +1 -0
- package/dist/plugins/hook/applyHookSync.d.ts +5 -0
- package/dist/plugins/hook/applyHookSync.d.ts.map +1 -0
- package/dist/plugins/hook/applyHookSync.js +2 -0
- package/dist/plugins/hook/applyHookSync.js.map +1 -0
- package/dist/plugins/hook/hookList.js +2 -0
- package/dist/plugins/hook/hookList.js.map +1 -0
- package/dist/plugins/logger/checkUserAccess.js +2 -0
- package/dist/plugins/logger/checkUserAccess.js.map +1 -0
- package/dist/plugins/logger/createFileStream.d.ts +6 -0
- package/dist/plugins/logger/createFileStream.d.ts.map +1 -0
- package/dist/plugins/logger/createFileStream.js +2 -0
- package/dist/plugins/logger/createFileStream.js.map +1 -0
- package/dist/plugins/logger/createLogger.d.ts +13 -0
- package/dist/plugins/logger/createLogger.d.ts.map +1 -0
- package/dist/plugins/logger/createLogger.js +2 -0
- package/dist/plugins/logger/createLogger.js.map +1 -0
- package/dist/plugins/logger/errorMessage.js +2 -0
- package/dist/plugins/logger/errorMessage.js.map +1 -0
- package/dist/plugins/logger/errorStatus.js +2 -0
- package/dist/plugins/logger/errorStatus.js.map +1 -0
- package/dist/plugins/logger/getHooks.js +2 -0
- package/dist/plugins/logger/getHooks.js.map +1 -0
- package/dist/plugins/logger/getRootDir.js +2 -0
- package/dist/plugins/logger/getRootDir.js.map +1 -0
- package/dist/plugins/logger/index.js +2 -0
- package/dist/plugins/logger/index.js.map +1 -0
- package/dist/plugins/logger/labels.js +2 -0
- package/dist/plugins/logger/labels.js.map +1 -0
- package/dist/plugins/logger/serializers.js +2 -0
- package/dist/plugins/logger/serializers.js.map +1 -0
- package/dist/plugins/logger/timestampWithTimeZone.js +2 -0
- package/dist/plugins/logger/timestampWithTimeZone.js.map +1 -0
- package/dist/plugins/md/funcs/formatMdoc.d.ts +5 -0
- package/dist/plugins/md/funcs/formatMdoc.d.ts.map +1 -0
- package/dist/plugins/md/funcs/formatMdoc.js +8 -0
- package/dist/plugins/md/funcs/formatMdoc.js.map +1 -0
- package/dist/plugins/metric/index.js +2 -0
- package/dist/plugins/metric/index.js.map +1 -0
- package/dist/plugins/metric/loggerSystem.js +4 -0
- package/dist/plugins/metric/loggerSystem.js.map +1 -0
- package/dist/plugins/metric/systemMetricsFifthly.js +2 -0
- package/dist/plugins/metric/systemMetricsFifthly.js.map +1 -0
- package/dist/plugins/migration/exec.migrations.all.d.ts +6 -0
- package/dist/plugins/migration/exec.migrations.all.d.ts.map +1 -0
- package/dist/plugins/migration/exec.migrations.all.js +2 -0
- package/dist/plugins/migration/exec.migrations.all.js.map +1 -0
- package/dist/plugins/migration/exec.migrations.d.ts +9 -0
- package/dist/plugins/migration/exec.migrations.d.ts.map +1 -0
- package/dist/plugins/migration/exec.migrations.js +2 -0
- package/dist/plugins/migration/exec.migrations.js.map +1 -0
- package/dist/plugins/migration/exec.sql.d.ts +9 -0
- package/dist/plugins/migration/exec.sql.d.ts.map +1 -0
- package/dist/plugins/migration/exec.sql.js +2 -0
- package/dist/plugins/migration/exec.sql.js.map +1 -0
- package/dist/plugins/pg/audit/index.js +2 -0
- package/dist/plugins/pg/audit/index.js.map +1 -0
- package/dist/plugins/pg/funcs/autoIndex.d.ts +10 -0
- package/dist/plugins/pg/funcs/autoIndex.d.ts.map +1 -0
- package/dist/plugins/pg/funcs/autoIndex.js +8 -0
- package/dist/plugins/pg/funcs/autoIndex.js.map +1 -0
- package/dist/plugins/pg/funcs/createPg.d.ts +5 -0
- package/dist/plugins/pg/funcs/createPg.d.ts.map +1 -0
- package/dist/plugins/pg/funcs/createPg.js +2 -0
- package/dist/plugins/pg/funcs/createPg.js.map +1 -0
- package/dist/plugins/pg/funcs/createPgAsync.d.ts +5 -0
- package/dist/plugins/pg/funcs/createPgAsync.d.ts.map +1 -0
- package/dist/plugins/pg/funcs/createPgAsync.js +2 -0
- package/dist/plugins/pg/funcs/createPgAsync.js.map +1 -0
- package/dist/plugins/pg/funcs/getDBParams.d.ts +5 -0
- package/dist/plugins/pg/funcs/getDBParams.d.ts.map +1 -0
- package/dist/plugins/pg/funcs/getDBParams.js +2 -0
- package/dist/plugins/pg/funcs/getDBParams.js.map +1 -0
- package/dist/plugins/pg/funcs/getMeta.d.ts +9 -0
- package/dist/plugins/pg/funcs/getMeta.d.ts.map +1 -0
- package/dist/plugins/pg/funcs/getMeta.js +17 -0
- package/dist/plugins/pg/funcs/getMeta.js.map +1 -0
- package/dist/plugins/pg/funcs/init.d.ts +6 -0
- package/dist/plugins/pg/funcs/init.d.ts.map +1 -0
- package/dist/plugins/pg/funcs/init.js +38 -0
- package/dist/plugins/pg/funcs/init.js.map +1 -0
- package/dist/plugins/pg/funcs/pool.js +2 -0
- package/dist/plugins/pg/funcs/pool.js.map +1 -0
- package/dist/plugins/pg/index.js +2 -0
- package/dist/plugins/pg/index.js.map +1 -0
- package/dist/plugins/pg/pgClients.d.ts +5 -0
- package/dist/plugins/pg/pgClients.d.ts.map +1 -0
- package/dist/plugins/pg/pgClients.js +2 -0
- package/dist/plugins/pg/pgClients.js.map +1 -0
- package/dist/plugins/policy/funcs/checkJWT.js +2 -0
- package/dist/plugins/policy/funcs/checkJWT.js.map +1 -0
- package/dist/plugins/policy/funcs/checkPermissions.js +2 -0
- package/dist/plugins/policy/funcs/checkPermissions.js.map +1 -0
- package/dist/plugins/policy/funcs/checkPolicy.js +2 -0
- package/dist/plugins/policy/funcs/checkPolicy.js.map +1 -0
- package/dist/plugins/policy/funcs/checkTraversal.js +2 -0
- package/dist/plugins/policy/funcs/checkTraversal.js.map +1 -0
- package/dist/plugins/policy/funcs/checkXSS.d.ts +11 -0
- package/dist/plugins/policy/funcs/checkXSS.d.ts.map +1 -0
- package/dist/plugins/policy/funcs/checkXSS.js +2 -0
- package/dist/plugins/policy/funcs/checkXSS.js.map +1 -0
- package/dist/plugins/policy/index.js +2 -0
- package/dist/plugins/policy/index.js.map +1 -0
- package/dist/plugins/policy/xssInjection.js +2 -0
- package/dist/plugins/policy/xssInjection.js.map +1 -0
- package/dist/plugins/redis/funcs/createRedis.d.ts +15 -0
- package/dist/plugins/redis/funcs/createRedis.d.ts.map +1 -0
- package/dist/plugins/redis/funcs/createRedis.js +2 -0
- package/dist/plugins/redis/funcs/createRedis.js.map +1 -0
- package/dist/plugins/redis/funcs/redisClients.d.ts +5 -0
- package/dist/plugins/redis/funcs/redisClients.d.ts.map +1 -0
- package/dist/plugins/redis/funcs/redisClients.js +2 -0
- package/dist/plugins/redis/funcs/redisClients.js.map +1 -0
- package/dist/plugins/redis/index.js +2 -0
- package/dist/plugins/redis/index.js.map +1 -0
- package/dist/plugins/sqlite/funcs/getSqlite.d.ts +5 -0
- package/dist/plugins/sqlite/funcs/getSqlite.d.ts.map +1 -0
- package/dist/plugins/sqlite/funcs/getSqlite.js +2 -0
- package/dist/plugins/sqlite/funcs/getSqlite.js.map +1 -0
- package/dist/plugins/sqlite/funcs/init.d.ts +5 -0
- package/dist/plugins/sqlite/funcs/init.d.ts.map +1 -0
- package/dist/plugins/sqlite/funcs/init.js +24 -0
- package/dist/plugins/sqlite/funcs/init.js.map +1 -0
- package/dist/plugins/sqlite/index.js +2 -0
- package/dist/plugins/sqlite/index.js.map +1 -0
- package/dist/plugins/sqlite/sqliteClients.d.ts +5 -0
- package/dist/plugins/sqlite/sqliteClients.d.ts.map +1 -0
- package/dist/plugins/sqlite/sqliteClients.js +2 -0
- package/dist/plugins/sqlite/sqliteClients.js.map +1 -0
- package/dist/plugins/table/funcs/getColumnCLS.d.ts +5 -0
- package/dist/plugins/table/funcs/getColumnCLS.d.ts.map +1 -0
- package/dist/plugins/table/funcs/getColumnCLS.js +2 -0
- package/dist/plugins/table/funcs/getColumnCLS.js.map +1 -0
- package/dist/plugins/table/funcs/getFilterSQL/index.d.ts +28 -0
- package/dist/plugins/table/funcs/getFilterSQL/index.d.ts.map +1 -0
- package/dist/plugins/table/funcs/getFilterSQL/index.js +2 -0
- package/dist/plugins/table/funcs/getFilterSQL/index.js.map +1 -0
- package/dist/plugins/table/funcs/getFilterSQL/util/formatValue.js +2 -0
- package/dist/plugins/table/funcs/getFilterSQL/util/formatValue.js.map +1 -0
- package/dist/plugins/table/funcs/getFilterSQL/util/getFilterQuery.js +2 -0
- package/dist/plugins/table/funcs/getFilterSQL/util/getFilterQuery.js.map +1 -0
- package/dist/plugins/table/funcs/getFilterSQL/util/getOptimizedQuery.js +2 -0
- package/dist/plugins/table/funcs/getFilterSQL/util/getOptimizedQuery.js.map +1 -0
- package/dist/plugins/table/funcs/getFilterSQL/util/getRangeQuery.js +2 -0
- package/dist/plugins/table/funcs/getFilterSQL/util/getRangeQuery.js.map +1 -0
- package/dist/plugins/table/funcs/getFilterSQL/util/getTableSql.js +2 -0
- package/dist/plugins/table/funcs/getFilterSQL/util/getTableSql.js.map +1 -0
- package/dist/plugins/table/funcs/getSelect.d.ts +9 -0
- package/dist/plugins/table/funcs/getSelect.d.ts.map +1 -0
- package/dist/plugins/table/funcs/getSelect.js +3 -0
- package/dist/plugins/table/funcs/getSelect.js.map +1 -0
- package/dist/plugins/table/funcs/getSelectMeta.d.ts +12 -0
- package/dist/plugins/table/funcs/getSelectMeta.d.ts.map +1 -0
- package/dist/plugins/table/funcs/getSelectMeta.js +2 -0
- package/dist/plugins/table/funcs/getSelectMeta.js.map +1 -0
- package/dist/plugins/table/funcs/getTableColumnMeta.js +2 -0
- package/dist/plugins/table/funcs/getTableColumnMeta.js.map +1 -0
- package/dist/plugins/table/funcs/gisIRColumn.d.ts +25 -0
- package/dist/plugins/table/funcs/gisIRColumn.d.ts.map +1 -0
- package/dist/plugins/table/funcs/gisIRColumn.js +5 -0
- package/dist/plugins/table/funcs/gisIRColumn.js.map +1 -0
- package/dist/plugins/upload/index.d.ts +8 -0
- package/dist/plugins/upload/index.d.ts.map +1 -0
- package/dist/plugins/upload/index.js +2 -0
- package/dist/plugins/upload/index.js.map +1 -0
- package/dist/plugins/upload/s3.js +2 -0
- package/dist/plugins/upload/s3.js.map +1 -0
- package/dist/plugins/usercls/index.d.ts +29 -0
- package/dist/plugins/usercls/index.d.ts.map +1 -0
- package/dist/plugins/usercls/index.js +4 -0
- package/dist/plugins/usercls/index.js.map +1 -0
- package/dist/redactionList.d.ts +3 -1
- package/dist/redactionList.d.ts.map +1 -1
- package/dist/redactionList.js +2 -6
- package/dist/redactionList.js.map +1 -0
- package/dist/script/dump.d.ts +4 -1
- package/dist/script/dump.d.ts.map +1 -1
- package/dist/script/dump.js +50 -160
- package/dist/script/dump.js.map +1 -0
- package/dist/script/migrate.d.ts +4 -1
- package/dist/script/migrate.d.ts.map +1 -1
- package/dist/script/migrate.js +2 -20
- package/dist/script/migrate.js.map +1 -0
- package/dist/server/migrations/crm.sql +26 -1
- package/dist/server/migrations/log.sql +5 -1
- package/dist/shared/services/eventStream.d.ts +5 -0
- package/dist/shared/services/eventStream.d.ts.map +1 -0
- package/dist/shared/services/eventStream.js +2 -0
- package/dist/shared/services/eventStream.js.map +1 -0
- package/dist/shared/services/flattenObject.d.ts +5 -0
- package/dist/shared/services/flattenObject.d.ts.map +1 -0
- package/dist/shared/services/flattenObject.js +2 -0
- package/dist/shared/services/flattenObject.js.map +1 -0
- package/dist/shared/services/getIP.js +2 -0
- package/dist/shared/services/getIP.js.map +1 -0
- package/dist/shared/services/json2yml.d.ts +5 -0
- package/dist/shared/services/json2yml.d.ts.map +1 -0
- package/dist/shared/services/json2yml.js +2 -0
- package/dist/shared/services/json2yml.js.map +1 -0
- package/dist/shared/services/jsonToCsv.d.ts +5 -0
- package/dist/shared/services/jsonToCsv.d.ts.map +1 -0
- package/dist/shared/services/jsonToCsv.js +3 -0
- package/dist/shared/services/jsonToCsv.js.map +1 -0
- package/dist/shared/services/jsonToXls.d.ts +5 -0
- package/dist/shared/services/jsonToXls.d.ts.map +1 -0
- package/dist/shared/services/jsonToXls.js +2 -0
- package/dist/shared/services/jsonToXls.js.map +1 -0
- package/dist/shared/services/jsonlToJsonFile.js +5 -0
- package/dist/shared/services/jsonlToJsonFile.js.map +1 -0
- package/dist/shared/services/mdToHTML.d.ts +10 -0
- package/dist/shared/services/mdToHTML.d.ts.map +1 -0
- package/dist/shared/services/mdToHTML.js +2 -0
- package/dist/shared/services/mdToHTML.js.map +1 -0
- package/dist/shared/services/pubsub.js +2 -0
- package/dist/shared/services/pubsub.js.map +1 -0
- package/dist/shared/services/unflattenObject.d.ts +5 -0
- package/dist/shared/services/unflattenObject.d.ts.map +1 -0
- package/dist/shared/services/unflattenObject.js +2 -0
- package/dist/shared/services/unflattenObject.js.map +1 -0
- package/dist/shared/services/yml2json.d.ts +5 -0
- package/dist/shared/services/yml2json.d.ts.map +1 -0
- package/dist/shared/services/yml2json.js +2 -0
- package/dist/shared/services/yml2json.js.map +1 -0
- package/dist/types/core.d.ts +46 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/utils/index.d.ts +91 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/uploadMultiPart.d.ts +33 -0
- package/dist/utils/uploadMultiPart.d.ts.map +1 -0
- package/dist/utils/uploadMultiPart.js +2 -0
- package/dist/utils/uploadMultiPart.js.map +1 -0
- package/package.json +8 -5
- package/dist/functions.d.ts +0 -40
- package/dist/functions.d.ts.map +0 -1
- package/dist/helper.d.ts +0 -28
- package/dist/helper.d.ts.map +0 -1
- package/dist/script/adduser +0 -15
- package/dist/script/dump.ts +0 -216
- package/dist/script/migrate.ts +0 -23
- package/dist/server/helpers/core/badge.d.ts +0 -2
- package/dist/server/helpers/core/badge.d.ts.map +0 -1
- package/dist/server/helpers/core/badge.js +0 -20
- package/dist/server/helpers/core/buttonFilePreview.d.ts +0 -2
- package/dist/server/helpers/core/buttonFilePreview.d.ts.map +0 -1
- package/dist/server/helpers/core/buttonFilePreview.js +0 -12
- package/dist/server/helpers/core/buttonHelper.d.ts +0 -2
- package/dist/server/helpers/core/buttonHelper.d.ts.map +0 -1
- package/dist/server/helpers/core/buttonHelper.js +0 -20
- package/dist/server/helpers/core/token.d.ts +0 -2
- package/dist/server/helpers/core/token.d.ts.map +0 -1
- package/dist/server/helpers/core/token.js +0 -16
- package/dist/server/helpers/format/formatAuto.d.ts +0 -2
- package/dist/server/helpers/format/formatAuto.d.ts.map +0 -1
- package/dist/server/helpers/format/formatAuto.js +0 -14
- package/dist/server/helpers/format/formatDate.d.ts +0 -37
- package/dist/server/helpers/format/formatDate.d.ts.map +0 -1
- package/dist/server/helpers/format/formatDate.js +0 -231
- package/dist/server/helpers/format/formatDigit.d.ts +0 -16
- package/dist/server/helpers/format/formatDigit.d.ts.map +0 -1
- package/dist/server/helpers/format/formatDigit.js +0 -21
- package/dist/server/helpers/format/formatNum.d.ts +0 -17
- package/dist/server/helpers/format/formatNum.d.ts.map +0 -1
- package/dist/server/helpers/format/formatNum.js +0 -331
- package/dist/server/helpers/format/formatNumber.d.ts +0 -27
- package/dist/server/helpers/format/formatNumber.d.ts.map +0 -1
- package/dist/server/helpers/format/formatNumber.js +0 -50
- package/dist/server/helpers/format/formatRelative.d.ts +0 -22
- package/dist/server/helpers/format/formatRelative.d.ts.map +0 -1
- package/dist/server/helpers/format/formatRelative.js +0 -180
- package/dist/server/helpers/format/formatUnit.d.ts +0 -17
- package/dist/server/helpers/format/formatUnit.d.ts.map +0 -1
- package/dist/server/helpers/format/formatUnit.js +0 -41
- package/dist/server/helpers/format/num_format.d.ts +0 -20
- package/dist/server/helpers/format/num_format.d.ts.map +0 -1
- package/dist/server/helpers/format/num_format.js +0 -40
- package/dist/server/helpers/format/set.d.ts +0 -19
- package/dist/server/helpers/format/set.d.ts.map +0 -1
- package/dist/server/helpers/format/set.js +0 -26
- package/dist/server/helpers/funcs/_math.d.ts +0 -24
- package/dist/server/helpers/funcs/_math.d.ts.map +0 -1
- package/dist/server/helpers/funcs/_math.js +0 -49
- package/dist/server/helpers/funcs/contentList.d.ts +0 -22
- package/dist/server/helpers/funcs/contentList.d.ts.map +0 -1
- package/dist/server/helpers/funcs/contentList.js +0 -52
- package/dist/server/helpers/funcs/empty.d.ts +0 -20
- package/dist/server/helpers/funcs/empty.d.ts.map +0 -1
- package/dist/server/helpers/funcs/empty.js +0 -21
- package/dist/server/helpers/funcs/ifCond.d.ts +0 -23
- package/dist/server/helpers/funcs/ifCond.d.ts.map +0 -1
- package/dist/server/helpers/funcs/ifCond.js +0 -109
- package/dist/server/helpers/funcs/ifCondAnd.d.ts +0 -16
- package/dist/server/helpers/funcs/ifCondAnd.d.ts.map +0 -1
- package/dist/server/helpers/funcs/ifCondAnd.js +0 -109
- package/dist/server/helpers/funcs/ifCondOr.d.ts +0 -17
- package/dist/server/helpers/funcs/ifCondOr.d.ts.map +0 -1
- package/dist/server/helpers/funcs/ifCondOr.js +0 -110
- package/dist/server/helpers/funcs/inc.d.ts +0 -16
- package/dist/server/helpers/funcs/inc.d.ts.map +0 -1
- package/dist/server/helpers/funcs/inc.js +0 -19
- package/dist/server/helpers/funcs/json.d.ts +0 -2
- package/dist/server/helpers/funcs/json.d.ts.map +0 -1
- package/dist/server/helpers/funcs/json.js +0 -3
- package/dist/server/helpers/funcs/qrcode.d.ts +0 -4
- package/dist/server/helpers/funcs/qrcode.d.ts.map +0 -1
- package/dist/server/helpers/funcs/qrcode.js +0 -65
- package/dist/server/helpers/funcs/round.d.ts +0 -18
- package/dist/server/helpers/funcs/round.d.ts.map +0 -1
- package/dist/server/helpers/funcs/round.js +0 -27
- package/dist/server/helpers/funcs/select.d.ts +0 -2
- package/dist/server/helpers/funcs/select.d.ts.map +0 -1
- package/dist/server/helpers/funcs/select.js +0 -39
- package/dist/server/helpers/index.d.ts +0 -4
- package/dist/server/helpers/index.d.ts.map +0 -1
- package/dist/server/helpers/index.js +0 -128
- package/dist/server/helpers/list/buttonHelper.d.ts +0 -2
- package/dist/server/helpers/list/buttonHelper.d.ts.map +0 -1
- package/dist/server/helpers/list/buttonHelper.js +0 -20
- package/dist/server/helpers/list/descriptionList.d.ts +0 -2
- package/dist/server/helpers/list/descriptionList.d.ts.map +0 -1
- package/dist/server/helpers/list/descriptionList.js +0 -47
- package/dist/server/helpers/list/tableList.d.ts +0 -2
- package/dist/server/helpers/list/tableList.d.ts.map +0 -1
- package/dist/server/helpers/list/tableList.js +0 -104
- package/dist/server/helpers/list/utils/button.d.ts +0 -2
- package/dist/server/helpers/list/utils/button.d.ts.map +0 -1
- package/dist/server/helpers/list/utils/button.js +0 -11
- package/dist/server/helpers/list/utils/buttonDel.d.ts +0 -2
- package/dist/server/helpers/list/utils/buttonDel.d.ts.map +0 -1
- package/dist/server/helpers/list/utils/buttonDel.js +0 -18
- package/dist/server/helpers/list/utils/buttonEdit.d.ts +0 -2
- package/dist/server/helpers/list/utils/buttonEdit.d.ts.map +0 -1
- package/dist/server/helpers/list/utils/buttonEdit.js +0 -18
- package/dist/server/helpers/string/coalesce.d.ts +0 -21
- package/dist/server/helpers/string/coalesce.d.ts.map +0 -1
- package/dist/server/helpers/string/coalesce.js +0 -33
- package/dist/server/helpers/string/concat.d.ts +0 -16
- package/dist/server/helpers/string/concat.d.ts.map +0 -1
- package/dist/server/helpers/string/concat.js +0 -25
- package/dist/server/helpers/string/split.d.ts +0 -16
- package/dist/server/helpers/string/split.d.ts.map +0 -1
- package/dist/server/helpers/string/split.js +0 -19
- package/dist/server/helpers/string/str_replace.d.ts +0 -25
- package/dist/server/helpers/string/str_replace.d.ts.map +0 -1
- package/dist/server/helpers/string/str_replace.js +0 -57
- package/dist/server/helpers/string/substr.d.ts +0 -20
- package/dist/server/helpers/string/substr.d.ts.map +0 -1
- package/dist/server/helpers/string/substr.js +0 -28
- package/dist/server/helpers/string/translit.d.ts +0 -16
- package/dist/server/helpers/string/translit.d.ts.map +0 -1
- package/dist/server/helpers/string/translit.js +0 -20
- package/dist/server/helpers/string/utils/alphabet.d.ts +0 -3
- package/dist/server/helpers/string/utils/alphabet.d.ts.map +0 -1
- package/dist/server/helpers/string/utils/alphabet.js +0 -76
- package/dist/server/helpers/utils/button.d.ts +0 -2
- package/dist/server/helpers/utils/button.d.ts.map +0 -1
- package/dist/server/helpers/utils/button.js +0 -11
- package/dist/server/helpers/utils/buttonAdd.d.ts +0 -2
- package/dist/server/helpers/utils/buttonAdd.d.ts.map +0 -1
- package/dist/server/helpers/utils/buttonAdd.js +0 -26
- package/dist/server/helpers/utils/buttonDel.d.ts +0 -2
- package/dist/server/helpers/utils/buttonDel.d.ts.map +0 -1
- package/dist/server/helpers/utils/buttonDel.js +0 -29
- package/dist/server/helpers/utils/buttonDownload.d.ts +0 -2
- package/dist/server/helpers/utils/buttonDownload.d.ts.map +0 -1
- package/dist/server/helpers/utils/buttonDownload.js +0 -3
- package/dist/server/helpers/utils/buttonEdit.d.ts +0 -2
- package/dist/server/helpers/utils/buttonEdit.d.ts.map +0 -1
- package/dist/server/helpers/utils/buttonEdit.js +0 -21
- package/dist/server/helpers/utils/buttonPreview.d.ts +0 -2
- package/dist/server/helpers/utils/buttonPreview.d.ts.map +0 -1
- package/dist/server/helpers/utils/buttonPreview.js +0 -3
- package/dist/server/helpers/utils/mdToHTML.d.ts +0 -8
- package/dist/server/helpers/utils/mdToHTML.d.ts.map +0 -1
- package/dist/server/helpers/utils/mdToHTML.js +0 -16
- package/dist/server/helpers/utils/paddingNumber.d.ts +0 -2
- package/dist/server/helpers/utils/paddingNumber.d.ts.map +0 -1
- package/dist/server/helpers/utils/paddingNumber.js +0 -5
- package/dist/server/plugins/access/funcs/getResources.d.ts +0 -8
- package/dist/server/plugins/access/funcs/getResources.d.ts.map +0 -1
- package/dist/server/plugins/access/funcs/getResources.js +0 -17
- package/dist/server/plugins/access/funcs/getUserPermissions.d.ts +0 -7
- package/dist/server/plugins/access/funcs/getUserPermissions.d.ts.map +0 -1
- package/dist/server/plugins/access/funcs/getUserPermissions.js +0 -42
- package/dist/server/plugins/auth/funcs/authorizeUser.d.ts +0 -3
- package/dist/server/plugins/auth/funcs/authorizeUser.d.ts.map +0 -1
- package/dist/server/plugins/auth/funcs/authorizeUser.js +0 -116
- package/dist/server/plugins/auth/funcs/checkReferer.d.ts +0 -8
- package/dist/server/plugins/auth/funcs/checkReferer.d.ts.map +0 -1
- package/dist/server/plugins/auth/funcs/checkReferer.js +0 -24
- package/dist/server/plugins/auth/funcs/getQuery.d.ts +0 -6
- package/dist/server/plugins/auth/funcs/getQuery.d.ts.map +0 -1
- package/dist/server/plugins/auth/funcs/getQuery.js +0 -128
- package/dist/server/plugins/auth/funcs/jwt.d.ts +0 -31
- package/dist/server/plugins/auth/funcs/jwt.d.ts.map +0 -1
- package/dist/server/plugins/auth/funcs/jwt.js +0 -78
- package/dist/server/plugins/auth/funcs/logAuth.d.ts +0 -7
- package/dist/server/plugins/auth/funcs/logAuth.d.ts.map +0 -1
- package/dist/server/plugins/auth/funcs/logAuth.js +0 -17
- package/dist/server/plugins/auth/funcs/loginFile.d.ts +0 -3
- package/dist/server/plugins/auth/funcs/loginFile.d.ts.map +0 -1
- package/dist/server/plugins/auth/funcs/loginFile.js +0 -51
- package/dist/server/plugins/auth/funcs/loginUser.d.ts +0 -3
- package/dist/server/plugins/auth/funcs/loginUser.d.ts.map +0 -1
- package/dist/server/plugins/auth/funcs/loginUser.js +0 -62
- package/dist/server/plugins/auth/funcs/sendNotification.d.ts +0 -15
- package/dist/server/plugins/auth/funcs/sendNotification.d.ts.map +0 -1
- package/dist/server/plugins/auth/funcs/sendNotification.js +0 -96
- package/dist/server/plugins/auth/funcs/users.d.ts +0 -3
- package/dist/server/plugins/auth/funcs/users.d.ts.map +0 -1
- package/dist/server/plugins/auth/funcs/users.js +0 -2
- package/dist/server/plugins/auth/funcs/verifyPassword.d.ts +0 -13
- package/dist/server/plugins/auth/funcs/verifyPassword.d.ts.map +0 -1
- package/dist/server/plugins/auth/funcs/verifyPassword.js +0 -45
- package/dist/server/plugins/auth/index.d.ts +0 -6
- package/dist/server/plugins/auth/index.d.ts.map +0 -1
- package/dist/server/plugins/auth/index.js +0 -145
- package/dist/server/plugins/cron/cronList.d.ts +0 -5
- package/dist/server/plugins/cron/cronList.d.ts.map +0 -1
- package/dist/server/plugins/cron/cronList.js +0 -4
- package/dist/server/plugins/cron/funcs/addCron.d.ts +0 -13
- package/dist/server/plugins/cron/funcs/addCron.d.ts.map +0 -1
- package/dist/server/plugins/cron/funcs/addCron.js +0 -42
- package/dist/server/plugins/cron/funcs/interval2ms.d.ts +0 -3
- package/dist/server/plugins/cron/funcs/interval2ms.d.ts.map +0 -1
- package/dist/server/plugins/cron/funcs/interval2ms.js +0 -36
- package/dist/server/plugins/cron/funcs/runCron.d.ts +0 -5
- package/dist/server/plugins/cron/funcs/runCron.d.ts.map +0 -1
- package/dist/server/plugins/cron/funcs/runCron.js +0 -20
- package/dist/server/plugins/cron/funcs/verifyUnique.d.ts +0 -2
- package/dist/server/plugins/cron/funcs/verifyUnique.d.ts.map +0 -1
- package/dist/server/plugins/cron/funcs/verifyUnique.js +0 -19
- package/dist/server/plugins/cron/index.d.ts +0 -3
- package/dist/server/plugins/cron/index.d.ts.map +0 -1
- package/dist/server/plugins/cron/index.js +0 -75
- package/dist/server/plugins/crud/funcs/dataDelete.d.ts +0 -12
- package/dist/server/plugins/crud/funcs/dataDelete.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/dataDelete.js +0 -89
- package/dist/server/plugins/crud/funcs/dataInsert.d.ts +0 -12
- package/dist/server/plugins/crud/funcs/dataInsert.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/dataInsert.js +0 -145
- package/dist/server/plugins/crud/funcs/dataUpdate.d.ts +0 -12
- package/dist/server/plugins/crud/funcs/dataUpdate.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/dataUpdate.js +0 -205
- package/dist/server/plugins/crud/funcs/dataUpsert.d.ts +0 -13
- package/dist/server/plugins/crud/funcs/dataUpsert.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/dataUpsert.js +0 -150
- package/dist/server/plugins/crud/funcs/getAccess.d.ts +0 -12
- package/dist/server/plugins/crud/funcs/getAccess.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/getAccess.js +0 -135
- package/dist/server/plugins/crud/funcs/getOpt.d.ts +0 -2
- package/dist/server/plugins/crud/funcs/getOpt.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/getOpt.js +0 -13
- package/dist/server/plugins/crud/funcs/getToken.d.ts +0 -3
- package/dist/server/plugins/crud/funcs/getToken.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/getToken.js +0 -24
- package/dist/server/plugins/crud/funcs/isFileExists.d.ts +0 -3
- package/dist/server/plugins/crud/funcs/isFileExists.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/isFileExists.js +0 -11
- package/dist/server/plugins/crud/funcs/setOpt.d.ts +0 -2
- package/dist/server/plugins/crud/funcs/setOpt.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/setOpt.js +0 -19
- package/dist/server/plugins/crud/funcs/setToken.d.ts +0 -7
- package/dist/server/plugins/crud/funcs/setToken.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/setToken.js +0 -41
- package/dist/server/plugins/crud/funcs/utils/getFolder.d.ts +0 -3
- package/dist/server/plugins/crud/funcs/utils/getFolder.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/utils/getFolder.js +0 -13
- package/dist/server/plugins/crud/funcs/utils/getInsertQuery.d.ts +0 -14
- package/dist/server/plugins/crud/funcs/utils/getInsertQuery.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/utils/getInsertQuery.js +0 -62
- package/dist/server/plugins/crud/funcs/utils/logChanges.d.ts +0 -32
- package/dist/server/plugins/crud/funcs/utils/logChanges.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/utils/logChanges.js +0 -209
- package/dist/server/plugins/crud/funcs/utils/nullif.d.ts +0 -3
- package/dist/server/plugins/crud/funcs/utils/nullif.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/utils/nullif.js +0 -10
- package/dist/server/plugins/crud/funcs/validateData.d.ts +0 -6
- package/dist/server/plugins/crud/funcs/validateData.d.ts.map +0 -1
- package/dist/server/plugins/crud/funcs/validateData.js +0 -132
- package/dist/server/plugins/extra/extraData.d.ts +0 -2
- package/dist/server/plugins/extra/extraData.d.ts.map +0 -1
- package/dist/server/plugins/extra/extraData.js +0 -82
- package/dist/server/plugins/extra/extraDataGet.d.ts +0 -2
- package/dist/server/plugins/extra/extraDataGet.d.ts.map +0 -1
- package/dist/server/plugins/extra/extraDataGet.js +0 -50
- package/dist/server/plugins/file/downloadFile.d.ts +0 -3
- package/dist/server/plugins/file/downloadFile.d.ts.map +0 -1
- package/dist/server/plugins/file/downloadFile.js +0 -15
- package/dist/server/plugins/file/getExport.d.ts +0 -2
- package/dist/server/plugins/file/getExport.d.ts.map +0 -1
- package/dist/server/plugins/file/getExport.js +0 -25
- package/dist/server/plugins/file/getFileSize.d.ts +0 -2
- package/dist/server/plugins/file/getFileSize.d.ts.map +0 -1
- package/dist/server/plugins/file/getFileSize.js +0 -12
- package/dist/server/plugins/file/isFileExists.d.ts +0 -3
- package/dist/server/plugins/file/isFileExists.d.ts.map +0 -1
- package/dist/server/plugins/file/isFileExists.js +0 -13
- package/dist/server/plugins/file/providers/fs.d.ts +0 -17
- package/dist/server/plugins/file/providers/fs.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/fs.js +0 -89
- package/dist/server/plugins/file/providers/index.d.ts +0 -3
- package/dist/server/plugins/file/providers/index.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/index.js +0 -28
- package/dist/server/plugins/file/providers/mime/index.d.ts +0 -3
- package/dist/server/plugins/file/providers/mime/index.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/mime/index.js +0 -7
- package/dist/server/plugins/file/providers/mime/mimes.d.ts +0 -3
- package/dist/server/plugins/file/providers/mime/mimes.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/mime/mimes.js +0 -1179
- package/dist/server/plugins/file/providers/s3/client.d.ts +0 -13
- package/dist/server/plugins/file/providers/s3/client.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/s3/client.js +0 -32
- package/dist/server/plugins/file/providers/s3/funcs/downloadFile.d.ts +0 -3
- package/dist/server/plugins/file/providers/s3/funcs/downloadFile.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/s3/funcs/downloadFile.js +0 -53
- package/dist/server/plugins/file/providers/s3/funcs/fileExists.d.ts +0 -3
- package/dist/server/plugins/file/providers/s3/funcs/fileExists.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/s3/funcs/fileExists.js +0 -26
- package/dist/server/plugins/file/providers/s3/funcs/getFileSize.d.ts +0 -3
- package/dist/server/plugins/file/providers/s3/funcs/getFileSize.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/s3/funcs/getFileSize.js +0 -30
- package/dist/server/plugins/file/providers/s3/funcs/uploadFile.d.ts +0 -3
- package/dist/server/plugins/file/providers/s3/funcs/uploadFile.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/s3/funcs/uploadFile.js +0 -35
- package/dist/server/plugins/file/providers/s3/funcs/utils/getS3FilePath.d.ts +0 -3
- package/dist/server/plugins/file/providers/s3/funcs/utils/getS3FilePath.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/s3/funcs/utils/getS3FilePath.js +0 -18
- package/dist/server/plugins/file/providers/s3/index.d.ts +0 -8
- package/dist/server/plugins/file/providers/s3/index.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/s3/index.js +0 -13
- package/dist/server/plugins/file/providers/utils/getDataSize.d.ts +0 -3
- package/dist/server/plugins/file/providers/utils/getDataSize.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/utils/getDataSize.js +0 -19
- package/dist/server/plugins/file/providers/utils/getValidData.d.ts +0 -3
- package/dist/server/plugins/file/providers/utils/getValidData.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/utils/getValidData.js +0 -30
- package/dist/server/plugins/file/providers/utils/handlers/dataTypes.d.ts +0 -8
- package/dist/server/plugins/file/providers/utils/handlers/dataTypes.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/utils/handlers/dataTypes.js +0 -7
- package/dist/server/plugins/file/providers/utils/handlers/index.d.ts +0 -3
- package/dist/server/plugins/file/providers/utils/handlers/index.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/utils/handlers/index.js +0 -50
- package/dist/server/plugins/file/providers/utils/handlers/sizeHandlers.d.ts +0 -3
- package/dist/server/plugins/file/providers/utils/handlers/sizeHandlers.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/utils/handlers/sizeHandlers.js +0 -9
- package/dist/server/plugins/file/providers/utils/streamToBuffer.d.ts +0 -3
- package/dist/server/plugins/file/providers/utils/streamToBuffer.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/utils/streamToBuffer.js +0 -7
- package/dist/server/plugins/file/providers/utils/typeguards/isArray.d.ts +0 -3
- package/dist/server/plugins/file/providers/utils/typeguards/isArray.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/utils/typeguards/isArray.js +0 -2
- package/dist/server/plugins/file/providers/utils/typeguards/isBuffer.d.ts +0 -3
- package/dist/server/plugins/file/providers/utils/typeguards/isBuffer.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/utils/typeguards/isBuffer.js +0 -2
- package/dist/server/plugins/file/providers/utils/typeguards/isPath.d.ts +0 -3
- package/dist/server/plugins/file/providers/utils/typeguards/isPath.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/utils/typeguards/isPath.js +0 -3
- package/dist/server/plugins/file/providers/utils/typeguards/isReadableStream.d.ts +0 -3
- package/dist/server/plugins/file/providers/utils/typeguards/isReadableStream.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/utils/typeguards/isReadableStream.js +0 -7
- package/dist/server/plugins/file/providers/utils/typeguards/isText.d.ts +0 -3
- package/dist/server/plugins/file/providers/utils/typeguards/isText.d.ts.map +0 -1
- package/dist/server/plugins/file/providers/utils/typeguards/isText.js +0 -2
- package/dist/server/plugins/file/uploadFile.d.ts +0 -3
- package/dist/server/plugins/file/uploadFile.d.ts.map +0 -1
- package/dist/server/plugins/file/uploadFile.js +0 -14
- package/dist/server/plugins/file/uploadMultiPart.d.ts +0 -31
- package/dist/server/plugins/file/uploadMultiPart.d.ts.map +0 -1
- package/dist/server/plugins/file/uploadMultiPart.js +0 -166
- package/dist/server/plugins/file/utils/allowedExtensions.d.ts +0 -13
- package/dist/server/plugins/file/utils/allowedExtensions.d.ts.map +0 -1
- package/dist/server/plugins/file/utils/allowedExtensions.js +0 -52
- package/dist/server/plugins/file/utils/getFileType.d.ts +0 -2
- package/dist/server/plugins/file/utils/getFileType.d.ts.map +0 -1
- package/dist/server/plugins/file/utils/getFileType.js +0 -12
- package/dist/server/plugins/file/utils/getPath.d.ts +0 -3
- package/dist/server/plugins/file/utils/getPath.d.ts.map +0 -1
- package/dist/server/plugins/file/utils/getPath.js +0 -30
- package/dist/server/plugins/file/utils/inspectContent.d.ts +0 -12
- package/dist/server/plugins/file/utils/inspectContent.d.ts.map +0 -1
- package/dist/server/plugins/file/utils/inspectContent.js +0 -145
- package/dist/server/plugins/file/utils/isFileExists.d.ts +0 -3
- package/dist/server/plugins/file/utils/isFileExists.d.ts.map +0 -1
- package/dist/server/plugins/file/utils/isFileExists.js +0 -15
- package/dist/server/plugins/grpc/file2json.d.ts +0 -9
- package/dist/server/plugins/grpc/file2json.d.ts.map +0 -1
- package/dist/server/plugins/grpc/file2json.js +0 -50
- package/dist/server/plugins/grpc/grpc.d.ts +0 -3
- package/dist/server/plugins/grpc/grpc.d.ts.map +0 -1
- package/dist/server/plugins/grpc/grpc.js +0 -114
- package/dist/server/plugins/grpc/office2pdf.d.ts +0 -6
- package/dist/server/plugins/grpc/office2pdf.d.ts.map +0 -1
- package/dist/server/plugins/grpc/office2pdf.js +0 -78
- package/dist/server/plugins/grpc/utils/csv2xls.d.ts +0 -6
- package/dist/server/plugins/grpc/utils/csv2xls.d.ts.map +0 -1
- package/dist/server/plugins/grpc/utils/csv2xls.js +0 -6
- package/dist/server/plugins/grpc/utils/excel2Json.d.ts +0 -4
- package/dist/server/plugins/grpc/utils/excel2Json.d.ts.map +0 -1
- package/dist/server/plugins/grpc/utils/excel2Json.js +0 -10
- package/dist/server/plugins/grpc/utils/html2doc.d.ts +0 -7
- package/dist/server/plugins/grpc/utils/html2doc.d.ts.map +0 -1
- package/dist/server/plugins/grpc/utils/html2doc.js +0 -12
- package/dist/server/plugins/grpc/utils/html2img.d.ts +0 -7
- package/dist/server/plugins/grpc/utils/html2img.d.ts.map +0 -1
- package/dist/server/plugins/grpc/utils/html2img.js +0 -12
- package/dist/server/plugins/grpc/utils/html2pdf.d.ts +0 -4
- package/dist/server/plugins/grpc/utils/html2pdf.d.ts.map +0 -1
- package/dist/server/plugins/grpc/utils/html2pdf.js +0 -14
- package/dist/server/plugins/grpc/utils/htmlTemplate.d.ts +0 -3
- package/dist/server/plugins/grpc/utils/htmlTemplate.d.ts.map +0 -1
- package/dist/server/plugins/grpc/utils/htmlTemplate.js +0 -13
- package/dist/server/plugins/grpc/utils/json2xls.d.ts +0 -10
- package/dist/server/plugins/grpc/utils/json2xls.d.ts.map +0 -1
- package/dist/server/plugins/grpc/utils/json2xls.js +0 -11
- package/dist/server/plugins/grpc/utils/mergePdf.d.ts +0 -5
- package/dist/server/plugins/grpc/utils/mergePdf.d.ts.map +0 -1
- package/dist/server/plugins/grpc/utils/mergePdf.js +0 -13
- package/dist/server/plugins/hook/addHook.d.ts +0 -2
- package/dist/server/plugins/hook/addHook.d.ts.map +0 -1
- package/dist/server/plugins/hook/addHook.js +0 -7
- package/dist/server/plugins/hook/applyHook.d.ts +0 -2
- package/dist/server/plugins/hook/applyHook.d.ts.map +0 -1
- package/dist/server/plugins/hook/applyHook.js +0 -24
- package/dist/server/plugins/hook/applyHookSync.d.ts +0 -2
- package/dist/server/plugins/hook/applyHookSync.d.ts.map +0 -1
- package/dist/server/plugins/hook/applyHookSync.js +0 -7
- package/dist/server/plugins/hook/hookList.d.ts +0 -3
- package/dist/server/plugins/hook/hookList.d.ts.map +0 -1
- package/dist/server/plugins/hook/hookList.js +0 -1
- package/dist/server/plugins/logger/checkUserAccess.d.ts +0 -10
- package/dist/server/plugins/logger/checkUserAccess.d.ts.map +0 -1
- package/dist/server/plugins/logger/checkUserAccess.js +0 -20
- package/dist/server/plugins/logger/createFileStream.d.ts +0 -3
- package/dist/server/plugins/logger/createFileStream.d.ts.map +0 -1
- package/dist/server/plugins/logger/createFileStream.js +0 -63
- package/dist/server/plugins/logger/errorMessage.d.ts +0 -3
- package/dist/server/plugins/logger/errorMessage.d.ts.map +0 -1
- package/dist/server/plugins/logger/errorMessage.js +0 -29
- package/dist/server/plugins/logger/errorStatus.d.ts +0 -3
- package/dist/server/plugins/logger/errorStatus.d.ts.map +0 -1
- package/dist/server/plugins/logger/errorStatus.js +0 -23
- package/dist/server/plugins/logger/getHooks.d.ts +0 -5
- package/dist/server/plugins/logger/getHooks.d.ts.map +0 -1
- package/dist/server/plugins/logger/getHooks.js +0 -17
- package/dist/server/plugins/logger/getLogger.d.ts +0 -9
- package/dist/server/plugins/logger/getLogger.d.ts.map +0 -1
- package/dist/server/plugins/logger/getLogger.js +0 -68
- package/dist/server/plugins/logger/getRootDir.d.ts +0 -3
- package/dist/server/plugins/logger/getRootDir.d.ts.map +0 -1
- package/dist/server/plugins/logger/getRootDir.js +0 -3
- package/dist/server/plugins/logger/index.d.ts +0 -4
- package/dist/server/plugins/logger/index.d.ts.map +0 -1
- package/dist/server/plugins/logger/index.js +0 -95
- package/dist/server/plugins/logger/labels.d.ts +0 -3
- package/dist/server/plugins/logger/labels.d.ts.map +0 -1
- package/dist/server/plugins/logger/labels.js +0 -10
- package/dist/server/plugins/logger/serializers.d.ts +0 -16
- package/dist/server/plugins/logger/serializers.d.ts.map +0 -1
- package/dist/server/plugins/logger/serializers.js +0 -22
- package/dist/server/plugins/logger/timestampWithTimeZone.d.ts +0 -2
- package/dist/server/plugins/logger/timestampWithTimeZone.d.ts.map +0 -1
- package/dist/server/plugins/logger/timestampWithTimeZone.js +0 -5
- package/dist/server/plugins/md/funcs/formatMdoc.d.ts +0 -2
- package/dist/server/plugins/md/funcs/formatMdoc.d.ts.map +0 -1
- package/dist/server/plugins/md/funcs/formatMdoc.js +0 -45
- package/dist/server/plugins/md/funcs/mdToHTML.d.ts +0 -8
- package/dist/server/plugins/md/funcs/mdToHTML.d.ts.map +0 -1
- package/dist/server/plugins/md/funcs/mdToHTML.js +0 -16
- package/dist/server/plugins/metric/index.d.ts +0 -3
- package/dist/server/plugins/metric/index.d.ts.map +0 -1
- package/dist/server/plugins/metric/index.js +0 -6
- package/dist/server/plugins/metric/loggerSystem.d.ts +0 -2
- package/dist/server/plugins/metric/loggerSystem.d.ts.map +0 -1
- package/dist/server/plugins/metric/loggerSystem.js +0 -153
- package/dist/server/plugins/metric/systemMetricsFifthly.d.ts +0 -6
- package/dist/server/plugins/metric/systemMetricsFifthly.d.ts.map +0 -1
- package/dist/server/plugins/metric/systemMetricsFifthly.js +0 -20
- package/dist/server/plugins/migration/exec.migrations.all.d.ts +0 -2
- package/dist/server/plugins/migration/exec.migrations.all.d.ts.map +0 -1
- package/dist/server/plugins/migration/exec.migrations.all.js +0 -65
- package/dist/server/plugins/migration/exec.migrations.d.ts +0 -2
- package/dist/server/plugins/migration/exec.migrations.d.ts.map +0 -1
- package/dist/server/plugins/migration/exec.migrations.js +0 -67
- package/dist/server/plugins/migration/exec.sql.d.ts +0 -2
- package/dist/server/plugins/migration/exec.sql.d.ts.map +0 -1
- package/dist/server/plugins/migration/exec.sql.js +0 -62
- package/dist/server/plugins/notifications/addNotification.d.ts +0 -12
- package/dist/server/plugins/notifications/addNotification.d.ts.map +0 -1
- package/dist/server/plugins/notifications/addNotification.js +0 -18
- package/dist/server/plugins/pg/funcs/autoIndex.d.ts +0 -2
- package/dist/server/plugins/pg/funcs/autoIndex.d.ts.map +0 -1
- package/dist/server/plugins/pg/funcs/autoIndex.js +0 -104
- package/dist/server/plugins/pg/funcs/getDBParams.d.ts +0 -2
- package/dist/server/plugins/pg/funcs/getDBParams.d.ts.map +0 -1
- package/dist/server/plugins/pg/funcs/getDBParams.js +0 -16
- package/dist/server/plugins/pg/funcs/getMeta.d.ts +0 -2
- package/dist/server/plugins/pg/funcs/getMeta.d.ts.map +0 -1
- package/dist/server/plugins/pg/funcs/getMeta.js +0 -76
- package/dist/server/plugins/pg/funcs/getPG.d.ts +0 -3
- package/dist/server/plugins/pg/funcs/getPG.d.ts.map +0 -1
- package/dist/server/plugins/pg/funcs/getPG.js +0 -50
- package/dist/server/plugins/pg/funcs/getPGAsync.d.ts +0 -3
- package/dist/server/plugins/pg/funcs/getPGAsync.d.ts.map +0 -1
- package/dist/server/plugins/pg/funcs/getPGAsync.js +0 -12
- package/dist/server/plugins/pg/funcs/init.d.ts +0 -4
- package/dist/server/plugins/pg/funcs/init.d.ts.map +0 -1
- package/dist/server/plugins/pg/funcs/init.js +0 -190
- package/dist/server/plugins/pg/funcs/pool.d.ts +0 -4
- package/dist/server/plugins/pg/funcs/pool.d.ts.map +0 -1
- package/dist/server/plugins/pg/funcs/pool.js +0 -65
- package/dist/server/plugins/pg/index.d.ts +0 -3
- package/dist/server/plugins/pg/index.d.ts.map +0 -1
- package/dist/server/plugins/pg/index.js +0 -51
- package/dist/server/plugins/pg/pgClients.d.ts +0 -3
- package/dist/server/plugins/pg/pgClients.d.ts.map +0 -1
- package/dist/server/plugins/pg/pgClients.js +0 -2
- package/dist/server/plugins/policy/funcs/checkJWT.d.ts +0 -8
- package/dist/server/plugins/policy/funcs/checkJWT.d.ts.map +0 -1
- package/dist/server/plugins/policy/funcs/checkJWT.js +0 -83
- package/dist/server/plugins/policy/funcs/checkPermissions.d.ts +0 -3
- package/dist/server/plugins/policy/funcs/checkPermissions.d.ts.map +0 -1
- package/dist/server/plugins/policy/funcs/checkPermissions.js +0 -48
- package/dist/server/plugins/policy/funcs/checkPolicy.d.ts +0 -3
- package/dist/server/plugins/policy/funcs/checkPolicy.d.ts.map +0 -1
- package/dist/server/plugins/policy/funcs/checkPolicy.js +0 -99
- package/dist/server/plugins/policy/funcs/checkTraversal.d.ts +0 -2
- package/dist/server/plugins/policy/funcs/checkTraversal.d.ts.map +0 -1
- package/dist/server/plugins/policy/funcs/checkTraversal.js +0 -22
- package/dist/server/plugins/policy/funcs/checkXSS.d.ts +0 -9
- package/dist/server/plugins/policy/funcs/checkXSS.d.ts.map +0 -1
- package/dist/server/plugins/policy/funcs/checkXSS.js +0 -46
- package/dist/server/plugins/policy/funcs/getIP.d.ts +0 -3
- package/dist/server/plugins/policy/funcs/getIP.d.ts.map +0 -1
- package/dist/server/plugins/policy/funcs/getIP.js +0 -8
- package/dist/server/plugins/policy/index.d.ts +0 -3
- package/dist/server/plugins/policy/index.d.ts.map +0 -1
- package/dist/server/plugins/policy/index.js +0 -47
- package/dist/server/plugins/policy/xssInjection.d.ts +0 -3
- package/dist/server/plugins/policy/xssInjection.d.ts.map +0 -1
- package/dist/server/plugins/policy/xssInjection.js +0 -72
- package/dist/server/plugins/redis/client.d.ts +0 -3
- package/dist/server/plugins/redis/client.d.ts.map +0 -1
- package/dist/server/plugins/redis/client.js +0 -6
- package/dist/server/plugins/redis/funcs/getRedis.d.ts +0 -13
- package/dist/server/plugins/redis/funcs/getRedis.d.ts.map +0 -1
- package/dist/server/plugins/redis/funcs/getRedis.js +0 -46
- package/dist/server/plugins/redis/funcs/redisClients.d.ts +0 -3
- package/dist/server/plugins/redis/funcs/redisClients.d.ts.map +0 -1
- package/dist/server/plugins/redis/funcs/redisClients.js +0 -2
- package/dist/server/plugins/redis/index.d.ts +0 -4
- package/dist/server/plugins/redis/index.d.ts.map +0 -1
- package/dist/server/plugins/redis/index.js +0 -13
- package/dist/server/plugins/sqlite/funcs/getSqlite.d.ts +0 -3
- package/dist/server/plugins/sqlite/funcs/getSqlite.d.ts.map +0 -1
- package/dist/server/plugins/sqlite/funcs/getSqlite.js +0 -29
- package/dist/server/plugins/sqlite/funcs/init.d.ts +0 -3
- package/dist/server/plugins/sqlite/funcs/init.d.ts.map +0 -1
- package/dist/server/plugins/sqlite/funcs/init.js +0 -45
- package/dist/server/plugins/sqlite/index.d.ts +0 -5
- package/dist/server/plugins/sqlite/index.d.ts.map +0 -1
- package/dist/server/plugins/sqlite/index.js +0 -12
- package/dist/server/plugins/sqlite/sqliteClients.d.ts +0 -3
- package/dist/server/plugins/sqlite/sqliteClients.d.ts.map +0 -1
- package/dist/server/plugins/sqlite/sqliteClients.js +0 -24
- package/dist/server/plugins/table/funcs/addMenu.d.ts +0 -2
- package/dist/server/plugins/table/funcs/addMenu.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/addMenu.js +0 -12
- package/dist/server/plugins/table/funcs/addTemplateDir.d.ts +0 -2
- package/dist/server/plugins/table/funcs/addTemplateDir.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/addTemplateDir.js +0 -16
- package/dist/server/plugins/table/funcs/customTokens.d.ts +0 -3
- package/dist/server/plugins/table/funcs/customTokens.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/customTokens.js +0 -2
- package/dist/server/plugins/table/funcs/getColumnCLS.d.ts +0 -2
- package/dist/server/plugins/table/funcs/getColumnCLS.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getColumnCLS.js +0 -65
- package/dist/server/plugins/table/funcs/getData.d.ts +0 -32
- package/dist/server/plugins/table/funcs/getData.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getData.js +0 -703
- package/dist/server/plugins/table/funcs/getFilter.d.ts +0 -11
- package/dist/server/plugins/table/funcs/getFilter.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilter.js +0 -31
- package/dist/server/plugins/table/funcs/getFilterSQL/index.d.ts +0 -26
- package/dist/server/plugins/table/funcs/getFilterSQL/index.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilterSQL/index.js +0 -239
- package/dist/server/plugins/table/funcs/getFilterSQL/util/formatValue.d.ts +0 -12
- package/dist/server/plugins/table/funcs/getFilterSQL/util/formatValue.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilterSQL/util/formatValue.js +0 -151
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getCustomQuery.d.ts +0 -3
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getCustomQuery.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getCustomQuery.js +0 -20
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getFilterQuery.d.ts +0 -18
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getFilterQuery.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getFilterQuery.js +0 -82
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getOptimizedQuery.d.ts +0 -7
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getOptimizedQuery.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getOptimizedQuery.js +0 -11
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getRangeQuery.d.ts +0 -2
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getRangeQuery.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getRangeQuery.js +0 -238
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getTableSql.d.ts +0 -9
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getTableSql.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilterSQL/util/getTableSql.js +0 -40
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/formatValue.d.ts +0 -2
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/formatValue.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/formatValue.js +0 -262
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getFilterList.d.ts +0 -8
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getFilterList.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getFilterList.js +0 -90
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getFilterQuery.d.ts +0 -17
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getFilterQuery.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getFilterQuery.js +0 -90
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getRangeQuery.d.ts +0 -17
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getRangeQuery.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getRangeQuery.js +0 -338
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getTableSql.d.ts +0 -9
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getTableSql.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/getTableSql.js +0 -40
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/index.d.ts +0 -20
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/index.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getFilterSQLParametrized/index.js +0 -156
- package/dist/server/plugins/table/funcs/getSelect.d.ts +0 -2
- package/dist/server/plugins/table/funcs/getSelect.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getSelect.js +0 -38
- package/dist/server/plugins/table/funcs/getSelectMeta.d.ts +0 -10
- package/dist/server/plugins/table/funcs/getSelectMeta.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getSelectMeta.js +0 -97
- package/dist/server/plugins/table/funcs/getTemplate.d.ts +0 -2
- package/dist/server/plugins/table/funcs/getTemplate.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getTemplate.js +0 -93
- package/dist/server/plugins/table/funcs/getTemplatePath.d.ts +0 -2
- package/dist/server/plugins/table/funcs/getTemplatePath.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getTemplatePath.js +0 -60
- package/dist/server/plugins/table/funcs/getTemplateSync.d.ts +0 -2
- package/dist/server/plugins/table/funcs/getTemplateSync.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getTemplateSync.js +0 -84
- package/dist/server/plugins/table/funcs/getTemplates.d.ts +0 -2
- package/dist/server/plugins/table/funcs/getTemplates.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/getTemplates.js +0 -14
- package/dist/server/plugins/table/funcs/gisIRColumn.d.ts +0 -23
- package/dist/server/plugins/table/funcs/gisIRColumn.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/gisIRColumn.js +0 -83
- package/dist/server/plugins/table/funcs/loadTemplate.d.ts +0 -3
- package/dist/server/plugins/table/funcs/loadTemplate.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/loadTemplate.js +0 -2
- package/dist/server/plugins/table/funcs/loadTemplatePath.d.ts +0 -3
- package/dist/server/plugins/table/funcs/loadTemplatePath.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/loadTemplatePath.js +0 -2
- package/dist/server/plugins/table/funcs/menuDirs.d.ts +0 -3
- package/dist/server/plugins/table/funcs/menuDirs.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/menuDirs.js +0 -2
- package/dist/server/plugins/table/funcs/metaFormat/getSelectVal.d.ts +0 -2
- package/dist/server/plugins/table/funcs/metaFormat/getSelectVal.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/metaFormat/getSelectVal.js +0 -87
- package/dist/server/plugins/table/funcs/metaFormat/index.d.ts +0 -9
- package/dist/server/plugins/table/funcs/metaFormat/index.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/metaFormat/index.js +0 -80
- package/dist/server/plugins/table/funcs/userTemplateDir.d.ts +0 -3
- package/dist/server/plugins/table/funcs/userTemplateDir.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/userTemplateDir.js +0 -2
- package/dist/server/plugins/table/funcs/userTokens.d.ts +0 -3
- package/dist/server/plugins/table/funcs/userTokens.d.ts.map +0 -1
- package/dist/server/plugins/table/funcs/userTokens.js +0 -2
- package/dist/server/plugins/upload/getUploadStatus.d.ts +0 -5
- package/dist/server/plugins/upload/getUploadStatus.d.ts.map +0 -1
- package/dist/server/plugins/upload/getUploadStatus.js +0 -36
- package/dist/server/plugins/upload/index.d.ts +0 -9
- package/dist/server/plugins/upload/index.d.ts.map +0 -1
- package/dist/server/plugins/upload/index.js +0 -27
- package/dist/server/plugins/upload/s3.d.ts +0 -91
- package/dist/server/plugins/upload/s3.d.ts.map +0 -1
- package/dist/server/plugins/upload/s3.js +0 -464
- package/dist/server/plugins/upload/s3minio.d.ts +0 -59
- package/dist/server/plugins/upload/s3minio.d.ts.map +0 -1
- package/dist/server/plugins/upload/s3minio.js +0 -199
- package/dist/server/plugins/upload/startUpload.d.ts +0 -9
- package/dist/server/plugins/upload/startUpload.d.ts.map +0 -1
- package/dist/server/plugins/upload/startUpload.js +0 -95
- package/dist/server/plugins/upload/uploadChunk.d.ts +0 -9
- package/dist/server/plugins/upload/uploadChunk.d.ts.map +0 -1
- package/dist/server/plugins/upload/uploadChunk.js +0 -110
- package/dist/server/plugins/usercls/index.d.ts +0 -42
- package/dist/server/plugins/usercls/index.d.ts.map +0 -1
- package/dist/server/plugins/usercls/index.js +0 -200
- package/dist/server/plugins/util/funcs/eventStream.d.ts +0 -2
- package/dist/server/plugins/util/funcs/eventStream.d.ts.map +0 -1
- package/dist/server/plugins/util/funcs/eventStream.js +0 -28
- package/dist/server/plugins/util/funcs/flattenObject.d.ts +0 -2
- package/dist/server/plugins/util/funcs/flattenObject.d.ts.map +0 -1
- package/dist/server/plugins/util/funcs/flattenObject.js +0 -14
- package/dist/server/plugins/util/funcs/unflattenObject.d.ts +0 -2
- package/dist/server/plugins/util/funcs/unflattenObject.d.ts.map +0 -1
- package/dist/server/plugins/util/funcs/unflattenObject.js +0 -50
- package/dist/server/plugins/yml/funcs/json2yml.d.ts +0 -3
- package/dist/server/plugins/yml/funcs/json2yml.d.ts.map +0 -1
- package/dist/server/plugins/yml/funcs/json2yml.js +0 -3
- package/dist/server/plugins/yml/funcs/yml2json.d.ts +0 -3
- package/dist/server/plugins/yml/funcs/yml2json.d.ts.map +0 -1
- package/dist/server/plugins/yml/funcs/yml2json.js +0 -11
- package/dist/server/routes/access/controllers/access.group.d.ts +0 -13
- package/dist/server/routes/access/controllers/access.group.d.ts.map +0 -1
- package/dist/server/routes/access/controllers/access.group.js +0 -30
- package/dist/server/routes/access/controllers/access.group.post.d.ts +0 -22
- package/dist/server/routes/access/controllers/access.group.post.d.ts.map +0 -1
- package/dist/server/routes/access/controllers/access.group.post.js +0 -80
- package/dist/server/routes/access/controllers/access.interface.d.ts +0 -4
- package/dist/server/routes/access/controllers/access.interface.d.ts.map +0 -1
- package/dist/server/routes/access/controllers/access.interface.js +0 -35
- package/dist/server/routes/access/controllers/access.user.d.ts +0 -6
- package/dist/server/routes/access/controllers/access.user.d.ts.map +0 -1
- package/dist/server/routes/access/controllers/access.user.js +0 -31
- package/dist/server/routes/access/controllers/access.user.post.d.ts +0 -9
- package/dist/server/routes/access/controllers/access.user.post.d.ts.map +0 -1
- package/dist/server/routes/access/controllers/access.user.post.js +0 -37
- package/dist/server/routes/access/index.d.ts +0 -2
- package/dist/server/routes/access/index.d.ts.map +0 -1
- package/dist/server/routes/access/index.js +0 -32
- package/dist/server/routes/access/schema.d.ts +0 -144
- package/dist/server/routes/access/schema.d.ts.map +0 -1
- package/dist/server/routes/access/schema.js +0 -127
- package/dist/server/routes/auth/controllers/2factor/providers/totp.d.ts +0 -44
- package/dist/server/routes/auth/controllers/2factor/providers/totp.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/2factor/providers/totp.js +0 -133
- package/dist/server/routes/auth/controllers/2factor/qrcode.d.ts +0 -4
- package/dist/server/routes/auth/controllers/2factor/qrcode.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/2factor/qrcode.js +0 -42
- package/dist/server/routes/auth/controllers/2factor/recovery.d.ts +0 -20
- package/dist/server/routes/auth/controllers/2factor/recovery.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/2factor/recovery.js +0 -82
- package/dist/server/routes/auth/controllers/2factor/reset.d.ts +0 -3
- package/dist/server/routes/auth/controllers/2factor/reset.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/2factor/reset.js +0 -15
- package/dist/server/routes/auth/controllers/2factor/verify.d.ts +0 -20
- package/dist/server/routes/auth/controllers/2factor/verify.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/2factor/verify.js +0 -75
- package/dist/server/routes/auth/controllers/core/getUserInfo.d.ts +0 -2
- package/dist/server/routes/auth/controllers/core/getUserInfo.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/core/getUserInfo.js +0 -88
- package/dist/server/routes/auth/controllers/core/login.d.ts +0 -10
- package/dist/server/routes/auth/controllers/core/login.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/core/login.js +0 -21
- package/dist/server/routes/auth/controllers/core/logout.d.ts +0 -9
- package/dist/server/routes/auth/controllers/core/logout.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/core/logout.js +0 -20
- package/dist/server/routes/auth/controllers/core/passwordRecovery.d.ts +0 -22
- package/dist/server/routes/auth/controllers/core/passwordRecovery.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/core/passwordRecovery.js +0 -150
- package/dist/server/routes/auth/controllers/core/registration.d.ts +0 -21
- package/dist/server/routes/auth/controllers/core/registration.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/core/registration.js +0 -110
- package/dist/server/routes/auth/controllers/core/updateUserInfo.d.ts +0 -3
- package/dist/server/routes/auth/controllers/core/updateUserInfo.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/core/updateUserInfo.js +0 -18
- package/dist/server/routes/auth/controllers/euSign/authByData.d.ts +0 -4
- package/dist/server/routes/auth/controllers/euSign/authByData.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/euSign/authByData.js +0 -125
- package/dist/server/routes/auth/controllers/jwt/authorize.d.ts +0 -3
- package/dist/server/routes/auth/controllers/jwt/authorize.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/jwt/authorize.js +0 -99
- package/dist/server/routes/auth/controllers/jwt/token.d.ts +0 -4
- package/dist/server/routes/auth/controllers/jwt/token.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/jwt/token.js +0 -56
- package/dist/server/routes/auth/controllers/page/login2faTemplate.d.ts +0 -4
- package/dist/server/routes/auth/controllers/page/login2faTemplate.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/page/login2faTemplate.js +0 -79
- package/dist/server/routes/auth/controllers/page/loginEuSign.d.ts +0 -3
- package/dist/server/routes/auth/controllers/page/loginEuSign.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/page/loginEuSign.js +0 -24
- package/dist/server/routes/auth/controllers/page/loginTemplate.d.ts +0 -4
- package/dist/server/routes/auth/controllers/page/loginTemplate.d.ts.map +0 -1
- package/dist/server/routes/auth/controllers/page/loginTemplate.js +0 -49
- package/dist/server/routes/auth/index.d.ts +0 -3
- package/dist/server/routes/auth/index.d.ts.map +0 -1
- package/dist/server/routes/auth/index.js +0 -117
- package/dist/server/routes/cron/controllers/cronApi.d.ts +0 -2
- package/dist/server/routes/cron/controllers/cronApi.d.ts.map +0 -1
- package/dist/server/routes/cron/controllers/cronApi.js +0 -24
- package/dist/server/routes/cron/index.d.ts +0 -3
- package/dist/server/routes/cron/index.d.ts.map +0 -1
- package/dist/server/routes/cron/index.js +0 -19
- package/dist/server/routes/crud/controllers/deleteCrud.d.ts +0 -3
- package/dist/server/routes/crud/controllers/deleteCrud.d.ts.map +0 -1
- package/dist/server/routes/crud/controllers/deleteCrud.js +0 -90
- package/dist/server/routes/crud/controllers/insert.d.ts +0 -2
- package/dist/server/routes/crud/controllers/insert.d.ts.map +0 -1
- package/dist/server/routes/crud/controllers/insert.js +0 -140
- package/dist/server/routes/crud/controllers/table.d.ts +0 -2
- package/dist/server/routes/crud/controllers/table.d.ts.map +0 -1
- package/dist/server/routes/crud/controllers/table.js +0 -192
- package/dist/server/routes/crud/controllers/update.d.ts +0 -2
- package/dist/server/routes/crud/controllers/update.d.ts.map +0 -1
- package/dist/server/routes/crud/controllers/update.js +0 -139
- package/dist/server/routes/crud/crud.route.d.ts +0 -3
- package/dist/server/routes/crud/crud.route.d.ts.map +0 -1
- package/dist/server/routes/crud/crud.route.js +0 -161
- package/dist/server/routes/crud/crud.schema.d.ts +0 -114
- package/dist/server/routes/crud/crud.schema.d.ts.map +0 -1
- package/dist/server/routes/crud/crud.schema.js +0 -64
- package/dist/server/routes/crud/functions/createTableRelation.d.ts +0 -13
- package/dist/server/routes/crud/functions/createTableRelation.d.ts.map +0 -1
- package/dist/server/routes/crud/functions/createTableRelation.js +0 -93
- package/dist/server/routes/crud/functions/deleteTableRelation.d.ts +0 -11
- package/dist/server/routes/crud/functions/deleteTableRelation.d.ts.map +0 -1
- package/dist/server/routes/crud/functions/deleteTableRelation.js +0 -74
- package/dist/server/routes/crud/functions/readTableRelations.d.ts +0 -25
- package/dist/server/routes/crud/functions/readTableRelations.d.ts.map +0 -1
- package/dist/server/routes/crud/functions/readTableRelations.js +0 -76
- package/dist/server/routes/crud/functions/updateTableRelation.d.ts +0 -14
- package/dist/server/routes/crud/functions/updateTableRelation.d.ts.map +0 -1
- package/dist/server/routes/crud/functions/updateTableRelation.js +0 -117
- package/dist/server/routes/dblist/controllers/readItems.d.ts +0 -7
- package/dist/server/routes/dblist/controllers/readItems.d.ts.map +0 -1
- package/dist/server/routes/dblist/controllers/readItems.js +0 -25
- package/dist/server/routes/dblist/controllers/setItem.d.ts +0 -4
- package/dist/server/routes/dblist/controllers/setItem.d.ts.map +0 -1
- package/dist/server/routes/dblist/controllers/setItem.js +0 -21
- package/dist/server/routes/dblist/index.d.ts +0 -2
- package/dist/server/routes/dblist/index.d.ts.map +0 -1
- package/dist/server/routes/dblist/index.js +0 -24
- package/dist/server/routes/dblist/utils/formatData.d.ts +0 -2
- package/dist/server/routes/dblist/utils/formatData.d.ts.map +0 -1
- package/dist/server/routes/dblist/utils/formatData.js +0 -8
- package/dist/server/routes/dictionaries/dictionaries.route.d.ts +0 -2
- package/dist/server/routes/dictionaries/dictionaries.route.d.ts.map +0 -1
- package/dist/server/routes/dictionaries/dictionaries.route.js +0 -134
- package/dist/server/routes/dictionaries/dictionaries.schema.d.ts +0 -190
- package/dist/server/routes/dictionaries/dictionaries.schema.d.ts.map +0 -1
- package/dist/server/routes/dictionaries/dictionaries.schema.js +0 -86
- package/dist/server/routes/dictionaries/functions/create.dictionary.d.ts +0 -10
- package/dist/server/routes/dictionaries/functions/create.dictionary.d.ts.map +0 -1
- package/dist/server/routes/dictionaries/functions/create.dictionary.item.d.ts +0 -13
- package/dist/server/routes/dictionaries/functions/create.dictionary.item.d.ts.map +0 -1
- package/dist/server/routes/dictionaries/functions/create.dictionary.item.js +0 -57
- package/dist/server/routes/dictionaries/functions/create.dictionary.js +0 -76
- package/dist/server/routes/dictionaries/functions/delete.dictionary.d.ts +0 -9
- package/dist/server/routes/dictionaries/functions/delete.dictionary.d.ts.map +0 -1
- package/dist/server/routes/dictionaries/functions/delete.dictionary.item.d.ts +0 -11
- package/dist/server/routes/dictionaries/functions/delete.dictionary.item.d.ts.map +0 -1
- package/dist/server/routes/dictionaries/functions/delete.dictionary.item.js +0 -32
- package/dist/server/routes/dictionaries/functions/delete.dictionary.js +0 -28
- package/dist/server/routes/dictionaries/functions/read.dictionaries.d.ts +0 -5
- package/dist/server/routes/dictionaries/functions/read.dictionaries.d.ts.map +0 -1
- package/dist/server/routes/dictionaries/functions/read.dictionaries.js +0 -27
- package/dist/server/routes/dictionaries/functions/update.dictionary.d.ts +0 -10
- package/dist/server/routes/dictionaries/functions/update.dictionary.d.ts.map +0 -1
- package/dist/server/routes/dictionaries/functions/update.dictionary.item.d.ts +0 -13
- package/dist/server/routes/dictionaries/functions/update.dictionary.item.d.ts.map +0 -1
- package/dist/server/routes/dictionaries/functions/update.dictionary.item.js +0 -48
- package/dist/server/routes/dictionaries/functions/update.dictionary.js +0 -51
- package/dist/server/routes/file/controllers/delete.d.ts +0 -23
- package/dist/server/routes/file/controllers/delete.d.ts.map +0 -1
- package/dist/server/routes/file/controllers/delete.js +0 -92
- package/dist/server/routes/file/controllers/download.d.ts +0 -20
- package/dist/server/routes/file/controllers/download.d.ts.map +0 -1
- package/dist/server/routes/file/controllers/download.js +0 -62
- package/dist/server/routes/file/controllers/export.d.ts +0 -35
- package/dist/server/routes/file/controllers/export.d.ts.map +0 -1
- package/dist/server/routes/file/controllers/export.js +0 -356
- package/dist/server/routes/file/controllers/files.d.ts +0 -29
- package/dist/server/routes/file/controllers/files.d.ts.map +0 -1
- package/dist/server/routes/file/controllers/files.js +0 -71
- package/dist/server/routes/file/controllers/resize.d.ts +0 -20
- package/dist/server/routes/file/controllers/resize.d.ts.map +0 -1
- package/dist/server/routes/file/controllers/resize.js +0 -134
- package/dist/server/routes/file/controllers/resizeAll.d.ts +0 -2
- package/dist/server/routes/file/controllers/resizeAll.d.ts.map +0 -1
- package/dist/server/routes/file/controllers/resizeAll.js +0 -149
- package/dist/server/routes/file/controllers/upload.d.ts +0 -2
- package/dist/server/routes/file/controllers/upload.d.ts.map +0 -1
- package/dist/server/routes/file/controllers/upload.js +0 -68
- package/dist/server/routes/file/controllers/uploadImage.d.ts +0 -15
- package/dist/server/routes/file/controllers/uploadImage.d.ts.map +0 -1
- package/dist/server/routes/file/controllers/uploadImage.js +0 -43
- package/dist/server/routes/file/controllers/utils/formatResult.d.ts +0 -2
- package/dist/server/routes/file/controllers/utils/formatResult.d.ts.map +0 -1
- package/dist/server/routes/file/controllers/utils/formatResult.js +0 -13
- package/dist/server/routes/file/controllers/utils/jsonToCsv.d.ts +0 -2
- package/dist/server/routes/file/controllers/utils/jsonToCsv.d.ts.map +0 -1
- package/dist/server/routes/file/controllers/utils/jsonToCsv.js +0 -40
- package/dist/server/routes/file/controllers/utils/jsonToXls.d.ts +0 -2
- package/dist/server/routes/file/controllers/utils/jsonToXls.d.ts.map +0 -1
- package/dist/server/routes/file/controllers/utils/jsonToXls.js +0 -37
- package/dist/server/routes/file/controllers/utils/jsonlToJsonFile.d.ts +0 -2
- package/dist/server/routes/file/controllers/utils/jsonlToJsonFile.d.ts.map +0 -1
- package/dist/server/routes/file/controllers/utils/jsonlToJsonFile.js +0 -32
- package/dist/server/routes/file/controllers/utils/pubsub.d.ts +0 -2
- package/dist/server/routes/file/controllers/utils/pubsub.d.ts.map +0 -1
- package/dist/server/routes/file/controllers/utils/pubsub.js +0 -112
- package/dist/server/routes/file/index.d.ts +0 -3
- package/dist/server/routes/file/index.d.ts.map +0 -1
- package/dist/server/routes/file/index.js +0 -58
- package/dist/server/routes/file/schema.d.ts +0 -56
- package/dist/server/routes/file/schema.d.ts.map +0 -1
- package/dist/server/routes/file/schema.js +0 -28
- package/dist/server/routes/grpc/controllers/file2geojson.d.ts +0 -7
- package/dist/server/routes/grpc/controllers/file2geojson.d.ts.map +0 -1
- package/dist/server/routes/grpc/controllers/file2geojson.js +0 -54
- package/dist/server/routes/grpc/controllers/filePreview.d.ts +0 -10
- package/dist/server/routes/grpc/controllers/filePreview.d.ts.map +0 -1
- package/dist/server/routes/grpc/controllers/filePreview.js +0 -88
- package/dist/server/routes/grpc/index.d.ts +0 -3
- package/dist/server/routes/grpc/index.d.ts.map +0 -1
- package/dist/server/routes/grpc/index.js +0 -11
- package/dist/server/routes/logger/controllers/logger.file.d.ts +0 -8
- package/dist/server/routes/logger/controllers/logger.file.d.ts.map +0 -1
- package/dist/server/routes/logger/controllers/logger.file.js +0 -81
- package/dist/server/routes/logger/controllers/logger.metrics.d.ts +0 -8
- package/dist/server/routes/logger/controllers/logger.metrics.d.ts.map +0 -1
- package/dist/server/routes/logger/controllers/logger.metrics.js +0 -20
- package/dist/server/routes/logger/controllers/logger.test.api.d.ts +0 -3
- package/dist/server/routes/logger/controllers/logger.test.api.d.ts.map +0 -1
- package/dist/server/routes/logger/controllers/logger.test.api.js +0 -25
- package/dist/server/routes/logger/index.d.ts +0 -3
- package/dist/server/routes/logger/index.d.ts.map +0 -1
- package/dist/server/routes/logger/index.js +0 -25
- package/dist/server/routes/menu/controllers/getMenu.d.ts +0 -22
- package/dist/server/routes/menu/controllers/getMenu.d.ts.map +0 -1
- package/dist/server/routes/menu/controllers/getMenu.js +0 -109
- package/dist/server/routes/menu/controllers/interfaces.d.ts +0 -5
- package/dist/server/routes/menu/controllers/interfaces.d.ts.map +0 -1
- package/dist/server/routes/menu/controllers/interfaces.js +0 -18
- package/dist/server/routes/menu/index.d.ts +0 -2
- package/dist/server/routes/menu/index.d.ts.map +0 -1
- package/dist/server/routes/menu/index.js +0 -14
- package/dist/server/routes/notifications/controllers/addUserNotification.d.ts +0 -3
- package/dist/server/routes/notifications/controllers/addUserNotification.d.ts.map +0 -1
- package/dist/server/routes/notifications/controllers/addUserNotification.js +0 -21
- package/dist/server/routes/notifications/controllers/deleteUserNotification.d.ts +0 -3
- package/dist/server/routes/notifications/controllers/deleteUserNotification.d.ts.map +0 -1
- package/dist/server/routes/notifications/controllers/deleteUserNotification.js +0 -24
- package/dist/server/routes/notifications/controllers/editUserNotification.d.ts +0 -3
- package/dist/server/routes/notifications/controllers/editUserNotification.d.ts.map +0 -1
- package/dist/server/routes/notifications/controllers/editUserNotification.js +0 -28
- package/dist/server/routes/notifications/controllers/readNotifications.d.ts +0 -6
- package/dist/server/routes/notifications/controllers/readNotifications.d.ts.map +0 -1
- package/dist/server/routes/notifications/controllers/readNotifications.js +0 -18
- package/dist/server/routes/notifications/controllers/userNotifications.d.ts +0 -7
- package/dist/server/routes/notifications/controllers/userNotifications.d.ts.map +0 -1
- package/dist/server/routes/notifications/controllers/userNotifications.js +0 -32
- package/dist/server/routes/notifications/index.d.ts +0 -2
- package/dist/server/routes/notifications/index.d.ts.map +0 -1
- package/dist/server/routes/notifications/index.js +0 -30
- package/dist/server/routes/properties/controllers/properties.get.d.ts +0 -16
- package/dist/server/routes/properties/controllers/properties.get.d.ts.map +0 -1
- package/dist/server/routes/properties/controllers/properties.get.js +0 -24
- package/dist/server/routes/properties/controllers/properties.post.d.ts +0 -11
- package/dist/server/routes/properties/controllers/properties.post.d.ts.map +0 -1
- package/dist/server/routes/properties/controllers/properties.post.js +0 -69
- package/dist/server/routes/properties/index.d.ts +0 -3
- package/dist/server/routes/properties/index.d.ts.map +0 -1
- package/dist/server/routes/properties/index.js +0 -23
- package/dist/server/routes/table/controllers/card.d.ts +0 -2
- package/dist/server/routes/table/controllers/card.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/card.js +0 -95
- package/dist/server/routes/table/controllers/cardData.d.ts +0 -2
- package/dist/server/routes/table/controllers/cardData.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/cardData.js +0 -173
- package/dist/server/routes/table/controllers/cardTabData.d.ts +0 -19
- package/dist/server/routes/table/controllers/cardTabData.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/cardTabData.js +0 -50
- package/dist/server/routes/table/controllers/dataInfo.d.ts +0 -19
- package/dist/server/routes/table/controllers/dataInfo.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/dataInfo.js +0 -60
- package/dist/server/routes/table/controllers/filter.d.ts +0 -13
- package/dist/server/routes/table/controllers/filter.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/filter.js +0 -201
- package/dist/server/routes/table/controllers/form.d.ts +0 -2
- package/dist/server/routes/table/controllers/form.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/form.js +0 -48
- package/dist/server/routes/table/controllers/getFormByTable.d.ts +0 -15
- package/dist/server/routes/table/controllers/getFormByTable.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/getFormByTable.js +0 -142
- package/dist/server/routes/table/controllers/search.d.ts +0 -8
- package/dist/server/routes/table/controllers/search.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/search.js +0 -110
- package/dist/server/routes/table/controllers/suggest.d.ts +0 -18
- package/dist/server/routes/table/controllers/suggest.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/suggest.js +0 -409
- package/dist/server/routes/table/controllers/tableData.d.ts +0 -3
- package/dist/server/routes/table/controllers/tableData.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/tableData.js +0 -25
- package/dist/server/routes/table/controllers/tableInfo.d.ts +0 -14
- package/dist/server/routes/table/controllers/tableInfo.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/tableInfo.js +0 -113
- package/dist/server/routes/table/controllers/tokenInfo.d.ts +0 -2
- package/dist/server/routes/table/controllers/tokenInfo.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/tokenInfo.js +0 -11
- package/dist/server/routes/table/controllers/utils/conditions.d.ts +0 -2
- package/dist/server/routes/table/controllers/utils/conditions.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/utils/conditions.js +0 -30
- package/dist/server/routes/table/controllers/utils/formatSchema.d.ts +0 -2
- package/dist/server/routes/table/controllers/utils/formatSchema.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/utils/formatSchema.js +0 -35
- package/dist/server/routes/table/controllers/utils/locales.d.ts +0 -3
- package/dist/server/routes/table/controllers/utils/locales.d.ts.map +0 -1
- package/dist/server/routes/table/controllers/utils/locales.js +0 -2
- package/dist/server/routes/table/functions/getData.d.ts +0 -25
- package/dist/server/routes/table/functions/getData.d.ts.map +0 -1
- package/dist/server/routes/table/functions/getData.js +0 -721
- package/dist/server/routes/table/functions/prettify.d.ts +0 -2
- package/dist/server/routes/table/functions/prettify.d.ts.map +0 -1
- package/dist/server/routes/table/functions/prettify.js +0 -11
- package/dist/server/routes/table/index.d.ts +0 -3
- package/dist/server/routes/table/index.d.ts.map +0 -1
- package/dist/server/routes/table/index.js +0 -60
- package/dist/server/routes/table/schema.d.ts +0 -257
- package/dist/server/routes/table/schema.d.ts.map +0 -1
- package/dist/server/routes/table/schema.js +0 -135
- package/dist/server/routes/templates/controllers/getTemplate.d.ts +0 -2
- package/dist/server/routes/templates/controllers/getTemplate.d.ts.map +0 -1
- package/dist/server/routes/templates/controllers/getTemplate.js +0 -72
- package/dist/server/routes/templates/index.d.ts +0 -2
- package/dist/server/routes/templates/index.d.ts.map +0 -1
- package/dist/server/routes/templates/index.js +0 -14
- package/dist/server/routes/templates/schema.d.ts +0 -15
- package/dist/server/routes/templates/schema.d.ts.map +0 -1
- package/dist/server/routes/templates/schema.js +0 -11
- package/dist/server/routes/upload/index.d.ts +0 -2
- package/dist/server/routes/upload/index.d.ts.map +0 -1
- package/dist/server/routes/upload/index.js +0 -87
- package/dist/server/routes/usercls/controllers/addUserCls.d.ts +0 -9
- package/dist/server/routes/usercls/controllers/addUserCls.d.ts.map +0 -1
- package/dist/server/routes/usercls/controllers/addUserCls.js +0 -30
- package/dist/server/routes/usercls/controllers/deleteUserCls.d.ts +0 -2
- package/dist/server/routes/usercls/controllers/deleteUserCls.d.ts.map +0 -1
- package/dist/server/routes/usercls/controllers/deleteUserCls.js +0 -18
- package/dist/server/routes/usercls/controllers/editUserCls.d.ts +0 -2
- package/dist/server/routes/usercls/controllers/editUserCls.d.ts.map +0 -1
- package/dist/server/routes/usercls/controllers/editUserCls.js +0 -33
- package/dist/server/routes/usercls/controllers/getUserCls.d.ts +0 -2
- package/dist/server/routes/usercls/controllers/getUserCls.d.ts.map +0 -1
- package/dist/server/routes/usercls/controllers/getUserCls.js +0 -42
- package/dist/server/routes/usercls/index.d.ts +0 -2
- package/dist/server/routes/usercls/index.d.ts.map +0 -1
- package/dist/server/routes/usercls/index.js +0 -63
- package/dist/server/routes/util/controllers/api.check.d.ts +0 -2
- package/dist/server/routes/util/controllers/api.check.d.ts.map +0 -1
- package/dist/server/routes/util/controllers/api.check.js +0 -36
- package/dist/server/routes/util/controllers/api.list.d.ts +0 -20
- package/dist/server/routes/util/controllers/api.list.d.ts.map +0 -1
- package/dist/server/routes/util/controllers/api.list.js +0 -64
- package/dist/server/routes/util/controllers/code.generator.d.ts +0 -14
- package/dist/server/routes/util/controllers/code.generator.d.ts.map +0 -1
- package/dist/server/routes/util/controllers/code.generator.js +0 -130
- package/dist/server/routes/util/controllers/config.d.ts +0 -2
- package/dist/server/routes/util/controllers/config.d.ts.map +0 -1
- package/dist/server/routes/util/controllers/config.js +0 -34
- package/dist/server/routes/util/controllers/dependencies.d.ts +0 -2
- package/dist/server/routes/util/controllers/dependencies.d.ts.map +0 -1
- package/dist/server/routes/util/controllers/dependencies.js +0 -32
- package/dist/server/routes/util/controllers/next.id.d.ts +0 -4
- package/dist/server/routes/util/controllers/next.id.d.ts.map +0 -1
- package/dist/server/routes/util/controllers/next.id.js +0 -4
- package/dist/server/routes/util/controllers/status.monitor.d.ts +0 -5
- package/dist/server/routes/util/controllers/status.monitor.d.ts.map +0 -1
- package/dist/server/routes/util/controllers/status.monitor.js +0 -6
- package/dist/server/routes/util/controllers/user.tokens.d.ts +0 -7
- package/dist/server/routes/util/controllers/user.tokens.d.ts.map +0 -1
- package/dist/server/routes/util/controllers/user.tokens.js +0 -33
- package/dist/server/routes/util/index.d.ts +0 -3
- package/dist/server/routes/util/index.d.ts.map +0 -1
- package/dist/server/routes/util/index.js +0 -23
- package/dist/server/routes/widget/controllers/file.edit.d.ts +0 -3
- package/dist/server/routes/widget/controllers/file.edit.d.ts.map +0 -1
- package/dist/server/routes/widget/controllers/file.edit.js +0 -49
- package/dist/server/routes/widget/controllers/widget.del.d.ts +0 -21
- package/dist/server/routes/widget/controllers/widget.del.d.ts.map +0 -1
- package/dist/server/routes/widget/controllers/widget.del.js +0 -83
- package/dist/server/routes/widget/controllers/widget.get.d.ts +0 -6
- package/dist/server/routes/widget/controllers/widget.get.d.ts.map +0 -1
- package/dist/server/routes/widget/controllers/widget.get.js +0 -161
- package/dist/server/routes/widget/controllers/widget.set.d.ts +0 -9
- package/dist/server/routes/widget/controllers/widget.set.d.ts.map +0 -1
- package/dist/server/routes/widget/controllers/widget.set.js +0 -123
- package/dist/server/routes/widget/hook/onWidgetSet.d.ts +0 -2
- package/dist/server/routes/widget/hook/onWidgetSet.d.ts.map +0 -1
- package/dist/server/routes/widget/hook/onWidgetSet.js +0 -13
- package/dist/server/routes/widget/index.d.ts +0 -2
- package/dist/server/routes/widget/index.d.ts.map +0 -1
- package/dist/server/routes/widget/index.js +0 -130
- package/dist/server/routes/widget/services/widget.entity.del.d.ts +0 -26
- package/dist/server/routes/widget/services/widget.entity.del.d.ts.map +0 -1
- package/dist/server/routes/widget/services/widget.entity.del.js +0 -79
- package/dist/server/routes/widget/services/widget.entity.get.d.ts +0 -39
- package/dist/server/routes/widget/services/widget.entity.get.d.ts.map +0 -1
- package/dist/server/routes/widget/services/widget.entity.get.js +0 -148
- package/dist/server/routes/widget/services/widget.entity.set.d.ts +0 -22
- package/dist/server/routes/widget/services/widget.entity.set.d.ts.map +0 -1
- package/dist/server/routes/widget/services/widget.entity.set.js +0 -131
- package/dist/server/types/core.d.ts +0 -64
- package/dist/server/types/core.d.ts.map +0 -1
- package/dist/server/types/core.js +0 -7
- package/dist/test.setup.d.ts +0 -2
- package/dist/test.setup.d.ts.map +0 -1
- package/dist/test.setup.js +0 -22
- package/dist/utils.d.ts +0 -97
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -116
- /package/dist/{server/plugins → plugins}/grpc/utils/convertp.proto +0 -0
- /package/dist/{server/plugins → plugins}/grpc/utils/office2pdf.proto +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFilter.js","names":[],"sources":["../../../../../src/modules/data/services/resource/getFilter.ts"],"sourcesContent":["/* eslint-disable no-console */\r\nimport autoIndex from \"../../../../../src/plugins/pg/funcs/autoIndex.js\";\r\nimport getSelect from \"../../../../../src/plugins/table/funcs/getSelect.js\";\r\nimport getSelectVal from \"../../../../plugins/crud/funcs/metaFormat/getSelectVal.js\";\r\nimport getTemplate from \"../../../../../src/modules/templates/services/getTemplate.js\";\r\nimport getMeta from \"../../../../../src/plugins/pg/funcs/getMeta.js\";\r\n\r\nimport { NotFoundError } from \"../../../../../src/errors.js\";\r\nimport { CoreContext } from \"../../../../core.js\";\r\n\r\nconst { prefix = \"/api\" } = process.env;\r\n\r\ninterface IFilter {\r\n time: number;\r\n list: any[];\r\n custom?: any[] | undefined;\r\n inline?: any[] | undefined;\r\n state?: any[] | undefined;\r\n}\r\n\r\nexport default async function filterAPI(\r\n {\r\n table: table1,\r\n uid,\r\n userType,\r\n filter,\r\n sql,\r\n called = false,\r\n }: {\r\n table: string;\r\n uid?: string;\r\n userType?: string;\r\n filter?: string;\r\n sql?: boolean;\r\n called?: boolean;\r\n },\r\n ctx: CoreContext\r\n): Promise<IFilter | { message: string; status: number } | string | any> {\r\n const time = Date.now();\r\n\r\n const { pg, logger } = ctx;\r\n\r\n const loadTable = await getTemplate(\"table\", table1);\r\n\r\n const {\r\n key,\r\n table = table1,\r\n sql: tableSql,\r\n query: tableQuery,\r\n form,\r\n extra,\r\n filterState,\r\n filterCustom,\r\n } = loadTable || {};\r\n\r\n if (!table) {\r\n throw NotFoundError(\"table not found\");\r\n }\r\n\r\n const { pk: pk1, view } = await getMeta({ table }, { pg });\r\n\r\n const pk = !pk1 && view ? key : pk1;\r\n\r\n if (!pk) {\r\n throw NotFoundError(\"table pkey not found\");\r\n }\r\n\r\n const sqlTable =\r\n (tableSql || [])\r\n .filter((el: any) => !el?.disabled && el?.sql?.replace)\r\n .map(\r\n (el: any, i: any) =>\r\n ` left join lateral (${el.sql.replace(\"{{uid}}\", uid)}) ${\r\n el.name || `t${i}`\r\n } on 1=1 `\r\n )\r\n .join(\"\") || \"\";\r\n\r\n const columns = await pg\r\n .query(`select * from ${table} t ${sqlTable} limit 0`)\r\n .then((r: any) => r.fields || []);\r\n\r\n const fields = await pg\r\n .query(`select * from ${table} t limit 0`)\r\n .then((r: any) => r.fields || []);\r\n\r\n const optimizedSQL = `select * from ${table} t ${sqlTable} where ${\r\n tableQuery || \"1=1\"\r\n } and ${called && filter ? filter : \"1=1\"}`.replace(/{{uid}}/g, uid || \"\");\r\n\r\n if (sql && userType?.includes?.(\"admin\")) {\r\n return optimizedSQL;\r\n }\r\n\r\n const filters = (\r\n loadTable?.filter_list ||\r\n loadTable?.filters ||\r\n loadTable?.filterList ||\r\n []\r\n ).concat(loadTable?.filterSql || []);\r\n\r\n // admin.custom_column - user filter NA-165\r\n const properties = pg.pk?.[\"admin.custom_column\"]\r\n ? await pg\r\n .query(\r\n \"select column_id, name, title, format, data from admin.custom_column where entity=$1 and uid=$2 and filter\",\r\n [table, uid]\r\n )\r\n .then((r: any) => r.rows || [])\r\n : [];\r\n\r\n properties.forEach((row: any) =>\r\n filters.push({\r\n id: row.name,\r\n name: row.name,\r\n ua: row.title,\r\n type: row.format,\r\n data: row.data,\r\n })\r\n );\r\n\r\n // KRYVYIRIH-231\r\n autoIndex({\r\n table,\r\n columns: filters.filter((el: any) =>\r\n columns?.find?.((item: any) => item?.name === el.name)\r\n ),\r\n }).catch((err: any) => {\r\n console.error(err.toString());\r\n logger.file(\"autoindex/error\", {\r\n name: table,\r\n error: err.toString(),\r\n stack: err.stack,\r\n });\r\n });\r\n\r\n const loadTemplate = form ? await getTemplate(\"form\", form) : {};\r\n const extraColumns = extra\r\n ? Object.keys(loadTemplate?.schema || {}).filter(\r\n (key) => !columns.find((col: any) => col.name === key)\r\n )\r\n : [];\r\n\r\n filters?.forEach?.((el: any) =>\r\n Object.assign(el, {\r\n id: el.id || el.name,\r\n title: el.title || el.ua,\r\n extra: extraColumns.includes(el.id || el.name),\r\n })\r\n );\r\n (filters || [])\r\n .filter((el: any) => el.data)\r\n .forEach((el: any) =>\r\n Object.assign(el, {\r\n api: el.api || `${prefix}/suggest/${table}:${el.id}?sel=${el.data}`,\r\n })\r\n );\r\n\r\n await Promise.all(\r\n filters\r\n .filter(\r\n (el: any) =>\r\n el.id &&\r\n el.type !== \"Autocomplete\" &&\r\n !el.sql &&\r\n // !el.options?.find?.((item: any) => item.sql)\r\n !el.options\r\n )\r\n .map(async (el: any) => {\r\n const cls = el.data ? await getSelect({ name: el.data }, ctx) : null;\r\n\r\n if (!cls && !el.type?.includes?.(\"Check\")) return;\r\n const { dataTypeID } =\r\n columns.find((item: any) => item.name === el.id) || {};\r\n\r\n if (el.extra && Array.isArray(cls?.arr || cls)) {\r\n const countArr = await pg.query(\r\n \"select value_text as id, count(*) from crm.extra_data where property_key=$1 and property_entity=$2 group by value_text\",\r\n [el.id, table]\r\n );\r\n const options = countArr.rows.map((cel: any) => {\r\n const data = (cls?.arr || cls).find((c: any) => c.id === cel.id);\r\n return { ...cel, ...data };\r\n });\r\n Object.assign(el, { options });\r\n return;\r\n }\r\n\r\n const q = pg.pgType[dataTypeID]?.includes(\"[]\")\r\n ? `select unnest(\"${el.id}\")::text as id,count(*) from (${optimizedSQL})q group by unnest(\"${el.id}\") limit 100`\r\n : `select \"${el.id}\"::text as id,count(*) from (${optimizedSQL})q group by \"${el.id}\" limit 100`;\r\n\r\n const countArr = await pg.queryCache(q, { table });\r\n\r\n if (countArr.timeout) {\r\n Object.assign(el, { timeout: countArr.timeout });\r\n console.log(\"timeout filter\", table, el.id);\r\n logger.file(\"timeout/filter\", {\r\n table,\r\n type: \"cls\",\r\n filter: el.id,\r\n });\r\n }\r\n\r\n const ids = countArr.rows.map((el1: any) => el1.id);\r\n\r\n const clsData = await getSelectVal({ values: ids, name: el.data }, ctx);\r\n\r\n const options = countArr.rows.map((cel: any) => {\r\n const data = cls?.arr?.find?.(\r\n (c: any) => c.id?.toString?.() === cel.id?.toString?.()\r\n ) || { text: clsData?.[cel.id]?.text || clsData?.[cel.id] || cel.id };\r\n return { ...cel, id: cel.id === null ? \"null\" : cel.id, ...data };\r\n });\r\n Object.assign(el, { options });\r\n })\r\n );\r\n\r\n const q = (filterState || [])\r\n .concat(filterCustom || [])\r\n .filter((el: any) => el.name && el.sql)\r\n .map(\r\n (el: any) =>\r\n `select count(*), '${el.name}' as name from (${optimizedSQL})q where ${el.sql}`\r\n )\r\n .join(\" union all \");\r\n\r\n const { rows = [], timeout: timeout1 }: any = q ? await pg.queryCache(q) : {};\r\n if (timeout1)\r\n logger.file(\"timeout/filter\", {\r\n table,\r\n type: \"state/custom\",\r\n });\r\n\r\n if (rows?.length) {\r\n (filterState || [])\r\n .concat(filterCustom || [])\r\n .filter((el: any) => el.name && el.sql)\r\n .forEach((el: any) => {\r\n const { count } = rows.find((row: any) => row.name === el.name) || {};\r\n Object.assign(el, { count, sql: undefined });\r\n });\r\n }\r\n\r\n // percentile_cont - alternative\r\n await Promise.all(\r\n filters\r\n .filter(\r\n (el: any) =>\r\n el.name &&\r\n el.type === \"Range\" &&\r\n fields?.find?.((item: any) => item?.name === el.name)\r\n )\r\n .map(async (el: any) => {\r\n const data = await pg\r\n .queryCache(\r\n `select array[\r\n min(\"${el.name}\"),\r\n percentile_disc(0.25) within group (order by \"${el.name}\"),\r\n percentile_disc(0.5) within group (order by \"${el.name}\"),\r\n percentile_disc(0.75) within group (order by \"${el.name}\"),\r\n max(\"${el.name}\")\r\n ] as range from ${table} where ${tableQuery || \"1=1\"}`,\r\n { table }\r\n )\r\n .then((res: any) => {\r\n if (res.timeout) {\r\n logger.file(\"timeout/filter\", {\r\n table,\r\n type: \"Range\",\r\n filter: res.name,\r\n });\r\n return res;\r\n }\r\n return res.rows?.[0]?.range;\r\n });\r\n Object.assign(el, { data });\r\n })\r\n );\r\n\r\n const sqlFilters = (filterCustom || []).filter(\r\n (el: any) => el.name && el.sql\r\n );\r\n const q1 = sqlFilters\r\n .map(\r\n (el: any) =>\r\n `select count(*), '${el.name}' as name from ${table} where ${\r\n tableQuery || \"1=1\"\r\n } and ${el.sql}`\r\n )\r\n .join(\" union all \");\r\n\r\n const { rows: sqlRows = [], timeout }: any = q1\r\n ? await pg.queryCache(q1, { table })\r\n : {};\r\n if (timeout) logger.file(\"timeout/filter\", { table, type: \"sqlFilters\" });\r\n\r\n if (sqlRows?.length) {\r\n sqlFilters.forEach((el: any) => {\r\n const { count } = sqlRows.find((row: any) => row.name === el.name) || {};\r\n Object.assign(el, { count, sql: undefined });\r\n });\r\n }\r\n\r\n return {\r\n time: Date.now() - time,\r\n list: filters?.map?.((el: any) => ({\r\n ...el,\r\n sql: called ? el.sql : undefined,\r\n })),\r\n custom: filterCustom,\r\n inline: loadTable?.filterInline,\r\n state: filterState,\r\n };\r\n}\r\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getResource.js","names":["getData"],"sources":["../../../../../src/modules/data/services/resource/getResource.ts"],"sourcesContent":["import { CoreContext, getData } from \"../../../../utils/index.js\";\r\n\r\nexport default async function getResource(\r\n {\r\n resource,\r\n id,\r\n sql,\r\n uid,\r\n userType,\r\n }: {\r\n resource: string;\r\n id: string;\r\n sql?: number;\r\n uid?: string;\r\n userType?: string;\r\n },\r\n ctx: CoreContext\r\n) {\r\n const result = await getData(\r\n {\r\n resource,\r\n id,\r\n sql,\r\n uid,\r\n userType,\r\n },\r\n ctx\r\n );\r\n\r\n return result.rows[0];\r\n}\r\n"],"mappings":"+DAEA,eAA8B,EAC5B,CACE,WACA,KACA,MACA,MACA,YAQF,EACA,CAYA,OAAO,MAXcA,EACnB,CACE,WACA,KACA,MACA,MACA,UACF,EACA,CACF,GAEc,KAAK,EACrB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"./getData.js";import"../../../../utils/index.js";async function t({resource:t,id:n,limit:r,page:i,filter:a,search:o,sql:s,uid:c,userType:l},u){return await e({resource:t,id:n,limit:r,page:i,filter:a,search:o,sql:s,uid:c,userType:l},u)}export{t as default};
|
|
2
|
+
//# sourceMappingURL=getResources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getResources.js","names":["getData"],"sources":["../../../../../src/modules/data/services/resource/getResources.ts"],"sourcesContent":["import { CoreContext, getData } from \"../../../../utils/index.js\";\r\n\r\nexport default async function getResources(\r\n {\r\n resource,\r\n id,\r\n limit,\r\n page,\r\n filter,\r\n search,\r\n sql,\r\n uid,\r\n userType,\r\n }: {\r\n resource: string;\r\n id?: string;\r\n limit?: number;\r\n page?: number;\r\n filter?: string;\r\n search?: string;\r\n sql?: number;\r\n uid?: string;\r\n userType?: string;\r\n },\r\n ctx: CoreContext\r\n) {\r\n const result = await getData(\r\n {\r\n resource,\r\n id,\r\n limit,\r\n page,\r\n filter,\r\n search,\r\n sql,\r\n uid,\r\n userType,\r\n },\r\n ctx\r\n );\r\n\r\n return result;\r\n}\r\n"],"mappings":"+DAEA,eAA8B,EAC5B,CACE,WACA,KACA,QACA,OACA,SACA,SACA,MACA,MACA,YAYF,EACA,CAgBA,OAAO,MAfcA,EACnB,CACE,WACA,KACA,QACA,OACA,SACA,SACA,MACA,MACA,UACF,EACA,CACF,CAGF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./codeGenerator.js";import"./listResource.js";import"./getResources.js";import"./getResource.js";import"./createResource.js";import"./updateResource.js";import"./deleteResource.js";import"./searchData.js";import"./listSuggestions.js";export{};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listResource.js","names":[],"sources":["../../../../../src/modules/data/services/resource/listResource.ts"],"sourcesContent":["import { publicResourcesList } from \"../../../../plugins/access/funcs/getResources.js\";\r\n\r\nexport default () => {\r\n return publicResourcesList;\r\n};\r\n"],"mappings":"uFAEA,IAAA,MACS"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{BadRequestError as e,NotFoundError as t}from"../../../../errors.js";import n from"../../../templates/services/getTemplate.js";import r from"../../../../plugins/pg/funcs/createPgAsync.js";import i from"../../../../plugins/pg/funcs/getMeta.js";import{resources as a}from"../../../../plugins/access/funcs/getResources.js";import o from"../../../../plugins/table/funcs/getColumnCLS.js";import s from"../../../../plugins/crud/funcs/metaFormat/index.js";import c from"./getFilter.js";import l from"../../../../plugins/table/funcs/getTableColumnMeta.js";import u from"../../../../plugins/table/funcs/getSelectMeta.js";import{getUserClsList as d}from"../../../../plugins/usercls/index.js";import"../../../../utils/index.js";async function f({resource:f,name:p,limit:m,lang:h=`ua`,parent:g,start:_=!1,key:v,val:y,nocache:b,count:x=!1,meta:S=!1,sql:C=!1,uid:w,userType:T},E){if(!f)throw Error(`not enough params: resource`);if(!p)throw Error(`not enough params: name`);let D=Date.now(),{pg:O,logger:k}=E,A=process.env.local===`true`||T?.includes?.(`admin`)||process.env.NODE_ENV===`test`||process.env.VITEST;if(p===`list`&&A){let e=await n(`cls`,`list`),t=await n(`select`,`list`),r=await d({custom:`1`},E).then(e=>(e||[]).reduce((e,t)=>({...e,[t.name]:t.type}),{}));return{git:(e||[]).concat(t||[]).reduce((e,t)=>({...e,[t[0]]:t[2]}),{}),custom:r}}if(!(a[f]&&f))throw t(`resource not found: `+f);let j=a[f],M=await n(`table`,j);if(!M)throw t(`resource template not found: `+j);if(!M.table)throw Error(`resource template table not configured: `+j);let N=await c({table:j,called:!0},E).then(e=>e.list);if(!N?.length)throw Error(`resource template table filters not configured: `+j);if(m&&m<0)throw e(`param limit is invalid`);let P=N?N.map(({id:e,name:t,data:n})=>({name:e||t,data:n})).find(e=>e.name===p):void 0;if(!P)throw t(`resource template table filter not found: `+p);let F=P.data?await u({name:P.data,nocache:b,startsWith:!!_,key:v,parent:g},E):await l({table:M.table||j,template:M?.table?j:void 0,column:P.name,filtered:!!(v||y),startsWith:!!_,key:v},E);if(F?.minLength&&v&&v.length<F?.minLength)throw e(`min length: ${F.minLength}`);let I=F?.limit||50,L=F?.db?await r(F.db):O;if(!L||!L.pk||!L.pgType)throw Error(`empty pg`);if(M?.table&&!L?.pk?.[M.table])throw e(`resource table not found: `+M.table);if(!M?.table&&!L?.pk?.[j])throw e(`resource table not found: `+j);if(!F)throw t(`Not found query select`);if(S)return F;let{arr:R,searchQuery:z}=F,{dataTypeID:B}=((M&&M.table?await i({table:M.table},{...E,pg:L}).then(e=>e?.columns||[]):[])||[]).find(e=>e?.name===P.name)||{};if(R&&!P.data){let e=x?`select value, count(*) from (select ${L.pgType?.[B]?.includes(`[]`)?`unnest("${P.name}")`:`"${P.name}"`} as value from ${(M?.table||j).replace(/'/g,`''`)} where ${M?.query||`1=1`})q group by value`:`select array_agg(distinct value)::text[] from (select ${L.pgType?.[B]?.includes(`[]`)?`unnest("${P.name}")`:`"${P.name}"`} as value from ${(M?.table||j).replace(/'/g,`''`)} where ${M?.query||`1=1`})q`;if(C&&A)return e;if(L?.pk?.[M?.table||j]&&!P.data){let t=await L.queryCache(e,{table:M?.table||j}),n=(x?t.rows?.map?.(e=>e.value?.toString?.()||null):t.rows?.[0]?.array_agg)||[],r=v?.toLowerCase?.(),i=v||y?R?.filter(e=>!r||(e[h]||e.text)?.toLowerCase()?.indexOf(r)!==-1)?.filter(e=>!y||y?.split?.(`,`)?.includes?.(e.id)):R,a=i.filter(e=>e.id===`null`?n.includes(null):e.id&&n.includes(e.id.toString())),o=a.slice(0,Math.min(m||I,I));if(o.length&&x){let e=t.rows?.reduce?.((e,t)=>({...e,[t.value]:t.count}),{});o.forEach(t=>Object.assign(t,{count:e?.[t.id]||0}))}return process.env.debug===`true`&&k.file(`suggest/debug`,{type:1,table:M?.table||j,column:P.name,data:o,data1:i,data2:a}),{time:Date.now()-D,limit:Math.min(m||I,I),count:o.length,total:R.length,mode:`array`,sql:A?e:void 0,data:o}}}if(R){let e=v?.toLowerCase(),t=v||y?R?.filter(t=>!e||(t[h]||t.text)?.toLowerCase()?.indexOf(e)!==-1)?.filter(e=>!y||y?.split?.(`,`)?.includes?.(e.id)):R,n=t.slice(0,Math.min(m||I,I));return process.env.debug===`true`&&k.file(`suggest/debug`,{type:2,key:v,data:n,data1:t}),{time:Date.now()-D,limit:Math.min(m||I,I),count:n.length,total:R.length,mode:`array`,data:n}}let V=[],H=[];v&&typeof v==`string`&&(V.push(v.toLowerCase()),H.push(z)),F.pk&&H.push(`${F.pk} is not null`),F.pk&&typeof y==`string`&&(V.push(y.split(`,`)),H.push(`${F.pk}=any($${V.length})`)),L.pk?.[M?.table||j]&&!P.data&&B&&H.push(`id in (select ${L.pgType[B]?.includes(`[]`)?`unnest("${P.name}")`:`"${P.name}"`} from ${(M?.table||j).replace(/'/g,`''`)})`);let U=F.original.toLowerCase().includes(`order by`)?``:`order by 2`,W=H.filter(Boolean).join(` and `)||`true`;V.push(Math.min(m||F.limit||I,I));let G=P.data?`with c(id,text) as ( ${F.original} where ${W} ${U}) select * from c LIMIT $${V.length}::bigint`:`${F.original}
|
|
2
|
+
WHERE EXISTS ( SELECT 1 FROM ${(M?.table||j).replace(/'/g,`''`)} o
|
|
3
|
+
WHERE ${L.pgType[B]?.includes(`[]`)?`c.id = ANY(o."${P.name}")`:`o."${P.name}" IS NOT DISTINCT FROM c.id`} ) and ${W||`true`}
|
|
4
|
+
${U} LIMIT $${V.length}::bigint`;if(G.includes(`{{parent}}`)&&(V.push(g||``),G=G.replace(/(['"]?){{parent}}\1/gi,`$${V.length}`)),G.includes(`{{uid}}`)&&(V.push(w||`0`),G=G.replace(/(['"]?){{uid}}\1/gi,`$${V.length}`)),C&&A)return G;process.env.trace===`true`&&console.log(`suggest`,G,H,V);let K=(await L.query(G,V).then(e=>e.rows||[])).filter(e=>Object.hasOwn(e,`id`)&&Object.hasOwn(e,`text`));if(K.filter(e=>e.id===null).forEach(e=>Object.assign(e,{id:`null`,text:`Показати порожні значення`})),!P.data){let{name:e=P.name,type:t=`select`}=o(M?.table||j,P.name)||{};return await s({rows:K,table:M?.table||j,cls:{text:e},sufix:!0},{...E,pg:L}),{time:Date.now()-D,limit:Math.min(m||F.limit||I,I),count:K.length,total:F.count-0,mode:t===`cls`?`array`:`sql`,db:F.db,sql:A?G:void 0,data:K.map(e=>({count:e.count,id:e.id,text:e.text_text||e.text,...e.text_data||{}}))}}return{time:Date.now()-D,limit:Math.min(m||F.limit||I,I),count:K.length,total:F.count-0,mode:`sql`,db:F.db,sql:A?G:void 0,data:K}}export{f as default};
|
|
5
|
+
//# sourceMappingURL=listSuggestions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listSuggestions.js","names":["getFilter"],"sources":["../../../../../src/modules/data/services/resource/listSuggestions.ts"],"sourcesContent":["import {\r\n getTemplate,\r\n getSelectMeta,\r\n getMeta,\r\n metaFormat,\r\n getColumnCLS,\r\n getFilter,\r\n getUserClsList,\r\n resources,\r\n} from \"../../../../../src/utils/index.js\";\r\nimport { BadRequestError, NotFoundError } from \"../../../../../src/errors.js\";\r\n\r\nimport { CoreContext } from \"../../../../../src/core.js\";\r\n\r\nimport createPgAsync from \"../../../../../src/plugins/pg/funcs/createPgAsync.js\";\r\nimport getTableColumnMeta from \"../../../../../src/plugins/table/funcs/getTableColumnMeta.js\";\r\n\r\nconst defaultLimit = 50;\r\n\r\nexport default async function suggest(\r\n {\r\n resource,\r\n name,\r\n limit: limit1,\r\n lang = \"ua\",\r\n parent,\r\n start = false,\r\n key,\r\n val,\r\n nocache,\r\n count = false,\r\n meta = false,\r\n sql = false,\r\n uid,\r\n userType,\r\n }: {\r\n resource: string;\r\n name: string;\r\n limit?: number;\r\n sel?: string;\r\n token?: string;\r\n lang?: string;\r\n parent?: string;\r\n start?: boolean;\r\n key?: string;\r\n val?: string;\r\n nocache?: boolean;\r\n count?: boolean;\r\n meta?: boolean;\r\n sql?: boolean;\r\n uid?: string;\r\n userType?: string;\r\n },\r\n ctx: CoreContext\r\n) {\r\n if (!resource) {\r\n throw new Error(\"not enough params: resource\");\r\n }\r\n\r\n if (!name) {\r\n throw new Error(\"not enough params: name\");\r\n }\r\n\r\n const time = Date.now();\r\n\r\n const { pg: pg1, logger } = ctx;\r\n\r\n const debugMode =\r\n process.env.local === \"true\" ||\r\n userType?.includes?.(\"admin\") ||\r\n process.env.NODE_ENV === \"test\" ||\r\n process.env.VITEST;\r\n\r\n if (name === \"list\" && debugMode) {\r\n const cls = await getTemplate(\"cls\", \"list\");\r\n const select = await getTemplate(\"select\", \"list\");\r\n\r\n const custom = await getUserClsList({ custom: \"1\" }, ctx).then((r) =>\r\n (r || []).reduce(\r\n (acc: any, curr: any) => ({\r\n ...acc,\r\n [curr.name]: curr.type,\r\n }),\r\n {}\r\n )\r\n );\r\n\r\n return {\r\n git: (cls || []).concat(select || []).reduce(\r\n (acc: any, curr: any) => ({\r\n ...acc,\r\n [curr[0]]: curr[2],\r\n }),\r\n {}\r\n ),\r\n custom,\r\n };\r\n }\r\n\r\n const isresource = resources[resource] ? resource : undefined;\r\n\r\n if (!isresource) {\r\n throw NotFoundError(\"resource not found: \" + resource);\r\n }\r\n\r\n const templateName = resources[resource];\r\n\r\n const body = await getTemplate(\"table\", templateName);\r\n\r\n if (!body) {\r\n throw NotFoundError(\"resource template not found: \" + templateName);\r\n }\r\n\r\n if (!body.table) {\r\n throw new Error(\"resource template table not configured: \" + templateName);\r\n }\r\n\r\n const filterList = await getFilter(\r\n {\r\n table: templateName,\r\n called: true,\r\n },\r\n ctx\r\n ).then((r: any) => r.list);\r\n\r\n if (!filterList?.length) {\r\n throw new Error(\r\n \"resource template table filters not configured: \" + templateName\r\n );\r\n }\r\n\r\n if (limit1 && limit1 < 0) {\r\n throw BadRequestError(\"param limit is invalid\");\r\n }\r\n\r\n const filter = filterList\r\n ? filterList\r\n .map(({ id, name, data }: any) => ({ name: id || name, data }))\r\n .find((el: any) => el.name === name)\r\n : undefined;\r\n\r\n if (!filter) {\r\n throw NotFoundError(\"resource template table filter not found: \" + name);\r\n }\r\n\r\n const clsMeta = !filter.data\r\n ? await getTableColumnMeta(\r\n {\r\n table: body.table || templateName,\r\n template: body?.table ? templateName : undefined,\r\n column: filter.name,\r\n filtered: !!(key || val),\r\n startsWith: !!start,\r\n key,\r\n },\r\n ctx\r\n )\r\n : await getSelectMeta(\r\n {\r\n name: filter.data,\r\n nocache,\r\n startsWith: !!start,\r\n key,\r\n parent,\r\n },\r\n ctx\r\n );\r\n\r\n if (clsMeta?.minLength && key && key.length < clsMeta?.minLength) {\r\n throw BadRequestError(`min length: ${clsMeta.minLength}`);\r\n }\r\n\r\n const limit = clsMeta?.limit || defaultLimit;\r\n\r\n const pg = clsMeta?.db ? await createPgAsync(clsMeta.db) : pg1;\r\n\r\n if (!pg || !pg.pk || !pg.pgType) {\r\n throw Error(\"empty pg\");\r\n }\r\n\r\n if (body?.table && !pg?.pk?.[body.table]) {\r\n throw BadRequestError(\"resource table not found: \" + body.table);\r\n }\r\n\r\n if (!body?.table && !pg?.pk?.[templateName]) {\r\n throw BadRequestError(\"resource table not found: \" + templateName);\r\n }\r\n\r\n if (!clsMeta) {\r\n throw NotFoundError(\"Not found query select\");\r\n }\r\n\r\n if (meta) {\r\n return clsMeta;\r\n }\r\n\r\n const { arr, searchQuery } = clsMeta;\r\n\r\n const metaColumns =\r\n body && body.table\r\n ? await getMeta(\r\n {\r\n table: body.table,\r\n },\r\n { ...ctx, pg }\r\n ).then((r) => r?.columns || [])\r\n : [];\r\n\r\n const { dataTypeID } =\r\n (metaColumns || []).find((col: any) => col?.name === filter.name) || {};\r\n\r\n // table:column + cls\r\n if (arr && !filter.data) {\r\n const sqlCls = count\r\n ? `select value, count(*) from (select ${\r\n pg.pgType?.[dataTypeID]?.includes(\"[]\")\r\n ? `unnest(\"${filter.name}\")`\r\n : `\"${filter.name}\"`\r\n } as value from ${(body?.table || templateName).replace(\r\n /'/g,\r\n \"''\"\r\n )} where ${body?.query || \"1=1\"})q group by value`\r\n : `select array_agg(distinct value)::text[] from (select ${\r\n pg.pgType?.[dataTypeID]?.includes(\"[]\")\r\n ? `unnest(\"${filter.name}\")`\r\n : `\"${filter.name}\"`\r\n } as value from ${(body?.table || templateName).replace(\r\n /'/g,\r\n \"''\"\r\n )} where ${body?.query || \"1=1\"})q`;\r\n\r\n if (sql && debugMode) {\r\n return sqlCls;\r\n }\r\n\r\n if (pg?.pk?.[body?.table || templateName] && !filter.data) {\r\n const qRes = await pg.queryCache(sqlCls, {\r\n table: body?.table || templateName,\r\n });\r\n const vals =\r\n (count\r\n ? qRes.rows?.map?.((el: any) => el.value?.toString?.() || null)\r\n : qRes.rows?.[0]?.array_agg) || [];\r\n\r\n const lower = key?.toLowerCase?.();\r\n const data1 =\r\n key || val\r\n ? arr\r\n ?.filter(\r\n (el: any) =>\r\n !lower ||\r\n (el[lang] || el.text)?.toLowerCase()?.indexOf(lower) !== -1\r\n )\r\n ?.filter(\r\n (el: any) => !val || val?.split?.(\",\")?.includes?.(el.id)\r\n )\r\n : arr;\r\n\r\n const data2 = data1.filter((el: any) =>\r\n el.id === \"null\"\r\n ? vals.includes(null)\r\n : el.id && vals.includes(el.id.toString())\r\n );\r\n\r\n const data = data2.slice(0, Math.min(limit1 || limit, limit));\r\n\r\n if (data.length && count) {\r\n const counts = qRes.rows?.reduce?.(\r\n (acc: Record<string, any>, curr: any) => ({\r\n ...acc,\r\n [curr.value]: curr.count,\r\n }),\r\n {}\r\n );\r\n data.forEach((el: any) =>\r\n Object.assign(el, { count: counts?.[el.id] || 0 })\r\n );\r\n }\r\n\r\n if (process.env.debug === \"true\") {\r\n logger.file(\"suggest/debug\", {\r\n type: 1,\r\n table: body?.table || templateName,\r\n column: filter.name,\r\n data,\r\n data1,\r\n data2,\r\n });\r\n }\r\n\r\n return {\r\n time: Date.now() - time,\r\n limit: Math.min(limit1 || limit, limit),\r\n count: data.length,\r\n total: arr.length,\r\n mode: \"array\",\r\n sql: debugMode ? sqlCls : undefined,\r\n data,\r\n };\r\n }\r\n }\r\n\r\n // cls\r\n if (arr) {\r\n const lower = key?.toLowerCase();\r\n const data1 =\r\n key || val\r\n ? arr\r\n ?.filter(\r\n (el: any) =>\r\n !lower ||\r\n (el[lang] || el.text)?.toLowerCase()?.indexOf(lower) !== -1\r\n )\r\n ?.filter((el: any) => !val || val?.split?.(\",\")?.includes?.(el.id))\r\n : arr;\r\n const data = data1.slice(0, Math.min(limit1 || limit, limit));\r\n\r\n if (process.env.debug === \"true\") {\r\n logger.file(\"suggest/debug\", {\r\n type: 2,\r\n key,\r\n data,\r\n data1,\r\n });\r\n }\r\n\r\n return {\r\n time: Date.now() - time,\r\n limit: Math.min(limit1 || limit, limit),\r\n count: data.length,\r\n total: arr.length,\r\n mode: \"array\",\r\n data,\r\n };\r\n }\r\n\r\n const args = [];\r\n const where = [];\r\n\r\n // select, with search by text support\r\n if (key && typeof key === \"string\") {\r\n args.push(key.toLowerCase());\r\n where.push(searchQuery);\r\n }\r\n\r\n // pk\r\n if (clsMeta.pk) {\r\n where.push(`${clsMeta.pk} is not null`);\r\n }\r\n\r\n // filter by value\r\n if (clsMeta.pk && typeof val === \"string\") {\r\n args.push(val.split(\",\"));\r\n where.push(`${clsMeta.pk}=any($${args.length})`);\r\n }\r\n\r\n // filter\r\n if (pg.pk?.[body?.table || templateName] && !filter.data && dataTypeID) {\r\n where.push(\r\n `id in (select ${\r\n pg.pgType[dataTypeID]?.includes(\"[]\")\r\n ? `unnest(\"${filter.name}\")`\r\n : `\"${filter.name}\"`\r\n } from ${(body?.table || templateName).replace(/'/g, \"''\")})`\r\n );\r\n }\r\n\r\n // order by value if not specified explicitly\r\n const order = clsMeta.original.toLowerCase().includes(\"order by\")\r\n ? \"\"\r\n : \"order by 2\";\r\n\r\n const whereQuery = where.filter(Boolean).join(\" and \") || \"true\";\r\n\r\n args.push(Math.min(limit1 || clsMeta.limit || limit, limit));\r\n\r\n let sqlSuggest = !filter.data\r\n ? `${clsMeta.original}\r\n WHERE EXISTS ( SELECT 1 FROM ${(body?.table || templateName).replace(\r\n /'/g,\r\n \"''\"\r\n )} o \r\n WHERE ${\r\n pg.pgType[dataTypeID]?.includes(\"[]\")\r\n ? `c.id = ANY(o.\"${filter.name}\")`\r\n : `o.\"${filter.name}\" IS NOT DISTINCT FROM c.id`\r\n } ) and ${whereQuery || \"true\"}\r\n ${order} LIMIT $${args.length}::bigint`\r\n : `with c(id,text) as ( ${clsMeta.original} where ${whereQuery} ${order}) select * from c LIMIT $${args.length}::bigint`;\r\n\r\n if (sqlSuggest.includes(\"{{parent}}\")) {\r\n args.push(parent || \"\");\r\n sqlSuggest = sqlSuggest.replace(/(['\"]?){{parent}}\\1/gi, `$${args.length}`);\r\n }\r\n\r\n if (sqlSuggest.includes(\"{{uid}}\")) {\r\n args.push(uid || \"0\");\r\n sqlSuggest = sqlSuggest.replace(/(['\"]?){{uid}}\\1/gi, `$${args.length}`);\r\n }\r\n\r\n if (sql && debugMode) {\r\n return sqlSuggest;\r\n }\r\n\r\n if (process.env.trace === \"true\") {\r\n console.log(\"suggest\", sqlSuggest, where, args);\r\n }\r\n\r\n const dataNew = await pg\r\n .query(sqlSuggest, args)\r\n .then((r: any) => r.rows || []);\r\n\r\n // in case id / text = Boolean\r\n const data = dataNew.filter(\r\n (el: any) => Object.hasOwn(el, \"id\") && Object.hasOwn(el, \"text\")\r\n );\r\n\r\n data\r\n .filter((el: any) => el.id === null)\r\n .forEach((el: any) =>\r\n Object.assign(el, { id: \"null\", text: \"Показати порожні значення\" })\r\n );\r\n\r\n // table:column + select\r\n if (!filter.data) {\r\n const { name = filter.name, type = \"select\" } =\r\n getColumnCLS(body?.table || templateName, filter.name) || {};\r\n\r\n await metaFormat(\r\n {\r\n rows: data,\r\n table: body?.table || templateName,\r\n cls: { text: name },\r\n sufix: true,\r\n },\r\n { ...ctx, pg }\r\n );\r\n\r\n return {\r\n time: Date.now() - time,\r\n limit: Math.min(limit1 || clsMeta.limit || limit, limit),\r\n count: data.length,\r\n total: clsMeta.count - 0,\r\n mode: type === \"cls\" ? \"array\" : \"sql\",\r\n db: clsMeta.db,\r\n sql: debugMode ? sqlSuggest : undefined,\r\n data: data.map((el: any) => ({\r\n count: el.count,\r\n id: el.id,\r\n text: el.text_text || el.text,\r\n ...(el.text_data || {}),\r\n })),\r\n };\r\n }\r\n\r\n return {\r\n time: Date.now() - time,\r\n limit: Math.min(limit1 || clsMeta.limit || limit, limit),\r\n count: data.length,\r\n total: clsMeta.count - 0,\r\n mode: \"sql\",\r\n db: clsMeta.db,\r\n sql: debugMode ? sqlSuggest : undefined,\r\n data,\r\n };\r\n}\r\n"],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import e from"../../../templates/services/getTemplate.js";import{handlebarsSync as t}from"../../../../handlebars/index.js";import n from"../../../../plugins/pg/funcs/getMeta.js";import r from"../../../templates/services/getTemplates.js";import i from"../../../../plugins/crud/funcs/metaFormat/index.js";import"../../../../utils/index.js";function a(e,t,n,r){return e.reduce((e,i)=>e.then(()=>n({...t,tableName:i.replace(`.json`,``)},r)),Promise.resolve())}async function o({tableName:r,page:a,key:o,desc:s,order:c,sql:l,maxLimit:u,res:d},f){let{pg:p}=f,m=await e(`table`,r);if(!m)return null;let{table:h,columns:g,meta:_}=m,{pk:v,view:y}=await n({table:h},f).catch(e=>null)||{};if(!v&&!y)return null;let b=g.map(e=>e.name||e).join(`,`),[x,S]=(c||m.order||``).split(`-`),C=b.includes(x)&&x?.length?`order by ${x} ${s||S===`desc`?`desc`:``}`:``,w=[],T=Math.max(u-d.rows.length,0);w.push(T);let E=a&&a>0?(a-1)*T:0;w.push(E),_?.search&&o&&w.push(`%${o}%`);let D=Array.isArray(_?.search)?_?.search.join(`,`):_?.search,O=_?.search&&o?`(${D.concat(_?.title?`,${_?.title}`:``).split(`,`).map(e=>`${e}::text ilike $3`).join(` or `)})`:`false`,k=[v?`true`:`false`,m.query,O].filter(Boolean),A=m.sql?.filter?.(e=>!e?.disabled)?.map((e,t)=>` left join lateral (${e.sql}) ${e.name||`t${t}`} on 1=1 `)?.join?.(``)||``,j=`select ${[`"${v}" as id`,_?.title?`${_.title} as title`:``].filter(e=>e).join(`,`)} from ${h} t ${A} where ${k.join(` and `)||`true`} ${C} limit $1::bigint offset $2::bigint`;if(l)return d.sql.push(j),null;let M=await p.query(j,w).then(e=>e.rows||[]),N=p.queryCache?await p.queryCache(`select count(*) from ${h} t ${A} where ${k.join(` and `).replace(/\$3/g,`$1`)||`true`}`,{args:[_?.search&&o?o:void 0].filter(Boolean),table:h}).then(e=>+(e?.rows[0]?.count||0)):0,P=p.queryCache?await p.queryCache(`select count(*) from ${h}`).then(e=>+(e?.rows[0]?.count||0)):0;return await i({rows:M,table:r},f),d.total+=+P,d.filtered+=+N,M.forEach(e=>{let n=_?.href?t.compile(_.href)({...e,[v]:e.id}):void 0;d.rows.push({...e,register:r,register_title:m.ua,href:n})}),null}async function s({table:e,limit:t=16,page:n,order:i,desc:s,key:c,sql:l},u){let d=Date.now(),f=e?[e]:r(`table`)?.map?.(e=>e[0]),p={rows:[],sql:[],total:0,filtered:0};return await a(f,{page:n,sql:l,order:i,desc:s,key:c,maxLimit:Math.min(100,+t||16),res:p},o,u),l?p.sql.join(`;
|
|
2
|
+
`):{time:Date.now()-d,total:p.total,filtered:p.filtered,count:p.rows.length,rows:p.rows}}export{s as default};
|
|
3
|
+
//# sourceMappingURL=searchData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchData.js","names":["getTemplates"],"sources":["../../../../../src/modules/data/services/resource/searchData.ts"],"sourcesContent":["import {\r\n getMeta,\r\n metaFormat,\r\n getTemplates,\r\n getTemplate,\r\n handlebarsSync,\r\n CoreContext,\r\n} from \"../../../../utils/index.js\";\r\n\r\nfunction sequence(tables: any, data: any, fn: any, ctx: CoreContext) {\r\n return tables.reduce(\r\n (promise: any, table: any) =>\r\n promise.then(() =>\r\n fn(\r\n {\r\n ...data,\r\n tableName: table.replace(\".json\", \"\"),\r\n },\r\n ctx\r\n )\r\n ),\r\n Promise.resolve()\r\n );\r\n}\r\n\r\nasync function getData(\r\n { tableName, page, key, desc, order: order1, sql, maxLimit, res }: any,\r\n ctx: CoreContext\r\n) {\r\n const { pg } = ctx;\r\n\r\n const loadTable = await getTemplate(\"table\", tableName);\r\n\r\n if (!loadTable) {\r\n return null;\r\n }\r\n\r\n const { table, columns, meta } = loadTable;\r\n\r\n const { pk, view } =\r\n (await getMeta({ table }, ctx).catch((err) => null)) || {};\r\n\r\n if (!pk && !view) {\r\n return null;\r\n }\r\n\r\n const cols = columns.map((el: any) => el.name || el).join(\",\");\r\n const [orderColumn, orderDir] = (order1 || loadTable.order || \"\").split(\"-\");\r\n const order =\r\n cols.includes(orderColumn) && orderColumn?.length\r\n ? `order by ${orderColumn} ${desc || orderDir === \"desc\" ? \"desc\" : \"\"}`\r\n : \"\";\r\n\r\n const args = [];\r\n\r\n const limit = Math.max(maxLimit - res.rows.length, 0);\r\n args.push(limit);\r\n\r\n const offset = page && page > 0 ? (page - 1) * limit : 0;\r\n args.push(offset);\r\n\r\n if (meta?.search && key) {\r\n args.push(`%${key}%`);\r\n }\r\n\r\n const metaSearchStr = Array.isArray(meta?.search)\r\n ? meta?.search.join(\",\")\r\n : meta?.search;\r\n\r\n const search1 =\r\n meta?.search && key\r\n ? `(${metaSearchStr\r\n .concat(meta?.title ? `,${meta?.title}` : \"\")\r\n .split(\",\")\r\n .map((el: any) => `${el}::text ilike $3`)\r\n .join(\" or \")})`\r\n : \"false\";\r\n\r\n const where = [!pk ? \"false\" : \"true\", loadTable.query, search1].filter(\r\n Boolean\r\n );\r\n\r\n const sqlTable =\r\n loadTable.sql\r\n ?.filter?.((el: any) => !el?.disabled)\r\n ?.map(\r\n (el: any, i: number) =>\r\n ` left join lateral (${el.sql}) ${el.name || `t${i}`} on 1=1 `\r\n )\r\n ?.join?.(\"\") || \"\";\r\n\r\n const q = `select ${[\r\n `\"${pk}\" as id`,\r\n meta?.title ? `${meta.title} as title` : \"\",\r\n ]\r\n .filter((el) => el)\r\n .join(\",\")} from ${table} t ${sqlTable} where ${\r\n where.join(\" and \") || \"true\"\r\n } ${order} limit $1::bigint offset $2::bigint`;\r\n\r\n if (sql) {\r\n res.sql.push(q);\r\n return null;\r\n }\r\n\r\n const rows = await pg.query(q, args).then((r: any) => r.rows || []);\r\n\r\n const filtered = pg.queryCache\r\n ? await pg\r\n .queryCache(\r\n `select count(*) from ${table} t ${sqlTable} where ${\r\n where.join(\" and \").replace(/\\$3/g, \"$1\") || \"true\"\r\n }`,\r\n {\r\n args: [meta?.search && key ? key : undefined].filter(Boolean),\r\n table,\r\n }\r\n )\r\n .then((r: any) => +(r?.rows[0]?.count || 0))\r\n : 0;\r\n\r\n const total = pg.queryCache\r\n ? await pg\r\n .queryCache(`select count(*) from ${table}`)\r\n .then((r: any) => +(r?.rows[0]?.count || 0))\r\n : 0;\r\n\r\n await metaFormat({ rows, table: tableName }, ctx);\r\n\r\n res.total += +total;\r\n res.filtered += +filtered;\r\n\r\n rows.forEach((row: any) => {\r\n const href = meta?.href\r\n ? handlebarsSync.compile(meta.href)({ ...row, [pk]: row.id })\r\n : undefined;\r\n\r\n res.rows.push({\r\n ...row,\r\n register: tableName,\r\n register_title: loadTable.ua,\r\n href,\r\n });\r\n });\r\n return null;\r\n}\r\n\r\nexport default async function search(\r\n {\r\n table,\r\n limit = 16,\r\n page,\r\n order,\r\n desc,\r\n key,\r\n sql,\r\n }: {\r\n table?: string;\r\n limit?: number;\r\n page?: number;\r\n order?: string;\r\n desc?: boolean;\r\n key?: string;\r\n sql?: boolean;\r\n },\r\n ctx: CoreContext\r\n) {\r\n const t1 = Date.now();\r\n\r\n const tables = table\r\n ? [table]\r\n : getTemplates(\"table\")?.map?.((el: any) => el[0]);\r\n\r\n const res: { rows: any[]; sql: string[]; total: number; filtered: number } = {\r\n rows: [],\r\n sql: [],\r\n total: 0,\r\n filtered: 0,\r\n };\r\n\r\n const maxLimit = Math.min(100, +limit || 16);\r\n\r\n await sequence(\r\n tables,\r\n {\r\n page,\r\n sql,\r\n order,\r\n desc,\r\n key,\r\n maxLimit,\r\n res,\r\n },\r\n getData,\r\n ctx\r\n );\r\n\r\n if (sql) return res.sql.join(\";\\n\");\r\n\r\n return {\r\n time: Date.now() - t1,\r\n total: res.total,\r\n filtered: res.filtered,\r\n count: res.rows.length,\r\n rows: res.rows,\r\n };\r\n}\r\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ConflictError as e,ForbiddenError as t,UnauthorizedError as n}from"../../../../errors.js";import r from"../../../templates/services/getTemplate.js";import{resources as i}from"../../../../plugins/access/funcs/getResources.js";import a from"../../../../plugins/crud/funcs/getAccess.js";import o from"../../../../plugins/crud/funcs/dataUpdate.js";import s from"../../../../plugins/crud/funcs/validateData.js";import c from"../../../../plugins/policy/funcs/checkXSS.js";const l=process.env.NODE_ENV===`test`||process.env.VITEST;async function u({resource:u,id:d,body:f,referer:p,uid:m,userType:h,called:g=!1,ignoreCheck:_=!1},v){if(!m)throw n(`unauthorized`);let{logger:y}=v||{},b=i[u]?u:void 0,{form:x,table:S}=i[u],{actions:C=[]}=await a({resource:b,uid:m,userType:h},v)||{};if(!C.includes(`edit`)&&!g)throw t(`access restricted: actions`);let w=await r(`table`,S),{table:T}=w||{table:S},E=x||w?.form?await r(`form`,x||w?.form):{},D=E?.schema||E;!l&&!_&&Object.keys(f||{}).filter(e=>!Object.keys(D||{}).includes(e)).forEach(e=>delete f[e]);let O=c({body:f,schema:D});if(O.error&&E?.xssCheck!==!1)throw y.file(`injection/xss`,{msg:O.error,form:x||w?.form,resource:b,id:d,body:f,uid:m}),e(`Дані не пройшли валідацію. Приберіть некоректні дані та спробуйте ще раз`);let k=s({body:f,schema:D,update:!0});if(k.error)throw y.file(`injection/formdata`,{...k,resource:b,form:x||w?.form,id:d,uid:m}),e(`Дані не пройшли валідацію. Приберіть некоректні дані та спробуйте ще раз`);return await o({resource:u,table:w?.table||T,id:d,data:f,uid:m,referer:p},v)}export{u as default};
|
|
2
|
+
//# sourceMappingURL=updateResource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateResource.js","names":[],"sources":["../../../../../src/modules/data/services/resource/updateResource.ts"],"sourcesContent":["import checkXSS from \"../../../../../src/plugins/policy/funcs/checkXSS.js\";\r\nimport dataUpdate from \"../../../../../src/plugins/crud/funcs/dataUpdate.js\";\r\nimport validateData from \"../../../../../src/plugins/crud/funcs/validateData.js\";\r\nimport getAccess from \"../../../../../src/plugins/crud/funcs/getAccess.js\";\r\nimport getTemplate from \"../../../../../src/modules/templates/services/getTemplate.js\";\r\n\r\nimport { resources } from \"../../../../../src/plugins/access/funcs/getResources.js\";\r\n\r\nimport {\r\n ConflictError,\r\n ForbiddenError,\r\n UnauthorizedError,\r\n} from \"../../../../../src/errors.js\";\r\nimport { CoreContext } from \"../../../../core.js\";\r\n\r\nconst unittest = process.env.NODE_ENV === \"test\" || process.env.VITEST;\r\n\r\nexport default async function update(\r\n {\r\n resource: resource1,\r\n id,\r\n body,\r\n referer,\r\n uid,\r\n userType,\r\n called = false,\r\n ignoreCheck = false,\r\n }: {\r\n resource: string;\r\n id: string;\r\n body: Record<string, any>;\r\n referer?: string;\r\n uid?: string;\r\n userType?: string;\r\n called?: boolean;\r\n ignoreCheck?: boolean;\r\n },\r\n ctx: CoreContext\r\n) {\r\n if (!uid) {\r\n throw UnauthorizedError(\"unauthorized\");\r\n }\r\n\r\n const { logger } = ctx || {};\r\n\r\n const resource = resources[resource1] ? resource1 : undefined;\r\n\r\n const { form, table: edit } = resources[resource1];\r\n\r\n const { actions = [] } =\r\n ((await getAccess(\r\n {\r\n resource,\r\n uid,\r\n userType,\r\n },\r\n ctx\r\n )) as { actions: string[] }) || {};\r\n\r\n if (!actions.includes(\"edit\") && !called) {\r\n throw ForbiddenError(\"access restricted: actions\");\r\n }\r\n\r\n const loadTemplate = await getTemplate(\"table\", edit);\r\n const { table } = loadTemplate || { table: edit };\r\n\r\n const formData =\r\n form || loadTemplate?.form\r\n ? await getTemplate(\"form\", form || loadTemplate?.form)\r\n : {};\r\n const schema = formData?.schema || formData;\r\n\r\n // skip non-present fields in form schema\r\n if (!unittest && !ignoreCheck) {\r\n Object.keys(body || {})\r\n .filter((key) => !Object.keys(schema || {}).includes(key))\r\n .forEach((key) => delete body[key]);\r\n }\r\n\r\n const xssCheck = checkXSS({ body, schema });\r\n\r\n if (xssCheck.error && formData?.xssCheck !== false) {\r\n logger.file(\"injection/xss\", {\r\n msg: xssCheck.error,\r\n form: form || loadTemplate?.form,\r\n resource,\r\n id,\r\n body,\r\n uid,\r\n });\r\n throw ConflictError(\r\n \"Дані не пройшли валідацію. Приберіть некоректні дані та спробуйте ще раз\"\r\n );\r\n }\r\n\r\n const fieldCheck = validateData({ body, schema, update: true });\r\n\r\n if (fieldCheck.error) {\r\n logger.file(\"injection/formdata\", {\r\n ...fieldCheck,\r\n resource,\r\n form: form || loadTemplate?.form,\r\n id,\r\n uid,\r\n });\r\n throw ConflictError(\r\n \"Дані не пройшли валідацію. Приберіть некоректні дані та спробуйте ще раз\"\r\n );\r\n }\r\n\r\n const res = await dataUpdate(\r\n {\r\n resource: resource1,\r\n table: loadTemplate?.table || table,\r\n id,\r\n data: body,\r\n uid,\r\n referer,\r\n },\r\n ctx\r\n );\r\n\r\n return res;\r\n}\r\n"],"mappings":"ydAeA,MAAM,EAAW,QAAQ,IAAI,WAAa,QAAU,QAAQ,IAAI,OAEhE,eAA8B,EAC5B,CACE,SAAU,EACV,KACA,OACA,UACA,MACA,WACA,SAAS,GACT,cAAc,IAWhB,EACA,CACA,GAAI,CAAC,EACH,MAAM,EAAkB,cAAc,EAGxC,GAAM,CAAE,UAAW,GAAO,CAAC,EAErB,EAAW,EAAU,GAAa,EAAY,IAAA,GAE9C,CAAE,OAAM,MAAO,GAAS,EAAU,GAElC,CAAE,UAAU,CAAC,GACf,MAAM,EACN,CACE,WACA,MACA,UACF,EACA,CACF,GAAgC,CAAC,EAEnC,GAAI,CAAC,EAAQ,SAAS,MAAM,GAAK,CAAC,EAChC,MAAM,EAAe,4BAA4B,EAGnD,IAAM,EAAe,MAAM,EAAY,QAAS,CAAI,EAC9C,CAAE,SAAU,GAAgB,CAAE,MAAO,CAAK,EAE1C,EACJ,GAAQ,GAAc,KAClB,MAAM,EAAY,OAAQ,GAAQ,GAAc,IAAI,EACpD,CAAC,EACD,EAAS,GAAU,QAAU,EAG/B,CAAC,GAAY,CAAC,GAChB,OAAO,KAAK,GAAQ,CAAC,CAAC,EACnB,OAAQ,GAAQ,CAAC,OAAO,KAAK,GAAU,CAAC,CAAC,EAAE,SAAS,CAAG,CAAC,EACxD,QAAS,GAAQ,OAAO,EAAK,EAAI,EAGtC,IAAM,EAAW,EAAS,CAAE,OAAM,QAAO,CAAC,EAE1C,GAAI,EAAS,OAAS,GAAU,WAAa,GAS3C,MARA,EAAO,KAAK,gBAAiB,CAC3B,IAAK,EAAS,MACd,KAAM,GAAQ,GAAc,KAC5B,WACA,KACA,OACA,KACF,CAAC,EACK,EACJ,0EACF,EAGF,IAAM,EAAa,EAAa,CAAE,OAAM,SAAQ,OAAQ,EAAK,CAAC,EAE9D,GAAI,EAAW,MAQb,MAPA,EAAO,KAAK,qBAAsB,CAChC,GAAG,EACH,WACA,KAAM,GAAQ,GAAc,KAC5B,KACA,KACF,CAAC,EACK,EACJ,0EACF,EAeF,OAAO,MAZW,EAChB,CACE,SAAU,EACV,MAAO,GAAc,OAAS,EAC9B,KACA,KAAM,EACN,MACA,SACF,EACA,CACF,CAGF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{BadRequestError as e}from"../../errors.js";import t from"../../shared/services/eventStream.js";import n from"../../utils/uploadMultiPart.js";import r from"./services/exportData.js";import i from"../../shared/services/pubsub.js";import a from"./services/getFile.js";import o from"./services/downloadFile.js";import s from"./services/uploadFile.js";import c from"./services/deleteFile.js";import l from"./services/resizeFile.js";import u from"./services/previewFile.js";import d from"./services/fileToGeoJson.js";import f from"./services/editFile.js";import"./services/index.js";import{exportSchema as p,resizeSchema as m}from"./file.schema.js";import{createHash as h}from"node:crypto";const g=[`core`,`file`],_=`fastify-table`,{uploadPolicy:v=`L1`}=process.env,y={config:{tags:g,policy:`L0`,package:_}},b={config:{tags:g,policy:v,package:_}};async function x(g){g.get(`/files/*`,{...y,schema:{}},async({params:e,query:t,user:n},r)=>{let i=await a({relativePath:e[`*`],queryDebug:!!t.debug,uid:n?.uid,userType:n?.user_type},g.ctx);return r.headers(i.headers).send(i.data)}),g.get(`/file/download/*`,{...y,schema:{}},async({params:e,user:t},n)=>{let r=await o({relativePath:e[`*`],uid:t?.uid,userType:t?.user_type},g.ctx);return n.headers(r.headers).send(r.data)}),g.post(`/file/upload/*`,{...b,schema:{}},async e=>s({relativePath:e.params[`*`],queryId:e.query.id,queryTable:e.query.table,uid:e.user?.uid,userType:e.user?.user_type,req:e},g.ctx)),g.delete(`/file/*`,{...b,schema:{}},async({params:e,user:t})=>c({relativePath:e[`*`],uid:t?.uid,rnokpp:t?.user_rnokpp},g.ctx)),g.route({method:`GET`,url:`/file/resize`,config:{...y.config,rateLimit:process.env.rateLimit===`false`?void 0:{max:+(process.env[`rateLimit.resize.max`]||1e3),timeWindow:process.env[`rateLimit.resize.timeWindow`]||`1 minute`}},schema:m,handler:async({query:e},t)=>{let{filepath:n,quality:r,size:i,w:a,h:o,nocache:s,format:c,noimage:u}=e,d=await l({filepath:n,quality:r,size:i,w:a,h:o,nocache:s,format:c,noimage:u},g.ctx);return t.headers(d.headers).send(d.data)}}),g.get(`/file/preview`,{...y,schema:{}},async({query:e})=>u({id:e.id,nocache:!!e.nocache},g.ctx)),g.route({method:`GET`,url:`/api/export`,...y,schema:p,handler:async({host:e,originalUrl:n,query:a,user:o},s)=>{let c=process.env.NODE_ENV!==`test`&&!process.env.VITEST,l=c?t(s):()=>{},u=`exportTable:${h(n)}`,d=c?await i(u,(e,t=!1)=>{l(e,t)},a.reload&&o?.user_type?.includes?.(`admin`)):()=>{},{id:f,table:p,format:m,cols:_,search:v,filter:y,limit:b,nocache:x,formatAnswer:S,sql:C,slice:w,columns:T,cls:E,batchLimit:D}=a;try{let t=await r({callback:d,id:f,table:p,format:m,cols:_,filter:y,search:v,limit:b,nocache:x,formatAnswer:S,sql:C,slice:w,columns:T,cls:E,batchLimit:D,host:e,uid:o?.uid,userType:o?.user_type},g.ctx);return t.headers?s.headers(t.headers).send(t.data):t}finally{d(`finish`,!0)}}}),g.put(`/file/:id`,{...b,schema:{}},async t=>{if(t.headers[`content-type`]?.split?.(`;`)?.shift?.()!==`multipart/form-data`)throw e(`invalid payload content type`);let r=await n(t);return f({id:t.params.id,file:r,uid:t.user?.uid},g.ctx)}),g.get(`/file2geojson`,{...y,schema:{}},async({body:e})=>d({file:e.file,srid:+e.srid,debug:!!e.debug},g.ctx))}export{x as default};
|
|
2
|
+
//# sourceMappingURL=file.route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.route.js","names":["services.getFile","services.downloadFile","services.uploadFile","services.deleteFile","services.resizeFile","services.previewFile","pubsub","services.exportData","services.editFile","services.fileToGeoJson"],"sources":["../../../src/modules/file/file.route.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\r\n\r\nimport eventStream from \"../../shared/services/eventStream.js\";\r\nimport pubsub from \"../../shared/services/pubsub.js\";\r\n\r\nimport * as services from \"./services/index.js\";\r\n\r\nimport { resizeSchema, exportSchema } from \"./file.schema.js\";\r\nimport { BadRequestError } from \"../../errors.js\";\r\nimport uploadMultiPart from \"../../utils/uploadMultiPart.js\";\r\n\r\nconst tags = [\"core\", \"file\"];\r\nconst packageName = \"fastify-table\";\r\n\r\nconst { uploadPolicy = \"L1\" } = process.env;\r\n\r\nconst publicParams = {\r\n config: { tags, policy: \"L0\", package: packageName },\r\n};\r\n\r\nconst privateParams = {\r\n config: { tags, policy: uploadPolicy, package: packageName },\r\n};\r\n\r\nconst adminParams = {\r\n config: { tags, policy: \"L1\", role: \"admin\", package: packageName },\r\n};\r\n\r\nexport default async function fileRoutes(app: any) {\r\n app.get(\r\n \"/files/*\",\r\n { ...publicParams, schema: {} },\r\n async ({ params, query, user }: any, reply: any) => {\r\n const result = await services.getFile(\r\n {\r\n relativePath: params[\"*\"],\r\n queryDebug: !!query.debug,\r\n uid: user?.uid,\r\n userType: user?.user_type,\r\n },\r\n app.ctx\r\n );\r\n return reply.headers(result.headers).send(result.data);\r\n }\r\n );\r\n\r\n app.get(\r\n \"/file/download/*\",\r\n { ...publicParams, schema: {} },\r\n async ({ params, user }: any, reply: any) => {\r\n const result = await services.downloadFile(\r\n {\r\n relativePath: params[\"*\"],\r\n uid: user?.uid,\r\n userType: user?.user_type,\r\n },\r\n app.ctx\r\n );\r\n return reply.headers(result.headers).send(result.data);\r\n }\r\n );\r\n\r\n app.post(\r\n \"/file/upload/*\",\r\n { ...privateParams, schema: {} },\r\n async (req: any) => {\r\n return services.uploadFile(\r\n {\r\n relativePath: req.params[\"*\"],\r\n queryId: req.query.id,\r\n queryTable: req.query.table,\r\n uid: req.user?.uid,\r\n userType: req.user?.user_type,\r\n req,\r\n },\r\n app.ctx\r\n );\r\n }\r\n );\r\n\r\n // /file/delete/*\r\n app.delete(\r\n \"/file/*\",\r\n { ...privateParams, schema: {} },\r\n async ({ params, user }: any) => {\r\n return services.deleteFile(\r\n {\r\n relativePath: params[\"*\"],\r\n uid: user?.uid,\r\n rnokpp: user?.user_rnokpp,\r\n },\r\n app.ctx\r\n );\r\n }\r\n );\r\n\r\n app.route({\r\n method: \"GET\",\r\n url: \"/file/resize\",\r\n config: {\r\n ...publicParams.config,\r\n rateLimit:\r\n process.env.rateLimit !== \"false\"\r\n ? {\r\n max: +(process.env[\"rateLimit.resize.max\"] || 1000),\r\n timeWindow:\r\n process.env[\"rateLimit.resize.timeWindow\"] || \"1 minute\",\r\n }\r\n : undefined,\r\n },\r\n schema: resizeSchema,\r\n handler: async ({ query }: any, reply: any) => {\r\n const { filepath, quality, size, w, h, nocache, format, noimage } = query;\r\n const result = await services.resizeFile(\r\n {\r\n filepath,\r\n quality,\r\n size,\r\n w,\r\n h,\r\n nocache,\r\n format,\r\n noimage,\r\n },\r\n app.ctx\r\n );\r\n return reply.headers(result.headers).send(result.data);\r\n },\r\n });\r\n\r\n app.get(\r\n \"/file/preview\",\r\n { ...publicParams, schema: {} },\r\n async ({ query }: any) => {\r\n return services.previewFile(\r\n {\r\n id: query.id,\r\n nocache: !!query.nocache,\r\n },\r\n app.ctx\r\n );\r\n }\r\n );\r\n\r\n app.route({\r\n method: \"GET\",\r\n url: \"/api/export\",\r\n ...publicParams,\r\n schema: exportSchema,\r\n handler: async ({ host, originalUrl, query, user }: any, reply: any) => {\r\n const isStream = process.env.NODE_ENV !== \"test\" && !process.env.VITEST;\r\n\r\n const sendOriginal = isStream ? eventStream(reply) : () => {};\r\n\r\n const redisKey = `exportTable:${createHash(originalUrl)}`;\r\n\r\n const callback = isStream\r\n ? await pubsub(\r\n redisKey,\r\n (msg: string, finishStream = false) => {\r\n sendOriginal(msg, finishStream);\r\n },\r\n query.reload && user?.user_type?.includes?.(\"admin\")\r\n )\r\n : () => {};\r\n\r\n const {\r\n id,\r\n table,\r\n format,\r\n cols,\r\n search,\r\n filter,\r\n limit,\r\n nocache,\r\n formatAnswer,\r\n sql,\r\n slice,\r\n columns,\r\n cls,\r\n batchLimit,\r\n } = query;\r\n\r\n try {\r\n const result = await services.exportData(\r\n {\r\n callback,\r\n id,\r\n table,\r\n format,\r\n cols,\r\n filter,\r\n search,\r\n limit,\r\n nocache,\r\n formatAnswer,\r\n sql,\r\n slice,\r\n columns,\r\n cls,\r\n batchLimit,\r\n host,\r\n uid: user?.uid,\r\n userType: user?.user_type,\r\n },\r\n app.ctx\r\n );\r\n if (result.headers) {\r\n return reply.headers(result.headers).send(result.data);\r\n }\r\n return result;\r\n } finally {\r\n // end event stream\r\n callback(\"finish\", true);\r\n }\r\n },\r\n });\r\n\r\n // /api/file-edit/:id\r\n app.put(\"/file/:id\", { ...privateParams, schema: {} }, async (req: any) => {\r\n if (\r\n req.headers[\"content-type\"]?.split?.(\";\")?.shift?.() !==\r\n \"multipart/form-data\"\r\n ) {\r\n throw BadRequestError(\"invalid payload content type\");\r\n }\r\n\r\n const file = await uploadMultiPart(req);\r\n\r\n return services.editFile(\r\n {\r\n id: req.params.id,\r\n file,\r\n uid: req.user?.uid,\r\n },\r\n app.ctx\r\n );\r\n });\r\n\r\n // ! deprecated; remove after migration period\r\n app.get(\r\n \"/file2geojson\",\r\n { ...publicParams, schema: {} },\r\n async ({ body }: any) => {\r\n return services.fileToGeoJson(\r\n {\r\n file: body.file,\r\n srid: +body.srid,\r\n debug: !!body.debug,\r\n },\r\n app.ctx\r\n );\r\n }\r\n );\r\n\r\n // ! deprecated\r\n if (false) {\r\n // /file/upload-image/*\r\n app.post(\r\n \"/uploadImage/:id\",\r\n { ...privateParams, schema: {} },\r\n async (req: any) => {\r\n return services.uploadImage(\r\n {\r\n id: req.params.id,\r\n uid: req.user?.uid,\r\n req,\r\n },\r\n app.ctx\r\n );\r\n }\r\n );\r\n }\r\n\r\n // ! v2\r\n if (false) {\r\n // /api/resize-all\r\n app.route({\r\n method: \"GET\",\r\n url: \"/resizeAll\",\r\n config: adminParams,\r\n schema: resizeSchema,\r\n handler: async ({ query }: any, reply: any) => {\r\n const send =\r\n process.env.NODE_ENV === \"test\" || process.env.VITEST\r\n ? console.log\r\n : eventStream(reply);\r\n return services.resizeAll(\r\n {\r\n nocache: !!query.nocache,\r\n filepath: query.filepath,\r\n quality: query.quality,\r\n limit: query.limit,\r\n sql: !!query.sql,\r\n w: query.w,\r\n callback: send,\r\n },\r\n app.ctx\r\n );\r\n },\r\n });\r\n // /file/upload2/start\r\n app.post(\r\n \"/startUpload\",\r\n {\r\n config: {\r\n tags,\r\n package: packageName,\r\n summary: \"Init chunked upload\",\r\n policy: uploadPolicy,\r\n },\r\n },\r\n async (req: any) => {\r\n const { fileName, size, subdir, id } = req.body || {};\r\n\r\n if (!fileName || !size) {\r\n throw BadRequestError(\"fileName and size are required\");\r\n }\r\n\r\n const result = await services.startUpload(\r\n { fileName, size, subdir, id },\r\n app.ctx\r\n );\r\n\r\n return result;\r\n }\r\n );\r\n\r\n // /file/upload2/:id\r\n app.patch(\"/uploadChunk\", async ({}: any) => {\r\n return services.uploadChunk({}, app.ctx);\r\n });\r\n\r\n // /file/upload2/:id\r\n app.get(\"/getUploadStatus\", async ({}: any) => {\r\n return services.getUploadStatus({}, app.ctx);\r\n });\r\n }\r\n}\r\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e={type:`string`,pattern:"^([\\w\\d_-]+)=([А-Яа-яҐґЄєІіЇї\\d\\w\\s\\/\\[\\]\\(\\)\\{\\}\\|,.!?;:—_=-@%#$&^*+=`~]+)$"},t={type:`string`,pattern:"^([А-Яа-яҐґЄєІіЇї\\d\\w\\s\\/\\[\\]\\(\\)\\{\\}\\|,.!?;:—_=-@%#$&^*+=`~]+)$"},n={querystring:{type:`object`,additionalProperties:!1,properties:{nocache:{type:`boolean`},sql:{type:`boolean`},filepath:{type:`string`},quality:{type:`integer`,exclusiveMinimum:0,maximum:100},size:{type:`string`,pattern:`^((\\d{1,4})x(\\d{1,4})|(\\d{1,4})x|x(\\d{1,4}))$`},w:{type:`integer`,minimum:1,maximum:2048},h:{type:`integer`,minimum:1,maximum:2048}}}},r={querystring:{type:`object`,additionalProperties:!1,properties:{limit:{type:`integer`,minimum:1},batchLimit:{type:`integer`,minimum:1},page:{type:`integer`,minimum:1},key:{type:`string`,pattern:`^([\\d\\w_.-]+)$`},id:{type:`string`,pattern:`^([\\d\\w]+)$`},table:{type:`string`,pattern:`^([\\d\\w_.-]+)$`},format:{type:`string`,enum:[`json`,`csv`,`xlsx`,`geojson`]},cols:{type:`string`,pattern:`^([\\d\\w_,-]+)$`},search:t,filter:e,nocache:{type:`boolean`},formatAnswer:{type:`string`,enum:[`file`,`filepath`]},sql:{type:`boolean`},slice:{type:`integer`,minimum:1,maximum:500},columns:{type:`string`,pattern:`^([\\d\\w_,-]+)$`},cls:{type:`string`,pattern:`^([\\d\\w_.-]+)$`}}}};export{r as exportSchema,n as resizeSchema};
|
|
2
|
+
//# sourceMappingURL=file.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.schema.js","names":[],"sources":["../../../src/modules/file/file.schema.ts"],"sourcesContent":["const filterSchema = {\r\n type: \"string\",\r\n pattern:\r\n \"^([\\\\w\\\\d_-]+)=([А-Яа-яҐґЄєІіЇї\\\\d\\\\w\\\\s\\\\/\\\\[\\\\]\\\\(\\\\)\\\\{\\\\}\\\\|,.!?;:—_=-@%#$&^*+=`~]+)$\",\r\n};\r\nconst searchSchema = {\r\n type: \"string\",\r\n pattern:\r\n \"^([А-Яа-яҐґЄєІіЇї\\\\d\\\\w\\\\s\\\\/\\\\[\\\\]\\\\(\\\\)\\\\{\\\\}\\\\|,.!?;:—_=-@%#$&^*+=`~]+)$\",\r\n};\r\n\r\nexport const resizeSchema = {\r\n querystring: {\r\n type: \"object\",\r\n additionalProperties: false,\r\n properties: {\r\n nocache: { type: \"boolean\" },\r\n sql: { type: \"boolean\" },\r\n filepath: { type: \"string\" },\r\n quality: { type: \"integer\", exclusiveMinimum: 0, maximum: 100 },\r\n size: {\r\n type: \"string\",\r\n pattern: \"^((\\\\d{1,4})x(\\\\d{1,4})|(\\\\d{1,4})x|x(\\\\d{1,4}))$\",\r\n },\r\n w: { type: \"integer\", minimum: 1, maximum: 2048 },\r\n h: { type: \"integer\", minimum: 1, maximum: 2048 },\r\n },\r\n },\r\n};\r\n\r\nexport const exportSchema = {\r\n querystring: {\r\n type: \"object\",\r\n additionalProperties: false,\r\n properties: {\r\n limit: { type: \"integer\", minimum: 1 },\r\n batchLimit: { type: \"integer\", minimum: 1 },\r\n page: { type: \"integer\", minimum: 1 },\r\n key: { type: \"string\", pattern: \"^([\\\\d\\\\w_.-]+)$\" },\r\n id: { type: \"string\", pattern: \"^([\\\\d\\\\w]+)$\" },\r\n table: { type: \"string\", pattern: \"^([\\\\d\\\\w_.-]+)$\" },\r\n format: { type: \"string\", enum: [\"json\", \"csv\", \"xlsx\", \"geojson\"] },\r\n cols: { type: \"string\", pattern: \"^([\\\\d\\\\w_,-]+)$\" },\r\n search: searchSchema,\r\n filter: filterSchema,\r\n nocache: { type: \"boolean\" },\r\n formatAnswer: { type: \"string\", enum: [\"file\", \"filepath\"] },\r\n sql: { type: \"boolean\" },\r\n slice: { type: \"integer\", minimum: 1, maximum: 500 },\r\n columns: { type: \"string\", pattern: \"^([\\\\d\\\\w_,-]+)$\" },\r\n cls: { type: \"string\", pattern: \"^([\\\\d\\\\w_.-]+)$\" },\r\n },\r\n },\r\n};\r\n\r\nexport default null;\r\n"],"mappings":"AAAA,MAAM,EAAe,CACnB,KAAM,SACN,QACE,2FACJ,EACM,EAAe,CACnB,KAAM,SACN,QACE,6EACJ,EAEa,EAAe,CAC1B,YAAa,CACX,KAAM,SACN,qBAAsB,GACtB,WAAY,CACV,QAAS,CAAE,KAAM,SAAU,EAC3B,IAAK,CAAE,KAAM,SAAU,EACvB,SAAU,CAAE,KAAM,QAAS,EAC3B,QAAS,CAAE,KAAM,UAAW,iBAAkB,EAAG,QAAS,GAAI,EAC9D,KAAM,CACJ,KAAM,SACN,QAAS,mDACX,EACA,EAAG,CAAE,KAAM,UAAW,QAAS,EAAG,QAAS,IAAK,EAChD,EAAG,CAAE,KAAM,UAAW,QAAS,EAAG,QAAS,IAAK,CAClD,CACF,CACF,EAEa,EAAe,CAC1B,YAAa,CACX,KAAM,SACN,qBAAsB,GACtB,WAAY,CACV,MAAO,CAAE,KAAM,UAAW,QAAS,CAAE,EACrC,WAAY,CAAE,KAAM,UAAW,QAAS,CAAE,EAC1C,KAAM,CAAE,KAAM,UAAW,QAAS,CAAE,EACpC,IAAK,CAAE,KAAM,SAAU,QAAS,kBAAmB,EACnD,GAAI,CAAE,KAAM,SAAU,QAAS,eAAgB,EAC/C,MAAO,CAAE,KAAM,SAAU,QAAS,kBAAmB,EACrD,OAAQ,CAAE,KAAM,SAAU,KAAM,CAAC,OAAQ,MAAO,OAAQ,SAAS,CAAE,EACnE,KAAM,CAAE,KAAM,SAAU,QAAS,kBAAmB,EACpD,OAAQ,EACR,OAAQ,EACR,QAAS,CAAE,KAAM,SAAU,EAC3B,aAAc,CAAE,KAAM,SAAU,KAAM,CAAC,OAAQ,UAAU,CAAE,EAC3D,IAAK,CAAE,KAAM,SAAU,EACvB,MAAO,CAAE,KAAM,UAAW,QAAS,EAAG,QAAS,GAAI,EACnD,QAAS,CAAE,KAAM,SAAU,QAAS,kBAAmB,EACvD,IAAK,CAAE,KAAM,SAAU,QAAS,kBAAmB,CACrD,CACF,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{NotFoundError as e}from"../../../errors.js";import t from"../../../plugins/crud/funcs/dataUpdate.js";async function n({relativePath:n,uid:r,rnokpp:i},a){if(!n)throw e(`file not found`);let{pg:o,logger:s}=a,c=n.startsWith(`/`)||/^[0-9]+$/.test(n)?n:`/${n}`;if(!c)throw s.file(`file`,{level:`INFO`,type:`delete`,message:`No required param "filename"`,file:n,uid:r,rnokpp:i}),e(`file not found`);if(c.includes(`..`))throw s.file(`file`,{level:`WARN`,type:`delete`,message:`injection attempt`,file:n,uid:r,rnokpp:i}),e(`file not found`);try{let l=await t({table:`crm.files`,id:(await o.query(`select file_id, file_path as fpath, uid from crm.files where $1 in (file_path, file_id)`,[c]).then(e=>e.rows?.[0]||{}))?.file_id,data:{file_status:3},uid:r},a);if(!l)throw s.file(`file`,{level:`INFO`,type:`delete`,message:`file not found`,file:n,uid:r,rnokpp:i}),e(`file not found`);let u={id:l.file_id,filepath:l.file_path};return s.file(`file/delete`,{message:u,file:n,uid:r,rnokpp:i}),u}catch(e){throw s.file(`file/delete`,{error:e.toString(),file:n,uid:r,rnokpp:i}),e}}export{n as default};
|
|
2
|
+
//# sourceMappingURL=deleteFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteFile.js","names":[],"sources":["../../../../src/modules/file/services/deleteFile.ts"],"sourcesContent":["import { NotFoundError } from \"../../../../src/errors.js\";\r\n\r\nimport dataUpdate from \"../../../../src/plugins/crud/funcs/dataUpdate.js\";\r\nimport { CoreContext } from \"../../../core.js\";\r\n\r\n/**\r\n * Апі використовується для видалення файлів за допомогою fs або s3\r\n *\r\n * @method GET\r\n * @summary Видалення файлів і оновлення логів в БД\r\n * @priority 5\r\n * @alias deleteFileAPI\r\n * @type api\r\n * @tag file\r\n * @requires deleteFile\r\n * @param {Object} params Параметри URL\r\n * @param {String} params[0] Шлях до файла\r\n * @errors 403,500\r\n * @returns {Number} status Номер помилки\r\n * @returns {String|Object} error Опис помилки\r\n * @returns {Object} headers Заголовки HTTP\r\n * @returns {String} message Повідомлення про успішне виконання або об'єкт з параметрами\r\n */\r\n\r\nexport default async function deleteFileAPI(\r\n {\r\n relativePath,\r\n uid,\r\n rnokpp,\r\n }: {\r\n relativePath: string;\r\n uid: string;\r\n rnokpp: string;\r\n },\r\n ctx: CoreContext\r\n) {\r\n if (!relativePath) {\r\n throw NotFoundError(\"file not found\");\r\n }\r\n\r\n const { pg, logger } = ctx;\r\n\r\n const filename =\r\n relativePath.startsWith(\"/\") || /^[0-9]+$/.test(relativePath)\r\n ? relativePath\r\n : `/${relativePath}`;\r\n\r\n if (!filename) {\r\n logger.file(\"file\", {\r\n level: \"INFO\",\r\n type: \"delete\",\r\n message: 'No required param \"filename\"',\r\n file: relativePath,\r\n uid,\r\n rnokpp,\r\n });\r\n throw NotFoundError(\"file not found\");\r\n }\r\n\r\n if (filename.includes(\"..\")) {\r\n logger.file(\"file\", {\r\n level: \"WARN\",\r\n type: \"delete\",\r\n message: \"injection attempt\",\r\n file: relativePath,\r\n uid,\r\n rnokpp,\r\n });\r\n throw NotFoundError(\"file not found\");\r\n }\r\n\r\n try {\r\n const result = await pg\r\n .query(\r\n \"select file_id, file_path as fpath, uid from crm.files where $1 in (file_path, file_id)\",\r\n [filename]\r\n )\r\n .then((r: any) => r.rows?.[0] || {});\r\n\r\n const res = await dataUpdate(\r\n {\r\n table: \"crm.files\",\r\n id: result?.file_id,\r\n data: { file_status: 3 },\r\n uid,\r\n },\r\n ctx\r\n );\r\n\r\n if (!res) {\r\n logger.file(\"file\", {\r\n level: \"INFO\",\r\n type: \"delete\",\r\n message: \"file not found\",\r\n file: relativePath,\r\n uid,\r\n rnokpp,\r\n });\r\n throw NotFoundError(\"file not found\");\r\n }\r\n\r\n const message = { id: res.file_id, filepath: res.file_path };\r\n\r\n logger.file(\"file/delete\", {\r\n message,\r\n file: relativePath,\r\n uid,\r\n rnokpp,\r\n });\r\n return message;\r\n } catch (err: any) {\r\n logger.file(\"file/delete\", {\r\n error: err.toString(),\r\n file: relativePath,\r\n uid,\r\n rnokpp,\r\n });\r\n\r\n throw err;\r\n }\r\n}\r\n"],"mappings":"4GAwBA,eAA8B,EAC5B,CACE,eACA,MACA,UAMF,EACA,CACA,GAAI,CAAC,EACH,MAAM,EAAc,gBAAgB,EAGtC,GAAM,CAAE,KAAI,UAAW,EAEjB,EACJ,EAAa,WAAW,GAAG,GAAK,WAAW,KAAK,CAAY,EACxD,EACA,IAAI,IAEV,GAAI,CAAC,EASH,MARA,EAAO,KAAK,OAAQ,CAClB,MAAO,OACP,KAAM,SACN,QAAS,+BACT,KAAM,EACN,MACA,QACF,CAAC,EACK,EAAc,gBAAgB,EAGtC,GAAI,EAAS,SAAS,IAAI,EASxB,MARA,EAAO,KAAK,OAAQ,CAClB,MAAO,OACP,KAAM,SACN,QAAS,oBACT,KAAM,EACN,MACA,QACF,CAAC,EACK,EAAc,gBAAgB,EAGtC,GAAI,CAQF,IAAM,EAAM,MAAM,EAChB,CACE,MAAO,YACP,IAAI,MAVa,EAClB,MACC,0FACA,CAAC,CAAQ,CACX,EACC,KAAM,GAAW,EAAE,OAAO,IAAM,CAAC,CAAC,IAKrB,QACZ,KAAM,CAAE,YAAa,CAAE,EACvB,KACF,EACA,CACF,EAEA,GAAI,CAAC,EASH,MARA,EAAO,KAAK,OAAQ,CAClB,MAAO,OACP,KAAM,SACN,QAAS,iBACT,KAAM,EACN,MACA,QACF,CAAC,EACK,EAAc,gBAAgB,EAGtC,IAAM,EAAU,CAAE,GAAI,EAAI,QAAS,SAAU,EAAI,SAAU,EAQ3D,OANA,EAAO,KAAK,cAAe,CACzB,UACA,KAAM,EACN,MACA,QACF,CAAC,EACM,CACT,OAAS,EAAU,CAQjB,MAPA,EAAO,KAAK,cAAe,CACzB,MAAO,EAAI,SAAS,EACpB,KAAM,EACN,MACA,QACF,CAAC,EAEK,CACR,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"../../../plugins/file/providers/mime/index.js";import t from"../../../plugins/file/providers/index.js";import{BadRequestError as n,ForbiddenError as r,NotFoundError as i}from"../../../errors.js";import a from"../../../plugins/hook/applyHook.js";import o from"node:path";const{downloadFile:s}=t();async function c({relativePath:t,uid:c,userType:l},{logger:u}){if(!t)throw n(`not enough params`);let d=t.startsWith(`/`)?t.slice(1):t;if(!d)throw n(`required param 'filename'`);if(d.includes?.(`../`))throw r(`invalid characters detected`);let f=d.startsWith(`files/`)?d:o.posix.join(`files`,d),p=await a(`preDownload`,{user:{uid:c,user_type:l},relpath:f,reply:()=>{throw Error(`direct usage of reply is deprecated`)}});if(p&&p?.headers)return{headers:p.headers,data:p.data};let m=await s(f);if(!m)throw i(`Файл не знайдено - ${d}`);let h={"Content-Disposition":`attachment; filename=${encodeURIComponent(o.basename(d))}`,"Content-Type":e(f)};return u.file(`file/download`,{filepath:t,uid:c}),{headers:h,data:m}}export{c as default};
|
|
2
|
+
//# sourceMappingURL=downloadFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downloadFile.js","names":["providers"],"sources":["../../../../src/modules/file/services/downloadFile.ts"],"sourcesContent":["import type { FastifyReply } from \"fastify\";\r\n\r\nimport path from \"node:path\";\r\n\r\nimport providers from \"../../../../src/plugins/file/providers/index.js\";\r\nimport getMimeType from \"../../../../src/plugins/file/providers/mime/index.js\";\r\n\r\nimport logger from \"../../../../src/plugins/logger/createLogger.js\";\r\nimport applyHook from \"../../../../src/plugins/hook/applyHook.js\";\r\nimport {\r\n BadRequestError,\r\n ForbiddenError,\r\n NotFoundError,\r\n} from \"../../../../src/errors.js\";\r\nimport { CoreContext } from \"../../../core.js\";\r\n\r\nconst { downloadFile } = providers();\r\n\r\n/* const allowedPublicDirs = [\r\n 'upload', 'page', 'site', 'maps', 'tmp', 'uploads', 'site_slider', 'module', 'product', 'image', 'geo_works_file',\r\n]; */\r\n\r\n/**\r\n * Апі використовується для скачування файлів за допомогою fs або s3\r\n *\r\n * @method GET\r\n * @summary Апі для скачування файлів за провайдером\r\n * @priority 4\r\n * @alias download\r\n * @type api\r\n * @tag file\r\n * @requires getMimeType\r\n * @param {Object} params Параметри URL\r\n * @errors 400,404,403,500\r\n * @returns {Number} status Номер помилки\r\n * @returns {String|Object} error Опис помилки\r\n * @returns {Object} headers Заголовки HTTP\r\n * @returns {String} pipe Шлях до файла для скачування або відображення\r\n */\r\n\r\nexport default async function download(\r\n {\r\n relativePath,\r\n uid,\r\n userType,\r\n }: {\r\n relativePath: string;\r\n uid?: string;\r\n userType: string;\r\n },\r\n { logger }: CoreContext\r\n): Promise<{ headers: Record<string, any>; data: any }> {\r\n if (!relativePath) {\r\n throw BadRequestError(\"not enough params\");\r\n }\r\n\r\n const filename = relativePath.startsWith(\"/\")\r\n ? relativePath.slice(1)\r\n : relativePath;\r\n\r\n if (!filename) {\r\n throw BadRequestError(\"required param 'filename'\");\r\n }\r\n\r\n if (filename.includes?.(\"../\")) {\r\n throw ForbiddenError(\"invalid characters detected\");\r\n }\r\n\r\n const filepath = filename.startsWith(\"files/\")\r\n ? filename\r\n : path.posix.join(\"files\", filename);\r\n\r\n const hookData = (await applyHook(\"preDownload\", {\r\n user: { uid, user_type: userType },\r\n relpath: filepath,\r\n reply: () => {\r\n throw new Error(\"direct usage of reply is deprecated\");\r\n },\r\n })) as { headers?: Record<string, any>; data?: any };\r\n\r\n if (hookData && hookData?.headers) {\r\n return { headers: hookData.headers, data: hookData.data };\r\n }\r\n\r\n const fileStream = await downloadFile(filepath);\r\n\r\n if (!fileStream) {\r\n throw NotFoundError(`Файл не знайдено - ${filename}`);\r\n }\r\n\r\n const headers = {\r\n \"Content-Disposition\": `attachment; filename=${encodeURIComponent(\r\n path.basename(filename)\r\n )}`,\r\n \"Content-Type\": getMimeType(filepath),\r\n };\r\n\r\n logger.file(\"file/download\", { filepath: relativePath, uid });\r\n\r\n return { headers, data: fileStream };\r\n}\r\n"],"mappings":"4RAgBA,KAAM,CAAE,gBAAiBA,EAAU,EAwBnC,eAA8B,EAC5B,CACE,eACA,MACA,YAMF,CAAE,UACoD,CACtD,GAAI,CAAC,EACH,MAAM,EAAgB,mBAAmB,EAG3C,IAAM,EAAW,EAAa,WAAW,GAAG,EACxC,EAAa,MAAM,CAAC,EACpB,EAEJ,GAAI,CAAC,EACH,MAAM,EAAgB,2BAA2B,EAGnD,GAAI,EAAS,WAAW,KAAK,EAC3B,MAAM,EAAe,6BAA6B,EAGpD,IAAM,EAAW,EAAS,WAAW,QAAQ,EACzC,EACA,EAAK,MAAM,KAAK,QAAS,CAAQ,EAE/B,EAAY,MAAM,EAAU,cAAe,CAC/C,KAAM,CAAE,MAAK,UAAW,CAAS,EACjC,QAAS,EACT,UAAa,CACX,MAAU,MAAM,qCAAqC,CACvD,CACF,CAAC,EAED,GAAI,GAAY,GAAU,QACxB,MAAO,CAAE,QAAS,EAAS,QAAS,KAAM,EAAS,IAAK,EAG1D,IAAM,EAAa,MAAM,EAAa,CAAQ,EAE9C,GAAI,CAAC,EACH,MAAM,EAAc,sBAAsB,GAAU,EAGtD,IAAM,EAAU,CACd,sBAAuB,wBAAwB,mBAC7C,EAAK,SAAS,CAAQ,CACxB,IACA,eAAgB,EAAY,CAAQ,CACtC,EAIA,OAFA,EAAO,KAAK,gBAAiB,CAAE,SAAU,EAAc,KAAI,CAAC,EAErD,CAAE,UAAS,KAAM,CAAW,CACrC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{BadRequestError as e,NotFoundError as t}from"../../../errors.js";import n from"../../../plugins/crud/funcs/dataUpdate.js";import r from"node:path";async function i({id:i,uid:a=`1`,file:o},{pg:s,logger:c,redis:l}){if(!s)throw Error(`empty pg`);if(!i)throw e(`not enough params: id`);if(!s.pk?.[`crm.files`])throw t(`table not found`);if(!o?.filepath)throw Error(`upload error`);let u=r.extname(o.filepath||``).slice(1).toLowerCase(),d=await n({table:`crm.files`,id:i,data:{uploaded_name:o?.originalFilename?.toLocaleLowerCase()?.replace?.(/'/g,`''`),file_path:o?.relativeFilepath?.replace?.(/\\/g,`/`),ext:u,size:o?.size,file_status:1,uid:a},uid:a},{pg:s,logger:c,redis:l});if(!d?.file_id)throw t(`file not found`);return{rowCount:1,data:d,command:`UPLOAD`,id:d?.file_id,entity_id:d?.entity_id}}export{i as default};
|
|
2
|
+
//# sourceMappingURL=editFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editFile.js","names":[],"sources":["../../../../src/modules/file/services/editFile.ts"],"sourcesContent":["import path from \"node:path\";\r\n\r\nimport dataUpdate from \"../../../plugins/crud/funcs/dataUpdate.js\";\r\n\r\nimport { BadRequestError, NotFoundError } from \"../../../../src/errors.js\";\r\nimport { CoreContext } from \"../../../core.js\";\r\nimport { IFile } from \"../../../utils/uploadMultiPart.js\";\r\n\r\nexport default async function widgetSet(\r\n {\r\n id,\r\n uid = \"1\",\r\n file,\r\n }: {\r\n id: string;\r\n uid?: string;\r\n file: IFile;\r\n },\r\n { pg, logger, redis }: CoreContext\r\n) {\r\n if (!pg) {\r\n throw new Error(\"empty pg\");\r\n }\r\n\r\n if (!id) {\r\n throw BadRequestError(\"not enough params: id\");\r\n }\r\n\r\n if (!pg.pk?.[\"crm.files\"]) {\r\n throw NotFoundError(\"table not found\");\r\n }\r\n\r\n if (!file?.filepath) {\r\n throw new Error(\"upload error\");\r\n }\r\n\r\n const extName = path\r\n .extname(file.filepath || \"\")\r\n .slice(1)\r\n .toLowerCase();\r\n\r\n const data = {\r\n uploaded_name: file?.originalFilename\r\n ?.toLocaleLowerCase()\r\n ?.replace?.(/'/g, \"''\"),\r\n file_path: file?.relativeFilepath?.replace?.(/\\\\/g, \"/\"),\r\n ext: extName,\r\n size: file?.size,\r\n file_status: 1,\r\n uid,\r\n };\r\n\r\n const result = await dataUpdate(\r\n {\r\n table: \"crm.files\",\r\n id,\r\n data,\r\n uid,\r\n },\r\n { pg, logger, redis }\r\n );\r\n\r\n if (!result?.file_id) {\r\n throw NotFoundError(\"file not found\");\r\n }\r\n\r\n return {\r\n rowCount: 1,\r\n data: result,\r\n command: \"UPLOAD\",\r\n id: result?.file_id,\r\n entity_id: result?.entity_id,\r\n };\r\n}\r\n"],"mappings":"0JAQA,eAA8B,EAC5B,CACE,KACA,MAAM,IACN,QAMF,CAAE,KAAI,SAAQ,SACd,CACA,GAAI,CAAC,EACH,MAAU,MAAM,UAAU,EAG5B,GAAI,CAAC,EACH,MAAM,EAAgB,uBAAuB,EAG/C,GAAI,CAAC,EAAG,KAAK,aACX,MAAM,EAAc,iBAAiB,EAGvC,GAAI,CAAC,GAAM,SACT,MAAU,MAAM,cAAc,EAGhC,IAAM,EAAU,EACb,QAAQ,EAAK,UAAY,EAAE,EAC3B,MAAM,CAAC,EACP,YAAY,EAaT,EAAS,MAAM,EACnB,CACE,MAAO,YACP,KACA,KAAA,CAdF,cAAe,GAAM,kBACjB,kBAAkB,GAClB,UAAU,KAAM,IAAI,EACxB,UAAW,GAAM,kBAAkB,UAAU,MAAO,GAAG,EACvD,IAAK,EACL,KAAM,GAAM,KACZ,YAAa,EACb,KAOK,EACH,KACF,EACA,CAAE,KAAI,SAAQ,OAAM,CACtB,EAEA,GAAI,CAAC,GAAQ,QACX,MAAM,EAAc,gBAAgB,EAGtC,MAAO,CACL,SAAU,EACV,KAAM,EACN,QAAS,SACT,GAAI,GAAQ,QACZ,UAAW,GAAQ,SACrB,CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { CoreContext } from "../../../core.js";
|
|
2
|
+
//#region src/modules/file/services/exportData.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Експорт даних з таблиці
|
|
5
|
+
*
|
|
6
|
+
* @method GET
|
|
7
|
+
* @alias exportTable
|
|
8
|
+
* @type api
|
|
9
|
+
* @tag export
|
|
10
|
+
* @summary Експорт даних у таблицю(xlsx, csv, json, geojson)
|
|
11
|
+
* @priority 1
|
|
12
|
+
* @example
|
|
13
|
+
* /api/export?table=com_property.subjects.table&format=csv&cols=economy_type,name_ua
|
|
14
|
+
* @param {String} format Формат документу на виході
|
|
15
|
+
* @param {Boolean} nocache Чи використовувати кеш
|
|
16
|
+
* @param {String} table Таблиця в БД
|
|
17
|
+
* @param {String|Number} filter Параметр фільтру для застосування до експортованих даних
|
|
18
|
+
* @errors 400, 500
|
|
19
|
+
* @returns {Number} status Номер помилки
|
|
20
|
+
* @returns {String} error Опис помилки
|
|
21
|
+
* @returns {String|Object} message Повертає SQL запит або opt або рядки SQL запиту
|
|
22
|
+
* @returns {String} file Шлях до файла для скачування або відображення
|
|
23
|
+
*/
|
|
24
|
+
declare function exportTable({ callback: send, id, cols, search, format, table, filter, limit: queryLimit, nocache, formatAnswer, sql, slice: querySlice, columns: columns1, cls, batchLimit, host, tableSql, sourceName, uid, userType }: {
|
|
25
|
+
callback: Function;
|
|
26
|
+
id?: string;
|
|
27
|
+
cols?: string;
|
|
28
|
+
search?: string;
|
|
29
|
+
format?: string;
|
|
30
|
+
table?: string;
|
|
31
|
+
limit?: number;
|
|
32
|
+
filter?: string;
|
|
33
|
+
nocache?: boolean;
|
|
34
|
+
formatAnswer?: string;
|
|
35
|
+
sql?: number;
|
|
36
|
+
slice?: number;
|
|
37
|
+
user?: Record<string, any>;
|
|
38
|
+
columns?: string;
|
|
39
|
+
cls?: any;
|
|
40
|
+
batchLimit?: number;
|
|
41
|
+
host?: string;
|
|
42
|
+
tableSql?: string;
|
|
43
|
+
sourceName?: string;
|
|
44
|
+
uid?: string;
|
|
45
|
+
userType?: string;
|
|
46
|
+
}, { pg, config, logger }: CoreContext): Promise<any>;
|
|
47
|
+
//#endregion
|
|
48
|
+
export { exportTable };
|
|
49
|
+
//# sourceMappingURL=exportData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportData.d.ts","names":[],"sources":["../../../../src/modules/file/services/exportData.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;iBA+D8B,cAE1B,UAAU,MACV,IACA,MACA,QACA,QACA,OACA,QACA,OAAO,YACP,SACA,cACA,KACA,OAAO,YACP,SAAS,UACT,KACA,YACA,MACA,UACA,YACA,KACA;EAEA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;KAEA,IAAI,QAAQ,UAAU,cAAW"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{BadRequestError as e,NotFoundError as t}from"../../../errors.js";import n from"../../templates/services/getTemplate.js";import r from"../../../plugins/pg/funcs/getMeta.js";import ee from"../../../plugins/crud/funcs/metaFormat/index.js";import i from"../../data/services/resource/getData.js";import te from"../../../plugins/crud/funcs/utils/getFolder.js";import ne from"../../../shared/services/jsonToXls.js";import re from"../../../shared/services/jsonToCsv.js";import ie from"../../../shared/services/jsonlToJsonFile.js";import a from"node:path";import{createHash as o,randomUUID as ae}from"node:crypto";import{existsSync as s,readFileSync as c}from"node:fs";import{appendFile as l,mkdir as u,readFile as oe,rm as d,writeFile as f}from"node:fs/promises";const p=1e4,m=({filePath:e,formatAnswer:t,folder:n})=>{if(t===`file`){let t=a.extname(e)===`.xlsx`?`base64`:`utf8`,n=c(e,t);return{headers:{"Content-Disposition":`attachment; filename=${a.basename(e)}`},data:Buffer.from(n,t)}}return{filePath:e.replace(/\\/g,`/`)?.replace(n,``),status:200}};async function h({callback:c=()=>{},id:h,cols:g,search:_,format:v=`json`,table:y,filter:b=`empty`,limit:x,nocache:S,formatAnswer:C=`file`,sql:w,slice:T,columns:se,cls:ce,batchLimit:le,host:E=`127.0.0.1`,tableSql:D,sourceName:ue,uid:de,userType:O},{pg:k,config:A,logger:j}){let M=te(A,`local`);if(!y&&!D)throw e(`not enough params: table`);if(![`csv`,`xlsx`,`json`,`geojson`].includes(v))throw e(`invalid params: format`);let N=T?Math.min(+T||16,1e3):void 0,P=new Date,fe=`${b}-${g||`all`}-${_}-${x||`unlimited`}-${T||`full`}-${h}`,pe=[P.getFullYear(),P.getMonth(),P.getDate()].join(`-`),me=o(`md5`).update([fe,pe].join(`-`)).digest(`hex`),he=(y||(D?o(`md5`).update(D).digest(`hex`):``)).concat(`_`).concat(me).concat(`.`).concat(v),F=a.join(M,`/files/temp`,he),ge=a.extname(F),I=s(F),L=[`csv`,`xlsx`,`geojson`].includes(v)?F.replace(ge,`.json`):F,R=s(L);if(I&&!w&&!S&&!A.disableCache)return m({filePath:F,formatAnswer:C,folder:M});let z=await n(`table`,y),B=await r({table:z?.table||y},{pg:k}),V=await n(`view`,z?.table||y);if(!B?.pk&&!B?.view&&!D&&!V)throw t(`table not found`);if(v===`geojson`&&!B?.geom)throw e(`Ця форма не містить полів геометрії. Виберіть тип, який не потребує геометрії для вивантаження`);if(!(!g||typeof g==`string`&&(z&&z.columns?z.columns.map(e=>e.name).filter(e=>g.split(`,`).includes(e)).length===g.split(`,`).length:B&&B.columns&&B.columns.map(e=>e.name).filter(e=>g.split(`,`).includes(e)).length===g.split(`,`).length)))throw e(`invalid query params: cols`);let H={id:h,resource:y||``,filter:b,search:_,limit:N,sql:w,uid:de,userType:O,sufix:!1,isExport:!0,columns:g?.split?.(`,`)},U=D||V?await k.query(`select count(*) as total, json_agg(row_to_json(q)) as rows from (select * from (${D||V})q ${N?`limit ${N}`:``} )q where ${z?.key&&h?`${z?.key}::text = $1`:`true`}`,[z?.key&&h?h:void 0].filter(Boolean)).then(e=>e.rows?.[0]||{}):await i(H,{config:A,pg:k,logger:j});if(w)return U;if(!U?.rows?.length)return{message:`Немає даних, які можна експортувати`,statusCode:200};let{total:W,filtered:_e=U.total||0}=U,G=N?U.count||N:_e;Object.assign(H,{limit:p>G?G:Math.min(x||1e3,p)||p});let K=(se||z?.columns||B?.columns||[])?.map(e=>({name:e.name,data:e.data||e.option,title:e.title||e.ua,type:e.type||e.format||`text`,html:e.html})),q=g===`all`||!g?K:K.filter(e=>(e.type||/\./.test(e.name))&&!e?.hidden&&(g?.split(`,`)?.length?g.split(`,`).includes(e.name):!0)).filter(e=>Object.hasOwn(e,`export`)?!e.export:!0),ve=q.filter(e=>e.html).reduce((e,t)=>({...e,[t.name]:t.html}),{}),J=q.map(e=>/\./.test(e.name)?`${e.name.split(`.`)[0]}->>'${e.name.split(`.`)[1]}' as ${e.name.split(`.`).pop()}`:e.name);I&&(S||A.disableCache)&&await d(F),await u(a.dirname(F),{recursive:!0});let Y=z?.title||z?.ua||y||ue,ye=setInterval(async()=>{c(`process query...`+ae().split(`-`)[0])},1e4),X={},Z=0,be=1,xe=0;c(`Всього в реєстрі: ${U.total} (${G} з урахуванням фільтрів)`);let Q=!R||S||A.disableCache;if(Q)for(s(L.replace(/.json$/,`.jsonl`))&&await d(L.replace(/.json$/,`.jsonl`),{recursive:!0,force:!0}),s(L)&&await d(L,{recursive:!0,force:!0}),await f(L.replace(/.json$/,`.jsonl`),``);+G-Z>0&&!X?.error;)try{c(`Оброблено: ${Z}/${G}`);let e=z?.key&&h,t=z?.key&&h?[h,H.limit,Z]:[H.limit,Z],{rows:n=[]}=D||V?await k.query(`select * from (${D||V})q where ${e?`${z.key}::text = $1`:`true`} limit $${e?2:1} offset $${e?3:2}`,t):await i({...H,limit:Math.min(+(le||500),1e3)},{config:A,pg:k,logger:j});if(c(`seq: ${++xe}`),c(`Обробка ${n.length} об'єктів...`),!n.length){c(`Обробка даних успішно завершена`);break}await ee({rows:n,cls:ce,htmls:ve,sufix:!1},k),D||n.forEach(e=>{Object.keys(e).filter(e=>!J.includes(e)).forEach(t=>delete e[t])});let r=n.map(e=>JSON.stringify(e)).join(`
|
|
2
|
+
`)+`
|
|
3
|
+
`;await l(L.replace(/.json$/,`.jsonl`),r),Z+=n.length,be++}catch(e){c(`error: ${e.toString()}`),j.file(`export/table/error`,{filePath:L,total:W,filtered:G,offset:Z,result:X,error:e.toString(),stack:e.stack}),Object.assign(X,{error:e.toString()})}if(Q&&await ie(L.replace(/.json$/,`.jsonl`)),clearInterval(ye),X.error)throw c(`finish`),c(X.error),Error(X.error);if(j.file(`export/table`,{table:y,format:v,total:W,filtered:G,time:Date.now()-P.getTime()}),v!==`json`&&c(S||A.disableCache||!R?`Сформовано файл формату json. Початок конвертації в ${v}...`:`Знайдено файл формату json. Початок конвертації в ${v}...`),v===`geojson`){let e={type:`FeatureCollection`,features:JSON.parse(await oe(L,`utf8`)||`[]`).map(e=>({type:`Feature`,name:`export`,geometry:e.geom,properties:Object.fromEntries(Object.entries(e).filter(([e])=>e!==`geom`))}))};await u(a.dirname(F),{recursive:!0}),await f(F,JSON.stringify(e))}let $={};if(v===`csv`&&await re({filePath:L,send:c,colmodel:K,domain:E,source:Y,columnList:J}),v===`xlsx`&&await ne({filePath:L,send:c,colmodel:K,domain:E,source:Y,resp:$}),$.error)throw c($.error),Error($.error);return c(`finish`),c(`Файл успішно сформовано. Натистіть кнопку ще раз для завантаження даних`),m({filePath:F,formatAnswer:C,folder:M})}export{h as default};
|
|
4
|
+
//# sourceMappingURL=exportData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportData.js","names":["getData","jsonToCsv","jsonToXls"],"sources":["../../../../src/modules/file/services/exportData.ts"],"sourcesContent":["import path from \"node:path\";\r\nimport { existsSync, readFileSync } from \"node:fs\";\r\nimport { createHash, randomUUID } from \"node:crypto\";\r\nimport { appendFile, mkdir, readFile, rm, writeFile } from \"node:fs/promises\";\r\n\r\nimport getTemplate from \"../../../../src/modules/templates/services/getTemplate.js\";\r\nimport getMeta from \"../../../../src/plugins/pg/funcs/getMeta.js\";\r\nimport getData from \"../../data/services/resource/getData.js\";\r\nimport getFolder from \"../../../../src/plugins/crud/funcs/utils/getFolder.js\";\r\nimport metaFormat from \"../../../plugins/crud/funcs/metaFormat/index.js\";\r\n\r\nimport jsonToXls from \"../../../shared/services/jsonToXls.js\";\r\nimport jsonToCsv from \"../../../shared/services/jsonToCsv.js\";\r\nimport jsonlToJsonFile from \"../../../shared/services/jsonlToJsonFile.js\";\r\n\r\nimport { BadRequestError, NotFoundError } from \"../../../../src/errors.js\";\r\n\r\nimport { CoreContext } from \"../../../core.js\";\r\n\r\nconst startStreamWithTotal = 10000;\r\n\r\nconst formatResult = ({ filePath, formatAnswer, folder }: any) => {\r\n if (formatAnswer === \"file\") {\r\n const encoding = path.extname(filePath) === \".xlsx\" ? \"base64\" : \"utf8\";\r\n const data = readFileSync(filePath, encoding);\r\n return {\r\n headers: {\r\n \"Content-Disposition\": `attachment; filename=${path.basename(\r\n filePath\r\n )}`,\r\n },\r\n data: Buffer.from(data, encoding),\r\n };\r\n }\r\n\r\n return {\r\n filePath: filePath.replace(/\\\\/g, \"/\")?.replace(folder, \"\"),\r\n status: 200,\r\n };\r\n};\r\n\r\n/**\r\n * Експорт даних з таблиці\r\n *\r\n * @method GET\r\n * @alias exportTable\r\n * @type api\r\n * @tag export\r\n * @summary Експорт даних у таблицю(xlsx, csv, json, geojson)\r\n * @priority 1\r\n * @example\r\n * /api/export?table=com_property.subjects.table&format=csv&cols=economy_type,name_ua\r\n * @param {String} format Формат документу на виході\r\n * @param {Boolean} nocache Чи використовувати кеш\r\n * @param {String} table Таблиця в БД\r\n * @param {String|Number} filter Параметр фільтру для застосування до експортованих даних\r\n * @errors 400, 500\r\n * @returns {Number} status Номер помилки\r\n * @returns {String} error Опис помилки\r\n * @returns {String|Object} message Повертає SQL запит або opt або рядки SQL запиту\r\n * @returns {String} file Шлях до файла для скачування або відображення\r\n */\r\n\r\nexport default async function exportTable(\r\n {\r\n callback: send = () => {},\r\n id,\r\n cols,\r\n search,\r\n format = \"json\",\r\n table,\r\n filter = \"empty\",\r\n limit: queryLimit,\r\n nocache,\r\n formatAnswer = \"file\",\r\n sql,\r\n slice: querySlice,\r\n columns: columns1,\r\n cls,\r\n batchLimit,\r\n host = \"127.0.0.1\",\r\n tableSql,\r\n sourceName,\r\n uid,\r\n userType,\r\n }: {\r\n callback: Function;\r\n id?: string;\r\n cols?: string;\r\n search?: string;\r\n format?: string;\r\n table?: string;\r\n limit?: number;\r\n filter?: string;\r\n nocache?: boolean;\r\n formatAnswer?: string;\r\n sql?: number;\r\n slice?: number;\r\n user?: Record<string, any>;\r\n columns?: string;\r\n cls?: any;\r\n batchLimit?: number;\r\n host?: string;\r\n tableSql?: string;\r\n sourceName?: string;\r\n uid?: string;\r\n userType?: string;\r\n },\r\n { pg, config, logger }: CoreContext\r\n) {\r\n const rootDir = getFolder(config, \"local\");\r\n\r\n if (!table && !tableSql) {\r\n throw BadRequestError(\"not enough params: table\");\r\n }\r\n\r\n if (![\"csv\", \"xlsx\", \"json\", \"geojson\"].includes(format)) {\r\n throw BadRequestError(\"invalid params: format\");\r\n }\r\n\r\n const slice = querySlice ? Math.min(+querySlice || 16, 1000) : undefined;\r\n\r\n const date = new Date();\r\n const sufixName = `${filter}-${cols || \"all\"}-${search}-${\r\n queryLimit || \"unlimited\"\r\n }-${querySlice || \"full\"}-${id}`;\r\n const sufixDate = [\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n // date.getHours(),\r\n ].join(\"-\");\r\n\r\n const objInfo = createHash(\"md5\")\r\n .update([sufixName, sufixDate].join(\"-\"))\r\n .digest(\"hex\");\r\n\r\n const fileName = (\r\n table || (tableSql ? createHash(\"md5\").update(tableSql).digest(\"hex\") : \"\")\r\n )\r\n .concat(\"_\")\r\n .concat(objInfo)\r\n .concat(\".\")\r\n .concat(format);\r\n\r\n const filePath = path.join(rootDir, \"/files/temp\", fileName);\r\n const ext = path.extname(filePath);\r\n const cacheFile = existsSync(filePath);\r\n\r\n const filePathJSON = [\"csv\", \"xlsx\", \"geojson\"].includes(format)\r\n ? filePath.replace(ext, \".json\")\r\n : filePath;\r\n const cacheFileJSON = existsSync(filePathJSON);\r\n\r\n // return from cache\r\n if (cacheFile && !sql && !nocache && !config.disableCache) {\r\n return formatResult({\r\n filePath,\r\n formatAnswer,\r\n folder: rootDir,\r\n });\r\n }\r\n\r\n const loadTable = await getTemplate(\"table\", table);\r\n\r\n const meta = await getMeta({ table: loadTable?.table || table }, { pg });\r\n const viewSql = await getTemplate(\"view\", loadTable?.table || table);\r\n\r\n if (!meta?.pk && !meta?.view && !tableSql && !viewSql) {\r\n throw NotFoundError(\"table not found\");\r\n }\r\n\r\n if (format === \"geojson\" && !meta?.geom) {\r\n throw BadRequestError(\r\n \"Ця форма не містить полів геометрії. Виберіть тип, який не потребує геометрії для вивантаження\"\r\n );\r\n }\r\n\r\n const checkQueryColsValid = () => {\r\n if (!cols) return true;\r\n if (typeof cols !== \"string\") return false;\r\n\r\n if (loadTable && loadTable.columns) {\r\n return (\r\n loadTable.columns\r\n .map((col: any) => col.name)\r\n .filter((colname: string) => cols.split(\",\").includes(colname))\r\n .length === cols.split(\",\").length\r\n );\r\n }\r\n\r\n if (meta && meta.columns) {\r\n return (\r\n meta.columns\r\n .map((col: any) => col.name)\r\n .filter((colname: string) => cols.split(\",\").includes(colname))\r\n .length === cols.split(\",\").length\r\n );\r\n }\r\n return false;\r\n };\r\n\r\n const isQueryColsValid = checkQueryColsValid();\r\n\r\n if (!isQueryColsValid) {\r\n throw BadRequestError(\"invalid query params: cols\");\r\n }\r\n\r\n const options = {\r\n id,\r\n resource: table || \"\",\r\n filter,\r\n search,\r\n limit: slice,\r\n sql,\r\n uid,\r\n userType,\r\n sufix: false,\r\n isExport: true,\r\n columns: cols?.split?.(\",\"),\r\n };\r\n\r\n // check total count, debug sql etc.\r\n const result =\r\n tableSql || viewSql\r\n ? await pg\r\n .query(\r\n `select count(*) as total, json_agg(row_to_json(q)) as rows from (select * from (${\r\n tableSql || viewSql\r\n })q ${slice ? `limit ${slice}` : \"\"} )q where ${\r\n loadTable?.key && id ? `${loadTable?.key}::text = $1` : \"true\"\r\n }`,\r\n [loadTable?.key && id ? id : undefined].filter(Boolean)\r\n )\r\n .then((r: any) => r.rows?.[0] || {})\r\n : await getData(options, { config, pg, logger });\r\n\r\n if (sql) return result;\r\n\r\n if (!result?.rows?.length) {\r\n return { message: \"Немає даних, які можна експортувати\", statusCode: 200 };\r\n }\r\n\r\n const { total, filtered: filtered1 = result.total || 0 } = result;\r\n const filtered = slice ? result.count || slice : filtered1;\r\n\r\n const limit =\r\n startStreamWithTotal > filtered\r\n ? filtered\r\n : Math.min(queryLimit || 1000, startStreamWithTotal) ||\r\n startStreamWithTotal;\r\n\r\n Object.assign(options, { limit });\r\n\r\n const colmodel = (columns1 || loadTable?.columns || meta?.columns || [])?.map(\r\n (el: any) => ({\r\n name: el.name,\r\n data: el.data || el.option,\r\n title: el.title || el.ua,\r\n type: el.type || el.format || \"text\",\r\n html: el.html,\r\n })\r\n ); // skip html to avoid errors\r\n\r\n // get present columns\r\n const columns =\r\n cols === \"all\" || !cols\r\n ? colmodel\r\n : colmodel\r\n .filter(\r\n (el: any) =>\r\n (el.type || /\\./.test(el.name)) &&\r\n !el?.hidden &&\r\n (cols?.split(\",\")?.length\r\n ? cols.split(\",\").includes(el.name)\r\n : true)\r\n )\r\n .filter((el: any) =>\r\n Object.hasOwn(el, \"export\") ? !el.export : true\r\n );\r\n\r\n const htmls = columns\r\n .filter((el: any) => el.html)\r\n .reduce(\r\n (acc: Record<string, string>, curr: Record<string, any>) => ({\r\n ...acc,\r\n [curr.name]: curr.html,\r\n }),\r\n {}\r\n );\r\n\r\n const columnList = columns.map((el: any) =>\r\n /\\./.test(el.name)\r\n ? `${el.name.split(\".\")[0]}->>'${el.name.split(\".\")[1]}' as ${el.name\r\n .split(\".\")\r\n .pop()}` // check for json data\r\n : el.name\r\n );\r\n\r\n // delete old file, prevent append\r\n if (cacheFile && (nocache || config.disableCache)) {\r\n await rm(filePath);\r\n }\r\n\r\n // create directory if not exists\r\n await mkdir(path.dirname(filePath), { recursive: true });\r\n\r\n // export xlsx / csv / json\r\n const source = loadTable?.title || loadTable?.ua || table || sourceName;\r\n\r\n const interval = setInterval(async () => {\r\n send(\"process query...\" + randomUUID().split(\"-\")[0]);\r\n }, 10000);\r\n\r\n // start stream only if total exceed limit, but use while anyway\r\n const res: Record<string, string> = {};\r\n let offset = 0;\r\n let page = 1;\r\n let seq = 0;\r\n\r\n send(\r\n `Всього в реєстрі: ${result.total} (${filtered} з урахуванням фільтрів)`\r\n );\r\n\r\n const writeNewJsonl = !cacheFileJSON || nocache || config.disableCache;\r\n\r\n if (writeNewJsonl) {\r\n // delete old json line file, prevent append\r\n if (existsSync(filePathJSON.replace(/.json$/, \".jsonl\"))) {\r\n await rm(filePathJSON.replace(/.json$/, \".jsonl\"), {\r\n recursive: true,\r\n force: true,\r\n });\r\n }\r\n\r\n // delete old file, prevent append\r\n if (existsSync(filePathJSON)) {\r\n await rm(filePathJSON, { recursive: true, force: true });\r\n }\r\n\r\n // create empty temporary json lines file to append to\r\n await writeFile(filePathJSON.replace(/.json$/, \".jsonl\"), \"\");\r\n\r\n while (+filtered - offset > 0 && !res?.error) {\r\n try {\r\n send(`Оброблено: ${offset}/${filtered}`);\r\n\r\n const isSingle = loadTable?.key && id;\r\n\r\n const args =\r\n loadTable?.key && id\r\n ? [id, options.limit, offset]\r\n : [options.limit, offset];\r\n\r\n const { rows = [] } =\r\n tableSql || viewSql\r\n ? await pg.query(\r\n `select * from (${tableSql || viewSql})q where ${\r\n isSingle ? `${loadTable.key}::text = $1` : \"true\"\r\n } limit $${isSingle ? 2 : 1} offset $${isSingle ? 3 : 2}`,\r\n args\r\n )\r\n : await getData(\r\n {\r\n ...options,\r\n limit: Math.min(+(batchLimit || 500), 1000),\r\n },\r\n { config, pg, logger }\r\n );\r\n send(`seq: ${++seq}`);\r\n send(`Обробка ${rows.length} об'єктів...`);\r\n\r\n if (!rows.length) {\r\n send(\"Обробка даних успішно завершена\");\r\n break;\r\n }\r\n\r\n await metaFormat(\r\n {\r\n rows,\r\n cls,\r\n htmls,\r\n sufix: false,\r\n },\r\n pg\r\n );\r\n\r\n // skip non present after metaFormat\r\n if (!tableSql) {\r\n rows.forEach((row: any) => {\r\n Object.keys(row)\r\n .filter((el) => !columnList.includes(el))\r\n .forEach((key) => delete row[key]);\r\n });\r\n }\r\n\r\n const data =\r\n rows.map((row: any) => JSON.stringify(row)).join(\"\\n\") + \"\\n\";\r\n\r\n await appendFile(filePathJSON.replace(/.json$/, \".jsonl\"), data);\r\n\r\n offset += rows.length;\r\n page++;\r\n } catch (err: any) {\r\n send(`error: ${err.toString()}`);\r\n logger.file(\"export/table/error\", {\r\n filePath: filePathJSON,\r\n total,\r\n filtered,\r\n offset,\r\n result: res,\r\n error: err.toString(),\r\n stack: err.stack,\r\n });\r\n Object.assign(res, { error: err.toString() });\r\n }\r\n }\r\n }\r\n\r\n // convert json line to json array\r\n if (writeNewJsonl) {\r\n await jsonlToJsonFile(filePathJSON.replace(/.json$/, \".jsonl\"));\r\n }\r\n\r\n clearInterval(interval);\r\n\r\n if (res.error) {\r\n send(\"finish\");\r\n send(res.error);\r\n throw new Error(res.error);\r\n }\r\n\r\n logger.file(\"export/table\", {\r\n table,\r\n format,\r\n total,\r\n filtered,\r\n time: Date.now() - date.getTime(),\r\n });\r\n\r\n if (format !== \"json\") {\r\n const txt =\r\n nocache || config.disableCache || !cacheFileJSON\r\n ? `Сформовано файл формату json. Початок конвертації в ${format}...`\r\n : `Знайдено файл формату json. Початок конвертації в ${format}...`;\r\n send(txt);\r\n }\r\n\r\n if (format === \"geojson\") {\r\n const rows = JSON.parse((await readFile(filePathJSON, \"utf8\")) || \"[]\");\r\n\r\n const geojson = {\r\n type: \"FeatureCollection\",\r\n features: rows.map((row: any) => ({\r\n type: \"Feature\",\r\n name: \"export\",\r\n geometry: row.geom,\r\n properties: Object.fromEntries(\r\n Object.entries(row).filter(([key]) => key !== \"geom\")\r\n ),\r\n })),\r\n };\r\n\r\n await mkdir(path.dirname(filePath), { recursive: true });\r\n await writeFile(filePath, JSON.stringify(geojson));\r\n }\r\n\r\n const resp: Record<string, any> = {};\r\n\r\n if (format === \"csv\") {\r\n await jsonToCsv({\r\n filePath: filePathJSON,\r\n send,\r\n colmodel,\r\n domain: host,\r\n source,\r\n columnList,\r\n });\r\n }\r\n if (format === \"xlsx\") {\r\n await jsonToXls({\r\n filePath: filePathJSON,\r\n send,\r\n colmodel,\r\n domain: host,\r\n source,\r\n resp,\r\n });\r\n }\r\n\r\n if (resp.error) {\r\n send(resp.error);\r\n throw new Error(resp.error);\r\n }\r\n\r\n send(\"finish\");\r\n send(\r\n \"Файл успішно сформовано. Натистіть кнопку ще раз для завантаження даних\"\r\n );\r\n\r\n return formatResult({\r\n filePath,\r\n formatAnswer,\r\n folder: rootDir,\r\n });\r\n}\r\n"],"mappings":"0vBAmBA,MAAM,EAAuB,IAEvB,GAAgB,CAAE,WAAU,eAAc,YAAkB,CAChE,GAAI,IAAiB,OAAQ,CAC3B,IAAM,EAAW,EAAK,QAAQ,CAAQ,IAAM,QAAU,SAAW,OAC3D,EAAO,EAAa,EAAU,CAAQ,EAC5C,MAAO,CACL,QAAS,CACP,sBAAuB,wBAAwB,EAAK,SAClD,CACF,GACF,EACA,KAAM,OAAO,KAAK,EAAM,CAAQ,CAClC,CACF,CAEA,MAAO,CACL,SAAU,EAAS,QAAQ,MAAO,GAAG,GAAG,QAAQ,EAAQ,EAAE,EAC1D,OAAQ,GACV,CACF,EAwBA,eAA8B,EAC5B,CACE,SAAU,MAAa,CAAC,EACxB,KACA,OACA,SACA,SAAS,OACT,QACA,SAAS,QACT,MAAO,EACP,UACA,eAAe,OACf,MACA,MAAO,EACP,QAAS,GACT,OACA,cACA,OAAO,YACP,WACA,cACA,OACA,YAwBF,CAAE,KAAI,SAAQ,UACd,CACA,IAAM,EAAU,GAAU,EAAQ,OAAO,EAEzC,GAAI,CAAC,GAAS,CAAC,EACb,MAAM,EAAgB,0BAA0B,EAGlD,GAAI,CAAC,CAAC,MAAO,OAAQ,OAAQ,SAAS,EAAE,SAAS,CAAM,EACrD,MAAM,EAAgB,wBAAwB,EAGhD,IAAM,EAAQ,EAAa,KAAK,IAAI,CAAC,GAAc,GAAI,GAAI,EAAI,IAAA,GAEzD,EAAO,IAAI,KACX,GAAY,GAAG,EAAO,GAAG,GAAQ,MAAM,GAAG,EAAO,GACrD,GAAc,YACf,GAAG,GAAc,OAAO,GAAG,IACtB,GAAY,CAChB,EAAK,YAAY,EACjB,EAAK,SAAS,EACd,EAAK,QAAQ,CAEf,EAAE,KAAK,GAAG,EAEJ,GAAU,EAAW,KAAK,EAC7B,OAAO,CAAC,GAAW,EAAS,EAAE,KAAK,GAAG,CAAC,EACvC,OAAO,KAAK,EAET,IACJ,IAAU,EAAW,EAAW,KAAK,EAAE,OAAO,CAAQ,EAAE,OAAO,KAAK,EAAI,KAEvE,OAAO,GAAG,EACV,OAAO,EAAO,EACd,OAAO,GAAG,EACV,OAAO,CAAM,EAEV,EAAW,EAAK,KAAK,EAAS,cAAe,EAAQ,EACrD,GAAM,EAAK,QAAQ,CAAQ,EAC3B,EAAY,EAAW,CAAQ,EAE/B,EAAe,CAAC,MAAO,OAAQ,SAAS,EAAE,SAAS,CAAM,EAC3D,EAAS,QAAQ,GAAK,OAAO,EAC7B,EACE,EAAgB,EAAW,CAAY,EAG7C,GAAI,GAAa,CAAC,GAAO,CAAC,GAAW,CAAC,EAAO,aAC3C,OAAO,EAAa,CAClB,WACA,eACA,OAAQ,CACV,CAAC,EAGH,IAAM,EAAY,MAAM,EAAY,QAAS,CAAK,EAE5C,EAAO,MAAM,EAAQ,CAAE,MAAO,GAAW,OAAS,CAAM,EAAG,CAAE,IAAG,CAAC,EACjE,EAAU,MAAM,EAAY,OAAQ,GAAW,OAAS,CAAK,EAEnE,GAAI,CAAC,GAAM,IAAM,CAAC,GAAM,MAAQ,CAAC,GAAY,CAAC,EAC5C,MAAM,EAAc,iBAAiB,EAGvC,GAAI,IAAW,WAAa,CAAC,GAAM,KACjC,MAAM,EACJ,gGACF,EA6BF,GAAI,EAzBG,IACD,OAAO,GAAS,WAEhB,GAAa,EAAU,QAEvB,EAAU,QACP,IAAK,GAAa,EAAI,IAAI,EAC1B,OAAQ,GAAoB,EAAK,MAAM,GAAG,EAAE,SAAS,CAAO,CAAC,EAC7D,SAAW,EAAK,MAAM,GAAG,EAAE,OAI9B,GAAQ,EAAK,SAEb,EAAK,QACF,IAAK,GAAa,EAAI,IAAI,EAC1B,OAAQ,GAAoB,EAAK,MAAM,GAAG,EAAE,SAAS,CAAO,CAAC,EAC7D,SAAW,EAAK,MAAM,GAAG,EAAE,SASlC,MAAM,EAAgB,4BAA4B,EAGpD,IAAM,EAAU,CACd,KACA,SAAU,GAAS,GACnB,SACA,SACA,MAAO,EACP,MACA,OACA,WACA,MAAO,GACP,SAAU,GACV,QAAS,GAAM,QAAQ,GAAG,CAC5B,EAGM,EACJ,GAAY,EACR,MAAM,EACH,MACC,mFACE,GAAY,EACb,KAAK,EAAQ,SAAS,IAAU,GAAG,YAClC,GAAW,KAAO,EAAK,GAAG,GAAW,IAAI,aAAe,SAE1D,CAAC,GAAW,KAAO,EAAK,EAAK,IAAA,EAAS,EAAE,OAAO,OAAO,CACxD,EACC,KAAM,GAAW,EAAE,OAAO,IAAM,CAAC,CAAC,EACrC,MAAMA,EAAQ,EAAS,CAAE,SAAQ,KAAI,QAAO,CAAC,EAEnD,GAAI,EAAK,OAAO,EAEhB,GAAI,CAAC,GAAQ,MAAM,OACjB,MAAO,CAAE,QAAS,sCAAuC,WAAY,GAAI,EAG3E,GAAM,CAAE,QAAO,SAAU,GAAY,EAAO,OAAS,GAAM,EACrD,EAAW,EAAQ,EAAO,OAAS,EAAQ,GAQjD,OAAO,OAAO,EAAS,CAAE,MALvB,EAAuB,EACnB,EACA,KAAK,IAAI,GAAc,IAAM,CAAoB,GACjD,CAEyB,CAAC,EAEhC,IAAM,GAAY,IAAY,GAAW,SAAW,GAAM,SAAW,CAAC,IAAI,IACvE,IAAa,CACZ,KAAM,EAAG,KACT,KAAM,EAAG,MAAQ,EAAG,OACpB,MAAO,EAAG,OAAS,EAAG,GACtB,KAAM,EAAG,MAAQ,EAAG,QAAU,OAC9B,KAAM,EAAG,IACX,EACF,EAGM,EACJ,IAAS,OAAS,CAAC,EACf,EACA,EACG,OACE,IACE,EAAG,MAAQ,KAAK,KAAK,EAAG,IAAI,IAC7B,CAAC,GAAI,SACJ,GAAM,MAAM,GAAG,GAAG,OACf,EAAK,MAAM,GAAG,EAAE,SAAS,EAAG,IAAI,EAChC,GACR,EACC,OAAQ,GACP,OAAO,OAAO,EAAI,QAAQ,EAAI,CAAC,EAAG,OAAS,EAC7C,EAEF,GAAQ,EACX,OAAQ,GAAY,EAAG,IAAI,EAC3B,QACE,EAA6B,KAA+B,CAC3D,GAAG,GACF,EAAK,MAAO,EAAK,IACpB,GACA,CAAC,CACH,EAEI,EAAa,EAAQ,IAAK,GAC9B,KAAK,KAAK,EAAG,IAAI,EACb,GAAG,EAAG,KAAK,MAAM,GAAG,EAAE,GAAG,MAAM,EAAG,KAAK,MAAM,GAAG,EAAE,GAAG,OAAO,EAAG,KAC5D,MAAM,GAAG,EACT,IAAI,IACP,EAAG,IACT,EAGI,IAAc,GAAW,EAAO,eAClC,MAAM,EAAG,CAAQ,EAInB,MAAM,EAAM,EAAK,QAAQ,CAAQ,EAAG,CAAE,UAAW,EAAK,CAAC,EAGvD,IAAM,EAAS,GAAW,OAAS,GAAW,IAAM,GAAS,GAEvD,GAAW,YAAY,SAAY,CACvC,EAAK,mBAAqB,GAAW,EAAE,MAAM,GAAG,EAAE,EAAE,CACtD,EAAG,GAAK,EAGF,EAA8B,CAAC,EACjC,EAAS,EACT,GAAO,EACP,GAAM,EAEV,EACE,qBAAqB,EAAO,MAAM,IAAI,EAAS,yBACjD,EAEA,IAAM,EAAgB,CAAC,GAAiB,GAAW,EAAO,aAE1D,GAAI,EAiBF,IAfI,EAAW,EAAa,QAAQ,SAAU,QAAQ,CAAC,GACrD,MAAM,EAAG,EAAa,QAAQ,SAAU,QAAQ,EAAG,CACjD,UAAW,GACX,MAAO,EACT,CAAC,EAIC,EAAW,CAAY,GACzB,MAAM,EAAG,EAAc,CAAE,UAAW,GAAM,MAAO,EAAK,CAAC,EAIzD,MAAM,EAAU,EAAa,QAAQ,SAAU,QAAQ,EAAG,EAAE,EAErD,CAAC,EAAW,EAAS,GAAK,CAAC,GAAK,OACrC,GAAI,CACF,EAAK,cAAc,EAAO,GAAG,GAAU,EAEvC,IAAM,EAAW,GAAW,KAAO,EAE7B,EACJ,GAAW,KAAO,EACd,CAAC,EAAI,EAAQ,MAAO,CAAM,EAC1B,CAAC,EAAQ,MAAO,CAAM,EAEtB,CAAE,OAAO,CAAC,GACd,GAAY,EACR,MAAM,EAAG,MACP,kBAAkB,GAAY,EAAQ,WACpC,EAAW,GAAG,EAAU,IAAI,aAAe,OAC5C,UAAU,EAAW,EAAI,EAAE,WAAW,EAAW,EAAI,IACtD,CACF,EACA,MAAMA,EACJ,CACE,GAAG,EACH,MAAO,KAAK,IAAI,EAAE,IAAc,KAAM,GAAI,CAC5C,EACA,CAAE,SAAQ,KAAI,QAAO,CACvB,EAIN,GAHA,EAAK,QAAQ,EAAE,IAAK,EACpB,EAAK,WAAW,EAAK,OAAO,aAAa,EAErC,CAAC,EAAK,OAAQ,CAChB,EAAK,iCAAiC,EACtC,KACF,CAEA,MAAM,GACJ,CACE,OACA,OACA,SACA,MAAO,EACT,EACA,CACF,EAGK,GACH,EAAK,QAAS,GAAa,CACzB,OAAO,KAAK,CAAG,EACZ,OAAQ,GAAO,CAAC,EAAW,SAAS,CAAE,CAAC,EACvC,QAAS,GAAQ,OAAO,EAAI,EAAI,CACrC,CAAC,EAGH,IAAM,EACJ,EAAK,IAAK,GAAa,KAAK,UAAU,CAAG,CAAC,EAAE,KAAK;CAAI,EAAI;EAE3D,MAAM,EAAW,EAAa,QAAQ,SAAU,QAAQ,EAAG,CAAI,EAE/D,GAAU,EAAK,OACf,IACF,OAAS,EAAU,CACjB,EAAK,UAAU,EAAI,SAAS,GAAG,EAC/B,EAAO,KAAK,qBAAsB,CAChC,SAAU,EACV,QACA,WACA,SACA,OAAQ,EACR,MAAO,EAAI,SAAS,EACpB,MAAO,EAAI,KACb,CAAC,EACD,OAAO,OAAO,EAAK,CAAE,MAAO,EAAI,SAAS,CAAE,CAAC,CAC9C,CAWJ,GANI,GACF,MAAM,GAAgB,EAAa,QAAQ,SAAU,QAAQ,CAAC,EAGhE,cAAc,EAAQ,EAElB,EAAI,MAGN,MAFA,EAAK,QAAQ,EACb,EAAK,EAAI,KAAK,EACJ,MAAM,EAAI,KAAK,EAmB3B,GAhBA,EAAO,KAAK,eAAgB,CAC1B,QACA,SACA,QACA,WACA,KAAM,KAAK,IAAI,EAAI,EAAK,QAAQ,CAClC,CAAC,EAEG,IAAW,QAKb,EAHE,GAAW,EAAO,cAAgB,CAAC,EAC/B,uDAAuD,EAAO,KAC9D,qDAAqD,EAAO,IAC1D,EAGN,IAAW,UAAW,CAGxB,IAAM,EAAU,CACd,KAAM,oBACN,SAJW,KAAK,MAAO,MAAM,GAAS,EAAc,MAAM,GAAM,IAInD,EAAE,IAAK,IAAc,CAChC,KAAM,UACN,KAAM,SACN,SAAU,EAAI,KACd,WAAY,OAAO,YACjB,OAAO,QAAQ,CAAG,EAAE,QAAQ,CAAC,KAAS,IAAQ,MAAM,CACtD,CACF,EAAE,CACJ,EAEA,MAAM,EAAM,EAAK,QAAQ,CAAQ,EAAG,CAAE,UAAW,EAAK,CAAC,EACvD,MAAM,EAAU,EAAU,KAAK,UAAU,CAAO,CAAC,CACnD,CAEA,IAAM,EAA4B,CAAC,EAuBnC,GArBI,IAAW,OACb,MAAMC,GAAU,CACd,SAAU,EACV,OACA,WACA,OAAQ,EACR,SACA,YACF,CAAC,EAEC,IAAW,QACb,MAAMC,GAAU,CACd,SAAU,EACV,OACA,WACA,OAAQ,EACR,SACA,MACF,CAAC,EAGC,EAAK,MAEP,MADA,EAAK,EAAK,KAAK,EACL,MAAM,EAAK,KAAK,EAQ5B,OALA,EAAK,QAAQ,EACb,EACE,yEACF,EAEO,EAAa,CAClB,WACA,eACA,OAAQ,CACV,CAAC,CACH"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import{BadRequestError as e}from"../../../errors.js";import t from"../../../plugins/grpc/file2json.js";import n from"node:path";async function r({file:r,srid:i,debug:a},{pg:o,config:s,logger:c}){if(!o)throw Error(`empty pg`);if(!r||!i)throw e(`not enough body params: file or srid`);let l=n.extname(r);if(![`.zip`,`.gdb`,`.gpkg`,`.geojson`].includes(l))throw e(`Невірний формат файлів`);let u=n.join(s.folder||``,r);try{let n=await t({filepath:u,debug:a});if(a)return n;if(!n?.features?.length&&n?.type?.toLowerCase()!==`feature`)throw e(`invalid file content`);let r=n?.features?n:{type:`FeatureCollection`,features:[n]};return[{features:[(await o.query(`
|
|
2
|
+
select
|
|
3
|
+
features->>'type' as type,
|
|
4
|
+
features->'properties' as properties,
|
|
5
|
+
st_asgeojson(st_transform(st_setsrid(st_geomfromgeojson(features->>'geometry'),$2),4326))::json as geometry
|
|
6
|
+
from (
|
|
7
|
+
select d->>'type' as type,d->>'name' as name,json_array_elements(d->'features') as features
|
|
8
|
+
from (
|
|
9
|
+
select json_array_elements(case when json_typeof(d)='array' then d else json_build_array(d) end)d
|
|
10
|
+
from (
|
|
11
|
+
select ($1)::json as d
|
|
12
|
+
)q
|
|
13
|
+
)q
|
|
14
|
+
)q`,[JSON.stringify(r).replace(/'/g,`''`),i]).then(e=>e.rows||[])).slice(0,1)]}]}catch(t){throw t?.detail?.includes(`Infinity`)?e(`invalid geometry. Check input SRID`):(c.file(`grpc/file2json`,{error:t.toString(),stack:t.stack,file:r,srid:i}),t)}}export{r as default};
|
|
15
|
+
//# sourceMappingURL=fileToGeoJson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileToGeoJson.js","names":[],"sources":["../../../../src/modules/file/services/fileToGeoJson.ts"],"sourcesContent":["import path from \"node:path\";\r\n\r\nimport file2json from \"../../../plugins/grpc/file2json.js\";\r\n\r\nimport { BadRequestError } from \"../../../../src/errors.js\";\r\nimport { CoreContext } from \"../../../core.js\";\r\n\r\nexport default async function file2geojson(\r\n {\r\n file,\r\n srid,\r\n debug,\r\n }: {\r\n file: string;\r\n srid: number;\r\n debug?: boolean;\r\n },\r\n { pg, config, logger }: CoreContext\r\n) {\r\n if (!pg) {\r\n throw new Error(\"empty pg\");\r\n }\r\n\r\n if (!file || !srid) {\r\n throw BadRequestError(\"not enough body params: file or srid\");\r\n }\r\n\r\n const ext = path.extname(file);\r\n\r\n if (![\".zip\", \".gdb\", \".gpkg\", \".geojson\"].includes(ext)) {\r\n throw BadRequestError(\"Невірний формат файлів\");\r\n }\r\n\r\n const filepath = path.join(config.folder || \"\", file);\r\n\r\n try {\r\n const JsonData = await file2json({ filepath, debug });\r\n\r\n if (debug) return JsonData;\r\n\r\n if (\r\n !JsonData?.features?.length &&\r\n JsonData?.type?.toLowerCase() !== \"feature\"\r\n ) {\r\n throw BadRequestError(\"invalid file content\");\r\n }\r\n\r\n const JsonArr = JsonData?.features\r\n ? JsonData\r\n : { type: \"FeatureCollection\", features: [JsonData] };\r\n\r\n const rows = await pg\r\n .query(\r\n `\r\n select \r\n features->>'type' as type,\r\n features->'properties' as properties,\r\n st_asgeojson(st_transform(st_setsrid(st_geomfromgeojson(features->>'geometry'),$2),4326))::json as geometry \r\n from (\r\n select d->>'type' as type,d->>'name' as name,json_array_elements(d->'features') as features \r\n from (\r\n select json_array_elements(case when json_typeof(d)='array' then d else json_build_array(d) end)d\r\n from (\r\n select ($1)::json as d\r\n )q\r\n )q\r\n )q`,\r\n [JSON.stringify(JsonArr).replace(/'/g, \"''\"), srid]\r\n )\r\n .then((r: any) => r.rows || []);\r\n\r\n return [{ features: [rows.slice(0, 1)] }];\r\n } catch (err: any) {\r\n if (err?.detail?.includes(\"Infinity\")) {\r\n throw BadRequestError(\"invalid geometry. Check input SRID\");\r\n }\r\n logger.file(\"grpc/file2json\", {\r\n error: err.toString(),\r\n stack: err.stack,\r\n file,\r\n srid,\r\n });\r\n throw err;\r\n }\r\n}\r\n"],"mappings":"gIAOA,eAA8B,EAC5B,CACE,OACA,OACA,SAMF,CAAE,KAAI,SAAQ,UACd,CACA,GAAI,CAAC,EACH,MAAU,MAAM,UAAU,EAG5B,GAAI,CAAC,GAAQ,CAAC,EACZ,MAAM,EAAgB,sCAAsC,EAG9D,IAAM,EAAM,EAAK,QAAQ,CAAI,EAE7B,GAAI,CAAC,CAAC,OAAQ,OAAQ,QAAS,UAAU,EAAE,SAAS,CAAG,EACrD,MAAM,EAAgB,wBAAwB,EAGhD,IAAM,EAAW,EAAK,KAAK,EAAO,QAAU,GAAI,CAAI,EAEpD,GAAI,CACF,IAAM,EAAW,MAAM,EAAU,CAAE,WAAU,OAAM,CAAC,EAEpD,GAAI,EAAO,OAAO,EAElB,GACE,CAAC,GAAU,UAAU,QACrB,GAAU,MAAM,YAAY,IAAM,UAElC,MAAM,EAAgB,sBAAsB,EAG9C,IAAM,EAAU,GAAU,SACtB,EACA,CAAE,KAAM,oBAAqB,SAAU,CAAC,CAAQ,CAAE,EAsBtD,MAAO,CAAC,CAAE,SAAU,EAAC,MApBF,EAChB,MACC;;;;;;;;;;;;;QAcA,CAAC,KAAK,UAAU,CAAO,EAAE,QAAQ,KAAM,IAAI,EAAG,CAAI,CACpD,EACC,KAAM,GAAW,EAAE,MAAQ,CAAC,CAAC,GAEN,MAAM,EAAG,CAAC,CAAC,CAAE,CAAC,CAC1C,OAAS,EAAU,CAUjB,MATI,GAAK,QAAQ,SAAS,UAAU,EAC5B,EAAgB,oCAAoC,GAE5D,EAAO,KAAK,iBAAkB,CAC5B,MAAO,EAAI,SAAS,EACpB,MAAO,EAAI,MACX,OACA,MACF,CAAC,EACK,EACR,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"../../../plugins/file/providers/mime/index.js";import t from"../../../plugins/file/providers/index.js";import{BadRequestError as n,ForbiddenError as r}from"../../../errors.js";import i from"../../../plugins/hook/applyHook.js";import a from"../../../plugins/file/downloadFile.js";import o from"node:path";const s=Buffer.from(`R0lGODdhAwADAIEAAICAgAAAAAAAAAAAACwAAAAAAwADAAAIBwABCBw4MCAAOw==`,`base64`);async function c({relativePath:c,queryDebug:l,uid:u,userType:d},{logger:f}){if(!c)throw n(`not enough params`);if(c.includes(`../`))throw r(`invalid characters detected`);let p=(c.startsWith(`/`)?c.slice(1):c).replace(/^files\//g,``)+(c.endsWith(`/`)?`index.html`:``);if(!p)throw n(`required param 'filename'`);if(p.includes(`../`))throw r(`invalid characters detected`);let m=await i(`preFile`,{user:{uid:u,user_type:d},relpath:p,reply:()=>{throw Error(`direct usage of reply is deprecated`)}});if(m&&m?.headers)return{headers:m.headers,data:m.data};let h=o.posix.join(`files`,p);if((process.env.local===`true`||d?.includes?.(`admin`))&&l){let e=t(),n=e.name===`s3`?await e.fileExists(h,{fallback:!1}).catch(()=>!1).then(e=>!!e):void 0,{fileExists:r}=t({provider:`fs`}),i=await r(h);return{provider:e.name,existsS3:n,existsFS:i}}let g=await a(h).catch();if(!g)return{headers:{"Content-Type":`image/gif`},data:s};let _={"Content-Disposition":`inline; filename=${encodeURIComponent(o.basename(h))}`,"Cache-Control":`max-age=86400`,"Content-Type":`${e(h)}`};return f.file(`file/files`,{filepath:c,uid:u}),{headers:_,data:g}}export{c as default};
|
|
2
|
+
//# sourceMappingURL=getFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFile.js","names":["providers","mime"],"sources":["../../../../src/modules/file/services/getFile.ts"],"sourcesContent":["import type { FastifyReply } from \"fastify\";\r\n\r\nimport path from \"node:path\";\r\n\r\nimport config from \"../../../../src/config.js\";\r\nimport { BadRequestError, ForbiddenError } from \"../../../../src/errors.js\";\r\n\r\nimport mime from \"../../../../src/plugins/file/providers/mime/index.js\";\r\nimport downloadFile from \"../../../../src/plugins/file/downloadFile.js\";\r\nimport logger from \"../../../../src/plugins/logger/createLogger.js\";\r\nimport applyHook from \"../../../../src/plugins/hook/applyHook.js\";\r\nimport providers from \"../../../../src/plugins/file/providers/index.js\";\r\nimport { CoreContext } from \"../../../core.js\";\r\n\r\nconst grayGif = Buffer.from(\r\n \"R0lGODdhAwADAIEAAICAgAAAAAAAAAAAACwAAAAAAwADAAAIBwABCBw4MCAAOw==\",\r\n \"base64\"\r\n);\r\n\r\n/**\r\n * Апі використовується для отримання різних файлів і можливістю змінювати їх\r\n *\r\n * @method GET\r\n * @summary Отримання файлів з директорії системи\r\n * @priority 5\r\n * @alias files\r\n * @type api\r\n * @tag file\r\n * @requires getFile\r\n * @requires mime\r\n * @param {Object} params Параметри URL\r\n * @errors 500\r\n * @returns {Number} status Номер помилки\r\n * @returns {String} error Опис помилки\r\n * @returns {Object} headers Заголовки HTTP\r\n * @returns {String} pipe Шлях до файла для скачування або відображення\r\n */\r\n\r\nexport default async function getFile(\r\n {\r\n relativePath,\r\n queryDebug,\r\n uid,\r\n userType,\r\n }: {\r\n relativePath: string;\r\n queryDebug: boolean;\r\n uid?: string;\r\n userType: string;\r\n },\r\n { logger }: CoreContext\r\n) {\r\n if (!relativePath) {\r\n throw BadRequestError(\"not enough params\");\r\n }\r\n\r\n if (relativePath.includes(\"../\")) {\r\n throw ForbiddenError(\"invalid characters detected\");\r\n }\r\n\r\n const relpath =\r\n (relativePath.startsWith(\"/\")\r\n ? relativePath.slice(1)\r\n : relativePath\r\n ).replace(/^files\\//g, \"\") +\r\n (relativePath.endsWith(\"/\") ? \"index.html\" : \"\");\r\n\r\n if (!relpath) {\r\n throw BadRequestError(\"required param 'filename'\");\r\n }\r\n\r\n if (relpath.includes(\"../\")) {\r\n throw ForbiddenError(\"invalid characters detected\");\r\n }\r\n\r\n const hookData = (await applyHook(\"preFile\", {\r\n user: { uid, user_type: userType },\r\n relpath,\r\n reply: () => {\r\n throw new Error(\"direct usage of reply is deprecated\");\r\n },\r\n })) as { headers?: Record<string, any>; data?: any };\r\n\r\n if (hookData && hookData?.headers) {\r\n return { headers: hookData.headers, data: hookData.data };\r\n }\r\n\r\n const filepath = path.posix.join(\"files\", relpath);\r\n\r\n if (\r\n (process.env.local === \"true\" || userType?.includes?.(\"admin\")) &&\r\n queryDebug\r\n ) {\r\n const fp = providers();\r\n const existsS3 =\r\n fp.name === \"s3\"\r\n ? await fp\r\n .fileExists(filepath, { fallback: false })\r\n .catch(() => false)\r\n .then((el: any) => !!el)\r\n : undefined;\r\n\r\n const { fileExists } = providers({ provider: \"fs\" });\r\n const existsFS = await fileExists(filepath);\r\n return { provider: fp.name, existsS3, existsFS };\r\n }\r\n\r\n const fileStream = await downloadFile(filepath).catch();\r\n\r\n if (!fileStream) {\r\n return { headers: { \"Content-Type\": \"image/gif\" }, data: grayGif };\r\n }\r\n\r\n const headers = {\r\n \"Content-Disposition\": `inline; filename=${encodeURIComponent(\r\n path.basename(filepath)\r\n )}`,\r\n \"Cache-Control\": \"max-age=86400\",\r\n \"Content-Type\": `${mime(filepath)}`, // ; charset=utf-8 --- untested\r\n };\r\n\r\n logger.file(\"file/files\", { filepath: relativePath, uid });\r\n\r\n return { headers, data: fileStream };\r\n}\r\n"],"mappings":"8TAcA,MAAM,EAAU,OAAO,KACrB,mEACA,QACF,EAqBA,eAA8B,EAC5B,CACE,eACA,aACA,MACA,YAOF,CAAE,UACF,CACA,GAAI,CAAC,EACH,MAAM,EAAgB,mBAAmB,EAG3C,GAAI,EAAa,SAAS,KAAK,EAC7B,MAAM,EAAe,6BAA6B,EAGpD,IAAM,GACH,EAAa,WAAW,GAAG,EACxB,EAAa,MAAM,CAAC,EACpB,GACF,QAAQ,YAAa,EAAE,GACxB,EAAa,SAAS,GAAG,EAAI,aAAe,IAE/C,GAAI,CAAC,EACH,MAAM,EAAgB,2BAA2B,EAGnD,GAAI,EAAQ,SAAS,KAAK,EACxB,MAAM,EAAe,6BAA6B,EAGpD,IAAM,EAAY,MAAM,EAAU,UAAW,CAC3C,KAAM,CAAE,MAAK,UAAW,CAAS,EACjC,UACA,UAAa,CACX,MAAU,MAAM,qCAAqC,CACvD,CACF,CAAC,EAED,GAAI,GAAY,GAAU,QACxB,MAAO,CAAE,QAAS,EAAS,QAAS,KAAM,EAAS,IAAK,EAG1D,IAAM,EAAW,EAAK,MAAM,KAAK,QAAS,CAAO,EAEjD,IACG,QAAQ,IAAI,QAAU,QAAU,GAAU,WAAW,OAAO,IAC7D,EACA,CACA,IAAM,EAAKA,EAAU,EACf,EACJ,EAAG,OAAS,KACR,MAAM,EACH,WAAW,EAAU,CAAE,SAAU,EAAM,CAAC,EACxC,UAAY,EAAK,EACjB,KAAM,GAAY,CAAC,CAAC,CAAE,EACzB,IAAA,GAEA,CAAE,cAAeA,EAAU,CAAE,SAAU,IAAK,CAAC,EAC7C,EAAW,MAAM,EAAW,CAAQ,EAC1C,MAAO,CAAE,SAAU,EAAG,KAAM,WAAU,UAAS,CACjD,CAEA,IAAM,EAAa,MAAM,EAAa,CAAQ,EAAE,MAAM,EAEtD,GAAI,CAAC,EACH,MAAO,CAAE,QAAS,CAAE,eAAgB,WAAY,EAAG,KAAM,CAAQ,EAGnE,IAAM,EAAU,CACd,sBAAuB,oBAAoB,mBACzC,EAAK,SAAS,CAAQ,CACxB,IACA,gBAAiB,gBACjB,eAAgB,GAAGC,EAAK,CAAQ,GAClC,EAIA,OAFA,EAAO,KAAK,aAAc,CAAE,SAAU,EAAc,KAAI,CAAC,EAElD,CAAE,UAAS,KAAM,CAAW,CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../errors.js";export{};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./exportData.js";import"./getFile.js";import"./downloadFile.js";import"./uploadFile.js";import"./uploadImage.js";import"./deleteFile.js";import"./resizeFile.js";import"./resizeAll.js";import"./startUpload.js";import"./uploadChunk.js";import"./getUploadStatus.js";import"./previewFile.js";import"./fileToGeoJson.js";import"./editFile.js";export{};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{BadRequestError as e,NotFoundError as t,UnsupportedMediaTypeError as n}from"../../../errors.js";import r from"../../../plugins/grpc/office2pdf.js";import i from"node:path";const{officeToPdf:a}=r(),o={png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,bmp:`image/bmp`,svg:`image/svg+xml`,tiff:`image/tiff`,pdf:`application/pdf`};async function s({id:r,nocache:s},{pg:c,logger:l,file:u}){if(!c)throw Error(`empty pg`);if(!r)throw e(`not enough params: id`);let d=await c.query(`select file_path from crm.files where file_id = $1`,[r.replace(/.pdf/,``)]).then(e=>e.rows?.[0]?.file_path);if(!d)throw l.file(`/file-preview`,{error:`File with provided id does not found`,id:r}),t(`File not found`);let{base:f,ext:p}=i.parse(d),m=p.substring(1).toLowerCase(),h=d.replace(`files/`,`files/preview/`);if(await u.isFileExists(h)&&!s){let e=await u.downloadFile(h,{buffer:!0});return{headers:{"Content-Type":`application/pdf`,"Content-Disposition":`inline; filename="${f}.pdf"`},data:e}}let g=await u.downloadFile(d,{buffer:!0});if(!g)throw l.file(`/file-preview`,{error:`File with provided id does not found`,id:r,filePath:d}),t(`File not found`);if(!o[m]&&![`doc`,`docx`,`ppt`,`pptx`,`xls`,`xlsx`,`csv`].includes(m))throw l.file(`/file-preview`,{error:`Unsupported file type`,id:r,filePath:d}),n(`Unsupported file type`);if(![`doc`,`docx`,`ppt`,`pptx`,`xls`,`xlsx`,`csv`].includes(m))return{headers:{"Content-Type":o[m]||`application/octet-stream`,"Content-Disposition":`inline; filename="${f}"`},data:Buffer.from(g,`base64`)};let{file:_}=await a({file:Buffer.from(g).toString(`base64`),ext:m}),v=Buffer.from(_,`base64`);return await u.uploadFile(h,v),{headers:{"Content-Type":`application/pdf`,"Content-Disposition":`inline; filename="${f}.pdf"`},data:v}}export{s as default};
|
|
2
|
+
//# sourceMappingURL=previewFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"previewFile.js","names":["officeWrapper"],"sources":["../../../../src/modules/file/services/previewFile.ts"],"sourcesContent":["import path from \"node:path\";\r\n\r\nimport officeWrapper from \"../../../plugins/grpc/office2pdf.js\";\r\n\r\nimport {\r\n BadRequestError,\r\n NotFoundError,\r\n UnsupportedMediaTypeError,\r\n} from \"../../../../src/errors.js\";\r\n\r\nimport { CoreContext } from \"../../../core.js\";\r\n\r\nconst { officeToPdf } = officeWrapper();\r\n\r\nconst mimeTypes: Record<string, string> = {\r\n png: \"image/png\",\r\n jpg: \"image/jpeg\",\r\n jpeg: \"image/jpeg\",\r\n gif: \"image/gif\",\r\n webp: \"image/webp\",\r\n bmp: \"image/bmp\",\r\n svg: \"image/svg+xml\",\r\n tiff: \"image/tiff\",\r\n pdf: \"application/pdf\",\r\n};\r\n\r\nexport default async function filePreview(\r\n {\r\n id,\r\n nocache,\r\n }: {\r\n id?: string;\r\n nocache?: any;\r\n },\r\n { pg, logger, file }: CoreContext\r\n) {\r\n if (!pg) {\r\n throw new Error(\"empty pg\");\r\n }\r\n\r\n if (!id) {\r\n throw BadRequestError(\"not enough params: id\");\r\n }\r\n\r\n const filePath = await pg\r\n .query(\"select file_path from crm.files where file_id = $1\", [\r\n id.replace(/.pdf/, \"\"),\r\n ])\r\n .then((r: any) => r.rows?.[0]?.file_path);\r\n\r\n if (!filePath) {\r\n logger.file(\"/file-preview\", {\r\n error: \"File with provided id does not found\",\r\n id,\r\n });\r\n throw NotFoundError(\"File not found\");\r\n }\r\n\r\n const { base, ext } = path.parse(filePath);\r\n const fileExt = ext.substring(1).toLowerCase();\r\n\r\n const filePathPreview = filePath.replace(\"files/\", \"files/preview/\");\r\n\r\n const previewExists = await file.isFileExists(filePathPreview);\r\n\r\n if (previewExists && !nocache) {\r\n const buffer = await file.downloadFile(filePathPreview, { buffer: true });\r\n return {\r\n headers: {\r\n \"Content-Type\": \"application/pdf\",\r\n \"Content-Disposition\": `inline; filename=\"${base}.pdf\"`,\r\n },\r\n data: buffer,\r\n };\r\n }\r\n\r\n const fileData = await file.downloadFile(filePath, { buffer: true });\r\n\r\n if (!fileData) {\r\n logger.file(\"/file-preview\", {\r\n error: \"File with provided id does not found\",\r\n id,\r\n filePath,\r\n });\r\n throw NotFoundError(\"File not found\");\r\n }\r\n\r\n if (\r\n !mimeTypes[fileExt] &&\r\n ![\"doc\", \"docx\", \"ppt\", \"pptx\", \"xls\", \"xlsx\", \"csv\"].includes(fileExt)\r\n ) {\r\n logger.file(\"/file-preview\", {\r\n error: \"Unsupported file type\",\r\n id,\r\n filePath,\r\n });\r\n throw UnsupportedMediaTypeError(\"Unsupported file type\");\r\n }\r\n\r\n if (![\"doc\", \"docx\", \"ppt\", \"pptx\", \"xls\", \"xlsx\", \"csv\"].includes(fileExt)) {\r\n return {\r\n headers: {\r\n \"Content-Type\": mimeTypes[fileExt] || \"application/octet-stream\",\r\n \"Content-Disposition\": `inline; filename=\"${base}\"`,\r\n },\r\n data: Buffer.from(fileData, \"base64\"),\r\n };\r\n }\r\n\r\n const { file: pdfFile } = (await officeToPdf({\r\n file: Buffer.from(fileData).toString(\"base64\"),\r\n ext: fileExt,\r\n })) as { file: string };\r\n\r\n const buffer = Buffer.from(pdfFile, \"base64\");\r\n await file.uploadFile(filePathPreview, buffer);\r\n\r\n return {\r\n headers: {\r\n \"Content-Type\": \"application/pdf\",\r\n \"Content-Disposition\": `inline; filename=\"${base}.pdf\"`,\r\n },\r\n data: buffer,\r\n };\r\n}\r\n"],"mappings":"mLAYA,KAAM,CAAE,eAAgBA,EAAc,EAEhC,EAAoC,CACxC,IAAK,YACL,IAAK,aACL,KAAM,aACN,IAAK,YACL,KAAM,aACN,IAAK,YACL,IAAK,gBACL,KAAM,aACN,IAAK,iBACP,EAEA,eAA8B,EAC5B,CACE,KACA,WAKF,CAAE,KAAI,SAAQ,QACd,CACA,GAAI,CAAC,EACH,MAAU,MAAM,UAAU,EAG5B,GAAI,CAAC,EACH,MAAM,EAAgB,uBAAuB,EAG/C,IAAM,EAAW,MAAM,EACpB,MAAM,qDAAsD,CAC3D,EAAG,QAAQ,OAAQ,EAAE,CACvB,CAAC,EACA,KAAM,GAAW,EAAE,OAAO,IAAI,SAAS,EAE1C,GAAI,CAAC,EAKH,MAJA,EAAO,KAAK,gBAAiB,CAC3B,MAAO,uCACP,IACF,CAAC,EACK,EAAc,gBAAgB,EAGtC,GAAM,CAAE,OAAM,OAAQ,EAAK,MAAM,CAAQ,EACnC,EAAU,EAAI,UAAU,CAAC,EAAE,YAAY,EAEvC,EAAkB,EAAS,QAAQ,SAAU,gBAAgB,EAInE,GAAI,MAFwB,EAAK,aAAa,CAAe,GAExC,CAAC,EAAS,CAC7B,IAAM,EAAS,MAAM,EAAK,aAAa,EAAiB,CAAE,OAAQ,EAAK,CAAC,EACxE,MAAO,CACL,QAAS,CACP,eAAgB,kBAChB,sBAAuB,qBAAqB,EAAK,MACnD,EACA,KAAM,CACR,CACF,CAEA,IAAM,EAAW,MAAM,EAAK,aAAa,EAAU,CAAE,OAAQ,EAAK,CAAC,EAEnE,GAAI,CAAC,EAMH,MALA,EAAO,KAAK,gBAAiB,CAC3B,MAAO,uCACP,KACA,UACF,CAAC,EACK,EAAc,gBAAgB,EAGtC,GACE,CAAC,EAAU,IACX,CAAC,CAAC,MAAO,OAAQ,MAAO,OAAQ,MAAO,OAAQ,KAAK,EAAE,SAAS,CAAO,EAOtE,MALA,EAAO,KAAK,gBAAiB,CAC3B,MAAO,wBACP,KACA,UACF,CAAC,EACK,EAA0B,uBAAuB,EAGzD,GAAI,CAAC,CAAC,MAAO,OAAQ,MAAO,OAAQ,MAAO,OAAQ,KAAK,EAAE,SAAS,CAAO,EACxE,MAAO,CACL,QAAS,CACP,eAAgB,EAAU,IAAY,2BACtC,sBAAuB,qBAAqB,EAAK,EACnD,EACA,KAAM,OAAO,KAAK,EAAU,QAAQ,CACtC,EAGF,GAAM,CAAE,KAAM,GAAa,MAAM,EAAY,CAC3C,KAAM,OAAO,KAAK,CAAQ,EAAE,SAAS,QAAQ,EAC7C,IAAK,CACP,CAAC,EAEK,EAAS,OAAO,KAAK,EAAS,QAAQ,EAG5C,OAFA,MAAM,EAAK,WAAW,EAAiB,CAAM,EAEtC,CACL,QAAS,CACP,eAAgB,kBAChB,sBAAuB,qBAAqB,EAAK,MACnD,EACA,KAAM,CACR,CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../../plugins/file/utils/allowedExtensions.js";import"../../../utils/index.js";import"node:path";import"node:fs/promises";import"image-size";export{};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"../../../config.js";import t from"../../../plugins/file/providers/mime/index.js";import{BadRequestError as n,NotFoundError as r}from"../../../errors.js";import i from"../../../plugins/crud/funcs/utils/getFolder.js";import a from"../../../plugins/file/isFileExists.js";import o from"../../../plugins/file/downloadFile.js";import"../../../utils/index.js";import s from"node:path";import{mkdir as c,writeFile as l}from"node:fs/promises";import{imageSize as u}from"image-size";import d from"sharp";const f=2e3,p=i(e,`local`),m=(e,t,n=1)=>t&&t.toLowerCase().split(`x`)[1]?t.toLowerCase().split(`x`)[1]:e?e/n:240,h=Buffer.from(`R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7`,`base64`);async function g({filepath:i,quality:g,size:_,w:v,h:y,nocache:b,format:x,noimage:S},{grpc:C,logger:w}){if(S)return{headers:{"Content-Type":`image/gif`},data:h};if(!i)throw n(`not enough query params: filepath`);let T=s.basename(i),E=t(i);if(!E)throw n(`invalid query params: filepath`);if(E===`image/svg+xml`){let e=await o(i,{buffer:!0});if(!e?.length)throw r(`Файл не знайдено - ${i}`);return{headers:{"Content-Type":`image/svg+xml`,"Cache-control":`max-age=604800`},data:e}}let D=_?i.replace(T,`${_}_resized_${T}`):i.replace(T,`${v||400}_${y||(v?``:240)}_resized_${T}`),O=x===`webp`?D.replace(s.extname(D),`.webp`):D,k=await a(O),A=await a(O.replace(`files/`,`files/original/`))?O.replace(`files/`,`files/original/`):O,j=k?await o(A,{buffer:!0}):null;if(j&&!e.disableCache&&!b&&process.env.NODE_ENV!==`test`)return{headers:{"Content-Type":x===`webp`?`image/webp`:E,"Cache-control":`max-age=604800`},data:j};let M=await o(i,{buffer:!0});if(!M?.length)return{headers:{"Content-Type":`image/gif`},data:h};let N=Math.min(+(g||75),100),{width:P=400,height:F=240}=u(M)||{},I=P/F;if((_?.toLowerCase?.()?.split?.(`x`)||[]).concat((v||``).toString(),(y||``).toString()).filter(e=>e&&+e>f).length)throw n(`resize image size too big`);let L=(y&&!v?+y*I:null)||(_?.toLowerCase?.()?.split?.(`x`)?.[1]&&!_?.toLowerCase?.()?.split?.(`x`)?.[0]?+(_?.toLowerCase?.()?.split?.(`x`)?.[1]||0)*I:null)||(v?+v:null)||(_?.toLowerCase?.()?.split?.(`x`)?.[0]?+(_?.toLowerCase?.()?.split?.(`x`)?.[0]||0):null)||Math.min(P,f),R=y||m(L,_,I);e.trace&&(console.log(`original width/height/ratio: `,P,F,I),console.log(`resize width/height/ratio/quality: `,L,R,L/R,N));let{resizeImage:z}=C({server:e.convertServerAddress},{logger:w}),{result:B}=await z({base64:Buffer.from(M).toString(`base64`),width:L,height:R,quality:N});if(await c(s.dirname(s.join(p,A)),{recursive:!0}),await l(s.join(p,A),Buffer.from(B,`base64`)),x===`webp`){let e=await d(Buffer.from(B,`base64`)).webp({quality:N}).toBuffer({resolveWithObject:!1});return await c(s.dirname(s.join(p,O)),{recursive:!0}),await l(s.join(p,O),e),{headers:{"Content-Type":`image/webp`},data:e}}return{headers:{"Content-Type":E},data:Buffer.from(B,`base64`)}}export{g as default};
|
|
2
|
+
//# sourceMappingURL=resizeFile.js.map
|