@restforgejs/platform 5.2.13 → 5.2.16

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 (190) hide show
  1. package/bin/drift-check-linux +0 -0
  2. package/bin/sdf-tools-linux +0 -0
  3. package/bin/sdf-tools.exe +0 -0
  4. package/build-info.json +2 -2
  5. package/cli/consumer-deploy.js +1 -1
  6. package/cli/consumer.js +1 -1
  7. package/generators/cli/fast-track.js +4 -2
  8. package/generators/cli/project/auth.js +209 -0
  9. package/generators/lib/auth/component-generator.js +58 -0
  10. package/generators/lib/auth/dependency-checker.js +102 -0
  11. package/generators/lib/auth/env-injector.js +81 -0
  12. package/generators/lib/auth/migrate-runner.js +111 -0
  13. package/generators/lib/auth/prefix.js +22 -0
  14. package/generators/lib/auth/processor-generator.js +55 -0
  15. package/generators/lib/auth/sdf-generator.js +102 -0
  16. package/generators/lib/auth/template-renderer.js +29 -0
  17. package/generators/lib/auth/templates/processor/login.js.tmpl +152 -0
  18. package/generators/lib/auth/templates/processor/logout.js.tmpl +58 -0
  19. package/generators/lib/auth/templates/processor/me.js.tmpl +64 -0
  20. package/generators/lib/auth/templates/processor/refresh.js.tmpl +134 -0
  21. package/generators/lib/auth/templates/processor/register.js.tmpl +77 -0
  22. package/generators/lib/auth/templates/processor/reset-password.js.tmpl +106 -0
  23. package/generators/lib/auth/templates/rfx_auth-middleware.js.tmpl +79 -0
  24. package/generators/lib/auth/templates/rfx_auth.js.tmpl +104 -0
  25. package/generators/lib/dbschema-kit/schema-printer.js +10 -1
  26. package/generators/lib/templates/dashboard-catalog.js +1 -1
  27. package/generators/lib/templates/db-connection-env.js +1 -1
  28. package/generators/lib/templates/dbschema-catalog.js +1 -1
  29. package/generators/lib/templates/field-validation-catalog.js +1 -1
  30. package/generators/lib/templates/mysql-template.js +1 -1
  31. package/generators/lib/templates/oracle-template.js +1 -1
  32. package/generators/lib/templates/postgres-template.js +1 -1
  33. package/generators/lib/templates/query-declarative-catalog.js +1 -1
  34. package/generators/lib/templates/sqlite-template.js +1 -1
  35. package/integrity-manifest.json +18 -18
  36. package/package.json +1 -1
  37. package/scripts/verify-integrity.js +1 -1
  38. package/server.js +1 -1
  39. package/src/components/handlers/adjust_handler.js +1 -1
  40. package/src/components/handlers/audit_handler.js +1 -1
  41. package/src/components/handlers/delete_handler.js +1 -1
  42. package/src/components/handlers/export_handler.js +1 -1
  43. package/src/components/handlers/import_handler.js +1 -1
  44. package/src/components/handlers/insert_handler.js +1 -1
  45. package/src/components/handlers/update_handler.js +1 -1
  46. package/src/components/handlers/upload_handler.js +1 -1
  47. package/src/components/handlers/workflow_handler.js +1 -1
  48. package/src/components/integrations/webhook.js +1 -1
  49. package/src/consumers/baseConsumer.js +1 -1
  50. package/src/consumers/declarativeMapper.js +1 -1
  51. package/src/consumers/handlers/apiHandler.js +1 -1
  52. package/src/consumers/handlers/consoleHandler.js +1 -1
  53. package/src/consumers/handlers/databaseHandler.js +1 -1
  54. package/src/consumers/handlers/index.js +1 -1
  55. package/src/consumers/handlers/kafkaHandler.js +1 -1
  56. package/src/consumers/index.js +1 -1
  57. package/src/consumers/messageTransformer.js +1 -1
  58. package/src/consumers/validator.js +1 -1
  59. package/src/core/db/dialect/base-dialect.js +1 -1
  60. package/src/core/db/dialect/index.js +1 -1
  61. package/src/core/db/dialect/mysql-dialect.js +1 -1
  62. package/src/core/db/dialect/oracle-dialect.js +1 -1
  63. package/src/core/db/dialect/postgres-dialect.js +1 -1
  64. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  65. package/src/core/db/flatten-helper.js +1 -1
  66. package/src/core/db/query-builder-error.js +1 -1
  67. package/src/core/db/query-builder.js +1 -1
  68. package/src/core/db/relation-helper.js +1 -1
  69. package/src/core/handlers/delete_handler.js +1 -1
  70. package/src/core/handlers/insert_handler.js +1 -1
  71. package/src/core/handlers/update_handler.js +1 -1
  72. package/src/core/models/base-model.js +1 -1
  73. package/src/core/utils/cache-manager.js +1 -1
  74. package/src/core/utils/component-engine.js +1 -1
  75. package/src/core/utils/context-builder.js +1 -1
  76. package/src/core/utils/datetime-formatter.js +1 -1
  77. package/src/core/utils/datetime-parser.js +1 -1
  78. package/src/core/utils/db.js +1 -1
  79. package/src/core/utils/logger.js +1 -1
  80. package/src/core/utils/payload-loader.js +1 -1
  81. package/src/core/utils/security-checks.js +1 -1
  82. package/src/middleware/body-options.js +1 -1
  83. package/src/middleware/cors.js +1 -1
  84. package/src/middleware/idempotency.js +1 -1
  85. package/src/middleware/rate-limiter.js +1 -1
  86. package/src/middleware/request-logger.js +1 -1
  87. package/src/middleware/security-headers.js +1 -1
  88. package/src/models/base-model-mysql.js +1 -1
  89. package/src/models/base-model-oracle.js +1 -1
  90. package/src/models/base-model-sqlite.js +1 -1
  91. package/src/models/base-model.js +1 -1
  92. package/src/pro/caching/redis-client.js +1 -1
  93. package/src/pro/caching/redis-helper.js +1 -1
  94. package/src/pro/consumers/baseConsumer.js +1 -1
  95. package/src/pro/consumers/declarativeMapper.js +1 -1
  96. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  97. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  98. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  99. package/src/pro/consumers/handlers/index.js +1 -1
  100. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  101. package/src/pro/consumers/index.js +1 -1
  102. package/src/pro/consumers/messageTransformer.js +1 -1
  103. package/src/pro/consumers/validator.js +1 -1
  104. package/src/pro/database/base-model-mysql.js +1 -1
  105. package/src/pro/database/base-model-oracle.js +1 -1
  106. package/src/pro/database/base-model-sqlite.js +1 -1
  107. package/src/pro/database/db-mysql.js +1 -1
  108. package/src/pro/database/db-oracle.js +1 -1
  109. package/src/pro/database/db-sqlite.js +1 -1
  110. package/src/pro/excel/excel-generator.js +1 -1
  111. package/src/pro/excel/excel-parser.js +1 -1
  112. package/src/pro/excel/export-service.js +1 -1
  113. package/src/pro/excel/export_handler.js +1 -1
  114. package/src/pro/excel/import-service.js +1 -1
  115. package/src/pro/excel/import-validator.js +1 -1
  116. package/src/pro/excel/import_handler.js +1 -1
  117. package/src/pro/excel/upsert-builder.js +1 -1
  118. package/src/pro/idgen/idgen-routes.js +1 -1
  119. package/src/pro/integrations/lookup-resolver.js +1 -1
  120. package/src/pro/integrations/upload-handler-v2.js +1 -1
  121. package/src/pro/integrations/upload-handler.js +1 -1
  122. package/src/pro/integrations/webhook.js +1 -1
  123. package/src/pro/locking/lock-routes.js +1 -1
  124. package/src/pro/locking/resource-lock-manager.js +1 -1
  125. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  126. package/src/pro/messaging/kafkaService.js +1 -1
  127. package/src/pro/messaging/messagehubService.js +1 -1
  128. package/src/pro/messaging/rabbitmqService.js +1 -1
  129. package/src/pro/scheduler/job-manager.js +1 -1
  130. package/src/pro/scheduler/job-routes.js +1 -1
  131. package/src/pro/scheduler/job-validator.js +1 -1
  132. package/src/pro/storage/base-storage-provider.js +1 -1
  133. package/src/pro/storage/file-metadata-helper.js +1 -1
  134. package/src/pro/storage/index.js +1 -1
  135. package/src/pro/storage/local-storage-provider.js +1 -1
  136. package/src/pro/storage/s3-storage-provider.js +1 -1
  137. package/src/pro/storage/upload-cleanup-job.js +1 -1
  138. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  139. package/src/pro/storage/upload-pending-tracker.js +1 -1
  140. package/src/pro/websocket/broadcast-helper.js +1 -1
  141. package/src/pro/websocket/index.js +1 -1
  142. package/src/pro/websocket/livesync-server.js +1 -1
  143. package/src/pro/websocket/ws-broadcaster.js +1 -1
  144. package/src/services/export-service.js +1 -1
  145. package/src/services/import-service.js +1 -1
  146. package/src/services/kafkaConsumerService.js +1 -1
  147. package/src/services/kafkaService.js +1 -1
  148. package/src/services/messagehubService.js +1 -1
  149. package/src/services/rabbitmqService.js +1 -1
  150. package/src/utils/cache-invalidation-registry.js +1 -1
  151. package/src/utils/cache-manager.js +1 -1
  152. package/src/utils/component-engine.js +1 -1
  153. package/src/utils/config-extractor.js +1 -1
  154. package/src/utils/consumerLogger.js +1 -1
  155. package/src/utils/context-builder.js +1 -1
  156. package/src/utils/dashboard-helpers.js +1 -1
  157. package/src/utils/dateHelper.js +1 -1
  158. package/src/utils/datetime-formatter.js +1 -1
  159. package/src/utils/datetime-parser.js +1 -1
  160. package/src/utils/db-bootstrap.js +1 -1
  161. package/src/utils/db-mysql.js +1 -1
  162. package/src/utils/db-oracle.js +1 -1
  163. package/src/utils/db-sqlite.js +1 -1
  164. package/src/utils/db.js +1 -1
  165. package/src/utils/demo-generator.js +1 -1
  166. package/src/utils/excel-generator.js +1 -1
  167. package/src/utils/excel-parser.js +1 -1
  168. package/src/utils/file-watcher.js +1 -1
  169. package/src/utils/id-generator.js +1 -1
  170. package/src/utils/idempotency-manager.js +1 -1
  171. package/src/utils/import-validator.js +1 -1
  172. package/src/utils/license-client.js +1 -1
  173. package/src/utils/lock-manager.js +1 -1
  174. package/src/utils/logger.js +1 -1
  175. package/src/utils/lookup-resolver.js +1 -1
  176. package/src/utils/payload-loader.js +1 -1
  177. package/src/utils/processor-response.js +1 -1
  178. package/src/utils/rabbitmq.js +1 -1
  179. package/src/utils/redis-client.js +1 -1
  180. package/src/utils/redis-helper.js +1 -1
  181. package/src/utils/request-scope.js +1 -1
  182. package/src/utils/security-checks.js +1 -1
  183. package/src/utils/service-resolver.js +1 -1
  184. package/src/utils/shutdown-coordinator.js +1 -1
  185. package/src/utils/soft-delete-dashboard-guard.js +1 -1
  186. package/src/utils/sql-table-extractor.js +1 -1
  187. package/src/utils/trusted-keys.js +1 -1
  188. package/src/utils/upload-handler.js +1 -1
  189. package/src/utils/upsert-builder.js +1 -1
  190. package/src/utils/workflow-hook-executor.js +1 -1
