@opengis/fcore 0.0.1-beta.2 → 0.0.1-beta.21

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 (248) hide show
  1. package/LICENSE +3 -3
  2. package/README.md +71 -71
  3. package/dist/config.d.ts +2 -10
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +1 -1
  6. package/dist/context.js +1 -1
  7. package/dist/errors.js +1 -1
  8. package/dist/fastify.d.ts +2 -5
  9. package/dist/fastify.d.ts.map +1 -1
  10. package/dist/fastify.js +1 -1
  11. package/dist/fcore.js +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/migrations/cli.js +1 -1
  14. package/dist/migrations/runner.js +1 -1
  15. package/dist/modules/auth/adduser-cli.d.ts +3 -0
  16. package/dist/modules/auth/adduser-cli.d.ts.map +1 -0
  17. package/dist/modules/auth/adduser-cli.js +2 -0
  18. package/dist/modules/auth/passwd-cli.d.ts +3 -0
  19. package/dist/modules/auth/passwd-cli.d.ts.map +1 -0
  20. package/dist/modules/auth/passwd-cli.js +2 -0
  21. package/dist/modules/auth/permission-cli.d.ts +3 -0
  22. package/dist/modules/auth/permission-cli.d.ts.map +1 -0
  23. package/dist/modules/auth/permission-cli.js +2 -0
  24. package/dist/modules/auth/route.d.ts.map +1 -1
  25. package/dist/modules/auth/route.js +1 -1
  26. package/dist/modules/auth/schema.d.ts +10 -1
  27. package/dist/modules/auth/schema.d.ts.map +1 -1
  28. package/dist/modules/auth/schema.js +1 -1
  29. package/dist/modules/auth/services/change-password.d.ts +9 -0
  30. package/dist/modules/auth/services/change-password.d.ts.map +1 -0
  31. package/dist/modules/auth/services/change-password.js +1 -0
  32. package/dist/modules/auth/services/get-current-user.d.ts +1 -0
  33. package/dist/modules/auth/services/get-current-user.d.ts.map +1 -1
  34. package/dist/modules/auth/services/get-current-user.js +1 -1
  35. package/dist/modules/auth/services/registration.d.ts +14 -0
  36. package/dist/modules/auth/services/registration.d.ts.map +1 -0
  37. package/dist/modules/auth/services/registration.js +1 -0
  38. package/dist/modules/auth/services/verify-two-factor.js +1 -1
  39. package/dist/modules/file/mime.d.ts +3 -0
  40. package/dist/modules/file/mime.d.ts.map +1 -0
  41. package/dist/modules/file/mime.js +1 -0
  42. package/dist/modules/file/route.d.ts.map +1 -1
  43. package/dist/modules/file/route.js +1 -1
  44. package/dist/modules/file/schema.d.ts +3 -0
  45. package/dist/modules/file/schema.d.ts.map +1 -1
  46. package/dist/modules/file/schema.js +1 -1
  47. package/dist/modules/file/services/get-file.js +1 -1
  48. package/dist/modules/file/services/resize-file.d.ts.map +1 -1
  49. package/dist/modules/file/services/resize-file.js +1 -1
  50. package/dist/modules/file/services/upload-file.d.ts +4 -6
  51. package/dist/modules/file/services/upload-file.d.ts.map +1 -1
  52. package/dist/modules/file/services/upload-file.js +1 -1
  53. package/dist/modules/resource/route.d.ts +0 -3
  54. package/dist/modules/resource/route.d.ts.map +1 -1
  55. package/dist/modules/resource/route.js +1 -1
  56. package/dist/modules/resource/schema.d.ts +3 -0
  57. package/dist/modules/resource/schema.d.ts.map +1 -1
  58. package/dist/modules/resource/schema.js +1 -1
  59. package/dist/modules/resource/services/add-note.js +1 -1
  60. package/dist/modules/resource/services/add-resource-file.js +1 -1
  61. package/dist/modules/resource/services/create-resource-relation.d.ts +8 -2
  62. package/dist/modules/resource/services/create-resource-relation.d.ts.map +1 -1
  63. package/dist/modules/resource/services/create-resource-relation.js +1 -1
  64. package/dist/modules/resource/services/create-resource.js +1 -1
  65. package/dist/modules/resource/services/delete-resource-relation.d.ts +8 -1
  66. package/dist/modules/resource/services/delete-resource-relation.d.ts.map +1 -1
  67. package/dist/modules/resource/services/delete-resource-relation.js +1 -1
  68. package/dist/modules/resource/services/delete-resource.js +1 -1
  69. package/dist/modules/resource/services/export-resource.d.ts.map +1 -1
  70. package/dist/modules/resource/services/export-resource.js +1 -1
  71. package/dist/modules/resource/services/get-resource.d.ts.map +1 -1
  72. package/dist/modules/resource/services/get-resource.js +1 -1
  73. package/dist/modules/resource/services/list-resource-relation.d.ts +9 -2
  74. package/dist/modules/resource/services/list-resource-relation.d.ts.map +1 -1
  75. package/dist/modules/resource/services/list-resource-relation.js +1 -1
  76. package/dist/modules/resource/services/list-resources.d.ts.map +1 -1
  77. package/dist/modules/resource/services/list-resources.js +1 -1
  78. package/dist/modules/resource/services/search-resource.d.ts.map +1 -1
  79. package/dist/modules/resource/services/search-resource.js +1 -1
  80. package/dist/modules/resource/services/suggest-resource.d.ts +10 -4
  81. package/dist/modules/resource/services/suggest-resource.d.ts.map +1 -1
  82. package/dist/modules/resource/services/suggest-resource.js +1 -1
  83. package/dist/modules/resource/services/update-resource-relation.d.ts +10 -0
  84. package/dist/modules/resource/services/update-resource-relation.d.ts.map +1 -0
  85. package/dist/modules/resource/services/update-resource-relation.js +1 -0
  86. package/dist/modules/resource/services/update-resource.js +1 -1
  87. package/dist/modules/resource/services/upload-resource-file.js +1 -1
  88. package/dist/modules/system/route.d.ts +2 -1
  89. package/dist/modules/system/route.d.ts.map +1 -1
  90. package/dist/modules/system/route.js +1 -1
  91. package/dist/modules/system/schema.d.ts +23 -1
  92. package/dist/modules/system/schema.d.ts.map +1 -1
  93. package/dist/modules/system/schema.js +1 -1
  94. package/dist/modules/system/services/check-system.d.ts.map +1 -1
  95. package/dist/modules/system/services/check-system.js +1 -1
  96. package/dist/modules/system/services/get-access.d.ts +15 -0
  97. package/dist/modules/system/services/get-access.d.ts.map +1 -0
  98. package/dist/modules/system/services/get-access.js +1 -0
  99. package/dist/modules/system/services/get-api-list.d.ts +4 -1
  100. package/dist/modules/system/services/get-api-list.d.ts.map +1 -1
  101. package/dist/modules/system/services/get-api-list.js +1 -1
  102. package/dist/modules/system/services/get-audit-log.d.ts.map +1 -1
  103. package/dist/modules/system/services/get-audit-log.js +1 -1
  104. package/dist/modules/system/services/get-dictionary.js +1 -1
  105. package/dist/modules/system/services/get-system-log.d.ts +9 -5
  106. package/dist/modules/system/services/get-system-log.d.ts.map +1 -1
  107. package/dist/modules/system/services/get-system-log.js +1 -1
  108. package/dist/modules/system/services/get-system-settings.d.ts.map +1 -1
  109. package/dist/modules/system/services/get-system-settings.js +1 -1
  110. package/dist/modules/system/services/list-dictionaries.js +1 -1
  111. package/dist/modules/system/services/set-access.d.ts +17 -0
  112. package/dist/modules/system/services/set-access.d.ts.map +1 -0
  113. package/dist/modules/system/services/set-access.js +1 -0
  114. package/dist/modules/system/services/update-dictionary.d.ts +13 -0
  115. package/dist/modules/system/services/update-dictionary.d.ts.map +1 -0
  116. package/dist/modules/system/services/update-dictionary.js +1 -0
  117. package/dist/modules/system/services/update-system-settings.d.ts.map +1 -1
  118. package/dist/modules/system/services/update-system-settings.js +1 -1
  119. package/dist/modules/utils/require-admin.js +1 -1
  120. package/dist/modules/utils/safe-user.js +1 -1
  121. package/dist/modules/utils/unsupported.js +1 -1
  122. package/dist/plugins/audit/audit.js +1 -1
  123. package/dist/plugins/audit/audit.types.d.ts +1 -1
  124. package/dist/plugins/audit/audit.types.d.ts.map +1 -1
  125. package/dist/plugins/audit/index.js +1 -1
  126. package/dist/plugins/audit/services/write-audit.js +1 -1
  127. package/dist/plugins/auth/get-user-permissions.d.ts +3 -0
  128. package/dist/plugins/auth/get-user-permissions.d.ts.map +1 -0
  129. package/dist/plugins/auth/get-user-permissions.js +1 -0
  130. package/dist/plugins/auth/index.d.ts +4 -0
  131. package/dist/plugins/auth/index.d.ts.map +1 -1
  132. package/dist/plugins/auth/index.js +1 -1
  133. package/dist/plugins/auth/verifyUser.d.ts +9 -0
  134. package/dist/plugins/auth/verifyUser.d.ts.map +1 -0
  135. package/dist/plugins/auth/verifyUser.js +1 -0
  136. package/dist/plugins/dictionary.d.ts +3 -0
  137. package/dist/plugins/dictionary.d.ts.map +1 -1
  138. package/dist/plugins/dictionary.js +1 -1
  139. package/dist/plugins/file.d.ts +3 -6
  140. package/dist/plugins/file.d.ts.map +1 -1
  141. package/dist/plugins/file.js +1 -1
  142. package/dist/plugins/index.d.ts +2 -0
  143. package/dist/plugins/index.d.ts.map +1 -1
  144. package/dist/plugins/index.js +1 -1
  145. package/dist/plugins/jwt.d.ts +4 -0
  146. package/dist/plugins/jwt.d.ts.map +1 -0
  147. package/dist/plugins/jwt.js +1 -0
  148. package/dist/plugins/logger/index.js +1 -1
  149. package/dist/plugins/logger/transport.js +1 -1
  150. package/dist/plugins/pg.d.ts +4 -2
  151. package/dist/plugins/pg.d.ts.map +1 -1
  152. package/dist/plugins/pg.js +1 -1
  153. package/dist/plugins/redis.js +1 -1
  154. package/dist/plugins/resource/index.js +1 -1
  155. package/dist/plugins/resource/resource.d.ts.map +1 -1
  156. package/dist/plugins/resource/resource.js +1 -1
  157. package/dist/plugins/resource/resource.registry.js +1 -1
  158. package/dist/plugins/resource/resource.types.d.ts +73 -15
  159. package/dist/plugins/resource/resource.types.d.ts.map +1 -1
  160. package/dist/plugins/resource/services/add-dictionary-lookup-data.d.ts +3 -0
  161. package/dist/plugins/resource/services/add-dictionary-lookup-data.d.ts.map +1 -0
  162. package/dist/plugins/resource/services/add-dictionary-lookup-data.js +1 -0
  163. package/dist/plugins/resource/services/add-file-token.d.ts +3 -0
  164. package/dist/plugins/resource/services/add-file-token.d.ts.map +1 -0
  165. package/dist/plugins/resource/services/add-file-token.js +1 -0
  166. package/dist/plugins/resource/services/add-table-lookup-data.d.ts +4 -0
  167. package/dist/plugins/resource/services/add-table-lookup-data.d.ts.map +1 -0
  168. package/dist/plugins/resource/services/add-table-lookup-data.js +1 -0
  169. package/dist/plugins/resource/services/create-relation.d.ts +16 -0
  170. package/dist/plugins/resource/services/create-relation.d.ts.map +1 -0
  171. package/dist/plugins/resource/services/create-relation.js +1 -0
  172. package/dist/plugins/resource/services/create.d.ts +5 -2
  173. package/dist/plugins/resource/services/create.d.ts.map +1 -1
  174. package/dist/plugins/resource/services/create.js +1 -1
  175. package/dist/plugins/resource/services/delete-relation.d.ts +18 -0
  176. package/dist/plugins/resource/services/delete-relation.d.ts.map +1 -0
  177. package/dist/plugins/resource/services/delete-relation.js +1 -0
  178. package/dist/plugins/resource/services/delete.d.ts +9 -2
  179. package/dist/plugins/resource/services/delete.d.ts.map +1 -1
  180. package/dist/plugins/resource/services/delete.js +1 -1
  181. package/dist/plugins/resource/services/find-one.d.ts +3 -2
  182. package/dist/plugins/resource/services/find-one.d.ts.map +1 -1
  183. package/dist/plugins/resource/services/find-one.js +1 -1
  184. package/dist/plugins/resource/services/find-relation.d.ts +13 -0
  185. package/dist/plugins/resource/services/find-relation.d.ts.map +1 -0
  186. package/dist/plugins/resource/services/find-relation.js +1 -0
  187. package/dist/plugins/resource/services/find.d.ts.map +1 -1
  188. package/dist/plugins/resource/services/find.js +1 -1
  189. package/dist/plugins/resource/services/update-relation.d.ts +14 -0
  190. package/dist/plugins/resource/services/update-relation.d.ts.map +1 -0
  191. package/dist/plugins/resource/services/update-relation.js +1 -0
  192. package/dist/plugins/resource/services/update.d.ts +9 -2
  193. package/dist/plugins/resource/services/update.d.ts.map +1 -1
  194. package/dist/plugins/resource/services/update.js +1 -1
  195. package/dist/plugins/resource/utils/auto-index.d.ts +4 -0
  196. package/dist/plugins/resource/utils/auto-index.d.ts.map +1 -0
  197. package/dist/plugins/resource/utils/auto-index.js +1 -0
  198. package/dist/plugins/resource/utils/fields.d.ts +8 -1
  199. package/dist/plugins/resource/utils/fields.d.ts.map +1 -1
  200. package/dist/plugins/resource/utils/fields.js +1 -1
  201. package/dist/plugins/resource/utils/filters.d.ts +3 -2
  202. package/dist/plugins/resource/utils/filters.d.ts.map +1 -1
  203. package/dist/plugins/resource/utils/filters.js +1 -1
  204. package/dist/plugins/resource/utils/permissions.d.ts.map +1 -1
  205. package/dist/plugins/resource/utils/permissions.js +1 -1
  206. package/dist/plugins/resource/utils/sort.d.ts +1 -1
  207. package/dist/plugins/resource/utils/sort.d.ts.map +1 -1
  208. package/dist/plugins/resource/utils/sort.js +1 -1
  209. package/dist/plugins/resource/utils/sql.d.ts +1 -1
  210. package/dist/plugins/resource/utils/sql.d.ts.map +1 -1
  211. package/dist/plugins/resource/utils/sql.js +1 -1
  212. package/dist/shared/getIP.js +1 -1
  213. package/dist/type.d.ts +14 -0
  214. package/dist/type.d.ts.map +1 -1
  215. package/migrations/20260903120000_core_schema.sql +27 -21
  216. package/migrations/20260903130000_move_notes_files_to_admin.sql +17 -17
  217. package/migrations/20260903130001_add_file_fields.sql +5 -0
  218. package/migrations/20260903140000_settings_nulls_not_distinct.sql +18 -18
  219. package/migrations/20260905120000_add_user_foreign_keys.sql +43 -0
  220. package/migrations/20260907090000_core_schema.sql +32 -0
  221. package/package.json +93 -88
  222. package/dist/modules/auth/index.d.ts +0 -9
  223. package/dist/modules/auth/index.d.ts.map +0 -1
  224. package/dist/modules/auth/index.js +0 -1
  225. package/dist/modules/auth/services/login.d.ts +0 -10
  226. package/dist/modules/auth/services/login.d.ts.map +0 -1
  227. package/dist/modules/auth/services/login.js +0 -1
  228. package/dist/modules/auth/services/logout.d.ts +0 -9
  229. package/dist/modules/auth/services/logout.d.ts.map +0 -1
  230. package/dist/modules/auth/services/logout.js +0 -1
  231. package/dist/modules/auth/services/verifyPassword.d.ts +0 -11
  232. package/dist/modules/auth/services/verifyPassword.d.ts.map +0 -1
  233. package/dist/modules/auth/services/verifyPassword.js +0 -1
  234. package/dist/modules/file/index.d.ts +0 -8
  235. package/dist/modules/file/index.d.ts.map +0 -1
  236. package/dist/modules/file/index.js +0 -1
  237. package/dist/modules/resource/index.d.ts +0 -20
  238. package/dist/modules/resource/index.d.ts.map +0 -1
  239. package/dist/modules/resource/index.js +0 -1
  240. package/dist/modules/resource/services/list-children.d.ts +0 -6
  241. package/dist/modules/resource/services/list-children.d.ts.map +0 -1
  242. package/dist/modules/resource/services/list-children.js +0 -1
  243. package/dist/modules/system/index.d.ts +0 -13
  244. package/dist/modules/system/index.d.ts.map +0 -1
  245. package/dist/modules/system/index.js +0 -1
  246. package/dist/modules/utils/get-user-permissions.d.ts +0 -3
  247. package/dist/modules/utils/get-user-permissions.d.ts.map +0 -1
  248. package/dist/modules/utils/get-user-permissions.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"suggest-resource.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/suggest-resource.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,wBAAsB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAclF"}
