@opengis/fastify-table 1.4.88 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (489) hide show
  1. package/dist/config.js +33 -0
  2. package/dist/dblist.js +5 -0
  3. package/dist/index.js +170 -0
  4. package/dist/redactionList.js +6 -0
  5. package/dist/server/helpers/core/badge.js +16 -0
  6. package/dist/server/helpers/core/buttonFilePreview.js +12 -0
  7. package/dist/server/helpers/core/buttonHelper.js +20 -0
  8. package/{server → dist/server}/helpers/core/token.js +16 -18
  9. package/dist/server/helpers/format/formatAuto.js +14 -0
  10. package/dist/server/helpers/format/formatDate.js +231 -0
  11. package/{server → dist/server}/helpers/format/formatDigit.js +21 -21
  12. package/dist/server/helpers/format/formatNum.js +331 -0
  13. package/{server → dist/server}/helpers/format/formatNumber.js +50 -55
  14. package/dist/server/helpers/format/formatRelative.js +180 -0
  15. package/{server → dist/server}/helpers/format/formatUnit.js +41 -40
  16. package/{server → dist/server}/helpers/format/num_format.js +40 -44
  17. package/{server → dist/server}/helpers/format/set.js +26 -27
  18. package/{server → dist/server}/helpers/funcs/_math.js +49 -50
  19. package/{server → dist/server}/helpers/funcs/contentList.js +52 -57
  20. package/{server → dist/server}/helpers/funcs/empty.js +21 -21
  21. package/dist/server/helpers/funcs/ifCond.js +109 -0
  22. package/dist/server/helpers/funcs/ifCondAnd.js +109 -0
  23. package/dist/server/helpers/funcs/ifCondOr.js +110 -0
  24. package/{server → dist/server}/helpers/funcs/inc.js +19 -20
  25. package/{server → dist/server}/helpers/funcs/json.js +3 -3
  26. package/dist/server/helpers/funcs/qrcode.js +65 -0
  27. package/{server → dist/server}/helpers/funcs/round.js +27 -29
  28. package/dist/server/helpers/funcs/select.js +39 -0
  29. package/dist/server/helpers/index.js +126 -0
  30. package/dist/server/helpers/list/buttonHelper.js +20 -0
  31. package/{server → dist/server}/helpers/list/descriptionList.js +39 -45
  32. package/dist/server/helpers/list/tableList.js +104 -0
  33. package/{server → dist/server}/helpers/list/utils/button.js +3 -3
  34. package/{server → dist/server}/helpers/list/utils/buttonDel.js +8 -9
  35. package/{server → dist/server}/helpers/list/utils/buttonEdit.js +8 -9
  36. package/{server → dist/server}/helpers/string/coalesce.js +33 -39
  37. package/{server → dist/server}/helpers/string/concat.js +25 -28
  38. package/{server → dist/server}/helpers/string/split.js +19 -20
  39. package/{server → dist/server}/helpers/string/str_replace.js +57 -62
  40. package/{server → dist/server}/helpers/string/substr.js +28 -32
  41. package/{server → dist/server}/helpers/string/translit.js +20 -23
  42. package/dist/server/helpers/string/utils/alphabet.js +76 -0
  43. package/{server → dist/server}/helpers/utils/button.js +3 -3
  44. package/{server → dist/server}/helpers/utils/buttonAdd.js +4 -4
  45. package/{server → dist/server}/helpers/utils/buttonDel.js +11 -15
  46. package/{server → dist/server}/helpers/utils/buttonDownload.js +3 -3
  47. package/dist/server/helpers/utils/buttonEdit.js +14 -0
  48. package/{server → dist/server}/helpers/utils/buttonPreview.js +3 -3
  49. package/{server → dist/server}/helpers/utils/mdToHTML.js +16 -17
  50. package/{server → dist/server}/helpers/utils/paddingNumber.js +5 -5
  51. package/dist/server/plugins/access/funcs/getAdminAccess.js +11 -0
  52. package/dist/server/plugins/cron/cronList.js +2 -0
  53. package/dist/server/plugins/cron/funcs/addCron.js +41 -0
  54. package/{server → dist/server}/plugins/cron/funcs/interval2ms.js +36 -40
  55. package/dist/server/plugins/cron/funcs/runCron.js +20 -0
  56. package/{server → dist/server}/plugins/cron/funcs/verifyUnique.js +19 -23
  57. package/dist/server/plugins/cron/index.js +75 -0
  58. package/dist/server/plugins/crud/funcs/dataDelete.js +87 -0
  59. package/dist/server/plugins/crud/funcs/dataInsert.js +134 -0
  60. package/dist/server/plugins/crud/funcs/dataUpdate.js +198 -0
  61. package/dist/server/plugins/crud/funcs/getAccess.js +82 -0
  62. package/dist/server/plugins/crud/funcs/getOpt.js +13 -0
  63. package/dist/server/plugins/crud/funcs/getToken.js +24 -0
  64. package/dist/server/plugins/crud/funcs/isFileExists.js +11 -0
  65. package/dist/server/plugins/crud/funcs/setOpt.js +19 -0
  66. package/dist/server/plugins/crud/funcs/setToken.js +41 -0
  67. package/dist/server/plugins/crud/funcs/utils/getFolder.js +13 -0
  68. package/dist/server/plugins/crud/funcs/utils/getInsertQuery.js +54 -0
  69. package/dist/server/plugins/crud/funcs/utils/logChanges.js +144 -0
  70. package/{server → dist/server}/plugins/crud/funcs/validateData.js +91 -83
  71. package/dist/server/plugins/extra/extraData.js +81 -0
  72. package/dist/server/plugins/extra/extraDataGet.js +52 -0
  73. package/dist/server/plugins/file/downloadFile.js +15 -0
  74. package/{server → dist/server}/plugins/file/getExport.js +18 -38
  75. package/dist/server/plugins/file/isFileExists.js +13 -0
  76. package/dist/server/plugins/file/providers/fs.js +86 -0
  77. package/dist/server/plugins/file/providers/index.js +28 -0
  78. package/dist/server/plugins/file/providers/mime/index.js +7 -0
  79. package/dist/server/plugins/file/providers/mime/mimes.js +1179 -0
  80. package/dist/server/plugins/file/providers/s3/client.js +26 -0
  81. package/dist/server/plugins/file/providers/s3/funcs/downloadFile.js +42 -0
  82. package/dist/server/plugins/file/providers/s3/funcs/fileExists.js +24 -0
  83. package/dist/server/plugins/file/providers/s3/funcs/uploadFile.js +35 -0
  84. package/dist/server/plugins/file/providers/s3/funcs/utils/getS3FilePath.js +18 -0
  85. package/{server → dist/server}/plugins/file/providers/s3/index.js +11 -12
  86. package/dist/server/plugins/file/providers/utils/getDataSize.js +19 -0
  87. package/dist/server/plugins/file/providers/utils/getValidData.js +30 -0
  88. package/dist/server/plugins/file/providers/utils/handlers/dataTypes.js +7 -0
  89. package/dist/server/plugins/file/providers/utils/handlers/index.js +50 -0
  90. package/dist/server/plugins/file/providers/utils/handlers/sizeHandlers.js +9 -0
  91. package/dist/server/plugins/file/providers/utils/streamToBuffer.js +7 -0
  92. package/{server → dist/server}/plugins/file/providers/utils/typeguards/isArray.js +2 -3
  93. package/{server → dist/server}/plugins/file/providers/utils/typeguards/isBuffer.js +2 -3
  94. package/dist/server/plugins/file/providers/utils/typeguards/isPath.js +3 -0
  95. package/dist/server/plugins/file/providers/utils/typeguards/isReadableStream.js +7 -0
  96. package/{server → dist/server}/plugins/file/providers/utils/typeguards/isText.js +2 -3
  97. package/dist/server/plugins/file/uploadFile.js +14 -0
  98. package/dist/server/plugins/file/uploadMultiPart.js +101 -0
  99. package/dist/server/plugins/file/utils/allowedExtensions.js +60 -0
  100. package/{server → dist/server}/plugins/file/utils/getFileType.js +12 -10
  101. package/dist/server/plugins/file/utils/getPath.js +30 -0
  102. package/dist/server/plugins/file/utils/isFileExists.js +15 -0
  103. package/dist/server/plugins/grpc/file2json.js +50 -0
  104. package/dist/server/plugins/grpc/grpc.js +103 -0
  105. package/dist/server/plugins/grpc/office2pdf.js +78 -0
  106. package/dist/server/plugins/grpc/utils/csv2xls.js +6 -0
  107. package/dist/server/plugins/grpc/utils/excel2Json.js +10 -0
  108. package/dist/server/plugins/grpc/utils/html2doc.js +17 -0
  109. package/dist/server/plugins/grpc/utils/html2img.js +17 -0
  110. package/dist/server/plugins/grpc/utils/html2pdf.js +19 -0
  111. package/{server → dist/server}/plugins/grpc/utils/htmlTemplate.js +3 -4
  112. package/dist/server/plugins/grpc/utils/json2xls.js +11 -0
  113. package/dist/server/plugins/grpc/utils/mergePdf.js +18 -0
  114. package/dist/server/plugins/hook/funcs/addHook.js +7 -0
  115. package/dist/server/plugins/hook/funcs/applyHook.js +25 -0
  116. package/dist/server/plugins/hook/funcs/applyHookSync.js +7 -0
  117. package/dist/server/plugins/hook/hookList.js +2 -0
  118. package/{server → dist/server}/plugins/hook/index.js +7 -8
  119. package/dist/server/plugins/logger/createFileStream.js +79 -0
  120. package/dist/server/plugins/logger/errorMessage.js +24 -0
  121. package/dist/server/plugins/logger/errorStatus.js +17 -0
  122. package/dist/server/plugins/logger/getHooks.js +17 -0
  123. package/dist/server/plugins/logger/getLogger.js +52 -0
  124. package/dist/server/plugins/logger/index.js +37 -0
  125. package/dist/server/plugins/logger/labels.js +10 -0
  126. package/dist/server/plugins/logger/serializers.js +22 -0
  127. package/{server → dist/server}/plugins/logger/timestampWithTimeZone.js +5 -5
  128. package/dist/server/plugins/md/funcs/formatMdoc.js +45 -0
  129. package/{server → dist/server}/plugins/md/funcs/mdToHTML.js +16 -17
  130. package/dist/server/plugins/metric/index.js +6 -0
  131. package/dist/server/plugins/metric/loggerSystem.js +127 -0
  132. package/dist/server/plugins/metric/systemMetricsFifthly.js +20 -0
  133. package/dist/server/plugins/migration/exec.migrations.js +59 -0
  134. package/dist/server/plugins/migration/exec.sql.js +61 -0
  135. package/{server → dist/server}/plugins/migration/index.js +5 -7
  136. package/dist/server/plugins/pg/funcs/autoIndex.js +102 -0
  137. package/{server → dist/server}/plugins/pg/funcs/getDBParams.js +16 -15
  138. package/dist/server/plugins/pg/funcs/getMeta.js +48 -0
  139. package/dist/server/plugins/pg/funcs/getPG.js +39 -0
  140. package/dist/server/plugins/pg/funcs/getPGAsync.js +45 -0
  141. package/dist/server/plugins/pg/funcs/init.js +157 -0
  142. package/dist/server/plugins/pg/index.js +47 -0
  143. package/dist/server/plugins/pg/pgClients.js +20 -0
  144. package/dist/server/plugins/policy/funcs/checkPolicy.js +173 -0
  145. package/dist/server/plugins/policy/funcs/checkXSS.js +44 -0
  146. package/dist/server/plugins/policy/index.js +11 -0
  147. package/dist/server/plugins/policy/sqlInjection.js +33 -0
  148. package/dist/server/plugins/policy/xssInjection.js +72 -0
  149. package/{server → dist/server}/plugins/redis/client.js +6 -8
  150. package/dist/server/plugins/redis/funcs/getRedis.js +23 -0
  151. package/{server → dist/server}/plugins/redis/funcs/redisClients.js +2 -3
  152. package/dist/server/plugins/redis/index.js +8 -0
  153. package/dist/server/plugins/sqlite/funcs/getSqlite.js +27 -0
  154. package/dist/server/plugins/sqlite/funcs/init.js +45 -0
  155. package/dist/server/plugins/sqlite/index.js +8 -0
  156. package/dist/server/plugins/sqlite/sqliteClients.js +24 -0
  157. package/dist/server/plugins/table/funcs/addMenu.js +12 -0
  158. package/dist/server/plugins/table/funcs/addTemplateDir.js +16 -0
  159. package/dist/server/plugins/table/funcs/customTokens.js +2 -0
  160. package/dist/server/plugins/table/funcs/getData.js +25 -0
  161. package/dist/server/plugins/table/funcs/getFilter.js +18 -0
  162. package/dist/server/plugins/table/funcs/getFilterSQL/index.js +201 -0
  163. package/dist/server/plugins/table/funcs/getFilterSQL/util/formatValue.js +131 -0
  164. package/dist/server/plugins/table/funcs/getFilterSQL/util/getCustomQuery.js +11 -0
  165. package/dist/server/plugins/table/funcs/getFilterSQL/util/getFilterQuery.js +84 -0
  166. package/dist/server/plugins/table/funcs/getFilterSQL/util/getOptimizedQuery.js +11 -0
  167. package/dist/server/plugins/table/funcs/getFilterSQL/util/getRangeQuery.js +161 -0
  168. package/dist/server/plugins/table/funcs/getFilterSQL/util/getTableSql.js +40 -0
  169. package/dist/server/plugins/table/funcs/getSelect.js +37 -0
  170. package/dist/server/plugins/table/funcs/getSelectMeta.js +77 -0
  171. package/dist/server/plugins/table/funcs/getTemplate.js +86 -0
  172. package/dist/server/plugins/table/funcs/getTemplatePath.js +60 -0
  173. package/dist/server/plugins/table/funcs/getTemplateSync.js +84 -0
  174. package/dist/server/plugins/table/funcs/getTemplates.js +15 -0
  175. package/dist/server/plugins/table/funcs/gisIRColumn.js +81 -0
  176. package/dist/server/plugins/table/funcs/loadTemplate.js +2 -0
  177. package/dist/server/plugins/table/funcs/loadTemplatePath.js +2 -0
  178. package/dist/server/plugins/table/funcs/menuDirs.js +2 -0
  179. package/dist/server/plugins/table/funcs/metaFormat/getSelectVal.js +75 -0
  180. package/dist/server/plugins/table/funcs/metaFormat/index.js +64 -0
  181. package/dist/server/plugins/table/funcs/userTemplateDir.js +2 -0
  182. package/dist/server/plugins/table/funcs/userTokens.js +2 -0
  183. package/dist/server/plugins/util/funcs/eventStream.js +28 -0
  184. package/{server → dist/server}/plugins/util/funcs/flattenObject.js +14 -12
  185. package/{server → dist/server}/plugins/util/funcs/unflattenObject.js +48 -46
  186. package/{server → dist/server}/plugins/yml/funcs/json2yml.js +3 -5
  187. package/{server → dist/server}/plugins/yml/funcs/yml2json.js +11 -14
  188. package/{server → dist/server}/routes/access/controllers/access.group.js +17 -23
  189. package/{server → dist/server}/routes/access/controllers/access.group.post.js +46 -53
  190. package/dist/server/routes/access/controllers/access.interface.js +36 -0
  191. package/{server/routes/access/index.mjs → dist/server/routes/access/index.js} +10 -12
  192. package/{server/routes/access/schema.mjs → dist/server/routes/access/schema.js} +65 -68
  193. package/dist/server/routes/cron/controllers/cronApi.js +16 -0
  194. package/dist/server/routes/cron/index.js +15 -0
  195. package/dist/server/routes/crud/controllers/deleteCrud.js +90 -0
  196. package/dist/server/routes/crud/controllers/insert.js +110 -0
  197. package/dist/server/routes/crud/controllers/table.js +144 -0
  198. package/dist/server/routes/crud/controllers/update.js +113 -0
  199. package/dist/server/routes/crud/index.js +22 -0
  200. package/dist/server/routes/dblist/controllers/readItems.js +25 -0
  201. package/dist/server/routes/dblist/controllers/setItem.js +20 -0
  202. package/dist/server/routes/dblist/index.js +17 -0
  203. package/dist/server/routes/dblist/utils/formatData.js +8 -0
  204. package/dist/server/routes/file/controllers/delete.js +99 -0
  205. package/dist/server/routes/file/controllers/download.js +56 -0
  206. package/dist/server/routes/file/controllers/export.js +294 -0
  207. package/dist/server/routes/file/controllers/files.js +57 -0
  208. package/dist/server/routes/file/controllers/resize.js +86 -0
  209. package/dist/server/routes/file/controllers/resizeAll.js +140 -0
  210. package/dist/server/routes/file/controllers/upload.js +56 -0
  211. package/dist/server/routes/file/controllers/uploadImage.js +45 -0
  212. package/dist/server/routes/file/controllers/utils/formatResult.js +13 -0
  213. package/dist/server/routes/file/controllers/utils/jsonToCsv.js +40 -0
  214. package/dist/server/routes/file/controllers/utils/jsonToXls.js +37 -0
  215. package/dist/server/routes/file/index.js +22 -0
  216. package/dist/server/routes/file/schema.js +14 -0
  217. package/dist/server/routes/grpc/controllers/file2geojson.js +54 -0
  218. package/dist/server/routes/grpc/controllers/filePreview.js +87 -0
  219. package/dist/server/routes/grpc/index.js +9 -0
  220. package/dist/server/routes/logger/controllers/logger.file.js +81 -0
  221. package/dist/server/routes/logger/controllers/logger.test.api.js +42 -0
  222. package/dist/server/routes/logger/controllers/utils/checkUserAccess.js +22 -0
  223. package/dist/server/routes/logger/controllers/utils/getRootDir.js +25 -0
  224. package/dist/server/routes/logger/index.js +18 -0
  225. package/dist/server/routes/menu/controllers/getMenu.js +98 -0
  226. package/dist/server/routes/menu/controllers/interfaces.js +18 -0
  227. package/dist/server/routes/menu/index.js +7 -0
  228. package/dist/server/routes/properties/controllers/properties.get.js +23 -0
  229. package/dist/server/routes/properties/controllers/properties.post.js +68 -0
  230. package/dist/server/routes/properties/index.js +21 -0
  231. package/dist/server/routes/table/controllers/card.js +79 -0
  232. package/dist/server/routes/table/controllers/cardData.js +161 -0
  233. package/dist/server/routes/table/controllers/cardTabData.js +49 -0
  234. package/dist/server/routes/table/controllers/dataInfo.js +57 -0
  235. package/dist/server/routes/table/controllers/filter.js +181 -0
  236. package/dist/server/routes/table/controllers/form.js +41 -0
  237. package/{server → dist/server}/routes/table/controllers/getFormByTable.js +105 -125
  238. package/dist/server/routes/table/controllers/search.js +80 -0
  239. package/dist/server/routes/table/controllers/suggest.js +242 -0
  240. package/dist/server/routes/table/controllers/tableData.js +88 -0
  241. package/dist/server/routes/table/controllers/tableInfo.js +112 -0
  242. package/dist/server/routes/table/controllers/tokenInfo.js +10 -0
  243. package/dist/server/routes/table/controllers/utils/conditions.js +30 -0
  244. package/dist/server/routes/table/controllers/utils/formatSchema.js +35 -0
  245. package/dist/server/routes/table/controllers/utils/locales.js +2 -0
  246. package/dist/server/routes/table/functions/getData.js +584 -0
  247. package/dist/server/routes/table/index.js +44 -0
  248. package/dist/server/routes/table/schema.js +117 -0
  249. package/dist/server/routes/templates/controllers/getTemplate.js +65 -0
  250. package/dist/server/routes/templates/index.js +7 -0
  251. package/{server → dist/server}/routes/templates/schema.js +11 -12
  252. package/dist/server/routes/util/controllers/code.generator.js +75 -0
  253. package/dist/server/routes/util/controllers/next.id.js +4 -0
  254. package/dist/server/routes/util/controllers/status.monitor.js +6 -0
  255. package/dist/server/routes/util/controllers/user.tokens.js +32 -0
  256. package/dist/server/routes/util/index.js +13 -0
  257. package/dist/server/routes/widget/controllers/file.edit.js +48 -0
  258. package/dist/server/routes/widget/controllers/widget.del.js +84 -0
  259. package/dist/server/routes/widget/controllers/widget.get.js +164 -0
  260. package/dist/server/routes/widget/controllers/widget.set.js +117 -0
  261. package/dist/server/routes/widget/hook/onWidgetSet.js +10 -0
  262. package/dist/server/routes/widget/index.js +42 -0
  263. package/dist/server/types/core.js +12 -0
  264. package/dist/utils.js +93 -0
  265. package/package.json +23 -16
  266. package/config.js +0 -37
  267. package/dblist.js +0 -5
  268. package/index.js +0 -193
  269. package/redactionList.js +0 -7
  270. package/server/helpers/core/badge.js +0 -14
  271. package/server/helpers/core/buttonFilePreview.js +0 -12
  272. package/server/helpers/core/buttonHelper.js +0 -22
  273. package/server/helpers/format/formatAuto.js +0 -13
  274. package/server/helpers/format/formatDate.js +0 -258
  275. package/server/helpers/format/formatNum.js +0 -365
  276. package/server/helpers/format/formatRelative.js +0 -106
  277. package/server/helpers/funcs/ifCond.js +0 -109
  278. package/server/helpers/funcs/ifCondAnd.js +0 -114
  279. package/server/helpers/funcs/ifCondOr.js +0 -115
  280. package/server/helpers/funcs/qrcode.js +0 -68
  281. package/server/helpers/funcs/select.js +0 -46
  282. package/server/helpers/index.js +0 -137
  283. package/server/helpers/list/buttonHelper.js +0 -22
  284. package/server/helpers/list/tableList.js +0 -87
  285. package/server/helpers/string/utils/alphabet.js +0 -76
  286. package/server/helpers/utils/buttonEdit.js +0 -17
  287. package/server/migrations/0.sql +0 -84
  288. package/server/migrations/cls.sql +0 -40
  289. package/server/migrations/context.sql +0 -135
  290. package/server/migrations/crm.sql +0 -155
  291. package/server/migrations/log.sql +0 -87
  292. package/server/migrations/properties.sql +0 -115
  293. package/server/migrations/roles.sql +0 -191
  294. package/server/migrations/template.sql +0 -44
  295. package/server/migrations/users.sql +0 -176
  296. package/server/plugins/access/funcs/getAdminAccess.js +0 -14
  297. package/server/plugins/access/index.mjs +0 -6
  298. package/server/plugins/cron/cronList.js +0 -1
  299. package/server/plugins/cron/funcs/addCron.js +0 -52
  300. package/server/plugins/cron/funcs/runCron.js +0 -24
  301. package/server/plugins/cron/index.js +0 -77
  302. package/server/plugins/crud/funcs/dataDelete.js +0 -86
  303. package/server/plugins/crud/funcs/dataInsert.js +0 -131
  304. package/server/plugins/crud/funcs/dataUpdate.js +0 -179
  305. package/server/plugins/crud/funcs/getAccess.js +0 -94
  306. package/server/plugins/crud/funcs/getOpt.js +0 -14
  307. package/server/plugins/crud/funcs/getToken.js +0 -33
  308. package/server/plugins/crud/funcs/isFileExists.js +0 -13
  309. package/server/plugins/crud/funcs/setOpt.js +0 -21
  310. package/server/plugins/crud/funcs/setToken.js +0 -43
  311. package/server/plugins/crud/funcs/utils/getFolder.js +0 -11
  312. package/server/plugins/crud/funcs/utils/getInsertQuery.js +0 -44
  313. package/server/plugins/crud/funcs/utils/logChanges.js +0 -121
  314. package/server/plugins/crud/index.js +0 -23
  315. package/server/plugins/extra/extraData.js +0 -79
  316. package/server/plugins/extra/extraDataGet.js +0 -56
  317. package/server/plugins/file/downloadFile.js +0 -18
  318. package/server/plugins/file/isFileExists.js +0 -17
  319. package/server/plugins/file/providers/fs.js +0 -100
  320. package/server/plugins/file/providers/index.d.ts +0 -49
  321. package/server/plugins/file/providers/index.js +0 -36
  322. package/server/plugins/file/providers/mime/index.js +0 -12
  323. package/server/plugins/file/providers/mime/mimes.js +0 -1180
  324. package/server/plugins/file/providers/s3/client.js +0 -41
  325. package/server/plugins/file/providers/s3/funcs/downloadFile.js +0 -50
  326. package/server/plugins/file/providers/s3/funcs/fileExists.js +0 -32
  327. package/server/plugins/file/providers/s3/funcs/uploadFile.js +0 -46
  328. package/server/plugins/file/providers/s3/funcs/utils/getS3FilePath.js +0 -23
  329. package/server/plugins/file/providers/utils/getDataSize.js +0 -20
  330. package/server/plugins/file/providers/utils/getValidData.js +0 -32
  331. package/server/plugins/file/providers/utils/handlers/dataTypes.js +0 -8
  332. package/server/plugins/file/providers/utils/handlers/index.js +0 -53
  333. package/server/plugins/file/providers/utils/handlers/sizeHandlers.js +0 -11
  334. package/server/plugins/file/providers/utils/streamToBuffer.js +0 -8
  335. package/server/plugins/file/providers/utils/typeguards/isPath.js +0 -5
  336. package/server/plugins/file/providers/utils/typeguards/isReadableStream.js +0 -8
  337. package/server/plugins/file/uploadFile.js +0 -19
  338. package/server/plugins/file/uploadMultiPart.js +0 -131
  339. package/server/plugins/file/utils/allowedExtensions.js +0 -25
  340. package/server/plugins/file/utils/getPath.js +0 -25
  341. package/server/plugins/file/utils/isFileExists.js +0 -16
  342. package/server/plugins/grpc/file2json.js +0 -54
  343. package/server/plugins/grpc/grpc.js +0 -125
  344. package/server/plugins/grpc/office2pdf.js +0 -91
  345. package/server/plugins/grpc/utils/csv2xls.js +0 -8
  346. package/server/plugins/grpc/utils/excel2Json.js +0 -8
  347. package/server/plugins/grpc/utils/html2doc.js +0 -19
  348. package/server/plugins/grpc/utils/html2img.js +0 -18
  349. package/server/plugins/grpc/utils/html2pdf.js +0 -23
  350. package/server/plugins/grpc/utils/json2xls.js +0 -13
  351. package/server/plugins/grpc/utils/mergePdf.js +0 -20
  352. package/server/plugins/hook/funcs/addHook.js +0 -8
  353. package/server/plugins/hook/funcs/applyHook.js +0 -25
  354. package/server/plugins/hook/funcs/applyHookSync.js +0 -9
  355. package/server/plugins/hook/hookList.js +0 -1
  356. package/server/plugins/logger/createFileStream.js +0 -88
  357. package/server/plugins/logger/errorMessage.js +0 -25
  358. package/server/plugins/logger/errorStatus.js +0 -19
  359. package/server/plugins/logger/getHooks.js +0 -21
  360. package/server/plugins/logger/getLogger.js +0 -58
  361. package/server/plugins/logger/index.js +0 -33
  362. package/server/plugins/logger/labels.js +0 -11
  363. package/server/plugins/logger/serializers.js +0 -25
  364. package/server/plugins/md/funcs/formatMdoc.js +0 -40
  365. package/server/plugins/metric/index.js +0 -8
  366. package/server/plugins/metric/loggerSystem.js +0 -131
  367. package/server/plugins/metric/systemMetricsFifthly.js +0 -24
  368. package/server/plugins/migration/exec.migrations.js +0 -63
  369. package/server/plugins/migration/exec.sql.js +0 -67
  370. package/server/plugins/pg/funcs/autoIndex.js +0 -103
  371. package/server/plugins/pg/funcs/getMeta.js +0 -49
  372. package/server/plugins/pg/funcs/getPG.js +0 -42
  373. package/server/plugins/pg/funcs/getPGAsync.js +0 -62
  374. package/server/plugins/pg/funcs/init.js +0 -117
  375. package/server/plugins/pg/index.js +0 -54
  376. package/server/plugins/pg/pgClients.js +0 -22
  377. package/server/plugins/policy/funcs/checkPolicy.js +0 -127
  378. package/server/plugins/policy/funcs/checkXSS.js +0 -37
  379. package/server/plugins/policy/index.js +0 -11
  380. package/server/plugins/policy/sqlInjection.js +0 -34
  381. package/server/plugins/policy/xssInjection.js +0 -73
  382. package/server/plugins/redis/funcs/getRedis.js +0 -25
  383. package/server/plugins/redis/index.js +0 -17
  384. package/server/plugins/sqlite/funcs/getSqlite.js +0 -39
  385. package/server/plugins/sqlite/funcs/init.js +0 -53
  386. package/server/plugins/sqlite/index.js +0 -11
  387. package/server/plugins/sqlite/sqliteClients.js +0 -26
  388. package/server/plugins/table/funcs/addMenu.js +0 -16
  389. package/server/plugins/table/funcs/addTemplateDir.js +0 -19
  390. package/server/plugins/table/funcs/customTokens.js +0 -1
  391. package/server/plugins/table/funcs/getData.js +0 -14
  392. package/server/plugins/table/funcs/getFilter.js +0 -14
  393. package/server/plugins/table/funcs/getFilterSQL/index.js +0 -163
  394. package/server/plugins/table/funcs/getFilterSQL/util/formatValue.js +0 -136
  395. package/server/plugins/table/funcs/getFilterSQL/util/getCustomQuery.js +0 -13
  396. package/server/plugins/table/funcs/getFilterSQL/util/getFilterQuery.js +0 -75
  397. package/server/plugins/table/funcs/getFilterSQL/util/getOptimizedQuery.js +0 -12
  398. package/server/plugins/table/funcs/getFilterSQL/util/getRangeQuery.js +0 -156
  399. package/server/plugins/table/funcs/getFilterSQL/util/getTableSql.js +0 -34
  400. package/server/plugins/table/funcs/getSelect.js +0 -31
  401. package/server/plugins/table/funcs/getSelectMeta.js +0 -74
  402. package/server/plugins/table/funcs/getTemplate.js +0 -88
  403. package/server/plugins/table/funcs/getTemplatePath.js +0 -60
  404. package/server/plugins/table/funcs/getTemplateSync.js +0 -87
  405. package/server/plugins/table/funcs/getTemplates.js +0 -19
  406. package/server/plugins/table/funcs/gisIRColumn.js +0 -82
  407. package/server/plugins/table/funcs/loadTemplate.js +0 -1
  408. package/server/plugins/table/funcs/loadTemplatePath.js +0 -1
  409. package/server/plugins/table/funcs/menuDirs.js +0 -1
  410. package/server/plugins/table/funcs/metaFormat/getSelectVal.js +0 -61
  411. package/server/plugins/table/funcs/metaFormat/index.js +0 -49
  412. package/server/plugins/table/funcs/userTemplateDir.js +0 -1
  413. package/server/plugins/table/funcs/userTokens.js +0 -1
  414. package/server/plugins/table/index.js +0 -13
  415. package/server/plugins/util/funcs/eventStream.js +0 -29
  416. package/server/plugins/util/index.js +0 -7
  417. package/server/routes/access/controllers/access.interface.js +0 -37
  418. package/server/routes/cron/controllers/cronApi.js +0 -22
  419. package/server/routes/cron/index.js +0 -19
  420. package/server/routes/crud/controllers/deleteCrud.js +0 -84
  421. package/server/routes/crud/controllers/insert.js +0 -103
  422. package/server/routes/crud/controllers/table.js +0 -116
  423. package/server/routes/crud/controllers/update.js +0 -108
  424. package/server/routes/crud/index.js +0 -26
  425. package/server/routes/dblist/controllers/readItems.js +0 -28
  426. package/server/routes/dblist/controllers/setItem.js +0 -25
  427. package/server/routes/dblist/index.mjs +0 -19
  428. package/server/routes/dblist/utils/formatData.js +0 -7
  429. package/server/routes/file/controllers/delete.js +0 -108
  430. package/server/routes/file/controllers/download.js +0 -66
  431. package/server/routes/file/controllers/export.js +0 -290
  432. package/server/routes/file/controllers/files.js +0 -72
  433. package/server/routes/file/controllers/resize.js +0 -96
  434. package/server/routes/file/controllers/resizeAll.js +0 -165
  435. package/server/routes/file/controllers/upload.js +0 -55
  436. package/server/routes/file/controllers/uploadImage.js +0 -47
  437. package/server/routes/file/controllers/utils/formatResult.js +0 -17
  438. package/server/routes/file/controllers/utils/jsonToCsv.js +0 -36
  439. package/server/routes/file/controllers/utils/jsonToXls.js +0 -42
  440. package/server/routes/file/index.mjs +0 -26
  441. package/server/routes/file/schema.js +0 -16
  442. package/server/routes/grpc/controllers/file2geojson.js +0 -60
  443. package/server/routes/grpc/controllers/filePreview.js +0 -89
  444. package/server/routes/grpc/index.mjs +0 -12
  445. package/server/routes/logger/controllers/logger.file.js +0 -97
  446. package/server/routes/logger/controllers/logger.test.api.js +0 -48
  447. package/server/routes/logger/controllers/utils/checkUserAccess.js +0 -24
  448. package/server/routes/logger/controllers/utils/getRootDir.js +0 -27
  449. package/server/routes/logger/index.js +0 -22
  450. package/server/routes/menu/controllers/getMenu.js +0 -98
  451. package/server/routes/menu/controllers/interfaces.js +0 -21
  452. package/server/routes/menu/index.mjs +0 -8
  453. package/server/routes/menu/schema.js +0 -0
  454. package/server/routes/properties/controllers/properties.get.js +0 -33
  455. package/server/routes/properties/controllers/properties.post.js +0 -76
  456. package/server/routes/properties/index.js +0 -25
  457. package/server/routes/table/controllers/card.js +0 -77
  458. package/server/routes/table/controllers/cardData.js +0 -155
  459. package/server/routes/table/controllers/cardTabData.js +0 -57
  460. package/server/routes/table/controllers/dataInfo.js +0 -56
  461. package/server/routes/table/controllers/filter.js +0 -154
  462. package/server/routes/table/controllers/form.js +0 -42
  463. package/server/routes/table/controllers/search.js +0 -74
  464. package/server/routes/table/controllers/suggest.js +0 -246
  465. package/server/routes/table/controllers/tableData.js +0 -62
  466. package/server/routes/table/controllers/tableInfo.js +0 -110
  467. package/server/routes/table/controllers/tokenInfo.js +0 -12
  468. package/server/routes/table/controllers/utils/conditions.js +0 -21
  469. package/server/routes/table/controllers/utils/formatSchema.js +0 -23
  470. package/server/routes/table/controllers/utils/locales.js +0 -1
  471. package/server/routes/table/functions/getData.js +0 -436
  472. package/server/routes/table/index.js +0 -57
  473. package/server/routes/table/schema.js +0 -127
  474. package/server/routes/templates/controllers/getTemplate.js +0 -51
  475. package/server/routes/templates/index.mjs +0 -10
  476. package/server/routes/util/controllers/code.generator.js +0 -94
  477. package/server/routes/util/controllers/next.id.js +0 -4
  478. package/server/routes/util/controllers/status.monitor.js +0 -8
  479. package/server/routes/util/controllers/user.tokens.js +0 -45
  480. package/server/routes/util/index.js +0 -14
  481. package/server/routes/widget/controllers/file.edit.js +0 -55
  482. package/server/routes/widget/controllers/widget.del.js +0 -99
  483. package/server/routes/widget/controllers/widget.get.js +0 -156
  484. package/server/routes/widget/controllers/widget.set.js +0 -108
  485. package/server/routes/widget/hook/onWidgetSet.js +0 -13
  486. package/server/routes/widget/index.mjs +0 -38
  487. package/utils.js +0 -112
  488. /package/{server → dist/server}/plugins/grpc/utils/convertp.proto +0 -0
  489. /package/{server → dist/server}/plugins/grpc/utils/office2pdf.proto +0 -0
