@opengis/fcore 0.0.1-beta.5 → 0.0.1-beta.7

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 (167) hide show
  1. package/dist/config.js +1 -1
  2. package/dist/context.js +1 -1
  3. package/dist/errors.js +1 -1
  4. package/dist/fastify.d.ts +2 -1
  5. package/dist/fastify.d.ts.map +1 -1
  6. package/dist/fastify.js +1 -1
  7. package/dist/fcore.js +1 -1
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/migrations/cli.js +1 -1
  12. package/dist/migrations/runner.js +1 -1
  13. package/dist/modules/auth/adduser-cli.js +1 -1
  14. package/dist/modules/auth/passwd-cli.js +1 -1
  15. package/dist/modules/auth/permission-cli.js +1 -1
  16. package/dist/modules/auth/route.d.ts.map +1 -1
  17. package/dist/modules/auth/route.js +1 -1
  18. package/dist/modules/auth/schema.d.ts +3 -0
  19. package/dist/modules/auth/schema.d.ts.map +1 -1
  20. package/dist/modules/auth/schema.js +1 -1
  21. package/dist/modules/auth/services/change-password.js +1 -1
  22. package/dist/modules/auth/services/get-current-user.d.ts +1 -0
  23. package/dist/modules/auth/services/get-current-user.d.ts.map +1 -1
  24. package/dist/modules/auth/services/get-current-user.js +1 -1
  25. package/dist/modules/auth/services/registration.js +1 -1
  26. package/dist/modules/auth/services/verify-two-factor.js +1 -1
  27. package/dist/modules/file/mime.d.ts +3 -0
  28. package/dist/modules/file/mime.d.ts.map +1 -0
  29. package/dist/modules/file/mime.js +1 -0
  30. package/dist/modules/file/route.d.ts.map +1 -1
  31. package/dist/modules/file/route.js +1 -1
  32. package/dist/modules/file/schema.d.ts +3 -0
  33. package/dist/modules/file/schema.d.ts.map +1 -1
  34. package/dist/modules/file/schema.js +1 -1
  35. package/dist/modules/file/services/get-file.js +1 -1
  36. package/dist/modules/file/services/resize-file.d.ts.map +1 -1
  37. package/dist/modules/file/services/resize-file.js +1 -1
  38. package/dist/modules/file/services/upload-file.d.ts +4 -6
  39. package/dist/modules/file/services/upload-file.d.ts.map +1 -1
  40. package/dist/modules/file/services/upload-file.js +1 -1
  41. package/dist/modules/resource/route.d.ts +0 -3
  42. package/dist/modules/resource/route.d.ts.map +1 -1
  43. package/dist/modules/resource/route.js +1 -1
  44. package/dist/modules/resource/schema.d.ts +3 -0
  45. package/dist/modules/resource/schema.d.ts.map +1 -1
  46. package/dist/modules/resource/schema.js +1 -1
  47. package/dist/modules/resource/services/add-note.js +1 -1
  48. package/dist/modules/resource/services/add-resource-file.js +1 -1
  49. package/dist/modules/resource/services/create-resource-relation.js +1 -1
  50. package/dist/modules/resource/services/create-resource.js +1 -1
  51. package/dist/modules/resource/services/delete-resource-relation.js +1 -1
  52. package/dist/modules/resource/services/delete-resource.js +1 -1
  53. package/dist/modules/resource/services/export-resource.d.ts.map +1 -1
  54. package/dist/modules/resource/services/export-resource.js +1 -1
  55. package/dist/modules/resource/services/get-resource.d.ts.map +1 -1
  56. package/dist/modules/resource/services/get-resource.js +1 -1
  57. package/dist/modules/resource/services/list-resource-relation.d.ts +2 -0
  58. package/dist/modules/resource/services/list-resource-relation.d.ts.map +1 -1
  59. package/dist/modules/resource/services/list-resource-relation.js +1 -1
  60. package/dist/modules/resource/services/list-resources.d.ts.map +1 -1
  61. package/dist/modules/resource/services/list-resources.js +1 -1
  62. package/dist/modules/resource/services/search-resource.d.ts.map +1 -1
  63. package/dist/modules/resource/services/search-resource.js +1 -1
  64. package/dist/modules/resource/services/suggest-resource.d.ts.map +1 -1
  65. package/dist/modules/resource/services/suggest-resource.js +1 -1
  66. package/dist/modules/resource/services/update-resource-relation.d.ts +10 -0
  67. package/dist/modules/resource/services/update-resource-relation.d.ts.map +1 -0
  68. package/dist/modules/resource/services/update-resource-relation.js +1 -0
  69. package/dist/modules/resource/services/update-resource.js +1 -1
  70. package/dist/modules/resource/services/upload-resource-file.js +1 -1
  71. package/dist/modules/system/route.d.ts.map +1 -1
  72. package/dist/modules/system/route.js +1 -1
  73. package/dist/modules/system/schema.js +1 -1
  74. package/dist/modules/system/services/check-system.d.ts.map +1 -1
  75. package/dist/modules/system/services/check-system.js +1 -1
  76. package/dist/modules/system/services/get-access.d.ts.map +1 -1
  77. package/dist/modules/system/services/get-access.js +1 -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.d.ts.map +1 -1
  81. package/dist/modules/system/services/get-audit-log.js +1 -1
  82. package/dist/modules/system/services/get-dictionary.js +1 -1
  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.d.ts.map +1 -1
  86. package/dist/modules/system/services/get-system-settings.js +1 -1
  87. package/dist/modules/system/services/list-dictionaries.js +1 -1
  88. package/dist/modules/system/services/set-access.d.ts.map +1 -1
  89. package/dist/modules/system/services/set-access.js +1 -1
  90. package/dist/modules/system/services/update-dictionary.d.ts.map +1 -1
  91. package/dist/modules/system/services/update-dictionary.js +1 -1
  92. package/dist/modules/system/services/update-system-settings.d.ts.map +1 -1
  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.js +1 -1
  101. package/dist/plugins/auth/index.js +1 -1
  102. package/dist/plugins/auth/verifyUser.js +1 -1
  103. package/dist/plugins/dictionary.d.ts +3 -0
  104. package/dist/plugins/dictionary.d.ts.map +1 -1
  105. package/dist/plugins/dictionary.js +1 -1
  106. package/dist/plugins/file.d.ts +3 -6
  107. package/dist/plugins/file.d.ts.map +1 -1
  108. package/dist/plugins/file.js +1 -1
  109. package/dist/plugins/index.d.ts +1 -0
  110. package/dist/plugins/index.d.ts.map +1 -1
  111. package/dist/plugins/index.js +1 -1
  112. package/dist/plugins/jwt.d.ts +4 -0
  113. package/dist/plugins/jwt.d.ts.map +1 -0
  114. package/dist/plugins/jwt.js +1 -0
  115. package/dist/plugins/logger/index.js +1 -1
  116. package/dist/plugins/logger/transport.js +1 -1
  117. package/dist/plugins/pg.d.ts.map +1 -1
  118. package/dist/plugins/pg.js +1 -1
  119. package/dist/plugins/redis.js +1 -1
  120. package/dist/plugins/resource/index.js +1 -1
  121. package/dist/plugins/resource/resource.d.ts.map +1 -1
  122. package/dist/plugins/resource/resource.js +1 -1
  123. package/dist/plugins/resource/resource.registry.js +1 -1
  124. package/dist/plugins/resource/resource.types.d.ts +18 -3
  125. package/dist/plugins/resource/resource.types.d.ts.map +1 -1
  126. package/dist/plugins/resource/services/add-dictionary-lookup-data.d.ts +3 -0
  127. package/dist/plugins/resource/services/add-dictionary-lookup-data.d.ts.map +1 -0
  128. package/dist/plugins/resource/services/add-dictionary-lookup-data.js +1 -0
  129. package/dist/plugins/resource/services/add-file-token.d.ts +3 -0
  130. package/dist/plugins/resource/services/add-file-token.d.ts.map +1 -0
  131. package/dist/plugins/resource/services/add-file-token.js +1 -0
  132. package/dist/plugins/resource/services/add-table-lookup-data.d.ts +4 -0
  133. package/dist/plugins/resource/services/add-table-lookup-data.d.ts.map +1 -0
  134. package/dist/plugins/resource/services/add-table-lookup-data.js +1 -0
  135. package/dist/plugins/resource/services/create-relation.js +1 -1
  136. package/dist/plugins/resource/services/create.d.ts.map +1 -1
  137. package/dist/plugins/resource/services/create.js +1 -1
  138. package/dist/plugins/resource/services/delete-relation.js +1 -1
  139. package/dist/plugins/resource/services/delete.d.ts.map +1 -1
  140. package/dist/plugins/resource/services/delete.js +1 -1
  141. package/dist/plugins/resource/services/find-one.d.ts +3 -2
  142. package/dist/plugins/resource/services/find-one.d.ts.map +1 -1
  143. package/dist/plugins/resource/services/find-one.js +1 -1
  144. package/dist/plugins/resource/services/find-relation.d.ts +3 -2
  145. package/dist/plugins/resource/services/find-relation.d.ts.map +1 -1
  146. package/dist/plugins/resource/services/find-relation.js +1 -1
  147. package/dist/plugins/resource/services/find.d.ts.map +1 -1
  148. package/dist/plugins/resource/services/find.js +1 -1
  149. package/dist/plugins/resource/services/update-relation.d.ts +11 -0
  150. package/dist/plugins/resource/services/update-relation.d.ts.map +1 -0
  151. package/dist/plugins/resource/services/update-relation.js +1 -0
  152. package/dist/plugins/resource/services/update.d.ts.map +1 -1
  153. package/dist/plugins/resource/services/update.js +1 -1
  154. package/dist/plugins/resource/utils/auto-index.d.ts +4 -0
  155. package/dist/plugins/resource/utils/auto-index.d.ts.map +1 -0
  156. package/dist/plugins/resource/utils/auto-index.js +1 -0
  157. package/dist/plugins/resource/utils/fields.js +1 -1
  158. package/dist/plugins/resource/utils/filters.d.ts +3 -2
  159. package/dist/plugins/resource/utils/filters.d.ts.map +1 -1
  160. package/dist/plugins/resource/utils/filters.js +1 -1
  161. package/dist/plugins/resource/utils/permissions.js +1 -1
  162. package/dist/plugins/resource/utils/sort.d.ts.map +1 -1
  163. package/dist/plugins/resource/utils/sort.js +1 -1
  164. package/dist/plugins/resource/utils/sql.js +1 -1
  165. package/dist/shared/getIP.js +1 -1
  166. package/migrations/20260905120000_add_user_foreign_keys.sql +42 -42
  167. package/package.json +3 -2