1
+ {"version":3,"file":"suggest-resource.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/suggest-resource.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,KAAK,qBAAqB,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAElB,CAAC;AAEF,wBAAsB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA4ClG"}
@@ -1 +1 @@
1
- (function(_0x366133,_0x49ea6a){const _0x1cb9f6=_0x1d62,_0x3ed73c=_0x366133();while(!![]){try{const _0x25585a=-parseInt(_0x1cb9f6(0xc7))/0x1*(-parseInt(_0x1cb9f6(0xc2))/0x2)+parseInt(_0x1cb9f6(0xb6))/0x3+-parseInt(_0x1cb9f6(0xc4))/0x4*(parseInt(_0x1cb9f6(0xc8))/0x5)+parseInt(_0x1cb9f6(0xbc))/0x6+parseInt(_0x1cb9f6(0xba))/0x7+parseInt(_0x1cb9f6(0xcb))/0x8+-parseInt(_0x1cb9f6(0xbd))/0x9;if(_0x25585a===_0x49ea6a)break;else _0x3ed73c['push'](_0x3ed73c['shift']());}catch(_0x98523e){_0x3ed73c['push'](_0x3ed73c['shift']());}}}(_0x20a4,0x2bd2d));import{ValidationError}from'../../../errors.js';export async function suggestResource(_0x5f452f,_0x23a778){const _0x190233=_0x1d62,_0x47518e=_0x23a778[_0x190233(0xcc)][_0x190233(0xc3)](_0x5f452f[_0x190233(0xcc)]),_0xee9f92=_0x47518e[_0x190233(0xbe)][_0x5f452f[_0x190233(0xbb)]],_0x3d8288=_0xee9f92?.[_0x190233(0xc0)]?.[_0x190233(0xc5)];if(!_0x3d8288)throw new ValidationError(_0x190233(0xcd)+_0x5f452f[_0x190233(0xbb)]);const _0x3ccc45=await _0x23a778[_0x190233(0xc5)][_0x190233(0xc3)](_0x3d8288),_0x285dee=String(_0x5f452f[_0x190233(0xc1)]??_0x5f452f['q']??'')[_0x190233(0xb8)](),_0x451957=Math[_0x190233(0xbf)](Math[_0x190233(0xc6)](Number(_0x5f452f[_0x190233(0xb5)]??0x14),0x1),0xc8);return _0x3ccc45[_0x190233(0xca)](_0x394e9f=>!_0x285dee||_0x394e9f[_0x190233(0xb4)][_0x190233(0xb8)]()[_0x190233(0xb9)](_0x285dee)||_0x394e9f[_0x190233(0xc9)][_0x190233(0xb8)]()[_0x190233(0xb9)](_0x285dee))[_0x190233(0xb7)](0x0,_0x451957);}function _0x1d62(_0x2eea78,_0x411e2d){_0x2eea78=_0x2eea78-0xb4;const _0x20a43a=_0x20a4();let _0x1d6237=_0x20a43a[_0x2eea78];return _0x1d6237;}function _0x20a4(){const _0x523ec0=['toLowerCase','includes','937482kucMkd','field','701580jXcdGA','4580613vvduXX','fields','min','lookup','search','10vbRWaD','get','4020QAjiEa','dictionary','max','14767PcRnuD','55mlQOwm','name','filter','1687152PjAava','resource','Field\x20has\x20no\x20lookup\x20dictionary:\x20','code','limit','491784jPLcup','slice'];_0x20a4=function(){return _0x523ec0;};return _0x20a4();}
1
+ import{ValidationError}from'../../../errors.js';import{autoIndex}from'../../../plugins/resource/utils/auto-index.js';function r(n,k){n=n-0x17d;const Z=g();let K=Z[n];return K;}function g(){const m=['resource','field','lookup','value','text','\x20as\x20text\x20FROM\x20','\x20WHERE\x20lower(','then','length','Field\x20has\x20no\x20lookup\x20dictionary:\x20','startsWith','slice','map'];g=function(){return m;};return g();}export async function suggestResource(n,k){const O=r,Z=k[O(0x17d)]['get'](n['resource']),K=String(n['search']??n['q']??'')['toLowerCase'](),d=Math['min'](Math['max'](Number(n['limit']??0x14),0x1),0xc8),J=Date['now'](),B=Z['fields'][n[O(0x17e)]],l=B?.['dictionary'],f=B?.[O(0x17f)]?.['table'];if(f){const a=B['lookup']?.['text']??'name',H=B['lookup']?.[O(0x180)]??'id';autoIndex(f,a,O(0x181),k['pg']);const A=await k['pg']['query']('SELECT\x20'+H+'\x20as\x20id,\x20'+a+O(0x182)+f+O(0x183)+a+')\x20~\x20$1\x20LIMIT\x20$2',[''+K['toLowerCase'](),d])[O(0x184)](I=>I['rows']);return{'limit':d,'count':A[O(0x185)],'search':K,'time':Date['now']()-J,'data':A};}if(!l)throw new ValidationError(O(0x186)+n[O(0x17e)]);const R=await k['dictionary']['get'](l),Q=R['filter'](I=>!K||I['code'][O(0x187)](K)||I['name'][O(0x187)](K))[O(0x188)](0x0,d)[O(0x189)](I=>({'id':I['code']||I['id'],'text':I['name']||I['text']}));return{'search':K,'limit':d,'count':Q['length'],'time':Date['now']()-J,'data':Q};}
@@ -0,0 +1,10 @@
1
+ import type { AppContext, User } from "../../../context.js";
2
+ export declare function updateResourceRelation(params: {
3
+ resource: string;
4
+ id: string;
5
+ relation: string;
6
+ relationId: string;
7
+ data: Record<string, unknown>;
8
+ user?: User;
9
+ }, ctx: AppContext): Promise<Record<string, unknown>>;
10
+ //# sourceMappingURL=update-resource-relation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-resource-relation.d.ts","sourceRoot":"","sources":["../../../../src/modules/resource/services/update-resource-relation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,sBAAsB,CACxC,MAAM,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,IAAI,CAAC;CACf,EACD,GAAG,EAAE,UAAU,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUlC"}
@@ -0,0 +1 @@
1
+ function r(n,k){n=n-0x1e0;const Z=g();let K=Z[n];return K;}export async function updateResourceRelation(n,k){const f=r,{resource:Z,id:K,relation:d,relationId:J,data:B,user:l}=n;return k[f(0x1e0)][f(0x1e1)]({'name':Z,'id':K,'relation':d,'relationId':J,'data':B,'user':l});}function g(){const R=['resource','updateRelation'];g=function(){return R;};return g();}
@@ -1 +1 @@
1
- function _0x5e52(_0x27d901,_0x2ae0a5){_0x27d901=_0x27d901-0x17f;var _0x8ae73e=_0x8ae7();var _0x5e5255=_0x8ae73e[_0x27d901];return _0x5e5255;}(function(_0x29f812,_0x549253){var _0x2d3ee3=_0x5e52,_0x3456a5=_0x29f812();while(!![]){try{var _0x501426=parseInt(_0x2d3ee3(0x18b))/0x1*(parseInt(_0x2d3ee3(0x184))/0x2)+parseInt(_0x2d3ee3(0x17f))/0x3*(-parseInt(_0x2d3ee3(0x180))/0x4)+-parseInt(_0x2d3ee3(0x188))/0x5+parseInt(_0x2d3ee3(0x187))/0x6+-parseInt(_0x2d3ee3(0x181))/0x7+-parseInt(_0x2d3ee3(0x183))/0x8*(-parseInt(_0x2d3ee3(0x186))/0x9)+-parseInt(_0x2d3ee3(0x18e))/0xa;if(_0x501426===_0x549253)break;else _0x3456a5['push'](_0x3456a5['shift']());}catch(_0x5f489f){_0x3456a5['push'](_0x3456a5['shift']());}}}(_0x8ae7,0xca736));function _0x8ae7(){var _0x18ba64=['resource','5203630BbvExI','33657tDSZfG','308fNxSDn','4493664HCxOSZ','name','990952yPSrbb','2vPTnxz','user','90QaOWDX','7673994QNgUgs','421870mWJEac','patch','update','422101hQAVRl','data'];_0x8ae7=function(){return _0x18ba64;};return _0x8ae7();}export async function updateResource(_0x26a6ef,_0xb95494){var _0x4825e3=_0x5e52,_0x514b96={};return _0x514b96[_0x4825e3(0x182)]=_0x26a6ef[_0x4825e3(0x18d)],_0x514b96['id']=_0x26a6ef['id'],_0x514b96[_0x4825e3(0x18c)]=_0x26a6ef[_0x4825e3(0x189)],_0x514b96[_0x4825e3(0x185)]=_0x26a6ef[_0x4825e3(0x185)],_0xb95494[_0x4825e3(0x18d)][_0x4825e3(0x18a)](_0x514b96);}
1
+ export async function updateResource(n,k){var Z=r;return k[Z(0x172)][Z(0x173)]({'name':n['resource'],'id':n['id'],'data':n[Z(0x174)],'user':n[Z(0x175)]});}function r(n,k){n=n-0x172;var Z=g();var K=Z[n];return K;}function g(){var K=['resource','update','patch','user'];g=function(){return K;};return g();}
@@ -1 +1 @@
1
- function _0x1f6e(_0x4f410f,_0x128660){_0x4f410f=_0x4f410f-0xeb;const _0x5abc95=_0x5abc();let _0x1f6ef7=_0x5abc95[_0x4f410f];return _0x1f6ef7;}(function(_0x388cd3,_0x2ec844){const _0x18ac7d=_0x1f6e,_0x511801=_0x388cd3();while(!![]){try{const _0x2d696f=-parseInt(_0x18ac7d(0x10a))/0x1+parseInt(_0x18ac7d(0xfc))/0x2+-parseInt(_0x18ac7d(0x110))/0x3+parseInt(_0x18ac7d(0xf4))/0x4*(parseInt(_0x18ac7d(0x108))/0x5)+-parseInt(_0x18ac7d(0xf3))/0x6*(-parseInt(_0x18ac7d(0xfe))/0x7)+-parseInt(_0x18ac7d(0x101))/0x8+parseInt(_0x18ac7d(0x114))/0x9;if(_0x2d696f===_0x2ec844)break;else _0x511801['push'](_0x511801['shift']());}catch(_0x41cbc0){_0x511801['push'](_0x511801['shift']());}}}(_0x5abc,0x78095));import{ForbiddenError,NotFoundError,ValidationError}from'../../../errors.js';export async function uploadResourceFile(_0x16b7ae,_0x119123){const _0xa94895=_0x1f6e,_0x59771f={'mkNuf':function(_0x241bc1,_0x5a27f6){return _0x241bc1===_0x5a27f6;},'Gvemk':_0xa94895(0x119),'YCRfi':function(_0x4a90c4,_0x5ddf6){return _0x4a90c4!==_0x5ddf6;},'GTHpy':_0xa94895(0x109),'SJfqU':function(_0x233f7d,_0x20ba29){return _0x233f7d!==_0x20ba29;},'CPSUP':_0xa94895(0xec),'YkbWX':function(_0x4e14b1,_0xbd892e){return _0x4e14b1===_0xbd892e;},'ilIeB':_0xa94895(0xf1),'cloYe':_0xa94895(0x115),'qgcJE':function(_0x14a4e4,_0x1f105f){return _0x14a4e4(_0x1f105f);},'dmZsZ':function(_0x16b1e6,_0x12e88a){return _0x16b1e6(_0x12e88a);}},_0x71445a=_0x119123[_0xa94895(0xff)][_0xa94895(0xee)](_0x16b7ae[_0xa94895(0xff)]);if(_0x59771f[_0xa94895(0x10b)](_0x71445a[_0xa94895(0x10e)],_0x59771f[_0xa94895(0x116)])&&_0x59771f[_0xa94895(0x106)](_0x16b7ae[_0xa94895(0xf2)]?.[_0xa94895(0x100)],_0x59771f[_0xa94895(0x116)]))throw new ForbiddenError(_0x59771f[_0xa94895(0x117)]);if(_0x59771f[_0xa94895(0x111)](_0x16b7ae[_0xa94895(0xf2)]?.[_0xa94895(0x100)],_0x59771f[_0xa94895(0x116)])&&!_0x16b7ae[_0xa94895(0xf2)]?.[_0xa94895(0x107)]?.[_0xa94895(0x10c)]((_0x71445a[_0xa94895(0xfb)]??_0x71445a[_0xa94895(0x105)])+_0xa94895(0xfd))){if(_0x59771f[_0xa94895(0x10b)](_0x59771f[_0xa94895(0xfa)],_0x59771f[_0xa94895(0xfa)]))throw new ForbiddenError(_0xa94895(0xf0)+(_0x71445a[_0xa94895(0xfb)]??_0x71445a[_0xa94895(0x105)])+_0xa94895(0xfd));else throw new _0x51e87e(_0xa94895(0xf0)+(_0x3e0f09[_0xa94895(0xfb)]??_0x229434[_0xa94895(0x105)])+_0xa94895(0xfd));}if(!Buffer[_0xa94895(0x10d)](_0x16b7ae[_0xa94895(0x113)])||_0x59771f[_0xa94895(0xf7)](_0x16b7ae[_0xa94895(0x113)][_0xa94895(0xeb)],0x0))throw new ValidationError(_0x59771f[_0xa94895(0xed)]);const _0x139e87=_0x16b7ae[_0xa94895(0x11a)][_0xa94895(0x10f)](/[^A-Za-z0-9._-]/g,'_');if(!_0x139e87){if(_0x59771f[_0xa94895(0x111)](_0xa94895(0x115),_0x59771f[_0xa94895(0x11b)]))throw new _0x3e81bd(_0xa94895(0x109));else throw new ValidationError(_0xa94895(0x118));}const _0x101d31=_0xa94895(0xf8)+_0x16b7ae[_0xa94895(0xff)]+'/'+_0x59771f[_0xa94895(0xef)](String,_0x16b7ae['id'])+'/'+_0x139e87;await _0x119123[_0xa94895(0x113)][_0xa94895(0x103)](_0x101d31,_0x16b7ae[_0xa94895(0x113)]);if(!await _0x119123[_0xa94895(0x113)][_0xa94895(0x102)](_0x101d31))throw new NotFoundError(_0xa94895(0xf6));const _0x2d055c=await _0x119123['pg'][_0xa94895(0x112)](_0xa94895(0xf9),[_0x16b7ae[_0xa94895(0xff)],_0x59771f[_0xa94895(0xf5)](String,_0x16b7ae['id']),_0x101d31,_0x16b7ae[_0xa94895(0x113)][_0xa94895(0xeb)]]);return _0x2d055c[_0xa94895(0x104)][0x0];}function _0x5abc(){const _0x347165=['SJfqU','query','file','4318677GdYjaM','rvDqP','Gvemk','GTHpy','File\x20name\x20is\x20required','admin','fileName','cloYe','length','RnbJi','ilIeB','get','qgcJE','Missing\x20permission:\x20','File\x20is\x20required','user','6JqLEvD','712972iFFtGk','dmZsZ','Uploaded\x20file\x20not\x20found','YkbWX','files/','\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.files\x20(resource,\x20resource_id,\x20file_path,\x20size)\x0a\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20*\x0a\x20\x20\x20\x20','CPSUP','permission','1900088xwYeHA',':update','6526065jdmSvE','resource','type','7750808LfSxWI','exists','put','rows','name','YCRfi','permissions','5BycKJN','Admin\x20access\x20required','483556ZbPoZe','mkNuf','includes','isBuffer','access','replace','1789077KLXdmB'];_0x5abc=function(){return _0x347165;};return _0x5abc();}
1
+ function g(){const l=['resource','get','access','admin','permission','length','replace','file','query','\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.files\x20(resource,\x20resource_id,\x20file_path,\x20size)\x0a\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20*\x0a\x20\x20\x20\x20'];g=function(){return l;};return g();}import{ForbiddenError,NotFoundError,ValidationError}from'../../../errors.js';function r(n,k){n=n-0xfb;const Z=g();let K=Z[n];return K;}export async function uploadResourceFile(n,k){const B=r,Z=k[B(0xfb)][B(0xfc)](n[B(0xfb)]);if(Z[B(0xfd)]===B(0xfe)&&n['user']?.['type']!=='admin')throw new ForbiddenError('Admin\x20access\x20required');if(n['user']?.['type']!=='admin'&&!n['user']?.['permissions']?.['includes']((Z[B(0xff)]??Z['name'])+':update'))throw new ForbiddenError('Missing\x20permission:\x20'+(Z['permission']??Z['name'])+':update');if(!Buffer['isBuffer'](n['file'])||n['file'][B(0x100)]===0x0)throw new ValidationError('File\x20is\x20required');const K=n['fileName'][B(0x101)](/[^A-Za-z0-9._-]/g,'_');if(!K)throw new ValidationError('File\x20name\x20is\x20required');const d='files/'+n[B(0xfb)]+'/'+String(n['id'])+'/'+K;await k['file']['put'](d,n[B(0x102)]);if(!await k['file']['exists'](d))throw new NotFoundError('Uploaded\x20file\x20not\x20found');const J=await k['pg'][B(0x103)](B(0x104),[n['resource'],String(n['id']),d,n['file']['length']]);return J['rows'][0x0];}
@@ -3,5 +3,6 @@
3
3
  */
