@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
@@ -1,125 +0,0 @@
1
- /* eslint-disable no-promise-executor-return */
2
- /* eslint-disable no-console */
3
-
4
- import path from 'node:path';
5
- import { fileURLToPath } from 'url';
6
-
7
- import grpc from '@grpc/grpc-js';
8
- import protoLoader from '@grpc/proto-loader';
9
-
10
- import config from '../../../config.js';
11
- import logger from '../logger/getLogger.js';
12
-
13
- const filename = fileURLToPath(import.meta.url);
14
- const dirname = path.dirname(filename);
15
-
16
- config.ready = config.ready || {};
17
-
18
- // external ip not-accessible from internal network
19
- const defaultConvertServerAddress = config.pg?.host?.startsWith?.('192.168.3')
20
- ? '192.168.1.96:4003'
21
- : '193.239.152.181:44003';
22
-
23
- const convertServerAddress = config.convertServerAddress === true
24
- ? defaultConvertServerAddress
25
- : config.convertServerAddress;
26
-
27
- if (config.local || config.debug) console.log('convertServerAddress: ', convertServerAddress, !!config.convertServerAddress);
28
-
29
- // const relpath = 'server/plugins/grpc/utils/convertp.proto';
30
- // const protoLocation = process.cwd().includes('fastify-table') ? relpath : `node_modules/@opengis/fastify-table/${relpath}`;
31
-
32
- const proto = grpc.loadPackageDefinition(
33
- protoLoader.loadSync(`${dirname}/utils/convertp.proto`, {
34
- keepCase: true,
35
- longs: String,
36
- enums: String,
37
- defaults: true,
38
- oneofs: true,
39
- }),
40
- );
41
-
42
- const convertClient = convertServerAddress ? new proto.Convert(
43
- convertServerAddress,
44
- grpc.credentials.createInsecure(),
45
- {
46
- 'grpc.max_send_message_length': 512 * 1024 * 1024,
47
- 'grpc.max_receive_message_length': 512 * 1024 * 1024,
48
- },
49
- ) : {};
50
-
51
- if (convertServerAddress) {
52
- convertClient.waitForReady(Date.now() + 5000, (err) => {
53
- if (err) {
54
- config.ready.convert = false;
55
- console.error('Client connection timeout or failure:', err);
56
- }
57
- else {
58
- config.ready.convert = true;
59
- console.log('Client connected successfully.');
60
- // You can now make RPC calls safely
61
- }
62
- });
63
- }
64
-
65
- const methodNames = [
66
- 'pdfMerge',
67
- 'htmlToPdf',
68
- 'csvToXls',
69
- 'jsonToXls',
70
- 'excelToJson',
71
- 'xmlToJson',
72
- 'htmlToDoc',
73
- 'htmlToImage',
74
- 'shpToGeojson',
75
- 'geojsonToShp',
76
- 'geojsonToGpkg',
77
- 'docToPDF',
78
- 'mergeImages',
79
- 'resizeImage',
80
- 'jsonToYaml',
81
- 'yamlToJson',
82
- 'log',
83
- ];
84
-
85
- const wrapGrpcCall = (methodName) => async (data) => new Promise((res, rej) => {
86
- if (!convertServerAddress) {
87
- logger.file('grpc/convert', {
88
- method: methodName,
89
- error: 'grpc convert not set',
90
- stack: new Error().stack,
91
- });
92
- return rej(new Error('grpc convert not set'));
93
- }
94
- convertClient[methodName](data, (err, response) => {
95
- if (err) {
96
- logger.file('grpc/convert', {
97
- method: methodName,
98
- error: err.toString(),
99
- stack: err.stack,
100
- ready: config.ready.convert,
101
- });
102
-
103
- if (!config.ready.convert) {
104
- return rej(new Error('no grpc convert connection'));
105
- }
106
-
107
- return rej(err);
108
- }
109
-
110
- return res(response);
111
- });
112
- return null;
113
- });
114
-
115
- const grpcMethods = methodNames.reduce((acc, name) => {
116
- acc[name] = wrapGrpcCall(name);
117
- return acc;
118
- }, {});
119
-
120
- const getGRPC = () => ({
121
- ...grpcMethods,
122
- convertServerAddress,
123
- });
124
-
125
- export default getGRPC;
@@ -1,91 +0,0 @@
1
- /* eslint-disable no-promise-executor-return */
2
- /* eslint-disable no-console */
3
- import path from 'node:path';
4
- import { fileURLToPath } from 'url';
5
-
6
- import grpc from '@grpc/grpc-js';
7
- import protoLoader from '@grpc/proto-loader';
8
-
9
- import config from '../../../config.js';
10
- import logger from '../logger/getLogger.js';
11
-
12
- const filename = fileURLToPath(import.meta.url);
13
- const dirname = path.dirname(filename);
14
-
15
- config.ready = config.ready || {};
16
-
17
- // external ip not-accessible from internal network
18
- const defaultOfficeConverterServerAddress = config.pg?.host?.startsWith?.('192.168.3')
19
- ? '192.168.1.96:4011'
20
- : '193.239.152.181:44011';
21
-
22
- const officeConverterServerAddress = config.officeConverterServerAddress === true
23
- ? defaultOfficeConverterServerAddress
24
- : config.officeConverterServerAddress;
25
-
26
- console.log('officeConverterServerAddress: ', officeConverterServerAddress, !!config.officeConverterServerAddress);
27
-
28
- // const relpath = 'server/plugins/grpc/utils/office2pdf.proto';
29
- // const protoLocation = process.cwd().includes('fastify-table') ? relpath : `node_modules/@opengis/fastify-table/${relpath}`;
30
-
31
- const proto = grpc.loadPackageDefinition(
32
- protoLoader.loadSync(`${dirname}/utils/office2pdf.proto`, {
33
- keepCase: true,
34
- longs: String,
35
- enums: String,
36
- defaults: true,
37
- oneofs: true,
38
- }),
39
- );
40
-
41
- const officeClient = officeConverterServerAddress ? new proto.OfficeConverterService(
42
- officeConverterServerAddress,
43
- grpc.credentials.createInsecure(),
44
- {
45
- 'grpc.max_send_message_length': 512 * 1024 * 1024,
46
- 'grpc.max_receive_message_length': 512 * 1024 * 1024,
47
- },
48
- ) : {};
49
-
50
- if (officeConverterServerAddress) {
51
- officeClient.waitForReady(Date.now() + 5000, (err) => {
52
- if (err) {
53
- config.ready.office2pdf = false;
54
- console.error('Client connection timeout or failure:', err);
55
- }
56
- else {
57
- config.ready.office2pdf = true;
58
- console.log('Client connected successfully.');
59
- // You can now make RPC calls safely
60
- }
61
- });
62
- }
63
-
64
- const officeToPdf = async (data) => new Promise((res, rej) => {
65
- if (!officeConverterServerAddress) {
66
- logger.file('grpc/convert', {
67
- method: 'officeToPdf',
68
- error: 'grpc office2pdf not set',
69
- stack: new Error().stack,
70
- });
71
- return rej(new Error('grpc office2pdf not set'));
72
- }
73
- officeClient.OfficeToPdf(data, (err, data1) => {
74
- if (err) {
75
- logger.file('grpc/office2pdf', { error: err.toString(), stack: err.stack, ready: config.ready.office2pdf });
76
- if (!config.ready.office2pdf) {
77
- return rej(new Error('no grpc office2pdf connection'));
78
- }
79
- return rej(err);
80
- }
81
- return res(data1);
82
- });
83
- return null;
84
- });
85
-
86
- const getOffice = () => ({
87
- officeToPdf,
88
- officeConverterServerAddress,
89
- });
90
-
91
- export default getOffice;
@@ -1,8 +0,0 @@
1
- import grpc from '../grpc.js';
2
-
3
- export default async function csv2xls({
4
- csvBuffer,
5
- }) {
6
- const result = await grpc.csvToXls({ buffer: csvBuffer.toString('base64') });
7
- return { resultBuffer: result.result };
8
- }
@@ -1,8 +0,0 @@
1
- import grpc from '../grpc.js';
2
-
3
- export default async function excel2Json({
4
- buffer, type, delimiter,
5
- }) {
6
- const { result } = await grpc.excelToJson({ buffer: buffer.toString('base64'), type, delimiter });
7
- return { resultBuffer: result };
8
- }
@@ -1,19 +0,0 @@
1
- import { mkdir, writeFile } from 'fs/promises';
2
- import path from 'path';
3
-
4
- import grpc from '../grpc.js';
5
-
6
- export default async function html2doc({
7
- html, filepath,
8
- }) {
9
- const result = await grpc.html2Doc({ html });
10
- if (result.err) throw new Error(result.err);
11
- try {
12
- await mkdir(path.dirname(filepath), { recursive: true });
13
- await writeFile(filepath, result.result, 'base64');
14
- return { filepath };
15
- }
16
- catch (err) {
17
- return { err: err.toString(), status: 500 };
18
- }
19
- }
@@ -1,18 +0,0 @@
1
- import { mkdir, writeFile } from 'fs/promises';
2
- import path from 'path';
3
- import grpc from '../grpc.js';
4
-
5
- export default async function html2pdf({
6
- html, filepath,
7
- }) {
8
- const result = await grpc.htmlToImg({ html });
9
- if (result.err) throw new Error(result.err);
10
- try {
11
- await mkdir(path.dirname(filepath), { recursive: true });
12
- await writeFile(filepath, result.result, 'base64');
13
- return { filepath };
14
- }
15
- catch (err) {
16
- return { err: err.toString(), status: 500 };
17
- }
18
- }
@@ -1,23 +0,0 @@
1
- import { mkdir, writeFile } from 'fs/promises';
2
- import path from 'path';
3
-
4
- import grpc from '../grpc.js';
5
-
6
- export default async function html2pdf({
7
- html, filepath, logger,
8
- }) {
9
- const time = Date.now();
10
- try {
11
- const result = await grpc.htmlToPdf({ html });
12
- logger.file('format/pdf', { msec: Date.now() - time, resp_code: 200 });
13
-
14
- if (result.err) throw new Error(result.err);
15
-
16
- await mkdir(path.dirname(filepath), { recursive: true });
17
- await writeFile(filepath, result.result, 'base64');
18
- return { filepath };
19
- }
20
- catch (err) {
21
- return { err: err.toString(), status: 500 };
22
- }
23
- }
@@ -1,13 +0,0 @@
1
- import grpc from '../grpc.js';
2
-
3
- export default async function json2xls({
4
- json,
5
- }) {
6
- try {
7
- const result = await grpc.jsonToXls({ buffer: json });
8
- return { resultBuffer: result.result };
9
- }
10
- catch (err) {
11
- return { err: err.toString() };
12
- }
13
- }
@@ -1,20 +0,0 @@
1
- import path from 'path';
2
- import { mkdir, writeFile } from 'fs/promises';
3
-
4
- import grpc from '../grpc.js';
5
-
6
- export default async function mergePdf({
7
- pdfStringList, pathToSave, filename,
8
- }) {
9
- const filename1 = filename || path.basename(pathToSave);
10
- const result = grpc.pdfMerge(pdfStringList);
11
- if (result.err) return { err: result.err, status: 500 };
12
- try {
13
- await mkdir(path.dirname(pathToSave), { recursive: true });
14
- await writeFile(pathToSave, result.result, 'base64');
15
- return { filename: `${filename1}.pdf`, filepath: pathToSave };
16
- }
17
- catch (err) {
18
- return { err: err.toString(), status: 500 };
19
- }
20
- }
@@ -1,8 +0,0 @@
1
- import hookList from '../hookList.js';
2
-
3
- export default function addHook(name, fn) {
4
- if (!hookList[name]) {
5
- hookList[name] = [];
6
- }
7
- hookList[name].push(fn);
8
- }
@@ -1,25 +0,0 @@
1
- /* eslint-disable no-console */
2
- import config from '../../../../config.js';
3
- import hookList from '../hookList.js';
4
-
5
- export default async function applyHook(name, data) {
6
- const { trace } = config;
7
- if (trace) console.log('applyHook', name);
8
- if (!hookList[name]?.length) return null;
9
- const result = {};
10
- await Promise.all(hookList[name].map(async (hook) => {
11
- const hookData = await hook({ ...data, config });
12
- if (hookData) {
13
- if (trace) console.log('applyHook', name, hookData);
14
- Object.assign(result, hookData);
15
- }
16
- })).catch((err) => {
17
- console.error('applyHook', name, err.toString());
18
- });
19
-
20
- if (Object.keys(result).length) {
21
- return result;
22
- }
23
-
24
- return null;
25
- }
@@ -1,9 +0,0 @@
1
- import hookList from '../hookList.js';
2
-
3
- export default function applyHookSync(name, data) {
4
- if (!hookList[name]?.length) return null;
5
-
6
- const hookData = hookList[name].map((hook) => hook(data))[0];
7
-
8
- return hookData;
9
- }
@@ -1 +0,0 @@
1
- export default {};
@@ -1,88 +0,0 @@
1
- /* eslint-disable no-console */
2
-
3
- const streams = {};
4
-
5
- import build from 'pino-abstract-transport';
6
- import fs from 'node:fs';
7
-
8
- import labels from './labels.js';
9
- import timestampWithTimeZone from './timestampWithTimeZone.js';
10
-
11
- import config from '../../../config.js';
12
-
13
- const generator = () => () => `${timestampWithTimeZone().split('T')[0].replace(/:/g, '_')}.log`;
14
-
15
- const {
16
- dir = 'log', interval = '1d', compress = 'gzip', // maxFiles = 90, local: teeToStdout,
17
- } = config?.log || {};
18
- function createFileStream({ level, status }) {
19
- console.log(dir, level, generator({ interval })(), interval, compress);
20
- /* const params = {
21
- maxFiles, // logs to save limit
22
- history: 'history', // history file name
23
- interval, // rotate daily
24
- compress, // compress rotated files
25
- teeToStdout, // debug / logs to stdout
26
- path: `${dir}/${level}`, // absolute path (root directory)
27
- intervalBoundary: true, // true - log name with lower boundary of rotation interval
28
- initialRotation: true, // true - log rotation check on init
29
- // intervalUTC: true, // local tz -> utc
30
- };
31
- return createStream(generator({ interval }), params); */
32
- const dt = new Date().toISOString().split('T')[0];
33
-
34
- const fileName = `${dir}/${level}/${dt}${status ? `_${status}` : ''}.log`;
35
-
36
- fs.mkdirSync(`${dir}/${level}`, { recursive: true });
37
-
38
- const stream = fs.createWriteStream(fileName, {
39
- encoding: 'utf8', flags: 'a+',
40
- });
41
-
42
- stream.on('finish', () => stream.destroy());
43
- stream.on('close', () => stream.destroy());
44
- stream.on('error', () => stream.destroy());
45
- return stream;
46
- }
47
-
48
- setInterval(() => {
49
- const dt = new Date().toISOString().split('T')[0];
50
- Object.keys(streams).filter(el => !el.includes(dt)).forEach(el => streams[el].destroy());
51
- }, 1000 * 3600 * 2);
52
-
53
- export default function transportTarget() {
54
- return build((source) => {
55
- const dt = new Date().toISOString().split('T')[0];
56
- source.on('data', (obj) => {
57
- if (['incoming request', 'request completed'].includes(obj.msg)) return;
58
-
59
- // console.log(obj)
60
- const file = obj.msg?.logfolder || obj.logfolder;
61
-
62
- const level = file || labels[obj.level];
63
- const lvl = level + dt;
64
-
65
- // write error status
66
- if (obj.err?.status) {
67
- const status = obj.err?.status;
68
- streams[status] = streams[status] || createFileStream({ level, status });
69
- streams[status].write(`${JSON.stringify({ ...obj, level: labels[obj.level] })}\n`);
70
- }
71
-
72
- // write error type
73
- if (obj.err?.type) {
74
- const status = obj.err?.type;
75
- streams[status] = streams[status] || createFileStream({ level, status });
76
- streams[status].write(`${JSON.stringify({ ...obj, level: labels[obj.level] })}\n`);
77
- }
78
-
79
- if (streams[lvl]?.closed) { streams[lvl].destroy(); }
80
- if (streams[lvl]?.destroyed) { delete streams[lvl]; }
81
-
82
- streams[lvl] = streams[lvl] || createFileStream({ level });
83
- streams[lvl].write(`${JSON.stringify({ ...obj, level: labels[obj.level] })}\n`);
84
- });
85
- }, {
86
- parseLine: (line) => JSON.parse(line),
87
- });
88
- }
@@ -1,25 +0,0 @@
1
- import config from '../../../config.js';
2
- import applyHookSync from '../hook/funcs/applyHookSync.js';
3
- import errorStatus from './errorStatus.js';
4
-
5
- const defaultMessage = {
6
- 602: 'Порушення цілісності бази даних',
7
- };
8
-
9
- function errorMessage(error) {
10
- const hook = applyHookSync('errorMessage', error);
11
- if (hook) return hook;
12
-
13
- if (error.routine === 'exec_stmt_raise' && error.file === 'pl_exec.c') {
14
- return error.message;
15
- }
16
-
17
- // messgae status
18
- const status = errorStatus(error);
19
- if (config.errorMessage?.[status]) return config.errorMessage[status.toString()];
20
- if (defaultMessage[status]) return defaultMessage[status];
21
-
22
- return config.local ? error.toString() : (config.errorMessage?.[500] || 'ServerError');
23
- }
24
-
25
- export default errorMessage;
@@ -1,19 +0,0 @@
1
- import applyHookSync from '../hook/funcs/applyHookSync.js';
2
-
3
- function errorStatus(error) {
4
- const hook = applyHookSync('errorStatus', error);
5
- if (hook) return hook;
6
-
7
- if (error.routine === 'exec_stmt_raise' && error.file === 'pl_exec.c') {
8
- return 601;
9
- }
10
- if (error.routine === 'ExecConstraints') {
11
- return 602;
12
- }
13
- if (error.type === 'DatabaseError') {
14
- return 600;
15
- }
16
-
17
- return 500;
18
- }
19
- export default errorStatus;
@@ -1,21 +0,0 @@
1
- import errorStatus from './errorStatus.js';
2
-
3
- function getHooks() {
4
- return {
5
- logMethod(inputArgs, method) {
6
- // string name param to object
7
-
8
- if (inputArgs?.length === 2 && inputArgs[1]?.originalUrl) {
9
- const req = inputArgs[1];
10
- const err = inputArgs[0]?.stack ? inputArgs[0] : undefined;
11
- if (err) err.status = errorStatus(err);
12
-
13
- return method.apply(this, [{ req, err }, err ? inputArgs[0].toString() : inputArgs[0]]);
14
- }
15
-
16
- return method.apply(this, inputArgs);
17
- },
18
- };
19
- }
20
-
21
- export default getHooks;
@@ -1,58 +0,0 @@
1
- /* eslint-disable no-console */
2
-
3
- import pino from 'pino';
4
- // import path from 'node:path';
5
-
6
- import config from '../../../config.js';
7
- import getRedis from '../redis/funcs/getRedis.js';
8
- import redactionList from '../../../redactionList.js';
9
-
10
- // utils
11
- import getHooks from './getHooks.js';
12
- import serializers from './serializers.js';
13
- import timestampWithTimeZone from './timestampWithTimeZone.js';
14
-
15
- const isServer = process.argv[2];
16
-
17
- const rclient2 = getRedis({ db: 2 });
18
-
19
- if (!config.log) config.log = {};
20
-
21
- const level = config.log?.level || process.env.PINO_LOG_LEVEL || 'info';
22
- console.log(`log level: ${level}`);
23
- const options = {
24
- level, // minimal log level to write
25
- timestamp: () => `,"time":"${timestampWithTimeZone()}"`, // timestamp as isostring
26
- hooks: getHooks(),
27
- serializers, // custom log params
28
- transport: {
29
- targets: [{
30
- target: './createFileStream.js', // path.resolve('utils/createFileStream.js')
31
- },
32
- {
33
- level: 'error',
34
- target: 'pino/file',
35
- options: { destination: 1 },
36
- },
37
- ],
38
- },
39
- redact: redactionList,
40
- };
41
- const logger = pino(options);
42
-
43
- logger.file = function userFile(logfolder, msg, req) {
44
- logger.info({ logfolder, ...(typeof msg === 'string' ? { msg } : msg) }, req);
45
- };
46
-
47
- if (config.debug) {
48
- logger.file('test/redaction', { clientId: 'should be redacted', clientSecret: 'should be redacted' });
49
- }
50
-
51
- logger.metrics = function metrics(key, val, dbName) {
52
- const dbname = dbName || config.pg?.database;
53
- if (!dbname && !isServer) return;
54
- if (!config.redis) return;
55
- rclient2.hincrby(`${dbname}:system_metrics`, key, val || 1);
56
- };
57
-
58
- export default logger;
@@ -1,33 +0,0 @@
1
- import errorMessage from './errorMessage.js';
2
- import logger from './getLogger.js';
3
- import pgClients from '../pg/pgClients.js';
4
-
5
- async function plugin(fastify) {
6
- fastify.addHook('onResponse', async (req, reply) => {
7
- if (reply?.statusCode && reply.statusCode >= 400) {
8
- logger.metrics(`error-count:${reply.statusCode}`);
9
- }
10
- });
11
-
12
- fastify.setErrorHandler(async (error, request, reply) => {
13
- // validation not error
14
- if (error.validation) {
15
- request.log.warn(request, { code: error?.code, status: 422, error: error.toString() });
16
- return reply.status(422).send(error.toString());
17
- }
18
-
19
- // logger
20
- request.log.error(error, request);
21
- console.error({ msg: error.message, where: error.where, stack: error.stack });
22
-
23
- // errorMessage
24
- const msg = errorMessage(error);
25
-
26
- return reply.status(error.statusCode || 500).send(msg);
27
- });
28
-
29
- fastify.addHook('onListen', async () => {
30
- logger.file('init', { db: pgClients.client?.options?.database });
31
- });
32
- }
33
- export default plugin;
@@ -1,11 +0,0 @@
1
- const labels = {
2
- 10: 'trace',
3
- 20: 'debug',
4
- 30: 'info',
5
- 40: 'warn',
6
- 50: 'error',
7
- 60: 'fatal',
8
- infinity: 'silent',
9
- };
10
-
11
- export default labels;
@@ -1,25 +0,0 @@
1
- const serializers = {
2
- req(request) {
3
- const {
4
- method, url, referer, params, query, body, session,
5
- } = request;
6
- const { uid = undefined, user_name: userName = undefined } = session?.passport?.user || {};
7
- return {
8
- method,
9
- url,
10
- referer,
11
- ip: request.headers?.['x-real-ip']
12
- || request.headers?.['x-forwarded-for']
13
- || request.ip
14
- || request.connection?.remoteAddress,
15
- uid,
16
- dbName: request.pg?.options?.database,
17
- user_name: userName,
18
- params,
19
- query,
20
- body,
21
- };
22
- },
23
- };
24
-
25
- export default serializers;