@@ -1 +1 @@
1
- const a0_0x8a01d0=a0_0x2038;(function(_0x30f12d,_0x1f5ae0){const _0x1e3be1=a0_0x2038,_0x440bd9=_0x30f12d();while(!![]){try{const _0x3ceda9=-parseInt(_0x1e3be1(0xf4))/0x1*(parseInt(_0x1e3be1(0x11f))/0x2)+-parseInt(_0x1e3be1(0xd6))/0x3*(parseInt(_0x1e3be1(0x114))/0x4)+parseInt(_0x1e3be1(0xe9))/0x5+parseInt(_0x1e3be1(0xcd))/0x6+-parseInt(_0x1e3be1(0xcc))/0x7*(parseInt(_0x1e3be1(0x119))/0x8)+parseInt(_0x1e3be1(0x100))/0x9+parseInt(_0x1e3be1(0xd0))/0xa;if(_0x3ceda9===_0x1f5ae0)break;else _0x440bd9['push'](_0x440bd9['shift']());}catch(_0x5b6a49){_0x440bd9['push'](_0x440bd9['shift']());}}}(a0_0x3df4,0x570a0));function a0_0x2038(_0x3941c3,_0x389ef3){_0x3941c3=_0x3941c3-0xcb;const _0x3df422=a0_0x3df4();let _0x20387e=_0x3df422[_0x3941c3];if(a0_0x2038['UJYPqT']===undefined){var _0x3dc1f4=function(_0x489c3f){const _0x2ed4a0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1e0c75='',_0x26ab88='';for(let _0x362dfa=0x0,_0x17b988,_0x49b0e5,_0x101b0d=0x0;_0x49b0e5=_0x489c3f['charAt'](_0x101b0d++);~_0x49b0e5&&(_0x17b988=_0x362dfa%0x4?_0x17b988*0x40+_0x49b0e5:_0x49b0e5,_0x362dfa++%0x4)?_0x1e0c75+=String['fromCharCode'](0xff&_0x17b988>>(-0x2*_0x362dfa&0x6)):0x0){_0x49b0e5=_0x2ed4a0['indexOf'](_0x49b0e5);}for(let _0x1cdc49=0x0,_0x21fa17=_0x1e0c75['length'];_0x1cdc49<_0x21fa17;_0x1cdc49++){_0x26ab88+='%'+('00'+_0x1e0c75['charCodeAt'](_0x1cdc49)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x26ab88);};a0_0x2038['gLVJtk']=_0x3dc1f4,a0_0x2038['BXWxIw']={},a0_0x2038['UJYPqT']=!![];}const _0x21e208=_0x3df422[0x0],_0x54e74d=_0x3941c3+_0x21e208,_0x5c8f79=a0_0x2038['BXWxIw'][_0x54e74d];return!_0x5c8f79?(_0x20387e=a0_0x2038['gLVJtk'](_0x20387e),a0_0x2038['BXWxIw'][_0x54e74d]=_0x20387e):_0x20387e=_0x5c8f79,_0x20387e;}function a0_0x3df4(){const _0x2d087e=['x3bYzwzPEa','x3jLDhj5rgvSyxK','D3jPDgu','mJHesgjpy2i','te11ue8','ChjLzML4','zw5HyMXLza','vMf3q3C','odi0uwT4sM1i','C2v0','D3jPDgvFBg9JA19Hy3f1AxjLza','m3W1Fdf8n3WYFdb8nhW2','uKvbrcbSB2nRigvYCM9Y','svz6zxa','mJbjB2fQvLC','BgfZDeLUzgv4t2y','CuH0vw8','mZqWmJDUAxL1Dge','mJm2mtaWmffKA2XAra','zgvIDwC','A0HSs2u','nJK0otGXme1xENzyCG','tg9JAYbJB25MAwD1CMf0Aw9UigLUAxrPywXPEMvKic0Gzw5HyMXLzdOG','CMvHzf9SB2nRx3DHAxrPBMC','te9Vthe','tg9JAYbYzwXLyxnLigvYCM9Y','DNnJrLq','mJmWnJy3D1f1se9I','x2vUC3vYzuLUAxrPywXPEMvK','CgLK','CMvHzf9SB2nRx3jLBgvHC2vK','uKvbrcbSB2nRigfJCxvPCMuGDgLTzw91Da','AxnfBMfIBgvK','CMvHza','sgHoANm','z2v0','D3jPDgvFBg9JA193ywL0Aw5N','zgvMyxvSDfruta','C2XLzxa','DuLJsgq','z2v0q2XPzw50','CMvHzf9SB2nRx2fJCxvPCMvK','D3jPDgvFBg9JA19YzwXLyxnLza','zw52','u01MDeS','CMv0CNLezwXHEq','mtq1mJmWmg5UAxDyEa','te9ds19esvnuuKLcvvrfrf9uveW','Bg9JA19LEhrLBMrLza','lI9YzwrPCY1JBgLLBNq','tKvvt0O','wgn1C0O','x3DVCMTLCKLK','zxH0zw5Ktg9JAW','Aw5JBhvKzxm','te9ds19esvnuuKLcvvrfrf9srvrswv9eruXbwq','x2LUAxrdB25MAwC','mtqZm3DVsffivq','x3n0CMf0zwD5','ywnXDwLYzvDYAxrLtg9JAW','D3jPDgvFBg9JA19LCNjVCG','D2fYBG','zgvJCG','x3jLDhj5q291BNq','v1jjveuGBg9JAYbHy3f1AxjLihrPBwvVDxq','C2v0zxG','x2rLzMf1BhruveW','CMy6Bg9JAZO','Dhj1zq','mJC3mJyZA0jjt1jb','cIaGicaGicaGAwyGCMvKAxmUy2fSBcGIz2v0iIWGs0vzu1SXxsKGpt0GqvjhvLSXxsb0AgvUcIaGicaGicaGicbYzxr1CM4GCMvKAxmUy2fSBcGIzgvSiIWGs0vzu1SXxsKkicaGicaGicbLBhnLcIaGicaGicaGicbYzxr1CM4GmaOGicaGicaGigvUzaOGicaGica','Bg9JA19JB25MAwDFAw5PDa','zgvS','z2vUzxjHDgvmB2nRvMfSDwu','vwTPt0m','lcbZDhjHDgvNEtOG','ywnXDwLYzvjLywrmB2nR','D3jPDgvFBg9JA190Aw1LB3v0','zxjYB3i','x2LUAxrPywXPEMvK','uKvbrcbSB2nRihjLBgvHC2vK','yNvPBgrmB2nRs2v5','Bg9JA19YzwXLyxnLx25VDf9VD25LCG','D29YA2vYlq','rw5jwKG','x2vUywjSzwq'];a0_0x3df4=function(){return _0x2d087e;};return a0_0x3df4();}const redisClient=require(a0_0x8a01d0(0xec)),{logger}=require('./logger'),{v4:uuidv4}=require('uuid');class LockManager{constructor(){const _0x304e4b=a0_0x8a01d0,_0x4a594d=_0x304e4b(0x11c)['split']('|');let _0x38d605=0x0;while(!![]){switch(_0x4a594d[_0x38d605++]){case'0':this['_strategy']=null;continue;case'1':this[_0x304e4b(0xfd)]=null;continue;case'2':this[_0x304e4b(0x112)]=null;continue;case'3':this[_0x304e4b(0x111)]=null;continue;case'4':this[_0x304e4b(0xef)]=null;continue;case'5':this['_enabled']=null;continue;case'6':this['_initialized']=![];continue;case'7':this['_retryCount']=null;continue;}break;}}[a0_0x8a01d0(0xf3)](){const _0x142ca3=a0_0x8a01d0,_0x49c3de={'SMftK':_0x142ca3(0xfe),'mXCfU':function(_0x42f49f,_0x349dc9,_0x1e68db){return _0x42f49f(_0x349dc9,_0x1e68db);},'kHlKe':_0x142ca3(0x102)};this[_0x142ca3(0x111)]=_0x49c3de[_0x142ca3(0xe7)],this['_enabled']=process[_0x142ca3(0xe6)]['LOCK_DISTRIBUTED_ENABLED']===_0x142ca3(0xff),this['_defaultTTL']=parseInt(process[_0x142ca3(0xe6)][_0x142ca3(0xea)],0xa)||0xa,this['_retryCount']=parseInt(process['env']['LOCK_DISTRIBUTED_RETRY'],0xa)||0x3,this[_0x142ca3(0x112)]=_0x49c3de['mXCfU'](parseInt,process['env'][_0x142ca3(0xf2)],0xa)||0x64,this['_strategy']=process[_0x142ca3(0xe6)]['LOCK_DISTRIBUTED_STRATEGY']||'retry',this['_workerId']=_0x142ca3(0x10e)+process[_0x142ca3(0xd8)],this['_initialized']=!![],logger['info']({'event':_0x49c3de[_0x142ca3(0xcf)],'enabled':this[_0x142ca3(0x110)],'strategy':this[_0x142ca3(0xf5)],'ttl':this['_defaultTTL'],'retryCount':this[_0x142ca3(0xfa)],'retryDelay':this['_retryDelay'],'workerId':this['_workerId']},_0x142ca3(0xd1)+this[_0x142ca3(0x110)]+_0x142ca3(0x106)+this['_strategy']);}[a0_0x8a01d0(0xd7)](){const _0x58eb5f=a0_0x8a01d0;!this[_0x58eb5f(0x10a)]&&this[_0x58eb5f(0xf3)]();}get['prefix'](){const _0x3c75eb=a0_0x8a01d0;return this[_0x3c75eb(0xd7)](),this[_0x3c75eb(0x111)];}get[a0_0x8a01d0(0x117)](){const _0x363196=a0_0x8a01d0;return this[_0x363196(0xd7)](),this[_0x363196(0x110)];}get['defaultTTL'](){return this['_ensureInitialized'](),this['_defaultTTL'];}get['retryCount'](){const _0x5572df=a0_0x8a01d0;return this[_0x5572df(0xd7)](),this['_retryCount'];}get[a0_0x8a01d0(0xe8)](){return this['_ensureInitialized'](),this['_retryDelay'];}get['strategy'](){const _0x272b7f=a0_0x8a01d0;return this['_ensureInitialized'](),this[_0x272b7f(0xf5)];}get['workerId'](){const _0x4b7086=a0_0x8a01d0;return this[_0x4b7086(0xd7)](),this[_0x4b7086(0xef)];}['buildLockKey'](_0x2e2ae5){const _0x55f168=a0_0x8a01d0,{module:_0x13f601,endpoint:_0x594b4d,lockType:_0x1ce4cd,recordId:_0x47d017}=_0x2e2ae5;if(_0x47d017)return''+this['prefix']+_0x13f601+':'+_0x594b4d+':'+_0x47d017+':'+_0x1ce4cd;return''+this[_0x55f168(0x116)]+_0x13f601+':'+_0x594b4d+':'+_0x1ce4cd;}[a0_0x8a01d0(0x104)](){const _0x5e6580={'uTlsK':function(_0x2c53e4){return _0x2c53e4();}};return this['workerId']+':'+_0x5e6580['uTlsK'](uuidv4)+':'+Date['now']();}async[a0_0x8a01d0(0x107)](_0x2dfd6c){const _0x4f5829=a0_0x8a01d0,_0x567b1f={'pRkZT':_0x4f5829(0x113),'UkiOC':_0x4f5829(0xdc),'zbTxh':function(_0x51a134,_0x58d687){return _0x51a134<_0x58d687;},'NEUOJ':'READ\x20lock\x20acquired','VawCw':'Waiting\x20for\x20WRITE\x20lock\x20to\x20release','qHtUo':function(_0x40ac89,_0x339e44){return _0x40ac89*_0x339e44;},'EnIZH':'read_lock_error'};if(!this[_0x4f5829(0x117)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x47ab0f=this[_0x4f5829(0x10c)]({..._0x2dfd6c,'lockType':_0x567b1f['pRkZT']}),_0x41149f=this['buildLockKey']({..._0x2dfd6c,'lockType':_0x567b1f[_0x4f5829(0x105)]}),_0x548b2b=this['generateLockValue']();try{const _0x20f2a3=redisClient['getClient']();for(let _0x241412=0x0;_0x567b1f['zbTxh'](_0x241412,this['retryCount']);_0x241412++){const _0x4601db=await _0x20f2a3['get'](_0x47ab0f);if(!_0x4601db){await _0x20f2a3['incr'](_0x41149f),await _0x20f2a3['expire'](_0x41149f,this[_0x4f5829(0xe0)]);const _0x1c6047=_0x41149f+':'+_0x548b2b;return await _0x20f2a3[_0x4f5829(0xfc)](_0x1c6047,this[_0x4f5829(0xe0)],_0x548b2b),logger[_0x4f5829(0xce)]({'event':_0x4f5829(0xe4),'key':_0x41149f,'value':_0x548b2b},_0x567b1f[_0x4f5829(0xed)]),{'success':!![],'lockValue':_0x548b2b,'lockKey':_0x1c6047};}logger[_0x4f5829(0xce)]({'event':_0x4f5829(0xd2),'writeKey':_0x47ab0f,'attempt':_0x241412},_0x567b1f[_0x4f5829(0x118)]),await this[_0x4f5829(0xe1)](_0x567b1f[_0x4f5829(0xcb)](this['retryDelay'],Math['pow'](0x2,_0x241412)));}return logger[_0x4f5829(0xf8)]({'event':'read_lock_timeout','key':_0x41149f},_0x4f5829(0xda)),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x155d9f){return logger[_0x4f5829(0x109)]({'event':_0x567b1f[_0x4f5829(0x10f)],'error':_0x155d9f['message']},_0x4f5829(0x11d)),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x8a01d0(0xf6)](_0x1ff95f){const _0x21b8d9=a0_0x8a01d0,_0x3e109f={'OepyW':'write','vscFT':'reject','XcusJ':function(_0x1ea844,_0x1b8016){return _0x1ea844===_0x1b8016;},'mDaQl':_0x21b8d9(0x11b),'gtTZP':'WRITE\x20lock\x20acquired\x20(reject\x20mode)','HhNjs':'write_lock_rejected','yMRAG':'retry','LOoLq':'WRITE\x20lock\x20acquired\x20(retry\x20mode)','cmCSL':_0x21b8d9(0xdf),'mNGvF':'Waiting\x20for\x20locks\x20to\x20release','bfxjG':function(_0x1274e4,_0x25ef07){return _0x1274e4*_0x25ef07;}};if(!this[_0x21b8d9(0x117)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x496f0d=this['buildLockKey']({..._0x1ff95f,'lockType':_0x3e109f['OepyW']}),_0x475970=this[_0x21b8d9(0x10c)]({..._0x1ff95f,'lockType':'read'}),_0x5c2724=this[_0x21b8d9(0x104)]();try{const _0x246602=redisClient[_0x21b8d9(0xe3)]();if(this['strategy']===_0x3e109f[_0x21b8d9(0xd5)]){const _0x2535c9=await _0x246602[_0x21b8d9(0x11a)](_0x496f0d,_0x5c2724,'EX',this[_0x21b8d9(0xe0)],'NX');if(_0x3e109f[_0x21b8d9(0xee)](_0x2535c9,'OK'))return logger[_0x21b8d9(0xce)]({'event':_0x3e109f['mDaQl'],'key':_0x496f0d,'value':_0x5c2724,'strategy':_0x3e109f[_0x21b8d9(0xd5)]},_0x3e109f['gtTZP']),{'success':!![],'lockValue':_0x5c2724,'lockKey':_0x496f0d};return logger[_0x21b8d9(0xce)]({'event':_0x3e109f[_0x21b8d9(0xdd)],'key':_0x496f0d},'WRITE\x20lock\x20rejected\x20-\x20record\x20busy'),{'success':![],'lockValue':null,'lockKey':null};}for(let _0x15f9dc=0x0;_0x15f9dc<this['retryCount'];_0x15f9dc++){const [_0x135b64,_0x25706b]=await Promise['all']([_0x246602[_0x21b8d9(0xde)](_0x475970),_0x246602[_0x21b8d9(0xde)](_0x496f0d)]);if(!_0x25706b&&(!_0x135b64||parseInt(_0x135b64)===0x0)){const _0x277add=await _0x246602[_0x21b8d9(0x11a)](_0x496f0d,_0x5c2724,'EX',this['defaultTTL'],'NX');if(_0x277add==='OK')return logger[_0x21b8d9(0xce)]({'event':'write_lock_acquired','key':_0x496f0d,'value':_0x5c2724,'strategy':_0x3e109f['yMRAG']},_0x3e109f[_0x21b8d9(0xd3)]),{'success':!![],'lockValue':_0x5c2724,'lockKey':_0x496f0d};}logger['debug']({'event':_0x3e109f['cmCSL'],'writeKey':_0x496f0d,'readCount':_0x135b64,'attempt':_0x15f9dc},_0x3e109f['mNGvF']),await this[_0x21b8d9(0xe1)](_0x3e109f['bfxjG'](this['retryDelay'],Math['pow'](0x2,_0x15f9dc)));}return logger[_0x21b8d9(0xf8)]({'event':_0x21b8d9(0x108),'key':_0x496f0d},_0x21b8d9(0xfb)),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x29275e){return logger[_0x21b8d9(0x109)]({'event':_0x21b8d9(0xf7),'error':_0x29275e['message']},'WRITE\x20lock\x20error'),{'success':![],'lockValue':null,'lockKey':null};}}async['releaseLock'](_0x4544af,_0x2de8ef){const _0x1ea3e3=a0_0x8a01d0,_0x43e59a={'wGhEA':':read:','hnIEA':'Cannot\x20release\x20lock\x20-\x20not\x20owner','ocIcW':'lock_release_error'};if(!this['enabled']||!_0x4544af)return!![];try{const _0x2e5023=redisClient['getClient']();if(_0x4544af[_0x1ea3e3(0xf1)](_0x43e59a['wGhEA'])){await _0x2e5023[_0x1ea3e3(0x103)](_0x4544af);const _0x20f8bc=_0x4544af['substring'](0x0,_0x4544af[_0x1ea3e3(0x120)](':')),_0x1c8475=await _0x2e5023[_0x1ea3e3(0xde)](_0x20f8bc);return _0x1c8475&&parseInt(_0x1c8475)>0x0&&await _0x2e5023[_0x1ea3e3(0xf9)](_0x20f8bc),logger['debug']({'event':_0x1ea3e3(0xd9),'key':_0x4544af},_0x1ea3e3(0x10b)),!![];}const _0x51bf6b=_0x1ea3e3(0x101),_0x184660=await _0x2e5023['eval'](_0x51bf6b,0x1,_0x4544af,_0x2de8ef);if(_0x184660===0x1)return logger[_0x1ea3e3(0xce)]({'event':_0x1ea3e3(0xe5),'key':_0x4544af},'WRITE\x20lock\x20released'),!![];return logger['warn']({'event':_0x1ea3e3(0x10d),'key':_0x4544af},_0x43e59a['hnIEA']),![];}catch(_0x140271){return logger[_0x1ea3e3(0x109)]({'event':_0x43e59a['ocIcW'],'key':_0x4544af,'error':_0x140271['message']},_0x1ea3e3(0xd4)),![];}}async[a0_0x8a01d0(0xf0)](_0xa359ca,_0x27285a,_0x3303ff=null){const _0x2b4810=a0_0x8a01d0,_0x166d8c={'LMuPO':function(_0xe72d9a,_0x2bc4df){return _0xe72d9a===_0x2bc4df;},'uIcHd':_0x2b4810(0xeb),'WoRSC':'Lock\x20extend\x20error'};if(!this[_0x2b4810(0x117)]||!_0xa359ca)return!![];try{const _0x4d33ce=redisClient['getClient'](),_0xe65295='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22expire\x22,\x20KEYS[1],\x20ARGV[2])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x14fd12=await _0x4d33ce['eval'](_0xe65295,0x1,_0xa359ca,_0x27285a,_0x3303ff||this['defaultTTL']);if(_0x166d8c[_0x2b4810(0x115)](_0x14fd12,0x1))return logger[_0x2b4810(0xce)]({'event':_0x166d8c[_0x2b4810(0xe2)],'key':_0xa359ca,'ttl':_0x3303ff||this['defaultTTL']},'Lock\x20TTL\x20extended'),!![];return![];}catch(_0x43197f){return logger['error']({'event':'lock_extend_error','key':_0xa359ca,'error':_0x43197f['message']},_0x166d8c['WoRSC']),![];}}[a0_0x8a01d0(0xdb)](){return this['enabled'];}['sleep'](_0x3e63c6){return new Promise(_0x2e7f32=>setTimeout(_0x2e7f32,_0x3e63c6));}async['getLockInfo'](_0x4c5413){const _0x51b73b=a0_0x8a01d0,_0x4d7dae={'IVzep':function(_0xc3a984,_0x4b3f41){return _0xc3a984||_0x4b3f41;}};if(!this['enabled'])return{'enabled':![]};try{const _0x593788=redisClient['getClient'](),_0x1c4b23=this[_0x51b73b(0x10c)]({..._0x4c5413,'lockType':_0x51b73b(0x113)}),_0x5bfcc3=this[_0x51b73b(0x10c)]({..._0x4c5413,'lockType':'read'}),[_0x25920a,_0x4d97ee]=await Promise['all']([_0x593788['get'](_0x1c4b23),_0x593788[_0x51b73b(0xde)](_0x5bfcc3)]);return{'enabled':!![],'writeLock':_0x4d7dae[_0x51b73b(0x11e)](_0x25920a,null),'readCount':parseInt(_0x4d97ee)||0x0,'writeKey':_0x1c4b23,'readKey':_0x5bfcc3};}catch(_0x1f903b){return{'enabled':!![],'error':_0x1f903b['message']};}}}module['exports']=new LockManager();
1
+ function a0_0xa73d(_0x3f84f1,_0x142ca1){_0x3f84f1=_0x3f84f1-0x66;const _0x15908a=a0_0x1590();let _0xa73d19=_0x15908a[_0x3f84f1];if(a0_0xa73d['JmIsiz']===undefined){var _0x312773=function(_0x42eff0){const _0x1b4ab8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x593b23='',_0x345447='';for(let _0x2b1c28=0x0,_0x5eef65,_0x1942a0,_0x59e2ff=0x0;_0x1942a0=_0x42eff0['charAt'](_0x59e2ff++);~_0x1942a0&&(_0x5eef65=_0x2b1c28%0x4?_0x5eef65*0x40+_0x1942a0:_0x1942a0,_0x2b1c28++%0x4)?_0x593b23+=String['fromCharCode'](0xff&_0x5eef65>>(-0x2*_0x2b1c28&0x6)):0x0){_0x1942a0=_0x1b4ab8['indexOf'](_0x1942a0);}for(let _0x2cb08a=0x0,_0x3c7f89=_0x593b23['length'];_0x2cb08a<_0x3c7f89;_0x2cb08a++){_0x345447+='%'+('00'+_0x593b23['charCodeAt'](_0x2cb08a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x345447);};a0_0xa73d['ZdsUSa']=_0x312773,a0_0xa73d['LTZVWa']={},a0_0xa73d['JmIsiz']=!![];}const _0x56f2bf=_0x15908a[0x0],_0x2cc7da=_0x3f84f1+_0x56f2bf,_0x594f29=a0_0xa73d['LTZVWa'][_0x2cc7da];return!_0x594f29?(_0xa73d19=a0_0xa73d['ZdsUSa'](_0xa73d19),a0_0xa73d['LTZVWa'][_0x2cc7da]=_0xa73d19):_0xa73d19=_0x594f29,_0xa73d19;}const a0_0x4d6783=a0_0xa73d;(function(_0x2ea2c6,_0x4ec4e1){const _0x47a3ff=a0_0xa73d,_0x439b51=_0x2ea2c6();while(!![]){try{const _0x504144=-parseInt(_0x47a3ff(0xa5))/0x1+-parseInt(_0x47a3ff(0x7b))/0x2*(-parseInt(_0x47a3ff(0xb5))/0x3)+-parseInt(_0x47a3ff(0x69))/0x4*(-parseInt(_0x47a3ff(0x6c))/0x5)+parseInt(_0x47a3ff(0x72))/0x6+parseInt(_0x47a3ff(0x7a))/0x7*(parseInt(_0x47a3ff(0x74))/0x8)+parseInt(_0x47a3ff(0xb7))/0x9*(-parseInt(_0x47a3ff(0x87))/0xa)+parseInt(_0x47a3ff(0x68))/0xb;if(_0x504144===_0x4ec4e1)break;else _0x439b51['push'](_0x439b51['shift']());}catch(_0x44f544){_0x439b51['push'](_0x439b51['shift']());}}}(a0_0x1590,0x9ef7b));function a0_0x1590(){const _0x3754c5=['Bg9JA19LEhrLBMrLza','mJG3mdCZzfviDfbp','zgvMyxvSDfruta','z2v0tg9JA0LUzM8','mte1ntm0mw9vswLVrW','mJm3odq3mNbLtLnkCa','v2fPDgLUzYbMB3iGBg9JA3mGDg8GCMvSzwfZzq','zxzHBa','mtbpDgTRvuG','yvvPrgy','AfHLEeK','x3DVCMTLCKLK','A0feC0W','t1DQzwS','ndKXmteYuhryAKro','D3jPDgvFBg9JA193ywL0Aw5N','mtu4mdbyzeDUA3C','ChjLzML4','B1bPsLa','BwvZC2fNzq','EMjvrfy','x3bYzwzPEa','mJy1m2nYEfbSrW','mtHYsLnxAe8','D3jPDgvFBg9JA190Aw1LB3v0','q2fUBM90ihjLBgvHC2uGBg9JAYaTig5VDcbVD25LCG','x2LUAxrPywXPEMvK','CMvSzwfZzuXVy2S','yxnyAw0','svDeteC','D29YA2vYswq','lcbZDhjHDgvNEtOG','Cg93','zgvIDwC','zufNwLy','mJKWy3Dbq3PJ','BM93','zxjYB3i','tg9JAYbYzwXLyxnLigvYCM9Y','ywXS','EKPWAge','yNvPBgrmB2nRs2v5','x2rLzMf1BhruveW','CMv0CNLdB3vUDa','C2v0','CMvHzf9SB2nRx3jLBgvHC2vK','lI9YzwrPCY1JBgLLBNq','x3jLDhj5rgvSyxK','zxHWAxjL','D3jPDgu','D29YA2vYlq','D3jPDgvFBg9JA19Hy3f1AxjLza','uKvbrcbSB2nRigfJCxvPCMuGDgLTzw91Da','D3zLtMC','te9ds19esvnuuKLcvvrfrf9tvfjbvevhwq','sNnjEwq','CMv0CNK','x2vUywjSzwq','x3jLDhj5q291BNq','zw5HyMXLza','AK1vswC','ze1TDLq','x2vUC3vYzuLUAxrPywXPEMvK','z2v0q2XPzw50','CMvHza','ody0mZCZrMTQzeLZ','CMv0CNLezwXHEq','v1jjveuGBg9JAYbHy3f1AxjLihrPBwvVDxq','te9ds19esvnuuKLcvvrfrf9uveW','zw52','CMvQzwn0','CMvHzf9SB2nRx2fJCxvPCMvK','x3n0CMf0zwD5','z2v0','y3nvBK8','te9ds19esvnuuKLcvvrfrf9srvrswv9eruXbwq','CxrmtgO','v2fPDgLUzYbMB3iGv1jjveuGBg9JAYb0BYbYzwXLyxnL','zxHWB3j0CW','z2f1AK8','uKvbrcbSB2nRigfJCxvPCMvK','mta1mJKXEw9ovxr5'];a0_0x1590=function(){return _0x3754c5;};return a0_0x1590();}const redisClient=require(a0_0x4d6783(0x92)),{logger}=require('./logger'),{v4:uuidv4}=require('uuid');class LockManager{constructor(){const _0x11bf75=a0_0x4d6783;this[_0x11bf75(0x79)]=null,this['_enabled']=null,this['_defaultTTL']=null,this['_retryCount']=null,this[_0x11bf75(0x93)]=null,this[_0x11bf75(0xac)]=null,this[_0x11bf75(0x6f)]=null,this[_0x11bf75(0x7e)]=![];}['_initConfig'](){const _0x4fa8c9=a0_0x4d6783,_0x2f0101={'gaujO':'lock_config_init','QWVwg':function(_0x59daee,_0x2d337a,_0x37408d){return _0x59daee(_0x2d337a,_0x37408d);},'IWDLG':'true','VSfRy':'rf:lock:'},_0x2fff5e='8|5|3|6|4|7|1|0|2'['split']('|');let _0x2dadac=0x0;while(!![]){switch(_0x2fff5e[_0x2dadac++]){case'0':this[_0x4fa8c9(0x7e)]=!![];continue;case'1':this['_workerId']=_0x4fa8c9(0x96)+process['pid'];continue;case'2':logger['info']({'event':_0x2f0101[_0x4fa8c9(0xb3)],'enabled':this[_0x4fa8c9(0x9d)],'strategy':this['_strategy'],'ttl':this[_0x4fa8c9(0x8e)],'retryCount':this[_0x4fa8c9(0x9e)],'retryDelay':this['_retryDelay'],'workerId':this[_0x4fa8c9(0x6f)]},'Lock\x20configuration\x20initialized\x20-\x20enabled:\x20'+this['_enabled']+_0x4fa8c9(0x83)+this['_strategy']);continue;case'3':this['_defaultTTL']=parseInt(process['env'][_0x4fa8c9(0xa8)],0xa)||0xa;continue;case'4':this[_0x4fa8c9(0x93)]=_0x2f0101['QWVwg'](parseInt,process['env'][_0x4fa8c9(0xaf)],0xa)||0x64;continue;case'5':this['_enabled']=process['env']['LOCK_DISTRIBUTED_ENABLED']===_0x2f0101[_0x4fa8c9(0x81)];continue;case'6':this[_0x4fa8c9(0x9e)]=parseInt(process['env']['LOCK_DISTRIBUTED_RETRY'],0xa)||0x3;continue;case'7':this[_0x4fa8c9(0xac)]=process[_0x4fa8c9(0xa9)][_0x4fa8c9(0x9a)]||'retry';continue;case'8':this[_0x4fa8c9(0x79)]=_0x2f0101['VSfRy'];continue;}break;}}[a0_0x4d6783(0xa2)](){const _0x476112=a0_0x4d6783;!this[_0x476112(0x7e)]&&this['_initConfig']();}get[a0_0x4d6783(0x75)](){return this['_ensureInitialized'](),this['_prefix'];}get[a0_0x4d6783(0x9f)](){return this['_ensureInitialized'](),this['_enabled'];}get['defaultTTL'](){const _0x176004=a0_0x4d6783;return this['_ensureInitialized'](),this[_0x176004(0x8e)];}get[a0_0x4d6783(0x8f)](){const _0x51e766=a0_0x4d6783;return this[_0x51e766(0xa2)](),this['_retryCount'];}get[a0_0x4d6783(0xa6)](){const _0x2e36e6=a0_0x4d6783;return this['_ensureInitialized'](),this[_0x2e36e6(0x93)];}get['strategy'](){const _0x55b286=a0_0x4d6783;return this['_ensureInitialized'](),this[_0x55b286(0xac)];}get['workerId'](){const _0x13fd4c=a0_0x4d6783;return this[_0x13fd4c(0xa2)](),this[_0x13fd4c(0x6f)];}[a0_0x4d6783(0x8d)](_0xb32ebc){const {module:_0x37e299,endpoint:_0x270f7f,lockType:_0x27a7cb,recordId:_0x16297c}=_0xb32ebc;if(_0x16297c)return''+this['prefix']+_0x37e299+':'+_0x270f7f+':'+_0x16297c+':'+_0x27a7cb;return''+this['prefix']+_0x37e299+':'+_0x270f7f+':'+_0x27a7cb;}['generateLockValue'](){const _0x5a3ec3=a0_0x4d6783,_0x31d520={'oPiJP':function(_0x24514f){return _0x24514f();}};return this[_0x5a3ec3(0x82)]+':'+_0x31d520[_0x5a3ec3(0x76)](uuidv4)+':'+Date[_0x5a3ec3(0x88)]();}async['acquireReadLock'](_0x613e01){const _0x1513d4=a0_0x4d6783,_0x5f2591={'dqrfd':_0x1513d4(0x95),'eAgZV':_0x1513d4(0xa4),'LVPgr':function(_0x61edb1,_0x26809f){return _0x61edb1<_0x26809f;},'wveNg':_0x1513d4(0xb4),'jMUIg':_0x1513d4(0xb1),'uOUUu':function(_0x4730c7,_0x3df17c){return _0x4730c7*_0x3df17c;},'rcCXo':_0x1513d4(0x98),'aUiDf':'read_lock_error'};if(!this['enabled'])return{'success':!![],'lockValue':null,'lockKey':null};const _0x3c3b98=this['buildLockKey']({..._0x613e01,'lockType':_0x5f2591['dqrfd']}),_0x2fdea2=this[_0x1513d4(0x8d)]({..._0x613e01,'lockType':_0x5f2591[_0x1513d4(0x86)]}),_0x21351=this['generateLockValue']();try{const _0x2921b8=redisClient[_0x1513d4(0xa3)]();for(let _0x3e1c3a=0x0;_0x5f2591['LVPgr'](_0x3e1c3a,this['retryCount']);_0x3e1c3a++){const _0x22c9f6=await _0x2921b8['get'](_0x3c3b98);if(!_0x22c9f6){await _0x2921b8['incr'](_0x2fdea2),await _0x2921b8[_0x1513d4(0x94)](_0x2fdea2,this['defaultTTL']);const _0x5f4828=_0x2fdea2+':'+_0x21351;return await _0x2921b8['setex'](_0x5f4828,this['defaultTTL'],_0x21351),logger[_0x1513d4(0x85)]({'event':_0x1513d4(0xab),'key':_0x2fdea2,'value':_0x21351},_0x5f2591[_0x1513d4(0x99)]),{'success':!![],'lockValue':_0x21351,'lockKey':_0x5f4828};}logger[_0x1513d4(0x85)]({'event':'read_lock_waiting','writeKey':_0x3c3b98,'attempt':_0x3e1c3a},_0x5f2591[_0x1513d4(0xa0)]),await this['sleep'](_0x5f2591['uOUUu'](this[_0x1513d4(0xa6)],Math[_0x1513d4(0x84)](0x2,_0x3e1c3a)));}return logger['warn']({'event':'read_lock_timeout','key':_0x2fdea2},_0x5f2591['rcCXo']),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x5b4218){return logger['error']({'event':_0x5f2591[_0x1513d4(0x6d)],'error':_0x5b4218[_0x1513d4(0x77)]},'READ\x20lock\x20error'),{'success':![],'lockValue':null,'lockKey':null};}}async['acquireWriteLock'](_0x1c7fbb){const _0x1a7e2e=a0_0x4d6783,_0x18e3ca={'kADsL':_0x1a7e2e(0x95),'zbUDV':'reject','zJpha':function(_0x435485,_0x1592da){return _0x435485===_0x1592da;},'asXim':'WRITE\x20lock\x20acquired\x20(reject\x20mode)','qtLLj':'WRITE\x20lock\x20rejected\x20-\x20record\x20busy','urJol':function(_0x31dd17,_0x238ab7){return _0x31dd17(_0x238ab7);},'dMmvT':'WRITE\x20lock\x20acquired\x20(retry\x20mode)','hXexI':_0x1a7e2e(0xa7),'VjAak':'write_lock_error'};if(!this[_0x1a7e2e(0x9f)])return{'success':!![],'lockValue':null,'lockKey':null};const _0x1574e4=this[_0x1a7e2e(0x8d)]({..._0x1c7fbb,'lockType':_0x18e3ca[_0x1a7e2e(0x70)]}),_0x35042f=this['buildLockKey']({..._0x1c7fbb,'lockType':_0x1a7e2e(0xa4)}),_0x4e1907=this['generateLockValue']();try{const _0x56cc8a=redisClient[_0x1a7e2e(0xa3)]();if(this['strategy']===_0x18e3ca[_0x1a7e2e(0x78)]){const _0x31ae81=await _0x56cc8a[_0x1a7e2e(0x90)](_0x1574e4,_0x4e1907,'EX',this['defaultTTL'],'NX');if(_0x18e3ca[_0x1a7e2e(0x8c)](_0x31ae81,'OK'))return logger[_0x1a7e2e(0x85)]({'event':_0x1a7e2e(0x97),'key':_0x1574e4,'value':_0x4e1907,'strategy':_0x1a7e2e(0xaa)},_0x18e3ca[_0x1a7e2e(0x80)]),{'success':!![],'lockValue':_0x4e1907,'lockKey':_0x1574e4};return logger['debug']({'event':'write_lock_rejected','key':_0x1574e4},_0x18e3ca[_0x1a7e2e(0xb0)]),{'success':![],'lockValue':null,'lockKey':null};}for(let _0x4e428b=0x0;_0x4e428b<this[_0x1a7e2e(0x8f)];_0x4e428b++){const [_0x16fbfc,_0x3398ba]=await Promise[_0x1a7e2e(0x8b)]([_0x56cc8a[_0x1a7e2e(0xad)](_0x35042f),_0x56cc8a['get'](_0x1574e4)]);if(!_0x3398ba&&(!_0x16fbfc||_0x18e3ca['urJol'](parseInt,_0x16fbfc)===0x0)){const _0x4dba46=await _0x56cc8a['set'](_0x1574e4,_0x4e1907,'EX',this['defaultTTL'],'NX');if(_0x18e3ca[_0x1a7e2e(0x8c)](_0x4dba46,'OK'))return logger['debug']({'event':'write_lock_acquired','key':_0x1574e4,'value':_0x4e1907,'strategy':_0x1a7e2e(0x9c)},_0x18e3ca[_0x1a7e2e(0xa1)]),{'success':!![],'lockValue':_0x4e1907,'lockKey':_0x1574e4};}logger['debug']({'event':_0x1a7e2e(0x73),'writeKey':_0x1574e4,'readCount':_0x16fbfc,'attempt':_0x4e428b},_0x1a7e2e(0x6a)),await this['sleep'](this['retryDelay']*Math['pow'](0x2,_0x4e428b));}return logger['warn']({'event':_0x1a7e2e(0x7c),'key':_0x1574e4},_0x18e3ca[_0x1a7e2e(0x6e)]),{'success':![],'lockValue':null,'lockKey':null};}catch(_0x41832b){return logger[_0x1a7e2e(0x89)]({'event':_0x18e3ca['VjAak'],'error':_0x41832b[_0x1a7e2e(0x77)]},'WRITE\x20lock\x20error'),{'success':![],'lockValue':null,'lockKey':null};}}async[a0_0x4d6783(0x7f)](_0x5e3ac1,_0x4be6b7){const _0x21fea0=a0_0x4d6783,_0x1c9dd3={'yRaAY':function(_0x318797,_0x5007e5){return _0x318797(_0x5007e5);},'zMCNb':_0x21fea0(0x91),'OWjek':'READ\x20lock\x20released','DeeUP':'WRITE\x20lock\x20released','rLSSr':'lock_release_not_owner'};if(!this['enabled']||!_0x5e3ac1)return!![];try{const _0xb79db9=redisClient['getClient']();if(_0x5e3ac1['includes'](':read:')){await _0xb79db9['del'](_0x5e3ac1);const _0x272f10=_0x5e3ac1['substring'](0x0,_0x5e3ac1['lastIndexOf'](':')),_0x2504d4=await _0xb79db9['get'](_0x272f10);return _0x2504d4&&_0x1c9dd3['yRaAY'](parseInt,_0x2504d4)>0x0&&await _0xb79db9['decr'](_0x272f10),logger[_0x21fea0(0x85)]({'event':_0x1c9dd3['zMCNb'],'key':_0x5e3ac1},_0x1c9dd3[_0x21fea0(0x71)]),!![];}const _0x215c9b='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22del\x22,\x20KEYS[1])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x35b1d8=await _0xb79db9[_0x21fea0(0x6b)](_0x215c9b,0x1,_0x5e3ac1,_0x4be6b7);if(_0x35b1d8===0x1)return logger['debug']({'event':'write_lock_released','key':_0x5e3ac1},_0x1c9dd3['DeeUP']),!![];return logger['warn']({'event':_0x1c9dd3['rLSSr'],'key':_0x5e3ac1},_0x21fea0(0x7d)),![];}catch(_0x3920ac){return logger[_0x21fea0(0x89)]({'event':'lock_release_error','key':_0x5e3ac1,'error':_0x3920ac[_0x21fea0(0x77)]},_0x21fea0(0x8a)),![];}}async['extendLock'](_0xa1fc20,_0x2a3feb,_0x34a3c3=null){const _0x4402ec=a0_0x4d6783,_0x39f21d={'cvnYy':'Lock\x20TTL\x20extended'};if(!this[_0x4402ec(0x9f)]||!_0xa1fc20)return!![];try{const _0x32c312=redisClient['getClient'](),_0x346502='\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20redis.call(\x22get\x22,\x20KEYS[1])\x20==\x20ARGV[1]\x20then\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20redis.call(\x22expire\x22,\x20KEYS[1],\x20ARGV[2])\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x200\x0a\x20\x20\x20\x20\x20\x20\x20\x20end\x0a\x20\x20\x20\x20\x20\x20',_0x38ba35=await _0x32c312[_0x4402ec(0x6b)](_0x346502,0x1,_0xa1fc20,_0x2a3feb,_0x34a3c3||this[_0x4402ec(0x66)]);if(_0x38ba35===0x1)return logger[_0x4402ec(0x85)]({'event':_0x4402ec(0xb6),'key':_0xa1fc20,'ttl':_0x34a3c3||this['defaultTTL']},_0x39f21d['cvnYy']),!![];return![];}catch(_0x4ff8dd){return logger['error']({'event':'lock_extend_error','key':_0xa1fc20,'error':_0x4ff8dd[_0x4402ec(0x77)]},'Lock\x20extend\x20error'),![];}}['isEnabled'](){const _0x371c88=a0_0x4d6783;return this[_0x371c88(0x9f)];}['sleep'](_0x220f52){return new Promise(_0x5b85ff=>setTimeout(_0x5b85ff,_0x220f52));}async[a0_0x4d6783(0x67)](_0x7d65de){const _0x5065b9=a0_0x4d6783,_0x247f9d={'YjZJI':'read','csUnO':function(_0x211782,_0x153ff6){return _0x211782||_0x153ff6;},'JsIyd':function(_0x5c3508,_0x4f878b){return _0x5c3508(_0x4f878b);}};if(!this[_0x5065b9(0x9f)])return{'enabled':![]};try{const _0x1d5fa4=redisClient[_0x5065b9(0xa3)](),_0x3974db=this['buildLockKey']({..._0x7d65de,'lockType':'write'}),_0x37b72d=this[_0x5065b9(0x8d)]({..._0x7d65de,'lockType':_0x247f9d['YjZJI']}),[_0x520b3f,_0x483fa6]=await Promise[_0x5065b9(0x8b)]([_0x1d5fa4[_0x5065b9(0xad)](_0x3974db),_0x1d5fa4[_0x5065b9(0xad)](_0x37b72d)]);return{'enabled':!![],'writeLock':_0x247f9d[_0x5065b9(0xae)](_0x520b3f,null),'readCount':_0x247f9d[_0x5065b9(0x9b)](parseInt,_0x483fa6)||0x0,'writeKey':_0x3974db,'readKey':_0x37b72d};}catch(_0x242768){return{'enabled':!![],'error':_0x242768[_0x5065b9(0x77)]};}}}module[a0_0x4d6783(0xb2)]=new LockManager();
@@ -1 +1 @@
1
- function a0_0x261a(_0xc60f06,_0x29e58e){_0xc60f06=_0xc60f06-0x106;const _0x47ba85=a0_0x47ba();let _0x261ac5=_0x47ba85[_0xc60f06];if(a0_0x261a['zDUWSS']===undefined){var _0x315e4f=function(_0x4121e0){const _0xd9e40d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1e7ac1='',_0x43e40d='';for(let _0x520304=0x0,_0x4db0e1,_0x5b6431,_0x977010=0x0;_0x5b6431=_0x4121e0['charAt'](_0x977010++);~_0x5b6431&&(_0x4db0e1=_0x520304%0x4?_0x4db0e1*0x40+_0x5b6431:_0x5b6431,_0x520304++%0x4)?_0x1e7ac1+=String['fromCharCode'](0xff&_0x4db0e1>>(-0x2*_0x520304&0x6)):0x0){_0x5b6431=_0xd9e40d['indexOf'](_0x5b6431);}for(let _0x58a6ec=0x0,_0x1a2bf2=_0x1e7ac1['length'];_0x58a6ec<_0x1a2bf2;_0x58a6ec++){_0x43e40d+='%'+('00'+_0x1e7ac1['charCodeAt'](_0x58a6ec)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x43e40d);};a0_0x261a['mGxLag']=_0x315e4f,a0_0x261a['HAFHqK']={},a0_0x261a['zDUWSS']=!![];}const _0x179cd5=_0x47ba85[0x0],_0x40804a=_0xc60f06+_0x179cd5,_0x2c5fa9=a0_0x261a['HAFHqK'][_0x40804a];return!_0x2c5fa9?(_0x261ac5=a0_0x261a['mGxLag'](_0x261ac5),a0_0x261a['HAFHqK'][_0x40804a]=_0x261ac5):_0x261ac5=_0x2c5fa9,_0x261ac5;}const a0_0x3096f5=a0_0x261a;(function(_0x12a533,_0x59421d){const _0x4cd962=a0_0x261a,_0x2f5c13=_0x12a533();while(!![]){try{const _0x2ec9e6=-parseInt(_0x4cd962(0x177))/0x1+parseInt(_0x4cd962(0x140))/0x2+parseInt(_0x4cd962(0x189))/0x3+-parseInt(_0x4cd962(0x1b1))/0x4+-parseInt(_0x4cd962(0x1b6))/0x5+parseInt(_0x4cd962(0x142))/0x6+parseInt(_0x4cd962(0x172))/0x7;if(_0x2ec9e6===_0x59421d)break;else _0x2f5c13['push'](_0x2f5c13['shift']());}catch(_0x3310a4){_0x2f5c13['push'](_0x2f5c13['shift']());}}}(a0_0x47ba,0x8b0fc));const pino=require('pino'),fs=require('fs'),path=require(a0_0x3096f5(0x17d));let logToFile=![],logDir=a0_0x3096f5(0x187),serviceName=a0_0x3096f5(0x136),sqlLogEnabled=![],sqlLogLevel=a0_0x3096f5(0x12d),sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':'SYS:HH:MM:ss','ignore':a0_0x3096f5(0x12e),'singleLine':![],'levelFirst':!![],'messageFormat':'{msg}','customColors':a0_0x3096f5(0x18e),'hideObject':!![]},isDevelopment=process[a0_0x3096f5(0x110)][a0_0x3096f5(0x1ca)]!==a0_0x3096f5(0x128),logLevel=process[a0_0x3096f5(0x110)]['LOG_LEVEL']||a0_0x3096f5(0x1b9);function a0_0x47ba(){const _0x49e4af=['CgLK','otu0odK2sKfuA2LY','AgvHBhrOq2HLy2S','mtK1mZCYmezSqwfQuq','rxjYB3i','Eu9KwMW','rxfNqxe','qKvhsu4','rermx0nsrufurq','C2vYDMvYx3jLywr5','DhLWzq','DenOzKm','C3rHy2S','u0vsvKLdrv9oqu1f','C3bSAxq','u1fmx0Xpr19qqvjbtvm','Bwv0Ag9K','zw5KCg9PBNrFCMvNAxn0zxjLza','D2fYBMLUzW','cUkvOokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvOWRILzeGievUDMLYB25Tzw50idOG','Ce9rDLa','rLLqrwG','uKHsC3K','Dg9mB3DLCKnHC2u','C3rKu2vYAwfSAxPLCNm','zxHPDa','uhjVy2vZCYbxyxjUAw5NoIa','BMfbz2W','te9hx0rjuG','ig9UihbVCNqG','C2rkAMW','zxjYB3i','u0vmrunu','ChjVAMvJDa','rermx0fmvevs','Bwf0y2G','y3jLzgvUDgLHBa','icbvuKW6icaGia','CgTgtNG','BwTKAxjtEw5J','q09ntuLu','zxHWB3j0CW','CwLYq3a','EwrJCgO','q2vIu3G','ANnVBG','Ag9ZDa','C3vIC3rYAw5N','zxjY','qunusvzf','Dg9ju09tDhjPBMC','nZCXnZu2m3z5sKLuwa','CxvrtMm','D2fYBG','C3rYAw5N','qMrcDva','odK1nJa5t09oCvPl','Cg9YDa','zgjFDhjHBNnHy3rPB24','CgfKrw5K','w1jfrefdvevexq','AxntBg93','Cgf0Aa','vMHswKq','AuTWufe','BejiBvG','u3HWBge','CujjtwS','C3rKvgLTzuz1BMn0Aw9UCW','zgv2zwXVCg1LBNq','qvbqx1zfuLnjt04','u2vYDMvYihn0yxj0Aw5NoIa','lI9SB2DZ','AKTPDeG','mJe0mZuWovfRwu9Yrq','BgvUz3rO','txPzCgm','vxfWB1G','tu9xyM0','Aw5MBZPIBhvLlhDHCM46EwvSBg93lgvYCM9YoNjLzcXKzwj1zZPNCMf5','yxbWlMXVzW','AuXZBNi','t3nkDg4','Dw5Oyw5KBgvKuMvQzwn0Aw9U','zLvOBfy','DhjPBq','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','DxnLCG','Dhj1zq','iokvKqRILzeGienVBMzPzYaGicaGidOG','CgLU','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','sMjxs1i','Dw5JyxvNAhrfEgnLChrPB24','oI8V','zMfSC2u','z2v0sgvHzgvYCW','rLbzDum','C2vYDMLJzuLUzM8','rejFueftu1DpuKq','C2vYDMvYx3n0yxj0Aw5N','Aw5JBhvKzxm','wKDxyMi','zxjYB3iUBg9N','C3rHDhvZ','yM9KEq','yLP5vfG','yxbPA2v5','revmrvrf','Bg9N','BuDhqKC','C3nU','BMfTzq','C3rHDhvZq29Kzq','mJe3odq5mMjTvxfxDG','AMrJwK0','CgfZC3DK','Dxb0Aw1L','yxbPx3nLy3jLDa','mZa1mti2merowxjUsW','y29Kzq','ChDK','Aw5MBW','Awj0BKO','ChjPDMf0zwTLEq','ic0G','u0vXrey','zMf0ywW','AxPUzve','zKjYr3u','DKnsz3i','q1jfqvrf','uLvmvLu','BwvZC2fNzq','zgf0ywjHC2vFy29UzMLN','C3rHCNrZv2L0Aa','q1jjveLdquW','w1jfrefdveveoMHHC2HD','D3bSBNe','tK9erv9ftLy','Bgvpzuq','Ahj0Aw1L','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','zvLyBuG','y3DK','rgT5DeK','vNjQCNy','r2XVyMfSigvYCM9YigHHBMrSzxjZigLUAxrPywXPEMvK','C29Tzq','iokvKqRILzeGifbYB2PLy3qGicaGidOG','wLDxD3C','zw52','B2jQzwn0','uNLJrva','su5trvju','rfjpua','CMvTB3rLqwrKCMvZCW','ms4WlJu','B0jKvue','vfjbtLnbq1rjt05Fq09ntuLu','CKf3C3K','Dg9vChbLCKnHC2u','qKXOCMq','vfjbtLnbq1rjt05FuK9mtejbq0S','C3fSx3f1zxj5','rNHIu20','y3z2','DgvZDa','zgf0ywjHC2u','y29UzMLNrMLSzq','q1votKC','wfH5yue','tI9b','ifTtte9xxq','iokvKqRILzeGifbVCNqGicaGicaGidOG','ChjVzhvJDgLVBG','zMf0ywXFzxjYB3i','AM9PBG','q29HBg4','yvPKz0e','zgvIDwC','CgLKlgHVC3rUyw1LlhnLCNzPy2uSDMvYC2LVBIXLBNySzxzLBNqSBw9KDwXLlhbVCNqSy29UzMLNlgfWAuTLEuvUywjSzwqSCgf0AcX3B3jRAw5NrgLYlgLZugTNlgLZtM9KzvnJCMLWDcXMAwXLlgvTywLSlhr5CguSy29YCYXSB2DNAw5NlgfWAuTLEsXJB3vUDcXLBMrWB2LUDcXYB3v0zq','yMfZzvvYBa','AxnbCNjHEq','vKzczLe','u1fmx0Xpr19ftKfcteve','w1jfrefdveveoNrVA2vUxq','C0jJvKO','y3jLyxrLv3jPDgvtDhjLyw0','CMvZDgzVCMDL','Ahr0Cf9Yzxf1zxn0','y0rJzMO','DxjS','te9hx1rpx0zjteu','vvbeqvrf','ExnqDuq','u1fmx0Xpr19mrvzfta','ChjPDMf0zv9RzxK'];a0_0x47ba=function(){return _0x49e4af;};return a0_0x47ba();}let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env'][a0_0x3096f5(0x185)]||a0_0x3096f5(0x116),'env':process['env'][a0_0x3096f5(0x1ca)]||a0_0x3096f5(0x184)},'timestamp':pino[a0_0x3096f5(0x183)]['isoTime'],'redact':{'paths':[a0_0x3096f5(0x19a),'req.headers[\x22x-api-key\x22]','password','token','apiKey',a0_0x3096f5(0x1a2),'JWT_SECRET'],'censor':'[REDACTED]'},'serializers':{'req':_0xec587c=>({'id':_0xec587c['id'],'method':_0xec587c[a0_0x3096f5(0x14f)],'url':_0xec587c[a0_0x3096f5(0x139)],'path':_0xec587c[a0_0x3096f5(0x17d)],'remoteAddress':_0xec587c['ip']||_0xec587c['connection']?.['remoteAddress']}),'res':_0xe9d4c5=>({'statusCode':_0xe9d4c5['statusCode'],'headers':_0xe9d4c5[a0_0x3096f5(0x19f)]?.()}),'err':pino[a0_0x3096f5(0x157)][a0_0x3096f5(0x16f)]}});function initFileLogging(){const _0x44ebe4=a0_0x3096f5,_0x25fb1b={'sBcVJ':function(_0x435f73,_0x2806fb){return _0x435f73===_0x2806fb;},'DCBaW':'default','gHFJV':function(_0x412b89,_0x390a14){return _0x412b89===_0x390a14;},'RpIHP':_0x44ebe4(0x197),'VFBfQ':function(_0x555a66,_0x24fb17){return _0x555a66!==_0x24fb17;},'quQNc':function(_0x8f466,_0x41bcda){return _0x8f466(_0x41bcda);},'rAwsy':'error.log','xeQMc':function(_0xededeb,_0x5876b5,_0x5a9ad4){return _0xededeb(_0x5876b5,_0x5a9ad4);},'qirCp':_0x44ebe4(0x1b9)};if(fileLoggingInitialized)return;logToFile=_0x25fb1b[_0x44ebe4(0x134)](process['env'][_0x44ebe4(0x13a)],_0x44ebe4(0x197));const _0x32e056=process['env']['RESTFORGE_PROJECT_NAME']||_0x25fb1b['DCBaW'];logDir=process['env'][_0x44ebe4(0x15b)]||'./logs/'+_0x32e056,serviceName=process[_0x44ebe4(0x110)][_0x44ebe4(0x14c)]||'restforge',sqlLogEnabled=_0x25fb1b['gHFJV'](process['env'][_0x44ebe4(0x132)],_0x25fb1b['RpIHP']),sqlLogLevel=process['env'][_0x44ebe4(0x13d)]||_0x44ebe4(0x12d),sqlLogParams=_0x25fb1b[_0x44ebe4(0x131)](process['env'][_0x44ebe4(0x14e)],_0x44ebe4(0x19e)),sqlLogSlowThreshold=_0x25fb1b[_0x44ebe4(0x173)](parseInt,process['env']['SQL_LOG_SLOW_THRESHOLD'])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x523b7b=path['resolve'](process[_0x44ebe4(0x109)](),logDir);try{!fs['existsSync'](_0x523b7b)&&fs[_0x44ebe4(0x166)](_0x523b7b,{'recursive':!![]});}catch(_0x10db7b){console['error']('Failed\x20to\x20create\x20log\x20directory\x20'+_0x523b7b+':',_0x10db7b[_0x44ebe4(0x1c4)]),fileLoggingInitialized=!![];return;}const _0xcab749=path[_0x44ebe4(0x12a)](_0x523b7b,_0x44ebe4(0x18f)),_0x5d6ceb=path['join'](_0x523b7b,_0x25fb1b[_0x44ebe4(0x119)]);try{appLogStream=fs[_0x44ebe4(0x135)](_0xcab749,{'flags':'a'}),errorLogStream=fs[_0x44ebe4(0x135)](_0x5d6ceb,{'flags':'a'}),fileLoggingInitialized=!![];const _0x2bd96d={'event':'file_logging_enabled','logDir':_0x523b7b,'files':[_0x44ebe4(0x18f),_0x44ebe4(0x1a6)]},_0x3c4b72='File\x20logging\x20enabled:\x20'+_0x523b7b;logger[_0x44ebe4(0x1b9)](_0x2bd96d,_0x3c4b72),_0x25fb1b['xeQMc'](writeToFileLog,{..._0x2bd96d,'level':'info','msg':_0x3c4b72,'time':new Date()['toISOString']()},_0x25fb1b[_0x44ebe4(0x169)]);}catch(_0x6b632a){console['error'](_0x44ebe4(0x195),_0x6b632a[_0x44ebe4(0x1c4)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x20d8e4,_0x359d62){const _0x1dced1=a0_0x3096f5,_0xd4452a={'oBdUA':function(_0x19ab8f,_0x3da419){return _0x19ab8f===_0x3da419;},'mGGBG':_0x1dced1(0x1be)};if(!logToFile||!appLogStream)return;const _0x8d866f={'service':serviceName,..._0x20d8e4},_0x12a280=JSON['stringify'](_0x8d866f)+'\x0a';appLogStream['write'](_0x12a280),(_0xd4452a[_0x1dced1(0x117)](_0x359d62,_0x1dced1(0x15e))||_0xd4452a['oBdUA'](_0x359d62,_0xd4452a[_0x1dced1(0x1ad)]))&&(errorLogStream&&errorLogStream['write'](_0x12a280));}const createRequestLogger=(_0x21217b={})=>{return logger['child'](_0x21217b);},logServerStart=_0x586edc=>{const _0x76b0c8=a0_0x3096f5,_0x1aa491={'JYiOI':'RESTFORGE\x20RUNTIME\x20SERVER','jdcZM':function(_0x1fa2e7,_0x4fa0aa){return _0x1fa2e7-_0x4fa0aa;},'wllER':'Node.js','cSRcY':'NOT\x20ACTIVE','aZdgA':function(_0x3c77d1,_0x356d2a,_0x2cf1c8){return _0x3c77d1(_0x356d2a,_0x2cf1c8);},'BdBuP':_0x76b0c8(0x1b9)},_0x170d0d=_0x1aa491['JYiOI'],_0x133b23=Math['max'](0x0,_0x1aa491[_0x76b0c8(0x1b2)](0x37,_0x170d0d['length'])),_0x162dc5=Math['floor'](_0x133b23/0x2),_0x58291b=_0x133b23-_0x162dc5,_0x3554d0='║'+'\x20'['repeat'](_0x162dc5)+_0x170d0d+'\x20'['repeat'](_0x58291b)+'║',_0x37f747='\x0a╔═══════════════════════════════════════════════════════╗\x0a'+_0x3554d0+_0x76b0c8(0x152)+(_0x586edc['environment']||_0x1aa491['wllER'])['padEnd'](0x26)+_0x76b0c8(0x10e)+(_0x586edc[_0x76b0c8(0x160)]||_0x76b0c8(0x125))[_0x76b0c8(0x17a)](0x26)+_0x76b0c8(0x127)+String(_0x586edc[_0x76b0c8(0x178)]||0xbb8)['padEnd'](0x26)+_0x76b0c8(0x198)+(_0x586edc[_0x76b0c8(0x122)]||'Default')['padEnd'](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0x586edc['apiKey']?_0x76b0c8(0x170):_0x1aa491['cSRcY'])['padEnd'](0x26)+'\x20║\x0a╚═══════════════════════════════════════════════════════╝';console[_0x76b0c8(0x1ac)](_0x37f747);const _0x37015a={'event':_0x76b0c8(0x1a3),'project':_0x586edc['project'],'port':_0x586edc['port'],'config':_0x586edc[_0x76b0c8(0x122)],'apiKeyEnabled':!!_0x586edc['apiKey']};logger[_0x76b0c8(0x1b9)](_0x37015a),_0x1aa491[_0x76b0c8(0x12c)](writeToFileLog,{..._0x37015a,'level':_0x1aa491[_0x76b0c8(0x176)],'msg':_0x76b0c8(0x186)+_0x586edc['project']+_0x76b0c8(0x15c)+_0x586edc['port'],'time':new Date()[_0x76b0c8(0x171)]()},'info');},logServerReady=_0x517c69=>{const _0xce8764=a0_0x3096f5,_0x5d502c={'IaKpV':_0xce8764(0x1b9)},_0x441a8d={'event':_0xce8764(0x148),'port':_0x517c69['port'],'module':_0x517c69['module'],'healthCheck':_0x517c69['healthCheck'],'serviceInfo':_0x517c69['serviceInfo'],'baseUrl':_0x517c69[_0xce8764(0x12f)]},_0x63930b=_0xce8764(0x107)+_0x517c69['port'];logger['info'](_0x441a8d,_0x63930b),writeToFileLog({..._0x441a8d,'level':_0x5d502c['IaKpV'],'msg':_0x63930b,'time':new Date()['toISOString']()},_0x5d502c['IaKpV']),_0x517c69[_0xce8764(0x141)]&&logger['info']('\x20\x20Health:\x20'+_0x517c69['healthCheck']),_0x517c69['serviceInfo']&&logger[_0xce8764(0x1b9)]('\x20\x20Info:\x20\x20\x20'+_0x517c69[_0xce8764(0x1a1)]),_0x517c69['baseUrl']&&logger['info'](_0xce8764(0x164)+_0x517c69['baseUrl']);},logProjectLoaded=(_0x2b6fe8,_0x3c54be)=>{const _0x116be3=a0_0x3096f5,_0x4f9fef={'event':'project_loaded','project':_0x2b6fe8,'path':_0x3c54be},_0x38b196='[OK]\x20Project\x20loaded:\x20'+_0x2b6fe8;logger[_0x116be3(0x1b9)](_0x4f9fef,_0x38b196),writeToFileLog({..._0x4f9fef,'level':'info','msg':_0x38b196,'time':new Date()[_0x116be3(0x171)]()},'info');},logEndpointRegistered=(_0x31a4e1,_0x38be89)=>{const _0x5b1201=a0_0x3096f5,_0x5cd434={'eYXmH':_0x5b1201(0x150),'fBrGu':_0x5b1201(0x12d)},_0x3dd3cc={'event':_0x5cd434[_0x5b1201(0x108)],'endpoint':_0x31a4e1,'route':_0x38be89},_0x6c9787='\x20\x20→\x20'+_0x31a4e1+':\x20'+_0x38be89;logger[_0x5b1201(0x12d)](_0x3dd3cc,_0x6c9787),writeToFileLog({..._0x3dd3cc,'level':'debug','msg':_0x6c9787,'time':new Date()['toISOString']()},_0x5cd434[_0x5b1201(0x1c0)]);},logDatabaseConfig=_0x151a19=>{const _0x5d479d=a0_0x3096f5,_0x3f0ef0={'qBIMk':function(_0x50e5e3,_0x2d0381,_0xa69bf8){return _0x50e5e3(_0x2d0381,_0xa69bf8);},'FduMh':'debug'},_0x348019={'event':_0x5d479d(0x1c5),'host':_0x151a19['host'],'port':_0x151a19[_0x5d479d(0x178)],'database':_0x151a19[_0x5d479d(0x121)],'type':_0x151a19['type'],'user':_0x151a19[_0x5d479d(0x196)]},_0x565833='Database:\x20'+_0x151a19[_0x5d479d(0x149)]+_0x5d479d(0x19d)+_0x151a19[_0x5d479d(0x16d)]+':'+_0x151a19[_0x5d479d(0x178)]+'/'+_0x151a19['database'];logger['debug'](_0x348019,_0x565833),_0x3f0ef0[_0x5d479d(0x182)](writeToFileLog,{..._0x348019,'level':_0x5d479d(0x12d),'msg':_0x565833,'time':new Date()[_0x5d479d(0x171)]()},_0x3f0ef0['FduMh']);},logRequest=(_0x30e74c,_0x41f10b,_0x230b39)=>{const _0x37d731=a0_0x3096f5,_0x2c98aa={'leOeD':_0x37d731(0x137),'KcJcl':'info','MFnVw':function(_0x5dec24,_0x154daa){return _0x5dec24>=_0x154daa;},'RHRsy':'error','jTZjW':function(_0xb748a6,_0x2dabf0){return _0xb748a6>=_0x2dabf0;},'Sxpla':'warn'},_0x48d63b={'event':_0x2c98aa[_0x37d731(0x1cb)],'method':_0x30e74c[_0x37d731(0x14f)],'path':_0x30e74c['path'],'statusCode':_0x41f10b['statusCode'],'durationMs':_0x230b39,'ip':_0x30e74c['ip']},_0x10442b=_0x30e74c[_0x37d731(0x14f)]+'\x20'+_0x30e74c['path']+_0x37d731(0x1bc)+_0x41f10b['statusCode']+'\x20('+_0x230b39+'ms)';let _0x63ad16=_0x2c98aa['KcJcl'];if(_0x2c98aa['MFnVw'](_0x41f10b[_0x37d731(0x1b0)],0x1f4))_0x63ad16=_0x2c98aa[_0x37d731(0x155)],logger['error'](_0x48d63b,_0x10442b);else _0x2c98aa['jTZjW'](_0x41f10b[_0x37d731(0x1b0)],0x190)?(_0x63ad16=_0x2c98aa[_0x37d731(0x181)],logger['warn'](_0x48d63b,_0x10442b)):logger['info'](_0x48d63b,_0x10442b);writeToFileLog({..._0x48d63b,'level':_0x63ad16,'msg':_0x10442b,'time':new Date()['toISOString']()},_0x63ad16);},SENSITIVE_PARAM_PATTERNS=['password',a0_0x3096f5(0x1b3),a0_0x3096f5(0x1b8),'token','access_token','refresh_token','secret',a0_0x3096f5(0x1b5),'apikey','api_key',a0_0x3096f5(0x163),'credentials',a0_0x3096f5(0x199),'otp',a0_0x3096f5(0x13e),a0_0x3096f5(0x1bb)],redactSensitiveParams=(_0x58d113,_0x4d55fe)=>{const _0x70dc8=a0_0x3096f5,_0x2774b1={'qFvGx':_0x70dc8(0x17b),'cOyjc':_0x70dc8(0x175),'DmqGV':function(_0x38ad15,_0x296068){return _0x38ad15>_0x296068;},'qmIiA':function(_0x1cd5af,_0xe188d3){return _0x1cd5af===_0xe188d3;}};if(!_0x58d113||_0x2774b1['qmIiA'](_0x58d113['length'],0x0))return _0x58d113;const _0xb5e12e=_0x4d55fe['toLowerCase'](),_0x226061=_0xb5e12e['match'](/\(([^)]+)\)\s*values/i);let _0x4eeae6=[];_0x226061&&(_0x4eeae6=_0x226061[0x1][_0x70dc8(0x14d)](',')['map'](_0x574ef9=>_0x574ef9[_0x70dc8(0x194)]()[_0x70dc8(0x156)]()));const _0x4dc73f=_0xb5e12e['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x4dc73f){const _0xcbc4cd=_0x4dc73f[0x1],_0x1e4f08=_0xcbc4cd[_0x70dc8(0x162)](/(\w+)\s*=/g);_0x1e4f08&&(_0x4eeae6=_0x1e4f08['map'](_0x34741a=>_0x34741a['replace'](/\s*=/,'')['trim']()[_0x70dc8(0x156)]()));}return _0x58d113['map']((_0x2b9938,_0x37a737)=>{const _0x17ecb1=_0x70dc8;if(_0x4eeae6[_0x37a737]){const _0x40b3d1=_0x4eeae6[_0x37a737],_0x1793a4=SENSITIVE_PARAM_PATTERNS[_0x17ecb1(0x10d)](_0x1094bc=>_0x40b3d1['includes'](_0x1094bc));if(_0x1793a4)return _0x2774b1['qFvGx'];}if(typeof _0x2b9938===_0x2774b1['cOyjc']&&_0x2774b1['DmqGV'](_0x2b9938[_0x17ecb1(0x18a)],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/['test'](_0x2b9938)&&_0x2b9938['includes']('.'))return _0x17ecb1(0x133);if(/^[a-fA-F0-9]{32,}$/[_0x17ecb1(0x120)](_0x2b9938))return _0x17ecb1(0x1c8);}return _0x2b9938;});},parseQueryMetadata=_0x3f0756=>{const _0x43a7de=a0_0x3096f5,_0x147e49={'xVsyS':'UNKNOWN','JbWKR':_0x43a7de(0x15f),'RycEP':_0x43a7de(0x113),'QgmwO':_0x43a7de(0x13b),'sdJjl':_0x43a7de(0x1ab),'WcNMO':_0x43a7de(0x167),'jSaWv':'ROLLBACK','MOWbm':_0x43a7de(0x11c),'LreWo':_0x43a7de(0x1c2),'CebSx':_0x43a7de(0x147),'jKitH':'ALTER','tChfC':'DDL_DROP'},_0xbbacf4=_0x3f0756[_0x43a7de(0x194)](),_0x5d136e=_0xbbacf4[_0x43a7de(0x11a)]();let _0x83ee93=_0x147e49['xVsyS'],_0x25d5fa=null;if(_0x5d136e['startsWith']('SELECT')){_0x83ee93=_0x147e49[_0x43a7de(0x19b)];const _0x335dba=_0xbbacf4['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x25d5fa=_0x335dba?_0x335dba[0x1]:null;}else{if(_0x5d136e['startsWith'](_0x147e49['RycEP'])){_0x83ee93=_0x147e49[_0x43a7de(0x112)];const _0x545a8d=_0xbbacf4[_0x43a7de(0x162)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x25d5fa=_0x545a8d?_0x545a8d[0x1]:null;}else{if(_0x5d136e[_0x43a7de(0x1c6)](_0x43a7de(0x13b))){_0x83ee93=_0x147e49['QgmwO'];const _0x2f74a1=_0xbbacf4['match'](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x25d5fa=_0x2f74a1?_0x2f74a1[0x1]:null;}else{if(_0x5d136e['startsWith'](_0x147e49[_0x43a7de(0x15d)])){_0x83ee93=_0x147e49[_0x43a7de(0x15d)];const _0x1af80c=_0xbbacf4['match'](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0x25d5fa=_0x1af80c?_0x1af80c[0x1]:null;}else{if(_0x5d136e['startsWith'](_0x43a7de(0x146))||_0x5d136e[_0x43a7de(0x1c6)]('START\x20TRANSACTION'))_0x83ee93='TRANSACTION_BEGIN';else{if(_0x5d136e[_0x43a7de(0x1c6)](_0x147e49['WcNMO']))_0x83ee93=_0x43a7de(0x118);else{if(_0x5d136e['startsWith'](_0x147e49['jSaWv']))_0x83ee93=_0x147e49[_0x43a7de(0x18d)];else{if(_0x5d136e['startsWith'](_0x147e49['LreWo']))_0x83ee93=_0x147e49[_0x43a7de(0x16b)];else{if(_0x5d136e[_0x43a7de(0x1c6)](_0x147e49[_0x43a7de(0x188)]))_0x83ee93=_0x43a7de(0x161);else _0x5d136e['startsWith'](_0x43a7de(0x114))&&(_0x83ee93=_0x147e49[_0x43a7de(0x14a)]);}}}}}}}}return{'type':_0x83ee93,'table':_0x25d5fa};},startQueryTimer=()=>{const _0x27f74b=a0_0x3096f5,_0x4bd05a={'iLsnr':function(_0x50a37a,_0x176e95){return _0x50a37a(_0x176e95);},'naAgl':function(_0x45f96b,_0x22bba9){return _0x45f96b+_0x22bba9;},'DkytI':function(_0x2e0c67,_0x39d891){return _0x2e0c67/_0x39d891;}},_0x6c673a=process[_0x27f74b(0x106)]();return()=>{const _0x4ce5a5=_0x27f74b,[_0x33e83c,_0x1cd647]=process[_0x4ce5a5(0x106)](_0x6c673a);return _0x4bd05a[_0x4ce5a5(0x190)](parseFloat,_0x4bd05a[_0x4ce5a5(0x15a)](_0x33e83c*0x3e8,_0x4bd05a[_0x4ce5a5(0x10a)](_0x1cd647,0xf4240))['toFixed'](0x2));};},logQuery=(_0x483ea2,_0x46d34c=[],_0x126c65={})=>{const _0x36a089=a0_0x3096f5,_0x4e1b03={'iKpPQ':function(_0x48c77a,_0x4b6975){return _0x48c77a>_0x4b6975;},'UqpoX':function(_0x5589d9,_0x4522e4){return _0x5589d9!==_0x4522e4;},'biPix':function(_0x39c4ff,_0x1468c6){return _0x39c4ff>_0x1468c6;},'wplnq':'unknown','caLIL':_0x36a089(0x12d),'dTWrk':_0x36a089(0x126),'OiBnQ':_0x36a089(0x174),'ysPuD':function(_0x1223e8,_0x43faa9){return _0x1223e8===_0x43faa9;},'ibtnJ':_0x36a089(0x1b9)};if(!sqlLogEnabled){logger[_0x36a089(0x12d)]({'event':'db_query','query':_0x483ea2[_0x36a089(0x16e)](0x0,0xc8),'paramCount':_0x46d34c['length']},'DB\x20Query');return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType='postgresql'}=_0x126c65,{type:_0x122878,table:_0x5c61bd}=parseQueryMetadata(_0x483ea2),_0x4eb92f={'event':_0x36a089(0x11d),'queryType':_0x122878,'table':_0x5c61bd,'query':_0x483ea2,'paramCount':_0x46d34c[_0x36a089(0x18a)],'dbType':dbType};sqlLogParams&&_0x4e1b03[_0x36a089(0x17f)](_0x46d34c['length'],0x0)&&(_0x4eb92f['params']=redactSensitiveParams(_0x46d34c,_0x483ea2));_0x4e1b03[_0x36a089(0x18c)](duration,null)&&(_0x4eb92f['durationMs']=duration,_0x4eb92f[_0x36a089(0x17c)]=_0x4e1b03['biPix'](duration,sqlLogSlowThreshold));rowsAffected!==null&&(_0x4eb92f['rowsAffected']=rowsAffected);const _0x8a32a5=_0x5c61bd||_0x4e1b03[_0x36a089(0x1c9)];let _0x238950='['+_0x122878+']\x20'+_0x8a32a5;_0x4e1b03[_0x36a089(0x18c)](duration,null)&&(_0x238950+='\x20('+duration+'ms)');const _0xb19098=duration!==null&&_0x4e1b03['biPix'](duration,sqlLogSlowThreshold);let _0x1817be=_0x4e1b03['caLIL'];if(_0xb19098)_0x238950+=_0x4e1b03['dTWrk'],_0x1817be=_0x4e1b03['OiBnQ'],logger['warn'](_0x4eb92f,_0x238950);else _0x4e1b03[_0x36a089(0x13c)](sqlLogLevel,_0x4e1b03[_0x36a089(0x1ba)])?(_0x1817be='info',logger[_0x36a089(0x1b9)](_0x4eb92f,_0x238950)):logger['debug'](_0x4eb92f,_0x238950);writeToFileLog({..._0x4eb92f,'level':_0x1817be,'msg':_0x238950,'time':new Date()['toISOString']()},_0x1817be);},logTransaction=(_0x11c026,_0x5adf5c)=>{const _0xbb7ecc=a0_0x3096f5,_0x50f679={'ydcpj':_0xbb7ecc(0x179),'lnYcv':'debug'},_0x31ee5d={'event':_0x50f679[_0xbb7ecc(0x16a)],'status':_0x11c026,'queryCount':_0x5adf5c},_0x3a0486='Transaction\x20'+_0x11c026;logger[_0xbb7ecc(0x12d)](_0x31ee5d,_0x3a0486),writeToFileLog({..._0x31ee5d,'level':_0x50f679['lnYcv'],'msg':_0x3a0486,'time':new Date()['toISOString']()},_0x50f679['lnYcv']);},redactObject=_0xded90d=>{const _0x34bb0d=a0_0x3096f5,_0x1818e0={'AUFgn':'password','hCdaz':'passwd','ZGWbb':'token','yOdZl':'secret','BLhrd':_0x34bb0d(0x1aa),'FYPEh':'authorization','VQJNe':_0x34bb0d(0x199),'cDcfj':'private_key','fUhlV':'refresh_token','twbUp':'[REDACTED]','SEqDF':'object'};if(!_0xded90d||typeof _0xded90d!==_0x34bb0d(0x111))return _0xded90d;const _0x4517c2=[_0x1818e0['AUFgn'],_0x1818e0['hCdaz'],'pwd',_0x1818e0[_0x34bb0d(0x1a5)],_0x1818e0[_0x34bb0d(0x144)],_0x1818e0[_0x34bb0d(0x11b)],'api_key',_0x1818e0[_0x34bb0d(0x154)],'creditcard','credit_card',_0x34bb0d(0x11f),_0x34bb0d(0x1ae),_0x1818e0['VQJNe'],_0x1818e0[_0x34bb0d(0x138)],'privatekey',_0x1818e0[_0x34bb0d(0x193)],'access_token'],_0x5e5fe3=Array[_0x34bb0d(0x130)](_0xded90d)?[..._0xded90d]:{..._0xded90d};for(const _0x297264 of Object['keys'](_0x5e5fe3)){const _0x38305f=_0x297264[_0x34bb0d(0x156)]();if(_0x4517c2['some'](_0x268c1b=>_0x38305f[_0x34bb0d(0x1a4)](_0x268c1b)))_0x5e5fe3[_0x297264]=_0x1818e0['twbUp'];else typeof _0x5e5fe3[_0x297264]===_0x1818e0[_0x34bb0d(0x1bd)]&&_0x5e5fe3[_0x297264]!==null&&(_0x5e5fe3[_0x297264]=redactObject(_0x5e5fe3[_0x297264]));}return _0x5e5fe3;},logError=(_0xc92ee0,_0x5595dd={},_0x26833e=null)=>{const _0x329959=a0_0x3096f5,_0x4c109a={'bZyTX':_0x329959(0x15e),'vCRgr':'Error'},_0x236eab={'event':_0x4c109a[_0x329959(0x1a9)],'errorName':_0xc92ee0[_0x329959(0x1af)]||_0x4c109a[_0x329959(0x1c1)],'errorMessage':_0xc92ee0['message'],'errorCode':_0xc92ee0['code']||null,'stack':_0xc92ee0['stack'],..._0x5595dd},_0x20fb9=_0x26833e||'Error:\x20'+_0xc92ee0['message'];logger['error'](_0x236eab,_0x20fb9),writeToFileLog({..._0x236eab,'level':'error','msg':_0x20fb9,'time':new Date()[_0x329959(0x171)]()},_0x4c109a[_0x329959(0x1a9)]);},logFatalError=(_0x27bcf0,_0x35628f={},_0x419a85=null)=>{const _0x55aaa6=a0_0x3096f5,_0x5ea884={'olAOl':_0x55aaa6(0x1c7),'zfCZs':function(_0x44b327,_0x26c31a,_0xe60448){return _0x44b327(_0x26c31a,_0xe60448);},'EqgAq':'error'},_0x4134c5={'event':_0x55aaa6(0x129),'errorName':_0x27bcf0['name']||'Error','errorMessage':_0x27bcf0['message'],'errorCode':_0x27bcf0[_0x55aaa6(0x1b7)]||null,'stack':_0x27bcf0[_0x55aaa6(0x14b)],'severity':_0x5ea884['olAOl'],..._0x35628f},_0x4b9d42=_0x419a85||'FATAL:\x20'+_0x27bcf0['message'];logger[_0x55aaa6(0x1be)](_0x4134c5,_0x4b9d42),_0x5ea884['zfCZs'](writeToFileLog,{..._0x4134c5,'level':'fatal','msg':_0x4b9d42,'time':new Date()[_0x55aaa6(0x171)]()},_0x5ea884[_0x55aaa6(0x145)]);},logHttpError=(_0x2fe8e4,_0x4a7814,_0x63d2e8={})=>{const _0x37a8a2=a0_0x3096f5,_0x4a7f2e={'MzYpc':'http_error','CUNNG':_0x37a8a2(0x143),'rYWSA':'user-agent','lBHmX':'x-request-id','RULVU':function(_0x24c6dc,_0x625cb0){return _0x24c6dc(_0x625cb0);},'Vrjrv':function(_0x3ef969,_0x340e93,_0x5b689b){return _0x3ef969(_0x340e93,_0x5b689b);},'XXyaA':'error','FPYuC':'warn'},_0x1f3793={'event':_0x4a7f2e[_0x37a8a2(0x18b)],'errorName':_0x2fe8e4['name']||_0x4a7f2e[_0x37a8a2(0x123)],'errorMessage':_0x2fe8e4[_0x37a8a2(0x1c4)],'errorCode':_0x2fe8e4[_0x37a8a2(0x1b7)]||_0x2fe8e4['statusCode']||0x1f4,'stack':_0x2fe8e4[_0x37a8a2(0x14b)],'method':_0x4a7814?.[_0x37a8a2(0x14f)],'url':_0x4a7814?.[_0x37a8a2(0x139)]||_0x4a7814?.['originalUrl'],'path':_0x4a7814?.[_0x37a8a2(0x17d)],'ip':_0x4a7814?.['ip']||_0x4a7814?.['connection']?.[_0x37a8a2(0x115)],'userAgent':_0x4a7814?.['get']?.(_0x4a7f2e['rYWSA']),'requestId':_0x4a7814?.['id']||_0x4a7814?.['headers']?.[_0x4a7f2e[_0x37a8a2(0x180)]],'body':_0x4a7814?.[_0x37a8a2(0x1a8)]?_0x4a7f2e[_0x37a8a2(0x1c3)](redactObject,_0x4a7814[_0x37a8a2(0x1a8)]):undefined,'query':_0x4a7814?.['query'],..._0x63d2e8},_0x15d856=_0x2fe8e4[_0x37a8a2(0x1b0)]||_0x2fe8e4[_0x37a8a2(0x1a7)]||0x1f4,_0x21246a='HTTP\x20'+_0x15d856+':\x20'+_0x2fe8e4['message'];_0x15d856>=0x1f4?logger['error'](_0x1f3793,_0x21246a):logger[_0x37a8a2(0x174)](_0x1f3793,_0x21246a),_0x4a7f2e[_0x37a8a2(0x10b)](writeToFileLog,{..._0x1f3793,'level':_0x15d856>=0x1f4?_0x4a7f2e['XXyaA']:_0x4a7f2e[_0x37a8a2(0x1a0)],'msg':_0x21246a,'time':new Date()['toISOString']()},_0x15d856>=0x1f4?_0x4a7f2e[_0x37a8a2(0x124)]:'warn');},logUncaughtError=(_0x2c0918,_0x53d56e)=>{const _0x456df9=a0_0x3096f5,_0x5767a8={'yEnrQ':function(_0x10d449,_0x2d4292){return _0x10d449(_0x2d4292);},'AIguf':_0x456df9(0x1c7),'cdwaI':function(_0x458117,_0xc75cdb,_0x4a1b96){return _0x458117(_0xc75cdb,_0x4a1b96);},'FxbSm':_0x456df9(0x15e)},_0xcab78f={'event':_0x2c0918,'errorName':_0x53d56e?.['name']||'Error','errorMessage':_0x53d56e?.['message']||_0x5767a8['yEnrQ'](String,_0x53d56e),'errorCode':_0x53d56e?.['code']||null,'stack':_0x53d56e?.[_0x456df9(0x14b)],'severity':_0x5767a8['AIguf'],'processId':process[_0x456df9(0x13f)],'memoryUsage':process['memoryUsage'](),'uptime':process[_0x456df9(0x1b4)]()},_0x3c67f8='['+_0x2c0918['toUpperCase']()+']\x20'+(_0x53d56e?.['message']||_0x53d56e);logger[_0x456df9(0x1be)](_0xcab78f,_0x3c67f8),_0x5767a8['cdwaI'](writeToFileLog,{..._0xcab78f,'level':_0x456df9(0x1be),'msg':_0x3c67f8,'time':new Date()['toISOString']()},_0x5767a8[_0x456df9(0x11e)]);},setupGlobalErrorHandlers=()=>{const _0x59bf8c=a0_0x3096f5,_0x2d1b80={'OsJtn':function(_0x4c0f0e,_0x42ea58,_0x35143e){return _0x4c0f0e(_0x42ea58,_0x35143e);},'eMEHm':function(_0x1c3a95,_0x1ca2a3){return _0x1c3a95 instanceof _0x1ca2a3;},'NYTIm':function(_0x198059,_0x1a5f1f){return _0x198059(_0x1a5f1f);},'izneQ':_0x59bf8c(0x192),'dhYYb':'process_warning','uJrwL':'uncaughtException','pkFNx':_0x59bf8c(0x151),'ZWWww':'global_error_handlers_setup','UugAr':function(_0x546e34,_0x49fe3a,_0x18c3e0){return _0x546e34(_0x49fe3a,_0x18c3e0);},'VhRZD':'info'};process['on'](_0x2d1b80['uJrwL'],_0x3aca06=>{const _0x2058ac=_0x59bf8c;logUncaughtError(_0x2058ac(0x19c),_0x3aca06),_0x2d1b80['OsJtn'](setTimeout,()=>{const _0x4b9578=_0x2058ac;process[_0x4b9578(0x158)](0x1);},0x3e8);}),process['on'](_0x2d1b80[_0x59bf8c(0x1bf)],(_0x5df95f,_0xaa07ea)=>{const _0x1112d0=_0x59bf8c,_0x4b71b5=_0x2d1b80['eMEHm'](_0x5df95f,Error)?_0x5df95f:new Error(_0x2d1b80['NYTIm'](String,_0x5df95f));_0x2d1b80[_0x1112d0(0x191)](logUncaughtError,_0x2d1b80['izneQ'],_0x4b71b5);}),process['on'](_0x2d1b80[_0x59bf8c(0x165)],_0x4b8389=>{const _0x2626f1=_0x59bf8c;logger['warn']({'event':_0x2d1b80['dhYYb'],'name':_0x4b8389['name'],'message':_0x4b8389['message'],'stack':_0x4b8389['stack']},_0x2626f1(0x159)+_0x4b8389['message']);});const _0x46834c={'event':_0x2d1b80[_0x59bf8c(0x10f)]},_0x1a3a77=_0x59bf8c(0x10c);logger[_0x59bf8c(0x1b9)](_0x46834c,_0x1a3a77),_0x2d1b80['UugAr'](writeToFileLog,{..._0x46834c,'level':_0x59bf8c(0x1b9),'msg':_0x1a3a77,'time':new Date()[_0x59bf8c(0x171)]()},_0x2d1b80[_0x59bf8c(0x17e)]);},createErrorHandlerMiddleware=()=>{const _0x205a40={'Coaln':function(_0x26d837,_0x3d2f6c,_0x45e3af){return _0x26d837(_0x3d2f6c,_0x45e3af);},'pOQvP':function(_0x707909,_0x23d4fe){return _0x707909>=_0x23d4fe;}};return(_0x5d8be8,_0x19305f,_0x177a0b,_0x3bab63)=>{const _0x478e69=a0_0x261a;_0x205a40[_0x478e69(0x12b)](logHttpError,_0x5d8be8,_0x19305f);const _0x53f6da=_0x5d8be8['statusCode']||_0x5d8be8['status']||0x1f4;_0x177a0b['status'](_0x53f6da)[_0x478e69(0x16c)]({'success':![],'error':_0x205a40[_0x478e69(0x153)](_0x53f6da,0x1f4)?'Internal\x20server\x20error':_0x5d8be8['message'],'requestId':_0x19305f['id']||_0x19305f['headers']?.['x-request-id']||null});};};module[a0_0x3096f5(0x168)]={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
1
+ function a0_0x22ad(){const _0x473924=['CfvTzhG','u3nJq1C','rvnmuNy','AxnbCNjHEq','zxHPDa','z2v0','ChDK','D25rv0C','AgvHBhrOq2HLy2S','AM9PBG','zgjFDhjHBNnHy3rPB24','EeziuwG','yxbPA2v5','q1jjveLdquW','C3rHDhvZq29Kzq','mtmWBeHsCenx','wwXiEwy','y29UzMLNrMLSzq','A01hz1e','vvbeqvrf','thHZrhC','rMfPBgvKihrVignYzwf0zsbSB2CGzgLYzwn0B3j5ia','DurIA2C','zMf0ywW','q09ntuLu','suvMtLe','iokvKqRILzeGienVBMzPzYaGicaGidOG','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKokvLWO','AgvHzgvYCW','t0jTv1e','C29Tzq','DxjS','tLnvALa','ywnJzxnZx3rVA2vU','Ag9ZDa','DwHoA3O','wKXrCMe','u1fmx0Xpr19ftKfcteve','quvltxu','sw50zxjUywWGC2vYDMvYigvYCM9Y','icbizwfSDgG6ia','DhjPBq','C3rYAw5NAwz5','te9hx0rjuG','C3rKvgLTzuz1BMn0Aw9UCW','CgfZC3DVCMq','uxjRuKe','BwvZC2fNzq','CLLiEfm','nZyXmtzUre5HAvi','ChjPDMf0zv9RzxK','y2HPBgq','uwr6sNq','z2XVyMfSx2vYCM9Yx2HHBMrSzxjZx3nLDhvW','yxbWlMXVzW','ChjVAMvJDf9SB2fKzwq','zurmuhy','yMfZzvvYBa','tK9erv9ftLy','revmrvrf','zxjY','BwfW','Bwv0Ag9K','zhP2tvm','terutLG','rgvMyxvSDa','zxHPC3rZu3LUyW','yxfbEMK','AxnVvgLTzq','w1jfrefdvevexq','iokvKqRILzeGifbVCNqGicaGicaGidOG','Dhj1zq','ugLTufK','EMHgALG','Ahj0Aw1L','zxjYB3iUBg9N','C3rKu2vYAwfSAxPLCNm','CMvWzwf0','C2vYDMLJzuLUzM8','DgvZDa','u1LtoKHioK1noNnZ','zwnXzfy','rMfPBgvKihrVignYzwf0zsbSB2CGC3rYzwfTCZO','y29Kzq','C3rHy2S','AgTPyNa','qvbqx1zfuLnjt04','E21Zz30','CMvXlMHLywrLCNmUyxv0Ag9YAxPHDgLVBG','CMvMCMvZAf90B2TLBG','Bw9KDwXL','Dg9ju09tDhjPBMC','w09lxsbtzxj2zxiGCMvHzhKGB24GCg9YDca','zgvIDwC','Dw5Oyw5KBgvKuMvQzwn0Aw9U','y3jLzgL0x2nHCMq','CgfYyw1Z','rgf0ywjHC2u6ia','uvHJzKW','zw52','quXurvi','zu1xzMe','yMT5seS','thvbzxe','CgfKrw5K','lI9SB2DZlW','Bwf0y2G','CgLK','nJq0odm1Aujorvjv','te9hx1rpx0zjteu','CgLU','DffJAhe','zxHWB3j0CW','Cgf0Aa','BgvUz3rO','B2L0Awy','thzqCKS','ufvlsuu','Dg9Rzw4','tgTgs28','BwTKAxjtEw5J','Dw5RBM93BG','t2H6C3u','D2fYBMLUzW','odGYnteWrvvvBgXs','Dw5JyxvNAhrfEgnLChrPB24','tK9uiefdveLwrq','BMfTzq','y29UBMvJDgLVBG','zhvYyxrPB25nCW','ndy0ntuYyNnjuuDg','u0vmrunu','t2Piveq','B2jQzwn0','y3jLzgL0y2fYza','Cg9YDa','CgfZC3DK','zgf0ywjHC2u','zxjYB3i','u1rbuLqGvfjbtLnbq1rjt04','CKvdweK','yxbPx2TLEq','yMfltge','u1fmx0Xpr19tte9xx1riuKvtse9mra','zMXVB3i','CerPEKO','ndLdzhr3y3a','Dg9mB3DLCKnHC2u','vLbQAg8','rxjYB3i6ia','mtH5sgj2ww8','ChjVAMvJDa','D3jPDgu','D2fYBG','B3jPz2LUywXvCMW','rMLSzsbSB2DNAw5NigvUywjSzwq6ia','z2v0sgvHzgvYCW','uw5sBey','mZblq2Puwe4','DLLLtha','zMLSzv9SB2DNAw5Nx2vUywjSzwq','C3vIC3rYAw5N','zgjFCxvLCNK','odmYndq0DerNu0j6','mte3n3ruz010Ca','yM9KEq','Aw5JBhvKzxm','icbjBMzVoIaGia','reiGuxvLCNK','C3rHCNrZv2L0Aa','CMvZDgzVCMDL','Ae9gEu8','u2vYDMvYihn0yxj0Aw5NoIa','mZy5nZjPy2jlEuS','ndi2rwnOB3Ld','Aw5MBW','rermx0nsrufurq'];a0_0x22ad=function(){return _0x473924;};return a0_0x22ad();}function a0_0x3231(_0x289a0d,_0x32ca9e){_0x289a0d=_0x289a0d-0x1b0;const _0x22adfe=a0_0x22ad();let _0x3231cc=_0x22adfe[_0x289a0d];if(a0_0x3231['WicqHe']===undefined){var _0x4b12ba=function(_0x4fce99){const _0x1a2baf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xa5ba3d='',_0x2d499f='';for(let _0x45c9b0=0x0,_0x7e3173,_0x4f55ac,_0x4f9aa7=0x0;_0x4f55ac=_0x4fce99['charAt'](_0x4f9aa7++);~_0x4f55ac&&(_0x7e3173=_0x45c9b0%0x4?_0x7e3173*0x40+_0x4f55ac:_0x4f55ac,_0x45c9b0++%0x4)?_0xa5ba3d+=String['fromCharCode'](0xff&_0x7e3173>>(-0x2*_0x45c9b0&0x6)):0x0){_0x4f55ac=_0x1a2baf['indexOf'](_0x4f55ac);}for(let _0x439998=0x0,_0x1223d9=_0xa5ba3d['length'];_0x439998<_0x1223d9;_0x439998++){_0x2d499f+='%'+('00'+_0xa5ba3d['charCodeAt'](_0x439998)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d499f);};a0_0x3231['NFsNhs']=_0x4b12ba,a0_0x3231['gPHwDf']={},a0_0x3231['WicqHe']=!![];}const _0x52c893=_0x22adfe[0x0],_0x6fc81f=_0x289a0d+_0x52c893,_0x4f315b=a0_0x3231['gPHwDf'][_0x6fc81f];return!_0x4f315b?(_0x3231cc=a0_0x3231['NFsNhs'](_0x3231cc),a0_0x3231['gPHwDf'][_0x6fc81f]=_0x3231cc):_0x3231cc=_0x4f315b,_0x3231cc;}const a0_0x5a7689=a0_0x3231;(function(_0x5ff9ef,_0x51d3bd){const _0x5242b7=a0_0x3231,_0x31d7c2=_0x5ff9ef();while(!![]){try{const _0x5f1029=parseInt(_0x5242b7(0x1fa))/0x1*(parseInt(_0x5242b7(0x1e8))/0x2)+-parseInt(_0x5242b7(0x1b6))/0x3+-parseInt(_0x5242b7(0x1dd))/0x4+parseInt(_0x5242b7(0x257))/0x5*(-parseInt(_0x5242b7(0x1d0))/0x6)+-parseInt(_0x5242b7(0x1cc))/0x7*(-parseInt(_0x5242b7(0x1bc))/0x8)+-parseInt(_0x5242b7(0x1e7))/0x9*(parseInt(_0x5242b7(0x1d8))/0xa)+-parseInt(_0x5242b7(0x1de))/0xb*(-parseInt(_0x5242b7(0x21c))/0xc);if(_0x5f1029===_0x51d3bd)break;else _0x31d7c2['push'](_0x31d7c2['shift']());}catch(_0x29baf7){_0x31d7c2['push'](_0x31d7c2['shift']());}}}(a0_0x22ad,0x339a8));const pino=require('pino'),fs=require('fs'),path=require(a0_0x5a7689(0x25c));let logToFile=![],logDir='./logs',serviceName=a0_0x5a7689(0x1e4),sqlLogEnabled=![],sqlLogLevel=a0_0x5a7689(0x248),sqlLogParams=!![],sqlLogSlowThreshold=0x3e8,fileLoggingInitialized=![],appLogStream=null,errorLogStream=null;const prettyPrintOptions={'colorize':!![],'translateTime':a0_0x5a7689(0x23b),'ignore':'pid,hostname,service,version,env,event,module,port,config,apiKeyEnabled,path,workingDir,isPkg,isNodeScript,file,email,type,cors,logging,apiKey,count,endpoint,route','singleLine':![],'levelFirst':!![],'messageFormat':a0_0x5a7689(0x242),'customColors':'info:blue,warn:yellow,error:red,debug:gray','hideObject':!![]},isDevelopment=process['env'][a0_0x5a7689(0x225)]!=='production',logLevel=process[a0_0x5a7689(0x24e)]['LOG_LEVEL']||'info';let logger=pino({'level':logLevel,'transport':isDevelopment?{'target':'pino-pretty','options':prettyPrintOptions}:undefined,'base':{'service':'restforge','version':process['env'][a0_0x5a7689(0x241)]||'1.0.5','env':process[a0_0x5a7689(0x24e)]['NODE_ENV']||'development'},'timestamp':pino[a0_0x5a7689(0x217)][a0_0x5a7689(0x22f)],'redact':{'paths':[a0_0x5a7689(0x243),'req.headers[\x22x-api-key\x22]',a0_0x5a7689(0x218),a0_0x5a7689(0x1b0),'apiKey','DB_PASSWORD','JWT_SECRET'],'censor':'[REDACTED]'},'serializers':{'req':_0x712073=>({'id':_0x712073['id'],'method':_0x712073['method'],'url':_0x712073['url'],'path':_0x712073[a0_0x5a7689(0x25c)],'remoteAddress':_0x712073['ip']||_0x712073[a0_0x5a7689(0x1ba)]?.['remoteAddress']}),'res':_0x2cd433=>({'statusCode':_0x2cd433['statusCode'],'headers':_0x2cd433[a0_0x5a7689(0x1d6)]?.()}),'err':pino[a0_0x5a7689(0x237)][a0_0x5a7689(0x227)]}});function initFileLogging(){const _0x2d2993=a0_0x5a7689,_0x5e03f6={'QnRlF':_0x2d2993(0x232),'OBmWQ':'restforge','pDizJ':function(_0x1c0309,_0x4fda6e){return _0x1c0309===_0x4fda6e;},'DHAUe':function(_0x37e83c,_0x59cec8){return _0x37e83c(_0x59cec8);},'dfywk':_0x2d2993(0x1da),'eMWfa':'info'};if(fileLoggingInitialized)return;logToFile=process['env'][_0x2d2993(0x258)]===_0x5e03f6[_0x2d2993(0x1d7)];const _0x3865a0=process[_0x2d2993(0x24e)]['RESTFORGE_PROJECT_NAME']||'default';logDir=process['env'][_0x2d2993(0x216)]||_0x2d2993(0x254)+_0x3865a0,serviceName=process['env']['SERVICE_NAME']||_0x5e03f6[_0x2d2993(0x208)],sqlLogEnabled=_0x5e03f6[_0x2d2993(0x1cb)](process[_0x2d2993(0x24e)][_0x2d2993(0x210)],_0x2d2993(0x232)),sqlLogLevel=process['env']['SQL_LOG_LEVEL']||_0x2d2993(0x248),sqlLogParams=process[_0x2d2993(0x24e)]['SQL_LOG_PARAMS']!=='false',sqlLogSlowThreshold=_0x5e03f6['DHAUe'](parseInt,process[_0x2d2993(0x24e)][_0x2d2993(0x1c9)])||0x3e8;if(!logToFile){fileLoggingInitialized=!![];return;}const _0x458f1e=path['resolve'](process['cwd'](),logDir);try{!fs[_0x2d2993(0x22d)](_0x458f1e)&&fs[_0x2d2993(0x1b2)](_0x458f1e,{'recursive':!![]});}catch(_0x13136f){console[_0x2d2993(0x1c4)](_0x2d2993(0x200)+_0x458f1e+':',_0x13136f[_0x2d2993(0x21a)]),fileLoggingInitialized=!![];return;}const _0x2d0adc=path[_0x2d2993(0x1f4)](_0x458f1e,'app.log'),_0x1e3956=path['join'](_0x458f1e,_0x2d2993(0x236));try{appLogStream=fs['createWriteStream'](_0x2d0adc,{'flags':'a'}),errorLogStream=fs['createWriteStream'](_0x1e3956,{'flags':'a'}),fileLoggingInitialized=!![];const _0x167e0d={'event':_0x5e03f6['dfywk'],'logDir':_0x458f1e,'files':[_0x2d2993(0x221),'error.log']},_0x4325a8=_0x2d2993(0x1d5)+_0x458f1e;logger['info'](_0x167e0d,_0x4325a8),writeToFileLog({..._0x167e0d,'level':_0x5e03f6['eMWfa'],'msg':_0x4325a8,'time':new Date()[_0x2d2993(0x246)]()},_0x5e03f6[_0x2d2993(0x250)]);}catch(_0xc7d01b){console['error'](_0x2d2993(0x23d),_0xc7d01b[_0x2d2993(0x21a)]),fileLoggingInitialized=!![];}}function writeToFileLog(_0x495033,_0x4d2bee){const _0x19b362=a0_0x5a7689,_0x5b8b87={'anDCl':function(_0x392bde,_0x287669){return _0x392bde===_0x287669;},'aqAzi':'fatal'};if(!logToFile||!appLogStream)return;const _0x2d03e2={'service':serviceName,..._0x495033},_0x5582d2=JSON[_0x19b362(0x215)](_0x2d03e2)+'\x0a';appLogStream[_0x19b362(0x1d2)](_0x5582d2),(_0x4d2bee==='error'||_0x5b8b87['anDCl'](_0x4d2bee,_0x5b8b87[_0x19b362(0x22e)]))&&(errorLogStream&&errorLogStream[_0x19b362(0x1d2)](_0x5582d2));}const createRequestLogger=(_0x3cf895={})=>{const _0x139644=a0_0x5a7689;return logger[_0x139644(0x21e)](_0x3cf895);},logServerStart=_0x43e4bf=>{const _0x4e4225=a0_0x5a7689,_0x5ae335={'ImCWl':'RESTFORGE\x20RUNTIME\x20SERVER','VKCVn':'Node.js','LkFKo':'N/A','tssQr':function(_0x4820c0,_0x4fa2fc){return _0x4820c0(_0x4fa2fc);},'rDWgC':'ACTIVE','JeeTj':_0x4e4225(0x1b8),'PAemG':function(_0x5e53c1,_0x17ac6f,_0x4563d3){return _0x5e53c1(_0x17ac6f,_0x4563d3);}},_0xb44b0d=_0x5ae335['ImCWl'],_0x2dac1f=Math['max'](0x0,0x37-_0xb44b0d[_0x4e4225(0x25d)]),_0x26dc01=Math[_0x4e4225(0x1ca)](_0x2dac1f/0x2),_0xbb3bed=_0x2dac1f-_0x26dc01,_0x1138ec='║'+'\x20'['repeat'](_0x26dc01)+_0xb44b0d+'\x20'[_0x4e4225(0x238)](_0xbb3bed)+'║',_0x43c8d7=_0x4e4225(0x206)+_0x1138ec+'\x0a╠═══════════════════════════════════════════════════════╣\x0a║\x20\x20Environment\x20:\x20'+(_0x43e4bf['environment']||_0x5ae335['VKCVn'])[_0x4e4225(0x253)](0x26)+'\x20║\x0a║\x20\x20Project\x20\x20\x20\x20\x20:\x20'+(_0x43e4bf['project']||_0x5ae335[_0x4e4225(0x1b1)])[_0x4e4225(0x253)](0x26)+_0x4e4225(0x231)+_0x5ae335['tssQr'](String,_0x43e4bf[_0x4e4225(0x1c1)]||0xbb8)[_0x4e4225(0x253)](0x26)+_0x4e4225(0x205)+(_0x43e4bf[_0x4e4225(0x1fc)]||_0x4e4225(0x22c))[_0x4e4225(0x253)](0x26)+'\x20║\x0a║\x20\x20API\x20Key\x20\x20\x20\x20\x20:\x20'+(_0x43e4bf['apiKey']?_0x5ae335['rDWgC']:_0x5ae335['JeeTj'])[_0x4e4225(0x253)](0x26)+'\x20║\x0a╚═══════════════════════════════════════════════════════╝';console['log'](_0x43c8d7);const _0x529c81={'event':'server_starting','project':_0x43e4bf[_0x4e4225(0x1d1)],'port':_0x43e4bf['port'],'config':_0x43e4bf[_0x4e4225(0x1fc)],'apiKeyEnabled':!!_0x43e4bf['apiKey']};logger['info'](_0x529c81),_0x5ae335['PAemG'](writeToFileLog,{..._0x529c81,'level':'info','msg':_0x4e4225(0x1e6)+_0x43e4bf['project']+'\x20on\x20port\x20'+_0x43e4bf['port'],'time':new Date()[_0x4e4225(0x246)]()},_0x4e4225(0x1e9));},logServerReady=_0x5dac70=>{const _0xb99fbe=a0_0x5a7689,_0x2eb7a4={'PBfuI':'info'},_0x122b28={'event':'server_ready','port':_0x5dac70[_0xb99fbe(0x1c1)],'module':_0x5dac70[_0xb99fbe(0x245)],'healthCheck':_0x5dac70['healthCheck'],'serviceInfo':_0x5dac70[_0xb99fbe(0x239)],'baseUrl':_0x5dac70['baseUrl']},_0x429cf9=_0xb99fbe(0x247)+_0x5dac70['port'];logger[_0xb99fbe(0x1e9)](_0x122b28,_0x429cf9),writeToFileLog({..._0x122b28,'level':_0xb99fbe(0x1e9),'msg':_0x429cf9,'time':new Date()['toISOString']()},_0x2eb7a4['PBfuI']),_0x5dac70[_0xb99fbe(0x1f3)]&&logger['info'](_0xb99fbe(0x213)+_0x5dac70[_0xb99fbe(0x1f3)]),_0x5dac70[_0xb99fbe(0x239)]&&logger['info'](_0xb99fbe(0x1e1)+_0x5dac70[_0xb99fbe(0x239)]),_0x5dac70[_0xb99fbe(0x224)]&&logger['info']('\x20\x20URL:\x20\x20\x20\x20'+_0x5dac70['baseUrl']);},logProjectLoaded=(_0x22f004,_0x5e5529)=>{const _0x32485a=a0_0x5a7689,_0x1141cf={'GfJxa':'info'},_0xde20df={'event':_0x32485a(0x222),'project':_0x22f004,'path':_0x5e5529},_0x20ecde='[OK]\x20Project\x20loaded:\x20'+_0x22f004;logger[_0x32485a(0x1e9)](_0xde20df,_0x20ecde),writeToFileLog({..._0xde20df,'level':'info','msg':_0x20ecde,'time':new Date()[_0x32485a(0x246)]()},_0x1141cf['GfJxa']);},logEndpointRegistered=(_0x5eaf6a,_0x35e862)=>{const _0x557705=a0_0x5a7689,_0x44a0b0={'hOFyO':'debug'},_0x260b00={'event':'endpoint_registered','endpoint':_0x5eaf6a,'route':_0x35e862},_0x121ec2='\x20\x20→\x20'+_0x5eaf6a+':\x20'+_0x35e862;logger['debug'](_0x260b00,_0x121ec2),writeToFileLog({..._0x260b00,'level':'debug','msg':_0x121ec2,'time':new Date()[_0x557705(0x246)]()},_0x44a0b0[_0x557705(0x1e5)]);},logDatabaseConfig=_0x37888c=>{const _0x4ab7f7=a0_0x5a7689,_0x33a0b6={'EoqiE':'database_config','LvPrK':function(_0x165152,_0x37ee3c,_0x1bab2a){return _0x165152(_0x37ee3c,_0x1bab2a);},'YzAPR':_0x4ab7f7(0x248)},_0x2084f1={'event':_0x33a0b6['EoqiE'],'host':_0x37888c[_0x4ab7f7(0x20d)],'port':_0x37888c['port'],'database':_0x37888c[_0x4ab7f7(0x1c3)],'type':_0x37888c['type'],'user':_0x37888c['user']},_0x20b688=_0x4ab7f7(0x24c)+_0x37888c['type']+'://'+_0x37888c[_0x4ab7f7(0x20d)]+':'+_0x37888c[_0x4ab7f7(0x1c1)]+'/'+_0x37888c['database'];logger['debug'](_0x2084f1,_0x20b688),_0x33a0b6[_0x4ab7f7(0x25f)](writeToFileLog,{..._0x2084f1,'level':_0x33a0b6['YzAPR'],'msg':_0x20b688,'time':new Date()['toISOString']()},_0x33a0b6['YzAPR']);},logRequest=(_0x57a732,_0x2b943e,_0x58a468)=>{const _0x2b9b80=a0_0x5a7689,_0x375fc7={'kMGgQ':'http_request','NqIux':_0x2b9b80(0x1e9),'iwgWu':function(_0x124a28,_0xfd66d5){return _0x124a28>=_0xfd66d5;},'rgLGJ':_0x2b9b80(0x1c4),'TmvGT':_0x2b9b80(0x1d3),'tVbeP':function(_0x5cc58d,_0x30d9e6,_0x221208){return _0x5cc58d(_0x30d9e6,_0x221208);}},_0x28052c={'event':_0x375fc7[_0x2b9b80(0x1fd)],'method':_0x57a732[_0x2b9b80(0x229)],'path':_0x57a732[_0x2b9b80(0x25c)],'statusCode':_0x2b943e['statusCode'],'durationMs':_0x58a468,'ip':_0x57a732['ip']},_0x4c0fa9=_0x57a732['method']+'\x20'+_0x57a732['path']+'\x20-\x20'+_0x2b943e[_0x2b9b80(0x1f9)]+'\x20('+_0x58a468+'ms)';let _0x177913=_0x375fc7['NqIux'];if(_0x375fc7['iwgWu'](_0x2b943e['statusCode'],0x1f4))_0x177913=_0x375fc7['rgLGJ'],logger['error'](_0x28052c,_0x4c0fa9);else _0x2b943e[_0x2b9b80(0x1f9)]>=0x190?(_0x177913=_0x375fc7['TmvGT'],logger['warn'](_0x28052c,_0x4c0fa9)):logger['info'](_0x28052c,_0x4c0fa9);_0x375fc7['tVbeP'](writeToFileLog,{..._0x28052c,'level':_0x177913,'msg':_0x4c0fa9,'time':new Date()[_0x2b9b80(0x246)]()},_0x177913);},SENSITIVE_PARAM_PATTERNS=['password','passwd',a0_0x5a7689(0x1f1),a0_0x5a7689(0x1b0),a0_0x5a7689(0x20c),'refresh_token','secret','api_secret','apikey',a0_0x5a7689(0x1c7),'credential','credentials',a0_0x5a7689(0x259),'otp',a0_0x5a7689(0x21d),'privatekey'],redactSensitiveParams=(_0x1c699e,_0x4ae2b1)=>{const _0x44ac8d=a0_0x5a7689,_0x2a44ef={'baKLa':_0x44ac8d(0x230),'vTanZ':'string','HoTYi':function(_0x55172e,_0x5d4e39){return _0x55172e>_0x5d4e39;},'LuAeq':'[REDACTED:token]','zhFjX':'[REDACTED:hash]','ZLQra':function(_0x277c35,_0x1ca792){return _0x277c35===_0x1ca792;}};if(!_0x1c699e||_0x2a44ef[_0x44ac8d(0x20f)](_0x1c699e[_0x44ac8d(0x25d)],0x0))return _0x1c699e;const _0x565a65=_0x4ae2b1['toLowerCase'](),_0x485250=_0x565a65['match'](/\(([^)]+)\)\s*values/i);let _0x3ea053=[];_0x485250&&(_0x3ea053=_0x485250[0x1]['split'](',')['map'](_0x553f20=>_0x553f20[_0x44ac8d(0x214)]()[_0x44ac8d(0x1cd)]()));const _0x5a8a03=_0x565a65['match'](/set\s+(.+?)(?:\s+where|$)/i);if(_0x5a8a03){const _0x5ba867=_0x5a8a03[0x1],_0x2706f5=_0x5ba867['match'](/(\w+)\s*=/g);_0x2706f5&&(_0x3ea053=_0x2706f5['map'](_0x252ead=>_0x252ead['replace'](/\s*=/,'')['trim']()['toLowerCase']()));}return _0x1c699e[_0x44ac8d(0x228)]((_0x5a4a13,_0x317c36)=>{const _0x22d08c=_0x44ac8d;if(_0x3ea053[_0x317c36]){const _0x19ba31=_0x3ea053[_0x317c36],_0x51286f=SENSITIVE_PARAM_PATTERNS[_0x22d08c(0x209)](_0x107097=>_0x19ba31['includes'](_0x107097));if(_0x51286f)return _0x2a44ef[_0x22d08c(0x1c8)];}if(typeof _0x5a4a13===_0x2a44ef['vTanZ']&&_0x2a44ef['HoTYi'](_0x5a4a13['length'],0x20)){if(/^[a-zA-Z0-9+/=_.-]+$/[_0x22d08c(0x23a)](_0x5a4a13)&&_0x5a4a13[_0x22d08c(0x1e0)]('.'))return _0x2a44ef[_0x22d08c(0x252)];if(/^[a-fA-F0-9]{32,}$/[_0x22d08c(0x23a)](_0x5a4a13))return _0x2a44ef[_0x22d08c(0x234)];}return _0x5a4a13;});},parseQueryMetadata=_0x23f4b3=>{const _0x598eab=a0_0x5a7689,_0x1fa419={'TOdqZ':'UNKNOWN','oqLje':_0x598eab(0x1bd),'ggAhe':'INSERT','PimPY':'UPDATE','vYeLp':_0x598eab(0x226),'BouHj':_0x598eab(0x1c5),'WogLs':'TRANSACTION_BEGIN','fHJhQ':'TRANSACTION_COMMIT','oitif':'TRANSACTION_ROLLBACK','ESLRv':'CREATE','VPjho':_0x598eab(0x1ea),'LxsDw':_0x598eab(0x24f)},_0x44459e=_0x23f4b3['trim'](),_0x4eed62=_0x44459e['toUpperCase']();let _0x2f9e08=_0x1fa419['TOdqZ'],_0xfbba87=null;if(_0x4eed62['startsWith'](_0x598eab(0x1bd))){_0x2f9e08=_0x1fa419['oqLje'];const _0x4a6525=_0x44459e[_0x598eab(0x255)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xfbba87=_0x4a6525?_0x4a6525[0x1]:null;}else{if(_0x4eed62['startsWith']('INSERT')){_0x2f9e08=_0x1fa419['ggAhe'];const _0x33ee5a=_0x44459e[_0x598eab(0x255)](/INTO\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xfbba87=_0x33ee5a?_0x33ee5a[0x1]:null;}else{if(_0x4eed62['startsWith'](_0x1fa419[_0x598eab(0x233)])){_0x2f9e08=_0x598eab(0x1fe);const _0x876e62=_0x44459e[_0x598eab(0x255)](/UPDATE\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xfbba87=_0x876e62?_0x876e62[0x1]:null;}else{if(_0x4eed62[_0x598eab(0x1e3)](_0x1fa419[_0x598eab(0x1d9)])){_0x2f9e08=_0x1fa419[_0x598eab(0x1d9)];const _0xb0da00=_0x44459e[_0x598eab(0x255)](/FROM\s+["']?([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)?)["']?/i);_0xfbba87=_0xb0da00?_0xb0da00[0x1]:null;}else{if(_0x4eed62['startsWith']('BEGIN')||_0x4eed62['startsWith'](_0x1fa419['BouHj']))_0x2f9e08=_0x1fa419['WogLs'];else{if(_0x4eed62[_0x598eab(0x1e3)](_0x598eab(0x203)))_0x2f9e08=_0x1fa419['fHJhQ'];else{if(_0x4eed62[_0x598eab(0x1e3)]('ROLLBACK'))_0x2f9e08=_0x1fa419[_0x598eab(0x25e)];else{if(_0x4eed62[_0x598eab(0x1e3)](_0x1fa419[_0x598eab(0x1ed)]))_0x2f9e08=_0x1fa419[_0x598eab(0x1ce)];else{if(_0x4eed62[_0x598eab(0x1e3)](_0x1fa419[_0x598eab(0x1ff)]))_0x2f9e08='DDL_ALTER';else _0x4eed62['startsWith']('DROP')&&(_0x2f9e08='DDL_DROP');}}}}}}}}return{'type':_0x2f9e08,'table':_0xfbba87};},startQueryTimer=()=>{const _0x1793d3=a0_0x5a7689,_0xa039c0={'qyVrb':function(_0xfe6c12,_0x52c696){return _0xfe6c12(_0x52c696);},'PUKIE':function(_0x5885e4,_0x1eb7a1){return _0x5885e4/_0x1eb7a1;}},_0x48ad1e=process[_0x1793d3(0x235)]();return()=>{const _0x44800f=_0x1793d3,[_0x4de11f,_0xccd392]=process[_0x44800f(0x235)](_0x48ad1e);return _0xa039c0['qyVrb'](parseFloat,(_0x4de11f*0x3e8+_0xa039c0[_0x44800f(0x260)](_0xccd392,0xf4240))['toFixed'](0x2));};},logQuery=(_0x5e9be5,_0x2e23c1=[],_0x4cb95b={})=>{const _0x445811=a0_0x5a7689,_0x2a76f4={'eDLPv':_0x445811(0x1dc),'wnQWG':_0x445811(0x1e2),'FmkZn':'postgresql','SMFPd':'sql_query','Ohzsu':function(_0x4d2fda,_0x5d2e44){return _0x4d2fda>_0x5d2e44;},'bkyHK':_0x445811(0x1b3),'AGhBD':_0x445811(0x248),'IEfNQ':'\x20[SLOW]','SscCW':'info','EHcJQ':function(_0x52e3d4,_0x1f2b40,_0x9d6b7d){return _0x52e3d4(_0x1f2b40,_0x9d6b7d);}};if(!sqlLogEnabled){logger[_0x445811(0x248)]({'event':_0x2a76f4[_0x445811(0x223)],'query':_0x5e9be5[_0x445811(0x1db)](0x0,0xc8),'paramCount':_0x2e23c1['length']},_0x2a76f4[_0x445811(0x1f2)]);return;}const {duration:duration=null,rowsAffected:rowsAffected=null,dbType:dbType=_0x2a76f4['FmkZn']}=_0x4cb95b,{type:_0x2d215c,table:_0x54d43f}=parseQueryMetadata(_0x5e9be5),_0x27d8c5={'event':_0x2a76f4['SMFPd'],'queryType':_0x2d215c,'table':_0x54d43f,'query':_0x5e9be5,'paramCount':_0x2e23c1[_0x445811(0x25d)],'dbType':dbType};sqlLogParams&&_0x2a76f4[_0x445811(0x1b4)](_0x2e23c1['length'],0x0)&&(_0x27d8c5[_0x445811(0x24b)]=redactSensitiveParams(_0x2e23c1,_0x5e9be5));duration!==null&&(_0x27d8c5[_0x445811(0x1bb)]=duration,_0x27d8c5['isSlow']=_0x2a76f4[_0x445811(0x1b4)](duration,sqlLogSlowThreshold));rowsAffected!==null&&(_0x27d8c5['rowsAffected']=rowsAffected);const _0x1b0bfc=_0x54d43f||_0x2a76f4[_0x445811(0x251)];let _0x5a1fcf='['+_0x2d215c+']\x20'+_0x1b0bfc;duration!==null&&(_0x5a1fcf+='\x20('+duration+'ms)');const _0x155f91=duration!==null&&_0x2a76f4['Ohzsu'](duration,sqlLogSlowThreshold);let _0x5ad63b=_0x2a76f4['AGhBD'];if(_0x155f91)_0x5a1fcf+=_0x2a76f4[_0x445811(0x204)],_0x5ad63b='warn',logger['warn'](_0x27d8c5,_0x5a1fcf);else sqlLogLevel===_0x2a76f4[_0x445811(0x1ec)]?(_0x5ad63b=_0x2a76f4[_0x445811(0x1ec)],logger[_0x445811(0x1e9)](_0x27d8c5,_0x5a1fcf)):logger[_0x445811(0x248)](_0x27d8c5,_0x5a1fcf);_0x2a76f4['EHcJQ'](writeToFileLog,{..._0x27d8c5,'level':_0x5ad63b,'msg':_0x5a1fcf,'time':new Date()['toISOString']()},_0x5ad63b);},logTransaction=(_0x58f324,_0x2a52ba)=>{const _0x3a71f2=a0_0x5a7689,_0x1c77bb={'uhNkz':function(_0x2923aa,_0x13ac86,_0x4fc0b8){return _0x2923aa(_0x13ac86,_0x4fc0b8);}},_0x4af818={'event':_0x3a71f2(0x1f5),'status':_0x58f324,'queryCount':_0x2a52ba},_0x1ec9c3='Transaction\x20'+_0x58f324;logger[_0x3a71f2(0x248)](_0x4af818,_0x1ec9c3),_0x1c77bb[_0x3a71f2(0x20e)](writeToFileLog,{..._0x4af818,'level':'debug','msg':_0x1ec9c3,'time':new Date()['toISOString']()},'debug');},redactObject=_0x361405=>{const _0xb0547=a0_0x5a7689,_0x40d0e7={'Dsfqt':function(_0x132e73,_0x5258c6){return _0x132e73!==_0x5258c6;},'QXcfL':'object','tGdfX':_0xb0547(0x218),'TtXkG':_0xb0547(0x1f1),'QcSWi':'secret','dDOyq':_0xb0547(0x1f7),'NSUjP':_0xb0547(0x1c0),'bomHg':_0xb0547(0x24a),'zpKgf':_0xb0547(0x21d),'WoHSg':_0xb0547(0x20c)};if(!_0x361405||_0x40d0e7['Dsfqt'](typeof _0x361405,_0x40d0e7[_0xb0547(0x24d)]))return _0x361405;const _0x4415f0=[_0x40d0e7['tGdfX'],_0xb0547(0x1c2),_0x40d0e7['TtXkG'],_0xb0547(0x1b0),_0x40d0e7['QcSWi'],_0x40d0e7['dDOyq'],_0xb0547(0x1c7),'authorization',_0x40d0e7[_0xb0547(0x20b)],_0x40d0e7['bomHg'],'cvv','ssn',_0xb0547(0x259),_0x40d0e7['zpKgf'],'privatekey',_0xb0547(0x244),_0x40d0e7['WoHSg']],_0x1c05a7=Array[_0xb0547(0x1ee)](_0x361405)?[..._0x361405]:{..._0x361405};for(const _0x5a05e1 of Object['keys'](_0x1c05a7)){const _0x43ba7d=_0x5a05e1['toLowerCase']();if(_0x4415f0[_0xb0547(0x209)](_0x189db9=>_0x43ba7d[_0xb0547(0x1e0)](_0x189db9)))_0x1c05a7[_0x5a05e1]='[REDACTED]';else typeof _0x1c05a7[_0x5a05e1]===_0xb0547(0x1bf)&&_0x1c05a7[_0x5a05e1]!==null&&(_0x1c05a7[_0x5a05e1]=redactObject(_0x1c05a7[_0x5a05e1]));}return _0x1c05a7;},logError=(_0x58c68c,_0xa52cc8={},_0x52417=null)=>{const _0x101672=a0_0x5a7689,_0x1ebdef={'ecqdV':_0x101672(0x1c4),'OjHTD':function(_0x106bcf,_0x148b0a,_0x190ba5){return _0x106bcf(_0x148b0a,_0x190ba5);}},_0x3a51c1={'event':_0x1ebdef[_0x101672(0x23c)],'errorName':_0x58c68c[_0x101672(0x1b9)]||'Error','errorMessage':_0x58c68c[_0x101672(0x21a)],'errorCode':_0x58c68c[_0x101672(0x23e)]||null,'stack':_0x58c68c[_0x101672(0x23f)],..._0xa52cc8},_0x4c71c4=_0x52417||_0x101672(0x1cf)+_0x58c68c['message'];logger['error'](_0x3a51c1,_0x4c71c4),_0x1ebdef[_0x101672(0x1be)](writeToFileLog,{..._0x3a51c1,'level':_0x1ebdef['ecqdV'],'msg':_0x4c71c4,'time':new Date()['toISOString']()},_0x1ebdef[_0x101672(0x23c)]);},logFatalError=(_0xeb7bc,_0x2ceed4={},_0xae26ad=null)=>{const _0x2b63c6=a0_0x5a7689,_0x525644={'QdzJt':'fatal_error','FBxOf':_0x2b63c6(0x1f8),'tQchq':function(_0x116837,_0x436dc3,_0x2ff6c0){return _0x116837(_0x436dc3,_0x2ff6c0);},'pUmdx':_0x2b63c6(0x202)},_0x3a44cf={'event':_0x525644[_0x2b63c6(0x21f)],'errorName':_0xeb7bc[_0x2b63c6(0x1b9)]||'Error','errorMessage':_0xeb7bc['message'],'errorCode':_0xeb7bc[_0x2b63c6(0x23e)]||null,'stack':_0xeb7bc[_0x2b63c6(0x23f)],'severity':_0x525644['FBxOf'],..._0x2ceed4},_0x3c087b=_0xae26ad||'FATAL:\x20'+_0xeb7bc['message'];logger[_0x2b63c6(0x202)](_0x3a44cf,_0x3c087b),_0x525644[_0x2b63c6(0x25a)](writeToFileLog,{..._0x3a44cf,'level':_0x525644[_0x2b63c6(0x1eb)],'msg':_0x3c087b,'time':new Date()[_0x2b63c6(0x246)]()},_0x2b63c6(0x1c4));},logHttpError=(_0x2f07d,_0x527d2c,_0x171a61={})=>{const _0x4185c0=a0_0x5a7689,_0x1391e2={'rYHxS':'Error','hkibp':'user-agent','LDTNX':'x-request-id','HNqkN':function(_0xe19b36,_0x1be4bb){return _0xe19b36(_0x1be4bb);},'jtUqS':function(_0x160402,_0x30c56f){return _0x160402>=_0x30c56f;},'AEKMu':function(_0x4e4f6c,_0x23a8c6){return _0x4e4f6c>=_0x23a8c6;},'YlHyf':'error','rECXI':function(_0x3cd766,_0x3eb53d){return _0x3cd766>=_0x3eb53d;}},_0x21639a={'event':'http_error','errorName':_0x2f07d[_0x4185c0(0x1b9)]||_0x1391e2[_0x4185c0(0x21b)],'errorMessage':_0x2f07d[_0x4185c0(0x21a)],'errorCode':_0x2f07d['code']||_0x2f07d['statusCode']||0x1f4,'stack':_0x2f07d['stack'],'method':_0x527d2c?.['method'],'url':_0x527d2c?.[_0x4185c0(0x20a)]||_0x527d2c?.[_0x4185c0(0x1d4)],'path':_0x527d2c?.['path'],'ip':_0x527d2c?.['ip']||_0x527d2c?.['connection']?.['remoteAddress'],'userAgent':_0x527d2c?.[_0x4185c0(0x1f0)]?.(_0x1391e2[_0x4185c0(0x240)]),'requestId':_0x527d2c?.['id']||_0x527d2c?.['headers']?.[_0x1391e2[_0x4185c0(0x22b)]],'body':_0x527d2c?.['body']?_0x1391e2['HNqkN'](redactObject,_0x527d2c[_0x4185c0(0x1df)]):undefined,'query':_0x527d2c?.['query'],..._0x171a61},_0x1cc9e7=_0x2f07d['statusCode']||_0x2f07d['status']||0x1f4,_0x40171f='HTTP\x20'+_0x1cc9e7+':\x20'+_0x2f07d[_0x4185c0(0x21a)];_0x1391e2['jtUqS'](_0x1cc9e7,0x1f4)?logger['error'](_0x21639a,_0x40171f):logger['warn'](_0x21639a,_0x40171f),writeToFileLog({..._0x21639a,'level':_0x1391e2[_0x4185c0(0x211)](_0x1cc9e7,0x1f4)?_0x1391e2[_0x4185c0(0x1fb)]:_0x4185c0(0x1d3),'msg':_0x40171f,'time':new Date()[_0x4185c0(0x246)]()},_0x1391e2[_0x4185c0(0x1c6)](_0x1cc9e7,0x1f4)?'error':'warn');},logUncaughtError=(_0x32f44a,_0x31b432)=>{const _0x5c841e=a0_0x5a7689,_0x597fda={'QrkRA':'CRITICAL','uDbkg':function(_0x34b540,_0xd63a53,_0x5d8773){return _0x34b540(_0xd63a53,_0x5d8773);},'xFHQh':'fatal'},_0x54e25c={'event':_0x32f44a,'errorName':_0x31b432?.['name']||'Error','errorMessage':_0x31b432?.[_0x5c841e(0x21a)]||String(_0x31b432),'errorCode':_0x31b432?.['code']||null,'stack':_0x31b432?.['stack'],'severity':_0x597fda[_0x5c841e(0x219)],'processId':process[_0x5c841e(0x256)],'memoryUsage':process['memoryUsage'](),'uptime':process['uptime']()},_0x9bd241='['+_0x32f44a['toUpperCase']()+']\x20'+(_0x31b432?.[_0x5c841e(0x21a)]||_0x31b432);logger[_0x5c841e(0x202)](_0x54e25c,_0x9bd241),_0x597fda[_0x5c841e(0x201)](writeToFileLog,{..._0x54e25c,'level':_0x597fda[_0x5c841e(0x1f6)],'msg':_0x9bd241,'time':new Date()['toISOString']()},'error');},setupGlobalErrorHandlers=()=>{const _0x4de3c8=a0_0x5a7689,_0x1a9f75={'QOKEK':'uncaughtException','bpIcN':function(_0x309dea,_0x192eff){return _0x309dea instanceof _0x192eff;},'GOxYf':'unhandledRejection','exKut':_0x4de3c8(0x1b5),'dzvMS':'Global\x20error\x20handlers\x20initialized','RsHzi':function(_0x336136,_0x490916,_0x88be86){return _0x336136(_0x490916,_0x88be86);},'LiCdH':'info'};process['on'](_0x4de3c8(0x1b7),_0x144d8a=>{logUncaughtError(_0x1a9f75['QOKEK'],_0x144d8a),setTimeout(()=>{const _0x469c59=a0_0x3231;process[_0x469c59(0x1ef)](0x1);},0x3e8);}),process['on'](_0x1a9f75['GOxYf'],(_0x49867f,_0x4e3488)=>{const _0x2627e0=_0x4de3c8,_0x4b9dad=_0x1a9f75['bpIcN'](_0x49867f,Error)?_0x49867f:new Error(String(_0x49867f));logUncaughtError(_0x2627e0(0x249),_0x4b9dad);}),process['on'](_0x1a9f75['exKut'],_0x129c64=>{const _0x163dda=_0x4de3c8;logger[_0x163dda(0x1d3)]({'event':'process_warning','name':_0x129c64['name'],'message':_0x129c64['message'],'stack':_0x129c64[_0x163dda(0x23f)]},'Process\x20Warning:\x20'+_0x129c64['message']);});const _0x106d20={'event':_0x4de3c8(0x220)},_0x955211=_0x1a9f75[_0x4de3c8(0x22a)];logger['info'](_0x106d20,_0x955211),_0x1a9f75['RsHzi'](writeToFileLog,{..._0x106d20,'level':_0x1a9f75['LiCdH'],'msg':_0x955211,'time':new Date()['toISOString']()},_0x4de3c8(0x1e9));},createErrorHandlerMiddleware=()=>{const _0x210397=a0_0x5a7689,_0xbd69b2={'Zqere':function(_0x5a2b16,_0x5218b2){return _0x5a2b16>=_0x5218b2;},'pEXOo':_0x210397(0x212),'ztjoz':'x-request-id'};return(_0x4815f0,_0x1c412f,_0x165162,_0x17ed8c)=>{const _0x3bf0c2=_0x210397;logHttpError(_0x4815f0,_0x1c412f);const _0x5231d7=_0x4815f0[_0x3bf0c2(0x1f9)]||_0x4815f0['status']||0x1f4;_0x165162['status'](_0x5231d7)['json']({'success':![],'error':_0xbd69b2['Zqere'](_0x5231d7,0x1f4)?_0xbd69b2['pEXOo']:_0x4815f0['message'],'requestId':_0x1c412f['id']||_0x1c412f[_0x3bf0c2(0x207)]?.[_0xbd69b2['ztjoz']]||null});};};module[a0_0x5a7689(0x25b)]={'logger':logger,'createRequestLogger':createRequestLogger,'logServerStart':logServerStart,'logServerReady':logServerReady,'logProjectLoaded':logProjectLoaded,'logEndpointRegistered':logEndpointRegistered,'logDatabaseConfig':logDatabaseConfig,'logRequest':logRequest,'logQuery':logQuery,'logTransaction':logTransaction,'startQueryTimer':startQueryTimer,'parseQueryMetadata':parseQueryMetadata,'redactSensitiveParams':redactSensitiveParams,'initFileLogging':initFileLogging,'logError':logError,'logFatalError':logFatalError,'logHttpError':logHttpError,'logUncaughtError':logUncaughtError,'setupGlobalErrorHandlers':setupGlobalErrorHandlers,'createErrorHandlerMiddleware':createErrorHandlerMiddleware,'redactObject':redactObject,'SQL_LOG_CONFIG':{'enabled':sqlLogEnabled,'level':sqlLogLevel,'logParams':sqlLogParams,'slowThreshold':sqlLogSlowThreshold},'FILE_LOG_CONFIG':{'enabled':logToFile,'directory':logDir,'serviceName':serviceName}};
@@ -1 +1 @@
1
- const a0_0x398dd7=a0_0x2d54;(function(_0x47650f,_0x592fa1){const _0x10f363=a0_0x2d54,_0x442617=_0x47650f();while(!![]){try{const _0xba9a99=parseInt(_0x10f363(0x123))/0x1*(-parseInt(_0x10f363(0x12e))/0x2)+-parseInt(_0x10f363(0x122))/0x3+-parseInt(_0x10f363(0x134))/0x4+-parseInt(_0x10f363(0x13a))/0x5*(-parseInt(_0x10f363(0x11e))/0x6)+parseInt(_0x10f363(0x120))/0x7*(parseInt(_0x10f363(0x137))/0x8)+parseInt(_0x10f363(0x145))/0x9*(-parseInt(_0x10f363(0x135))/0xa)+parseInt(_0x10f363(0x12f))/0xb;if(_0xba9a99===_0x592fa1)break;else _0x442617['push'](_0x442617['shift']());}catch(_0x524fcf){_0x442617['push'](_0x442617['shift']());}}}(a0_0x480c,0x6042c));function a0_0x480c(){const _0x152628=['BwfW','ywrK','Aw5MBW','zfzOrKi','mZa5mte0q0nRsMzZ','ChvZAa','ndu2nZK5EuHxEwrs','A2v5CW','mtyXmtmYn3b2zwvzrW','mK1nAgfQtG','zgvIDwC','iezst00G','BgvUz3rO','y2XLyxjdywnOzq','zM9YrwfJAa','v1DZCKq','DMfSAwrHDgvmB29RDxbwywX1zxm','BxLZCwW','zeP6B3G','C2v0','ntK3ndC0rfzrAhbN','mtKZnZC2mJjeBMHgtKW','yM1ir3O','Dg9vChbLCKnHC2u','lI9KyG','iIbUB3qGzM91BMqGAw4G','mJqXnZeZmNrzvxfHqq','mta5mJK0mhzQshPdBa','z2v0','ndbXDhbADgW','Bg9VA3vWx3rHyMXLx2XVywrLza','C2XPy2u','mtvwvwrZseK','Dg9mB3DLCKnHC2u','zw50CMLLCW','Bg9VA3vWq2fJAgu','AgfZ','CMvZB2X2zuXVB2T1CfzHBhvL','zxHLy3v0zvf1zxj5','qvHyv0C','DhjPBq','z2v0rgLZDgLUy3rwywX1zxm','ChjVy2vZC0XVB2T1CezPzwXKCW','ovLWy2DXsW','B3jHy2XL','DwXLsM0'];a0_0x480c=function(){return _0x152628;};return a0_0x480c();}const dbType=(process['env']['DB_TYPE']||'postgresql')['toLowerCase']();let executeQuery;if(dbType===a0_0x398dd7(0x146)){const oracleDb=require('./db-oracle');executeQuery=(_0x1c3cd6,_0x480d51)=>oracleDb[a0_0x398dd7(0x140)](_0x1c3cd6,_0x480d51);}else{if(dbType===a0_0x398dd7(0x12b)){const mysqlDb=require('./db-mysql');executeQuery=(_0x427561,_0x9b8072)=>mysqlDb['executeQuery'](_0x427561,_0x9b8072);}else executeQuery=require(a0_0x398dd7(0x132))['executeQuery'];}function a0_0x2d54(_0x5af3d4,_0x4b0ba6){_0x5af3d4=_0x5af3d4-0x119;const _0x480cc2=a0_0x480c();let _0x2d54c4=_0x480cc2[_0x5af3d4];if(a0_0x2d54['ObBAzt']===undefined){var _0x5cea07=function(_0x12f1ab){const _0x4df29e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x408423='',_0x1e6ed8='';for(let _0x168650=0x0,_0x59bca6,_0x32534a,_0x9bceae=0x0;_0x32534a=_0x12f1ab['charAt'](_0x9bceae++);~_0x32534a&&(_0x59bca6=_0x168650%0x4?_0x59bca6*0x40+_0x32534a:_0x32534a,_0x168650++%0x4)?_0x408423+=String['fromCharCode'](0xff&_0x59bca6>>(-0x2*_0x168650&0x6)):0x0){_0x32534a=_0x4df29e['indexOf'](_0x32534a);}for(let _0x26897a=0x0,_0x1ddfe3=_0x408423['length'];_0x26897a<_0x1ddfe3;_0x26897a++){_0x1e6ed8+='%'+('00'+_0x408423['charCodeAt'](_0x26897a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1e6ed8);};a0_0x2d54['SYOrlR']=_0x5cea07,a0_0x2d54['lLEiVF']={},a0_0x2d54['ObBAzt']=!![];}const _0x565d42=_0x480cc2[0x0],_0x34b20a=_0x5af3d4+_0x565d42,_0x5777c2=a0_0x2d54['lLEiVF'][_0x34b20a];return!_0x5777c2?(_0x2d54c4=a0_0x2d54['SYOrlR'](_0x2d54c4),a0_0x2d54['lLEiVF'][_0x34b20a]=_0x2d54c4):_0x2d54c4=_0x5777c2,_0x2d54c4;}const {logger}=require('./logger');class LookupResolver{constructor(){this['lookupCache']=new Map();}[a0_0x398dd7(0x127)](){const _0x11a0fd=a0_0x398dd7,_0x1ad264={'Xpusp':'lookup_cache_cleared','bmHGz':'Lookup\x20cache\x20cleared'};this[_0x11a0fd(0x13d)]['clear'](),logger[_0x11a0fd(0x124)]({'event':_0x1ad264['Xpusp']},_0x1ad264[_0x11a0fd(0x130)]);}async['loadLookupTable'](_0x2d9812,_0x2093d2,_0x57f452){const _0xcc4937=a0_0x398dd7,_0x5f5aed={'NdUrE':function(_0x30c646,_0x125de6){return _0x30c646(_0x125de6);}},_0x58d328=_0x2d9812+':'+_0x2093d2+':'+_0x57f452;if(this[_0xcc4937(0x13d)]['has'](_0x58d328))return this[_0xcc4937(0x13d)][_0xcc4937(0x136)](_0x58d328);try{const _0x196bce='SELECT\x20'+_0x57f452+',\x20'+_0x2093d2+_0xcc4937(0x125)+_0x2d9812,_0x23d9a4=await executeQuery(_0x196bce),_0x642b61=new Map();return _0x23d9a4[_0xcc4937(0x128)](_0x5c5c41=>{const _0xccbfe5=_0xcc4937,_0x3b8596=_0x5c5c41[_0x2093d2]!==undefined?_0x5c5c41[_0x2093d2]:_0x5c5c41[_0x2093d2[_0xccbfe5(0x131)]()],_0x4c508f=_0x5c5c41[_0x57f452]!==undefined?_0x5c5c41[_0x57f452]:_0x5c5c41[_0x57f452[_0xccbfe5(0x131)]()];_0x3b8596!==null&&_0x3b8596!==undefined&&(_0x642b61[_0xccbfe5(0x12d)](_0x5f5aed['NdUrE'](String,_0x3b8596)[_0xccbfe5(0x13b)]()[_0xccbfe5(0x142)](),_0x4c508f),_0x642b61[_0xccbfe5(0x12d)](String(_0x3b8596)[_0xccbfe5(0x142)](),_0x4c508f));}),this['lookupCache'][_0xcc4937(0x12d)](_0x58d328,_0x642b61),logger[_0xcc4937(0x11c)]({'event':_0xcc4937(0x138),'table':_0x2d9812,'column':_0x2093d2,'count':_0x23d9a4['length']},'Lookup\x20table\x20loaded:\x20'+_0x2d9812),_0x642b61;}catch(_0x651684){logger['error']({'event':'lookup_table_load_error','table':_0x2d9812,'error':_0x651684['message']},'Failed\x20to\x20load\x20lookup\x20table:\x20'+_0x2d9812);throw _0x651684;}}['resolveLookupValue'](_0x19d5b5,_0x150b5b){const _0x1f5c85=a0_0x398dd7,_0x4de534={'BPJZj':function(_0x275fe9,_0x13a2d4){return _0x275fe9===_0x13a2d4;}};if(_0x4de534['BPJZj'](_0x19d5b5,null)||_0x19d5b5===undefined||_0x4de534['BPJZj'](_0x19d5b5,''))return null;const _0x47f159=String(_0x19d5b5)[_0x1f5c85(0x142)]();if(_0x150b5b[_0x1f5c85(0x13e)](_0x47f159))return _0x150b5b['get'](_0x47f159);const _0x389b5d=_0x47f159['toLowerCase']();if(_0x150b5b['has'](_0x389b5d))return _0x150b5b[_0x1f5c85(0x136)](_0x389b5d);return null;}async[a0_0x398dd7(0x144)](_0x4aa06e,_0x3090e7){const _0x2481af=a0_0x398dd7,_0x13e4f1={'dJzox':function(_0x5c6c22,_0x5e0ae8){return _0x5c6c22===_0x5e0ae8;},'ZBLfr':'lookup_fields_processed','dVhFB':'Lookup\x20fields\x20processed'};if(!_0x3090e7||Object['keys'](_0x3090e7)[_0x2481af(0x126)]===0x0)return{'processedRows':_0x4aa06e,'errors':[]};const _0x37856d=[],_0x5ee0de=new Map();for(const [_0x389d35,_0x5c773d]of Object['entries'](_0x3090e7)){const {lookupTable:_0x361bbd,lookupColumn:_0x5b7ac2,lookupIdColumn:_0x2337bd}=_0x5c773d,_0x2e2be9=_0x361bbd+':'+_0x5b7ac2+':'+_0x2337bd;if(!_0x5ee0de['has'](_0x2e2be9)){const _0x2392b8=await this['loadLookupTable'](_0x361bbd,_0x5b7ac2,_0x2337bd);_0x5ee0de[_0x2481af(0x12d)](_0x2e2be9,_0x2392b8);}}const _0x38f8b1=_0x4aa06e[_0x2481af(0x11a)]((_0x1d6284,_0x2dd6e7)=>{const _0x3e523e=_0x2481af,_0x1b46ae={..._0x1d6284};for(const [_0x3061bc,_0x30362c]of Object[_0x3e523e(0x13c)](_0x3090e7)){const {lookupTable:_0x28527e,lookupColumn:_0x194699,lookupIdColumn:_0x51b6c8,targetField:_0x4300e0,required:_0x216d4c}=_0x30362c,_0x233499=_0x28527e+':'+_0x194699+':'+_0x51b6c8,_0x4276bd=_0x5ee0de['get'](_0x233499),_0x251813=_0x1d6284[_0x3061bc];if((_0x251813===null||_0x13e4f1[_0x3e523e(0x12c)](_0x251813,undefined)||_0x13e4f1['dJzox'](_0x251813,''))&&!_0x216d4c){_0x1b46ae[_0x4300e0]=null;continue;}const _0x25d047=this[_0x3e523e(0x13f)](_0x251813,_0x4276bd);_0x25d047!==null?_0x1b46ae[_0x4300e0]=_0x25d047:(_0x216d4c&&_0x37856d[_0x3e523e(0x11f)]({'rowIndex':_0x2dd6e7,'field':_0x3061bc,'value':_0x251813,'targetField':_0x4300e0,'lookupTable':_0x28527e,'message':'Value\x20\x22'+_0x251813+_0x3e523e(0x133)+_0x28527e}),_0x1b46ae[_0x4300e0]=null);}return _0x1b46ae;});return logger[_0x2481af(0x11c)]({'event':_0x13e4f1['ZBLfr'],'totalRows':_0x4aa06e['length'],'errorCount':_0x37856d['length'],'lookupFieldCount':Object[_0x2481af(0x121)](_0x3090e7)[_0x2481af(0x126)]},_0x13e4f1[_0x2481af(0x11d)]),{'processedRows':_0x38f8b1,'errors':_0x37856d};}[a0_0x398dd7(0x143)](_0x24d369,_0x5136f7){const _0x43b63f={'AXXWG':function(_0x4dcf0e,_0x4bf16b){return _0x4dcf0e!==_0x4bf16b;},'WWsrD':function(_0x2ecf73,_0x397e81){return _0x2ecf73(_0x397e81);}},_0x373f45=new Set();return _0x24d369['forEach'](_0x1cc420=>{const _0x147cc1=a0_0x2d54,_0x570d35=_0x1cc420[_0x5136f7];_0x570d35!==null&&_0x43b63f[_0x147cc1(0x141)](_0x570d35,undefined)&&_0x570d35!==''&&_0x373f45[_0x147cc1(0x11b)](_0x43b63f[_0x147cc1(0x129)](String,_0x570d35)[_0x147cc1(0x142)]());}),Array['from'](_0x373f45);}async[a0_0x398dd7(0x12a)](_0x11750a,_0x4fbba0){const _0x511227=a0_0x398dd7,_0x2a299d={'fBhRo':function(_0xe42210,_0x8e8853){return _0xe42210===_0x8e8853;},'uleJm':function(_0x543773,_0x437297){return _0x543773>_0x437297;}};if(!_0x4fbba0||_0x2a299d['fBhRo'](Object[_0x511227(0x121)](_0x4fbba0)['length'],0x0))return{'valid':!![],'errors':[],'suggestions':{}};const _0x322dfc=[],_0x5a7f45={};for(const [_0x2de6dd,_0x413951]of Object['entries'](_0x4fbba0)){const {lookupTable:_0x34d671,lookupColumn:_0x555bc6,lookupIdColumn:_0x1d3adf,required:_0x1c0156}=_0x413951,_0x2ed9c4=this[_0x511227(0x143)](_0x11750a,_0x2de6dd),_0x1813ab=await this['loadLookupTable'](_0x34d671,_0x555bc6,_0x1d3adf),_0xe066d7=[],_0x249775=[];_0x2ed9c4['forEach'](_0x12c3a4=>{const _0x53874f=_0x511227,_0x5437cf=this['resolveLookupValue'](_0x12c3a4,_0x1813ab);_0x5437cf!==null?_0x249775[_0x53874f(0x11f)](_0x12c3a4):_0xe066d7[_0x53874f(0x11f)](_0x12c3a4);});if(_0x2a299d[_0x511227(0x119)](_0xe066d7[_0x511227(0x126)],0x0)&&_0x1c0156){_0x322dfc[_0x511227(0x11f)]({'field':_0x2de6dd,'lookupTable':_0x34d671,'invalidValues':_0xe066d7,'message':_0xe066d7['length']+'\x20value(s)\x20not\x20found\x20in\x20'+_0x34d671});const _0xb69cc9=[];_0x1813ab['forEach']((_0x1e3db2,_0x13bd7e)=>{const _0x1a57a2=_0x511227;if(_0x13bd7e===_0x13bd7e[_0x1a57a2(0x13b)]())return;_0xb69cc9['push'](_0x13bd7e);}),_0x5a7f45[_0x2de6dd]={'invalidValues':_0xe066d7,'availableValues':_0xb69cc9[_0x511227(0x139)](0x0,0x32)};}}return{'valid':_0x322dfc['length']===0x0,'errors':_0x322dfc,'suggestions':_0x5a7f45};}}module['exports']=new LookupResolver();
1
+ const a0_0x21a2d4=a0_0x289d;(function(_0x2842c5,_0x15da9e){const _0x2e2bd2=a0_0x289d,_0x5c7fce=_0x2842c5();while(!![]){try{const _0x1d01b2=-parseInt(_0x2e2bd2(0xb3))/0x1*(parseInt(_0x2e2bd2(0x9e))/0x2)+-parseInt(_0x2e2bd2(0xa5))/0x3*(parseInt(_0x2e2bd2(0xa7))/0x4)+parseInt(_0x2e2bd2(0xa6))/0x5*(parseInt(_0x2e2bd2(0xbb))/0x6)+parseInt(_0x2e2bd2(0xbe))/0x7*(-parseInt(_0x2e2bd2(0x9a))/0x8)+-parseInt(_0x2e2bd2(0x9f))/0x9+parseInt(_0x2e2bd2(0xc6))/0xa+parseInt(_0x2e2bd2(0xac))/0xb;if(_0x1d01b2===_0x15da9e)break;else _0x5c7fce['push'](_0x5c7fce['shift']());}catch(_0x1d6b2e){_0x5c7fce['push'](_0x5c7fce['shift']());}}}(a0_0x3b32,0x318ef));const dbType=(process['env'][a0_0x21a2d4(0xb4)]||'postgresql')[a0_0x21a2d4(0xa2)]();let executeQuery;function a0_0x3b32(){const _0x329e0a=['CMvZB2X2zuXVB2T1CfzHBhvL','mwfLrxHesW','rejFvfLqrq','s1DTtKW','Bg9VA3vWx3rHyMXLx2XVywrLza','lI9KyI1TExnXBa','lI9KyI1VCMfJBgu','BxLZCwW','zxHLy3v0zvf1zxj5','mZKXnZiYr1zlvNzN','zxHWB3j0CW','tg9VA3vWigzPzwXKCYbWCM9JzxnZzwq','mtrhu3fsv2S','C2v0','iezst00G','Bg9VA3vWx2zPzwXKC19WCM9JzxnZzwq','ChvZAa','zgvIDwC','BwfW','DhjPBq','odu3oduWBxzhDKn4','DMfSAwrHDgvmB29RDxbwywX1zxm','A2v5CW','rMfPBgvKihrVigXVywqGBg9VA3vWihrHyMXLoIa','B3jHy2XL','C2XPy2u','zw50CMLLCW','z2v0rgLZDgLUy3rwywX1zxm','twXTuxq','Bg9VA3vWq2fJAgu','nJq4otq0vgfkCgDR','uLnSrKi','AgfZ','r2nvBNK','ndy3mtiYvvDcyxfw','mZmYmde5mhHIwfnAEa','Aw5MBW','BgvUz3rO','Dg9mB3DLCKnHC2u','y2XLyxjdywnOzq','z2v0','nZi1mwDpq1jNsq','nwvkEgjpBG','ndeYDeDoAKvN','yLP2u00','Bg9VA3vWx3rHyMXLx2XVywrFzxjYB3i','zM9YrwfJAa','CvPzC3a','mte3mJeZndDAC0XbD0e','vMfSDwuGiG','uLvAsva','ChjVy2vZC0XVB2T1CezPzwXKCW','Bg9HzeXVB2T1CfrHyMXL','u0vmrunuia'];a0_0x3b32=function(){return _0x329e0a;};return a0_0x3b32();}if(dbType===a0_0x21a2d4(0x94)){const oracleDb=require(a0_0x21a2d4(0xb8));executeQuery=(_0x4ada61,_0x14d6ac)=>oracleDb['executeQuery'](_0x4ada61,_0x14d6ac);}else{if(dbType===a0_0x21a2d4(0xb9)){const mysqlDb=require(a0_0x21a2d4(0xb7));executeQuery=(_0x517689,_0x54e8be)=>mysqlDb[a0_0x21a2d4(0xba)](_0x517689,_0x54e8be);}else executeQuery=require('./db')['executeQuery'];}const {logger}=require('./logger');class LookupResolver{constructor(){this['lookupCache']=new Map();}[a0_0x21a2d4(0xa3)](){const _0x56e92b=a0_0x21a2d4,_0x53b1d4={'taeEt':'lookup_cache_cleared'};this['lookupCache']['clear'](),logger[_0x56e92b(0xc3)]({'event':_0x53b1d4['taeEt']},'Lookup\x20cache\x20cleared');}async['loadLookupTable'](_0x15294c,_0x5e9975,_0x5510d3){const _0x42ff37=a0_0x21a2d4,_0x26edd2={'Qbgor':function(_0x5d0bfd,_0x49b859){return _0x5d0bfd!==_0x49b859;},'EAuUo':function(_0x20bf5e,_0x5dcc6c){return _0x20bf5e!==_0x5dcc6c;},'KWmNL':function(_0x18587f,_0x23e6cf){return _0x18587f(_0x23e6cf);},'RUZIP':_0x42ff37(0xb6)},_0x566def=_0x15294c+':'+_0x5e9975+':'+_0x5510d3;if(this[_0x42ff37(0x99)]['has'](_0x566def))return this[_0x42ff37(0x99)][_0x42ff37(0xa4)](_0x566def);try{const _0x494a58=_0x42ff37(0xb1)+_0x5510d3+',\x20'+_0x5e9975+_0x42ff37(0xc0)+_0x15294c,_0x168cb3=await executeQuery(_0x494a58),_0x59c943=new Map();return _0x168cb3['forEach'](_0x4b2da5=>{const _0x4068e3=_0x42ff37,_0x25b54d=_0x26edd2['Qbgor'](_0x4b2da5[_0x5e9975],undefined)?_0x4b2da5[_0x5e9975]:_0x4b2da5[_0x5e9975['toUpperCase']()],_0xaea06b=_0x26edd2['Qbgor'](_0x4b2da5[_0x5510d3],undefined)?_0x4b2da5[_0x5510d3]:_0x4b2da5[_0x5510d3['toUpperCase']()];_0x26edd2['EAuUo'](_0x25b54d,null)&&_0x25b54d!==undefined&&(_0x59c943[_0x4068e3(0xbf)](_0x26edd2[_0x4068e3(0xb5)](String,_0x25b54d)['toLowerCase']()['trim'](),_0xaea06b),_0x59c943[_0x4068e3(0xbf)](_0x26edd2[_0x4068e3(0xb5)](String,_0x25b54d)[_0x4068e3(0xc5)](),_0xaea06b));}),this[_0x42ff37(0x99)][_0x42ff37(0xbf)](_0x566def,_0x59c943),logger[_0x42ff37(0xa0)]({'event':_0x26edd2[_0x42ff37(0xae)],'table':_0x15294c,'column':_0x5e9975,'count':_0x168cb3['length']},'Lookup\x20table\x20loaded:\x20'+_0x15294c),_0x59c943;}catch(_0xb48f3b){logger['error']({'event':_0x42ff37(0xa9),'table':_0x15294c,'error':_0xb48f3b['message']},_0x42ff37(0x93)+_0x15294c);throw _0xb48f3b;}}[a0_0x21a2d4(0xb2)](_0x62c21c,_0x1b5762){const _0x474291=a0_0x21a2d4,_0x5890b2={'RSlFB':function(_0x84f5f7,_0xeb8cfd){return _0x84f5f7===_0xeb8cfd;},'MlmQt':function(_0x2cb340,_0x218927){return _0x2cb340(_0x218927);}};if(_0x5890b2['RSlFB'](_0x62c21c,null)||_0x5890b2[_0x474291(0x9b)](_0x62c21c,undefined)||_0x5890b2[_0x474291(0x9b)](_0x62c21c,''))return null;const _0x55d9b7=_0x5890b2[_0x474291(0x98)](String,_0x62c21c)[_0x474291(0xc5)]();if(_0x1b5762[_0x474291(0x9c)](_0x55d9b7))return _0x1b5762[_0x474291(0xa4)](_0x55d9b7);const _0xc973df=_0x55d9b7[_0x474291(0xa2)]();if(_0x1b5762[_0x474291(0x9c)](_0xc973df))return _0x1b5762['get'](_0xc973df);return null;}async[a0_0x21a2d4(0xaf)](_0x2a73dc,_0x41cddc){const _0x495a5d=a0_0x21a2d4,_0xdd2bb8={'qZYsp':function(_0x32130b,_0x237c1c){return _0x32130b===_0x237c1c;}};if(!_0x41cddc||_0xdd2bb8[_0x495a5d(0xab)](Object[_0x495a5d(0x92)](_0x41cddc)[_0x495a5d(0xa1)],0x0))return{'processedRows':_0x2a73dc,'errors':[]};const _0x2405bf=[],_0x1afedb=new Map();for(const [_0x28a448,_0x5a23ab]of Object[_0x495a5d(0x96)](_0x41cddc)){const {lookupTable:_0x54852a,lookupColumn:_0x2654c8,lookupIdColumn:_0x5f9460}=_0x5a23ab,_0xbdd74d=_0x54852a+':'+_0x2654c8+':'+_0x5f9460;if(!_0x1afedb['has'](_0xbdd74d)){const _0x516cda=await this[_0x495a5d(0xb0)](_0x54852a,_0x2654c8,_0x5f9460);_0x1afedb[_0x495a5d(0xbf)](_0xbdd74d,_0x516cda);}}const _0x23062c=_0x2a73dc[_0x495a5d(0xc4)]((_0x38b3fa,_0x4deadf)=>{const _0x153768=_0x495a5d,_0x14feaa={..._0x38b3fa};for(const [_0x294dfc,_0x1b80b8]of Object['entries'](_0x41cddc)){const {lookupTable:_0x1f2e96,lookupColumn:_0x304dc8,lookupIdColumn:_0x4160e2,targetField:_0x2839b4,required:_0x43c5a6}=_0x1b80b8,_0x5ed7bf=_0x1f2e96+':'+_0x304dc8+':'+_0x4160e2,_0x4a075d=_0x1afedb[_0x153768(0xa4)](_0x5ed7bf),_0x43e0cb=_0x38b3fa[_0x294dfc];if((_0xdd2bb8['qZYsp'](_0x43e0cb,null)||_0x43e0cb===undefined||_0x43e0cb==='')&&!_0x43c5a6){_0x14feaa[_0x2839b4]=null;continue;}const _0x5cba3a=this[_0x153768(0xb2)](_0x43e0cb,_0x4a075d);_0x5cba3a!==null?_0x14feaa[_0x2839b4]=_0x5cba3a:(_0x43c5a6&&_0x2405bf[_0x153768(0xc2)]({'rowIndex':_0x4deadf,'field':_0x294dfc,'value':_0x43e0cb,'targetField':_0x2839b4,'lookupTable':_0x1f2e96,'message':_0x153768(0xad)+_0x43e0cb+'\x22\x20not\x20found\x20in\x20'+_0x1f2e96}),_0x14feaa[_0x2839b4]=null);}return _0x14feaa;});return logger['info']({'event':_0x495a5d(0xc1),'totalRows':_0x2a73dc[_0x495a5d(0xa1)],'errorCount':_0x2405bf['length'],'lookupFieldCount':Object['keys'](_0x41cddc)[_0x495a5d(0xa1)]},_0x495a5d(0xbd)),{'processedRows':_0x23062c,'errors':_0x2405bf};}['getDistinctValues'](_0x5357b3,_0x444ed0){const _0x18b24e=a0_0x21a2d4,_0xec2246={'nYIke':function(_0x587313,_0x39f55d){return _0x587313!==_0x39f55d;},'AhXHX':function(_0x84309b,_0x1287e9){return _0x84309b!==_0x1287e9;}},_0x34e455=new Set();return _0x5357b3[_0x18b24e(0xaa)](_0x117ca3=>{const _0x19a3d1=_0x117ca3[_0x444ed0];_0x19a3d1!==null&&_0xec2246['nYIke'](_0x19a3d1,undefined)&&_0xec2246['AhXHX'](_0x19a3d1,'')&&_0x34e455['add'](String(_0x19a3d1)['trim']());}),Array['from'](_0x34e455);}async[a0_0x21a2d4(0x91)](_0x56525e,_0x498ff7){const _0xb47ebf=a0_0x21a2d4,_0x2d3ade={'bZvSM':function(_0x13713a,_0x34157d){return _0x13713a!==_0x34157d;},'GcUny':function(_0x5e49b4,_0x2087d2){return _0x5e49b4===_0x2087d2;}};if(!_0x498ff7||Object[_0xb47ebf(0x92)](_0x498ff7)['length']===0x0)return{'valid':!![],'errors':[],'suggestions':{}};const _0x363ac8=[],_0x4b9746={};for(const [_0x3472a1,_0x3172f0]of Object['entries'](_0x498ff7)){const {lookupTable:_0xcd9402,lookupColumn:_0x5257ef,lookupIdColumn:_0x4da850,required:_0x8ca8ce}=_0x3172f0,_0x1ac390=this[_0xb47ebf(0x97)](_0x56525e,_0x3472a1),_0xdaf11e=await this['loadLookupTable'](_0xcd9402,_0x5257ef,_0x4da850),_0x1741a5=[],_0x348701=[];_0x1ac390[_0xb47ebf(0xaa)](_0x3f09ab=>{const _0x4cf420=_0xb47ebf,_0x471784=this[_0x4cf420(0xb2)](_0x3f09ab,_0xdaf11e);_0x2d3ade[_0x4cf420(0xa8)](_0x471784,null)?_0x348701['push'](_0x3f09ab):_0x1741a5['push'](_0x3f09ab);});if(_0x1741a5['length']>0x0&&_0x8ca8ce){_0x363ac8[_0xb47ebf(0xc2)]({'field':_0x3472a1,'lookupTable':_0xcd9402,'invalidValues':_0x1741a5,'message':_0x1741a5[_0xb47ebf(0xa1)]+'\x20value(s)\x20not\x20found\x20in\x20'+_0xcd9402});const _0x456686=[];_0xdaf11e['forEach']((_0x5d522d,_0x4d68e0)=>{const _0x48c55=_0xb47ebf;if(_0x2d3ade[_0x48c55(0x9d)](_0x4d68e0,_0x4d68e0['toLowerCase']()))return;_0x456686[_0x48c55(0xc2)](_0x4d68e0);}),_0x4b9746[_0x3472a1]={'invalidValues':_0x1741a5,'availableValues':_0x456686[_0xb47ebf(0x95)](0x0,0x32)};}}return{'valid':_0x2d3ade['GcUny'](_0x363ac8['length'],0x0),'errors':_0x363ac8,'suggestions':_0x4b9746};}}function a0_0x289d(_0x1ea9a7,_0x4b9681){_0x1ea9a7=_0x1ea9a7-0x91;const _0x3b323f=a0_0x3b32();let _0x289dff=_0x3b323f[_0x1ea9a7];if(a0_0x289d['PXZQTb']===undefined){var _0x1a30bc=function(_0x48941b){const _0x3a039c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e06ae='',_0x24d86e='';for(let _0x37dce0=0x0,_0x1e1028,_0x4b6b36,_0x39e8e7=0x0;_0x4b6b36=_0x48941b['charAt'](_0x39e8e7++);~_0x4b6b36&&(_0x1e1028=_0x37dce0%0x4?_0x1e1028*0x40+_0x4b6b36:_0x4b6b36,_0x37dce0++%0x4)?_0x2e06ae+=String['fromCharCode'](0xff&_0x1e1028>>(-0x2*_0x37dce0&0x6)):0x0){_0x4b6b36=_0x3a039c['indexOf'](_0x4b6b36);}for(let _0x48ab62=0x0,_0x4640b6=_0x2e06ae['length'];_0x48ab62<_0x4640b6;_0x48ab62++){_0x24d86e+='%'+('00'+_0x2e06ae['charCodeAt'](_0x48ab62)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x24d86e);};a0_0x289d['AIoOqB']=_0x1a30bc,a0_0x289d['EyILHa']={},a0_0x289d['PXZQTb']=!![];}const _0x53709a=_0x3b323f[0x0],_0x1fa56e=_0x1ea9a7+_0x53709a,_0x33ad52=a0_0x289d['EyILHa'][_0x1fa56e];return!_0x33ad52?(_0x289dff=a0_0x289d['AIoOqB'](_0x289dff),a0_0x289d['EyILHa'][_0x1fa56e]=_0x289dff):_0x289dff=_0x33ad52,_0x289dff;}module[a0_0x21a2d4(0xbc)]=new LookupResolver();
@@ -1 +1 @@
1
- function a0_0x4c3a(_0x480426,_0x36cdc9){_0x480426=_0x480426-0x1e6;const _0xd5a7f8=a0_0xd5a7();let _0x4c3abf=_0xd5a7f8[_0x480426];if(a0_0x4c3a['wQKcRj']===undefined){var _0xe39724=function(_0x309813){const _0x38257a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x79854='',_0x17107e='';for(let _0x2f36e9=0x0,_0x4ba9c1,_0x397cf4,_0x51d99e=0x0;_0x397cf4=_0x309813['charAt'](_0x51d99e++);~_0x397cf4&&(_0x4ba9c1=_0x2f36e9%0x4?_0x4ba9c1*0x40+_0x397cf4:_0x397cf4,_0x2f36e9++%0x4)?_0x79854+=String['fromCharCode'](0xff&_0x4ba9c1>>(-0x2*_0x2f36e9&0x6)):0x0){_0x397cf4=_0x38257a['indexOf'](_0x397cf4);}for(let _0x332d84=0x0,_0x3e6fc0=_0x79854['length'];_0x332d84<_0x3e6fc0;_0x332d84++){_0x17107e+='%'+('00'+_0x79854['charCodeAt'](_0x332d84)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x17107e);};a0_0x4c3a['CtnmEo']=_0xe39724,a0_0x4c3a['IhrhOA']={},a0_0x4c3a['wQKcRj']=!![];}const _0x559c3b=_0xd5a7f8[0x0],_0x305a4d=_0x480426+_0x559c3b,_0x490282=a0_0x4c3a['IhrhOA'][_0x305a4d];return!_0x490282?(_0x4c3abf=a0_0x4c3a['CtnmEo'](_0x4c3abf),a0_0x4c3a['IhrhOA'][_0x305a4d]=_0x4c3abf):_0x4c3abf=_0x490282,_0x4c3abf;}const a0_0x59e42e=a0_0x4c3a;(function(_0x1ce0a2,_0x52f7d1){const _0x2fff43=a0_0x4c3a,_0x515792=_0x1ce0a2();while(!![]){try{const _0x452cc2=parseInt(_0x2fff43(0x208))/0x1+-parseInt(_0x2fff43(0x20a))/0x2+-parseInt(_0x2fff43(0x210))/0x3*(-parseInt(_0x2fff43(0x1fc))/0x4)+parseInt(_0x2fff43(0x1f5))/0x5+parseInt(_0x2fff43(0x1f8))/0x6*(parseInt(_0x2fff43(0x20b))/0x7)+-parseInt(_0x2fff43(0x206))/0x8+-parseInt(_0x2fff43(0x1ff))/0x9;if(_0x452cc2===_0x52f7d1)break;else _0x515792['push'](_0x515792['shift']());}catch(_0x55fda5){_0x515792['push'](_0x515792['shift']());}}}(a0_0xd5a7,0x95a91));const fs=require('fs')[a0_0x59e42e(0x1f3)],path=require(a0_0x59e42e(0x1ed)),{logger}=require('./logger');class PayloadLoader{constructor(){const _0x1e8f21=a0_0x59e42e;this['payloadDir']=path[_0x1e8f21(0x1f6)](__dirname,'../../payload'),this['cache']=new Map();}async[a0_0x59e42e(0x209)](_0x18b746,_0x29cc39){const _0x512bd3=a0_0x59e42e,_0x3c192f={'lOxQR':_0x512bd3(0x1ef),'eiRxK':_0x512bd3(0x1e6),'FIMDY':'payload_load_error','wWwMI':'Failed\x20to\x20load\x20payload'},_0x2f968a=_0x18b746+':'+_0x29cc39;if(this[_0x512bd3(0x207)]['has'](_0x2f968a))return this['cache']['get'](_0x2f968a);const _0x5bf3e9=path['join'](this['payloadDir'],_0x18b746+'_'+_0x29cc39+_0x512bd3(0x205));try{const _0x31d5f8=await fs[_0x512bd3(0x1fa)](_0x5bf3e9,_0x3c192f[_0x512bd3(0x211)]),_0x5a9319=JSON[_0x512bd3(0x1f1)](_0x31d5f8);return this['cache']['set'](_0x2f968a,_0x5a9319),logger['debug']({'event':_0x3c192f['eiRxK'],'project':_0x18b746,'resource':_0x29cc39},_0x512bd3(0x1fe)),_0x5a9319;}catch(_0x49a4c3){logger['error']({'event':_0x3c192f['FIMDY'],'project':_0x18b746,'resource':_0x29cc39,'error':_0x49a4c3[_0x512bd3(0x20e)]},_0x3c192f[_0x512bd3(0x1ee)]);throw new Error('Payload\x20not\x20found:\x20'+_0x18b746+'_'+_0x29cc39);}}async[a0_0x59e42e(0x201)](_0x592c48){const _0x17741c=a0_0x59e42e,_0x35344c={'Knjgv':'Payload\x20loaded\x20successfully\x20by\x20name','NzQIB':_0x17741c(0x1e9)},_0x568bf8=_0x17741c(0x1e8)+_0x592c48;if(this[_0x17741c(0x207)][_0x17741c(0x202)](_0x568bf8))return this[_0x17741c(0x207)][_0x17741c(0x1ec)](_0x568bf8);const _0x216478=path['join'](this['payloadDir'],_0x592c48+'.json');try{const _0x246dfb=await fs['readFile'](_0x216478,_0x17741c(0x1ef)),_0x53cd57=JSON['parse'](_0x246dfb);return this['cache'][_0x17741c(0x1f4)](_0x568bf8,_0x53cd57),logger[_0x17741c(0x1f2)]({'event':'payload_loaded','payloadName':_0x592c48},_0x35344c['Knjgv']),_0x53cd57;}catch(_0x22cd3a){logger['error']({'event':_0x17741c(0x20f),'payloadName':_0x592c48,'error':_0x22cd3a['message']},_0x35344c['NzQIB']);throw new Error(_0x17741c(0x1eb)+_0x592c48);}}[a0_0x59e42e(0x1fb)](_0x3b278c,_0x37f981){const _0x1df400=a0_0x59e42e;return _0x3b278c[_0x1df400(0x1ea)]&&_0x3b278c['action'][_0x37f981]===!![];}[a0_0x59e42e(0x1f7)](_0x36b3e6){const _0x32ab86=a0_0x59e42e;return{'columns':_0x36b3e6[_0x32ab86(0x1f9)]||[],'filename':_0x36b3e6['tableName'][_0x32ab86(0x20d)]('.','-')+_0x32ab86(0x200),'datatablesQuery':_0x36b3e6['datatablesQuery']||null,'columnFormats':_0x36b3e6['columnFormats']||null,'fieldLabels':_0x36b3e6['fieldLabels']||null};}[a0_0x59e42e(0x1fd)](){const _0xcc2f56=a0_0x59e42e,_0x1c5035={'xhIZL':_0xcc2f56(0x20c)};this['cache'][_0xcc2f56(0x1f0)](),logger['info']({'event':_0xcc2f56(0x1e7)},_0x1c5035[_0xcc2f56(0x204)]);}}function a0_0xd5a7(){const _0x3aa4d2=['nde2nZbMtLPhz3e','zMLLBgroyw1L','CMvHzezPBgu','Axnby3rPB25fBMfIBgvK','ntm2BgniCunj','y2XLyxjdywnOzq','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5','mtu1ota0m2Xtyxr4Dq','lwv4Cg9YDa','Bg9HzfbHEwXVywrcEu5HBwu','AgfZ','zxHWB3j0CW','EgHjwKW','lMPZB24','ndyZndK0ng5iyw9MwG','y2fJAgu','nZKZmde2v1bpuMnq','Bg9HzfbHEwXVywq','mtK5mJe4ohbWuNDItW','nJaYvw9ts25R','ugf5Bg9HzcbJywnOzsbJBgvHCMvK','CMvWBgfJzq','BwvZC2fNzq','Cgf5Bg9Hzf9SB2fKx2vYCM9Y','mtCWntHdEgTyEMG','Be94uvi','Cgf5Bg9Hzf9SB2fKzwq','Cgf5Bg9Hzf9JywnOzv9JBgvHCMvK','Cgf5Bg9HzdO','rMfPBgvKihrVigXVywqGCgf5Bg9HzcbIEsbUyw1L','ywn0Aw9U','ugf5Bg9HzcbUB3qGzM91BMq6ia','z2v0','Cgf0Aa','D1D3tuK','DxrMoa','y2XLyxi','CgfYC2u','zgvIDwC','ChjVBwLZzxm','C2v0','mta0nZq0mhPpAhnksq','AM9PBG','z2v0rxHWB3j0q29UzMLN'];a0_0xd5a7=function(){return _0x3aa4d2;};return a0_0xd5a7();}module[a0_0x59e42e(0x203)]=new PayloadLoader();
1
+ function a0_0x33aa(){const _0x6cbab6=['CMvHzezPBgu','rMfPBgvKihrVigXVywqGCgf5Bg9Hza','AM9PBG','mJe2qwTPq25m','Cgf5Bg9Hzf9JywnOzv9JBgvHCMvK','mJG4mdj2CuzysvO','mte2nZL2sKHTDgW','Bg9HzfbHEwXVywq','qK1rrMG','lI9SB2DNzxi','nKrXtfjZBq','mty5ntuYnuT4y0XXtW','DxrMoa','Cgf5Bg9Hzf9SB2fKzwq','mtzhu0z6q04','CgfYC2u','zgvIDwC','n0z6s21Zza','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5igj5ig5HBwu','zxjYB3i','mtq3mZi2nw1pCvDgEG','rMfPBgvKihrVigXVywqGCgf5Bg9HzcbIEsbUyw1L','ywn0Aw9U','CMvWBgfJzq','ChjVBwLZzxm','mty4mtq2vKHduu5l','mZuWndu5mwHJsgf4rq','C2v0','lMPZB24','y2fJAgu','mtG0mvnushDxrq','z2v0','mte4ndHPq3rtDhC','lI4VlI4VCgf5Bg9Hza','zxHWB3j0CW','ugf5Bg9HzcbSB2fKzwqGC3vJy2vZC2z1BgX5','mtbkuvHNr1y','zgf0yxrHyMXLC1f1zxj5'];a0_0x33aa=function(){return _0x6cbab6;};return a0_0x33aa();}const a0_0x5af18d=a0_0x2e30;(function(_0x376e48,_0x310866){const _0x3892b8=a0_0x2e30,_0x590498=_0x376e48();while(!![]){try{const _0x5e73c5=-parseInt(_0x3892b8(0xc3))/0x1*(-parseInt(_0x3892b8(0xb7))/0x2)+parseInt(_0x3892b8(0xb8))/0x3*(-parseInt(_0x3892b8(0xc0))/0x4)+parseInt(_0x3892b8(0xc6))/0x5*(-parseInt(_0x3892b8(0xbc))/0x6)+parseInt(_0x3892b8(0xd0))/0x7*(parseInt(_0x3892b8(0xd2))/0x8)+-parseInt(_0x3892b8(0xcc))/0x9*(parseInt(_0x3892b8(0xd6))/0xa)+parseInt(_0x3892b8(0xcb))/0xb*(parseInt(_0x3892b8(0xb5))/0xc)+parseInt(_0x3892b8(0xbd))/0xd;if(_0x5e73c5===_0x310866)break;else _0x590498['push'](_0x590498['shift']());}catch(_0x2034b5){_0x590498['push'](_0x590498['shift']());}}}(a0_0x33aa,0x2fea3));const fs=require('fs')[a0_0x5af18d(0xca)],path=require('path'),{logger}=require(a0_0x5af18d(0xbb));function a0_0x2e30(_0x3eeb2d,_0x2db0c2){_0x3eeb2d=_0x3eeb2d-0xb1;const _0x33aa1f=a0_0x33aa();let _0x2e300d=_0x33aa1f[_0x3eeb2d];if(a0_0x2e30['aaGKXm']===undefined){var _0x41b61c=function(_0xebadbd){const _0x49244d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4fd77b='',_0xfd3b73='';for(let _0x3d7ea1=0x0,_0x2418a8,_0x38fd78,_0x288e88=0x0;_0x38fd78=_0xebadbd['charAt'](_0x288e88++);~_0x38fd78&&(_0x2418a8=_0x3d7ea1%0x4?_0x2418a8*0x40+_0x38fd78:_0x38fd78,_0x3d7ea1++%0x4)?_0x4fd77b+=String['fromCharCode'](0xff&_0x2418a8>>(-0x2*_0x3d7ea1&0x6)):0x0){_0x38fd78=_0x49244d['indexOf'](_0x38fd78);}for(let _0xab62bf=0x0,_0xacf75f=_0x4fd77b['length'];_0xab62bf<_0xacf75f;_0xab62bf++){_0xfd3b73+='%'+('00'+_0x4fd77b['charCodeAt'](_0xab62bf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xfd3b73);};a0_0x2e30['VZrPPo']=_0x41b61c,a0_0x2e30['ZgiUDT']={},a0_0x2e30['aaGKXm']=!![];}const _0x1ff55f=_0x33aa1f[0x0],_0x8753b9=_0x3eeb2d+_0x1ff55f,_0x4553f2=a0_0x2e30['ZgiUDT'][_0x8753b9];return!_0x4553f2?(_0x2e300d=a0_0x2e30['VZrPPo'](_0x2e300d),a0_0x2e30['ZgiUDT'][_0x8753b9]=_0x2e300d):_0x2e300d=_0x4553f2,_0x2e300d;}class PayloadLoader{constructor(){const _0x294676=a0_0x5af18d;this['payloadDir']=path['join'](__dirname,_0x294676(0xd3)),this['cache']=new Map();}async[a0_0x5af18d(0xb9)](_0x58586e,_0x15d2ea){const _0x4dc426=a0_0x5af18d,_0x3fbcd9={'ovkcM':_0x4dc426(0xbe),'MagQt':_0x4dc426(0xbf),'RlUDs':_0x4dc426(0xb3)},_0x52661f=_0x58586e+':'+_0x15d2ea;if(this['cache']['has'](_0x52661f))return this[_0x4dc426(0xcf)][_0x4dc426(0xd1)](_0x52661f);const _0x40c982=path[_0x4dc426(0xb4)](this['payloadDir'],_0x58586e+'_'+_0x15d2ea+'.json');try{const _0x14dc0c=await fs['readFile'](_0x40c982,_0x3fbcd9['ovkcM']),_0x4df801=JSON[_0x4dc426(0xc1)](_0x14dc0c);return this[_0x4dc426(0xcf)][_0x4dc426(0xcd)](_0x52661f,_0x4df801),logger[_0x4dc426(0xc2)]({'event':_0x3fbcd9['MagQt'],'project':_0x58586e,'resource':_0x15d2ea},_0x4dc426(0xd5)),_0x4df801;}catch(_0x430bc6){logger[_0x4dc426(0xc5)]({'event':'payload_load_error','project':_0x58586e,'resource':_0x15d2ea,'error':_0x430bc6['message']},_0x3fbcd9['RlUDs']);throw new Error('Payload\x20not\x20found:\x20'+_0x58586e+'_'+_0x15d2ea);}}async['loadPayloadByName'](_0x5e77e2){const _0x317abc=a0_0x5af18d,_0x3c13ac={'YhsTk':_0x317abc(0xbe),'DaThe':'payload_load_error'},_0x47b885='payload:'+_0x5e77e2;if(this[_0x317abc(0xcf)]['has'](_0x47b885))return this[_0x317abc(0xcf)]['get'](_0x47b885);const _0x4d4910=path['join'](this['payloadDir'],_0x5e77e2+_0x317abc(0xce));try{const _0x2aa43d=await fs[_0x317abc(0xb2)](_0x4d4910,_0x3c13ac['YhsTk']),_0x31155b=JSON[_0x317abc(0xc1)](_0x2aa43d);return this[_0x317abc(0xcf)]['set'](_0x47b885,_0x31155b),logger[_0x317abc(0xc2)]({'event':_0x317abc(0xbf),'payloadName':_0x5e77e2},_0x317abc(0xc4)),_0x31155b;}catch(_0x54c838){logger['error']({'event':_0x3c13ac['DaThe'],'payloadName':_0x5e77e2,'error':_0x54c838['message']},_0x317abc(0xc7));throw new Error('Payload\x20not\x20found:\x20'+_0x5e77e2);}}['isActionEnabled'](_0x1d1759,_0x3be3fa){const _0x36574c=a0_0x5af18d;return _0x1d1759[_0x36574c(0xc8)]&&_0x1d1759[_0x36574c(0xc8)][_0x3be3fa]===!![];}['getExportConfig'](_0x147e3d){const _0x27d039=a0_0x5af18d;return{'columns':_0x147e3d['fieldName']||[],'filename':_0x147e3d['tableName'][_0x27d039(0xc9)]('.','-')+'-export','datatablesQuery':_0x147e3d[_0x27d039(0xb1)]||null,'columnFormats':_0x147e3d['columnFormats']||null,'fieldLabels':_0x147e3d['fieldLabels']||null};}['clearCache'](){const _0x5ce255=a0_0x5af18d,_0x45efba={'BMQFh':'Payload\x20cache\x20cleared'};this['cache']['clear'](),logger['info']({'event':_0x5ce255(0xb6)},_0x45efba[_0x5ce255(0xba)]);}}module[a0_0x5af18d(0xd4)]=new PayloadLoader();
@@ -1 +1 @@
1
- 'use strict';(function(_0x12831a,_0x491cab){var _0x571ea9=a0_0xa20c,_0x49c25c=_0x12831a();while(!![]){try{var _0x51b62a=-parseInt(_0x571ea9(0x1af))/0x1+parseInt(_0x571ea9(0x1a8))/0x2+-parseInt(_0x571ea9(0x1ab))/0x3+-parseInt(_0x571ea9(0x1ae))/0x4+-parseInt(_0x571ea9(0x1a7))/0x5+-parseInt(_0x571ea9(0x1ac))/0x6*(-parseInt(_0x571ea9(0x1aa))/0x7)+parseInt(_0x571ea9(0x1a9))/0x8;if(_0x51b62a===_0x491cab)break;else _0x49c25c['push'](_0x49c25c['shift']());}catch(_0x5187c7){_0x49c25c['push'](_0x49c25c['shift']());}}}(a0_0x18f1,0x8c17f));function createResponse(_0x4441fc,_0x3b4388,_0x549a0e=null){var _0x10b5b7=a0_0xa20c;return{'success':!![],'statusCode':_0x4441fc,'message':_0x3b4388,'data':_0x549a0e,'timestamp':new Date()[_0x10b5b7(0x1ad)]()};}function createError(_0x54dea0,_0x57d9fa,_0x19b2e2=null){var _0xc953d3=a0_0xa20c;return{'success':![],'statusCode':_0x54dea0,'message':_0x57d9fa,'data':_0x19b2e2,'timestamp':new Date()[_0xc953d3(0x1ad)]()};}function a0_0x18f1(){var _0x3bbadf=['odK1ntG0zK5pr0jt','mZC2mdu3mfL6uMH1ta','mJuZndy0A1HcCxDo','mtK1mda5nJHnDgnKr2C','mtG5nJnICLrMte0','nduXmty3q0DeqMzo','ndaYs1f4t0D2','Dg9ju09tDhjPBMC','mtq5ntC4nhnVBwv5sq'];a0_0x18f1=function(){return _0x3bbadf;};return a0_0x18f1();}function createValidationError(_0x3a0e3a,_0x222201){var _0x5db0e3=a0_0xa20c;return{'success':![],'statusCode':0x190,'message':_0x3a0e3a,'data':{'errors':_0x222201},'timestamp':new Date()[_0x5db0e3(0x1ad)]()};}function a0_0xa20c(_0x2dabf0,_0x416db4){_0x2dabf0=_0x2dabf0-0x1a7;var _0x18f1c4=a0_0x18f1();var _0xa20cda=_0x18f1c4[_0x2dabf0];if(a0_0xa20c['cDddyq']===undefined){var _0x1e5583=function(_0x3906b6){var _0xfa3470='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xb93d8a='',_0x5888a='';for(var _0x36055b=0x0,_0x2e1216,_0x112e17,_0x4c7390=0x0;_0x112e17=_0x3906b6['charAt'](_0x4c7390++);~_0x112e17&&(_0x2e1216=_0x36055b%0x4?_0x2e1216*0x40+_0x112e17:_0x112e17,_0x36055b++%0x4)?_0xb93d8a+=String['fromCharCode'](0xff&_0x2e1216>>(-0x2*_0x36055b&0x6)):0x0){_0x112e17=_0xfa3470['indexOf'](_0x112e17);}for(var _0x77dede=0x0,_0x5c095a=_0xb93d8a['length'];_0x77dede<_0x5c095a;_0x77dede++){_0x5888a+='%'+('00'+_0xb93d8a['charCodeAt'](_0x77dede)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5888a);};a0_0xa20c['GJlQdD']=_0x1e5583,a0_0xa20c['uycuDv']={},a0_0xa20c['cDddyq']=!![];}var _0x57f220=_0x18f1c4[0x0],_0x572d0b=_0x2dabf0+_0x57f220,_0x46dbb5=a0_0xa20c['uycuDv'][_0x572d0b];return!_0x46dbb5?(_0xa20cda=a0_0xa20c['GJlQdD'](_0xa20cda),a0_0xa20c['uycuDv'][_0x572d0b]=_0xa20cda):_0xa20cda=_0x46dbb5,_0xa20cda;}module['exports']={'createResponse':createResponse,'createError':createError,'createValidationError':createValidationError};
1
+ 'use strict';var a0_0x1f7e3a=a0_0x2642;function a0_0x2642(_0x4ad090,_0x5e18ac){_0x4ad090=_0x4ad090-0xab;var _0x1ccb98=a0_0x1ccb();var _0x2642fd=_0x1ccb98[_0x4ad090];if(a0_0x2642['iCWnmj']===undefined){var _0x36cefd=function(_0x5bd020){var _0x4d9164='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3f5ff2='',_0x1de707='';for(var _0x4cde6b=0x0,_0x12329c,_0x417531,_0x4cb634=0x0;_0x417531=_0x5bd020['charAt'](_0x4cb634++);~_0x417531&&(_0x12329c=_0x4cde6b%0x4?_0x12329c*0x40+_0x417531:_0x417531,_0x4cde6b++%0x4)?_0x3f5ff2+=String['fromCharCode'](0xff&_0x12329c>>(-0x2*_0x4cde6b&0x6)):0x0){_0x417531=_0x4d9164['indexOf'](_0x417531);}for(var _0x40428e=0x0,_0x5947f9=_0x3f5ff2['length'];_0x40428e<_0x5947f9;_0x40428e++){_0x1de707+='%'+('00'+_0x3f5ff2['charCodeAt'](_0x40428e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1de707);};a0_0x2642['GEhWLo']=_0x36cefd,a0_0x2642['JZIHOp']={},a0_0x2642['iCWnmj']=!![];}var _0x657b8d=_0x1ccb98[0x0],_0x4d3629=_0x4ad090+_0x657b8d,_0x406b70=a0_0x2642['JZIHOp'][_0x4d3629];return!_0x406b70?(_0x2642fd=a0_0x2642['GEhWLo'](_0x2642fd),a0_0x2642['JZIHOp'][_0x4d3629]=_0x2642fd):_0x2642fd=_0x406b70,_0x2642fd;}function a0_0x1ccb(){var _0x128442=['mZKXmdC0uuDTB1nZ','mte2mJy3mZbtuLPtug4','ody3mZa2zffhrePX','mZa3ndeYmfr4tNDTyq','zxHWB3j0CW','mtC2zK5HuhDy','mteYug94wLvq','mZCWmJyWsvvit214','mtu5mZvNr3bZueu','mZbcD0H3qNe','mte2mJG5tw9ls1HH','Dg9ju09tDhjPBMC'];a0_0x1ccb=function(){return _0x128442;};return a0_0x1ccb();}(function(_0x27e50e,_0x57a17b){var _0xaf2046=a0_0x2642,_0x515bcb=_0x27e50e();while(!![]){try{var _0xdf706c=-parseInt(_0xaf2046(0xb5))/0x1+parseInt(_0xaf2046(0xb2))/0x2*(-parseInt(_0xaf2046(0xb3))/0x3)+-parseInt(_0xaf2046(0xae))/0x4*(-parseInt(_0xaf2046(0xb1))/0x5)+-parseInt(_0xaf2046(0xab))/0x6+-parseInt(_0xaf2046(0xac))/0x7+-parseInt(_0xaf2046(0xaf))/0x8*(-parseInt(_0xaf2046(0xb0))/0x9)+parseInt(_0xaf2046(0xb6))/0xa;if(_0xdf706c===_0x57a17b)break;else _0x515bcb['push'](_0x515bcb['shift']());}catch(_0x579534){_0x515bcb['push'](_0x515bcb['shift']());}}}(a0_0x1ccb,0x4ec47));function createResponse(_0x5443b1,_0x5794dd,_0x1aedf7=null){var _0x34383d=a0_0x2642;return{'success':!![],'statusCode':_0x5443b1,'message':_0x5794dd,'data':_0x1aedf7,'timestamp':new Date()[_0x34383d(0xb4)]()};}function createError(_0x3acf3c,_0x4f2941,_0x458649=null){return{'success':![],'statusCode':_0x3acf3c,'message':_0x4f2941,'data':_0x458649,'timestamp':new Date()['toISOString']()};}function createValidationError(_0x352440,_0x45c466){var _0x4429bb=a0_0x2642;return{'success':![],'statusCode':0x190,'message':_0x352440,'data':{'errors':_0x45c466},'timestamp':new Date()[_0x4429bb(0xb4)]()};}module[a0_0x1f7e3a(0xad)]={'createResponse':createResponse,'createError':createError,'createValidationError':createValidationError};
@@ -1 +1 @@
1
- const a0_0xee44e5=a0_0x184e;(function(_0x5aaf70,_0x38ea73){const _0xb7fe9=a0_0x184e,_0x1710ee=_0x5aaf70();while(!![]){try{const _0x333042=parseInt(_0xb7fe9(0x7e))/0x1+parseInt(_0xb7fe9(0x77))/0x2+-parseInt(_0xb7fe9(0x73))/0x3*(parseInt(_0xb7fe9(0x7d))/0x4)+parseInt(_0xb7fe9(0x72))/0x5+parseInt(_0xb7fe9(0x70))/0x6*(-parseInt(_0xb7fe9(0x9f))/0x7)+parseInt(_0xb7fe9(0x7c))/0x8+-parseInt(_0xb7fe9(0x80))/0x9;if(_0x333042===_0x38ea73)break;else _0x1710ee['push'](_0x1710ee['shift']());}catch(_0x4950a7){_0x1710ee['push'](_0x1710ee['shift']());}}}(a0_0x4746,0x3b540),require('dotenv')[a0_0xee44e5(0x9e)]());function a0_0x4746(){const _0x287a33=['BwvZC2fNzq','lI9KyxrLsgvSCgvY','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','y3jLyxrLq2HHBM5LBa','Bg9N','yw1XCgXPyG','CMv0CNKTzxHJAgfUz2u','xsbszxrYEsbLEgnOyw5NzsbJCMvHDgvKl3jLywr5','igLZigfSCMvHzhKGAw4GDxnLihDPDgGGysbKAwzMzxjLBNqGCM91DgLUzYbRzxKU','ignYzwf0zwqVCMvHzhK','zxjYB3i','y3jLyxrLzc9YzwfKEq','y2XVC2u','C1DfseS','y29UzMLN','mteYqK1mtLjw','ksbJCMvHDgvK','xsbfCNjVCIbJCMvHDgLUzYbYzxrYEsbLEgnOyw5NztO','uKfcqKLutvfFrvHdsefor0u','yxnZzxj0rxHJAgfUz2u','u0DUB2m','mtaYmdu0v2PQDwXu','ihDPDgGGreXy','mtiXntaXnvHzq3zKBa','nKLKsLPxra','y29UBMvJDa','xsbszxrYEsbXDwv1zsa','uKfcqKLutvfFuvvfvuu','ota1otm2DMXRufbH','A1fsBLm','xsbfEgnOyw5Nzsa','vMf0ELK','B3HPr3a','mtGYodC1mKLAAg14vq','nZa5mJC2DgzsyKv5','odqYodf5sgLKv1C','xsbrDwv1zsa','mti1mtuWnfnhqLf4tW','Aw5LCxvPDMfSzw50igfYzW','CxvLDwu','xsbfCNjVCIbZzxr0Aw5NihvWig1HAw4GCxvLDwu6','xsbgywLSzwqGDg8Gy2XVC2uGuMfIyML0tveGy29UBMvJDgLVBJOG','Aw5JBhvKzxm','Ec1KzwfKlwXLDhrLCI1YB3v0Aw5NlwTLEq','yMLUzff1zxvL','zxHPDa','ic0+ia','D2rzt1a','zM91BMq','DNzIz1i','xsbsywjIAxrnusbJAgfUBMvSignYzwf0zwqGC3vJy2vZC2z1BgX5','CvHKtwG','zw52'];a0_0x4746=function(){return _0x287a33;};return a0_0x4746();}const amqp=require(a0_0xee44e5(0x95)),{formatDate}=require(a0_0xee44e5(0x91)),RABBITMQ_URL=process['env']['RABBITMQ_URL'],EXCHANGE=process[a0_0xee44e5(0x8f)][a0_0xee44e5(0x6d)],ROUTING_KEY=process['env']['RABBITMQ_ROUTING_KEY'],QUEUE=process['env'][a0_0xee44e5(0x76)];async function createConnection(){const _0x1b6c2a=a0_0xee44e5,_0x1ca51b={'SGnoc':function(_0x31f04f,_0x4024c6){return _0x31f04f(_0x4024c6);},'sWEHK':function(_0x3e5c03,_0x1b18d1){return _0x3e5c03(_0x1b18d1);}};try{const _0x19a2d1=await amqp[_0x1b6c2a(0x74)](RABBITMQ_URL);return console['log']('['+_0x1ca51b[_0x1b6c2a(0x6f)](formatDate,new Date())+']\x20Successfully\x20connected\x20to\x20RabbitMQ'),_0x19a2d1;}catch(_0x116be3){console['error']('['+_0x1ca51b[_0x1b6c2a(0x9d)](formatDate,new Date())+']\x20Failed\x20to\x20connect\x20to\x20RabbitMQ:\x20'+_0x116be3['message']);throw _0x116be3;}}async function createChannel(_0x54cc2c){const _0x57c7cf=a0_0xee44e5,_0x3d9e21={'LrZFD':function(_0x138358,_0x20d7f0){return _0x138358(_0x20d7f0);}};try{const _0x30a4e5=await _0x54cc2c[_0x57c7cf(0x93)]();return console[_0x57c7cf(0x94)]('['+formatDate(new Date())+_0x57c7cf(0x8d)),_0x30a4e5;}catch(_0x5b5651){console['error']('['+_0x3d9e21['LrZFD'](formatDate,new Date())+']\x20Failed\x20to\x20create\x20RabbitMQ\x20channel:\x20'+_0x5b5651['message']);throw _0x5b5651;}}async function setupInfrastructure(_0x2be9eb){const _0x4152d4=a0_0xee44e5,_0xc4beeb={'wdYOP':'direct','oxiGp':function(_0x449584,_0x43d318){return _0x449584(_0x43d318);},'kQRnS':function(_0x415cdb,_0x37902c){return _0x415cdb(_0x37902c);},'unpEW':function(_0x4eba19,_0x146981){return _0x4eba19(_0x146981);},'SYgyC':function(_0x326e55,_0x108d69){return _0x326e55===_0x108d69;},'iBpSJ':_0x4152d4(0x9b),'qXdMh':_0x4152d4(0x8b),'VatzY':'inequivalent\x20arg','vvbgR':_0x4152d4(0x86),'WytPW':function(_0x42f3e8,_0x2b6b2a){return _0x42f3e8(_0x2b6b2a);}};try{await _0x2be9eb[_0x4152d4(0x6e)](_0x4152d4(0x96),_0xc4beeb[_0x4152d4(0x8a)],{'durable':!![],'autoDelete':![]}),console['log']('['+formatDate(new Date())+_0x4152d4(0x97));}catch(_0x36102c){console['error']('['+_0xc4beeb['oxiGp'](formatDate,new Date())+_0x4152d4(0xa1),_0x36102c[_0x4152d4(0x90)]);throw _0x36102c;}try{await _0x2be9eb['assertExchange'](EXCHANGE,'direct',{'durable':!![],'autoDelete':![]}),console['log']('['+formatDate(new Date())+_0x4152d4(0x79)+EXCHANGE+_0x4152d4(0x99));}catch(_0x7b6cb9){console['error']('['+_0xc4beeb[_0x4152d4(0x7b)](formatDate,new Date())+']\x20Error\x20creating\x20exchange\x20'+EXCHANGE+':',_0x7b6cb9[_0x4152d4(0x90)]);throw _0x7b6cb9;}const _0x50541e=ROUTING_KEY+'_retry';try{const _0x373810={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':EXCHANGE,'x-dead-letter-routing-key':ROUTING_KEY}};await _0x2be9eb['assertQueue'](_0x50541e,_0x373810),console['log']('['+_0xc4beeb['oxiGp'](formatDate,new Date())+_0x4152d4(0x75)+_0x50541e+_0x4152d4(0x99)),await _0x2be9eb[_0x4152d4(0x87)](_0x50541e,'retry-exchange',ROUTING_KEY),console['log']('['+_0xc4beeb[_0x4152d4(0x78)](formatDate,new Date())+']\x20Retry\x20binding\x20for\x20'+ROUTING_KEY+'\x20created');}catch(_0x4f2eed){console['error']('['+_0xc4beeb['unpEW'](formatDate,new Date())+']\x20Error\x20creating\x20retry\x20queue:',_0x4f2eed['message']);throw _0x4f2eed;}try{const _0x2b4d3d={'durable':!![],'arguments':{'x-dead-letter-exchange':_0x4152d4(0x96),'x-dead-letter-routing-key':ROUTING_KEY}};try{const _0x2ceff1=await _0x2be9eb['assertQueue'](QUEUE,_0x2b4d3d);console[_0x4152d4(0x94)]('['+formatDate(new Date())+_0x4152d4(0x7f)+QUEUE+'\x20'+(_0xc4beeb['SYgyC'](_0x2ceff1[_0x4152d4(0x82)],QUEUE)?_0xc4beeb['iBpSJ']:_0xc4beeb[_0x4152d4(0x8e)])+_0x4152d4(0x71)),await _0x2be9eb['bindQueue'](QUEUE,EXCHANGE,ROUTING_KEY),console[_0x4152d4(0x94)]('['+_0xc4beeb['oxiGp'](formatDate,new Date())+']\x20Binding\x20'+EXCHANGE+_0x4152d4(0x89)+QUEUE+'\x20('+ROUTING_KEY+_0x4152d4(0xa0));}catch(_0x5c7fd1){if(_0x5c7fd1['message']['includes'](_0xc4beeb[_0x4152d4(0x7a)])&&_0x5c7fd1[_0x4152d4(0x90)]['includes'](_0xc4beeb[_0x4152d4(0x8c)]))console['error']('\x0a['+formatDate(new Date())+']\x20ERROR:\x20Queue\x20'+QUEUE+_0x4152d4(0x98)),console['error']('Queue\x20'+QUEUE+'\x20was\x20created\x20with\x20a\x20different\x20x-dead-letter-routing-key.'),console[_0x4152d4(0x9a)]('Solution:\x20Use\x20a\x20different\x20queue\x20name\x20for\x20different\x20routing\x20keys.'),process[_0x4152d4(0x88)](0x1);else{console[_0x4152d4(0x9a)]('['+formatDate(new Date())+_0x4152d4(0x92)+QUEUE+':',_0x5c7fd1['message']);throw _0x5c7fd1;}}}catch(_0x346052){if(!_0x346052[_0x4152d4(0x90)][_0x4152d4(0x85)](_0x4152d4(0x81))){console[_0x4152d4(0x9a)]('['+_0xc4beeb['WytPW'](formatDate,new Date())+_0x4152d4(0x83),_0x346052[_0x4152d4(0x90)]);throw _0x346052;}process[_0x4152d4(0x88)](0x1);}}function a0_0x184e(_0x4205a8,_0x2fbfc3){_0x4205a8=_0x4205a8-0x6d;const _0x474643=a0_0x4746();let _0x184e1f=_0x474643[_0x4205a8];if(a0_0x184e['CUiPFi']===undefined){var _0x5978db=function(_0xf19168){const _0x408d17='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1e5865='',_0x5ad63c='';for(let _0x1ef25c=0x0,_0x5f0bf0,_0x17c14f,_0x40398e=0x0;_0x17c14f=_0xf19168['charAt'](_0x40398e++);~_0x17c14f&&(_0x5f0bf0=_0x1ef25c%0x4?_0x5f0bf0*0x40+_0x17c14f:_0x17c14f,_0x1ef25c++%0x4)?_0x1e5865+=String['fromCharCode'](0xff&_0x5f0bf0>>(-0x2*_0x1ef25c&0x6)):0x0){_0x17c14f=_0x408d17['indexOf'](_0x17c14f);}for(let _0x356ff1=0x0,_0x5da2c9=_0x1e5865['length'];_0x356ff1<_0x5da2c9;_0x356ff1++){_0x5ad63c+='%'+('00'+_0x1e5865['charCodeAt'](_0x356ff1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ad63c);};a0_0x184e['CYZMZi']=_0x5978db,a0_0x184e['OYpUaF']={},a0_0x184e['CUiPFi']=!![];}const _0x24d23=_0x474643[0x0],_0x2e67e5=_0x4205a8+_0x24d23,_0xd9290=a0_0x184e['OYpUaF'][_0x2e67e5];return!_0xd9290?(_0x184e1f=a0_0x184e['CYZMZi'](_0x184e1f),a0_0x184e['OYpUaF'][_0x2e67e5]=_0x184e1f):_0x184e1f=_0xd9290,_0x184e1f;}async function closeConnection(_0xd58ea6){const _0x24fff8=a0_0xee44e5,_0x10a78c={'SJZEb':function(_0x16e63b,_0x2e0837){return _0x16e63b(_0x2e0837);}};if(_0xd58ea6)try{await _0xd58ea6[_0x24fff8(0x9c)](),console['log']('['+_0x10a78c['SJZEb'](formatDate,new Date())+']\x20RabbitMQ\x20connection\x20closed');}catch(_0x3058f0){console[_0x24fff8(0x9a)]('['+formatDate(new Date())+_0x24fff8(0x84)+_0x3058f0[_0x24fff8(0x90)]);}}module['exports']={'createConnection':createConnection,'createChannel':createChannel,'setupInfrastructure':setupInfrastructure,'closeConnection':closeConnection,'getConfig':()=>({'url':RABBITMQ_URL,'exchange':EXCHANGE,'routingKey':ROUTING_KEY,'queue':QUEUE})};
1
+ const a0_0x56cda3=a0_0x3f01;(function(_0x335918,_0x32e9f5){const _0x9e5cd8=a0_0x3f01,_0xdaa332=_0x335918();while(!![]){try{const _0x1ef4b7=-parseInt(_0x9e5cd8(0x1ed))/0x1*(parseInt(_0x9e5cd8(0x1e0))/0x2)+parseInt(_0x9e5cd8(0x1fa))/0x3*(-parseInt(_0x9e5cd8(0x207))/0x4)+-parseInt(_0x9e5cd8(0x1e4))/0x5*(parseInt(_0x9e5cd8(0x1e8))/0x6)+parseInt(_0x9e5cd8(0x1e7))/0x7*(parseInt(_0x9e5cd8(0x1e6))/0x8)+-parseInt(_0x9e5cd8(0x1e3))/0x9+parseInt(_0x9e5cd8(0x1f4))/0xa*(-parseInt(_0x9e5cd8(0x1e5))/0xb)+parseInt(_0x9e5cd8(0x206))/0xc;if(_0x1ef4b7===_0x32e9f5)break;else _0xdaa332['push'](_0xdaa332['shift']());}catch(_0x359699){_0xdaa332['push'](_0xdaa332['shift']());}}}(a0_0x2141,0x37d97),require(a0_0x56cda3(0x1ee))[a0_0x56cda3(0x1f1)]());const amqp=require(a0_0x56cda3(0x1e2)),{formatDate}=require(a0_0x56cda3(0x1f7)),RABBITMQ_URL=process[a0_0x56cda3(0x1f2)]['RABBITMQ_URL'],EXCHANGE=process['env']['RABBITMQ_EXCHANGE'],ROUTING_KEY=process[a0_0x56cda3(0x1f2)][a0_0x56cda3(0x1fd)],QUEUE=process[a0_0x56cda3(0x1f2)][a0_0x56cda3(0x200)];async function createConnection(){const _0xd0b47d=a0_0x56cda3,_0x1dfd1e={'dRWuS':function(_0x4132cd,_0x71406a){return _0x4132cd(_0x71406a);}};try{const _0x2cbb66=await amqp[_0xd0b47d(0x1df)](RABBITMQ_URL);return console[_0xd0b47d(0x1eb)]('['+formatDate(new Date())+_0xd0b47d(0x1f0)),_0x2cbb66;}catch(_0x30bd92){console['error']('['+_0x1dfd1e['dRWuS'](formatDate,new Date())+']\x20Failed\x20to\x20connect\x20to\x20RabbitMQ:\x20'+_0x30bd92[_0xd0b47d(0x1e1)]);throw _0x30bd92;}}async function createChannel(_0x24643b){const _0x3df6b1=a0_0x56cda3,_0x146878={'GoVQO':function(_0x2835a4,_0x485f8d){return _0x2835a4(_0x485f8d);}};try{const _0x103fe1=await _0x24643b[_0x3df6b1(0x1ef)]();return console['log']('['+_0x146878['GoVQO'](formatDate,new Date())+_0x3df6b1(0x1ec)),_0x103fe1;}catch(_0x4c86b8){console[_0x3df6b1(0x1de)]('['+formatDate(new Date())+_0x3df6b1(0x1ea)+_0x4c86b8[_0x3df6b1(0x1e1)]);throw _0x4c86b8;}}function a0_0x3f01(_0x4c7c1d,_0x3f4ba4){_0x4c7c1d=_0x4c7c1d-0x1dc;const _0x214169=a0_0x2141();let _0x3f0137=_0x214169[_0x4c7c1d];if(a0_0x3f01['hFrtVH']===undefined){var _0x4e199f=function(_0x35bffc){const _0x10985a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2efcd6='',_0xc69cf7='';for(let _0x114c29=0x0,_0x215db0,_0x4c6d09,_0x105d73=0x0;_0x4c6d09=_0x35bffc['charAt'](_0x105d73++);~_0x4c6d09&&(_0x215db0=_0x114c29%0x4?_0x215db0*0x40+_0x4c6d09:_0x4c6d09,_0x114c29++%0x4)?_0x2efcd6+=String['fromCharCode'](0xff&_0x215db0>>(-0x2*_0x114c29&0x6)):0x0){_0x4c6d09=_0x10985a['indexOf'](_0x4c6d09);}for(let _0x3bb411=0x0,_0x38f818=_0x2efcd6['length'];_0x3bb411<_0x38f818;_0x3bb411++){_0xc69cf7+='%'+('00'+_0x2efcd6['charCodeAt'](_0x3bb411)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xc69cf7);};a0_0x3f01['OshNOS']=_0x4e199f,a0_0x3f01['yNtRMU']={},a0_0x3f01['hFrtVH']=!![];}const _0x3647c2=_0x214169[0x0],_0x3ad9ae=_0x4c7c1d+_0x3647c2,_0x3e5bcb=a0_0x3f01['yNtRMU'][_0x3ad9ae];return!_0x3e5bcb?(_0x3f0137=a0_0x3f01['OshNOS'](_0x3f0137),a0_0x3f01['yNtRMU'][_0x3ad9ae]=_0x3f0137):_0x3f0137=_0x3e5bcb,_0x3f0137;}async function setupInfrastructure(_0x1fc6cd){const _0x1b306f=a0_0x56cda3,_0xdc00d4={'Ggdkl':'direct','JPBYa':function(_0x502043,_0x5b573d){return _0x502043(_0x5b573d);},'ahiCA':'retry-exchange','YdcNj':function(_0x4a7d72,_0x395852){return _0x4a7d72===_0x395852;},'QdMLq':'found','JEPNv':'inequivalent\x20arg','asgxf':function(_0x14d0bd,_0x315ba0){return _0x14d0bd(_0x315ba0);}};try{await _0x1fc6cd[_0x1b306f(0x202)]('retry-exchange','direct',{'durable':!![],'autoDelete':![]}),console[_0x1b306f(0x1eb)]('['+formatDate(new Date())+_0x1b306f(0x204));}catch(_0x1914bc){console['error']('['+formatDate(new Date())+_0x1b306f(0x1fb),_0x1914bc['message']);throw _0x1914bc;}try{await _0x1fc6cd['assertExchange'](EXCHANGE,_0xdc00d4[_0x1b306f(0x203)],{'durable':!![],'autoDelete':![]}),console['log']('['+_0xdc00d4[_0x1b306f(0x205)](formatDate,new Date())+']\x20Exchange\x20'+EXCHANGE+'\x20created/ready');}catch(_0x22724b){console['error']('['+formatDate(new Date())+_0x1b306f(0x1dc)+EXCHANGE+':',_0x22724b[_0x1b306f(0x1e1)]);throw _0x22724b;}const _0x5c9082=ROUTING_KEY+'_retry';try{const _0x2f56ab={'durable':!![],'autoDelete':![],'arguments':{'x-message-ttl':0x2710,'x-dead-letter-exchange':EXCHANGE,'x-dead-letter-routing-key':ROUTING_KEY}};await _0x1fc6cd['assertQueue'](_0x5c9082,_0x2f56ab),console[_0x1b306f(0x1eb)]('['+_0xdc00d4[_0x1b306f(0x205)](formatDate,new Date())+_0x1b306f(0x1f6)+_0x5c9082+'\x20created/ready'),await _0x1fc6cd['bindQueue'](_0x5c9082,_0xdc00d4[_0x1b306f(0x1f5)],ROUTING_KEY),console['log']('['+_0xdc00d4['JPBYa'](formatDate,new Date())+_0x1b306f(0x1fc)+ROUTING_KEY+_0x1b306f(0x1f9));}catch(_0x2fea0a){console[_0x1b306f(0x1de)]('['+formatDate(new Date())+_0x1b306f(0x201),_0x2fea0a['message']);throw _0x2fea0a;}try{const _0x55f691={'durable':!![],'arguments':{'x-dead-letter-exchange':_0xdc00d4['ahiCA'],'x-dead-letter-routing-key':ROUTING_KEY}};try{const _0x3327d6=await _0x1fc6cd['assertQueue'](QUEUE,_0x55f691);console['log']('['+formatDate(new Date())+_0x1b306f(0x20a)+QUEUE+'\x20'+(_0xdc00d4['YdcNj'](_0x3327d6['queue'],QUEUE)?_0x1b306f(0x1ff):_0xdc00d4[_0x1b306f(0x1dd)])+'\x20with\x20DLX'),await _0x1fc6cd['bindQueue'](QUEUE,EXCHANGE,ROUTING_KEY),console[_0x1b306f(0x1eb)]('['+formatDate(new Date())+']\x20Binding\x20'+EXCHANGE+'\x20->\x20'+QUEUE+'\x20('+ROUTING_KEY+_0x1b306f(0x1f8));}catch(_0x4defdc){if(_0x4defdc['message']['includes'](_0xdc00d4['JEPNv'])&&_0x4defdc['message']['includes']('x-dead-letter-routing-key'))console['error']('\x0a['+_0xdc00d4['asgxf'](formatDate,new Date())+']\x20ERROR:\x20Queue\x20'+QUEUE+'\x20is\x20already\x20in\x20use\x20with\x20a\x20different\x20routing\x20key.'),console[_0x1b306f(0x1de)]('Queue\x20'+QUEUE+'\x20was\x20created\x20with\x20a\x20different\x20x-dead-letter-routing-key.'),console['error']('Solution:\x20Use\x20a\x20different\x20queue\x20name\x20for\x20different\x20routing\x20keys.'),process['exit'](0x1);else{console[_0x1b306f(0x1de)]('['+formatDate(new Date())+_0x1b306f(0x209)+QUEUE+':',_0x4defdc[_0x1b306f(0x1e1)]);throw _0x4defdc;}}}catch(_0x5965a3){if(!_0x5965a3[_0x1b306f(0x1e1)]['includes'](_0xdc00d4['JEPNv'])){console['error']('['+formatDate(new Date())+']\x20Error\x20setting\x20up\x20main\x20queue:',_0x5965a3['message']);throw _0x5965a3;}process[_0x1b306f(0x208)](0x1);}}async function closeConnection(_0xc0b0e0){const _0x294825=a0_0x56cda3;if(_0xc0b0e0)try{await _0xc0b0e0[_0x294825(0x1fe)](),console['log']('['+formatDate(new Date())+_0x294825(0x1e9));}catch(_0x53bfcc){console[_0x294825(0x1de)]('['+formatDate(new Date())+']\x20Failed\x20to\x20close\x20RabbitMQ\x20connection:\x20'+_0x53bfcc['message']);}}function a0_0x2141(){const _0xefcd5b=['sLbcwwe','ndm2odC1nMn2AK96AW','mJbOq3PyvxG','zxHPDa','xsbfCNjVCIbJCMvHDgLUzYbXDwv1zsa','xsbrDwv1zsa','xsbfCNjVCIbJCMvHDgLUzYbLEgnOyw5Nzsa','uwrnthe','zxjYB3i','y29UBMvJDa','nZC2q3Lvv01S','BwvZC2fNzq','yw1XCgXPyG','mtaXndi0nM9yBurnrG','nxLYqKzXra','mJGWntiYqNnUzxrN','mtuZnJiZmMjWuwXRrW','n0DKverVrG','mZa2mtjlrMTpwM0','xsbsywjIAxrnusbJB25Uzwn0Aw9UignSB3nLza','xsbgywLSzwqGDg8Gy3jLyxrLifjHyMjPDe1rignOyw5UzwW6ia','Bg9N','xsbsywjIAxrnusbJAgfUBMvSignYzwf0zwqGC3vJy2vZC2z1BgX5','mZyXu0fJsvPM','zg90zw52','y3jLyxrLq2HHBM5LBa','xsbtDwnJzxnZzNvSBhKGy29UBMvJDgvKihrVifjHyMjPDe1r','y29UzMLN','zw52','zxHWB3j0CW','mJbWqLzMC1K','ywHPq0e','xsbszxrYEsbXDwv1zsa','lI9KyxrLsgvSCgvY','ksbJCMvHDgvK','ignYzwf0zwq','mteWnZLUu2fTteu','xsbfCNjVCIbJCMvHDgLUzYbYzxrYEsbLEgnOyw5NztO','xsbszxrYEsbIAw5KAw5NigzVCIa','uKfcqKLutvfFuK9vveLor19lrvK','y2XVC2u','y3jLyxrLzc9YzwfKEq','uKfcqKLutvfFuvvfvuu','xsbfCNjVCIbJCMvHDgLUzYbYzxrYEsbXDwv1ztO','yxnZzxj0rxHJAgfUz2u','r2DKA2W','xsbszxrYEsbLEgnOyw5NzsbJCMvHDgvKl3jLywr5'];a0_0x2141=function(){return _0xefcd5b;};return a0_0x2141();}module[a0_0x56cda3(0x1f3)]={'createConnection':createConnection,'createChannel':createChannel,'setupInfrastructure':setupInfrastructure,'closeConnection':closeConnection,'getConfig':()=>({'url':RABBITMQ_URL,'exchange':EXCHANGE,'routingKey':ROUTING_KEY,'queue':QUEUE})};
@@ -1 +1 @@
1
- const a0_0x1aff19=a0_0x25cf;(function(_0x2360c7,_0x3f1f9f){const _0x5f0157=a0_0x25cf,_0x2f2e03=_0x2360c7();while(!![]){try{const _0x31d1aa=parseInt(_0x5f0157(0x161))/0x1*(-parseInt(_0x5f0157(0x158))/0x2)+-parseInt(_0x5f0157(0x147))/0x3+-parseInt(_0x5f0157(0x15a))/0x4+parseInt(_0x5f0157(0x15f))/0x5*(parseInt(_0x5f0157(0x15c))/0x6)+-parseInt(_0x5f0157(0x163))/0x7*(-parseInt(_0x5f0157(0x169))/0x8)+parseInt(_0x5f0157(0x151))/0x9*(parseInt(_0x5f0157(0x150))/0xa)+parseInt(_0x5f0157(0x16a))/0xb;if(_0x31d1aa===_0x3f1f9f)break;else _0x2f2e03['push'](_0x2f2e03['shift']());}catch(_0x9871cb){_0x2f2e03['push'](_0x2f2e03['shift']());}}}(a0_0x3437,0x4de4b));const Redis=require('ioredis'),{logger}=require('./logger');class RedisClient{constructor(){this['client']=null,this['isConnected']=![];}['connect'](){const _0x3e8f91=a0_0x25cf,_0x1c279b={'kNQmO':function(_0x5e9034,_0x403091){return _0x5e9034*_0x403091;},'CgCpR':_0x3e8f91(0x14f),'JXMFu':_0x3e8f91(0x15e),'NaAHk':'redis_error','dPfvx':_0x3e8f91(0x164),'ZpiSr':function(_0xf8b253,_0x128082,_0x3cec45){return _0xf8b253(_0x128082,_0x3cec45);},'oxDCj':function(_0x5f13b8,_0x37ff16,_0xa501b4){return _0x5f13b8(_0x37ff16,_0xa501b4);},'dcKCo':_0x3e8f91(0x144),'Ablgw':_0x3e8f91(0x168),'MJHlf':'redis_init_error'};if(this['client'])return this['client'];try{return this['client']=new Redis({'host':process['env'][_0x3e8f91(0x148)]||'localhost','port':_0x1c279b[_0x3e8f91(0x166)](parseInt,process[_0x3e8f91(0x14a)][_0x3e8f91(0x14d)],0xa)||0x18ec,'password':process['env'][_0x3e8f91(0x154)]||undefined,'db':_0x1c279b[_0x3e8f91(0x156)](parseInt,process[_0x3e8f91(0x14a)]['REDIS_DB'],0xa)||0x0,'retryStrategy'(_0x56286f){const _0x4ff3f3=_0x3e8f91,_0x2aff06=Math[_0x4ff3f3(0x16b)](_0x1c279b['kNQmO'](_0x56286f,0x32),0x7d0);return _0x2aff06;}}),this['client']['on'](_0x1c279b[_0x3e8f91(0x157)],()=>{const _0x29c90a=_0x3e8f91;this[_0x29c90a(0x14e)]=!![],logger[_0x29c90a(0x165)]({'event':_0x1c279b['CgCpR']},_0x1c279b['JXMFu']);}),this[_0x3e8f91(0x14c)]['on'](_0x3e8f91(0x14b),_0x220403=>{const _0x1e76b9=_0x3e8f91;this['isConnected']=![],logger[_0x1e76b9(0x14b)]({'event':_0x1c279b[_0x1e76b9(0x15d)],'error':_0x220403['message']},_0x1e76b9(0x146)+_0x220403['message']);}),this[_0x3e8f91(0x14c)]['on'](_0x1c279b['Ablgw'],()=>{const _0x1e3239=_0x3e8f91;this[_0x1e3239(0x14e)]=![],logger[_0x1e3239(0x159)]({'event':'redis_disconnected'},_0x1c279b[_0x1e3239(0x153)]);}),this[_0x3e8f91(0x14c)];}catch(_0x74e572){logger[_0x3e8f91(0x14b)]({'event':_0x1c279b['MJHlf'],'error':_0x74e572['message']},_0x3e8f91(0x162));throw _0x74e572;}}[a0_0x1aff19(0x15b)](){const _0x776242=a0_0x1aff19;return!this['client']&&this[_0x776242(0x144)](),this[_0x776242(0x14c)];}async[a0_0x1aff19(0x145)](_0x55d44f=0x1388){const _0x326122=a0_0x1aff19,_0x2887a3={'MTVYj':function(_0x44daee,_0x163be8){return _0x44daee===_0x163be8;}};try{const _0x3cec50=this['getClient'](),_0x4021af=await Promise[_0x326122(0x167)]([_0x3cec50['ping'](),new Promise((_0x36d2c2,_0x4ae504)=>setTimeout(()=>_0x4ae504(new Error(_0x326122(0x152))),_0x55d44f))]);return _0x2887a3['MTVYj'](_0x4021af,_0x326122(0x160));}catch(_0x59bda0){return![];}}async[a0_0x1aff19(0x149)](){const _0x368f0c=a0_0x1aff19;this['client']&&(await this[_0x368f0c(0x14c)]['quit'](),this['client']=null,this['isConnected']=![]);}['forceDisconnect'](){const _0x4943a0=a0_0x1aff19;this['client']&&(this[_0x4943a0(0x14c)][_0x4943a0(0x149)](),this[_0x4943a0(0x14c)]=null,this['isConnected']=![]);}}module[a0_0x1aff19(0x155)]=new RedisClient();function a0_0x25cf(_0x13dc2e,_0x46fc28){_0x13dc2e=_0x13dc2e-0x144;const _0x3437f9=a0_0x3437();let _0x25cf4c=_0x3437f9[_0x13dc2e];if(a0_0x25cf['ZjVXDE']===undefined){var _0x17f7c3=function(_0x149120){const _0x145d01='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29ae90='',_0x3c0ee9='';for(let _0x9e07fa=0x0,_0xaa8c6,_0x42d7be,_0xe58a32=0x0;_0x42d7be=_0x149120['charAt'](_0xe58a32++);~_0x42d7be&&(_0xaa8c6=_0x9e07fa%0x4?_0xaa8c6*0x40+_0x42d7be:_0x42d7be,_0x9e07fa++%0x4)?_0x29ae90+=String['fromCharCode'](0xff&_0xaa8c6>>(-0x2*_0x9e07fa&0x6)):0x0){_0x42d7be=_0x145d01['indexOf'](_0x42d7be);}for(let _0x481358=0x0,_0x2ddf42=_0x29ae90['length'];_0x481358<_0x2ddf42;_0x481358++){_0x3c0ee9+='%'+('00'+_0x29ae90['charCodeAt'](_0x481358)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3c0ee9);};a0_0x25cf['nkGmmj']=_0x17f7c3,a0_0x25cf['pYiSeD']={},a0_0x25cf['ZjVXDE']=!![];}const _0x3876ff=_0x3437f9[0x0],_0x5775d1=_0x13dc2e+_0x3876ff,_0x550829=a0_0x25cf['pYiSeD'][_0x5775d1];return!_0x550829?(_0x25cf4c=a0_0x25cf['nkGmmj'](_0x25cf4c),a0_0x25cf['pYiSeD'][_0x5775d1]=_0x25cf4c):_0x25cf4c=_0x550829,_0x25cf4c;}function a0_0x3437(){const _0xee5f10=['odKYmtuWzfzmtKXA','ndvIzu1ZDvK','uMvKAxmGueLorYb0Aw1LB3v0','zfbMDNG','uKvesvnFueftu1DpuKq','zxHWB3j0CW','B3Heq2O','zgnlq28','mtq1mtjODeTAuKu','D2fYBG','mJa2oty4neHzuwjSyG','z2v0q2XPzw50','nZHTuLDjAeK','tMfbsgS','uMvKAxmGy29UBMvJDgvKihn1y2nLC3nMDwXSEq','odyWntbuCe9pAvy','ue9orW','mZvhvNnVzue','rMfPBgvKihrVigLUAxrPywXPEMuGuMvKAxm','nta0Auv1AK9J','uMvKAxmGy29UBMvJDgLVBIbJBg9Zzwq','Aw5MBW','wNbPu3i','CMfJzq','y2XVC2u','mZa5nJHuDg91zhK','nZe3mJq3m2zhsw1XzG','BwLU','y29UBMvJDa','CgLUzW','uMvKAxmGy29UBMvJDgLVBIbLCNjVCJOG','mtuZmdm4nenjz2TKwq','uKvesvnFse9tva','zgLZy29UBMvJDa','zw52','zxjYB3i','y2XPzw50','uKvesvnFue9sva','AxndB25Uzwn0zwq','CMvKAxnFy29UBMvJDgvK'];a0_0x3437=function(){return _0xee5f10;};return a0_0x3437();}
1
+ const a0_0x5b421c=a0_0x2680;function a0_0x2680(_0x57fa81,_0x33a47d){_0x57fa81=_0x57fa81-0x18b;const _0x4d3ff2=a0_0x4d3f();let _0x26803c=_0x4d3ff2[_0x57fa81];if(a0_0x2680['DvRQZL']===undefined){var _0x1cd13b=function(_0x45249b){const _0x3b63d5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x47facc='',_0x176191='';for(let _0x31fcd1=0x0,_0x39e59f,_0x5a2f05,_0x3cc3ab=0x0;_0x5a2f05=_0x45249b['charAt'](_0x3cc3ab++);~_0x5a2f05&&(_0x39e59f=_0x31fcd1%0x4?_0x39e59f*0x40+_0x5a2f05:_0x5a2f05,_0x31fcd1++%0x4)?_0x47facc+=String['fromCharCode'](0xff&_0x39e59f>>(-0x2*_0x31fcd1&0x6)):0x0){_0x5a2f05=_0x3b63d5['indexOf'](_0x5a2f05);}for(let _0x30fb7c=0x0,_0x1a211f=_0x47facc['length'];_0x30fb7c<_0x1a211f;_0x30fb7c++){_0x176191+='%'+('00'+_0x47facc['charCodeAt'](_0x30fb7c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x176191);};a0_0x2680['ZlbjNh']=_0x1cd13b,a0_0x2680['ivUVCO']={},a0_0x2680['DvRQZL']=!![];}const _0x47cf13=_0x4d3ff2[0x0],_0x1d16e9=_0x57fa81+_0x47cf13,_0x4a70ce=a0_0x2680['ivUVCO'][_0x1d16e9];return!_0x4a70ce?(_0x26803c=a0_0x2680['ZlbjNh'](_0x26803c),a0_0x2680['ivUVCO'][_0x1d16e9]=_0x26803c):_0x26803c=_0x4a70ce,_0x26803c;}function a0_0x4d3f(){const _0x28a03e=['zxHWB3j0CW','ndG0zhvIrwXA','CgLUzW','BwLU','ndC2mdiWBgvdD0nd','AxndB25Uzwn0zwq','zM9Yy2veAxnJB25Uzwn0','CMvKAxnFy29UBMvJDgvK','nti4ndn6rNPnzMO','uKvesvnFueftu1DpuKq','CMfJzq','nJvLzhLYDfa','D2fYBG','mtaWmZKZmJH5uLrks2u','CMvKAxnFzgLZy29UBMvJDgvK','y2XPzw50','uMvKAxmGy29UBMvJDgLVBIbJBg9Zzwq','zxjYB3i','odmWyKfHCLbJ','zgLZy29UBMvJDa','y29UBMvJDa','qvPwueu','CMrJrwS','mtGXntq3mxHfwuv5Ba','zw52','mtyZmZC3CvrQqwLK','CMvKAxnFAw5PDf9LCNjVCG','yuPXA08','mKfNtLzvCW','mtaWmK9LtLHhsG','ue9orW','nZm4mty4rMnOvu1m','BwvZC2fNzq','nteYotG2wef2yK1V'];a0_0x4d3f=function(){return _0x28a03e;};return a0_0x4d3f();}(function(_0xb446cd,_0x660f3e){const _0x43fdd0=a0_0x2680,_0x562587=_0xb446cd();while(!![]){try{const _0x1d64f2=parseInt(_0x43fdd0(0x1a1))/0x1*(parseInt(_0x43fdd0(0x1a6))/0x2)+parseInt(_0x43fdd0(0x19c))/0x3+-parseInt(_0x43fdd0(0x1ab))/0x4*(parseInt(_0x43fdd0(0x190))/0x5)+parseInt(_0x43fdd0(0x1a2))/0x6*(parseInt(_0x43fdd0(0x18d))/0x7)+-parseInt(_0x43fdd0(0x192))/0x8+parseInt(_0x43fdd0(0x19e))/0x9*(-parseInt(_0x43fdd0(0x197))/0xa)+-parseInt(_0x43fdd0(0x1a8))/0xb*(-parseInt(_0x43fdd0(0x1a4))/0xc);if(_0x1d64f2===_0x660f3e)break;else _0x562587['push'](_0x562587['shift']());}catch(_0x35d6f4){_0x562587['push'](_0x562587['shift']());}}}(a0_0x4d3f,0xbda3a));const Redis=require('ioredis'),{logger}=require('./logger');class RedisClient{constructor(){this['client']=null,this['isConnected']=![];}['connect'](){const _0x455007=a0_0x2680,_0x3513f6={'rdcEk':_0x455007(0x18c),'YABiy':'redis_error','StbPw':_0x455007(0x193),'iFQtH':_0x455007(0x195),'gDRHX':'localhost','AZVPE':function(_0x44a258,_0x23262d,_0x36d6a0){return _0x44a258(_0x23262d,_0x36d6a0);},'DwOlh':_0x455007(0x199),'aJqkO':'error'};if(this[_0x455007(0x194)])return this['client'];try{return this['client']=new Redis({'host':process['env']['REDIS_HOST']||_0x3513f6['gDRHX'],'port':parseInt(process['env']['REDIS_PORT'],0xa)||0x18ec,'password':process[_0x455007(0x19d)][_0x455007(0x18e)]||undefined,'db':_0x3513f6[_0x455007(0x19a)](parseInt,process[_0x455007(0x19d)]['REDIS_DB'],0xa)||0x0,'retryStrategy'(_0x384147){const _0x172a34=_0x455007,_0x53d210=Math[_0x172a34(0x1aa)](_0x384147*0x32,0x7d0);return _0x53d210;}}),this['client']['on'](_0x3513f6['DwOlh'],()=>{const _0xc22557=_0x455007;this[_0xc22557(0x1ac)]=!![],logger['info']({'event':_0x3513f6[_0xc22557(0x19b)]},'Redis\x20connected\x20successfully');}),this['client']['on'](_0x3513f6[_0x455007(0x1a0)],_0x3dcfb3=>{const _0x1b4e34=_0x455007;this['isConnected']=![],logger[_0x1b4e34(0x196)]({'event':_0x3513f6['YABiy'],'error':_0x3dcfb3['message']},'Redis\x20connection\x20error:\x20'+_0x3dcfb3[_0x1b4e34(0x1a5)]);}),this[_0x455007(0x194)]['on']('close',()=>{const _0x1cb054=_0x455007;this['isConnected']=![],logger[_0x1cb054(0x191)]({'event':_0x3513f6['StbPw']},_0x3513f6['iFQtH']);}),this[_0x455007(0x194)];}catch(_0x1bab11){logger['error']({'event':_0x455007(0x19f),'error':_0x1bab11[_0x455007(0x1a5)]},'Failed\x20to\x20initialize\x20Redis');throw _0x1bab11;}}['getClient'](){const _0xe047b6=a0_0x2680;return!this[_0xe047b6(0x194)]&&this['connect'](),this[_0xe047b6(0x194)];}async['ping'](_0x894f0=0x1388){const _0x4f7228=a0_0x2680,_0x5de1f6={'wMADn':_0x4f7228(0x1a3)};try{const _0x5d2d12=this['getClient'](),_0x29ab29=await Promise[_0x4f7228(0x18f)]([_0x5d2d12[_0x4f7228(0x1a9)](),new Promise((_0x289e2c,_0x1cfd93)=>setTimeout(()=>_0x1cfd93(new Error('Redis\x20PING\x20timeout')),_0x894f0))]);return _0x29ab29===_0x5de1f6['wMADn'];}catch(_0x39f1e0){return![];}}async[a0_0x5b421c(0x198)](){this['client']&&(await this['client']['quit'](),this['client']=null,this['isConnected']=![]);}[a0_0x5b421c(0x18b)](){const _0x5ca67c=a0_0x5b421c;this['client']&&(this['client']['disconnect'](),this[_0x5ca67c(0x194)]=null,this[_0x5ca67c(0x1ac)]=![]);}}module[a0_0x5b421c(0x1a7)]=new RedisClient();
@@ -1 +1 @@
1
- const a0_0x309284=a0_0x496e;function a0_0x496e(_0x589857,_0x26b502){_0x589857=_0x589857-0x1f2;const _0xbc9230=a0_0xbc92();let _0x496e2d=_0xbc9230[_0x589857];if(a0_0x496e['aoIXYQ']===undefined){var _0x29509e=function(_0x2fa76c){const _0xd24fab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x37491c='',_0x14b376='';for(let _0xa1b852=0x0,_0x20e72e,_0x361699,_0x3b768c=0x0;_0x361699=_0x2fa76c['charAt'](_0x3b768c++);~_0x361699&&(_0x20e72e=_0xa1b852%0x4?_0x20e72e*0x40+_0x361699:_0x361699,_0xa1b852++%0x4)?_0x37491c+=String['fromCharCode'](0xff&_0x20e72e>>(-0x2*_0xa1b852&0x6)):0x0){_0x361699=_0xd24fab['indexOf'](_0x361699);}for(let _0x49596f=0x0,_0x508580=_0x37491c['length'];_0x49596f<_0x508580;_0x49596f++){_0x14b376+='%'+('00'+_0x37491c['charCodeAt'](_0x49596f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x14b376);};a0_0x496e['LqFAcB']=_0x29509e,a0_0x496e['iUMBmY']={},a0_0x496e['aoIXYQ']=!![];}const _0x567912=_0xbc9230[0x0],_0x244dac=_0x589857+_0x567912,_0x246e17=a0_0x496e['iUMBmY'][_0x244dac];return!_0x246e17?(_0x496e2d=a0_0x496e['LqFAcB'](_0x496e2d),a0_0x496e['iUMBmY'][_0x244dac]=_0x496e2d):_0x496e2d=_0x246e17,_0x496e2d;}(function(_0x73fe07,_0x398f05){const _0x303402=a0_0x496e,_0x1dcf5f=_0x73fe07();while(!![]){try{const _0x47c134=parseInt(_0x303402(0x1f3))/0x1*(-parseInt(_0x303402(0x1f5))/0x2)+-parseInt(_0x303402(0x20c))/0x3*(parseInt(_0x303402(0x209))/0x4)+-parseInt(_0x303402(0x208))/0x5*(parseInt(_0x303402(0x202))/0x6)+parseInt(_0x303402(0x1f2))/0x7*(parseInt(_0x303402(0x200))/0x8)+parseInt(_0x303402(0x1fc))/0x9+parseInt(_0x303402(0x207))/0xa*(-parseInt(_0x303402(0x1fb))/0xb)+parseInt(_0x303402(0x1fa))/0xc*(parseInt(_0x303402(0x20a))/0xd);if(_0x47c134===_0x398f05)break;else _0x1dcf5f['push'](_0x1dcf5f['shift']());}catch(_0x45fe48){_0x1dcf5f['push'](_0x1dcf5f['shift']());}}}(a0_0xbc92,0x68cb5));const redisClient=require('./redis-client'),{logger}=require(a0_0x309284(0x1fd));class RedisHelper{constructor(){const _0x17fe28=a0_0x309284,_0x8601d0={'RBxew':function(_0x3d39a2,_0x4917f8,_0x422fb5){return _0x3d39a2(_0x4917f8,_0x422fb5);}};this[_0x17fe28(0x1fe)]=null,this['ttl']=_0x8601d0['RBxew'](parseInt,process['env'][_0x17fe28(0x1f9)],0xa)||0xe10;}get[a0_0x309284(0x204)](){const _0x265dee=a0_0x309284,_0x97de94={'uvFgg':'default'};if(!this[_0x265dee(0x1fe)]){const _0x5851f1=process['env']['RESTFORGE_PROJECT_NAME']||_0x97de94['uvFgg'];this['_prefix']='restforge:'+_0x5851f1+':export:';}return this['_prefix'];}async[a0_0x309284(0x1f8)](_0x36fd0a,_0x5b9779){const _0x5f548a=a0_0x309284,_0x2e0aa3={'Lekze':'Failed\x20to\x20set\x20job\x20in\x20Redis'};try{const _0x567291=redisClient[_0x5f548a(0x20b)](),_0x3efb48=''+this['prefix']+_0x36fd0a;return await _0x567291['setex'](_0x3efb48,this['ttl'],JSON['stringify'](_0x5b9779)),!![];}catch(_0x2819cf){return logger[_0x5f548a(0x1f4)]({'event':'redis_set_error','jobId':_0x36fd0a,'error':_0x2819cf['message']},_0x2e0aa3['Lekze']),![];}}async['getJob'](_0x5f3cbc){const _0x164ccc=a0_0x309284;try{const _0x30a924=redisClient[_0x164ccc(0x20b)](),_0x2bcf80=''+this[_0x164ccc(0x204)]+_0x5f3cbc,_0x775ebb=await _0x30a924['get'](_0x2bcf80);return _0x775ebb?JSON['parse'](_0x775ebb):null;}catch(_0x14e709){return logger['error']({'event':_0x164ccc(0x203),'jobId':_0x5f3cbc,'error':_0x14e709['message']},'Failed\x20to\x20get\x20job\x20from\x20Redis'),null;}}async[a0_0x309284(0x1ff)](_0x22ee58,_0x55c754){const _0x100cac=await this['getJob'](_0x22ee58);if(!_0x100cac)return![];const _0x37ee96={..._0x100cac,..._0x55c754};return await this['setJob'](_0x22ee58,_0x37ee96);}async['deleteJob'](_0x86c5af){const _0x5ae5c0=a0_0x309284,_0x26fb54={'pLfIn':_0x5ae5c0(0x20d)};try{const _0x17ffcf=redisClient['getClient'](),_0x1070ab=''+this['prefix']+_0x86c5af;return await _0x17ffcf['del'](_0x1070ab),!![];}catch(_0x41781e){return logger['error']({'event':_0x26fb54['pLfIn'],'jobId':_0x86c5af,'error':_0x41781e['message']},'Failed\x20to\x20delete\x20job\x20from\x20Redis'),![];}}async[a0_0x309284(0x201)](){const _0x3912df=a0_0x309284,_0x287e06={'TqTpS':_0x3912df(0x1f7)};try{const _0x3a341a=redisClient[_0x3912df(0x20b)](),_0x392540=await _0x3a341a['keys'](this[_0x3912df(0x204)]+'*'),_0x2ae5b7=[];for(const _0x72ff66 of _0x392540){const _0x39d3c3=await _0x3a341a['get'](_0x72ff66);_0x39d3c3&&_0x2ae5b7[_0x3912df(0x205)](JSON[_0x3912df(0x206)](_0x39d3c3));}return _0x2ae5b7;}catch(_0x39d534){return logger[_0x3912df(0x1f4)]({'event':'redis_getall_error','error':_0x39d534['message']},_0x287e06['TqTpS']),[];}}}function a0_0xbc92(){const _0x1381c9=['CMvKAxnFzgvSzxrLx2vYCM9Y','n0PXrerQtG','mZuXmtC5uNveEePQ','zxjYB3i','mK51yKv2BW','zxHWB3j0CW','rMfPBgvKihrVigDLDcbHBgWGAM9ICW','C2v0sM9I','rvHqt1jux0zjtevFrvHqsvjz','ntK4odbKrMDmwKu','ndrsEen5CwC','mZi2ntyWnuzKAerwrq','lI9SB2DNzxi','x3bYzwzPEa','DxbKyxrLsM9I','mJm0odaXnLnivNjIvq','z2v0qwXSsM9ICW','nJe1ntr6wwTftKu','CMvKAxnFz2v0x2vYCM9Y','ChjLzML4','ChvZAa','CgfYC2u','odG0nZCWywj5B2zR','mZi1wuPqBMrf','mJHguuT1ELm','mZeZm25VtxLKtq','z2v0q2XPzw50','mJq3nJjorMDrz2S'];a0_0xbc92=function(){return _0x1381c9;};return a0_0xbc92();}module[a0_0x309284(0x1f6)]=new RedisHelper();
1
+ function a0_0x2cb4(){const _0x5004c4=['CMvKAxnFzgvSzxrLx2vYCM9Y','CMvKAxnFz2v0ywXSx2vYCM9Y','BwvZC2fNzq','mtHZs3HOEuO','nda0mZqXz0PvEK9R','oteYnZyWD0vushHe','z2v0q2XPzw50','DhrS','mJGYvg9Pthf1','rMfPBgvKihrVigDLDcbHBgWGAM9ICW','mtC3mK9ny0DczW','ChjLzML4','mtq0uxPoCNnf','A2v5CW','z2v0sM9I','CgfYC2u','zxjYB3i','ntK0nZnqtKHIAMq','C2v0sM9I','zxHWB3j0CW','zgvMyxvSDa','mJrIuNbQzxy','odyXndi0m3LWt2PVAa','zw52','lI9SB2DNzxi','ChvZAa','CMvKAxnFz2v0x2vYCM9Y','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','x3bYzwzPEa','zgvS','ntm3ndyYnhneDej2sW','rMfPBgvKihrVigrLBgv0zsbQB2iGzNjVBsbszwrPCW','mJG0ndCWzLLiz3HA','mMDtwwDWwG'];a0_0x2cb4=function(){return _0x5004c4;};return a0_0x2cb4();}const a0_0x5c7e7a=a0_0x30c4;function a0_0x30c4(_0x1265c0,_0x3db93f){_0x1265c0=_0x1265c0-0x72;const _0x2cb4ee=a0_0x2cb4();let _0x30c4c5=_0x2cb4ee[_0x1265c0];if(a0_0x30c4['EWMROy']===undefined){var _0x3d0dec=function(_0x1b84d6){const _0x429d30='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5923c7='',_0x4588d1='';for(let _0x4f5c03=0x0,_0x3f875c,_0x1e9829,_0x44ac4a=0x0;_0x1e9829=_0x1b84d6['charAt'](_0x44ac4a++);~_0x1e9829&&(_0x3f875c=_0x4f5c03%0x4?_0x3f875c*0x40+_0x1e9829:_0x1e9829,_0x4f5c03++%0x4)?_0x5923c7+=String['fromCharCode'](0xff&_0x3f875c>>(-0x2*_0x4f5c03&0x6)):0x0){_0x1e9829=_0x429d30['indexOf'](_0x1e9829);}for(let _0x31f891=0x0,_0x36aaa3=_0x5923c7['length'];_0x31f891<_0x36aaa3;_0x31f891++){_0x4588d1+='%'+('00'+_0x5923c7['charCodeAt'](_0x31f891)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4588d1);};a0_0x30c4['BCPOnC']=_0x3d0dec,a0_0x30c4['UwPfhg']={},a0_0x30c4['EWMROy']=!![];}const _0x34c8e4=_0x2cb4ee[0x0],_0x4f4998=_0x1265c0+_0x34c8e4,_0x5eed86=a0_0x30c4['UwPfhg'][_0x4f4998];return!_0x5eed86?(_0x30c4c5=a0_0x30c4['BCPOnC'](_0x30c4c5),a0_0x30c4['UwPfhg'][_0x4f4998]=_0x30c4c5):_0x30c4c5=_0x5eed86,_0x30c4c5;}(function(_0x37a35d,_0x54874d){const _0xa76e6e=a0_0x30c4,_0x284a5d=_0x37a35d();while(!![]){try{const _0x244e7d=parseInt(_0xa76e6e(0x78))/0x1*(-parseInt(_0xa76e6e(0x88))/0x2)+parseInt(_0xa76e6e(0x91))/0x3*(parseInt(_0xa76e6e(0x93))/0x4)+-parseInt(_0xa76e6e(0x8e))/0x5+-parseInt(_0xa76e6e(0x8c))/0x6*(-parseInt(_0xa76e6e(0x8d))/0x7)+-parseInt(_0xa76e6e(0x85))/0x8+-parseInt(_0xa76e6e(0x73))/0x9*(parseInt(_0xa76e6e(0x87))/0xa)+parseInt(_0xa76e6e(0x7d))/0xb*(parseInt(_0xa76e6e(0x7c))/0xc);if(_0x244e7d===_0x54874d)break;else _0x284a5d['push'](_0x284a5d['shift']());}catch(_0x57b2dc){_0x284a5d['push'](_0x284a5d['shift']());}}}(a0_0x2cb4,0x649f8));const redisClient=require('./redis-client'),{logger}=require(a0_0x5c7e7a(0x7f));class RedisHelper{constructor(){const _0x4b70b4=a0_0x5c7e7a;this[_0x4b70b4(0x83)]=null,this[_0x4b70b4(0x90)]=parseInt(process[_0x4b70b4(0x7e)]['EXPORT_FILE_EXPIRY'],0xa)||0xe10;}get[a0_0x5c7e7a(0x72)](){const _0x5ea72f=a0_0x5c7e7a;if(!this['_prefix']){const _0x572f29=process[_0x5ea72f(0x7e)][_0x5ea72f(0x82)]||_0x5ea72f(0x7b);this['_prefix']='restforge:'+_0x572f29+':export:';}return this['_prefix'];}async[a0_0x5c7e7a(0x79)](_0x266f0d,_0x3a575b){const _0x15980c=a0_0x5c7e7a,_0x1cf006={'MzuQM':'Failed\x20to\x20set\x20job\x20in\x20Redis'};try{const _0x69c3f8=redisClient[_0x15980c(0x8f)](),_0x7f2964=''+this[_0x15980c(0x72)]+_0x266f0d;return await _0x69c3f8['setex'](_0x7f2964,this[_0x15980c(0x90)],JSON['stringify'](_0x3a575b)),!![];}catch(_0x5ef93e){return logger['error']({'event':'redis_set_error','jobId':_0x266f0d,'error':_0x5ef93e['message']},_0x1cf006['MzuQM']),![];}}async['getJob'](_0xe4e8e9){const _0x3beb34=a0_0x5c7e7a;try{const _0x5191c3=redisClient['getClient'](),_0x45e7db=''+this[_0x3beb34(0x72)]+_0xe4e8e9,_0x1b9048=await _0x5191c3['get'](_0x45e7db);return _0x1b9048?JSON['parse'](_0x1b9048):null;}catch(_0x1fdf26){return logger['error']({'event':_0x3beb34(0x81),'jobId':_0xe4e8e9,'error':_0x1fdf26[_0x3beb34(0x8b)]},'Failed\x20to\x20get\x20job\x20from\x20Redis'),null;}}async['updateJob'](_0x1fc6eb,_0x57e811){const _0x47f027=a0_0x5c7e7a,_0x4d5d0b=await this[_0x47f027(0x75)](_0x1fc6eb);if(!_0x4d5d0b)return![];const _0x2a2915={..._0x4d5d0b,..._0x57e811};return await this[_0x47f027(0x79)](_0x1fc6eb,_0x2a2915);}async['deleteJob'](_0x3249bd){const _0x2d7ca9=a0_0x5c7e7a,_0x2ca173={'YlpBg':_0x2d7ca9(0x89)};try{const _0x5819f2=redisClient['getClient'](),_0x16c5df=''+this[_0x2d7ca9(0x72)]+_0x3249bd;return await _0x5819f2[_0x2d7ca9(0x84)](_0x16c5df),!![];}catch(_0x168314){return logger[_0x2d7ca9(0x77)]({'event':_0x2ca173['YlpBg'],'jobId':_0x3249bd,'error':_0x168314['message']},_0x2d7ca9(0x86)),![];}}async['getAllJobs'](){const _0x110dcf=a0_0x5c7e7a;try{const _0x988ec5=redisClient['getClient'](),_0x443ffc=await _0x988ec5[_0x110dcf(0x74)](this['prefix']+'*'),_0x31df1a=[];for(const _0x22a1b3 of _0x443ffc){const _0x14d333=await _0x988ec5['get'](_0x22a1b3);_0x14d333&&_0x31df1a[_0x110dcf(0x80)](JSON[_0x110dcf(0x76)](_0x14d333));}return _0x31df1a;}catch(_0xd52ee5){return logger[_0x110dcf(0x77)]({'event':_0x110dcf(0x8a),'error':_0xd52ee5['message']},_0x110dcf(0x92)),[];}}}module[a0_0x5c7e7a(0x7a)]=new RedisHelper();