4
4
  import type { FastifyPluginAsync } from "fastify";
5
5
  import type { AppContext } from "../../context.js";
6
- export declare function systemRoutes(ctx: AppContext): FastifyPluginAsync;
6
+ import type { ApiRoute } from "../../type.js";
7
+ export declare function systemRoutes(ctx: AppContext, apiRoutes?: ReadonlyMap<string, ApiRoute>): FastifyPluginAsync;
7
8
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/modules/system/route.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAYnD,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,kBAAkB,CAkHhE"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/modules/system/route.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAanD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,wBAAgB,YAAY,CAC1B,GAAG,EAAE,UAAU,EACf,SAAS,GAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAa,GACnD,kBAAkB,CA8JpB"}
@@ -1 +1 @@
1
- const _0x3989f8=_0x1ed5;function _0x2417(){const _0x1d88d8=['5906929hoKuKJ','summary','HOatp','body','gjCfQ','jnqZT','Returns\x20the\x20list\x20of\x20registered\x20platform\x20APIs.','12JbXbqm','ZYaOG','system:logs:read','dictionaryName','SWXCd','/api/system/audit/','SObmH','Updates\x20system\x20settings\x20using\x20flat\x20dot-notation\x20keys.','List\x20APIs','Returns\x20system\x20logger\x20entries\x20for\x20the\x20requested\x20path.','admin','schema','fbeTS','post','DvoWb','RXyyM','system:settings:read','Get\x20platform\x20dictionary','access','tags','/api/system/check','/api/dictionaries/:name','system:check','system:api:read','26270621zRoZPo','9SbLWhy','15982DVeaqK','/api/system/api-list','fcore','Get\x20system\x20settings','system:settings:update','iCQEE','ECkZs','88tvsuZA','6dmwXMW','zTEWC','FgrEu','XMAAh','Returns\x20system\x20settings\x20as\x20nested\x20JSON.','/api/system/settings','YPqxv','List\x20platform\x20dictionaries','settings','Check\x20system\x20health','JlPgQ','get','EGJZG','user','clnPE','ZibPd','Update\x20system\x20settings','/api/dictionaries','Returns\x20a\x20registered\x20platform\x20dictionary\x20by\x20name.','params','iTVlN','339110GAigZg','description','33ceUGXT','system','query','nZHaE','33DjmJch','zDRQB','497416UNxwVd','Returns\x20the\x20system\x20audit\x20log\x20entries.','Get\x20audit\x20log','NBXxQ','Returns\x20all\x20available\x20dictionaries\x20registered\x20by\x20the\x20platform.','801513qAKHJF','bXQcv','iEJmw','/api/system/logger/*','mPevZ','Checks\x20the\x20availability\x20of\x20system\x20dependencies.','audit:read','1999500mnLwcS','Get\x20system\x20log','logger','permissions'];_0x2417=function(){return _0x1d88d8;};return _0x2417();}function _0x1ed5(_0x3dcde4,_0x5619af){_0x3dcde4=_0x3dcde4-0xfd;const _0x24175f=_0x2417();let _0x1ed585=_0x24175f[_0x3dcde4];return _0x1ed585;}(function(_0x3c5d02,_0x2ae42a){const _0x4d1b8e=_0x1ed5,_0x36c6a5=_0x3c5d02();while(!![]){try{const _0x1054f6=parseInt(_0x4d1b8e(0x116))/0x1*(parseInt(_0x4d1b8e(0x14d))/0x2)+-parseInt(_0x4d1b8e(0x14c))/0x3*(parseInt(_0x4d1b8e(0x11c))/0x4)+parseInt(_0x4d1b8e(0x128))/0x5+parseInt(_0x4d1b8e(0xff))/0x6*(-parseInt(_0x4d1b8e(0x12c))/0x7)+-parseInt(_0x4d1b8e(0xfe))/0x8*(parseInt(_0x4d1b8e(0x121))/0x9)+parseInt(_0x4d1b8e(0x114))/0xa*(parseInt(_0x4d1b8e(0x11a))/0xb)+parseInt(_0x4d1b8e(0x133))/0xc*(parseInt(_0x4d1b8e(0x14b))/0xd);if(_0x1054f6===_0x2ae42a)break;else _0x36c6a5['push'](_0x36c6a5['shift']());}catch(_0x55b3cc){_0x36c6a5['push'](_0x36c6a5['shift']());}}}(_0x2417,0x8ff31));import{getSystemSettings}from'./services/get-system-settings.js';import{updateSystemSettings}from'./services/update-system-settings.js';import{getAuditLog}from'./services/get-audit-log.js';import{checkSystem}from'./services/check-system.js';import{getApiList}from'./services/get-api-list.js';import{getSystemLog}from'./services/get-system-log.js';import{listDictionaries}from'./services/list-dictionaries.js';import{getDictionary}from'./services/get-dictionary.js';import{systemSchemas}from'./schema.js';const u=_0x192ab9=>_0x192ab9[_0x3989f8(0x10c)];export function systemRoutes(_0x4e9cf5){const _0x19afec=_0x3989f8,_0x33d1f9={};_0x33d1f9[_0x19afec(0x142)]=_0x19afec(0x110),_0x33d1f9[_0x19afec(0x10e)]=_0x19afec(0x117),_0x33d1f9[_0x19afec(0x139)]=_0x19afec(0x106),_0x33d1f9[_0x19afec(0x152)]=_0x19afec(0x120),_0x33d1f9[_0x19afec(0x134)]=_0x19afec(0x13d),_0x33d1f9[_0x19afec(0x11f)]=_0x19afec(0x148),_0x33d1f9[_0x19afec(0x13f)]=_0x19afec(0x14f),_0x33d1f9[_0x19afec(0x105)]=_0x19afec(0x144),_0x33d1f9[_0x19afec(0xfd)]=_0x19afec(0x111),_0x33d1f9[_0x19afec(0x102)]=_0x19afec(0x103),_0x33d1f9[_0x19afec(0x141)]=_0x19afec(0x143),_0x33d1f9[_0x19afec(0x125)]=_0x19afec(0x104),_0x33d1f9[_0x19afec(0x123)]=_0x19afec(0x10f),_0x33d1f9[_0x19afec(0x10b)]=_0x19afec(0x13a),_0x33d1f9[_0x19afec(0x119)]=_0x19afec(0x151),_0x33d1f9[_0x19afec(0x109)]=_0x19afec(0x124),_0x33d1f9[_0x19afec(0x113)]=_0x19afec(0x13c),_0x33d1f9[_0x19afec(0x131)]=_0x19afec(0x138),_0x33d1f9[_0x19afec(0x10d)]=_0x19afec(0x11e),_0x33d1f9[_0x19afec(0x122)]=_0x19afec(0x11d),_0x33d1f9[_0x19afec(0x100)]=_0x19afec(0x127),_0x33d1f9[_0x19afec(0x130)]=_0x19afec(0x108),_0x33d1f9[_0x19afec(0x12e)]=_0x19afec(0x126),_0x33d1f9[_0x19afec(0x101)]=_0x19afec(0x149),_0x33d1f9[_0x19afec(0x137)]=_0x19afec(0x132),_0x33d1f9[_0x19afec(0x11b)]=_0x19afec(0x14a);const _0x503dee=_0x33d1f9;return async _0x2da0a4=>{const _0x19e2db=_0x19afec;_0x2da0a4[_0x19e2db(0x10a)](_0x503dee[_0x19e2db(0x142)],{'schema':{'tags':[_0x19e2db(0x14f),_0x503dee[_0x19e2db(0x10e)]],'summary':_0x503dee[_0x19e2db(0x139)],'description':_0x503dee[_0x19e2db(0x152)],'access':_0x503dee[_0x19e2db(0x134)],'permissions':[]}},async _0x4b7c1c=>listDictionaries({'user':u(_0x4b7c1c)},_0x4e9cf5)),_0x2da0a4[_0x19e2db(0x10a)](_0x503dee[_0x19e2db(0x11f)],{'schema':{'tags':[_0x503dee[_0x19e2db(0x13f)],_0x503dee[_0x19e2db(0x10e)]],'summary':_0x503dee[_0x19e2db(0x105)],'description':_0x503dee[_0x19e2db(0xfd)],'access':_0x503dee[_0x19e2db(0x134)],'permissions':[],'params':systemSchemas[_0x19e2db(0x136)]}},async _0x5a2927=>getDictionary({..._0x5a2927[_0x19e2db(0x112)],'user':u(_0x5a2927)},_0x4e9cf5));const _0x2d9896={};_0x2d9896[_0x19e2db(0x146)]=[_0x19e2db(0x14f),_0x503dee[_0x19e2db(0x10e)]],_0x2d9896[_0x19e2db(0x12d)]=_0x19e2db(0x150),_0x2d9896[_0x19e2db(0x115)]=_0x503dee[_0x19e2db(0x102)],_0x2d9896[_0x19e2db(0x145)]=_0x503dee[_0x19e2db(0x134)],_0x2d9896[_0x19e2db(0x12b)]=[_0x503dee[_0x19e2db(0x141)]];const _0x3f9e94={};_0x3f9e94[_0x19e2db(0x13e)]=_0x2d9896,_0x2da0a4[_0x19e2db(0x10a)](_0x19e2db(0x104),_0x3f9e94,async _0x317829=>getSystemSettings({..._0x317829[_0x19e2db(0x112)],'user':u(_0x317829)},_0x4e9cf5)),_0x2da0a4[_0x19e2db(0x140)](_0x503dee[_0x19e2db(0x125)],{'schema':{'tags':[_0x503dee[_0x19e2db(0x13f)],_0x503dee[_0x19e2db(0x10e)]],'summary':_0x503dee[_0x19e2db(0x123)],'description':_0x503dee[_0x19e2db(0x10b)],'access':_0x503dee[_0x19e2db(0x134)],'permissions':[_0x503dee[_0x19e2db(0x119)]],'body':systemSchemas[_0x19e2db(0x107)]}},async _0x4852b6=>updateSystemSettings({..._0x4852b6[_0x19e2db(0x112)],'patch':_0x4852b6[_0x19e2db(0x12f)],'user':u(_0x4852b6)},_0x4e9cf5)),_0x2da0a4[_0x19e2db(0x10a)](_0x503dee[_0x19e2db(0x109)],{'schema':{'tags':[_0x19e2db(0x14f),_0x503dee[_0x19e2db(0x10e)]],'summary':_0x19e2db(0x129),'description':_0x503dee[_0x19e2db(0x113)],'access':_0x19e2db(0x13d),'permissions':[_0x19e2db(0x135)],'params':systemSchemas[_0x19e2db(0x12a)]}},async _0x1a2789=>getSystemLog({..._0x1a2789[_0x19e2db(0x118)],..._0x1a2789[_0x19e2db(0x112)],'user':u(_0x1a2789)},_0x4e9cf5)),_0x2da0a4[_0x19e2db(0x10a)](_0x503dee[_0x19e2db(0x131)],{'schema':{'tags':[_0x19e2db(0x14f),_0x503dee[_0x19e2db(0x10e)]],'summary':_0x503dee[_0x19e2db(0x10d)],'description':_0x503dee[_0x19e2db(0x122)],'access':_0x503dee[_0x19e2db(0x134)],'permissions':[_0x503dee[_0x19e2db(0x100)]]}},async _0xb32540=>getAuditLog({..._0xb32540[_0x19e2db(0x118)],'user':u(_0xb32540)},_0x4e9cf5));const _0x58cec6={};_0x58cec6[_0x19e2db(0x146)]=[_0x503dee[_0x19e2db(0x13f)],_0x19e2db(0x117)],_0x58cec6[_0x19e2db(0x12d)]=_0x503dee[_0x19e2db(0x130)],_0x58cec6[_0x19e2db(0x115)]=_0x503dee[_0x19e2db(0x12e)],_0x58cec6[_0x19e2db(0x145)]=_0x503dee[_0x19e2db(0x134)],_0x58cec6[_0x19e2db(0x12b)]=[_0x503dee[_0x19e2db(0x101)]];const _0x1102b9={};_0x1102b9[_0x19e2db(0x13e)]=_0x58cec6,_0x2da0a4[_0x19e2db(0x10a)](_0x19e2db(0x147),_0x1102b9,async _0x52c2e2=>checkSystem({'user':u(_0x52c2e2)},_0x4e9cf5));const _0x26f084={};_0x26f084[_0x19e2db(0x146)]=[_0x503dee[_0x19e2db(0x13f)],_0x503dee[_0x19e2db(0x10e)]],_0x26f084[_0x19e2db(0x12d)]=_0x19e2db(0x13b),_0x26f084[_0x19e2db(0x115)]=_0x503dee[_0x19e2db(0x137)],_0x26f084[_0x19e2db(0x145)]=_0x503dee[_0x19e2db(0x134)],_0x26f084[_0x19e2db(0x12b)]=[_0x503dee[_0x19e2db(0x11b)]];const _0x1c73ad={};_0x1c73ad[_0x19e2db(0x13e)]=_0x26f084,_0x2da0a4[_0x19e2db(0x10a)](_0x19e2db(0x14e),_0x1c73ad,async _0x1b4925=>getApiList({'user':u(_0x1b4925)},_0x4e9cf5));};}
1
+ const f=r;import{getSystemSettings}from'./services/get-system-settings.js';import{updateSystemSettings}from'./services/update-system-settings.js';import{getAuditLog}from'./services/get-audit-log.js';import{checkSystem}from'./services/check-system.js';import{getApiList}from'./services/get-api-list.js';function g(){const Q=['user','/api/dictionary/:name','fcore','params','Update\x20platform\x20dictionary','get','Get\x20access\x20rules','system:access','post','admin','accessTarget','access','body','/api/system/settings','system','Updates\x20system\x20settings\x20using\x20flat\x20dot-notation\x20keys.','settings','logger','Get\x20audit\x20log','/api/system/check','apiListQuery','query'];g=function(){return Q;};return g();}import{getSystemLog}from'./services/get-system-log.js';import{getDictionary}from'./services/get-dictionary.js';import{updateDictionary}from'./services/update-dictionary.js';import{getAccess}from'./services/get-access.js';import{setAccess}from'./services/set-access.js';function r(n,k){n=n-0xa9;const Z=g();let K=Z[n];return K;}import{systemSchemas}from'./schema.js';const u=n=>n[f(0xa9)];export function systemRoutes(n,k=new Map()){return async Z=>{const R=r;Z['get'](R(0xaa),{'schema':{'tags':[R(0xab),'system'],'summary':'Get\x20platform\x20dictionary','description':'Returns\x20a\x20registered\x20platform\x20dictionary\x20by\x20name.','access':'user','permissions':['system:dictionaries'],'params':systemSchemas['dictionaryName']}},async d=>({'items':await getDictionary({...d[R(0xac)],'user':u(d)},n)})),Z['post'](R(0xaa),{'schema':{'tags':[R(0xab),'system'],'summary':R(0xad),'description':'Replaces\x20the\x20items\x20of\x20a\x20registered\x20platform\x20dictionary.','access':R(0xa9),'permissions':['system:dictionaries'],'params':systemSchemas['dictionaryName'],'body':systemSchemas['dictionaryItems']}},async d=>updateDictionary({...d['params'],...d['body'],'user':u(d)},n));const K=async d=>getAccess({...d[R(0xac)],'user':u(d)},n);Z[R(0xae)]('/api/access/:type/:id',{'schema':{'tags':['fcore','system'],'summary':R(0xaf),'description':'Returns\x20direct\x20and\x20role-based\x20access\x20rules\x20for\x20a\x20user\x20or\x20role.','access':'admin','permissions':[R(0xb0)],'params':systemSchemas['accessTarget']}},K),Z[R(0xb1)]('/api/access/:type/:id',{'schema':{'tags':['fcore','system'],'summary':'Set\x20access\x20rules','description':'Replaces\x20direct\x20access\x20rules\x20for\x20a\x20user\x20or\x20role.','access':R(0xb2),'permissions':['system:access'],'params':systemSchemas[R(0xb3)],'body':systemSchemas[R(0xb4)]}},async d=>setAccess({...d['params'],...d[R(0xb5)],'user':u(d)},n)),Z[R(0xae)](R(0xb6),{'schema':{'tags':[R(0xab),'system'],'summary':'Get\x20system\x20settings','description':'Returns\x20system\x20settings\x20as\x20nested\x20JSON.','access':R(0xb2),'permissions':['system:settings']}},async d=>getSystemSettings({...d['params'],'user':u(d)},n)),Z['post']('/api/system/settings',{'schema':{'tags':['fcore',R(0xb7)],'summary':'Update\x20system\x20settings','description':R(0xb8),'access':'admin','permissions':['system:settings'],'body':systemSchemas[R(0xb9)]}},async d=>updateSystemSettings({...d[R(0xac)],'patch':d['body'],'user':u(d)},n)),Z['get']('/api/system/logger',{'schema':{'tags':['fcore','system'],'summary':'Get\x20system\x20log','description':'Returns\x20system\x20logger\x20entries\x20for\x20the\x20requested\x20path.','access':'user','permissions':['system:logs'],'querystring':systemSchemas[R(0xba)]}},async(d,J)=>{const {contentType:B,body:l}=await getSystemLog({...d['query'],'user':u(d)},n);return J['type'](B)['send'](l);}),Z['get']('/api/system/audit',{'schema':{'tags':[R(0xab),'system'],'summary':R(0xbb),'description':'Returns\x20the\x20system\x20audit\x20log\x20entries.','access':'user','permissions':['system:audit']}},async d=>getAuditLog({...d['query'],'user':u(d)},n)),Z['get'](R(0xbc),{'schema':{'tags':['fcore','system'],'summary':'Check\x20system\x20health','description':'Checks\x20the\x20availability\x20of\x20system\x20dependencies.','access':'user','permissions':['system:check']}},async d=>checkSystem({'user':u(d)},n)),Z['get']('/api/system/list',{'schema':{'tags':['fcore','system'],'summary':'List\x20APIs','description':'Returns\x20the\x20list\x20of\x20registered\x20platform\x20APIs.','access':'admin','permissions':[],'querystring':systemSchemas[R(0xbd)]}},async d=>getApiList({'user':u(d),'apiRoutes':k,...d[R(0xbe)]},n));};}
@@ -3,12 +3,34 @@ export declare const systemSchemas: {
3
3
  dictionaryName: import("@sinclair/typebox").TObject<{
4
4
  name: import("@sinclair/typebox").TString;
5
5
  }>;
6
+ dictionaryItems: import("@sinclair/typebox").TObject<{
7
+ items: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
8
+ id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber]>>;
9
+ code: import("@sinclair/typebox").TString;
10
+ name: import("@sinclair/typebox").TString;
11
+ parentId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>>;
12
+ }>>;
13
+ }>;
14
+ accessTarget: import("@sinclair/typebox").TObject<{
15
+ type: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user">, import("@sinclair/typebox").TLiteral<"role">]>;
16
+ id: import("@sinclair/typebox").TString;
17
+ }>;
18
+ access: import("@sinclair/typebox").TObject<{
19
+ permissions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
20
+ access: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
21
+ resource: import("@sinclair/typebox").TString;
22
+ actions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
23
+ }>>>;
24
+ }>;
25
+ apiListQuery: import("@sinclair/typebox").TObject<{
26
+ format: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"short">, import("@sinclair/typebox").TLiteral<"extended">]>>;
27
+ }>;
6
28
  settingsEntity: import("@sinclair/typebox").TObject<{
7
29
  entity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
8
30
  }>;