package/dist/config.js CHANGED
@@ -1 +1 @@
1
- (function(_0x5d8246,_0x5bf48e){const _0x58bef1=_0x1101,_0x1a3b11=_0x5d8246();while(!![]){try{const _0xbb1ce0=parseInt(_0x58bef1(0x16f))/0x1*(-parseInt(_0x58bef1(0x156))/0x2)+parseInt(_0x58bef1(0x13d))/0x3+-parseInt(_0x58bef1(0x139))/0x4+-parseInt(_0x58bef1(0x166))/0x5+-parseInt(_0x58bef1(0x159))/0x6*(-parseInt(_0x58bef1(0x15b))/0x7)+parseInt(_0x58bef1(0x165))/0x8*(parseInt(_0x58bef1(0x173))/0x9)+parseInt(_0x58bef1(0x169))/0xa*(-parseInt(_0x58bef1(0x168))/0xb);if(_0xbb1ce0===_0x5bf48e)break;else _0x1a3b11['push'](_0x1a3b11['shift']());}catch(_0x597171){_0x1a3b11['push'](_0x1a3b11['shift']());}}}(_0x2310,0x445f2));import'dotenv/config';const DEFAULT_LOG_RESPONSE_STATUS_CODES=[0x193,0x199,0x19d,0x19f,0x1ad];function _0x2310(){const _0x4efd00=['PnDJs','sameSite','x5y30KBsEKCENT04tu6549Vxx3No1ztJ2q2K8r79S59420RaZ5','split','session_user_auth','kTIhH','YAbBp','tEOqn','lax','map','includes','password','qHlFq','kDMSY','bdYOX','true','696018RaqOrf','Missing\x20environment\x20variable:\x20','us-east-1','17022jrmOQe','strict','819Tpokwj','auth','./storage','Ch7QR4e73Jg0wx0xOjm','0ua4b1Tz21m47z13U3EO0uN9e0WE7hqRFbcZ72cbdWqZBzemf9cAU865xan1s81TdNpUKKfF','ArJOy','kMFAT','parse','zVCrp','hrLKp','6808LFtNUd','442560Tcnhdx','none','478951DLSQpP','10wFEsvB','redis','Lxonk','cwd','SvuTJ','development','1bFVGAF','DYzpV','/log','localhost','4932ctulhG','1996008TwklsU','httpOnly','logger','info','1382511EIYhlg','XlRMM','gWfrc','path','false','tqtaW','AMXdD','Sbblp','secure'];_0x2310=function(){return _0x4efd00;};return _0x2310();}function _0x1101(_0x93fa84,_0x2b92b0){_0x93fa84=_0x93fa84-0x139;const _0x2310c6=_0x2310();let _0x1101e8=_0x2310c6[_0x93fa84];return _0x1101e8;}function required(_0x18331f){const _0x33ae94=_0x1101,_0x6da250=process.env[_0x18331f];if(!_0x6da250)throw new Error(_0x33ae94(0x157)+_0x18331f);return _0x6da250;}export function loadConfig(_0x4910a3={}){const _0xda6573=_0x1101,_0x92960={'hrLKp':_0xda6573(0x16e),'YAbBp':function(_0x4c29b4,_0x3b5365){return _0x4c29b4===_0x3b5365;},'Sbblp':_0xda6573(0x155),'tqtaW':function(_0x5e94e7,_0x2dbab4){return _0x5e94e7(_0x2dbab4);},'Lxonk':function(_0x56d4e7,_0x5411f5){return _0x56d4e7===_0x5411f5;},'SvuTJ':_0xda6573(0x141),'kMFAT':_0xda6573(0x15d),'kDMSY':_0xda6573(0x151),'qHlFq':_0xda6573(0x13c),'gWfrc':_0xda6573(0x172),'DYzpV':_0xda6573(0x158),'tEOqn':function(_0x2aa065,_0x10b5da){return _0x2aa065!==_0x10b5da;},'AMXdD':_0xda6573(0x15e),'kTIhH':_0xda6573(0x148),'PnDJs':_0xda6573(0x14a),'bdYOX':function(_0x4d38b1,_0x3ec7a7){return _0x4d38b1(_0x3ec7a7);},'XlRMM':_0xda6573(0x15a),'zVCrp':_0xda6573(0x167),'ArJOy':function(_0x573e61,_0x5443cc){return _0x573e61(_0x5443cc);}},_0x1c7451={};_0x1c7451[_0xda6573(0x140)]='/',_0x1c7451[_0xda6573(0x13a)]=!![],_0x1c7451[_0xda6573(0x145)]=![],_0x1c7451[_0xda6573(0x147)]=!![];const _0xc11fb7={'env':process.env.NODE_ENV??_0x92960[_0xda6573(0x164)],'debug':_0x92960[_0xda6573(0x14c)](process.env.DEBUG,_0x92960[_0xda6573(0x144)]),'port':_0x92960[_0xda6573(0x142)](Number,process.env.PORT??0xbb8),'maxFileSize':+(process.env.MAX_FILE_SIZE||0x200),'rateLimit':{'disabled':_0x92960[_0xda6573(0x16b)](process.env.RATE_LIMIT,_0x92960[_0xda6573(0x16d)]),'max':+(process.env.RATE_LIMIT_MAX||0x64),'timeWindow':+(process.env.RATE_LIMIT_TIME_WINDOW||0xea60)},'storagePath':process.env.STORAGE_PATH??_0x92960[_0xda6573(0x161)],'redactionList':(process.env.REDACTION_LIST||_0x92960[_0xda6573(0x153)])[_0xda6573(0x149)](','),'logger':{'level':process.env.LOG_LEVEL??_0x92960[_0xda6573(0x152)],'responses':_0x92960[_0xda6573(0x14c)](process.env.LOG_RESPONSES,_0x92960[_0xda6573(0x144)])?!![]:![],'responseCodes':process.env.LOG_RESPONSE_STATUS_CODES?process.env.LOG_RESPONSE_STATUS_CODES[_0xda6573(0x149)](',')[_0xda6573(0x14f)](_0x48e1ae=>_0x48e1ae-0x0):DEFAULT_LOG_RESPONSE_STATUS_CODES,'directory':process.env.LOG_DIRECTORY||process[_0xda6573(0x16c)]()+_0xda6573(0x171)},'pg':{'host':process.env.PG_HOST??_0x92960[_0xda6573(0x13f)],'port':Number(process.env.PG_PORT??0x1538),'database':process.env.PG_DATABASE??'','user':process.env.PG_USER??'','password':process.env.PG_PASSWORD??''},'redis':{'host':process.env.REDIS_HOST??'','port':Number(process.env.REDIS_PORT??0x18eb),'password':process.env.REDIS_PASSWORD,'lazyConnect':!![],'db':process.env.REDIS_DB?Number(process.env.REDIS_DB):undefined},'s3':{'endpoint':process.env.S3_ENDPOINT,'region':process.env.S3_REGION??_0x92960[_0xda6573(0x170)],'bucket':process.env.S3_BUCKET??'','accessKey':process.env.S3_ACCESS_KEY,'secretKey':process.env.S3_SECRET_KEY,'folder':process.env.S3_FOLDER,'forcePathStyle':_0x92960[_0xda6573(0x14d)](process.env.S3_FORCE_PATH_STYLE,_0x92960[_0xda6573(0x16d)]),'tokenSecret':process.env.FILE_TOKEN_SECRET,'tokenTtl':_0x92960[_0xda6573(0x142)](Number,process.env.FILE_TOKEN_TTL??0xe10)},'auth':{'accessToken':process.env.AUTH_ACCESS_TOKEN||_0x92960[_0xda6573(0x143)],'user':process.env.AUTH_USER?JSON[_0xda6573(0x162)](process.env.AUTH_USER):undefined,'sessionTimeout':+(process.env.AUTH_SESSION_TIMEOUT||0x258),'secret':process.env.AUTH_SECRET??_0x92960[_0xda6573(0x14b)],'cookieName':process.env.AUTH_COOKIE_NAME??_0x92960[_0xda6573(0x146)],'jwtSecret':process.env.AUTH_JWT_SECRET??_0xda6573(0x15f),'redirect':process.env.AUTH_REDIRECT??'/','twoFactorRedirect':process.env.AUTH_TWOFACTOR_REDIRECT??'/','cookieOptions':process.env.AUTH_COOKIE_OPTIONS_DOMAIN?{'domain':process.env.AUTH_COOKIE_OPTIONS_DOMAIN,'path':process.env.AUTH_COOKIE_OPTIONS_PATH||'/','httpOnly':_0x92960[_0xda6573(0x142)](Boolean,process.env.AUTH_COOKIE_OPTIONS_HTTP_ONLY||_0x92960[_0xda6573(0x144)]),'secure':_0x92960[_0xda6573(0x154)](Boolean,process.env.AUTH_COOKIE_OPTIONS_SECURE||_0xda6573(0x155)),'sameSite':process.env.AUTH_COOKIE_OPTIONS_SAME_SITE&&[_0xda6573(0x14e),_0x92960[_0xda6573(0x13e)],_0x92960[_0xda6573(0x163)]][_0xda6573(0x150)](process.env.AUTH_COOKIE_OPTIONS_SAME_SITE)?process.env.AUTH_COOKIE_OPTIONS_SAME_SITE:_0x92960[_0xda6573(0x160)](Boolean,process.env.AUTH_COOKIE_OPTIONS_SAME_SITE||_0x92960[_0xda6573(0x144)])}:_0x1c7451}},_0x3011fb={..._0xc11fb7,..._0x4910a3};return _0x3011fb[_0xda6573(0x13b)]={..._0xc11fb7[_0xda6573(0x13b)],..._0x4910a3[_0xda6573(0x13b)]},_0x3011fb['pg']={..._0xc11fb7['pg'],..._0x4910a3['pg']},_0x3011fb[_0xda6573(0x16a)]={..._0xc11fb7[_0xda6573(0x16a)],..._0x4910a3[_0xda6573(0x16a)]},_0x3011fb['s3']={..._0xc11fb7['s3'],..._0x4910a3['s3']},_0x3011fb[_0xda6573(0x15c)]={..._0xc11fb7[_0xda6573(0x15c)],..._0x4910a3[_0xda6573(0x15c)]},_0x3011fb;}export{required as requireEnv};
1
+ function z(C,N){C=C-0x1b7;const r=U();let p=r[C];return p;}import'dotenv/config';const DEFAULT_LOG_RESPONSE_STATUS_CODES=[0x193,0x199,0x19d,0x19f,0x1ad];function required(C){const N=process.env[C];if(!N)throw new Error('Missing\x20environment\x20variable:\x20'+C);return N;}export function loadConfig(C={}){const p=z,N={'env':process.env.NODE_ENV??'development','debug':process.env.DEBUG===p(0x1b7),'port':Number(process.env.PORT??0xbb8),'maxFileSize':+(process.env.MAX_FILE_SIZE||0x200),'rateLimit':{'disabled':process.env.RATE_LIMIT==='false','max':+(process.env.RATE_LIMIT_MAX||0x64),'timeWindow':+(process.env.RATE_LIMIT_TIME_WINDOW||0xea60)},'storagePath':process.env.STORAGE_PATH??'./storage','redactionList':(process.env.REDACTION_LIST||'password')['split'](','),'logger':{'level':process.env.LOG_LEVEL??'info','responses':process.env.LOG_RESPONSES==='true'?!![]:![],'responseCodes':process.env.LOG_RESPONSE_STATUS_CODES?process.env.LOG_RESPONSE_STATUS_CODES['split'](',')['map'](r=>r-0x0):DEFAULT_LOG_RESPONSE_STATUS_CODES,'directory':process.env.LOG_DIRECTORY||process['cwd']()+'/log'},'pg':{'host':process.env.PG_HOST??'localhost','port':Number(process.env.PG_PORT??0x1538),'database':process.env.PG_DATABASE??'','user':process.env.PG_USER??'','password':process.env.PG_PASSWORD??''},'redis':{'host':process.env.REDIS_HOST??'','port':Number(process.env.REDIS_PORT??0x18eb),'password':process.env.REDIS_PASSWORD,'lazyConnect':!![],'db':process.env.REDIS_DB?Number(process.env.REDIS_DB):undefined},'s3':{'endpoint':process.env.S3_ENDPOINT,'region':process.env.S3_REGION??'us-east-1','bucket':process.env.S3_BUCKET??'','accessKey':process.env.S3_ACCESS_KEY,'secretKey':process.env.S3_SECRET_KEY,'folder':process.env.S3_FOLDER,'forcePathStyle':process.env.S3_FORCE_PATH_STYLE!=='false','tokenSecret':process.env.FILE_TOKEN_SECRET,'tokenTtl':Number(process.env.FILE_TOKEN_TTL??0xe10)},'auth':{'accessToken':process.env.AUTH_ACCESS_TOKEN||'Ch7QR4e73Jg0wx0xOjm','user':process.env.AUTH_USER?JSON['parse'](process.env.AUTH_USER):undefined,'sessionTimeout':+(process.env.AUTH_SESSION_TIMEOUT||0x258),'secret':process.env.AUTH_SECRET??'x5y30KBsEKCENT04tu6549Vxx3No1ztJ2q2K8r79S59420RaZ5','cookieName':process.env.AUTH_COOKIE_NAME??'session_user_auth','jwtSecret':process.env.AUTH_JWT_SECRET??p(0x1b8),'redirect':process.env.AUTH_REDIRECT??'/','twoFactorRedirect':process.env.AUTH_TWOFACTOR_REDIRECT??'/','cookieOptions':process.env.AUTH_COOKIE_OPTIONS_DOMAIN?{'domain':process.env.AUTH_COOKIE_OPTIONS_DOMAIN,'path':process.env.AUTH_COOKIE_OPTIONS_PATH||'/','httpOnly':Boolean(process.env.AUTH_COOKIE_OPTIONS_HTTP_ONLY||p(0x1b7)),'secure':Boolean(process.env.AUTH_COOKIE_OPTIONS_SECURE||'true'),'sameSite':process.env.AUTH_COOKIE_OPTIONS_SAME_SITE&&[p(0x1b9),'strict','none'][p(0x1ba)](process.env.AUTH_COOKIE_OPTIONS_SAME_SITE)?process.env.AUTH_COOKIE_OPTIONS_SAME_SITE:Boolean(process.env.AUTH_COOKIE_OPTIONS_SAME_SITE||'true')}:{'path':'/','httpOnly':!![],'secure':![],'sameSite':!![]}}};return{...N,...C,'logger':{...N['logger'],...C['logger']},'pg':{...N['pg'],...C['pg']},'redis':{...N[p(0x1bb)],...C[p(0x1bb)]},'s3':{...N['s3'],...C['s3']},'auth':{...N['auth'],...C[p(0x1bc)]}};}export{required as requireEnv};function U(){const c=['true','0ua4b1Tz21m47z13U3EO0uN9e0WE7hqRFbcZ72cbdWqZBzemf9cAU865xan1s81TdNpUKKfF','lax','includes','redis','auth'];U=function(){return c;};return U();}
package/dist/context.js CHANGED
@@ -1 +1 @@
1
- (function(_0x41fe05,_0x294803){const _0x278b80=_0x32d5,_0x18db2c=_0x41fe05();while(!![]){try{const _0x620f78=-parseInt(_0x278b80(0x1a9))/0x1*(parseInt(_0x278b80(0x1ae))/0x2)+parseInt(_0x278b80(0x1a6))/0x3*(parseInt(_0x278b80(0x1ac))/0x4)+parseInt(_0x278b80(0x1aa))/0x5+parseInt(_0x278b80(0x1b6))/0x6+parseInt(_0x278b80(0x1b5))/0x7*(parseInt(_0x278b80(0x1b4))/0x8)+parseInt(_0x278b80(0x1b7))/0x9*(-parseInt(_0x278b80(0x1a7))/0xa)+-parseInt(_0x278b80(0x1b0))/0xb*(parseInt(_0x278b80(0x1af))/0xc);if(_0x620f78===_0x294803)break;else _0x18db2c['push'](_0x18db2c['shift']());}catch(_0x3d4c68){_0x18db2c['push'](_0x18db2c['shift']());}}}(_0x2041,0x7fcb3));let defaultContext;function _0x32d5(_0x36fae1,_0x52a9e5){_0x36fae1=_0x36fae1-0x1a6;const _0x204180=_0x2041();let _0x32d5d7=_0x204180[_0x36fae1];return _0x32d5d7;}function _0x2041(){const _0x370c10=['Application\x20context\x20is\x20not\x20initialized','logger','8SIocke','3627386XCMUta','1555818qwgdEd','1782XjUOZv','redis','2165127pxZBLk','14460uzAngF','allSettled','189527LuDOUT','4233945uhiDTM','TJdMb','4GzKFUU','close','4jIPmTb','6943164zMtmna','22mjXuhw','end'];_0x2041=function(){return _0x370c10;};return _0x2041();}export function setContext(_0x3f1703){defaultContext=_0x3f1703;}export function getContext(){const _0x20e0fc=_0x32d5,_0x25b812={};_0x25b812[_0x20e0fc(0x1ab)]=_0x20e0fc(0x1b2);const _0x36d849=_0x25b812;if(!defaultContext)throw new Error(_0x36d849[_0x20e0fc(0x1ab)]);return defaultContext;}export function createContext(_0x3520cd){return{..._0x3520cd,async 'close'(){const _0x15b51d=_0x32d5;await Promise[_0x15b51d(0x1a8)]([_0x3520cd[_0x15b51d(0x1b8)]?.[_0x15b51d(0x1ad)](),_0x3520cd['pg']?.[_0x15b51d(0x1b1)]()]),await _0x3520cd[_0x15b51d(0x1b3)][_0x15b51d(0x1ad)]();}};}
1
+ function z(C,N){C=C-0xbb;const r=U();let p=r[C];return p;}let defaultContext;export function setContext(C){defaultContext=C;}export function getContext(){if(!defaultContext)throw new Error('Application\x20context\x20is\x20not\x20initialized');return defaultContext;}function U(){const r=['redis'];U=function(){return r;};return U();}export function createContext(C){return{...C,async 'close'(){const N=z;await Promise['allSettled']([C[N(0xbb)]?.['close'](),C['pg']?.['end']()]),await C['logger']['close']();}};}
package/dist/errors.js CHANGED
@@ -1 +1 @@
1
- var _0x5701cc=_0x17c8;function _0x17c8(_0xdb27fe,_0x24a3cd){_0xdb27fe=_0xdb27fe-0x15c;var _0x203058=_0x2030();var _0x17c8a1=_0x203058[_0xdb27fe];return _0x17c8a1;}(function(_0x47c102,_0x166b20){var _0x3b893f=_0x17c8,_0x407d48=_0x47c102();while(!![]){try{var _0xb4e3c4=parseInt(_0x3b893f(0x170))/0x1+-parseInt(_0x3b893f(0x179))/0x2+-parseInt(_0x3b893f(0x163))/0x3+parseInt(_0x3b893f(0x17b))/0x4*(-parseInt(_0x3b893f(0x172))/0x5)+parseInt(_0x3b893f(0x166))/0x6*(-parseInt(_0x3b893f(0x176))/0x7)+-parseInt(_0x3b893f(0x178))/0x8*(-parseInt(_0x3b893f(0x16f))/0x9)+parseInt(_0x3b893f(0x16d))/0xa*(parseInt(_0x3b893f(0x168))/0xb);if(_0xb4e3c4===_0x166b20)break;else _0x407d48['push'](_0x407d48['shift']());}catch(_0x52d328){_0x407d48['push'](_0x407d48['shift']());}}}(_0x2030,0xd4c4e));export class FCoreError extends Error{[_0x5701cc(0x173)];[_0x5701cc(0x171)];[_0x5701cc(0x175)];constructor(_0x4ba25b,_0x3fd04f,_0x3e5b59=0x1f4,_0x23337a){var _0xb80536=_0x5701cc;super(_0x3fd04f),this[_0xb80536(0x173)]=_0x4ba25b,this[_0xb80536(0x171)]=_0x3e5b59,this[_0xb80536(0x175)]=_0x23337a,this[_0xb80536(0x165)]=new.target.name;}}export class BadRequestError extends FCoreError{constructor(_0x1990d3,_0x512886){var _0x3c1942=_0x5701cc;super(_0x3c1942(0x177),_0x1990d3,0x190,_0x512886);}}export class UnauthorizedError extends FCoreError{constructor(_0x1a6865=_0x5701cc(0x15e)){var _0x444e15=_0x5701cc,_0x104d52={};_0x104d52[_0x444e15(0x16c)]=_0x444e15(0x15c);var _0x3c27dc=_0x104d52;super(_0x3c27dc[_0x444e15(0x16c)],_0x1a6865,0x191);}}export class ForbiddenError extends FCoreError{constructor(_0x489e57=_0x5701cc(0x16a)){var _0x476f79=_0x5701cc,_0xb90bdb={};_0xb90bdb[_0x476f79(0x17c)]=_0x476f79(0x15f);var _0x4ab98b=_0xb90bdb;super(_0x4ab98b[_0x476f79(0x17c)],_0x489e57,0x193);}}export class NotFoundError extends FCoreError{constructor(_0x247e5e=_0x5701cc(0x164)){var _0x1a1257=_0x5701cc,_0x5d40af={};_0x5d40af[_0x1a1257(0x16e)]=_0x1a1257(0x15d);var _0x24e56e=_0x5d40af;super(_0x24e56e[_0x1a1257(0x16e)],_0x247e5e,0x194);}}function _0x2030(){var _0x31ca1b=['wHqwx','gGzeh','19525270OOBkpT','Uraqr','369beRKde','532049toGzFe','statusCode','5EQKWQT','code','aruFK','details','46151gEmFzT','BAD_REQUEST_ERROR','157576bKvHip','3256706FoxiNV','MtpuA','4023860rmBGKy','UguRv','UNAUTHORIZED','NOT_FOUND','Authentication\x20required','FORBIDDEN','Operation\x20is\x20not\x20configured','UNSUPPORTED','CONFLICT','3713376cQKJkO','Not\x20found','name','456rybTCy','Conflict','22YqmHcv','VALIDATION_ERROR','Access\x20denied'];_0x2030=function(){return _0x31ca1b;};return _0x2030();}export class ConflictError extends FCoreError{constructor(_0x13b0ef=_0x5701cc(0x167)){var _0x48ee9b=_0x5701cc,_0x36995a={};_0x36995a[_0x48ee9b(0x174)]=_0x48ee9b(0x162);var _0x4e0689=_0x36995a;super(_0x4e0689[_0x48ee9b(0x174)],_0x13b0ef,0x199);}}export class ValidationError extends FCoreError{constructor(_0x3c92f2,_0x426edd){var _0x28295f=_0x5701cc,_0x659791={};_0x659791[_0x28295f(0x17a)]=_0x28295f(0x169);var _0x30913a=_0x659791;super(_0x30913a[_0x28295f(0x17a)],_0x3c92f2,0x1a6,_0x426edd);}}export class UnsupportedError extends FCoreError{constructor(_0x1967da=_0x5701cc(0x160)){var _0x34dc21=_0x5701cc,_0x5e02c1={};_0x5e02c1[_0x34dc21(0x16b)]=_0x34dc21(0x161);var _0x37e558=_0x5e02c1;super(_0x37e558[_0x34dc21(0x16b)],_0x1967da,0x1f5);}}
1
+ var c=z;export class FCoreError extends Error{[c(0x10b)];['statusCode'];[c(0x10c)];constructor(C,N,r=0x1f4,p){super(N),this['code']=C,this['statusCode']=r,this['details']=p,this['name']=new.target.name;}}export class BadRequestError extends FCoreError{constructor(C,N){var x=c;super(x(0x10d),C,0x190,N);}}export class UnauthorizedError extends FCoreError{constructor(C='Authentication\x20required'){var m=c;super(m(0x10e),C,0x191);}}export class ForbiddenError extends FCoreError{constructor(C='Access\x20denied'){super('FORBIDDEN',C,0x193);}}function z(C,N){C=C-0x10b;var r=U();var p=r[C];return p;}export class NotFoundError extends FCoreError{constructor(C='Not\x20found'){var Q=c;super(Q(0x10f),C,0x194);}}export class ConflictError extends FCoreError{constructor(C='Conflict'){super('CONFLICT',C,0x199);}}export class ValidationError extends FCoreError{constructor(C,N){var u=c;super(u(0x110),C,0x1a6,N);}}export class UnsupportedError extends FCoreError{constructor(C=c(0x111)){super('UNSUPPORTED',C,0x1f5);}}function U(){var L=['code','details','BAD_REQUEST_ERROR','UNAUTHORIZED','NOT_FOUND','VALIDATION_ERROR','Operation\x20is\x20not\x20configured'];U=function(){return L;};return U();}
package/dist/fastify.d.ts CHANGED
@@ -3,5 +3,6 @@
3
3
  */
4
4
  import { type FastifyPluginAsync } from "fastify";
5
5
  import type { AppContext } from "./context.js";
6
- export default function fcoreFastify(ctx: AppContext): FastifyPluginAsync;
6
+ export type FCoreApiModule = "auth" | "resource" | "file" | "system";
7
+ export default function fcoreFastify(ctx: AppContext, modules?: readonly FCoreApiModule[]): FastifyPluginAsync;
7
8
  //# sourceMappingURL=fastify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../src/fastify.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAoB/C,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,kBAAkB,CA6FxE"}
