@opengis/fcore 0.0.1-beta.4 → 0.0.1-beta.6

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 (177) 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.map +1 -1
  9. package/dist/fastify.js +1 -1
  10. package/dist/fcore.js +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/migrations/cli.js +1 -1
  13. package/dist/migrations/runner.js +1 -1
  14. package/dist/modules/auth/adduser-cli.d.ts +3 -0
  15. package/dist/modules/auth/adduser-cli.d.ts.map +1 -0
  16. package/dist/modules/auth/adduser-cli.js +2 -0
  17. package/dist/modules/auth/passwd-cli.d.ts +3 -0
  18. package/dist/modules/auth/passwd-cli.d.ts.map +1 -0
  19. package/dist/modules/auth/passwd-cli.js +2 -0
  20. package/dist/modules/auth/permission-cli.d.ts +3 -0
  21. package/dist/modules/auth/permission-cli.d.ts.map +1 -0
  22. package/dist/modules/auth/permission-cli.js +2 -0
  23. package/dist/modules/auth/route.d.ts.map +1 -1
  24. package/dist/modules/auth/route.js +1 -1
  25. package/dist/modules/auth/schema.d.ts +7 -1
  26. package/dist/modules/auth/schema.d.ts.map +1 -1
  27. package/dist/modules/auth/schema.js +1 -1
  28. package/dist/modules/auth/services/change-password.d.ts +9 -0
  29. package/dist/modules/auth/services/change-password.d.ts.map +1 -0
  30. package/dist/modules/auth/services/change-password.js +1 -0
  31. package/dist/modules/auth/services/get-current-user.js +1 -1
  32. package/dist/modules/auth/services/registration.d.ts +14 -0
  33. package/dist/modules/auth/services/registration.d.ts.map +1 -0
  34. package/dist/modules/auth/services/registration.js +1 -0
  35. package/dist/modules/auth/services/verify-two-factor.js +1 -1
  36. package/dist/modules/file/route.js +1 -1
  37. package/dist/modules/file/schema.js +1 -1
  38. package/dist/modules/file/services/get-file.js +1 -1
  39. package/dist/modules/file/services/resize-file.js +1 -1
  40. package/dist/modules/file/services/upload-file.js +1 -1
  41. package/dist/modules/resource/route.d.ts.map +1 -1
  42. package/dist/modules/resource/route.js +1 -1
  43. package/dist/modules/resource/schema.js +1 -1
  44. package/dist/modules/resource/services/add-note.js +1 -1
  45. package/dist/modules/resource/services/add-resource-file.js +1 -1
  46. package/dist/modules/resource/services/create-resource-relation.d.ts +8 -2
  47. package/dist/modules/resource/services/create-resource-relation.d.ts.map +1 -1
  48. package/dist/modules/resource/services/create-resource-relation.js +1 -1
  49. package/dist/modules/resource/services/create-resource.js +1 -1
  50. package/dist/modules/resource/services/delete-resource-relation.d.ts +8 -1
  51. package/dist/modules/resource/services/delete-resource-relation.d.ts.map +1 -1
  52. package/dist/modules/resource/services/delete-resource-relation.js +1 -1
  53. package/dist/modules/resource/services/delete-resource.js +1 -1
  54. package/dist/modules/resource/services/export-resource.js +1 -1
  55. package/dist/modules/resource/services/get-resource.js +1 -1
  56. package/dist/modules/resource/services/list-resource-relation.d.ts +7 -2
  57. package/dist/modules/resource/services/list-resource-relation.d.ts.map +1 -1
  58. package/dist/modules/resource/services/list-resource-relation.js +1 -1
  59. package/dist/modules/resource/services/list-resources.js +1 -1
  60. package/dist/modules/resource/services/search-resource.js +1 -1
  61. package/dist/modules/resource/services/suggest-resource.d.ts +3 -0
  62. package/dist/modules/resource/services/suggest-resource.d.ts.map +1 -1
  63. package/dist/modules/resource/services/suggest-resource.js +1 -1
  64. package/dist/modules/resource/services/update-resource.js +1 -1
  65. package/dist/modules/resource/services/upload-resource-file.js +1 -1
  66. package/dist/modules/system/route.d.ts +2 -1
  67. package/dist/modules/system/route.d.ts.map +1 -1
  68. package/dist/modules/system/route.js +1 -1
  69. package/dist/modules/system/schema.d.ts +22 -1
  70. package/dist/modules/system/schema.d.ts.map +1 -1
  71. package/dist/modules/system/schema.js +1 -1
  72. package/dist/modules/system/services/check-system.d.ts.map +1 -1
  73. package/dist/modules/system/services/check-system.js +1 -1
  74. package/dist/modules/system/services/get-access.d.ts +14 -0
  75. package/dist/modules/system/services/get-access.d.ts.map +1 -0
  76. package/dist/modules/system/services/get-access.js +1 -0
  77. package/dist/modules/system/services/get-api-list.d.ts +4 -1
  78. package/dist/modules/system/services/get-api-list.d.ts.map +1 -1
  79. package/dist/modules/system/services/get-api-list.js +1 -1
  80. package/dist/modules/system/services/get-audit-log.js +1 -1
  81. package/dist/modules/system/services/get-dictionary.js +1 -1
  82. package/dist/modules/system/services/get-system-log.d.ts +9 -5
  83. package/dist/modules/system/services/get-system-log.d.ts.map +1 -1
  84. package/dist/modules/system/services/get-system-log.js +1 -1
  85. package/dist/modules/system/services/get-system-settings.js +1 -1
  86. package/dist/modules/system/services/list-dictionaries.js +1 -1
  87. package/dist/modules/system/services/set-access.d.ts +16 -0
  88. package/dist/modules/system/services/set-access.d.ts.map +1 -0
  89. package/dist/modules/system/services/set-access.js +1 -0
  90. package/dist/modules/system/services/update-dictionary.d.ts +13 -0
  91. package/dist/modules/system/services/update-dictionary.d.ts.map +1 -0
  92. package/dist/modules/system/services/update-dictionary.js +1 -0
  93. package/dist/modules/system/services/update-system-settings.js +1 -1
  94. package/dist/modules/utils/require-admin.js +1 -1
  95. package/dist/modules/utils/safe-user.js +1 -1
  96. package/dist/modules/utils/unsupported.js +1 -1
  97. package/dist/plugins/audit/audit.js +1 -1
  98. package/dist/plugins/audit/index.js +1 -1
  99. package/dist/plugins/audit/services/write-audit.js +1 -1
  100. package/dist/plugins/auth/get-user-permissions.d.ts +3 -0
  101. package/dist/plugins/auth/get-user-permissions.d.ts.map +1 -0
  102. package/dist/plugins/auth/get-user-permissions.js +1 -0
  103. package/dist/plugins/auth/index.d.ts +4 -0
  104. package/dist/plugins/auth/index.d.ts.map +1 -1
  105. package/dist/plugins/auth/index.js +1 -1
  106. package/dist/plugins/auth/verifyUser.d.ts +9 -0
  107. package/dist/plugins/auth/verifyUser.d.ts.map +1 -0
  108. package/dist/plugins/auth/verifyUser.js +1 -0
  109. package/dist/plugins/dictionary.js +1 -1
  110. package/dist/plugins/file.js +1 -1
  111. package/dist/plugins/index.d.ts +1 -0
  112. package/dist/plugins/index.d.ts.map +1 -1
  113. package/dist/plugins/index.js +1 -1
  114. package/dist/plugins/logger/index.js +1 -1
  115. package/dist/plugins/logger/transport.js +1 -1
  116. package/dist/plugins/pg.js +1 -1
  117. package/dist/plugins/redis.js +1 -1
  118. package/dist/plugins/resource/index.js +1 -1
  119. package/dist/plugins/resource/resource.d.ts.map +1 -1
  120. package/dist/plugins/resource/resource.js +1 -1
  121. package/dist/plugins/resource/resource.registry.js +1 -1
  122. package/dist/plugins/resource/resource.types.d.ts +23 -0
  123. package/dist/plugins/resource/resource.types.d.ts.map +1 -1
  124. package/dist/plugins/resource/services/create-relation.d.ts +13 -0
  125. package/dist/plugins/resource/services/create-relation.d.ts.map +1 -0
  126. package/dist/plugins/resource/services/create-relation.js +1 -0
  127. package/dist/plugins/resource/services/create.js +1 -1
  128. package/dist/plugins/resource/services/delete-relation.d.ts +15 -0
  129. package/dist/plugins/resource/services/delete-relation.d.ts.map +1 -0
  130. package/dist/plugins/resource/services/delete-relation.js +1 -0
  131. package/dist/plugins/resource/services/delete.js +1 -1
  132. package/dist/plugins/resource/services/find-one.js +1 -1
  133. package/dist/plugins/resource/services/find-relation.d.ts +12 -0
  134. package/dist/plugins/resource/services/find-relation.d.ts.map +1 -0
  135. package/dist/plugins/resource/services/find-relation.js +1 -0
  136. package/dist/plugins/resource/services/find.js +1 -1
  137. package/dist/plugins/resource/services/update.js +1 -1
  138. package/dist/plugins/resource/utils/fields.js +1 -1
  139. package/dist/plugins/resource/utils/filters.js +1 -1
  140. package/dist/plugins/resource/utils/permissions.js +1 -1
  141. package/dist/plugins/resource/utils/sort.js +1 -1
  142. package/dist/plugins/resource/utils/sql.js +1 -1
  143. package/dist/shared/getIP.js +1 -1
  144. package/dist/type.d.ts +14 -0
  145. package/dist/type.d.ts.map +1 -1
  146. package/migrations/20260903120000_core_schema.sql +22 -19
  147. package/migrations/20260903130000_move_notes_files_to_admin.sql +17 -17
  148. package/migrations/20260903140000_settings_nulls_not_distinct.sql +18 -18
  149. package/migrations/20260905120000_add_user_foreign_keys.sql +43 -0
  150. package/package.json +10 -5
  151. package/dist/modules/auth/index.d.ts +0 -9
  152. package/dist/modules/auth/index.d.ts.map +0 -1
  153. package/dist/modules/auth/index.js +0 -1
  154. package/dist/modules/auth/services/login.d.ts +0 -10
  155. package/dist/modules/auth/services/login.d.ts.map +0 -1
  156. package/dist/modules/auth/services/login.js +0 -1
  157. package/dist/modules/auth/services/logout.d.ts +0 -9
  158. package/dist/modules/auth/services/logout.d.ts.map +0 -1
  159. package/dist/modules/auth/services/logout.js +0 -1
  160. package/dist/modules/auth/services/verifyPassword.d.ts +0 -11
  161. package/dist/modules/auth/services/verifyPassword.d.ts.map +0 -1
  162. package/dist/modules/auth/services/verifyPassword.js +0 -1
  163. package/dist/modules/file/index.d.ts +0 -8
  164. package/dist/modules/file/index.d.ts.map +0 -1
  165. package/dist/modules/file/index.js +0 -1
  166. package/dist/modules/resource/index.d.ts +0 -20
  167. package/dist/modules/resource/index.d.ts.map +0 -1
  168. package/dist/modules/resource/index.js +0 -1
  169. package/dist/modules/resource/services/list-children.d.ts +0 -6
  170. package/dist/modules/resource/services/list-children.d.ts.map +0 -1
  171. package/dist/modules/resource/services/list-children.js +0 -1
  172. package/dist/modules/system/index.d.ts +0 -13
  173. package/dist/modules/system/index.d.ts.map +0 -1
  174. package/dist/modules/system/index.js +0 -1
  175. package/dist/modules/utils/get-user-permissions.d.ts +0 -3
  176. package/dist/modules/utils/get-user-permissions.d.ts.map +0 -1
  177. package/dist/modules/utils/get-user-permissions.js +0 -1
