cliodot 1.2.3 → 1.2.4

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 (135) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +2 -0
  3. package/dist/AuthAppClient.d.ts +1 -0
  4. package/dist/AuthAppClient.d.ts.map +1 -1
  5. package/dist/AuthAppClient.js +199 -1
  6. package/dist/CommercialAppClient.d.ts +50 -9
  7. package/dist/CommercialAppClient.d.ts.map +1 -1
  8. package/dist/CommercialAppClient.js +576 -1
  9. package/dist/ConnectorBuilder.js +104 -1
  10. package/dist/Events.d.ts +2 -0
  11. package/dist/Events.d.ts.map +1 -1
  12. package/dist/Events.js +325 -1
  13. package/dist/Flosync.js +296 -1
  14. package/dist/FlosyncClient.js +429 -1
  15. package/dist/FunctionBuilder.js +65 -1
  16. package/dist/IdentityAppClient.d.ts +1 -0
  17. package/dist/IdentityAppClient.d.ts.map +1 -1
  18. package/dist/IdentityAppClient.js +197 -1
  19. package/dist/MemoryAppClient.d.ts +1 -0
  20. package/dist/MemoryAppClient.d.ts.map +1 -1
  21. package/dist/MemoryAppClient.js +149 -1
  22. package/dist/MemoryClient.js +20 -1
  23. package/dist/OAuthAppClient.d.ts +1 -0
  24. package/dist/OAuthAppClient.d.ts.map +1 -1
  25. package/dist/OAuthAppClient.js +269 -1
  26. package/dist/ProviderServicesClient.d.ts +24 -0
  27. package/dist/ProviderServicesClient.d.ts.map +1 -0
  28. package/dist/ProviderServicesClient.js +158 -0
  29. package/dist/Surface.d.ts +2 -0
  30. package/dist/Surface.d.ts.map +1 -1
  31. package/dist/Surface.js +255 -1
  32. package/dist/ValidatorBuilder.js +24 -1
  33. package/dist/Webhooks.js +61 -1
  34. package/dist/WorkflowBuilder.js +279 -1
  35. package/dist/__tests__/CommercialAppClient.test.d.ts +2 -0
  36. package/dist/__tests__/CommercialAppClient.test.d.ts.map +1 -0
  37. package/dist/__tests__/CommercialAppClient.test.js +217 -0
  38. package/dist/__tests__/Events.test.js +191 -1
  39. package/dist/__tests__/IdentityAppClient.test.js +232 -1
  40. package/dist/__tests__/OAuthAppClient.test.js +300 -1
  41. package/dist/__tests__/ProviderServicesClient.test.d.ts +2 -0
  42. package/dist/__tests__/ProviderServicesClient.test.d.ts.map +1 -0
  43. package/dist/__tests__/ProviderServicesClient.test.js +131 -0
  44. package/dist/__tests__/Surface.test.js +150 -1
  45. package/dist/__tests__/errors.test.js +54 -1
  46. package/dist/__tests__/function.test.js +58 -1
  47. package/dist/__tests__/helpers.d.ts +5 -0
  48. package/dist/__tests__/helpers.d.ts.map +1 -0
  49. package/dist/__tests__/helpers.js +10 -0
  50. package/dist/__tests__/localhost-lookup.test.d.ts +2 -0
  51. package/dist/__tests__/localhost-lookup.test.d.ts.map +1 -0
  52. package/dist/__tests__/localhost-lookup.test.js +26 -0
  53. package/dist/__tests__/parse-api-error.test.js +26 -1
  54. package/dist/__tests__/runner.test.js +156 -1
  55. package/dist/connectors/builtin.js +354 -1
  56. package/dist/connectors/registry.js +300 -1
  57. package/dist/decorators/build.js +105 -1
  58. package/dist/decorators/connector.js +56 -1
  59. package/dist/decorators/index.js +34 -1
  60. package/dist/decorators/metadata.js +338 -1
  61. package/dist/decorators/steps.js +220 -1
  62. package/dist/decorators/workflow.js +52 -1
  63. package/dist/errors.js +76 -1
  64. package/dist/http/__tests__/cliodot-request.environment.test.d.ts +2 -0
  65. package/dist/http/__tests__/cliodot-request.environment.test.d.ts.map +1 -0
  66. package/dist/http/__tests__/cliodot-request.environment.test.js +37 -0
  67. package/dist/http/__tests__/cliodot-result.test.d.ts +2 -0
  68. package/dist/http/__tests__/cliodot-result.test.d.ts.map +1 -0
  69. package/dist/http/__tests__/cliodot-result.test.js +57 -0
  70. package/dist/http/__tests__/events-instance-id.test.d.ts +2 -0
  71. package/dist/http/__tests__/events-instance-id.test.d.ts.map +1 -0
  72. package/dist/http/__tests__/events-instance-id.test.js +45 -0
  73. package/dist/http/cliodot-request.d.ts +35 -0
  74. package/dist/http/cliodot-request.d.ts.map +1 -0
  75. package/dist/http/cliodot-request.js +105 -0
  76. package/dist/http/cliodot-result.d.ts +40 -0
  77. package/dist/http/cliodot-result.d.ts.map +1 -0
  78. package/dist/http/cliodot-result.js +139 -0
  79. package/dist/http/create-client.d.ts +3 -0
  80. package/dist/http/create-client.d.ts.map +1 -0
  81. package/dist/http/create-client.js +14 -0
  82. package/dist/http/events-instance-id.d.ts +11 -0
  83. package/dist/http/events-instance-id.d.ts.map +1 -0
  84. package/dist/http/events-instance-id.js +86 -0
  85. package/dist/http/localhost-lookup.d.ts +12 -0
  86. package/dist/http/localhost-lookup.d.ts.map +1 -0
  87. package/dist/http/localhost-lookup.js +67 -0
  88. package/dist/http/parse-api-error.js +56 -1
  89. package/dist/http/sanitize-execution-headers.js +79 -1
  90. package/dist/identity-offline-verify.js +174 -1
  91. package/dist/identity-token-cache.js +51 -1
  92. package/dist/index.d.ts +1 -1
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +108 -1
  95. package/dist/runner/ProcessorEngine.js +1311 -1
  96. package/dist/runner/connector.executor.js +1786 -1
  97. package/dist/runner/utilities/math.executor.js +153 -1
  98. package/dist/runner/utilities/random.executor.js +151 -1
  99. package/dist/runner/utilities/string.executor.js +825 -1
  100. package/dist/template.js +127 -1
  101. package/dist/transformers/StepsToNodesTransformer.js +214 -1
  102. package/dist/transformers/WorkflowTransformer.js +189 -1
  103. package/dist/types/auth-app.api.d.ts +2 -0
  104. package/dist/types/auth-app.api.d.ts.map +1 -1
  105. package/dist/types/auth-app.api.js +2 -1
  106. package/dist/types/builtin.js +2 -1
  107. package/dist/types/client.api.js +2 -1
  108. package/dist/types/commercial-app.api.d.ts +407 -11
  109. package/dist/types/commercial-app.api.d.ts.map +1 -1
  110. package/dist/types/commercial-app.api.js +2 -1
  111. package/dist/types/connector.js +2 -1
  112. package/dist/types/context.js +2 -1
  113. package/dist/types/event-app.api.d.ts +8 -0
  114. package/dist/types/event-app.api.d.ts.map +1 -1
  115. package/dist/types/event-app.api.js +2 -1
  116. package/dist/types/function.js +2 -1
  117. package/dist/types/identity-app.api.d.ts +2 -0
  118. package/dist/types/identity-app.api.d.ts.map +1 -1
  119. package/dist/types/identity-app.api.js +2 -1
  120. package/dist/types/index.js +23 -1
  121. package/dist/types/memory-app.api.d.ts +2 -0
  122. package/dist/types/memory-app.api.d.ts.map +1 -1
  123. package/dist/types/memory-app.api.js +2 -1
  124. package/dist/types/oauth-app.api.d.ts +2 -0
  125. package/dist/types/oauth-app.api.d.ts.map +1 -1
  126. package/dist/types/oauth-app.api.js +105 -1
  127. package/dist/types/provider-services.api.d.ts +98 -0
  128. package/dist/types/provider-services.api.d.ts.map +1 -0
  129. package/dist/types/provider-services.api.js +2 -0
  130. package/dist/types/validator.js +2 -1
  131. package/dist/types/webhook-app.api.js +2 -1
  132. package/dist/types/workflow.js +33 -1
  133. package/dist/validators/validators.js +478 -1
  134. package/dist/variable.js +37 -1
  135. package/package.json +3 -2