1
+ {"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../src/fastify.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAY/C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAarE,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,GAClC,kBAAkB,CAgIpB"}
package/dist/fastify.js CHANGED
@@ -1 +1 @@
1
- (function(_0x59c58f,_0x24fd4e){const _0x42378c=_0xc354,_0x38c615=_0x59c58f();while(!![]){try{const _0x463029=-parseInt(_0x42378c(0xdc))/0x1*(parseInt(_0x42378c(0x139))/0x2)+parseInt(_0x42378c(0xf7))/0x3*(-parseInt(_0x42378c(0x110))/0x4)+parseInt(_0x42378c(0xf4))/0x5+-parseInt(_0x42378c(0xe0))/0x6+parseInt(_0x42378c(0x10c))/0x7+-parseInt(_0x42378c(0xd4))/0x8*(parseInt(_0x42378c(0xf9))/0x9)+parseInt(_0x42378c(0x108))/0xa;if(_0x463029===_0x24fd4e)break;else _0x38c615['push'](_0x38c615['shift']());}catch(_0x4b532b){_0x38c615['push'](_0x38c615['shift']());}}}(_0x53f6,0xca2f2));import{FCoreError}from'./errors.js';import{authRoutes}from'./modules/auth/route.js';import{fileRoutes}from'./modules/file/route.js';import{resourceRoutes}from'./modules/resource/route.js';import{systemRoutes}from'./modules/system/route.js';import{createSessionStore}from'./plugins/auth/index.js';function _0xc354(_0x34f6ee,_0x375710){_0x34f6ee=_0x34f6ee-0xd1;const _0x53f649=_0x53f6();let _0xc3540b=_0x53f649[_0x34f6ee];return _0xc3540b;}function urlencodedContentParser(_0x453831,_0x12eac8,_0x561660){const _0x42e40a=_0xc354,_0x235b87={'hFznd':function(_0x52f505,_0x5e5c83){return _0x52f505(_0x5e5c83);},'rgUMZ':function(_0x453c33,_0x4b4388,_0x567d0e){return _0x453c33(_0x4b4388,_0x567d0e);}},_0x5774e3=_0x235b87[_0x42e40a(0xdd)](decodeURIComponent,_0x12eac8[_0x42e40a(0x133)]())[_0x42e40a(0xfd)]('&')[_0x42e40a(0xf2)]((_0x4daf6e,_0x4e81f9)=>{const _0x3e4e15=_0x42e40a,[_0x27ecc3,_0x526785]=_0x4e81f9[_0x3e4e15(0xfd)]('='),_0x532140={..._0x4daf6e};return _0x532140[_0x27ecc3]=_0x526785,_0x532140;},{});_0x235b87[_0x42e40a(0xec)](_0x561660,null,_0x5774e3);}export default function fcoreFastify(_0x49403a){const _0xfebb4b=_0xc354,_0x3f6927={'mRKJK':_0xfebb4b(0x11e),'DxrPN':_0xfebb4b(0xe7),'ndtoI':_0xfebb4b(0x11a),'sOnrj':function(_0x5e43e5,_0x3aafa4){return _0x5e43e5===_0x3aafa4;},'KhNyZ':_0xfebb4b(0xf5),'ZzZjY':_0xfebb4b(0xd8),'YbbQV':_0xfebb4b(0x135),'Kwpol':_0xfebb4b(0xdb),'HgDCB':_0xfebb4b(0x127),'zdWUU':_0xfebb4b(0x105),'ynOmu':_0xfebb4b(0x138),'GIblf':_0xfebb4b(0x104),'LGCYR':function(_0x52c8e9,_0x134377){return _0x52c8e9(_0x134377);},'uvViK':function(_0x450379,_0x13509e,_0x43f560){return _0x450379(_0x13509e,_0x43f560);},'HeIne':_0xfebb4b(0xfa),'ypDxv':_0xfebb4b(0x119),'Foaml':function(_0x694ed0,_0x1b565f){return _0x694ed0!==_0x1b565f;},'rnrtn':_0xfebb4b(0x11b),'nSeLb':_0xfebb4b(0xd2),'MdNHe':_0xfebb4b(0x12d),'blJFQ':_0xfebb4b(0xe6),'HvnxN':function(_0x1b27f9,_0xf6cf7){return _0x1b27f9*_0xf6cf7;}};return async _0x249ad1=>{const _0x712d31=_0xfebb4b,_0x347490={'oSita':_0x3f6927[_0x712d31(0xff)],'VDHnU':_0x712d31(0xd2),'PJWpd':_0x3f6927[_0x712d31(0x116)],'NBUTJ':_0x3f6927[_0x712d31(0xe9)],'MnIAq':function(_0x3f9223,_0x364d6e){const _0x443db2=_0x712d31;return _0x3f6927[_0x443db2(0x10f)](_0x3f9223,_0x364d6e);},'eOkQN':_0x3f6927[_0x712d31(0x11c)],'uWBnS':_0x3f6927[_0x712d31(0xd5)],'sehOw':function(_0x206d9f,_0x23f7d8){return _0x206d9f instanceof _0x23f7d8;},'sKEGz':function(_0x55349c,_0x5690c1){const _0x422f3e=_0x712d31;return _0x3f6927[_0x422f3e(0x10f)](_0x55349c,_0x5690c1);},'AMJxY':_0x712d31(0x132),'BRyoj':_0x3f6927[_0x712d31(0x12f)],'BoHMb':_0x3f6927[_0x712d31(0xfb)],'mVrRD':_0x3f6927[_0x712d31(0xe5)],'JznOq':_0x3f6927[_0x712d31(0x124)],'zhITp':_0x712d31(0x12e),'tHNPF':_0x712d31(0x12d)};_0x249ad1[_0x712d31(0xd6)](_0x3f6927[_0x712d31(0x122)],_0x49403a);const {config:_0x3031e3}=_0x49403a,_0xe2b481=new Map();_0x249ad1[_0x712d31(0xfe)](_0x3f6927[_0x712d31(0xeb)],_0xb2a7e=>{const _0x7a2014=_0x712d31;if(_0xb2a7e[_0x7a2014(0x125)][_0x7a2014(0x128)](_0x347490[_0x7a2014(0xf1)])){const _0x2c6843=_0xb2a7e[_0x7a2014(0xfc)],_0x2683a2=Array[_0x7a2014(0x106)](_0xb2a7e[_0x7a2014(0x107)])?_0xb2a7e[_0x7a2014(0x107)]:[_0xb2a7e[_0x7a2014(0x107)]];for(const _0x33e2f5 of _0x2683a2){if(_0x33e2f5===_0x347490[_0x7a2014(0xee)]){if(_0x347490[_0x7a2014(0x12c)](_0x347490[_0x7a2014(0xe3)],_0x347490[_0x7a2014(0xe3)]))continue;else _0x2e63d8[_0x7a2014(0x131)](import(_0x347490[_0x7a2014(0xde)]),{'max':_0x16ac81[_0x7a2014(0x129)]?.[_0x7a2014(0x136)]||0x64,'timeWindow':_0x2f23f8[_0x7a2014(0x129)]?.[_0x7a2014(0x12a)]||0xea60,'hook':_0x347490[_0x7a2014(0x117)],'global':!![],'keyGenerator':_0x2c3955=>(_0x2c3955[_0x7a2014(0x10d)]?.['id']||_0x2c3955['ip'])+'-'+_0x2c3955[_0x7a2014(0xd9)][_0x7a2014(0x125)][_0x7a2014(0xfd)]('?')[0x0]});}const _0x42a4f1={};_0x42a4f1[_0x7a2014(0x107)]=_0x33e2f5,_0x42a4f1[_0x7a2014(0x120)]=_0xb2a7e[_0x7a2014(0x125)],_0x42a4f1[_0x7a2014(0xd3)]=_0x2c6843?.[_0x7a2014(0xd3)]??_0x7a2014(0x102),_0x42a4f1[_0x7a2014(0x130)]=_0x2c6843?.[_0x7a2014(0x130)]??[],_0x42a4f1[_0x7a2014(0x134)]=_0x2c6843?.[_0x7a2014(0x134)]??'',_0x42a4f1[_0x7a2014(0xd7)]=_0x2c6843?.[_0x7a2014(0xd7)]??'',_0x42a4f1[_0x7a2014(0xe1)]=_0x2c6843?.[_0x7a2014(0xe1)]??_0x347490[_0x7a2014(0x13b)],_0x42a4f1[_0x7a2014(0x11d)]=_0x2c6843?.[_0x7a2014(0x11d)]??[];const _0x43126c=_0x42a4f1;_0xe2b481[_0x7a2014(0x114)](_0x33e2f5+'\x20'+_0xb2a7e[_0x7a2014(0x125)],_0x43126c);}}}),await createSessionStore(_0x249ad1,_0x49403a),_0x249ad1[_0x712d31(0x118)]((_0x2811b6,_0x2a8b19,_0x16e2f9)=>{const _0x5377fa=_0x712d31;if(_0x347490[_0x5377fa(0x115)](_0x347490[_0x5377fa(0xe2)],_0x347490[_0x5377fa(0xe2)])){if(_0x347490[_0x5377fa(0xda)](_0x2811b6,FCoreError)||_0x347490[_0x5377fa(0x12c)](_0x2811b6[_0x5377fa(0xe4)],_0x347490[_0x5377fa(0x137)])){if(_0x347490[_0x5377fa(0x115)](_0x347490[_0x5377fa(0x11f)],_0x347490[_0x5377fa(0x11f)]))return _0x16e2f9[_0x5377fa(0xe4)](_0x2811b6[_0x5377fa(0xd1)])[_0x5377fa(0xef)]({'error':_0x2811b6[_0x5377fa(0xe4)],'message':_0x2811b6[_0x5377fa(0x112)],'details':_0x2811b6[_0x5377fa(0x123)]});else{if(_0x347490[_0x5377fa(0xda)](_0x1f7ecc,_0x4b4f91)||_0x347490[_0x5377fa(0x115)](_0x3b9af3[_0x5377fa(0xe4)],_0x5377fa(0x127))){const _0x1a79c0={};return _0x1a79c0[_0x5377fa(0x109)]=_0x894319[_0x5377fa(0xe4)],_0x1a79c0[_0x5377fa(0x112)]=_0x4c2648[_0x5377fa(0x112)],_0x1a79c0[_0x5377fa(0x123)]=_0x28ef57[_0x5377fa(0x123)],_0x1c0d87[_0x5377fa(0xe4)](_0x412e78[_0x5377fa(0xd1)])[_0x5377fa(0xef)](_0x1a79c0);}_0x4de092[_0x5377fa(0x13a)][_0x5377fa(0x109)](_0x376bda);(_0x25aabd[_0x5377fa(0x100)]||_0x347490[_0x5377fa(0x115)](_0x17d345.env.NODE_ENV,_0x5377fa(0x12e))||_0x2cfd01.env.VITEST)&&_0x58a5ce[_0x5377fa(0x109)](_0x406acb);const _0x48f932={};return _0x48f932[_0x5377fa(0x109)]=_0x347490[_0x5377fa(0xf6)],_0x48f932[_0x5377fa(0x112)]=_0x347490[_0x5377fa(0x111)],_0x55328b[_0x5377fa(0xe4)](0x1f4)[_0x5377fa(0xef)](_0x48f932);}}_0x49403a[_0x5377fa(0x13a)][_0x5377fa(0x109)](_0x2811b6);(_0x3031e3[_0x5377fa(0x100)]||_0x347490[_0x5377fa(0x115)](process.env.NODE_ENV,_0x347490[_0x5377fa(0x12b)])||process.env.VITEST)&&console[_0x5377fa(0x109)](_0x2811b6);const _0x4c7b64={};return _0x4c7b64[_0x5377fa(0x109)]=_0x347490[_0x5377fa(0xf6)],_0x4c7b64[_0x5377fa(0x112)]=_0x347490[_0x5377fa(0x111)],_0x16e2f9[_0x5377fa(0xe4)](0x1f4)[_0x5377fa(0xef)](_0x4c7b64);}else{const [_0x58fc4d,_0x5f20cb]=_0x2ee2d9[_0x5377fa(0xfd)]('='),_0x45966f={..._0x13e428};return _0x45966f[_0x58fc4d]=_0x5f20cb,_0x45966f;}}),await _0x249ad1[_0x712d31(0x131)](_0x3f6927[_0x712d31(0x10a)](authRoutes,_0x49403a)),await _0x249ad1[_0x712d31(0x131)](_0x3f6927[_0x712d31(0x10a)](resourceRoutes,_0x49403a)),await _0x249ad1[_0x712d31(0x131)](_0x3f6927[_0x712d31(0x10a)](fileRoutes,_0x49403a)),await _0x249ad1[_0x712d31(0x131)](_0x3f6927[_0x712d31(0xf3)](systemRoutes,_0x49403a,_0xe2b481)),_0x249ad1[_0x712d31(0x10b)](_0x3f6927[_0x712d31(0x126)],{'parseAs':_0x3f6927[_0x712d31(0xdf)]},urlencodedContentParser),!_0x3031e3[_0x712d31(0x129)]?.[_0x712d31(0x121)]?_0x3f6927[_0x712d31(0xe8)](_0x712d31(0x11b),_0x3f6927[_0x712d31(0xf8)])?_0x3e7a89[_0x712d31(0x113)](_0x347490[_0x712d31(0x10e)]):_0x249ad1[_0x712d31(0x131)](import(_0x3f6927[_0x712d31(0xff)]),{'max':_0x3031e3[_0x712d31(0x129)]?.[_0x712d31(0x136)]||0x64,'timeWindow':_0x3031e3[_0x712d31(0x129)]?.[_0x712d31(0x12a)]||0xea60,'hook':_0x3f6927[_0x712d31(0xf0)],'global':!![],'keyGenerator':_0x54c1c3=>(_0x54c1c3[_0x712d31(0x10d)]?.['id']||_0x54c1c3['ip'])+'-'+_0x54c1c3[_0x712d31(0xd9)][_0x712d31(0x125)][_0x712d31(0xfd)]('?')[0x0]}):console[_0x712d31(0x113)](_0x3f6927[_0x712d31(0xea)]),_0x249ad1[_0x712d31(0x131)](import(_0x3f6927[_0x712d31(0x101)]),{'limits':{'fileSize':_0x3f6927[_0x712d31(0xed)](_0x3031e3[_0x712d31(0x103)]*0x400,0x400)}});};}function _0x53f6(){const _0x111b89=['sOnrj','548VNcnVv','BRyoj','message','log','set','sKEGz','DxrPN','VDHnU','setErrorHandler','buffer','HEAD','nQgeL','KhNyZ','permissions','@fastify/rate-limit','JznOq','endpoint','disabled','ynOmu','details','zdWUU','url','HeIne','FST_ERR_VALIDATION','startsWith','rateLimit','timeWindow','zhITp','MnIAq','⚠️\x20rate\x20limit\x20is\x20disabled','test','YbbQV','tags','register','INTERNAL_ERROR','toString','summary','Internal\x20server\x20error','max','mVrRD','ctx','18Qzwehe','logger','uWBnS','statusCode','preHandler','package','8MrzUey','ZzZjY','decorate','description','public','raw','sehOw','pQcKG','94069MmuQfq','hFznd','oSita','ypDxv','2804862UoYxFp','access','BoHMb','eOkQN','code','HgDCB','@fastify/multipart','/api/','Foaml','ndtoI','MdNHe','GIblf','rgUMZ','HvnxN','NBUTJ','send','nSeLb','PJWpd','reduce','uvViK','2837615lGkDme','EsSvj','AMJxY','5397XWbric','rnrtn','11658051tzwkhE','application/x-www-form-urlencoded','Kwpol','schema','split','addHook','mRKJK','debug','blJFQ','fcore','maxFileSize','onRoute','SzxqF','isArray','method','18200800NBJLLY','error','LGCYR','addContentTypeParser','9075101jftajs','user','tHNPF'];_0x53f6=function(){return _0x111b89;};return _0x53f6();};
1
+ import{FCoreError}from'./errors.js';function U(){const d=['split','decorate','ctx','onRoute','startsWith','method','package','tags','public','permissions','url','authorization','Route\x20access\x20not\x20defined','access','includes','Missing\x20permission:\x20','@fastify/multipart','message','logger','debug','test','auth','buffer','disabled','register','max','timeWindow','log'];U=function(){return d;};return U();}import{authRoutes}from'./modules/auth/route.js';import{fileRoutes}from'./modules/file/route.js';function z(C,N){C=C-0x6e;const r=U();let p=r[C];return p;}import{resourceRoutes}from'./modules/resource/route.js';import{systemRoutes}from'./modules/system/route.js';import{createSessionStore}from'./plugins/auth/index.js';import{ForbiddenError}from'./errors.js';import{jwtVerifyToken}from'./plugins/jwt.js';function urlencodedContentParser(C,N,r){const p=decodeURIComponent(N['toString']())['split']('&')['reduce']((c,x)=>{const f=z,[m,Q]=x[f(0x6e)]('=');return{...c,[m]:Q};},{});r(null,p);}export default function fcoreFastify(C,N){return async r=>{const F=z;r[F(0x6f)](F(0x70),C);const {config:p}=C,c=new Map();r['addHook'](F(0x71),m=>{const t=F;if(m['url'][t(0x72)]('/api/')){const Q=m['schema'],u=Array['isArray'](m[t(0x73)])?m['method']:[m['method']];for(const L of u){if(L==='HEAD')continue;const T={'method':L,'endpoint':m['url'],'package':Q?.[t(0x74)]??'fcore','tags':Q?.[t(0x75)]??[],'summary':Q?.['summary']??'','description':Q?.['description']??'','access':Q?.['access']??t(0x76),'permissions':Q?.[t(0x77)]??[]};c['set'](L+'\x20'+m[t(0x78)],T);}}}),r['addHook']('preHandler',async m=>{const h=F,Q=c['get'](m['method']+'\x20'+m['routeOptions']['url']),u=m['raw']['headers']?.[h(0x79)],L=u?.['startsWith']('Bearer\x20')?u['slice'](0x7):null,T=m['user']??(L?await jwtVerifyToken(L):null);!m['user']&&L&&process.env.AUTH_JWT_SECRET&&(m['user']=await jwtVerifyToken(L));if(!Q?.['access'])throw new Error(h(0x7a));if(Q['access']==='public')return!![];if(!T)throw new ForbiddenError('User\x20required');if(Q['access']==='user'&&!Q['permissions']?.['length'])return!![];if(T['type']=='admin')return!![];if(Q[h(0x7b)]==='admin')throw new ForbiddenError('Admin\x20access\x20required');for(const Y of Q['permissions']){if(!T['permissions']?.[h(0x7c)](Y))throw new ForbiddenError(h(0x7d)+Y);}return!![];}),await createSessionStore(r,C),await r['register'](import(F(0x7e)),{'limits':{'fileSize':p['maxFileSize']*0x400*0x400}}),r['setErrorHandler']((m,Q,u)=>{const D=F;if(m instanceof FCoreError||m['code']==='FST_ERR_VALIDATION')return u['code'](m['statusCode'])['send']({'error':m['code'],'message':m[D(0x7f)],'details':m['details']});return C[D(0x80)]['error'](m),(p[D(0x81)]||process.env.NODE_ENV===D(0x82)||process.env.VITEST)&&console['error'](m),u['code'](0x1f4)['send']({'error':'INTERNAL_ERROR','message':'Internal\x20server\x20error'});});const x=m=>!N||N[F(0x7c)](m);if(x(F(0x83)))await r['register'](authRoutes(C));if(x('resource'))await r['register'](resourceRoutes(C));if(x('file'))await r['register'](fileRoutes(C));if(x('system'))await r['register'](systemRoutes(C,c));r['addContentTypeParser']('application/x-www-form-urlencoded',{'parseAs':F(0x84)},urlencodedContentParser),!p['rateLimit']?.[F(0x85)]?r[F(0x86)](import('@fastify/rate-limit'),{'max':p['rateLimit']?.[F(0x87)]||0x64,'timeWindow':p['rateLimit']?.[F(0x88)]||0xea60,'hook':'preHandler','global':!![],'keyGenerator':m=>(m['user']?.['id']||m['ip'])+'-'+m['raw'][F(0x78)]['split']('?')[0x0]}):console[F(0x89)]('⚠️\x20rate\x20limit\x20is\x20disabled');};};
package/dist/fcore.js CHANGED
@@ -1 +1 @@
1
- (function(_0x2b613d,_0x57375a){const _0xe153b7=_0x3cf5,_0x4baf83=_0x2b613d();while(!![]){try{const _0x103ca2=parseInt(_0xe153b7(0xb9))/0x1+-parseInt(_0xe153b7(0xb1))/0x2+parseInt(_0xe153b7(0xbe))/0x3+-parseInt(_0xe153b7(0xcf))/0x4+parseInt(_0xe153b7(0xb6))/0x5+-parseInt(_0xe153b7(0xb4))/0x6*(-parseInt(_0xe153b7(0xbc))/0x7)+-parseInt(_0xe153b7(0xbf))/0x8;if(_0x103ca2===_0x57375a)break;else _0x4baf83['push'](_0x4baf83['shift']());}catch(_0x1bb36c){_0x4baf83['push'](_0x4baf83['shift']());}}}(_0x2261,0x5227b));import{loadConfig}from'./config.js';import{createContext,setContext}from'./context.js';function _0x3cf5(_0x58c334,_0x356317){_0x58c334=_0x58c334-0xb0;const _0x226121=_0x2261();let _0x3cf572=_0x226121[_0x58c334];return _0x3cf572;}import{createAudit,createDatabase,createDictionary,createFileS3,createLogger,createRedis,createResource}from'./plugins/index.js';export async function createFCore(_0x558626={}){const _0x25fd7a=_0x3cf5,_0xb99b16={'MlLPb':function(_0x10bf62,_0x32644e){return _0x10bf62(_0x32644e);},'jMCJS':function(_0x1d60c1){return _0x1d60c1();},'AGtrX':function(_0x236daf,_0x41f2ff){return _0x236daf(_0x41f2ff);},'lefxe':function(_0x2dc24a,_0x4cbefc){return _0x2dc24a(_0x4cbefc);}},_0x2974a2=loadConfig(_0x558626[_0x25fd7a(0xb2)]),_0x54e7ed=_0xb99b16[_0x25fd7a(0xc9)](createRedis,_0x2974a2[_0x25fd7a(0xb3)]),_0x4a967d=_0xb99b16[_0x25fd7a(0xbb)](createLogger),_0xcc9cb7=_0xb99b16[_0x25fd7a(0xc9)](createDatabase,_0x2974a2['pg']),_0x5863d3={};_0x5863d3[_0x25fd7a(0xb8)]=_0x2974a2['s3'][_0x25fd7a(0xb8)],_0x5863d3[_0x25fd7a(0xcd)]=_0x2974a2['s3'][_0x25fd7a(0xcd)],_0x5863d3[_0x25fd7a(0xc6)]=_0x2974a2['s3'][_0x25fd7a(0xc6)],_0x5863d3[_0x25fd7a(0xca)]=_0x2974a2['s3'][_0x25fd7a(0xca)],_0x5863d3[_0x25fd7a(0xcc)]=_0x2974a2['s3'][_0x25fd7a(0xcc)],_0x5863d3[_0x25fd7a(0xcb)]=_0x2974a2['s3'][_0x25fd7a(0xcb)],_0x5863d3[_0x25fd7a(0xb7)]=_0x2974a2['s3'][_0x25fd7a(0xb7)],_0x5863d3[_0x25fd7a(0xb0)]=_0x2974a2['s3'][_0x25fd7a(0xb0)],_0x5863d3[_0x25fd7a(0xc7)]=_0x2974a2['s3'][_0x25fd7a(0xc7)];const _0x2f4ab7=_0xb99b16[_0x25fd7a(0xc8)](createFileS3,_0x5863d3),_0x2140b9={};_0x2140b9['pg']=_0xcc9cb7,_0x2140b9[_0x25fd7a(0xc2)]=_0x4a967d;const _0x34cdbc=_0xb99b16[_0x25fd7a(0xc1)](createAudit,_0x2140b9),_0x36492f={};_0x36492f['pg']=_0xcc9cb7,_0x36492f[_0x25fd7a(0xc3)]=_0x558626[_0x25fd7a(0xc3)];const _0x471aa2=createDictionary(_0x36492f),_0x22fb1d={};_0x22fb1d['pg']=_0xcc9cb7,_0x22fb1d[_0x25fd7a(0xc2)]=_0x4a967d,_0x22fb1d[_0x25fd7a(0xb5)]=_0x34cdbc;const _0x3248d7=createResource(_0x22fb1d);_0x558626[_0x25fd7a(0xce)]?.[_0x25fd7a(0xc4)]&&_0x3248d7[_0x25fd7a(0xba)](_0x558626[_0x25fd7a(0xce)]);const _0x2bedd8={};_0x2bedd8[_0x25fd7a(0xb2)]=_0x2974a2,_0x2bedd8[_0x25fd7a(0xc2)]=_0x4a967d,_0x2bedd8[_0x25fd7a(0xb3)]=_0x54e7ed,_0x2bedd8['pg']=_0xcc9cb7,_0x2bedd8[_0x25fd7a(0xbd)]=_0x2f4ab7,_0x2bedd8[_0x25fd7a(0xc0)]=_0x3248d7,_0x2bedd8[_0x25fd7a(0xb5)]=_0x34cdbc,_0x2bedd8[_0x25fd7a(0xc5)]=_0x471aa2;const _0x108231=createContext(_0x2bedd8);return _0xb99b16[_0x25fd7a(0xc1)](setContext,_0x108231),_0x108231;}function _0x2261(){const _0x4ca9eb=['secretKey','region','resources','303764RTsmWr','tokenSecret','394578pqRvFZ','config','redis','540ZUFnuM','audit','2568680htJPYU','forcePathStyle','endpoint','303011OqrIBE','register','jMCJS','12418FuKIAe','file','947538hClrGJ','5460128noLbqL','resource','lefxe','logger','dictionaries','length','dictionary','bucket','tokenTtl','AGtrX','MlLPb','accessKey','folder'];_0x2261=function(){return _0x4ca9eb;};return _0x2261();}
1
+ function z(C,N){C=C-0xc6;const r=U();let p=r[C];return p;}import{loadConfig}from'./config.js';import{createContext,setContext}from'./context.js';import{createAudit,createDatabase,createDictionary,createFileS3,createLogger,createRedis,createResource}from'./plugins/index.js';function U(){const Y=['redis','endpoint','forcePathStyle','resources'];U=function(){return Y;};return U();}export async function createFCore(C={}){const T=z,N=loadConfig(C['config']),r=createRedis(N[T(0xc6)]),p=createLogger(),c=createDatabase(N['pg']),x=createFileS3({'endpoint':N['s3'][T(0xc7)],'region':N['s3']['region'],'bucket':N['s3']['bucket'],'accessKey':N['s3']['accessKey'],'secretKey':N['s3']['secretKey'],'folder':N['s3']['folder'],'forcePathStyle':N['s3'][T(0xc8)],'tokenSecret':N['s3']['tokenSecret'],'tokenTtl':N['s3']['tokenTtl']}),m=createAudit({'pg':c,'logger':p}),Q=createDictionary({'pg':c,'dictionaries':C['dictionaries']}),u=createResource({'pg':c,'logger':p,'audit':m,'dictionary':Q,'file':x});C[T(0xc9)]?.['length']&&u['register'](C['resources']);const L=createContext({'config':N,'logger':p,'redis':r,'pg':c,'file':x,'resource':u,'audit':m,'dictionary':Q});return setContext(L),L;}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@
4
4
  export * from './errors.js';