9
31
  settings: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>;
10
32
  logger: import("@sinclair/typebox").TObject<{
11
- "*": import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
33
+ path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
12
34
  }>;
13
35
  };
14
36
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/modules/system/schema.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU,qCAIrB,CAAC;AAEH,eAAO,MAAM,aAAa;IACxB,cAAc;;;IAGd,cAAc;;;IACd,QAAQ;IACR,MAAM;;;CACP,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/modules/system/schema.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU,qCAIrB,CAAC;AAEH,eAAO,MAAM,aAAa;IACxB,cAAc;;;IAGd,eAAe;;;;;;;;IAef,YAAY;;;;IAIZ,MAAM;;;;;;;IAaN,YAAY;;;IAGZ,cAAc;;;IACd,QAAQ;IACR,MAAM;;;CAKP,CAAC"}
@@ -1 +1 @@
1
- const _0x23ddcc=_0x12a0;(function(_0x4cbcbd,_0x583aa3){const _0x52b9db=_0x12a0,_0x1cc125=_0x4cbcbd();while(!![]){try{const _0x3845e6=-parseInt(_0x52b9db(0x119))/0x1*(-parseInt(_0x52b9db(0x116))/0x2)+-parseInt(_0x52b9db(0x111))/0x3+parseInt(_0x52b9db(0x115))/0x4*(-parseInt(_0x52b9db(0x11d))/0x5)+parseInt(_0x52b9db(0x11f))/0x6+-parseInt(_0x52b9db(0x117))/0x7+-parseInt(_0x52b9db(0x110))/0x8*(-parseInt(_0x52b9db(0x121))/0x9)+parseInt(_0x52b9db(0x11b))/0xa;if(_0x3845e6===_0x583aa3)break;else _0x1cc125['push'](_0x1cc125['shift']());}catch(_0xba90e2){_0x1cc125['push'](_0x1cc125['shift']());}}}(_0x4329,0xb0f6f));import{Type}from'@sinclair/typebox';const _0x1aeb7b={};function _0x4329(){const _0x440dc9=['name','^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$','Record','28szAZuZ','148qSyQOD','2159654ySjALo','String','10939epBwzt','Optional','14153600pWcRuS','pattern','453095clOJoP','Unknown','1462608ZKgFDX','maxLength','711378LhDMPs','Object','minLength','16geOaHM','2876988vYDGGq'];_0x4329=function(){return _0x440dc9;};return _0x4329();}_0x1aeb7b[_0x23ddcc(0x123)]=0x1,_0x1aeb7b[_0x23ddcc(0x120)]=0x80,_0x1aeb7b[_0x23ddcc(0x11c)]=_0x23ddcc(0x113);export const identifier=Type[_0x23ddcc(0x118)](_0x1aeb7b);function _0x12a0(_0x2a6c4a,_0x3403cb){_0x2a6c4a=_0x2a6c4a-0x110;const _0x432976=_0x4329();let _0x12a015=_0x432976[_0x2a6c4a];return _0x12a015;}const _0x4b16ed={};_0x4b16ed[_0x23ddcc(0x112)]=identifier;const _0x5a9a09={};_0x5a9a09[_0x23ddcc(0x123)]=0x1;const _0x4cbbae={};_0x4cbbae[_0x23ddcc(0x123)]=0x1;export const systemSchemas={'dictionaryName':Type[_0x23ddcc(0x122)](_0x4b16ed),'settingsEntity':Type[_0x23ddcc(0x122)]({'entity':Type[_0x23ddcc(0x11a)](identifier)}),'settings':Type[_0x23ddcc(0x114)](Type[_0x23ddcc(0x118)](_0x5a9a09),Type[_0x23ddcc(0x11e)]()),'logger':Type[_0x23ddcc(0x122)]({'*':Type[_0x23ddcc(0x11a)](Type[_0x23ddcc(0x118)](_0x4cbbae))})};
1
+ function r(n,k){n=n-0x13f;const Z=g();let K=Z[n];return K;}const n=r;import{Type}from'@sinclair/typebox';function g(){const k=['^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$','String','Union','Number','user','Object','^[A-Za-z0-9_-]+(?::[A-Za-z0-9_-]+)?$','Literal','extended'];g=function(){return k;};return g();}export const identifier=Type['String']({'minLength':0x1,'maxLength':0x80,'pattern':n(0x13f)});export const systemSchemas={'dictionaryName':Type['Object']({'name':identifier}),'dictionaryItems':Type['Object']({'items':Type['Array'](Type['Object']({'id':Type['Optional'](Type['Union']([Type['String'](),Type['Number']()])),'code':Type['String']({'minLength':0x1}),'name':Type[n(0x140)]({'minLength':0x1}),'parentId':Type['Optional'](Type[n(0x141)]([Type['String'](),Type[n(0x142)](),Type['Null']()]))},{'additionalProperties':!![]}))}),'accessTarget':Type['Object']({'type':Type['Union']([Type['Literal'](n(0x143)),Type['Literal']('role')]),'id':identifier}),'access':Type[n(0x144)]({'permissions':Type['Optional'](Type['Array'](Type[n(0x140)]({'minLength':0x1,'maxLength':0x80,'pattern':n(0x145)}))),'access':Type['Optional'](Type['Array'](Type['Object']({'resource':Type['String']({'minLength':0x1,'maxLength':0x80}),'actions':Type['Array'](Type[n(0x140)]({'minLength':0x1,'maxLength':0x80}),{'minItems':0x1})})))}),'apiListQuery':Type['Object']({'format':Type['Optional'](Type['Union']([Type[n(0x146)]('short'),Type['Literal'](n(0x147))]))}),'settingsEntity':Type[n(0x144)]({'entity':Type['Optional'](identifier)}),'settings':Type['Record'](Type['String']({'minLength':0x1}),Type['Unknown']()),'logger':Type[n(0x144)]({'path':Type['Optional'](Type[n(0x140)]({'maxLength':0x100,'pattern':'^[A-Za-z0-9_.\x5c-/]*$'}))})};
@@ -1 +1 @@
1
- {"version":3,"file":"check-system.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/check-system.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,WAAW,CAC/B,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;CACZ,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,CAiBd"}
1
+ {"version":3,"file":"check-system.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/check-system.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,WAAW,CAC/B,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;CACZ,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,CAcd"}
@@ -1 +1 @@
1
- (function(_0x47cbce,_0x318989){const _0x5dcef2=_0x4130,_0x12da6c=_0x47cbce();while(!![]){try{const _0x552f5f=parseInt(_0x5dcef2(0x177))/0x1+parseInt(_0x5dcef2(0x17b))/0x2*(parseInt(_0x5dcef2(0x172))/0x3)+parseInt(_0x5dcef2(0x165))/0x4*(-parseInt(_0x5dcef2(0x163))/0x5)+parseInt(_0x5dcef2(0x175))/0x6*(parseInt(_0x5dcef2(0x164))/0x7)+parseInt(_0x5dcef2(0x178))/0x8+-parseInt(_0x5dcef2(0x17c))/0x9+-parseInt(_0x5dcef2(0x16b))/0xa*(parseInt(_0x5dcef2(0x169))/0xb);if(_0x552f5f===_0x318989)break;else _0x12da6c['push'](_0x12da6c['shift']());}catch(_0x5c2781){_0x12da6c['push'](_0x12da6c['shift']());}}}(_0x12f1,0x3fea9));function _0x4130(_0x46012d,_0x39dc4a){_0x46012d=_0x46012d-0x163;const _0x12f1a0=_0x12f1();let _0x413005=_0x12f1a0[_0x46012d];return _0x413005;}import{requireAdmin}from'../../utils/require-admin.js';export async function checkSystem(_0x8b1045,_0x40c8dd){const _0x873853=_0x4130,_0xac69f1={};_0xac69f1[_0x873853(0x17a)]=_0x873853(0x170),_0xac69f1[_0x873853(0x174)]=_0x873853(0x179),_0xac69f1[_0x873853(0x166)]=function(_0x146172,_0x3bccdd){return _0x146172===_0x3bccdd;},_0xac69f1[_0x873853(0x173)]=_0x873853(0x16d),_0xac69f1[_0x873853(0x176)]=_0x873853(0x16a);const _0x12909e=_0xac69f1;requireAdmin(_0x8b1045[_0x873853(0x171)],_0x12909e[_0x873853(0x17a)]);const [_0x4f6c1b,_0x4a28e4]=await Promise[_0x873853(0x168)]([_0x40c8dd['pg'][_0x873853(0x167)](_0x12909e[_0x873853(0x174)]),_0x40c8dd[_0x873853(0x16f)][_0x873853(0x16c)]()]);return{'status':_0x12909e[_0x873853(0x166)](_0x4f6c1b[_0x873853(0x16e)],_0x12909e[_0x873853(0x173)])&&_0x4a28e4[_0x873853(0x16e)]===_0x873853(0x16d)?'ok':_0x12909e[_0x873853(0x176)],'pg':_0x4f6c1b[_0x873853(0x16e)],'redis':_0x4a28e4[_0x873853(0x16e)]};}function _0x12f1(){const _0x7932e1=['status','redis','system:check','user','3FmAklI','NoPGw','iImFL','5922ZUffeL','haiBi','491652eJqAim','3469112YJDSDB','SELECT\x201','GETRn','266566SMolcn','2804049xWQErb','920150arBuFo','1498fneRJR','8cRmIMb','PfHCj','query','allSettled','11TVaVjF','degraded','3283700OjUXPF','ping','fulfilled'];_0x12f1=function(){return _0x7932e1;};return _0x12f1();}
1
+ export async function checkSystem(n,k){const d=r,[Z,K]=await Promise['allSettled']([k['pg']['query']('SELECT\x201'),k['redis']['ping']()]);return{'status':Z['status']===d(0x6a)&&K['status']===d(0x6a)?'ok':'degraded','pg':Z['status'],'redis':K['status']};}function r(n,k){n=n-0x6a;const Z=g();let K=Z[n];return K;}function g(){const J=['fulfilled'];g=function(){return J;};return g();}
@@ -0,0 +1,15 @@
1
+ import type { AppContext, User } from "../../../context.js";
2
+ export interface AccessRecord {
3
+ resource: string | null;
4
+ actions: string[] | null;
5
+ role: string | null;
6
+ }
7
+ export declare function getAccess(params: {
8
+ type: "user" | "role";
9
+ id: string;
10
+ user: User;
11
+ }, ctx: AppContext): Promise<{
12
+ access: AccessRecord[];
13
+ resources: string[];
14
+ }>;
15
+ //# sourceMappingURL=get-access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-access.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,EACzD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAwB1D"}
@@ -0,0 +1 @@
1
+ function r(n,k){n=n-0x170;const Z=g();let K=Z[n];return K;}function g(){const l=['type','\x0a\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20ra.resource,\x20ra.actions,\x20ra.role_id\x20AS\x20role\x0a\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.role_access\x20ra\x0a\x20\x20\x20\x20\x20\x20\x20\x20LEFT\x20JOIN\x20admin.user_roles\x20ur\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20ur.role_id\x20=\x20ra.role_id\x20AND\x20ur.user_uid\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20ra.user_uid\x20=\x20$1\x20OR\x20ur.user_uid\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20','\x0a\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20ra.resource,\x20ra.actions,\x20ra.role_id\x20AS\x20role\x0a\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.role_access\x20ra\x0a\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20ra.role_id\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20','filter'];g=function(){return l;};return g();}export async function getAccess(n,k){const B=r,Z=n[B(0x170)]==='user'?B(0x171):B(0x172),K=await k['pg']['query'](Z,[n['id']]),d=[...new Set(K['rows']['map'](J=>J['resource'])[B(0x173)](J=>J!==null))];return{'access':K['rows'],'resources':d};}
@@ -2,7 +2,10 @@
2
2
  * Implements the get API list application service for the System module.