@@ -1,40 +1,41 @@
1
- /* eslint-disable no-restricted-globals */
2
- /* eslint-disable no-param-reassign */
3
- /**
4
- * Повертає розмір файлу на диску у встановлених одиницях вимірювання об'єму файлу.
5
- *
6
- * @summary Повертає розмір растру у відповідних одиницях об'єму файлу (Тбайт, Гбайт, Мбайт)
7
- * @priority 2
8
- * @type helper
9
- * @tag format
10
- * @alias formatUnit
11
- * @example
12
- * {{formatUnit '123.45678' number="2"}}
13
- * @param {data} data Число для перетворення
14
- * @param {Number} number Число після точки
15
- * @param {String} unit "В"
16
- * @returns {String} Returns HTML
17
- */
18
- export default function formatUnit(data, options) {
19
- data = parseFloat(data);
20
- if (isNaN(data)) return data;
21
-
22
- const UNIT = {
23
- B: {
24
- 4: 'TB', 3: 'GB', 2: 'MB', 1: 'KB', 0: 'B',
25
- },
26
- };
27
-
28
- const unit = UNIT[options.hash.unit] || UNIT.B;
29
- const number = options.hash.number || 0;
30
-
31
- for (let i = 4; i >= 0; i -= 1) {
32
- /* If i=0 then dataNew>0 - size in min units (17/03/20 by Olya) */
33
- if (data >= (i ? (10 ** (3 * i)) : i)) {
34
- return (data / (10 ** (3 * i)))
35
- .toFixed(data % (10 ** (3 * i)) ? number : 0) + unit[i];
36
- }
37
- }
38
-
39
- return data.toString();
40
- }
1
+ /* eslint-disable no-restricted-globals */
2
+ /* eslint-disable no-param-reassign */
3
+ /**
4
+ * Повертає розмір файлу на диску у встановлених одиницях вимірювання об'єму файлу.
5
+ *
6
+ * @summary Повертає розмір растру у відповідних одиницях об'єму файлу (Тбайт, Гбайт, Мбайт)
7
+ * @priority 2
8
+ * @type helper
9
+ * @tag format
10
+ * @alias formatUnit
11
+ * @example
12
+ * {{formatUnit '123.45678' number="2"}}
13
+ * @param {data} data Число для перетворення
14
+ * @param {Number} number Число після точки
15
+ * @param {String} unit "В"
16
+ * @returns {String} Returns HTML
17
+ */
18
+ export default function formatUnit(data, options) {
19
+ data = parseFloat(data);
20
+ if (isNaN(data))
21
+ return data;
22
+ const UNIT = {
23
+ B: {
24
+ 4: "TB",
25
+ 3: "GB",
26
+ 2: "MB",
27
+ 1: "KB",
28
+ 0: "B",
29
+ },
30
+ };
31
+ const unit = UNIT[options.hash.unit] || UNIT.B;
32
+ const number = options.hash.number || 0;
33
+ for (let i = 4; i >= 0; i -= 1) {
34
+ /* If i=0 then dataNew>0 - size in min units (17/03/20 by Olya) */
35
+ if (data >= (i ? 10 ** (3 * i) : i)) {
36
+ return ((data / 10 ** (3 * i)).toFixed(data % 10 ** (3 * i) ? number : 0) +
37
+ unit[i]);
38
+ }
39
+ }
40
+ return data.toString();
41
+ }
@@ -1,44 +1,40 @@
1
- /* eslint-disable no-restricted-globals */
2
- /* eslint-disable no-param-reassign */
3
- /**
4
- * Приведення чисел до стандартизованого виду
5
- *
6
- * @summary Форматування у число. Є можливість використання разом із значком span
7
- * @priority 4
8
- * @type helper
9
- * @tag format
10
- * @alias numFormat
11
- * @example
12
- * {{{num_format (coalesce rows.[0].attr 123.456) dec="2"}}}
13
- * @example
14
- * {{num_format (coalesce price 1) fixed="4"}}
15
- * @example
16
- * {{{num_format (math_sum multilang attr="total" fixed=2)}}}
17
- * @param {String|Number} data Число для форматування
18
- * @param {Object} span False - перевірка чи повернути у вигляді html з тега span
19
- * @returns {String} Returns HTML
20
- */
21
- export default function numFormat(data, options) {
22
- const TP = typeof data;
23
- const { dec, fixed, span } = options.hash;
24
- const charAfterZero = dec || fixed;
25
-
26
- if (!data || (TP !== 'number' && TP !== 'string')) return '';
27
-
28
- if (TP === 'string') {
29
- data = parseFloat(data.replace(',', '.'));
30
- }
31
-
32
- if (isNaN(data)) return '';
33
-
34
- const num = (data)
35
- .toFixed(charAfterZero || 2)
36
- .replace(/(\d)(?=(\d{3})+\.)/g, '$1 ')
37
- .split('.');
38
-
39
- if (span) {
40
- return num.map((el, i) => `<span class="part${i + 1}">${el}</span>`).join('.');
41
- }
42
-
43
- return num.join('.');
44
- }
1
+ /* eslint-disable no-restricted-globals */
2
+ /* eslint-disable no-param-reassign */
3
+ /**
4
+ * Приведення чисел до стандартизованого виду
5
+ *
6
+ * @summary Форматування у число. Є можливість використання разом із значком span
7
+ * @priority 4
8
+ * @type helper
9
+ * @tag format
10
+ * @alias numFormat
11
+ * @example
12
+ * {{{num_format (coalesce rows.[0].attr 123.456) dec="2"}}}
13
+ * @example
14
+ * {{num_format (coalesce price 1) fixed="4"}}
15
+ * @example
16
+ * {{{num_format (math_sum multilang attr="total" fixed=2)}}}
17
+ * @param {String|Number} data Число для форматування
18
+ * @param {Object} span False - перевірка чи повернути у вигляді html з тега span
19
+ * @returns {String} Returns HTML
20
+ */
21
+ export default function numFormat(data, options) {
22
+ const TP = typeof data;
23
+ const { dec, fixed, span } = options.hash;
24
+ const charAfterZero = dec || fixed;
25
+ if (!data || (TP !== 'number' && TP !== 'string'))
26
+ return '';
27
+ if (TP === 'string') {
28
+ data = parseFloat(data.replace(',', '.'));
29
+ }
30
+ if (isNaN(data))
31
+ return '';
32
+ const num = (data)
33
+ .toFixed(charAfterZero || 2)
34
+ .replace(/(\d)(?=(\d{3})+\.)/g, '$1 ')
35
+ .split('.');
36
+ if (span) {
37
+ return num.map((el, i) => `<span class="part${i + 1}">${el}</span>`).join('.');
38
+ }
39
+ return num.join('.');
40
+ }
@@ -1,27 +1,26 @@
1
- /**
2
- * Створює змінну, яка використовується у шаблоні та може бути записана в БД.
3
- * Використовується для спрощення зовнішнього вигляду коду та за умови багаторазового використання.
4
- *
5
- * @summary Записує на сайт зміни. Є можливість вносити зміни до бази даних.
6
- * @priority 3
7
- * @type helper
8
- * @alias set
9
- * @tag string
10
- * @example
11
- * {{set '_limit' 10}} {{_limit}}
12
- * @descr Створює змінну _limit, яка може бути викликана з будь-якої частини шаблону та встановлює значення,
13
- * яке отримується з хешу ( наприклад, через присвоєння limit=10 в межах handlebars (хелпер _hb) )
14
- * @param {Any} save Для перевірки чи робити збереження в базі
15
- * @param {Array} args Масив, у якому містяться html строки
16
- * @returns {String} Returns HTML
17
- */
18
- export default function set(variableName, value) {
19
- if (typeof variableName === 'string') {
20
- this[variableName] = value;
21
- }
22
- else {
23
- console.error('Invalid variable name.');
24
- }
25
-
26
- return '';
27
- }
1
+ /**
2
+ * Створює змінну, яка використовується у шаблоні та може бути записана в БД.
3
+ * Використовується для спрощення зовнішнього вигляду коду та за умови багаторазового використання.
4
+ *
5
+ * @summary Записує на сайт зміни. Є можливість вносити зміни до бази даних.
6
+ * @priority 3
7
+ * @type helper
8
+ * @alias set
9
+ * @tag string
10
+ * @example
11
+ * {{set '_limit' 10}} {{_limit}}
12
+ * @descr Створює змінну _limit, яка може бути викликана з будь-якої частини шаблону та встановлює значення,
13
+ * яке отримується з хешу ( наприклад, через присвоєння limit=10 в межах handlebars (хелпер _hb) )
14
+ * @param {Any} save Для перевірки чи робити збереження в базі
15
+ * @param {Array} args Масив, у якому містяться html строки
16
+ * @returns {String} Returns HTML
17
+ */
18
+ export default function set(variableName, value) {
19
+ if (typeof variableName === 'string') {
20
+ this[variableName] = value;
21
+ }
22
+ else {
23
+ console.error('Invalid variable name.');
24
+ }
25
+ return '';
26
+ }
@@ -1,50 +1,49 @@
1
- /**
2
- * Хелпер для виконання математичних операцій з числами
3
- *
4
- * @summary Дії над числами. Дозволяє виконання простих математичних операцій.
5
- * @priority 3
6
- * @type helper
7
- * @tag math
8
- * @alias _math
9
- * @example
10
- * {{_math operator='-' arg1=10 arg2=5}}
11
- * @descr Отримання різниці між arg1 та arg2
12
- * @example
13
- * {{_math '1' '+' '1'}}
14
- * @descr Виконання складання довжини масиву + 2
15
- * @param {Object} operator Оператор для дії з числами
16
- * @param {Object} arg1 Перше число для дії
17
- * @param {Object} arg2 Друге число для дії
18
- * @param {Array} args[0] Перше число для дії
19
- * @param {Array} args[1] Оператор для дії з числами
20
- * @param {Array} args[2] Друге число для дії
21
- * @returns {String} Returns HTML
22
- */
23
- export default function math(...args) {
24
- const options = args.pop();
25
- const opt = options.hash;
26
-
27
- const operator = opt.operator ? opt.operator : args[1];
28
- opt.arg1 = (opt.arg1 || args[0]) - 0;
29
- opt.arg2 = (opt.arg2 || args[2]) - 0;
30
-
31
- if (+opt.arg1 !== 0 && !opt.arg1) return '';
32
- if (+opt.arg2 !== 0 && !opt.arg2) return '';
33
-
34
- switch (operator) {
35
- case '/':
36
- return opt.arg1 / opt.arg2;
37
- case '%':
38
- return opt.arg1 % opt.arg2;
39
- case '*':
40
- return opt.arg1 * opt.arg2;
41
- case '-':
42
- return opt.arg1 - opt.arg2;
43
- case '+':
44
- return opt.arg1 + opt.arg2;
45
- case '.%':
46
- return `${((opt.arg1 * 100) / opt.arg2).toFixed(0)}%`;
47
- default:
48
- return 'operator is not defined';
49
- }
50
- }
1
+ /**
2
+ * Хелпер для виконання математичних операцій з числами
3
+ *
4
+ * @summary Дії над числами. Дозволяє виконання простих математичних операцій.
5
+ * @priority 3
6
+ * @type helper
7
+ * @tag math
8
+ * @alias _math
9
+ * @example
10
+ * {{_math operator='-' arg1=10 arg2=5}}
11
+ * @descr Отримання різниці між arg1 та arg2
12
+ * @example
13
+ * {{_math '1' '+' '1'}}
14
+ * @descr Виконання складання довжини масиву + 2
15
+ * @param {Object} operator Оператор для дії з числами
16
+ * @param {Object} arg1 Перше число для дії
17
+ * @param {Object} arg2 Друге число для дії
18
+ * @param {Array} args[0] Перше число для дії
19
+ * @param {Array} args[1] Оператор для дії з числами
20
+ * @param {Array} args[2] Друге число для дії
21
+ * @returns {String} Returns HTML
22
+ */
23
+ export default function math(...args) {
24
+ const options = args.pop();
25
+ const opt = options.hash;
26
+ const operator = opt.operator ? opt.operator : args[1];
27
+ opt.arg1 = (opt.arg1 || args[0]) - 0;
28
+ opt.arg2 = (opt.arg2 || args[2]) - 0;
29
+ if (+opt.arg1 !== 0 && !opt.arg1)
30
+ return '';
31
+ if (+opt.arg2 !== 0 && !opt.arg2)
32
+ return '';
33
+ switch (operator) {
34
+ case '/':
35
+ return opt.arg1 / opt.arg2;
36
+ case '%':
37
+ return opt.arg1 % opt.arg2;
38
+ case '*':
39
+ return opt.arg1 * opt.arg2;
40
+ case '-':
41
+ return opt.arg1 - opt.arg2;
42
+ case '+':
43
+ return opt.arg1 + opt.arg2;
44
+ case '.%':
45
+ return `${((opt.arg1 * 100) / opt.arg2).toFixed(0)}%`;
46
+ default:
47
+ return 'operator is not defined';
48
+ }
49
+ }
@@ -1,57 +1,52 @@
1
- import Handlebars from 'handlebars';
2
-
3
- import getPG from '../../plugins/pg/funcs/getPG.js';
4
-
5
- const maxLimit = 100;
6
-
7
- /**
8
- * Відображення даних з таблиці або запиту до БД на сторінці. За запитом отримуємо масив json із рядків бази даних.
9
- * Є можливість застосування синтаксису sql у змінній query для формування запиту до БД.
10
- *
11
- * @summary Відображення контенту на сторінці. Є можливість застосування синтаксису sql у змінній query.
12
- * @priority 5
13
- * @type helper
14
- * @alias contentList
15
- * @example
16
- * {{#contentList table="help.doc_function" query="type='api'" sql1=1 limit=1}}{{#each rows}}{{{JSON 2 this}}}{{/each}}{{/contentList}}
17
- * @example
18
- * {{#contentList table="help.doc_function" sql1=1 query="name like '%form%'" limit=1}}{{#each rows}}{{{JSON 2 this}}}{{/each}}{{/contentList}}
19
- * @example
20
- * {{#contentList table="help.article" sql=1 query="module='CORE'" limit=1}}{{#each rows}}{{{JSON 2 this}}}{{/each}}{{/contentList}}
21
- * @param {String} table Таблиця в базі або конфіг таблиця
22
- * @param {String} query Запит до бази
23
- * @param {Number} limit Кількість рядків на сторінці
24
- * @param {String} sql Вивід sql запиту
25
- * @returns {String} Returns HTML
26
- */
27
- export default async function contentList(options) {
28
- const {
29
- table, limit, query, order, sql, debug,
30
- } = options.hash;
31
- if (!table) { return 'Table undefined'; }
32
-
33
- try {
34
- const pg = getPG();
35
-
36
- const hasBrackets = table.trim().startsWith('(') && table.trim().endsWith(')');
37
-
38
- const SQL = `select *,${pg.pk[table] || '1'}::text from ${hasBrackets ? `${table} t` : table} where ${query || '1=1'} ${order ? `order by ${order}` : ''} limit ${limit !== undefined && limit !== null ? Math.min(maxLimit, +limit) : 15}`;
39
- const compiledSQL = Handlebars.compile(SQL)(options.data.root);
40
-
41
- if (sql) {
42
- return compiledSQL.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;').replaceAll('"', '&quot;')
43
- .replaceAll("'", '&#039;');
44
- }
45
- const { rows } = await pg.query(compiledSQL);
46
- const data = { rows, total: rows.length, ...options.data?.root };
47
-
48
- if (debug) {
49
- return JSON.stringify(data, null, 2);
50
- }
51
-
52
- return options.fn(data);
53
- }
54
- catch (err) {
55
- return `Сталася помилка, зверніться до відділу підтримки.<!-- err: ${err.toString()} -->`;
56
- }
57
- }
1
+ import Handlebars from "handlebars";
2
+ import getPG from "../../plugins/pg/funcs/getPG.js";
3
+ const maxLimit = 100;
4
+ /**
5
+ * Відображення даних з таблиці або запиту до БД на сторінці. За запитом отримуємо масив json із рядків бази даних.
6
+ * Є можливість застосування синтаксису sql у змінній query для формування запиту до БД.
7
+ *
8
+ * @summary Відображення контенту на сторінці. Є можливість застосування синтаксису sql у змінній query.
9
+ * @priority 5
10
+ * @type helper
11
+ * @alias contentList
12
+ * @example
13
+ * {{#contentList table="help.doc_function" query="type='api'" sql1=1 limit=1}}{{#each rows}}{{{JSON 2 this}}}{{/each}}{{/contentList}}
14
+ * @example
15
+ * {{#contentList table="help.doc_function" sql1=1 query="name like '%form%'" limit=1}}{{#each rows}}{{{JSON 2 this}}}{{/each}}{{/contentList}}
16
+ * @example
17
+ * {{#contentList table="help.article" sql=1 query="module='CORE'" limit=1}}{{#each rows}}{{{JSON 2 this}}}{{/each}}{{/contentList}}
18
+ * @param {String} table Таблиця в базі або конфіг таблиця
19
+ * @param {String} query Запит до бази
20
+ * @param {Number} limit Кількість рядків на сторінці
21
+ * @param {String} sql Вивід sql запиту
22
+ * @returns {String} Returns HTML
23
+ */
24
+ export default async function contentList(options) {
25
+ const { table, limit, query, order, sql, debug } = options.hash;
26
+ if (!table) {
27
+ return "Table undefined";
28
+ }
29
+ try {
30
+ const pg = getPG();
31
+ const hasBrackets = table.trim().startsWith("(") && table.trim().endsWith(")");
32
+ const SQL = `select *,${pg.pk[table] || "1"}::text from ${hasBrackets ? `${table} t` : table} where ${query || "1=1"} ${order ? `order by ${order}` : ""} limit ${limit !== undefined && limit !== null ? Math.min(maxLimit, +limit) : 15}`;
33
+ const compiledSQL = Handlebars.compile(SQL)(options.data.root);
34
+ if (sql) {
35
+ return compiledSQL
36
+ .replaceAll("&", "&amp;")
37
+ .replaceAll("<", "&lt;")
38
+ .replaceAll(">", "&gt;")
39
+ .replaceAll('"', "&quot;")
40
+ .replaceAll("'", "&#039;");
41
+ }
42
+ const { rows } = await pg.query(compiledSQL);
43
+ const data = { rows, total: rows.length, ...options.data?.root };
44
+ if (debug) {
45
+ return JSON.stringify(data, null, 2);
46
+ }
47
+ return options.fn(data);
48
+ }
49
+ catch (err) {
50
+ return `Сталася помилка, зверніться до відділу підтримки.<!-- err: ${err.toString()} -->`;
51
+ }
52
+ }
@@ -1,21 +1,21 @@
1
- /**
2
- * Повертає пустий рядок замість змісту іншого хелпера при компіляції шаблону (сторінки). Пишеться на початку хелпера та дозволяє ігнорувати подальший зміст. Аналогічно коментуванню ділянок коду лапками, проте не погіршує зовнішній вигляд коду
3
- *
4
- * @summary Повертає пустий рядок замість змісту іншого хелпера при компіляції шаблону.
5
- * @priority 4
6
- * @alias empty
7
- * @type helper
8
- * @tag condition
9
- * @example
10
- * {{{empty widget.widget_adverts}}}
11
- * @example
12
- * {{{empty _hb template="change-password-email-template"}}}
13
- * @example
14
- * {{empty formatDate bt_on_work_date format="dd.MM.yy / hh:mi:sec"}}
15
- * @example
16
- * {{{empty mls 'alertinfo'}}}
17
- * @returns {String} Returns HTML
18
- */
19
- export default function empty() {
20
- return '';
21
- }
1
+ /**
2
+ * Повертає пустий рядок замість змісту іншого хелпера при компіляції шаблону (сторінки). Пишеться на початку хелпера та дозволяє ігнорувати подальший зміст. Аналогічно коментуванню ділянок коду лапками, проте не погіршує зовнішній вигляд коду
3
+ *
4
+ * @summary Повертає пустий рядок замість змісту іншого хелпера при компіляції шаблону.
5
+ * @priority 4
6
+ * @alias empty
7
+ * @type helper
8
+ * @tag condition
9
+ * @example
10
+ * {{{empty widget.widget_adverts}}}
11
+ * @example
12
+ * {{{empty _hb template="change-password-email-template"}}}
13
+ * @example
14
+ * {{empty formatDate bt_on_work_date format="dd.MM.yy / hh:mi:sec"}}
15
+ * @example
16
+ * {{{empty mls 'alertinfo'}}}
17
+ * @returns {String} Returns HTML
18
+ */
19
+ export default function empty() {
20
+ return '';
21
+ }
@@ -0,0 +1,109 @@
1
+ /* eslint-disable no-param-reassign */
2
+ /**
3
+ * Перетинає два масиви
4
+ *
5
+ * @example
6
+ * // returns [1, 4, 5, 6]
7
+ * intersect([1,2,3,4,5,6],[1,4,5,6,7,8,9,11])
8
+ * @param {Array} a
9
+ * @param {Array} b
10
+ * @returns {Array} Returns new intersect array
11
+ */
12
+ function intersect(a, b) {
13
+ let aN = a;
14
+ let bN = b;
15
+ if (b.length > a.length) {
16
+ [aN, bN] = [bN, aN];
17
+ }
18
+ return aN.filter((e) => bN.includes(e));
19
+ }
20
+ /**
21
+ * Створення шаблона або його частини внаслідок перевірки значення із веб-запиту та заздалегідь прописаного значення.
22
+ * Дозволяє змінювати наповнення сторінки через ряд перевірок. Є можливість внесення додаткової умови - що робити, коли умова не виконується.
23
+ *
24
+ * @summary Перевірка двох значень та виконання коду при виконанні умови, а також у всіх інших випадках.
25
+ * @priority 5
26
+ * @alias ifCond
27
+ * @type helper
28
+ * @tag condition
29
+ * @example
30
+ * {{#ifCond @root.req.domain 'in' 'help.softpro.ua,123'}} {{select user.uid data="get_full_uid"}} {{^}} Умова не виконана {{/ifCond}}
31
+ * @example
32
+ * {{#ifCond "1234567890" 'in' @root.user.group_list}} 1=1 {{^}} uid='{{uid}}' {{/ifCond}}
33
+ * @example
34
+ * {{#ifCond 'debug' 'in' @root.setting.core.setting}}Умова виконана{{^}}Не виконана умова{{/ifCond}}
35
+ * @param {Array} args Параметри для значень і умов
36
+ * @param {Array} args[0] Перше значення
37
+ * @param {Array} args[1] Оператор
38
+ * @param {Array} args[2] Друге значення
39
+ * @returns {String} Returns HTML
40
+ */
41
+ export default function ifCond(v1, operator, v2, options) {
42
+ const obj = this;
43
+ const isEmpty = (val) => val === null || val === undefined || (Array.isArray(val) && val.length === 0) || val === '';
44
+ switch (operator) {
45
+ case '==':
46
+ // eslint-disable-next-line eqeqeq
47
+ return (v1 == v2) ? options.fn(obj) : options.inverse(obj);
48
+ case '!=':
49
+ // eslint-disable-next-line eqeqeq
50
+ return (v1 != v2) ? options.fn(obj) : options.inverse(obj);
51
+ case '===':
52
+ return (v1 === v2) ? options.fn(obj) : options.inverse(obj);
53
+ case '!==':
54
+ return (v1 !== v2) ? options.fn(obj) : options.inverse(obj);
55
+ case '&&':
56
+ return (v1 && v2) ? options.fn(obj) : options.inverse(obj);
57
+ case '||':
58
+ return (v1 || v2) ? options.fn(obj) : options.inverse(obj);
59
+ case '<':
60
+ return (v1 < v2) ? options.fn(obj) : options.inverse(obj);
61
+ case '<=':
62
+ return (v1 <= v2) ? options.fn(obj) : options.inverse(obj);
63
+ case '>':
64
+ return (v1 > v2) ? options.fn(obj) : options.inverse(obj);
65
+ case '>=':
66
+ return (v1 >= v2) ? options.fn(obj) : options.inverse(obj);
67
+ case '&':
68
+ return (!isEmpty(v1) && !isEmpty(v2) && intersect(v1, v2).length !== 0)
69
+ ? options.fn(obj)
70
+ : options.inverse(obj);
71
+ case '!~':
72
+ return (v1 || '').indexOf(v2) === -1
73
+ ? options.fn(obj)
74
+ : options.inverse(obj);
75
+ case '~':
76
+ return (v1 || '').indexOf(v2) !== -1
77
+ ? options.fn(obj)
78
+ : options.inverse(obj);
79
+ case 'period':
80
+ return (!isEmpty(v1) && !isEmpty(v2) && new Date(v1) < new Date() && new Date(v2) > new Date())
81
+ ? options.fn(obj)
82
+ : options.inverse(obj);
83
+ case 'in': {
84
+ if (typeof v2 === 'string')
85
+ v2 = v2.split(',').map(item => item.trim());
86
+ if (isEmpty(v1) || isEmpty(v2))
87
+ return options.inverse(obj);
88
+ if (Array.isArray(v1)) {
89
+ return v1.some((value) => v2.includes(value.toString()))
90
+ ? options.fn(obj)
91
+ : options.inverse(obj);
92
+ }
93
+ return v2.includes(v1.toString())
94
+ ? options.fn(obj)
95
+ : options.inverse(obj);
96
+ }
97
+ case 'not in': {
98
+ if (typeof v2 === 'string')
99
+ v2 = v2.split(',').map(item => item.trim());
100
+ if (isEmpty(v1) || isEmpty(v2))
101
+ return options.inverse(obj);
102
+ return !v2.includes(v1.toString())
103
+ ? options.fn(obj)
104
+ : options.inverse(obj);
105
+ }
106
+ default:
107
+ return options.inverse(obj);
108
+ }
109
+ }