5
5
  export * from './config.js';
6
6
  export * from './context.js';
7
+ export * from './plugins/index.js';
7
8
  export * from './fcore.js';
8
9
  export * from './migrations/runner.js';
9
10
  export * from './type.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- (function(_0x227e6d,_0x3b7765){var _0x1e62b8=_0x37f0,_0x57cad7=_0x227e6d();while(!![]){try{var _0x3f3be1=-parseInt(_0x1e62b8(0xa7))/0x1*(-parseInt(_0x1e62b8(0x9e))/0x2)+-parseInt(_0x1e62b8(0xa1))/0x3+-parseInt(_0x1e62b8(0xa4))/0x4+parseInt(_0x1e62b8(0xa3))/0x5*(parseInt(_0x1e62b8(0x9f))/0x6)+-parseInt(_0x1e62b8(0xa6))/0x7*(-parseInt(_0x1e62b8(0xa5))/0x8)+parseInt(_0x1e62b8(0xa0))/0x9+-parseInt(_0x1e62b8(0xa2))/0xa;if(_0x3f3be1===_0x3b7765)break;else _0x57cad7['push'](_0x57cad7['shift']());}catch(_0x310b2a){_0x57cad7['push'](_0x57cad7['shift']());}}}(_0x20aa,0x54b95));function _0x37f0(_0x5b086a,_0x55afe3){_0x5b086a=_0x5b086a-0x9e;var _0x20aab4=_0x20aa();var _0x37f021=_0x20aab4[_0x5b086a];return _0x37f021;}export*from'./errors.js';export*from'./config.js';export*from'./context.js';export*from'./fcore.js';export*from'./migrations/runner.js';export*from'./type.js';function _0x20aa(){var _0x388309=['19065wQpIVt','58Vdxflz','252JxIHSK','4131486dnkchK','877077YIJRvj','2620880iuaMmQ','44290NnMQsR','2450088szoFTT','115576kFsVDx','63QElMww'];_0x20aa=function(){return _0x388309;};return _0x20aa();}