3
3
  */
4
4
  import type { AppContext, User } from "../../../context.js";
5
+ import type { ApiRoute } from "../../../type.js";
5
6
  export declare function getApiList(params: {
6
7
  user: User;
7
- }, ctx: AppContext): Promise<string[]>;
8
+ apiRoutes: ReadonlyMap<string, ApiRoute>;
9
+ format?: "short" | "extended";
10
+ }, ctx: AppContext): Promise<ApiRoute[] | string[]>;
8
11
  //# sourceMappingURL=get-api-list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-api-list.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-api-list.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,UAAU,CAC9B,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;CACZ,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnB"}
1
+ {"version":3,"file":"get-api-list.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-api-list.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAC;AAEhE,wBAAsB,UAAU,CAC9B,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAC/B,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,CAWhC"}
@@ -1 +1 @@
1
- function _0x12d8(_0x1ad52a,_0x4bbdd0){_0x1ad52a=_0x1ad52a-0xfd;var _0x5786f6=_0x5786();var _0x12d865=_0x5786f6[_0x1ad52a];return _0x12d865;}function _0x5786(){var _0x4f1786=['1353272hakdeS','/api/system/check','157BSiTfz','2169520TWyzaZ','icDsx','5284BuMiCg','/api/login','1660245aFGDKI','ofcSg','/api/logout','lCFYK','QZYcF','/api/templates','/api/dictionaries','/files/*','3348576XhObqZ','system:api:read','/api/user','/api/resource/:resource/:id','/api/resource/:resource','XLZRd','1571292weaoCh','user','eEwKq','14UJpgnp','voGDT','INdFq','537798TeYEdf'];_0x5786=function(){return _0x4f1786;};return _0x5786();}(function(_0x5e73fe,_0x4891b9){var _0x5a6bbb=_0x12d8,_0x20a84b=_0x5e73fe();while(!![]){try{var _0x5afece=parseInt(_0x5a6bbb(0x10a))/0x1*(parseInt(_0x5a6bbb(0x10d))/0x2)+parseInt(_0x5a6bbb(0x101))/0x3+-parseInt(_0x5a6bbb(0x108))/0x4+-parseInt(_0x5a6bbb(0x10f))/0x5+parseInt(_0x5a6bbb(0x107))/0x6*(parseInt(_0x5a6bbb(0x104))/0x7)+parseInt(_0x5a6bbb(0x10b))/0x8+-parseInt(_0x5a6bbb(0x117))/0x9;if(_0x5afece===_0x4891b9)break;else _0x20a84b['push'](_0x20a84b['shift']());}catch(_0xdfe9b0){_0x20a84b['push'](_0x20a84b['shift']());}}}(_0x5786,0x549d7));import{requireAdmin}from'../../utils/require-admin.js';export async function getApiList(_0x51d4f1,_0x5b930d){var _0x5f057f=_0x12d8,_0x4cf0ba={'XLZRd':function(_0x5a93ab,_0x3fa8dd,_0x3fa000){return _0x5a93ab(_0x3fa8dd,_0x3fa000);},'voGDT':_0x5f057f(0x118),'lCFYK':_0x5f057f(0xfd),'QZYcF':_0x5f057f(0xff),'ofcSg':_0x5f057f(0xfe),'eEwKq':_0x5f057f(0x115),'INdFq':_0x5f057f(0x116),'icDsx':_0x5f057f(0x109)};return _0x4cf0ba[_0x5f057f(0x100)](requireAdmin,_0x51d4f1[_0x5f057f(0x102)],_0x4cf0ba[_0x5f057f(0x105)]),[_0x5f057f(0x10e),_0x5f057f(0x111),_0x4cf0ba[_0x5f057f(0x112)],_0x4cf0ba[_0x5f057f(0x113)],_0x4cf0ba[_0x5f057f(0x110)],_0x4cf0ba[_0x5f057f(0x103)],_0x4cf0ba[_0x5f057f(0x106)],_0x5f057f(0x114),_0x4cf0ba[_0x5f057f(0x10c)]];}
1
+ function r(n,k){n=n-0x157;const Z=g();let K=Z[n];return K;}function g(){const f=['values','sort','format','map'];g=function(){return f;};return g();}export async function getApiList(n,k){const l=r,Z=[...n['apiRoutes'][l(0x157)]()][l(0x158)]((K,d)=>(K['endpoint']+'\x20'+K['method'])['localeCompare'](d['endpoint']+'\x20'+d['method']));if(n[l(0x159)]!=='short')return Z;return Z[l(0x15a)](({method:K,endpoint:d,access:J,permissions:B})=>K+'\x20'+d);}
@@ -1 +1 @@
1
- {"version":3,"file":"get-audit-log.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-audit-log.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,WAAW,CAC/B,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,CAgBd"}
1
+ {"version":3,"file":"get-audit-log.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-audit-log.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,WAAW,CAC/B,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,CAcd"}
@@ -1 +1 @@
1
- function _0x16c0(_0x524c71,_0xbce4e2){_0x524c71=_0x524c71-0xdb;const _0x29661b=_0x2966();let _0x16c026=_0x29661b[_0x524c71];return _0x16c026;}(function(_0x4fb78f,_0x378ed3){const _0x302c89=_0x16c0,_0x20e620=_0x4fb78f();while(!![]){try{const _0x1f8f95=parseInt(_0x302c89(0xe1))/0x1+parseInt(_0x302c89(0xe5))/0x2+parseInt(_0x302c89(0xe0))/0x3*(-parseInt(_0x302c89(0xdc))/0x4)+parseInt(_0x302c89(0xe6))/0x5+parseInt(_0x302c89(0xe4))/0x6+parseInt(_0x302c89(0xdf))/0x7+-parseInt(_0x302c89(0xdb))/0x8;if(_0x1f8f95===_0x378ed3)break;else _0x20e620['push'](_0x20e620['shift']());}catch(_0x4f3f3b){_0x20e620['push'](_0x20e620['shift']());}}}(_0x2966,0x86b10));function _0x2966(){const _0x245cbd=['user','limit','sHWvU','8121136DRtpuv','4109284BbqQFN','query','audit:read','3311700WtFkuC','3ZrQDfx','395277oBekmC','SELECT\x20*\x20FROM\x20admin.audit_log\x20ORDER\x20BY\x20id\x20DESC\x20LIMIT\x20$1\x20OFFSET\x20$2','bWltg','6254928CWGBUK','567418cHAUOj','1997925XAzEde','QZQhy','ZkPIE','rows','max','min','page'];_0x2966=function(){return _0x245cbd;};return _0x2966();}import{requireAdmin}from'../../utils/require-admin.js';export async function getAuditLog(_0x2a271e,_0x13d0db){const _0x1f9038=_0x16c0,_0x44cb4f={};_0x44cb4f[_0x1f9038(0xef)]=_0x1f9038(0xde),_0x44cb4f[_0x1f9038(0xe8)]=function(_0x54c297,_0x45ca05){return _0x54c297*_0x45ca05;},_0x44cb4f[_0x1f9038(0xe3)]=function(_0x411811,_0x85d557){return _0x411811-_0x85d557;},_0x44cb4f[_0x1f9038(0xe7)]=_0x1f9038(0xe2);const _0x2b6ac8=_0x44cb4f;requireAdmin(_0x2a271e[_0x1f9038(0xed)],_0x2b6ac8[_0x1f9038(0xef)]);const _0x512701=Math[_0x1f9038(0xeb)](Math[_0x1f9038(0xea)](_0x2a271e[_0x1f9038(0xee)]??0x32,0x1),0xc8),_0x1e5e89=_0x2b6ac8[_0x1f9038(0xe8)](Math[_0x1f9038(0xea)](_0x2b6ac8[_0x1f9038(0xe3)](_0x2a271e[_0x1f9038(0xec)]??0x1,0x1),0x0),_0x512701),_0x357ab5=await _0x13d0db['pg'][_0x1f9038(0xdd)](_0x2b6ac8[_0x1f9038(0xe7)],[_0x512701,_0x1e5e89]),_0x25eccf={};return _0x25eccf[_0x1f9038(0xe9)]=_0x357ab5[_0x1f9038(0xe9)],_0x25eccf[_0x1f9038(0xec)]=_0x2a271e[_0x1f9038(0xec)]??0x1,_0x25eccf[_0x1f9038(0xee)]=_0x512701,_0x25eccf;}
1
+ export async function getAuditLog(n,k){const J=r,Z=Math['min'](Math['max'](n['limit']??0x32,0x1),0xc8),K=Math[J(0x67)]((n['page']??0x1)-0x1,0x0)*Z,d=await k['pg'][J(0x68)]('SELECT\x20*\x20FROM\x20admin.audit_log\x20ORDER\x20BY\x20id\x20DESC\x20LIMIT\x20$1\x20OFFSET\x20$2',[Z,K]);return{'rows':d['rows'],'page':n['page']??0x1,'limit':Z};}function r(n,k){n=n-0x67;const Z=g();let K=Z[n];return K;}function g(){const B=['max','query'];g=function(){return B;};return g();}
@@ -1 +1 @@
1
- function _0xf179(){var _0x5b3862=['810052nKHZtr','name','612212BTBMmy','3632619ExkAjC','8656848oHrTwJ','3548360iksKDG','6288632zHlirj','get','dictionary','4UnKtLn','7002600EWRSIt'];_0xf179=function(){return _0x5b3862;};return _0xf179();}(function(_0x3828bf,_0x178d88){var _0x213e92=_0xe853,_0x21c570=_0x3828bf();while(!![]){try{var _0x1279bd=parseInt(_0x213e92(0x9e))/0x1+parseInt(_0x213e92(0xa0))/0x2+-parseInt(_0x213e92(0xa1))/0x3*(-parseInt(_0x213e92(0x9c))/0x4)+-parseInt(_0x213e92(0xa3))/0x5+-parseInt(_0x213e92(0x9d))/0x6+-parseInt(_0x213e92(0xa4))/0x7+parseInt(_0x213e92(0xa2))/0x8;if(_0x1279bd===_0x178d88)break;else _0x21c570['push'](_0x21c570['shift']());}catch(_0xa9d0f8){_0x21c570['push'](_0x21c570['shift']());}}}(_0xf179,0x9ac85));function _0xe853(_0xacfdfe,_0x2741f2){_0xacfdfe=_0xacfdfe-0x9a;var _0xf1792c=_0xf179();var _0xe85365=_0xf1792c[_0xacfdfe];return _0xe85365;}export async function getDictionary(_0x5c30a4,_0x596fe8){var _0x4f726b=_0xe853;return _0x596fe8[_0x4f726b(0x9b)][_0x4f726b(0x9a)](_0x5c30a4[_0x4f726b(0x9f)]);}
1
+ export async function getDictionary(n,k){return k['dictionary']['get'](n['name']);}
@@ -1,6 +1,10 @@
1
- /**
2
- * Implements the get system log application service for its module.
3
- */
4
- import type { AppContext } from '../../../context.js';
5
- export declare function getSystemLog(params: any, ctx: AppContext): Promise<never>;
1
+ import type { AppContext, User } from "../../../context.js";
2
+ export interface LogResult {
3
+ contentType: string;
4
+ body: string;
5
+ }
6
+ export declare function getSystemLog(params: {
7
+ path?: string;
8
+ user: User;
9
+ }, ctx: AppContext): Promise<LogResult>;
6
10
  //# sourceMappingURL=get-system-log.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-system-log.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-system-log.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,wBAAsB,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAE/E"}
