@restforgejs/platform 4.1.0 → 4.2.8

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 (181) hide show
  1. package/LICENSE.md +5 -1
  2. package/README.md +30 -14
  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/endpoint/create.js +42 -3
  8. package/generators/cli/schema/apply.js +525 -0
  9. package/generators/cli/schema/diff.js +321 -0
  10. package/generators/cli/schema/generate-ddl.js +7 -10
  11. package/generators/cli/schema/init.js +95 -172
  12. package/generators/cli/schema/migrate.js +10 -16
  13. package/generators/cli/schema/models.js +8 -12
  14. package/generators/cli/schema/template.js +222 -0
  15. package/generators/cli/schema/validate.js +8 -12
  16. package/generators/cli-entry.js +17 -2
  17. package/generators/lib/dbschema-kit/apply-engine.js +582 -0
  18. package/generators/lib/dbschema-kit/diff-engine.js +703 -0
  19. package/generators/lib/dbschema-kit/diff-reporter.js +272 -0
  20. package/generators/lib/dbschema-kit/emitters/alter-table.js +275 -0
  21. package/generators/lib/payload/endpoint-schema-validator.js +171 -0
  22. package/generators/lib/payload/payload-runner.js +137 -220
  23. package/generators/lib/payload/schema-diff.js +277 -0
  24. package/generators/lib/utils/audit-columns.js +181 -0
  25. package/generators/lib/utils/cli-output.js +17 -0
  26. package/generators/lib/utils/database-introspector.js +16 -13
  27. package/integrity-manifest.json +8 -8
  28. package/package.json +4 -4
  29. package/scripts/check-install.js +45 -45
  30. package/scripts/verify-integrity.js +1 -1
  31. package/server.js +1 -1
  32. package/src/components/handlers/adjust_handler.js +1 -1
  33. package/src/components/handlers/audit_handler.js +1 -1
  34. package/src/components/handlers/delete_handler.js +1 -1
  35. package/src/components/handlers/export_handler.js +1 -1
  36. package/src/components/handlers/import_handler.js +1 -1
  37. package/src/components/handlers/insert_handler.js +1 -1
  38. package/src/components/handlers/update_handler.js +1 -1
  39. package/src/components/handlers/upload_handler.js +1 -1
  40. package/src/components/handlers/workflow_handler.js +1 -1
  41. package/src/components/integrations/webhook.js +1 -1
  42. package/src/consumers/baseConsumer.js +1 -1
  43. package/src/consumers/declarativeMapper.js +1 -1
  44. package/src/consumers/handlers/apiHandler.js +1 -1
  45. package/src/consumers/handlers/consoleHandler.js +1 -1
  46. package/src/consumers/handlers/databaseHandler.js +1 -1
  47. package/src/consumers/handlers/index.js +1 -1
  48. package/src/consumers/handlers/kafkaHandler.js +1 -1
  49. package/src/consumers/index.js +1 -1
  50. package/src/consumers/messageTransformer.js +1 -1
  51. package/src/consumers/validator.js +1 -1
  52. package/src/core/db/dialect/base-dialect.js +1 -1
  53. package/src/core/db/dialect/index.js +1 -1
  54. package/src/core/db/dialect/mysql-dialect.js +1 -1
  55. package/src/core/db/dialect/oracle-dialect.js +1 -1
  56. package/src/core/db/dialect/postgres-dialect.js +1 -1
  57. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  58. package/src/core/db/flatten-helper.js +1 -1
  59. package/src/core/db/query-builder-error.js +1 -1
  60. package/src/core/db/query-builder.js +1 -1
  61. package/src/core/db/relation-helper.js +1 -1
  62. package/src/core/handlers/delete_handler.js +1 -1
  63. package/src/core/handlers/insert_handler.js +1 -1
  64. package/src/core/handlers/update_handler.js +1 -1
  65. package/src/core/models/base-model.js +1 -1
  66. package/src/core/utils/cache-manager.js +1 -1
  67. package/src/core/utils/component-engine.js +1 -1
  68. package/src/core/utils/context-builder.js +1 -1
  69. package/src/core/utils/datetime-formatter.js +1 -1
  70. package/src/core/utils/datetime-parser.js +1 -1
  71. package/src/core/utils/db.js +1 -1
  72. package/src/core/utils/logger.js +1 -1
  73. package/src/core/utils/payload-loader.js +1 -1
  74. package/src/core/utils/security-checks.js +1 -1
  75. package/src/middleware/body-options.js +1 -1
  76. package/src/middleware/cors.js +1 -1
  77. package/src/middleware/idempotency.js +1 -1
  78. package/src/middleware/rate-limiter.js +1 -1
  79. package/src/middleware/request-logger.js +1 -1
  80. package/src/middleware/security-headers.js +1 -1
  81. package/src/models/base-model-mysql.js +1 -1
  82. package/src/models/base-model-oracle.js +1 -1
  83. package/src/models/base-model-sqlite.js +1 -1
  84. package/src/models/base-model.js +1 -1
  85. package/src/pro/caching/redis-client.js +1 -1
  86. package/src/pro/caching/redis-helper.js +1 -1
  87. package/src/pro/consumers/baseConsumer.js +1 -1
  88. package/src/pro/consumers/declarativeMapper.js +1 -1
  89. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  90. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  91. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  92. package/src/pro/consumers/handlers/index.js +1 -1
  93. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  94. package/src/pro/consumers/index.js +1 -1
  95. package/src/pro/consumers/messageTransformer.js +1 -1
  96. package/src/pro/consumers/validator.js +1 -1
  97. package/src/pro/database/base-model-mysql.js +1 -1
  98. package/src/pro/database/base-model-oracle.js +1 -1
  99. package/src/pro/database/base-model-sqlite.js +1 -1
  100. package/src/pro/database/db-mysql.js +1 -1
  101. package/src/pro/database/db-oracle.js +1 -1
  102. package/src/pro/database/db-sqlite.js +1 -1
  103. package/src/pro/excel/excel-generator.js +1 -1
  104. package/src/pro/excel/excel-parser.js +1 -1
  105. package/src/pro/excel/export-service.js +1 -1
  106. package/src/pro/excel/export_handler.js +1 -1
  107. package/src/pro/excel/import-service.js +1 -1
  108. package/src/pro/excel/import-validator.js +1 -1
  109. package/src/pro/excel/import_handler.js +1 -1
  110. package/src/pro/excel/upsert-builder.js +1 -1
  111. package/src/pro/idgen/idgen-routes.js +1 -1
  112. package/src/pro/integrations/lookup-resolver.js +1 -1
  113. package/src/pro/integrations/upload-handler-v2.js +1 -1
  114. package/src/pro/integrations/upload-handler.js +1 -1
  115. package/src/pro/integrations/webhook.js +1 -1
  116. package/src/pro/locking/lock-routes.js +1 -1
  117. package/src/pro/locking/resource-lock-manager.js +1 -1
  118. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  119. package/src/pro/messaging/kafkaService.js +1 -1
  120. package/src/pro/messaging/messagehubService.js +1 -1
  121. package/src/pro/messaging/rabbitmqService.js +1 -1
  122. package/src/pro/scheduler/job-manager.js +1 -1
  123. package/src/pro/scheduler/job-routes.js +1 -1
  124. package/src/pro/scheduler/job-validator.js +1 -1
  125. package/src/pro/storage/base-storage-provider.js +1 -1
  126. package/src/pro/storage/file-metadata-helper.js +1 -1
  127. package/src/pro/storage/index.js +1 -1
  128. package/src/pro/storage/local-storage-provider.js +1 -1
  129. package/src/pro/storage/s3-storage-provider.js +1 -1
  130. package/src/pro/storage/upload-cleanup-job.js +1 -1
  131. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  132. package/src/pro/storage/upload-pending-tracker.js +1 -1
  133. package/src/pro/websocket/broadcast-helper.js +1 -1
  134. package/src/pro/websocket/index.js +1 -1
  135. package/src/pro/websocket/livesync-server.js +1 -1
  136. package/src/pro/websocket/ws-broadcaster.js +1 -1
  137. package/src/services/export-service.js +1 -1
  138. package/src/services/import-service.js +1 -1
  139. package/src/services/kafkaConsumerService.js +1 -1
  140. package/src/services/kafkaService.js +1 -1
  141. package/src/services/messagehubService.js +1 -1
  142. package/src/services/rabbitmqService.js +1 -1
  143. package/src/utils/cache-invalidation-registry.js +1 -1
  144. package/src/utils/cache-manager.js +1 -1
  145. package/src/utils/component-engine.js +1 -1
  146. package/src/utils/config-extractor.js +1 -1
  147. package/src/utils/consumerLogger.js +1 -1
  148. package/src/utils/context-builder.js +1 -1
  149. package/src/utils/dashboard-helpers.js +1 -1
  150. package/src/utils/dateHelper.js +1 -1
  151. package/src/utils/datetime-formatter.js +1 -1
  152. package/src/utils/datetime-parser.js +1 -1
  153. package/src/utils/db-bootstrap.js +1 -1
  154. package/src/utils/db-mysql.js +1 -1
  155. package/src/utils/db-oracle.js +1 -1
  156. package/src/utils/db-sqlite.js +1 -1
  157. package/src/utils/db.js +1 -1
  158. package/src/utils/demo-generator.js +1 -1
  159. package/src/utils/excel-generator.js +1 -1
  160. package/src/utils/excel-parser.js +1 -1
  161. package/src/utils/file-watcher.js +1 -1
  162. package/src/utils/id-generator.js +1 -1
  163. package/src/utils/idempotency-manager.js +1 -1
  164. package/src/utils/import-validator.js +1 -1
  165. package/src/utils/license-client.js +1 -1
  166. package/src/utils/lock-manager.js +1 -1
  167. package/src/utils/logger.js +1 -1
  168. package/src/utils/lookup-resolver.js +1 -1
  169. package/src/utils/payload-loader.js +1 -1
  170. package/src/utils/processor-response.js +1 -1
  171. package/src/utils/rabbitmq.js +1 -1
  172. package/src/utils/redis-client.js +1 -1
  173. package/src/utils/redis-helper.js +1 -1
  174. package/src/utils/request-scope.js +1 -1
  175. package/src/utils/security-checks.js +1 -1
  176. package/src/utils/service-resolver.js +1 -1
  177. package/src/utils/shutdown-coordinator.js +1 -1
  178. package/src/utils/trusted-keys.js +1 -1
  179. package/src/utils/upload-handler.js +1 -1
  180. package/src/utils/upsert-builder.js +1 -1
  181. package/src/utils/workflow-hook-executor.js +1 -1