1
+ export*from'./errors.js';export*from'./config.js';export*from'./context.js';export*from'./plugins/index.js';export*from'./fcore.js';export*from'./migrations/runner.js';export*from'./type.js';
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const _0x2c9228=_0x2a8f;(function(_0x44e886,_0x456095){const _0x58d0fa=_0x2a8f,_0x122e1d=_0x44e886();while(!![]){try{const _0x5075b9=parseInt(_0x58d0fa(0x146))/0x1*(parseInt(_0x58d0fa(0x13f))/0x2)+parseInt(_0x58d0fa(0x13e))/0x3*(parseInt(_0x58d0fa(0x147))/0x4)+-parseInt(_0x58d0fa(0x14a))/0x5+parseInt(_0x58d0fa(0x13b))/0x6+parseInt(_0x58d0fa(0x13c))/0x7+parseInt(_0x58d0fa(0x143))/0x8+-parseInt(_0x58d0fa(0x13a))/0x9*(parseInt(_0x58d0fa(0x13d))/0xa);if(_0x5075b9===_0x456095)break;else _0x122e1d['push'](_0x122e1d['shift']());}catch(_0xd61092){_0x122e1d['push'](_0x122e1d['shift']());}}}(_0x5594,0x359c5));function _0x2a8f(_0x3944d0,_0x4dbf6b){_0x3944d0=_0x3944d0-0x138;const _0x5594cc=_0x5594();let _0x2a8f61=_0x5594cc[_0x3944d0];return _0x2a8f61;}import{runMigrations}from'./runner.js';import{loadConfig}from'../config.js';function _0x5594(){const _0x3c38f9=['1217968Gznbnt','database','error','55CNUapv','12hAAjSy','status','log','1411005hTTjAg','run','file','OK\x20\x20','7211475LbUwHm','2398794TfXcRW','1499316qcJymi','10fGisuD','215907bHpDJl','11670Dyrfzz','Loaded\x20configuration:','SKIP','exitCode'];_0x5594=function(){return _0x3c38f9;};return _0x5594();}try{const config=loadConfig();console[_0x2c9228(0x149)](_0x2c9228(0x140),config['pg']);const _0x12ddab={};_0x12ddab[_0x2c9228(0x144)]=config['pg'];for(const r of await runMigrations(_0x12ddab))console[_0x2c9228(0x149)]((r[_0x2c9228(0x148)]===_0x2c9228(0x14b)?_0x2c9228(0x139):_0x2c9228(0x141))+'\x20'+r[_0x2c9228(0x138)]);}catch(_0x5688b8){console[_0x2c9228(0x145)](_0x5688b8),process[_0x2c9228(0x142)]=0x1;}
2
+ function U(){const p=['status','error','exitCode'];U=function(){return p;};return U();}const N=z;import{runMigrations}from'./runner.js';function z(C,N){C=C-0x7b;const r=U();let p=r[C];return p;}import{loadConfig}from'../config.js';try{const config=loadConfig();console['log']('Loaded\x20configuration:',config['pg']);for(const r of await runMigrations({'database':config['pg']}))console['log']((r[N(0x7b)]==='run'?'OK\x20\x20':'SKIP')+'\x20'+r['file']);}catch(C){console[N(0x7c)](C),process[N(0x7d)]=0x1;}
@@ -1 +1 @@
1
- (function(_0x321011,_0x3f603d){const _0x2be90a=_0x1ff3,_0x440efe=_0x321011();while(!![]){try{const _0xd658ac=-parseInt(_0x2be90a(0xee))/0x1*(parseInt(_0x2be90a(0xdf))/0x2)+-parseInt(_0x2be90a(0x10d))/0x3+-parseInt(_0x2be90a(0xd1))/0x4+parseInt(_0x2be90a(0xf9))/0x5*(parseInt(_0x2be90a(0xe6))/0x6)+parseInt(_0x2be90a(0xed))/0x7+parseInt(_0x2be90a(0xf7))/0x8+-parseInt(_0x2be90a(0xf3))/0x9*(-parseInt(_0x2be90a(0xd0))/0xa);if(_0xd658ac===_0x3f603d)break;else _0x440efe['push'](_0x440efe['shift']());}catch(_0x233e43){_0x440efe['push'](_0x440efe['shift']());}}}(_0x1e77,0x48ce2));import _0x4a485e from'node:fs/promises';function _0x1ff3(_0x1574cb,_0x58842e){_0x1574cb=_0x1574cb-0xcc;const _0x1e7787=_0x1e77();let _0x1ff313=_0x1e7787[_0x1574cb];return _0x1ff313;}import _0x36622a from'node:path';import{createDatabase}from'../plugins/pg.js';export async function runMigrations(_0x4987c4={}){const _0x2e4100=_0x1ff3,_0x233231={'VwtHT':function(_0x430c83,_0x18864e){return _0x430c83(_0x18864e);},'thrtF':_0x2e4100(0xdd),'aakss':_0x2e4100(0xe2),'yOogn':function(_0x1b594c,_0x337587){return _0x1b594c(_0x337587);},'WDIlk':_0x2e4100(0xcf),'xXnrE':function(_0x52d7cc,_0x4fa68f){return _0x52d7cc===_0x4fa68f;},'wKUfX':_0x2e4100(0x10a),'aZAOc':_0x2e4100(0xe7),'PImWX':function(_0x3d3bb2,_0x3e740f){return _0x3d3bb2!==_0x3e740f;},'XXtXt':_0x2e4100(0x108),'ZtzLG':_0x2e4100(0x112),'WYtao':_0x2e4100(0xf0),'BEfAD':_0x2e4100(0xff),'MSgSB':_0x2e4100(0xe8),'AxOSM':_0x2e4100(0xf1),'QcsVS':_0x2e4100(0x107)},_0x26410a=_0x36622a[_0x2e4100(0xcc)](_0x4987c4[_0x2e4100(0x109)]??_0x233231[_0x2e4100(0x111)]),_0x5c1ab4=_0x4987c4[_0x2e4100(0xe3)]??databaseFromUrl(_0x4987c4[_0x2e4100(0x10e)]??process.env.DATABASE_URL);if(!_0x5c1ab4)throw new Error(_0x233231[_0x2e4100(0xec)]);const _0x463ac8=_0x233231[_0x2e4100(0xfd)](createDatabase,_0x5c1ab4);if(!_0x463ac8)throw new Error(_0x2e4100(0x113));const _0x53784f=[];try{await _0x463ac8[_0x2e4100(0xea)](_0x2e4100(0x102));const _0x30aea6=await _0x463ac8[_0x2e4100(0xea)](_0x233231[_0x2e4100(0xd6)]),_0x579a6f=new Set(_0x30aea6[_0x2e4100(0x10c)][_0x2e4100(0xf2)](_0x41067a=>_0x41067a[_0x2e4100(0xe4)])),_0x45cb8d=(await _0x4a485e[_0x2e4100(0xdb)](_0x26410a))[_0x2e4100(0x103)](_0x4775d5=>_0x4775d5[_0x2e4100(0x110)](_0x2e4100(0x10f)))[_0x2e4100(0xe5)]();for(const _0x496156 of _0x45cb8d){if(_0x233231[_0x2e4100(0xeb)](_0x233231[_0x2e4100(0xdc)],_0x233231[_0x2e4100(0xd7)])){if(!_0x4cb665)return _0x32913d;const _0x540aac=new _0x451daf(_0x40d5ca);return{'host':_0x540aac[_0x2e4100(0xcd)],'port':_0x400d5f(_0x540aac[_0x2e4100(0xd9)]||0x1538),'database':_0x540aac[_0x2e4100(0xe9)][_0x2e4100(0xd2)](0x1),'user':_0x55e121(_0x540aac[_0x2e4100(0xe1)]),'password':_0x233231[_0x2e4100(0xd8)](_0x5c68e8,_0x540aac[_0x2e4100(0xf5)])};}else{if(_0x579a6f[_0x2e4100(0xf8)](_0x496156)){if(_0x233231[_0x2e4100(0xef)](_0x233231[_0x2e4100(0xd4)],_0x233231[_0x2e4100(0xde)])){const _0xb76a20={};_0xb76a20[_0x2e4100(0x105)]=_0x496156,_0xb76a20[_0x2e4100(0xfc)]=_0x2e4100(0x101),_0x53784f[_0x2e4100(0x100)](_0xb76a20);continue;}else _0x360f2[_0x2e4100(0xf6)]();}const _0x1ba5cd=await _0x4a485e[_0x2e4100(0xfe)](_0x36622a[_0x2e4100(0x106)](_0x26410a,_0x496156),_0x233231[_0x2e4100(0xf4)]),_0x4b7ab0=await _0x463ac8[_0x2e4100(0xfb)]();try{await _0x4b7ab0[_0x2e4100(0xea)](_0x233231[_0x2e4100(0xe0)]),await _0x4b7ab0[_0x2e4100(0xea)](_0x1ba5cd),await _0x4b7ab0[_0x2e4100(0xea)](_0x233231[_0x2e4100(0x104)],[_0x496156]),await _0x4b7ab0[_0x2e4100(0xea)](_0x2e4100(0xce));}catch(_0x3ec8c5){await _0x4b7ab0[_0x2e4100(0xea)](_0x233231[_0x2e4100(0x10b)]);throw _0x3ec8c5;}finally{_0x4b7ab0[_0x2e4100(0xf6)]();}const _0x73f45c={};_0x73f45c[_0x2e4100(0x105)]=_0x496156,_0x73f45c[_0x2e4100(0xfc)]=_0x233231[_0x2e4100(0xfa)],_0x53784f[_0x2e4100(0x100)](_0x73f45c);}}return _0x53784f;}finally{await _0x463ac8[_0x2e4100(0xd3)]();}}function databaseFromUrl(_0x38647e){const _0x2d952c=_0x1ff3,_0x42021c={'naEqq':function(_0xc623fd,_0x4b638e){return _0xc623fd(_0x4b638e);},'dibad':function(_0x3d0374,_0x535028){return _0x3d0374(_0x535028);}};if(!_0x38647e)return undefined;const _0x5c0a50=new URL(_0x38647e);return{'host':_0x5c0a50[_0x2d952c(0xcd)],'port':_0x42021c[_0x2d952c(0xda)](Number,_0x5c0a50[_0x2d952c(0xd9)]||0x1538),'database':_0x5c0a50[_0x2d952c(0xe9)][_0x2d952c(0xd2)](0x1),'user':_0x42021c[_0x2d952c(0xd5)](decodeURIComponent,_0x5c0a50[_0x2d952c(0xe1)]),'password':decodeURIComponent(_0x5c0a50[_0x2d952c(0xf5)])};}function _0x1e77(){const _0x3fbf2e=['readFile','BEGIN','push','skip','\x0a\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20schema_migrations\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20version\x20varchar(255)\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20\x20\x20applied_at\x20timestamptz\x20NOT\x20NULL\x20DEFAULT\x20now()\x0a\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20','filter','MSgSB','file','join','run','YZlXH','dir','xXeYM','AxOSM','rows','803727lyUCBQ','databaseUrl','.sql','endsWith','thrtF','VHsDy','empty\x20pg','resolve','hostname','COMMIT','SELECT\x20version\x20FROM\x20schema_migrations','50DpWDyN','2364972RYSScS','slice','end','XXtXt','dibad','WDIlk','aZAOc','VwtHT','port','naEqq','readdir','wKUfX','migrations','ZtzLG','28NZjfZn','BEfAD','username','DATABASE_URL\x20or\x20database\x20config\x20is\x20required','database','version','sort','30IrZFsE','BbJIm','INSERT\x20INTO\x20schema_migrations(version)\x20VALUES\x20($1)','pathname','query','xXnrE','aakss','3033464hlgQvh','12382XmfYCP','PImWX','utf8','ROLLBACK','map','527328YOfksM','WYtao','password','release','421784LYOZan','has','551675qmuLRD','QcsVS','connect','status','yOogn'];_0x1e77=function(){return _0x3fbf2e;};return _0x1e77();}
1
+ import C from'node:fs/promises';import N from'node:path';function z(C,N){C=C-0xff;const r=U();let p=r[C];return p;}function U(){const h=['dir','migrations','databaseUrl','rows','map','version','release','push','end'];U=function(){return h;};return U();}import{createDatabase}from'../plugins/pg.js';export async function runMigrations(r={}){const t=z,p=N['resolve'](r[t(0xff)]??t(0x100)),c=r['database']??databaseFromUrl(r[t(0x101)]??process.env.DATABASE_URL);if(!c)throw new Error('DATABASE_URL\x20or\x20database\x20config\x20is\x20required');const x=createDatabase(c);if(!x)throw new Error('empty\x20pg');const m=[];try{await x['query']('\x0a\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20schema_migrations\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20version\x20varchar(255)\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20\x20\x20applied_at\x20timestamptz\x20NOT\x20NULL\x20DEFAULT\x20now()\x0a\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20');const Q=await x['query']('SELECT\x20version\x20FROM\x20schema_migrations'),u=new Set(Q[t(0x102)][t(0x103)](T=>T[t(0x104)])),L=(await C['readdir'](p))['filter'](T=>T['endsWith']('.sql'))['sort']();for(const T of L){if(u['has'](T)){m['push']({'file':T,'status':'skip'});continue;}const Y=await C['readFile'](N['join'](p,T),'utf8'),f=await x['connect']();try{await f['query']('BEGIN'),await f['query'](Y),await f['query']('INSERT\x20INTO\x20schema_migrations(version)\x20VALUES\x20($1)',[T]),await f['query']('COMMIT');}catch(F){await f['query']('ROLLBACK');throw F;}finally{f[t(0x105)]();}m[t(0x106)]({'file':T,'status':'run'});}return m;}finally{await x[t(0x107)]();}}function databaseFromUrl(r){if(!r)return undefined;const p=new URL(r);return{'host':p['hostname'],'port':Number(p['port']||0x1538),'database':p['pathname']['slice'](0x1),'user':decodeURIComponent(p['username']),'password':decodeURIComponent(p['password'])};}
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const _0x422e88=_0x3252;(function(_0x181626,_0x4e6701){const _0x33fb8e=_0x3252,_0xb6216d=_0x181626();while(!![]){try{const _0x50b068=parseInt(_0x33fb8e(0x1d0))/0x1+parseInt(_0x33fb8e(0x1d4))/0x2*(parseInt(_0x33fb8e(0x1d2))/0x3)+-parseInt(_0x33fb8e(0x1da))/0x4+parseInt(_0x33fb8e(0x1df))/0x5*(-parseInt(_0x33fb8e(0x1d8))/0x6)+-parseInt(_0x33fb8e(0x1d9))/0x7+parseInt(_0x33fb8e(0x1dd))/0x8*(-parseInt(_0x33fb8e(0x1db))/0x9)+-parseInt(_0x33fb8e(0x1d6))/0xa*(-parseInt(_0x33fb8e(0x1de))/0xb);if(_0x50b068===_0x4e6701)break;else _0xb6216d['push'](_0xb6216d['shift']());}catch(_0x2f87fb){_0xb6216d['push'](_0xb6216d['shift']());}}}(_0x4e47,0x4f5e4));import{loadConfig}from'../../config.js';function _0x4e47(){const _0x286c87=['slice','2460VydJGH','2087477fObPYj','1398440eJMZKM','9KYnGJb','argv','1443176tKOhYs','7527179WBdmAE','4055QnDFSc','Registered\x20user\x20','exitCode','type','Usage:\x20fcore-registration\x20<login>\x20<password>\x20[type]','154940uZavsW','error','33qIxcxq','end','117562xeAFwH','log','10AcmzSO'];_0x4e47=function(){return _0x286c87;};return _0x4e47();}function _0x3252(_0x4fcbcf,_0x36f375){_0x4fcbcf=_0x4fcbcf-0x1cc;const _0x4e47ab=_0x4e47();let _0x32522e=_0x4e47ab[_0x4fcbcf];return _0x32522e;}import{createDatabase}from'../../plugins/pg.js';import _0x4b8953 from'./services/registration.js';const [user,password,type]=process[_0x422e88(0x1dc)][_0x422e88(0x1d7)](0x2);if(!user||!password)console[_0x422e88(0x1d1)](_0x422e88(0x1cf)),process[_0x422e88(0x1cd)]=0x1;else{const pg=createDatabase(loadConfig()['pg']);try{const _0x14e6be={};_0x14e6be['pg']=pg;const {user:data}=await _0x4b8953({'user':user,'password':password,'type':type},_0x14e6be);console[_0x422e88(0x1d5)](_0x422e88(0x1cc)+data['id']+'\x20('+data[_0x422e88(0x1ce)]+')');}catch(_0x2e5ca9){console[_0x422e88(0x1d1)](_0x2e5ca9),process[_0x422e88(0x1cd)]=0x1;}finally{await pg[_0x422e88(0x1d3)]();}}
2
+ const r=z;function U(){const p=['argv','Usage:\x20fcore-registration\x20<login>\x20<password>\x20[type]','exitCode','log','Registered\x20user\x20'];U=function(){return p;};return U();}import{loadConfig}from'../../config.js';import{createDatabase}from'../../plugins/pg.js';function z(C,N){C=C-0x102;const r=U();let p=r[C];return p;}import C from'./services/registration.js';const [user,password,type]=process[r(0x102)]['slice'](0x2);if(!user||!password)console['error'](r(0x103)),process[r(0x104)]=0x1;else{const pg=createDatabase(loadConfig()['pg']);try{const {user:data}=await C({'user':user,'password':password,'type':type},{'pg':pg});console[r(0x105)](r(0x106)+data['id']+'\x20('+data['type']+')');}catch(N){console['error'](N),process[r(0x104)]=0x1;}finally{await pg['end']();}}
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const _0x3e9b31=_0x22f6;(function(_0x22f2a7,_0x2d1d6e){const _0x42922f=_0x22f6,_0x385b0e=_0x22f2a7();while(!![]){try{const _0x1f9664=-parseInt(_0x42922f(0x99))/0x1*(-parseInt(_0x42922f(0xac))/0x2)+parseInt(_0x42922f(0xab))/0x3+-parseInt(_0x42922f(0x9e))/0x4+-parseInt(_0x42922f(0xa2))/0x5+-parseInt(_0x42922f(0xae))/0x6+parseInt(_0x42922f(0xa8))/0x7*(parseInt(_0x42922f(0x9f))/0x8)+-parseInt(_0x42922f(0x98))/0x9*(-parseInt(_0x42922f(0xa6))/0xa);if(_0x1f9664===_0x2d1d6e)break;else _0x385b0e['push'](_0x385b0e['shift']());}catch(_0x65a41f){_0x385b0e['push'](_0x385b0e['shift']());}}}(_0x330a,0x60816));import{loadConfig}from'../../config.js';function _0x330a(){const _0x105c78=['log','argv','error','2346948hgMRvY','728JFRlQP','end','query','1323520uMvVmS','Usage:\x20fcore-password\x20<login>\x20<password>','exitCode','SELECT\x20uid\x20AS\x20id\x20FROM\x20admin.users\x20WHERE\x20$1\x20IN\x20(login,\x20email,\x20phone)\x20LIMIT\x201','510aBQWBM','userId','13517ElTRKN','slice','password','1393719uLsOts','183162SZSYBq','User\x20not\x20found','3707184bKZMHN','Password\x20changed\x20for\x20','151407ewwepN','4HZzcGD','rows'];_0x330a=function(){return _0x105c78;};return _0x330a();}import{createDatabase}from'../../plugins/pg.js';import _0xad2634 from'./services/change-password.js';const [login,password]=process[_0x3e9b31(0x9c)][_0x3e9b31(0xa9)](0x2);function _0x22f6(_0x4664c5,_0x16701c){_0x4664c5=_0x4664c5-0x97;const _0x330a26=_0x330a();let _0x22f62b=_0x330a26[_0x4664c5];return _0x22f62b;}if(!login||!password)console[_0x3e9b31(0x9d)](_0x3e9b31(0xa3)),process[_0x3e9b31(0xa4)]=0x1;else{const pg=createDatabase(loadConfig()['pg']);try{const result=await pg[_0x3e9b31(0xa1)](_0x3e9b31(0xa5),[login]),user=result[_0x3e9b31(0x9a)][0x0];if(!user)throw new Error(_0x3e9b31(0xad));const _0x283ea3={};_0x283ea3[_0x3e9b31(0xa7)]=user['id'],_0x283ea3[_0x3e9b31(0xaa)]=password;const _0x4289b3={};_0x4289b3['pg']=pg,await _0xad2634(_0x283ea3,_0x4289b3),console[_0x3e9b31(0x9b)](_0x3e9b31(0x97)+login);}catch(_0x48b25e){console[_0x3e9b31(0x9d)](_0x48b25e),process[_0x3e9b31(0xa4)]=0x1;}finally{await pg[_0x3e9b31(0xa0)]();}}
2
+ const r=z;import{loadConfig}from'../../config.js';import{createDatabase}from'../../plugins/pg.js';function z(C,N){C=C-0x149;const r=U();let p=r[C];return p;}function U(){const p=['error','Usage:\x20fcore-password\x20<login>\x20<password>','query','User\x20not\x20found','log','Password\x20changed\x20for\x20'];U=function(){return p;};return U();}import C from'./services/change-password.js';const [login,password]=process['argv']['slice'](0x2);if(!login||!password)console[r(0x149)](r(0x14a)),process['exitCode']=0x1;else{const pg=createDatabase(loadConfig()['pg']);try{const result=await pg[r(0x14b)]('SELECT\x20uid\x20AS\x20id\x20FROM\x20admin.users\x20WHERE\x20$1\x20IN\x20(login,\x20email,\x20phone)\x20LIMIT\x201',[login]),user=result['rows'][0x0];if(!user)throw new Error(r(0x14c));await C({'userId':user['id'],'password':password},{'pg':pg}),console[r(0x14d)](r(0x14e)+login);}catch(N){console['error'](N),process['exitCode']=0x1;}finally{await pg['end']();}}
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const _0x419982=_0x6d2f;(function(_0x3926a3,_0x1837a5){const _0x4c9f35=_0x6d2f,_0x91a858=_0x3926a3();while(!![]){try{const _0x5bcc2a=parseInt(_0x4c9f35(0x1db))/0x1+-parseInt(_0x4c9f35(0x1d0))/0x2*(parseInt(_0x4c9f35(0x1dd))/0x3)+-parseInt(_0x4c9f35(0x1ed))/0x4*(-parseInt(_0x4c9f35(0x1cf))/0x5)+-parseInt(_0x4c9f35(0x1f0))/0x6*(-parseInt(_0x4c9f35(0x1cc))/0x7)+parseInt(_0x4c9f35(0x1ce))/0x8+-parseInt(_0x4c9f35(0x1e8))/0x9+-parseInt(_0x4c9f35(0x1e4))/0xa;if(_0x5bcc2a===_0x1837a5)break;else _0x91a858['push'](_0x91a858['shift']());}catch(_0x990745){_0x91a858['push'](_0x91a858['shift']());}}}(_0x405e,0x25b69));import{loadConfig}from'../../config.js';import{createDatabase}from'../../plugins/pg.js';function _0x405e(){const _0x164d92=['audit','INSERT\x20INTO\x20admin.role_access\x0a\x20\x20\x20\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\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$4)','read','includes','Granted\x20permissions\x20for\x20','map','239988FwZQhS','join','971872amXFEb','756075dsUXVS','2ISJBZO','User\x20not\x20found','release','create','rows','BEGIN','ROLLBACK','SELECT\x20access_id,\x20actions\x20FROM\x20admin.role_access\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20user_uid\x20=\x20$1\x20AND\x20role_id\x20IS\x20NULL\x20AND\x20resource\x20=\x20$2','UPDATE\x20admin.role_access\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20actions\x20=\x20$1,\x20updated_by\x20=\x20$2,\x20updated_at\x20=\x20now()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20access_id\x20=\x20$3','set','Permissions\x20cleared\x20for\x20','280805xACRZO','delete','814953JiyaAG','push','trim','connect','update','log','filter','3140520hLllIe','check','access_id','split','1840779bjUaTJ','COMMIT','error','add','actions','8FypEYm','argv','settings','42XmkZAS','exitCode','query','BUVKP','end','slice','list','logs','access','get','clear','Usage:\x20fcore-permission\x20<login>\x20<system|resource|resource:action[,...]|clear>','DJWmu','DELETE\x20FROM\x20admin.role_access\x20WHERE\x20user_uid\x20=\x20$1\x20AND\x20role_id\x20IS\x20NULL','system','NpOXO','SELECT\x20uid\x20AS\x20id\x20FROM\x20admin.users\x20WHERE\x20$1\x20IN\x20(login,\x20email,\x20phone)\x20LIMIT\x201','dictionaries'];_0x405e=function(){return _0x164d92;};return _0x405e();}function _0x6d2f(_0x1ff88b,_0x375ffa){_0x1ff88b=_0x1ff88b-0x1c9;const _0x405e98=_0x405e();let _0x6d2fca=_0x405e98[_0x1ff88b];return _0x6d2fca;}const SYSTEM_ACTIONS=[_0x419982(0x1f7),_0x419982(0x202),_0x419982(0x1f6),_0x419982(0x1e5),_0x419982(0x1f8),_0x419982(0x1ef),_0x419982(0x201)],RESOURCE_ACTIONS=[_0x419982(0x204),_0x419982(0x1e1),_0x419982(0x1d3),_0x419982(0x1dc)],[login,permissionArg]=process[_0x419982(0x1ee)][_0x419982(0x1f5)](0x2);function expandPermissions(_0x5c0177){const _0x2cb02c=_0x419982,_0x34f792={};_0x34f792[_0x2cb02c(0x1f3)]=_0x2cb02c(0x1fe),_0x34f792[_0x2cb02c(0x1fc)]=_0x2cb02c(0x1ff);const _0x2d6abf=_0x34f792,_0x14166d=_0x5c0177[_0x2cb02c(0x1e7)](',')[_0x2cb02c(0x1cb)](_0x387ac0=>_0x387ac0[_0x2cb02c(0x1df)]())[_0x2cb02c(0x1e3)](Boolean),_0x212809=new Set();for(const _0x4ec483 of _0x14166d){if(_0x4ec483[_0x2cb02c(0x1c9)](':')){_0x212809[_0x2cb02c(0x1eb)](_0x4ec483);continue;}const _0x8b9249=_0x4ec483===_0x2d6abf[_0x2cb02c(0x1f3)]?SYSTEM_ACTIONS:RESOURCE_ACTIONS;for(const _0x1a71b1 of _0x8b9249){if(_0x2d6abf[_0x2cb02c(0x1fc)]===_0x2d6abf[_0x2cb02c(0x1fc)])_0x212809[_0x2cb02c(0x1eb)](_0x4ec483+':'+_0x1a71b1);else{const [_0x38d955,_0x1433dd]=_0x22ae26[_0x2cb02c(0x1e7)](':'),_0x21f5e4=_0x3c4bd4[_0x2cb02c(0x1f9)](_0x38d955)??[];_0x21f5e4[_0x2cb02c(0x1de)](_0x1433dd),_0x5b9cea[_0x2cb02c(0x1d9)](_0x38d955,_0x21f5e4);}}}return[..._0x212809];}if(!login||!permissionArg)console[_0x419982(0x1ea)](_0x419982(0x1fb)),process[_0x419982(0x1f1)]=0x1;else{const pg=createDatabase(loadConfig()['pg']);try{const result=await pg[_0x419982(0x1f2)](_0x419982(0x200),[login]),user=result[_0x419982(0x1d4)][0x0];if(!user)throw new Error(_0x419982(0x1d1));if(permissionArg[_0x419982(0x1df)]()===_0x419982(0x1fa))await pg[_0x419982(0x1f2)](_0x419982(0x1fd),[user['id']]),console[_0x419982(0x1e2)](_0x419982(0x1da)+login);else{const permissions=expandPermissions(permissionArg),byResource=new Map();for(const permission of permissions){const [resource,action]=permission[_0x419982(0x1e7)](':'),actions=byResource[_0x419982(0x1f9)](resource)??[];actions[_0x419982(0x1de)](action),byResource[_0x419982(0x1d9)](resource,actions);}const client=await pg[_0x419982(0x1e0)]();try{await client[_0x419982(0x1f2)](_0x419982(0x1d5));for(const [resource,actions]of byResource){const existing=await client[_0x419982(0x1f2)](_0x419982(0x1d7),[user['id'],resource]),row=existing[_0x419982(0x1d4)][0x0];if(row){const merged=[...new Set([...row[_0x419982(0x1ec)]??[],...actions])];await client[_0x419982(0x1f2)](_0x419982(0x1d8),[merged,user['id'],row[_0x419982(0x1e6)]]);}else await client[_0x419982(0x1f2)](_0x419982(0x203),[resource,actions,user['id'],user['id']]);}await client[_0x419982(0x1f2)](_0x419982(0x1e9));}catch(_0x2fcadc){await client[_0x419982(0x1f2)](_0x419982(0x1d6));throw _0x2fcadc;}finally{client[_0x419982(0x1d2)]();}console[_0x419982(0x1e2)](_0x419982(0x1ca)+login+':\x20'+permissions[_0x419982(0x1cd)](',\x20'));}}catch(_0x453680){console[_0x419982(0x1ea)](_0x453680),process[_0x419982(0x1f1)]=0x1;}finally{await pg[_0x419982(0x1f4)]();}}
2
+ const u=z;function U(){const T=['audit','access','settings','create','slice','add','error','Usage:\x20fcore-permission\x20<login>\x20<system|resource|resource:action[,...]|clear>','query','User\x20not\x20found','trim','split','get','BEGIN','actions','UPDATE\x20admin.role_access\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20actions\x20=\x20$1,\x20updated_by\x20=\x20$2,\x20updated_at\x20=\x20now()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20access_id\x20=\x20$3','end'];U=function(){return T;};return U();}import{loadConfig}from'../../config.js';import{createDatabase}from'../../plugins/pg.js';const SYSTEM_ACTIONS=['logs',u(0x13a),'list','check',u(0x13b),u(0x13c),'dictionaries'],RESOURCE_ACTIONS=['read','update',u(0x13d),'delete'],[login,permissionArg]=process['argv'][u(0x13e)](0x2);function z(C,N){C=C-0x13a;const r=U();let p=r[C];return p;}function expandPermissions(C){const L=u,N=C['split'](',')['map'](p=>p['trim']())['filter'](Boolean),r=new Set();for(const p of N){if(p['includes'](':')){r[L(0x13f)](p);continue;}const c=p==='system'?SYSTEM_ACTIONS:RESOURCE_ACTIONS;for(const x of c){r[L(0x13f)](p+':'+x);}}return[...r];}if(!login||!permissionArg)console[u(0x140)](u(0x141)),process['exitCode']=0x1;else{const pg=createDatabase(loadConfig()['pg']);try{const result=await pg[u(0x142)]('SELECT\x20uid\x20AS\x20id\x20FROM\x20admin.users\x20WHERE\x20$1\x20IN\x20(login,\x20email,\x20phone)\x20LIMIT\x201',[login]),user=result['rows'][0x0];if(!user)throw new Error(u(0x143));if(permissionArg[u(0x144)]()==='clear')await pg[u(0x142)]('DELETE\x20FROM\x20admin.role_access\x20WHERE\x20user_uid\x20=\x20$1\x20AND\x20role_id\x20IS\x20NULL',[user['id']]),console['log']('Permissions\x20cleared\x20for\x20'+login);else{const permissions=expandPermissions(permissionArg),byResource=new Map();for(const permission of permissions){const [resource,action]=permission[u(0x145)](':'),actions=byResource[u(0x146)](resource)??[];actions['push'](action),byResource['set'](resource,actions);}const client=await pg['connect']();try{await client[u(0x142)](u(0x147));for(const [resource,actions]of byResource){const existing=await client['query']('SELECT\x20access_id,\x20actions\x20FROM\x20admin.role_access\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20user_uid\x20=\x20$1\x20AND\x20role_id\x20IS\x20NULL\x20AND\x20resource\x20=\x20$2',[user['id'],resource]),row=existing['rows'][0x0];if(row){const merged=[...new Set([...row[u(0x148)]??[],...actions])];await client['query'](u(0x149),[merged,user['id'],row['access_id']]);}else await client['query']('INSERT\x20INTO\x20admin.role_access\x0a\x20\x20\x20\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\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$4)',[resource,actions,user['id'],user['id']]);}await client[u(0x142)]('COMMIT');}catch(m){await client['query']('ROLLBACK');throw m;}finally{client['release']();}console['log']('Granted\x20permissions\x20for\x20'+login+':\x20'+permissions['join'](',\x20'));}}catch(Q){console['error'](Q),process['exitCode']=0x1;}finally{await pg[u(0x14a)]();}}
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/route.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAkB,MAAM,SAAS,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAYnD,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,kBAAkB,CAmK9D"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/route.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAkB,MAAM,SAAS,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAYnD,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,kBAAkB,CAoK9D"}
@@ -1 +1 @@
1
- (function(_0x1d6d29,_0xc457cf){const _0xee3fa2=_0x4ae7,_0x104f68=_0x1d6d29();while(!![]){try{const _0x59c2ef=-parseInt(_0xee3fa2(0xee))/0x1+parseInt(_0xee3fa2(0x11d))/0x2*(parseInt(_0xee3fa2(0xde))/0x3)+parseInt(_0xee3fa2(0x110))/0x4*(-parseInt(_0xee3fa2(0xe5))/0x5)+parseInt(_0xee3fa2(0x126))/0x6+parseInt(_0xee3fa2(0x10b))/0x7+-parseInt(_0xee3fa2(0x13a))/0x8*(-parseInt(_0xee3fa2(0x13d))/0x9)+-parseInt(_0xee3fa2(0xdd))/0xa*(-parseInt(_0xee3fa2(0x124))/0xb);if(_0x59c2ef===_0xc457cf)break;else _0x104f68['push'](_0x104f68['shift']());}catch(_0x9945aa){_0x104f68['push'](_0x104f68['shift']());}}}(_0x4639,0x6165a));import{getUserPermissions,verifyUser}from'../../plugins/auth/index.js';import _0x4fc66b from'./services/get-current-user.js';function _0x4ae7(_0x51e4f2,_0x12437c){_0x51e4f2=_0x51e4f2-0xdb;const _0x46392c=_0x4639();let _0x4ae7e7=_0x46392c[_0x51e4f2];return _0x4ae7e7;}import _0x95d895 from'./services/registration.js';function _0x4639(){const _0x156e5a=['/api/auth/password','Changes\x20the\x20password\x20for\x20the\x20current\x20user.','UjcPr','redirect','GET','569818pbJqwb','Creates\x20a\x20regular\x20user\x20account.','public','querystring','credentials','permissions','audit','method','DIJNP','logout','WtgbC','/api/auth/logout','ydikB','YwOkb','Change\x20password','description','jOGWT','type','password','Terminates\x20the\x20current\x20user\x20session.','userId','destroy','vtmef','myJwJ','cookieName','get','twofa','post','query','479017reFBYY','access','admin','maxAge','success','524VHaWnj','defineProperty','/api/auth/login','value','redirectUrl','DtxzO','user:create','fcore','body','DuMvR','summary','config','Authenticates\x20a\x20user\x20and\x20returns\x20a\x20bearer\x20access\x20token.','407446OhNnzX','writable','fNOkR','clearCookie','tags','xISjb','Get\x20current\x20user','22ajYmOU','Sign\x20out','1093146uZTUXN','ipAddress','sessionTimeout','module','resourceId','Sign\x20in','JQiDV','cookie','WwJJV','resource','jnnLf','fIfGG','user','/api/auth/registration','Register','/api/auth/user','Not\x20authorized','AwTll','save','IawSU','2040464QhBGSl','oDfrC','sessionId','9KugMpb','action','KIUfx','AOEfd','TZSyG','YXTxa','jyrWM','urjbs','write','login','3528350haTneA','3TUGnwA','gGOoS','twoFactorRedirect','TPqol','schema','auth','iUDCR','17035VLnpCt','Returns\x20the\x20authenticated\x20user\x27s\x20safe\x20profile.','session','configurable'];_0x4639=function(){return _0x156e5a;};return _0x4639();}import _0x140b94 from'./services/change-password.js';import{authSchemas}from'./schema.js';import _0x1eba88 from'../../shared/getIP.js';import{UnauthorizedError}from'../../errors.js';export function authRoutes(_0x33a916){const _0x137fdc=_0x4ae7,_0x2c0e44={'fNOkR':function(_0x297ad3,_0x54b81d){return _0x297ad3===_0x54b81d;},'urjbs':function(_0x29563e,_0x3e9df8){return _0x29563e(_0x3e9df8);},'myJwJ':function(_0x151739,_0x3eea7f,_0x1afc58){return _0x151739(_0x3eea7f,_0x1afc58);},'DIJNP':function(_0x4c7057,_0x579f8d){return _0x4c7057*_0x579f8d;},'oDfrC':_0x137fdc(0xe3),'YXTxa':_0x137fdc(0xe7),'YwOkb':_0x137fdc(0xdc),'DtxzO':_0x137fdc(0xf7),'vtmef':_0x137fdc(0x117),'DuMvR':_0x137fdc(0x12b),'IawSU':_0x137fdc(0xf0),'TZSyG':_0x137fdc(0x11c),'jOGWT':_0x137fdc(0x133),'ydikB':_0x137fdc(0x134),'xISjb':_0x137fdc(0xef),'AOEfd':_0x137fdc(0x10d),'UjcPr':_0x137fdc(0x116),'gGOoS':_0x137fdc(0xe9),'WwJJV':_0x137fdc(0xfc),'fIfGG':_0x137fdc(0xea),'jyrWM':_0x137fdc(0x132),'TPqol':_0x137fdc(0xf9),'KIUfx':_0x137fdc(0x125),'WtgbC':_0x137fdc(0x101),'jnnLf':_0x137fdc(0xe6)};return async _0x455e45=>{const _0x2b3fa4=_0x137fdc,_0x121cea={};_0x121cea[_0x2b3fa4(0xe4)]=_0x2c0e44[_0x2b3fa4(0x13b)],_0x121cea[_0x2b3fa4(0x137)]=_0x2c0e44[_0x2b3fa4(0x142)],_0x121cea[_0x2b3fa4(0x12c)]=_0x2c0e44[_0x2b3fa4(0x115)];const _0x41cbdf=_0x121cea,_0x466e58=async _0x29e77d=>{const _0xf22c27=_0x2b3fa4,_0xf24b35=_0x2c0e44[_0xf22c27(0x11f)](_0x29e77d[_0xf22c27(0xf5)],_0xf22c27(0xed))?_0x29e77d[_0xf22c27(0x10a)]:_0x29e77d[_0xf22c27(0x118)],_0xfe51d8=_0x2c0e44[_0xf22c27(0x144)](_0x1eba88,_0x29e77d),_0x583b64={..._0xf24b35};_0x583b64['ip']=_0xfe51d8;const _0x1c3a0c=await _0x2c0e44[_0xf22c27(0x105)](verifyUser,_0x583b64,_0x33a916);_0x1c3a0c[_0xf22c27(0xf3)]=await getUserPermissions(_0x1c3a0c['id'],_0x33a916);const _0x331785=_0x1c3a0c[_0xf22c27(0x108)]?_0x33a916[_0xf22c27(0x11b)][_0xf22c27(0xe3)][_0xf22c27(0xe0)]:_0x33a916[_0xf22c27(0x11b)][_0xf22c27(0xe3)][_0xf22c27(0xec)];await _0x29e77d[_0xf22c27(0xdc)](_0x1c3a0c);const _0x55bf2e=_0x2c0e44[_0xf22c27(0xf6)](_0x33a916[_0xf22c27(0x11b)][_0xf22c27(0xe3)][_0xf22c27(0x128)]*0x3e8,0x3c);_0x29e77d[_0xf22c27(0xe7)]?.[_0xf22c27(0x12d)]&&(_0x29e77d[_0xf22c27(0xe7)][_0xf22c27(0x12d)][_0xf22c27(0x10e)]=_0x55bf2e);await _0x29e77d[_0xf22c27(0xe7)][_0xf22c27(0x138)]();const _0x235db9={};_0x235db9[_0xf22c27(0x129)]=_0x2c0e44[_0xf22c27(0x13b)],_0x235db9[_0xf22c27(0x12f)]=_0x2c0e44[_0xf22c27(0x142)],_0x235db9[_0xf22c27(0x12a)]=_0x29e77d[_0xf22c27(0xe7)][_0xf22c27(0x13c)],_0x235db9[_0xf22c27(0x13e)]=_0x2c0e44[_0xf22c27(0xfb)],_0x235db9[_0xf22c27(0x102)]=_0x1c3a0c['id'],_0x235db9[_0xf22c27(0x127)]=_0xfe51d8,await _0x33a916[_0xf22c27(0xf4)]?.[_0xf22c27(0xdb)]?.(_0x235db9);const _0x1dd919={};_0x1dd919['id']=_0x1c3a0c['id'],_0x1dd919[_0xf22c27(0xff)]=_0x1c3a0c[_0xf22c27(0xff)],_0x1dd919[_0xf22c27(0xf3)]=_0x1c3a0c[_0xf22c27(0xf3)];const _0x1ff37c={};return _0x1ff37c[_0xf22c27(0x132)]=_0x1dd919,_0x1ff37c[_0xf22c27(0x114)]=_0x331785,_0x1ff37c;},_0x5a471a={};_0x5a471a[_0x2b3fa4(0x121)]=[_0x2c0e44[_0x2b3fa4(0x104)],_0x2c0e44[_0x2b3fa4(0x13b)]],_0x5a471a[_0x2b3fa4(0x11a)]=_0x2c0e44[_0x2b3fa4(0x119)],_0x5a471a[_0x2b3fa4(0xfd)]=_0x2b3fa4(0x11c),_0x5a471a[_0x2b3fa4(0x10c)]=_0x2c0e44[_0x2b3fa4(0x139)],_0x5a471a[_0x2b3fa4(0xf3)]=[],_0x5a471a[_0x2b3fa4(0xf1)]=authSchemas[_0x2b3fa4(0xf2)];const _0x1ad554={};_0x1ad554[_0x2b3fa4(0xe2)]=_0x5a471a,_0x455e45[_0x2b3fa4(0x107)](_0x2b3fa4(0x112),_0x1ad554,_0x466e58);const _0x4e13f7={};_0x4e13f7[_0x2b3fa4(0x121)]=[_0x2c0e44[_0x2b3fa4(0x104)],_0x2c0e44[_0x2b3fa4(0x13b)]],_0x4e13f7[_0x2b3fa4(0x11a)]=_0x2c0e44[_0x2b3fa4(0x119)],_0x4e13f7[_0x2b3fa4(0xfd)]=_0x2c0e44[_0x2b3fa4(0x141)],_0x4e13f7[_0x2b3fa4(0x10c)]=_0x2c0e44[_0x2b3fa4(0x139)],_0x4e13f7[_0x2b3fa4(0xf3)]=[],_0x4e13f7[_0x2b3fa4(0x118)]=authSchemas[_0x2b3fa4(0xf2)];const _0x2b53bd={};_0x2b53bd[_0x2b3fa4(0xe2)]=_0x4e13f7,_0x455e45[_0x2b3fa4(0x109)](_0x2b3fa4(0x112),_0x2b53bd,_0x466e58),_0x455e45[_0x2b3fa4(0x109)](_0x2c0e44[_0x2b3fa4(0xfe)],{'schema':{'tags':[_0x2c0e44[_0x2b3fa4(0x104)],_0x2c0e44[_0x2b3fa4(0x13b)]],'summary':_0x2c0e44[_0x2b3fa4(0xfa)],'description':_0x2c0e44[_0x2b3fa4(0x122)],'access':_0x2c0e44[_0x2b3fa4(0x140)],'permissions':[_0x2c0e44[_0x2b3fa4(0xeb)]],'body':authSchemas[_0x2b3fa4(0xf2)]}},async _0xa33336=>_0x95d895(_0xa33336[_0x2b3fa4(0x118)],_0x33a916)),_0x455e45[_0x2b3fa4(0x109)](_0x2c0e44[_0x2b3fa4(0xdf)],{'schema':{'tags':[_0x2c0e44[_0x2b3fa4(0x104)],_0x2b3fa4(0xe3)],'summary':_0x2c0e44[_0x2b3fa4(0x12e)],'description':_0x2c0e44[_0x2b3fa4(0x131)],'access':_0x2c0e44[_0x2b3fa4(0x143)],'permissions':[],'body':authSchemas[_0x2b3fa4(0x100)]}},async _0x29d56c=>{const _0x1a17de=_0x2b3fa4;if(!_0x29d56c[_0x1a17de(0x132)])throw new UnauthorizedError(_0x1a17de(0x136));const _0x2ac28e={'userId':_0x29d56c[_0x1a17de(0x132)]['id'],..._0x29d56c[_0x1a17de(0x118)]};await _0x140b94(_0x2ac28e,_0x33a916);const _0x4a6586={};return _0x4a6586[_0x1a17de(0x10f)]=!![],_0x4a6586;}),_0x455e45[_0x2b3fa4(0x109)](_0x2c0e44[_0x2b3fa4(0xe1)],{'schema':{'tags':[_0x2c0e44[_0x2b3fa4(0x104)],_0x2b3fa4(0xe3)],'summary':_0x2c0e44[_0x2b3fa4(0x13f)],'description':_0x2c0e44[_0x2b3fa4(0xf8)],'access':_0x2c0e44[_0x2b3fa4(0x143)],'permissions':[]}},async(_0x125f16,_0x4d8184)=>{const _0x511ff4=_0x2b3fa4,_0x2bc4e0={};_0x2bc4e0[_0x511ff4(0x114)]='/';const _0x38cbff=_0x2bc4e0;if(!_0x125f16[_0x511ff4(0x132)])return _0x38cbff;const _0x4a42ab={};_0x4a42ab[_0x511ff4(0x129)]=_0x41cbdf[_0x511ff4(0xe4)],_0x4a42ab[_0x511ff4(0x12f)]=_0x41cbdf[_0x511ff4(0x137)],_0x4a42ab[_0x511ff4(0x12a)]=_0x125f16[_0x511ff4(0xe7)][_0x511ff4(0x13c)],_0x4a42ab[_0x511ff4(0x13e)]=_0x41cbdf[_0x511ff4(0x12c)],_0x4a42ab[_0x511ff4(0x102)]=_0x125f16[_0x511ff4(0x132)]?.['id'],await _0x33a916[_0x511ff4(0xf4)]?.[_0x511ff4(0xdb)]?.(_0x4a42ab),await _0x125f16[_0x511ff4(0xe7)][_0x511ff4(0x103)](),_0x4d8184[_0x511ff4(0x120)](_0x33a916[_0x511ff4(0x11b)][_0x511ff4(0xe3)][_0x511ff4(0x106)]);const _0x416e8e={};return _0x416e8e[_0x511ff4(0x113)]=null,_0x416e8e[_0x511ff4(0x11e)]=![],_0x416e8e[_0x511ff4(0xe8)]=![],Object[_0x511ff4(0x111)](_0x125f16,_0x41cbdf[_0x511ff4(0x137)],_0x416e8e),_0x38cbff;});const _0x1cbd0c={};_0x1cbd0c[_0x2b3fa4(0x121)]=[_0x2b3fa4(0x117),_0x2c0e44[_0x2b3fa4(0x13b)]],_0x1cbd0c[_0x2b3fa4(0x11a)]=_0x2b3fa4(0x123),_0x1cbd0c[_0x2b3fa4(0xfd)]=_0x2c0e44[_0x2b3fa4(0x130)],_0x1cbd0c[_0x2b3fa4(0x10c)]=_0x2c0e44[_0x2b3fa4(0x143)],_0x1cbd0c[_0x2b3fa4(0xf3)]=[];const _0x1f6433={};_0x1f6433[_0x2b3fa4(0xe2)]=_0x1cbd0c,_0x455e45[_0x2b3fa4(0x107)](_0x2b3fa4(0x135),_0x1f6433,async _0x286288=>_0x4fc66b({'user':_0x286288[_0x2b3fa4(0x132)]}));};}
1
+ import{getUserPermissions,verifyUser}from'../../plugins/auth/index.js';import C from'./services/get-current-user.js';function z(C,N){C=C-0x1d4;const r=U();let p=r[C];return p;}import N from'./services/registration.js';import r from'./services/change-password.js';import{authSchemas}from'./schema.js';import p from'../../shared/getIP.js';import{UnauthorizedError}from'../../errors.js';function U(){const d=['GET','permissions','config','auth','redirect','cookie','maxAge','Sign\x20in','public','/api/auth/login','credentials','fcore','admin','post','/api/auth/password','Changes\x20the\x20password\x20for\x20the\x20current\x20user.','user','Terminates\x20the\x20current\x20user\x20session.','write','session','cookieName','/api/auth/user','query'];U=function(){return d;};return U();}export function authRoutes(c){return async x=>{const t=z,m=async Q=>{const F=z,u=Q['method']===F(0x1d4)?Q['query']:Q['body'],L=p(Q),T=await verifyUser({...u,'ip':L},c);T[F(0x1d5)]=await getUserPermissions(T['id'],c);const Y=T['twofa']?c[F(0x1d6)][F(0x1d7)]['twoFactorRedirect']:c['config']['auth'][F(0x1d8)];await Q['login'](T);const f=c['config']['auth']['sessionTimeout']*0x3e8*0x3c;return Q['session']?.[F(0x1d9)]&&(Q['session']['cookie'][F(0x1da)]=f),await Q['session']['save'](),await c['audit']?.['write']?.({'module':'auth','resource':'session','resourceId':Q['session']['sessionId'],'action':'login','userId':T['id'],'ipAddress':L}),{'user':{'id':T['id'],'type':T['type'],'permissions':T['permissions']},'redirectUrl':Y};};x['get']('/api/auth/login',{'schema':{'tags':['fcore','auth'],'summary':t(0x1db),'description':'Authenticates\x20a\x20user\x20and\x20returns\x20a\x20bearer\x20access\x20token.','access':t(0x1dc),'permissions':[],'querystring':authSchemas['credentials']}},m),x['post'](t(0x1dd),{'schema':{'tags':['fcore','auth'],'summary':'Sign\x20in','description':'Authenticates\x20a\x20user\x20and\x20returns\x20a\x20bearer\x20access\x20token.','access':'public','permissions':[],'body':authSchemas[t(0x1de)]}},m),x['post']('/api/auth/registration',{'schema':{'tags':[t(0x1df),'auth'],'summary':'Register','description':'Creates\x20a\x20regular\x20user\x20account.','access':t(0x1e0),'permissions':['user:create'],'body':authSchemas['credentials']}},async Q=>N(Q['body'],c)),x[t(0x1e1)](t(0x1e2),{'schema':{'tags':['fcore','auth'],'summary':'Change\x20password','description':t(0x1e3),'access':'user','permissions':[],'body':authSchemas['password']}},async Q=>{const h=t;if(!Q['user'])throw new UnauthorizedError('Not\x20authorized');return await r({'userId':Q[h(0x1e4)]['id'],...Q['body']},c),{'success':!![]};}),x['post']('/api/auth/logout',{'schema':{'tags':['fcore',t(0x1d7)],'summary':'Sign\x20out','description':t(0x1e5),'access':'user','permissions':[]}},async(Q,u)=>{const D=t,L={'redirectUrl':'/'};if(!Q['user'])return L;return await c['audit']?.[D(0x1e6)]?.({'module':'auth','resource':'session','resourceId':Q['session']['sessionId'],'action':'logout','userId':Q['user']?.['id']}),await Q[D(0x1e7)]['destroy'](),u['clearCookie'](c['config']['auth'][D(0x1e8)]),Object['defineProperty'](Q,'session',{'value':null,'writable':![],'configurable':![]}),L;}),x['get'](t(0x1e9),{'schema':{'tags':['fcore',t(0x1d7)],'summary':'Get\x20current\x20user','description':'Returns\x20the\x20authenticated\x20user\x27s\x20safe\x20profile.','access':'user','permissions':[],'querystring':authSchemas['query']}},async Q=>C({'user':Q[t(0x1e4)],'token':Q[t(0x1ea)]['token']}));};}
@@ -3,6 +3,9 @@
3
3
  */
