cliodot 1.2.2 → 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 (147) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +81 -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 +178 -0
  7. package/dist/CommercialAppClient.d.ts.map +1 -0
  8. package/dist/CommercialAppClient.js +576 -0
  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 +23 -0
  17. package/dist/IdentityAppClient.d.ts.map +1 -0
  18. package/dist/IdentityAppClient.js +197 -0
  19. package/dist/MemoryAppClient.d.ts +28 -0
  20. package/dist/MemoryAppClient.d.ts.map +1 -0
  21. package/dist/MemoryAppClient.js +149 -0
  22. package/dist/MemoryClient.d.ts +8 -0
  23. package/dist/MemoryClient.d.ts.map +1 -0
  24. package/dist/MemoryClient.js +20 -0
  25. package/dist/OAuthAppClient.d.ts +1 -0
  26. package/dist/OAuthAppClient.d.ts.map +1 -1
  27. package/dist/OAuthAppClient.js +269 -1
  28. package/dist/ProviderServicesClient.d.ts +24 -0
  29. package/dist/ProviderServicesClient.d.ts.map +1 -0
  30. package/dist/ProviderServicesClient.js +158 -0
  31. package/dist/Surface.d.ts +2 -0
  32. package/dist/Surface.d.ts.map +1 -1
  33. package/dist/Surface.js +255 -1
  34. package/dist/ValidatorBuilder.js +24 -1
  35. package/dist/Webhooks.d.ts +20 -0
  36. package/dist/Webhooks.d.ts.map +1 -0
  37. package/dist/Webhooks.js +61 -0
  38. package/dist/WorkflowBuilder.js +279 -1
  39. package/dist/__tests__/CommercialAppClient.test.d.ts +2 -0
  40. package/dist/__tests__/CommercialAppClient.test.d.ts.map +1 -0
  41. package/dist/__tests__/CommercialAppClient.test.js +217 -0
  42. package/dist/__tests__/Events.test.js +191 -1
  43. package/dist/__tests__/IdentityAppClient.test.d.ts +2 -0
  44. package/dist/__tests__/IdentityAppClient.test.d.ts.map +1 -0
  45. package/dist/__tests__/IdentityAppClient.test.js +232 -0
  46. package/dist/__tests__/OAuthAppClient.test.js +300 -1
  47. package/dist/__tests__/ProviderServicesClient.test.d.ts +2 -0
  48. package/dist/__tests__/ProviderServicesClient.test.d.ts.map +1 -0
  49. package/dist/__tests__/ProviderServicesClient.test.js +131 -0
  50. package/dist/__tests__/Surface.test.js +150 -1
  51. package/dist/__tests__/errors.test.js +54 -1
  52. package/dist/__tests__/function.test.js +58 -1
  53. package/dist/__tests__/helpers.d.ts +5 -0
  54. package/dist/__tests__/helpers.d.ts.map +1 -0
  55. package/dist/__tests__/helpers.js +10 -0
  56. package/dist/__tests__/localhost-lookup.test.d.ts +2 -0
  57. package/dist/__tests__/localhost-lookup.test.d.ts.map +1 -0
  58. package/dist/__tests__/localhost-lookup.test.js +26 -0
  59. package/dist/__tests__/parse-api-error.test.js +26 -1
  60. package/dist/__tests__/runner.test.js +156 -1
  61. package/dist/connectors/builtin.js +354 -1
  62. package/dist/connectors/registry.js +300 -1
  63. package/dist/decorators/build.js +105 -1
  64. package/dist/decorators/connector.js +56 -1
  65. package/dist/decorators/index.js +34 -1
  66. package/dist/decorators/metadata.js +338 -1
  67. package/dist/decorators/steps.js +220 -1
  68. package/dist/decorators/workflow.js +52 -1
  69. package/dist/errors.js +76 -1
  70. package/dist/http/__tests__/cliodot-request.environment.test.d.ts +2 -0
  71. package/dist/http/__tests__/cliodot-request.environment.test.d.ts.map +1 -0
  72. package/dist/http/__tests__/cliodot-request.environment.test.js +37 -0
  73. package/dist/http/__tests__/cliodot-result.test.d.ts +2 -0
  74. package/dist/http/__tests__/cliodot-result.test.d.ts.map +1 -0
  75. package/dist/http/__tests__/cliodot-result.test.js +57 -0
  76. package/dist/http/__tests__/events-instance-id.test.d.ts +2 -0
  77. package/dist/http/__tests__/events-instance-id.test.d.ts.map +1 -0
  78. package/dist/http/__tests__/events-instance-id.test.js +45 -0
  79. package/dist/http/cliodot-request.d.ts +35 -0
  80. package/dist/http/cliodot-request.d.ts.map +1 -0
  81. package/dist/http/cliodot-request.js +105 -0
  82. package/dist/http/cliodot-result.d.ts +40 -0
  83. package/dist/http/cliodot-result.d.ts.map +1 -0
  84. package/dist/http/cliodot-result.js +139 -0
  85. package/dist/http/create-client.d.ts +3 -0
  86. package/dist/http/create-client.d.ts.map +1 -0
  87. package/dist/http/create-client.js +14 -0
  88. package/dist/http/events-instance-id.d.ts +11 -0
  89. package/dist/http/events-instance-id.d.ts.map +1 -0
  90. package/dist/http/events-instance-id.js +86 -0
  91. package/dist/http/localhost-lookup.d.ts +12 -0
  92. package/dist/http/localhost-lookup.d.ts.map +1 -0
  93. package/dist/http/localhost-lookup.js +67 -0
  94. package/dist/http/parse-api-error.js +56 -1
  95. package/dist/http/sanitize-execution-headers.js +79 -1
  96. package/dist/identity-offline-verify.d.ts +6 -0
  97. package/dist/identity-offline-verify.d.ts.map +1 -0
  98. package/dist/identity-offline-verify.js +174 -0
  99. package/dist/identity-token-cache.d.ts +6 -0
  100. package/dist/identity-token-cache.d.ts.map +1 -0
  101. package/dist/identity-token-cache.js +51 -0
  102. package/dist/index.d.ts +10 -0
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +108 -1
  105. package/dist/runner/ProcessorEngine.js +1311 -1
  106. package/dist/runner/connector.executor.js +1786 -1
  107. package/dist/runner/utilities/math.executor.js +153 -1
  108. package/dist/runner/utilities/random.executor.js +151 -1
  109. package/dist/runner/utilities/string.executor.js +825 -1
  110. package/dist/template.js +127 -1
  111. package/dist/transformers/StepsToNodesTransformer.js +214 -1
  112. package/dist/transformers/WorkflowTransformer.js +189 -1
  113. package/dist/types/auth-app.api.d.ts +2 -0
  114. package/dist/types/auth-app.api.d.ts.map +1 -1
  115. package/dist/types/auth-app.api.js +2 -1
  116. package/dist/types/builtin.js +2 -1
  117. package/dist/types/client.api.js +2 -1
  118. package/dist/types/commercial-app.api.d.ts +963 -0
  119. package/dist/types/commercial-app.api.d.ts.map +1 -0
  120. package/dist/types/commercial-app.api.js +2 -0
  121. package/dist/types/connector.js +2 -1
  122. package/dist/types/context.js +2 -1
  123. package/dist/types/event-app.api.d.ts +8 -0
  124. package/dist/types/event-app.api.d.ts.map +1 -1
  125. package/dist/types/event-app.api.js +2 -1
  126. package/dist/types/function.js +2 -1
  127. package/dist/types/identity-app.api.d.ts +99 -0
  128. package/dist/types/identity-app.api.d.ts.map +1 -0
  129. package/dist/types/identity-app.api.js +2 -0
  130. package/dist/types/index.js +23 -1
  131. package/dist/types/memory-app.api.d.ts +140 -0
  132. package/dist/types/memory-app.api.d.ts.map +1 -0
  133. package/dist/types/memory-app.api.js +2 -0
  134. package/dist/types/oauth-app.api.d.ts +2 -0
  135. package/dist/types/oauth-app.api.d.ts.map +1 -1
  136. package/dist/types/oauth-app.api.js +105 -1
  137. package/dist/types/provider-services.api.d.ts +98 -0
  138. package/dist/types/provider-services.api.d.ts.map +1 -0
  139. package/dist/types/provider-services.api.js +2 -0
  140. package/dist/types/validator.js +2 -1
  141. package/dist/types/webhook-app.api.d.ts +2 -0
  142. package/dist/types/webhook-app.api.d.ts.map +1 -0
  143. package/dist/types/webhook-app.api.js +2 -0
  144. package/dist/types/workflow.js +33 -1
  145. package/dist/validators/validators.js +478 -1
  146. package/dist/variable.js +37 -1
  147. package/package.json +3 -2