1
+ {"version":3,"file":"get-system-log.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-system-log.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAc5D,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,EACrC,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,SAAS,CAAC,CA0CpB"}
@@ -1 +1 @@
1
- (function(_0x1030b5,_0x252bec){var _0x35640b=_0x2c96,_0x52a031=_0x1030b5();while(!![]){try{var _0x162e1d=parseInt(_0x35640b(0x6c))/0x1+parseInt(_0x35640b(0x72))/0x2*(-parseInt(_0x35640b(0x6f))/0x3)+-parseInt(_0x35640b(0x70))/0x4*(-parseInt(_0x35640b(0x6b))/0x5)+parseInt(_0x35640b(0x74))/0x6+parseInt(_0x35640b(0x71))/0x7*(parseInt(_0x35640b(0x6e))/0x8)+-parseInt(_0x35640b(0x73))/0x9+-parseInt(_0x35640b(0x6a))/0xa;if(_0x162e1d===_0x252bec)break;else _0x52a031['push'](_0x52a031['shift']());}catch(_0x19b99c){_0x52a031['push'](_0x52a031['shift']());}}}(_0x2f30,0x8ca09));function _0x2f30(){var _0x37470b=['24yLYVFp','33OhrLwI','2204gTBVCU','1190665ipiEkG','57366yhYRlJ','9352008TyTAxz','4486830WOsvSD','OECcq','6147740hQGRCH','1715Tnlvqn','1098325VUBfMt','File\x20logger\x20backend'];_0x2f30=function(){return _0x37470b;};return _0x2f30();}import{unsupported}from'../../utils/unsupported.js';function _0x2c96(_0x183efb,_0x1f910b){_0x183efb=_0x183efb-0x69;var _0x2f3011=_0x2f30();var _0x2c9648=_0x2f3011[_0x183efb];return _0x2c9648;}export async function getSystemLog(_0x58eadc,_0x36a68b){var _0x3212ff=_0x2c96,_0x370727={'OECcq':function(_0x5f3dbd,_0x4f03df){return _0x5f3dbd(_0x4f03df);}};return _0x370727[_0x3212ff(0x69)](unsupported,_0x3212ff(0x6d));}
1
+ function g(){const b=['resolve','file','isDirectory','mtime','toISOString','text/html;\x20charset=utf-8','?path=','directory','</a></li>','join','</title></head>\x0a<body>\x0a<h1>','\x0a</ul>\x0a</body>\x0a</html>','replace','&gt;','&quot;','split','some','Invalid\x20log\x20path','alloc','concat','utf8','slice','reverse'];g=function(){return b;};return g();}import n from'node:fs/promises';import k from'node:path';import{NotFoundError,ValidationError}from'../../../errors.js';const LOGS_ROOT=k['resolve'](process['cwd'](),'logs'),TAIL_LINES=0x64;function r(n,k){n=n-0x8d;const Z=g();let K=Z[n];return K;}export async function getSystemLog(Z,K){const I=r,d=normalizePath(Z['path']),J=k[I(0x8d)](LOGS_ROOT,d);if(J!==LOGS_ROOT&&!J['startsWith'](LOGS_ROOT+k['sep']))throw new ValidationError('Invalid\x20log\x20path');const B=await n['stat'](J)['catch'](()=>null);if(!B)throw new NotFoundError('Log\x20path\x20not\x20found');if(B['isDirectory']()){const f=await n['readdir'](J,{'withFileTypes':!![]}),R=await Promise['all'](f['map'](async Q=>{const O=I,a=await n['stat'](k['join'](J,Q['name']));return{'name':Q['name'],'path':d?d+'/'+Q['name']:Q['name'],'type':Q['isDirectory']()?'directory':O(0x8e),'size':Q[O(0x8f)]()?undefined:a['size'],'modified':a[O(0x90)][O(0x91)]()};}));R['sort']((Q,H)=>Q['name']['localeCompare'](H['name']));if(d){const Q=d['split']('/')['slice'](0x0,-0x1)['join']('/');R['unshift']({'name':'..','path':Q,'type':'directory'});}return{'contentType':I(0x92),'body':renderDirectory(d,R)};}const l=await tailFile(J,TAIL_LINES);return{'contentType':'text/plain;\x20charset=utf-8','body':l['join']('\x0a')};}function renderDirectory(Z,K){const p=r,d=K['map'](B=>{const m=r,l=m(0x93)+encodeURIComponent(B['path']),f=B['type']===m(0x94)?B['name']+'/':B['name'];return'<li><a\x20href=\x22'+l+'\x22>'+escapeHtml(f)+m(0x95);})[p(0x96)]('\x0a'),J=escapeHtml('logs/'+Z);return'<!DOCTYPE\x20html>\x0a<html>\x0a<head><meta\x20charset=\x22utf-8\x22><title>'+J+p(0x97)+J+'</h1>\x0a<ul>\x0a'+d+p(0x98);}function escapeHtml(Z){const C=r;return Z['replace'](/&/g,'&amp;')[C(0x99)](/</g,'&lt;')['replace'](/>/g,C(0x9a))['replace'](/"/g,C(0x9b));}function normalizePath(Z){const T=r,K=(Z??'')[T(0x99)](/\\/g,'/')[T(0x99)](/^\/+|\/+$/g,'');if(K[T(0x9c)]('/')[T(0x9d)](d=>d==='..'))throw new ValidationError(T(0x9e));return K;}async function tailFile(Z,K){const c=r,d=await n['open'](Z,'r');try{const {size:J}=await d['stat'](),B=0x40*0x400;let l=J,f=Buffer['alloc'](0x0),R=0x0;while(l>0x0&&R<=K){const a=Math['min'](B,l);l-=a;const H=Buffer[c(0x9f)](a);await d['read'](H,0x0,a,l),f=Buffer[c(0xa0)]([H,f]),R+=countNewlines(H);}const Q=f['toString'](c(0xa1))['split']('\x0a')['filter'](A=>A['length']>0x0);return Q[c(0xa2)](-K)[c(0xa3)]();}finally{await d['close']();}}function countNewlines(Z){let K=0x0;for(const d of Z){if(d===0xa)K++;}return K;}
@@ -1 +1 @@
1
- {"version":3,"file":"get-system-settings.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-system-settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,iBAAiB,CACrC,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;CACZ,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAuBlC"}
1
+ {"version":3,"file":"get-system-settings.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-system-settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,iBAAiB,CACrC,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;CACZ,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAkBlC"}
@@ -1 +1 @@
1
- function _0x4e6c(_0x7f09b9,_0x42aa30){_0x7f09b9=_0x7f09b9-0x13f;const _0x4a1e23=_0x4a1e();let _0x4e6c95=_0x4a1e23[_0x7f09b9];return _0x4e6c95;}function _0x4a1e(){const _0x469752=['split','slice','query','9HqbiHv','reduce','value','23523fLyOML','345744ZOOoAB','12InSgkt','3148896WUlGzM','rows','user','118740kVbtUI','key','421557BHkmft','\x0a\x20\x20\x20\x20\x20\x20SELECT\x20key,\x20value\x0a\x20\x20\x20\x20\x20\x20FROM\x20admin.settings\x0a\x20\x20\x20\x20\x20\x20WHERE\x20resource\x20=\x20\x27system\x27\x20AND\x20resource_id\x20IS\x20NULL\x0a\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20key\x0a\x20\x20\x20\x20','800275bdWsgw','TqlVq','system:settings:read','576060kOXgqW'];_0x4a1e=function(){return _0x469752;};return _0x4a1e();}(function(_0x16c74f,_0x56a51e){const _0x4f472b=_0x4e6c,_0x49e6d8=_0x16c74f();while(!![]){try{const _0x529f09=-parseInt(_0x4f472b(0x152))/0x1+-parseInt(_0x4f472b(0x13f))/0x2+-parseInt(_0x4f472b(0x146))/0x3+parseInt(_0x4f472b(0x140))/0x4*(parseInt(_0x4f472b(0x144))/0x5)+parseInt(_0x4f472b(0x14b))/0x6+-parseInt(_0x4f472b(0x148))/0x7+-parseInt(_0x4f472b(0x141))/0x8*(-parseInt(_0x4f472b(0x14f))/0x9);if(_0x529f09===_0x56a51e)break;else _0x49e6d8['push'](_0x49e6d8['shift']());}catch(_0x54612b){_0x49e6d8['push'](_0x49e6d8['shift']());}}}(_0x4a1e,0x1ac3b));import{requireAdmin}from'../../utils/require-admin.js';export async function getSystemSettings(_0x5e589a,_0x2c0abf){const _0x2d943e=_0x4e6c,_0x2da517={'TqlVq':function(_0x6c6316,_0x246267,_0x55930f){return _0x6c6316(_0x246267,_0x55930f);}};_0x2da517[_0x2d943e(0x149)](requireAdmin,_0x5e589a[_0x2d943e(0x143)],_0x2d943e(0x14a));const _0x498922=await _0x2c0abf['pg'][_0x2d943e(0x14e)](_0x2d943e(0x147));return _0x498922[_0x2d943e(0x142)][_0x2d943e(0x150)]((_0x3aaf11,_0x4cc7a6)=>{const _0x13458c=_0x2d943e,_0x21bb94=String(_0x4cc7a6[_0x13458c(0x145)])[_0x13458c(0x14c)]('.');let _0x39bd71=_0x3aaf11;for(const _0x12aa93 of _0x21bb94[_0x13458c(0x14d)](0x0,-0x1)){_0x39bd71[_0x12aa93]??={},_0x39bd71=_0x39bd71[_0x12aa93];}return _0x39bd71[_0x21bb94['at'](-0x1)]=_0x4cc7a6[_0x13458c(0x151)],_0x3aaf11;},{});}
1
+ function r(n,k){n=n-0xd2;const Z=g();let K=Z[n];return K;}export async function getSystemSettings(n,k){const Z=await k['pg']['query']('\x0a\x20\x20\x20\x20\x20\x20SELECT\x20key,\x20value\x0a\x20\x20\x20\x20\x20\x20FROM\x20admin.settings\x0a\x20\x20\x20\x20\x20\x20WHERE\x20resource\x20=\x20\x27system\x27\x20AND\x20resource_id\x20IS\x20NULL\x0a\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20key\x0a\x20\x20\x20\x20');return Z['rows']['reduce']((K,d)=>{const f=r,J=String(d['key'])[f(0xd2)]('.');let B=K;for(const l of J['slice'](0x0,-0x1)){B[l]??={},B=B[l];}return B[J['at'](-0x1)]=d['value'],K;},{});}function g(){const R=['split'];g=function(){return R;};return g();}
@@ -1 +1 @@
1
- function _0x4a7e(_0x13b089,_0x2a4040){_0x13b089=_0x13b089-0x1eb;var _0x38dc4a=_0x38dc();var _0x4a7e06=_0x38dc4a[_0x13b089];return _0x4a7e06;}function _0x38dc(){var _0x4da873=['4947975XqSKLu','24BLxPfL','2qYVTeP','2582190jptGOZ','list','7039076aVhTRv','1289643AKCiUZ','120381WsNezW','6zqBQuM','dictionary','11997657BbSEJz','10596750OCQWpX'];_0x38dc=function(){return _0x4da873;};return _0x38dc();}(function(_0x38f046,_0xd72dc7){var _0x1a989b=_0x4a7e,_0x134eaf=_0x38f046();while(!![]){try{var _0x2001a2=-parseInt(_0x1a989b(0x1f6))/0x1+parseInt(_0x1a989b(0x1f2))/0x2*(parseInt(_0x1a989b(0x1eb))/0x3)+-parseInt(_0x1a989b(0x1f5))/0x4+-parseInt(_0x1a989b(0x1f3))/0x5+-parseInt(_0x1a989b(0x1ec))/0x6*(-parseInt(_0x1a989b(0x1ee))/0x7)+-parseInt(_0x1a989b(0x1f1))/0x8*(-parseInt(_0x1a989b(0x1f0))/0x9)+parseInt(_0x1a989b(0x1ef))/0xa;if(_0x2001a2===_0xd72dc7)break;else _0x134eaf['push'](_0x134eaf['shift']());}catch(_0x65a788){_0x134eaf['push'](_0x134eaf['shift']());}}}(_0x38dc,0xdb0cc));export async function listDictionaries(_0x479c69,_0x505319){var _0x2f8557=_0x4a7e;return _0x505319[_0x2f8557(0x1ed)][_0x2f8557(0x1f4)]();}
1
+ export async function listDictionaries(n,k){return k['dictionary']['list']();}
@@ -0,0 +1,17 @@
1
+ import type { AppContext, User } from "../../../context.js";
2
+ import { type AccessRecord } from "./get-access.js";
3
+ type AccessInput = {
4
+ resource: string;
5
+ actions: string[];
6
+ };
7
+ export declare function setAccess(params: {
8
+ type: "user" | "role";
9
+ id: string;
10
+ access?: AccessInput[];
11
+ permissions?: string[];
12
+ user: User;
13
+ }, ctx: AppContext): Promise<{
14
+ access: AccessRecord[];
15
+ }>;
16
+ export {};
17
+ //# sourceMappingURL=set-access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-access.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/set-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D,KAAK,WAAW,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAoBF,wBAAsB,SAAS,CAC3B,MAAM,EAAE;IACJ,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,IAAI,CAAC;CACd,EACD,GAAG,EAAE,UAAU,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAiDrC"}
@@ -0,0 +1 @@
1
+ import{getAccess}from'./get-access.js';const CRUD_ACTIONS=['read','update','create','delete'];function g(){const H=['update','get','add','set','connect','user','DELETE\x20FROM\x20admin.role_access\x20WHERE\x20user_uid\x20=\x20$1\x20AND\x20role_id\x20IS\x20NULL','query','permissions','access','type','INSERT\x20INTO\x20admin.role_access\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(\x20resource,\x20actions,\x20user_uid,\x20created_by,\x20updated_by)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5)','resource'];g=function(){return H;};return g();}function r(n,k){n=n-0x8a;const Z=g();let K=Z[n];return K;}function permissionsToAccess(n){const Q=r,k=new Map();for(const Z of n){const [K,d]=Z['split'](':');if(!K)continue;const J=d==='edit'?Q(0x8a):d,B=k[Q(0x8b)](K)??new Set();for(const l of J?[J]:CRUD_ACTIONS)B[Q(0x8c)](l);k[Q(0x8d)](K,B);}return[...k]['map'](([f,R])=>({'resource':f,'actions':[...R]}));}export async function setAccess(n,k){const a=r,Z=await k['pg'][a(0x8e)]();try{await Z['query']('BEGIN');n['type']===a(0x8f)?await Z['query'](a(0x90),[n['id']]):await Z[a(0x91)]('DELETE\x20FROM\x20admin.role_access\x20WHERE\x20role_id\x20=\x20$1\x20AND\x20user_uid\x20IS\x20NULL',[n['id']]);const K=n[a(0x92)]?permissionsToAccess(n[a(0x92)]):n[a(0x93)]??[];for(const d of K){n[a(0x94)]===a(0x8f)?await Z['query'](a(0x95),[d[a(0x96)],d['actions'],n['id'],n['user']['id'],n['user']['id']]):await Z['query']('INSERT\x20INTO\x20admin.role_access\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(\x20resource,\x20actions,\x20role_id,\x20created_by,\x20updated_by)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5)',[d[a(0x96)],d['actions'],n['id'],n[a(0x8f)]['id'],n[a(0x8f)]['id']]);}await Z['query']('COMMIT');}catch(J){await Z[a(0x91)]('ROLLBACK');throw J;}finally{Z['release']();}return getAccess(n,k);}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Implements the update dictionary application service for the System module.
3
+ */
4
+ import type { AppContext, User } from "../../../context.js";
5
+ import type { DictionaryItem } from "../../../plugins/dictionary.js";
6
+ export declare function updateDictionary(params: {
7
+ name: string;
8
+ items: DictionaryItem[];
9
+ user: User;
10
+ }, ctx: AppContext): Promise<{
11
+ success: boolean;
12
+ }>;
13
+ //# sourceMappingURL=update-dictionary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-dictionary.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/update-dictionary.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,wBAAsB,gBAAgB,CACpC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,EAC7D,GAAG,EAAE,UAAU,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAI/B"}
@@ -0,0 +1 @@
1
+ function g(){var K=['put','items'];g=function(){return K;};return g();}function r(n,k){n=n-0x116;var Z=g();var K=Z[n];return K;}export async function updateDictionary(n,k){var Z=r;return await k['dictionary'][Z(0x116)](n['name'],n[Z(0x117)]),{'success':!![]};}
@@ -1 +1 @@
1
- {"version":3,"file":"update-system-settings.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/update-system-settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAG5D,wBAAsB,oBAAoB,CACxC,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC,CAuB5B"}
1
+ {"version":3,"file":"update-system-settings.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/update-system-settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAG5D,wBAAsB,oBAAoB,CACxC,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC,CAqB5B"}
@@ -1 +1 @@
1
- function _0x2726(){const _0x261c1d=['17508mQjAac','user','patch','Settings\x20patch\x20is\x20empty','query','16630jDxkMb','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.settings\x20(resource,\x20resource_id,\x20key,\x20value,\x20updated_by)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(\x27system\x27,\x20NULL,\x20$1,\x20$2::jsonb,\x20$3)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(resource,\x20resource_id,\x20key)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20DO\x20UPDATE\x20SET\x20value\x20=\x20EXCLUDED.value,\x20updated_by\x20=\x20EXCLUDED.updated_by,\x20updated_at\x20=\x20now()\x0a\x20\x20\x20\x20\x20\x20\x20\x20','340902gwlpxA','keys','122508ZQjhBW','vbozY','Invalid\x20setting\x20key:\x20','2877kpyDUd','length','312UDASfP','41833eNyijV','includes','stringify','entries','2443731GEdemq','trim','531471RIrYyy','success','system:settings:update','1724iPgJSL','9470dhtiQv','UWZzZ'];_0x2726=function(){return _0x261c1d;};return _0x2726();}(function(_0x539da6,_0x10ac94){const _0xa3db85=_0x20c5,_0x18bf46=_0x539da6();while(!![]){try{const _0x32d1b9=parseInt(_0xa3db85(0x199))/0x1+-parseInt(_0xa3db85(0x18d))/0x2+parseInt(_0xa3db85(0x197))/0x3+-parseInt(_0xa3db85(0x181))/0x4*(parseInt(_0xa3db85(0x189))/0x5)+parseInt(_0xa3db85(0x184))/0x6*(-parseInt(_0xa3db85(0x190))/0x7)+parseInt(_0xa3db85(0x192))/0x8*(-parseInt(_0xa3db85(0x18b))/0x9)+-parseInt(_0xa3db85(0x182))/0xa*(-parseInt(_0xa3db85(0x193))/0xb);if(_0x32d1b9===_0x10ac94)break;else _0x18bf46['push'](_0x18bf46['shift']());}catch(_0x2c3b77){_0x18bf46['push'](_0x18bf46['shift']());}}}(_0x2726,0xbd7fd));import{requireAdmin}from'../../utils/require-admin.js';function _0x20c5(_0x560271,_0x5c023f){_0x560271=_0x560271-0x180;const _0x2726b8=_0x2726();let _0x20c54b=_0x2726b8[_0x560271];return _0x20c54b;}import{ValidationError}from'../../../errors.js';export async function updateSystemSettings(_0x2ce161,_0x3383ee){const _0x52c7bb=_0x20c5,_0xf270e6={'UWZzZ':function(_0x294178,_0x5e47a2,_0x7e38eb){return _0x294178(_0x5e47a2,_0x7e38eb);},'vbozY':_0x52c7bb(0x187)};_0xf270e6[_0x52c7bb(0x183)](requireAdmin,_0x2ce161[_0x52c7bb(0x185)],_0x52c7bb(0x180));if(!Object[_0x52c7bb(0x18c)](_0x2ce161[_0x52c7bb(0x186)])[_0x52c7bb(0x191)])throw new ValidationError(_0xf270e6[_0x52c7bb(0x18e)]);for(const [_0x254d9,_0x32a5ab]of Object[_0x52c7bb(0x196)](_0x2ce161[_0x52c7bb(0x186)])){if(!_0x254d9[_0x52c7bb(0x198)]()||_0x254d9[_0x52c7bb(0x194)]('..'))throw new ValidationError(_0x52c7bb(0x18f)+_0x254d9);await _0x3383ee['pg'][_0x52c7bb(0x188)](_0x52c7bb(0x18a),[_0x254d9,JSON[_0x52c7bb(0x195)](_0x32a5ab),_0x2ce161[_0x52c7bb(0x185)]['id']]);}const _0xcf1d08={};return _0xcf1d08[_0x52c7bb(0x19a)]=!![],_0xcf1d08;}
1
+ import{ValidationError}from'../../../errors.js';export async function updateSystemSettings(n,k){const d=r;if(!Object[d(0xd1)](n['patch'])['length'])throw new ValidationError('Settings\x20patch\x20is\x20empty');for(const [Z,K]of Object['entries'](n['patch'])){if(!Z['trim']()||Z['includes']('..'))throw new ValidationError('Invalid\x20setting\x20key:\x20'+Z);await k['pg']['query']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.settings\x20(resource,\x20resource_id,\x20key,\x20value,\x20updated_by)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(\x27system\x27,\x20NULL,\x20$1,\x20$2::jsonb,\x20$3)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(resource,\x20resource_id,\x20key)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20DO\x20UPDATE\x20SET\x20value\x20=\x20EXCLUDED.value,\x20updated_by\x20=\x20EXCLUDED.updated_by,\x20updated_at\x20=\x20now()\x0a\x20\x20\x20\x20\x20\x20\x20\x20',[Z,JSON['stringify'](K),n['user']['id']]);}return{'success':!![]};}function r(n,k){n=n-0xd1;const Z=g();let K=Z[n];return K;}function g(){const J=['keys'];g=function(){return J;};return g();}
@@ -1 +1 @@
1
- (function(_0x5a3178,_0x24ba9f){var _0x5c45c5=_0x4d1d,_0x21d827=_0x5a3178();while(!![]){try{var _0x2944d2=-parseInt(_0x5c45c5(0x156))/0x1*(parseInt(_0x5c45c5(0x165))/0x2)+-parseInt(_0x5c45c5(0x163))/0x3*(-parseInt(_0x5c45c5(0x161))/0x4)+-parseInt(_0x5c45c5(0x155))/0x5*(parseInt(_0x5c45c5(0x154))/0x6)+parseInt(_0x5c45c5(0x162))/0x7+parseInt(_0x5c45c5(0x164))/0x8*(parseInt(_0x5c45c5(0x15b))/0x9)+-parseInt(_0x5c45c5(0x15a))/0xa*(-parseInt(_0x5c45c5(0x159))/0xb)+parseInt(_0x5c45c5(0x15c))/0xc*(parseInt(_0x5c45c5(0x160))/0xd);if(_0x2944d2===_0x24ba9f)break;else _0x21d827['push'](_0x21d827['shift']());}catch(_0x3de82f){_0x21d827['push'](_0x21d827['shift']());}}}(_0x2dcc,0x416ad));function _0x4d1d(_0x51f328,_0x1604b0){_0x51f328=_0x51f328-0x154;var _0x2dcc1e=_0x2dcc();var _0x4d1de9=_0x2dcc1e[_0x51f328];return _0x4d1de9;}function _0x2dcc(){var _0x14374e=['540cXDzkP','522EssYde','12ZYNpop','type','admin','Ntutz','1076296pCBqsJ','316KYkDeg','1274847IvZeHh','12234TbHtQH','14248lrYwLa','7606FZzMKf','197466CJvgHc','65dRZQIr','133eMZMVt','Admin\x20access\x20required','User\x20required','104137ROdMNk'];_0x2dcc=function(){return _0x14374e;};return _0x2dcc();}import{ForbiddenError}from'../../errors.js';export function requireAdmin(_0x272e17,_0x150783){var _0x395d25=_0x4d1d,_0x5db33f={};_0x5db33f[_0x395d25(0x15f)]=_0x395d25(0x15e);var _0x4d9ae2=_0x5db33f;if(!_0x272e17)throw new ForbiddenError(_0x395d25(0x158));if(_0x272e17[_0x395d25(0x15d)]!==_0x4d9ae2[_0x395d25(0x15f)])throw new ForbiddenError(_0x395d25(0x157));}
1
+ import{ForbiddenError}from'../../errors.js';function g(){var K=['User\x20required','type'];g=function(){return K;};return g();}function r(n,k){n=n-0x1a8;var Z=g();var K=Z[n];return K;}export function requireAdmin(n,k){var Z=r;if(!n)throw new ForbiddenError(Z(0x1a8));if(n[Z(0x1a9)]!=='admin')throw new ForbiddenError('Admin\x20access\x20required');if(n['type']!=='admin'&&k&&!n['permissions']?.['includes'](k))throw new ForbiddenError('Missing\x20permission:\x20'+k);}
@@ -1 +1 @@
1
- function _0x11e2(_0x3b7efa,_0x4e00cf){_0x3b7efa=_0x3b7efa-0x1d4;const _0x255d9e=_0x255d();let _0x11e20e=_0x255d9e[_0x3b7efa];return _0x11e20e;}function _0x255d(){const _0x5d374e=['password','46KPYQgs','secret','2349590XenVwJ','filter','entries','190267fHDQJr','21380MExBxI','credentials','4751336pZPevk','salt','7093510aKAXYX','31646mlVpNe','fromEntries','some','1392pyFavz','KOrxw','includes','token','9fmcvAD','35cRYTgy','toLowerCase','260676tNQYDJ','Afoia','333buOrZM','bzjbk'];_0x255d=function(){return _0x5d374e;};return _0x255d();}(function(_0x2c59a4,_0x3d0a29){const _0x446cef=_0x11e2,_0x4844e9=_0x2c59a4();while(!![]){try{const _0x5a9392=-parseInt(_0x446cef(0x1e9))/0x1*(-parseInt(_0x446cef(0x1da))/0x2)+parseInt(_0x446cef(0x1e6))/0x3*(parseInt(_0x446cef(0x1d5))/0x4)+-parseInt(_0x446cef(0x1eb))/0x5+parseInt(_0x446cef(0x1e4))/0x6*(parseInt(_0x446cef(0x1e2))/0x7)+parseInt(_0x446cef(0x1d7))/0x8+parseInt(_0x446cef(0x1e1))/0x9*(parseInt(_0x446cef(0x1d9))/0xa)+parseInt(_0x446cef(0x1d4))/0xb*(-parseInt(_0x446cef(0x1dd))/0xc);if(_0x5a9392===_0x3d0a29)break;else _0x4844e9['push'](_0x4844e9['shift']());}catch(_0x18cb21){_0x4844e9['push'](_0x4844e9['shift']());}}}(_0x255d,0x592e1));export const safeUser=_0x2c4e5c=>{const _0x17dcbb=_0x11e2,_0x3d66b9={};_0x3d66b9[_0x17dcbb(0x1de)]=_0x17dcbb(0x1e0),_0x3d66b9[_0x17dcbb(0x1e5)]=_0x17dcbb(0x1ea),_0x3d66b9[_0x17dcbb(0x1e7)]=_0x17dcbb(0x1d6);const _0x4e614a=_0x3d66b9,_0x357790=[_0x17dcbb(0x1e8),_0x17dcbb(0x1d8),_0x4e614a[_0x17dcbb(0x1de)],_0x4e614a[_0x17dcbb(0x1e5)],_0x4e614a[_0x17dcbb(0x1e7)]];return Object[_0x17dcbb(0x1db)](Object[_0x17dcbb(0x1ed)](_0x2c4e5c)[_0x17dcbb(0x1ec)](([_0x510556])=>!_0x357790[_0x17dcbb(0x1dc)](_0x1ee210=>_0x510556[_0x17dcbb(0x1e3)]()[_0x17dcbb(0x1df)](_0x1ee210))));};
1
+ export const safeUser=n=>{const d=r,k=['password',d(0x149),'secret','credentials'];return Object['fromEntries'](Object['entries'](n)['filter'](([Z])=>!k['some'](K=>Z['toLowerCase']()['includes'](K))));};function r(n,k){n=n-0x149;const Z=g();let K=Z[n];return K;}function g(){const J=['salt'];g=function(){return J;};return g();}
@@ -1 +1 @@
1
- (function(_0x5963cc,_0x1b1901){var _0x3e2e69=_0x3940,_0x2b7892=_0x5963cc();while(!![]){try{var _0x1ed558=parseInt(_0x3e2e69(0xbc))/0x1+parseInt(_0x3e2e69(0xba))/0x2*(-parseInt(_0x3e2e69(0xb7))/0x3)+parseInt(_0x3e2e69(0xbe))/0x4+parseInt(_0x3e2e69(0xb4))/0x5*(parseInt(_0x3e2e69(0xb9))/0x6)+-parseInt(_0x3e2e69(0xb5))/0x7*(-parseInt(_0x3e2e69(0xbd))/0x8)+parseInt(_0x3e2e69(0xb6))/0x9+-parseInt(_0x3e2e69(0xbb))/0xa;if(_0x1ed558===_0x1b1901)break;else _0x2b7892['push'](_0x2b7892['shift']());}catch(_0x4e4c10){_0x2b7892['push'](_0x2b7892['shift']());}}}(_0x1bee,0x642d3));function _0x1bee(){var _0x4dd8c3=['326807cxXXjh','536XGJYhk','1534508iXjrbb','33395dzpXQN','903tJtEjQ','2725020whlKkR','222qrWioh','\x20requires\x20a\x20project/provider\x20implementation','42nYEsvI','12398XzXUrv','1995610gIhGbc'];_0x1bee=function(){return _0x4dd8c3;};return _0x1bee();}import{UnsupportedError}from'../../errors.js';function _0x3940(_0x26dda4,_0x5bf3b9){_0x26dda4=_0x26dda4-0xb4;var _0x1bee4b=_0x1bee();var _0x3940f1=_0x1bee4b[_0x26dda4];return _0x3940f1;}export function unsupported(_0x2d7317){var _0x5b567d=_0x3940;throw new UnsupportedError(_0x2d7317+_0x5b567d(0xb8));}
1
+ import{UnsupportedError}from'../../errors.js';export function unsupported(n){throw new UnsupportedError(n+'\x20requires\x20a\x20project/provider\x20implementation');}
@@ -1 +1 @@
1
- (function(_0x4d18fa,_0x2f14e1){const _0x3483e8=_0x292d,_0x2cb8d1=_0x4d18fa();while(!![]){try{const _0x2d21f3=parseInt(_0x3483e8(0x6c))/0x1+-parseInt(_0x3483e8(0x6a))/0x2+parseInt(_0x3483e8(0x6e))/0x3+parseInt(_0x3483e8(0x68))/0x4*(-parseInt(_0x3483e8(0x6d))/0x5)+-parseInt(_0x3483e8(0x66))/0x6+-parseInt(_0x3483e8(0x67))/0x7*(-parseInt(_0x3483e8(0x6b))/0x8)+parseInt(_0x3483e8(0x6f))/0x9;if(_0x2d21f3===_0x2f14e1)break;else _0x2cb8d1['push'](_0x2cb8d1['shift']());}catch(_0x1205d0){_0x2cb8d1['push'](_0x2cb8d1['shift']());}}}(_0x5bb3,0xbe79b));function _0x292d(_0x15dcad,_0x535a0f){_0x15dcad=_0x15dcad-0x66;const _0x5bb3c9=_0x5bb3();let _0x292d00=_0x5bb3c9[_0x15dcad];return _0x292d00;}import{writeAudit}from'./services/write-audit.js';export function createAudit(_0x238d8f){const _0x38cca5=_0x292d,_0x1a250a=writeAudit(_0x238d8f),_0x3724eb={};return _0x3724eb[_0x38cca5(0x69)]=_0x1a250a,_0x3724eb;}function _0x5bb3(){const _0x15120e=['7890708XYedNd','112NVcVMW','148ZETYSo','write','1246798xpTJaX','385864OkFVJl','865902jLFrTz','156410SurUQN','1134672GwKhPR','16742556mlgySs'];_0x5bb3=function(){return _0x15120e;};return _0x5bb3();}
1
+ import{writeAudit}from'./services/write-audit.js';export function createAudit(n){const k=writeAudit(n);return{'write':k};}
@@ -13,7 +13,7 @@ export interface AuditChange {
13
13
  newValue?: unknown;
14
14
  }
15
15
  export interface AuditEvent extends AuditActor {
16
- module: string;
16
+ module?: string;
17
17
  resource: string;
18
18
  resourceId?: string | number;
19
19
  action: AuditAction;
@@ -1 +1 @@
1
- {"version":3,"file":"audit.types.d.ts","sourceRoot":"","sources":["../../../src/plugins/audit/audit.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AACjC,MAAM,WAAW,UAAU;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AACD,MAAM,WAAW,WAAW;IACxB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7C"}
1
+ {"version":3,"file":"audit.types.d.ts","sourceRoot":"","sources":["../../../src/plugins/audit/audit.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AACjC,MAAM,WAAW,UAAU;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AACD,MAAM,WAAW,WAAW;IACxB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7C"}
@@ -1 +1 @@
1
- (function(_0x3ef8e8,_0x2b32a4){var _0x4200be=_0x340a,_0x3ce8ad=_0x3ef8e8();while(!![]){try{var _0x4af070=parseInt(_0x4200be(0x94))/0x1+-parseInt(_0x4200be(0x96))/0x2*(parseInt(_0x4200be(0x98))/0x3)+parseInt(_0x4200be(0x9b))/0x4+parseInt(_0x4200be(0x92))/0x5*(parseInt(_0x4200be(0x95))/0x6)+parseInt(_0x4200be(0x9a))/0x7*(parseInt(_0x4200be(0x97))/0x8)+-parseInt(_0x4200be(0x93))/0x9+-parseInt(_0x4200be(0x99))/0xa;if(_0x4af070===_0x2b32a4)break;else _0x3ce8ad['push'](_0x3ce8ad['shift']());}catch(_0x52ff98){_0x3ce8ad['push'](_0x3ce8ad['shift']());}}}(_0x40f1,0x5dbfc));function _0x340a(_0x150697,_0x420d61){_0x150697=_0x150697-0x92;var _0x40f173=_0x40f1();var _0x340a5c=_0x40f173[_0x150697];return _0x340a5c;}export*from'./audit.types.js';function _0x40f1(){var _0x20b4de=['31446eUXyjE','427658WuTvNg','8PAtlPw','3apjrYB','4763590dsOzow','3148173lnayWC','1790496xEyFKM','105BnioOq','1183761oKWtEc','198289iPNngl'];_0x40f1=function(){return _0x20b4de;};return _0x40f1();}export*from'./audit.js';
1
+ export*from'./audit.types.js';export*from'./audit.js';
@@ -1 +1 @@
1
- (function(_0x48f5f4,_0x4acdd8){const _0x2521dc=_0x3163,_0x2a4df5=_0x48f5f4();while(!![]){try{const _0x414779=-parseInt(_0x2521dc(0x1ed))/0x1*(-parseInt(_0x2521dc(0x202))/0x2)+-parseInt(_0x2521dc(0x21a))/0x3*(-parseInt(_0x2521dc(0x1f7))/0x4)+-parseInt(_0x2521dc(0x1f1))/0x5*(parseInt(_0x2521dc(0x216))/0x6)+parseInt(_0x2521dc(0x1fd))/0x7+parseInt(_0x2521dc(0x229))/0x8*(parseInt(_0x2521dc(0x1ec))/0x9)+-parseInt(_0x2521dc(0x22d))/0xa*(parseInt(_0x2521dc(0x218))/0xb)+-parseInt(_0x2521dc(0x1f9))/0xc*(parseInt(_0x2521dc(0x1fa))/0xd);if(_0x414779===_0x4acdd8)break;else _0x2a4df5['push'](_0x2a4df5['shift']());}catch(_0x293d1b){_0x2a4df5['push'](_0x2a4df5['shift']());}}}(_0x479a,0x36a8a));const secretPattern=/password|token|secret|credential|salt/i;function _0x3163(_0x207293,_0x2f455e){_0x207293=_0x207293-0x1e8;const _0x479a07=_0x479a();let _0x316395=_0x479a07[_0x207293];return _0x316395;}function _0x479a(){const _0x4b9978=['err','catch','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20table_name\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20information_schema.tables\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20table_schema\x20=\x20\x27admin\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20table_name\x20IN\x20(\x27audit_log\x27,\x20\x27audit_log_data\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20','CDSFW','162epHNJg','429061eHzatA','qRsXy','HnMwQ','resource','25ulzXII','logger','warn','query','expectedTables','fields','28qxejMl','map','3100452KPVDKj','26EXLYpf','fromEntries','requestId','1746304fKpuxL','DyHJY','hZbtT','cFZYb','swtUp','2gSuoom','FYKIB','xGqKq','nLuAY','action','EUldO','isArray','metadata','table_name','has','\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.audit_log\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20user_id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20module,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resource,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resource_id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fields,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20action,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20request_id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ip_address,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20metadata\x0a\x20\x20\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5,\x20$6,\x20$7,\x20$8,\x20$9)\x0a\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20id\x0a\x20\x20\x20\x20\x20\x20','SjPlV','Aadjh','ipAddress','oldValue','rows','wwBiP','BlXDz','VkBVF','ajZWx','524022QAmySv','admin.audit_log_data','11JIAjiH','RMBrC','163659BvPVsv','resourceId','BchJR','VnWXa','test','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.audit_log_data\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20audit_log_id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20field,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20old_value,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20new_value\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20','audit','newValue','YVOnw','ZZIog','[REDACTED]','admin.audit_log','VIdjt','Gvzkc','pKhBG','133832xMLoKh','YAvlU','info','stringify','1842170pEAzfa','empty\x20pg','then','nxVFA','module','audit_log','field','wcVui','xkjsa','Unable\x20to\x20check\x20audit\x20tables;\x20audit\x20writes\x20are\x20disabled','FitOx','userId','object','iJJvu','foundTables','wmicj','hTjbt','caJsy','entries','ROBVm','audit_log_data','YjXGY','RCOAf','changes','Audit\x20tables\x20are\x20unavailable;\x20audit\x20writes\x20are\x20disabled','wGrGz'];_0x479a=function(){return _0x4b9978;};return _0x479a();}function clean(_0x4f2a6e){const _0x1c1c73=_0x3163,_0x22f81c={};_0x22f81c[_0x1c1c73(0x226)]=_0x1c1c73(0x225),_0x22f81c[_0x1c1c73(0x207)]=_0x1c1c73(0x245),_0x22f81c[_0x1c1c73(0x20e)]=function(_0x4e28d0,_0x50c174){return _0x4e28d0!==_0x50c174;},_0x22f81c[_0x1c1c73(0x23a)]=_0x1c1c73(0x1eb),_0x22f81c[_0x1c1c73(0x230)]=function(_0xce1914,_0x44e14b){return _0xce1914===_0x44e14b;},_0x22f81c[_0x1c1c73(0x219)]=_0x1c1c73(0x239);const _0x1089f4=_0x22f81c;if(Array[_0x1c1c73(0x208)](_0x4f2a6e)){if(_0x1089f4[_0x1c1c73(0x20e)](_0x1089f4[_0x1c1c73(0x23a)],_0x1c1c73(0x240)))return _0x4f2a6e[_0x1c1c73(0x1f8)](clean);else{const _0xe072a2={};_0xe072a2[_0x1c1c73(0x1f5)]=[_0x1089f4[_0x1c1c73(0x226)],_0x1c1c73(0x217)],_0xe072a2[_0x1c1c73(0x23b)]=[..._0x4a9a58],_0x6065be[_0x1c1c73(0x1f2)][_0x1c1c73(0x1f3)](_0xe072a2,_0x1089f4[_0x1c1c73(0x207)]);}}if(_0x4f2a6e&&_0x1089f4[_0x1c1c73(0x230)](typeof _0x4f2a6e,_0x1089f4[_0x1c1c73(0x219)]))return Object[_0x1c1c73(0x1fb)](Object[_0x1c1c73(0x23f)](_0x4f2a6e)[_0x1c1c73(0x1f8)](([_0x45c46d,_0x1d7d51])=>[_0x45c46d,secretPattern[_0x1c1c73(0x21e)](_0x45c46d)?_0x1c1c73(0x224):clean(_0x1d7d51)]));return _0x4f2a6e;}export function writeAudit(_0x1e29eb){const _0x6b841=_0x3163,_0x3df46a={'HnMwQ':_0x6b841(0x22e),'ZZIog':_0x6b841(0x212),'xkjsa':_0x6b841(0x1ff),'ajZWx':_0x6b841(0x232),'hTjbt':_0x6b841(0x217),'caJsy':_0x6b841(0x236),'FYKIB':function(_0x5223d7,_0x1a4d51){return _0x5223d7===_0x1a4d51;},'VnWXa':function(_0x537999,_0x5b268b){return _0x537999!==_0x5b268b;},'cFZYb':_0x6b841(0x241),'YAvlU':_0x6b841(0x225),'Gvzkc':_0x6b841(0x245),'wGrGz':function(_0x5dad8e,_0x495ce5){return _0x5dad8e===_0x495ce5;},'BlXDz':_0x6b841(0x205),'wmicj':function(_0x36f60f){return _0x36f60f();},'YjXGY':_0x6b841(0x237),'YVOnw':_0x6b841(0x220),'qRsXy':function(_0x541365,_0x40fe19){return _0x541365==_0x40fe19;},'xGqKq':function(_0x480d53,_0x51c1a5){return _0x480d53(_0x51c1a5);},'wcVui':function(_0x2a1a1f,_0xe35a13){return _0x2a1a1f(_0xe35a13);}};let _0x590371,_0x54e87c;async function _0x31e956(){const _0x3573a2=_0x6b841,_0x1c4127={};_0x1c4127[_0x3573a2(0x1fe)]=_0x3df46a[_0x3573a2(0x23e)];const _0x5ab3e5=_0x1c4127;if(!_0x1e29eb['pg']){if(_0x3df46a[_0x3573a2(0x203)](_0x3573a2(0x20d),_0x3573a2(0x20d)))return![];else throw new _0x3b9ee6(_0x3df46a[_0x3573a2(0x1ef)]);}if(_0x3df46a[_0x3573a2(0x21d)](_0x590371,undefined))return _0x590371;return _0x54e87c??=_0x1e29eb['pg'][_0x3573a2(0x1f4)](_0x3573a2(0x1ea))[_0x3573a2(0x22f)](_0x54c036=>{const _0x2b6401=_0x3573a2;if(_0x3df46a[_0x2b6401(0x223)]!==_0x3df46a[_0x2b6401(0x235)]){const _0x441e20=new Set(_0x54c036[_0x2b6401(0x211)][_0x2b6401(0x1f8)](_0x4a06df=>_0x4a06df[_0x2b6401(0x20a)]));_0x590371=_0x441e20[_0x2b6401(0x20b)](_0x3df46a[_0x2b6401(0x215)])&&_0x441e20[_0x2b6401(0x20b)](_0x2b6401(0x241));if(!_0x590371){const _0x16e2c5={};_0x16e2c5[_0x2b6401(0x1f5)]=[_0x2b6401(0x225),_0x3df46a[_0x2b6401(0x23d)]],_0x16e2c5[_0x2b6401(0x23b)]=[..._0x441e20],_0x1e29eb[_0x2b6401(0x1f2)][_0x2b6401(0x1f3)](_0x16e2c5,_0x2b6401(0x245));}return _0x590371;}else{_0x31ce89=![];const _0x4d9fd8={};return _0x4d9fd8[_0x2b6401(0x1e8)]=_0x4233db,_0x3875dc[_0x2b6401(0x1f2)][_0x2b6401(0x1f3)](_0x4d9fd8,_0x5ab3e5[_0x2b6401(0x1fe)]),![];}})[_0x3573a2(0x1e9)](_0x2d66db=>{const _0x5a6bb8=_0x3573a2;_0x590371=![];const _0x5c7310={};return _0x5c7310[_0x5a6bb8(0x1e8)]=_0x2d66db,_0x1e29eb[_0x5a6bb8(0x1f2)][_0x5a6bb8(0x1f3)](_0x5c7310,_0x3df46a[_0x5a6bb8(0x23e)]),![];}),_0x54e87c;}return async function _0x328138(_0x11a880){const _0x378417=_0x6b841,_0x5c0f22={};_0x5c0f22[_0x378417(0x228)]=_0x3df46a[_0x378417(0x200)],_0x5c0f22[_0x378417(0x214)]=_0x3df46a[_0x378417(0x22a)],_0x5c0f22[_0x378417(0x201)]=_0x3df46a[_0x378417(0x23d)],_0x5c0f22[_0x378417(0x21c)]=_0x3df46a[_0x378417(0x227)];const _0x167e48=_0x5c0f22;if(_0x3df46a[_0x378417(0x246)](_0x3df46a[_0x378417(0x213)],_0x378417(0x243))){const _0x523a26=new _0x268d7c(_0x5f4ff3[_0x378417(0x211)][_0x378417(0x1f8)](_0x36b785=>_0x36b785[_0x378417(0x20a)]));_0x3d7ce5=_0x523a26[_0x378417(0x20b)](_0x378417(0x232))&&_0x523a26[_0x378417(0x20b)](ZulZYB[_0x378417(0x228)]);if(!_0x3dea2c){const _0x41fbd0={};_0x41fbd0[_0x378417(0x1f5)]=[ZulZYB[_0x378417(0x214)],ZulZYB[_0x378417(0x201)]],_0x41fbd0[_0x378417(0x23b)]=[..._0x523a26],_0x29f505[_0x378417(0x1f2)][_0x378417(0x1f3)](_0x41fbd0,ZulZYB[_0x378417(0x21c)]);}return _0x3773c3;}else{if(!await _0x3df46a[_0x378417(0x23c)](_0x31e956))return _0x3df46a[_0x378417(0x242)]===_0x3df46a[_0x378417(0x242)]?(_0x1e29eb[_0x378417(0x1f2)][_0x378417(0x22b)]({'auditFallback':!![],'event':clean({..._0x11a880,'changes':_0x11a880[_0x378417(0x244)]?.[_0x378417(0x1f8)](_0x1204eb=>({..._0x1204eb,'oldValue':clean(_0x1204eb[_0x378417(0x210)]),'newValue':clean(_0x1204eb[_0x378417(0x221)])}))})},_0x3df46a[_0x378417(0x222)]),0x0):_0xd49fdc[_0x378417(0x1fb)](_0x1848a3[_0x378417(0x23f)](_0xcf1494)[_0x378417(0x1f8)](([_0x609969,_0x504de5])=>[_0x609969,_0x311d48[_0x378417(0x21e)](_0x609969)?_0x378417(0x224):_0x414b28(_0x504de5)]));if(!_0x1e29eb['pg'])throw new Error(_0x3df46a[_0x378417(0x1ef)]);const _0x5c14d7=await _0x1e29eb['pg'][_0x378417(0x1f4)](_0x378417(0x20c),[_0x11a880[_0x378417(0x238)]??null,_0x11a880[_0x378417(0x231)],_0x11a880[_0x378417(0x1f0)],_0x3df46a[_0x378417(0x1ee)](_0x11a880[_0x378417(0x21b)],null)?null:_0x3df46a[_0x378417(0x204)](String,_0x11a880[_0x378417(0x21b)]),_0x11a880[_0x378417(0x1f6)]??null,_0x11a880[_0x378417(0x206)],_0x11a880[_0x378417(0x1fc)]??null,_0x11a880[_0x378417(0x20f)]??null,_0x3df46a[_0x378417(0x204)](clean,_0x11a880[_0x378417(0x209)]??{})]),_0x4407b8=_0x5c14d7[_0x378417(0x211)][0x0]['id'];for(const _0x2e95f3 of _0x11a880[_0x378417(0x244)]??[]){if(secretPattern[_0x378417(0x21e)](_0x2e95f3[_0x378417(0x233)]))continue;await _0x1e29eb['pg'][_0x378417(0x1f4)](_0x378417(0x21f),[_0x4407b8,_0x2e95f3[_0x378417(0x233)],JSON[_0x378417(0x22c)](_0x3df46a[_0x378417(0x234)](clean,_0x2e95f3[_0x378417(0x210)])),JSON[_0x378417(0x22c)](clean(_0x2e95f3[_0x378417(0x221)]))]);}return _0x4407b8;}};}
1
+ const secretPattern=/password|token|secret|credential|salt/i;function clean(n){if(Array['isArray'](n))return n['map'](clean);if(n&&typeof n==='object')return Object['fromEntries'](Object['entries'](n)['map'](([k,Z])=>[k,secretPattern['test'](k)?'[REDACTED]':clean(Z)]));return n;}export function writeAudit(n){let k,Z;async function K(){const R=r;if(!n['pg'])return![];if(k!==undefined)return k;return Z??=n['pg']['query'](R(0x140))['then'](d=>{const Q=R,J=new Set(d['rows']['map'](B=>B['table_name']));return k=J[Q(0x141)]('audit_log')&&J['has']('audit_log_data'),!k&&n['logger']['warn']({'expectedTables':['admin.audit_log','admin.audit_log_data'],'foundTables':[...J]},'Audit\x20tables\x20are\x20unavailable;\x20audit\x20writes\x20are\x20disabled'),k;})[R(0x142)](d=>{const a=R;return k=![],n['logger'][a(0x143)]({'err':d},'Unable\x20to\x20check\x20audit\x20tables;\x20audit\x20writes\x20are\x20disabled'),![];}),Z;}return async function d(J){const H=r;if(!await K())return n['logger'][H(0x144)]({'auditFallback':!![],'event':clean({...J,'changes':J['changes']?.['map'](f=>({...f,'oldValue':clean(f['oldValue']),'newValue':clean(f['newValue'])}))})},'audit'),0x0;if(!n['pg'])throw new Error('empty\x20pg');const B=await n['pg']['query']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.audit_log\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20user_id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20module,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resource,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resource_id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fields,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20action,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20request_id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ip_address,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20metadata\x0a\x20\x20\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5,\x20$6,\x20$7,\x20$8,\x20$9)\x0a\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20id\x0a\x20\x20\x20\x20\x20\x20',[J['userId']??null,J['module'],J[H(0x145)],J['resourceId']==null?null:String(J['resourceId']),J['fields']??null,J['action'],J['requestId']??null,J['ipAddress']??null,clean(J['metadata']??{})]),l=B['rows'][0x0]['id'];for(const f of J['changes']??[]){if(secretPattern['test'](f['field']))continue;await n['pg']['query'](H(0x146),[l,f['field'],JSON['stringify'](clean(f[H(0x147)])),JSON[H(0x148)](clean(f['newValue']))]);}return l;};}function r(n,k){n=n-0x140;const Z=g();let K=Z[n];return K;}function g(){const A=['\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20table_name\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20information_schema.tables\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20table_schema\x20=\x20\x27admin\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20table_name\x20IN\x20(\x27audit_log\x27,\x20\x27audit_log_data\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20','has','catch','warn','info','resource','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.audit_log_data\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20audit_log_id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20field,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20old_value,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20new_value\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20','oldValue','stringify'];g=function(){return A;};return g();}