4
4
  import { Static } from "@sinclair/typebox";
5
5
  export declare const authSchemas: {
6
+ query: import("@sinclair/typebox").TObject<{
7
+ token: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
8
+ }>;
6
9
  credentials: import("@sinclair/typebox").TObject<{
7
10
  user: import("@sinclair/typebox").TString;
8
11
  password: import("@sinclair/typebox").TString;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAQ,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEjD,eAAO,MAAM,WAAW;IACtB,WAAW;;;;;IAKX,QAAQ;;;;IAIR,SAAS;;;CAGV,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC;AACjE,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAQ,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEjD,eAAO,MAAM,WAAW;IACtB,KAAK;;;IAGL,WAAW;;;;;IAKX,QAAQ;;;;IAIR,SAAS;;;CAGV,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC;AACjE,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC"}
@@ -1 +1 @@
1
- const _0x239895=_0x149a;function _0x149a(_0x505639,_0x2c6a63){_0x505639=_0x505639-0xe4;const _0x28a494=_0x28a4();let _0x149afb=_0x28a494[_0x505639];return _0x149afb;}(function(_0x3e15f1,_0x2cd316){const _0x4acf40=_0x149a,_0x563896=_0x3e15f1();while(!![]){try{const _0x36e606=-parseInt(_0x4acf40(0xf5))/0x1*(-parseInt(_0x4acf40(0xf2))/0x2)+-parseInt(_0x4acf40(0xee))/0x3*(-parseInt(_0x4acf40(0xf4))/0x4)+parseInt(_0x4acf40(0xea))/0x5*(-parseInt(_0x4acf40(0xe7))/0x6)+parseInt(_0x4acf40(0xec))/0x7*(parseInt(_0x4acf40(0xef))/0x8)+parseInt(_0x4acf40(0xe4))/0x9*(parseInt(_0x4acf40(0xf3))/0xa)+parseInt(_0x4acf40(0xeb))/0xb+parseInt(_0x4acf40(0xe5))/0xc*(-parseInt(_0x4acf40(0xe9))/0xd);if(_0x36e606===_0x2cd316)break;else _0x563896['push'](_0x563896['shift']());}catch(_0x2aa91c){_0x563896['push'](_0x563896['shift']());}}}(_0x28a4,0xf080e));import{Type}from'@sinclair/typebox';const _0x1f584e={};_0x1f584e[_0x239895(0xf0)]=0x1,_0x1f584e[_0x239895(0xed)]=0x64;const _0x48876f={};_0x48876f[_0x239895(0xf0)]=0x1,_0x48876f[_0x239895(0xed)]=0x64;function _0x28a4(){const _0x3fa59f=['20633052bzoRnU','Object','6662010sOymBw','Optional','13ztHWdm','5mkZxYY','12862619aOkYCs','728LdBtDw','maxLength','114wxLEmC','118528OtrXLv','minLength','String','16RTnKiH','2483410xZEIVd','62584MadPSp','32722twbGxJ','9ezpyYh'];_0x28a4=function(){return _0x3fa59f;};return _0x28a4();}const _0x2fdafe={};_0x2fdafe[_0x239895(0xf0)]=0x1,_0x2fdafe[_0x239895(0xed)]=0x64;const _0xe6b7dc={};_0xe6b7dc[_0x239895(0xf0)]=0x1,_0xe6b7dc[_0x239895(0xed)]=0x64;const _0x1eda16={};_0x1eda16[_0x239895(0xf0)]=0x1,_0x1eda16[_0x239895(0xed)]=0x64;const _0x60f2c1={};_0x60f2c1[_0x239895(0xf0)]=0x1;export const authSchemas={'credentials':Type[_0x239895(0xe6)]({'user':Type[_0x239895(0xf1)](_0x1f584e),'password':Type[_0x239895(0xf1)](_0x48876f),'type':Type[_0x239895(0xe8)](Type[_0x239895(0xf1)](_0x2fdafe))}),'password':Type[_0x239895(0xe6)]({'password':Type[_0x239895(0xf1)](_0xe6b7dc),'id':Type[_0x239895(0xe8)](Type[_0x239895(0xf1)](_0x1eda16))}),'twoFactor':Type[_0x239895(0xe6)]({'code':Type[_0x239895(0xf1)](_0x60f2c1)})};
1
+ function z(C,N){C=C-0xb8;const r=U();let p=r[C];return p;}const C=z;import{Type}from'@sinclair/typebox';function U(){const N=['Optional','String','Object'];U=function(){return N;};return U();}export const authSchemas={'query':Type['Object']({'token':Type['Optional'](Type['Boolean']())}),'credentials':Type['Object']({'user':Type['String']({'minLength':0x1,'maxLength':0x64}),'password':Type['String']({'minLength':0x1,'maxLength':0x64}),'type':Type[C(0xb8)](Type['String']({'minLength':0x1,'maxLength':0x64}))}),'password':Type['Object']({'password':Type[C(0xb9)]({'minLength':0x1,'maxLength':0x64}),'id':Type['Optional'](Type['String']({'minLength':0x1,'maxLength':0x64}))}),'twoFactor':Type[C(0xba)]({'code':Type['String']({'minLength':0x1})})};
@@ -1 +1 @@
1
- (function(_0x482bc3,_0x31c2c4){const _0x4366f2=_0x2548,_0x3bbbc7=_0x482bc3();while(!![]){try{const _0x4046e4=-parseInt(_0x4366f2(0x19c))/0x1*(parseInt(_0x4366f2(0x197))/0x2)+parseInt(_0x4366f2(0x1a2))/0x3*(parseInt(_0x4366f2(0x198))/0x4)+parseInt(_0x4366f2(0x196))/0x5*(parseInt(_0x4366f2(0x195))/0x6)+parseInt(_0x4366f2(0x19e))/0x7+-parseInt(_0x4366f2(0x19a))/0x8*(-parseInt(_0x4366f2(0x1a1))/0x9)+-parseInt(_0x4366f2(0x19f))/0xa*(-parseInt(_0x4366f2(0x193))/0xb)+-parseInt(_0x4366f2(0x194))/0xc*(parseInt(_0x4366f2(0x199))/0xd);if(_0x4046e4===_0x31c2c4)break;else _0x3bbbc7['push'](_0x3bbbc7['shift']());}catch(_0x6f7554){_0x3bbbc7['push'](_0x3bbbc7['shift']());}}}(_0x4226,0xc53e9));import{hashPassword}from'../../../plugins/auth/index.js';function _0x2548(_0x1a906e,_0x36f3a7){_0x1a906e=_0x1a906e-0x193;const _0x422665=_0x4226();let _0x2548fb=_0x422665[_0x1a906e];return _0x2548fb;}export default async function changePassword({id:_0x38ee1a,password:_0x30037b,userId:_0x10b103},{pg:_0x529c0f}){const _0x5312c9=_0x2548,_0xac613b={'Kwvvh':function(_0x658b46,_0x3cb9db){return _0x658b46(_0x3cb9db);}},_0x3cbbe5=await _0xac613b[_0x5312c9(0x19b)](hashPassword,_0x30037b);await _0x529c0f[_0x5312c9(0x19d)](_0x5312c9(0x1a0),[_0x3cbbe5,_0x38ee1a||_0x10b103,_0x10b103]);}function _0x4226(){const _0xcf3649=['2831vCFENd','query','6140855ZfEWWE','10adDoEn','UPDATE\x20admin.users\x0a\x20\x20\x20\x20\x20SET\x20password_hash\x20=\x20$1,\x20updated_at\x20=\x20now(),\x20updated_by\x20=\x20$3\x0a\x20\x20\x20\x20\x20WHERE\x20uid\x20=\x20$2','299817XfOtJf','6UUrDbD','16935754xXivRW','108Cfqynl','1314KcfErI','9895GVmtKv','802iPgqch','1304080TCeoBQ','4225013RhGTyw','328HQCEod','Kwvvh'];_0x4226=function(){return _0xcf3649;};return _0x4226();}
1
+ import{hashPassword}from'../../../plugins/auth/index.js';export default async function changePassword({id:C,password:N,userId:r},{pg:p}){const c=await hashPassword(N);await p['query']('UPDATE\x20admin.users\x0a\x20\x20\x20\x20\x20SET\x20password_hash\x20=\x20$1,\x20updated_at\x20=\x20now(),\x20updated_by\x20=\x20$3\x0a\x20\x20\x20\x20\x20WHERE\x20uid\x20=\x20$2',[c,C||r,r]);}
@@ -4,5 +4,6 @@
4
4
  import type { User } from "../../../context.js";
5
5
  export default function getCurrentUser(params: {
6
6
  user: User | undefined;
7
+ token: boolean | undefined;
7
8
  }): Promise<Record<string, unknown>>;
8
9
  //# sourceMappingURL=get-current-user.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-current-user.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/services/get-current-user.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,wBAA8B,cAAc,CAAC,MAAM,EAAE;IACnD,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;CACxB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAGnC"}
1
+ {"version":3,"file":"get-current-user.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/services/get-current-user.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,wBAA8B,cAAc,CAAC,MAAM,EAAE;IACnD,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAenC"}
@@ -1 +1 @@
1
- (function(_0x2217fa,_0x43d436){const _0x42f2b2=_0x43dd,_0x400336=_0x2217fa();while(!![]){try{const _0x28bfdc=-parseInt(_0x42f2b2(0xb2))/0x1*(parseInt(_0x42f2b2(0xb6))/0x2)+-parseInt(_0x42f2b2(0xb1))/0x3+-parseInt(_0x42f2b2(0xb0))/0x4+-parseInt(_0x42f2b2(0xb8))/0x5*(-parseInt(_0x42f2b2(0xaf))/0x6)+parseInt(_0x42f2b2(0xb4))/0x7+-parseInt(_0x42f2b2(0xb7))/0x8+-parseInt(_0x42f2b2(0xb3))/0x9*(-parseInt(_0x42f2b2(0xb5))/0xa);if(_0x28bfdc===_0x43d436)break;else _0x400336['push'](_0x400336['shift']());}catch(_0x3e0377){_0x400336['push'](_0x400336['shift']());}}}(_0x3b9f,0xac237));function _0x43dd(_0x4cb175,_0x1537db){_0x4cb175=_0x4cb175-0xae;const _0x3b9fde=_0x3b9f();let _0x43dd2d=_0x3b9fde[_0x4cb175];return _0x43dd2d;}function _0x3b9f(){const _0x3d3e5b=['1385804ipqrAX','3678483exDFuq','8lDrFFU','3435417GupgjM','4999897ccIAWH','40pOZHGQ','140678xjTvsk','4269216DmhwQO','298140eqUzJt','Jivwq','114anAjQn'];_0x3b9f=function(){return _0x3d3e5b;};return _0x3b9f();}import{safeUser}from'../../utils/safe-user.js';export default async function getCurrentUser(_0x1ab24c){const _0x30a225=_0x43dd,_0x403f2f={'Jivwq':function(_0x410af4,_0x5383f9){return _0x410af4(_0x5383f9);}},{user:_0x1d74dc}=_0x1ab24c;return _0x403f2f[_0x30a225(0xae)](safeUser,_0x1d74dc||{});}
1
+ import{safeUser}from'../../utils/safe-user.js';export default async function getCurrentUser(C){const {user:N}=C;if(!N)return{};if(C['token']){const {jwtSignToken:r}=await import('../../../plugins/jwt.js'),p=await r(N);N['token']=p;}return N['resources']=[...new Set(N?.['permissions']['map'](c=>c['split'](':')[0x0]))],safeUser(N);}
@@ -1 +1 @@
1
- (function(_0x496f6b,_0x4d9ed3){const _0x3c78b9=_0x5d4d,_0x15f208=_0x496f6b();while(!![]){try{const _0x5a8417=parseInt(_0x3c78b9(0x166))/0x1+-parseInt(_0x3c78b9(0x16a))/0x2*(parseInt(_0x3c78b9(0x164))/0x3)+parseInt(_0x3c78b9(0x165))/0x4+parseInt(_0x3c78b9(0x161))/0x5*(parseInt(_0x3c78b9(0x16e))/0x6)+parseInt(_0x3c78b9(0x160))/0x7*(-parseInt(_0x3c78b9(0x16d))/0x8)+parseInt(_0x3c78b9(0x169))/0x9+-parseInt(_0x3c78b9(0x15f))/0xa;if(_0x5a8417===_0x4d9ed3)break;else _0x15f208['push'](_0x15f208['shift']());}catch(_0x13942f){_0x15f208['push'](_0x15f208['shift']());}}}(_0x59d6,0x274ba));function _0x59d6(){const _0x238282=['2292jvQRok','regular','Login\x20is\x20already\x20in\x20use','query','2877300oRgmMd','63FPrsOn','3930dwCEkp','user','INSERT\x20INTO\x20admin.users\x20(login,\x20password_hash,\x20user_type)\x0a\x20\x20\x20\x20\x20SELECT\x20$1,\x20$2,\x20$3\x0a\x20\x20\x20\x20\x20WHERE\x20NOT\x20EXISTS\x20(SELECT\x201\x20FROM\x20admin.users\x20WHERE\x20login\x20=\x20$1)\x0a\x20\x20\x20\x20\x20RETURNING\x20uid\x20AS\x20id,\x20user_type\x20AS\x20type','6wMUGvt','854284sQkOPl','207725SfVCAo','MoLuV','lpPsC','1137204upkWHk','264526Yfycqs','rows','FfoiX','119728uDAkXb'];_0x59d6=function(){return _0x238282;};return _0x59d6();}import{ConflictError}from'../../../errors.js';import{hashPassword}from'../../../plugins/auth/index.js';function _0x5d4d(_0x2f3ace,_0x298d1b){_0x2f3ace=_0x2f3ace-0x15d;const _0x59d6f2=_0x59d6();let _0x5d4d15=_0x59d6f2[_0x2f3ace];return _0x5d4d15;}export default async function registration({user:_0x55a2d2,password:_0x33c6b8,type:_0x2dc8d6},{pg:_0xee769}){const _0xc526ca=_0x5d4d,_0x5f52d2={'FfoiX':function(_0x16935f,_0x4a3627){return _0x16935f(_0x4a3627);},'MoLuV':function(_0x3e72c4,_0x3df045){return _0x3e72c4||_0x3df045;},'lpPsC':_0xc526ca(0x16f)},_0x56a85c=await _0x5f52d2[_0xc526ca(0x16c)](hashPassword,_0x33c6b8),_0x277916=await _0xee769[_0xc526ca(0x15e)](_0xc526ca(0x163),[_0x55a2d2,_0x56a85c,_0x5f52d2[_0xc526ca(0x167)](_0x2dc8d6,_0x5f52d2[_0xc526ca(0x168)])]),_0x3ea724=_0x277916[_0xc526ca(0x16b)][0x0];if(!_0x3ea724)throw new ConflictError(_0xc526ca(0x15d));const _0x1c30ba={};return _0x1c30ba[_0xc526ca(0x162)]=_0x3ea724,_0x1c30ba;}
1
+ function z(C,N){C=C-0x1a6;const r=U();let p=r[C];return p;}import{ConflictError}from'../../../errors.js';function U(){const u=['query','Login\x20is\x20already\x20in\x20use'];U=function(){return u;};return U();}import{hashPassword}from'../../../plugins/auth/index.js';export default async function registration({user:C,password:N,type:r},{pg:p}){const Q=z,c=await hashPassword(N),x=await p[Q(0x1a6)]('INSERT\x20INTO\x20admin.users\x20(login,\x20password_hash,\x20user_type)\x0a\x20\x20\x20\x20\x20SELECT\x20$1,\x20$2,\x20$3\x0a\x20\x20\x20\x20\x20WHERE\x20NOT\x20EXISTS\x20(SELECT\x201\x20FROM\x20admin.users\x20WHERE\x20login\x20=\x20$1)\x0a\x20\x20\x20\x20\x20RETURNING\x20uid\x20AS\x20id,\x20user_type\x20AS\x20type',[C,c,r||'regular']),m=x['rows'][0x0];if(!m)throw new ConflictError(Q(0x1a7));return{'user':m};}
@@ -1 +1 @@
1
- function _0x23c1(){var _0x10ca6e=['300yPCDNJ','1226454jWKqXq','2150TMAnax','22sRklbk','17060NUyDCu','112870cWgNtF','2368328jQJNmN','Two-factor\x20provider','240822vlDSjh','90nVAaRA','20ywHNLw','5206200rqziDp','7XgcxTM','RZAMj'];_0x23c1=function(){return _0x10ca6e;};return _0x23c1();}(function(_0x5a25c6,_0x4dc84d){var _0x173e94=_0x1ca2,_0x260704=_0x5a25c6();while(!![]){try{var _0x4375b7=-parseInt(_0x173e94(0x95))/0x1*(-parseInt(_0x173e94(0xa1))/0x2)+parseInt(_0x173e94(0x9b))/0x3+parseInt(_0x173e94(0x9d))/0x4*(parseInt(_0x173e94(0x98))/0x5)+parseInt(_0x173e94(0x94))/0x6+parseInt(_0x173e94(0x9f))/0x7*(parseInt(_0x173e94(0x99))/0x8)+-parseInt(_0x173e94(0x9c))/0x9*(-parseInt(_0x173e94(0x97))/0xa)+parseInt(_0x173e94(0x96))/0xb*(-parseInt(_0x173e94(0x9e))/0xc);if(_0x4375b7===_0x4dc84d)break;else _0x260704['push'](_0x260704['shift']());}catch(_0x59738){_0x260704['push'](_0x260704['shift']());}}}(_0x23c1,0x2864e));function _0x1ca2(_0x5f2f14,_0x519d00){_0x5f2f14=_0x5f2f14-0x94;var _0x23c1ea=_0x23c1();var _0x1ca264=_0x23c1ea[_0x5f2f14];return _0x1ca264;}import{unsupported}from'../../utils/unsupported.js';export default async function verifyTwoFactor(_0x20718d,_0x57e57e){var _0x4cc31e=_0x1ca2,_0x479c08={'RZAMj':function(_0x44b1ec,_0x25f435){return _0x44b1ec(_0x25f435);}};return _0x479c08[_0x4cc31e(0xa0)](unsupported,_0x4cc31e(0x9a));}
1
+ import{unsupported}from'../../utils/unsupported.js';export default async function verifyTwoFactor(C,N){return unsupported('Two-factor\x20provider');}
@@ -0,0 +1,3 @@
1
+ declare const _default: Set<string>;
2
+ export default _default;
3
+ //# sourceMappingURL=mime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime.d.ts","sourceRoot":"","sources":["../../../src/modules/file/mime.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ var C=z;export default new Set(['image/jpeg','image/png','image/gif','image/webp',C(0x1e6),'image/tiff','image/svg+xml',C(0x1e7),C(0x1e8),C(0x1e9),'application/msword','application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/vnd.ms-excel','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','application/vnd.ms-powerpoint',C(0x1ea),'application/vnd.oasis.opendocument.text',C(0x1eb),'application/vnd.oasis.opendocument.presentation','text/plain',C(0x1ec),'text/markdown','application/json',C(0x1ed),C(0x1ee),'application/geo+json','application/vnd.google-earth.kml+xml','application/vnd.google-earth.kmz','application/zip','application/x-zip-compressed','application/x-7z-compressed','application/x-rar-compressed','application/vnd.rar','application/gzip',C(0x1ef),'application/x-tar','audio/mpeg','audio/wav',C(0x1f0),'audio/webm','audio/mp4','video/mp4','video/mpeg','video/webm','video/quicktime','video/x-msvideo','application/octet-stream']);function z(C,N){C=C-0x1e6;var r=U();var p=r[C];return p;}function U(){var N=['image/bmp','image/x-icon','image/avif','application/pdf','application/vnd.openxmlformats-officedocument.presentationml.presentation','application/vnd.oasis.opendocument.spreadsheet','text/csv','application/xml','text/xml','application/x-gzip','audio/ogg'];U=function(){return N;};return U();}
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/modules/file/route.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,kBAAkB,CAyD9D"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/modules/file/route.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMnD,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,kBAAkB,CA8F9D"}
@@ -1 +1 @@
1
- (function(_0x599993,_0x5b472b){var _0x19c4af=_0x5f49,_0xf4c081=_0x599993();while(!![]){try{var _0x5082cb=-parseInt(_0x19c4af(0x19a))/0x1*(-parseInt(_0x19c4af(0x1ad))/0x2)+parseInt(_0x19c4af(0x1a8))/0x3+parseInt(_0x19c4af(0x1c2))/0x4+-parseInt(_0x19c4af(0x1b3))/0x5+parseInt(_0x19c4af(0x1ba))/0x6*(-parseInt(_0x19c4af(0x192))/0x7)+parseInt(_0x19c4af(0x1be))/0x8+parseInt(_0x19c4af(0x1aa))/0x9*(parseInt(_0x19c4af(0x19f))/0xa);if(_0x5082cb===_0x5b472b)break;else _0xf4c081['push'](_0xf4c081['shift']());}catch(_0x55eff3){_0xf4c081['push'](_0xf4c081['shift']());}}}(_0x1143,0x9d9ca));function _0x1143(){var _0xdb82ce=['verify','files:create','138523jbDnEH','CMqRw','/api/file/:token','NuiRh','user','send','access','tags','283496GOSbDZ','summary','public','params','upload','10mSgbFH','qepjs','fileToken','blNRW','query','get','/api/file/upload','tgkev','schema','197262GMPrWV','resizeQuery','6720417zxUaqF','Get\x20file\x20by\x20token','description','2SKPBIU','Uploads\x20a\x20file\x20and\x20stores\x20its\x20metadata.','post','/api/file/:token/resize','permissions','querystring','4697525uZBKJO','PJWeR','Returns\x20a\x20resized\x20image\x20file.','KoNLG','Returns\x20a\x20file\x20after\x20verifying\x20its\x20signed\x20access\x20token.','body','Upload\x20file','138GvltRO','files:read','MhtID','tuWYT','5107432GyCqxS','token','fcore','file','1223352GtbcjI','Resize\x20file','sYark','ovBiP'];_0x1143=function(){return _0xdb82ce;};return _0x1143();}function _0x5f49(_0x30466,_0x43d974){_0x30466=_0x30466-0x191;var _0x114363=_0x1143();var _0x5f490d=_0x114363[_0x30466];return _0x5f490d;}import{uploadFile}from'./services/upload-file.js';import{resizeFile}from'./services/resize-file.js';import{fileSchemas}from'./schema.js';export function fileRoutes(_0x4497b2){var _0x531051=_0x5f49,_0x49c40d={};_0x49c40d[_0x531051(0x1bc)]=_0x531051(0x1c0),_0x49c40d[_0x531051(0x1a2)]=_0x531051(0x1c1),_0x49c40d[_0x531051(0x1b4)]=_0x531051(0x1b7),_0x49c40d[_0x531051(0x1a0)]=_0x531051(0x19c),_0x49c40d[_0x531051(0x1a6)]=_0x531051(0x1a5),_0x49c40d[_0x531051(0x193)]=_0x531051(0x1b9),_0x49c40d[_0x531051(0x1c4)]=_0x531051(0x1ae),_0x49c40d[_0x531051(0x195)]=_0x531051(0x196),_0x49c40d[_0x531051(0x1b6)]=_0x531051(0x191),_0x49c40d[_0x531051(0x1c5)]=_0x531051(0x1c3),_0x49c40d[_0x531051(0x1bd)]=_0x531051(0x1b5);var _0x5a2867=_0x49c40d;return async _0x1f34ad=>{var _0x14ff1a=_0x531051,_0x37ad88={};_0x37ad88[_0x14ff1a(0x199)]=[_0x5a2867[_0x14ff1a(0x1bc)],_0x5a2867[_0x14ff1a(0x1a2)]],_0x37ad88[_0x14ff1a(0x19b)]=_0x14ff1a(0x1ab),_0x37ad88[_0x14ff1a(0x1ac)]=_0x5a2867[_0x14ff1a(0x1b4)],_0x37ad88[_0x14ff1a(0x198)]=_0x5a2867[_0x14ff1a(0x1a0)],_0x37ad88[_0x14ff1a(0x1b1)]=[],_0x37ad88[_0x14ff1a(0x19d)]=fileSchemas[_0x14ff1a(0x1a1)];var _0x26c5d7={};_0x26c5d7[_0x14ff1a(0x1a7)]=_0x37ad88,_0x1f34ad[_0x14ff1a(0x1a4)](_0x14ff1a(0x194),_0x26c5d7,async(_0x30ae71,_0x556b8c)=>_0x556b8c[_0x14ff1a(0x197)](await _0x4497b2[_0x14ff1a(0x1c1)]?.[_0x14ff1a(0x1a4)](_0x4497b2[_0x14ff1a(0x1c1)][_0x14ff1a(0x1c6)](_0x30ae71[_0x14ff1a(0x19d)][_0x14ff1a(0x1bf)])['p']))),_0x1f34ad[_0x14ff1a(0x1af)](_0x5a2867[_0x14ff1a(0x1a6)],{'schema':{'tags':[_0x5a2867[_0x14ff1a(0x1bc)],_0x14ff1a(0x1c1)],'summary':_0x5a2867[_0x14ff1a(0x193)],'description':_0x5a2867[_0x14ff1a(0x1c4)],'access':_0x5a2867[_0x14ff1a(0x195)],'permissions':[_0x5a2867[_0x14ff1a(0x1b6)]],'body':fileSchemas[_0x14ff1a(0x19e)]}},async _0x7c580f=>uploadFile(_0x7c580f[_0x14ff1a(0x1b8)],_0x4497b2));var _0x28d06b={};_0x28d06b[_0x14ff1a(0x199)]=[_0x14ff1a(0x1c0),_0x5a2867[_0x14ff1a(0x1a2)]],_0x28d06b[_0x14ff1a(0x19b)]=_0x5a2867[_0x14ff1a(0x1c5)],_0x28d06b[_0x14ff1a(0x1ac)]=_0x5a2867[_0x14ff1a(0x1bd)],_0x28d06b[_0x14ff1a(0x198)]=_0x5a2867[_0x14ff1a(0x195)],_0x28d06b[_0x14ff1a(0x1b1)]=[_0x14ff1a(0x1bb)],_0x28d06b[_0x14ff1a(0x19d)]=fileSchemas[_0x14ff1a(0x1a1)],_0x28d06b[_0x14ff1a(0x1b2)]=fileSchemas[_0x14ff1a(0x1a9)];var _0x4e17b2={};_0x4e17b2[_0x14ff1a(0x1a7)]=_0x28d06b,_0x1f34ad[_0x14ff1a(0x1a4)](_0x14ff1a(0x1b0),_0x4e17b2,async _0x104ad9=>resizeFile({'pathOrToken':_0x4497b2[_0x14ff1a(0x1c1)]?.[_0x14ff1a(0x1c6)](_0x104ad9[_0x14ff1a(0x19d)][_0x14ff1a(0x1bf)])['p'],..._0x104ad9[_0x14ff1a(0x1a3)]},_0x4497b2));};}
1
+ import{fileTypeFromBuffer}from'file-type';import{getFile}from'./services/get-file.js';import{uploadFile}from'./services/upload-file.js';function U(){const h=['fcore','Get\x20file\x20by\x20token','fileDownloadQuery','verify','query','startsWith','split','replace','attachment','Uploads\x20a\x20file\x20and\x20stores\x20its\x20metadata.','filename','resource','Resize\x20file','files:read','resizeQuery','mime','image/png','Cache-Control'];U=function(){return h;};return U();}function z(C,N){C=C-0xa7;const r=U();let p=r[C];return p;}import{resizeFile}from'./services/resize-file.js';import{fileSchemas}from'./schema.js';export function fileRoutes(C){return async N=>{const Y=z;N['get']('/api/file/:token',{'schema':{'tags':[Y(0xa7),'file'],'summary':Y(0xa8),'description':'Returns\x20a\x20file\x20after\x20verifying\x20its\x20signed\x20access\x20token.','access':'public','permissions':[],'params':fileSchemas['fileToken'],'querystring':fileSchemas[Y(0xa9)]}},async(r,p)=>{const f=Y,c=C['file'][f(0xaa)](r['params']['token']),x=await getFile({'pathOrToken':c},C),m=await fileTypeFromBuffer(x),Q=m?.['mime']??'application/octet-stream',u=r[f(0xab)]['download']===!![],L=Q[f(0xac)]('image/')||Q==='application/pdf',T=c[f(0xad)]('/')['pop']()?.[f(0xae)](/[^A-Za-z0-9._-]/g,'_')??'file';return p['type'](Q),p['header']('Content-Disposition',(u||!L?f(0xaf):'inline')+';\x20filename=\x22'+T+'\x22')['header']('Cache-Control','public,\x20max-age=86400,\x20immutable'),p['send'](x);}),N['post']('/api/file/upload',{'schema':{'tags':['fcore','file'],'summary':'Upload\x20file','description':Y(0xb0),'access':'user','permissions':['files:create']}},async r=>{const F=Y,p=await r['file']();if(!p)throw new Error('File\x20is\x20required');return uploadFile({'file':p,'metadata':{'name':p[F(0xb1)],'path':p['fields']['path']?.['value'],'resource':p['fields'][F(0xb2)]?.['value'],'resourceId':p['fields']['resourceId']?.['value']},'user':r['user']},C);}),N['get']('/api/file/:token/resize',{'schema':{'tags':['fcore','file'],'summary':Y(0xb3),'description':'Returns\x20a\x20resized\x20image\x20file.','access':'user','permissions':[Y(0xb4)],'params':fileSchemas['fileToken'],'querystring':fileSchemas[Y(0xb5)]}},async(r,p)=>{const t=Y,c=await resizeFile({'pathOrToken':C['file']?.['verify'](r['params']['token']),...r['query']},C),x=await fileTypeFromBuffer(c);return p['type'](x?.[t(0xb6)]??t(0xb7)),p['header']('Content-Disposition','inline')['header'](t(0xb8),'public,\x20max-age=86400,\x20immutable'),p['send'](c);});};}
@@ -5,6 +5,9 @@ export declare const fileSchemas: {
5
5
  fileToken: import("@sinclair/typebox").TObject<{
6
6
  token: import("@sinclair/typebox").TString;
7
7
  }>;
8
+ fileDownloadQuery: import("@sinclair/typebox").TObject<{
9
+ download: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
10
+ }>;
8
11
  filePath: import("@sinclair/typebox").TObject<{
9
12
  "*": import("@sinclair/typebox").TString;
10
13
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/modules/file/schema.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW;IACvB,MAAM;;;IAGN,SAAS;;;IAGT,QAAQ;;;IAGR,MAAM;;;;;;;;;IASN,SAAS;;;;IAIT,WAAW;;;;;CAWX,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/modules/file/schema.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW;IACvB,MAAM;;;IAGN,SAAS;;;IAGT,iBAAiB;;;IAGjB,QAAQ;;;IAGR,MAAM;;;;;;;;;IASN,SAAS;;;;IAIT,WAAW;;;;;CAWX,CAAC"}
@@ -1 +1 @@
1
- function _0x2a2b(_0x5d3e73,_0x4ac655){_0x5d3e73=_0x5d3e73-0x8f;const _0x220b20=_0x220b();let _0x2a2b61=_0x220b20[_0x5d3e73];return _0x2a2b61;}const _0x2f5f7e=_0x2a2b;(function(_0x5af5ee,_0x11ea20){const _0x374ac9=_0x2a2b,_0x28f52b=_0x5af5ee();while(!![]){try{const _0x509986=parseInt(_0x374ac9(0x91))/0x1*(-parseInt(_0x374ac9(0x9f))/0x2)+-parseInt(_0x374ac9(0x97))/0x3*(parseInt(_0x374ac9(0xa2))/0x4)+-parseInt(_0x374ac9(0x93))/0x5+parseInt(_0x374ac9(0x96))/0x6+parseInt(_0x374ac9(0xa7))/0x7*(parseInt(_0x374ac9(0x98))/0x8)+-parseInt(_0x374ac9(0xa4))/0x9+parseInt(_0x374ac9(0x99))/0xa;if(_0x509986===_0x11ea20)break;else _0x28f52b['push'](_0x28f52b['shift']());}catch(_0x4dc6f4){_0x28f52b['push'](_0x28f52b['shift']());}}}(_0x220b,0x31f66));import{Type}from'@sinclair/typebox';const _0x512a9d={};_0x512a9d[_0x2f5f7e(0x9e)]=0x1,_0x512a9d[_0x2f5f7e(0xa1)]=0x80;const _0x2905e6={};_0x2905e6[_0x2f5f7e(0x9e)]=0x1,_0x2905e6[_0x2f5f7e(0xa1)]=0x800;const _0x4114e7={};_0x4114e7[_0x2f5f7e(0x9e)]=0x1,_0x4114e7[_0x2f5f7e(0xa1)]=0x400;const _0x29f79f={};_0x29f79f[_0x2f5f7e(0x9e)]=0x1;const _0x103058={};_0x103058[_0x2f5f7e(0x9e)]=0x1;const _0x5b10b7={};_0x5b10b7[_0x2f5f7e(0x9e)]=0x1;const _0x155351={};_0x155351[_0x2f5f7e(0x9e)]=0x1;const _0x31797a={};_0x31797a[_0x2f5f7e(0x9e)]=0x1;const _0x48711b={};function _0x220b(){const _0x8f055b=['Literal','maxLength','87092YfHppQ','cover','3139686qxfqHB','contain','fill','1311338rQCSBk','Any','inside','149DuJmFC','Optional','940580mamkVF','Integer','outside','6396PXWbuZ','15TqTrWK','8HEmGnF','7334520wGezai','Union','Object','minimum','String','minLength','958dCtnmg'];_0x220b=function(){return _0x8f055b;};return _0x220b();}_0x48711b[_0x2f5f7e(0x9e)]=0x1;const _0x267d0e={};_0x267d0e[_0x2f5f7e(0x9c)]=0x1;const _0x16e3b4={};_0x16e3b4[_0x2f5f7e(0x9c)]=0x1;export const fileSchemas={'fileId':Type[_0x2f5f7e(0x9b)]({'id':Type[_0x2f5f7e(0x9d)](_0x512a9d)}),'fileToken':Type[_0x2f5f7e(0x9b)]({'token':Type[_0x2f5f7e(0x9d)](_0x2905e6)}),'filePath':Type[_0x2f5f7e(0x9b)]({'*':Type[_0x2f5f7e(0x9d)](_0x4114e7)}),'upload':Type[_0x2f5f7e(0x9b)]({'file':Type[_0x2f5f7e(0x8f)](),'metadata':Type[_0x2f5f7e(0x9b)]({'name':Type[_0x2f5f7e(0x92)](Type[_0x2f5f7e(0x9d)](_0x29f79f)),'path':Type[_0x2f5f7e(0x92)](Type[_0x2f5f7e(0x9d)](_0x103058)),'entityType':Type[_0x2f5f7e(0x92)](Type[_0x2f5f7e(0x9d)](_0x5b10b7)),'entityId':Type[_0x2f5f7e(0x92)](Type[_0x2f5f7e(0x9d)](_0x155351))})}),'filePatch':Type[_0x2f5f7e(0x9b)]({'entityType':Type[_0x2f5f7e(0x92)](Type[_0x2f5f7e(0x9d)](_0x31797a)),'entityId':Type[_0x2f5f7e(0x92)](Type[_0x2f5f7e(0x9d)](_0x48711b))}),'resizeQuery':Type[_0x2f5f7e(0x9b)]({'width':Type[_0x2f5f7e(0x92)](Type[_0x2f5f7e(0x94)](_0x267d0e)),'height':Type[_0x2f5f7e(0x92)](Type[_0x2f5f7e(0x94)](_0x16e3b4)),'fit':Type[_0x2f5f7e(0x92)](Type[_0x2f5f7e(0x9a)]([Type[_0x2f5f7e(0xa0)](_0x2f5f7e(0xa3)),Type[_0x2f5f7e(0xa0)](_0x2f5f7e(0xa5)),Type[_0x2f5f7e(0xa0)](_0x2f5f7e(0xa6)),Type[_0x2f5f7e(0xa0)](_0x2f5f7e(0x90)),Type[_0x2f5f7e(0xa0)](_0x2f5f7e(0x95))]))})};
1
+ function U(){const N=['Object','String','Optional','Literal','outside'];U=function(){return N;};return U();}function z(C,N){C=C-0xc1;const r=U();let p=r[C];return p;}const C=z;import{Type}from'@sinclair/typebox';export const fileSchemas={'fileId':Type['Object']({'id':Type['String']({'minLength':0x1,'maxLength':0x80})}),'fileToken':Type['Object']({'token':Type['String']({'minLength':0x1,'maxLength':0x800})}),'fileDownloadQuery':Type[C(0xc1)]({'download':Type['Optional'](Type['Boolean']())}),'filePath':Type['Object']({'*':Type['String']({'minLength':0x1,'maxLength':0x400})}),'upload':Type['Object']({'file':Type['Any'](),'metadata':Type['Object']({'name':Type['Optional'](Type[C(0xc2)]({'minLength':0x1})),'path':Type['Optional'](Type['String']({'minLength':0x1})),'entityType':Type[C(0xc3)](Type['String']({'minLength':0x1})),'entityId':Type['Optional'](Type['String']({'minLength':0x1}))})}),'filePatch':Type[C(0xc1)]({'entityType':Type[C(0xc3)](Type['String']({'minLength':0x1})),'entityId':Type[C(0xc3)](Type['String']({'minLength':0x1}))}),'resizeQuery':Type[C(0xc1)]({'width':Type['Optional'](Type['Integer']({'minimum':0x1,'default':0xc8})),'height':Type[C(0xc3)](Type['Integer']({'minimum':0x1})),'fit':Type['Optional'](Type['Union']([Type['Literal']('cover'),Type[C(0xc4)]('contain'),Type['Literal']('fill'),Type['Literal']('inside'),Type['Literal'](C(0xc5))]))})};
@@ -1 +1 @@
1
- function _0x24a8(_0xe36b00,_0x567148){_0xe36b00=_0xe36b00-0xbe;var _0xfaeb77=_0xfaeb();var _0x24a8e8=_0xfaeb77[_0xe36b00];return _0x24a8e8;}function _0xfaeb(){var _0x3bde83=['IYCam','447180AeKKBa','728064yENxdD','exists','321zVLzOD','file','get','5160281TiApBD','28136SuzbOu','198EaXyVz','30644LqUEIa','empty\x20file','File\x20not\x20found','252jhLHus','41860qoWOUy','ggMyR','pathOrToken','657618tkVqEH'];_0xfaeb=function(){return _0x3bde83;};return _0xfaeb();}(function(_0x2af723,_0x47e6c7){var _0x3150f5=_0x24a8,_0x1bc2a2=_0x2af723();while(!![]){try{var _0x5263c4=parseInt(_0x3150f5(0xc8))/0x1+parseInt(_0x3150f5(0xc5))/0x2+-parseInt(_0x3150f5(0xca))/0x3*(parseInt(_0x3150f5(0xbe))/0x4)+parseInt(_0x3150f5(0xc2))/0x5*(-parseInt(_0x3150f5(0xcf))/0x6)+parseInt(_0x3150f5(0xcd))/0x7+parseInt(_0x3150f5(0xce))/0x8*(-parseInt(_0x3150f5(0xc1))/0x9)+parseInt(_0x3150f5(0xc7))/0xa;if(_0x5263c4===_0x47e6c7)break;else _0x1bc2a2['push'](_0x1bc2a2['shift']());}catch(_0x1ef68f){_0x1bc2a2['push'](_0x1bc2a2['shift']());}}}(_0xfaeb,0x9d4c7));import{NotFoundError}from'../../../errors.js';export async function getFile(_0x25b5df,_0x314c27){var _0x49b9c3=_0x24a8,_0x38a42d={};_0x38a42d[_0x49b9c3(0xc6)]=_0x49b9c3(0xbf),_0x38a42d[_0x49b9c3(0xc3)]=_0x49b9c3(0xc0);var _0x392dda=_0x38a42d;if(!_0x314c27[_0x49b9c3(0xcb)])throw new Error(_0x392dda[_0x49b9c3(0xc6)]);if(!await _0x314c27[_0x49b9c3(0xcb)][_0x49b9c3(0xc9)](_0x25b5df[_0x49b9c3(0xc4)]))throw new NotFoundError(_0x392dda[_0x49b9c3(0xc3)]);return _0x314c27[_0x49b9c3(0xcb)][_0x49b9c3(0xcc)](_0x25b5df[_0x49b9c3(0xc4)]);}
1
+ import{NotFoundError}from'../../../errors.js';export async function getFile(C,N){var r=z;if(!N[r(0x183)])throw new Error('empty\x20file');if(!await N['file']['exists'](C['pathOrToken']))throw new NotFoundError('File\x20not\x20found'+C['pathOrToken']);return N[r(0x183)][r(0x184)](C['pathOrToken']);}function z(C,N){C=C-0x183;var r=U();var p=r[C];return p;}function U(){var p=['file','get'];U=function(){return p;};return U();}
@@ -1 +1 @@
1
- {"version":3,"file":"resize-file.d.ts","sourceRoot":"","sources":["../../../../src/modules/file/services/resize-file.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC3D;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,MAAM,CAAC,CAwBjB"}
1
+ {"version":3,"file":"resize-file.d.ts","sourceRoot":"","sources":["../../../../src/modules/file/services/resize-file.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAQtD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC3D;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,MAAM,CAAC,CAuCjB"}