@opengis/fastify-table 1.4.87 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +125 -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 +24 -17
  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 -137
  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
package/dist/config.js ADDED
@@ -0,0 +1,33 @@
1
+ /* eslint-disable no-console */
2
+ import dotenv from "dotenv";
3
+ dotenv.config(); // load .env for node, not required for bun
4
+ import { existsSync, readFileSync } from "node:fs";
5
+ import unflattenObject from "./server/plugins/util/funcs/unflattenObject.js";
6
+ const fileName = ["config.json", "/data/local/config.json"].find((el) => existsSync(el) ? el : null);
7
+ const config = fileName ? JSON.parse(readFileSync(fileName, "utf-8")) : {};
8
+ const { skipKeys = ["windir"] } = config;
9
+ // npm run dev === cross-env NODE_ENV=development
10
+ // alt: node --env=development
11
+ Object.assign(config, {
12
+ storageList: {},
13
+ allTemplates: config?.allTemplates || {},
14
+ skipCheckPolicyRoutes: [],
15
+ env: process.env?.NODE_ENV,
16
+ });
17
+ if (process.env?.NODE_ENV && existsSync(`.env.${process.env.NODE_ENV}`)) {
18
+ dotenv.config({ path: `.env.${process.env.NODE_ENV}` }); // load .env.{{production}} etc. for node, not required for bun
19
+ }
20
+ function loadEnvConfig() {
21
+ // node --env-file-if-exists=.env.dev --env-file-if-exists=.env server
22
+ if (config.trace) {
23
+ console.log(Object.keys(process.env));
24
+ }
25
+ const configKeys = Object.keys(process.env)
26
+ .filter((key) => !key.startsWith("npm_") &&
27
+ !skipKeys.includes(key) &&
28
+ (key.charAt(0) === key.charAt(0)?.toLowerCase?.() || key.includes(".")))
29
+ .reduce((acc, curr) => ({ ...acc, [curr]: process.env[curr] }), {});
30
+ Object.assign(config, unflattenObject(configKeys));
31
+ }
32
+ loadEnvConfig();
33
+ export default config;
package/dist/dblist.js ADDED
@@ -0,0 +1,5 @@
1
+ import fs from "node:fs";
2
+ const dblist = fs.existsSync("dblist.json")
3
+ ? JSON.parse(fs.readFileSync("dblist.json", "utf-8"))
4
+ : [];
5
+ export default dblist;
package/dist/index.js ADDED
@@ -0,0 +1,170 @@
1
+ import path from "node:path";
2
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
3
+ import { fileURLToPath } from "node:url";
4
+ import fp from "fastify-plugin";
5
+ import proxy from "@fastify/http-proxy";
6
+ import config from "./config.js";
7
+ const { maxFileSize = 512 } = config;
8
+ const { name: execName } = path.parse(process.argv0);
9
+ // helpers
10
+ // import helperPlugin from './server/helpers/index.js';
11
+ // plugins
12
+ import cronPlugin from "./server/plugins/cron/index.js";
13
+ import pgPlugin from "./server/plugins/pg/index.js";
14
+ import sqlitePlugin from "./server/plugins/sqlite/index.js";
15
+ import policyPlugin from "./server/plugins/policy/index.js";
16
+ import metricPlugin from "./server/plugins/metric/index.js";
17
+ import redisPlugin from "./server/plugins/redis/index.js";
18
+ import loggerPlugin from "./server/plugins/logger/index.js";
19
+ // routes
20
+ import cronRoutes from "./server/routes/cron/index.js";
21
+ import crudRoutes from "./server/routes/crud/index.js";
22
+ import loggerRoutes from "./server/routes/logger/index.js";
23
+ import propertiesRoutes from "./server/routes/properties/index.js";
24
+ import tableRoutes from "./server/routes/table/index.js";
25
+ import utilRoutes from "./server/routes/util/index.js";
26
+ import accessRoutes from "./server/routes/access/index.js";
27
+ // utils
28
+ import addTemplateDir from "./server/plugins/table/funcs/addTemplateDir.js";
29
+ import execMigrations from "./server/plugins/migration/exec.migrations.js";
30
+ import locales from "./server/routes/table/controllers/utils/locales.js";
31
+ import pgClients from "./server/plugins/pg/pgClients.js";
32
+ import dblistRoutes from "./server/routes/dblist/index.js";
33
+ import menuRoutes from "./server/routes/menu/index.js";
34
+ import templatesRoutes from "./server/routes/templates/index.js";
35
+ import widgetRoutes from "./server/routes/widget/index.js";
36
+ // core templates && cls
37
+ const filename = fileURLToPath(import.meta.url);
38
+ const cwd = path.dirname(filename);
39
+ async function plugin(fastify, opt) {
40
+ config.pg = opt.pg;
41
+ config.redis = opt.redis;
42
+ config.root = opt.root;
43
+ config.mapServerRoot = opt.mapServerRoot;
44
+ // fastify.register(import('@fastify/sensible'), {
45
+ // errorHandler: false,
46
+ // });
47
+ // fastify.register(import('@fastify/url-data'), {
48
+ // errorHandler: false,
49
+ // });
50
+ if (config.disableCors) {
51
+ fastify.addHook("onSend", async (request, reply) => {
52
+ reply.header("Access-Control-Allow-Origin", "*");
53
+ });
54
+ }
55
+ fastify.addHook("onReady", async () => {
56
+ if (existsSync("locales")) {
57
+ const subdirs = readdirSync("locales", { withFileTypes: true }).filter((el) => el.isDirectory());
58
+ const res = subdirs.reduce((acc, curr) => {
59
+ const content = readdirSync(`locales/${curr.name}`, {
60
+ withFileTypes: true,
61
+ });
62
+ const obj = content
63
+ .filter((el) => el.isFile())
64
+ .reduce((acc1, file) => ({
65
+ ...acc1,
66
+ ...JSON.parse(readFileSync(`locales/${curr.name}/${file.name}`, "utf-8").replace(/[\u200B-\u200D\uFEFF]/g, "")),
67
+ }), {});
68
+ Object.keys(obj).reduce((acc1, curr1) => Object.assign(acc, {
69
+ [curr1]: { ...acc[curr1], [curr.name]: obj?.[curr1] },
70
+ }), {});
71
+ return acc;
72
+ }, {});
73
+ Object.assign(locales, res);
74
+ console.log("locales loaded");
75
+ }
76
+ });
77
+ // core migrations (second argument for core only)
78
+ execMigrations(path.join(cwd, "server/migrations"), pgClients.client, true).catch((err) => console.log(err));
79
+ // core templates && cls
80
+ config.templates?.forEach((el) => addTemplateDir(el));
81
+ addTemplateDir(path.join(cwd, "module/core"));
82
+ // plugins / utils / funcs
83
+ policyPlugin(fastify);
84
+ metricPlugin();
85
+ redisPlugin(fastify);
86
+ await pgPlugin(fastify, opt);
87
+ await sqlitePlugin(fastify, opt);
88
+ cronPlugin();
89
+ loggerPlugin(fastify, opt);
90
+ if (config.rateLimit !== false) {
91
+ await fastify.register(import("@fastify/rate-limit"), {
92
+ max: config.rateLimit?.max || 100,
93
+ timeWindow: config.rateLimit?.timeWindow || "1 minute",
94
+ global: true,
95
+ keyGenerator: (req) => `${req.ip}-${req.raw.url.split("?")[0]}`,
96
+ });
97
+ }
98
+ config.proxy?.forEach?.((el) => {
99
+ if (execName === "bun") {
100
+ fastify.all(`${el.source}/*`, async (req, reply) => {
101
+ const url = el.target.replace(/\/$/, "") +
102
+ req.raw.url.replace(new RegExp(`^${el.source}`), "");
103
+ const res = await fetch(url, {
104
+ method: req.method,
105
+ headers: {
106
+ // ...req.headers,
107
+ uid: req.user?.uid,
108
+ ...(el.headers || {}),
109
+ },
110
+ body: ["PUT", "POST"].includes(req.method) ? req.raw : undefined,
111
+ });
112
+ reply.headers(Object.fromEntries(res.headers));
113
+ reply.status(res.status);
114
+ if (res.headers.get("content-type")?.startsWith?.("text/")) {
115
+ const resp = await res.text();
116
+ // reply.send(resp);
117
+ return resp;
118
+ }
119
+ if (res.headers.get("content-type")?.includes?.("/json")) {
120
+ const resp = await res.json();
121
+ // reply.send(resp);
122
+ return resp;
123
+ }
124
+ const blob = await res.blob();
125
+ const arrayBuffer = await blob.arrayBuffer();
126
+ const fileBuffer = Buffer.from(arrayBuffer);
127
+ return fileBuffer;
128
+ });
129
+ }
130
+ else {
131
+ fastify.register(proxy, {
132
+ upstream: el.target,
133
+ prefix: el.source,
134
+ http2: false,
135
+ preHandler: async (req) => {
136
+ req.headers.uid = req.session?.passport?.user?.uid;
137
+ Object.keys(el.headers || {})?.forEach((item) => (req.headers[item] = el.headers[item]));
138
+ },
139
+ });
140
+ }
141
+ });
142
+ if (config.dblist) {
143
+ dblistRoutes(fastify);
144
+ }
145
+ // routes / api
146
+ cronRoutes(fastify);
147
+ crudRoutes(fastify);
148
+ loggerRoutes(fastify);
149
+ propertiesRoutes(fastify);
150
+ tableRoutes(fastify, opt);
151
+ utilRoutes(fastify);
152
+ accessRoutes(fastify, opt);
153
+ widgetRoutes(fastify, opt);
154
+ menuRoutes(fastify, opt);
155
+ templatesRoutes(fastify, opt);
156
+ // from fastify-file
157
+ await fastify.register(import("@fastify/multipart"), {
158
+ limits: {
159
+ fileSize: maxFileSize * 1024 * 1024,
160
+ },
161
+ }); // content parser, await before adding upload routes
162
+ fastify.register(import("./server/routes/file/index.js"), opt);
163
+ fastify.register(import("./server/routes/grpc/index.js"), opt);
164
+ fastify.get("/api/test-proxy", {}, (req) => ({
165
+ ...(req.headers || {}),
166
+ sessionId: req.session?.sessionId,
167
+ }));
168
+ fastify.get("/api/config", { config: { policy: ["admin", "site"] } }, () => config);
169
+ }
170
+ export default fp(plugin);
@@ -0,0 +1,6 @@
1
+ import fs from "node:fs";
2
+ const redactionList = ["clientSecret", "clientId", "password"];
3
+ const customRedactionList = fs.existsSync("redactionList.json")
4
+ ? JSON.parse(fs.readFileSync("redactionList.json", "utf-8"))
5
+ : [];
6
+ export default redactionList.concat(customRedactionList);
@@ -0,0 +1,16 @@
1
+ import getSelect from '../../plugins/table/funcs/getSelect.js';
2
+ export default async function badge(id, options) {
3
+ if (!id?.toString)
4
+ return '-';
5
+ const data = options.hash?.data;
6
+ if (!data)
7
+ return id;
8
+ const classifier = await getSelect(data);
9
+ if (!classifier?.arr)
10
+ return id;
11
+ const item = classifier?.arr.find((el) => el.id?.toString?.() === id.toString());
12
+ if (!item)
13
+ return id;
14
+ return `<span style='color:${item.color || '#14b8a6'};border-color:${item.color || '#14b8a6'}; overflow:hidden;
15
+ text-overflow:ellipsis; white-space:nowrap;' class="block w-fit py-1.5 px-3 rounded-full text-xs font-medium border border-teal-500 text-teal-500 max-w-[220px] text-nowrap ">${item.text}</span>`;
16
+ }
@@ -0,0 +1,12 @@
1
+ import buttonPreview from "../utils/buttonPreview.js";
2
+ import buttonDownload from "../utils/buttonDownload.js";
3
+ export default function buttonFilePreviewHelper(data, options = {}) {
4
+ const { hash } = options;
5
+ if (data && typeof data !== "string")
6
+ return "wrong input data type";
7
+ if (!data)
8
+ return "";
9
+ const preview = buttonPreview(data);
10
+ const download = buttonDownload(data);
11
+ return `<div class='flex gap-x-2'>${hash?.action === "download" ? "" : preview}${hash?.action === "preview" ? "" : download}</div>`;
12
+ }
@@ -0,0 +1,20 @@
1
+ import buttonAdd from '../utils/buttonAdd.js';
2
+ import buttonDel from '../utils/buttonDel.js';
3
+ import buttonEdit from '../utils/buttonEdit.js';
4
+ import button from '../utils/button.js';
5
+ export default function buttonHelper(data, opt) {
6
+ const { hash } = opt;
7
+ // console.log(params)
8
+ if (!hash.token)
9
+ return 'token empty';
10
+ if (hash.add) {
11
+ return buttonAdd(hash.token, hash.title);
12
+ }
13
+ if (hash.del) {
14
+ return buttonDel(hash.token, hash.title, hash.icon);
15
+ }
16
+ if (hash.edit) {
17
+ return buttonEdit(hash.token, hash.title, hash.icon);
18
+ }
19
+ return button(hash.token, hash.title);
20
+ }
@@ -1,18 +1,16 @@
1
- import setToken from '../../plugins/crud/funcs/setToken.js';
2
-
3
- export default function tokenFunc(params) {
4
- const { data, hash } = params;
5
-
6
- if (!data?.root?.user?.uid && !hash.uid) return '-';
7
- if (!hash || typeof hash !== 'object') return '-';
8
-
9
- // const id = hash?.edit ? hash?.id : data?.root?.id;
10
- // console.log(hash)
11
- const [token] = setToken({
12
- ids: [JSON.stringify(hash)],
13
-
14
- uid: data?.root?.user?.uid || hash.uid,
15
- array: 1,
16
- });
17
- return token;
18
- }
1
+ import setToken from "../../plugins/crud/funcs/setToken.js";
2
+ export default function tokenFunc(params) {
3
+ const { data, hash } = params;
4
+ if (!data?.root?.user?.uid && !hash.uid)
5
+ return "-";
6
+ if (!hash || typeof hash !== "object")
7
+ return "-";
8
+ // const id = hash?.edit ? hash?.id : data?.root?.id;
9
+ // console.log(hash)
10
+ const [token] = setToken({
11
+ ids: [JSON.stringify(hash)],
12
+ uid: data?.root?.user?.uid || hash.uid,
13
+ array: true,
14
+ });
15
+ return token;
16
+ }
@@ -0,0 +1,14 @@
1
+ import formatDate from "./formatDate.js";
2
+ export default function formatAuto(data, options = {}) {
3
+ const format = options.hash?.format || "text";
4
+ const auto = { true: "так", false: "ні" };
5
+ if (auto[data])
6
+ return auto[data];
7
+ if (["date"].includes(format)) {
8
+ return formatDate(data, options);
9
+ }
10
+ if (typeof data === "object") {
11
+ return null;
12
+ }
13
+ return data;
14
+ }
@@ -0,0 +1,231 @@
1
+ /* eslint-disable no-param-reassign */
2
+ const monthUa = {
3
+ 0: "січня",
4
+ 1: "лютого",
5
+ 2: "березня",
6
+ 3: "квітня",
7
+ 4: "травня",
8
+ 5: "червня",
9
+ 6: "липня",
10
+ 7: "серпня",
11
+ 8: "вересня",
12
+ 9: "жовтня",
13
+ 10: "листопада",
14
+ 11: "грудня",
15
+ };
16
+ const monthRu = {
17
+ 0: "января",
18
+ 1: "февраля",
19
+ 2: "марта",
20
+ 3: "апреля",
21
+ 4: "мая",
22
+ 5: "июня",
23
+ 6: "июля",
24
+ 7: "авгувта",
25
+ 8: "сентября",
26
+ 9: "октября",
27
+ 10: "ноября",
28
+ 11: "декабря",
29
+ };
30
+ const monthEn = {
31
+ 0: "january",
32
+ 1: "february",
33
+ 2: "march",
34
+ 3: "april",
35
+ 4: "may",
36
+ 5: "june",
37
+ 6: "july",
38
+ 7: "august",
39
+ 8: "september",
40
+ 9: "october",
41
+ 10: "november",
42
+ 11: "december",
43
+ };
44
+ const weekDayUa = {
45
+ 1: "Понеділок",
46
+ 2: "Вівторок",
47
+ 3: "Середа",
48
+ 4: "Четвер",
49
+ 5: "Пёятниця",
50
+ 6: "Субота",
51
+ 0: "Неділя",
52
+ };
53
+ const mthShort = {
54
+ ua: {
55
+ 0: "Січ",
56
+ 1: "Лют",
57
+ 2: "Бер",
58
+ 3: "Кві",
59
+ 4: "Тра",
60
+ 5: "Чер",
61
+ 6: "Лип",
62
+ 7: "Сер",
63
+ 8: "Вер",
64
+ 9: "Жов",
65
+ 10: "Лис",
66
+ 11: "Гру",
67
+ },
68
+ ru: {
69
+ 0: "Янв",
70
+ 1: "Фев",
71
+ 2: "Мар",
72
+ 3: "Апр",
73
+ 4: "Май",
74
+ 5: "Июн",
75
+ 6: "Июл",
76
+ 7: "Авг",
77
+ 8: "Сен",
78
+ 9: "Окт",
79
+ 10: "Ноя",
80
+ 11: "Дек",
81
+ },
82
+ };
83
+ const mth = {
84
+ ua: {
85
+ 0: "Січень",
86
+ 1: "Лютий",
87
+ 2: "Березень",
88
+ 3: "Квітень",
89
+ 4: "Травень",
90
+ 5: "Червень",
91
+ 6: "Липень",
92
+ 7: "Серпень",
93
+ 8: "Вересень",
94
+ 9: "Жовтень",
95
+ 10: "Листопад",
96
+ 11: "Грудень",
97
+ },
98
+ ru: {
99
+ 0: "Январь",
100
+ 1: "Февраль",
101
+ 2: "Март",
102
+ 3: "Апрель",
103
+ 4: "Май",
104
+ 5: "Июнь",
105
+ 6: "Июль",
106
+ 7: "Август",
107
+ 8: "Сентябрь",
108
+ 9: "Октябрь",
109
+ 10: "Ноябрь",
110
+ 11: "Декабрь",
111
+ },
112
+ };
113
+ /**
114
+ * Форматування дати. Є можливість обмеження точності. Є можливість зміщення дат і часу. Є можливість виведення дати на момент запиту.
115
+ *
116
+ * @summary Форматування дати за умовою і можливе зміщення дат і часу. Є можливість виведенння поточної дати через значення аргументу "0"
117
+ * @priority 3
118
+ * @type helper
119
+ * @tag format
120
+ * @alias formatDate
121
+ * @example
122
+ * {{formatDate "2021-09-08T12:22:27.983" shift_year=1 format='mm - yy mw_ru'}}
123
+ * @descr Виведення дати формату 09 - 2021 з назвою місяця російською мовою
124
+ * @example
125
+ * {{formatDate "2021-09-08T12:22:27.983" shift=1478 format='dd.MM.YY hh:mi:sec'}}
126
+ * @descr Виведення дати із зсувом відносно "2021-09-08T12:22:27.983" на 5 діб (13.09.21 12:22:27)
127
+ * @example
128
+ * {{formatDate "2021-09-08T12:22:27.983" trunc='year' format='dd month yy hh:mi:sec'}}
129
+ * @example
130
+ * {{formatDate "2021-09-08T12:22:27.983" trunc='quarter' format='dd.MM.yy hh:mi:sec'}}
131
+ * @example
132
+ * {{formatDate "2021-09-08T12:22:27.983" format='dd.mm.yy hh:mi'}}
133
+ * @descr Виведення дати формату 08.09.2021 12:22
134
+ * @example
135
+ * {{formatDate 0}}
136
+ * @descr Виведення поточної дати
137
+ * @param {String} format Формат для вигляду при поверненні.Можливі значення: dd, mm, MM, month, mon, yy, YY, hh, mi, sec, mw_ua, mw_en, mw_ru, wd_ua
138
+ * @param {Any} time Для вибору чи робити формат виводу години і хвилини, чи ні
139
+ * @param {String} trunc Для вибору чи онуляти рік або квартал
140
+ * @param {Number} shift_year Здвинути рік
141
+ * @param {Number} shift_quarter Здвинути квартал
142
+ * @param {Number} shift_month Здвинути місяць
143
+ * @param {Number} shift_week Здвинути тиждень
144
+ * @param {Number} shift Здвинути час
145
+ * @param {Date|String} data Набір вхідних даних
146
+ * @returns {String} Returns HTML
147
+ */
148
+ export default function formatDate(data, options = {}) {
149
+ if (typeof data === "object" && data === null)
150
+ return "";
151
+ if (typeof data === "undefined")
152
+ return "";
153
+ if (!data.toLocaleDateString && data && data.includes("T")) {
154
+ data = new Date(data);
155
+ }
156
+ if ((!options.hash.format || options.hash.format === "dd.mm") &&
157
+ data &&
158
+ data.toLocaleDateString) {
159
+ const time = options.hash.time
160
+ ? `${data.getHours()}:${data.getMinutes()}`
161
+ : "";
162
+ let m = data.getMonth() + 1;
163
+ m = m < 10 ? `0${m}` : m;
164
+ const dt = options.hash.format === "dd.mm"
165
+ ? `${data.getDate()}.${m}`
166
+ : `${data.getDate()}.${m}.${data.getFullYear()}`;
167
+ return dt + (options.hash.time && time !== "00:00" ? ` ${time}` : "");
168
+ }
169
+ let val = data;
170
+ options.hash = options.hash || {};
171
+ if (typeof val === "string" &&
172
+ (val.match(/\./g) || []).length === 2 &&
173
+ val.length < 11) {
174
+ val = val.replace(/(\d{2}).(\d{2}).(\d{4})/, "$2/$1/$3");
175
+ }
176
+ try {
177
+ val = val === 0 || val === "0" ? new Date() : new Date(val);
178
+ }
179
+ catch (e) {
180
+ return val;
181
+ }
182
+ if (options.hash.trunc) {
183
+ val =
184
+ options.hash.trunc === "year"
185
+ ? new Date(new Date(val.setMonth(0)).setDate(1))
186
+ : val;
187
+ val =
188
+ options.hash.trunc === "quarter"
189
+ ? new Date(new Date(val.setMonth(val.getMonth() - (val.getMonth() % 3))).setDate(1))
190
+ : val;
191
+ }
192
+ if (options.hash.shift_year) {
193
+ val = new Date(val.setYear(val.getFullYear() + (options.hash.shift_year - 0)));
194
+ }
195
+ if (options.hash.shift_quarter) {
196
+ val = new Date(val.setMonth(val.getMonth() + (options.hash.shift_quarter - 0) * 3));
197
+ }
198
+ if (options.hash.shift_month) {
199
+ val = new Date(val.setMonth(val.getMonth() + (options.hash.shift_month - 0)));
200
+ }
201
+ if (options.hash.shift_week) {
202
+ val = new Date(val.getTime() + (options.hash.shift_week - 0) * 86400 * 7 * 1000);
203
+ }
204
+ if (options.hash.shift) {
205
+ val = new Date(val.getTime() + 86400000 * (options.hash.shift - 0));
206
+ }
207
+ if (options.hash.shift_time) {
208
+ val = new Date(val.getTime() + (options.hash.shift_time - 0));
209
+ }
210
+ if (options.hash.format === "iso")
211
+ return val.toISOString();
212
+ const opt1 = {
213
+ dd: (val.getDate() < 10 ? "0" : "") + val.getDate(),
214
+ mm: (val.getMonth() < 9 ? "0" : "") + (val.getMonth() + 1),
215
+ MM: (val.getMonth() < 9 ? "0" : "") + (val.getMonth() + 1),
216
+ month: (mth[options.data?.root?.lang || "ua"] || {})[val.getMonth()],
217
+ mon: (mthShort[options.data && options.data.root && options.data.root.lang
218
+ ? options.data.root.lang
219
+ : "ua"] || {})[val.getMonth()],
220
+ yy: val.getFullYear(),
221
+ YY: `${val.getFullYear()}`.substr(-2),
222
+ hh: (val.getHours() < 10 ? "0" : "") + val.getHours(),
223
+ mi: (val.getMinutes() < 10 ? "0" : "") + val.getMinutes(),
224
+ sec: (val.getSeconds() < 10 ? "0" : "") + val.getSeconds(),
225
+ mw_ua: monthUa[val.getMonth()],
226
+ mw_en: monthEn[val.getMonth()],
227
+ mw_ru: monthRu[val.getMonth()],
228
+ wd_ua: weekDayUa[val.getDay()],
229
+ };
230
+ return Object.keys(opt1).reduce((prev, el) => prev.replace(el, opt1[el]), options.hash.format || "dd.mm.yy");
231
+ }
@@ -1,21 +1,21 @@
1
- /**
2
- * Приведення чисел до стандартизованого виду
3
- *
4
- * @summary Форматування чисел. Приводить до встановленої довжини шляхом доповнення нулями на початку
5
- * @priority 4
6
- * @type helper
7
- * @tag format
8
- * @alias formatDigit
9
- * @example
10
- * {{{formatDigit '11' rank=4}}}
11
- * @param {String|Number} data Число для форматування
12
- * @param {String|Number} opt.rank Фіксована довжина
13
- * @returns {String} Returns String
14
- */
15
-
16
- export default function formatDigit(data, options) {
17
- const dataType = typeof data;
18
- const { rank = 4 } = options.hash;
19
- if (!data || (dataType !== 'number' && dataType !== 'string')) return '';
20
- return String(data).padStart(+rank, '0');
21
- }
1
+ /**
2
+ * Приведення чисел до стандартизованого виду
3
+ *
4
+ * @summary Форматування чисел. Приводить до встановленої довжини шляхом доповнення нулями на початку
5
+ * @priority 4
6
+ * @type helper
7
+ * @tag format
8
+ * @alias formatDigit
9
+ * @example
10
+ * {{{formatDigit '11' rank=4}}}
11
+ * @param {String|Number} data Число для форматування
12
+ * @param {String|Number} opt.rank Фіксована довжина
13
+ * @returns {String} Returns String
14
+ */
15
+ export default function formatDigit(data, options) {
16
+ const dataType = typeof data;
17
+ const { rank = 4 } = options.hash;
18
+ if (!data || (dataType !== 'number' && dataType !== 'string'))
19
+ return '';
20
+ return String(data).padStart(+rank, '0');
21
+ }