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,153 @@
1
- 'use strict';const _0x4781c0=_0x2fc3;function _0x38e6(){const _0x3b596e=['x19LC01VzhvSzq','ChjLy2LZAw9U','tNvTyMvYigLZihjLCxvPCMvK','Bwf4','CgvYy2vUDgfNzv9VzG','CMfUzg9Tx2jLDhDLzw4','mtyWmZC1ogXlzKHzBG','Dg9gAxHLza','DMfSDwu','y2XHBxa','AxnbCNjHEq','BNvTyMvYCW','nLn5v1nrCW','zMXVB3i','oduXmZvwuKjRB2G','zgvMAw5LuhjVCgvYDhK','C3vT','rgL2AxnPB24GyNKGEMvYBYbPCYbUB3qGywXSB3DLza','zgL2AwrL','vMfSDwuGyw5KihrVDgfSigfYzsbYzxf1AxjLza','C3vIDhjHy3q','ywjZ','y2vPBa','tNvTyMvYCYbHCNjHEsbPCYbYzxf1AxjLza','BgvUz3rO','odu1twvUs1vn','q2fUBM90ignHBgn1Bgf0zsbZCxvHCMuGCM9VDcbVzIbUzwDHDgL2zsbUDw1Izxi','CM91BMq','mtrYB1r6EM8','C3fYDa','BwLU','Cg93','otuXmJrOthrSC3a','tNvTyMvYCYbHCNjHEsbPCYbYzxf1AxjLzcbHBMqGBxvZDcbUB3qGyMuGzw1WDhK','Bg9N','mtC4mJmZnJz1whfYChu','ndr0Dg5VD2e','zgL2AwrLBMq','CMvKDwnL','yxzLCMfNzq','BxvSDgLWBhK','ywrK','mJrZrNHNqNG','zxHLy3v0zu1HDgG','rgL2AwrLBMqGyw5KigrPDMLZB3iGyxjLihjLCxvPCMvK','Cg93zxi','mZu5mZbMvfPMwuC','oda3mte2mePvB3bZrW','nJyYnJm3B0jqu1zf','BwfW'];_0x38e6=function(){return _0x3b596e;};return _0x38e6();}(function(_0x272acf,_0x185c0e){const _0x585731=_0x2fc3,_0x456cab=_0x272acf();while(!![]){try{const _0x25a2c2=-parseInt(_0x585731(0x1a3))/0x1+-parseInt(_0x585731(0x18f))/0x2*(parseInt(_0x585731(0x1b3))/0x3)+-parseInt(_0x585731(0x1a7))/0x4*(-parseInt(_0x585731(0x191))/0x5)+-parseInt(_0x585731(0x189))/0x6*(parseInt(_0x585731(0x19f))/0x7)+-parseInt(_0x585731(0x1b2))/0x8+-parseInt(_0x585731(0x19c))/0x9*(parseInt(_0x585731(0x1b1))/0xa)+parseInt(_0x585731(0x1a6))/0xb*(parseInt(_0x585731(0x1ad))/0xc);if(_0x25a2c2===_0x185c0e)break;else _0x456cab['push'](_0x456cab['shift']());}catch(_0x8b659d){_0x456cab['push'](_0x456cab['shift']());}}}(_0x38e6,0xbfbb4));function _0x2fc3(_0x383946,_0x5c0619){_0x383946=_0x383946-0x184;const _0x38e656=_0x38e6();let _0x2fc35f=_0x38e656[_0x383946];if(_0x2fc3['IGyMiH']===undefined){var _0x3333f1=function(_0x37c0ca){const _0x571777='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x153bbc='',_0x4b5a23='';for(let _0x5f48dd=0x0,_0x161a23,_0x28fdb9,_0x4db872=0x0;_0x28fdb9=_0x37c0ca['charAt'](_0x4db872++);~_0x28fdb9&&(_0x161a23=_0x5f48dd%0x4?_0x161a23*0x40+_0x28fdb9:_0x28fdb9,_0x5f48dd++%0x4)?_0x153bbc+=String['fromCharCode'](0xff&_0x161a23>>(-0x2*_0x5f48dd&0x6)):0x0){_0x28fdb9=_0x571777['indexOf'](_0x28fdb9);}for(let _0x189ee2=0x0,_0x5c18c8=_0x153bbc['length'];_0x189ee2<_0x5c18c8;_0x189ee2++){_0x4b5a23+='%'+('00'+_0x153bbc['charCodeAt'](_0x189ee2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4b5a23);};_0x2fc3['iELiyl']=_0x3333f1,_0x2fc3['mtlAuf']={},_0x2fc3['IGyMiH']=!![];}const _0xddc317=_0x38e656[0x0],_0x3ba29a=_0x383946+_0xddc317,_0x444e9c=_0x2fc3['mtlAuf'][_0x3ba29a];return!_0x444e9c?(_0x2fc35f=_0x2fc3['iELiyl'](_0x2fc35f),_0x2fc3['mtlAuf'][_0x3ba29a]=_0x2fc35f):_0x2fc35f=_0x444e9c,_0x2fc35f;}Object[_0x4781c0(0x192)](exports,_0x4781c0(0x1b5),{'value':!![]}),exports[_0x4781c0(0x1ae)]=executeMath;function executeMath(_0x153bbc,_0x4b5a23){const _0x2db608=_0x4781c0,_0x5f48dd=_0x153bbc;switch(_0x4b5a23){case _0x2db608(0x1ac):{const _0x161a23=_0x5f48dd[_0x2db608(0x18e)]??(_0x5f48dd['a']!==undefined&&_0x5f48dd['b']!==undefined?[_0x5f48dd['a'],_0x5f48dd['b']]:[_0x5f48dd['a']??_0x5f48dd[_0x2db608(0x18b)]??0x0,_0x5f48dd['b']??0x0]);if(!Array[_0x2db608(0x18d)](_0x161a23))return{'value':Number(_0x5f48dd['a']??_0x5f48dd[_0x2db608(0x18b)]??0x0)+Number(_0x5f48dd['b']??0x0)};return{'value':_0x161a23['reduce']((_0x28fdb9,_0x4db872)=>_0x28fdb9+Number(_0x4db872),0x0)};}case _0x2db608(0x197):{const _0x189ee2=_0x5f48dd['a']??_0x5f48dd[_0x2db608(0x18e)]?.[0x0]??_0x5f48dd[_0x2db608(0x18b)]??0x0,_0x5c18c8=_0x5f48dd['b']??_0x5f48dd[_0x2db608(0x18e)]?.[0x1]??0x0;return{'value':Number(_0x189ee2)-Number(_0x5c18c8)};}case _0x2db608(0x1ab):{const _0xd0ca18=_0x5f48dd[_0x2db608(0x18e)]??[_0x5f48dd['a']??0x1,_0x5f48dd['b']??0x1];if(!Array[_0x2db608(0x18d)](_0xd0ca18))return{'value':Number(_0x5f48dd['a']??0x1)*Number(_0x5f48dd['b']??0x1)};return{'value':_0xd0ca18['reduce']((_0x23da15,_0x558da8)=>_0x23da15*Number(_0x558da8),0x1)};}case _0x2db608(0x195):{const _0x439dc2=_0x5f48dd[_0x2db608(0x1a8)]??_0x5f48dd['a']??_0x5f48dd['value']??0x0,_0x39ef5=_0x5f48dd['divisor']??_0x5f48dd['b']??0x1;if(_0x39ef5===0x0)throw new Error(_0x2db608(0x194));let _0x2c11ef=Number(_0x439dc2)/Number(_0x39ef5);if(_0x5f48dd['precision']!==undefined)_0x2c11ef=parseFloat(_0x2c11ef[_0x2db608(0x18a)](_0x5f48dd[_0x2db608(0x184)]));return{'value':_0x2c11ef};}case'modulo':{const {dividend:_0xcb394c,divisor:_0x48210b}=_0x5f48dd;if(_0xcb394c===undefined||_0x48210b===undefined)throw new Error(_0x2db608(0x1af));return{'value':Number(_0xcb394c)%Number(_0x48210b)};}case _0x2db608(0x1b0):{const {base:_0x2a32c7,exponent:_0x315ea9}=_0x5f48dd;if(_0x2a32c7===undefined||_0x315ea9===undefined)throw new Error('Base\x20and\x20exponent\x20are\x20required');return{'value':Math[_0x2db608(0x1a2)](Number(_0x2a32c7),Number(_0x315ea9))};}case _0x2db608(0x19e):{const {number:_0x3a10a8,decimals:decimals=0x0}=_0x5f48dd;if(_0x3a10a8===undefined)throw new Error(_0x2db608(0x185));return{'value':parseFloat(Number(_0x3a10a8)[_0x2db608(0x18a)](decimals))};}case _0x2db608(0x190):{const {number:_0x166105}=_0x5f48dd;if(_0x166105===undefined)throw new Error(_0x2db608(0x185));return{'value':Math[_0x2db608(0x190)](Number(_0x166105))};}case _0x2db608(0x199):{const {number:_0x1119b1}=_0x5f48dd;if(_0x1119b1===undefined)throw new Error(_0x2db608(0x185));return{'value':Math[_0x2db608(0x199)](Number(_0x1119b1))};}case _0x2db608(0x198):{const {number:_0x4e3bf3}=_0x5f48dd;if(_0x4e3bf3===undefined)throw new Error(_0x2db608(0x185));return{'value':Math[_0x2db608(0x198)](Number(_0x4e3bf3))};}case _0x2db608(0x1a1):{const {numbers:_0x247b5b}=_0x5f48dd;if(!Array[_0x2db608(0x18d)](_0x247b5b)||_0x247b5b[_0x2db608(0x19b)]===0x0)throw new Error(_0x2db608(0x1a4));return{'value':Math[_0x2db608(0x1a1)](..._0x247b5b['map'](_0x2f9b44=>Number(_0x2f9b44)))};}case _0x2db608(0x186):{const {numbers:_0x5c1a1c}=_0x5f48dd;if(!Array[_0x2db608(0x18d)](_0x5c1a1c)||_0x5c1a1c[_0x2db608(0x19b)]===0x0)throw new Error(_0x2db608(0x1a4));return{'value':Math[_0x2db608(0x186)](..._0x5c1a1c[_0x2db608(0x1b4)](_0x568967=>Number(_0x568967)))};}case _0x2db608(0x1aa):{const {numbers:_0x389364,precision:_0x56722d}=_0x5f48dd;if(!Array['isArray'](_0x389364)||_0x389364['length']===0x0)throw new Error(_0x2db608(0x1a4));const _0x7f8e8=_0x389364[_0x2db608(0x1a9)]((_0x1d5cb8,_0x3d1026)=>_0x1d5cb8+Number(_0x3d1026),0x0);let _0x59da71=_0x7f8e8/_0x389364['length'];if(_0x56722d!==undefined)_0x59da71=parseFloat(_0x59da71[_0x2db608(0x18a)](_0x56722d));return{'value':_0x59da71};}case _0x2db608(0x193):{const {numbers:_0x18c1f1}=_0x5f48dd;if(!Array['isArray'](_0x18c1f1))throw new Error(_0x2db608(0x19a));return{'value':_0x18c1f1[_0x2db608(0x1a9)]((_0x317523,_0x54b080)=>_0x317523+Number(_0x54b080),0x0)};}case _0x2db608(0x18c):{const {number:_0x145a60,min:_0x109bf9,max:_0x2b3c95}=_0x5f48dd;if(_0x145a60===undefined||_0x109bf9===undefined||_0x2b3c95===undefined)throw new Error('Number,\x20min,\x20and\x20max\x20are\x20required');const _0x4c29f6=Number(_0x145a60);return{'value':Math['min'](Math['max'](_0x4c29f6,Number(_0x109bf9)),Number(_0x2b3c95))};}case _0x2db608(0x188):{const {min:_0xeaddf6,max:_0x1d8e70,integer:integer=![],precision:precision=0x2}=_0x5f48dd;if(_0xeaddf6===undefined||_0x1d8e70===undefined)throw new Error('Min\x20and\x20max\x20are\x20required');const value=Math['random']()*(Number(_0x1d8e70)-Number(_0xeaddf6))+Number(_0xeaddf6);return{'value':integer?Math[_0x2db608(0x190)](value):parseFloat(value[_0x2db608(0x18a)](precision))};}case'percentage':{const {value:value,total:_0x1fe533,precision:precision=0x2}=_0x5f48dd;if(value===undefined||_0x1fe533===undefined)throw new Error(_0x2db608(0x196));if(_0x1fe533===0x0)throw new Error('Total\x20cannot\x20be\x20zero');const _0x44b36a=Number(value)/Number(_0x1fe533)*0x64;return{'value':parseFloat(_0x44b36a[_0x2db608(0x18a)](precision))};}case _0x2db608(0x187):{const {percentage:_0x49c5b7,of:_0x291185,precision:precision=0x2}=_0x5f48dd;if(_0x49c5b7===undefined||_0x291185===undefined)throw new Error('Percentage\x20and\x20of\x20are\x20required');const _0x324727=Number(_0x49c5b7)/0x64*Number(_0x291185);return{'value':parseFloat(_0x324727[_0x2db608(0x18a)](precision))};}case _0x2db608(0x1a0):{const {number:_0x10c054,precision:_0x4719c5}=_0x5f48dd;if(_0x10c054===undefined)throw new Error('Number\x20is\x20required');if(_0x10c054<0x0)throw new Error(_0x2db608(0x19d));let _0xf137f5=Math[_0x2db608(0x1a0)](Number(_0x10c054));if(_0x4719c5!==undefined)_0xf137f5=parseFloat(_0xf137f5[_0x2db608(0x18a)](_0x4719c5));return{'value':_0xf137f5};}case _0x2db608(0x1a5):{const {number:_0x56035a,base:_0x1b38cf,precision:_0x555661}=_0x5f48dd;if(_0x56035a===undefined)throw new Error(_0x2db608(0x185));if(_0x56035a<=0x0)throw new Error('Number\x20must\x20be\x20greater\x20than\x20zero');let _0x16c4a0=_0x1b38cf?Math[_0x2db608(0x1a5)](Number(_0x56035a))/Math['log'](Number(_0x1b38cf)):Math['log'](Number(_0x56035a));if(_0x555661!==undefined)_0x16c4a0=parseFloat(_0x16c4a0[_0x2db608(0x18a)](_0x555661));return{'value':_0x16c4a0};}default:return{'value':Number(_0x5f48dd[_0x2db608(0x18b)]??_0x5f48dd['a']??0x0)};}}
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeMath = executeMath;
4
+ function executeMath(opts, actionMethod) {
5
+ const o = opts;
6
+ switch (actionMethod) {
7
+ case "add": {
8
+ const numbers = o.numbers ?? (o.a !== undefined && o.b !== undefined ? [o.a, o.b] : [o.a ?? o.value ?? 0, o.b ?? 0]);
9
+ if (!Array.isArray(numbers))
10
+ return { value: Number(o.a ?? o.value ?? 0) + Number(o.b ?? 0) };
11
+ return { value: numbers.reduce((sum, n) => sum + Number(n), 0) };
12
+ }
13
+ case "subtract": {
14
+ const a = o.a ?? o.numbers?.[0] ?? o.value ?? 0;
15
+ const b = o.b ?? o.numbers?.[1] ?? 0;
16
+ return { value: Number(a) - Number(b) };
17
+ }
18
+ case "multiply": {
19
+ const numbers = o.numbers ?? [o.a ?? 1, o.b ?? 1];
20
+ if (!Array.isArray(numbers))
21
+ return { value: Number(o.a ?? 1) * Number(o.b ?? 1) };
22
+ return { value: numbers.reduce((prod, n) => prod * Number(n), 1) };
23
+ }
24
+ case "divide": {
25
+ const dividend = o.dividend ?? o.a ?? o.value ?? 0;
26
+ const divisor = o.divisor ?? o.b ?? 1;
27
+ if (divisor === 0)
28
+ throw new Error("Division by zero is not allowed");
29
+ let result = Number(dividend) / Number(divisor);
30
+ if (o.precision !== undefined)
31
+ result = parseFloat(result.toFixed(o.precision));
32
+ return { value: result };
33
+ }
34
+ case "modulo": {
35
+ const { dividend, divisor } = o;
36
+ if (dividend === undefined || divisor === undefined)
37
+ throw new Error("Dividend and divisor are required");
38
+ return { value: Number(dividend) % Number(divisor) };
39
+ }
40
+ case "power": {
41
+ const { base, exponent } = o;
42
+ if (base === undefined || exponent === undefined)
43
+ throw new Error("Base and exponent are required");
44
+ return { value: Math.pow(Number(base), Number(exponent)) };
45
+ }
46
+ case "round": {
47
+ const { number, decimals = 0 } = o;
48
+ if (number === undefined)
49
+ throw new Error("Number is required");
50
+ return { value: parseFloat(Number(number).toFixed(decimals)) };
51
+ }
52
+ case "floor": {
53
+ const { number } = o;
54
+ if (number === undefined)
55
+ throw new Error("Number is required");
56
+ return { value: Math.floor(Number(number)) };
57
+ }
58
+ case "ceil": {
59
+ const { number } = o;
60
+ if (number === undefined)
61
+ throw new Error("Number is required");
62
+ return { value: Math.ceil(Number(number)) };
63
+ }
64
+ case "abs": {
65
+ const { number } = o;
66
+ if (number === undefined)
67
+ throw new Error("Number is required");
68
+ return { value: Math.abs(Number(number)) };
69
+ }
70
+ case "min": {
71
+ const { numbers } = o;
72
+ if (!Array.isArray(numbers) || numbers.length === 0)
73
+ throw new Error("Numbers array is required and must not be empty");
74
+ return { value: Math.min(...numbers.map((n) => Number(n))) };
75
+ }
76
+ case "max": {
77
+ const { numbers } = o;
78
+ if (!Array.isArray(numbers) || numbers.length === 0)
79
+ throw new Error("Numbers array is required and must not be empty");
80
+ return { value: Math.max(...numbers.map((n) => Number(n))) };
81
+ }
82
+ case "average": {
83
+ const { numbers, precision } = o;
84
+ if (!Array.isArray(numbers) || numbers.length === 0)
85
+ throw new Error("Numbers array is required and must not be empty");
86
+ const sum = numbers.reduce((s, n) => s + Number(n), 0);
87
+ let avg = sum / numbers.length;
88
+ if (precision !== undefined)
89
+ avg = parseFloat(avg.toFixed(precision));
90
+ return { value: avg };
91
+ }
92
+ case "sum": {
93
+ const { numbers } = o;
94
+ if (!Array.isArray(numbers))
95
+ throw new Error("Numbers array is required");
96
+ return { value: numbers.reduce((sum, n) => sum + Number(n), 0) };
97
+ }
98
+ case "clamp": {
99
+ const { number, min, max } = o;
100
+ if (number === undefined || min === undefined || max === undefined)
101
+ throw new Error("Number, min, and max are required");
102
+ const num = Number(number);
103
+ return { value: Math.min(Math.max(num, Number(min)), Number(max)) };
104
+ }
105
+ case "random_between": {
106
+ const { min, max, integer = false, precision = 2 } = o;
107
+ if (min === undefined || max === undefined)
108
+ throw new Error("Min and max are required");
109
+ const value = Math.random() * (Number(max) - Number(min)) + Number(min);
110
+ return { value: integer ? Math.floor(value) : parseFloat(value.toFixed(precision)) };
111
+ }
112
+ case "percentage": {
113
+ const { value, total, precision = 2 } = o;
114
+ if (value === undefined || total === undefined)
115
+ throw new Error("Value and total are required");
116
+ if (total === 0)
117
+ throw new Error("Total cannot be zero");
118
+ const percent = (Number(value) / Number(total)) * 100;
119
+ return { value: parseFloat(percent.toFixed(precision)) };
120
+ }
121
+ case "percentage_of": {
122
+ const { percentage, of, precision = 2 } = o;
123
+ if (percentage === undefined || of === undefined)
124
+ throw new Error("Percentage and of are required");
125
+ const result = (Number(percentage) / 100) * Number(of);
126
+ return { value: parseFloat(result.toFixed(precision)) };
127
+ }
128
+ case "sqrt": {
129
+ const { number, precision } = o;
130
+ if (number === undefined)
131
+ throw new Error("Number is required");
132
+ if (number < 0)
133
+ throw new Error("Cannot calculate square root of negative number");
134
+ let result = Math.sqrt(Number(number));
135
+ if (precision !== undefined)
136
+ result = parseFloat(result.toFixed(precision));
137
+ return { value: result };
138
+ }
139
+ case "log": {
140
+ const { number, base, precision } = o;
141
+ if (number === undefined)
142
+ throw new Error("Number is required");
143
+ if (number <= 0)
144
+ throw new Error("Number must be greater than zero");
145
+ let result = base ? Math.log(Number(number)) / Math.log(Number(base)) : Math.log(Number(number));
146
+ if (precision !== undefined)
147
+ result = parseFloat(result.toFixed(precision));
148
+ return { value: result };
149
+ }
150
+ default:
151
+ return { value: Number(o.value ?? o.a ?? 0) };
152
+ }
153
+ }
@@ -1 +1,151 @@
1
- 'use strict';const _0x4e98c1=_0x6ad8;(function(_0x51abee,_0xf76c2f){const _0x4339da=_0x6ad8,_0x2a93d9=_0x51abee();while(!![]){try{const _0x31db48=-parseInt(_0x4339da(0x123))/0x1*(-parseInt(_0x4339da(0x118))/0x2)+parseInt(_0x4339da(0x139))/0x3+-parseInt(_0x4339da(0x105))/0x4*(parseInt(_0x4339da(0x135))/0x5)+-parseInt(_0x4339da(0x103))/0x6+-parseInt(_0x4339da(0x131))/0x7+parseInt(_0x4339da(0xfd))/0x8+parseInt(_0x4339da(0x13a))/0x9*(parseInt(_0x4339da(0x119))/0xa);if(_0x31db48===_0xf76c2f)break;else _0x2a93d9['push'](_0x2a93d9['shift']());}catch(_0x3d2d06){_0x2a93d9['push'](_0x2a93d9['shift']());}}}(_0x28be,0xc2390));Object[_0x4e98c1(0x12e)](exports,_0x4e98c1(0x10b),{'value':!![]}),exports['executeRandom']=executeRandom;function _0x6ad8(_0x3f4f4d,_0x3e0a23){_0x3f4f4d=_0x3f4f4d-0xf8;const _0x28bec9=_0x28be();let _0x6ad859=_0x28bec9[_0x3f4f4d];if(_0x6ad8['wMokuW']===undefined){var _0xebc8a1=function(_0x4dba07){const _0x1a208b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a0e8b='',_0x2c5de2='';for(let _0x4e259a=0x0,_0x26f529,_0x5eb774,_0x3af4cb=0x0;_0x5eb774=_0x4dba07['charAt'](_0x3af4cb++);~_0x5eb774&&(_0x26f529=_0x4e259a%0x4?_0x26f529*0x40+_0x5eb774:_0x5eb774,_0x4e259a++%0x4)?_0x1a0e8b+=String['fromCharCode'](0xff&_0x26f529>>(-0x2*_0x4e259a&0x6)):0x0){_0x5eb774=_0x1a208b['indexOf'](_0x5eb774);}for(let _0x1da971=0x0,_0x1e3267=_0x1a0e8b['length'];_0x1da971<_0x1e3267;_0x1da971++){_0x2c5de2+='%'+('00'+_0x1a0e8b['charCodeAt'](_0x1da971)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2c5de2);};_0x6ad8['FSLGvC']=_0xebc8a1,_0x6ad8['PWcuGs']={},_0x6ad8['wMokuW']=!![];}const _0x20ebd5=_0x28bec9[0x0],_0x98aef7=_0x3f4f4d+_0x20ebd5,_0xd7e7c8=_0x6ad8['PWcuGs'][_0x98aef7];return!_0xd7e7c8?(_0x6ad859=_0x6ad8['FSLGvC'](_0x6ad859),_0x6ad8['PWcuGs'][_0x98aef7]=_0x6ad859):_0x6ad859=_0xd7e7c8,_0x6ad859;}const crypto_1=require('crypto');function randomInt(_0x1a0e8b,_0x2c5de2){const _0x4889d6=_0x4e98c1;return Math['floor'](Math[_0x4889d6(0x121)]()*(_0x2c5de2-_0x1a0e8b))+_0x1a0e8b;}function _0x28be(){const _0x2ba2a2=['ntu1mJq0oezpvKvqDa','iuaJjcvEjIO','zM9YBwf0','BM93','CMfUzg9Tx3v1Awq','Bwf4','mZG1odmZnM5rDffYtW','ywjJzgvMz2HPAMTSBw5VChfYC3r1DND4ExPbqKneruzhseLks0XntK9quvjtvfvwv1HzwG','mtjsvhPiqw0','ywXWAgfUDw1LCMLJ','CMfUzg9Tx2zSB2f0','Dg9vChbLCKnHC2u','ChvZAa','y2HHCKf0','x19LC01VzhvSzq','mdeYmZq1nJC4oq','CMfUzg9Tx3n0CMLUzW','AgfZ','qxjYyxKGAxmGCMvXDwLYzwq','y2vPBa','Agv4','zgvJAw1HBhm','ywjJzgvMz2HPAMTSBw5VChfYC3r1DND4ExPbqKneruzhseLks0XntK9quvjtvfvwv1HzwJaXmJm0nty3odK','z2v0vgLTzq','qujdrevgr0Hks01ouffsu1rvvLDywvO','CMfUzg9Tx2rHDgu','AxnbCNjHEq','mta4oerRr0T1BW','mJC2nZbWBNfwuwO','zM9YBwf0DgvK','Dg9mB3DLCKnHC2u','CMDI','qujdrevgr0HjsKTmtu5puffsu1rvvLDywvO','mdeYmZq1nJC4owfIy2rLzG','y29TCgfJDa','CMfUzg9Tx2HLEa','CMfUzg9T','jdeTjdiTjdmTjdqTjdu','odu0CKnXtNz4','qxqGBgvHC3qGB25LignOyxjHy3rLCIbZzxqGBxvZDcbIzsbPBMnSDwrLza','Dg9gAxHLza','CMfUzg9Tx2LUDa','C2XPy2u','zMXVB3i','Dg9ju09tDhjPBMC','ywjJzgvMz2HQA21UChfYC3r1DND4ExO','BwL4zwq','ywjJzgvMz2HPAMTSBw5VChfYC3r1DND4ExO','BgvUz3rO','zgvMAw5LuhjVCgvYDhK','CMfUzg9Tx2nVBg9Y','C2H1zMzSzv9HCNjHEq','odm2mJqXquPZq2Ds','Dg9tDhjPBMC','y3vZDg9T','BwLU','mty5mZi5nvjStgPzzW','q2HVAwnLCYbHCNjHEsbPCYbYzxf1AxjLzcbHBMqGBxvZDcbUB3qGyMuGzw1WDhK','CMDIysG','BNvTzxjPyW','mZmYndC4ouHPCwTPvq','otK5r2nZB09X','CMfUzg9TqNL0zxm','ChjVyMfIAwXPDhK','CMDIyq','CMvWBgfJzq','CMfUzg9Tx2fSCgHHBNvTzxjPyW','CgfKu3rHCNq','ywrK','CMfUzg9Tx2nOB2LJzq'];_0x28be=function(){return _0x2ba2a2;};return _0x28be();}function executeRandom(_0x4e259a,_0x26f529){const _0x415a03=_0x4e98c1,_0x5eb774=_0x4e259a;switch(_0x26f529){case _0x415a03(0x126):{const _0x3af4cb=_0x5eb774[_0x415a03(0x134)]??0x0,_0x1da971=_0x5eb774['max']??0x64;return{'value':randomInt(+_0x3af4cb,+_0x1da971+0x1)};}case _0x415a03(0x107):{const _0x1e3267=_0x5eb774[_0x415a03(0x134)]??0x0,_0x5bce72=_0x5eb774[_0x415a03(0x102)]??0x1,_0x307e23=_0x5eb774[_0x415a03(0x112)]??0x2,value=Math[_0x415a03(0x121)]()*(_0x5bce72-_0x1e3267)+_0x1e3267;return{'value':parseFloat(value[_0x415a03(0x125)](_0x307e23))};}case _0x415a03(0x10d):{const {length:length=0xa,charset:charset=_0x415a03(0x106),custom_charset:_0x3b8256,case:_0x115d47=_0x415a03(0x12b)}=_0x5eb774;let _0x3a7e11='';if(charset===_0x415a03(0x133)&&_0x3b8256)_0x3a7e11=_0x3b8256;else{if(charset==='alphanumeric')_0x3a7e11=_0x415a03(0x113);else{if(charset==='alphabetic')_0x3a7e11=_0x415a03(0x104);else{if(charset===_0x415a03(0x138))_0x3a7e11=_0x415a03(0x10c);else{if(charset==='hex')_0x3a7e11=_0x415a03(0x11e);}}}}if(_0x115d47==='lower')_0x3a7e11=_0x3a7e11[_0x415a03(0x11b)]();else{if(_0x115d47==='upper')_0x3a7e11=_0x3a7e11['toUpperCase']();}let _0x11b5f2='';for(let _0x34f9b0=0x0;_0x34f9b0<length;_0x34f9b0++)_0x11b5f2+=_0x3a7e11[_0x415a03(0x10a)](Math['floor'](Math[_0x415a03(0x121)]()*_0x3a7e11[_0x415a03(0x12d)]));return{'value':_0x11b5f2};}case _0x415a03(0x101):case'uuid':{const _0x1ac400=_0x5eb774[_0x415a03(0xff)]??'standard',_0xd7a9ec=(0x0,crypto_1['randomBytes'])(0x10);_0xd7a9ec[0x6]=_0xd7a9ec[0x6]&0xf|0x40,_0xd7a9ec[0x8]=_0xd7a9ec[0x8]&0x3f|0x80;let _0x576aab=_0xd7a9ec[_0x415a03(0x132)]('hex')['replace'](/(.{8})(.{4})(.{4})(.{4})(.{12})/,_0x415a03(0x122));if(_0x1ac400===_0x415a03(0x11f))_0x576aab=_0x576aab[_0x415a03(0xf8)](/-/g,'');return{'value':_0x576aab};}case'random_boolean':{const _0x109fa8=_0x5eb774[_0x415a03(0x13c)]??0.5;return{'value':Math[_0x415a03(0x121)]()<_0x109fa8};}case _0x415a03(0xfc):{const {choices:_0x2b41a3,count:count=0x1,unique:unique=!![]}=_0x5eb774;if(!Array[_0x415a03(0x117)](_0x2b41a3)||_0x2b41a3[_0x415a03(0x12d)]===0x0)throw new Error(_0x415a03(0x136));const _0xc3e87f=[],_0x577a12=new Set(),_0x4cf7fd=unique?Math[_0x415a03(0x134)](count,_0x2b41a3['length']):count;for(let _0x543d03=0x0;_0x543d03<_0x4cf7fd;_0x543d03++){let _0x59aeed;if(unique){do _0x59aeed=Math[_0x415a03(0x128)](Math['random']()*_0x2b41a3[_0x415a03(0x12d)]);while(_0x577a12[_0x415a03(0x10e)](_0x59aeed));_0x577a12[_0x415a03(0xfb)](_0x59aeed);}else _0x59aeed=Math[_0x415a03(0x128)](Math[_0x415a03(0x121)]()*_0x2b41a3[_0x415a03(0x12d)]);_0xc3e87f[_0x415a03(0x109)](_0x2b41a3[_0x59aeed]);}return{'value':count===0x1?_0xc3e87f[0x0]:_0xc3e87f};}case'random_password':{const {length:length=0x10,include_uppercase:include_uppercase=!![],include_lowercase:include_lowercase=!![],include_numbers:include_numbers=!![],include_symbols:include_symbols=!![],exclude_similar:exclude_similar=![],exclude_ambiguous:exclude_ambiguous=![]}=_0x5eb774;let _0x12a5c7='';if(include_lowercase)_0x12a5c7+=exclude_similar?_0x415a03(0x12a):_0x415a03(0x12c);if(include_uppercase)_0x12a5c7+=exclude_similar?_0x415a03(0x115):_0x415a03(0x11d);if(include_numbers)_0x12a5c7+=exclude_similar?'23456789':_0x415a03(0x10c);if(include_symbols)_0x12a5c7+=exclude_ambiguous?_0x415a03(0xfe):'!@#$%^&*()_+-=[]{}|;:,.<>?';if(_0x12a5c7['length']===0x0)throw new Error(_0x415a03(0x124));let _0x27e266='';for(let _0x2bf2d7=0x0;_0x2bf2d7<length;_0x2bf2d7++)_0x27e266+=_0x12a5c7[_0x415a03(0x10a)](Math[_0x415a03(0x128)](Math[_0x415a03(0x121)]()*_0x12a5c7[_0x415a03(0x12d)]));return{'value':_0x27e266};}case _0x415a03(0x120):{const {length:length=0x10,prefix:prefix='',uppercase:uppercase=![]}=_0x5eb774,_0xaaa69f=(0x0,crypto_1[_0x415a03(0x13b)])(Math[_0x415a03(0x110)](length/0x2))['toString']('hex')[_0x415a03(0x127)](0x0,length);return{'value':prefix+(uppercase?_0xaaa69f[_0x415a03(0x108)]():_0xaaa69f)};}case _0x415a03(0xf9):{const {length:length=0xa,case:_0xa55447=_0x415a03(0x12b)}=_0x5eb774;return executeRandom({'length':length,'charset':'alphanumeric','case':_0xa55447},_0x415a03(0x10d));}case _0x415a03(0x116):{const {start_date:_0x326124,end_date:_0x2e911f,format:_0x11936e}=_0x5eb774,_0x3cbabd=_0x326124?new Date(_0x326124)[_0x415a03(0x114)]():0x0,_0x189dbf=_0x2e911f?new Date(_0x2e911f)[_0x415a03(0x114)]():Date[_0x415a03(0x100)](),_0x5966b8=Math['random']()*(_0x189dbf-_0x3cbabd)+_0x3cbabd,_0x18b6a8=new Date(_0x5966b8),_0xc29b99={'value':_0x18b6a8[_0x415a03(0x129)]()};if(_0x11936e)_0xc29b99[_0x415a03(0x11a)]=_0x18b6a8[_0x415a03(0x129)]();return _0xc29b99;}case _0x415a03(0x12f):{const {format:format=_0x415a03(0x111),alpha:alpha=0x1}=_0x5eb774,_0x314de4=Math[_0x415a03(0x128)](Math[_0x415a03(0x121)]()*0x100),_0x52e1f9=Math[_0x415a03(0x128)](Math['random']()*0x100),_0x47973d=Math[_0x415a03(0x128)](Math['random']()*0x100);if(format===_0x415a03(0x111))return{'value':'#'+_0x314de4[_0x415a03(0x132)](0x10)['padStart'](0x2,'0')+_0x52e1f9['toString'](0x10)[_0x415a03(0xfa)](0x2,'0')+_0x47973d[_0x415a03(0x132)](0x10)['padStart'](0x2,'0')};if(format===_0x415a03(0x11c))return{'value':'rgb('+_0x314de4+',\x20'+_0x52e1f9+',\x20'+_0x47973d+')'};if(format===_0x415a03(0x13d))return{'value':_0x415a03(0x137)+_0x314de4+',\x20'+_0x52e1f9+',\x20'+_0x47973d+',\x20'+alpha+')'};return{'value':'#'+_0x314de4[_0x415a03(0x132)](0x10)[_0x415a03(0xfa)](0x2,'0')+_0x52e1f9[_0x415a03(0x132)](0x10)[_0x415a03(0xfa)](0x2,'0')+_0x47973d[_0x415a03(0x132)](0x10)[_0x415a03(0xfa)](0x2,'0')};}case _0x415a03(0x130):{const {array:_0x1b105a,in_place:in_place=![]}=_0x5eb774;if(!Array[_0x415a03(0x117)](_0x1b105a))throw new Error(_0x415a03(0x10f));const _0x46f6ac=in_place?_0x1b105a:[..._0x1b105a];for(let _0xd6bbb4=_0x46f6ac[_0x415a03(0x12d)]-0x1;_0xd6bbb4>0x0;_0xd6bbb4--){const _0x1790d7=Math[_0x415a03(0x128)](Math[_0x415a03(0x121)]()*(_0xd6bbb4+0x1));[_0x46f6ac[_0xd6bbb4],_0x46f6ac[_0x1790d7]]=[_0x46f6ac[_0x1790d7],_0x46f6ac[_0xd6bbb4]];}return{'value':_0x46f6ac};}default:{const _0x2779ee=(0x0,crypto_1[_0x415a03(0x13b)])(0x10);return _0x2779ee[0x6]=_0x2779ee[0x6]&0xf|0x40,_0x2779ee[0x8]=_0x2779ee[0x8]&0x3f|0x80,{'value':_0x2779ee[_0x415a03(0x132)](_0x415a03(0x111))[_0x415a03(0xf8)](/(.{8})(.{4})(.{4})(.{4})(.{12})/,_0x415a03(0x122))};}}}
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeRandom = executeRandom;
4
+ const crypto_1 = require("crypto");
5
+ function randomInt(min, max) {
6
+ return Math.floor(Math.random() * (max - min)) + min;
7
+ }
8
+ function executeRandom(opts, actionMethod) {
9
+ const o = opts;
10
+ switch (actionMethod) {
11
+ case "random_int": {
12
+ const min = o.min ?? 0;
13
+ const max = o.max ?? 100;
14
+ return { value: randomInt(+min, +max + 1) };
15
+ }
16
+ case "random_float": {
17
+ const min = o.min ?? 0;
18
+ const max = o.max ?? 1;
19
+ const decimals = o.decimals ?? 2;
20
+ const value = Math.random() * (max - min) + min;
21
+ return { value: parseFloat(value.toFixed(decimals)) };
22
+ }
23
+ case "random_string": {
24
+ const { length = 10, charset = "alphanumeric", custom_charset, case: caseOption = "mixed" } = o;
25
+ let chars = "";
26
+ if (charset === "custom" && custom_charset)
27
+ chars = custom_charset;
28
+ else if (charset === "alphanumeric")
29
+ chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
30
+ else if (charset === "alphabetic")
31
+ chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
32
+ else if (charset === "numeric")
33
+ chars = "0123456789";
34
+ else if (charset === "hex")
35
+ chars = "0123456789abcdef";
36
+ if (caseOption === "lower")
37
+ chars = chars.toLowerCase();
38
+ else if (caseOption === "upper")
39
+ chars = chars.toUpperCase();
40
+ let result = "";
41
+ for (let i = 0; i < length; i++)
42
+ result += chars.charAt(Math.floor(Math.random() * chars.length));
43
+ return { value: result };
44
+ }
45
+ case "random_uuid":
46
+ case "uuid": {
47
+ const format = o.format ?? "standard";
48
+ const bytes = (0, crypto_1.randomBytes)(16);
49
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
50
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
51
+ let uuid = bytes.toString("hex").replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, "$1-$2-$3-$4-$5");
52
+ if (format === "compact")
53
+ uuid = uuid.replace(/-/g, "");
54
+ return { value: uuid };
55
+ }
56
+ case "random_boolean": {
57
+ const probability = o.probability ?? 0.5;
58
+ return { value: Math.random() < probability };
59
+ }
60
+ case "random_choice": {
61
+ const { choices, count = 1, unique = true } = o;
62
+ if (!Array.isArray(choices) || choices.length === 0)
63
+ throw new Error("Choices array is required and must not be empty");
64
+ const selected = [];
65
+ const used = new Set();
66
+ const maxCount = unique ? Math.min(count, choices.length) : count;
67
+ for (let i = 0; i < maxCount; i++) {
68
+ let index;
69
+ if (unique) {
70
+ do
71
+ index = Math.floor(Math.random() * choices.length);
72
+ while (used.has(index));
73
+ used.add(index);
74
+ }
75
+ else {
76
+ index = Math.floor(Math.random() * choices.length);
77
+ }
78
+ selected.push(choices[index]);
79
+ }
80
+ return { value: count === 1 ? selected[0] : selected };
81
+ }
82
+ case "random_password": {
83
+ const { length = 16, include_uppercase = true, include_lowercase = true, include_numbers = true, include_symbols = true, exclude_similar = false, exclude_ambiguous = false, } = o;
84
+ let chars = "";
85
+ if (include_lowercase)
86
+ chars += exclude_similar ? "abcdefghjkmnpqrstuvwxyz" : "abcdefghijklmnopqrstuvwxyz";
87
+ if (include_uppercase)
88
+ chars += exclude_similar ? "ABCDEFGHJKMNPQRSTUVWXYZ" : "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
89
+ if (include_numbers)
90
+ chars += exclude_similar ? "23456789" : "0123456789";
91
+ if (include_symbols)
92
+ chars += exclude_ambiguous ? "!@#$%^&*" : "!@#$%^&*()_+-=[]{}|;:,.<>?";
93
+ if (chars.length === 0)
94
+ throw new Error("At least one character set must be included");
95
+ let password = "";
96
+ for (let i = 0; i < length; i++)
97
+ password += chars.charAt(Math.floor(Math.random() * chars.length));
98
+ return { value: password };
99
+ }
100
+ case "random_hex": {
101
+ const { length = 16, prefix = "", uppercase = false } = o;
102
+ const hex = (0, crypto_1.randomBytes)(Math.ceil(length / 2)).toString("hex").slice(0, length);
103
+ return { value: prefix + (uppercase ? hex.toUpperCase() : hex) };
104
+ }
105
+ case "random_alphanumeric": {
106
+ const { length = 10, case: caseOption = "mixed" } = o;
107
+ return executeRandom({ length, charset: "alphanumeric", case: caseOption }, "random_string");
108
+ }
109
+ case "random_date": {
110
+ const { start_date, end_date, format } = o;
111
+ const start = start_date ? new Date(start_date).getTime() : 0;
112
+ const end = end_date ? new Date(end_date).getTime() : Date.now();
113
+ const randomTime = Math.random() * (end - start) + start;
114
+ const date = new Date(randomTime);
115
+ const result = { value: date.toISOString() };
116
+ if (format)
117
+ result.formatted = date.toISOString();
118
+ return result;
119
+ }
120
+ case "random_color": {
121
+ const { format = "hex", alpha = 1 } = o;
122
+ const r = Math.floor(Math.random() * 256);
123
+ const g = Math.floor(Math.random() * 256);
124
+ const b = Math.floor(Math.random() * 256);
125
+ if (format === "hex")
126
+ return { value: `#${r.toString(16).padStart(2, "0")}${g.toString(16).padStart(2, "0")}${b.toString(16).padStart(2, "0")}` };
127
+ if (format === "rgb")
128
+ return { value: `rgb(${r}, ${g}, ${b})` };
129
+ if (format === "rgba")
130
+ return { value: `rgba(${r}, ${g}, ${b}, ${alpha})` };
131
+ return { value: `#${r.toString(16).padStart(2, "0")}${g.toString(16).padStart(2, "0")}${b.toString(16).padStart(2, "0")}` };
132
+ }
133
+ case "shuffle_array": {
134
+ const { array, in_place = false } = o;
135
+ if (!Array.isArray(array))
136
+ throw new Error("Array is required");
137
+ const shuffled = in_place ? array : [...array];
138
+ for (let i = shuffled.length - 1; i > 0; i--) {
139
+ const j = Math.floor(Math.random() * (i + 1));
140
+ [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];
141
+ }
142
+ return { value: shuffled };
143
+ }
144
+ default: {
145
+ const bytes = (0, crypto_1.randomBytes)(16);
146
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
147
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
148
+ return { value: bytes.toString("hex").replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, "$1-$2-$3-$4-$5") };
149
+ }
150
+ }
151
+ }