@@ -1 +1 @@
1
- const a0_0x22c17b=a0_0x522e;function a0_0x4330(){const _0x5b3ec0=['AM9PBG','mtnOyNzxveK','EMLNEMm','ExLNzvq','BwLTzxr5Cgu','BxvSDgvY','z2v0u3rVCMfNzq','B3jPz2LUywXUyw1L','zgvMyxvSDa','BwvZC2fNzq','DxbSB2fKx2zPBgvFzgvSzxrLza','CMfUzg9TqNL0zxm','mtK1nZq3Dhn6EvvR','m1vRswjHCa','neniCKngqq','vxbSB2fKigHHBMrSzxiGAw5PDgLHBgL6zwq','lNHSCW','mtfVDxvwvwW','nMr5rM9usW','rMfPBgvKihrVigLUAxrPywXPEMuGDxbSB2fKigHHBMrSzxi','yxbWBgLJyxrPB24VDM5KlM9Wzw54BwXMB3jTyxrZlw9MzMLJzwrVy3vTzw50lNnWCMvHzhnOzwv0BwWUC2HLzxq','Aw5JBhvKzxm','BM93','zgLZA1n0B3jHz2u','t1LQr0e','Exf4qKC','zxHWB3j0CW','mJqYoteXme5sCfzgrG','mJyXs012CeDZ','mJe5mdiYoeHIqMzHuW','sw52ywXPzcbMAwXLihr5CguUie9UBhKGlNHSC3GGzMLSzxmGyxjLigfSBg93zwq','mJaYntG4nfvlzM5Rra','mZG5nJzgyw5QuhK','DxbSB2fKx2HHBMrSzxjFAw5PDf9LCNjVCG','uKvtvezpuKDfx1bst0Pfq1rFtKfnrq','DxbSB2fKrgLY','BwTKAxjtEw5J','vxbSB2fKzwqGzMLSzsbKzwXLDgvK','Aw5MBW','otaZmM9dwKr4EG','zxjYB3i','zxHPC3rZu3LUyW','y3j5ChrV','mZuZodG3mgPeBersEq','Be93D08','zxH0BMfTzq','x3vWBg9HzerPCG','tLrAAhy','Bur2CLK','vwj4wLi'];a0_0x4330=function(){return _0x5b3ec0;};return a0_0x4330();}(function(_0x566b30,_0x4a0f4d){const _0x5b0d92=a0_0x522e,_0x32dc23=_0x566b30();while(!![]){try{const _0x3eebc5=-parseInt(_0x5b0d92(0x71))/0x1*(parseInt(_0x5b0d92(0x84))/0x2)+-parseInt(_0x5b0d92(0x70))/0x3+-parseInt(_0x5b0d92(0x72))/0x4*(-parseInt(_0x5b0d92(0x7f))/0x5)+parseInt(_0x5b0d92(0x76))/0x6*(-parseInt(_0x5b0d92(0x83))/0x7)+-parseInt(_0x5b0d92(0x8b))/0x8*(-parseInt(_0x5b0d92(0x80))/0x9)+-parseInt(_0x5b0d92(0x8f))/0xa*(-parseInt(_0x5b0d92(0x75))/0xb)+parseInt(_0x5b0d92(0x81))/0xc*(-parseInt(_0x5b0d92(0x97))/0xd);if(_0x3eebc5===_0x4a0f4d)break;else _0x32dc23['push'](_0x32dc23['shift']());}catch(_0x47d241){_0x32dc23['push'](_0x32dc23['shift']());}}}(a0_0x4330,0x43955));function a0_0x522e(_0x590a58,_0x53cef9){_0x590a58=_0x590a58-0x70;const _0x4330cd=a0_0x4330();let _0x522ea0=_0x4330cd[_0x590a58];if(a0_0x522e['xmPbIv']===undefined){var _0x3dbb15=function(_0x19752b){const _0x2e4977='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5e20bd='',_0x4df2e6='';for(let _0x2df94b=0x0,_0x5e8617,_0x28b203,_0x5c021a=0x0;_0x28b203=_0x19752b['charAt'](_0x5c021a++);~_0x28b203&&(_0x5e8617=_0x2df94b%0x4?_0x5e8617*0x40+_0x28b203:_0x28b203,_0x2df94b++%0x4)?_0x5e20bd+=String['fromCharCode'](0xff&_0x5e8617>>(-0x2*_0x2df94b&0x6)):0x0){_0x28b203=_0x2e4977['indexOf'](_0x28b203);}for(let _0xb98a3d=0x0,_0x11f4a1=_0x5e20bd['length'];_0xb98a3d<_0x11f4a1;_0xb98a3d++){_0x4df2e6+='%'+('00'+_0x5e20bd['charCodeAt'](_0xb98a3d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4df2e6);};a0_0x522e['sTqxWN']=_0x3dbb15,a0_0x522e['MIzGYQ']={},a0_0x522e['xmPbIv']=!![];}const _0x228102=_0x4330cd[0x0],_0x5eee66=_0x590a58+_0x228102,_0x25539d=a0_0x522e['MIzGYQ'][_0x5eee66];return!_0x25539d?(_0x522ea0=a0_0x522e['sTqxWN'](_0x522ea0),a0_0x522e['MIzGYQ'][_0x5eee66]=_0x522ea0):_0x522ea0=_0x25539d,_0x522ea0;}const multer=require(a0_0x22c17b(0x9b)),path=require('path'),crypto=require(a0_0x22c17b(0x8e)),fs=require('fs')['promises'],fsSync=require('fs'),{logger}=require('./logger');class UploadHandler{constructor(){const _0xd58444=a0_0x22c17b,_0x8937a={'mDvrY':function(_0x3ed904,_0x505f05){return _0x3ed904*_0x505f05;}};this['_uploadDir']=null,this['maxFileSize']=_0x8937a[_0xd58444(0x94)](0xa*0x400,0x400);}get[a0_0x22c17b(0x87)](){const _0x5cccdc=a0_0x22c17b,_0x220027={'gUiRL':'upload_handler_init','zigzc':_0x5cccdc(0x77)};if(!this[_0x5cccdc(0x92)]){const _0x486818=process['env'][_0x5cccdc(0x86)]||_0x5cccdc(0x9e);this[_0x5cccdc(0x92)]=process['env']['UPLOAD_DIR']||path[_0x5cccdc(0x96)](__dirname,'../../temp/uploads/'+_0x486818);try{!fsSync['existsSync'](this['_uploadDir'])&&fsSync['mkdirSync'](this[_0x5cccdc(0x92)],{'recursive':!![]}),logger[_0x5cccdc(0x8a)]({'event':_0x220027['gUiRL'],'dir':this[_0x5cccdc(0x92)]},_0x5cccdc(0x73));}catch(_0x1268a2){logger['error']({'event':_0x5cccdc(0x85),'error':_0x1268a2[_0x5cccdc(0x9f)]},_0x220027[_0x5cccdc(0x98)]);}}return this['_uploadDir'];}[a0_0x22c17b(0x9c)](){const _0x5daa27=a0_0x22c17b,_0x4fb433={'qcwUs':function(_0x2504c2,_0x434f85,_0x324fb9){return _0x2504c2(_0x434f85,_0x324fb9);},'GNUmf':'hex','yqxBG':function(_0x1ef0f8,_0x184883,_0x28e921){return _0x1ef0f8(_0x184883,_0x28e921);}};return multer[_0x5daa27(0x7b)]({'destination':(_0x4b1335,_0x105435,_0x477fe7)=>{const _0x179157=_0x5daa27;!fsSync[_0x179157(0x8d)](this[_0x179157(0x87)])&&fsSync[_0x179157(0x88)](this[_0x179157(0x87)],{'recursive':!![]}),_0x4fb433['qcwUs'](_0x477fe7,null,this[_0x179157(0x87)]);},'filename':(_0x582ae0,_0x45d08e,_0x7528b7)=>{const _0x419a6d=_0x5daa27,_0x3315bb=crypto[_0x419a6d(0xa1)](0x8)['toString'](_0x4fb433['GNUmf']),_0x402358=Date[_0x419a6d(0x7a)](),_0x19faf1=path[_0x419a6d(0x91)](_0x45d08e[_0x419a6d(0x9d)]);_0x4fb433[_0x419a6d(0x7d)](_0x7528b7,null,'upload-'+_0x402358+'-'+_0x3315bb+_0x19faf1);}});}['getUploadMiddleware'](){const _0x2e0223=a0_0x22c17b,_0x2dfe9c={'yygeT':'application/vnd.ms-excel','NTZhv':'.xlsx','irkpR':function(_0x871e3b,_0x4f1ca6,_0x514208){return _0x871e3b(_0x4f1ca6,_0x514208);},'lOwwO':function(_0x3ea336,_0x5cd768){return _0x3ea336(_0x5cd768);}};return _0x2dfe9c[_0x2e0223(0x90)](multer,{'storage':this[_0x2e0223(0x9c)](),'limits':{'fileSize':this['maxFileSize'],'files':0x1},'fileFilter':(_0x39effd,_0x460013,_0x42a4c2)=>{const _0x500704=_0x2e0223,_0x1e7863=[_0x500704(0x78),_0x2dfe9c[_0x500704(0x99)]],_0x5a9e8a=[_0x2dfe9c[_0x500704(0x93)],_0x500704(0x74)],_0x4fa94a=path['extname'](_0x460013[_0x500704(0x9d)])['toLowerCase']();_0x1e7863[_0x500704(0x79)](_0x460013[_0x500704(0x9a)])&&_0x5a9e8a[_0x500704(0x79)](_0x4fa94a)?_0x2dfe9c['irkpR'](_0x42a4c2,null,!![]):_0x42a4c2(new Error(_0x500704(0x82)));}})['single']('file');}async['deleteFile'](_0x10f173){const _0x44764a=a0_0x22c17b,_0x6b262e={'xLRzp':_0x44764a(0x89),'UbxZR':'upload_file_delete_error','OYjGA':'Failed\x20to\x20delete\x20uploaded\x20file'};try{await fs['unlink'](_0x10f173),logger[_0x44764a(0x8a)]({'event':_0x44764a(0xa0),'filePath':_0x10f173},_0x6b262e['xLRzp']);}catch(_0x59c09c){logger[_0x44764a(0x8c)]({'event':_0x6b262e[_0x44764a(0x95)],'filePath':_0x10f173,'error':_0x59c09c['message']},_0x6b262e[_0x44764a(0x7c)]);}}}module[a0_0x22c17b(0x7e)]=new UploadHandler();
1
+ function a0_0x35da(_0x34af45,_0x32599b){_0x34af45=_0x34af45-0x1aa;const _0x2a4c66=a0_0x2a4c();let _0x35da00=_0x2a4c66[_0x34af45];if(a0_0x35da['RAvpiW']===undefined){var _0x4655f8=function(_0xe80e3f){const _0x2f29ea='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1d6c53='',_0x5e2877='';for(let _0x5d7378=0x0,_0x2a2b84,_0x123983,_0x24e0f0=0x0;_0x123983=_0xe80e3f['charAt'](_0x24e0f0++);~_0x123983&&(_0x2a2b84=_0x5d7378%0x4?_0x2a2b84*0x40+_0x123983:_0x123983,_0x5d7378++%0x4)?_0x1d6c53+=String['fromCharCode'](0xff&_0x2a2b84>>(-0x2*_0x5d7378&0x6)):0x0){_0x123983=_0x2f29ea['indexOf'](_0x123983);}for(let _0x57322c=0x0,_0x25fd57=_0x1d6c53['length'];_0x57322c<_0x25fd57;_0x57322c++){_0x5e2877+='%'+('00'+_0x1d6c53['charCodeAt'](_0x57322c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5e2877);};a0_0x35da['LsGTBx']=_0x4655f8,a0_0x35da['wJRiAO']={},a0_0x35da['RAvpiW']=!![];}const _0xbe8e5d=_0x2a4c66[0x0],_0x44e819=_0x34af45+_0xbe8e5d,_0x47ec1c=a0_0x35da['wJRiAO'][_0x44e819];return!_0x47ec1c?(_0x35da00=a0_0x35da['LsGTBx'](_0x35da00),a0_0x35da['wJRiAO'][_0x44e819]=_0x35da00):_0x35da00=_0x47ec1c,_0x35da00;}function a0_0x2a4c(){const _0x3d15f6=['tMLOyMy','vvbmt0fex0rjuG','yxbWBgLJyxrPB24VDM5KlM9Wzw54BwXMB3jTyxrZlw9MzMLJzwrVy3vTzw50lNnWCMvHzhnOzwv0BwWUC2HLzxq','BwvZC2fNzq','vxbSB2fKzwqGzMLSzsbKzwXLDgvK','DMPPz3e','zgLZA1n0B3jHz2u','CMfUzg9TqNL0zxm','lI9SB2DNzxi','x3vWBg9HzerPCG','BwTKAxjtEw5J','mJi4ntzztNHSBxC','rMPhCuW','ndKWmtK1mhnTtNjVza','mJu5AwzJqLjP','mtaWndeYmZrXBeH0BvO','DxbSB2fKx2zPBgvFzgvSzxrLx2vYCM9Y','lNHSCW','z2v0vxbSB2fKtwLKzgXLD2fYzq','zxHPC3rZu3LUyW','zgvMyxvSDa','Bwf4rMLSzvnPEMu','zxH0BMfTzq','mtzRDwTxr0m','B3jPz2LUywXUyw1L','ELbhsxi','DxbSB2fKrgLY','ntm0mhngvwvLtG','zMLSzq','mtmZmdiXrMjxzKLS','ndaZnZbRtK9Hvg8','zxjYB3i','DxbSB2fKx2HHBMrSzxjFAw5PDa','Aw5MBW','DxbSB2fKlq','odG4nZblvevOswe','mZK4otzmzenIExO','mtC0nK1qAMHeva','y3j5ChrV','mtaYEvzZugHX'];a0_0x2a4c=function(){return _0x3d15f6;};return a0_0x2a4c();}const a0_0x56aa34=a0_0x35da;(function(_0x134c89,_0x22851b){const _0x5c7d13=a0_0x35da,_0xd5b35f=_0x134c89();while(!![]){try{const _0x350ee0=-parseInt(_0x5c7d13(0x1c0))/0x1*(-parseInt(_0x5c7d13(0x1ba))/0x2)+parseInt(_0x5c7d13(0x1ca))/0x3*(parseInt(_0x5c7d13(0x1c7))/0x4)+parseInt(_0x5c7d13(0x1b0))/0x5+-parseInt(_0x5c7d13(0x1b2))/0x6+-parseInt(_0x5c7d13(0x1b1))/0x7*(-parseInt(_0x5c7d13(0x1ae))/0x8)+parseInt(_0x5c7d13(0x1c8))/0x9*(parseInt(_0x5c7d13(0x1c6))/0xa)+-parseInt(_0x5c7d13(0x1c1))/0xb*(parseInt(_0x5c7d13(0x1be))/0xc);if(_0x350ee0===_0x22851b)break;else _0xd5b35f['push'](_0xd5b35f['shift']());}catch(_0x529128){_0xd5b35f['push'](_0xd5b35f['shift']());}}}(a0_0x2a4c,0xdd614));const multer=require('multer'),path=require('path'),crypto=require(a0_0x56aa34(0x1c9)),fs=require('fs')['promises'],fsSync=require('fs'),{logger}=require(a0_0x56aa34(0x1ab));class UploadHandler{constructor(){const _0x510fb8={'iRGEF':function(_0x2f7488,_0x295858){return _0x2f7488*_0x295858;}};this['_uploadDir']=null,this['maxFileSize']=_0x510fb8['iRGEF'](0xa*0x400,0x400);}get[a0_0x56aa34(0x1bd)](){const _0x252aeb=a0_0x56aa34,_0x3b58c7={'SBafG':_0x252aeb(0x1c3)};if(!this[_0x252aeb(0x1ac)]){const _0x29152f=process['env']['RESTFORGE_PROJECT_NAME']||_0x252aeb(0x1b7);this[_0x252aeb(0x1ac)]=process['env'][_0x252aeb(0x1cc)]||path['join'](__dirname,'../../temp/uploads/'+_0x29152f);try{!fsSync[_0x252aeb(0x1b6)](this[_0x252aeb(0x1ac)])&&fsSync[_0x252aeb(0x1ad)](this['_uploadDir'],{'recursive':!![]}),logger[_0x252aeb(0x1c4)]({'event':_0x3b58c7['SBafG'],'dir':this[_0x252aeb(0x1ac)]},'Upload\x20handler\x20initialized');}catch(_0x5b2f38){logger[_0x252aeb(0x1c2)]({'event':'upload_handler_init_error','error':_0x5b2f38['message']},'Failed\x20to\x20initialize\x20upload\x20handler');}}return this[_0x252aeb(0x1ac)];}['getStorage'](){const _0x2ac394=a0_0x56aa34,_0x2c13f1={'inRaR':'hex'};return multer[_0x2ac394(0x1d1)]({'destination':(_0x167842,_0xd8534d,_0x3f4391)=>{const _0xad004a=_0x2ac394;!fsSync[_0xad004a(0x1b6)](this[_0xad004a(0x1bd)])&&fsSync[_0xad004a(0x1ad)](this[_0xad004a(0x1bd)],{'recursive':!![]}),_0x3f4391(null,this[_0xad004a(0x1bd)]);},'filename':(_0x1ac77d,_0x5b0a32,_0x202db0)=>{const _0xcda9fa=_0x2ac394,_0x7d4259=crypto[_0xcda9fa(0x1aa)](0x8)['toString'](_0x2c13f1['inRaR']),_0xc61a9e=Date['now'](),_0x277533=path['extname'](_0x5b0a32['originalname']);_0x202db0(null,_0xcda9fa(0x1c5)+_0xc61a9e+'-'+_0x7d4259+_0x277533);}});}[a0_0x56aa34(0x1b5)](){const _0x1e8ecd=a0_0x56aa34,_0x1c8191={'vjigq':_0x1e8ecd(0x1cd),'mMkCo':'application/vnd.ms-excel','WVKAM':function(_0x375039,_0x1cdb5e,_0x342fdf){return _0x375039(_0x1cdb5e,_0x342fdf);},'FjGqL':'Invalid\x20file\x20type.\x20Only\x20.xlsx\x20files\x20are\x20allowed','mWUeO':function(_0x1669f5,_0x241b21){return _0x1669f5(_0x241b21);},'zIjVt':_0x1e8ecd(0x1bf)};return _0x1c8191['mWUeO'](multer,{'storage':this['getStorage'](),'limits':{'fileSize':this[_0x1e8ecd(0x1b8)],'files':0x1},'fileFilter':(_0x4caf77,_0x2333c4,_0x4a4094)=>{const _0x3e62a8=_0x1e8ecd,_0x5e0730=[_0x1c8191[_0x3e62a8(0x1d0)],_0x1c8191['mMkCo']],_0x529af4=['.xlsx',_0x3e62a8(0x1b4)],_0x404ad3=path[_0x3e62a8(0x1b9)](_0x2333c4[_0x3e62a8(0x1bb)])['toLowerCase']();_0x5e0730['includes'](_0x2333c4['mimetype'])&&_0x529af4['includes'](_0x404ad3)?_0x1c8191['WVKAM'](_0x4a4094,null,!![]):_0x4a4094(new Error(_0x1c8191[_0x3e62a8(0x1af)]));}})['single'](_0x1c8191['zIjVt']);}async['deleteFile'](_0x517f3f){const _0x15acdc=a0_0x56aa34,_0x22b462={'Nihbf':_0x15acdc(0x1cf),'zPGIr':'Failed\x20to\x20delete\x20uploaded\x20file'};try{await fs['unlink'](_0x517f3f),logger['info']({'event':'upload_file_deleted','filePath':_0x517f3f},_0x22b462[_0x15acdc(0x1cb)]);}catch(_0x577ca4){logger[_0x15acdc(0x1c2)]({'event':_0x15acdc(0x1b3),'filePath':_0x517f3f,'error':_0x577ca4[_0x15acdc(0x1ce)]},_0x22b462[_0x15acdc(0x1bc)]);}}}module['exports']=new UploadHandler();
@@ -1 +1 @@
1
- const a0_0x56a89e=a0_0x1ff8;(function(_0x7a1512,_0x44ee6d){const _0x3b598e=a0_0x1ff8,_0x2af8e4=_0x7a1512();while(!![]){try{const _0x24c1ce=parseInt(_0x3b598e(0x19a))/0x1*(-parseInt(_0x3b598e(0x14e))/0x2)+-parseInt(_0x3b598e(0x18e))/0x3+-parseInt(_0x3b598e(0x172))/0x4*(-parseInt(_0x3b598e(0x160))/0x5)+-parseInt(_0x3b598e(0x162))/0x6+-parseInt(_0x3b598e(0x153))/0x7*(parseInt(_0x3b598e(0x15b))/0x8)+parseInt(_0x3b598e(0x159))/0x9+parseInt(_0x3b598e(0x170))/0xa*(parseInt(_0x3b598e(0x17e))/0xb);if(_0x24c1ce===_0x44ee6d)break;else _0x2af8e4['push'](_0x2af8e4['shift']());}catch(_0x3476a0){_0x2af8e4['push'](_0x2af8e4['shift']());}}}(a0_0xaf53,0xc629d));const {logger}=require(a0_0x56a89e(0x17f)),DB_TYPES={'POSTGRESQL':a0_0x56a89e(0x14b),'MYSQL':'mysql','SQLSERVER':a0_0x56a89e(0x165),'ORACLE':a0_0x56a89e(0x15d),'SQLITE':a0_0x56a89e(0x14a)};class UpsertBuilder{[a0_0x56a89e(0x196)](){const _0x519e6b=a0_0x56a89e,_0x5a29f7={'yfOSz':_0x519e6b(0x1a0),'AvTBm':_0x519e6b(0x14b)},_0x1cb721=(process[_0x519e6b(0x174)][_0x519e6b(0x15e)]||'postgresql')[_0x519e6b(0x15a)](),_0x1bdb9c=Object['values'](DB_TYPES);if(!_0x1bdb9c[_0x519e6b(0x1a1)](_0x1cb721))return logger['warn']({'event':_0x5a29f7[_0x519e6b(0x161)],'provided':_0x1cb721,'fallback':_0x5a29f7['AvTBm']},_0x519e6b(0x173)+_0x1cb721+_0x519e6b(0x188)),DB_TYPES['POSTGRESQL'];return _0x1cb721;}[a0_0x56a89e(0x17b)](_0x4297fe,_0x3254e2,_0x3f3c2f=![]){const _0x96207e=a0_0x56a89e,_0x158af9={'uWKdi':'NULL'};if(_0x3f3c2f)switch(_0x3254e2){case DB_TYPES['POSTGRESQL']:return'NULL::DATE';case DB_TYPES[_0x96207e(0x158)]:return _0x158af9[_0x96207e(0x16e)];case DB_TYPES['SQLITE']:return _0x158af9[_0x96207e(0x16e)];case DB_TYPES[_0x96207e(0x19c)]:return'NULL';case DB_TYPES[_0x96207e(0x185)]:return _0x158af9[_0x96207e(0x16e)];default:return _0x96207e(0x1a2);}switch(_0x3254e2){case DB_TYPES[_0x96207e(0x191)]:return _0x4297fe+'::DATE';case DB_TYPES['MYSQL']:return _0x4297fe;case DB_TYPES[_0x96207e(0x192)]:return _0x4297fe;case DB_TYPES['SQLSERVER']:return'CAST('+_0x4297fe+_0x96207e(0x182);case DB_TYPES[_0x96207e(0x185)]:return _0x96207e(0x156)+_0x4297fe+',\x20\x27YYYY-MM-DD\x27)';default:return _0x4297fe+_0x96207e(0x147);}}[a0_0x56a89e(0x166)](_0x17bf56,_0x1b09e1,_0x112a33=![]){const _0x17df69=a0_0x56a89e,_0x93b216={'IVDuf':_0x17df69(0x14c)};if(_0x112a33)switch(_0x1b09e1){case DB_TYPES['POSTGRESQL']:return'NULL::BOOLEAN';default:return _0x93b216['IVDuf'];}switch(_0x1b09e1){case DB_TYPES[_0x17df69(0x191)]:return _0x17bf56+_0x17df69(0x14f);case DB_TYPES['ORACLE']:return _0x17bf56;case DB_TYPES['MYSQL']:return _0x17bf56;case DB_TYPES[_0x17df69(0x192)]:return _0x17bf56;case DB_TYPES[_0x17df69(0x19c)]:return'CAST('+_0x17bf56+'\x20AS\x20BIT)';default:return _0x17bf56+'::BOOLEAN';}}['buildEscapeFunction'](_0x4f0599={}){const _0x1f49f0=a0_0x56a89e,_0x2a0eee={'fNjOD':function(_0x77a26f,_0xba46f8){return _0x77a26f===_0xba46f8;},'kJTfo':function(_0x3e130f,_0x398d7e){return _0x3e130f===_0x398d7e;},'TNqjz':'boolean','pPnlx':function(_0x31a6d8,_0x6a0088){return _0x31a6d8===_0x6a0088;},'eOvFf':_0x1f49f0(0x18d),'WmQaB':'date'},_0x49c9f6=this['getDatabaseType']();return(_0x54ef3b,_0x2bc441)=>{const _0x3538ac=_0x1f49f0,_0x2a12aa=_0x4f0599[_0x2bc441];if(_0x54ef3b===null||_0x54ef3b===undefined){if(_0x2a12aa&&_0x2a12aa[_0x3538ac(0x186)]===_0x3538ac(0x19d))return this[_0x3538ac(0x17b)](null,_0x49c9f6,!![]);if(_0x2a12aa&&_0x2a12aa[_0x3538ac(0x186)]==='boolean')return this['formatBooleanValue'](null,_0x49c9f6,!![]);return _0x3538ac(0x14c);}if(_0x2a0eee[_0x3538ac(0x18a)](typeof _0x54ef3b,_0x3538ac(0x19b))){const _0x2403e2='\x27'+_0x54ef3b[_0x3538ac(0x168)](/'/g,'\x27\x27')+'\x27';if(_0x2a12aa&&_0x2a0eee['kJTfo'](_0x2a12aa['type'],'date'))return this['formatDateValue'](_0x2403e2,_0x49c9f6,![]);if(_0x2a12aa&&_0x2a12aa['type']===_0x2a0eee['TNqjz'])return this[_0x3538ac(0x166)](_0x2403e2,_0x49c9f6,![]);return _0x2403e2;}if(_0x2a0eee[_0x3538ac(0x157)](typeof _0x54ef3b,_0x2a0eee[_0x3538ac(0x148)]))return _0x54ef3b;if(typeof _0x54ef3b===_0x3538ac(0x15f))return _0x54ef3b;const _0x5c0ffc='\x27'+String(_0x54ef3b)[_0x3538ac(0x168)](/'/g,'\x27\x27')+'\x27';if(_0x2a12aa&&_0x2a12aa[_0x3538ac(0x186)]===_0x2a0eee['WmQaB'])return this['formatDateValue'](_0x5c0ffc,_0x49c9f6,![]);return _0x5c0ffc;};}[a0_0x56a89e(0x181)](_0x5b87b5,_0x4272ca,_0x24ff47,_0x191ec6={}){const _0x48489a=a0_0x56a89e,_0x5ea48f={'QYlub':function(_0x5402de,_0x3fa273){return _0x5402de===_0x3fa273;}},_0x15c7db=this[_0x48489a(0x196)]();if(_0x5ea48f['QYlub'](_0x15c7db,DB_TYPES[_0x48489a(0x185)]))return this[_0x48489a(0x187)](_0x5b87b5,_0x4272ca,_0x24ff47,_0x191ec6);return this[_0x48489a(0x163)](_0x5b87b5,_0x4272ca,_0x24ff47,_0x191ec6);}[a0_0x56a89e(0x163)](_0x479d00,_0x3b4c74,_0x1afce0,_0x37f25f={}){const _0x43d367=a0_0x56a89e,_0x26693c={'bgmUq':',\x0a\x20\x20\x20\x20\x20\x20\x20','SDidg':_0x43d367(0x1a4),'ahJym':'Batch\x20INSERT\x20query\x20built\x20(PostgreSQL)'};if(_0x479d00[_0x43d367(0x171)]===0x0)return{'query':null,'values':[]};const _0xc6fd57=this['buildEscapeFunction'](_0x37f25f),_0x3172ca=_0x479d00[_0x43d367(0x199)](_0x4f4846=>{const _0x344004=_0x43d367,_0x126640=_0x1afce0[_0x344004(0x199)](_0x4fdd59=>_0xc6fd57(_0x4f4846[_0x4fdd59],_0x4fdd59));return'('+_0x126640['join'](',\x20')+')';}),_0x56d850='\x0a\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20'+_0x3b4c74+'\x20('+_0x1afce0['join'](',\x20')+')\x0a\x20\x20\x20\x20\x20\x20VALUES\x20'+_0x3172ca['join'](_0x26693c['bgmUq'])+_0x43d367(0x177);return logger[_0x43d367(0x198)]({'event':_0x26693c[_0x43d367(0x184)],'tableName':_0x3b4c74,'rowCount':_0x479d00['length'],'dbType':_0x43d367(0x14b)},_0x26693c['ahJym']),{'query':_0x56d850,'values':[]};}[a0_0x56a89e(0x187)](_0x4c28a7,_0xc9b1f5,_0x7d7902,_0x4dc66f={}){const _0x1d9b2f=a0_0x56a89e,_0x551931={'ZMdiL':'oracle','tbdHh':_0x1d9b2f(0x16d)};if(_0x4c28a7[_0x1d9b2f(0x171)]===0x0)return{'query':null,'values':[]};const _0x4da744=this[_0x1d9b2f(0x193)](_0x4dc66f),_0x5bbe6c=_0x4c28a7['map'](_0x12b980=>{const _0x6a86be=_0x1d9b2f,_0x18eacd=_0x7d7902['map'](_0x29435a=>_0x4da744(_0x12b980[_0x29435a],_0x29435a));return _0x6a86be(0x183)+_0xc9b1f5+'\x20('+_0x7d7902[_0x6a86be(0x18b)](',\x20')+')\x20VALUES\x20('+_0x18eacd['join'](',\x20')+')';}),_0x1a1e80='INSERT\x20ALL\x0a'+_0x5bbe6c[_0x1d9b2f(0x18b)]('\x0a')+_0x1d9b2f(0x15c);return logger['debug']({'event':'batch_insert_built','tableName':_0xc9b1f5,'rowCount':_0x4c28a7['length'],'dbType':_0x551931[_0x1d9b2f(0x16a)]},_0x551931['tbdHh']),{'query':_0x1a1e80,'values':[]};}['buildBatchUpdate'](_0x3ef471,_0x1cb5c0,_0x3c4996,_0xe7976,_0x1ee9d7,_0x3b43ec={}){const _0x364d50=a0_0x56a89e,_0x4a8281={'QaAqI':function(_0x43e5cb,_0x1d53a4){return _0x43e5cb===_0x1d53a4;},'VrmkN':function(_0x4c9673,_0x372b90){return _0x4c9673===_0x372b90;}},_0x4cb498=this['getDatabaseType']();if(_0x4a8281['QaAqI'](_0x4cb498,DB_TYPES[_0x364d50(0x185)]))return this[_0x364d50(0x180)](_0x3ef471,_0x1cb5c0,_0x3c4996,_0xe7976,_0x1ee9d7,_0x3b43ec);if(_0x4a8281[_0x364d50(0x154)](_0x4cb498,DB_TYPES['MYSQL']))return this['_buildBatchUpdateMysql'](_0x3ef471,_0x1cb5c0,_0x3c4996,_0xe7976,_0x1ee9d7,_0x3b43ec);return this['_buildBatchUpdatePostgres'](_0x3ef471,_0x1cb5c0,_0x3c4996,_0xe7976,_0x1ee9d7,_0x3b43ec);}[a0_0x56a89e(0x16f)](_0x911902,_0x32ceca,_0x59af51,_0x149eb5,_0x4712dc,_0x11d294={}){const _0x4ec436=a0_0x56a89e,_0x33a3f1={'rijpR':function(_0x134d91,_0x387379){return _0x134d91===_0x387379;},'wpOXu':function(_0x1fb0ba,_0x44d1b3){return _0x1fb0ba===_0x44d1b3;},'CXdgV':',\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20','rXGAJ':_0x4ec436(0x197),'obrFh':'postgresql','WtnNv':_0x4ec436(0x19e)};if(_0x33a3f1[_0x4ec436(0x179)](_0x911902['length'],0x0))return{'query':null,'values':[]};const _0x45f08d=this['buildEscapeFunction'](_0x11d294),_0x35b3eb=_0x59af51[_0x4ec436(0x1a3)](_0xd8e472=>!_0x4712dc[_0x4ec436(0x1a1)](_0xd8e472)&&_0xd8e472!==_0x149eb5);if(_0x33a3f1[_0x4ec436(0x175)](_0x35b3eb[_0x4ec436(0x171)],0x0))return logger['warn']({'event':'batch_update_no_columns','tableName':_0x32ceca},'No\x20columns\x20to\x20update\x20(all\x20columns\x20are\x20upsert\x20keys\x20or\x20primary\x20key)'),{'query':null,'values':[]};const _0x18d033=_0x911902['map'](_0x49061f=>{const _0x2d2576=_0x4ec436,_0x22b7d1=[..._0x4712dc,..._0x35b3eb],_0x2e1d2b=_0x22b7d1['map'](_0x294e30=>_0x45f08d(_0x49061f[_0x294e30],_0x294e30));return'('+_0x2e1d2b[_0x2d2576(0x18b)](',\x20')+')';}),_0x334d20=_0x35b3eb[_0x4ec436(0x199)](_0x3da991=>_0x3da991+_0x4ec436(0x16c)+_0x3da991)['join'](_0x33a3f1[_0x4ec436(0x18c)]),_0x252ac8=_0x4712dc[_0x4ec436(0x199)](_0x15d404=>'t.'+_0x15d404+_0x4ec436(0x16c)+_0x15d404)['join']('\x20AND\x20'),_0x3b8206='\x0a\x20\x20\x20\x20\x20\x20UPDATE\x20'+_0x32ceca+'\x20AS\x20t\x0a\x20\x20\x20\x20\x20\x20SET\x20'+_0x334d20+_0x4ec436(0x152)+_0x18d033[_0x4ec436(0x18b)](_0x4ec436(0x19f))+'\x0a\x20\x20\x20\x20\x20\x20)\x20AS\x20v('+[..._0x4712dc,..._0x35b3eb]['join'](',\x20')+')\x0a\x20\x20\x20\x20\x20\x20WHERE\x20'+_0x252ac8+_0x4ec436(0x177);return logger[_0x4ec436(0x198)]({'event':_0x33a3f1[_0x4ec436(0x14d)],'tableName':_0x32ceca,'rowCount':_0x911902['length'],'updateColumns':_0x35b3eb['length'],'dbType':_0x33a3f1['obrFh']},_0x33a3f1['WtnNv']),{'query':_0x3b8206,'values':[]};}['_buildBatchUpdateOracle'](_0x20b694,_0x2f9ff1,_0x1b9312,_0x33b2f7,_0x4c2b06,_0x1f23be={}){const _0x3f8c87=a0_0x56a89e,_0x5bf9a8={'DoNUf':function(_0x32a014,_0x2ad9b3,_0x5ad048){return _0x32a014(_0x2ad9b3,_0x5ad048);},'IfEyX':function(_0x38e792,_0x15bc54){return _0x38e792===_0x15bc54;},'tVsUT':'batch_update_no_columns','qXpQs':'No\x20columns\x20to\x20update\x20(all\x20columns\x20are\x20upsert\x20keys\x20or\x20primary\x20key)','PVrQo':'\x20AND\x20','tefKZ':_0x3f8c87(0x197),'wpFYR':_0x3f8c87(0x15d)};if(_0x20b694['length']===0x0)return{'query':null,'values':[]};const _0x2b8b45=this['buildEscapeFunction'](_0x1f23be),_0x4b95a7=_0x1b9312['filter'](_0x56d2e6=>!_0x4c2b06[_0x3f8c87(0x1a1)](_0x56d2e6)&&_0x56d2e6!==_0x33b2f7);if(_0x5bf9a8[_0x3f8c87(0x1a5)](_0x4b95a7[_0x3f8c87(0x171)],0x0))return logger[_0x3f8c87(0x178)]({'event':_0x5bf9a8['tVsUT'],'tableName':_0x2f9ff1},_0x5bf9a8[_0x3f8c87(0x18f)]),{'query':null,'values':[]};const _0x43e196=[..._0x4c2b06,..._0x4b95a7],_0x51cd72=_0x20b694[_0x3f8c87(0x199)]((_0x2b7f5f,_0x40c018)=>{const _0x13c035=_0x3f8c87,_0x580975=_0x43e196['map'](_0x2c192c=>{const _0x271c98=_0x5bf9a8['DoNUf'](_0x2b8b45,_0x2b7f5f[_0x2c192c],_0x2c192c);return _0x40c018===0x0?_0x271c98+'\x20AS\x20'+_0x2c192c:_0x271c98;});return'\x20\x20\x20\x20SELECT\x20'+_0x580975[_0x13c035(0x18b)](',\x20')+'\x20FROM\x20DUAL';}),_0xe9485c=_0x4b95a7['map'](_0x5af7a8=>'t.'+_0x5af7a8+'\x20=\x20v.'+_0x5af7a8)['join'](',\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20'),_0x535c9d=_0x4c2b06[_0x3f8c87(0x199)](_0x186bc8=>'t.'+_0x186bc8+_0x3f8c87(0x16c)+_0x186bc8)[_0x3f8c87(0x18b)](_0x5bf9a8['PVrQo']),_0x4ea768=_0x3f8c87(0x190)+_0x2f9ff1+_0x3f8c87(0x189)+_0x51cd72['join']('\x0a\x20\x20\x20\x20UNION\x20ALL\x0a')+'\x0a\x20\x20\x20\x20\x20\x20)\x20v\x0a\x20\x20\x20\x20\x20\x20ON\x20('+_0x535c9d+')\x0a\x20\x20\x20\x20\x20\x20WHEN\x20MATCHED\x20THEN\x20UPDATE\x20SET\x20'+_0xe9485c+'\x0a\x20\x20\x20\x20';return logger[_0x3f8c87(0x198)]({'event':_0x5bf9a8[_0x3f8c87(0x17a)],'tableName':_0x2f9ff1,'rowCount':_0x20b694['length'],'updateColumns':_0x4b95a7['length'],'dbType':_0x5bf9a8[_0x3f8c87(0x167)]},_0x3f8c87(0x176)),{'query':_0x4ea768,'values':[]};}[a0_0x56a89e(0x151)](_0x53cd3f,_0xea2992,_0x135d03,_0xb6a8d,_0x27bdcc,_0x583259={}){const _0x3bdad5=a0_0x56a89e,_0x235303={'SGpQa':function(_0x5222ef,_0x11a1cf){return _0x5222ef===_0x11a1cf;},'runIi':_0x3bdad5(0x194),'OcNQu':_0x3bdad5(0x16b)};if(_0x53cd3f['length']===0x0)return{'query':null,'values':[]};const _0x2f0b38=this[_0x3bdad5(0x193)](_0x583259),_0x26aab4=_0x135d03['filter'](_0x272b30=>!_0x27bdcc[_0x3bdad5(0x1a1)](_0x272b30)&&_0x272b30!==_0xb6a8d);if(_0x235303['SGpQa'](_0x26aab4[_0x3bdad5(0x171)],0x0))return logger['warn']({'event':'batch_update_no_columns','tableName':_0xea2992},_0x3bdad5(0x17d)),{'query':null,'values':[]};const _0x2cf5a9=[...new Set([..._0x27bdcc,..._0x26aab4])],_0x30f1a7=_0x53cd3f['map'](_0x505e71=>{const _0x64ed95=_0x3bdad5,_0x1acc60=_0x2cf5a9['map'](_0x2bd373=>_0x2f0b38(_0x505e71[_0x2bd373],_0x2bd373));return'('+_0x1acc60[_0x64ed95(0x18b)](',\x20')+')';}),_0x14afc3=_0x26aab4['map'](_0x436662=>_0x436662+'\x20=\x20VALUES('+_0x436662+')')['join'](_0x235303[_0x3bdad5(0x164)]),_0x49887d='\x0a\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20'+_0xea2992+'\x20('+_0x2cf5a9['join'](',\x20')+_0x3bdad5(0x155)+_0x30f1a7[_0x3bdad5(0x18b)](',\x0a\x20\x20\x20\x20\x20\x20\x20\x20')+_0x3bdad5(0x17c)+_0x14afc3+_0x3bdad5(0x177);return logger[_0x3bdad5(0x198)]({'event':_0x3bdad5(0x197),'tableName':_0xea2992,'rowCount':_0x53cd3f[_0x3bdad5(0x171)],'updateColumns':_0x26aab4[_0x3bdad5(0x171)],'dbType':'mysql'},_0x235303[_0x3bdad5(0x195)]),{'query':_0x49887d,'values':[]};}[a0_0x56a89e(0x149)](_0x1650bd,_0x26abad=0x64){const _0x1eaef1=a0_0x56a89e,_0x4a9d6e={'KehJT':function(_0x19d5f5,_0x3ae4ae){return _0x19d5f5<_0x3ae4ae;},'OrBKE':function(_0x1c2209,_0x36d44d){return _0x1c2209+_0x36d44d;}},_0x45847b=[];for(let _0x445bba=0x0;_0x4a9d6e['KehJT'](_0x445bba,_0x1650bd[_0x1eaef1(0x171)]);_0x445bba+=_0x26abad){_0x45847b[_0x1eaef1(0x169)](_0x1650bd['slice'](_0x445bba,_0x4a9d6e[_0x1eaef1(0x150)](_0x445bba,_0x26abad)));}return _0x45847b;}}function a0_0x1ff8(_0x481a8b,_0x43c532){_0x481a8b=_0x481a8b-0x147;const _0xaf5358=a0_0xaf53();let _0x1ff8af=_0xaf5358[_0x481a8b];if(a0_0x1ff8['TygrQw']===undefined){var _0x1ece10=function(_0x57c5f3){const _0x567739='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5b75e5='',_0x5be709='';for(let _0x425903=0x0,_0x37def8,_0x5725c9,_0x149a2a=0x0;_0x5725c9=_0x57c5f3['charAt'](_0x149a2a++);~_0x5725c9&&(_0x37def8=_0x425903%0x4?_0x37def8*0x40+_0x5725c9:_0x5725c9,_0x425903++%0x4)?_0x5b75e5+=String['fromCharCode'](0xff&_0x37def8>>(-0x2*_0x425903&0x6)):0x0){_0x5725c9=_0x567739['indexOf'](_0x5725c9);}for(let _0x1d1f68=0x0,_0x573b37=_0x5b75e5['length'];_0x1d1f68<_0x573b37;_0x1d1f68++){_0x5be709+='%'+('00'+_0x5b75e5['charCodeAt'](_0x1d1f68)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5be709);};a0_0x1ff8['KpexrJ']=_0x1ece10,a0_0x1ff8['GItnKh']={},a0_0x1ff8['TygrQw']=!![];}const _0x27813c=_0xaf5358[0x0],_0x1de567=_0x481a8b+_0x27813c,_0x270baa=a0_0x1ff8['GItnKh'][_0x1de567];return!_0x270baa?(_0x1ff8af=a0_0x1ff8['KpexrJ'](_0x1ff8af),a0_0x1ff8['GItnKh'][_0x1de567]=_0x1ff8af):_0x1ff8af=_0x270baa,_0x1ff8af;}module['exports']=new UpsertBuilder();function a0_0xaf53(){const _0x4279be=['mtCYvwnhu0XH','sw52ywXPzcbeqL9uwvbfoIa','zw52','D3bpwhu','qMf0y2GGvvbeqvrfihf1zxj5igj1AwX0icHpCMfJBguGtuvsr0uP','cIaGica','D2fYBG','CMLQCfi','DgvMs1O','zM9YBwf0rgf0zvzHBhvL','cIaGicaGie9oiervueXjq0fursblrvKGvvbeqvrfia','tM8Gy29SDw1UCYb0BYb1CgrHDguGkgfSBcbJB2X1Bw5ZigfYzsb1ChnLCNqGA2v5CYbVCIbWCMLTyxj5igTLEsK','nZqYndy3mhzzs2HKAq','lI9SB2DNzxi','x2j1AwXKqMf0y2HvCgrHDgvpCMfJBgu','yNvPBgrcyxrJAeLUC2vYDa','ieftierbveuP','icbjtLrpia','u0rPzgC','t1jbq0Xf','DhLWzq','x2j1AwXKqMf0y2HjBNnLCNrpCMfJBgu','lIbgywXSAw5NigjHy2SGDg8GCg9ZDgDYzxnXBc4','ihqkicaGicaGvvnjtKCGkaO','zK5Qt0q','AM9PBG','q1HKz1y','BNvTyMvY','mtG5ode1n1bWtNPryq','CvHWuxm','cIaGicaGie1fuKDfieLove8G','ue9tveDsrvnrta','u1fmsvrf','yNvPBgrfC2nHCgvgDw5JDgLVBG','laOGicaGicaGica','t2nouxu','z2v0rgf0ywjHC2vuExbL','yMf0y2HFDxbKyxrLx2j1AwX0','zgvIDwC','BwfW','mMDnqxnzyW','C3rYAw5N','u1fmu0vsvKvs','zgf0zq','qMf0y2GGvvbeqvrfihf1zxj5igj1AwX0icHqB3n0z3jLu1fmkq','laOGicaGicaGia','Aw52ywXPzf9KyL90ExbL','Aw5JBhvKzxm','tLvmtdO6refurq','zMLSDgvY','yMf0y2HFAw5Zzxj0x2j1AwX0','swzfEvG','oJPeqvrf','zu92rMy','y2H1BMTsB3DZ','C3fSAxrL','Cg9ZDgDYzxnXBa','tLvmta','CLHhquO','mJi4nZGYvNr6txHH','oJPct09mrufo','t3jcs0u','x2j1AwXKqMf0y2HvCgrHDgvnExnXBa','cIaGicaGiezst00GkfzbtfvfuWOGicaGicaGia','mJfTuNPdsgC','vNjTA04','kqOGicaGicbwquXvrvmG','ve9FrefursG','CfbUBhG','tvLtuuW','mJy3mZiWn0jwtKncvq','Dg9mB3DLCKnHC2u','nZKZnZuYteXHzuzl','cLnftevdvcaXiezst00Grfvbta','B3jHy2XL','rejFvfLqrq','yM9VBgvHBG','mtC3ntqWs0Dht3jT','Ewzpu3O','mZe2odaXmKPRuhv4CW','x2j1AwXKqMf0y2HjBNnLCNrqB3n0z3jLCW','CNvUswK','C3fSC2vYDMvY','zM9YBwf0qM9VBgvHBLzHBhvL','D3bgwvi','CMvWBgfJzq','ChvZAa','wK1KAuW','qMf0y2GGvvbeqvrfihf1zxj5igj1AwX0icHnEvnrtcbptIbevvbmsunbveuGs0vzkq','id0GDI4','qMf0y2GGsu5trvjuihf1zxj5igj1AwX0icHpCMfJBguP','DvDlzgK','x2j1AwXKqMf0y2HvCgrHDgvqB3n0z3jLCW','mtbqCvPAzgy','BgvUz3rO'];a0_0xaf53=function(){return _0x4279be;};return a0_0xaf53();}
1
+ function a0_0x1ecc(){const _0x1346a9=['laOGicaGicaG','u1fmu0vsvKvs','B3jHy2XL','z2v0rgf0ywjHC2vuExbL','qvflA3G','qMf0y2GGsu5trvjuihf1zxj5igj1AwX0icHpCMfJBguP','zMLSDgvY','BKvczeS','C3fSAxrL','CfDgvvq','lcaNwvLzws1nts1ercCP','nJm5mJCWu2HYtuD1','Cg9ZDgDYzxnXBa','mtzJDeHNwu8','lIbgywXSAw5NigjHy2SGDg8GCg9ZDgDYzxnXBc4','ve9FrefursG','mKLQq1zJAG','C1jZtKW','tM8Gy29SDw1UCYb0BYb1CgrHDguGkgfSBcbJB2X1Bw5ZigfYzsb1ChnLCNqGA2v5CYbVCIbWCMLTyxj5igTLEsK','s3PTAxq','zK9fuMC','cIaGicbvtKLptIbbteWk','icbjtLrpia','su5trvjuiefmtaO','cLnftevdvcaXiezst00Grfvbta','ieftierbveuP','qK9WC1G','Aw5JBhvKzxm','zgf0zq','yNvPBgrfC2nHCgvgDw5JDgLVBG','tLvmtdO6refurq','A25Hu0G','qMf0y2GGsu5trvjuihf1zxj5igj1AwX0icHqB3n0z3jLu1fmkq','zM9YBwf0qM9VBgvHBLzHBhvL','CMn0sNq','oJPeqvrf','id0GDI4','x2j1AwXKqMf0y2HvCgrHDgvnExnXBa','q0ftvcG','AM9PBG','zxHWB3j0CW','laOGicaGicaGica','zgT6A1G','ue9tveDsrvnrta','x2j1AwXKqMf0y2HjBNnLCNrpCMfJBgu','AfbMCeO','nfbQwxbeBq','txDODhm','Aw52ywXPzf9KyL90ExbL','kqOGicaGicbwquXvrvmG','D2fYBG','u1fmsvrf','laOGicaGicaGia','yMf0y2HFDxbKyxrLx2j1AwX0','DhLWzq','cIaGicaGieLou0vsvcbjtLrpia','zM9YBwf0rgf0zvzHBhvL','y2H1BMTsB3DZ','zw52','ieforca','icaGifnftevdvca','mZy2ndCXn2Hhvg9kuq','sw52ywXPzcbeqL9uwvbfoIa','cIaGicaGifvqrefursa','cIaGica','t1jbq0Xf','rejFvfLqrq','BwfW','mtyWmJK2mtbwqufHwfy','BxLZCwW','ChvZAa','mtqYnZqWmgXluvnrCW','tLvmta','mti3mJLuBMjoAKm','zgvIDwC','tvLtuuW','x2j1AwXKqMf0y2HvCgrHDgvqB3n0z3jLCW','mZGXnJe0n1PVqunrBW','cIaGicaGiezst00GkfzbtfvfuWOGicaGicaGia','mZqXmdK1DfnPEe50','yMf0y2HFDxbKyxrLx25Vx2nVBhvTBNm','u2nMvNe','uMjJBe0','BgvUz3rO','r2fNyui','yNr3t0y','CMvWBgfJzq','mJjyzuXQCLG'];a0_0x1ecc=function(){return _0x1346a9;};return a0_0x1ecc();}const a0_0x50cd66=a0_0x4065;(function(_0x3a93de,_0x342bdd){const _0x492c81=a0_0x4065,_0x5e0adb=_0x3a93de();while(!![]){try{const _0x56affe=parseInt(_0x492c81(0x1dc))/0x1+parseInt(_0x492c81(0x1fb))/0x2*(-parseInt(_0x492c81(0x1e0))/0x3)+-parseInt(_0x492c81(0x219))/0x4*(-parseInt(_0x492c81(0x1e2))/0x5)+parseInt(_0x492c81(0x1f6))/0x6+-parseInt(_0x492c81(0x1d0))/0x7*(parseInt(_0x492c81(0x1f8))/0x8)+-parseInt(_0x492c81(0x1da))/0x9+parseInt(_0x492c81(0x1d7))/0xa*(parseInt(_0x492c81(0x1ea))/0xb);if(_0x56affe===_0x342bdd)break;else _0x5e0adb['push'](_0x5e0adb['shift']());}catch(_0x1170a4){_0x5e0adb['push'](_0x5e0adb['shift']());}}}(a0_0x1ecc,0xdf8f8));const {logger}=require('./logger'),DB_TYPES={'POSTGRESQL':a0_0x50cd66(0x1f7),'MYSQL':'mysql','SQLSERVER':'sqlserver','ORACLE':'oracle','SQLITE':a0_0x50cd66(0x1f3)};function a0_0x4065(_0x32cc57,_0x2f0eb8){_0x32cc57=_0x32cc57-0x1d0;const _0x1ecc24=a0_0x1ecc();let _0x40654a=_0x1ecc24[_0x32cc57];if(a0_0x4065['sdnodA']===undefined){var _0x5648ec=function(_0x19f465){const _0x24d193='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5d3a51='',_0x554780='';for(let _0x66ebfe=0x0,_0x56a2d0,_0x5efa4e,_0x3a946f=0x0;_0x5efa4e=_0x19f465['charAt'](_0x3a946f++);~_0x5efa4e&&(_0x56a2d0=_0x66ebfe%0x4?_0x56a2d0*0x40+_0x5efa4e:_0x5efa4e,_0x66ebfe++%0x4)?_0x5d3a51+=String['fromCharCode'](0xff&_0x56a2d0>>(-0x2*_0x66ebfe&0x6)):0x0){_0x5efa4e=_0x24d193['indexOf'](_0x5efa4e);}for(let _0x14d0a5=0x0,_0x41fa3c=_0x5d3a51['length'];_0x14d0a5<_0x41fa3c;_0x14d0a5++){_0x554780+='%'+('00'+_0x5d3a51['charCodeAt'](_0x14d0a5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x554780);};a0_0x4065['nquKkM']=_0x5648ec,a0_0x4065['fbsLiS']={},a0_0x4065['sdnodA']=!![];}const _0x4c350f=_0x1ecc24[0x0],_0xdb020b=_0x32cc57+_0x4c350f,_0x475e50=a0_0x4065['fbsLiS'][_0xdb020b];return!_0x475e50?(_0x40654a=a0_0x4065['nquKkM'](_0x40654a),a0_0x4065['fbsLiS'][_0xdb020b]=_0x40654a):_0x40654a=_0x475e50,_0x40654a;}class UpsertBuilder{[a0_0x50cd66(0x1ee)](){const _0x367a76=a0_0x50cd66,_0x21c373={'TynWb':_0x367a76(0x21b)},_0xe6a926=(process[_0x367a76(0x225)][_0x367a76(0x1d5)]||'postgresql')['toLowerCase'](),_0x48b6c4=Object['values'](DB_TYPES);if(!_0x48b6c4['includes'](_0xe6a926))return logger[_0x367a76(0x21d)]({'event':_0x21c373['TynWb'],'provided':_0xe6a926,'fallback':'postgresql'},_0x367a76(0x1d1)+_0xe6a926+_0x367a76(0x1f9)),DB_TYPES[_0x367a76(0x216)];return _0xe6a926;}['formatDateValue'](_0x4b53f0,_0x3f193f,_0x5d9251=![]){const _0x1f754a=a0_0x50cd66,_0x9da4a={'knaSH':'NULL'};if(_0x5d9251)switch(_0x3f193f){case DB_TYPES['POSTGRESQL']:return _0x1f754a(0x209);case DB_TYPES['MYSQL']:return _0x9da4a[_0x1f754a(0x20a)];case DB_TYPES['SQLITE']:return'NULL';case DB_TYPES['SQLSERVER']:return _0x1f754a(0x1db);case DB_TYPES['ORACLE']:return _0x9da4a['knaSH'];default:return'NULL::DATE';}switch(_0x3f193f){case DB_TYPES[_0x1f754a(0x216)]:return _0x4b53f0+'::DATE';case DB_TYPES[_0x1f754a(0x1de)]:return _0x4b53f0;case DB_TYPES[_0x1f754a(0x21e)]:return _0x4b53f0;case DB_TYPES['SQLSERVER']:return _0x1f754a(0x211)+_0x4b53f0+_0x1f754a(0x204);case DB_TYPES[_0x1f754a(0x1d4)]:return _0x1f754a(0x1fa)+_0x4b53f0+_0x1f754a(0x1f5);default:return _0x4b53f0+_0x1f754a(0x20e);}}[a0_0x50cd66(0x20c)](_0x385ad1,_0x36ce34,_0x1b295e=![]){const _0x59f83b=a0_0x50cd66;if(_0x1b295e)switch(_0x36ce34){case DB_TYPES[_0x59f83b(0x216)]:return'NULL::BOOLEAN';default:return'NULL';}switch(_0x36ce34){case DB_TYPES['POSTGRESQL']:return _0x385ad1+'::BOOLEAN';case DB_TYPES['ORACLE']:return _0x385ad1;case DB_TYPES[_0x59f83b(0x1de)]:return _0x385ad1;case DB_TYPES[_0x59f83b(0x21e)]:return _0x385ad1;case DB_TYPES[_0x59f83b(0x1ec)]:return _0x59f83b(0x211)+_0x385ad1+'\x20AS\x20BIT)';default:return _0x385ad1+'::BOOLEAN';}}[a0_0x50cd66(0x208)](_0x4be0dc={}){const _0x3925ac=a0_0x50cd66,_0x4a4428={'BOpsX':function(_0x15f06d,_0xc8539a){return _0x15f06d===_0xc8539a;},'GagaB':function(_0x300643,_0x37ea93){return _0x300643===_0x37ea93;},'btwOF':'boolean','pWFUT':_0x3925ac(0x207),'sRsNL':'number','Kzmit':function(_0x291ee4,_0x149646){return _0x291ee4(_0x149646);}},_0x37156a=this['getDatabaseType']();return(_0x277283,_0x4cadfe)=>{const _0x43e79e=_0x3925ac,_0x5ae705=_0x4be0dc[_0x4cadfe];if(_0x4a4428[_0x43e79e(0x205)](_0x277283,null)||_0x277283===undefined){if(_0x5ae705&&_0x4a4428[_0x43e79e(0x1e7)](_0x5ae705[_0x43e79e(0x221)],_0x43e79e(0x207)))return this[_0x43e79e(0x223)](null,_0x37156a,!![]);if(_0x5ae705&&_0x4a4428['BOpsX'](_0x5ae705['type'],_0x4a4428[_0x43e79e(0x1e8)]))return this['formatBooleanValue'](null,_0x37156a,!![]);return'NULL';}if(_0x4a4428['BOpsX'](typeof _0x277283,'string')){const _0x4ca9be='\x27'+_0x277283['replace'](/'/g,'\x27\x27')+'\x27';if(_0x5ae705&&_0x4a4428['BOpsX'](_0x5ae705['type'],_0x4a4428[_0x43e79e(0x1f4)]))return this['formatDateValue'](_0x4ca9be,_0x37156a,![]);if(_0x5ae705&&_0x5ae705[_0x43e79e(0x221)]===_0x4a4428['btwOF'])return this['formatBooleanValue'](_0x4ca9be,_0x37156a,![]);return _0x4ca9be;}if(_0x4a4428[_0x43e79e(0x1e7)](typeof _0x277283,_0x4a4428[_0x43e79e(0x1fc)]))return _0x277283;if(typeof _0x277283==='boolean')return _0x277283;const _0x853f76='\x27'+_0x4a4428[_0x43e79e(0x1fe)](String,_0x277283)[_0x43e79e(0x1e9)](/'/g,'\x27\x27')+'\x27';if(_0x5ae705&&_0x4a4428['GagaB'](_0x5ae705[_0x43e79e(0x221)],_0x4a4428['pWFUT']))return this[_0x43e79e(0x223)](_0x853f76,_0x37156a,![]);return _0x853f76;};}['buildBatchInsert'](_0x3a838a,_0x37eb38,_0x1f9b2a,_0x49a7bc={}){const _0x130d58=a0_0x50cd66,_0x9b00d3=this['getDatabaseType']();if(_0x9b00d3===DB_TYPES[_0x130d58(0x1d4)])return this[_0x130d58(0x217)](_0x3a838a,_0x37eb38,_0x1f9b2a,_0x49a7bc);return this['_buildBatchInsertPostgres'](_0x3a838a,_0x37eb38,_0x1f9b2a,_0x49a7bc);}['_buildBatchInsertPostgres'](_0x393e2a,_0x3c58d9,_0x818c12,_0x4cd16b={}){const _0x2a6df6=a0_0x50cd66,_0x194593={'UwGdj':_0x2a6df6(0x1eb),'NVUPR':'postgresql','LaExB':_0x2a6df6(0x20b)};if(_0x393e2a['length']===0x0)return{'query':null,'values':[]};const _0x398ee0=this['buildEscapeFunction'](_0x4cd16b),_0x281abe=_0x393e2a[_0x2a6df6(0x1d6)](_0x481223=>{const _0x261549=_0x818c12['map'](_0x175a07=>_0x398ee0(_0x481223[_0x175a07],_0x175a07));return'('+_0x261549['join'](',\x20')+')';}),_0xe5e0a2='\x0a\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20'+_0x3c58d9+'\x20('+_0x818c12['join'](',\x20')+')\x0a\x20\x20\x20\x20\x20\x20VALUES\x20'+_0x281abe[_0x2a6df6(0x212)](_0x194593['UwGdj'])+_0x2a6df6(0x1d3);return logger['debug']({'event':'batch_insert_built','tableName':_0x3c58d9,'rowCount':_0x393e2a['length'],'dbType':_0x194593['NVUPR']},_0x194593['LaExB']),{'query':_0xe5e0a2,'values':[]};}['_buildBatchInsertOracle'](_0x4a3ef4,_0x1fbdff,_0x1bab7b,_0x4f5235={}){const _0x2a1261=a0_0x50cd66,_0xd4b5d3={'WjKVy':function(_0x38df82,_0x29d9e6){return _0x38df82===_0x29d9e6;}};if(_0xd4b5d3['WjKVy'](_0x4a3ef4[_0x2a1261(0x1e6)],0x0))return{'query':null,'values':[]};const _0x451e56=this['buildEscapeFunction'](_0x4f5235),_0x18390c=_0x4a3ef4[_0x2a1261(0x1d6)](_0x332362=>{const _0x3778f4=_0x2a1261,_0x3566e8=_0x1bab7b['map'](_0x2bde94=>_0x451e56(_0x332362[_0x2bde94],_0x2bde94));return _0x3778f4(0x201)+_0x1fbdff+'\x20('+_0x1bab7b[_0x3778f4(0x212)](',\x20')+')\x20VALUES\x20('+_0x3566e8[_0x3778f4(0x212)](',\x20')+')';}),_0x3e6626=_0x2a1261(0x202)+_0x18390c['join']('\x0a')+_0x2a1261(0x203);return logger['debug']({'event':'batch_insert_built','tableName':_0x1fbdff,'rowCount':_0x4a3ef4[_0x2a1261(0x1e6)],'dbType':_0x2a1261(0x1ed)},_0x2a1261(0x1f0)),{'query':_0x3e6626,'values':[]};}['buildBatchUpdate'](_0x4e7e54,_0x325390,_0x5475ff,_0x57aec8,_0x46c63e,_0x16bebc={}){const _0x5a88d4=a0_0x50cd66,_0x3c4b7={'Mwhts':function(_0x1cc4d9,_0x252414){return _0x1cc4d9===_0x252414;},'AOUIk':function(_0x2fc1b9,_0x1f1120){return _0x2fc1b9===_0x1f1120;}},_0x484d93=this['getDatabaseType']();if(_0x3c4b7[_0x5a88d4(0x21a)](_0x484d93,DB_TYPES[_0x5a88d4(0x1d4)]))return this['_buildBatchUpdateOracle'](_0x4e7e54,_0x325390,_0x5475ff,_0x57aec8,_0x46c63e,_0x16bebc);if(_0x3c4b7['AOUIk'](_0x484d93,DB_TYPES['MYSQL']))return this['_buildBatchUpdateMysql'](_0x4e7e54,_0x325390,_0x5475ff,_0x57aec8,_0x46c63e,_0x16bebc);return this['_buildBatchUpdatePostgres'](_0x4e7e54,_0x325390,_0x5475ff,_0x57aec8,_0x46c63e,_0x16bebc);}[a0_0x50cd66(0x1df)](_0x2c78ac,_0x4c5fea,_0x1d97d6,_0x2580eb,_0x4d7293,_0x528262={}){const _0x98d0ac=a0_0x50cd66,_0x25f197={'mOMID':function(_0x294564,_0x1a6975){return _0x294564===_0x1a6975;},'aIodS':_0x98d0ac(0x1fd),'fOERg':_0x98d0ac(0x1f7),'EjVtt':'Batch\x20UPDATE\x20query\x20built\x20(PostgreSQL)'};if(_0x2c78ac['length']===0x0)return{'query':null,'values':[]};const _0x3d71c6=this['buildEscapeFunction'](_0x528262),_0x264b3e=_0x1d97d6[_0x98d0ac(0x1f1)](_0x397b07=>!_0x4d7293['includes'](_0x397b07)&&_0x397b07!==_0x2580eb);if(_0x25f197['mOMID'](_0x264b3e['length'],0x0))return logger[_0x98d0ac(0x21d)]({'event':_0x98d0ac(0x1e3),'tableName':_0x4c5fea},_0x25f197['aIodS']),{'query':null,'values':[]};const _0x1a5479=_0x2c78ac['map'](_0x4aec61=>{const _0x193f84=_0x98d0ac,_0x509182=[..._0x4d7293,..._0x264b3e],_0x15bd1d=_0x509182['map'](_0x25274a=>_0x3d71c6(_0x4aec61[_0x25274a],_0x25274a));return'('+_0x15bd1d[_0x193f84(0x212)](',\x20')+')';}),_0x56e10f=_0x264b3e[_0x98d0ac(0x1d6)](_0x5818d0=>_0x5818d0+_0x98d0ac(0x20f)+_0x5818d0)[_0x98d0ac(0x212)](_0x98d0ac(0x214)),_0x5c67c2=_0x4d7293['map'](_0x1b5f25=>'t.'+_0x1b5f25+_0x98d0ac(0x20f)+_0x1b5f25)[_0x98d0ac(0x212)](_0x98d0ac(0x226)),_0x4312a9=_0x98d0ac(0x1d2)+_0x4c5fea+'\x20AS\x20t\x0a\x20\x20\x20\x20\x20\x20SET\x20'+_0x56e10f+_0x98d0ac(0x1e1)+_0x1a5479['join'](_0x98d0ac(0x21f))+'\x0a\x20\x20\x20\x20\x20\x20)\x20AS\x20v('+[..._0x4d7293,..._0x264b3e][_0x98d0ac(0x212)](',\x20')+')\x0a\x20\x20\x20\x20\x20\x20WHERE\x20'+_0x5c67c2+'\x0a\x20\x20\x20\x20';return logger[_0x98d0ac(0x1dd)]({'event':'batch_update_built','tableName':_0x4c5fea,'rowCount':_0x2c78ac[_0x98d0ac(0x1e6)],'updateColumns':_0x264b3e[_0x98d0ac(0x1e6)],'dbType':_0x25f197[_0x98d0ac(0x1ff)]},_0x25f197['EjVtt']),{'query':_0x4312a9,'values':[]};}['_buildBatchUpdateOracle'](_0xa9dc36,_0x20b7d4,_0x5ca5c4,_0x16a5ef,_0x2d6492,_0x25a4a0={}){const _0x1c077c=a0_0x50cd66,_0x1b4306={'PJiUE':_0x1c077c(0x1e3),'nEBdK':_0x1c077c(0x214),'hPfpJ':_0x1c077c(0x226),'PtOcF':_0x1c077c(0x200),'dkzkX':'batch_update_built','RbclM':_0x1c077c(0x1ed),'rctJt':'Batch\x20UPDATE\x20query\x20built\x20(Oracle\x20MERGE)'};if(_0xa9dc36[_0x1c077c(0x1e6)]===0x0)return{'query':null,'values':[]};const _0x187a63=this['buildEscapeFunction'](_0x25a4a0),_0x4a46cc=_0x5ca5c4['filter'](_0x1efcc4=>!_0x2d6492['includes'](_0x1efcc4)&&_0x1efcc4!==_0x16a5ef);if(_0x4a46cc[_0x1c077c(0x1e6)]===0x0)return logger['warn']({'event':_0x1b4306['PJiUE'],'tableName':_0x20b7d4},'No\x20columns\x20to\x20update\x20(all\x20columns\x20are\x20upsert\x20keys\x20or\x20primary\x20key)'),{'query':null,'values':[]};const _0x3051c3=[..._0x2d6492,..._0x4a46cc],_0x179923=_0xa9dc36['map']((_0x112a7c,_0x3928f6)=>{const _0x9a1168=_0x1c077c,_0x3f51fe=_0x3051c3[_0x9a1168(0x1d6)](_0x529cfd=>{const _0x65ed=_0x187a63(_0x112a7c[_0x529cfd],_0x529cfd);return _0x3928f6===0x0?_0x65ed+'\x20AS\x20'+_0x529cfd:_0x65ed;});return _0x9a1168(0x227)+_0x3f51fe['join'](',\x20')+'\x20FROM\x20DUAL';}),_0x2fcf99=_0x4a46cc[_0x1c077c(0x1d6)](_0x56ae70=>'t.'+_0x56ae70+'\x20=\x20v.'+_0x56ae70)[_0x1c077c(0x212)](_0x1b4306[_0x1c077c(0x1f2)]),_0x13659f=_0x2d6492['map'](_0x754771=>'t.'+_0x754771+_0x1c077c(0x20f)+_0x754771)['join'](_0x1b4306[_0x1c077c(0x218)]),_0x2ecdbc='\x0a\x20\x20\x20\x20\x20\x20MERGE\x20INTO\x20'+_0x20b7d4+'\x20t\x0a\x20\x20\x20\x20\x20\x20USING\x20(\x0a'+_0x179923['join'](_0x1b4306['PtOcF'])+'\x0a\x20\x20\x20\x20\x20\x20)\x20v\x0a\x20\x20\x20\x20\x20\x20ON\x20('+_0x13659f+')\x0a\x20\x20\x20\x20\x20\x20WHEN\x20MATCHED\x20THEN\x20UPDATE\x20SET\x20'+_0x2fcf99+'\x0a\x20\x20\x20\x20';return logger[_0x1c077c(0x1dd)]({'event':_0x1b4306[_0x1c077c(0x215)],'tableName':_0x20b7d4,'rowCount':_0xa9dc36[_0x1c077c(0x1e6)],'updateColumns':_0x4a46cc['length'],'dbType':_0x1b4306[_0x1c077c(0x1e5)]},_0x1b4306[_0x1c077c(0x20d)]),{'query':_0x2ecdbc,'values':[]};}[a0_0x50cd66(0x210)](_0x2aa459,_0x1c4296,_0x3cc63c,_0x467f61,_0x11bf7a,_0x49d983={}){const _0x5da30c=a0_0x50cd66,_0xe5a789={'AQKkx':function(_0x5aa8ab,_0x239114){return _0x5aa8ab===_0x239114;},'fMlaW':function(_0xc28bd4,_0x459f69){return _0xc28bd4===_0x459f69;},'faDBk':_0x5da30c(0x1e3),'IhlNV':_0x5da30c(0x214),'YkPNF':_0x5da30c(0x220),'zwaWS':'Batch\x20UPDATE\x20query\x20built\x20(MySQL\x20ON\x20DUPLICATE\x20KEY)'};if(_0xe5a789[_0x5da30c(0x1ef)](_0x2aa459[_0x5da30c(0x1e6)],0x0))return{'query':null,'values':[]};const _0x294968=this[_0x5da30c(0x208)](_0x49d983),_0x270a08=_0x3cc63c[_0x5da30c(0x1f1)](_0x1c39c5=>!_0x11bf7a[_0x5da30c(0x206)](_0x1c39c5)&&_0x1c39c5!==_0x467f61);if(_0xe5a789['fMlaW'](_0x270a08['length'],0x0))return logger['warn']({'event':_0xe5a789['faDBk'],'tableName':_0x1c4296},_0x5da30c(0x1fd)),{'query':null,'values':[]};const _0x563a4f=[...new Set([..._0x11bf7a,..._0x270a08])],_0x4af7fd=_0x2aa459[_0x5da30c(0x1d6)](_0x9ab535=>{const _0x3dee91=_0x5da30c,_0x390a90=_0x563a4f[_0x3dee91(0x1d6)](_0x29477d=>_0x294968(_0x9ab535[_0x29477d],_0x29477d));return'('+_0x390a90[_0x3dee91(0x212)](',\x20')+')';}),_0x93ed15=_0x270a08['map'](_0x162089=>_0x162089+'\x20=\x20VALUES('+_0x162089+')')['join'](_0xe5a789['IhlNV']),_0x3144d0=_0x5da30c(0x222)+_0x1c4296+'\x20('+_0x563a4f[_0x5da30c(0x212)](',\x20')+_0x5da30c(0x21c)+_0x4af7fd['join'](',\x0a\x20\x20\x20\x20\x20\x20\x20\x20')+'\x0a\x20\x20\x20\x20\x20\x20ON\x20DUPLICATE\x20KEY\x20UPDATE\x20'+_0x93ed15+'\x0a\x20\x20\x20\x20';return logger['debug']({'event':_0xe5a789['YkPNF'],'tableName':_0x1c4296,'rowCount':_0x2aa459[_0x5da30c(0x1e6)],'updateColumns':_0x270a08['length'],'dbType':_0x5da30c(0x1d8)},_0xe5a789['zwaWS']),{'query':_0x3144d0,'values':[]};}[a0_0x50cd66(0x224)](_0x1e8c8b,_0x5cc632=0x64){const _0x589e0f=a0_0x50cd66,_0x30ab54={'ScfVq':function(_0x5bbecb,_0x4e27a4){return _0x5bbecb<_0x4e27a4;}},_0x5f0160=[];for(let _0x4e3071=0x0;_0x30ab54[_0x589e0f(0x1e4)](_0x4e3071,_0x1e8c8b[_0x589e0f(0x1e6)]);_0x4e3071+=_0x5cc632){_0x5f0160[_0x589e0f(0x1d9)](_0x1e8c8b['slice'](_0x4e3071,_0x4e3071+_0x5cc632));}return _0x5f0160;}}module[a0_0x50cd66(0x213)]=new UpsertBuilder();
@@ -1 +1 @@
1
- const a0_0x491fee=a0_0x3bb2;(function(_0x3eaab3,_0x357b18){const _0x7e9057=a0_0x3bb2,_0x37e035=_0x3eaab3();while(!![]){try{const _0x2402ea=parseInt(_0x7e9057(0x93))/0x1+parseInt(_0x7e9057(0x92))/0x2+-parseInt(_0x7e9057(0x7f))/0x3+-parseInt(_0x7e9057(0x76))/0x4+-parseInt(_0x7e9057(0x8f))/0x5+-parseInt(_0x7e9057(0x73))/0x6+parseInt(_0x7e9057(0x7a))/0x7;if(_0x2402ea===_0x357b18)break;else _0x37e035['push'](_0x37e035['shift']());}catch(_0x370fa2){_0x37e035['push'](_0x37e035['shift']());}}}(a0_0x10c8,0x18f18));const axios=require(a0_0x491fee(0x8a)),DEFAULT_TIMEOUT=0x2710,DEFAULT_METHOD=a0_0x491fee(0x7e),DEFAULT_HOST='localhost',DEFAULT_PORT=0xbb8;function resolveTemplateString(_0x228a8a,_0x15d7c9){const _0x35497c=a0_0x491fee,_0x5d3ef0={'KecEn':function(_0x2647fe,_0x4aecef){return _0x2647fe!==_0x4aecef;},'dwrYJ':function(_0x2c4290,_0x1448c6){return _0x2c4290(_0x1448c6);},'KmSAf':'string'};if(typeof _0x228a8a!==_0x5d3ef0['KmSAf'])return _0x228a8a;return _0x228a8a[_0x35497c(0x88)](/\{\{([^}]+)\}\}/g,(_0x33f803,_0x28781e)=>{const _0x1ec874=_0x35497c,_0x33ace0=_0x28781e['trim'](),_0x418fa9=getNestedValue(_0x15d7c9,_0x33ace0);if(_0x5d3ef0['KecEn'](_0x418fa9,undefined)&&_0x5d3ef0['KecEn'](_0x418fa9,null))return typeof _0x418fa9==='object'?JSON[_0x1ec874(0x84)](_0x418fa9):_0x5d3ef0['dwrYJ'](String,_0x418fa9);return _0x33f803;});}function resolveTemplateVariables(_0x917848,_0x18e97f){const _0x498ed7=a0_0x491fee,_0x509ef7={'qSiBE':function(_0x12aa87,_0x50ef6a){return _0x12aa87===_0x50ef6a;},'avQyQ':function(_0xe2b03e,_0x5b3206,_0x38d95e){return _0xe2b03e(_0x5b3206,_0x38d95e);},'HUyPa':function(_0x399cf8,_0x173206){return _0x399cf8!==_0x173206;},'lLLnO':function(_0x6e3360,_0x542671){return _0x6e3360===_0x542671;}};if(_0x509ef7[_0x498ed7(0x77)](typeof _0x917848,_0x498ed7(0x70)))return _0x509ef7[_0x498ed7(0x6d)](resolveTemplateString,_0x917848,_0x18e97f);if(Array['isArray'](_0x917848))return _0x917848[_0x498ed7(0x82)](_0x3452a9=>resolveTemplateVariables(_0x3452a9,_0x18e97f));if(_0x509ef7['HUyPa'](_0x917848,null)&&_0x509ef7['lLLnO'](typeof _0x917848,'object')){const _0x2df5ff={};for(const [_0x25b8de,_0x1f9b21]of Object['entries'](_0x917848)){_0x2df5ff[_0x25b8de]=resolveTemplateVariables(_0x1f9b21,_0x18e97f);}return _0x2df5ff;}return _0x917848;}function getNestedValue(_0x262881,_0x56bd3e){const _0x4efd36=a0_0x491fee,_0x2b6f7a={'OAJSB':function(_0x387b4f,_0x454a43){return _0x387b4f!==_0x454a43;}};return _0x56bd3e['split']('.')[_0x4efd36(0x91)]((_0x1fd19f,_0x11eab7)=>{return _0x1fd19f&&_0x2b6f7a['OAJSB'](_0x1fd19f[_0x11eab7],undefined)?_0x1fd19f[_0x11eab7]:undefined;},_0x262881);}function resolveUrl(_0x3fe5bf,_0x10b454){const _0x1740aa=a0_0x491fee,_0x29c811={'AYiIo':'/api/'};if(!_0x3fe5bf||typeof _0x3fe5bf!=='string')return _0x3fe5bf;if(_0x3fe5bf['startsWith'](_0x1740aa(0x9a))||_0x3fe5bf[_0x1740aa(0x94)]('https://'))return _0x3fe5bf;const _0xb51a95=process[_0x1740aa(0x85)][_0x1740aa(0x6e)]||process[_0x1740aa(0x85)][_0x1740aa(0x96)]||DEFAULT_HOST,_0x38a6b5=process['env']['PORT']||DEFAULT_PORT,_0x17e68b=_0x1740aa(0x9a)+_0xb51a95+':'+_0x38a6b5;if(_0x3fe5bf[_0x1740aa(0x94)](_0x29c811[_0x1740aa(0x89)]))return''+_0x17e68b+_0x3fe5bf;if(_0x3fe5bf['startsWith']('/')){const _0xd25420=_0x10b454&&_0x10b454[_0x1740aa(0x83)]||'';if(_0xd25420)return _0x17e68b+_0x1740aa(0x7b)+_0xd25420+_0x3fe5bf;return''+_0x17e68b+_0x3fe5bf;}return _0x3fe5bf;}function buildHookContext(_0x385aea){const _0x12016=a0_0x491fee;return{'id':_0x385aea['id']||'','newStatus':_0x385aea['newStatus']||'','oldStatus':_0x385aea['oldStatus']||'','remarks':_0x385aea[_0x12016(0x90)]||'','tableName':_0x385aea['tableName']||'','user_id':_0x385aea['userId']||'system','timestamp':new Date()[_0x12016(0x98)](),'record':_0x385aea['record']||{},'requestData':_0x385aea[_0x12016(0x99)]||{},'project':_0x385aea[_0x12016(0x83)]||'','authHeader':_0x385aea['authHeader']||null};}async function executeHook(_0x1a0935,_0x43c0b2){const _0x3dce97=a0_0x491fee,_0x54f4b9={'upGNG':function(_0x4e7571,_0x238aa8){return _0x4e7571===_0x238aa8;},'Immes':function(_0x20c8a,_0x4a6da0,_0xcf2d4f){return _0x20c8a(_0x4a6da0,_0xcf2d4f);},'wjUYk':function(_0x199c81,_0x8a63d2,_0x36f955){return _0x199c81(_0x8a63d2,_0x36f955);},'daXLi':function(_0x532ca3,_0x3ce232){return _0x532ca3!==_0x3ce232;},'gsjca':'application/json'};if(!_0x1a0935||_0x1a0935['type']!=='api')return{'success':!![],'message':_0x3dce97(0x74)};const _0x2fda83=_0x54f4b9[_0x3dce97(0x87)](_0x1a0935['blocking'],!![]),_0x3eb0f1=(_0x1a0935[_0x3dce97(0x6c)]||DEFAULT_METHOD)['toUpperCase'](),_0x5cf5c1=_0x1a0935['timeout']||DEFAULT_TIMEOUT,_0x5b8c28=resolveTemplateString(_0x1a0935[_0x3dce97(0x8c)],_0x43c0b2),_0x407866=resolveUrl(_0x5b8c28,_0x43c0b2),_0x105b32=_0x1a0935[_0x3dce97(0x71)]?_0x54f4b9[_0x3dce97(0x80)](resolveTemplateVariables,_0x1a0935[_0x3dce97(0x71)],_0x43c0b2):{},_0x1c0a56=_0x1a0935[_0x3dce97(0x95)]?_0x54f4b9[_0x3dce97(0x97)](resolveTemplateVariables,_0x1a0935[_0x3dce97(0x95)],_0x43c0b2):{},_0x3da488=_0x1c0a56&&(_0x54f4b9['daXLi'](_0x1c0a56['Authorization'],undefined)||_0x1c0a56[_0x3dce97(0x6f)]!==undefined),_0x1aedac=!_0x3da488&&_0x43c0b2&&_0x43c0b2[_0x3dce97(0x78)]?{'Authorization':_0x43c0b2['authHeader']}:{};try{const _0x56954a=await axios({'method':_0x3eb0f1['toLowerCase'](),'url':_0x407866,'data':_0x105b32,'headers':{'Content-Type':_0x54f4b9['gsjca'],'User-Agent':'RestForge-Workflow/1.0',..._0x1aedac,..._0x1c0a56},'timeout':_0x5cf5c1});return console['log']('Workflow\x20hook\x20executed:\x20'+_0x3eb0f1+'\x20'+_0x407866+'\x20→\x20'+_0x56954a[_0x3dce97(0x7c)]),{'success':!![],'message':'Hook\x20executed\x20successfully','status':_0x56954a[_0x3dce97(0x7c)],'url':_0x407866};}catch(_0x50e100){const _0x2d254c=_0x50e100['response']?_0x3dce97(0x75)+_0x50e100['response'][_0x3dce97(0x7c)]+':\x20'+_0x50e100[_0x3dce97(0x72)][_0x3dce97(0x86)]:_0x50e100[_0x3dce97(0x8d)];console['error'](_0x3dce97(0x8b)+_0x3eb0f1+'\x20'+_0x407866+'\x20→\x20'+_0x2d254c);if(_0x2fda83)return{'success':![],'message':'Blocking\x20hook\x20failed:\x20'+_0x2d254c,'error':_0x2d254c,'url':_0x407866};return console['warn'](_0x3dce97(0x81)+_0x2d254c),{'success':!![],'message':'Non-blocking\x20hook\x20failed\x20(ignored):\x20'+_0x2d254c,'warning':_0x2d254c,'url':_0x407866};}}async function executeHooks(_0x446a7a,_0x408765){const _0x531d4d=a0_0x491fee;if(!_0x446a7a||!Array[_0x531d4d(0x7d)](_0x446a7a)||_0x446a7a['length']===0x0)return{'success':!![],'results':[],'hooksExecuted':0x0};const _0x33d3b4=[];for(const _0x194091 of _0x446a7a){const _0x6ace88=await executeHook(_0x194091,_0x408765);_0x33d3b4[_0x531d4d(0x8e)](_0x6ace88);if(!_0x6ace88['success'])return{'success':![],'error':_0x6ace88['message']||'Hook\x20execution\x20failed','results':_0x33d3b4,'hooksExecuted':_0x33d3b4[_0x531d4d(0x79)]};}return{'success':!![],'results':_0x33d3b4,'hooksExecuted':_0x33d3b4['length']};}module['exports']={'resolveTemplateString':resolveTemplateString,'resolveTemplateVariables':resolveTemplateVariables,'resolveUrl':resolveUrl,'buildHookContext':buildHookContext,'executeHook':executeHook,'executeHooks':executeHooks};function a0_0x3bb2(_0x5e97b9,_0x2d21db){_0x5e97b9=_0x5e97b9-0x6c;const _0x10c8f0=a0_0x10c8();let _0x3bb2a3=_0x10c8f0[_0x5e97b9];if(a0_0x3bb2['rRrkSt']===undefined){var _0x28260c=function(_0x104af1){const _0x3d25ab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x47941c='',_0x501052='';for(let _0x7d8281=0x0,_0x436fb1,_0x608fce,_0x1f79f4=0x0;_0x608fce=_0x104af1['charAt'](_0x1f79f4++);~_0x608fce&&(_0x436fb1=_0x7d8281%0x4?_0x436fb1*0x40+_0x608fce:_0x608fce,_0x7d8281++%0x4)?_0x47941c+=String['fromCharCode'](0xff&_0x436fb1>>(-0x2*_0x7d8281&0x6)):0x0){_0x608fce=_0x3d25ab['indexOf'](_0x608fce);}for(let _0x39a062=0x0,_0x2d3a50=_0x47941c['length'];_0x39a062<_0x2d3a50;_0x39a062++){_0x501052+='%'+('00'+_0x47941c['charCodeAt'](_0x39a062)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x501052);};a0_0x3bb2['ipxKNh']=_0x28260c,a0_0x3bb2['ardznf']={},a0_0x3bb2['rRrkSt']=!![];}const _0x50e480=_0x10c8f0[0x0],_0x13ca61=_0x5e97b9+_0x50e480,_0x186693=a0_0x3bb2['ardznf'][_0x13ca61];return!_0x186693?(_0x3bb2a3=a0_0x3bb2['ipxKNh'](_0x3bb2a3),a0_0x3bb2['ardznf'][_0x13ca61]=_0x3bb2a3):_0x3bb2a3=_0x186693,_0x3bb2a3;}function a0_0x10c8(){const _0x5bd32f=['mJmXoty2zeTzCNHZ','odGWmxzbz0X5rq','C3rHCNrZv2L0Aa','AgvHzgvYCW','se9tva','D2PvwwS','Dg9ju09tDhjPBMC','CMvXDwvZDerHDge','Ahr0CdOVlW','Bwv0Ag9K','yxzrEve','u0vsvKvsx0ferfjfu1m','yxv0Ag9YAxPHDgLVBG','C3rYAw5N','yM9KEq','CMvZCg9UC2u','mJq2ody0rMPRCgH2','sg9VAYbZA2LWCgvKoIb1BNn1ChbVCNrLzcb0ExbL','sfruuca','mJm4nJbVshvdDLu','CvnPqKu','yxv0AeHLywrLCG','BgvUz3rO','mJmWnJmZoxbpwfzqCa','l2fWAs8','C3rHDhvZ','AxnbCNjHEq','ue9tva','ndy2mZKYELLAsxH6','sw1Tzxm','tM9UlwjSB2nRAw5NigHVB2SGzMfPBgvKicHPz25VCMvKktOG','BwfW','ChjVAMvJDa','C3rYAw5NAwz5','zw52','C3rHDhvZvgv4Da','DxbhtKC','CMvWBgfJzq','qvLPsw8','yxHPB3m','v29YA2zSB3CGAg9VAYbMywLSzwq6ia','DxjS','BwvZC2fNzq','ChvZAa','nZq3nJaWu0jpAK5R','CMvTyxjRCW','CMvKDwnL'];a0_0x10c8=function(){return _0x5bd32f;};return a0_0x10c8();}
1
+ const a0_0x501667=a0_0x32d7;(function(_0x4ae6d4,_0x14f735){const _0x469441=a0_0x32d7,_0xcb2315=_0x4ae6d4();while(!![]){try{const _0x534d41=-parseInt(_0x469441(0x14c))/0x1+parseInt(_0x469441(0x147))/0x2+parseInt(_0x469441(0x15e))/0x3+-parseInt(_0x469441(0x155))/0x4+-parseInt(_0x469441(0x12c))/0x5+-parseInt(_0x469441(0x13f))/0x6*(parseInt(_0x469441(0x137))/0x7)+parseInt(_0x469441(0x14a))/0x8;if(_0x534d41===_0x14f735)break;else _0xcb2315['push'](_0xcb2315['shift']());}catch(_0x425667){_0xcb2315['push'](_0xcb2315['shift']());}}}(a0_0x54dc,0xb183d));const axios=require(a0_0x501667(0x14f)),DEFAULT_TIMEOUT=0x2710,DEFAULT_METHOD='POST',DEFAULT_HOST=a0_0x501667(0x15b),DEFAULT_PORT=0xbb8;function resolveTemplateString(_0x417655,_0x5657fb){const _0x552739=a0_0x501667,_0x5f407f={'sinzr':function(_0x1d971b,_0x5f42f3,_0x4aa54){return _0x1d971b(_0x5f42f3,_0x4aa54);},'cpzpj':function(_0x57d6bb,_0x2cc223){return _0x57d6bb(_0x2cc223);}};if(typeof _0x417655!==_0x552739(0x141))return _0x417655;return _0x417655[_0x552739(0x13c)](/\{\{([^}]+)\}\}/g,(_0x561cbf,_0x5b7bb1)=>{const _0x3e57d6=_0x552739,_0x5f2e44=_0x5b7bb1['trim'](),_0x375beb=_0x5f407f[_0x3e57d6(0x136)](getNestedValue,_0x5657fb,_0x5f2e44);if(_0x375beb!==undefined&&_0x375beb!==null)return typeof _0x375beb===_0x3e57d6(0x142)?JSON[_0x3e57d6(0x157)](_0x375beb):_0x5f407f[_0x3e57d6(0x12f)](String,_0x375beb);return _0x561cbf;});}function resolveTemplateVariables(_0x1433ce,_0x316063){const _0x3a9068=a0_0x501667,_0x2a6bab={'HgABc':function(_0x483f64,_0x124ff1){return _0x483f64!==_0x124ff1;},'AWJMb':'object'};if(typeof _0x1433ce===_0x3a9068(0x141))return resolveTemplateString(_0x1433ce,_0x316063);if(Array[_0x3a9068(0x130)](_0x1433ce))return _0x1433ce['map'](_0x9e1c0d=>resolveTemplateVariables(_0x9e1c0d,_0x316063));if(_0x2a6bab['HgABc'](_0x1433ce,null)&&typeof _0x1433ce===_0x2a6bab['AWJMb']){const _0x26e43d={};for(const [_0x93ace2,_0x1e7784]of Object[_0x3a9068(0x12d)](_0x1433ce)){_0x26e43d[_0x93ace2]=resolveTemplateVariables(_0x1e7784,_0x316063);}return _0x26e43d;}return _0x1433ce;}function getNestedValue(_0xbc2935,_0x43d761){const _0x46b8a6=a0_0x501667;return _0x43d761[_0x46b8a6(0x138)]('.')[_0x46b8a6(0x139)]((_0x494a5b,_0x2d0d4d)=>{return _0x494a5b&&_0x494a5b[_0x2d0d4d]!==undefined?_0x494a5b[_0x2d0d4d]:undefined;},_0xbc2935);}function resolveUrl(_0x1d01c8,_0x2cfa26){const _0x4b307c=a0_0x501667,_0x5dc737={'Ptfyz':_0x4b307c(0x12a)};if(!_0x1d01c8||typeof _0x1d01c8!==_0x4b307c(0x141))return _0x1d01c8;if(_0x1d01c8[_0x4b307c(0x152)]('http://')||_0x1d01c8['startsWith'](_0x5dc737['Ptfyz']))return _0x1d01c8;const _0x591f38=process[_0x4b307c(0x132)]['SERVER_ADDRESS']||process[_0x4b307c(0x132)][_0x4b307c(0x146)]||DEFAULT_HOST,_0x40d716=process[_0x4b307c(0x132)]['PORT']||DEFAULT_PORT,_0xabc7a6='http://'+_0x591f38+':'+_0x40d716;if(_0x1d01c8[_0x4b307c(0x152)](_0x4b307c(0x143)))return''+_0xabc7a6+_0x1d01c8;if(_0x1d01c8['startsWith']('/')){const _0x3b5ad4=_0x2cfa26&&_0x2cfa26[_0x4b307c(0x12e)]||'';if(_0x3b5ad4)return _0xabc7a6+_0x4b307c(0x143)+_0x3b5ad4+_0x1d01c8;return''+_0xabc7a6+_0x1d01c8;}return _0x1d01c8;}function buildHookContext(_0x34b546){const _0x57d9f9=a0_0x501667,_0xe987fb={'Dhpkd':'system'};return{'id':_0x34b546['id']||'','newStatus':_0x34b546[_0x57d9f9(0x133)]||'','oldStatus':_0x34b546[_0x57d9f9(0x154)]||'','remarks':_0x34b546['remarks']||'','tableName':_0x34b546['tableName']||'','user_id':_0x34b546['userId']||_0xe987fb['Dhpkd'],'timestamp':new Date()[_0x57d9f9(0x13b)](),'record':_0x34b546[_0x57d9f9(0x15d)]||{},'requestData':_0x34b546['requestData']||{},'project':_0x34b546[_0x57d9f9(0x12e)]||'','authHeader':_0x34b546['authHeader']||null};}async function executeHook(_0x315840,_0xd36d30){const _0x1dc322=a0_0x501667,_0x2fdeb7={'IcnPT':function(_0x183c62,_0x4f211d){return _0x183c62===_0x4f211d;},'dxQeM':function(_0x4fd8a,_0x4aa030,_0x4bf22e){return _0x4fd8a(_0x4aa030,_0x4bf22e);},'EecHb':function(_0x5a6404,_0xd115ed){return _0x5a6404!==_0xd115ed;},'alglV':function(_0xbe5591,_0x424ca5){return _0xbe5591&&_0x424ca5;},'wTjbo':function(_0x468491,_0x58eeb2){return _0x468491(_0x58eeb2);},'PQnUx':_0x1dc322(0x12b)};if(!_0x315840||_0x315840[_0x1dc322(0x151)]!=='api')return{'success':!![],'message':_0x1dc322(0x15c)};const _0x1afb69=_0x2fdeb7[_0x1dc322(0x158)](_0x315840[_0x1dc322(0x150)],!![]),_0x5d4696=(_0x315840[_0x1dc322(0x13d)]||DEFAULT_METHOD)['toUpperCase'](),_0x51d489=_0x315840[_0x1dc322(0x14d)]||DEFAULT_TIMEOUT,_0xfded88=resolveTemplateString(_0x315840[_0x1dc322(0x144)],_0xd36d30),_0x3122a8=_0x2fdeb7[_0x1dc322(0x15f)](resolveUrl,_0xfded88,_0xd36d30),_0x5d1ee1=_0x315840['body']?_0x2fdeb7[_0x1dc322(0x15f)](resolveTemplateVariables,_0x315840[_0x1dc322(0x14b)],_0xd36d30):{},_0xf06c6=_0x315840['headers']?resolveTemplateVariables(_0x315840[_0x1dc322(0x14e)],_0xd36d30):{},_0x1f9649=_0xf06c6&&(_0x2fdeb7['EecHb'](_0xf06c6[_0x1dc322(0x128)],undefined)||_0xf06c6['authorization']!==undefined),_0x20600e=_0x2fdeb7[_0x1dc322(0x135)](!_0x1f9649,_0xd36d30)&&_0xd36d30['authHeader']?{'Authorization':_0xd36d30[_0x1dc322(0x145)]}:{};try{const _0x2596d5=await _0x2fdeb7[_0x1dc322(0x129)](axios,{'method':_0x5d4696[_0x1dc322(0x156)](),'url':_0x3122a8,'data':_0x5d1ee1,'headers':{'Content-Type':'application/json','User-Agent':_0x2fdeb7['PQnUx'],..._0x20600e,..._0xf06c6},'timeout':_0x51d489});return console[_0x1dc322(0x153)](_0x1dc322(0x148)+_0x5d4696+'\x20'+_0x3122a8+'\x20→\x20'+_0x2596d5[_0x1dc322(0x15a)]),{'success':!![],'message':'Hook\x20executed\x20successfully','status':_0x2596d5[_0x1dc322(0x15a)],'url':_0x3122a8};}catch(_0x1f48b9){const _0x6506c6=_0x1f48b9['response']?'HTTP\x20'+_0x1f48b9['response']['status']+':\x20'+_0x1f48b9[_0x1dc322(0x149)][_0x1dc322(0x127)]:_0x1f48b9[_0x1dc322(0x13a)];console['error'](_0x1dc322(0x13e)+_0x5d4696+'\x20'+_0x3122a8+'\x20→\x20'+_0x6506c6);if(_0x1afb69)return{'success':![],'message':_0x1dc322(0x131)+_0x6506c6,'error':_0x6506c6,'url':_0x3122a8};return console[_0x1dc322(0x134)]('Non-blocking\x20hook\x20failed\x20(ignored):\x20'+_0x6506c6),{'success':!![],'message':_0x1dc322(0x159)+_0x6506c6,'warning':_0x6506c6,'url':_0x3122a8};}}async function executeHooks(_0x5529b1,_0x335611){const _0x38ca58=a0_0x501667,_0x1328be={'IZsbj':function(_0x1269e0,_0x11520f){return _0x1269e0===_0x11520f;},'lngdo':'Hook\x20execution\x20failed'};if(!_0x5529b1||!Array['isArray'](_0x5529b1)||_0x1328be['IZsbj'](_0x5529b1['length'],0x0))return{'success':!![],'results':[],'hooksExecuted':0x0};const _0x3a015a=[];for(const _0xc1d2e8 of _0x5529b1){const _0x5249d2=await executeHook(_0xc1d2e8,_0x335611);_0x3a015a['push'](_0x5249d2);if(!_0x5249d2['success'])return{'success':![],'error':_0x5249d2['message']||_0x1328be['lngdo'],'results':_0x3a015a,'hooksExecuted':_0x3a015a[_0x38ca58(0x140)]};}return{'success':!![],'results':_0x3a015a,'hooksExecuted':_0x3a015a['length']};}module['exports']={'resolveTemplateString':resolveTemplateString,'resolveTemplateVariables':resolveTemplateVariables,'resolveUrl':resolveUrl,'buildHookContext':buildHookContext,'executeHook':executeHook,'executeHooks':executeHooks};function a0_0x32d7(_0x363472,_0xfffca2){_0x363472=_0x363472-0x127;const _0x54dc69=a0_0x54dc();let _0x32d77c=_0x54dc69[_0x363472];if(a0_0x32d7['MRWfFx']===undefined){var _0x3c4dd3=function(_0x51fa96){const _0x1297a2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x12a2f0='',_0x1fcc1f='';for(let _0x43fff5=0x0,_0x56e210,_0x3a5763,_0x5dde27=0x0;_0x3a5763=_0x51fa96['charAt'](_0x5dde27++);~_0x3a5763&&(_0x56e210=_0x43fff5%0x4?_0x56e210*0x40+_0x3a5763:_0x3a5763,_0x43fff5++%0x4)?_0x12a2f0+=String['fromCharCode'](0xff&_0x56e210>>(-0x2*_0x43fff5&0x6)):0x0){_0x3a5763=_0x1297a2['indexOf'](_0x3a5763);}for(let _0x14a71c=0x0,_0x19efab=_0x12a2f0['length'];_0x14a71c<_0x19efab;_0x14a71c++){_0x1fcc1f+='%'+('00'+_0x12a2f0['charCodeAt'](_0x14a71c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1fcc1f);};a0_0x32d7['cjhITy']=_0x3c4dd3,a0_0x32d7['JYGIca']={},a0_0x32d7['MRWfFx']=!![];}const _0x3c2803=_0x54dc69[0x0],_0x3b6d4c=_0x363472+_0x3c2803,_0x1caec6=a0_0x32d7['JYGIca'][_0x3b6d4c];return!_0x1caec6?(_0x32d77c=a0_0x32d7['cjhITy'](_0x32d77c),a0_0x32d7['JYGIca'][_0x3b6d4c]=_0x32d77c):_0x32d77c=_0x1caec6,_0x32d77c;}function a0_0x54dc(){const _0x1c6ccf=['sg9VAYbZA2LWCgvKoIb1BNn1ChbVCNrLzcb0ExbL','CMvJB3jK','mtuXndmWnhfYBgTmvq','zhHrzu0','C3rHDhvZvgv4Da','qxv0Ag9YAxPHDgLVBG','D1rQyM8','Ahr0Chm6lY8','uMvZDezVCMDLlvDVCMTMBg93lZeUma','mZC1mdCXnuHdAM5Oyq','zw50CMLLCW','ChjVAMvJDa','y3b6CgO','AxnbCNjHEq','qMXVy2TPBMCGAg9VAYbMywLSzwq6ia','zw52','BMv3u3rHDhvZ','D2fYBG','ywXNBfy','C2LUENi','mJKYmtfdBgTIALm','C3bSAxq','CMvKDwnL','BwvZC2fNzq','Dg9ju09tDhjPBMC','CMvWBgfJzq','Bwv0Ag9K','v29YA2zSB3CGAg9VAYbMywLSzwq6ia','mJqWthzkEgDQ','BgvUz3rO','C3rYAw5N','B2jQzwn0','l2fWAs8','DxjS','yxv0AeHLywrLCG','se9tva','ntiWnZqWy2jOt1vJ','v29YA2zSB3CGAg9VAYbLEgvJDxrLzdOG','CMvZCg9UC2u','mJqZnde3ntjruhPPEfG','yM9KEq','nZK0nJy5t1req0TT','DgLTzw91Da','AgvHzgvYCW','yxHPB3m','yMXVy2TPBMC','DhLWzq','C3rHCNrZv2L0Aa','Bg9N','B2XKu3rHDhvZ','ntq3nJa5nMPiBMHgEG','Dg9mB3DLCKnHC2u','C3rYAw5NAwz5','swnUufq','tM9UlwjSB2nRAw5NigHVB2SGzMfPBgvKicHPz25VCMvKktOG','C3rHDhvZ','Bg9JywXOB3n0'];a0_0x54dc=function(){return _0x1c6ccf;};return a0_0x54dc();}