@@ -1 +1,153 @@
1
- 'use strict';const _0x379849=_0x4492;function _0x5ef2(){const _0x6b4732=['vg90ywWGy2fUBM90igjLihPLCM8','DMfSDwu','mZaZnZaXntn4rwDYr2y','CMfUzg9T','tNvTyMvYlcbTAw4SigfUzcbTyxGGyxjLihjLCxvPCMvK','yxzLCMfNzq','ywrK','mtviC2zmBvu','y2vPBa','C3vT','CMvKDwnL','qMfZzsbHBMqGzxHWB25LBNqGyxjLihjLCxvPCMvK','tNvTyMvYCYbHCNjHEsbPCYbYzxf1AxjLzcbHBMqGBxvZDcbUB3qGyMuGzw1WDhK','zMXVB3i','Cg93','mtaZodq0ndn3uvfly2O','BwLU','C3vIDhjHy3q','zgvMAw5LuhjVCgvYDhK','zgL2AwrLBMq','zgL2AxnVCG','mJGYm1P1DfnkDG','Bwf4','rgL2AxnPB24GyNKGEMvYBYbPCYbUB3qGywXSB3DLza','mtyYmMvyu3LZra','BxvSDgLWBhK','C3fYDa','Dg9gAxHLza','zgL2AwrL','CMfUzg9Tx2jLDhDLzw4','mte4m3Dur1Dvqq','BNvTyMvYCW','CgvYy2vUDgfNzq','ywjZ','zxHLy3v0zu1HDgG','mJaWofzewhLvAq','tNvTyMvYigLZihjLCxvPCMvK','AxnbCNjHEq','ndC2oePQD1zeCa','CM91BMq','Bg9N','ChjLy2LZAw9U','tNvTyMvYCYbHCNjHEsbPCYbYzxf1AxjLza','mtyWngvkr3LrtG','nte2ndGWAxPAsevW','mtyWmJqZoffZthPiEa','vMfSDwuGyw5KihrVDgfSigfYzsbYzxf1AxjLza','BgvUz3rO'];_0x5ef2=function(){return _0x6b4732;};return _0x5ef2();}(function(_0x4ee117,_0x2e8131){const _0x25e147=_0x4492,_0x5d24aa=_0x4ee117();while(!![]){try{const _0x2dbef3=parseInt(_0x25e147(0x98))/0x1*(-parseInt(_0x25e147(0xb5))/0x2)+-parseInt(_0x25e147(0xb2))/0x3*(parseInt(_0x25e147(0x93))/0x4)+-parseInt(_0x25e147(0xa4))/0x5*(parseInt(_0x25e147(0x9a))/0x6)+parseInt(_0x25e147(0xbb))/0x7*(parseInt(_0x25e147(0xc0))/0x8)+parseInt(_0x25e147(0xac))/0x9+-parseInt(_0x25e147(0x99))/0xa+parseInt(_0x25e147(0x9f))/0xb;if(_0x2dbef3===_0x2e8131)break;else _0x5d24aa['push'](_0x5d24aa['shift']());}catch(_0x5b4174){_0x5d24aa['push'](_0x5d24aa['shift']());}}}(_0x5ef2,0xa673a));Object[_0x379849(0xaf)](exports,'__esModule',{'value':!![]}),exports[_0x379849(0xbf)]=executeMath;function _0x4492(_0x48060b,_0x38e543){_0x48060b=_0x48060b-0x91;const _0x5ef26a=_0x5ef2();let _0x449214=_0x5ef26a[_0x48060b];if(_0x4492['ktaWxt']===undefined){var _0x3d52aa=function(_0x5e09d3){const _0x3599d2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1f1dcc='',_0x533463='';for(let _0x43be87=0x0,_0x4c50b0,_0x514bfd,_0x4aaeaf=0x0;_0x514bfd=_0x5e09d3['charAt'](_0x4aaeaf++);~_0x514bfd&&(_0x4c50b0=_0x43be87%0x4?_0x4c50b0*0x40+_0x514bfd:_0x514bfd,_0x43be87++%0x4)?_0x1f1dcc+=String['fromCharCode'](0xff&_0x4c50b0>>(-0x2*_0x43be87&0x6)):0x0){_0x514bfd=_0x3599d2['indexOf'](_0x514bfd);}for(let _0x398616=0x0,_0x55d5d4=_0x1f1dcc['length'];_0x398616<_0x55d5d4;_0x398616++){_0x533463+='%'+('00'+_0x1f1dcc['charCodeAt'](_0x398616)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x533463);};_0x4492['TMWRGF']=_0x3d52aa,_0x4492['NgkXFv']={},_0x4492['ktaWxt']=!![];}const _0x3ba06f=_0x5ef26a[0x0],_0x3e7e1e=_0x48060b+_0x3ba06f,_0x57f261=_0x4492['NgkXFv'][_0x3e7e1e];return!_0x57f261?(_0x449214=_0x4492['TMWRGF'](_0x449214),_0x4492['NgkXFv'][_0x3e7e1e]=_0x449214):_0x449214=_0x57f261,_0x449214;}function executeMath(_0x1f1dcc,_0x533463){const _0x5e36ae=_0x379849,_0x43be87=_0x1f1dcc;switch(_0x533463){case _0x5e36ae(0xa3):{const _0x4c50b0=_0x43be87[_0x5e36ae(0xbc)]??(_0x43be87['a']!==undefined&&_0x43be87['b']!==undefined?[_0x43be87['a'],_0x43be87['b']]:[_0x43be87['a']??_0x43be87[_0x5e36ae(0x9e)]??0x0,_0x43be87['b']??0x0]);if(!Array['isArray'](_0x4c50b0))return{'value':Number(_0x43be87['a']??_0x43be87[_0x5e36ae(0x9e)]??0x0)+Number(_0x43be87['b']??0x0)};return{'value':_0x4c50b0[_0x5e36ae(0xa7)]((_0x514bfd,_0x4aaeaf)=>_0x514bfd+Number(_0x4aaeaf),0x0)};}case _0x5e36ae(0xae):{const _0x398616=_0x43be87['a']??_0x43be87[_0x5e36ae(0xbc)]?.[0x0]??_0x43be87[_0x5e36ae(0x9e)]??0x0,_0x55d5d4=_0x43be87['b']??_0x43be87[_0x5e36ae(0xbc)]?.[0x1]??0x0;return{'value':Number(_0x398616)-Number(_0x55d5d4)};}case _0x5e36ae(0xb6):{const _0x51a41f=_0x43be87[_0x5e36ae(0xbc)]??[_0x43be87['a']??0x1,_0x43be87['b']??0x1];if(!Array[_0x5e36ae(0x92)](_0x51a41f))return{'value':Number(_0x43be87['a']??0x1)*Number(_0x43be87['b']??0x1)};return{'value':_0x51a41f[_0x5e36ae(0xa7)]((_0x43b7ff,_0x33a2d0)=>_0x43b7ff*Number(_0x33a2d0),0x1)};}case _0x5e36ae(0xb9):{const _0x4b1598=_0x43be87[_0x5e36ae(0xb0)]??_0x43be87['a']??_0x43be87['value']??0x0,_0x2a2eee=_0x43be87[_0x5e36ae(0xb1)]??_0x43be87['b']??0x1;if(_0x2a2eee===0x0)throw new Error(_0x5e36ae(0xb4));let _0xd41ad1=Number(_0x4b1598)/Number(_0x2a2eee);if(_0x43be87[_0x5e36ae(0x96)]!==undefined)_0xd41ad1=parseFloat(_0xd41ad1[_0x5e36ae(0xb8)](_0x43be87['precision']));return{'value':_0xd41ad1};}case'modulo':{const {dividend:_0x56d895,divisor:_0x2771b2}=_0x43be87;if(_0x56d895===undefined||_0x2771b2===undefined)throw new Error('Dividend\x20and\x20divisor\x20are\x20required');return{'value':Number(_0x56d895)%Number(_0x2771b2)};}case'power':{const {base:_0x5f5062,exponent:_0x3fa94c}=_0x43be87;if(_0x5f5062===undefined||_0x3fa94c===undefined)throw new Error(_0x5e36ae(0xa8));return{'value':Math[_0x5e36ae(0xab)](Number(_0x5f5062),Number(_0x3fa94c))};}case _0x5e36ae(0x94):{const {number:_0x40b15c,decimals:decimals=0x0}=_0x43be87;if(_0x40b15c===undefined)throw new Error(_0x5e36ae(0x91));return{'value':parseFloat(Number(_0x40b15c)[_0x5e36ae(0xb8)](decimals))};}case _0x5e36ae(0xaa):{const {number:_0x2aa49e}=_0x43be87;if(_0x2aa49e===undefined)throw new Error(_0x5e36ae(0x91));return{'value':Math['floor'](Number(_0x2aa49e))};}case _0x5e36ae(0xa5):{const {number:_0x1b9280}=_0x43be87;if(_0x1b9280===undefined)throw new Error(_0x5e36ae(0x91));return{'value':Math['ceil'](Number(_0x1b9280))};}case _0x5e36ae(0xbe):{const {number:_0x5af282}=_0x43be87;if(_0x5af282===undefined)throw new Error('Number\x20is\x20required');return{'value':Math[_0x5e36ae(0xbe)](Number(_0x5af282))};}case _0x5e36ae(0xad):{const {numbers:_0x38e6ed}=_0x43be87;if(!Array['isArray'](_0x38e6ed)||_0x38e6ed[_0x5e36ae(0x9c)]===0x0)throw new Error(_0x5e36ae(0xa9));return{'value':Math[_0x5e36ae(0xad)](..._0x38e6ed['map'](_0x4d7246=>Number(_0x4d7246)))};}case _0x5e36ae(0xb3):{const {numbers:_0x5aed3f}=_0x43be87;if(!Array['isArray'](_0x5aed3f)||_0x5aed3f[_0x5e36ae(0x9c)]===0x0)throw new Error(_0x5e36ae(0xa9));return{'value':Math[_0x5e36ae(0xb3)](..._0x5aed3f['map'](_0x170697=>Number(_0x170697)))};}case _0x5e36ae(0xa2):{const {numbers:_0x296a9a,precision:_0x43ad6d}=_0x43be87;if(!Array['isArray'](_0x296a9a)||_0x296a9a[_0x5e36ae(0x9c)]===0x0)throw new Error('Numbers\x20array\x20is\x20required\x20and\x20must\x20not\x20be\x20empty');const _0x3ef243=_0x296a9a['reduce']((_0x4f78d4,_0x395dbe)=>_0x4f78d4+Number(_0x395dbe),0x0);let _0x10bb88=_0x3ef243/_0x296a9a[_0x5e36ae(0x9c)];if(_0x43ad6d!==undefined)_0x10bb88=parseFloat(_0x10bb88['toFixed'](_0x43ad6d));return{'value':_0x10bb88};}case _0x5e36ae(0xa6):{const {numbers:_0x1368c3}=_0x43be87;if(!Array[_0x5e36ae(0x92)](_0x1368c3))throw new Error(_0x5e36ae(0x97));return{'value':_0x1368c3[_0x5e36ae(0xa7)]((_0x34a65a,_0x15af61)=>_0x34a65a+Number(_0x15af61),0x0)};}case'clamp':{const {number:_0x5db5fb,min:_0x189e79,max:_0x23cb61}=_0x43be87;if(_0x5db5fb===undefined||_0x189e79===undefined||_0x23cb61===undefined)throw new Error(_0x5e36ae(0xa1));const _0x4dc66a=Number(_0x5db5fb);return{'value':Math[_0x5e36ae(0xad)](Math[_0x5e36ae(0xb3)](_0x4dc66a,Number(_0x189e79)),Number(_0x23cb61))};}case _0x5e36ae(0xba):{const {min:_0x13427c,max:_0x5f0214,integer:integer=![],precision:precision=0x2}=_0x43be87;if(_0x13427c===undefined||_0x5f0214===undefined)throw new Error('Min\x20and\x20max\x20are\x20required');const value=Math[_0x5e36ae(0xa0)]()*(Number(_0x5f0214)-Number(_0x13427c))+Number(_0x13427c);return{'value':integer?Math['floor'](value):parseFloat(value[_0x5e36ae(0xb8)](precision))};}case _0x5e36ae(0xbd):{const {value:value,total:_0x273198,precision:precision=0x2}=_0x43be87;if(value===undefined||_0x273198===undefined)throw new Error(_0x5e36ae(0x9b));if(_0x273198===0x0)throw new Error(_0x5e36ae(0x9d));const _0x4cbe3a=Number(value)/Number(_0x273198)*0x64;return{'value':parseFloat(_0x4cbe3a[_0x5e36ae(0xb8)](precision))};}case'percentage_of':{const {percentage:_0x52b9cb,of:_0x498a5a,precision:precision=0x2}=_0x43be87;if(_0x52b9cb===undefined||_0x498a5a===undefined)throw new Error('Percentage\x20and\x20of\x20are\x20required');const _0x5698c9=Number(_0x52b9cb)/0x64*Number(_0x498a5a);return{'value':parseFloat(_0x5698c9[_0x5e36ae(0xb8)](precision))};}case _0x5e36ae(0xb7):{const {number:_0xdce659,precision:_0xa42d2d}=_0x43be87;if(_0xdce659===undefined)throw new Error('Number\x20is\x20required');if(_0xdce659<0x0)throw new Error('Cannot\x20calculate\x20square\x20root\x20of\x20negative\x20number');let _0x18d47e=Math[_0x5e36ae(0xb7)](Number(_0xdce659));if(_0xa42d2d!==undefined)_0x18d47e=parseFloat(_0x18d47e[_0x5e36ae(0xb8)](_0xa42d2d));return{'value':_0x18d47e};}case'log':{const {number:_0x44dcdc,base:_0xedb0df,precision:_0x428376}=_0x43be87;if(_0x44dcdc===undefined)throw new Error('Number\x20is\x20required');if(_0x44dcdc<=0x0)throw new Error('Number\x20must\x20be\x20greater\x20than\x20zero');let _0x9794c=_0xedb0df?Math['log'](Number(_0x44dcdc))/Math['log'](Number(_0xedb0df)):Math[_0x5e36ae(0x95)](Number(_0x44dcdc));if(_0x428376!==undefined)_0x9794c=parseFloat(_0x9794c['toFixed'](_0x428376));return{'value':_0x9794c};}default:return{'value':Number(_0x43be87[_0x5e36ae(0x9e)]??_0x43be87['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';function _0x456b(_0x38dd32,_0x3acf9a){_0x38dd32=_0x38dd32-0x90;const _0x1fdba7=_0x1fdb();let _0x456bf1=_0x1fdba7[_0x38dd32];if(_0x456b['NNDpey']===undefined){var _0x4118e5=function(_0x3a9e66){const _0x5b6892='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1bb9c4='',_0x237152='';for(let _0x521837=0x0,_0x462f92,_0x2cd34f,_0x174e32=0x0;_0x2cd34f=_0x3a9e66['charAt'](_0x174e32++);~_0x2cd34f&&(_0x462f92=_0x521837%0x4?_0x462f92*0x40+_0x2cd34f:_0x2cd34f,_0x521837++%0x4)?_0x1bb9c4+=String['fromCharCode'](0xff&_0x462f92>>(-0x2*_0x521837&0x6)):0x0){_0x2cd34f=_0x5b6892['indexOf'](_0x2cd34f);}for(let _0xcaef45=0x0,_0x1a3123=_0x1bb9c4['length'];_0xcaef45<_0x1a3123;_0xcaef45++){_0x237152+='%'+('00'+_0x1bb9c4['charCodeAt'](_0xcaef45)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x237152);};_0x456b['vbMPhW']=_0x4118e5,_0x456b['PDvIzq']={},_0x456b['NNDpey']=!![];}const _0x226aa2=_0x1fdba7[0x0],_0x358ced=_0x38dd32+_0x226aa2,_0x1ffdf3=_0x456b['PDvIzq'][_0x358ced];return!_0x1ffdf3?(_0x456bf1=_0x456b['vbMPhW'](_0x456bf1),_0x456b['PDvIzq'][_0x358ced]=_0x456bf1):_0x456bf1=_0x1ffdf3,_0x456bf1;}function _0x1fdb(){const _0x53235f=['CMfUzg9Tx3v1Awq','z2v0vgLTzq','mZaXwfPAruXx','zxHLy3v0zvjHBMrVBq','mdeYmZq1nJC4oq','iuaJjcvEjIOOkv8Rlt1BxxT9FdS6lc48pJ8','odm1odnqz3jvzxq','CMfUzg9Tx2nVBg9Y','zMXVB3i','mtaXndjgD2THDxO','BwL4zwq','CMfUzg9Tx2HLEa','mJm0nty3odK','CMDIka','Dg9tDhjPBMC','Bg93zxi','AxnbCNjHEq','ywXWAgfIzxrPyW','otq5mJK2n1rwBMHYDa','ChjVyMfIAwXPDhK','Dg9vChbLCKnHC2u','jdeTjdiTjdmTjdqTjdu','nJbnugfOyK0','Agv4','CMfUzg9TqNL0zxm','ndG4vhjmBLDr','Dg9mB3DLCKnHC2u','DxvPza','qxjYyxKGAxmGCMvXDwLYzwq','CMfUzg9Tx2nOB2LJzq','qujdrevgr0Hks01ouffsu1rvvLDywvO','ywXWAgfUDw1LCMLJ','BgvUz3rO','C2H1zMzSzv9HCNjHEq','nduWnJGYnfjYCKndza','C2XPy2u','BwLU','ChvZAa','CMfUzg9Tx2jVB2XLyw4','q2HVAwnLCYbHCNjHEsbPCYbYzxf1AxjLzcbHBMqGBxvZDcbUB3qGyMuGzw1WDhK','BNvTzxjPyW','BM93','CMfUzg9Tx2LUDa','CgfKu3rHCNq','y2HHCKf0','CMDIysG','y3j5ChrV','Dg9ju09tDhjPBMC','CMfUzg9T','CMvWBgfJzq','nZm4ndyXsxHvtuzg','ywjJzgvMz2HPAMTSBw5VChfYC3r1DND4ExO','zgvMAw5LuhjVCgvYDhK','ywjJzgvMz2HQA21UChfYC3r1DND4ExO','odi0mZGXmentu3rcrW','Bwf4','DxbWzxi','zM9YBwf0','ywjJzgvMz2HPAMTSBw5VChfYC3r1DND4ExPbqKneruzhseLks0XntK9quvjtvfvwv1HzwG','CMfUzg9Tx2zSB2f0','CMfUzg9Tx3n0CMLUzW','nZK4tK1yzfzk','mdeYmZq1nJC4owfIy2rLzG','qxqGBgvHC3qGB25LignOyxjHy3rLCIbZzxqGBxvZDcbIzsbPBMnSDwrLza','nJCZmNjkCNHACG'];_0x1fdb=function(){return _0x53235f;};return _0x1fdb();}const _0x4e1218=_0x456b;(function(_0x251c2f,_0x329e65){const _0x434852=_0x456b,_0x27e9c8=_0x251c2f();while(!![]){try{const _0x46b01d=-parseInt(_0x434852(0xce))/0x1+-parseInt(_0x434852(0xa5))/0x2*(parseInt(_0x434852(0x98))/0x3)+-parseInt(_0x434852(0xbe))/0x4+-parseInt(_0x434852(0x91))/0x5+-parseInt(_0x434852(0x9b))/0x6*(parseInt(_0x434852(0x9e))/0x7)+parseInt(_0x434852(0xb5))/0x8*(parseInt(_0x434852(0xa2))/0x9)+-parseInt(_0x434852(0xb2))/0xa*(-parseInt(_0x434852(0xae))/0xb);if(_0x46b01d===_0x329e65)break;else _0x27e9c8['push'](_0x27e9c8['shift']());}catch(_0x4fdfb6){_0x27e9c8['push'](_0x27e9c8['shift']());}}}(_0x1fdb,0xcb794));Object[_0x4e1218(0xd0)](exports,'__esModule',{'value':!![]}),exports[_0x4e1218(0x9f)]=executeRandom;const crypto_1=require(_0x4e1218(0xca));function randomInt(_0x1bb9c4,_0x237152){const _0x3f4a4d=_0x4e1218;return Math[_0x3f4a4d(0xa4)](Math[_0x3f4a4d(0xcc)]()*(_0x237152-_0x1bb9c4))+_0x1bb9c4;}function executeRandom(_0x521837,_0x462f92){const _0x38466c=_0x4e1218,_0x2cd34f=_0x521837;switch(_0x462f92){case _0x38466c(0xc6):{const _0x174e32=_0x2cd34f[_0x38466c(0xc0)]??0x0,_0xcaef45=_0x2cd34f[_0x38466c(0x92)]??0x64;return{'value':randomInt(+_0x174e32,+_0xcaef45+0x1)};}case _0x38466c(0x96):{const _0x1a3123=_0x2cd34f[_0x38466c(0xc0)]??0x0,_0x4371fd=_0x2cd34f['max']??0x1,_0x67fb83=_0x2cd34f['decimals']??0x2,value=Math[_0x38466c(0xcc)]()*(_0x4371fd-_0x1a3123)+_0x1a3123;return{'value':parseFloat(value['toFixed'](_0x67fb83))};}case _0x38466c(0x97):{const {length:length=0xa,charset:charset=_0x38466c(0xbb),custom_charset:_0x269afc,case:_0x4b7af1=_0x38466c(0xa6)}=_0x2cd34f;let _0x3b1f97='';if(charset==='custom'&&_0x269afc)_0x3b1f97=_0x269afc;else{if(charset===_0x38466c(0xbb))_0x3b1f97='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';else{if(charset===_0x38466c(0xad))_0x3b1f97=_0x38466c(0x95);else{if(charset===_0x38466c(0xc4))_0x3b1f97=_0x38466c(0xa0);else{if(charset===_0x38466c(0xb3))_0x3b1f97=_0x38466c(0x99);}}}}if(_0x4b7af1===_0x38466c(0xab))_0x3b1f97=_0x3b1f97[_0x38466c(0xb6)]();else{if(_0x4b7af1===_0x38466c(0x93))_0x3b1f97=_0x3b1f97[_0x38466c(0xb0)]();}let _0x21f593='';for(let _0x559225=0x0;_0x559225<length;_0x559225++)_0x21f593+=_0x3b1f97[_0x38466c(0xc8)](Math[_0x38466c(0xa4)](Math[_0x38466c(0xcc)]()*_0x3b1f97[_0x38466c(0xbc)]));return{'value':_0x21f593};}case _0x38466c(0x9c):case _0x38466c(0xb7):{const _0x41c32f=_0x2cd34f[_0x38466c(0x94)]??'standard',_0x101a56=(0x0,crypto_1[_0x38466c(0xb4)])(0x10);_0x101a56[0x6]=_0x101a56[0x6]&0xf|0x40,_0x101a56[0x8]=_0x101a56[0x8]&0x3f|0x80;let _0x2693da=_0x101a56[_0x38466c(0xaa)](_0x38466c(0xb3))[_0x38466c(0xcd)](/(.{8})(.{4})(.{4})(.{4})(.{12})/,_0x38466c(0xb1));if(_0x41c32f==='compact')_0x2693da=_0x2693da[_0x38466c(0xcd)](/-/g,'');return{'value':_0x2693da};}case _0x38466c(0xc2):{const _0x154683=_0x2cd34f[_0x38466c(0xaf)]??0.5;return{'value':Math['random']()<_0x154683};}case _0x38466c(0xb9):{const {choices:_0x2c5a7c,count:count=0x1,unique:unique=!![]}=_0x2cd34f;if(!Array[_0x38466c(0xac)](_0x2c5a7c)||_0x2c5a7c[_0x38466c(0xbc)]===0x0)throw new Error(_0x38466c(0xc3));const _0x54794a=[],_0x418d08=new Set(),_0x433993=unique?Math['min'](count,_0x2c5a7c['length']):count;for(let _0xb309b9=0x0;_0xb309b9<_0x433993;_0xb309b9++){let _0x1a3897;if(unique){do _0x1a3897=Math[_0x38466c(0xa4)](Math['random']()*_0x2c5a7c[_0x38466c(0xbc)]);while(_0x418d08['has'](_0x1a3897));_0x418d08['add'](_0x1a3897);}else _0x1a3897=Math['floor'](Math['random']()*_0x2c5a7c[_0x38466c(0xbc)]);_0x54794a[_0x38466c(0xc1)](_0x2c5a7c[_0x1a3897]);}return{'value':count===0x1?_0x54794a[0x0]:_0x54794a};}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=![]}=_0x2cd34f;let _0x4f7807='';if(include_lowercase)_0x4f7807+=exclude_similar?_0x38466c(0x90):_0x38466c(0xcf);if(include_uppercase)_0x4f7807+=exclude_similar?_0x38466c(0xba):'ABCDEFGHIJKLMNOPQRSTUVWXYZ';if(include_numbers)_0x4f7807+=exclude_similar?_0x38466c(0xa8):_0x38466c(0xa0);if(include_symbols)_0x4f7807+=exclude_ambiguous?'!@#$%^&*':_0x38466c(0xa1);if(_0x4f7807[_0x38466c(0xbc)]===0x0)throw new Error(_0x38466c(0x9a));let _0x32698e='';for(let _0x59528c=0x0;_0x59528c<length;_0x59528c++)_0x32698e+=_0x4f7807[_0x38466c(0xc8)](Math[_0x38466c(0xa4)](Math[_0x38466c(0xcc)]()*_0x4f7807[_0x38466c(0xbc)]));return{'value':_0x32698e};}case _0x38466c(0xa7):{const {length:length=0x10,prefix:prefix='',uppercase:uppercase=![]}=_0x2cd34f,_0xfaae4c=(0x0,crypto_1[_0x38466c(0xb4)])(Math['ceil'](length/0x2))[_0x38466c(0xaa)](_0x38466c(0xb3))[_0x38466c(0xbf)](0x0,length);return{'value':prefix+(uppercase?_0xfaae4c[_0x38466c(0xb0)]():_0xfaae4c)};}case'random_alphanumeric':{const {length:length=0xa,case:_0x351f5d='mixed'}=_0x2cd34f;return executeRandom({'length':length,'charset':_0x38466c(0xbb),'case':_0x351f5d},_0x38466c(0x97));}case'random_date':{const {start_date:_0x5627fc,end_date:_0x2f4b82,format:_0x105d3a}=_0x2cd34f,_0xbe8544=_0x5627fc?new Date(_0x5627fc)[_0x38466c(0x9d)]():0x0,_0x399f91=_0x2f4b82?new Date(_0x2f4b82)[_0x38466c(0x9d)]():Date[_0x38466c(0xc5)](),_0x11a8a9=Math[_0x38466c(0xcc)]()*(_0x399f91-_0xbe8544)+_0xbe8544,_0x18a445=new Date(_0x11a8a9),_0x223277={'value':_0x18a445[_0x38466c(0xcb)]()};if(_0x105d3a)_0x223277['formatted']=_0x18a445['toISOString']();return _0x223277;}case _0x38466c(0xa3):{const {format:format=_0x38466c(0xb3),alpha:alpha=0x1}=_0x2cd34f,_0x58d242=Math[_0x38466c(0xa4)](Math['random']()*0x100),_0x588660=Math[_0x38466c(0xa4)](Math[_0x38466c(0xcc)]()*0x100),_0x3c031d=Math[_0x38466c(0xa4)](Math[_0x38466c(0xcc)]()*0x100);if(format===_0x38466c(0xb3))return{'value':'#'+_0x58d242['toString'](0x10)[_0x38466c(0xc7)](0x2,'0')+_0x588660[_0x38466c(0xaa)](0x10)[_0x38466c(0xc7)](0x2,'0')+_0x3c031d[_0x38466c(0xaa)](0x10)[_0x38466c(0xc7)](0x2,'0')};if(format==='rgb')return{'value':_0x38466c(0xa9)+_0x58d242+',\x20'+_0x588660+',\x20'+_0x3c031d+')'};if(format==='rgba')return{'value':_0x38466c(0xc9)+_0x58d242+',\x20'+_0x588660+',\x20'+_0x3c031d+',\x20'+alpha+')'};return{'value':'#'+_0x58d242[_0x38466c(0xaa)](0x10)[_0x38466c(0xc7)](0x2,'0')+_0x588660[_0x38466c(0xaa)](0x10)[_0x38466c(0xc7)](0x2,'0')+_0x3c031d['toString'](0x10)[_0x38466c(0xc7)](0x2,'0')};}case _0x38466c(0xbd):{const {array:_0x151a39,in_place:in_place=![]}=_0x2cd34f;if(!Array[_0x38466c(0xac)](_0x151a39))throw new Error(_0x38466c(0xb8));const _0x20746b=in_place?_0x151a39:[..._0x151a39];for(let _0xed4baf=_0x20746b[_0x38466c(0xbc)]-0x1;_0xed4baf>0x0;_0xed4baf--){const _0xaea76c=Math['floor'](Math[_0x38466c(0xcc)]()*(_0xed4baf+0x1));[_0x20746b[_0xed4baf],_0x20746b[_0xaea76c]]=[_0x20746b[_0xaea76c],_0x20746b[_0xed4baf]];}return{'value':_0x20746b};}default:{const _0x204095=(0x0,crypto_1[_0x38466c(0xb4)])(0x10);return _0x204095[0x6]=_0x204095[0x6]&0xf|0x40,_0x204095[0x8]=_0x204095[0x8]&0x3f|0x80,{'value':_0x204095[_0x38466c(0xaa)](_0x38466c(0xb3))[_0x38466c(0xcd)](/(.{8})(.{4})(.{4})(.{4})(.{12})/,_0x38466c(0xb1))};}}}
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
+ }