@@ -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,CAgBd"}
@@ -1 +1 @@
1
- function _0x15f7(_0x113c82,_0x594863){_0x113c82=_0x113c82-0x1be;const _0x4dcfc7=_0x4dcf();let _0x15f75d=_0x4dcfc7[_0x113c82];return _0x15f75d;}(function(_0x4d0ef0,_0x570269){const _0x5bbb9b=_0x15f7,_0x30fde2=_0x4d0ef0();while(!![]){try{const _0x3ca0c0=parseInt(_0x5bbb9b(0x1c8))/0x1+parseInt(_0x5bbb9b(0x1c7))/0x2+-parseInt(_0x5bbb9b(0x1d7))/0x3+parseInt(_0x5bbb9b(0x1cc))/0x4*(parseInt(_0x5bbb9b(0x1be))/0x5)+parseInt(_0x5bbb9b(0x1c0))/0x6*(-parseInt(_0x5bbb9b(0x1c3))/0x7)+parseInt(_0x5bbb9b(0x1bf))/0x8*(parseInt(_0x5bbb9b(0x1d8))/0x9)+parseInt(_0x5bbb9b(0x1d3))/0xa*(-parseInt(_0x5bbb9b(0x1c2))/0xb);if(_0x3ca0c0===_0x570269)break;else _0x30fde2['push'](_0x30fde2['shift']());}catch(_0x36e512){_0x30fde2['push'](_0x30fde2['shift']());}}}(_0x4dcf,0xe5002));import{requireAdmin}from'../../utils/require-admin.js';export async function checkSystem(_0x4d1c09,_0x11dd3c){const _0x3d6bce=_0x15f7,_0x47b179={'sDFAT':function(_0x1e5a45,_0x1738fb,_0x3f8e62){return _0x1e5a45(_0x1738fb,_0x3f8e62);},'hTHMZ':_0x3d6bce(0x1ce),'aGgNE':function(_0x2606ed,_0xf91ab9){return _0x2606ed===_0xf91ab9;},'cDTeY':_0x3d6bce(0x1cd),'cRJlQ':function(_0x3a1880,_0x50810d){return _0x3a1880===_0x50810d;},'QXDzo':_0x3d6bce(0x1d6)};_0x47b179[_0x3d6bce(0x1d0)](requireAdmin,_0x4d1c09[_0x3d6bce(0x1ca)],_0x3d6bce(0x1d2));const [_0x3ce95b,_0x381e7f]=await Promise[_0x3d6bce(0x1c4)]([_0x11dd3c['pg'][_0x3d6bce(0x1cb)](_0x47b179[_0x3d6bce(0x1c1)]),_0x11dd3c[_0x3d6bce(0x1c5)][_0x3d6bce(0x1d1)]()]);return{'status':_0x47b179[_0x3d6bce(0x1c9)](_0x3ce95b[_0x3d6bce(0x1cf)],_0x47b179[_0x3d6bce(0x1c6)])&&_0x47b179[_0x3d6bce(0x1d4)](_0x381e7f[_0x3d6bce(0x1cf)],_0x47b179[_0x3d6bce(0x1c6)])?'ok':_0x47b179[_0x3d6bce(0x1d5)],'pg':_0x3ce95b[_0x3d6bce(0x1cf)],'redis':_0x381e7f[_0x3d6bce(0x1cf)]};}function _0x4dcf(){const _0x1bae6a=['6kXkbOm','hTHMZ','2011427tvixpm','10554621JZnVeV','allSettled','redis','cDTeY','2814006fGfmRP','1402766UagpIZ','aGgNE','user','query','788AWjQtS','fulfilled','SELECT\x201','status','sDFAT','ping','system:check','130GmqBkd','cRJlQ','QXDzo','degraded','623502EVwaHi','1900116LQQRdQ','40295rEhOgZ','24HFVmBE'];_0x4dcf=function(){return _0x1bae6a;};return _0x4dcf();}
1
+ function T(r,u){r=r-0xfc;const G=H();let o=G[r];return o;}function H(){const w=['query','redis','status','fulfilled'];H=function(){return w;};return H();}import{requireAdmin}from'../../utils/require-admin.js';export async function checkSystem(r,u){const X=T;requireAdmin(r['user'],'system:check');const [G,o]=await Promise['allSettled']([u['pg'][X(0xfc)]('SELECT\x201'),u[X(0xfd)]['ping']()]);return{'status':G[X(0xfe)]===X(0xff)&&o['status']==='fulfilled'?'ok':'degraded','pg':G[X(0xfe)],'redis':o[X(0xfe)]};}
@@ -0,0 +1,14 @@
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
+ }>;
14
+ //# 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;AAG5D,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,wBAAsB,SAAS,CAC3B,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,EACzD,GAAG,EAAE,UAAU,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAoBrC"}
@@ -0,0 +1 @@
1
+ import{requireAdmin}from'../../utils/require-admin.js';function H(){const w=['system:access'];H=function(){return w;};return H();}function T(r,u){r=r-0x15e;const G=H();let o=G[r];return o;}export async function getAccess(r,u){const X=T;requireAdmin(r['user'],X(0x15e));const G=r['type']==='user'?'\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',o=await u['pg']['query'](G,[r['id']]);return{'access':o['rows']};}
@@ -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,CAYhC"}
@@ -1 +1 @@
1
- (function(_0x3ebabb,_0x310972){var _0x37bfb4=_0x3e9e,_0x155fa2=_0x3ebabb();while(!![]){try{var _0xa89827=-parseInt(_0x37bfb4(0x1e0))/0x1+parseInt(_0x37bfb4(0x1d9))/0x2+parseInt(_0x37bfb4(0x1db))/0x3*(parseInt(_0x37bfb4(0x1e2))/0x4)+-parseInt(_0x37bfb4(0x1d3))/0x5*(-parseInt(_0x37bfb4(0x1d4))/0x6)+parseInt(_0x37bfb4(0x1de))/0x7*(parseInt(_0x37bfb4(0x1cd))/0x8)+parseInt(_0x37bfb4(0x1cc))/0x9*(-parseInt(_0x37bfb4(0x1c8))/0xa)+-parseInt(_0x37bfb4(0x1c9))/0xb;if(_0xa89827===_0x310972)break;else _0x155fa2['push'](_0x155fa2['shift']());}catch(_0x4578f2){_0x155fa2['push'](_0x155fa2['shift']());}}}(_0x3acb,0x2343b));function _0x3acb(){var _0x748eec=['/api/user','547858pAJMCF','user','33hbPFDF','/api/logout','ASUxo','35VSMdCD','system:api:read','122205jhCpTS','jabkv','87756JQXlGr','pYvBZ','1390DHUPUn','2216500dYLhKN','/files/*','/api/templates','14895nRuXKw','17504BVcFvj','/api/resource/:resource/:id','/api/login','cOsqz','/api/resource/:resource','/api/system/check','20975Uejnvz','246nKGkTc','ODmsZ','/api/dictionaries','FMAlZ'];_0x3acb=function(){return _0x748eec;};return _0x3acb();}function _0x3e9e(_0x43d833,_0x59198f){_0x43d833=_0x43d833-0x1c7;var _0x3acb29=_0x3acb();var _0x3e9e91=_0x3acb29[_0x43d833];return _0x3e9e91;}import{requireAdmin}from'../../utils/require-admin.js';export async function getApiList(_0x12d939,_0x51c333){var _0x91ac79=_0x3e9e,_0x14db73={'ASUxo':function(_0x35a049,_0x36951d,_0x52a0af){return _0x35a049(_0x36951d,_0x52a0af);},'ODmsZ':_0x91ac79(0x1df),'pYvBZ':_0x91ac79(0x1ce),'cOsqz':_0x91ac79(0x1ca),'jabkv':_0x91ac79(0x1cb),'FMAlZ':_0x91ac79(0x1d2)};return _0x14db73[_0x91ac79(0x1dd)](requireAdmin,_0x12d939[_0x91ac79(0x1da)],_0x14db73[_0x91ac79(0x1d5)]),[_0x91ac79(0x1cf),_0x91ac79(0x1dc),_0x91ac79(0x1d8),_0x91ac79(0x1d1),_0x14db73[_0x91ac79(0x1c7)],_0x91ac79(0x1d6),_0x14db73[_0x91ac79(0x1d0)],_0x14db73[_0x91ac79(0x1e1)],_0x14db73[_0x91ac79(0x1d7)]];}
1
+ function T(r,u){r=r-0xa6;const G=H();let o=G[r];return o;}function H(){const p=['user','apiRoutes','sort','endpoint','format','short'];H=function(){return p;};return H();}import{requireAdmin}from'../../utils/require-admin.js';export async function getApiList(r,u){const q=T;requireAdmin(r[q(0xa6)],'system:list');const G=[...r[q(0xa7)]['values']()][q(0xa8)]((o,X)=>(o['endpoint']+'\x20'+o['method'])['localeCompare'](X[q(0xa9)]+'\x20'+X['method']));if(r[q(0xaa)]!==q(0xab))return G;return G['map'](({method:o,endpoint:X,access:w,permissions:a})=>o+'\x20'+X);}
@@ -1 +1 @@
1
- function _0x38ee(){const _0x191119=['max','295dISJpd','query','audit:read','limit','rows','11046reWYPl','3798192TvDXlC','2512OxiMmr','page','5556803ulNOwM','user','1179253FswfvS','KXjcM','98308cokpUd','DjTAR','6zQfNWP','2946390pLKRvI','min','156wRvaRp','27639pYCKyg','SELECT\x20*\x20FROM\x20admin.audit_log\x20ORDER\x20BY\x20id\x20DESC\x20LIMIT\x20$1\x20OFFSET\x20$2','CPXRn','11laZsAA','945TrIZbo','JzdGq'];_0x38ee=function(){return _0x191119;};return _0x38ee();}(function(_0x76e224,_0x5c61e8){const _0x275523=_0x3fb3,_0x1940cd=_0x76e224();while(!![]){try{const _0x2c52bb=-parseInt(_0x275523(0x18b))/0x1+-parseInt(_0x275523(0x19f))/0x2*(parseInt(_0x275523(0x197))/0x3)+-parseInt(_0x275523(0x18d))/0x4*(parseInt(_0x275523(0x19a))/0x5)+-parseInt(_0x275523(0x18f))/0x6*(-parseInt(_0x275523(0x1a3))/0x7)+parseInt(_0x275523(0x1a1))/0x8*(parseInt(_0x275523(0x193))/0x9)+parseInt(_0x275523(0x190))/0xa*(-parseInt(_0x275523(0x196))/0xb)+parseInt(_0x275523(0x1a0))/0xc*(parseInt(_0x275523(0x192))/0xd);if(_0x2c52bb===_0x5c61e8)break;else _0x1940cd['push'](_0x1940cd['shift']());}catch(_0x2f26ca){_0x1940cd['push'](_0x1940cd['shift']());}}}(_0x38ee,0xd9edb));import{requireAdmin}from'../../utils/require-admin.js';function _0x3fb3(_0x24324c,_0x333e78){_0x24324c=_0x24324c-0x18a;const _0x38eed3=_0x38ee();let _0x3fb32c=_0x38eed3[_0x24324c];return _0x3fb32c;}export async function getAuditLog(_0x205afc,_0x3d8bcf){const _0x4cf5eb=_0x3fb3,_0x2b1a60={'JzdGq':function(_0x186ceb,_0x2ecdef,_0xb6e4da){return _0x186ceb(_0x2ecdef,_0xb6e4da);},'DjTAR':_0x4cf5eb(0x19c),'KXjcM':function(_0x330220,_0x6165d2){return _0x330220*_0x6165d2;},'CPXRn':_0x4cf5eb(0x194)};_0x2b1a60[_0x4cf5eb(0x198)](requireAdmin,_0x205afc[_0x4cf5eb(0x18a)],_0x2b1a60[_0x4cf5eb(0x18e)]);const _0x4a46ce=Math[_0x4cf5eb(0x191)](Math[_0x4cf5eb(0x199)](_0x205afc[_0x4cf5eb(0x19d)]??0x32,0x1),0xc8),_0x482f9a=_0x2b1a60[_0x4cf5eb(0x18c)](Math[_0x4cf5eb(0x199)]((_0x205afc[_0x4cf5eb(0x1a2)]??0x1)-0x1,0x0),_0x4a46ce),_0x16e56d=await _0x3d8bcf['pg'][_0x4cf5eb(0x19b)](_0x2b1a60[_0x4cf5eb(0x195)],[_0x4a46ce,_0x482f9a]),_0x1d0c17={};return _0x1d0c17[_0x4cf5eb(0x19e)]=_0x16e56d[_0x4cf5eb(0x19e)],_0x1d0c17[_0x4cf5eb(0x1a2)]=_0x205afc[_0x4cf5eb(0x1a2)]??0x1,_0x1d0c17[_0x4cf5eb(0x19d)]=_0x4a46ce,_0x1d0c17;}
1
+ function T(r,u){r=r-0x15f;const G=H();let o=G[r];return o;}import{requireAdmin}from'../../utils/require-admin.js';export async function getAuditLog(u,G){const a=T;requireAdmin(u[a(0x15f)],a(0x160));const o=Math['min'](Math['max'](u[a(0x161)]??0x32,0x1),0xc8),X=Math['max']((u['page']??0x1)-0x1,0x0)*o,w=await G['pg']['query']('SELECT\x20*\x20FROM\x20admin.audit_log\x20ORDER\x20BY\x20id\x20DESC\x20LIMIT\x20$1\x20OFFSET\x20$2',[o,X]);return{'rows':w[a(0x162)],'page':u['page']??0x1,'limit':o};}function H(){const q=['user','system:audit','limit','rows'];H=function(){return q;};return H();}
@@ -1 +1 @@
1
- function _0x4deb(){var _0x4e5f75=['21714bccOSZ','dictionary','name','get','6393uIrKGY','37345UhwvjM','16YzrQHR','11MvAqSv','2587VxLSgT','2379937ZPFQoM','11cTpuDq','51982HhxSBl','60Qxwlgr','13256340LOAYlU','1732rEWBSA','12NAipak','1676619TBMbmn'];_0x4deb=function(){return _0x4e5f75;};return _0x4deb();}(function(_0x5ef49e,_0x589cfd){var _0x16a472=_0x3dd2,_0x30b98b=_0x5ef49e();while(!![]){try{var _0x47a28c=-parseInt(_0x16a472(0x8d))/0x1*(-parseInt(_0x16a472(0x97))/0x2)+-parseInt(_0x16a472(0x9b))/0x3*(parseInt(_0x16a472(0x94))/0x4)+parseInt(_0x16a472(0x8b))/0x5*(-parseInt(_0x16a472(0x95))/0x6)+parseInt(_0x16a472(0x8f))/0x7*(parseInt(_0x16a472(0x8c))/0x8)+-parseInt(_0x16a472(0x96))/0x9*(parseInt(_0x16a472(0x92))/0xa)+-parseInt(_0x16a472(0x90))/0xb*(-parseInt(_0x16a472(0x93))/0xc)+-parseInt(_0x16a472(0x8e))/0xd*(-parseInt(_0x16a472(0x91))/0xe);if(_0x47a28c===_0x589cfd)break;else _0x30b98b['push'](_0x30b98b['shift']());}catch(_0x16d885){_0x30b98b['push'](_0x30b98b['shift']());}}}(_0x4deb,0x8f740));function _0x3dd2(_0xe5a67c,_0x58abf1){_0xe5a67c=_0xe5a67c-0x8b;var _0x4debda=_0x4deb();var _0x3dd231=_0x4debda[_0xe5a67c];return _0x3dd231;}export async function getDictionary(_0x220001,_0x5d4163){var _0x56f4dd=_0x3dd2;return _0x5d4163[_0x56f4dd(0x98)][_0x56f4dd(0x9a)](_0x220001[_0x56f4dd(0x99)]);}
1
+ export async function getDictionary(r,u){return u['dictionary']['get'](r['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;AAe5D,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,CA2CpB"}
@@ -1 +1 @@
1
- function _0x5c5a(){var _0x4239e3=['9710408FvaWYk','2zTKOAQ','9052590cRFTLh','7hASbLb','23874895OWFVFI','282231wtAEHK','RbJXF','admTi','293584FjFgeh','File\x20logger\x20backend','9QbdmRs','1986456yeLAKz','373645gelowV','28ywxjOx'];_0x5c5a=function(){return _0x4239e3;};return _0x5c5a();}function _0x1202(_0x3fecfb,_0x5429d3){_0x3fecfb=_0x3fecfb-0x1b6;var _0x5c5ac4=_0x5c5a();var _0x120286=_0x5c5ac4[_0x3fecfb];return _0x120286;}(function(_0x557bb9,_0x48059e){var _0x5234f8=_0x1202,_0x36b52c=_0x557bb9();while(!![]){try{var _0x5c474e=parseInt(_0x5234f8(0x1bd))/0x1+parseInt(_0x5234f8(0x1b6))/0x2*(parseInt(_0x5234f8(0x1ba))/0x3)+-parseInt(_0x5234f8(0x1c2))/0x4*(-parseInt(_0x5234f8(0x1c1))/0x5)+-parseInt(_0x5234f8(0x1c0))/0x6+parseInt(_0x5234f8(0x1b8))/0x7*(-parseInt(_0x5234f8(0x1c3))/0x8)+-parseInt(_0x5234f8(0x1bf))/0x9*(parseInt(_0x5234f8(0x1b7))/0xa)+parseInt(_0x5234f8(0x1b9))/0xb;if(_0x5c474e===_0x48059e)break;else _0x36b52c['push'](_0x36b52c['shift']());}catch(_0x200b81){_0x36b52c['push'](_0x36b52c['shift']());}}}(_0x5c5a,0x9a121));import{unsupported}from'../../utils/unsupported.js';export async function getSystemLog(_0x1d23a4,_0x29e45d){var _0x3131ca=_0x1202,_0x11a329={'admTi':function(_0x41114f,_0x4af3c7){return _0x41114f(_0x4af3c7);},'RbJXF':_0x3131ca(0x1be)};return _0x11a329[_0x3131ca(0x1bc)](unsupported,_0x11a329[_0x3131ca(0x1bb)]);}
1
+ import r from'node:fs/promises';import u from'node:path';import{requireAdmin}from'../../utils/require-admin.js';import{NotFoundError,ValidationError}from'../../../errors.js';const LOGS_ROOT=u['resolve'](process['cwd'](),'logs'),TAIL_LINES=0x64;function T(r,u){r=r-0xfe;const G=H();let o=G[r];return o;}export async function getSystemLog(G,o){const c=T;requireAdmin(G['user'],'system:logs');const X=normalizePath(G['path']),w=u['resolve'](LOGS_ROOT,X);if(w!==LOGS_ROOT&&!w['startsWith'](LOGS_ROOT+u[c(0xfe)]))throw new ValidationError('Invalid\x20log\x20path');const a=await r[c(0xff)](w)['catch'](()=>null);if(!a)throw new NotFoundError('Log\x20path\x20not\x20found');if(a[c(0x100)]()){const p=await r[c(0x101)](w,{'withFileTypes':!![]}),F=await Promise['all'](p['map'](async E=>{const h=c,Y=await r['stat'](u[h(0x102)](w,E[h(0x103)]));return{'name':E['name'],'path':X?X+'/'+E['name']:E['name'],'type':E['isDirectory']()?'directory':'file','size':E['isDirectory']()?undefined:Y['size'],'modified':Y[h(0x104)]['toISOString']()};}));F['sort']((E,Y)=>E['name']['localeCompare'](Y[c(0x103)]));if(X){const E=X['split']('/')['slice'](0x0,-0x1)['join']('/');F['unshift']({'name':'..','path':E,'type':'directory'});}return{'contentType':'text/html;\x20charset=utf-8','body':renderDirectory(X,F)};}const q=await tailFile(w,TAIL_LINES);return{'contentType':'text/plain;\x20charset=utf-8','body':q['join']('\x0a')};}function renderDirectory(G,o){const P=T,X=o[P(0x105)](a=>{const q='?path='+encodeURIComponent(a['path']),p=a['type']==='directory'?a['name']+'/':a['name'];return'<li><a\x20href=\x22'+q+'\x22>'+escapeHtml(p)+'</a></li>';})[P(0x102)]('\x0a'),w=escapeHtml('logs/'+G);return'<!DOCTYPE\x20html>\x0a<html>\x0a<head><meta\x20charset=\x22utf-8\x22><title>'+w+'</title></head>\x0a<body>\x0a<h1>'+w+'</h1>\x0a<ul>\x0a'+X+'\x0a</ul>\x0a</body>\x0a</html>';}function escapeHtml(G){const l=T;return G[l(0x106)](/&/g,'&amp;')[l(0x106)](/</g,'&lt;')[l(0x106)](/>/g,'&gt;')[l(0x106)](/"/g,'&quot;');}function normalizePath(G){const Q=T,o=(G??'')['replace'](/\\/g,'/')[Q(0x106)](/^\/+|\/+$/g,'');if(o['split']('/')[Q(0x107)](X=>X==='..'))throw new ValidationError(Q(0x108));return o;}async function tailFile(G,o){const J=T,X=await r[J(0x109)](G,'r');try{const {size:w}=await X['stat'](),a=0x40*0x400;let q=w,p=Buffer['alloc'](0x0),F=0x0;while(q>0x0&&F<=o){const Y=Math['min'](a,q);q-=Y;const S=Buffer['alloc'](Y);await X['read'](S,0x0,Y,q),p=Buffer['concat']([S,p]),F+=countNewlines(S);}const E=p['toString']('utf8')['split']('\x0a')[J(0x10a)](I=>I['length']>0x0);return E['slice'](-o)['reverse']();}finally{await X['close']();}}function H(){const O=['sep','stat','isDirectory','readdir','join','name','mtime','map','replace','some','Invalid\x20log\x20path','open','filter'];H=function(){return O;};return H();}function countNewlines(G){let o=0x0;for(const X of G){if(X===0xa)o++;}return o;}
@@ -1 +1 @@
1
- (function(_0x31e350,_0x3d0dae){const _0x56d259=_0x2213,_0x559606=_0x31e350();while(!![]){try{const _0x5f0a5d=parseInt(_0x56d259(0x12b))/0x1*(-parseInt(_0x56d259(0x132))/0x2)+-parseInt(_0x56d259(0x139))/0x3*(-parseInt(_0x56d259(0x13a))/0x4)+parseInt(_0x56d259(0x137))/0x5+-parseInt(_0x56d259(0x131))/0x6+parseInt(_0x56d259(0x12a))/0x7+parseInt(_0x56d259(0x135))/0x8*(-parseInt(_0x56d259(0x13f))/0x9)+-parseInt(_0x56d259(0x130))/0xa*(parseInt(_0x56d259(0x133))/0xb);if(_0x5f0a5d===_0x3d0dae)break;else _0x559606['push'](_0x559606['shift']());}catch(_0x40c830){_0x559606['push'](_0x559606['shift']());}}}(_0x5006,0x6cb55));import{requireAdmin}from'../../utils/require-admin.js';export async function getSystemSettings(_0x3cff9c,_0x3e99f9){const _0x2f8c7b=_0x2213,_0x2c3df4={'ZySQh':function(_0x1b0660,_0x919c22){return _0x1b0660(_0x919c22);},'sGbaj':function(_0x532bd8,_0x321bc8,_0x47e8e8){return _0x532bd8(_0x321bc8,_0x47e8e8);}};_0x2c3df4[_0x2f8c7b(0x129)](requireAdmin,_0x3cff9c[_0x2f8c7b(0x13c)],_0x2f8c7b(0x138));const _0x53a50b=await _0x3e99f9['pg'][_0x2f8c7b(0x12c)](_0x2f8c7b(0x13e));return _0x53a50b[_0x2f8c7b(0x134)][_0x2f8c7b(0x136)]((_0x2c96c9,_0x488cce)=>{const _0x5619d0=_0x2f8c7b,_0x446535=_0x2c3df4[_0x5619d0(0x12f)](String,_0x488cce[_0x5619d0(0x12e)])[_0x5619d0(0x13b)]('.');let _0x577f0d=_0x2c96c9;for(const _0x190888 of _0x446535[_0x5619d0(0x13d)](0x0,-0x1)){_0x577f0d[_0x190888]??={},_0x577f0d=_0x577f0d[_0x190888];}return _0x577f0d[_0x446535['at'](-0x1)]=_0x488cce[_0x5619d0(0x12d)],_0x2c96c9;},{});}function _0x2213(_0x3bcdc8,_0x55e3f9){_0x3bcdc8=_0x3bcdc8-0x129;const _0x500699=_0x5006();let _0x22134f=_0x500699[_0x3bcdc8];return _0x22134f;}function _0x5006(){const _0x8bcaad=['ZySQh','126920caRGww','3917400dElPZV','261666PeRFGJ','44fywZyH','rows','8TSdOsd','reduce','252900pwgOFS','system:settings:read','114dNlvws','90564rFrECO','split','user','slice','\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','3954294OdoIxT','sGbaj','5657386iXAvYe','1XSfGnj','query','value','key'];_0x5006=function(){return _0x8bcaad;};return _0x5006();}
1
+ import{requireAdmin}from'../../utils/require-admin.js';function T(r,u){r=r-0x163;const G=H();let o=G[r];return o;}export async function getSystemSettings(r,u){const p=T;requireAdmin(r[p(0x163)],'system:settings');const G=await u['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 G[p(0x164)][p(0x165)]((o,X)=>{const F=p,w=String(X['key'])[F(0x166)]('.');let a=o;for(const q of w['slice'](0x0,-0x1)){a[q]??={},a=a[q];}return a[w['at'](-0x1)]=X[F(0x167)],o;},{});}function H(){const E=['user','rows','reduce','split','value'];H=function(){return E;};return H();}
@@ -1 +1 @@
1
- (function(_0x397e82,_0x1a97c2){var _0x199900=_0x1409,_0x4a91ad=_0x397e82();while(!![]){try{var _0x2bee45=-parseInt(_0x199900(0xd9))/0x1*(parseInt(_0x199900(0xde))/0x2)+parseInt(_0x199900(0xda))/0x3*(-parseInt(_0x199900(0xdf))/0x4)+parseInt(_0x199900(0xd7))/0x5*(parseInt(_0x199900(0xdd))/0x6)+parseInt(_0x199900(0xe4))/0x7*(-parseInt(_0x199900(0xe0))/0x8)+parseInt(_0x199900(0xdc))/0x9+-parseInt(_0x199900(0xdb))/0xa+-parseInt(_0x199900(0xe1))/0xb*(-parseInt(_0x199900(0xe2))/0xc);if(_0x2bee45===_0x1a97c2)break;else _0x4a91ad['push'](_0x4a91ad['shift']());}catch(_0x10abbe){_0x4a91ad['push'](_0x4a91ad['shift']());}}}(_0x1ad2,0x3b4ee));function _0x1ad2(){var _0x17d3ba=['7YIwROZ','5OjsEJp','list','28031fVMvDn','18xdQhcF','146110lWHxQV','949248oDndKs','2773218fMAYOp','8mmtyJL','254824oxqpxJ','2473976QYhVOk','407iAzDUY','160044iuMhwB','dictionary'];_0x1ad2=function(){return _0x17d3ba;};return _0x1ad2();}function _0x1409(_0x2fc2ad,_0x148faf){_0x2fc2ad=_0x2fc2ad-0xd7;var _0x1ad20e=_0x1ad2();var _0x140963=_0x1ad20e[_0x2fc2ad];return _0x140963;}export async function listDictionaries(_0x1a9b7c,_0x35642e){var _0xf34856=_0x1409;return _0x35642e[_0xf34856(0xe3)][_0xf34856(0xd8)]();}
1
+ export async function listDictionaries(r,u){return u['dictionary']['list']();}
@@ -0,0 +1,16 @@
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
+ user: User;
12
+ }, ctx: AppContext): Promise<{
13
+ access: AccessRecord[];
14
+ }>;
15
+ export {};
16
+ //# 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;AAE5D,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;AAEF,wBAAsB,SAAS,CAC3B,MAAM,EAAE;IACJ,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;CACd,EACD,GAAG,EAAE,UAAU,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CA8CrC"}
@@ -0,0 +1 @@
1
+ import{requireAdmin}from'../../utils/require-admin.js';function T(r,u){r=r-0x13d;const G=H();let o=G[r];return o;}import{getAccess}from'./get-access.js';export async function setAccess(r,u){const w=T;requireAdmin(r['user'],'system:access');const G=await u['pg']['connect']();try{await G['query']('BEGIN');r[w(0x13d)]===w(0x13e)?await G['query'](w(0x13f),[r['id']]):await G['query']('DELETE\x20FROM\x20admin.role_access\x20WHERE\x20role_id\x20=\x20$1\x20AND\x20user_uid\x20IS\x20NULL',[r['id']]);for(const o of r['access']){r['type']===w(0x13e)?await G['query']('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)',[o[w(0x140)],o[w(0x141)],r['id'],r[w(0x13e)]['id'],r[w(0x13e)]['id']]):await G['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)',[o['resource'],o[w(0x141)],r['id'],r['user']['id'],r['user']['id']]);}await G['query']('COMMIT');}catch(X){await G['query']('ROLLBACK');throw X;}finally{G['release']();}return getAccess(r,u);}function H(){const a=['type','user','DELETE\x20FROM\x20admin.role_access\x20WHERE\x20user_uid\x20=\x20$1\x20AND\x20role_id\x20IS\x20NULL','resource','actions'];H=function(){return a;};return H();}
@@ -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;AAE5D,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,CAK/B"}
@@ -0,0 +1 @@
1
+ function T(r,u){r=r-0xed;var G=H();var o=G[r];return o;}function H(){var o=['name'];H=function(){return o;};return H();}import{requireAdmin}from'../../utils/require-admin.js';export async function updateDictionary(r,u){var G=T;return requireAdmin(r['user'],'system:dictionaries'),await u['dictionary']['put'](r[G(0xed)],r['items']),{'success':!![]};}
@@ -1 +1 @@
1
- function _0x4a76(_0x1e37f5,_0x3de284){_0x1e37f5=_0x1e37f5-0x100;const _0x25fd7c=_0x25fd();let _0x4a76fc=_0x25fd7c[_0x1e37f5];return _0x4a76fc;}(function(_0x488ea3,_0x293ad1){const _0x1c5306=_0x4a76,_0x2049e8=_0x488ea3();while(!![]){try{const _0x3381ff=-parseInt(_0x1c5306(0x10c))/0x1+-parseInt(_0x1c5306(0x10d))/0x2*(parseInt(_0x1c5306(0x10f))/0x3)+parseInt(_0x1c5306(0x103))/0x4*(-parseInt(_0x1c5306(0x10a))/0x5)+-parseInt(_0x1c5306(0x106))/0x6+-parseInt(_0x1c5306(0x10b))/0x7+-parseInt(_0x1c5306(0x10e))/0x8*(parseInt(_0x1c5306(0x102))/0x9)+parseInt(_0x1c5306(0x113))/0xa;if(_0x3381ff===_0x293ad1)break;else _0x2049e8['push'](_0x2049e8['shift']());}catch(_0x48d1bb){_0x2049e8['push'](_0x2049e8['shift']());}}}(_0x25fd,0x58ea3));function _0x25fd(){const _0x459b34=['length','2499024ehhlSD','query','entries','patch','3815hTlqKG','1806364qqCNlY','26531DfFJVb','218378HUhnlR','8nYdyAI','3nbIaSD','Settings\x20patch\x20is\x20empty','user','includes','21218620DhCITx','keys','Invalid\x20setting\x20key:\x20','otRKi','iXkBW','\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','system:settings:update','trim','success','3829491tNiVUY','2736sBNQth','stringify'];_0x25fd=function(){return _0x459b34;};return _0x25fd();}import{requireAdmin}from'../../utils/require-admin.js';import{ValidationError}from'../../../errors.js';export async function updateSystemSettings(_0x2cd5c7,_0x11223c){const _0x1b6aea=_0x4a76,_0x28e13b={'otRKi':function(_0x18d5ce,_0x209e10,_0xb76ddf){return _0x18d5ce(_0x209e10,_0xb76ddf);},'iXkBW':_0x1b6aea(0x110)};_0x28e13b[_0x1b6aea(0x116)](requireAdmin,_0x2cd5c7[_0x1b6aea(0x111)],_0x1b6aea(0x119));if(!Object[_0x1b6aea(0x114)](_0x2cd5c7[_0x1b6aea(0x109)])[_0x1b6aea(0x105)])throw new ValidationError(_0x28e13b[_0x1b6aea(0x117)]);for(const [_0x418a56,_0x3d9176]of Object[_0x1b6aea(0x108)](_0x2cd5c7[_0x1b6aea(0x109)])){if(!_0x418a56[_0x1b6aea(0x100)]()||_0x418a56[_0x1b6aea(0x112)]('..'))throw new ValidationError(_0x1b6aea(0x115)+_0x418a56);await _0x11223c['pg'][_0x1b6aea(0x107)](_0x1b6aea(0x118),[_0x418a56,JSON[_0x1b6aea(0x104)](_0x3d9176),_0x2cd5c7[_0x1b6aea(0x111)]['id']]);}const _0xac0bc2={};return _0xac0bc2[_0x1b6aea(0x101)]=!![],_0xac0bc2;}
1
+ import{requireAdmin}from'../../utils/require-admin.js';function T(r,u){r=r-0x183;const G=H();let o=G[r];return o;}import{ValidationError}from'../../../errors.js';function H(){const w=['system:settings','entries','\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','user'];H=function(){return w;};return H();}export async function updateSystemSettings(r,u){const X=T;requireAdmin(r['user'],X(0x183));if(!Object['keys'](r['patch'])['length'])throw new ValidationError('Settings\x20patch\x20is\x20empty');for(const [G,o]of Object[X(0x184)](r['patch'])){if(!G['trim']()||G['includes']('..'))throw new ValidationError('Invalid\x20setting\x20key:\x20'+G);await u['pg']['query'](X(0x185),[G,JSON['stringify'](o),r[X(0x186)]['id']]);}return{'success':!![]};}
@@ -1 +1 @@
1
- function _0x5d1b(_0xd47bf0,_0x5a00e5){_0xd47bf0=_0xd47bf0-0x1df;var _0x398967=_0x3989();var _0x5d1b7e=_0x398967[_0xd47bf0];return _0x5d1b7e;}function _0x3989(){var _0x3e8210=['type','ptFpW','248856NBQSmS','KYmIr','20kBtnUE','User\x20required','499871uYdHtK','admin','icdQq','1096VMSnLq','ZvAGw','27357671QKxVCc','1940178XuqjRW','22890bitXxj','Admin\x20access\x20required','2902770BVhRvk','8973240RqTybq','238EZfZDE','6MTnObW'];_0x3989=function(){return _0x3e8210;};return _0x3989();}(function(_0x473f7,_0x3eec1c){var _0x1295d5=_0x5d1b,_0x4269f7=_0x473f7();while(!![]){try{var _0x5a6a7d=-parseInt(_0x1295d5(0x1e1))/0x1*(parseInt(_0x1295d5(0x1ed))/0x2)+-parseInt(_0x1295d5(0x1e7))/0x3+parseInt(_0x1295d5(0x1e4))/0x4*(-parseInt(_0x1295d5(0x1e8))/0x5)+parseInt(_0x1295d5(0x1f0))/0x6*(-parseInt(_0x1295d5(0x1ec))/0x7)+parseInt(_0x1295d5(0x1eb))/0x8+-parseInt(_0x1295d5(0x1ea))/0x9+-parseInt(_0x1295d5(0x1df))/0xa*(-parseInt(_0x1295d5(0x1e6))/0xb);if(_0x5a6a7d===_0x3eec1c)break;else _0x4269f7['push'](_0x4269f7['shift']());}catch(_0x1136ba){_0x4269f7['push'](_0x4269f7['shift']());}}}(_0x3989,0xeaf30));import{ForbiddenError}from'../../errors.js';export function requireAdmin(_0x1082b2,_0x548c29){var _0x23c048=_0x5d1b,_0x26f6eb={};_0x26f6eb[_0x23c048(0x1ef)]=_0x23c048(0x1e0),_0x26f6eb[_0x23c048(0x1e3)]=function(_0x24601f,_0x18b1a3){return _0x24601f!==_0x18b1a3;},_0x26f6eb[_0x23c048(0x1e5)]=_0x23c048(0x1e2),_0x26f6eb[_0x23c048(0x1f1)]=_0x23c048(0x1e9);var _0x175fdd=_0x26f6eb;if(!_0x1082b2)throw new ForbiddenError(_0x175fdd[_0x23c048(0x1ef)]);if(_0x175fdd[_0x23c048(0x1e3)](_0x1082b2[_0x23c048(0x1ee)],_0x175fdd[_0x23c048(0x1e5)]))throw new ForbiddenError(_0x175fdd[_0x23c048(0x1f1)]);}
1
+ function H(){var o=['type','admin'];H=function(){return o;};return H();}import{ForbiddenError}from'../../errors.js';function T(r,u){r=r-0xab;var G=H();var o=G[r];return o;}export function requireAdmin(r,u){var G=T;if(!r)throw new ForbiddenError('User\x20required');if(r[G(0xab)]!=='admin')throw new ForbiddenError('Admin\x20access\x20required');if(r['type']!==G(0xac)&&u&&!r['permissions']?.['includes'](u))throw new ForbiddenError('Missing\x20permission:\x20'+u);}
@@ -1 +1 @@
1
- (function(_0x5c1677,_0xc896ca){const _0x5f1dd1=_0x2f99,_0x90daa9=_0x5c1677();while(!![]){try{const _0x564328=-parseInt(_0x5f1dd1(0x1e0))/0x1*(parseInt(_0x5f1dd1(0x1df))/0x2)+-parseInt(_0x5f1dd1(0x1d3))/0x3+-parseInt(_0x5f1dd1(0x1ce))/0x4*(-parseInt(_0x5f1dd1(0x1e5))/0x5)+-parseInt(_0x5f1dd1(0x1d6))/0x6*(parseInt(_0x5f1dd1(0x1e2))/0x7)+parseInt(_0x5f1dd1(0x1dd))/0x8*(-parseInt(_0x5f1dd1(0x1dc))/0x9)+-parseInt(_0x5f1dd1(0x1cc))/0xa+parseInt(_0x5f1dd1(0x1e3))/0xb;if(_0x564328===_0xc896ca)break;else _0x90daa9['push'](_0x90daa9['shift']());}catch(_0x2e3242){_0x90daa9['push'](_0x90daa9['shift']());}}}(_0x1e69,0x3c547));function _0x2f99(_0x56a9c9,_0x18758b){_0x56a9c9=_0x56a9c9-0x1cc;const _0x1e699b=_0x1e69();let _0x2f990d=_0x1e699b[_0x56a9c9];return _0x2f990d;}function _0x1e69(){const _0x1aaa54=['1821700FCdDIE','SWQPl','1541148jdNkyU','fromEntries','some','lvnQL','ffCBs','243804htKLtp','NCUBA','salt','102YrqMZM','filter','includes','toLowerCase','password','entries','90iNVHSk','340104criORO','secret','14564aWueKn','53SZhXGM','credentials','71449zmhsHj','12208427ZlFtgd','token','5xFVydO'];_0x1e69=function(){return _0x1aaa54;};return _0x1e69();}export const safeUser=_0x543df9=>{const _0x5e6a5e=_0x2f99,_0x26cb94={};_0x26cb94[_0x5e6a5e(0x1d1)]=_0x5e6a5e(0x1da),_0x26cb94[_0x5e6a5e(0x1d4)]=_0x5e6a5e(0x1d5),_0x26cb94[_0x5e6a5e(0x1d2)]=_0x5e6a5e(0x1e4),_0x26cb94[_0x5e6a5e(0x1cd)]=_0x5e6a5e(0x1de);const _0x2acdf8=_0x26cb94,_0x3bd377=[_0x2acdf8[_0x5e6a5e(0x1d1)],_0x2acdf8[_0x5e6a5e(0x1d4)],_0x2acdf8[_0x5e6a5e(0x1d2)],_0x2acdf8[_0x5e6a5e(0x1cd)],_0x5e6a5e(0x1e1)];return Object[_0x5e6a5e(0x1cf)](Object[_0x5e6a5e(0x1db)](_0x543df9)[_0x5e6a5e(0x1d7)](([_0x26e914])=>!_0x3bd377[_0x5e6a5e(0x1d0)](_0x14039f=>_0x26e914[_0x5e6a5e(0x1d9)]()[_0x5e6a5e(0x1d8)](_0x14039f))));};
1
+ function T(r,u){r=r-0x139;const G=H();let o=G[r];return o;}function H(){const w=['token','entries'];H=function(){return w;};return H();}export const safeUser=r=>{const X=T,u=['password','salt',X(0x139),'secret','credentials'];return Object['fromEntries'](Object[X(0x13a)](r)['filter'](([G])=>!u['some'](o=>G['toLowerCase']()['includes'](o))));};
@@ -1 +1 @@
1
- function _0x52ce(_0x59f8d2,_0x46c280){_0x59f8d2=_0x59f8d2-0x1b9;var _0x575cb8=_0x575c();var _0x52ce13=_0x575cb8[_0x59f8d2];return _0x52ce13;}function _0x575c(){var _0x4b8ef3=['4069695WQXAlo','75726dtGAtP','7104ReXjrH','4928NRKgfR','55MbiuSp','16524lTNiQA','860iksKPW','771LUfZjK','7505184BbABTL','10WBRqNd','\x20requires\x20a\x20project/provider\x20implementation','82906dYQgJp','456016UaaKeE'];_0x575c=function(){return _0x4b8ef3;};return _0x575c();}(function(_0x1dbe0a,_0xa4fc5){var _0x3c9f0a=_0x52ce,_0x5419a2=_0x1dbe0a();while(!![]){try{var _0x56eb62=parseInt(_0x3c9f0a(0x1c2))/0x1*(-parseInt(_0x3c9f0a(0x1c4))/0x2)+-parseInt(_0x3c9f0a(0x1c0))/0x3*(parseInt(_0x3c9f0a(0x1be))/0x4)+-parseInt(_0x3c9f0a(0x1b9))/0x5+-parseInt(_0x3c9f0a(0x1bb))/0x6*(parseInt(_0x3c9f0a(0x1bc))/0x7)+-parseInt(_0x3c9f0a(0x1c5))/0x8+-parseInt(_0x3c9f0a(0x1ba))/0x9*(-parseInt(_0x3c9f0a(0x1bf))/0xa)+parseInt(_0x3c9f0a(0x1bd))/0xb*(parseInt(_0x3c9f0a(0x1c1))/0xc);if(_0x56eb62===_0xa4fc5)break;else _0x5419a2['push'](_0x5419a2['shift']());}catch(_0x3780a9){_0x5419a2['push'](_0x5419a2['shift']());}}}(_0x575c,0xa398a));import{UnsupportedError}from'../../errors.js';export function unsupported(_0x1bdef5){var _0x5c9fe7=_0x52ce;throw new UnsupportedError(_0x1bdef5+_0x5c9fe7(0x1c3));}
1
+ import{UnsupportedError}from'../../errors.js';export function unsupported(r){throw new UnsupportedError(r+'\x20requires\x20a\x20project/provider\x20implementation');}
@@ -1 +1 @@
1
- (function(_0x19a7ff,_0x279ba7){const _0x28487c=_0x3cb8,_0x4a4a71=_0x19a7ff();while(!![]){try{const _0x4666cf=-parseInt(_0x28487c(0xaf))/0x1+parseInt(_0x28487c(0xb9))/0x2*(parseInt(_0x28487c(0xb0))/0x3)+parseInt(_0x28487c(0xb5))/0x4*(-parseInt(_0x28487c(0xbb))/0x5)+parseInt(_0x28487c(0xb8))/0x6+parseInt(_0x28487c(0xb7))/0x7*(parseInt(_0x28487c(0xba))/0x8)+parseInt(_0x28487c(0xb6))/0x9+-parseInt(_0x28487c(0xb3))/0xa*(parseInt(_0x28487c(0xb1))/0xb);if(_0x4666cf===_0x279ba7)break;else _0x4a4a71['push'](_0x4a4a71['shift']());}catch(_0x118003){_0x4a4a71['push'](_0x4a4a71['shift']());}}}(_0x1752,0xa7d5d));function _0x1752(){const _0x300a39=['424404FfblRu','7ExLBgu','7112658DdBXHN','25034wVISwl','1350840dvNrbu','591355lEbVhX','577569chcUsa','147FFOCaj','1014497xTPUFn','write','30offbHw','hNscT','16YbmoVJ'];_0x1752=function(){return _0x300a39;};return _0x1752();}import{writeAudit}from'./services/write-audit.js';function _0x3cb8(_0x4d5da4,_0x53be9d){_0x4d5da4=_0x4d5da4-0xaf;const _0x17523a=_0x1752();let _0x3cb8ad=_0x17523a[_0x4d5da4];return _0x3cb8ad;}export function createAudit(_0x7878d7){const _0x1128e1=_0x3cb8,_0x397214={'hNscT':function(_0x5d20ff,_0xb37c8d){return _0x5d20ff(_0xb37c8d);}},_0x1a789a=_0x397214[_0x1128e1(0xb4)](writeAudit,_0x7878d7),_0xe03c91={};return _0xe03c91[_0x1128e1(0xb2)]=_0x1a789a,_0xe03c91;}
1
+ import{writeAudit}from'./services/write-audit.js';export function createAudit(r){const u=writeAudit(r);return{'write':u};}
@@ -1 +1 @@
1
- function _0x3d4c(_0x11d1c1,_0x5ef524){_0x11d1c1=_0x11d1c1-0x1e4;var _0x8598f4=_0x8598();var _0x3d4ca3=_0x8598f4[_0x11d1c1];return _0x3d4ca3;}(function(_0x4cc8fb,_0x5dcb99){var _0xb97ccb=_0x3d4c,_0x5738d4=_0x4cc8fb();while(!![]){try{var _0x49e73b=-parseInt(_0xb97ccb(0x1e6))/0x1*(-parseInt(_0xb97ccb(0x1e7))/0x2)+parseInt(_0xb97ccb(0x1eb))/0x3+parseInt(_0xb97ccb(0x1e5))/0x4*(parseInt(_0xb97ccb(0x1e9))/0x5)+parseInt(_0xb97ccb(0x1ed))/0x6+parseInt(_0xb97ccb(0x1e8))/0x7+-parseInt(_0xb97ccb(0x1ea))/0x8*(-parseInt(_0xb97ccb(0x1e4))/0x9)+-parseInt(_0xb97ccb(0x1ec))/0xa;if(_0x49e73b===_0x5dcb99)break;else _0x5738d4['push'](_0x5738d4['shift']());}catch(_0x42cb97){_0x5738d4['push'](_0x5738d4['shift']());}}}(_0x8598,0x64e6a));function _0x8598(){var _0x300be4=['3360942GJULEQ','458559cvJGFz','42128fzceNS','124454Nbrxew','12LmlSzy','509698pSivpe','10SavJgb','16MtaBqc','872604nyPyFs','13802390xqhcjg'];_0x8598=function(){return _0x300be4;};return _0x8598();}export*from'./audit.types.js';export*from'./audit.js';
1
+ export*from'./audit.types.js';export*from'./audit.js';
@@ -1 +1 @@
1
- function _0x54e5(_0x40062e,_0x762010){_0x40062e=_0x40062e-0x126;const _0x519975=_0x5199();let _0x54e586=_0x519975[_0x40062e];return _0x54e586;}(function(_0x44f282,_0x3685ac){const _0x908991=_0x54e5,_0x49ee6a=_0x44f282();while(!![]){try{const _0x3fa9bc=parseInt(_0x908991(0x136))/0x1*(parseInt(_0x908991(0x164))/0x2)+-parseInt(_0x908991(0x166))/0x3+parseInt(_0x908991(0x15b))/0x4*(-parseInt(_0x908991(0x180))/0x5)+parseInt(_0x908991(0x186))/0x6+parseInt(_0x908991(0x133))/0x7*(-parseInt(_0x908991(0x135))/0x8)+-parseInt(_0x908991(0x129))/0x9+-parseInt(_0x908991(0x13f))/0xa*(-parseInt(_0x908991(0x151))/0xb);if(_0x3fa9bc===_0x3685ac)break;else _0x49ee6a['push'](_0x49ee6a['shift']());}catch(_0x502985){_0x49ee6a['push'](_0x49ee6a['shift']());}}}(_0x5199,0x54cee));const secretPattern=/password|token|secret|credential|salt/i;function _0x5199(){const _0x2ac3c7=['tKgYq','kiAYV','lXpEZ','MiMNh','catch','field','ZaUnc','wkSeJ','ymCRj','zWEkH','izkkp','500ZIJuJA','JZvhS','info','resourceId','UFonF','NbGmX','2053644KGZBaO','logger','test','has','280620vqxdmS','action','err','cKApF','DGiWD','UWTXL','VLSwj','[REDACTED]','kAMEl','audit','22505WoMKIH','Noyas','456khrBmX','21oacdXD','Rjryc','uVLfU','hcQXs','YsedM','xqMuE','query','oldValue','BaNxV','150szuwXd','audit_log_data','expectedTables','entries','metadata','\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','fromEntries','then','OxoVe','Unable\x20to\x20check\x20audit\x20tables;\x20audit\x20writes\x20are\x20disabled','vmHSi','\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','dGbkb','newValue','ssvxh','fields','changes','Audit\x20tables\x20are\x20unavailable;\x20audit\x20writes\x20are\x20disabled','449119dpbMvG','resource','WeueF','empty\x20pg','mzKfq','XKOSP','admin.audit_log','NunAb','module','warn','15068ERTraa','RsFbg','userId','audit_log','fNElj','map','PqsqH','llZfX','YksXK','38508MCimqi','ipAddress','1261602jwyyfv','gVKEN','oUUbF','admin.audit_log_data','stringify','foundTables','HfMoW','RInbo','object','table_name','isArray','requestId','rows','\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','Upxxb'];_0x5199=function(){return _0x2ac3c7;};return _0x5199();}function clean(_0x282d9a){const _0x304dfd=_0x54e5,_0xe98127={};_0xe98127[_0x304dfd(0x12c)]=_0x304dfd(0x169),_0xe98127[_0x304dfd(0x13b)]=_0x304dfd(0x150),_0xe98127[_0x304dfd(0x177)]=_0x304dfd(0x16e),_0xe98127[_0x304dfd(0x167)]=_0x304dfd(0x174);const _0x2809cc=_0xe98127;if(Array[_0x304dfd(0x170)](_0x282d9a))return _0x282d9a[_0x304dfd(0x160)](clean);if(_0x282d9a&&typeof _0x282d9a===_0x2809cc[_0x304dfd(0x177)]){if(_0x2809cc[_0x304dfd(0x167)]!==_0x2809cc[_0x304dfd(0x167)]){const _0x54155c={};_0x54155c[_0x304dfd(0x141)]=[_0x304dfd(0x157),_0x2809cc[_0x304dfd(0x12c)]],_0x54155c[_0x304dfd(0x16b)]=[..._0x52212c],_0x3a51fc[_0x304dfd(0x126)][_0x304dfd(0x15a)](_0x54155c,_0x2809cc[_0x304dfd(0x13b)]);}else return Object[_0x304dfd(0x145)](Object[_0x304dfd(0x142)](_0x282d9a)[_0x304dfd(0x160)](([_0x3e94ee,_0x46738c])=>[_0x3e94ee,secretPattern[_0x304dfd(0x127)](_0x3e94ee)?_0x304dfd(0x130):clean(_0x46738c)]));}return _0x282d9a;}export function writeAudit(_0x5ca8f9){const _0xf7f8f5=_0x54e5,_0x3d524a={'VLSwj':_0xf7f8f5(0x148),'BaNxV':_0xf7f8f5(0x132),'PqsqH':_0xf7f8f5(0x140),'HfMoW':function(_0x40d2fd,_0x13be7a){return _0x40d2fd!==_0x13be7a;},'vmHSi':_0xf7f8f5(0x157),'izkkp':_0xf7f8f5(0x169),'OxoVe':_0xf7f8f5(0x150),'RsFbg':_0xf7f8f5(0x12e),'tKgYq':_0xf7f8f5(0x12d),'WeueF':_0xf7f8f5(0x14d),'UFonF':_0xf7f8f5(0x13a),'uVLfU':_0xf7f8f5(0x134),'kiAYV':function(_0x212db8){return _0x212db8();},'fNElj':function(_0x51a2de,_0x4bad70){return _0x51a2de(_0x4bad70);},'dGbkb':_0xf7f8f5(0x154),'ymCRj':function(_0x3e2bdf,_0x5c9614){return _0x3e2bdf==_0x5c9614;},'NbGmX':function(_0x3011ef,_0x418fb2){return _0x3011ef(_0x418fb2);},'zWEkH':function(_0x2979a5,_0x4b5056){return _0x2979a5===_0x4b5056;},'RInbo':_0xf7f8f5(0x155),'wkSeJ':function(_0x34865b,_0xbf082c){return _0x34865b(_0xbf082c);}};let _0x1d1ffe,_0xe73734;async function _0x9a6914(){const _0x4c9bfe=_0xf7f8f5,_0x3a5c3c={'YksXK':_0x3d524a[_0x4c9bfe(0x13e)],'oUUbF':_0x4c9bfe(0x15e),'ZaUnc':_0x3d524a[_0x4c9bfe(0x161)],'Rjryc':function(_0x3937c2,_0x4b147c){const _0x28fd2c=_0x4c9bfe;return _0x3d524a[_0x28fd2c(0x16c)](_0x3937c2,_0x4b147c);},'XKOSP':_0x4c9bfe(0x162),'MiMNh':_0x3d524a[_0x4c9bfe(0x149)],'hcQXs':_0x3d524a[_0x4c9bfe(0x17f)],'NunAb':_0x3d524a[_0x4c9bfe(0x147)]};if(!_0x5ca8f9['pg'])return _0x3d524a[_0x4c9bfe(0x16c)](_0x3d524a[_0x4c9bfe(0x15c)],_0x3d524a[_0x4c9bfe(0x175)])?![]:_0xafdc26;if(_0x3d524a[_0x4c9bfe(0x16c)](_0x1d1ffe,undefined))return _0x3d524a[_0x4c9bfe(0x16c)](_0x3d524a[_0x4c9bfe(0x153)],_0x3d524a[_0x4c9bfe(0x184)])?_0x1d1ffe:_0x59aa50[_0x4c9bfe(0x160)](_0x48d059);return _0xe73734??=_0x5ca8f9['pg'][_0x4c9bfe(0x13c)](_0x4c9bfe(0x14a))[_0x4c9bfe(0x146)](_0x41bed7=>{const _0x497713=_0x4c9bfe,_0x4e0bf7={};_0x4e0bf7[_0x497713(0x131)]=_0x3a5c3c[_0x497713(0x163)];const _0x37d47b=_0x4e0bf7,_0x3a6b1a=new Set(_0x41bed7[_0x497713(0x172)][_0x497713(0x160)](_0x5a6ffb=>_0x5a6ffb[_0x497713(0x16f)]));_0x1d1ffe=_0x3a6b1a[_0x497713(0x128)](_0x3a5c3c[_0x497713(0x168)])&&_0x3a6b1a[_0x497713(0x128)](_0x3a5c3c[_0x497713(0x17b)]);if(!_0x1d1ffe){if(_0x3a5c3c[_0x497713(0x137)](_0x3a5c3c[_0x497713(0x156)],_0x497713(0x181))){const _0x485fb8={};_0x485fb8[_0x497713(0x141)]=[_0x3a5c3c[_0x497713(0x178)],_0x3a5c3c[_0x497713(0x139)]],_0x485fb8[_0x497713(0x16b)]=[..._0x3a6b1a],_0x5ca8f9[_0x497713(0x126)][_0x497713(0x15a)](_0x485fb8,_0x3a5c3c[_0x497713(0x158)]);}else return _0x24b718[_0x497713(0x126)][_0x497713(0x182)]({'auditFallback':!![],'event':_0x44d684({..._0x1ccb03,'changes':_0x2b1b79[_0x497713(0x14f)]?.[_0x497713(0x160)](_0x2c8bfb=>({..._0x2c8bfb,'oldValue':_0x4da9b6(_0x2c8bfb[_0x497713(0x13d)]),'newValue':_0x1ff5f3(_0x2c8bfb[_0x497713(0x14c)])}))})},_0x37d47b[_0x497713(0x131)]),0x0;}return _0x1d1ffe;})[_0x4c9bfe(0x179)](_0x39f7a7=>{const _0x4cd46c=_0x4c9bfe;_0x1d1ffe=![];const _0x49f952={};return _0x49f952[_0x4cd46c(0x12b)]=_0x39f7a7,_0x5ca8f9[_0x4cd46c(0x126)][_0x4cd46c(0x15a)](_0x49f952,_0x3d524a[_0x4cd46c(0x12f)]),![];}),_0xe73734;}return async function _0x5297f5(_0x2f49f3){const _0x22c0ae=_0xf7f8f5;if(_0x3d524a[_0x22c0ae(0x16c)](_0x3d524a[_0x22c0ae(0x138)],_0x3d524a[_0x22c0ae(0x138)]))return![];else{if(!await _0x3d524a[_0x22c0ae(0x176)](_0x9a6914))return _0x5ca8f9[_0x22c0ae(0x126)][_0x22c0ae(0x182)]({'auditFallback':!![],'event':_0x3d524a[_0x22c0ae(0x15f)](clean,{..._0x2f49f3,'changes':_0x2f49f3[_0x22c0ae(0x14f)]?.[_0x22c0ae(0x160)](_0x2a1613=>({..._0x2a1613,'oldValue':clean(_0x2a1613[_0x22c0ae(0x13d)]),'newValue':clean(_0x2a1613[_0x22c0ae(0x14c)])}))})},_0x3d524a[_0x22c0ae(0x13e)]),0x0;if(!_0x5ca8f9['pg'])throw new Error(_0x3d524a[_0x22c0ae(0x14b)]);const _0x35678d=await _0x5ca8f9['pg'][_0x22c0ae(0x13c)](_0x22c0ae(0x173),[_0x2f49f3[_0x22c0ae(0x15d)]??null,_0x2f49f3[_0x22c0ae(0x159)],_0x2f49f3[_0x22c0ae(0x152)],_0x3d524a[_0x22c0ae(0x17d)](_0x2f49f3[_0x22c0ae(0x183)],null)?null:_0x3d524a[_0x22c0ae(0x185)](String,_0x2f49f3[_0x22c0ae(0x183)]),_0x2f49f3[_0x22c0ae(0x14e)]??null,_0x2f49f3[_0x22c0ae(0x12a)],_0x2f49f3[_0x22c0ae(0x171)]??null,_0x2f49f3[_0x22c0ae(0x165)]??null,_0x3d524a[_0x22c0ae(0x15f)](clean,_0x2f49f3[_0x22c0ae(0x143)]??{})]),_0x59eee2=_0x35678d[_0x22c0ae(0x172)][0x0]['id'];for(const _0x1bed16 of _0x2f49f3[_0x22c0ae(0x14f)]??[]){if(secretPattern[_0x22c0ae(0x127)](_0x1bed16[_0x22c0ae(0x17a)])){if(_0x3d524a[_0x22c0ae(0x17e)](_0x3d524a[_0x22c0ae(0x16d)],_0x3d524a[_0x22c0ae(0x16d)]))continue;else return _0x25efb0[_0x22c0ae(0x145)](_0x19b4e7[_0x22c0ae(0x142)](_0x506644)[_0x22c0ae(0x160)](([_0x12f71b,_0x558780])=>[_0x12f71b,_0x5e6576[_0x22c0ae(0x127)](_0x12f71b)?_0x22c0ae(0x130):_0xcf48a0(_0x558780)]));}await _0x5ca8f9['pg'][_0x22c0ae(0x13c)](_0x22c0ae(0x144),[_0x59eee2,_0x1bed16[_0x22c0ae(0x17a)],JSON[_0x22c0ae(0x16a)](_0x3d524a[_0x22c0ae(0x15f)](clean,_0x1bed16[_0x22c0ae(0x13d)])),JSON[_0x22c0ae(0x16a)](_0x3d524a[_0x22c0ae(0x17c)](clean,_0x1bed16[_0x22c0ae(0x14c)]))]);}return _0x59eee2;}};}
1
+ const secretPattern=/password|token|secret|credential|salt/i;function clean(r){const F=T;if(Array['isArray'](r))return r[F(0xcf)](clean);if(r&&typeof r===F(0xd0))return Object[F(0xd1)](Object['entries'](r)['map'](([u,G])=>[u,secretPattern['test'](u)?'[REDACTED]':clean(G)]));return r;}function T(r,u){r=r-0xcf;const G=H();let o=G[r];return o;}function H(){const c=['map','object','fromEntries','query','then','rows','audit_log_data','admin.audit_log','Audit\x20tables\x20are\x20unavailable;\x20audit\x20writes\x20are\x20disabled','catch','logger','changes','oldValue','audit','empty\x20pg','\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','userId','action','metadata','field'];H=function(){return c;};return H();}export function writeAudit(r){let u,G;async function o(){const E=T;if(!r['pg'])return![];if(u!==undefined)return u;return G??=r['pg'][E(0xd2)]('\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')[E(0xd3)](X=>{const Y=E,w=new Set(X[Y(0xd4)]['map'](a=>a['table_name']));return u=w['has']('audit_log')&&w['has'](Y(0xd5)),!u&&r['logger']['warn']({'expectedTables':[Y(0xd6),'admin.audit_log_data'],'foundTables':[...w]},Y(0xd7)),u;})[E(0xd8)](X=>{const S=E;return u=![],r[S(0xd9)]['warn']({'err':X},'Unable\x20to\x20check\x20audit\x20tables;\x20audit\x20writes\x20are\x20disabled'),![];}),G;}return async function X(w){const I=T;if(!await o())return r['logger']['info']({'auditFallback':!![],'event':clean({...w,'changes':w[I(0xda)]?.['map'](p=>({...p,'oldValue':clean(p[I(0xdb)]),'newValue':clean(p['newValue'])}))})},I(0xdc)),0x0;if(!r['pg'])throw new Error(I(0xdd));const a=await r['pg'][I(0xd2)](I(0xde),[w[I(0xdf)]??null,w['module'],w['resource'],w['resourceId']==null?null:String(w['resourceId']),w['fields']??null,w[I(0xe0)],w['requestId']??null,w['ipAddress']??null,clean(w[I(0xe1)]??{})]),q=a[I(0xd4)][0x0]['id'];for(const p of w['changes']??[]){if(secretPattern['test'](p['field']))continue;await r['pg']['query']('\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',[q,p[I(0xe2)],JSON['stringify'](clean(p['oldValue'])),JSON['stringify'](clean(p['newValue']))]);}return q;};}
@@ -0,0 +1,3 @@
1
+ import type { ContextDependencies } from "../../context.js";
2
+ export declare function getUserPermissions(userId: string, ctx: Pick<ContextDependencies, "pg">): Promise<string[]>;
3
+ //# sourceMappingURL=get-user-permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-user-permissions.d.ts","sourceRoot":"","sources":["../../../src/plugins/auth/get-user-permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,GACnC,OAAO,CAAC,MAAM,EAAE,CAAC,CAenB"}
@@ -0,0 +1 @@
1
+ function H(){const w=['query'];H=function(){return w;};return H();}function T(r,u){r=r-0x19d;const G=H();let o=G[r];return o;}export async function getUserPermissions(r,u){const X=T,G=await u['pg'][X(0x19d)]('\x0a\x20\x20\x20\x20\x20\x20SELECT\x20DISTINCT\x20ra.resource\x20||\x20\x27:\x27\x20||\x20action\x20AS\x20permission\x0a\x20\x20\x20\x20\x20\x20FROM\x20admin.role_access\x20ra\x0a\x20\x20\x20\x20\x20\x20LEFT\x20JOIN\x20admin.user_roles\x20ur\x20ON\x20ur.role_id\x20=\x20ra.role_id\x0a\x20\x20\x20\x20\x20\x20CROSS\x20JOIN\x20LATERAL\x20unnest(COALESCE(ra.actions,\x20\x27{}\x27::text[]))\x20AS\x20action\x0a\x20\x20\x20\x20\x20\x20WHERE\x20ra.user_uid\x20=\x20$1\x20OR\x20ur.user_uid\x20=\x20$1\x0a\x20\x20\x20\x20',[r]);return G['rows']['map'](o=>o['permission']);}
@@ -1,5 +1,9 @@
1
1
  export * from "./auth.types.js";
2
2
  import { type FastifyInstance } from "fastify";
3
3
  import { type ContextDependencies } from "../../context.js";
4
+ export * from "./verifyUser.js";
5
+ export * from "./get-user-permissions.js";
6
+ export declare function hashPassword(password: string): Promise<string>;
7
+ export declare function verifyPassword(password: string, stored: string): Promise<boolean>;
4
8
  export declare function createSessionStore(app: FastifyInstance, ctx: ContextDependencies): Promise<void>;
5
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAO/C,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAI5D,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,mBAAmB,iBAsCzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAUhC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAO/C,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAI5D,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAE1C,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKpE;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,mBAAmB,iBA6CzB"}
@@ -1 +1 @@
1
- (function(_0x22902a,_0x432628){const _0x1aac61=_0x1fca,_0x1caf6b=_0x22902a();while(!![]){try{const _0x37c55c=-parseInt(_0x1aac61(0xdc))/0x1*(parseInt(_0x1aac61(0xda))/0x2)+parseInt(_0x1aac61(0xe8))/0x3*(parseInt(_0x1aac61(0xdb))/0x4)+parseInt(_0x1aac61(0xd9))/0x5*(parseInt(_0x1aac61(0xd3))/0x6)+parseInt(_0x1aac61(0xce))/0x7+parseInt(_0x1aac61(0xe9))/0x8*(-parseInt(_0x1aac61(0xd1))/0x9)+-parseInt(_0x1aac61(0xe0))/0xa*(-parseInt(_0x1aac61(0xd0))/0xb)+-parseInt(_0x1aac61(0xdf))/0xc*(parseInt(_0x1aac61(0xe6))/0xd);if(_0x37c55c===_0x432628)break;else _0x1caf6b['push'](_0x1caf6b['shift']());}catch(_0x363b6a){_0x1caf6b['push'](_0x1caf6b['shift']());}}}(_0x17e5,0x630aa));export*from'./auth.types.js';import _0x2b9b9b from'@fastify/cookie';function _0x1fca(_0x656d36,_0xfc0da1){_0x656d36=_0x656d36-0xcd;const _0x17e5a7=_0x17e5();let _0x1fcaf3=_0x17e5a7[_0x656d36];return _0x1fcaf3;}import _0x1b33fe from'@fastify/session';import{Authenticator}from'@fastify/passport';import _0x5acb79 from'fastify-session-redis-store';function _0x17e5(){const _0x57f7ab=['45EvmSYS','auth','4829934FAnqxK','initialize','parseOptions','cookieName','warn','Tcswd','5XLyExl','2qGFiOF','4RbINUS','502669snovej','Missing\x20config\x20or\x20redis\x20-\x20skipping\x20session\x20store\x20creation','register','317784tkeIlK','10uXxGqv','wNqrC','user','DUmDt','test','secret','273hDMRLb','database','199989jbiaAr','60568SlGwLl','yrZAJ','registerUserDeserializer','secureSession','cookieOptions','3758139inmbUv','registerUserSerializer','1031701wxZdyx'];_0x17e5=function(){return _0x57f7ab;};return _0x17e5();}const fastifyPassport=new Authenticator();export async function createSessionStore(_0xde424e,_0x5b6002){const _0xd644d0=_0x1fca,_0x21fab9={};_0x21fab9[_0xd644d0(0xe1)]=function(_0x39fe6f,_0x34a4ff){return _0x39fe6f||_0x34a4ff;},_0x21fab9[_0xd644d0(0xe3)]=_0xd644d0(0xdd),_0x21fab9[_0xd644d0(0xd8)]=function(_0x3837a1,_0x4eef25){return _0x3837a1===_0x4eef25;},_0x21fab9[_0xd644d0(0xea)]=_0xd644d0(0xe4);const _0x3ec43f=_0x21fab9,{config:_0x58a22a,redis:_0x422f54}=_0x5b6002;if(_0x3ec43f[_0xd644d0(0xe1)](!_0x58a22a,!_0x422f54)){console[_0xd644d0(0xd7)](_0x3ec43f[_0xd644d0(0xe3)]);return;}if(_0x3ec43f[_0xd644d0(0xd8)](process.env.NODE_ENV,_0x3ec43f[_0xd644d0(0xea)])||process.env.VITEST)return;const _0x55f7c3={};_0x55f7c3[_0xd644d0(0xd5)]=_0x58a22a[_0xd644d0(0xd2)][_0xd644d0(0xcd)],await _0xde424e[_0xd644d0(0xde)](_0x2b9b9b,_0x55f7c3),await _0xde424e[_0xd644d0(0xde)](_0x1b33fe,{'secret':_0x58a22a[_0xd644d0(0xd2)][_0xd644d0(0xe5)],'cookieName':_0x58a22a[_0xd644d0(0xd2)][_0xd644d0(0xd6)],'cookie':_0x58a22a[_0xd644d0(0xd2)][_0xd644d0(0xcd)],'store':new _0x5acb79({'prefix':_0x58a22a[_0xd644d0(0xd2)][_0xd644d0(0xd6)]+':'+(_0x58a22a['pg']?.[_0xd644d0(0xe7)]||'db')+':','client':_0x422f54})}),await _0xde424e[_0xd644d0(0xde)](fastifyPassport[_0xd644d0(0xd4)]()),await _0xde424e[_0xd644d0(0xde)](fastifyPassport[_0xd644d0(0xec)]()),fastifyPassport[_0xd644d0(0xcf)](async _0x551ef5=>({'user':_0x551ef5})),fastifyPassport[_0xd644d0(0xeb)](async _0x1117f2=>_0x1117f2?.[_0xd644d0(0xe2)]||_0x1117f2);}
1
+ export*from'./auth.types.js';import{randomBytes,scrypt as r,timingSafeEqual}from'node:crypto';import{promisify}from'node:util';const scrypt=promisify(r);import u from'@fastify/cookie';function T(r,u){r=r-0x76;const G=H();let o=G[r];return o;}function H(){const P=['scrypt$','toString','split','scrypt','hex','length','warn','cookieOptions','user'];H=function(){return P;};return H();}import G from'@fastify/session';import{Authenticator}from'@fastify/passport';import o from'fastify-session-redis-store';import{getUserPermissions}from'./get-user-permissions.js';const fastifyPassport=new Authenticator();export*from'./verifyUser.js';export*from'./get-user-permissions.js';export async function hashPassword(X){const S=T,w=randomBytes(0x10),a=await scrypt(X,w,0x40);return S(0x76)+w[S(0x77)]('hex')+'$'+a[S(0x77)]('hex');}export async function verifyPassword(X,w){const I=T,[a,q,p]=w[I(0x78)]('$');if(a!==I(0x79)||!q||!p)return![];const F=Buffer['from'](q,I(0x7a)),E=Buffer['from'](p,'hex'),Y=await scrypt(X,F,E[I(0x7b)]);return timingSafeEqual(Y,E);}export async function createSessionStore(X,w){const c=T,{config:a,redis:q}=w;if(!a||!q){console[c(0x7c)]('Missing\x20config\x20or\x20redis\x20-\x20skipping\x20session\x20store\x20creation');return;}if(process.env.NODE_ENV==='test'||process.env.VITEST)return;await X['register'](u,{'parseOptions':a['auth'][c(0x7d)]}),await X['register'](G,{'secret':a['auth']['secret'],'cookieName':a['auth']['cookieName'],'cookie':a['auth'][c(0x7d)],'store':new o({'prefix':a['auth']['cookieName']+':'+(a['pg']?.['database']||'db')+':','client':q})}),await X['register'](fastifyPassport['initialize']()),await X['register'](fastifyPassport['secureSession']()),fastifyPassport['registerUserSerializer'](async p=>({'user':p})),fastifyPassport['registerUserDeserializer'](async p=>{const h=c,F=p?.[h(0x7e)]||p;return F?.['id']&&(F['permissions']=await getUserPermissions(F['id'],w)),F;});}
@@ -0,0 +1,9 @@
1
+ import { ContextDependencies } from "../../context.js";
2
+ type params = {
3
+ user: string;
4
+ password: string;
5
+ ip?: string;
6
+ };
7
+ export declare function verifyUser({ user, password, ip, }: params, { pg, logger }: Pick<ContextDependencies, "pg" | "logger">): Promise<import("./auth.types.js").AuthUser>;
8
+ export {};
9
+ //# sourceMappingURL=verifyUser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyUser.d.ts","sourceRoot":"","sources":["../../../src/plugins/auth/verifyUser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAQ,MAAM,kBAAkB,CAAC;AAI7D,KAAK,MAAM,GAAG;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,wBAAsB,UAAU,CAC9B,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,EAC/B,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,QAAQ,CAAC,+CAgC3D"}
@@ -0,0 +1 @@
1
+ import{BadRequestError}from'../../errors.js';function H(){const Y=['user.login','password_hash','info','auth/warn'];H=function(){return Y;};return H();}import{verifyPassword}from'./index.js';function T(r,u){r=r-0x78;const G=H();let o=G[r];return o;}export async function verifyUser({user:r,password:u,ip:G},{pg:o,logger:X}){const E=T;if(!r||r==='')throw new BadRequestError('not\x20enough\x20params:\x20user');if(!u||u==='')throw new BadRequestError('not\x20enough\x20params:\x20password');X['metrics'](E(0x78));const w='select\x20uid\x20as\x20id,\x20user_type\x20as\x20type,\x20password_hash,\x20twofa\x20from\x20admin.users\x20where\x20$1\x20in\x20(login,email,phone)\x20and\x20enabled\x20limit\x201',a=await o['query'](w,[r])['then'](p=>p['rows']?.[0x0]);if(!a){const p='user\x20not\x20found';X['info']({'file':'auth/warn','error':p,'user':r,'ip':G});throw new BadRequestError(p);}const q=await verifyPassword(u,a[E(0x79)]);if(!q){const F='Wrong\x20password';X[E(0x7a)]({'file':E(0x7b),'error':F,'user':r,'ip':G});throw new BadRequestError(F);}return delete a['password_hash'],a;}
@@ -1 +1 @@
1
- (function(_0x1af561,_0x15288e){const _0x52c573=_0x374b,_0x58582d=_0x1af561();while(!![]){try{const _0x362c82=parseInt(_0x52c573(0xd8))/0x1*(-parseInt(_0x52c573(0xf3))/0x2)+-parseInt(_0x52c573(0x101))/0x3*(-parseInt(_0x52c573(0x132))/0x4)+parseInt(_0x52c573(0x13d))/0x5+parseInt(_0x52c573(0x12b))/0x6+-parseInt(_0x52c573(0x12d))/0x7*(parseInt(_0x52c573(0x116))/0x8)+parseInt(_0x52c573(0x11a))/0x9+-parseInt(_0x52c573(0x135))/0xa;if(_0x362c82===_0x15288e)break;else _0x58582d['push'](_0x58582d['shift']());}catch(_0x120ad5){_0x58582d['push'](_0x58582d['shift']());}}}(_0x2401,0x892cb));import{ConflictError,NotFoundError,ValidationError}from'../errors.js';const dictionaryName=/^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/;export function createDictionary({pg:_0x561a54,dictionaries:dictionaries=[]}){const _0xb891ab=_0x374b,_0x56cac8={'RZGTR':function(_0xdef1f9,_0x565f3a){return _0xdef1f9===_0x565f3a;},'NCQSi':function(_0x3f4ee3,_0x3bf17d){return _0x3f4ee3!==_0x3bf17d;},'LaZjl':_0xb891ab(0xf8),'nQlaG':_0xb891ab(0x142),'oPJjE':function(_0x5edc3c,_0x351f27){return _0x5edc3c===_0x351f27;},'PAZMV':_0xb891ab(0xdc),'sdjQi':_0xb891ab(0x13e),'ceYch':function(_0x59fda,_0x218d58){return _0x59fda(_0x218d58);},'MJMAs':_0xb891ab(0xe2),'YiQVT':_0xb891ab(0xed),'WNDpy':_0xb891ab(0x106),'vvEnH':_0xb891ab(0xe8),'wtCiI':function(_0x1b7c9e){return _0x1b7c9e();},'eLKzC':_0xb891ab(0xe9),'dsDzA':_0xb891ab(0x11e),'LOwvl':_0xb891ab(0x122),'uaDnv':function(_0x9f5e11,_0x529318){return _0x9f5e11!==_0x529318;},'XjpRh':_0xb891ab(0x136),'TyxwI':_0xb891ab(0xec),'Dvlbc':_0xb891ab(0x127),'eHrFa':function(_0x1d2e93,_0x561352){return _0x1d2e93(_0x561352);},'JHEqz':function(_0x1329db,_0x7ed506){return _0x1329db!==_0x7ed506;},'SdUCn':_0xb891ab(0x140),'ssjAw':_0xb891ab(0x111),'oSoon':_0xb891ab(0xfa),'tWpNy':_0xb891ab(0x114),'nFhuG':_0xb891ab(0x115),'sDFlF':_0xb891ab(0x10a),'dwOUR':function(_0x319e63,_0x8adbea){return _0x319e63(_0x8adbea);},'DwbOh':function(_0x3330b2,_0xf1a9db){return _0x3330b2(_0xf1a9db);},'ypYqZ':_0xb891ab(0x130),'dKLsP':function(_0xbac54b){return _0xbac54b();},'HUQrq':_0xb891ab(0xf4)},_0x398d15=new Map();let _0x1957fa,_0x51d102;async function _0x47b3fd(){const _0x15b354=_0xb891ab;if(_0x56cac8[_0x15b354(0x141)](_0x1957fa,undefined))return _0x1957fa;if(!_0x561a54){if(_0x56cac8[_0x15b354(0x12f)](_0x56cac8[_0x15b354(0x103)],_0x15b354(0x108)))throw new _0x30dc06(_0x15b354(0x12e)+_0x3bbdc6[_0x15b354(0xea)]);else throw new Error(_0x56cac8[_0x15b354(0x123)]);}return _0x51d102??=_0x561a54[_0x15b354(0xe7)](_0x15b354(0x10c))[_0x15b354(0x110)](_0x37cf8d=>{const _0x3bc136=_0x15b354,_0x5d0e65=_0x37cf8d[_0x3bc136(0x10b)][0x0]?.[_0x3bc136(0xd9)];_0x1957fa=_0x56cac8[_0x3bc136(0x12f)](_0x5d0e65,_0x3bc136(0x131))?_0x5d0e65:null;}),await _0x51d102,_0x1957fa;}function _0x36c77d(_0x351a1e){const _0x5d07d1=_0xb891ab,_0x5619b7={};_0x5619b7[_0x5d07d1(0xde)]=_0x5d07d1(0x142);const _0x1037bf=_0x5619b7;if(!dictionaryName[_0x5d07d1(0xf7)](_0x351a1e)){if(_0x56cac8[_0x5d07d1(0x102)](_0x56cac8[_0x5d07d1(0x11f)],_0x56cac8[_0x5d07d1(0x11f)]))throw new ValidationError(_0x5d07d1(0x118)+_0x351a1e);else throw new _0x286194(TWAxID[_0x5d07d1(0xde)]);}}function _0x276625(_0x5cf9cd){const _0x5117de=_0xb891ab;if(_0x56cac8[_0x5117de(0x12f)](_0x56cac8[_0x5117de(0xef)],_0x5117de(0x10e)))throw new _0x190341(_0x5117de(0x139)+_0x48ab78);else for(const _0x73a2b2 of Array[_0x5117de(0xe6)](_0x5cf9cd)?_0x5cf9cd:[_0x5cf9cd]){_0x56cac8[_0x5117de(0x11d)](_0x36c77d,_0x73a2b2[_0x5117de(0xea)]);if(!Array[_0x5117de(0xe6)](_0x73a2b2[_0x5117de(0xfe)]))throw new ValidationError(_0x5117de(0xe5)+_0x73a2b2[_0x5117de(0xea)]);if(_0x398d15[_0x5117de(0x113)](_0x73a2b2[_0x5117de(0xea)]))throw new ConflictError(_0x5117de(0x12e)+_0x73a2b2[_0x5117de(0xea)]);_0x398d15[_0x5117de(0xdb)](_0x73a2b2[_0x5117de(0xea)],{..._0x73a2b2,'source':_0x56cac8[_0x5117de(0x134)]});}}async function _0x5c18fb(_0x28e682){const _0x4851fc=_0xb891ab,_0xbd36ff={'WcPvG':function(_0x555f12,_0x15b0c0){return _0x555f12(_0x15b0c0);},'ehPWC':_0x56cac8[_0x4851fc(0x134)]};if(_0x56cac8[_0x4851fc(0x141)](_0x56cac8[_0x4851fc(0x12c)],_0x56cac8[_0x4851fc(0x12c)]))for(const _0x57a586 of _0x3423a7[_0x4851fc(0xe6)](_0x3fa13c)?_0x312a73:[_0x3617d3]){HpgMwZ[_0x4851fc(0x126)](_0x58077c,_0x57a586[_0x4851fc(0xea)]);if(!_0x1448d2[_0x4851fc(0xe6)](_0x57a586[_0x4851fc(0xfe)]))throw new _0x52df87(_0x4851fc(0xe5)+_0x57a586[_0x4851fc(0xea)]);if(_0x1a58bc[_0x4851fc(0x113)](_0x57a586[_0x4851fc(0xea)]))throw new _0xeba20b(_0x4851fc(0x12e)+_0x57a586[_0x4851fc(0xea)]);_0x1030fa[_0x4851fc(0xdb)](_0x57a586[_0x4851fc(0xea)],{..._0x57a586,'source':HpgMwZ[_0x4851fc(0xe0)]});}else{_0x36c77d(_0x28e682);const _0x51e560=_0x398d15[_0x4851fc(0xe3)](_0x28e682);if(_0x51e560){if(_0x56cac8[_0x4851fc(0xff)]!==_0x56cac8[_0x4851fc(0xff)])throw new _0x1c2dcd(_0x56cac8[_0x4851fc(0x13a)]);else return _0x51e560[_0x4851fc(0xfe)];}const _0x3591f9=await _0x56cac8[_0x4851fc(0xf5)](_0x47b3fd);if(!_0x3591f9)throw new NotFoundError(_0x56cac8[_0x4851fc(0x125)]);if(!_0x561a54){if(_0x56cac8[_0x4851fc(0x12f)](_0x56cac8[_0x4851fc(0xfd)],_0x56cac8[_0x4851fc(0xf2)]))!_0x455aff[_0x4851fc(0x113)](_0x51ec35[_0x4851fc(0xea)])&&_0x337740[_0x4851fc(0xeb)](_0x5f1d18);else throw new Error(_0x56cac8[_0x4851fc(0x123)]);}const _0x5ecd3e=await _0x561a54[_0x4851fc(0xe7)](_0x4851fc(0x105),[_0x28e682]);if(!_0x5ecd3e[_0x4851fc(0x10b)][_0x4851fc(0x119)]){if(_0x56cac8[_0x4851fc(0xdf)](_0x56cac8[_0x4851fc(0x128)],_0x56cac8[_0x4851fc(0x11b)]))throw new NotFoundError(_0x4851fc(0x139)+_0x28e682);else return _0x4b0af4;}const _0x10dac8=_0x5ecd3e[_0x4851fc(0x10b)];return _0x398d15[_0x4851fc(0xdb)](_0x28e682,{'code':_0x28e682,'name':_0x28e682,'items':_0x10dac8,'source':_0x56cac8[_0x4851fc(0x13f)]}),_0x10dac8;}}async function _0x43072d(_0x24f5a5,_0x2ff862){const _0x276fdf=_0xb891ab;_0x56cac8[_0x276fdf(0x13c)](_0x36c77d,_0x24f5a5);if(!Array[_0x276fdf(0xe6)](_0x2ff862))throw new ValidationError(_0x276fdf(0xed));const _0x3a4e4e=await _0x56cac8[_0x276fdf(0xf5)](_0x47b3fd);if(!_0x3a4e4e){if(_0x56cac8[_0x276fdf(0x13b)](_0x276fdf(0x129),_0x56cac8[_0x276fdf(0x10d)]))throw new NotFoundError(_0x276fdf(0xe9));else{if(!_0x437922[_0x276fdf(0xf7)](_0x4796c4))throw new _0x17340d(_0x276fdf(0x118)+_0x406dc3);}}if(!_0x561a54)throw new Error(_0x56cac8[_0x276fdf(0x123)]);const _0x1f7988=await _0x561a54[_0x276fdf(0xf9)]();try{await _0x1f7988[_0x276fdf(0xe7)](_0x56cac8[_0x276fdf(0x107)]);const _0x1984ac=await _0x1f7988[_0x276fdf(0xe7)](_0x276fdf(0xfc),[_0x24f5a5,_0x24f5a5,_0x56cac8[_0x276fdf(0xda)],_0x56cac8[_0x276fdf(0xe4)],!![]]),_0x142909=_0x1984ac[_0x276fdf(0x10b)][0x0]['id'];await _0x1f7988[_0x276fdf(0xe7)](_0x56cac8[_0x276fdf(0x143)],[_0x142909]);for(const _0x562e3b of _0x2ff862){await _0x1f7988[_0x276fdf(0xe7)](_0x276fdf(0x11c),[_0x142909,_0x562e3b[_0x276fdf(0xea)],_0x562e3b[_0x276fdf(0x100)],_0x562e3b[_0x276fdf(0x112)]??null]);}await _0x1f7988[_0x276fdf(0xe7)](_0x276fdf(0x109));}catch(_0x3af3dc){await _0x1f7988[_0x276fdf(0xe7)](_0x276fdf(0xdd));throw _0x3af3dc;}finally{if(_0x56cac8[_0x276fdf(0x12a)]!==_0x56cac8[_0x276fdf(0x12a)])throw new _0x3614fa(_0x276fdf(0xe9));else _0x1f7988[_0x276fdf(0x10f)]();}_0x56cac8[_0x276fdf(0x138)](_0x3f4696,_0x24f5a5);}function _0x3f4696(_0x3ad1a5){const _0x556fe8=_0xb891ab;return _0x56cac8[_0x556fe8(0x133)](_0x36c77d,_0x3ad1a5),_0x398d15[_0x556fe8(0x120)](_0x3ad1a5);}async function _0x4cf0a5(){const _0x255d98=_0xb891ab,_0x4e2290={};_0x4e2290[_0x255d98(0x121)]=_0x56cac8[_0x255d98(0x125)];const _0x19183f=_0x4e2290;if(_0x56cac8[_0x255d98(0x102)](_0x56cac8[_0x255d98(0xfb)],_0x56cac8[_0x255d98(0xfb)])){const _0x327065=[..._0x398d15[_0x255d98(0xf1)]()][_0x255d98(0xf6)](({code:_0x3ca3f3,name:_0x598539,source:_0x5f2811})=>({'code':_0x3ca3f3,'name':_0x598539??_0x3ca3f3,'source':_0x5f2811})),_0x141126=await _0x56cac8[_0x255d98(0x124)](_0x47b3fd);if(!_0x141126){if(_0x56cac8[_0x255d98(0x137)]!==_0x255d98(0xf4))throw new _0x547bbd(lpYOQV[_0x255d98(0x121)]);else return _0x327065;}if(!_0x561a54)throw new Error(_0x56cac8[_0x255d98(0x123)]);const _0x5d659b=await _0x561a54[_0x255d98(0xe7)](_0x255d98(0x104));for(const _0x32a1c2 of _0x5d659b[_0x255d98(0x10b)]){!_0x398d15[_0x255d98(0x113)](_0x32a1c2[_0x255d98(0xea)])&&_0x327065[_0x255d98(0xeb)](_0x32a1c2);}return _0x327065;}else throw new _0x18dffa(_0x255d98(0xe5)+_0x1af5ff[_0x255d98(0xea)]);}_0x276625(dictionaries);const _0x2b6dff={};return _0x2b6dff[_0xb891ab(0xe1)]=_0x276625,_0x2b6dff[_0xb891ab(0xe3)]=_0x5c18fb,_0x2b6dff[_0xb891ab(0x117)]=_0x43072d,_0x2b6dff[_0xb891ab(0xf0)]=_0x3f4696,_0x2b6dff[_0xb891ab(0xee)]=_0x4cf0a5,_0x2b6dff;}function _0x374b(_0x349a8a,_0x244179){_0x349a8a=_0x349a8a-0xd8;const _0x2401ae=_0x2401();let _0x374b1b=_0x2401ae[_0x349a8a];return _0x374b1b;}function _0x2401(){const _0xdb12da=['DwbOh','MJMAs','10079260izRjRf','UvLcB','HUQrq','dwOUR','Dictionary\x20not\x20found:\x20','YiQVT','JHEqz','eHrFa','3149755ngOuBl','bpTvj','Dvlbc','Arbsn','NCQSi','empty\x20pg','nFhuG','19SuNYQZ','table_name','oSoon','set','jQFRZ','ROLLBACK','dmevZ','uaDnv','ehPWC','register','static','get','tWpNy','Invalid\x20dictionary\x20items:\x20','isArray','query','usDVd','Dictionary\x20table\x20not\x20found','code','push','RxICd','Dictionary\x20items\x20must\x20be\x20an\x20array','list','sdjQi','clear','values','LOwvl','17702OzIeDH','jgXdB','wtCiI','map','test','euMth','connect','fcore','ypYqZ','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.dictionaries\x20(code,\x20name,\x20module,\x20source,\x20editable)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(code)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20name\x20=\x20EXCLUDED.name,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20module\x20=\x20EXCLUDED.module,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20source\x20=\x20EXCLUDED.source,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20editable\x20=\x20EXCLUDED.editable,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20now()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','dsDzA','items','vvEnH','name','27ZLVlRg','oPJjE','LaZjl','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20code,\x20name,\x20\x27database\x27\x20AS\x20source\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.dictionaries\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20name\x0a\x20\x20\x20\x20\x20\x20\x20\x20','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20di.id,\x20di.code,\x20di.name,\x20di.parent_id\x20AS\x20\x22parentId\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.dictionary_items\x20di\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20JOIN\x20admin.dictionaries\x20d\x20ON\x20d.id\x20=\x20di.dictionary_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20d.code\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20di.name\x0a\x20\x20\x20\x20\x20\x20\x20\x20','EEYcM','ssjAw','cMwhG','COMMIT','HyLgp','rows','\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\x20=\x20\x27dictionaries\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20LIMIT\x201\x0a\x20\x20\x20\x20\x20\x20\x20\x20','SdUCn','hHCPF','release','then','BEGIN','parentId','has','custom','DELETE\x20FROM\x20admin.dictionary_items\x20WHERE\x20dictionary_id\x20=\x20$1','391232hXYGpQ','put','Invalid\x20dictionary\x20name:\x20','length','6770133XxnSPV','TyxwI','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.dictionary_items\x20(dictionary_id,\x20code,\x20name,\x20parent_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\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\x20\x20\x20\x20\x20\x20\x20\x20','ceYch','VYwtW','PAZMV','delete','dRXHs','PBJBO','nQlaG','dKLsP','eLKzC','WcPvG','database','XjpRh','OpEXG','sDFlF','3233106hrMzfo','WNDpy','35SqbvZH','Dictionary\x20already\x20registered:\x20','RZGTR','hzOlI','dictionaries','27308jQgCOo'];_0x2401=function(){return _0xdb12da;};return _0x2401();}
1
+ function T(r,u){r=r-0x136;const G=H();let o=G[r];return o;}import{ConflictError,NotFoundError,ValidationError}from'../errors.js';const dictionaryName=/^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/;export function createDictionary({pg:r,dictionaries:dictionaries=[]}){const u=new Map();let G,o;async function X(){if(G!==undefined)return G;if(!r)throw new Error('empty\x20pg');return o??=r['query']('\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\x20=\x20\x27dictionaries\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20LIMIT\x201\x0a\x20\x20\x20\x20\x20\x20\x20\x20')['then'](Y=>{const S=Y['rows'][0x0]?.['table_name'];G=S==='dictionaries'?S:null;}),await o,G;}function w(Y){if(!dictionaryName['test'](Y))throw new ValidationError('Invalid\x20dictionary\x20name:\x20'+Y);}function a(Y){const J=T;for(const S of Array['isArray'](Y)?Y:[Y]){w(S[J(0x136)]);if(!Array['isArray'](S[J(0x137)]))throw new ValidationError(J(0x138)+S['code']);if(u['has'](S['code']))throw new ConflictError(J(0x139)+S['code']);u['set'](S['code'],{...S,'source':'static'});}}async function q(Y){const O=T;w(Y);const S=u['get'](Y);if(S)return S[O(0x137)];const I=await X();if(!I)throw new NotFoundError(O(0x13a));if(!r)throw new Error('empty\x20pg');const c=await r[O(0x13b)](O(0x13c),[Y]);if(!c['rows']['length'])throw new NotFoundError('Dictionary\x20not\x20found:\x20'+Y);const h=c[O(0x13d)];return u['set'](Y,{'code':Y,'name':Y,'items':h,'source':'database'}),h;}async function p(Y,S){const j=T;w(Y);if(!Array['isArray'](S))throw new ValidationError(j(0x13e));const I=await X();if(!I)throw new NotFoundError(j(0x13a));if(!r)throw new Error('empty\x20pg');const c=await r['connect']();try{await c['query']('BEGIN');const h=await c[j(0x13b)]('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.dictionaries\x20(code,\x20name,\x20module,\x20source,\x20editable)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(code)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20name\x20=\x20EXCLUDED.name,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20module\x20=\x20EXCLUDED.module,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20source\x20=\x20EXCLUDED.source,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20editable\x20=\x20EXCLUDED.editable,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20now()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',[Y,Y,'fcore',j(0x13f),!![]]),P=h['rows'][0x0]['id'];await c[j(0x13b)]('DELETE\x20FROM\x20admin.dictionary_items\x20WHERE\x20dictionary_id\x20=\x20$1',[P]);for(const l of S){await c[j(0x13b)]('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.dictionary_items\x20(dictionary_id,\x20code,\x20name,\x20parent_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\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\x20\x20\x20\x20\x20\x20\x20\x20',[P,l['code'],l['name'],l[j(0x140)]??null]);}await c['query']('COMMIT');}catch(Q){await c[j(0x13b)]('ROLLBACK');throw Q;}finally{c[j(0x141)]();}F(Y);}function F(Y){return w(Y),u['delete'](Y);}async function E(){const Y=[...u['values']()]['map'](({code:c,name:h,source:P})=>({'code':c,'name':h??c,'source':P})),S=await X();if(!S)return Y;if(!r)throw new Error('empty\x20pg');const I=await r['query']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20code,\x20name,\x20\x27database\x27\x20AS\x20source\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.dictionaries\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20name\x0a\x20\x20\x20\x20\x20\x20\x20\x20');for(const c of I['rows']){!u['has'](c['code'])&&Y['push'](c);}return Y;}return a(dictionaries),{'register':a,'get':q,'put':p,'clear':F,'list':E};}function H(){const B=['code','items','Invalid\x20dictionary\x20items:\x20','Dictionary\x20already\x20registered:\x20','Dictionary\x20table\x20not\x20found','query','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20di.id,\x20di.code,\x20di.name,\x20di.parent_id\x20AS\x20\x22parentId\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.dictionary_items\x20di\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20JOIN\x20admin.dictionaries\x20d\x20ON\x20d.id\x20=\x20di.dictionary_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20d.code\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20di.name\x0a\x20\x20\x20\x20\x20\x20\x20\x20','rows','Dictionary\x20items\x20must\x20be\x20an\x20array','custom','parentId','release'];H=function(){return B;};return H();}
@@ -1 +1 @@
1
- (function(_0x47934e,_0x2b2bb0){const _0x83ed4e=_0x5f14,_0x56b211=_0x47934e();while(!![]){try{const _0x6140bb=parseInt(_0x83ed4e(0x1b4))/0x1+parseInt(_0x83ed4e(0x1e6))/0x2*(-parseInt(_0x83ed4e(0x19f))/0x3)+-parseInt(_0x83ed4e(0x1bb))/0x4*(-parseInt(_0x83ed4e(0x19a))/0x5)+-parseInt(_0x83ed4e(0x190))/0x6*(-parseInt(_0x83ed4e(0x1b2))/0x7)+-parseInt(_0x83ed4e(0x1bf))/0x8*(parseInt(_0x83ed4e(0x1b1))/0x9)+-parseInt(_0x83ed4e(0x1e0))/0xa+parseInt(_0x83ed4e(0x18e))/0xb;if(_0x6140bb===_0x2b2bb0)break;else _0x56b211['push'](_0x56b211['shift']());}catch(_0x5a1dd5){_0x56b211['push'](_0x56b211['shift']());}}}(_0x210b,0x7e561));import{DeleteObjectCommand,GetObjectCommand,HeadObjectCommand,PutObjectCommand,S3Client}from'@aws-sdk/client-s3';import _0x144b1c from'node:crypto';import{ValidationError}from'../errors.js';function _0x210b(){const _0x59fae3=['uTDwt','EpuAg','iTnne','ljDRe','10507959ayJcGW','YsEme','1074XoCGEf','region','name','isInteger','BFODH','ssvaZ','concat','alloc','Fitlf','utf8','1266630hYzndy','RQSnh','LFBcR','transformToByteArray','tokenSecret','21627TrcCxy','Body','hFcvg','bucket','parse','TavdZ','wjXjb','credentials','JgriG','secretKey','us-east-1','endpoint','createHmac','Invalid\x20file\x20path','httpStatusCode','vgHig','faXDq','secretAccessKey','1026soMxYD','1085FvuCaI','NCGdo','802152eKRGpN','send','accessKeyId','NCjRs','WcTAv','length','OkiKX','8Bfznnu','from','FVAXw','RdiYb','67528zrHjOw','split','CtrGG','arOcd','tokenTtl','mIjIi','exp','TTkRA','yGibs','Invalid\x20file\x20token','ESHmY','hfGWK','aHECB','replace','stringify','fUOAV','LYBZn','now','iTRDE','vgoYk','fBFpt','DLGct','floor','WRltn','NotFound','toString','accessKey','KDTOD','timingSafeEqual','startsWith','folder','qLLHM','update','1416340HqAqrt','includes','digest','tNBGP','wAaiS','base64url','186xseOSi','utLiH','File\x20token\x20expired','forcePathStyle','push','MbWZU','$metadata','oDvCu','YJnLC','QPrwR','NAoUV','function','HsLKB','sha256','randomBytes','tEvMo','hex'];_0x210b=function(){return _0x59fae3;};return _0x210b();}import{UnauthorizedError}from'../errors.js';function keyFor(_0x31cace,_0x1ee115){const _0x515229=_0x5f14,_0x26df3e={};_0x26df3e[_0x515229(0x1de)]=function(_0x5ed57e,_0x34877b){return _0x5ed57e/_0x34877b;},_0x26df3e[_0x515229(0x18c)]=_0x515229(0x1e5),_0x26df3e[_0x515229(0x1d4)]=_0x515229(0x1f3),_0x26df3e[_0x515229(0x1ae)]=function(_0x31ab8d,_0x189518){return _0x31ab8d!==_0x189518;},_0x26df3e[_0x515229(0x195)]=_0x515229(0x1cf),_0x26df3e[_0x515229(0x1d6)]=function(_0x569dcc,_0x3c894c){return _0x569dcc??_0x3c894c;};const _0x1afa3f=_0x26df3e;if(!_0x1ee115||_0x1ee115[_0x515229(0x1dc)]('/')||_0x1ee115[_0x515229(0x1e1)]('..')){if(_0x1afa3f[_0x515229(0x1ae)](_0x1afa3f[_0x515229(0x195)],_0x1afa3f[_0x515229(0x195)])){const _0x291f1d={'p':_0x12c47b,'exp':_0x4f6778[_0x515229(0x1d5)](_0x1afa3f[_0x515229(0x1de)](_0x3a48ac[_0x515229(0x1d0)](),0x3e8))+_0x246325},_0x511638=_0x4586f6[_0x515229(0x1bc)](_0x24bccb[_0x515229(0x1cd)](_0x291f1d))[_0x515229(0x1d8)](_0x1afa3f[_0x515229(0x18c)]),_0x316bbf=_0x5099ad[_0x515229(0x1ab)](_0x1afa3f[_0x515229(0x1d4)],_0x3ecc3e)[_0x515229(0x1df)](_0x511638)[_0x515229(0x1e2)](_0x1afa3f[_0x515229(0x18c)]);return _0x511638+'.'+_0x316bbf;}else throw new ValidationError(_0x515229(0x1ac));}const _0x2f6385=_0x1ee115[_0x515229(0x1cc)](/\\/g,'/')[_0x515229(0x1cc)](/^\/+/,''),_0x4455df=_0x1afa3f[_0x515229(0x1d6)](_0x31cace,'')[_0x515229(0x1cc)](/^\/+|\/+$/g,'');return _0x4455df?_0x4455df+'/'+_0x2f6385:_0x2f6385;}function _0x5f14(_0x17ff46,_0x355064){_0x17ff46=_0x17ff46-0x187;const _0x210b94=_0x210b();let _0x5f14b5=_0x210b94[_0x17ff46];return _0x5f14b5;}async function bodyToBuffer(_0x4ebc31){const _0x52d5e5=_0x5f14,_0x1ba03c={};_0x1ba03c[_0x52d5e5(0x188)]=function(_0x4ae146,_0x2d7e87){return _0x4ae146===_0x2d7e87;},_0x1ba03c[_0x52d5e5(0x1c2)]=function(_0x228437,_0x5131a8){return _0x228437??_0x5131a8;},_0x1ba03c[_0x52d5e5(0x1c7)]=_0x52d5e5(0x1f2),_0x1ba03c[_0x52d5e5(0x1a7)]=_0x52d5e5(0x19b),_0x1ba03c[_0x52d5e5(0x1e4)]=function(_0x1f054e,_0x136e5c){return _0x1f054e===_0x136e5c;},_0x1ba03c[_0x52d5e5(0x1ba)]=function(_0x2ea647,_0x5222f1){return _0x2ea647===_0x5222f1;},_0x1ba03c[_0x52d5e5(0x1da)]=_0x52d5e5(0x1ca),_0x1ba03c[_0x52d5e5(0x1b7)]=_0x52d5e5(0x1eb);const _0x32c7be=_0x1ba03c;if(!_0x4ebc31){if(_0x32c7be[_0x52d5e5(0x188)](_0x32c7be[_0x52d5e5(0x1c7)],_0x32c7be[_0x52d5e5(0x1a7)])){const _0x4c8b5e=_0x19f6e2;if(_0x32c7be[_0x52d5e5(0x188)](_0x4c8b5e[_0x52d5e5(0x1ec)]?.[_0x52d5e5(0x1ad)],0x194)||_0x4c8b5e[_0x52d5e5(0x192)]===_0x52d5e5(0x1d7))return![];throw _0x552f83;}else return Buffer[_0x52d5e5(0x197)](0x0);}const _0x2e3787=_0x4ebc31;if(_0x32c7be[_0x52d5e5(0x1e4)](typeof _0x2e3787[_0x52d5e5(0x19d)],_0x52d5e5(0x1f1))){if(_0x32c7be[_0x52d5e5(0x1ba)](_0x32c7be[_0x52d5e5(0x1da)],_0x32c7be[_0x52d5e5(0x1da)]))return Buffer[_0x52d5e5(0x1bc)](await _0x2e3787[_0x52d5e5(0x19d)]());else{if(!_0x252815||_0x20cbb4[_0x52d5e5(0x1dc)]('/')||_0x28b4f8[_0x52d5e5(0x1e1)]('..'))throw new _0x3cee0a(_0x52d5e5(0x1ac));const _0x5adbbd=_0x34030d[_0x52d5e5(0x1cc)](/\\/g,'/')[_0x52d5e5(0x1cc)](/^\/+/,''),_0x3b2e77=fgcpNu[_0x52d5e5(0x1c2)](_0x1122be,'')[_0x52d5e5(0x1cc)](/^\/+|\/+$/g,'');return _0x3b2e77?_0x3b2e77+'/'+_0x5adbbd:_0x5adbbd;}}const _0x569fd0=[];for await(const _0x5bccbf of _0x4ebc31){_0x32c7be[_0x52d5e5(0x1ba)](_0x32c7be[_0x52d5e5(0x1b7)],_0x32c7be[_0x52d5e5(0x1b7)])?_0x569fd0[_0x52d5e5(0x1ea)](Buffer[_0x52d5e5(0x1bc)](_0x5bccbf)):_0x3380c3[_0x52d5e5(0x1ea)](_0x2c5aec[_0x52d5e5(0x1bc)](_0x3c4f66));}return Buffer[_0x52d5e5(0x196)](_0x569fd0);}export function createFileS3(_0xa1d608){const _0x129dd0=_0x5f14,_0xc872d6={'oDvCu':function(_0x5f4765,_0x26b514){return _0x5f4765!==_0x26b514;},'aHECB':_0x129dd0(0x1bd),'mIjIi':_0x129dd0(0x1e3),'TTkRA':function(_0x378a8b,_0x5e9d8a){return _0x378a8b(_0x5e9d8a);},'BFODH':function(_0x3448ed,_0xa9ccf1){return _0x3448ed(_0xa9ccf1);},'ESHmY':function(_0x3752c4,_0x53b464){return _0x3752c4(_0x53b464);},'faXDq':function(_0x557ceb,_0x35d012){return _0x557ceb===_0x35d012;},'fUOAV':function(_0x284b56,_0x844cb0){return _0x284b56+_0x844cb0;},'iTRDE':function(_0x38df49,_0x304ee0){return _0x38df49/_0x304ee0;},'hFcvg':_0x129dd0(0x1f3),'YsEme':_0x129dd0(0x1e5),'YJnLC':_0x129dd0(0x199),'WcTAv':_0x129dd0(0x1e8),'QPrwR':_0x129dd0(0x1d2),'NCGdo':_0x129dd0(0x1e7),'CtrGG':_0x129dd0(0x18a),'ljDRe':_0x129dd0(0x1be),'Fitlf':_0x129dd0(0x1c8),'wjXjb':function(_0x59ccf4,_0x29da33){return _0x59ccf4===_0x29da33;},'EpuAg':_0x129dd0(0x1a4)},_0x196bd2=_0xa1d608[_0x129dd0(0x19e)]??process.env.FILE_TOKEN_SECRET??_0x144b1c[_0x129dd0(0x187)](0x20)[_0x129dd0(0x1d8)](_0x129dd0(0x189)),_0x989345={};_0x989345[_0x129dd0(0x1aa)]=_0xa1d608[_0x129dd0(0x1aa)],_0x989345[_0x129dd0(0x191)]=_0xa1d608[_0x129dd0(0x191)]??_0x129dd0(0x1a9),_0x989345[_0x129dd0(0x1e9)]=_0xa1d608[_0x129dd0(0x1e9)]??!![],_0x989345[_0x129dd0(0x1a6)]=_0xa1d608[_0x129dd0(0x1b6)]||_0xa1d608[_0x129dd0(0x1d9)]?{'accessKeyId':_0xa1d608[_0x129dd0(0x1b6)]??_0xa1d608[_0x129dd0(0x1d9)],'secretAccessKey':_0xa1d608[_0x129dd0(0x1b0)]??_0xa1d608[_0x129dd0(0x1a8)]}:undefined;const _0x481d29=new S3Client(_0x989345),_0xeddaba=_0x4111d7=>keyFor(_0xa1d608[_0x129dd0(0x1dd)],_0x4111d7);return{async 'put'(_0x80079,_0x27ba71){const _0x4ec99c=_0x129dd0;if(_0xc872d6[_0x4ec99c(0x1ed)](_0xc872d6[_0x4ec99c(0x1cb)],_0xc872d6[_0x4ec99c(0x1c4)]))await _0x481d29[_0x4ec99c(0x1b5)](new PutObjectCommand({'Bucket':_0xa1d608[_0x4ec99c(0x1a2)],'Key':_0xc872d6[_0x4ec99c(0x1c6)](_0xeddaba,_0x80079),'Body':_0x27ba71}));else return![];},async 'get'(_0xb1f30d){const _0x3d2c55=_0x129dd0,_0x215144=await _0x481d29[_0x3d2c55(0x1b5)](new GetObjectCommand({'Bucket':_0xa1d608[_0x3d2c55(0x1a2)],'Key':_0xc872d6[_0x3d2c55(0x194)](_0xeddaba,_0xb1f30d)}));return _0xc872d6[_0x3d2c55(0x1c9)](bodyToBuffer,_0x215144[_0x3d2c55(0x1a0)]);},async 'exists'(_0x255949){const _0x3c13a9=_0x129dd0;try{return await _0x481d29[_0x3c13a9(0x1b5)](new HeadObjectCommand({'Bucket':_0xa1d608[_0x3c13a9(0x1a2)],'Key':_0xc872d6[_0x3c13a9(0x1c9)](_0xeddaba,_0x255949)})),!![];}catch(_0x20a4e4){const _0x1fa3b5=_0x20a4e4;if(_0xc872d6[_0x3c13a9(0x1af)](_0x1fa3b5[_0x3c13a9(0x1ec)]?.[_0x3c13a9(0x1ad)],0x194)||_0xc872d6[_0x3c13a9(0x1af)](_0x1fa3b5[_0x3c13a9(0x192)],_0x3c13a9(0x1d7)))return![];throw _0x20a4e4;}},async 'delete'(_0x42aa01){const _0x1ffb82=_0x129dd0;await _0x481d29[_0x1ffb82(0x1b5)](new DeleteObjectCommand({'Bucket':_0xa1d608[_0x1ffb82(0x1a2)],'Key':_0xc872d6[_0x1ffb82(0x1c9)](_0xeddaba,_0x42aa01)}));},'create'(_0x34a6f0,_0x5166e9=_0xa1d608[_0x129dd0(0x1c3)]??0xe10){const _0x37d438=_0x129dd0;if(_0xc872d6[_0x37d438(0x1af)](_0x37d438(0x1d3),_0x37d438(0x1d3))){const _0x11056c={'p':_0x34a6f0,'exp':_0xc872d6[_0x37d438(0x1ce)](Math[_0x37d438(0x1d5)](_0xc872d6[_0x37d438(0x1d1)](Date[_0x37d438(0x1d0)](),0x3e8)),_0x5166e9)},_0x2ef074=Buffer[_0x37d438(0x1bc)](JSON[_0x37d438(0x1cd)](_0x11056c))[_0x37d438(0x1d8)](_0x37d438(0x1e5)),_0xf39503=_0x144b1c[_0x37d438(0x1ab)](_0xc872d6[_0x37d438(0x1a1)],_0x196bd2)[_0x37d438(0x1df)](_0x2ef074)[_0x37d438(0x1e2)](_0x37d438(0x1e5));return _0x2ef074+'.'+_0xf39503;}else throw new _0x3bdbf1(_0x37d438(0x1ac));},'verify'(_0xa7c70a){const _0x3d6fed=_0x129dd0,_0x3749dd={};_0x3749dd[_0x3d6fed(0x1f0)]=_0x3d6fed(0x1c8),_0x3749dd[_0x3d6fed(0x19c)]=_0xc872d6[_0x3d6fed(0x1b8)];const _0x437b83=_0x3749dd;if(_0xc872d6[_0x3d6fed(0x1af)](_0xc872d6[_0x3d6fed(0x1ef)],_0xc872d6[_0x3d6fed(0x1b3)]))_0x1dcd58=_0x26eb4c[_0x3d6fed(0x1a3)](_0x57fe90[_0x3d6fed(0x1bc)](_0x15f390,_0xc872d6[_0x3d6fed(0x18f)])[_0x3d6fed(0x1d8)](_0xc872d6[_0x3d6fed(0x1ee)]));else{const [_0x25a1d0,_0xa8ea5f]=_0xa7c70a[_0x3d6fed(0x1c0)]('.');if(!_0x25a1d0||!_0xa8ea5f){if(_0xc872d6[_0x3d6fed(0x1c1)]!==_0x3d6fed(0x18a))throw new _0x15e055(_0x437b83[_0x3d6fed(0x1f0)]);else throw new UnauthorizedError(_0x3d6fed(0x1c8));}const _0x2df351=_0x144b1c[_0x3d6fed(0x1ab)](_0xc872d6[_0x3d6fed(0x1a1)],_0x196bd2)[_0x3d6fed(0x1df)](_0x25a1d0)[_0x3d6fed(0x1e2)](),_0x579789=Buffer[_0x3d6fed(0x1bc)](_0xa8ea5f,_0xc872d6[_0x3d6fed(0x18f)]);if(_0x2df351[_0x3d6fed(0x1b9)]!==_0x579789[_0x3d6fed(0x1b9)]||!_0x144b1c[_0x3d6fed(0x1db)](_0x2df351,_0x579789)){if(_0xc872d6[_0x3d6fed(0x18d)]!==_0xc872d6[_0x3d6fed(0x18d)])return _0x42e839[_0x3d6fed(0x197)](0x0);else throw new UnauthorizedError(_0xc872d6[_0x3d6fed(0x198)]);}let _0x422eed;try{_0x422eed=JSON[_0x3d6fed(0x1a3)](Buffer[_0x3d6fed(0x1bc)](_0x25a1d0,_0x3d6fed(0x1e5))[_0x3d6fed(0x1d8)](_0xc872d6[_0x3d6fed(0x1ee)]));}catch{if(_0xc872d6[_0x3d6fed(0x1a5)](_0xc872d6[_0x3d6fed(0x18b)],_0xc872d6[_0x3d6fed(0x18b)]))throw new UnauthorizedError(_0xc872d6[_0x3d6fed(0x198)]);else throw new _0x3d9f6f(_0x437b83[_0x3d6fed(0x19c)]);}if(!_0x422eed['p']||!Number[_0x3d6fed(0x193)](_0x422eed[_0x3d6fed(0x1c5)]))throw new UnauthorizedError(_0x3d6fed(0x1c8));if(_0x422eed[_0x3d6fed(0x1c5)]<Math[_0x3d6fed(0x1d5)](_0xc872d6[_0x3d6fed(0x1d1)](Date[_0x3d6fed(0x1d0)](),0x3e8)))throw new UnauthorizedError(_0xc872d6[_0x3d6fed(0x1b8)]);return _0x422eed;}}};}
1
+ import{DeleteObjectCommand,GetObjectCommand,HeadObjectCommand,PutObjectCommand,S3Client}from'@aws-sdk/client-s3';function H(){const Q=['alloc','function','transformToByteArray','push','concat','tokenSecret','randomBytes','accessKey','send','bucket','Body','$metadata','name','toString','createHmac','sha256','update','digest','length','from','isInteger','exp'];H=function(){return Q;};return H();}import r from'node:crypto';import{ValidationError}from'../errors.js';function T(r,u){r=r-0x198;const G=H();let o=G[r];return o;}import{UnauthorizedError}from'../errors.js';function keyFor(u,G){if(!G||G['startsWith']('/')||G['includes']('..'))throw new ValidationError('Invalid\x20file\x20path');const o=G['replace'](/\\/g,'/')['replace'](/^\/+/,''),X=(u??'')['replace'](/^\/+|\/+$/g,'');return X?X+'/'+o:o;}async function bodyToBuffer(u){const Y=T;if(!u)return Buffer[Y(0x198)](0x0);const G=u;if(typeof G['transformToByteArray']===Y(0x199))return Buffer['from'](await G[Y(0x19a)]());const o=[];for await(const X of u){o[Y(0x19b)](Buffer['from'](X));}return Buffer[Y(0x19c)](o);}export function createFileS3(u){const S=T,G=u[S(0x19d)]??process.env.FILE_TOKEN_SECRET??r[S(0x19e)](0x20)['toString']('hex'),o=new S3Client({'endpoint':u['endpoint'],'region':u['region']??'us-east-1','forcePathStyle':u['forcePathStyle']??!![],'credentials':u['accessKeyId']||u[S(0x19f)]?{'accessKeyId':u['accessKeyId']??u['accessKey'],'secretAccessKey':u['secretAccessKey']??u['secretKey']}:undefined}),X=w=>keyFor(u['folder'],w);return{async 'put'(w,a){const I=S;await o[I(0x1a0)](new PutObjectCommand({'Bucket':u['bucket'],'Key':X(w),'Body':a}));},async 'get'(w){const c=S,a=await o[c(0x1a0)](new GetObjectCommand({'Bucket':u[c(0x1a1)],'Key':X(w)}));return bodyToBuffer(a[c(0x1a2)]);},async 'exists'(w){const h=S;try{return await o['send'](new HeadObjectCommand({'Bucket':u[h(0x1a1)],'Key':X(w)})),!![];}catch(a){const q=a;if(q[h(0x1a3)]?.['httpStatusCode']===0x194||q[h(0x1a4)]==='NotFound')return![];throw a;}},async 'delete'(w){await o['send'](new DeleteObjectCommand({'Bucket':u['bucket'],'Key':X(w)}));},'create'(w,a=u['tokenTtl']??0xe10){const P=S,q={'p':w,'exp':Math['floor'](Date['now']()/0x3e8)+a},p=Buffer['from'](JSON['stringify'](q))[P(0x1a5)]('base64url'),F=r[P(0x1a6)](P(0x1a7),G)[P(0x1a8)](p)['digest']('base64url');return p+'.'+F;},'verify'(w){const l=S,[a,q]=w['split']('.');if(!a||!q)throw new UnauthorizedError('Invalid\x20file\x20token');const p=r['createHmac']('sha256',G)['update'](a)[l(0x1a9)](),F=Buffer['from'](q,'base64url');if(p['length']!==F[l(0x1aa)]||!r['timingSafeEqual'](p,F))throw new UnauthorizedError('Invalid\x20file\x20token');let E;try{E=JSON['parse'](Buffer[l(0x1ab)](a,'base64url')['toString']('utf8'));}catch{throw new UnauthorizedError('Invalid\x20file\x20token');}if(!E['p']||!Number[l(0x1ac)](E['exp']))throw new UnauthorizedError('Invalid\x20file\x20token');if(E[l(0x1ad)]<Math['floor'](Date['now']()/0x3e8))throw new UnauthorizedError('File\x20token\x20expired');return E;}};}
@@ -4,6 +4,7 @@
4
4
  export * from "./logger/index.js";
5
5
  export * from "./redis.js";
6
6
  export * from "./pg.js";
7
+ export * from "./auth/index.js";
7
8
  export * from "./file.js";
8
9
  export * from "./dictionary.js";
9
10
  export * from "./audit/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- function _0x4610(){var _0x2a4d0d=['30blWgcA','3652957HtORjj','16pUiiIv','140259PUmadA','129512KKeFEt','244785KCDYVD','9ZhTOiW','198202CiGdkQ','2635888WvvzES','50CmrSVs','637813WVoTyI'];_0x4610=function(){return _0x2a4d0d;};return _0x4610();}(function(_0x26b474,_0x31bc48){var _0x2e7cfc=_0x2675,_0x10bf6c=_0x26b474();while(!![]){try{var _0x27449f=parseInt(_0x2e7cfc(0x1ba))/0x1+parseInt(_0x2e7cfc(0x1b5))/0x2*(parseInt(_0x2e7cfc(0x1b6))/0x3)+-parseInt(_0x2e7cfc(0x1b7))/0x4+parseInt(_0x2e7cfc(0x1b8))/0x5*(parseInt(_0x2e7cfc(0x1b3))/0x6)+-parseInt(_0x2e7cfc(0x1b4))/0x7+-parseInt(_0x2e7cfc(0x1b0))/0x8*(-parseInt(_0x2e7cfc(0x1b9))/0x9)+parseInt(_0x2e7cfc(0x1b1))/0xa*(-parseInt(_0x2e7cfc(0x1b2))/0xb);if(_0x27449f===_0x31bc48)break;else _0x10bf6c['push'](_0x10bf6c['shift']());}catch(_0x3c7263){_0x10bf6c['push'](_0x10bf6c['shift']());}}}(_0x4610,0x49d11));export*from'./logger/index.js';function _0x2675(_0x3aba40,_0x4e2b85){_0x3aba40=_0x3aba40-0x1b0;var _0x4610fa=_0x4610();var _0x267578=_0x4610fa[_0x3aba40];return _0x267578;}export*from'./redis.js';export*from'./pg.js';export*from'./file.js';export*from'./dictionary.js';export*from'./audit/index.js';export*from'./resource/index.js';
1
+ export*from'./logger/index.js';export*from'./redis.js';export*from'./pg.js';export*from'./auth/index.js';export*from'./file.js';export*from'./dictionary.js';export*from'./audit/index.js';export*from'./resource/index.js';
@@ -1 +1 @@
1
- function _0x1cdc(_0x267358,_0x56157c){_0x267358=_0x267358-0x1b9;const _0x235bd3=_0x235b();let _0x1cdcfb=_0x235bd3[_0x267358];return _0x1cdcfb;}(function(_0x2bedb4,_0x19ff3b){const _0x119fd4=_0x1cdc,_0x3d2a57=_0x2bedb4();while(!![]){try{const _0x57b589=parseInt(_0x119fd4(0x1c8))/0x1*(-parseInt(_0x119fd4(0x1c5))/0x2)+-parseInt(_0x119fd4(0x1d1))/0x3*(parseInt(_0x119fd4(0x1cb))/0x4)+-parseInt(_0x119fd4(0x1d7))/0x5+-parseInt(_0x119fd4(0x1bf))/0x6+parseInt(_0x119fd4(0x1be))/0x7+-parseInt(_0x119fd4(0x1d8))/0x8*(parseInt(_0x119fd4(0x1bd))/0x9)+parseInt(_0x119fd4(0x1ce))/0xa*(parseInt(_0x119fd4(0x1ba))/0xb);if(_0x57b589===_0x19ff3b)break;else _0x3d2a57['push'](_0x3d2a57['shift']());}catch(_0x1e3609){_0x3d2a57['push'](_0x3d2a57['shift']());}}}(_0x235b,0xd4c53));import _0x4caf14 from'pino';export function createLogger(){const _0x285c85=_0x1cdc,_0x26b6b3={'anEAV':function(_0xcb23e7,_0x40ecc9){return _0xcb23e7===_0x40ecc9;},'kPDGz':function(_0x2b9720,_0x1df86c,_0x2a4ec4){return _0x2b9720(_0x1df86c,_0x2a4ec4);},'FxSAd':_0x285c85(0x1d4),'LOYsA':_0x285c85(0x1c6),'wBTEZ':_0x285c85(0x1ca),'VoyXw':_0x285c85(0x1d5),'wEoZq':_0x285c85(0x1d0),'mAPuH':_0x285c85(0x1cd)},_0x5287f4={};_0x5287f4[_0x285c85(0x1c0)]=_0x285c85(0x1c7);const _0x52d622=_0x4caf14[_0x285c85(0x1cf)](_0x5287f4),_0x41fa28=_0x26b6b3[_0x285c85(0x1d3)](_0x4caf14,{'level':_0x26b6b3[_0x285c85(0x1c2)],'timestamp':_0x4caf14[_0x285c85(0x1b9)][_0x285c85(0x1c9)],'base':{'service':_0x26b6b3[_0x285c85(0x1cc)]},'redact':{'paths':[_0x26b6b3[_0x285c85(0x1bb)],_0x285c85(0x1c4),_0x26b6b3[_0x285c85(0x1bc)],_0x26b6b3[_0x285c85(0x1c1)],_0x285c85(0x1d6)],'censor':_0x26b6b3[_0x285c85(0x1da)]}},_0x52d622),_0x26d88d={};function _0x5287e6(_0x2c3c33,_0x394424){const _0xfaead=_0x285c85;if(_0x26b6b3[_0xfaead(0x1d9)](_0x2c3c33,undefined)){const _0x4583dc={..._0x26d88d};return _0x4583dc;}_0x26d88d[_0x2c3c33]=(_0x26d88d[_0x2c3c33]??0x0)+(_0x394424??0x1);}return Object[_0x285c85(0x1db)](_0x41fa28,{'close':async()=>_0x52d622[_0x285c85(0x1d2)](),'metrics':_0x5287e6,'file':()=>_0x41fa28[_0x285c85(0x1d4)][_0x285c85(0x1c3)](_0x41fa28)});}function _0x235b(){const _0x5177d3=['VoyXw','113580YkcGGo','9474108KGqwVh','7688880SWYVNE','target','wEoZq','FxSAd','bind','password','226784ZdgFjt','app','./transport.js','13XvpYWQ','isoTime','req.headers.authorization','13484HSUcWo','LOYsA','[REDACTED]','546950yBVatG','transport','accessToken','1419TtrGnn','end','kPDGz','info','token','refreshToken','1528040oMLevC','336WRfTjF','anEAV','mAPuH','assign','stdTimeFunctions','946NvZblw','wBTEZ'];_0x235b=function(){return _0x5177d3;};return _0x235b();}
1
+ import r from'pino';function H(){const p=['refreshToken','end'];H=function(){return p;};return H();}function T(r,u){r=r-0xe1;const G=H();let o=G[r];return o;}export function createLogger(){const q=T,u=r['transport']({'target':'./transport.js'}),G=r({'level':'info','timestamp':r['stdTimeFunctions']['isoTime'],'base':{'service':'app'},'redact':{'paths':['req.headers.authorization','password','token','accessToken',q(0xe1)],'censor':'[REDACTED]'}},u),o={};function X(w,a){if(w===undefined)return{...o};o[w]=(o[w]??0x0)+(a??0x1);}return Object['assign'](G,{'close':async()=>u[q(0xe2)](),'metrics':X,'file':()=>G['info']['bind'](G)});}
@@ -1 +1 @@
1
- const _0x1b3c68=_0x2f92;(function(_0x2cab13,_0x29fe08){const _0x50bd92=_0x2f92,_0x5a5ac5=_0x2cab13();while(!![]){try{const _0x1ec6db=-parseInt(_0x50bd92(0xb2))/0x1+-parseInt(_0x50bd92(0xd5))/0x2+parseInt(_0x50bd92(0xaf))/0x3*(parseInt(_0x50bd92(0xd7))/0x4)+parseInt(_0x50bd92(0xb6))/0x5*(-parseInt(_0x50bd92(0xc0))/0x6)+parseInt(_0x50bd92(0xbb))/0x7+parseInt(_0x50bd92(0xc1))/0x8+-parseInt(_0x50bd92(0xa4))/0x9;if(_0x1ec6db===_0x29fe08)break;else _0x5a5ac5['push'](_0x5a5ac5['shift']());}catch(_0x429c33){_0x5a5ac5['push'](_0x5a5ac5['shift']());}}}(_0x1413,0xd86f8));function _0x2f92(_0x5dd326,_0x5a94e8){_0x5dd326=_0x5dd326-0xa3;const _0x14138f=_0x1413();let _0x2f92a6=_0x14138f[_0x5dd326];return _0x2f92a6;}import _0x355fe7 from'node:fs';import _0x477a1c from'node:path';import _0x358909 from'pino-abstract-transport';const _0x4d2570={};_0x4d2570['30']=_0x1b3c68(0xb5),_0x4d2570['40']=_0x1b3c68(0xc5),_0x4d2570['50']=_0x1b3c68(0xbe),_0x4d2570['60']=_0x1b3c68(0xbe);const LEVELS=_0x4d2570,streams=new Map();function getDate(){const _0x125c70=_0x1b3c68;return new Date()[_0x125c70(0xb3)]()[_0x125c70(0xb7)](0x0,0xa);}function createStream(_0x2ba304,_0x350ec6){const _0x2160f9=_0x1b3c68,_0x360080={};_0x360080[_0x2160f9(0xad)]=_0x2160f9(0xcc);const _0xfde1bb=_0x360080,_0x45f668=_0x477a1c[_0x2160f9(0xcf)](_0xfde1bb[_0x2160f9(0xad)],_0x2ba304),_0x51b409={};_0x51b409[_0x2160f9(0xc9)]=!![],_0x355fe7[_0x2160f9(0xca)](_0x45f668,_0x51b409);const _0x5649cb={};return _0x5649cb[_0x2160f9(0xb9)]='a',_0x355fe7[_0x2160f9(0xcb)](_0x477a1c[_0x2160f9(0xa3)](_0x45f668,_0x350ec6+_0x2160f9(0xbf)),_0x5649cb);}function getStream(_0x56877d){const _0x563562=_0x1b3c68,_0x2a42fb={'OIfNW':function(_0x45a93d){return _0x45a93d();},'IZHAo':function(_0x46fded,_0x53e8bc){return _0x46fded===_0x53e8bc;},'fGoUb':function(_0x1c5e6a,_0x5a68a6){return _0x1c5e6a===_0x5a68a6;},'JVJAz':_0x563562(0xae),'lqpow':_0x563562(0xa5),'yPsEd':function(_0x58130f,_0x2c7d19,_0x331b30){return _0x58130f(_0x2c7d19,_0x331b30);}},_0x385b02=_0x2a42fb[_0x563562(0xab)](getDate),_0x2cd620=streams[_0x563562(0xd8)](_0x56877d);if(_0x2cd620&&_0x2a42fb[_0x563562(0xd2)](_0x2cd620[_0x563562(0xd3)],_0x385b02))return _0x2a42fb[_0x563562(0xc2)](_0x2a42fb[_0x563562(0xbd)],_0x2a42fb[_0x563562(0xb1)])?_0x1af94b[_0x563562(0xa6)]:_0x2cd620[_0x563562(0xa6)];_0x2cd620?.[_0x563562(0xa6)][_0x563562(0xc4)]();const _0x4111e6=_0x2a42fb[_0x563562(0xd0)](createStream,_0x56877d,_0x385b02),_0x1d5837={};return _0x1d5837[_0x563562(0xd3)]=_0x385b02,_0x1d5837[_0x563562(0xa6)]=_0x4111e6,streams[_0x563562(0xbc)](_0x56877d,_0x1d5837),_0x4111e6;}function closeStreams(){const _0x471ebb=_0x1b3c68,_0x178534={};_0x178534[_0x471ebb(0xc7)]=_0x471ebb(0xd4);const _0x480e04=_0x178534;for(const {stream:_0x3b73ef}of streams[_0x471ebb(0xa9)]()){if(_0x471ebb(0xc6)===_0x480e04[_0x471ebb(0xc7)])return new _0x383352()[_0x471ebb(0xb3)]()[_0x471ebb(0xb7)](0x0,0xa);else _0x3b73ef[_0x471ebb(0xc4)]();}streams[_0x471ebb(0xba)]();}export default async function loggerTransport(){const _0x4d7aa7=_0x1b3c68,_0x4d52c7={'dNAMo':function(_0x14351d,_0x285bc8){return _0x14351d===_0x285bc8;},'vqHnZ':_0x4d7aa7(0xd6),'HPUja':function(_0x271a2d){return _0x271a2d();},'zeeNP':function(_0x2271af,_0x5558a8,_0xe2675d){return _0x2271af(_0x5558a8,_0xe2675d);}};return _0x4d52c7[_0x4d7aa7(0xce)](_0x358909,writeLogs,{'close':async()=>{const _0x498ad5=_0x4d7aa7;_0x4d52c7[_0x498ad5(0xc8)](_0x4d52c7[_0x498ad5(0xcd)],_0x4d52c7[_0x498ad5(0xcd)])?_0x4d52c7[_0x498ad5(0xaa)](closeStreams):_0x38ad4a[_0x498ad5(0xc4)]();}});}function _0x1413(){const _0x52eca1=['843634LumuOH','toISOString','girev','info','29105XpdgsD','slice','level','flags','clear','5327980pfdpfn','set','JVJAz','error','.log','696ahIZDh','4239240YaIpgn','fGoUb','log','end','warn','iTHHr','Tgyev','dNAMo','recursive','mkdirSync','createWriteStream','logs','vqHnZ','zeeNP','resolve','yPsEd','mbAhO','IZHAo','date','egNFq','269052nUUnFW','hZKOG','6439364ppPUmi','get','QQAEJ','join','3248730cRMxVH','wNkmi','stream','write','Iunqz','values','HPUja','OIfNW','file','YTsJf','bBojk','3xGDxWk','stringify','lqpow'];_0x1413=function(){return _0x52eca1;};return _0x1413();}async function writeLogs(_0x3204d1){const _0x1e622f=_0x1b3c68,_0x1c0b88={'QQAEJ':function(_0x222c25){return _0x222c25();},'girev':function(_0x277a21,_0x1c7bc0){return _0x277a21!==_0x1c7bc0;},'mbAhO':_0x1e622f(0xa8)};for await(const _0x3a98a2 of _0x3204d1){const _0x4bec28=LEVELS[_0x3a98a2[_0x1e622f(0xb8)]];if(!_0x4bec28){if(_0x1c0b88[_0x1e622f(0xb4)](_0x1c0b88[_0x1e622f(0xd1)],_0x1c0b88[_0x1e622f(0xd1)]))ZemVST[_0x1e622f(0xd9)](_0x602ab3);else continue;}const _0x2bd76a=getStream(_0x3a98a2[_0x1e622f(0xac)]||_0x4bec28);console[_0x1e622f(0xc3)](_0x3a98a2),delete _0x3a98a2[_0x1e622f(0xac)],_0x2bd76a[_0x1e622f(0xa7)](JSON[_0x1e622f(0xb0)](_0x3a98a2)+'\x0a');}}
1
+ const q=T;function T(r,u){r=r-0xad;const G=H();let o=G[r];return o;}import r from'node:fs';import u from'node:path';import G from'pino-abstract-transport';function H(){const S=['info','toISOString','mkdirSync','stream','end','set'];H=function(){return S;};return H();}const LEVELS={0x1e:q(0xad),0x28:'warn',0x32:'error',0x3c:'error'},streams=new Map();function getDate(){const p=q;return new Date()[p(0xae)]()['slice'](0x0,0xa);}function createStream(o,X){const F=q,w=u['resolve']('logs',o);return r[F(0xaf)](w,{'recursive':!![]}),r['createWriteStream'](u['join'](w,X+'.log'),{'flags':'a'});}function getStream(o){const E=q,X=getDate(),w=streams['get'](o);if(w&&w['date']===X)return w[E(0xb0)];w?.[E(0xb0)][E(0xb1)]();const a=createStream(o,X);return streams[E(0xb2)](o,{'date':X,'stream':a}),a;}function closeStreams(){const Y=q;for(const {stream:o}of streams['values']()){o[Y(0xb1)]();}streams['clear']();}export default async function loggerTransport(){return G(writeLogs,{'close':async()=>{closeStreams();}});}async function writeLogs(o){for await(const X of o){const w=LEVELS[X['level']];if(!w)continue;const a=getStream(X['file']||w);console['log'](X),delete X['file'],a['write'](JSON['stringify'](X)+'\x0a');}}