@@ -1 +1,1786 @@
1
- 'use strict';const _0x2b58c2=_0xa1c4;(function(_0x3879e3,_0x56c9a7){const _0x2a6ee9=_0xa1c4,_0x2b2672=_0x3879e3();while(!![]){try{const _0x5c0c1b=-parseInt(_0x2a6ee9(0x2ec))/0x1*(-parseInt(_0x2a6ee9(0x259))/0x2)+parseInt(_0x2a6ee9(0x17d))/0x3*(-parseInt(_0x2a6ee9(0x1fa))/0x4)+parseInt(_0x2a6ee9(0x27b))/0x5*(-parseInt(_0x2a6ee9(0x25a))/0x6)+-parseInt(_0x2a6ee9(0x2b5))/0x7*(parseInt(_0x2a6ee9(0x2e5))/0x8)+-parseInt(_0x2a6ee9(0x235))/0x9*(parseInt(_0x2a6ee9(0x2d7))/0xa)+parseInt(_0x2a6ee9(0x1f0))/0xb+-parseInt(_0x2a6ee9(0x1db))/0xc*(-parseInt(_0x2a6ee9(0x2bb))/0xd);if(_0x5c0c1b===_0x56c9a7)break;else _0x2b2672['push'](_0x2b2672['shift']());}catch(_0x25266b){_0x2b2672['push'](_0x2b2672['shift']());}}}(_0x17c8,0x87cea));var __createBinding=this&&this[_0x2b58c2(0x2f4)]||(Object['create']?function(_0x5707c9,_0xb9305f,_0x364119,_0x6f8bf3){const _0x48976e=_0x2b58c2;if(_0x6f8bf3===undefined)_0x6f8bf3=_0x364119;var _0x27d782=Object['getOwnPropertyDescriptor'](_0xb9305f,_0x364119);(!_0x27d782||(_0x48976e(0x196)in _0x27d782?!_0xb9305f['__esModule']:_0x27d782[_0x48976e(0x180)]||_0x27d782[_0x48976e(0x1f7)]))&&(_0x27d782={'enumerable':!![],'get':function(){return _0xb9305f[_0x364119];}}),Object[_0x48976e(0x23f)](_0x5707c9,_0x6f8bf3,_0x27d782);}:function(_0x902c0a,_0x435d49,_0x4cc04c,_0x59dc0f){if(_0x59dc0f===undefined)_0x59dc0f=_0x4cc04c;_0x902c0a[_0x59dc0f]=_0x435d49[_0x4cc04c];}),__setModuleDefault=this&&this[_0x2b58c2(0x1c9)]||(Object[_0x2b58c2(0x189)]?function(_0x417039,_0x3971f3){const _0x2fe241=_0x2b58c2;Object[_0x2fe241(0x23f)](_0x417039,_0x2fe241(0x18b),{'enumerable':!![],'value':_0x3971f3});}:function(_0x492551,_0x2e3642){const _0x23c170=_0x2b58c2;_0x492551[_0x23c170(0x18b)]=_0x2e3642;}),__importStar=this&&this['__importStar']||(function(){var _0x808dcf=function(_0x2c8ae3){const _0x2c88d8=_0xa1c4;return _0x808dcf=Object[_0x2c88d8(0x23e)]||function(_0x4a4648){const _0x3471ea=_0x2c88d8;var _0x26c088=[];for(var _0x5440b2 in _0x4a4648)if(Object[_0x3471ea(0x2e8)]['hasOwnProperty'][_0x3471ea(0x205)](_0x4a4648,_0x5440b2))_0x26c088[_0x26c088[_0x3471ea(0x266)]]=_0x5440b2;return _0x26c088;},_0x808dcf(_0x2c8ae3);};return function(_0x16a30b){const _0x2dd0b1=_0xa1c4;if(_0x16a30b&&_0x16a30b[_0x2dd0b1(0x2b3)])return _0x16a30b;var _0x46aff4={};if(_0x16a30b!=null){for(var _0x5df2c7=_0x808dcf(_0x16a30b),_0xbc7ffb=0x0;_0xbc7ffb<_0x5df2c7['length'];_0xbc7ffb++)if(_0x5df2c7[_0xbc7ffb]!==_0x2dd0b1(0x18b))__createBinding(_0x46aff4,_0x16a30b,_0x5df2c7[_0xbc7ffb]);}return __setModuleDefault(_0x46aff4,_0x16a30b),_0x46aff4;};}()),__importDefault=this&&this[_0x2b58c2(0x22f)]||function(_0x4dd5d5){return _0x4dd5d5&&_0x4dd5d5['__esModule']?_0x4dd5d5:{'default':_0x4dd5d5};};function _0x17c8(){const _0x4858c6=['BwLU','AxnFC2fTzv90ExbL','A2v5x2XLBMD0Aa','tgf0Axr1zguGyw5KigXVBMDPDhvKzsbHCMuGCMvXDwLYzwq','uhjPDMf0zsbRzxKGAxmGCMvXDwLYzwqGzM9YifjtqsbZAwDUAw5N','DxnLCM5HBwu','BNvSBa','Dg9Rzw4','yxjNB24YAwq','BgvUz3rO','CgfKzgLUzW','C2nYExb0u3LUyW','AhnLDa','zgf0yq','CMvXDwLYzwrFChjLzML4','uLnbx1blq1mXx09brvbFuefereLorW','Bwf4x3jVD3m','BgLZDf90Aw1LEM9Uzxm','Aw5WDxrFzM9YBwf0','BwfW','ywn0Aw9U','BMfTzq','CNnH','uKvtva','CgfYyw1Z','qwXSignVB3jKAw5HDgvZicHSyxqXlcbSB24XlcbSyxqYlcbSB24YksbHCMuGCMvXDwLYzwq','BM93','iIbIDxqGBwfWCgvKihjLC3vSDcbOyxmGBM8GC3vJAcbRzxK','uhvIBgLJigTLEsbPCYbYzxf1AxjLzcbMB3iGuLnbihzLCMLMAwnHDgLVBG','CgjRzgyYu3LUyW','mJq3mdi1nuDnrhPiqq','AxrLCMf0Aw9UCW','AgfZt3DUuhjVCgvYDhK','zMLUywW','qMvHCMvY','Ag9ZDa','y29UDMvYDf90Aw1LEM9Uzq','yxbPx2TLEq','C3rYAw5N','vg9Rzw4GAxmGAw52ywXPzcbVCIbLEhbPCMvK','CMvZCg9UC2u','CMvZCg9UzgvY','BxLZCwWUC3LZDgvT','yxjNB24YihbHy2THz2uGAxmGCMvXDwLYzwqGzM9YigfYz29UmL9OyxnOlIbjBNn0ywXSihDPDgG6ig5WBsbPBNn0ywXSigfYz29UmG','zNjVBq','u0vmrunuide','AxnFz3jLyxrLCL90AgfU','zMXVB3i','zxHHy3q','y2HHCKf0','zgf5ANmVCgX1z2LUl2LZtgvHCfLLyxi','vw5ZDxbWB3j0zwqGtw9Uz29eqIbHy3rPB246ia','BxLZCwWY','Cg9ZDgDYzxmUC3LZDgvT','Bg9Ux2XHDa','rgf0zsbPCYbYzxf1AxjLza','DhjPBq','CMvZDa','ChvIBgLJx2TLEv9MB3jTyxq','vw5ZDxbWB3j0zwqGy29UBMvJDg9YoIa','y2f0zwDVCNK','z2v0x2n1CNjLBNrFDgLTzq','C3rHDhvZ','yxHPB3m','rw5JCNLWDgvKigrHDgeGAxmGCMvXDwLYzwq','C3rHCNrFB2zFEwvHCG','Dg9gAxHLza','CgvWCgvY','ywXS','zgvSzxrLt25L','AxnuExbLzenVBM5Ly3rVCKrLzG','ANnVBNDLyNrVA2vU','ChvZAa','y3jLyxrLq2LWAgvYAxy','zxHLy3v0zvn0CMLUzW','vw5ZDxbWB3j0zwqGy29TCgfYzsbHy3rPB246ia','C3rHCNrFB2zFBw9UDgG','CgTJCZG','C3rHCNrFB2zFzgf5','ChjLzML4','AxnFzxf1ywW','zMLSDgvY','AgvHzgvYx25HBwu','z2vVANnVBG','B2jQzwn0','CxvPDa','x19LC01VzhvSzq','qM90AcbUDw1IzxjZigfYzsbYzxf1AxjLza','ndGZndLlEMPxzMK','y29UC3rHBNrZ','DMfSDwu','y29UBMvJDa','zgvSzxrLx2TLEq','lI4VDgvTCgXHDgu','nJqWotCWmM5jq2PHta','qM90AcbVyMPLy3rZigfYzsbYzxf1AxjLza','Bwv0yq','qM90AcbHCNjHExmGyxjLihjLCxvPCMvK','y3jLyxrLq29UBMvJDgLVBG','DMfSDwvZ','vMfSDwuGAxmGCMvXDwLYzwq','CMv2zxjZzv9Nzw9JB2rL','r0vu','zw5Kx29Mx3DLzwS','ywXNB3jPDgHT','C3bSAxq','Dg9mB3DLCKnHC2u','zgLMzL9HCNjHExm','zw5Kt2y','yxjYyxLFzgLMzMvYzw5Jzq','y3jLyxrLsg1HyW','D29YA2zSB3C','ywjZ','Bwf0Aa','xhmQxh1CFxXBoNTD','A2v5CW','y3jLyxrLx2HHC2G','uLnblvniqti1nG','yxjYyxLFDw5PB24','zxHWAxjLC0LU','ChjPDMf0zurLy3j5Chq','vg9Rzw4GDMfSAwrHDgLVBIbMywLSzwq','mtbdCLbPy2G','zxjYB3i','zgf0zv90Aw1L','yMvHCMvY','ChvIBgLJrw5JCNLWDa','qxv0Ag9YAxPHDgLVBG','iIbLEhbLy3rLzcbVyMPLy3qGCMvZCg9UC2uSigDVDca','zgf5ANmVCgX1z2LUl2n1C3rVBvbHCNnLrM9YBwf0','yxjNB24Y','zgvJB2rL','rMfPBgvKihrVignYzwf0zsbIzwfYzxiGDg9Rzw4','C2v0','vw5ZDxbWB3j0zwqGzgf0ywjHC2uGy29UBMvJDg9YoIa','C3vIDhjHy3rFDgLTzq','mtaWmg5gv1LkCG','CM91BMrZ','C2HHmJu2','ChjVDg90ExbL','qM90Acb2ywX1zxmGyxjLihjLCxvPCMvK','tw9Uz29eqIbvuKKGBM90ignVBMzPz3vYzwqGzM9Yia','y3j5ChrV','nfzQv010wq','AxnFzw1WDhK','yMfZzty0','ug9PBNrZigfYCMf5igLZihjLCxvPCMvKigfUzcbTDxn0ig5VDcbIzsbLBxb0Eq','yxrHBJi','C2LNBG','yM9KEq','C2LTAwXHCML0Eq','x19JCMvHDgvcAw5KAw5N','zw52','vg9Rzw4GAxmGCMvXDwLYzwq','AxnFBgvZC190AgfU','CMvTB3zLza','zM9YBwf0','z2v0x2n1CNjLBNrFzgf0zq','lI91DgLSAxrPzxmVBwf0Ac5LEgvJDxrVCG','CMvXDwLYzwrFAgvHzgvYCW','zM9YBwf0x2rHDgu','C3vI','qMfZAwmG','zgf5ANmVCgX1z2LUl3rPBwv6B25L','uMvXDwvZDcbMywLSzwq','rgf0zsbHBMqGDg9FDgLTzxPVBMuGyxjLihjLCxvPCMvK','CMfUzg9TqNL0zxm','BNvTyMvY','Bwv0Ag9K','Ag1HyW','Aw5Zzxj0zwrjza','ChjPDMf0zv9RzxLFzM9YBwf0','AxnFBM90x2vXDwfS','qwr2yw5JzwqGy29UDMvYC2LVBNmGCMvXDwLYzsbHzgrPDgLVBMfSigLTCgXLBwvUDgf0Aw9U','uhvIBgLJigTLEsbPCYbYzxf1AxjLzcbMB3iGuLnbigvUy3j5ChrPB24','ywrKx3rPBwu','zxHLy3v0zq','Aw5Zzxj0twfUEq','DgLTzw91Df9TCW','C3rHCNrFB2zFD2vLAW','vgLTzxn0yw1WigLZihjLCxvPCMvK','zw50CMLLCW','zw5Kx29Mx3LLyxi','y3jLyxrLsgfZAa','CxvLCNK','yxjNB24Yx3zLCMLMEq','BwvTyMvY','iIbYzxnWB25ZzsbRzxKGiG','z2vVy29Kzq','wvLzws1nts1ercbisdPTBtPZCW','y29UDgfPBNm','ywvZ','AxnFBNvSBf9VCL91BMrLzMLUzwq','CMvWBgfJzq','zw5Kx29Mx21VBNrO','Bhb1C2G','AxnbCNjHEq','vw5ZDxbWB3j0zwqGuMvKAxmGywn0Aw9UoIa','BwvTB3j5q29ZDa','y29TCgfYzq','qvbjigTLEsbUB3qGChjVDMLKzwq','C3rYAw5NAwz5','mZuWndLOt2nPq0y','zxHWAxjLC19PBG','C2nYExb0x3zLCMLMEq','D3jPDgfIBgu','BM9TAw5HDgLT','AgvHzgvY','rvjsx01prfvmrv9ot1rFrK9vtKq','yxjYyxLFAw50zxjZzwn0Aw9U','zgLMzL9Izxr3zwvUx2rHDgvZ','yxv0Ag9YAxPHDgLVBG','tu9or09Fvvjj','BgLTAxq','y3jLyxrL','iIbPCYb1BMrLzMLUzwq7ihbYB3zPzgvYiePtt04GBwf5ig5VDcbTyxrJAcbWyxrOici','zgvMyxvSDa','yxjYyxK','CgCGCgfJA2fNzsbUB3qGAw5ZDgfSBgvKlIbbzgqGAxqGyxmGysbKzxbLBMrLBMn5oIbUCg0GAw5ZDgfSBcbWzW','z2vUzxjHDgvlzxLqywLYu3LUyW','yM91BMrZ','CMvUzgvYvgvTCgXHDgu','BwLSBgLZzwnVBMrZ','CgfYywXSzwXPEMf0Aw9U','uLnbx05px1bbrerjtKC','CgfYC2u','C3fYDa','z2v0','AM9PBG','DgLTzunVC3q','EwvHCG','EMfKza','AxnVv2vLAW','DMvYAwz5','Dg9ju09tDhjPBMC','Bwf4','C3vIDhjHy3q','Aw9YzwrPCYbWywnRywDLig5VDcbPBNn0ywXSzwqUiefKzcbPDcbHCYbHigrLCgvUzgvUy3K6ig5WBsbPBNn0ywXSigLVCMvKAxm','z2v0vgLTzq','x19Zy2HLBwfZ','zgf0ywjHC2u','CgvT','Bw9UDgG','C2XPy2u','y29SBgvJDgLVBG','B3v0Chv0x2zVCM1HDa','yxjNB24Yza','zxHWzwn0zwrFDxnLCM5HBwu','BxLZCwWYl3bYB21PC2u','Agv4','CgTJCZe','C2fSDa','zw5JCNLWDgvKx2rHDge','DhrS','zgvS','sgfZAcbPCYbYzxf1AxjLzcbMB3iGyMnYExb0ihzLCMLMAwnHDgLVBG','C2vJB25KCW','ChvIBgLJx2TLEq','zg9JDw1LBNq','zgLNzxn0','y29YBMvYCW','BxLZCwWYihbHy2THz2uGBM90igLUC3rHBgXLzc4GqwrKigL0igfZigeGzgvWzw5Kzw5JEtOGBNbTigLUC3rHBgWGBxLZCwWY','Aw5JBhvKzxm','zxHLy3v0zu1HDgG','zgf5ANm','Bw9KDwX1C19Szw5NDgG','wvLzws1nts1era','y29Uy2f0','CMvZCg9UC2vxyxjUAw5NCW','BMfTzxm','zw5KCg9PBNrZ','CgfZC3DVCMq','CMvKAxjLy3qUCMvZCg9UzgvY','se1bqYbPCYbYzxf1AxjLzcbMB3iGDMvYAwzPy2f0Aw9U','rgf0zsbZDhjPBMCGAxmGCMvXDwLYzwq','C3nS','zw5JB2rLzf9KyxrH','zxHLy3v0zvjHBMrVBq','x19ZzxrnB2r1BgvezwzHDwX0','u2LNBMf0DxjLigLZihjLCxvPCMvKigzVCIbsu0eGDMvYAwzPy2f0Aw9U','zM9YBwf0DgvK','y29Z','Cg9YDa','zMLUza','igj1DcbWCM92AwrLCIbYzxr1CM5Lzca','DxnLCG','Bg9JywXOB3n0','AgDLDa','y29ZDa','Ec1HCgKTA2v5','Cgf5Bg9Hza','z2v0x2n1CNjLBNrFzgf0zxrPBwu','DxrMoa','y2HHBMDLza','CM93CW','DMfSAwrHDgu','mZzWBgnWDxK','iIbLEhbLy3rZihjLC3bVBNnLigTLEsaI','yxv0Aa','ChjPDMf0zv9RzxK','AxnFBgvHCf95zwfY','rgf0zsWGyw1VDw50lcbHBMqGDw5PDcbHCMuGCMvXDwLYzwq','zgf5CW','s2v5igLZihjLCxvPCMvKigzVCIbitufd','CMvKAxmUC3LZDgvT','qMvHCMvYihrVA2vUig5VDcbWCM92AwrLza','AgvHzgvYCW','lI91DgLSAxrPzxmVCMfUzg9TlMv4zwn1Dg9Y','A2v5BgvU','qM90AcbKyxrLCYbHCMuGCMvXDwLYzwq','zxH0zw5K','Dg9tDhjPBMC','y2XVC2u','yxv0AgvUDgLJyxrPB24','ywrKzwq','iIbHy3rPB24GiG','ywvZlti1nI1JyMm','nZa2mJa1nvPyDw9TtW','qMvHCMvYia','DxbKyxrL','C3rHCNrpzG','Bwf0y2G','CMvZCg9UC2vFBwfWCgLUzYbVDxrWDxqGiG','y29UBMvJDg9Y','y29UzMLNDxjHyMXL','w31DpW','DxbKyxrLt25L','mJG4t3Durgn3','A2v5','zgf5','Cg9W','yMfZzv91CMW','Dg9bCNjHEq','yMnYExb0x3zLCMLMEq','zw5JB2rL','ywrK','C2LU','z2v0x2jVDw5KAw5Nx2jVEa','y2fSBa','AgfZAa','Dg9Rzw5tzwnYzxq','Bw9Uzgf5','vMfSDwuSig1PBIWGyw5Kig1HEcbHCMuGCMvXDwLYzwq','seG6Bw06C3m','Bw9Uz29KyIbWywnRywDLig5VDcbPBNn0ywXSzwqUiefKzcbPDcbHCYbHigrLCgvUzgvUy3K6ig5WBsbPBNn0ywXSig1VBMDVzgi','zgf5ANmVCgX1z2LUl3v0yW','ug9SEwDVBG','iIbKzwnSyxjLzcbHCYa','y29UBMvJDg9Yq29UzMLN','D2vLAW','y29Kzq','DxjP','DxrMltG','Dgv4Dc9WBgfPBG','C29Tzq','DhLWzwqGy29UBMvJDg9Yici','qM90AcbZDhjPBMDZigfYzsbYzxf1AxjLza','uLnbx1blq1mXx1bbrerjtKC','z2vUzxjHDgvFC2fSDa','C3rHCNrZv2L0Aa','yMnYExb0x2HHC2G','Aw5Zzxj0t25L','Cgf0AfbHCMfTCW','zw1WDhKUCMvZCg9UzgvY','BhbVCa','zNjVBv91BML4x3rPBwvZDgfTCa','DMfSDwvpzG','CMvZB2X2zq','zgLMzG','y3vZDg9Tx2HLywrLCG','x2LK','Dw5PEa','yMnYExb0ihbHy2THz2uGAxmGCMvXDwLYzwqGzM9YigjJCNLWDf92zxjPzNKUieLUC3rHBgWGD2L0AdOGBNbTigLUC3rHBgWGyMnYExb0','C2nVCMu','zxHWzwn0zwrFCgfZC3DVCMq','zgvJAw1HBa','z2vUzxjHDgvFA2v5','xhTCE1XZkG','CgfYC2vFzgf0zq','CgfYywXSzwXPC20','x19PBxbVCNrezwzHDwX0','zgvJCNLWDa','y3jLyxrLvMvYAwz5','vw5ZDxbWB3j0zwqGz2vVigfJDgLVBJOG','uMvKAxmGvvjmig5VDcbJB25MAwD1CMvKigzVCIbYzwrPCY5ZExn0zw0','C29YDa','ndeXodaZmwvruuzNAW','C3rHDhvZq29Kzq','ywn0Aw9UCW','Cgf0Aa','z2vUzxjHDgvFAxy','AxnbEgLVC0vYCM9Y','y3jLyxrLu2LNBG','yMfZAwm','y2jJ','z2v0t3DUuhjVCgvYDhLoyw1LCW','zgvMAw5LuhjVCgvYDhK','y3jLyxrLrgvJAxbOzxjPDG','BwvZC2fNzq','DgHLBG','yMnYExb0ihbHy2THz2uGAxmGCMvXDwLYzwqGzM9YigjJCNLWDf9OyxnOlIbjBNn0ywXSihDPDgG6ig5WBsbPBNn0ywXSigjJCNLWDa','yMnYExb0','Bw9Uz29KyI5ZExn0zw0','yxjNB24Yx2HHC2G','CMvZCg9UC2vFBwfWCgLUzW','yxjNB24YAq','qwrKCMvZCYbPCYbYzxf1AxjLza','C2v0zxG','DhLWzq','yxbWBgLJyxrPB24VANnVBG','y29SBgvJDgLVBIbPCYbYzxf1AxjLza','zNvUy3rPB24','zMLLBgq','Dg9Rzw5FC2vJCMv0','yxjNB24YihbHy2THz2uGAxmGCMvXDwLYzwqGzM9YigfYz29UmL92zxjPzNKUieLUC3rHBgWGD2L0AdOGBNbTigLUC3rHBgWGyxjNB24Y','C3fS','zgvSzxrL','z2vUzxjHDgvFA2v5CgfPCG','sgfZAcbPCYbYzxf1AxjLzcbMB3iGyxjNB24YihzLCMLMAwnHDgLVBG','zgf0zq','zw5JCNLWDa','Dg9vChbLCKnHC2u','ntq1nJmWyw10sKf1','nKrTEuToyq','AxnFy2HHBMDLza','y29TCgfYzv9ZDhjPBMDZ'];_0x17c8=function(){return _0x4858c6;};return _0x17c8();}Object[_0x2b58c2(0x23f)](exports,'__esModule',{'value':!![]}),exports['executeConnectorAction']=executeConnectorAction;const axios_1=__importDefault(require(_0x2b58c2(0x29c))),jsonwebtoken_1=__importDefault(require(_0x2b58c2(0x2a4))),template_1=require(_0x2b58c2(0x2ba)),registry_1=require('../connectors/registry'),string_executor_1=require('./utilities/string.executor'),math_executor_1=require(_0x2b58c2(0x2fb)),random_executor_1=require(_0x2b58c2(0x1e6));async function renderBodyRecursive(_0x45220e,_0x1ded54){const _0x5595f4=_0x2b58c2;if(_0x45220e==null)return _0x45220e;if(typeof _0x45220e===_0x5595f4(0x283)&&_0x45220e[_0x5595f4(0x1b9)]('{{')){const _0x1d2f1b=await(0x0,template_1[_0x5595f4(0x190)])(_0x45220e,_0x1ded54);if(typeof _0x1d2f1b===_0x5595f4(0x283)&&_0x1d2f1b[_0x5595f4(0x21a)]('{')&&_0x1d2f1b['endsWith']('}'))try{return JSON['parse'](_0x1d2f1b);}catch{return _0x1d2f1b;}return _0x1d2f1b;}if(Array[_0x5595f4(0x177)](_0x45220e))return Promise[_0x5595f4(0x2a1)](_0x45220e['map'](_0x174e9a=>renderBodyRecursive(_0x174e9a,_0x1ded54)));if(typeof _0x45220e===_0x5595f4(0x2b1)){const _0x2d2180={};for(const _0x4ed7be of Object['keys'](_0x45220e)){_0x2d2180[_0x4ed7be]=await renderBodyRecursive(_0x45220e[_0x4ed7be],_0x1ded54);}return _0x2d2180;}return _0x45220e;}function rethrowConnectorHttpError(_0x207263){const _0x9bfeb8=_0x2b58c2;if(axios_1[_0x9bfeb8(0x18b)][_0x9bfeb8(0x23a)](_0x207263)){const _0x53f1f8=_0x207263[_0x9bfeb8(0x285)],_0x34eb7d=_0x53f1f8?.[_0x9bfeb8(0x26a)],_0x32164f=_0x34eb7d&&typeof _0x34eb7d===_0x9bfeb8(0x2b1)&&(typeof _0x34eb7d[_0x9bfeb8(0x241)]===_0x9bfeb8(0x283)&&_0x34eb7d[_0x9bfeb8(0x241)]||typeof _0x34eb7d['error']===_0x9bfeb8(0x283)&&_0x34eb7d[_0x9bfeb8(0x2d8)])||_0x207263['message']||_0x9bfeb8(0x301),_0x2ba689=new Error(_0x32164f);_0x2ba689[_0x9bfeb8(0x29b)]=_0x53f1f8?.[_0x9bfeb8(0x29b)],_0x2ba689[_0x9bfeb8(0x285)]=_0x34eb7d,_0x2ba689['data']=_0x34eb7d;_0x34eb7d&&typeof _0x34eb7d===_0x9bfeb8(0x2b1)&&typeof _0x34eb7d[_0x9bfeb8(0x211)]===_0x9bfeb8(0x283)&&(_0x2ba689['code']=_0x34eb7d[_0x9bfeb8(0x211)]);throw _0x2ba689;}throw _0x207263;}async function executeResponder(_0x1ba990,_0x34edfc,_0x1216b0){const _0x4203ad=_0x2b58c2,_0x593efa=_0x1ba990['_id']||_0x1ba990['id']||'';if(_0x593efa==='raw.responder'){const _0x11a0c8=_0x34edfc[_0x4203ad(0x236)]??0xc8,_0x2fbb09=_0x34edfc['contentType']||_0x4203ad(0x214);let _0x5cd41f=_0x34edfc[_0x4203ad(0x2f2)]??'';return _0x5cd41f!==undefined&&_0x5cd41f!==null&&typeof _0x5cd41f===_0x4203ad(0x283)&&(_0x5cd41f=await(0x0,template_1[_0x4203ad(0x190)])(_0x5cd41f,_0x1216b0)),{'statusCode':_0x11a0c8,'headers':{'content-type':_0x2fbb09},'body':_0x5cd41f,'terminate':!![]};}if(_0x593efa===_0x4203ad(0x1c3)){const _0x37e731=_0x34edfc[_0x4203ad(0x236)]??0x12e;let _0x50b2c7=_0x34edfc['location']??'';if(typeof _0x50b2c7===_0x4203ad(0x283))_0x50b2c7=await(0x0,template_1[_0x4203ad(0x190)])(_0x50b2c7,_0x1216b0);return{'statusCode':_0x37e731,'headers':{'location':_0x50b2c7},'terminate':!![]};}if(_0x593efa===_0x4203ad(0x21e)){const _0x795d82=_0x34edfc[_0x4203ad(0x236)]??0xca;return{'statusCode':_0x795d82,'terminate':!![]};}const _0x1390c8=_0x34edfc['statusCode']??0xc8;let _0x2b4656=_0x34edfc['body'];_0x2b4656!==undefined&&_0x2b4656!==null&&(_0x2b4656=await renderBodyRecursive(_0x2b4656,_0x1216b0));const _0x1b2869={'content-type':_0x4203ad(0x24c)};if(_0x34edfc['headers']&&typeof _0x34edfc[_0x4203ad(0x1e5)]===_0x4203ad(0x2b1))for(const [_0x26d745,_0x2b4526]of Object[_0x4203ad(0x168)](_0x34edfc[_0x4203ad(0x1e5)])){typeof _0x2b4526===_0x4203ad(0x283)&&_0x2b4526[_0x4203ad(0x1b9)]('{{')?_0x1b2869[_0x26d745]=await(0x0,template_1['renderTemplate'])(_0x2b4526,_0x1216b0):_0x1b2869[_0x26d745]=String(_0x2b4526);}return{'statusCode':_0x1390c8,'headers':_0x1b2869,'body':_0x2b4656,'terminate':!![]};}async function executeRestConnector(_0x513bf1,_0x5fa096,_0x46935b,_0x189ae4){const _0x2d6eb4=_0x2b58c2,_0x332478=_0x513bf1['endpoints']||[],_0x3936b7=_0x332478[_0x2d6eb4(0x1ce)](_0x349a52=>_0x349a52[_0x2d6eb4(0x272)]===_0x5fa096||_0x349a52[_0x2d6eb4(0x271)]===_0x5fa096);if(!_0x3936b7)throw new Error('Endpoint\x20not\x20found:\x20'+_0x5fa096);let _0x4d5c73=_0x3936b7[_0x2d6eb4(0x238)]||'';const _0x465fd8={..._0x3936b7[_0x2d6eb4(0x21d)]||{},..._0x46935b[_0x2d6eb4(0x21d)]||{}};for(const _0x1d53e8 of Object[_0x2d6eb4(0x2d0)](_0x465fd8)){const _0x201c3b=_0x465fd8[_0x1d53e8];_0x4d5c73=_0x4d5c73[_0x2d6eb4(0x174)](new RegExp(_0x2d6eb4(0x22c)+_0x1d53e8+_0x2d6eb4(0x2cf)+_0x1d53e8+_0x2d6eb4(0x1f8),'g'),encodeURIComponent(String(_0x201c3b)));}if(_0x4d5c73[_0x2d6eb4(0x1b9)]('{{'))_0x4d5c73=await(0x0,template_1['renderTemplate'])(_0x4d5c73,_0x189ae4);const _0x5cb6a7=(_0x513bf1[_0x2d6eb4(0x1fe)]||'')[_0x2d6eb4(0x174)](/\/+$/,''),_0x44c77a=_0x5cb6a7+(_0x4d5c73[_0x2d6eb4(0x21a)]('/')?_0x4d5c73:'/'+_0x4d5c73),_0x595839={..._0x3936b7[_0x2d6eb4(0x275)]||{},..._0x46935b[_0x2d6eb4(0x275)]||{}};for(const _0x10fe48 of Object['keys'](_0x595839)){typeof _0x595839[_0x10fe48]==='string'&&_0x595839[_0x10fe48][_0x2d6eb4(0x1b9)]('{{')&&(_0x595839[_0x10fe48]=await(0x0,template_1['renderTemplate'])(_0x595839[_0x10fe48],_0x189ae4));}let _0x4f1050=_0x46935b['body']??_0x3936b7[_0x2d6eb4(0x2f2)]??null;if(_0x4f1050&&typeof _0x4f1050===_0x2d6eb4(0x2b1))_0x4f1050=JSON['parse'](await(0x0,template_1['renderTemplate'])(JSON[_0x2d6eb4(0x17c)](_0x4f1050),_0x189ae4));else typeof _0x4f1050===_0x2d6eb4(0x283)&&_0x4f1050[_0x2d6eb4(0x1b9)]('{{')&&(_0x4f1050=await(0x0,template_1['renderTemplate'])(_0x4f1050,_0x189ae4));const _0x212b7f={..._0x3936b7[_0x2d6eb4(0x1e5)]||{}},_0x1ff0be=_0x513bf1[_0x2d6eb4(0x1dd)]||{};if(_0x1ff0be['type']==='bearer'&&_0x1ff0be[_0x2d6eb4(0x264)]){const _0x31a39d=_0x1ff0be[_0x2d6eb4(0x2af)]||_0x2d6eb4(0x2dc),_0x2cc645=_0x1ff0be[_0x2d6eb4(0x2ac)]??_0x2d6eb4(0x1f1);_0x212b7f[_0x31a39d]=_0x2cc645+_0x1ff0be['token'];}if(_0x1ff0be['type']===_0x2d6eb4(0x282)&&_0x1ff0be[_0x2d6eb4(0x282)]){const _0x21a6da=_0x1ff0be['key_name']||_0x2d6eb4(0x2dc);_0x212b7f[_0x21a6da]=_0x1ff0be[_0x2d6eb4(0x282)];}const _0x513958=_0x46935b[_0x2d6eb4(0x1e5)]||{};for(const [_0xcc6920,_0x2fc318]of Object[_0x2d6eb4(0x168)](_0x513958)){typeof _0x2fc318===_0x2d6eb4(0x283)&&_0x2fc318[_0x2d6eb4(0x1b9)]('{{')?_0x212b7f[_0xcc6920]=await(0x0,template_1[_0x2d6eb4(0x190)])(_0x2fc318,_0x189ae4):_0x212b7f[_0xcc6920]=String(_0x2fc318);}const _0x48ac1e=(_0x3936b7[_0x2d6eb4(0x305)]||'GET')[_0x2d6eb4(0x258)](),_0x301d88={'method':_0x48ac1e['toLowerCase'](),'url':_0x44c77a,'params':_0x595839,'headers':_0x212b7f,'timeout':_0x46935b['timeout']||_0x3936b7[_0x2d6eb4(0x165)]||0x2710};_0x4f1050!==null&&_0x4f1050!==undefined&&_0x48ac1e!==_0x2d6eb4(0x2c3)&&(_0x301d88[_0x2d6eb4(0x26a)]=_0x4f1050);const _0x337276=_0x189ae4?.[_0x2d6eb4(0x20f)]?.[_0x513bf1[_0x2d6eb4(0x225)]]||{};if(_0x337276['apiKey']&&_0x1ff0be['type']===_0x2d6eb4(0x2da)){const _0x1924e5=_0x1ff0be[_0x2d6eb4(0x2af)]||_0x2d6eb4(0x2dc),_0x54e6c6=_0x1ff0be[_0x2d6eb4(0x2ac)]??_0x2d6eb4(0x1f1);_0x212b7f[_0x1924e5]=_0x54e6c6+_0x337276['apiKey'];}let _0x166bed;try{_0x166bed=await(0x0,axios_1[_0x2d6eb4(0x18b)])(_0x301d88);}catch(_0x1f8289){rethrowConnectorHttpError(_0x1f8289);}const _0x42a21d=_0x166bed[_0x2d6eb4(0x26a)];let _0x4ae7cc;if(_0x3936b7['response_mapping']&&typeof _0x3936b7[_0x2d6eb4(0x247)]===_0x2d6eb4(0x2b1)){_0x4ae7cc={};for(const [_0xbebf91,_0x98e8ae]of Object[_0x2d6eb4(0x168)](_0x3936b7[_0x2d6eb4(0x247)])){_0x4ae7cc[_0xbebf91]=getByPath(_0x42a21d,_0x98e8ae);}}else _0x4ae7cc=_0x42a21d;const _0x37c535=collectRestResponseWarnings(_0x3936b7,_0x4ae7cc,_0x513bf1,_0x5fa096),_0x38aabd={'raw':_0x42a21d,'mapped':_0x4ae7cc};if(_0x37c535[_0x2d6eb4(0x266)])_0x38aabd[_0x2d6eb4(0x1bf)]=_0x37c535;return _0x38aabd;}function _0xa1c4(_0x2fbbd3,_0x339410){_0x2fbbd3=_0x2fbbd3-0x161;const _0x17c8c5=_0x17c8();let _0xa1c43f=_0x17c8c5[_0x2fbbd3];if(_0xa1c4['iSejZn']===undefined){var _0x160f52=function(_0x2e95ed){const _0x476e07='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5707c9='',_0xb9305f='';for(let _0x364119=0x0,_0x6f8bf3,_0x27d782,_0x902c0a=0x0;_0x27d782=_0x2e95ed['charAt'](_0x902c0a++);~_0x27d782&&(_0x6f8bf3=_0x364119%0x4?_0x6f8bf3*0x40+_0x27d782:_0x27d782,_0x364119++%0x4)?_0x5707c9+=String['fromCharCode'](0xff&_0x6f8bf3>>(-0x2*_0x364119&0x6)):0x0){_0x27d782=_0x476e07['indexOf'](_0x27d782);}for(let _0x435d49=0x0,_0x4cc04c=_0x5707c9['length'];_0x435d49<_0x4cc04c;_0x435d49++){_0xb9305f+='%'+('00'+_0x5707c9['charCodeAt'](_0x435d49)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xb9305f);};_0xa1c4['xZHrzB']=_0x160f52,_0xa1c4['IJnCKN']={},_0xa1c4['iSejZn']=!![];}const _0x30f328=_0x17c8c5[0x0],_0x47bd51=_0x2fbbd3+_0x30f328,_0x346c19=_0xa1c4['IJnCKN'][_0x47bd51];return!_0x346c19?(_0xa1c43f=_0xa1c4['xZHrzB'](_0xa1c43f),_0xa1c4['IJnCKN'][_0x47bd51]=_0xa1c43f):_0xa1c43f=_0x346c19,_0xa1c43f;}function getByPath(_0x3f8334,_0x24bd2c){const _0x536d65=_0x2b58c2;if(!_0x3f8334||!_0x24bd2c)return undefined;const _0x300cde=_0x24bd2c[_0x536d65(0x2c6)]('.');let _0x6fbdd0=_0x3f8334;for(const _0x5f2893 of _0x300cde){if(_0x6fbdd0==null)return undefined;_0x6fbdd0=_0x6fbdd0[_0x5f2893];}return _0x6fbdd0;}function collectRestResponseWarnings(_0x353bd6,_0x3c9d3a,_0x4d9141,_0x5c7986){const _0x18591c=_0x2b58c2,_0x8f5aa2=[],_0x4d48b0=_0x4d9141[_0x18591c(0x225)]||_0x4d9141['id']||_0x18591c(0x1f6);if(_0x353bd6['response_mapping']&&_0x3c9d3a!=null&&typeof _0x3c9d3a==='object'&&!Array['isArray'](_0x3c9d3a))for(const [_0x1826a2,_0x1c7c55]of Object['entries'](_0x353bd6[_0x18591c(0x247)])){if(!Object[_0x18591c(0x2e8)][_0x18591c(0x27d)]['call'](_0x3c9d3a,_0x1826a2))_0x8f5aa2['push'](_0x18591c(0x1f5)+_0x1826a2+'\x22\x20missing\x20from\x20mapped\x20result\x20(path\x20\x22'+String(_0x1c7c55)+'\x22)');else _0x3c9d3a[_0x1826a2]===undefined&&_0x8f5aa2[_0x18591c(0x2a5)](_0x18591c(0x1f5)+_0x1826a2+_0x18591c(0x18a)+String(_0x1c7c55)+'\x22');}if((0x0,registry_1[_0x18591c(0x2a3)])(_0x4d9141)){const _0xcc0e8d=_0x4d9141[_0x18591c(0x1a2)]?.[_0x5c7986],_0x1681ad=_0xcc0e8d?.[_0x18591c(0x285)];if(_0x1681ad!=null&&typeof _0x1681ad===_0x18591c(0x2b1)&&!Array[_0x18591c(0x177)](_0x1681ad)){const _0x31a189=Object[_0x18591c(0x2d0)](_0x1681ad);if(_0x31a189['length']>0x0){if(_0x3c9d3a==null||typeof _0x3c9d3a!==_0x18591c(0x2b1)||Array[_0x18591c(0x177)](_0x3c9d3a))_0x8f5aa2[_0x18591c(0x2a5)]('typed\x20connector\x20\x22'+_0x4d48b0+_0x18591c(0x1ee)+_0x5c7986+_0x18591c(0x2dd)+(_0x3c9d3a===null?_0x18591c(0x263):Array[_0x18591c(0x177)](_0x3c9d3a)?'array':typeof _0x3c9d3a));else for(const _0xa31779 of _0x31a189){if(!Object[_0x18591c(0x2e8)][_0x18591c(0x27d)][_0x18591c(0x205)](_0x3c9d3a,_0xa31779)){_0x8f5aa2[_0x18591c(0x2a5)]('typed\x20connector\x20\x22'+_0x4d48b0+_0x18591c(0x1dc)+_0xa31779+_0x18591c(0x278));continue;}const _0x4a53a9=_0x1681ad[_0xa31779],_0x3331fd=_0x3c9d3a[_0xa31779],_0x21bac2=_0x4a53a9===null?'null':Array[_0x18591c(0x177)](_0x4a53a9)?_0x18591c(0x18c):typeof _0x4a53a9,_0x1fd6e7=_0x3331fd===null?_0x18591c(0x263):Array[_0x18591c(0x177)](_0x3331fd)?_0x18591c(0x18c):typeof _0x3331fd;_0x21bac2!==_0x1fd6e7&&_0x8f5aa2[_0x18591c(0x2a5)](_0x18591c(0x216)+_0x4d48b0+_0x18591c(0x16e)+_0xa31779+_0x18591c(0x20e)+_0x21bac2+_0x18591c(0x1cf)+_0x1fd6e7);}}}}return _0x8f5aa2;}async function executeDbConnector(_0x13e012,_0xbcfb55,_0x5ad6b3,_0xc603e0){const _0x422bfa=_0x2b58c2,_0x29c104=_0x13e012['_id']||_0x13e012['id'],_0x3f47d7=_0xc603e0?.[_0x422bfa(0x20f)]?.[_0x29c104]||_0xc603e0?.[_0x422bfa(0x2f5)]||{},_0x54e668=_0x3f47d7[_0x422bfa(0x212)]||_0x3f47d7[_0x422bfa(0x187)]||_0x13e012['auth']?.['uri'],_0x2a3244=_0x5ad6b3[_0x422bfa(0x1a3)]||_0x3f47d7['database']||_0x13e012[_0x422bfa(0x1dd)]?.['database'];if(!_0x54e668)throw new Error(_0x422bfa(0x2ea)+_0x29c104);if(_0x29c104===_0x422bfa(0x245))try{const {MongoClient:_0xb2d116}=await Promise[_0x422bfa(0x222)]()['then'](()=>__importStar(require('mongodb'))),_0x3d4ae3=new _0xb2d116(_0x54e668);await _0x3d4ae3[_0x422bfa(0x2b8)]();try{const _0x61ef7a=_0x3d4ae3['db'](_0x2a3244),_0xf1bf83=_0x5ad6b3[_0x422bfa(0x1a7)];if(!_0xf1bf83)throw new Error(_0x422bfa(0x24d));let _0x3bf6b2;switch(_0xbcfb55){case _0x422bfa(0x21c):_0x3bf6b2=await _0x61ef7a[_0x422bfa(0x1a7)](_0xf1bf83)[_0x422bfa(0x21c)](_0x5ad6b3[_0x422bfa(0x1b5)]||{});return{'raw':_0x3bf6b2,'mapped':{'insertedId':_0x3bf6b2[_0x422bfa(0x307)],..._0x3bf6b2}};case _0x422bfa(0x164):_0x3bf6b2=await _0x61ef7a[_0x422bfa(0x1a7)](_0xf1bf83)['insertMany'](_0x5ad6b3['documents']||[]);return{'raw':_0x3bf6b2,'mapped':_0x3bf6b2};case'findOne':_0x3bf6b2=await _0x61ef7a[_0x422bfa(0x1a7)](_0xf1bf83)['findOne'](_0x5ad6b3[_0x422bfa(0x2ae)]||{});return{'raw':_0x3bf6b2,'mapped':_0x3bf6b2};case'find':const _0x141516=_0x61ef7a[_0x422bfa(0x1a7)](_0xf1bf83)[_0x422bfa(0x1ce)](_0x5ad6b3[_0x422bfa(0x2ae)]||{});if(_0x5ad6b3[_0x422bfa(0x188)])_0x141516[_0x422bfa(0x188)](_0x5ad6b3[_0x422bfa(0x188)]);if(_0x5ad6b3[_0x422bfa(0x234)])_0x141516[_0x422bfa(0x234)](_0x5ad6b3[_0x422bfa(0x234)]);_0x3bf6b2=await _0x141516[_0x422bfa(0x1ff)]();return{'raw':_0x3bf6b2,'mapped':_0x3bf6b2};case _0x422bfa(0x1f9):_0x3bf6b2=await _0x61ef7a[_0x422bfa(0x1a7)](_0xf1bf83)[_0x422bfa(0x1f9)](_0x5ad6b3[_0x422bfa(0x2ae)]||{},_0x5ad6b3['update']||{});return{'raw':_0x3bf6b2,'mapped':_0x3bf6b2};case'deleteOne':_0x3bf6b2=await _0x61ef7a[_0x422bfa(0x1a7)](_0xf1bf83)[_0x422bfa(0x2a2)](_0x5ad6b3[_0x422bfa(0x2ae)]||{});return{'raw':_0x3bf6b2,'mapped':_0x3bf6b2};default:throw new Error(_0x422bfa(0x290)+_0xbcfb55);}}finally{await _0x3d4ae3[_0x422bfa(0x1eb)]();}}catch(_0x3d041b){if(_0x3d041b[_0x422bfa(0x211)]===_0x422bfa(0x183)||_0x3d041b[_0x422bfa(0x241)]?.['includes']('mongodb'))throw new Error(_0x422bfa(0x20b));throw _0x3d041b;}if(_0x29c104===_0x422bfa(0x287))try{const _0x428aea=await Promise[_0x422bfa(0x222)]()['then'](()=>__importStar(require(_0x422bfa(0x1ab)))),_0x14d21b=_0x3f47d7[_0x422bfa(0x212)]?{'uri':_0x3f47d7['uri']}:{'host':_0x3f47d7[_0x422bfa(0x280)]||_0x422bfa(0x1d1),'user':_0x3f47d7[_0x422bfa(0x1d0)],'password':_0x3f47d7[_0x422bfa(0x1c2)],'database':_0x3f47d7['database']||_0x2a3244},_0x4bd165=_0x3f47d7[_0x422bfa(0x212)]?await _0x428aea[_0x422bfa(0x2bf)](_0x3f47d7[_0x422bfa(0x212)]):await _0x428aea['createConnection'](_0x14d21b);try{const [_0x9174f9]=await _0x4bd165[_0x422bfa(0x163)](_0x5ad6b3['query']||_0x422bfa(0x28a),_0x5ad6b3[_0x422bfa(0x275)]);return{'raw':_0x9174f9,'mapped':_0x9174f9};}finally{await _0x4bd165['end']();}}catch(_0xaf9e7f){if(_0xaf9e7f['code']===_0x422bfa(0x183)||_0xaf9e7f[_0x422bfa(0x241)]?.[_0x422bfa(0x1b9)](_0x422bfa(0x291)))throw new Error(_0x422bfa(0x1b8));throw _0xaf9e7f;}if(_0x29c104===_0x422bfa(0x292))try{const {Pool:_0x1189cb}=await Promise['resolve']()[_0x422bfa(0x242)](()=>__importStar(require('pg'))),_0xe57c3=_0x3f47d7[_0x422bfa(0x212)]?{'connectionString':_0x3f47d7[_0x422bfa(0x212)]}:{'host':_0x3f47d7[_0x422bfa(0x280)]||_0x422bfa(0x1d1),'port':_0x3f47d7[_0x422bfa(0x1cd)]||0x1538,'user':_0x3f47d7[_0x422bfa(0x262)]||_0x3f47d7[_0x422bfa(0x1d0)],'password':_0x3f47d7[_0x422bfa(0x1c2)],'database':_0x3f47d7[_0x422bfa(0x1a3)]||_0x2a3244,'ssl':_0x3f47d7[_0x422bfa(0x1c6)]?{'rejectUnauthorized':![]}:undefined},_0xcad872=new _0x1189cb(_0xe57c3);try{const _0x29a269=await _0xcad872[_0x422bfa(0x16b)](_0x5ad6b3[_0x422bfa(0x16b)]||_0x5ad6b3[_0x422bfa(0x252)]||_0x422bfa(0x28a),_0x5ad6b3[_0x422bfa(0x275)]||[]),_0x4d4aa0=_0x29a269[_0x422bfa(0x1d9)],_0x45f46a=_0x5ad6b3[_0x422bfa(0x26d)]??0x3e8;return{'raw':_0x4d4aa0['slice'](0x0,_0x45f46a),'mapped':_0x4d4aa0[_0x422bfa(0x1a6)](0x0,_0x45f46a)};}finally{await _0xcad872['end']();}}catch(_0x5d01cc){if(_0x5d01cc[_0x422bfa(0x211)]===_0x422bfa(0x183)||_0x5d01cc[_0x422bfa(0x241)]?.[_0x422bfa(0x1b9)]('pg'))throw new Error(_0x422bfa(0x18d));throw _0x5d01cc;}if(_0x29c104===_0x422bfa(0x1e3))try{const _0x41da79=(await Promise[_0x422bfa(0x222)]()['then'](()=>__importStar(require('ioredis'))))['default'],_0x1fb7d8=_0x3f47d7['uri']||_0x3f47d7['url'];if(!_0x1fb7d8)throw new Error(_0x422bfa(0x233));const _0x19d04e=new _0x41da79(_0x1fb7d8);try{const _0x1c7070=_0xbcfb55['split']('.')['pop']()||_0xbcfb55;let _0x17e154;switch(_0x1c7070){case _0x422bfa(0x196):{const _0x4e0e73=await _0x19d04e[_0x422bfa(0x196)](_0x5ad6b3[_0x422bfa(0x1fb)]);if(_0x4e0e73===null)_0x17e154=null;else try{_0x17e154=JSON[_0x422bfa(0x194)](_0x4e0e73);}catch{_0x17e154=_0x4e0e73;}break;}case _0x422bfa(0x2e2):{const _0x57e12a=typeof _0x5ad6b3['value']==='string'?_0x5ad6b3[_0x422bfa(0x2b7)]:JSON[_0x422bfa(0x17c)](_0x5ad6b3[_0x422bfa(0x2b7)]);if(_0x5ad6b3[_0x422bfa(0x1b0)]&&_0x5ad6b3['ttl']>0x0)await _0x19d04e[_0x422bfa(0x24a)](_0x5ad6b3[_0x422bfa(0x1fb)],_0x5ad6b3[_0x422bfa(0x1b0)],_0x57e12a);else await _0x19d04e[_0x422bfa(0x2e2)](_0x5ad6b3[_0x422bfa(0x1fb)],_0x57e12a);_0x17e154={'ok':!![]};break;}case _0x422bfa(0x253):case _0x422bfa(0x2b9):{const _0x389b2a=await _0x19d04e[_0x422bfa(0x1b1)](_0x5ad6b3[_0x422bfa(0x1fb)]);_0x17e154={'deleted':_0x389b2a>0x0,'count':_0x389b2a};break;}case _0x422bfa(0x269):{const _0x248117=typeof _0x5ad6b3['value']===_0x422bfa(0x283)?_0x5ad6b3['value']:JSON[_0x422bfa(0x17c)](_0x5ad6b3[_0x422bfa(0x2b7)]);await _0x19d04e[_0x422bfa(0x269)](_0x5ad6b3[_0x422bfa(0x1fb)],_0x5ad6b3[_0x422bfa(0x24f)],_0x248117),_0x17e154={'ok':!![]};break;}case'hget':{const _0x1dee8f=await _0x19d04e[_0x422bfa(0x1d2)](_0x5ad6b3['key'],_0x5ad6b3[_0x422bfa(0x24f)]);if(_0x1dee8f===null)_0x17e154=null;else try{_0x17e154=JSON['parse'](_0x1dee8f);}catch{_0x17e154=_0x1dee8f;}break;}case'lpush':{const _0x3b8994=typeof _0x5ad6b3[_0x422bfa(0x2b7)]==='string'?_0x5ad6b3[_0x422bfa(0x2b7)]:JSON[_0x422bfa(0x17c)](_0x5ad6b3[_0x422bfa(0x2b7)]);await _0x19d04e[_0x422bfa(0x176)](_0x5ad6b3[_0x422bfa(0x1fb)],_0x3b8994),_0x17e154={'ok':!![]};break;}case _0x422bfa(0x21f):{_0x17e154=await _0x19d04e[_0x422bfa(0x21f)](_0x5ad6b3[_0x422bfa(0x1fb)]);break;}case _0x422bfa(0x19a):{await _0x19d04e[_0x422bfa(0x19a)](_0x5ad6b3[_0x422bfa(0x1fb)],_0x5ad6b3[_0x422bfa(0x228)],_0x5ad6b3[_0x422bfa(0x16d)]),_0x17e154={'ok':!![]};break;}case _0x422bfa(0x2d1):{const _0x22ae84=_0x5ad6b3[_0x422bfa(0x2c0)]||{};for(const [_0x57fcf7,_0x5e2d82]of Object[_0x422bfa(0x168)](_0x22ae84)){await _0x19d04e[_0x422bfa(0x269)](_0x5ad6b3['key'],_0x57fcf7,typeof _0x5e2d82==='string'?_0x5e2d82:JSON[_0x422bfa(0x17c)](_0x5e2d82));}_0x17e154={'ok':!![]};break;}default:throw new Error(_0x422bfa(0x178)+_0x1c7070);}return{'raw':_0x17e154,'mapped':_0x17e154};}finally{await _0x19d04e[_0x422bfa(0x2b2)]();}}catch(_0x5708d0){if(_0x5708d0['code']==='ERR_MODULE_NOT_FOUND'||_0x5708d0[_0x422bfa(0x241)]?.['includes']('ioredis'))throw new Error(_0x422bfa(0x1a0));throw _0x5708d0;}throw new Error(_0x422bfa(0x2e3)+_0x29c104);}function bearerExpiresAtFromExpiresIn(_0x4b61aa){const _0x121233=_0x2b58c2;if(typeof _0x4b61aa===_0x121233(0x283)){const _0x1c4c81=_0x4b61aa[_0x121233(0x1f4)](/^(\d+)([smhd])$/);if(_0x1c4c81){const value=parseInt(_0x1c4c81[0x1],0xa),_0x193e0f=_0x1c4c81[0x2],_0x3ebacf={'s':0x3e8,'m':0x3c*0x3e8,'h':0x3c*0x3c*0x3e8,'d':0x18*0x3c*0x3c*0x3e8};return Date['now']()+value*(_0x3ebacf[_0x193e0f]||0x3e8);}return null;}if(typeof _0x4b61aa===_0x121233(0x304))return Date[_0x121233(0x277)]()+_0x4b61aa*0x3e8;return null;}async function executeAuthConnector(_0x50c587,_0xc9528a,_0x2df46e,_0x1a04fd){const _0x3dc504=_0x2b58c2,_0x5e8116=_0x50c587[_0x3dc504(0x225)]?.[_0x3dc504(0x2c6)]('.')[0x0]||_0x3dc504(0x2da),_0x589a3e=_0x2df46e['body']||_0x2df46e,_0x57a77a=_0x1a04fd[_0x3dc504(0x1e5)]?.['authorization']?.[_0x3dc504(0x174)](/^Bearer\s+/i,''),_0x13a1d0=_0x589a3e[_0x3dc504(0x264)]??_0x57a77a??_0x1a04fd[_0x3dc504(0x264)],_0x14c5e9=_0xc9528a[_0x3dc504(0x2c6)]('.')[_0x3dc504(0x1fd)]()||_0x3dc504(0x1da),_0x58c77d=_0x14c5e9[_0x3dc504(0x2c7)]();if(_0x5e8116===_0x3dc504(0x2da)){if(_0x58c77d===_0x3dc504(0x189)){const _0x15594b=_0x589a3e[_0x3dc504(0x2af)]||_0x3dc504(0x2dc),_0x3204d7=_0x589a3e['prefix']??_0x3dc504(0x1f1),_0x103be7=_0x589a3e[_0x3dc504(0x250)]??_0x589a3e['tokenSecret'];if(_0x103be7){const _0x446e22=_0x589a3e[_0x3dc504(0x1d5)]??_0x1a04fd?.[_0x3dc504(0x1d5)]??{},_0x36cbe2=_0x589a3e[_0x3dc504(0x17e)]??_0x589a3e[_0x3dc504(0x2d4)]??_0x1a04fd?.['expiresIn']??'1h',_0x5e72d4={'sub':_0x446e22?.[_0x3dc504(0x2fe)]??_0x446e22?.['id']??_0x3dc504(0x2cc),'iat':Math[_0x3dc504(0x28c)](Date['now']()/0x3e8),..._0x446e22};try{const _0x564213=typeof _0x36cbe2==='number'?{'expiresIn':_0x36cbe2}:{'expiresIn':String(_0x36cbe2)},_0x5e77c7=jsonwebtoken_1[_0x3dc504(0x18b)]['sign'](_0x5e72d4,_0x103be7,_0x564213),_0x323451=bearerExpiresAtFromExpiresIn(typeof _0x36cbe2===_0x3dc504(0x304)?_0x36cbe2:String(_0x36cbe2)),_0x437e5e=_0x323451!=null?new Date(_0x323451)[_0x3dc504(0x19d)]():null;return{'ok':!![],'valid':!![],'token':_0x5e77c7,'token_type':_0x3dc504(0x27f),'expires_in':_0x36cbe2,'expires_at':_0x437e5e,'payload':_0x5e72d4,'formatted_token':''+_0x3204d7+_0x5e77c7,'auth':{'type':_0x3dc504(0x2da),'header_name':_0x15594b,'prefix':_0x3204d7,'value':''+_0x3204d7+_0x5e77c7}};}catch(_0x33661f){return{'ok':![],'valid':![],'error':_0x33661f?.[_0x3dc504(0x241)]||'Failed\x20to\x20create\x20bearer\x20token','message':_0x3dc504(0x2e1)};}}const _0x1dbcb0=_0x589a3e[_0x3dc504(0x264)]??_0x13a1d0;if(!_0x1dbcb0)return{'valid':![],'ok':![],'error':_0x3dc504(0x1e4),'message':_0x3dc504(0x2f6)};const _0x77bd1a=_0x589a3e[_0x3dc504(0x17e)]??null;return{'ok':!![],'valid':!![],'token':_0x1dbcb0,'auth':{'type':_0x3dc504(0x2da),'header_name':_0x15594b,'prefix':_0x3204d7,'value':''+_0x3204d7+_0x1dbcb0,..._0x77bd1a!=null?{'expires_in':_0x77bd1a}:{}}};}if(_0x58c77d==='validate'){if(!_0x13a1d0)return{'valid':![],'ok':![],'error':_0x3dc504(0x1e4),'message':'Token\x20is\x20required'};const _0x289bbd=_0x589a3e[_0x3dc504(0x250)]??_0x589a3e[_0x3dc504(0x207)];if(_0x289bbd)try{const _0x52b117=jsonwebtoken_1[_0x3dc504(0x18b)][_0x3dc504(0x19c)](_0x13a1d0,_0x289bbd);return{'valid':!![],'ok':!![],'token':_0x13a1d0,'decoded':_0x52b117,'payload':_0x52b117,'message':'Token\x20is\x20valid'};}catch(_0x5281c7){let _0x54aebe=null;try{_0x54aebe=jsonwebtoken_1[_0x3dc504(0x18b)][_0x3dc504(0x2e0)](_0x13a1d0,{'complete':![]});}catch{}return{'valid':![],'ok':![],'token':null,'decoded':_0x54aebe,'payload':_0x54aebe,'error':_0x5281c7?.[_0x3dc504(0x241)]||_0x3dc504(0x2d6),'message':_0x3dc504(0x284)};}const requiredPrefix=_0x589a3e[_0x3dc504(0x26b)],_0x5bfb50=_0x1a04fd[_0x3dc504(0x1e5)]?.[_0x3dc504(0x186)]||'';if(requiredPrefix&&_0x5bfb50&&!_0x5bfb50['startsWith'](requiredPrefix))return{'valid':![],'ok':![],'token':_0x13a1d0,'error':'Bearer\x20token\x20prefix\x20mismatch'};return{'valid':!![],'ok':!![],'token':_0x13a1d0,'message':'Token\x20accepted'};}}if(_0x5e8116===_0x3dc504(0x282)){const _0x4cd695=_0x589a3e['name']||_0x3dc504(0x1d4),_0x6c3d53=_0x1a04fd['headers']?.[_0x4cd695]??_0x1a04fd[_0x3dc504(0x1e5)]?.[_0x3dc504(0x1d4)],_0x8833d2=_0x1a04fd[_0x3dc504(0x16b)]?.[_0x4cd695]??_0x1a04fd[_0x3dc504(0x275)]?.[_0x4cd695],_0x4c15ef=_0x589a3e['api_key']??_0x589a3e[_0x3dc504(0x264)]??_0x6c3d53??_0x8833d2??_0x13a1d0;if(_0x58c77d===_0x3dc504(0x189)){if(!_0x4c15ef)return{'valid':![],'ok':![],'error':_0x3dc504(0x17b)};const _0x5c1b67=_0x589a3e['in']||_0x3dc504(0x182),_0x4855ed=_0x589a3e[_0x3dc504(0x2ac)]||'';return{'valid':!![],'ok':!![],'token':_0x4c15ef,'auth':{'type':_0x3dc504(0x282),'in':_0x5c1b67,'name':_0x4cd695,'value':''+_0x4855ed+_0x4c15ef}};}if(!_0x4c15ef)return{'valid':![],'ok':![],'error':'API\x20key\x20not\x20provided'};return{'valid':!![],'ok':!![],'token':_0x4c15ef,'name':_0x4cd695};}if(_0x5e8116===_0x3dc504(0x23c)){const _0xd959c7=_0x589a3e[_0x3dc504(0x262)]??_0x589a3e[_0x3dc504(0x1d0)],_0x34d9e6=_0x589a3e['password'];if(_0x58c77d===_0x3dc504(0x189)){if(!_0xd959c7||!_0x34d9e6)return{'valid':![],'ok':![],'error':'Username\x20and\x20password\x20are\x20required'};const value=_0x3dc504(0x2ff)+Buffer[_0x3dc504(0x289)](_0xd959c7+':'+_0x34d9e6)[_0x3dc504(0x1ea)](_0x3dc504(0x2ee));return{'valid':!![],'ok':!![],'auth':{'type':'basic','username':_0xd959c7,'value':value}};}const _0x4069a6=_0x589a3e[_0x3dc504(0x1aa)]??_0x589a3e[_0x3dc504(0x262)],_0x1bf322=_0x589a3e[_0x3dc504(0x229)]??_0x589a3e[_0x3dc504(0x1c2)],_0x4ee976=_0x1a04fd[_0x3dc504(0x1e5)]?.[_0x3dc504(0x186)]||'';let _0x2d347a=_0x589a3e[_0x3dc504(0x262)],_0xdfccc0=_0x589a3e['password'];if((!_0x2d347a||!_0xdfccc0)&&_0x4ee976['startsWith'](_0x3dc504(0x2ff)))try{const _0x414e88=Buffer[_0x3dc504(0x289)](_0x4ee976[_0x3dc504(0x174)](/^Basic\s+/i,''),_0x3dc504(0x2ee))[_0x3dc504(0x1ea)]('utf8'),_0x4e87b5=_0x414e88[_0x3dc504(0x2c6)](':');_0x2d347a=_0x2d347a??_0x4e87b5[0x0],_0xdfccc0=_0xdfccc0??_0x4e87b5['slice'](0x1)[_0x3dc504(0x197)](':');}catch{}if(_0x4069a6&&_0x1bf322){const _0x4b921d=_0x2d347a===_0x4069a6&&_0xdfccc0===_0x1bf322;return{'valid':_0x4b921d,'ok':_0x4b921d,'username':_0x2d347a};}const _0x24aebc=Boolean(_0x2d347a&&_0xdfccc0);return{'valid':_0x24aebc,'ok':_0x24aebc,'username':_0x2d347a};}if(_0x5e8116===_0x3dc504(0x224)){const _0x138eb2=_0x589a3e[_0x3dc504(0x1e5)]||{};if(_0x58c77d===_0x3dc504(0x189))return{'valid':!![],'ok':!![],'auth':{'type':_0x3dc504(0x224),'headers':_0x138eb2}};const requiredHeaders=Array['isArray'](_0x589a3e[_0x3dc504(0x2fc)])?_0x589a3e[_0x3dc504(0x2fc)]:Object['keys'](_0x138eb2),_0x57bcbd=_0x1a04fd['headers']||{},_0x5baf04=requiredHeaders[_0x3dc504(0x2ae)](_0x80e93d=>_0x57bcbd[_0x80e93d]==null);if(_0x5baf04[_0x3dc504(0x266)]>0x0)return{'valid':![],'ok':![],'error':'Missing\x20required\x20headers:\x20'+_0x5baf04['join'](',\x20')};return{'valid':!![],'ok':!![]};}return{'valid':!![],'ok':!![]};}function areDeepEqual(_0x36ab60,_0x3eefc1,_0x422c80){const _0x50e851=_0x2b58c2;if(_0x36ab60===_0x3eefc1)return!![];if(_0x36ab60==null||_0x3eefc1==null)return![];if(typeof _0x36ab60!==typeof _0x3eefc1)return![];if(Array['isArray'](_0x36ab60)&&Array[_0x50e851(0x177)](_0x3eefc1)){if(_0x36ab60[_0x50e851(0x266)]!==_0x3eefc1[_0x50e851(0x266)])return![];for(let _0x305e2e=0x0;_0x305e2e<_0x36ab60['length'];_0x305e2e++){if(!areDeepEqual(_0x36ab60[_0x305e2e],_0x3eefc1[_0x305e2e],_0x422c80))return![];}return!![];}if(typeof _0x36ab60==='object'){const _0xd8184f=Object[_0x50e851(0x2d0)](_0x36ab60)['filter'](_0x5d355f=>!_0x422c80?.[_0x50e851(0x1b9)](_0x5d355f)),_0x1d9a42=Object[_0x50e851(0x2d0)](_0x3eefc1)['filter'](_0x5166d1=>!_0x422c80?.['includes'](_0x5166d1));if(_0xd8184f[_0x50e851(0x266)]!==_0x1d9a42['length'])return![];for(const _0x2640e8 of _0xd8184f){if(!_0x1d9a42[_0x50e851(0x1b9)](_0x2640e8))return![];if(!areDeepEqual(_0x36ab60[_0x2640e8],_0x3eefc1[_0x2640e8],_0x422c80))return![];}return!![];}return![];}function levenshteinDistance(_0x3a9e6a,_0x15e61e){const _0x3ab3d1=_0x2b58c2,_0x366cdb=[];for(let _0x4182c7=0x0;_0x4182c7<=_0x15e61e[_0x3ab3d1(0x266)];_0x4182c7++)_0x366cdb[_0x4182c7]=[_0x4182c7];for(let _0x4b3d41=0x0;_0x4b3d41<=_0x3a9e6a[_0x3ab3d1(0x266)];_0x4b3d41++)_0x366cdb[0x0][_0x4b3d41]=_0x4b3d41;for(let _0x38d723=0x1;_0x38d723<=_0x15e61e[_0x3ab3d1(0x266)];_0x38d723++){for(let _0x3f7ba9=0x1;_0x3f7ba9<=_0x3a9e6a[_0x3ab3d1(0x266)];_0x3f7ba9++){_0x15e61e[_0x3ab3d1(0x28e)](_0x38d723-0x1)===_0x3a9e6a[_0x3ab3d1(0x28e)](_0x3f7ba9-0x1)?_0x366cdb[_0x38d723][_0x3f7ba9]=_0x366cdb[_0x38d723-0x1][_0x3f7ba9-0x1]:_0x366cdb[_0x38d723][_0x3f7ba9]=Math[_0x3ab3d1(0x25d)](_0x366cdb[_0x38d723-0x1][_0x3f7ba9-0x1]+0x1,_0x366cdb[_0x38d723][_0x3f7ba9-0x1]+0x1,_0x366cdb[_0x38d723-0x1][_0x3f7ba9]+0x1);}}return _0x366cdb[_0x15e61e[_0x3ab3d1(0x266)]][_0x3a9e6a[_0x3ab3d1(0x266)]];}function levenshteinSimilarity(_0x2e81c7,_0x3317bb){const _0x287ff3=_0x2b58c2,_0x3e7813=Math[_0x287ff3(0x19e)](_0x2e81c7[_0x287ff3(0x266)],_0x3317bb[_0x287ff3(0x266)]);if(_0x3e7813===0x0)return 0x1;return 0x1-levenshteinDistance(_0x2e81c7,_0x3317bb)/_0x3e7813;}function executeCompare(_0x120db8,_0x38fdd6){const _0x5e236d=_0x2b58c2;switch(_0x38fdd6){case'diff_objects':{const {object1:_0x40d084,object2:_0xc35146,deep:deep=!![],ignore_keys:ignore_keys=[],include_added:include_added=!![],include_removed:include_removed=!![],include_changed:include_changed=!![]}=_0x120db8;if(!_0x40d084||!_0xc35146)throw new Error(_0x5e236d(0x2bc));const _0x2f36bd={},_0x3645e9=new Set([...Object['keys'](_0x40d084),...Object['keys'](_0xc35146)]);for(const _0x237dec of _0x3645e9){if(ignore_keys['includes'](_0x237dec))continue;const _0x209337=_0x40d084[_0x237dec],_0x3b2884=_0xc35146[_0x237dec],_0x2f0af5=_0x237dec in _0x40d084,_0x3b0692=_0x237dec in _0xc35146;if(!_0x2f0af5&&_0x3b0692&&include_added)_0x2f36bd[_0x237dec]={'type':_0x5e236d(0x1ed),'value':_0x3b2884};else{if(_0x2f0af5&&!_0x3b0692&&include_removed)_0x2f36bd[_0x237dec]={'type':'removed','value':_0x209337};else{if(_0x2f0af5&&_0x3b0692&&include_changed){const _0x436647=deep?!areDeepEqual(_0x209337,_0x3b2884,ignore_keys):_0x209337!==_0x3b2884;if(_0x436647)_0x2f36bd[_0x237dec]={'type':_0x5e236d(0x1d8),'old':_0x209337,'new':_0x3b2884};}}}}return{'diff':_0x2f36bd,'has_changes':Object['keys'](_0x2f36bd)[_0x5e236d(0x266)]>0x0};}case _0x5e236d(0x2c8):{const {array1:_0x4e5805,array2:_0xe87e05,compare_order:compare_order=![],deep:deep=!![],include_added:include_added=!![],include_removed:include_removed=!![],include_changed:include_changed=!![]}=_0x120db8;if(!Array[_0x5e236d(0x177)](_0x4e5805)||!Array[_0x5e236d(0x177)](_0xe87e05))throw new Error(_0x5e236d(0x2be));const _0x2b206a={'added':[],'removed':[],'changed':[]};if(compare_order){const _0x308827=Math[_0x5e236d(0x19e)](_0x4e5805[_0x5e236d(0x266)],_0xe87e05[_0x5e236d(0x266)]);for(let _0x44271a=0x0;_0x44271a<_0x308827;_0x44271a++){if(_0x44271a>=_0x4e5805[_0x5e236d(0x266)]&&include_added)_0x2b206a[_0x5e236d(0x1ed)][_0x5e236d(0x2a5)]({'index':_0x44271a,'value':_0xe87e05[_0x44271a]});else{if(_0x44271a>=_0xe87e05[_0x5e236d(0x266)]&&include_removed)_0x2b206a[_0x5e236d(0x2f8)][_0x5e236d(0x2a5)]({'index':_0x44271a,'value':_0x4e5805[_0x44271a]});else{if(include_changed){const _0x4da67a=deep?!areDeepEqual(_0x4e5805[_0x44271a],_0xe87e05[_0x44271a]):_0x4e5805[_0x44271a]!==_0xe87e05[_0x44271a];if(_0x4da67a)_0x2b206a[_0x5e236d(0x1d8)]['push']({'index':_0x44271a,'old':_0x4e5805[_0x44271a],'new':_0xe87e05[_0x44271a]});}}}}}else{for(const _0x11ee71 of _0xe87e05){if(!_0x4e5805['some'](_0x28c5a3=>deep?areDeepEqual(_0x28c5a3,_0x11ee71):_0x28c5a3===_0x11ee71)&&include_added)_0x2b206a[_0x5e236d(0x1ed)]['push']({'value':_0x11ee71});}for(const _0x29dfa9 of _0x4e5805){if(!_0xe87e05[_0x5e236d(0x215)](_0x442907=>deep?areDeepEqual(_0x442907,_0x29dfa9):_0x442907===_0x29dfa9)&&include_removed)_0x2b206a[_0x5e236d(0x2f8)][_0x5e236d(0x2a5)]({'value':_0x29dfa9});}}return{'diff':_0x2b206a,'has_changes':_0x2b206a['added'][_0x5e236d(0x266)]>0x0||_0x2b206a[_0x5e236d(0x2f8)][_0x5e236d(0x266)]>0x0||_0x2b206a['changed'][_0x5e236d(0x266)]>0x0};}case _0x5e236d(0x25c):{const {string1:_0x1359db,string2:_0x253123,case_sensitive:case_sensitive=!![],trim:trim=![],method:method=_0x5e236d(0x28d)}=_0x120db8;if(_0x1359db===undefined||_0x253123===undefined)throw new Error(_0x5e236d(0x217));let _0x3d83d8=String(_0x1359db),_0x5d37bb=String(_0x253123);trim&&(_0x3d83d8=_0x3d83d8[_0x5e236d(0x295)](),_0x5d37bb=_0x5d37bb['trim']());!case_sensitive&&(_0x3d83d8=_0x3d83d8[_0x5e236d(0x2c7)](),_0x5d37bb=_0x5d37bb[_0x5e236d(0x2c7)]());if(method===_0x5e236d(0x28d))return{'equal':_0x3d83d8===_0x5d37bb,'similarity':_0x3d83d8===_0x5d37bb?0x1:0x0};if(method===_0x5e236d(0x171))return{'contains':_0x3d83d8[_0x5e236d(0x1b9)](_0x5d37bb)||_0x5d37bb[_0x5e236d(0x1b9)](_0x3d83d8)};if(method===_0x5e236d(0x2f3))return{'similarity':levenshteinSimilarity(_0x3d83d8,_0x5d37bb)};return{'equal':_0x3d83d8===_0x5d37bb};}case'compare_numbers':{const {number1:_0x1ff697,number2:_0xbef162,tolerance:tolerance=0x0,operator:operator='=='}=_0x120db8;if(_0x1ff697===undefined||_0xbef162===undefined)throw new Error(_0x5e236d(0x2b4));const _0x60bbc2=Number(_0x1ff697),_0x54b817=Number(_0xbef162),_0x14db30=Math[_0x5e236d(0x2cd)](_0x60bbc2-_0x54b817);let _0x525bcb=![];if(operator==='==')_0x525bcb=_0x14db30<=tolerance;else{if(operator==='!=')_0x525bcb=_0x14db30>tolerance;else{if(operator==='>')_0x525bcb=_0x60bbc2>_0x54b817;else{if(operator==='>=')_0x525bcb=_0x60bbc2>=_0x54b817;else{if(operator==='<')_0x525bcb=_0x60bbc2<_0x54b817;else{if(operator==='<=')_0x525bcb=_0x60bbc2<=_0x54b817;}}}}}return{'result':_0x525bcb,'difference':_0x14db30};}case'compare_dates':{const {date1:_0x1eda60,date2:_0x39aefa,operator:operator='==',tolerance_seconds:tolerance_seconds=0x0}=_0x120db8;if(!_0x1eda60||!_0x39aefa)throw new Error(_0x5e236d(0x1e8));const _0x385d95=new Date(_0x1eda60)['getTime'](),_0x459418=new Date(_0x39aefa)[_0x5e236d(0x1a1)](),_0x51af85=Math['abs'](_0x385d95-_0x459418)/0x3e8;let _0x3aca4f=![];if(operator==='==')_0x3aca4f=_0x51af85<=tolerance_seconds;else{if(operator==='!=')_0x3aca4f=_0x51af85>tolerance_seconds;else{if(operator==='>')_0x3aca4f=_0x385d95>_0x459418;else{if(operator==='>=')_0x3aca4f=_0x385d95>=_0x459418;else{if(operator==='<')_0x3aca4f=_0x385d95<_0x459418;else{if(operator==='<=')_0x3aca4f=_0x385d95<=_0x459418;}}}}}return{'result':_0x3aca4f,'difference_seconds':_0x51af85};}case _0x5e236d(0x25b):{const {value1:value1,value2:value2,deep:deep=!![],ignore_keys:ignore_keys=[]}=_0x120db8;if(value1===undefined||value2===undefined)throw new Error('Both\x20values\x20are\x20required');return{'changed':deep?!areDeepEqual(value1,value2,ignore_keys):value1!==value2};}case _0x5e236d(0x2ad):{const {value1:value1,value2:value2,deep:deep=!![],strict:strict=!![],ignore_keys:ignore_keys=[]}=_0x120db8;if(value1===undefined||value2===undefined)throw new Error('Both\x20values\x20are\x20required');if(strict&&!deep)return{'equal':value1===value2};return{'equal':deep?areDeepEqual(value1,value2,ignore_keys):value1==value2};}case _0x5e236d(0x309):{const {value1:value1,value2:value2,deep:deep=!![],strict:strict=!![],ignore_keys:ignore_keys=[]}=_0x120db8;if(value1===undefined||value2===undefined)throw new Error(_0x5e236d(0x2e9));if(strict&&!deep)return{'not_equal':value1!==value2};const _0x3a9d65=deep?areDeepEqual(value1,value2,ignore_keys):value1==value2;return{'not_equal':!_0x3a9d65};}case _0x5e236d(0x28b):{const {value1:value1,value2:value2,or_equal:or_equal=![]}=_0x120db8;if(value1===undefined||value2===undefined)throw new Error('Both\x20values\x20are\x20required');return{'result':or_equal?value1>=value2:value1>value2};}case _0x5e236d(0x2f7):{const {value1:value1,value2:value2,or_equal:or_equal=![]}=_0x120db8;if(value1===undefined||value2===undefined)throw new Error('Both\x20values\x20are\x20required');return{'result':or_equal?value1<=value2:value1<value2};}case'is_between':{const {value:value,min:_0x486996,max:_0x228a52,inclusive:inclusive=!![]}=_0x120db8;if(value===undefined||_0x486996===undefined||_0x228a52===undefined)throw new Error(_0x5e236d(0x209));return{'result':inclusive?value>=_0x486996&&value<=_0x228a52:value>_0x486996&&value<_0x228a52};}case _0x5e236d(0x2ed):{const {value:value,check_whitespace:check_whitespace=!![]}=_0x120db8;if(value===undefined)throw new Error(_0x5e236d(0x2c1));if(value==null)return{'empty':!![]};if(Array[_0x5e236d(0x177)](value))return{'empty':value[_0x5e236d(0x266)]===0x0};if(typeof value===_0x5e236d(0x2b1))return{'empty':Object[_0x5e236d(0x2d0)](value)[_0x5e236d(0x266)]===0x0};if(typeof value===_0x5e236d(0x283))return{'empty':check_whitespace?value[_0x5e236d(0x295)]()[_0x5e236d(0x266)]===0x0:value[_0x5e236d(0x266)]===0x0};return{'empty':![]};}case _0x5e236d(0x173):return{'is_null_or_undefined':_0x120db8[_0x5e236d(0x2b7)]==null};case _0x5e236d(0x25e):{const {value1:value1,value2:value2}=_0x120db8;if(value1===undefined||value2===undefined)throw new Error(_0x5e236d(0x2e9));return{'same_type':typeof value1===typeof value2};}case'deep_equal':{const {value1:value1,value2:value2,ignore_keys:ignore_keys=[],ignore_order:ignore_order=![]}=_0x120db8;if(value1===undefined||value2===undefined)throw new Error(_0x5e236d(0x2e9));if(ignore_order&&Array[_0x5e236d(0x177)](value1)&&Array[_0x5e236d(0x177)](value2)){if(value1['length']!==value2['length'])return{'equal':![]};const _0x2d2d18=[...value1][_0x5e236d(0x234)](),_0x341627=[...value2][_0x5e236d(0x234)]();return{'equal':areDeepEqual(_0x2d2d18,_0x341627,ignore_keys)};}return{'equal':areDeepEqual(value1,value2,ignore_keys)};}case'shallow_equal':{const {value1:value1,value2:value2}=_0x120db8;if(value1===undefined||value2===undefined)throw new Error(_0x5e236d(0x2e9));return{'equal':value1===value2};}case'similarity_score':{const {string1:_0x2f26d3,string2:_0x1f0c04,case_sensitive:case_sensitive=![]}=_0x120db8;if(!_0x2f26d3||!_0x1f0c04)throw new Error(_0x5e236d(0x217));const _0x486fa6=case_sensitive?_0x2f26d3:String(_0x2f26d3)['toLowerCase'](),_0xa6ad91=case_sensitive?_0x1f0c04:String(_0x1f0c04)[_0x5e236d(0x2c7)]();return{'similarity':levenshteinSimilarity(_0x486fa6,_0xa6ad91)};}case _0x5e236d(0x184):{const {array1:_0x4cf8d6,array2:_0x2bcc99,deep:deep=![],unique:unique=!![]}=_0x120db8;if(!Array['isArray'](_0x4cf8d6)||!Array[_0x5e236d(0x177)](_0x2bcc99))throw new Error(_0x5e236d(0x2be));const _0x326fee=[];for(const _0x4d4917 of _0x4cf8d6){if(_0x2bcc99[_0x5e236d(0x215)](_0x494984=>deep?areDeepEqual(_0x4d4917,_0x494984):_0x4d4917===_0x494984)){if(unique&&!_0x326fee[_0x5e236d(0x215)](_0x71205b=>deep?areDeepEqual(_0x71205b,_0x4d4917):_0x71205b===_0x4d4917))_0x326fee['push'](_0x4d4917);else{if(!unique)_0x326fee[_0x5e236d(0x2a5)](_0x4d4917);}}}return{'intersection':_0x326fee};}case _0x5e236d(0x2d3):{const {array1:_0x1e3a7c,array2:_0x4f5961,deep:deep=![]}=_0x120db8;if(!Array[_0x5e236d(0x177)](_0x1e3a7c)||!Array[_0x5e236d(0x177)](_0x4f5961))throw new Error(_0x5e236d(0x2be));const _0x46db0a=[..._0x1e3a7c];for(const _0x16b356 of _0x4f5961){if(!_0x46db0a[_0x5e236d(0x215)](_0x1f5dcc=>deep?areDeepEqual(_0x1f5dcc,_0x16b356):_0x1f5dcc===_0x16b356))_0x46db0a['push'](_0x16b356);}return{'union':_0x46db0a};}case _0x5e236d(0x2ca):{const {array1:_0xc796e8,array2:_0x3564fd,deep:deep=![]}=_0x120db8;if(!Array[_0x5e236d(0x177)](_0xc796e8)||!Array['isArray'](_0x3564fd))throw new Error(_0x5e236d(0x2be));const _0x1e0598=[];for(const _0x2e9470 of _0xc796e8){if(!_0x3564fd[_0x5e236d(0x215)](_0x1220af=>deep?areDeepEqual(_0x2e9470,_0x1220af):_0x2e9470===_0x1220af))_0x1e0598[_0x5e236d(0x2a5)](_0x2e9470);}return{'difference':_0x1e0598};}default:throw new Error(_0x5e236d(0x2a8)+_0x38fdd6);}}function executeGeo(_0x223794,_0x530efc){const _0x2a859b=_0x2b58c2,_0x2a2f83=_0x11e3a0=>_0x11e3a0*Math['PI']/0xb4,_0x4a33eb=(_0x490644,_0x5b708d,_0x4d63d3,_0x40759b)=>{const _0x32a2d2=_0xa1c4,_0xff1a12=0x18e3,_0x4679ed=_0x2a2f83(_0x4d63d3-_0x490644),_0x207e89=_0x2a2f83(_0x40759b-_0x5b708d),_0x1f2caa=Math[_0x32a2d2(0x203)](_0x4679ed/0x2)*Math[_0x32a2d2(0x203)](_0x4679ed/0x2)+Math[_0x32a2d2(0x1cc)](_0x2a2f83(_0x490644))*Math[_0x32a2d2(0x1cc)](_0x2a2f83(_0x4d63d3))*Math[_0x32a2d2(0x203)](_0x207e89/0x2)*Math[_0x32a2d2(0x203)](_0x207e89/0x2),_0x4e63d3=0x2*Math[_0x32a2d2(0x2f0)](Math[_0x32a2d2(0x195)](_0x1f2caa),Math['sqrt'](0x1-_0x1f2caa));return _0xff1a12*_0x4e63d3;},_0x2c9a8c=(_0x469e50,_0x56a9c0,_0x425021,_0x2cbd98)=>{const _0x21bd59=_0xa1c4,_0x3ac853=0x18e3,_0x1413c0=_0x2a2f83(_0x425021-_0x469e50),_0x3269b5=_0x2a2f83(_0x2cbd98-_0x56a9c0),_0xea8f39=_0x2a2f83((_0x469e50+_0x425021)/0x2),_0x39b579=_0x3269b5*Math['cos'](_0xea8f39),_0x4716b5=_0x1413c0;return _0x3ac853*Math[_0x21bd59(0x195)](_0x39b579*_0x39b579+_0x4716b5*_0x4716b5);},_0x411049={'km':0x1,'miles':0.621371,'meters':0x3e8,'feet':3280.84,'nautical_miles':0.539957};switch(_0x530efc){case'calculate_distance':{const {lat1:_0x1b9ca4,lon1:_0x3f16bb,lat2:_0x12414a,lon2:_0x2c52d9,unit:unit='km',formula:formula='haversine'}=_0x223794;if(_0x1b9ca4===undefined||_0x3f16bb===undefined||_0x12414a===undefined||_0x2c52d9===undefined)throw new Error(_0x2a859b(0x276));const _0x580c06=formula==='equirectangular'?_0x2c9a8c(_0x1b9ca4,_0x3f16bb,_0x12414a,_0x2c52d9):_0x4a33eb(_0x1b9ca4,_0x3f16bb,_0x12414a,_0x2c52d9);return{'distance':_0x580c06*(_0x411049[unit]||0x1),'unit':unit};}case'point_in_polygon':{const {point_lat:_0x4152eb,point_lon:_0x4ad066,polygon:_0xfa0f55,format:format='lat_lon'}=_0x223794;if(_0x4152eb===undefined||_0x4ad066===undefined||!Array[_0x2a859b(0x177)](_0xfa0f55))throw new Error('Point\x20coordinates\x20and\x20polygon\x20array\x20are\x20required');const _0x1aee09=_0xfa0f55['map'](_0x28adf7=>{const _0x3e125c=_0x2a859b;if(format===_0x3e125c(0x293)||format===_0x3e125c(0x2b0))return[_0x28adf7[0x1],_0x28adf7[0x0]];return _0x28adf7;});let _0x4fac37=![];for(let _0x563948=0x0,_0x577a38=_0x1aee09[_0x2a859b(0x266)]-0x1;_0x563948<_0x1aee09[_0x2a859b(0x266)];_0x577a38=_0x563948++){const [_0x896601,_0x8e7c5c]=_0x1aee09[_0x563948],[_0x4cc268,_0x473c92]=_0x1aee09[_0x577a38],_0x4059b3=_0x8e7c5c>_0x4152eb!==_0x473c92>_0x4152eb&&_0x4ad066<(_0x4cc268-_0x896601)*(_0x4152eb-_0x8e7c5c)/(_0x473c92-_0x8e7c5c)+_0x896601;if(_0x4059b3)_0x4fac37=!_0x4fac37;}return{'inside':_0x4fac37};}case _0x2a859b(0x204):{const {points:_0x71d705,format:format='lat_lon',padding:padding=0x0,output_format:output_format=_0x2a859b(0x18f)}=_0x223794;if(!Array[_0x2a859b(0x177)](_0x71d705)||_0x71d705[_0x2a859b(0x266)]===0x0)throw new Error(_0x2a859b(0x2ef));const _0x50f5c8=_0x71d705[_0x2a859b(0x270)](_0x72d371=>format==='lon_lat'?[_0x72d371[0x1],_0x72d371[0x0]]:_0x72d371);let _0x1acc72=_0x50f5c8[0x0][0x0],_0x2f06bb=_0x50f5c8[0x0][0x0],_0x515571=_0x50f5c8[0x0][0x1],_0x114d0c=_0x50f5c8[0x0][0x1];for(const [_0x105fd5,_0x338c82]of _0x50f5c8){_0x1acc72=Math[_0x2a859b(0x25d)](_0x1acc72,_0x105fd5),_0x2f06bb=Math[_0x2a859b(0x19e)](_0x2f06bb,_0x105fd5),_0x515571=Math[_0x2a859b(0x25d)](_0x515571,_0x338c82),_0x114d0c=Math[_0x2a859b(0x19e)](_0x114d0c,_0x338c82);}_0x1acc72-=padding,_0x2f06bb+=padding,_0x515571-=padding,_0x114d0c+=padding;if(output_format==='bounds')return{'north':_0x2f06bb,'south':_0x1acc72,'east':_0x114d0c,'west':_0x515571};if(output_format===_0x2a859b(0x1b7))return{'corners':[[_0x1acc72,_0x515571],[_0x1acc72,_0x114d0c],[_0x2f06bb,_0x114d0c],[_0x2f06bb,_0x515571]]};return{'type':_0x2a859b(0x20d),'coordinates':[[[_0x515571,_0x1acc72],[_0x114d0c,_0x1acc72],[_0x114d0c,_0x2f06bb],[_0x515571,_0x2f06bb],[_0x515571,_0x1acc72]]]};}case _0x2a859b(0x2c2):{const {lat:_0x5a06bf,lon:_0x2af214,provider:provider=_0x2a859b(0x181)}=_0x223794;if(_0x5a06bf===undefined||_0x2af214===undefined)throw new Error(_0x2a859b(0x260));return{'address':'Location\x20at\x20'+_0x5a06bf+',\x20'+_0x2af214,'lat':_0x5a06bf,'lon':_0x2af214,'provider':provider};}case _0x2a859b(0x16f):{const {address:_0x745c3,provider:provider=_0x2a859b(0x181),limit:limit=0x1}=_0x223794;if(!_0x745c3)throw new Error(_0x2a859b(0x249));return{'results':[{'address':_0x745c3,'lat':0x0,'lon':0x0,'provider':provider}],'count':0x1};}case'convert_coordinates':{const {lat:_0x2db5c0,lon:_0x1d2cf8,from_format:from_format='decimal',to_format:to_format='decimal',precision:precision=0x6}=_0x223794;if(_0x2db5c0===undefined||_0x1d2cf8===undefined)throw new Error('Latitude\x20and\x20longitude\x20are\x20required');if(from_format===_0x2a859b(0x22a)&&to_format===_0x2a859b(0x22a))return{'lat':parseFloat(Number(_0x2db5c0)[_0x2a859b(0x29f)](precision)),'lon':parseFloat(Number(_0x1d2cf8)[_0x2a859b(0x29f)](precision))};return{'lat':_0x2db5c0,'lon':_0x1d2cf8,'from_format':from_format,'to_format':to_format,'note':_0x2a859b(0x30a)};}default:throw new Error(_0x2a859b(0x232)+_0x530efc);}}async function executeDateTime(_0x5db1a4,_0x38e2c9){const _0x4df30b=_0x2b58c2,_0x84f06a=(await Promise[_0x4df30b(0x222)]()[_0x4df30b(0x242)](()=>__importStar(require(_0x4df30b(0x1bb)))))[_0x4df30b(0x18b)],_0x5de267=(await Promise[_0x4df30b(0x222)]()['then'](()=>__importStar(require(_0x4df30b(0x20c)))))['default'],_0x4f5d78=(await Promise[_0x4df30b(0x222)]()[_0x4df30b(0x242)](()=>__importStar(require(_0x4df30b(0x300)))))[_0x4df30b(0x18b)],_0x379078=(await Promise[_0x4df30b(0x222)]()['then'](()=>__importStar(require(_0x4df30b(0x28f)))))['default'],_0x4d236a=(await Promise[_0x4df30b(0x222)]()[_0x4df30b(0x242)](()=>__importStar(require('dayjs/plugin/isoWeek'))))['default'],_0x3b977c=(await Promise[_0x4df30b(0x222)]()[_0x4df30b(0x242)](()=>__importStar(require(_0x4df30b(0x2de)))))['default'];_0x84f06a[_0x4df30b(0x1e9)](_0x5de267),_0x84f06a['extend'](_0x4f5d78),_0x84f06a[_0x4df30b(0x1e9)](_0x379078),_0x84f06a[_0x4df30b(0x1e9)](_0x4d236a),_0x84f06a[_0x4df30b(0x1e9)](_0x3b977c);switch(_0x38e2c9){case _0x4df30b(0x2fa):{const {format:format=_0x4df30b(0x1bd),timezone:_0x30365f}=_0x5db1a4;let _0x52c371=_0x84f06a();if(_0x30365f)_0x52c371=_0x52c371['tz'](_0x30365f);return{'date':_0x52c371[_0x4df30b(0x2f9)](format)};}case _0x4df30b(0x29a):{const {format:format=_0x4df30b(0x20a),timezone:_0x568897}=_0x5db1a4;let _0x5bae41=_0x84f06a();if(_0x568897)_0x5bae41=_0x5bae41['tz'](_0x568897);return{'time':_0x5bae41['format'](format)};}case _0x4df30b(0x1d6):{const {format:format=_0x4df30b(0x170),timezone:_0x493486}=_0x5db1a4;let _0xa7a743=_0x84f06a();if(_0x493486)_0xa7a743=_0xa7a743['tz'](_0x493486);return{'datetime':_0xa7a743[_0x4df30b(0x2f9)](format),'iso':_0xa7a743['toISOString']()};}case _0x4df30b(0x2f9):case _0x4df30b(0x2fd):{const {date:_0xe418aa,format:_0xc72567,input_format:_0x498a3b,timezone:_0x277bfe}=_0x5db1a4,value=_0xe418aa??_0x5db1a4['value']??new Date()[_0x4df30b(0x19d)]();if(!_0xc72567)return{'formatted':_0x84f06a(value)[_0x4df30b(0x19d)]()};let _0x50e844=_0x498a3b?_0x84f06a(value,_0x498a3b):_0x84f06a(value);if(_0x277bfe)_0x50e844=_0x50e844['tz'](_0x277bfe);return{'formatted':_0x50e844['format'](_0xc72567)};}case _0x4df30b(0x22d):{const {date_string:_0x150b1f,format:_0xfd00c5,timezone:_0x3d6bf2}=_0x5db1a4;if(!_0x150b1f)throw new Error(_0x4df30b(0x1c5));let _0x142cc4=_0xfd00c5?_0x84f06a(_0x150b1f,_0xfd00c5):_0x84f06a(_0x150b1f);if(_0x3d6bf2)_0x142cc4=_0x142cc4['tz'](_0x3d6bf2);return{'parsed':_0x142cc4['toISOString'](),'timestamp':_0x142cc4[_0x4df30b(0x221)]()};}case _0x4df30b(0x162):{const {date:_0x4b656a,amount:_0x36eb5d,unit:_0x26ace4,format:_0x516a63}=_0x5db1a4;if(!_0x4b656a||_0x36eb5d===undefined||!_0x26ace4)throw new Error(_0x4df30b(0x1e0));let _0xda1e90=_0x84f06a(_0x4b656a)[_0x4df30b(0x202)](_0x36eb5d,_0x26ace4);const _0x20c2d4={'result':_0xda1e90[_0x4df30b(0x19d)]()};if(_0x516a63)_0x20c2d4[_0x4df30b(0x1cb)]=_0xda1e90['format'](_0x516a63);return _0x20c2d4;}case _0x4df30b(0x2e4):{const {date:_0x5a5c79,amount:_0x273bb6,unit:_0x56a70d,format:_0x1772a8}=_0x5db1a4;if(!_0x5a5c79||_0x273bb6===undefined||!_0x56a70d)throw new Error(_0x4df30b(0x1e0));let _0x281ec7=_0x84f06a(_0x5a5c79)[_0x4df30b(0x19f)](_0x273bb6,_0x56a70d);const _0x3ce543={'result':_0x281ec7['toISOString']()};if(_0x1772a8)_0x3ce543['formatted']=_0x281ec7[_0x4df30b(0x2f9)](_0x1772a8);return _0x3ce543;}case _0x4df30b(0x185):{const {date1:_0x206042,date2:_0x290fc5,unit:unit=_0x4df30b(0x1e1),absolute:absolute=![]}=_0x5db1a4;if(!_0x206042||!_0x290fc5)throw new Error(_0x4df30b(0x1e8));let _0x9ce6ec=_0x84f06a(_0x290fc5)[_0x4df30b(0x223)](_0x84f06a(_0x206042),unit);if(absolute)_0x9ce6ec=Math[_0x4df30b(0x2cd)](_0x9ce6ec);return{'difference':_0x9ce6ec,'unit':unit};}case _0x4df30b(0x2ab):{const {date:_0x2a05eb,format:_0x3878df,timezone:_0x4e54d4}=_0x5db1a4;if(!_0x2a05eb)throw new Error('Date\x20is\x20required');let _0x4eaa89=_0x84f06a(_0x2a05eb)[_0x4df30b(0x1f3)]('day');if(_0x4e54d4)_0x4eaa89=_0x4eaa89['tz'](_0x4e54d4);const _0x180bc6={'result':_0x4eaa89['toISOString']()};if(_0x3878df)_0x180bc6[_0x4df30b(0x1cb)]=_0x4eaa89[_0x4df30b(0x2f9)](_0x3878df);return _0x180bc6;}case'end_of_day':{const {date:_0x447d4d,format:_0x6a7602,timezone:_0x51c67d}=_0x5db1a4;if(!_0x447d4d)throw new Error(_0x4df30b(0x294));let _0x3e8d6a=_0x84f06a(_0x447d4d)['endOf'](_0x4df30b(0x1fc));if(_0x51c67d)_0x3e8d6a=_0x3e8d6a['tz'](_0x51c67d);const _0x1f6f87={'result':_0x3e8d6a[_0x4df30b(0x19d)]()};if(_0x6a7602)_0x1f6f87['formatted']=_0x3e8d6a[_0x4df30b(0x2f9)](_0x6a7602);return _0x1f6f87;}case _0x4df30b(0x166):{const {date:_0x2fe832,week_start:week_start=_0x4df30b(0x208),format:_0x4142e7,timezone:_0x5f6c3e}=_0x5db1a4;if(!_0x2fe832)throw new Error(_0x4df30b(0x294));let _0x11e4a9=week_start===_0x4df30b(0x208)?_0x84f06a(_0x2fe832)[_0x4df30b(0x1f3)](_0x4df30b(0x19b)):_0x84f06a(_0x2fe832)[_0x4df30b(0x1f3)](_0x4df30b(0x210));if(_0x5f6c3e)_0x11e4a9=_0x11e4a9['tz'](_0x5f6c3e);const _0xa6c023={'result':_0x11e4a9[_0x4df30b(0x19d)]()};if(_0x4142e7)_0xa6c023[_0x4df30b(0x1cb)]=_0x11e4a9[_0x4df30b(0x2f9)](_0x4142e7);return _0xa6c023;}case _0x4df30b(0x2c4):{const {date:_0x5ae2c0,week_start:week_start=_0x4df30b(0x208),format:_0x526b5f,timezone:_0x276466}=_0x5db1a4;if(!_0x5ae2c0)throw new Error(_0x4df30b(0x294));let _0xb7175f=week_start==='monday'?_0x84f06a(_0x5ae2c0)[_0x4df30b(0x2c9)]('isoWeek'):_0x84f06a(_0x5ae2c0)[_0x4df30b(0x2c9)](_0x4df30b(0x210));if(_0x276466)_0xb7175f=_0xb7175f['tz'](_0x276466);const _0x129f8c={'result':_0xb7175f['toISOString']()};if(_0x526b5f)_0x129f8c[_0x4df30b(0x1cb)]=_0xb7175f[_0x4df30b(0x2f9)](_0x526b5f);return _0x129f8c;}case _0x4df30b(0x2a9):{const {date:_0x25442e,format:_0x145d21,timezone:_0x416097}=_0x5db1a4;if(!_0x25442e)throw new Error(_0x4df30b(0x294));let _0x56659c=_0x84f06a(_0x25442e)[_0x4df30b(0x1f3)]('month');if(_0x416097)_0x56659c=_0x56659c['tz'](_0x416097);const _0x1e1c91={'result':_0x56659c[_0x4df30b(0x19d)]()};if(_0x145d21)_0x1e1c91[_0x4df30b(0x1cb)]=_0x56659c[_0x4df30b(0x2f9)](_0x145d21);return _0x1e1c91;}case _0x4df30b(0x175):{const {date:_0x5277a2,format:_0x420265,timezone:_0x3af29c}=_0x5db1a4;if(!_0x5277a2)throw new Error('Date\x20is\x20required');let _0x16fe76=_0x84f06a(_0x5277a2)[_0x4df30b(0x2c9)](_0x4df30b(0x1a5));if(_0x3af29c)_0x16fe76=_0x16fe76['tz'](_0x3af29c);const _0x3ba33d={'result':_0x16fe76[_0x4df30b(0x19d)]()};if(_0x420265)_0x3ba33d[_0x4df30b(0x1cb)]=_0x16fe76['format'](_0x420265);return _0x3ba33d;}case _0x4df30b(0x29e):{const {date:_0x991b05,format:_0x3a8583,timezone:_0x4758c8}=_0x5db1a4;if(!_0x991b05)throw new Error('Date\x20is\x20required');let _0xdfccb=_0x84f06a(_0x991b05)[_0x4df30b(0x1f3)]('year');if(_0x4758c8)_0xdfccb=_0xdfccb['tz'](_0x4758c8);const _0x43837e={'result':_0xdfccb['toISOString']()};if(_0x3a8583)_0x43837e[_0x4df30b(0x1cb)]=_0xdfccb[_0x4df30b(0x2f9)](_0x3a8583);return _0x43837e;}case _0x4df30b(0x169):{const {date:_0x4a9ce5,format:_0x590ca0,timezone:_0x381aa7}=_0x5db1a4;if(!_0x4a9ce5)throw new Error(_0x4df30b(0x294));let _0x5e6d3d=_0x84f06a(_0x4a9ce5)[_0x4df30b(0x2c9)](_0x4df30b(0x199));if(_0x381aa7)_0x5e6d3d=_0x5e6d3d['tz'](_0x381aa7);const _0x19d59d={'result':_0x5e6d3d[_0x4df30b(0x19d)]()};if(_0x590ca0)_0x19d59d[_0x4df30b(0x1cb)]=_0x5e6d3d['format'](_0x590ca0);return _0x19d59d;}case _0x4df30b(0x281):{const {date:_0x2eb9e9,from_timezone:_0x1bd156,to_timezone:_0xd9589f,format:_0x3e5081}=_0x5db1a4;if(!_0x2eb9e9||!_0xd9589f)throw new Error(_0x4df30b(0x302));let _0x5e5db5=_0x1bd156?_0x84f06a['tz'](_0x2eb9e9,_0x1bd156):_0x84f06a(_0x2eb9e9);_0x5e5db5=_0x5e5db5['tz'](_0xd9589f);const _0x49f79c={'result':_0x5e5db5[_0x4df30b(0x19d)]()};if(_0x3e5081)_0x49f79c[_0x4df30b(0x1cb)]=_0x5e5db5[_0x4df30b(0x2f9)](_0x3e5081);return _0x49f79c;}case'get_timezone':{const {date:_0x2227f5}=_0x5db1a4,_0x11e162=_0x2227f5?_0x84f06a(_0x2227f5):_0x84f06a();return{'timezone':_0x11e162[_0x4df30b(0x2f9)]('z'),'offset':_0x11e162['utcOffset']()};}case _0x4df30b(0x26e):{const {filter:_0x200a18}=_0x5db1a4;let _0x156aa5=_0x84f06a['tz'][_0x4df30b(0x1c0)]();if(_0x200a18)_0x156aa5=_0x156aa5[_0x4df30b(0x2ae)](_0x3a456d=>_0x3a456d[_0x4df30b(0x2c7)]()[_0x4df30b(0x1b9)](_0x200a18[_0x4df30b(0x2c7)]()));return{'timezones':_0x156aa5};}case _0x4df30b(0x1df):{const {year:_0x406488,date:_0x5804a8}=_0x5db1a4,_0x1d7ef1=_0x406488||(_0x5804a8?_0x84f06a(_0x5804a8)[_0x4df30b(0x199)]():_0x84f06a()[_0x4df30b(0x199)]());return{'is_leap_year':_0x84f06a()[_0x4df30b(0x199)](_0x1d7ef1)['isLeapYear'](),'year':_0x1d7ef1};}case'get_unix_timestamp':{const {date:_0x858db1,unit:unit=_0x4df30b(0x1b3)}=_0x5db1a4,_0x1fca0d=_0x858db1?_0x84f06a(_0x858db1):_0x84f06a(),_0x199209=unit===_0x4df30b(0x191)?_0x1fca0d[_0x4df30b(0x221)]():_0x1fca0d[_0x4df30b(0x226)]();return{'timestamp':_0x199209,'unit':unit};}case _0x4df30b(0x220):{const {timestamp:_0x2a3db5,unit:unit=_0x4df30b(0x1b3),format:_0xd14bef,timezone:_0x287059}=_0x5db1a4;if(_0x2a3db5===undefined)throw new Error(_0x4df30b(0x167));let _0x1ba421=unit===_0x4df30b(0x191)?_0x84f06a(_0x2a3db5):_0x84f06a[_0x4df30b(0x226)](_0x2a3db5);if(_0x287059)_0x1ba421=_0x1ba421['tz'](_0x287059);const _0x2af2a0={'result':_0x1ba421[_0x4df30b(0x19d)]()};if(_0xd14bef)_0x2af2a0[_0x4df30b(0x1cb)]=_0x1ba421['format'](_0xd14bef);return _0x2af2a0;}default:{const _0x528cfe=_0x84f06a();return{'datetime':_0x528cfe['format'](_0x4df30b(0x170)),'iso':_0x528cfe[_0x4df30b(0x19d)]()};}}}async function executeUtilityConnector(_0x1b52f0,_0x378cfb,_0x4d0c87,_0x4dd481){const _0xb9c35b=_0x2b58c2,_0x18f1d8=_0x1b52f0['_id']?.['split']('.')['pop']()||_0x1b52f0[_0xb9c35b(0x225)]?.[_0xb9c35b(0x2c6)]('.')[0x1]||_0xb9c35b(0x283),_0x306cf0=_0x4d0c87[_0xb9c35b(0x2f2)]||_0x4d0c87,_0x36663e=_0x378cfb[_0xb9c35b(0x2c6)]('.')[_0xb9c35b(0x1fd)]()||_0x378cfb;let _0x37fc44;if(_0x18f1d8===_0xb9c35b(0x2d9))_0x37fc44=await executeDateTime(_0x306cf0,_0x36663e);else{if(_0x18f1d8==='compare')_0x37fc44=executeCompare(_0x306cf0,_0x36663e);else{if(_0x18f1d8==='geo')_0x37fc44=executeGeo(_0x306cf0,_0x36663e);else{if(_0x18f1d8===_0xb9c35b(0x283))_0x37fc44=(0x0,string_executor_1[_0xb9c35b(0x2a7)])(_0x306cf0,_0x36663e);else{if(_0x18f1d8==='random')_0x37fc44=(0x0,random_executor_1[_0xb9c35b(0x1c8)])(_0x306cf0,_0x36663e);else _0x18f1d8===_0xb9c35b(0x2ce)?_0x37fc44=(0x0,math_executor_1[_0xb9c35b(0x1ba)])(_0x306cf0,_0x36663e):_0x37fc44={'value':_0x306cf0[_0xb9c35b(0x2b7)]??null};}}}}const _0x11eef8=_0x37fc44[_0xb9c35b(0x2b7)]!==undefined?_0x37fc44['value']:_0x37fc44[_0xb9c35b(0x1cb)]!==undefined?_0x37fc44[_0xb9c35b(0x1cb)]:_0x37fc44['datetime']!==undefined?_0x37fc44['datetime']:_0x37fc44['date']!==undefined?_0x37fc44[_0xb9c35b(0x256)]:_0x37fc44['time']!==undefined?_0x37fc44['time']:_0x37fc44;return{'raw':_0x37fc44,'mapped':_0x11eef8};}async function executeEncryptionConnector(_0xd1e6a0,_0x201d56,_0x1873ac,_0x28a69c){const _0x5b2fa6=_0x2b58c2,_0x2e4bba=await Promise[_0x5b2fa6(0x222)]()['then'](()=>__importStar(require('crypto'))),_0x5cc271=_0xd1e6a0[_0x5b2fa6(0x225)]?.['split']('.')[0x0]||_0x5b2fa6(0x2ee),_0x600b87=_0x1873ac['body']||_0x1873ac,_0x53e92e=_0x600b87[_0x5b2fa6(0x26a)]??_0x600b87['value']??_0x600b87[_0x5b2fa6(0x283)]??'',_0x5ca081=typeof _0x53e92e==='string'?_0x53e92e:JSON[_0x5b2fa6(0x17c)](_0x53e92e);let _0x30721e;if(_0x5cc271==='base64'){const _0x2e39c2=_0x201d56[_0x5b2fa6(0x2c6)]('.')[_0x5b2fa6(0x1fd)]()||_0x5b2fa6(0x201);if(_0x2e39c2===_0x5b2fa6(0x201)){const _0xeffed6=_0x600b87[_0x5b2fa6(0x26a)]??_0x53e92e,_0x3f1e63=typeof _0xeffed6===_0x5b2fa6(0x283)?_0xeffed6:JSON[_0x5b2fa6(0x17c)](_0xeffed6);_0x30721e={'value':Buffer[_0x5b2fa6(0x289)](_0x3f1e63,'utf-8')[_0x5b2fa6(0x1ea)](_0x5b2fa6(0x2ee))};}else{const _0x426fed=_0x600b87[_0x5b2fa6(0x1c7)]??_0x600b87['data']??_0x53e92e;_0x30721e={'value':Buffer[_0x5b2fa6(0x289)](String(_0x426fed||''),_0x5b2fa6(0x2ee))[_0x5b2fa6(0x1ea)](_0x5b2fa6(0x213))};}}else{if(_0x5cc271===_0x5b2fa6(0x206)){const _0x3b61cb=_0x600b87[_0x5b2fa6(0x2c5)]||(_0x201d56[_0x5b2fa6(0x1b9)]('.')?_0x201d56[_0x5b2fa6(0x2c6)]('.')[_0x5b2fa6(0x1fd)]():'sha256')||'sha256',_0x2b938a=_0x600b87[_0x5b2fa6(0x1a8)]||_0x5b2fa6(0x1ac),_0x3c15c9=_0x2e4bba[_0x5b2fa6(0x16a)](_0x3b61cb)[_0x5b2fa6(0x1f2)](_0x5ca081)[_0x5b2fa6(0x1b6)](),value=_0x2b938a===_0x5b2fa6(0x2ee)?_0x3c15c9[_0x5b2fa6(0x1ea)]('base64'):_0x3c15c9[_0x5b2fa6(0x1ea)](_0x5b2fa6(0x1ac));_0x30721e={'value':value,'hash':value,'algorithm':_0x3b61cb,'output_format':_0x2b938a};}else{if(_0x5cc271===_0x5b2fa6(0x172))_0x30721e=await executeAes(_0x2e4bba,_0x201d56,_0x600b87,_0x5ca081);else{if(_0x5cc271==='rsa')_0x30721e=await executeRsa(_0x2e4bba,_0x201d56,_0x600b87,_0x5ca081);else{if(_0x5cc271===_0x5b2fa6(0x306))_0x30721e=await executeHmac(_0x2e4bba,_0x201d56,_0x600b87,_0x5ca081);else _0x5cc271==='password'?_0x30721e=await executePassword(_0x201d56,_0x600b87,_0x5ca081):_0x30721e={'value':_0x5ca081};}}}}const _0x52c950=_0x30721e[_0x5b2fa6(0x2b7)]!==undefined?_0x30721e[_0x5b2fa6(0x2b7)]:_0x30721e;return{'raw':_0x30721e,'mapped':_0x52c950};}async function executeAes(_0x62bae9,_0x202543,_0x169f02,_0x303c2b){const _0x1e1c7f=_0x2b58c2,_0x4029ea=_0x202543[_0x1e1c7f(0x2c6)]('.')[_0x1e1c7f(0x1fd)]()||'';if(_0x4029ea===_0x1e1c7f(0x257)){const _0x466334=_0x169f02[_0x1e1c7f(0x1fb)];if(!_0x466334)throw new Error('Key\x20is\x20required\x20for\x20AES\x20encryption');const _0x14f169=_0x169f02[_0x1e1c7f(0x2c5)]||_0x1e1c7f(0x1ef),_0x177ef2=_0x169f02[_0x1e1c7f(0x1a8)]||_0x1e1c7f(0x1ac);let ivBuffer;_0x169f02['iv']?ivBuffer=Buffer[_0x1e1c7f(0x289)](_0x169f02['iv'],'hex'):ivBuffer=_0x62bae9['randomBytes'](0x10);const keyBuffer=Buffer[_0x1e1c7f(0x289)](_0x466334,_0x1e1c7f(0x1d7)),_0x456b86=_0x62bae9[_0x1e1c7f(0x2a6)](_0x14f169,keyBuffer,ivBuffer);let _0x49271b=_0x456b86[_0x1e1c7f(0x1f2)](_0x303c2b,_0x1e1c7f(0x1d7));_0x49271b=Buffer['concat']([_0x49271b,_0x456b86[_0x1e1c7f(0x27e)]()]);const _0x3e362d=_0x177ef2==='base64'?_0x49271b[_0x1e1c7f(0x1ea)](_0x1e1c7f(0x2ee)):_0x49271b[_0x1e1c7f(0x1ea)](_0x1e1c7f(0x1ac));return{'value':_0x3e362d,'encrypted_data':_0x3e362d,'iv':ivBuffer[_0x1e1c7f(0x1ea)](_0x1e1c7f(0x1ac)),'algorithm':_0x14f169,'output_format':_0x177ef2};}if(_0x4029ea===_0x1e1c7f(0x230)){const _0x4a136d=_0x169f02[_0x1e1c7f(0x1fb)],_0x1cc136=_0x169f02[_0x1e1c7f(0x1af)]||_0x303c2b;if(!_0x4a136d)throw new Error('Key\x20is\x20required\x20for\x20AES\x20decryption');if(!_0x1cc136)throw new Error(_0x1e1c7f(0x29d));const _0x1dabef=_0x169f02['algorithm']||'aes-256-cbc',_0x495a2c=_0x169f02[_0x1e1c7f(0x26f)]||_0x1e1c7f(0x1ac),_0x3de27f=_0x169f02['iv'];if(!_0x3de27f&&_0x1dabef[_0x1e1c7f(0x1b9)](_0x1e1c7f(0x23d)))throw new Error('IV\x20is\x20required\x20for\x20CBC\x20decryption');const keyBuffer=Buffer['from'](_0x4a136d,_0x1e1c7f(0x1d7)),ivBuffer=_0x3de27f?Buffer[_0x1e1c7f(0x289)](_0x3de27f,_0x1e1c7f(0x1ac)):_0x62bae9['randomBytes'](0x10),encryptedBuffer=_0x495a2c==='base64'?Buffer['from'](_0x1cc136,_0x1e1c7f(0x2ee)):Buffer['from'](_0x1cc136,_0x1e1c7f(0x1ac)),_0x2a8a64=_0x62bae9[_0x1e1c7f(0x240)](_0x1dabef,keyBuffer,ivBuffer);let _0x636969=_0x2a8a64['update'](encryptedBuffer);return _0x636969=Buffer[_0x1e1c7f(0x1be)]([_0x636969,_0x2a8a64[_0x1e1c7f(0x27e)]()]),{'value':_0x636969[_0x1e1c7f(0x1ea)](_0x1e1c7f(0x1d7)),'decrypted_data':_0x636969[_0x1e1c7f(0x1ea)](_0x1e1c7f(0x1d7)),'algorithm':_0x1dabef};}if(_0x4029ea===_0x1e1c7f(0x22b)){const _0x2da5ee=_0x169f02[_0x1e1c7f(0x25f)]??0x20,_0x2f8881=_0x169f02[_0x1e1c7f(0x1a8)]||'hex',_0x510ac1=_0x62bae9[_0x1e1c7f(0x303)](_0x2da5ee),value=_0x2f8881==='base64'?_0x510ac1[_0x1e1c7f(0x1ea)]('base64'):_0x510ac1[_0x1e1c7f(0x1ea)](_0x1e1c7f(0x1ac));return{'value':value,'key':value,'key_length':_0x2da5ee,'output_format':_0x2f8881};}if(_0x4029ea===_0x1e1c7f(0x239)){const _0x31c209=_0x169f02[_0x1e1c7f(0x266)]??0x10,_0x3f5063=_0x169f02[_0x1e1c7f(0x1a8)]||_0x1e1c7f(0x1ac),_0x1c875b=_0x62bae9['randomBytes'](_0x31c209),value=_0x3f5063===_0x1e1c7f(0x2ee)?_0x1c875b[_0x1e1c7f(0x1ea)]('base64'):_0x1c875b[_0x1e1c7f(0x1ea)](_0x1e1c7f(0x1ac));return{'value':value,'iv':value,'length':_0x31c209,'output_format':_0x3f5063};}return{'value':_0x303c2b};}async function executeRsa(_0x5135ea,_0x2baa20,_0x37f0de,_0x57f7ac){const _0x140e97=_0x2b58c2,_0x48d677=_0x2baa20['split']('.')[_0x140e97(0x1fd)]()||'';if(_0x48d677===_0x140e97(0x254)){const _0x1065e0=_0x37f0de[_0x140e97(0x1bc)]??0x800,_0x505a06=_0x37f0de[_0x140e97(0x297)]||_0x140e97(0x1a4),_0x2a734d=_0x37f0de[_0x140e97(0x308)]||_0x140e97(0x1a4),_0x384595=_0x505a06===_0x140e97(0x1ad)?'pkcs1':'spki',_0x3309f9=_0x2a734d==='pkcs1'?'pkcs1':_0x140e97(0x2aa),{publicKey:_0x33f34d,privateKey:_0x2a25e7}=_0x5135ea[_0x140e97(0x18e)](_0x140e97(0x273),{'modulusLength':_0x1065e0,'publicKeyEncoding':{'type':_0x384595,'format':_0x140e97(0x1a4)},'privateKeyEncoding':{'type':_0x3309f9,'format':_0x140e97(0x1a4)}});return{'value':{'public_key':_0x33f34d,'private_key':_0x2a25e7},'public_key':_0x33f34d,'private_key':_0x2a25e7,'modulus_length':_0x1065e0};}if(_0x48d677===_0x140e97(0x257)){const _0x4cefb9=_0x37f0de[_0x140e97(0x26a)]??_0x57f7ac,_0x323aad=_0x37f0de['public_key'];if(!_0x323aad)throw new Error(_0x140e97(0x161));const _0x199d42=_0x37f0de[_0x140e97(0x267)]||_0x140e97(0x26c),_0xbf981a=_0x37f0de[_0x140e97(0x1a8)]||_0x140e97(0x2ee),_0x33b685=_0x199d42===_0x140e97(0x218)?_0x5135ea[_0x140e97(0x2b6)][_0x140e97(0x218)]:_0x199d42===_0x140e97(0x193)?_0x5135ea[_0x140e97(0x2b6)][_0x140e97(0x193)]:_0x5135ea[_0x140e97(0x2b6)][_0x140e97(0x26c)],_0x1abd37=typeof _0x4cefb9===_0x140e97(0x283)?_0x4cefb9:JSON['stringify'](_0x4cefb9),_0x43959f=_0x5135ea[_0x140e97(0x2db)]({'key':_0x323aad,'padding':_0x33b685},Buffer['from'](_0x1abd37,_0x140e97(0x1d7))),value=_0xbf981a===_0x140e97(0x1ac)?_0x43959f[_0x140e97(0x1ea)]('hex'):_0x43959f[_0x140e97(0x1ea)](_0x140e97(0x2ee));return{'value':value,'encrypted_data':value,'padding':_0x199d42,'output_format':_0xbf981a};}if(_0x48d677==='decrypt'){const _0x9ef90e=_0x37f0de['encrypted_data']??_0x57f7ac,_0x41f710=_0x37f0de[_0x140e97(0x1de)];if(!_0x41f710)throw new Error('Private\x20key\x20is\x20required\x20for\x20RSA\x20decryption');const _0x844e03=_0x37f0de['padding']||_0x140e97(0x26c),_0x2a491d=_0x37f0de['input_format']||'base64',_0x4d7558=_0x844e03==='RSA_PKCS1_PADDING'?_0x5135ea[_0x140e97(0x2b6)][_0x140e97(0x218)]:_0x844e03===_0x140e97(0x193)?_0x5135ea['constants'][_0x140e97(0x193)]:_0x5135ea[_0x140e97(0x2b6)][_0x140e97(0x26c)],encryptedBuffer=_0x2a491d===_0x140e97(0x1ac)?Buffer['from'](_0x9ef90e,_0x140e97(0x1ac)):Buffer[_0x140e97(0x289)](_0x9ef90e,_0x140e97(0x2ee)),_0x3520b7=_0x5135ea[_0x140e97(0x2d5)]({'key':_0x41f710,'padding':_0x4d7558},encryptedBuffer),value=_0x3520b7['toString'](_0x140e97(0x1d7));return{'value':value,'decrypted_data':value,'padding':_0x844e03};}if(_0x48d677===_0x140e97(0x2f1)){const _0x27d496=_0x37f0de[_0x140e97(0x26a)]??_0x57f7ac,_0x1d31b3=_0x37f0de[_0x140e97(0x1de)];if(!_0x1d31b3)throw new Error(_0x140e97(0x261));const _0x4b17f=_0x37f0de[_0x140e97(0x2c5)]||_0x140e97(0x2d2),_0x3329e8=typeof _0x27d496===_0x140e97(0x283)?_0x27d496:JSON[_0x140e97(0x17c)](_0x27d496),_0x1b94b4=_0x5135ea[_0x140e97(0x23b)](_0x4b17f);_0x1b94b4['update'](_0x3329e8);const _0x2e8da2=_0x1b94b4[_0x140e97(0x2f1)](_0x1d31b3,_0x140e97(0x2ee));return{'value':_0x2e8da2,'signature':_0x2e8da2,'algorithm':_0x4b17f};}if(_0x48d677===_0x140e97(0x19c)){const _0x50b85e=_0x37f0de[_0x140e97(0x26a)]??_0x57f7ac,_0xad18f9=_0x37f0de['signature'],_0x1afc02=_0x37f0de[_0x140e97(0x1b4)];if(!_0xad18f9)throw new Error(_0x140e97(0x1ca));if(!_0x1afc02)throw new Error(_0x140e97(0x279));const _0x38031a=_0x37f0de[_0x140e97(0x2c5)]||_0x140e97(0x2d2),_0x4163e0=typeof _0x50b85e==='string'?_0x50b85e:JSON[_0x140e97(0x17c)](_0x50b85e),_0x5c972d=_0x5135ea[_0x140e97(0x231)](_0x38031a);_0x5c972d[_0x140e97(0x1f2)](_0x4163e0);const _0x54be0c=_0x5c972d[_0x140e97(0x19c)](_0x1afc02,_0xad18f9,_0x140e97(0x2ee));return{'value':_0x54be0c,'valid':_0x54be0c,'algorithm':_0x38031a};}return{'value':_0x57f7ac};}async function executeHmac(_0x5352c2,_0x5e6886,_0x290067,_0x198c80){const _0x47bd81=_0x2b58c2,_0x34a4de=_0x5e6886[_0x47bd81(0x2c6)]('.')[_0x47bd81(0x1fd)]()||'',_0x5719c7=_0x290067[_0x47bd81(0x1fb)];if(!_0x5719c7)throw new Error(_0x47bd81(0x1e2));const _0x2391f1=_0x290067[_0x47bd81(0x2c5)]||_0x47bd81(0x2e7),_0x23c915=_0x290067['data']??_0x198c80,_0x5d4d46=typeof _0x23c915===_0x47bd81(0x283)?_0x23c915:JSON[_0x47bd81(0x17c)](_0x23c915);if(_0x34a4de===_0x47bd81(0x189)){const _0x4376b8=_0x290067[_0x47bd81(0x1a8)]||_0x47bd81(0x1ac),_0x29811b=_0x5352c2[_0x47bd81(0x2cb)](_0x2391f1,_0x5719c7);_0x29811b[_0x47bd81(0x1f2)](_0x5d4d46);const _0x105c46=_0x29811b['digest'](),value=_0x4376b8===_0x47bd81(0x2ee)?_0x105c46['toString'](_0x47bd81(0x2ee)):_0x105c46['toString']('hex');return{'value':value,'hmac':value,'algorithm':_0x2391f1,'output_format':_0x4376b8};}if(_0x34a4de===_0x47bd81(0x19c)){const _0x51bd37=_0x290067[_0x47bd81(0x306)];if(!_0x51bd37)throw new Error(_0x47bd81(0x1c4));const _0x24fabf=_0x290067[_0x47bd81(0x26f)]||_0x47bd81(0x1ac),_0x4c72b4=_0x5352c2[_0x47bd81(0x2cb)](_0x2391f1,_0x5719c7);_0x4c72b4[_0x47bd81(0x1f2)](_0x5d4d46);const _0x9f1b3e=_0x4c72b4['digest'](),_0x380534=_0x24fabf==='base64'?_0x9f1b3e[_0x47bd81(0x1ea)]('base64'):_0x9f1b3e[_0x47bd81(0x1ea)](_0x47bd81(0x1ac)),_0x27ff70=_0x380534===_0x51bd37;return{'value':_0x27ff70,'valid':_0x27ff70,'algorithm':_0x2391f1};}return{'value':_0x198c80};}async function executePassword(_0x60b648,_0x128477,_0x2643b4){const _0x10efa1=_0x2b58c2,_0x337aee=await Promise[_0x10efa1(0x222)]()[_0x10efa1(0x242)](()=>__importStar(require(_0x10efa1(0x2eb)))),_0x42d59b=_0x60b648[_0x10efa1(0x2c6)]('.')[_0x10efa1(0x1fd)]()||'',_0x26a2b4=_0x128477[_0x10efa1(0x1c2)]??_0x2643b4,_0x2d4220=_0x128477[_0x10efa1(0x2a0)];if(_0x42d59b===_0x10efa1(0x246)){let _0x54724c;try{_0x54724c=await Promise[_0x10efa1(0x222)]()[_0x10efa1(0x242)](()=>__importStar(require(_0x10efa1(0x2df))));}catch{throw new Error(_0x10efa1(0x288));}const _0x4d6f0d=_0x128477[_0x10efa1(0x24b)]||_0x10efa1(0x265),_0x2d0da8=_0x128477[_0x10efa1(0x179)]??0x10000,_0x1ac70b=_0x128477[_0x10efa1(0x198)]??0x3,_0x57910f=_0x128477[_0x10efa1(0x22e)]??0x4,_0x165ede=_0x2d4220?_0x2d4220+_0x26a2b4:_0x26a2b4,_0x1bae4a=await _0x54724c[_0x10efa1(0x206)](_0x165ede,{'type':_0x4d6f0d===_0x10efa1(0x248)?_0x54724c[_0x10efa1(0x248)]:_0x4d6f0d===_0x10efa1(0x1a9)?_0x54724c[_0x10efa1(0x1a9)]:_0x54724c[_0x10efa1(0x265)],'memoryCost':_0x2d0da8,'timeCost':_0x1ac70b,'parallelism':_0x57910f});return{'value':_0x1bae4a,'hash':_0x1bae4a,'type':_0x4d6f0d,'memoryCost':_0x2d0da8,'timeCost':_0x1ac70b,'parallelism':_0x57910f};}if(_0x42d59b===_0x10efa1(0x16c)){let _0x2b0499;try{_0x2b0499=await Promise[_0x10efa1(0x222)]()[_0x10efa1(0x242)](()=>__importStar(require('argon2')));}catch{throw new Error(_0x10efa1(0x251));}const _0x2163eb=_0x128477['hash'];if(!_0x2163eb)throw new Error(_0x10efa1(0x255));const _0x58ac74=_0x2d4220?_0x2d4220+_0x26a2b4:_0x26a2b4;try{const _0x1f3833=await _0x2b0499[_0x10efa1(0x19c)](_0x2163eb,_0x58ac74);return{'value':_0x1f3833,'valid':_0x1f3833};}catch{return{'value':![],'valid':![]};}}if(_0x42d59b==='pbkdf2_hash'){const _0x451202=_0x128477[_0x10efa1(0x1ae)]??_0x337aee[_0x10efa1(0x303)](0x20)[_0x10efa1(0x1ea)]('hex'),_0x2dc808=_0x128477[_0x10efa1(0x27c)]??0x186a0,_0x3afb9b=_0x128477[_0x10efa1(0x1e7)]??0x40,_0x5ce947=_0x128477[_0x10efa1(0x1b6)]||_0x10efa1(0x2e7),_0x28118e=_0x128477[_0x10efa1(0x1a8)]||_0x10efa1(0x1ac),_0x40cfb9=_0x2d4220?_0x2d4220+_0x26a2b4:_0x26a2b4,_0x38d0ed=_0x337aee[_0x10efa1(0x27a)](_0x40cfb9,_0x451202,_0x2dc808,_0x3afb9b,_0x5ce947),_0x514f74=_0x28118e===_0x10efa1(0x2ee)?_0x38d0ed[_0x10efa1(0x1ea)]('base64'):_0x38d0ed[_0x10efa1(0x1ea)](_0x10efa1(0x1ac));return{'value':_0x514f74,'hash':_0x514f74,'salt':_0x451202,'iterations':_0x2dc808,'keylen':_0x3afb9b,'digest':_0x5ce947,'output_format':_0x28118e};}if(_0x42d59b==='pbkdf2_verify'){const _0x1a55f5=_0x128477['hash'],_0x1ed9ca=_0x128477['salt'];if(!_0x1a55f5||!_0x1ed9ca)throw new Error('Hash\x20and\x20salt\x20are\x20required\x20for\x20PBKDF2\x20verification');const _0x3cc28=_0x128477[_0x10efa1(0x27c)]??0x186a0,_0x315223=_0x128477['keylen']??0x40,_0x46daaa=_0x128477[_0x10efa1(0x1b6)]||_0x10efa1(0x2e7),_0x2389f1=_0x128477[_0x10efa1(0x1a8)]||_0x10efa1(0x1ac),_0xf69855=_0x2d4220?_0x2d4220+_0x26a2b4:_0x26a2b4,_0x107d7b=_0x337aee['pbkdf2Sync'](_0xf69855,_0x1ed9ca,_0x3cc28,_0x315223,_0x46daaa),_0x1897fe=_0x2389f1===_0x10efa1(0x2ee)?_0x107d7b[_0x10efa1(0x1ea)](_0x10efa1(0x2ee)):_0x107d7b[_0x10efa1(0x1ea)](_0x10efa1(0x1ac)),_0x13494e=_0x1897fe===_0x1a55f5;return{'value':_0x13494e,'valid':_0x13494e};}if(_0x42d59b==='scrypt_hash'){const _0x35f975=_0x128477[_0x10efa1(0x1ae)]??_0x337aee[_0x10efa1(0x303)](0x20)[_0x10efa1(0x1ea)](_0x10efa1(0x1ac)),_0x5e2c34=_0x128477[_0x10efa1(0x1e7)]??0x40,_0x14139a=_0x128477['cost']??0x4000,_0x5b10e4=_0x128477['blockSize']??0x8,_0x417e23=_0x128477[_0x10efa1(0x192)]??0x1,_0x1be788=_0x128477['output_format']||'hex',_0x45caf7=_0x2d4220?_0x2d4220+_0x26a2b4:_0x26a2b4,_0x2e936c=_0x337aee[_0x10efa1(0x268)](_0x45caf7,_0x35f975,_0x5e2c34,{'cost':_0x14139a,'blockSize':_0x5b10e4,'maxmem':0x80*_0x14139a*_0x5b10e4}),_0x5d3765=_0x1be788===_0x10efa1(0x2ee)?_0x2e936c[_0x10efa1(0x1ea)](_0x10efa1(0x2ee)):_0x2e936c[_0x10efa1(0x1ea)](_0x10efa1(0x1ac));return{'value':_0x5d3765,'hash':_0x5d3765,'salt':_0x35f975,'keylen':_0x5e2c34,'cost':_0x14139a,'blockSize':_0x5b10e4,'parallelization':_0x417e23,'output_format':_0x1be788};}if(_0x42d59b===_0x10efa1(0x17f)){const _0x4c1d7b=_0x128477[_0x10efa1(0x206)],_0x418676=_0x128477[_0x10efa1(0x1ae)];if(!_0x4c1d7b||!_0x418676)throw new Error('Hash\x20and\x20salt\x20are\x20required\x20for\x20scrypt\x20verification');const _0x5bf95d=_0x128477[_0x10efa1(0x1e7)]??0x40,_0x58dfbd=_0x128477[_0x10efa1(0x1d3)]??0x4000,_0x50ea64=_0x128477['blockSize']??0x8,_0x2ffe7d=_0x128477[_0x10efa1(0x1a8)]||_0x10efa1(0x1ac),_0x3b5082=_0x2d4220?_0x2d4220+_0x26a2b4:_0x26a2b4,_0x40a71c=_0x337aee[_0x10efa1(0x268)](_0x3b5082,_0x418676,_0x5bf95d,{'cost':_0x58dfbd,'blockSize':_0x50ea64,'maxmem':0x80*_0x58dfbd*_0x50ea64}),_0x8c3f29=_0x2ffe7d===_0x10efa1(0x2ee)?_0x40a71c[_0x10efa1(0x1ea)](_0x10efa1(0x2ee)):_0x40a71c[_0x10efa1(0x1ea)](_0x10efa1(0x1ac)),_0x3419a0=_0x8c3f29===_0x4c1d7b;return{'value':_0x3419a0,'valid':_0x3419a0};}if(_0x42d59b===_0x10efa1(0x21b)){let _0x4898d0;try{_0x4898d0=await Promise[_0x10efa1(0x222)]()[_0x10efa1(0x242)](()=>__importStar(require(_0x10efa1(0x244))));}catch{throw new Error(_0x10efa1(0x243));}const _0xfdf6fe=_0x128477[_0x10efa1(0x2e6)]??0xa,_0x290d80=_0x2d4220?_0x2d4220+_0x26a2b4:_0x26a2b4,_0xf6e357=await _0x4898d0[_0x10efa1(0x206)](_0x290d80,_0xfdf6fe);return{'value':_0xf6e357,'hash':_0xf6e357,'rounds':_0xfdf6fe};}if(_0x42d59b===_0x10efa1(0x200)){let _0xe3262f;try{_0xe3262f=await Promise['resolve']()['then'](()=>__importStar(require(_0x10efa1(0x244))));}catch{throw new Error(_0x10efa1(0x227));}const _0x1b4e2c=_0x128477[_0x10efa1(0x206)];if(!_0x1b4e2c)throw new Error(_0x10efa1(0x1b2));const _0x10034d=_0x2d4220?_0x2d4220+_0x26a2b4:_0x26a2b4;try{const _0x1bd5a5=await _0xe3262f[_0x10efa1(0x17a)](_0x10034d,_0x1b4e2c);return{'value':_0x1bd5a5,'valid':_0x1bd5a5};}catch{return{'value':![],'valid':![]};}}if(_0x42d59b===_0x10efa1(0x219)){const _0x34773d=_0x128477['length']??0x20,_0x39a6c8=_0x128477[_0x10efa1(0x1a8)]||'hex',_0x9192d2=_0x337aee['randomBytes'](_0x34773d),value=_0x39a6c8===_0x10efa1(0x2ee)?_0x9192d2['toString'](_0x10efa1(0x2ee)):_0x9192d2[_0x10efa1(0x1ea)](_0x10efa1(0x1ac));return{'value':value,'salt':value,'length':_0x34773d,'output_format':_0x39a6c8};}return{'value':_0x2643b4};}function resolveRegisteredRestActionName(_0x1bd3b2,_0x368796){const _0x1ee605=_0x2b58c2,_0x306105=_0x1bd3b2[_0x1ee605(0x1c1)]||[];if(!_0x306105['length'])return null;if(_0x306105[_0x1ee605(0x215)](_0x4c22e4=>_0x4c22e4[_0x1ee605(0x272)]===_0x368796||_0x4c22e4[_0x1ee605(0x271)]===_0x368796))return _0x368796;const _0x11b900=_0x1bd3b2[_0x1ee605(0x237)];if(_0x11b900&&typeof _0x11b900===_0x1ee605(0x2b1)&&!Array[_0x1ee605(0x177)](_0x11b900)&&Object[_0x1ee605(0x2e8)][_0x1ee605(0x27d)][_0x1ee605(0x205)](_0x11b900,_0x368796)){const _0x378f05=_0x11b900[_0x368796];if(typeof _0x378f05==='string'&&_0x306105[_0x1ee605(0x215)](_0x414a8f=>_0x414a8f['name']===_0x378f05||_0x414a8f['action']===_0x378f05))return _0x378f05;}return null;}async function executeConnectorAction(_0x5b21f2,_0x3b7892,_0x4f0573={},_0x5aa6f6={}){const _0x5900e6=_0x2b58c2,_0x591148=resolveRegisteredRestActionName(_0x5b21f2,_0x3b7892);if(_0x591148&&(_0x5b21f2[_0x5900e6(0x24b)]===_0x5900e6(0x274)||_0x5b21f2['type']==='rest'||_0x5b21f2['endpoints']?.[_0x5900e6(0x266)]))return executeRestConnector(_0x5b21f2,_0x591148,_0x4f0573,_0x5aa6f6);if(typeof _0x5b21f2[_0x5900e6(0x163)]===_0x5900e6(0x24e)){const _0xe22d45=await _0x5b21f2[_0x5900e6(0x163)](_0x3b7892,_0x4f0573,_0x5aa6f6);return{'raw':_0xe22d45,'mapped':_0xe22d45};}const _0x1ee099=_0x5b21f2[_0x5900e6(0x2bd)]?.[_0x5900e6(0x299)];if(_0x1ee099===_0x5900e6(0x286))return executeResponder(_0x5b21f2,_0x4f0573,_0x5aa6f6);if(_0x1ee099==='database')return executeDbConnector(_0x5b21f2,_0x3b7892,_0x4f0573,_0x5aa6f6);if(_0x1ee099===_0x5900e6(0x1ec))return executeAuthConnector(_0x5b21f2,_0x3b7892,_0x4f0573,_0x5aa6f6);if(_0x1ee099==='utility')return executeUtilityConnector(_0x5b21f2,_0x3b7892,_0x4f0573,_0x5aa6f6);if(_0x1ee099==='encryption')return executeEncryptionConnector(_0x5b21f2,_0x3b7892,_0x4f0573,_0x5aa6f6);if(_0x5b21f2['type']===_0x5900e6(0x274)||_0x5b21f2['type']===_0x5900e6(0x296)||_0x5b21f2[_0x5900e6(0x1c1)])return executeRestConnector(_0x5b21f2,_0x3b7892,_0x4f0573,_0x5aa6f6);throw new Error(_0x5900e6(0x298)+(_0x5b21f2[_0x5900e6(0x225)]||_0x5b21f2['id']));}
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.executeConnectorAction = executeConnectorAction;
40
+ const axios_1 = __importDefault(require("axios"));
41
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
42
+ const template_1 = require("../template");
43
+ const registry_1 = require("../connectors/registry");
44
+ const string_executor_1 = require("./utilities/string.executor");
45
+ const math_executor_1 = require("./utilities/math.executor");
46
+ const random_executor_1 = require("./utilities/random.executor");
47
+ async function renderBodyRecursive(val, context) {
48
+ if (val == null)
49
+ return val;
50
+ if (typeof val === "string" && val.includes("{{")) {
51
+ const rendered = await (0, template_1.renderTemplate)(val, context);
52
+ if (typeof rendered === "string" && rendered.startsWith("{") && rendered.endsWith("}")) {
53
+ try {
54
+ return JSON.parse(rendered);
55
+ }
56
+ catch {
57
+ return rendered;
58
+ }
59
+ }
60
+ return rendered;
61
+ }
62
+ if (Array.isArray(val)) {
63
+ return Promise.all(val.map((v) => renderBodyRecursive(v, context)));
64
+ }
65
+ if (typeof val === "object") {
66
+ const out = {};
67
+ for (const k of Object.keys(val)) {
68
+ out[k] = await renderBodyRecursive(val[k], context);
69
+ }
70
+ return out;
71
+ }
72
+ return val;
73
+ }
74
+ function rethrowConnectorHttpError(err) {
75
+ if (axios_1.default.isAxiosError(err)) {
76
+ const res = err.response;
77
+ const data = res?.data;
78
+ const message = (data &&
79
+ typeof data === "object" &&
80
+ ((typeof data.message === "string" && data.message) ||
81
+ (typeof data.error === "string" && data.error))) ||
82
+ err.message ||
83
+ "Request failed";
84
+ const wrapped = new Error(message);
85
+ wrapped.status = res?.status;
86
+ wrapped.response = data;
87
+ wrapped.data = data;
88
+ if (data && typeof data === "object" && typeof data.code === "string") {
89
+ wrapped.code = data.code;
90
+ }
91
+ throw wrapped;
92
+ }
93
+ throw err;
94
+ }
95
+ async function executeResponder(connectorDef, options, context) {
96
+ const id = connectorDef._id || connectorDef.id || "";
97
+ if (id === "raw.responder") {
98
+ const statusCode = options.statusCode ?? 200;
99
+ const contentType = options.contentType || "text/plain";
100
+ let body = options.body ?? "";
101
+ if (body !== undefined && body !== null && typeof body === "string") {
102
+ body = await (0, template_1.renderTemplate)(body, context);
103
+ }
104
+ return { statusCode, headers: { "content-type": contentType }, body, terminate: true };
105
+ }
106
+ if (id === "redirect.responder") {
107
+ const statusCode = options.statusCode ?? 302;
108
+ let location = options.location ?? "";
109
+ if (typeof location === "string")
110
+ location = await (0, template_1.renderTemplate)(location, context);
111
+ return { statusCode, headers: { location }, terminate: true };
112
+ }
113
+ if (id === "empty.responder") {
114
+ const statusCode = options.statusCode ?? 202;
115
+ return { statusCode, terminate: true };
116
+ }
117
+ const statusCode = options.statusCode ?? 200;
118
+ let body = options.body;
119
+ if (body !== undefined && body !== null) {
120
+ body = await renderBodyRecursive(body, context);
121
+ }
122
+ const headers = { "content-type": "application/json" };
123
+ if (options.headers && typeof options.headers === "object") {
124
+ for (const [k, v] of Object.entries(options.headers)) {
125
+ if (typeof v === "string" && v.includes("{{")) {
126
+ headers[k] = await (0, template_1.renderTemplate)(v, context);
127
+ }
128
+ else {
129
+ headers[k] = String(v);
130
+ }
131
+ }
132
+ }
133
+ return { statusCode, headers, body, terminate: true };
134
+ }
135
+ async function executeRestConnector(connectorDef, actionName, options, context) {
136
+ const endpoints = connectorDef.endpoints || [];
137
+ const endpoint = endpoints.find((e) => e.name === actionName || e.action === actionName);
138
+ if (!endpoint)
139
+ throw new Error("Endpoint not found: " + actionName);
140
+ let path = endpoint.path || "";
141
+ const pathParams = { ...(endpoint.pathParams || {}), ...(options.pathParams || {}) };
142
+ for (const k of Object.keys(pathParams)) {
143
+ const val = pathParams[k];
144
+ path = path.replace(new RegExp(`\\{\\{\\s*${k}\\s*\\}\\}|[:{]${k}[}]?`, "g"), encodeURIComponent(String(val)));
145
+ }
146
+ if (path.includes("{{"))
147
+ path = await (0, template_1.renderTemplate)(path, context);
148
+ const base = (connectorDef.base_url || "").replace(/\/+$/, "");
149
+ const url = base + (path.startsWith("/") ? path : "/" + path);
150
+ const params = { ...(endpoint.params || {}), ...(options.params || {}) };
151
+ for (const k of Object.keys(params)) {
152
+ if (typeof params[k] === "string" && params[k].includes("{{")) {
153
+ params[k] = await (0, template_1.renderTemplate)(params[k], context);
154
+ }
155
+ }
156
+ let body = options.body ?? endpoint.body ?? null;
157
+ if (body && typeof body === "object") {
158
+ body = JSON.parse(await (0, template_1.renderTemplate)(JSON.stringify(body), context));
159
+ }
160
+ else if (typeof body === "string" && body.includes("{{")) {
161
+ body = await (0, template_1.renderTemplate)(body, context);
162
+ }
163
+ const headers = { ...(endpoint.headers || {}) };
164
+ const auth = connectorDef.auth || {};
165
+ if (auth.type === "bearer" && auth.token) {
166
+ const headerKey = auth.header_name || "Authorization";
167
+ const prefix = auth.prefix ?? "Bearer ";
168
+ headers[headerKey] = prefix + auth.token;
169
+ }
170
+ if (auth.type === "api_key" && auth.api_key) {
171
+ const key = auth.key_name || "Authorization";
172
+ headers[key] = auth.api_key;
173
+ }
174
+ const optionHeaders = options.headers || {};
175
+ for (const [k, v] of Object.entries(optionHeaders)) {
176
+ if (typeof v === "string" && v.includes("{{")) {
177
+ headers[k] = await (0, template_1.renderTemplate)(v, context);
178
+ }
179
+ else {
180
+ headers[k] = String(v);
181
+ }
182
+ }
183
+ const method = (endpoint.method || "GET").toUpperCase();
184
+ const cfg = {
185
+ method: method.toLowerCase(),
186
+ url,
187
+ params,
188
+ headers,
189
+ timeout: options.timeout || endpoint.timeout_ms || 10000,
190
+ };
191
+ if (body !== null && body !== undefined && method !== "GET") {
192
+ cfg.data = body;
193
+ }
194
+ const connectorConfig = context?.connectorConfig?.[connectorDef._id] || {};
195
+ if (connectorConfig.apiKey && auth.type === "bearer") {
196
+ const headerKey = auth.header_name || "Authorization";
197
+ const prefix = auth.prefix ?? "Bearer ";
198
+ headers[headerKey] = prefix + connectorConfig.apiKey;
199
+ }
200
+ let resp;
201
+ try {
202
+ resp = await (0, axios_1.default)(cfg);
203
+ }
204
+ catch (e) {
205
+ rethrowConnectorHttpError(e);
206
+ }
207
+ const raw = resp.data;
208
+ let mapped;
209
+ if (endpoint.response_mapping && typeof endpoint.response_mapping === "object") {
210
+ mapped = {};
211
+ for (const [outKey, srcPath] of Object.entries(endpoint.response_mapping)) {
212
+ mapped[outKey] = getByPath(raw, srcPath);
213
+ }
214
+ }
215
+ else {
216
+ mapped = raw;
217
+ }
218
+ const responseWarnings = collectRestResponseWarnings(endpoint, mapped, connectorDef, actionName);
219
+ const out = { raw, mapped };
220
+ if (responseWarnings.length)
221
+ out.responseWarnings = responseWarnings;
222
+ return out;
223
+ }
224
+ function getByPath(obj, path) {
225
+ if (!obj || !path)
226
+ return undefined;
227
+ const parts = path.split(".");
228
+ let cur = obj;
229
+ for (const p of parts) {
230
+ if (cur == null)
231
+ return undefined;
232
+ cur = cur[p];
233
+ }
234
+ return cur;
235
+ }
236
+ function collectRestResponseWarnings(endpoint, mapped, connectorDef, actionName) {
237
+ const w = [];
238
+ const cid = connectorDef._id || connectorDef.id || "connector";
239
+ if (endpoint.response_mapping && mapped != null && typeof mapped === "object" && !Array.isArray(mapped)) {
240
+ for (const [outKey, srcPath] of Object.entries(endpoint.response_mapping)) {
241
+ if (!Object.prototype.hasOwnProperty.call(mapped, outKey)) {
242
+ w.push(`response_mapping output "${outKey}" missing from mapped result (path "${String(srcPath)}")`);
243
+ }
244
+ else if (mapped[outKey] === undefined) {
245
+ w.push(`response_mapping output "${outKey}" is undefined; provider JSON may not match path "${String(srcPath)}"`);
246
+ }
247
+ }
248
+ }
249
+ if ((0, registry_1.isTypedConnectorDef)(connectorDef)) {
250
+ const schema = connectorDef.__schemas?.[actionName];
251
+ const sample = schema?.response;
252
+ if (sample != null && typeof sample === "object" && !Array.isArray(sample)) {
253
+ const keys = Object.keys(sample);
254
+ if (keys.length > 0) {
255
+ if (mapped == null || typeof mapped !== "object" || Array.isArray(mapped)) {
256
+ w.push(`typed connector "${cid}" action "${actionName}" expected object response, got ${mapped === null ? "null" : Array.isArray(mapped) ? "array" : typeof mapped}`);
257
+ }
258
+ else {
259
+ for (const k of keys) {
260
+ if (!Object.prototype.hasOwnProperty.call(mapped, k)) {
261
+ w.push(`typed connector "${cid}" expects response key "${k}" but mapped result has no such key`);
262
+ continue;
263
+ }
264
+ const expected = sample[k];
265
+ const actual = mapped[k];
266
+ const expT = expected === null ? "null" : Array.isArray(expected) ? "array" : typeof expected;
267
+ const actT = actual === null ? "null" : Array.isArray(actual) ? "array" : typeof actual;
268
+ if (expT !== actT) {
269
+ w.push(`typed connector "${cid}" response key "${k}" declared as ${expT} but provider returned ${actT}`);
270
+ }
271
+ }
272
+ }
273
+ }
274
+ }
275
+ }
276
+ return w;
277
+ }
278
+ async function executeDbConnector(connectorDef, actionName, options, context) {
279
+ const connectorId = connectorDef._id || connectorDef.id;
280
+ const config = context?.connectorConfig?.[connectorId] || context?.env || {};
281
+ const uri = config.uri || config.MONGO_URI || connectorDef.auth?.uri;
282
+ const database = options.database || config.database || connectorDef.auth?.database;
283
+ if (!uri)
284
+ throw new Error("MongoDB URI not configured for " + connectorId);
285
+ if (connectorId === "mongodb.system") {
286
+ try {
287
+ const { MongoClient } = await Promise.resolve().then(() => __importStar(require("mongodb")));
288
+ const client = new MongoClient(uri);
289
+ await client.connect();
290
+ try {
291
+ const db = client.db(database);
292
+ const collection = options.collection;
293
+ if (!collection)
294
+ throw new Error("collection is required");
295
+ let result;
296
+ switch (actionName) {
297
+ case "insertOne":
298
+ result = await db.collection(collection).insertOne(options.document || {});
299
+ return { raw: result, mapped: { insertedId: result.insertedId, ...result } };
300
+ case "insertMany":
301
+ result = await db.collection(collection).insertMany(options.documents || []);
302
+ return { raw: result, mapped: result };
303
+ case "findOne":
304
+ result = await db.collection(collection).findOne(options.filter || {});
305
+ return { raw: result, mapped: result };
306
+ case "find":
307
+ const cursor = db.collection(collection).find(options.filter || {});
308
+ if (options.limit)
309
+ cursor.limit(options.limit);
310
+ if (options.sort)
311
+ cursor.sort(options.sort);
312
+ result = await cursor.toArray();
313
+ return { raw: result, mapped: result };
314
+ case "updateOne":
315
+ result = await db.collection(collection).updateOne(options.filter || {}, options.update || {});
316
+ return { raw: result, mapped: result };
317
+ case "deleteOne":
318
+ result = await db.collection(collection).deleteOne(options.filter || {});
319
+ return { raw: result, mapped: result };
320
+ default:
321
+ throw new Error("Unsupported MongoDB action: " + actionName);
322
+ }
323
+ }
324
+ finally {
325
+ await client.close();
326
+ }
327
+ }
328
+ catch (e) {
329
+ if (e.code === "ERR_MODULE_NOT_FOUND" || e.message?.includes("mongodb")) {
330
+ throw new Error("mongodb package not installed. Add it as a dependency: npm install mongodb");
331
+ }
332
+ throw e;
333
+ }
334
+ }
335
+ if (connectorId === "mysql.system") {
336
+ try {
337
+ const mysql = await Promise.resolve().then(() => __importStar(require("mysql2/promise")));
338
+ const connConfig = config.uri ? { uri: config.uri } : {
339
+ host: config.host || "localhost",
340
+ user: config.user,
341
+ password: config.password,
342
+ database: config.database || database,
343
+ };
344
+ const conn = config.uri
345
+ ? await mysql.createConnection(config.uri)
346
+ : await mysql.createConnection(connConfig);
347
+ try {
348
+ const [rows] = await conn.execute(options.query || "SELECT 1", options.params);
349
+ return { raw: rows, mapped: rows };
350
+ }
351
+ finally {
352
+ await conn.end();
353
+ }
354
+ }
355
+ catch (e) {
356
+ if (e.code === "ERR_MODULE_NOT_FOUND" || e.message?.includes("mysql2")) {
357
+ throw new Error("mysql2 package not installed. Add it as a dependency: npm install mysql2");
358
+ }
359
+ throw e;
360
+ }
361
+ }
362
+ if (connectorId === "postgres.system") {
363
+ try {
364
+ const { Pool } = await Promise.resolve().then(() => __importStar(require("pg")));
365
+ const poolConfig = config.uri
366
+ ? { connectionString: config.uri }
367
+ : {
368
+ host: config.host || "localhost",
369
+ port: config.port || 5432,
370
+ user: config.username || config.user,
371
+ password: config.password,
372
+ database: config.database || database,
373
+ ssl: config.ssl ? { rejectUnauthorized: false } : undefined,
374
+ };
375
+ const pool = new Pool(poolConfig);
376
+ try {
377
+ const res = await pool.query(options.query || options.sql || "SELECT 1", options.params || []);
378
+ const rows = res.rows;
379
+ const maxRows = options.max_rows ?? 1000;
380
+ return { raw: rows.slice(0, maxRows), mapped: rows.slice(0, maxRows) };
381
+ }
382
+ finally {
383
+ await pool.end();
384
+ }
385
+ }
386
+ catch (e) {
387
+ if (e.code === "ERR_MODULE_NOT_FOUND" || e.message?.includes("pg")) {
388
+ throw new Error("pg package not installed. Add it as a dependency: npm install pg");
389
+ }
390
+ throw e;
391
+ }
392
+ }
393
+ if (connectorId === "redis.system") {
394
+ try {
395
+ const Redis = (await Promise.resolve().then(() => __importStar(require("ioredis")))).default;
396
+ const url = config.uri || config.url;
397
+ if (!url)
398
+ throw new Error("Redis URL not configured for redis.system");
399
+ const client = new Redis(url);
400
+ try {
401
+ const actionMethod = actionName.split(".").pop() || actionName;
402
+ let result;
403
+ switch (actionMethod) {
404
+ case "get": {
405
+ const val = await client.get(options.key);
406
+ if (val === null)
407
+ result = null;
408
+ else {
409
+ try {
410
+ result = JSON.parse(val);
411
+ }
412
+ catch {
413
+ result = val;
414
+ }
415
+ }
416
+ break;
417
+ }
418
+ case "set": {
419
+ const strVal = typeof options.value === "string" ? options.value : JSON.stringify(options.value);
420
+ if (options.ttl && options.ttl > 0)
421
+ await client.setex(options.key, options.ttl, strVal);
422
+ else
423
+ await client.set(options.key, strVal);
424
+ result = { ok: true };
425
+ break;
426
+ }
427
+ case "delete":
428
+ case "delete_key": {
429
+ const n = await client.del(options.key);
430
+ result = { deleted: n > 0, count: n };
431
+ break;
432
+ }
433
+ case "hset": {
434
+ const hv = typeof options.value === "string" ? options.value : JSON.stringify(options.value);
435
+ await client.hset(options.key, options.field, hv);
436
+ result = { ok: true };
437
+ break;
438
+ }
439
+ case "hget": {
440
+ const hv = await client.hget(options.key, options.field);
441
+ if (hv === null)
442
+ result = null;
443
+ else {
444
+ try {
445
+ result = JSON.parse(hv);
446
+ }
447
+ catch {
448
+ result = hv;
449
+ }
450
+ }
451
+ break;
452
+ }
453
+ case "lpush": {
454
+ const lv = typeof options.value === "string" ? options.value : JSON.stringify(options.value);
455
+ await client.lpush(options.key, lv);
456
+ result = { ok: true };
457
+ break;
458
+ }
459
+ case "lpop": {
460
+ result = await client.lpop(options.key);
461
+ break;
462
+ }
463
+ case "zadd": {
464
+ await client.zadd(options.key, options.score, options.member);
465
+ result = { ok: true };
466
+ break;
467
+ }
468
+ case "create_hash": {
469
+ const vals = options.values || {};
470
+ for (const [f, v] of Object.entries(vals)) {
471
+ await client.hset(options.key, f, typeof v === "string" ? v : JSON.stringify(v));
472
+ }
473
+ result = { ok: true };
474
+ break;
475
+ }
476
+ default:
477
+ throw new Error("Unsupported Redis action: " + actionMethod);
478
+ }
479
+ return { raw: result, mapped: result };
480
+ }
481
+ finally {
482
+ await client.quit();
483
+ }
484
+ }
485
+ catch (e) {
486
+ if (e.code === "ERR_MODULE_NOT_FOUND" || e.message?.includes("ioredis")) {
487
+ throw new Error("ioredis package not installed. Add it as a dependency: npm install ioredis");
488
+ }
489
+ throw e;
490
+ }
491
+ }
492
+ throw new Error("Unsupported database connector: " + connectorId);
493
+ }
494
+ function bearerExpiresAtFromExpiresIn(expiresIn) {
495
+ if (typeof expiresIn === "string") {
496
+ const match = expiresIn.match(/^(\d+)([smhd])$/);
497
+ if (match) {
498
+ const value = parseInt(match[1], 10);
499
+ const unit = match[2];
500
+ const multipliers = {
501
+ s: 1000,
502
+ m: 60 * 1000,
503
+ h: 60 * 60 * 1000,
504
+ d: 24 * 60 * 60 * 1000,
505
+ };
506
+ return Date.now() + value * (multipliers[unit] || 1000);
507
+ }
508
+ return null;
509
+ }
510
+ if (typeof expiresIn === "number") {
511
+ return Date.now() + expiresIn * 1000;
512
+ }
513
+ return null;
514
+ }
515
+ async function executeAuthConnector(connectorDef, actionName, options, context) {
516
+ const authType = connectorDef._id?.split(".")[0] || "bearer";
517
+ const opts = options.body || options;
518
+ const tokenFromHeader = context.headers?.authorization?.replace(/^Bearer\s+/i, "");
519
+ const token = opts.token ?? tokenFromHeader ?? context.token;
520
+ const actionMethodRaw = actionName.split(".").pop() || "validate";
521
+ const actionMethod = actionMethodRaw.toLowerCase();
522
+ if (authType === "bearer") {
523
+ if (actionMethod === "create") {
524
+ const headerName = opts.header_name || "Authorization";
525
+ const prefix = opts.prefix ?? "Bearer ";
526
+ const secret = opts.token_secret ?? opts.tokenSecret;
527
+ if (secret) {
528
+ const payload = opts.payload ?? context?.payload ?? {};
529
+ const expiresIn = opts.expires_in ?? opts.expiresIn ?? context?.expiresIn ?? "1h";
530
+ const defaultPayload = {
531
+ sub: payload?.sub ?? payload?.id ?? "workflow",
532
+ iat: Math.floor(Date.now() / 1000),
533
+ ...payload,
534
+ };
535
+ try {
536
+ const signOpts = typeof expiresIn === "number"
537
+ ? { expiresIn }
538
+ : { expiresIn: String(expiresIn) };
539
+ const signed = jsonwebtoken_1.default.sign(defaultPayload, secret, signOpts);
540
+ const expiresAtMs = bearerExpiresAtFromExpiresIn(typeof expiresIn === "number" ? expiresIn : String(expiresIn));
541
+ const expiresAtIso = expiresAtMs != null ? new Date(expiresAtMs).toISOString() : null;
542
+ return {
543
+ ok: true,
544
+ valid: true,
545
+ token: signed,
546
+ token_type: "Bearer",
547
+ expires_in: expiresIn,
548
+ expires_at: expiresAtIso,
549
+ payload: defaultPayload,
550
+ formatted_token: `${prefix}${signed}`,
551
+ auth: {
552
+ type: "bearer",
553
+ header_name: headerName,
554
+ prefix,
555
+ value: `${prefix}${signed}`,
556
+ },
557
+ };
558
+ }
559
+ catch (e) {
560
+ return {
561
+ ok: false,
562
+ valid: false,
563
+ error: e?.message || "Failed to create bearer token",
564
+ message: "Failed to create bearer token",
565
+ };
566
+ }
567
+ }
568
+ const createdToken = opts.token ?? token;
569
+ if (!createdToken) {
570
+ return { valid: false, ok: false, error: "Bearer token not provided", message: "Token is required" };
571
+ }
572
+ const expiresInOpaque = opts.expires_in ?? null;
573
+ return {
574
+ ok: true,
575
+ valid: true,
576
+ token: createdToken,
577
+ auth: {
578
+ type: "bearer",
579
+ header_name: headerName,
580
+ prefix,
581
+ value: `${prefix}${createdToken}`,
582
+ ...(expiresInOpaque != null ? { expires_in: expiresInOpaque } : {}),
583
+ },
584
+ };
585
+ }
586
+ if (actionMethod === "validate") {
587
+ if (!token) {
588
+ return { valid: false, ok: false, error: "Bearer token not provided", message: "Token is required" };
589
+ }
590
+ const validateSecret = opts.token_secret ?? opts.tokenSecret;
591
+ if (validateSecret) {
592
+ try {
593
+ const decoded = jsonwebtoken_1.default.verify(token, validateSecret);
594
+ return {
595
+ valid: true,
596
+ ok: true,
597
+ token,
598
+ decoded,
599
+ payload: decoded,
600
+ message: "Token is valid",
601
+ };
602
+ }
603
+ catch (error) {
604
+ let decodedPayload = null;
605
+ try {
606
+ decodedPayload = jsonwebtoken_1.default.decode(token, { complete: false });
607
+ }
608
+ catch { }
609
+ return {
610
+ valid: false,
611
+ ok: false,
612
+ token: null,
613
+ decoded: decodedPayload,
614
+ payload: decodedPayload,
615
+ error: error?.message || "Token validation failed",
616
+ message: "Token is invalid or expired",
617
+ };
618
+ }
619
+ }
620
+ const requiredPrefix = opts.required_prefix;
621
+ const rawAuthHeader = context.headers?.authorization || "";
622
+ if (requiredPrefix && rawAuthHeader && !rawAuthHeader.startsWith(requiredPrefix)) {
623
+ return { valid: false, ok: false, token, error: "Bearer token prefix mismatch" };
624
+ }
625
+ return { valid: true, ok: true, token, message: "Token accepted" };
626
+ }
627
+ }
628
+ if (authType === "api_key") {
629
+ const keyName = opts.name || "x-api-key";
630
+ const keyFromHeader = context.headers?.[keyName] ?? context.headers?.["x-api-key"];
631
+ const keyFromQuery = context.query?.[keyName] ?? context.params?.[keyName];
632
+ const key = opts.api_key ?? opts.token ?? keyFromHeader ?? keyFromQuery ?? token;
633
+ if (actionMethod === "create") {
634
+ if (!key) {
635
+ return { valid: false, ok: false, error: "API key not provided" };
636
+ }
637
+ const inLocation = opts.in || "header";
638
+ const prefix = opts.prefix || "";
639
+ return {
640
+ valid: true,
641
+ ok: true,
642
+ token: key,
643
+ auth: {
644
+ type: "api_key",
645
+ in: inLocation,
646
+ name: keyName,
647
+ value: `${prefix}${key}`,
648
+ },
649
+ };
650
+ }
651
+ if (!key) {
652
+ return { valid: false, ok: false, error: "API key not provided" };
653
+ }
654
+ return { valid: true, ok: true, token: key, name: keyName };
655
+ }
656
+ if (authType === "basic") {
657
+ const username = opts.username ?? opts.user;
658
+ const password = opts.password;
659
+ if (actionMethod === "create") {
660
+ if (!username || !password) {
661
+ return { valid: false, ok: false, error: "Username and password are required" };
662
+ }
663
+ const value = `Basic ${Buffer.from(`${username}:${password}`).toString("base64")}`;
664
+ return {
665
+ valid: true,
666
+ ok: true,
667
+ auth: { type: "basic", username, value },
668
+ };
669
+ }
670
+ const expectedUsername = opts.expected_username ?? opts.username;
671
+ const expectedPassword = opts.expected_password ?? opts.password;
672
+ const basicHeader = context.headers?.authorization || "";
673
+ let providedUsername = opts.username;
674
+ let providedPassword = opts.password;
675
+ if ((!providedUsername || !providedPassword) && basicHeader.startsWith("Basic ")) {
676
+ try {
677
+ const decoded = Buffer.from(basicHeader.replace(/^Basic\s+/i, ""), "base64").toString("utf8");
678
+ const parts = decoded.split(":");
679
+ providedUsername = providedUsername ?? parts[0];
680
+ providedPassword = providedPassword ?? parts.slice(1).join(":");
681
+ }
682
+ catch { }
683
+ }
684
+ if (expectedUsername && expectedPassword) {
685
+ const isValid = providedUsername === expectedUsername && providedPassword === expectedPassword;
686
+ return { valid: isValid, ok: isValid, username: providedUsername };
687
+ }
688
+ const present = Boolean(providedUsername && providedPassword);
689
+ return { valid: present, ok: present, username: providedUsername };
690
+ }
691
+ if (authType === "custom_header") {
692
+ const headers = (opts.headers || {});
693
+ if (actionMethod === "create") {
694
+ return {
695
+ valid: true,
696
+ ok: true,
697
+ auth: {
698
+ type: "custom_header",
699
+ headers,
700
+ },
701
+ };
702
+ }
703
+ const requiredHeaders = Array.isArray(opts.required_headers) ? opts.required_headers : Object.keys(headers);
704
+ const sourceHeaders = context.headers || {};
705
+ const missing = requiredHeaders.filter((h) => sourceHeaders[h] == null);
706
+ if (missing.length > 0) {
707
+ return { valid: false, ok: false, error: `Missing required headers: ${missing.join(", ")}` };
708
+ }
709
+ return { valid: true, ok: true };
710
+ }
711
+ return { valid: true, ok: true };
712
+ }
713
+ function areDeepEqual(obj1, obj2, ignoreKeys) {
714
+ if (obj1 === obj2)
715
+ return true;
716
+ if (obj1 == null || obj2 == null)
717
+ return false;
718
+ if (typeof obj1 !== typeof obj2)
719
+ return false;
720
+ if (Array.isArray(obj1) && Array.isArray(obj2)) {
721
+ if (obj1.length !== obj2.length)
722
+ return false;
723
+ for (let i = 0; i < obj1.length; i++) {
724
+ if (!areDeepEqual(obj1[i], obj2[i], ignoreKeys))
725
+ return false;
726
+ }
727
+ return true;
728
+ }
729
+ if (typeof obj1 === "object") {
730
+ const keys1 = Object.keys(obj1).filter((k) => !ignoreKeys?.includes(k));
731
+ const keys2 = Object.keys(obj2).filter((k) => !ignoreKeys?.includes(k));
732
+ if (keys1.length !== keys2.length)
733
+ return false;
734
+ for (const key of keys1) {
735
+ if (!keys2.includes(key))
736
+ return false;
737
+ if (!areDeepEqual(obj1[key], obj2[key], ignoreKeys))
738
+ return false;
739
+ }
740
+ return true;
741
+ }
742
+ return false;
743
+ }
744
+ function levenshteinDistance(str1, str2) {
745
+ const matrix = [];
746
+ for (let i = 0; i <= str2.length; i++)
747
+ matrix[i] = [i];
748
+ for (let j = 0; j <= str1.length; j++)
749
+ matrix[0][j] = j;
750
+ for (let i = 1; i <= str2.length; i++) {
751
+ for (let j = 1; j <= str1.length; j++) {
752
+ if (str2.charAt(i - 1) === str1.charAt(j - 1)) {
753
+ matrix[i][j] = matrix[i - 1][j - 1];
754
+ }
755
+ else {
756
+ matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, matrix[i][j - 1] + 1, matrix[i - 1][j] + 1);
757
+ }
758
+ }
759
+ }
760
+ return matrix[str2.length][str1.length];
761
+ }
762
+ function levenshteinSimilarity(str1, str2) {
763
+ const maxLen = Math.max(str1.length, str2.length);
764
+ if (maxLen === 0)
765
+ return 1;
766
+ return 1 - levenshteinDistance(str1, str2) / maxLen;
767
+ }
768
+ function executeCompare(opts, actionMethod) {
769
+ switch (actionMethod) {
770
+ case "diff_objects": {
771
+ const { object1, object2, deep = true, ignore_keys = [], include_added = true, include_removed = true, include_changed = true } = opts;
772
+ if (!object1 || !object2)
773
+ throw new Error("Both objects are required");
774
+ const diff = {};
775
+ const allKeys = new Set([...Object.keys(object1), ...Object.keys(object2)]);
776
+ for (const key of allKeys) {
777
+ if (ignore_keys.includes(key))
778
+ continue;
779
+ const val1 = object1[key];
780
+ const val2 = object2[key];
781
+ const has1 = key in object1;
782
+ const has2 = key in object2;
783
+ if (!has1 && has2 && include_added)
784
+ diff[key] = { type: "added", value: val2 };
785
+ else if (has1 && !has2 && include_removed)
786
+ diff[key] = { type: "removed", value: val1 };
787
+ else if (has1 && has2 && include_changed) {
788
+ const changed = deep ? !areDeepEqual(val1, val2, ignore_keys) : val1 !== val2;
789
+ if (changed)
790
+ diff[key] = { type: "changed", old: val1, new: val2 };
791
+ }
792
+ }
793
+ return { diff, has_changes: Object.keys(diff).length > 0 };
794
+ }
795
+ case "diff_arrays": {
796
+ const { array1, array2, compare_order = false, deep = true, include_added = true, include_removed = true, include_changed = true } = opts;
797
+ if (!Array.isArray(array1) || !Array.isArray(array2))
798
+ throw new Error("Both arrays are required");
799
+ const diff = { added: [], removed: [], changed: [] };
800
+ if (compare_order) {
801
+ const maxLen = Math.max(array1.length, array2.length);
802
+ for (let i = 0; i < maxLen; i++) {
803
+ if (i >= array1.length && include_added)
804
+ diff.added.push({ index: i, value: array2[i] });
805
+ else if (i >= array2.length && include_removed)
806
+ diff.removed.push({ index: i, value: array1[i] });
807
+ else if (include_changed) {
808
+ const changed = deep ? !areDeepEqual(array1[i], array2[i]) : array1[i] !== array2[i];
809
+ if (changed)
810
+ diff.changed.push({ index: i, old: array1[i], new: array2[i] });
811
+ }
812
+ }
813
+ }
814
+ else {
815
+ for (const item of array2) {
816
+ if (!array1.some((a) => (deep ? areDeepEqual(a, item) : a === item)) && include_added)
817
+ diff.added.push({ value: item });
818
+ }
819
+ for (const item of array1) {
820
+ if (!array2.some((a) => (deep ? areDeepEqual(a, item) : a === item)) && include_removed)
821
+ diff.removed.push({ value: item });
822
+ }
823
+ }
824
+ return { diff, has_changes: diff.added.length > 0 || diff.removed.length > 0 || diff.changed.length > 0 };
825
+ }
826
+ case "compare_strings": {
827
+ const { string1, string2, case_sensitive = true, trim = false, method = "exact" } = opts;
828
+ if (string1 === undefined || string2 === undefined)
829
+ throw new Error("Both strings are required");
830
+ let s1 = String(string1);
831
+ let s2 = String(string2);
832
+ if (trim) {
833
+ s1 = s1.trim();
834
+ s2 = s2.trim();
835
+ }
836
+ if (!case_sensitive) {
837
+ s1 = s1.toLowerCase();
838
+ s2 = s2.toLowerCase();
839
+ }
840
+ if (method === "exact")
841
+ return { equal: s1 === s2, similarity: s1 === s2 ? 1 : 0 };
842
+ if (method === "contains")
843
+ return { contains: s1.includes(s2) || s2.includes(s1) };
844
+ if (method === "similarity")
845
+ return { similarity: levenshteinSimilarity(s1, s2) };
846
+ return { equal: s1 === s2 };
847
+ }
848
+ case "compare_numbers": {
849
+ const { number1, number2, tolerance = 0, operator = "==" } = opts;
850
+ if (number1 === undefined || number2 === undefined)
851
+ throw new Error("Both numbers are required");
852
+ const n1 = Number(number1);
853
+ const n2 = Number(number2);
854
+ const diff = Math.abs(n1 - n2);
855
+ let result = false;
856
+ if (operator === "==")
857
+ result = diff <= tolerance;
858
+ else if (operator === "!=")
859
+ result = diff > tolerance;
860
+ else if (operator === ">")
861
+ result = n1 > n2;
862
+ else if (operator === ">=")
863
+ result = n1 >= n2;
864
+ else if (operator === "<")
865
+ result = n1 < n2;
866
+ else if (operator === "<=")
867
+ result = n1 <= n2;
868
+ return { result, difference: diff };
869
+ }
870
+ case "compare_dates": {
871
+ const { date1, date2, operator = "==", tolerance_seconds = 0 } = opts;
872
+ if (!date1 || !date2)
873
+ throw new Error("Both dates are required");
874
+ const d1 = new Date(date1).getTime();
875
+ const d2 = new Date(date2).getTime();
876
+ const diff = Math.abs(d1 - d2) / 1000;
877
+ let result = false;
878
+ if (operator === "==")
879
+ result = diff <= tolerance_seconds;
880
+ else if (operator === "!=")
881
+ result = diff > tolerance_seconds;
882
+ else if (operator === ">")
883
+ result = d1 > d2;
884
+ else if (operator === ">=")
885
+ result = d1 >= d2;
886
+ else if (operator === "<")
887
+ result = d1 < d2;
888
+ else if (operator === "<=")
889
+ result = d1 <= d2;
890
+ return { result, difference_seconds: diff };
891
+ }
892
+ case "is_changed": {
893
+ const { value1, value2, deep = true, ignore_keys = [] } = opts;
894
+ if (value1 === undefined || value2 === undefined)
895
+ throw new Error("Both values are required");
896
+ return { changed: deep ? !areDeepEqual(value1, value2, ignore_keys) : value1 !== value2 };
897
+ }
898
+ case "is_equal": {
899
+ const { value1, value2, deep = true, strict = true, ignore_keys = [] } = opts;
900
+ if (value1 === undefined || value2 === undefined)
901
+ throw new Error("Both values are required");
902
+ if (strict && !deep)
903
+ return { equal: value1 === value2 };
904
+ return { equal: deep ? areDeepEqual(value1, value2, ignore_keys) : value1 == value2 };
905
+ }
906
+ case "is_not_equal": {
907
+ const { value1, value2, deep = true, strict = true, ignore_keys = [] } = opts;
908
+ if (value1 === undefined || value2 === undefined)
909
+ throw new Error("Both values are required");
910
+ if (strict && !deep)
911
+ return { not_equal: value1 !== value2 };
912
+ const equal = deep ? areDeepEqual(value1, value2, ignore_keys) : value1 == value2;
913
+ return { not_equal: !equal };
914
+ }
915
+ case "is_greater_than": {
916
+ const { value1, value2, or_equal = false } = opts;
917
+ if (value1 === undefined || value2 === undefined)
918
+ throw new Error("Both values are required");
919
+ return { result: or_equal ? value1 >= value2 : value1 > value2 };
920
+ }
921
+ case "is_less_than": {
922
+ const { value1, value2, or_equal = false } = opts;
923
+ if (value1 === undefined || value2 === undefined)
924
+ throw new Error("Both values are required");
925
+ return { result: or_equal ? value1 <= value2 : value1 < value2 };
926
+ }
927
+ case "is_between": {
928
+ const { value, min, max, inclusive = true } = opts;
929
+ if (value === undefined || min === undefined || max === undefined)
930
+ throw new Error("Value, min, and max are required");
931
+ return { result: inclusive ? value >= min && value <= max : value > min && value < max };
932
+ }
933
+ case "is_empty": {
934
+ const { value, check_whitespace = true } = opts;
935
+ if (value === undefined)
936
+ throw new Error("Value is required");
937
+ if (value == null)
938
+ return { empty: true };
939
+ if (Array.isArray(value))
940
+ return { empty: value.length === 0 };
941
+ if (typeof value === "object")
942
+ return { empty: Object.keys(value).length === 0 };
943
+ if (typeof value === "string")
944
+ return { empty: check_whitespace ? value.trim().length === 0 : value.length === 0 };
945
+ return { empty: false };
946
+ }
947
+ case "is_null_or_undefined":
948
+ return { is_null_or_undefined: opts.value == null };
949
+ case "is_same_type": {
950
+ const { value1, value2 } = opts;
951
+ if (value1 === undefined || value2 === undefined)
952
+ throw new Error("Both values are required");
953
+ return { same_type: typeof value1 === typeof value2 };
954
+ }
955
+ case "deep_equal": {
956
+ const { value1, value2, ignore_keys = [], ignore_order = false } = opts;
957
+ if (value1 === undefined || value2 === undefined)
958
+ throw new Error("Both values are required");
959
+ if (ignore_order && Array.isArray(value1) && Array.isArray(value2)) {
960
+ if (value1.length !== value2.length)
961
+ return { equal: false };
962
+ const sorted1 = [...value1].sort();
963
+ const sorted2 = [...value2].sort();
964
+ return { equal: areDeepEqual(sorted1, sorted2, ignore_keys) };
965
+ }
966
+ return { equal: areDeepEqual(value1, value2, ignore_keys) };
967
+ }
968
+ case "shallow_equal": {
969
+ const { value1, value2 } = opts;
970
+ if (value1 === undefined || value2 === undefined)
971
+ throw new Error("Both values are required");
972
+ return { equal: value1 === value2 };
973
+ }
974
+ case "similarity_score": {
975
+ const { string1, string2, case_sensitive = false } = opts;
976
+ if (!string1 || !string2)
977
+ throw new Error("Both strings are required");
978
+ const s1 = case_sensitive ? string1 : String(string1).toLowerCase();
979
+ const s2 = case_sensitive ? string2 : String(string2).toLowerCase();
980
+ return { similarity: levenshteinSimilarity(s1, s2) };
981
+ }
982
+ case "array_intersection": {
983
+ const { array1, array2, deep = false, unique = true } = opts;
984
+ if (!Array.isArray(array1) || !Array.isArray(array2))
985
+ throw new Error("Both arrays are required");
986
+ const intersection = [];
987
+ for (const item1 of array1) {
988
+ if (array2.some((item2) => (deep ? areDeepEqual(item1, item2) : item1 === item2))) {
989
+ if (unique && !intersection.some((item) => (deep ? areDeepEqual(item, item1) : item === item1)))
990
+ intersection.push(item1);
991
+ else if (!unique)
992
+ intersection.push(item1);
993
+ }
994
+ }
995
+ return { intersection };
996
+ }
997
+ case "array_union": {
998
+ const { array1, array2, deep = false } = opts;
999
+ if (!Array.isArray(array1) || !Array.isArray(array2))
1000
+ throw new Error("Both arrays are required");
1001
+ const union = [...array1];
1002
+ for (const item2 of array2) {
1003
+ if (!union.some((item) => (deep ? areDeepEqual(item, item2) : item === item2)))
1004
+ union.push(item2);
1005
+ }
1006
+ return { union };
1007
+ }
1008
+ case "array_difference": {
1009
+ const { array1, array2, deep = false } = opts;
1010
+ if (!Array.isArray(array1) || !Array.isArray(array2))
1011
+ throw new Error("Both arrays are required");
1012
+ const difference = [];
1013
+ for (const item1 of array1) {
1014
+ if (!array2.some((item2) => (deep ? areDeepEqual(item1, item2) : item1 === item2)))
1015
+ difference.push(item1);
1016
+ }
1017
+ return { difference };
1018
+ }
1019
+ default:
1020
+ throw new Error("Unsupported compare action: " + actionMethod);
1021
+ }
1022
+ }
1023
+ function executeGeo(opts, actionMethod) {
1024
+ const toRad = (deg) => (deg * Math.PI) / 180;
1025
+ const haversine = (lat1, lon1, lat2, lon2) => {
1026
+ const R = 6371;
1027
+ const dLat = toRad(lat2 - lat1);
1028
+ const dLon = toRad(lon2 - lon1);
1029
+ const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
1030
+ Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) * Math.sin(dLon / 2) * Math.sin(dLon / 2);
1031
+ const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
1032
+ return R * c;
1033
+ };
1034
+ const equirectangular = (lat1, lon1, lat2, lon2) => {
1035
+ const R = 6371;
1036
+ const dLat = toRad(lat2 - lat1);
1037
+ const dLon = toRad(lon2 - lon1);
1038
+ const avgLat = toRad((lat1 + lat2) / 2);
1039
+ const x = dLon * Math.cos(avgLat);
1040
+ const y = dLat;
1041
+ return R * Math.sqrt(x * x + y * y);
1042
+ };
1043
+ const conversions = {
1044
+ km: 1,
1045
+ miles: 0.621371,
1046
+ meters: 1000,
1047
+ feet: 3280.84,
1048
+ nautical_miles: 0.539957,
1049
+ };
1050
+ switch (actionMethod) {
1051
+ case "calculate_distance": {
1052
+ const { lat1, lon1, lat2, lon2, unit = "km", formula = "haversine" } = opts;
1053
+ if (lat1 === undefined || lon1 === undefined || lat2 === undefined || lon2 === undefined)
1054
+ throw new Error("All coordinates (lat1, lon1, lat2, lon2) are required");
1055
+ const distance = formula === "equirectangular" ? equirectangular(lat1, lon1, lat2, lon2) : haversine(lat1, lon1, lat2, lon2);
1056
+ return { distance: distance * (conversions[unit] || 1), unit };
1057
+ }
1058
+ case "point_in_polygon": {
1059
+ const { point_lat, point_lon, polygon, format = "lat_lon" } = opts;
1060
+ if (point_lat === undefined || point_lon === undefined || !Array.isArray(polygon))
1061
+ throw new Error("Point coordinates and polygon array are required");
1062
+ const normalizedPolygon = polygon.map((point) => {
1063
+ if (format === "lon_lat" || format === "geojson")
1064
+ return [point[1], point[0]];
1065
+ return point;
1066
+ });
1067
+ let inside = false;
1068
+ for (let i = 0, j = normalizedPolygon.length - 1; i < normalizedPolygon.length; j = i++) {
1069
+ const [xi, yi] = normalizedPolygon[i];
1070
+ const [xj, yj] = normalizedPolygon[j];
1071
+ const intersect = yi > point_lat !== yj > point_lat && point_lon < ((xj - xi) * (point_lat - yi)) / (yj - yi) + xi;
1072
+ if (intersect)
1073
+ inside = !inside;
1074
+ }
1075
+ return { inside };
1076
+ }
1077
+ case "get_bounding_box": {
1078
+ const { points, format = "lat_lon", padding = 0, output_format = "bounds" } = opts;
1079
+ if (!Array.isArray(points) || points.length === 0)
1080
+ throw new Error("Points array is required and must not be empty");
1081
+ const normalizedPoints = points.map((point) => (format === "lon_lat" ? [point[1], point[0]] : point));
1082
+ let minLat = normalizedPoints[0][0];
1083
+ let maxLat = normalizedPoints[0][0];
1084
+ let minLon = normalizedPoints[0][1];
1085
+ let maxLon = normalizedPoints[0][1];
1086
+ for (const [lat, lon] of normalizedPoints) {
1087
+ minLat = Math.min(minLat, lat);
1088
+ maxLat = Math.max(maxLat, lat);
1089
+ minLon = Math.min(minLon, lon);
1090
+ maxLon = Math.max(maxLon, lon);
1091
+ }
1092
+ minLat -= padding;
1093
+ maxLat += padding;
1094
+ minLon -= padding;
1095
+ maxLon += padding;
1096
+ if (output_format === "bounds")
1097
+ return { north: maxLat, south: minLat, east: maxLon, west: minLon };
1098
+ if (output_format === "corners")
1099
+ return { corners: [[minLat, minLon], [minLat, maxLon], [maxLat, maxLon], [maxLat, minLon]] };
1100
+ return { type: "Polygon", coordinates: [[[minLon, minLat], [maxLon, minLat], [maxLon, maxLat], [minLon, maxLat], [minLon, minLat]]] };
1101
+ }
1102
+ case "reverse_geocode": {
1103
+ const { lat, lon, provider = "nominatim" } = opts;
1104
+ if (lat === undefined || lon === undefined)
1105
+ throw new Error("Latitude and longitude are required");
1106
+ return { address: `Location at ${lat}, ${lon}`, lat, lon, provider };
1107
+ }
1108
+ case "geocode": {
1109
+ const { address, provider = "nominatim", limit = 1 } = opts;
1110
+ if (!address)
1111
+ throw new Error("Address is required");
1112
+ return { results: [{ address, lat: 0, lon: 0, provider }], count: 1 };
1113
+ }
1114
+ case "convert_coordinates": {
1115
+ const { lat, lon, from_format = "decimal", to_format = "decimal", precision = 6 } = opts;
1116
+ if (lat === undefined || lon === undefined)
1117
+ throw new Error("Latitude and longitude are required");
1118
+ if (from_format === "decimal" && to_format === "decimal")
1119
+ return { lat: parseFloat(Number(lat).toFixed(precision)), lon: parseFloat(Number(lon).toFixed(precision)) };
1120
+ return { lat, lon, from_format, to_format, note: "Advanced conversions require additional implementation" };
1121
+ }
1122
+ default:
1123
+ throw new Error("Unsupported geo action: " + actionMethod);
1124
+ }
1125
+ }
1126
+ async function executeDateTime(opts, actionMethod) {
1127
+ const dayjs = (await Promise.resolve().then(() => __importStar(require("dayjs")))).default;
1128
+ const utc = (await Promise.resolve().then(() => __importStar(require("dayjs/plugin/utc")))).default;
1129
+ const timezone = (await Promise.resolve().then(() => __importStar(require("dayjs/plugin/timezone")))).default;
1130
+ const isLeapYear = (await Promise.resolve().then(() => __importStar(require("dayjs/plugin/isLeapYear")))).default;
1131
+ const isoWeek = (await Promise.resolve().then(() => __importStar(require("dayjs/plugin/isoWeek")))).default;
1132
+ const customParseFormat = (await Promise.resolve().then(() => __importStar(require("dayjs/plugin/customParseFormat")))).default;
1133
+ dayjs.extend(utc);
1134
+ dayjs.extend(timezone);
1135
+ dayjs.extend(isLeapYear);
1136
+ dayjs.extend(isoWeek);
1137
+ dayjs.extend(customParseFormat);
1138
+ switch (actionMethod) {
1139
+ case "get_current_date": {
1140
+ const { format = "YYYY-MM-DD", timezone: tz } = opts;
1141
+ let d = dayjs();
1142
+ if (tz)
1143
+ d = d.tz(tz);
1144
+ return { date: d.format(format) };
1145
+ }
1146
+ case "get_current_time": {
1147
+ const { format = "HH:mm:ss", timezone: tz } = opts;
1148
+ let d = dayjs();
1149
+ if (tz)
1150
+ d = d.tz(tz);
1151
+ return { time: d.format(format) };
1152
+ }
1153
+ case "get_current_datetime": {
1154
+ const { format = "YYYY-MM-DD HH:mm:ss", timezone: tz } = opts;
1155
+ let d = dayjs();
1156
+ if (tz)
1157
+ d = d.tz(tz);
1158
+ return { datetime: d.format(format), iso: d.toISOString() };
1159
+ }
1160
+ case "format":
1161
+ case "format_date": {
1162
+ const { date, format, input_format, timezone: tz } = opts;
1163
+ const value = date ?? opts.value ?? new Date().toISOString();
1164
+ if (!format)
1165
+ return { formatted: dayjs(value).toISOString() };
1166
+ let d = input_format ? dayjs(value, input_format) : dayjs(value);
1167
+ if (tz)
1168
+ d = d.tz(tz);
1169
+ return { formatted: d.format(format) };
1170
+ }
1171
+ case "parse_date": {
1172
+ const { date_string, format, timezone: tz } = opts;
1173
+ if (!date_string)
1174
+ throw new Error("Date string is required");
1175
+ let d = format ? dayjs(date_string, format) : dayjs(date_string);
1176
+ if (tz)
1177
+ d = d.tz(tz);
1178
+ return { parsed: d.toISOString(), timestamp: d.valueOf() };
1179
+ }
1180
+ case "add_time": {
1181
+ const { date, amount, unit, format } = opts;
1182
+ if (!date || amount === undefined || !unit)
1183
+ throw new Error("Date, amount, and unit are required");
1184
+ let d = dayjs(date).add(amount, unit);
1185
+ const result = { result: d.toISOString() };
1186
+ if (format)
1187
+ result.formatted = d.format(format);
1188
+ return result;
1189
+ }
1190
+ case "subtract_time": {
1191
+ const { date, amount, unit, format } = opts;
1192
+ if (!date || amount === undefined || !unit)
1193
+ throw new Error("Date, amount, and unit are required");
1194
+ let d = dayjs(date).subtract(amount, unit);
1195
+ const result = { result: d.toISOString() };
1196
+ if (format)
1197
+ result.formatted = d.format(format);
1198
+ return result;
1199
+ }
1200
+ case "diff_between_dates": {
1201
+ const { date1, date2, unit = "days", absolute = false } = opts;
1202
+ if (!date1 || !date2)
1203
+ throw new Error("Both dates are required");
1204
+ let diff = dayjs(date2).diff(dayjs(date1), unit);
1205
+ if (absolute)
1206
+ diff = Math.abs(diff);
1207
+ return { difference: diff, unit };
1208
+ }
1209
+ case "start_of_day": {
1210
+ const { date, format, timezone: tz } = opts;
1211
+ if (!date)
1212
+ throw new Error("Date is required");
1213
+ let d = dayjs(date).startOf("day");
1214
+ if (tz)
1215
+ d = d.tz(tz);
1216
+ const result = { result: d.toISOString() };
1217
+ if (format)
1218
+ result.formatted = d.format(format);
1219
+ return result;
1220
+ }
1221
+ case "end_of_day": {
1222
+ const { date, format, timezone: tz } = opts;
1223
+ if (!date)
1224
+ throw new Error("Date is required");
1225
+ let d = dayjs(date).endOf("day");
1226
+ if (tz)
1227
+ d = d.tz(tz);
1228
+ const result = { result: d.toISOString() };
1229
+ if (format)
1230
+ result.formatted = d.format(format);
1231
+ return result;
1232
+ }
1233
+ case "start_of_week": {
1234
+ const { date, week_start = "monday", format, timezone: tz } = opts;
1235
+ if (!date)
1236
+ throw new Error("Date is required");
1237
+ let d = week_start === "monday" ? dayjs(date).startOf("isoWeek") : dayjs(date).startOf("week");
1238
+ if (tz)
1239
+ d = d.tz(tz);
1240
+ const result = { result: d.toISOString() };
1241
+ if (format)
1242
+ result.formatted = d.format(format);
1243
+ return result;
1244
+ }
1245
+ case "end_of_week": {
1246
+ const { date, week_start = "monday", format, timezone: tz } = opts;
1247
+ if (!date)
1248
+ throw new Error("Date is required");
1249
+ let d = week_start === "monday" ? dayjs(date).endOf("isoWeek") : dayjs(date).endOf("week");
1250
+ if (tz)
1251
+ d = d.tz(tz);
1252
+ const result = { result: d.toISOString() };
1253
+ if (format)
1254
+ result.formatted = d.format(format);
1255
+ return result;
1256
+ }
1257
+ case "start_of_month": {
1258
+ const { date, format, timezone: tz } = opts;
1259
+ if (!date)
1260
+ throw new Error("Date is required");
1261
+ let d = dayjs(date).startOf("month");
1262
+ if (tz)
1263
+ d = d.tz(tz);
1264
+ const result = { result: d.toISOString() };
1265
+ if (format)
1266
+ result.formatted = d.format(format);
1267
+ return result;
1268
+ }
1269
+ case "end_of_month": {
1270
+ const { date, format, timezone: tz } = opts;
1271
+ if (!date)
1272
+ throw new Error("Date is required");
1273
+ let d = dayjs(date).endOf("month");
1274
+ if (tz)
1275
+ d = d.tz(tz);
1276
+ const result = { result: d.toISOString() };
1277
+ if (format)
1278
+ result.formatted = d.format(format);
1279
+ return result;
1280
+ }
1281
+ case "start_of_year": {
1282
+ const { date, format, timezone: tz } = opts;
1283
+ if (!date)
1284
+ throw new Error("Date is required");
1285
+ let d = dayjs(date).startOf("year");
1286
+ if (tz)
1287
+ d = d.tz(tz);
1288
+ const result = { result: d.toISOString() };
1289
+ if (format)
1290
+ result.formatted = d.format(format);
1291
+ return result;
1292
+ }
1293
+ case "end_of_year": {
1294
+ const { date, format, timezone: tz } = opts;
1295
+ if (!date)
1296
+ throw new Error("Date is required");
1297
+ let d = dayjs(date).endOf("year");
1298
+ if (tz)
1299
+ d = d.tz(tz);
1300
+ const result = { result: d.toISOString() };
1301
+ if (format)
1302
+ result.formatted = d.format(format);
1303
+ return result;
1304
+ }
1305
+ case "convert_timezone": {
1306
+ const { date, from_timezone, to_timezone, format } = opts;
1307
+ if (!date || !to_timezone)
1308
+ throw new Error("Date and to_timezone are required");
1309
+ let d = from_timezone ? dayjs.tz(date, from_timezone) : dayjs(date);
1310
+ d = d.tz(to_timezone);
1311
+ const result = { result: d.toISOString() };
1312
+ if (format)
1313
+ result.formatted = d.format(format);
1314
+ return result;
1315
+ }
1316
+ case "get_timezone": {
1317
+ const { date } = opts;
1318
+ const d = date ? dayjs(date) : dayjs();
1319
+ return { timezone: d.format("z"), offset: d.utcOffset() };
1320
+ }
1321
+ case "list_timezones": {
1322
+ const { filter } = opts;
1323
+ let timezones = dayjs.tz.names();
1324
+ if (filter)
1325
+ timezones = timezones.filter((tz) => tz.toLowerCase().includes(filter.toLowerCase()));
1326
+ return { timezones };
1327
+ }
1328
+ case "is_leap_year": {
1329
+ const { year, date } = opts;
1330
+ const y = year || (date ? dayjs(date).year() : dayjs().year());
1331
+ return { is_leap_year: dayjs().year(y).isLeapYear(), year: y };
1332
+ }
1333
+ case "get_unix_timestamp": {
1334
+ const { date, unit = "seconds" } = opts;
1335
+ const d = date ? dayjs(date) : dayjs();
1336
+ const timestamp = unit === "milliseconds" ? d.valueOf() : d.unix();
1337
+ return { timestamp, unit };
1338
+ }
1339
+ case "from_unix_timestamp": {
1340
+ const { timestamp, unit = "seconds", format, timezone: tz } = opts;
1341
+ if (timestamp === undefined)
1342
+ throw new Error("Timestamp is required");
1343
+ let d = unit === "milliseconds" ? dayjs(timestamp) : dayjs.unix(timestamp);
1344
+ if (tz)
1345
+ d = d.tz(tz);
1346
+ const result = { result: d.toISOString() };
1347
+ if (format)
1348
+ result.formatted = d.format(format);
1349
+ return result;
1350
+ }
1351
+ default: {
1352
+ const now = dayjs();
1353
+ return { datetime: now.format("YYYY-MM-DD HH:mm:ss"), iso: now.toISOString() };
1354
+ }
1355
+ }
1356
+ }
1357
+ async function executeUtilityConnector(connectorDef, actionName, options, context) {
1358
+ const utilityType = connectorDef._id?.split(".").pop() || connectorDef._id?.split(".")[1] || "string";
1359
+ const opts = options.body || options;
1360
+ const actionMethod = actionName.split(".").pop() || actionName;
1361
+ let result;
1362
+ if (utilityType === "date_time") {
1363
+ result = await executeDateTime(opts, actionMethod);
1364
+ }
1365
+ else if (utilityType === "compare") {
1366
+ result = executeCompare(opts, actionMethod);
1367
+ }
1368
+ else if (utilityType === "geo") {
1369
+ result = executeGeo(opts, actionMethod);
1370
+ }
1371
+ else if (utilityType === "string") {
1372
+ result = (0, string_executor_1.executeString)(opts, actionMethod);
1373
+ }
1374
+ else if (utilityType === "random") {
1375
+ result = (0, random_executor_1.executeRandom)(opts, actionMethod);
1376
+ }
1377
+ else if (utilityType === "math") {
1378
+ result = (0, math_executor_1.executeMath)(opts, actionMethod);
1379
+ }
1380
+ else {
1381
+ result = { value: opts.value ?? null };
1382
+ }
1383
+ const mapped = result.value !== undefined
1384
+ ? result.value
1385
+ : result.formatted !== undefined
1386
+ ? result.formatted
1387
+ : result.datetime !== undefined
1388
+ ? result.datetime
1389
+ : result.date !== undefined
1390
+ ? result.date
1391
+ : result.time !== undefined
1392
+ ? result.time
1393
+ : result;
1394
+ return { raw: result, mapped };
1395
+ }
1396
+ async function executeEncryptionConnector(connectorDef, actionName, options, context) {
1397
+ const crypto = await Promise.resolve().then(() => __importStar(require("crypto")));
1398
+ const encType = connectorDef._id?.split(".")[0] || "base64";
1399
+ const opts = options.body || options;
1400
+ const data = opts.data ?? opts.value ?? opts.string ?? "";
1401
+ const str = typeof data === "string" ? data : JSON.stringify(data);
1402
+ let result;
1403
+ if (encType === "base64") {
1404
+ const method = actionName.split(".").pop() || "encode";
1405
+ if (method === "encode") {
1406
+ const toEncode = opts.data ?? data;
1407
+ const inputStr = typeof toEncode === "string" ? toEncode : JSON.stringify(toEncode);
1408
+ result = { value: Buffer.from(inputStr, "utf-8").toString("base64") };
1409
+ }
1410
+ else {
1411
+ const encoded = opts.encoded_data ?? opts.data ?? data;
1412
+ result = { value: Buffer.from(String(encoded || ""), "base64").toString("utf-8") };
1413
+ }
1414
+ }
1415
+ else if (encType === "hash") {
1416
+ const algo = opts.algorithm || (actionName.includes(".") ? actionName.split(".").pop() : "sha256") || "sha256";
1417
+ const outFmt = opts.output_format || "hex";
1418
+ const hash = crypto.createHash(algo).update(str).digest();
1419
+ const value = outFmt === "base64" ? hash.toString("base64") : hash.toString("hex");
1420
+ result = { value, hash: value, algorithm: algo, output_format: outFmt };
1421
+ }
1422
+ else if (encType === "aes") {
1423
+ result = await executeAes(crypto, actionName, opts, str);
1424
+ }
1425
+ else if (encType === "rsa") {
1426
+ result = await executeRsa(crypto, actionName, opts, str);
1427
+ }
1428
+ else if (encType === "hmac") {
1429
+ result = await executeHmac(crypto, actionName, opts, str);
1430
+ }
1431
+ else if (encType === "password") {
1432
+ result = await executePassword(actionName, opts, str);
1433
+ }
1434
+ else {
1435
+ result = { value: str };
1436
+ }
1437
+ const mapped = result.value !== undefined ? result.value : result;
1438
+ return { raw: result, mapped };
1439
+ }
1440
+ async function executeAes(crypto, actionName, opts, str) {
1441
+ const action = actionName.split(".").pop() || "";
1442
+ if (action === "encrypt") {
1443
+ const key = opts.key;
1444
+ if (!key)
1445
+ throw new Error("Key is required for AES encryption");
1446
+ const algorithm = opts.algorithm || "aes-256-cbc";
1447
+ const outputFormat = opts.output_format || "hex";
1448
+ let ivBuffer;
1449
+ if (opts.iv) {
1450
+ ivBuffer = Buffer.from(opts.iv, "hex");
1451
+ }
1452
+ else {
1453
+ ivBuffer = crypto.randomBytes(16);
1454
+ }
1455
+ const keyBuffer = Buffer.from(key, "utf8");
1456
+ const cipher = crypto.createCipheriv(algorithm, keyBuffer, ivBuffer);
1457
+ let encrypted = cipher.update(str, "utf8");
1458
+ encrypted = Buffer.concat([encrypted, cipher.final()]);
1459
+ const encryptedData = outputFormat === "base64" ? encrypted.toString("base64") : encrypted.toString("hex");
1460
+ return { value: encryptedData, encrypted_data: encryptedData, iv: ivBuffer.toString("hex"), algorithm, output_format: outputFormat };
1461
+ }
1462
+ if (action === "decrypt") {
1463
+ const key = opts.key;
1464
+ const encryptedData = opts.encrypted_data || str;
1465
+ if (!key)
1466
+ throw new Error("Key is required for AES decryption");
1467
+ if (!encryptedData)
1468
+ throw new Error("Encrypted data is required");
1469
+ const algorithm = opts.algorithm || "aes-256-cbc";
1470
+ const inputFormat = opts.input_format || "hex";
1471
+ const iv = opts.iv;
1472
+ if (!iv && algorithm.includes("cbc"))
1473
+ throw new Error("IV is required for CBC decryption");
1474
+ const keyBuffer = Buffer.from(key, "utf8");
1475
+ const ivBuffer = iv ? Buffer.from(iv, "hex") : crypto.randomBytes(16);
1476
+ const encryptedBuffer = inputFormat === "base64" ? Buffer.from(encryptedData, "base64") : Buffer.from(encryptedData, "hex");
1477
+ const decipher = crypto.createDecipheriv(algorithm, keyBuffer, ivBuffer);
1478
+ let decrypted = decipher.update(encryptedBuffer);
1479
+ decrypted = Buffer.concat([decrypted, decipher.final()]);
1480
+ return { value: decrypted.toString("utf8"), decrypted_data: decrypted.toString("utf8"), algorithm };
1481
+ }
1482
+ if (action === "generate_key") {
1483
+ const keyLength = opts.key_length ?? 32;
1484
+ const outputFormat = opts.output_format || "hex";
1485
+ const key = crypto.randomBytes(keyLength);
1486
+ const value = outputFormat === "base64" ? key.toString("base64") : key.toString("hex");
1487
+ return { value, key: value, key_length: keyLength, output_format: outputFormat };
1488
+ }
1489
+ if (action === "generate_iv") {
1490
+ const length = opts.length ?? 16;
1491
+ const outputFormat = opts.output_format || "hex";
1492
+ const iv = crypto.randomBytes(length);
1493
+ const value = outputFormat === "base64" ? iv.toString("base64") : iv.toString("hex");
1494
+ return { value, iv: value, length, output_format: outputFormat };
1495
+ }
1496
+ return { value: str };
1497
+ }
1498
+ async function executeRsa(crypto, actionName, opts, str) {
1499
+ const action = actionName.split(".").pop() || "";
1500
+ if (action === "generate_keypair") {
1501
+ const modulusLength = opts.modulus_length ?? 2048;
1502
+ const publicKeyFormat = opts.public_key_format || "pem";
1503
+ const privateKeyFormat = opts.private_key_format || "pem";
1504
+ const publicKeyType = publicKeyFormat === "pkcs1" ? "pkcs1" : "spki";
1505
+ const privateKeyType = privateKeyFormat === "pkcs1" ? "pkcs1" : "pkcs8";
1506
+ const { publicKey, privateKey } = crypto.generateKeyPairSync("rsa", {
1507
+ modulusLength,
1508
+ publicKeyEncoding: { type: publicKeyType, format: "pem" },
1509
+ privateKeyEncoding: { type: privateKeyType, format: "pem" },
1510
+ });
1511
+ return { value: { public_key: publicKey, private_key: privateKey }, public_key: publicKey, private_key: privateKey, modulus_length: modulusLength };
1512
+ }
1513
+ if (action === "encrypt") {
1514
+ const data = opts.data ?? str;
1515
+ const publicKey = opts.public_key;
1516
+ if (!publicKey)
1517
+ throw new Error("Public key is required for RSA encryption");
1518
+ const padding = opts.padding || "RSA_PKCS1_OAEP_PADDING";
1519
+ const outputFormat = opts.output_format || "base64";
1520
+ const paddingConst = padding === "RSA_PKCS1_PADDING" ? crypto.constants.RSA_PKCS1_PADDING : padding === "RSA_NO_PADDING" ? crypto.constants.RSA_NO_PADDING : crypto.constants.RSA_PKCS1_OAEP_PADDING;
1521
+ const dataStr = typeof data === "string" ? data : JSON.stringify(data);
1522
+ const encrypted = crypto.publicEncrypt({ key: publicKey, padding: paddingConst }, Buffer.from(dataStr, "utf8"));
1523
+ const value = outputFormat === "hex" ? encrypted.toString("hex") : encrypted.toString("base64");
1524
+ return { value, encrypted_data: value, padding, output_format: outputFormat };
1525
+ }
1526
+ if (action === "decrypt") {
1527
+ const encryptedData = opts.encrypted_data ?? str;
1528
+ const privateKey = opts.private_key;
1529
+ if (!privateKey)
1530
+ throw new Error("Private key is required for RSA decryption");
1531
+ const padding = opts.padding || "RSA_PKCS1_OAEP_PADDING";
1532
+ const inputFormat = opts.input_format || "base64";
1533
+ const paddingConst = padding === "RSA_PKCS1_PADDING" ? crypto.constants.RSA_PKCS1_PADDING : padding === "RSA_NO_PADDING" ? crypto.constants.RSA_NO_PADDING : crypto.constants.RSA_PKCS1_OAEP_PADDING;
1534
+ const encryptedBuffer = inputFormat === "hex" ? Buffer.from(encryptedData, "hex") : Buffer.from(encryptedData, "base64");
1535
+ const decrypted = crypto.privateDecrypt({ key: privateKey, padding: paddingConst }, encryptedBuffer);
1536
+ const value = decrypted.toString("utf8");
1537
+ return { value, decrypted_data: value, padding };
1538
+ }
1539
+ if (action === "sign") {
1540
+ const data = opts.data ?? str;
1541
+ const privateKey = opts.private_key;
1542
+ if (!privateKey)
1543
+ throw new Error("Private key is required for RSA signing");
1544
+ const algorithm = opts.algorithm || "RSA-SHA256";
1545
+ const dataStr = typeof data === "string" ? data : JSON.stringify(data);
1546
+ const sign = crypto.createSign(algorithm);
1547
+ sign.update(dataStr);
1548
+ const signature = sign.sign(privateKey, "base64");
1549
+ return { value: signature, signature, algorithm };
1550
+ }
1551
+ if (action === "verify") {
1552
+ const data = opts.data ?? str;
1553
+ const signature = opts.signature;
1554
+ const publicKey = opts.public_key;
1555
+ if (!signature)
1556
+ throw new Error("Signature is required for RSA verification");
1557
+ if (!publicKey)
1558
+ throw new Error("Public key is required for RSA verification");
1559
+ const algorithm = opts.algorithm || "RSA-SHA256";
1560
+ const dataStr = typeof data === "string" ? data : JSON.stringify(data);
1561
+ const verify = crypto.createVerify(algorithm);
1562
+ verify.update(dataStr);
1563
+ const valid = verify.verify(publicKey, signature, "base64");
1564
+ return { value: valid, valid, algorithm };
1565
+ }
1566
+ return { value: str };
1567
+ }
1568
+ async function executeHmac(crypto, actionName, opts, str) {
1569
+ const action = actionName.split(".").pop() || "";
1570
+ const key = opts.key;
1571
+ if (!key)
1572
+ throw new Error("Key is required for HMAC");
1573
+ const algorithm = opts.algorithm || "sha256";
1574
+ const data = opts.data ?? str;
1575
+ const dataStr = typeof data === "string" ? data : JSON.stringify(data);
1576
+ if (action === "create") {
1577
+ const outputFormat = opts.output_format || "hex";
1578
+ const hmac = crypto.createHmac(algorithm, key);
1579
+ hmac.update(dataStr);
1580
+ const hmacValue = hmac.digest();
1581
+ const value = outputFormat === "base64" ? hmacValue.toString("base64") : hmacValue.toString("hex");
1582
+ return { value, hmac: value, algorithm, output_format: outputFormat };
1583
+ }
1584
+ if (action === "verify") {
1585
+ const providedHmac = opts.hmac;
1586
+ if (!providedHmac)
1587
+ throw new Error("HMAC is required for verification");
1588
+ const inputFormat = opts.input_format || "hex";
1589
+ const hmac = crypto.createHmac(algorithm, key);
1590
+ hmac.update(dataStr);
1591
+ const computedHash = hmac.digest();
1592
+ const computedHmac = inputFormat === "base64" ? computedHash.toString("base64") : computedHash.toString("hex");
1593
+ const valid = computedHmac === providedHmac;
1594
+ return { value: valid, valid, algorithm };
1595
+ }
1596
+ return { value: str };
1597
+ }
1598
+ async function executePassword(actionName, opts, str) {
1599
+ const crypto = await Promise.resolve().then(() => __importStar(require("crypto")));
1600
+ const action = actionName.split(".").pop() || "";
1601
+ const password = opts.password ?? str;
1602
+ const pepper = opts.pepper;
1603
+ if (action === "argon2_hash") {
1604
+ let argon2;
1605
+ try {
1606
+ argon2 = await Promise.resolve().then(() => __importStar(require("argon2")));
1607
+ }
1608
+ catch {
1609
+ throw new Error("argon2 package is required for argon2_hash. Install with: npm install argon2");
1610
+ }
1611
+ const type = opts.type || "argon2id";
1612
+ const memoryCost = opts.memoryCost ?? 65536;
1613
+ const timeCost = opts.timeCost ?? 3;
1614
+ const parallelism = opts.parallelism ?? 4;
1615
+ const passwordWithPepper = pepper ? pepper + password : password;
1616
+ const hash = await argon2.hash(passwordWithPepper, {
1617
+ type: type === "argon2i" ? argon2.argon2i : type === "argon2d" ? argon2.argon2d : argon2.argon2id,
1618
+ memoryCost,
1619
+ timeCost,
1620
+ parallelism,
1621
+ });
1622
+ return { value: hash, hash, type, memoryCost, timeCost, parallelism };
1623
+ }
1624
+ if (action === "argon2_verify") {
1625
+ let argon2;
1626
+ try {
1627
+ argon2 = await Promise.resolve().then(() => __importStar(require("argon2")));
1628
+ }
1629
+ catch {
1630
+ throw new Error("argon2 package is required for argon2_verify. Install with: npm install argon2");
1631
+ }
1632
+ const hash = opts.hash;
1633
+ if (!hash)
1634
+ throw new Error("Hash is required for argon2 verification");
1635
+ const passwordWithPepper = pepper ? pepper + password : password;
1636
+ try {
1637
+ const valid = await argon2.verify(hash, passwordWithPepper);
1638
+ return { value: valid, valid };
1639
+ }
1640
+ catch {
1641
+ return { value: false, valid: false };
1642
+ }
1643
+ }
1644
+ if (action === "pbkdf2_hash") {
1645
+ const salt = opts.salt ?? crypto.randomBytes(32).toString("hex");
1646
+ const iterations = opts.iterations ?? 100000;
1647
+ const keylen = opts.keylen ?? 64;
1648
+ const digest = opts.digest || "sha256";
1649
+ const outputFormat = opts.output_format || "hex";
1650
+ const passwordWithPepper = pepper ? pepper + password : password;
1651
+ const derivedKey = crypto.pbkdf2Sync(passwordWithPepper, salt, iterations, keylen, digest);
1652
+ const hash = outputFormat === "base64" ? derivedKey.toString("base64") : derivedKey.toString("hex");
1653
+ return { value: hash, hash, salt, iterations, keylen, digest, output_format: outputFormat };
1654
+ }
1655
+ if (action === "pbkdf2_verify") {
1656
+ const hash = opts.hash;
1657
+ const salt = opts.salt;
1658
+ if (!hash || !salt)
1659
+ throw new Error("Hash and salt are required for PBKDF2 verification");
1660
+ const iterations = opts.iterations ?? 100000;
1661
+ const keylen = opts.keylen ?? 64;
1662
+ const digest = opts.digest || "sha256";
1663
+ const outputFormat = opts.output_format || "hex";
1664
+ const passwordWithPepper = pepper ? pepper + password : password;
1665
+ const derivedKey = crypto.pbkdf2Sync(passwordWithPepper, salt, iterations, keylen, digest);
1666
+ const computedHash = outputFormat === "base64" ? derivedKey.toString("base64") : derivedKey.toString("hex");
1667
+ const valid = computedHash === hash;
1668
+ return { value: valid, valid };
1669
+ }
1670
+ if (action === "scrypt_hash") {
1671
+ const salt = opts.salt ?? crypto.randomBytes(32).toString("hex");
1672
+ const keylen = opts.keylen ?? 64;
1673
+ const cost = opts.cost ?? 16384;
1674
+ const blockSize = opts.blockSize ?? 8;
1675
+ const parallelization = opts.parallelization ?? 1;
1676
+ const outputFormat = opts.output_format || "hex";
1677
+ const passwordWithPepper = pepper ? pepper + password : password;
1678
+ const derivedKey = crypto.scryptSync(passwordWithPepper, salt, keylen, { cost, blockSize, maxmem: 128 * cost * blockSize });
1679
+ const hash = outputFormat === "base64" ? derivedKey.toString("base64") : derivedKey.toString("hex");
1680
+ return { value: hash, hash, salt, keylen, cost, blockSize, parallelization, output_format: outputFormat };
1681
+ }
1682
+ if (action === "scrypt_verify") {
1683
+ const hash = opts.hash;
1684
+ const salt = opts.salt;
1685
+ if (!hash || !salt)
1686
+ throw new Error("Hash and salt are required for scrypt verification");
1687
+ const keylen = opts.keylen ?? 64;
1688
+ const cost = opts.cost ?? 16384;
1689
+ const blockSize = opts.blockSize ?? 8;
1690
+ const outputFormat = opts.output_format || "hex";
1691
+ const passwordWithPepper = pepper ? pepper + password : password;
1692
+ const derivedKey = crypto.scryptSync(passwordWithPepper, salt, keylen, { cost, blockSize, maxmem: 128 * cost * blockSize });
1693
+ const computedHash = outputFormat === "base64" ? derivedKey.toString("base64") : derivedKey.toString("hex");
1694
+ const valid = computedHash === hash;
1695
+ return { value: valid, valid };
1696
+ }
1697
+ if (action === "bcrypt_hash") {
1698
+ let bcrypt;
1699
+ try {
1700
+ bcrypt = await Promise.resolve().then(() => __importStar(require("bcrypt")));
1701
+ }
1702
+ catch {
1703
+ throw new Error("bcrypt package is required for bcrypt_hash. Install with: npm install bcrypt");
1704
+ }
1705
+ const rounds = opts.rounds ?? 10;
1706
+ const passwordWithPepper = pepper ? pepper + password : password;
1707
+ const hash = await bcrypt.hash(passwordWithPepper, rounds);
1708
+ return { value: hash, hash, rounds };
1709
+ }
1710
+ if (action === "bcrypt_verify") {
1711
+ let bcrypt;
1712
+ try {
1713
+ bcrypt = await Promise.resolve().then(() => __importStar(require("bcrypt")));
1714
+ }
1715
+ catch {
1716
+ throw new Error("bcrypt package is required for bcrypt_verify. Install with: npm install bcrypt");
1717
+ }
1718
+ const hash = opts.hash;
1719
+ if (!hash)
1720
+ throw new Error("Hash is required for bcrypt verification");
1721
+ const passwordWithPepper = pepper ? pepper + password : password;
1722
+ try {
1723
+ const valid = await bcrypt.compare(passwordWithPepper, hash);
1724
+ return { value: valid, valid };
1725
+ }
1726
+ catch {
1727
+ return { value: false, valid: false };
1728
+ }
1729
+ }
1730
+ if (action === "generate_salt") {
1731
+ const length = opts.length ?? 32;
1732
+ const outputFormat = opts.output_format || "hex";
1733
+ const salt = crypto.randomBytes(length);
1734
+ const value = outputFormat === "base64" ? salt.toString("base64") : salt.toString("hex");
1735
+ return { value, salt: value, length, output_format: outputFormat };
1736
+ }
1737
+ return { value: str };
1738
+ }
1739
+ function resolveRegisteredRestActionName(connectorDef, actionName) {
1740
+ const endpoints = connectorDef.endpoints || [];
1741
+ if (!endpoints.length)
1742
+ return null;
1743
+ if (endpoints.some((e) => e.name === actionName || e.action === actionName)) {
1744
+ return actionName;
1745
+ }
1746
+ const actions = connectorDef.actions;
1747
+ if (actions && typeof actions === "object" && !Array.isArray(actions) && Object.prototype.hasOwnProperty.call(actions, actionName)) {
1748
+ const mapped = actions[actionName];
1749
+ if (typeof mapped === "string" &&
1750
+ endpoints.some((e) => e.name === mapped || e.action === mapped)) {
1751
+ return mapped;
1752
+ }
1753
+ }
1754
+ return null;
1755
+ }
1756
+ async function executeConnectorAction(connectorDef, actionName, options = {}, context = {}) {
1757
+ const restActionName = resolveRegisteredRestActionName(connectorDef, actionName);
1758
+ if (restActionName &&
1759
+ (connectorDef.type === "REST" || connectorDef.type === "rest" || connectorDef.endpoints?.length)) {
1760
+ return executeRestConnector(connectorDef, restActionName, options, context);
1761
+ }
1762
+ if (typeof connectorDef.execute === "function") {
1763
+ const result = await connectorDef.execute(actionName, options, context);
1764
+ return { raw: result, mapped: result };
1765
+ }
1766
+ const category = connectorDef.meta?.category;
1767
+ if (category === "responder") {
1768
+ return executeResponder(connectorDef, options, context);
1769
+ }
1770
+ if (category === "database") {
1771
+ return executeDbConnector(connectorDef, actionName, options, context);
1772
+ }
1773
+ if (category === "authentication") {
1774
+ return executeAuthConnector(connectorDef, actionName, options, context);
1775
+ }
1776
+ if (category === "utility") {
1777
+ return executeUtilityConnector(connectorDef, actionName, options, context);
1778
+ }
1779
+ if (category === "encryption") {
1780
+ return executeEncryptionConnector(connectorDef, actionName, options, context);
1781
+ }
1782
+ if (connectorDef.type === "REST" || connectorDef.type === "rest" || connectorDef.endpoints) {
1783
+ return executeRestConnector(connectorDef, actionName, options, context);
1784
+ }
1785
+ throw new Error("Unsupported connector: " + (connectorDef._id || connectorDef.id));
1786
+ }