@vielzeug/illusionist 2.2.0

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 (222) hide show
  1. package/README.md +89 -0
  2. package/dist/_dev.d.ts +2 -0
  3. package/dist/_dev.d.ts.map +1 -0
  4. package/dist/_helpers/boolean.cjs +2 -0
  5. package/dist/_helpers/boolean.cjs.map +1 -0
  6. package/dist/_helpers/boolean.d.ts +4 -0
  7. package/dist/_helpers/boolean.d.ts.map +1 -0
  8. package/dist/_helpers/boolean.js +8 -0
  9. package/dist/_helpers/boolean.js.map +1 -0
  10. package/dist/_helpers/float.cjs +2 -0
  11. package/dist/_helpers/float.cjs.map +1 -0
  12. package/dist/_helpers/float.d.ts +9 -0
  13. package/dist/_helpers/float.d.ts.map +1 -0
  14. package/dist/_helpers/float.js +14 -0
  15. package/dist/_helpers/float.js.map +1 -0
  16. package/dist/_helpers/int.cjs +2 -0
  17. package/dist/_helpers/int.cjs.map +1 -0
  18. package/dist/_helpers/int.d.ts +4 -0
  19. package/dist/_helpers/int.d.ts.map +1 -0
  20. package/dist/_helpers/int.js +9 -0
  21. package/dist/_helpers/int.js.map +1 -0
  22. package/dist/_helpers/string.cjs +2 -0
  23. package/dist/_helpers/string.cjs.map +1 -0
  24. package/dist/_helpers/string.d.ts +12 -0
  25. package/dist/_helpers/string.d.ts.map +1 -0
  26. package/dist/_helpers/string.js +38 -0
  27. package/dist/_helpers/string.js.map +1 -0
  28. package/dist/_virtual/_rolldown/runtime.cjs +1 -0
  29. package/dist/_virtual/_rolldown/runtime.js +11 -0
  30. package/dist/commerce/commerce.cjs +2 -0
  31. package/dist/commerce/commerce.cjs.map +1 -0
  32. package/dist/commerce/commerce.d.ts +15 -0
  33. package/dist/commerce/commerce.d.ts.map +1 -0
  34. package/dist/commerce/commerce.js +51 -0
  35. package/dist/commerce/commerce.js.map +1 -0
  36. package/dist/commerce/data.cjs +2 -0
  37. package/dist/commerce/data.cjs.map +1 -0
  38. package/dist/commerce/data.d.ts +7 -0
  39. package/dist/commerce/data.d.ts.map +1 -0
  40. package/dist/commerce/data.js +83 -0
  41. package/dist/commerce/data.js.map +1 -0
  42. package/dist/commerce/index.cjs +1 -0
  43. package/dist/commerce/index.d.ts +2 -0
  44. package/dist/commerce/index.d.ts.map +1 -0
  45. package/dist/commerce/index.js +2 -0
  46. package/dist/date/date.cjs +2 -0
  47. package/dist/date/date.cjs.map +1 -0
  48. package/dist/date/date.d.ts +43 -0
  49. package/dist/date/date.d.ts.map +1 -0
  50. package/dist/date/date.js +93 -0
  51. package/dist/date/date.js.map +1 -0
  52. package/dist/date/index.cjs +1 -0
  53. package/dist/date/index.d.ts +2 -0
  54. package/dist/date/index.d.ts.map +1 -0
  55. package/dist/date/index.js +2 -0
  56. package/dist/errors.cjs +2 -0
  57. package/dist/errors.cjs.map +1 -0
  58. package/dist/errors.d.ts +8 -0
  59. package/dist/errors.d.ts.map +1 -0
  60. package/dist/errors.js +10 -0
  61. package/dist/errors.js.map +1 -0
  62. package/dist/factory.cjs +2 -0
  63. package/dist/factory.cjs.map +1 -0
  64. package/dist/factory.d.ts +46 -0
  65. package/dist/factory.d.ts.map +1 -0
  66. package/dist/factory.js +46 -0
  67. package/dist/factory.js.map +1 -0
  68. package/dist/finance/data.cjs +2 -0
  69. package/dist/finance/data.cjs.map +1 -0
  70. package/dist/finance/data.d.ts +32 -0
  71. package/dist/finance/data.d.ts.map +1 -0
  72. package/dist/finance/data.js +60 -0
  73. package/dist/finance/data.js.map +1 -0
  74. package/dist/finance/finance.cjs +2 -0
  75. package/dist/finance/finance.cjs.map +1 -0
  76. package/dist/finance/finance.d.ts +20 -0
  77. package/dist/finance/finance.d.ts.map +1 -0
  78. package/dist/finance/finance.js +90 -0
  79. package/dist/finance/finance.js.map +1 -0
  80. package/dist/finance/index.cjs +1 -0
  81. package/dist/finance/index.d.ts +2 -0
  82. package/dist/finance/index.d.ts.map +1 -0
  83. package/dist/finance/index.js +2 -0
  84. package/dist/iife-entry.d.ts +4 -0
  85. package/dist/iife-entry.d.ts.map +1 -0
  86. package/dist/illusionist.cjs +4 -0
  87. package/dist/illusionist.cjs.map +1 -0
  88. package/dist/illusionist.iife.js +4 -0
  89. package/dist/illusionist.iife.js.map +1 -0
  90. package/dist/illusionist.js +4 -0
  91. package/dist/illusionist.js.map +1 -0
  92. package/dist/index.cjs +1 -0
  93. package/dist/index.d.ts +13 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +12 -0
  96. package/dist/internet/data.cjs +2 -0
  97. package/dist/internet/data.cjs.map +1 -0
  98. package/dist/internet/data.d.ts +10 -0
  99. package/dist/internet/data.d.ts.map +1 -0
  100. package/dist/internet/data.js +84 -0
  101. package/dist/internet/data.js.map +1 -0
  102. package/dist/internet/index.cjs +1 -0
  103. package/dist/internet/index.d.ts +2 -0
  104. package/dist/internet/index.d.ts.map +1 -0
  105. package/dist/internet/index.js +2 -0
  106. package/dist/internet/internet.cjs +2 -0
  107. package/dist/internet/internet.cjs.map +1 -0
  108. package/dist/internet/internet.d.ts +31 -0
  109. package/dist/internet/internet.d.ts.map +1 -0
  110. package/dist/internet/internet.js +121 -0
  111. package/dist/internet/internet.js.map +1 -0
  112. package/dist/locales/de.cjs +2 -0
  113. package/dist/locales/de.cjs.map +1 -0
  114. package/dist/locales/de.d.ts +22 -0
  115. package/dist/locales/de.d.ts.map +1 -0
  116. package/dist/locales/de.js +12 -0
  117. package/dist/locales/de.js.map +1 -0
  118. package/dist/locales/en.cjs +2 -0
  119. package/dist/locales/en.cjs.map +1 -0
  120. package/dist/locales/en.d.ts +22 -0
  121. package/dist/locales/en.d.ts.map +1 -0
  122. package/dist/locales/en.js +12 -0
  123. package/dist/locales/en.js.map +1 -0
  124. package/dist/locales/index.cjs +1 -0
  125. package/dist/locales/index.d.ts +3 -0
  126. package/dist/locales/index.d.ts.map +1 -0
  127. package/dist/locales/index.js +3 -0
  128. package/dist/location/data/de.cjs +2 -0
  129. package/dist/location/data/de.cjs.map +1 -0
  130. package/dist/location/data/de.d.ts +9 -0
  131. package/dist/location/data/de.d.ts.map +1 -0
  132. package/dist/location/data/de.js +82 -0
  133. package/dist/location/data/de.js.map +1 -0
  134. package/dist/location/data/en.cjs +2 -0
  135. package/dist/location/data/en.cjs.map +1 -0
  136. package/dist/location/data/en.d.ts +9 -0
  137. package/dist/location/data/en.d.ts.map +1 -0
  138. package/dist/location/data/en.js +65 -0
  139. package/dist/location/data/en.js.map +1 -0
  140. package/dist/location/index.cjs +1 -0
  141. package/dist/location/index.d.ts +2 -0
  142. package/dist/location/index.d.ts.map +1 -0
  143. package/dist/location/index.js +2 -0
  144. package/dist/location/location.cjs +2 -0
  145. package/dist/location/location.cjs.map +1 -0
  146. package/dist/location/location.d.ts +28 -0
  147. package/dist/location/location.d.ts.map +1 -0
  148. package/dist/location/location.js +56 -0
  149. package/dist/location/location.js.map +1 -0
  150. package/dist/lorem/data.cjs +2 -0
  151. package/dist/lorem/data.cjs.map +1 -0
  152. package/dist/lorem/data.d.ts +5 -0
  153. package/dist/lorem/data.d.ts.map +1 -0
  154. package/dist/lorem/data.js +6 -0
  155. package/dist/lorem/data.js.map +1 -0
  156. package/dist/lorem/index.cjs +1 -0
  157. package/dist/lorem/index.d.ts +2 -0
  158. package/dist/lorem/index.d.ts.map +1 -0
  159. package/dist/lorem/index.js +2 -0
  160. package/dist/lorem/lorem.cjs +4 -0
  161. package/dist/lorem/lorem.cjs.map +1 -0
  162. package/dist/lorem/lorem.d.ts +18 -0
  163. package/dist/lorem/lorem.d.ts.map +1 -0
  164. package/dist/lorem/lorem.js +54 -0
  165. package/dist/lorem/lorem.js.map +1 -0
  166. package/dist/person/data/de.cjs +2 -0
  167. package/dist/person/data/de.cjs.map +1 -0
  168. package/dist/person/data/de.d.ts +12 -0
  169. package/dist/person/data/de.d.ts.map +1 -0
  170. package/dist/person/data/de.js +62 -0
  171. package/dist/person/data/de.js.map +1 -0
  172. package/dist/person/data/en.cjs +2 -0
  173. package/dist/person/data/en.cjs.map +1 -0
  174. package/dist/person/data/en.d.ts +12 -0
  175. package/dist/person/data/en.d.ts.map +1 -0
  176. package/dist/person/data/en.js +70 -0
  177. package/dist/person/data/en.js.map +1 -0
  178. package/dist/person/index.cjs +1 -0
  179. package/dist/person/index.d.ts +2 -0
  180. package/dist/person/index.d.ts.map +1 -0
  181. package/dist/person/index.js +2 -0
  182. package/dist/person/person.cjs +2 -0
  183. package/dist/person/person.cjs.map +1 -0
  184. package/dist/person/person.d.ts +9 -0
  185. package/dist/person/person.d.ts.map +1 -0
  186. package/dist/person/person.js +44 -0
  187. package/dist/person/person.js.map +1 -0
  188. package/dist/seed/create-seed.cjs +2 -0
  189. package/dist/seed/create-seed.cjs.map +1 -0
  190. package/dist/seed/create-seed.d.ts +17 -0
  191. package/dist/seed/create-seed.d.ts.map +1 -0
  192. package/dist/seed/create-seed.js +23 -0
  193. package/dist/seed/create-seed.js.map +1 -0
  194. package/dist/seed/index.cjs +1 -0
  195. package/dist/seed/index.d.ts +3 -0
  196. package/dist/seed/index.d.ts.map +1 -0
  197. package/dist/seed/index.js +3 -0
  198. package/dist/seed/mulberry32.cjs +2 -0
  199. package/dist/seed/mulberry32.cjs.map +1 -0
  200. package/dist/seed/mulberry32.d.ts +12 -0
  201. package/dist/seed/mulberry32.d.ts.map +1 -0
  202. package/dist/seed/mulberry32.js +13 -0
  203. package/dist/seed/mulberry32.js.map +1 -0
  204. package/dist/system/data.cjs +2 -0
  205. package/dist/system/data.cjs.map +1 -0
  206. package/dist/system/data.d.ts +29 -0
  207. package/dist/system/data.d.ts.map +1 -0
  208. package/dist/system/data.js +76 -0
  209. package/dist/system/data.js.map +1 -0
  210. package/dist/system/index.cjs +1 -0
  211. package/dist/system/index.d.ts +2 -0
  212. package/dist/system/index.d.ts.map +1 -0
  213. package/dist/system/index.js +2 -0
  214. package/dist/system/system.cjs +2 -0
  215. package/dist/system/system.cjs.map +1 -0
  216. package/dist/system/system.d.ts +32 -0
  217. package/dist/system/system.d.ts.map +1 -0
  218. package/dist/system/system.js +70 -0
  219. package/dist/system/system.js.map +1 -0
  220. package/dist/types.d.ts +41 -0
  221. package/dist/types.d.ts.map +1 -0
  222. package/package.json +155 -0
@@ -0,0 +1,4 @@
1
+ import{EUR as e,GBP as t,USD as n,money as r}from"@vielzeug/coins";import{Temporal as i,shift as a}from"@vielzeug/tempo";var o=Object.defineProperty,s=(e,t)=>{let n={};for(var r in e)o(n,r,{get:e[r],enumerable:!0});return t||o(n,Symbol.toStringTag,{value:`Module`}),n};function c(e,t,n){if(e>t)return e;let r=t-e;return e+(n?.next()??crypto.getRandomValues(new Uint32Array(1))[0]/4294967296)*r}function l(e,t,n=2,r){let i=10**n,a=c(e*i,t*i,r);return Math.round(a)/i}function ee(){return crypto.randomUUID()}function te(e,t){let n=t?.next()??crypto.getRandomValues(new Uint32Array(1))[0]/4294967296;if(!Number.isFinite(n)||n<0||n>=1)throw RangeError(`random source must return a finite number in [0, 1)`);return Math.floor(n*e)}function ne(e,t,n){if(e>t)throw RangeError(`random: minimum value must not be greater than maximum value`);return te(t-e+1,n)+e}function re(e,t){if(e.length!==0)return e[ne(0,e.length-1,t)]}function u(e,t,n){return ne(e,t,n)}function d(e,t){return re([...e],t)}function f(e,t){let n=``;for(let r=0;r<e;r++)n+=Math.floor((t?.next()??crypto.getRandomValues(new Uint32Array(1))[0]/4294967296)*10);return n}function p(e,t){let n=``;for(let r=0;r<e;r++){let e=Math.floor((t?.next()??crypto.getRandomValues(new Uint32Array(1))[0]/4294967296)*16);n+=`0123456789abcdef`[e]}return n}function m(e,t){let n=``;for(let r=0;r<e;r++){let e=Math.floor((t?.next()??crypto.getRandomValues(new Uint32Array(1))[0]/4294967296)*62);n+=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`[e]}return n}function ie(e,t){let n=``;for(let r=0;r<e;r++){let e=Math.floor((t?.next()??crypto.getRandomValues(new Uint32Array(1))[0]/4294967296)*58);n+=`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`[e]}return n}var h={departments:[`Books`,`Movies`,`Music`,`Games`,`Electronics`,`Computers`,`Home`,`Garden`,`Tools`,`Grocery`,`Health`,`Beauty`,`Toys`,`Kids`,`Baby`,`Clothing`,`Shoes`,`Jewelry`,`Sports`,`Outdoors`,`Automotive`],productAdjectives:[`Small`,`Ergonomic`,`Rustic`,`Intelligent`,`Gorgeous`,`Incredible`,`Fantastic`,`Practical`,`Sleek`,`Awesome`,`Generic`,`Handmade`,`Licensed`,`Refined`,`Unbranded`,`Tasty`],productMaterials:[`Steel`,`Wooden`,`Concrete`,`Plastic`,`Cotton`,`Granite`,`Rubber`,`Metal`,`Soft`,`Fresh`,`Frozen`],productNouns:[`Chair`,`Car`,`Computer`,`Gloves`,`Pants`,`Shirt`,`Table`,`Shoes`,`Hat`,`Plate`,`Knife`,`Bottle`,`Coat`,`Lamp`,`Keyboard`,`Bag`,`Bench`,`Clock`,`Watch`,`Wallet`]},ae=s({department:()=>ce,price:()=>le,productAdjective:()=>g,productDescription:()=>ue,productMaterial:()=>_,productName:()=>se,productNoun:()=>v}),oe={EUR:e,GBP:t,USD:n};function g(e){return d(h.productAdjectives,e.source)}function _(e){return d(h.productMaterials,e.source)}function v(e){return d(h.productNouns,e.source)}function se(e){return`${g(e)} ${_(e)} ${v(e)}`}function ce(e){return d(h.departments,e.source)}function le(e,t={}){let n=t.min??.01,i=t.max??1e3,a=t.currency??`USD`,o=l(n,i,2,e.source);return r(o.toFixed(2),oe[a])}function ue(e){let t=u(1,2,e.source),n=[];for(let r=0;r<t;r++){let t=d(h.productAdjectives,e.source),r=d(h.productMaterials,e.source),i=d(h.productNouns,e.source),a=d(h.departments,e.source);n.push(`The ${t.toLowerCase()} ${r.toLowerCase()} ${i.toLowerCase()} is a great choice for your ${a.toLowerCase()} needs.`)}return n.join(` `)}var de=s({between:()=>he,birthday:()=>ge,future:()=>pe,month:()=>ve,past:()=>fe,recent:()=>me,weekday:()=>_e});function y(e){return e??i.Now.zonedDateTimeISO(`UTC`)}function fe(e,t){let n=y(t?.ref),r=(t?.years??1)*365*24*60*60;return a(n,{seconds:-u(1,r,e.source)})}function pe(e,t){let n=y(t?.ref),r=(t?.years??1)*365*24*60*60;return a(n,{seconds:u(1,r,e.source)})}function me(e,t){let n=y(t?.ref),r=(t?.days??1)*24*60*60;return a(n,{seconds:-u(1,r,e.source)})}function he(e,t,n){let r=t.toInstant().epochNanoseconds,i=n.toInstant().epochNanoseconds;if(r>i)return t;let a=i-r,o=Number(a/1000000000n),s=Math.floor(e.source.next()*o);return t.add({seconds:s})}function ge(e,t){let n=y(t?.ref),r=u(t?.minAge??18,t?.maxAge??80,e.source),i=u(1,12,e.source),a=u(1,28,e.source);return n.toPlainDate().subtract({years:r}).with({day:a,month:i})}function _e(e,t){return((t??e.locale.code)===`de`?[`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag`,`Samstag`,`Sonntag`]:[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`,`Sunday`])[u(0,6,e.source)]}function ve(e,t){return((t??e.locale.code)===`de`?[`Januar`,`Februar`,`März`,`April`,`Mai`,`Juni`,`Juli`,`August`,`September`,`Oktober`,`November`,`Dezember`]:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`])[u(0,11,e.source)]}var b=class extends Error{constructor(e,t){super(e,t),this.name=new.target.name,Object.setPrototypeOf(this,new.target.prototype)}},x=class extends b{},S={banks:[`Deutsche Bank`,`Commerzbank`,`Sparkasse`,`Barclays`,`HSBC`,`BNP Paribas`,`Santander`,`ING`,`UniCredit`,`UBS`],creditCardIins:{amex:[`34`,`37`],mastercard:[`51`,`52`,`53`,`54`,`55`],visa:[`4`]},ibanCountryCodes:{AT:`AT`,BE:`BE`,CH:`CH`,DE:`DE`,ES:`ES`,FR:`FR`,GB:`GB`,IT:`IT`,NL:`NL`},ibanLengths:{AT:20,BE:16,CH:21,DE:22,ES:24,FR:27,GB:22,IT:27,NL:18},transactionTypes:[`payment`,`transfer`,`deposit`,`withdrawal`,`refund`,`fee`]},ye=s({amount:()=>E,bank:()=>P,bic:()=>O,bitcoinAddress:()=>j,creditCardCVV:()=>A,creditCardNumber:()=>k,ethereumAddress:()=>M,iban:()=>D,transactionType:()=>N}),be={EUR:e,GBP:t,USD:n},C=[`visa`,`mastercard`,`amex`],w=Object.keys(S.ibanCountryCodes),xe=`ABCDEFGHIJKLMNOPQRSTUVWXYZ`;function T(e,t){let n=``;for(let r=0;r<e;r++)n+=xe[Math.floor(t.source.next()*26)];return n}function Se(e){let t=0;for(let n of e)t=(t*10+Number(n))%97;return t}function Ce(e,t){return(98-Se(`${t}${e}00`.replace(/[A-Z]/g,e=>String(e.charCodeAt(0)-55)))).toString().padStart(2,`0`)}function we(e){let t=e.split(``).map(Number),n=0,r=!0;for(let e=t.length-1;e>=0;e--){let i=t[e];r&&(i*=2,i>9&&(i-=9)),n+=i,r=!r}let i=(10-n%10)%10;return String(i)}function E(e,t={}){let n=t.min??100,i=t.max??1e4,a=t.currency??`USD`,o=l(n,i,2,e.source);return r(o.toFixed(2),be[a])}function D(e,t){let n=t??d(w,e.source);if(!(n in S.ibanLengths))throw RangeError(`iban: unsupported country code "${t}". Supported: ${w.join(`, `)}`);let r=f(S.ibanLengths[n]-4,e.source);return`${n}${Ce(n,r)}${r}`}function O(e){return`${T(4,e)}${T(2,e)}${m(2,e.source).toUpperCase()}${u(0,1,e.source)===1?m(3,e.source).toUpperCase():``}`}function k(e,t){let n=t??d(C,e.source),r=d(S.creditCardIins[n],e.source),i=r+f((n===`amex`?15:16)-r.length-1,e.source);return`${i}${we(i)}`}function A(e,t){return f((t??d(C,e.source))===`amex`?4:3,e.source)}function j(e){return`${d([`1`,`3`,`bc1`],e.source)}${ie(u(25,34,e.source),e.source)}`}function M(e){return`0x${p(40,e.source)}`}function N(e){return d(S.transactionTypes,e.source)}function P(e){return d(S.banks,e.source)}var F={domains:[`example`,`test`,`demo`,`mail`,`web`,`tech`,`app`,`cloud`,`dev`,`info`],httpMethods:[`GET`,`POST`,`PUT`,`PATCH`,`DELETE`,`HEAD`,`OPTIONS`],mimeTypes:[`text/plain`,`text/html`,`application/json`,`application/xml`,`application/octet-stream`,`image/png`,`image/jpeg`,`image/gif`,`image/svg+xml`,`application/pdf`,`audio/mpeg`,`video/mp4`],protocols:[`https`,`http`],statusCodes:[200,201,204,301,302,304,400,401,403,404,405,409,418,422,429,500,502,503],tlds:[`com`,`org`,`net`,`io`,`dev`,`co`,`app`,`tech`,`cloud`,`ai`],userAgents:[`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`,`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`,`Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`,`Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0`,`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15`,`Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1`,`Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36`]},Te=s({domainName:()=>ke,email:()=>L,httpMethod:()=>Ne,ip:()=>Ae,mac:()=>je,mimeType:()=>Fe,password:()=>Oe,statusCode:()=>Pe,url:()=>R,userAgent:()=>Me,username:()=>De}),I=`!@#$%^&*()_+-=[]{}|;:,.<>?`,Ee=[`api`,`v1`,`v2`,`users`,`posts`,`comments`,`articles`,`products`,`orders`,`items`,`search`,`auth`,`login`,`logout`,`profile`,`settings`,`dashboard`,`files`,`images`,`assets`,`static`,`public`,`private`,`admin`,`reports`];function L(e){return`${(d(e.locale.person.firstNameFemale,e.source)??d(e.locale.person.firstNameMale,e.source)??`user`).toLowerCase()}.${(d(e.locale.person.lastName,e.source)??`name`).toLowerCase()}@${d(F.domains,e.source)??`example`}.${d(F.tlds,e.source)??`com`}`}function De(e){return u(0,1,e.source)===0?m(u(6,12,e.source),e.source):`${(d(e.locale.person.firstNameFemale,e.source)??d(e.locale.person.firstNameMale,e.source)??`user`).toLowerCase()}.${(d(e.locale.person.lastName,e.source)??`name`).toLowerCase()}`}function Oe(e,t={}){let n=t.length??12;if(t.memorable){let t=(d(e.locale.person.firstNameFemale,e.source)??d(e.locale.person.firstNameMale,e.source)??`user`).toLowerCase(),r=(d(e.locale.person.lastName,e.source)??`name`).toLowerCase(),i=String(u(10,99,e.source)),a=d(I.split(``),e.source)??`!`,o=`${t}${r}${i}${a}`;if(o.length<=n)return o+m(n-o.length,e.source);let s=`${i}${a}`,c=n-s.length,l=s+(c>0?(t+r).slice(0,c):``);return l.length<n?l+m(n-l.length,e.source):l.slice(0,n)}let r=`ABCDEFGHIJKLMNOPQRSTUVWXYZ`,i=[r,`abcdefghijklmnopqrstuvwxyz`,`0123456789`,I],a=[];for(let t of i)a.push(t[Math.floor(e.source.next()*t.length)]??r[0]);for(;a.length<n;)a.push(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+-=[]{}|;:,.<>?`[Math.floor(e.source.next()*88)]??`a`);for(let t=a.length-1;t>0;t--){let n=Math.floor(e.source.next()*(t+1));[a[t],a[n]]=[a[n],a[t]]}return a.slice(0,n).join(``)}function R(e){let t=d(F.protocols,e.source)??`https`,n=`${d([`www`,`api`,`app`,`mail`,`static`,`cdn`],e.source)??`www`}.${d(F.domains,e.source)??`example`}.${d(F.tlds,e.source)??`com`}`,r=u(1,4,e.source),i=[];for(let t=0;t<r;t++){let t=d(Ee,e.source)??`api`;u(0,2,e.source)===0?i.push(`${t}-${m(u(2,5),e.source).toLowerCase()}`):i.push(t)}return`${t}://${n}/${i.join(`/`)}`}function ke(e){return`${d(F.domains,e.source)??`example`}.${d(F.tlds,e.source)??`com`}`}function Ae(e,t=4){if(t===6){let t=[];for(let n=0;n<8;n++)t.push(p(4,e.source));return t.join(`:`)}let n=[];for(let t=0;t<4;t++)n.push(u(0,255,e.source));return n.join(`.`)}function je(e){let t=[];for(let n=0;n<6;n++)t.push(p(2,e.source));return t.join(`:`)}function Me(e){return d(F.userAgents,e.source)??F.userAgents[0]}function Ne(e){return d(F.httpMethods,e.source)??`GET`}function Pe(e){return d(F.statusCodes,e.source)??200}function Fe(e){return d(F.mimeTypes,e.source)??`text/plain`}var Ie=s({city:()=>Le,country:()=>Ve,latitude:()=>V,longitude:()=>H,nearbyGPSCoordinate:()=>He,state:()=>Be,street:()=>B,streetAddress:()=>Re,zipCode:()=>ze});function z(e){return e.locale.location}function Le(e){return d(z(e).cities,e.source)}function B(e){return d(z(e).streets,e.source)}function Re(e){return`${Math.floor(c(1,1e3,e.source))} ${B(e)}`}function ze(e){return z(e).zipPattern.replace(/#/g,()=>String(Math.floor((e.source.next()??0)*10)))}function Be(e){return d(z(e).states,e.source)}function Ve(e){return d(z(e).countries,e.source)}function V(e){return c(-90,90,e.source)}function H(e){return c(-180,180,e.source)}function He(e,t){let n=t??{lat:V(e),lng:H(e)};return{lat:c(n.lat-1,n.lat+1,e.source),lng:c(n.lng-1,n.lng+1,e.source)}}var Ue={words:`lorem.ipsum.dolor.sit.amet.consectetur.adipiscing.elit.sed.do.eiusmod.tempor.incididunt.ut.labore.et.dolore.magna.aliqua.enim.ad.minim.veniam.quis.nostrud.exercitation.ullamco.laboris.nisi.aliquip.ex.ea.commodo.consequat.duis.aute.irure.in.reprehenderit.voluptate.velit.esse.cillum.fugiat.nulla.pariatur.excepteur.sint.occaecat.cupidatat.non.proident.sunt.culpa.qui.officia.deserunt.mollit.anim.id.est.laborum`.split(`.`)},We=s({lines:()=>qe,paragraph:()=>q,paragraphs:()=>Ge,sentence:()=>G,sentences:()=>K,slug:()=>Ke,word:()=>U,words:()=>W});function U(e){return d(Ue.words,e.source)}function W(e,t=3){let n=[];for(let r=0;r<t;r++)n.push(U(e));return n.join(` `)}function G(e,t){let n=W(e,t??Math.floor(c(6,13,e.source)));return`${n.charAt(0).toUpperCase()}${n.slice(1)}.`}function K(e,t=3){let n=[];for(let r=0;r<t;r++)n.push(G(e));return n.join(` `)}function q(e,t){return K(e,t??Math.floor(c(3,8,e.source)))}function Ge(e,t=3){let n=[];for(let r=0;r<t;r++)n.push(q(e));return n.join(`
2
+ `)}function Ke(e,t=3){let n=[];for(let r=0;r<t;r++)n.push(U(e));return n.join(`-`)}function qe(e,t=5){let n=[];for(let r=0;r<t;r++)n.push(G(e));return n.join(`
3
+ `)}function Je(e,t=.5){return(e?.next()??crypto.getRandomValues(new Uint32Array(1))[0]/4294967296)<t}var Ye=s({firstName:()=>Y,fullName:()=>Xe,gender:()=>Ze,jobTitle:()=>et,lastName:()=>X,prefix:()=>Qe,suffix:()=>$e});function J(e){return e.locale.person}function Y(e){let t=J(e);return d(Je(e.source)?t.firstNameMale:t.firstNameFemale,e.source)}function X(e){return d(J(e).lastName,e.source)}function Xe(e){return`${Y(e)} ${X(e)}`}function Ze(e){return d(J(e).gender,e.source)}function Qe(e){return d(J(e).prefix,e.source)}function $e(e){let t=J(e);return t.suffix.length===0?``:d(t.suffix,e.source)}function et(e){let t=J(e);return`${d(t.jobAreas,e.source)} ${d(t.jobTypes,e.source)}`}var tt=class extends Error{constructor(e,t){super(e,t),this.name=new.target.name,Object.setPrototypeOf(this,new.target.prototype)}},nt=class extends tt{};function Z(e,t,n){if(e===void 0)return`undefined`;if(e===null)return`null`;if(typeof e==`bigint`)return`${e}n`;if(typeof e!=`object`)return JSON.stringify(e);if(n.has(e))return`[Circular]`;if(n.add(e),e instanceof Date)return`[Date:${Number.isNaN(e.getTime())?`Invalid`:e.toISOString()}]`;if(e instanceof RegExp)return`[RegExp:${e.source}/${e.flags}]`;if(e instanceof Set)return`[Set:${[...e].map(e=>Z(e,t,n)).sort().join(`,`)}]`;if(e instanceof Map)return`[Map:${[...e.entries()].map(([e,r])=>[Z(e,t,n),Z(r,t,n)]).sort(([e,t],[n,r])=>e===n?t.localeCompare(r):e.localeCompare(n)).map(([e,t])=>`${e}=>${t}`).join(`,`)}]`;if(Array.isArray(e))return`[${e.map(e=>Z(e,t,n)).join(`,`)}]`;let r=Object.getPrototypeOf(e);if(r!==Object.prototype&&r!==null){if(t?.onClassInstance===`throw`)throw new nt(`hash: unsupported type ${e.constructor?.name??`unknown`}`);return String(e)}let i=e;return`{${Object.keys(i).filter(e=>i[e]!==void 0).sort().map(e=>`${JSON.stringify(e)}:${Z(i[e],t,n)}`).join(`,`)}}`}function rt(e,t){return Z(e,t,new Set)}function Q(e){let t=e>>>0;return{next(){t=t+1831565813>>>0;let e=t;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}}function it(e){if(e==null)return at();if(typeof e==`number`){if(!Number.isFinite(e))throw new x(`createSeed: numeric seed must be finite, got ${e}`);return Q(Math.trunc(e))}let t=rt(e),n=0;for(let e=0;e<t.length;e++)n=Math.imul(n,31)+t.charCodeAt(e)>>>0;return Q(n)}function at(){return{next(){return crypto.getRandomValues(new Uint32Array(1))[0]/4294967296}}}var $={cronExpressions:[`0 * * * *`,`0 0 * * *`,`0 0 * * 0`,`*/5 * * * *`,`0 12 * * 1-5`,`0 0 1 * *`,`0 0 1 1 *`,`0 3 * * *`,`30 7 * * 1-5`,`0 18 * * 5`],directories:[`src`,`dist`,`build`,`lib`,`test`,`docs`,`config`,`assets`,`public`,`private`,`tmp`,`cache`,`var`,`opt`,`etc`],fileExtensions:`txt.pdf.doc.docx.xls.xlsx.ppt.pptx.jpg.png.gif.svg.webp.ico.mp3.wav.flac.ogg.mp4.avi.mkv.webm.zip.tar.gz.rar.7z.js.ts.json.xml.html.css.md.py.java.go.rs.c.cpp`.split(`.`),fileNames:[`document`,`report`,`summary`,`notes`,`draft`,`config`,`readme`,`index`,`main`,`app`,`data`,`backup`,`export`,`import`,`log`],mimeTypes:{avi:`video/x-msvideo`,css:`text/css`,gif:`image/gif`,gz:`application/gzip`,html:`text/html`,jpeg:`image/jpeg`,jpg:`image/jpeg`,js:`application/javascript`,json:`application/json`,mp3:`audio/mpeg`,mp4:`video/mp4`,pdf:`application/pdf`,png:`image/png`,svg:`image/svg+xml`,tar:`application/x-tar`,txt:`text/plain`,wav:`audio/wav`,webp:`image/webp`,xml:`application/xml`,zip:`application/zip`}},ot=s({cron:()=>mt,fileExtension:()=>st,fileName:()=>ct,filePath:()=>lt,mimeType:()=>ut,port:()=>pt,process:()=>ht,semver:()=>dt,uuid:()=>ft});function st(e){return d($.fileExtensions,e.source)}function ct(e){return`${d($.fileNames,e.source)}.${st(e)}`}function lt(e){let t=u(1,4,e.source),n=[];for(let r=0;r<t;r++)n.push(d($.directories,e.source));return`${n.join(`/`)}/${ct(e)}`}function ut(e){return d(Object.values($.mimeTypes),e.source)}function dt(e,t){let n=`${u(0,t?.maxMajor??20,e.source)}.${u(0,20,e.source)}.${u(0,99,e.source)}`;if(t?.includePrerelease&&e.source.next()<.3){let t=d([`alpha`,`beta`,`rc`,`next`],e.source),r=u(1,10,e.source);n+=`-${t}.${r}`}return n}function ft(){return ee()}function pt(e,t){return u(t?.min??1024,t?.max??65535,e.source)}function mt(e){return d($.cronExpressions,e.source)}function ht(e){return`${d([`node`,`python`,`ruby`,`java`,`go`,`rust`,`bash`],e.source)}_${m(u(3,8,e.source),e.source)}`}function gt(e){let{locale:t,seed:n}=e,r=it(n),i=new AbortController,a=!1,o={locale:t,source:r},s=e=>{let t={};for(let[n,r]of Object.entries(e))typeof r==`function`&&(t[n]=(...e)=>r(o,...e));return t},c=()=>{a||(a=!0,i.abort())};return{commerce:s(ae),date:s(de),get disposalSignal(){return i.signal},dispose:c,get disposed(){return a},finance:s(ye),internet:s(Te),locale:t,location:s(Ie),lorem:s(We),person:s(Ye),seed:n,system:s(ot),[Symbol.dispose]:c}}var _t={code:`de`,location:{cities:[`Berlin`,`Hamburg`,`München`,`Köln`,`Frankfurt am Main`,`Stuttgart`,`Düsseldorf`,`Leipzig`,`Dortmund`,`Essen`,`Bremen`,`Dresden`,`Hannover`,`Nürnberg`,`Duisburg`,`Bochum`,`Wuppertal`,`Bielefeld`,`Bonn`,`Münster`],countries:[`Deutschland`,`Österreich`,`Schweiz`,`Frankreich`,`Italien`,`Spanien`,`Niederlande`,`Belgien`,`Polen`,`Tschechien`,`Dänemark`,`Schweden`,`Norwegen`,`Finnland`,`Portugal`],states:[`Baden-Württemberg`,`Bayern`,`Berlin`,`Brandenburg`,`Bremen`,`Hamburg`,`Hessen`,`Mecklenburg-Vorpommern`,`Niedersachsen`,`Nordrhein-Westfalen`,`Rheinland-Pfalz`,`Saarland`,`Sachsen`,`Sachsen-Anhalt`,`Schleswig-Holstein`,`Thüringen`],streets:[`Hauptstraße`,`Schulstraße`,`Bahnhofstraße`,`Gartenstraße`,`Bergstraße`,`Dorfstraße`,`Lindenstraße`,`Goethestraße`,`Schillerstraße`,`Mozartstraße`,`Bahnhofplatz`,`Marktplatz`,`Kirchplatz`,`Schlossplatz`,`Waldrand`],zipPattern:`#####`},person:{firstNameFemale:`Mia.Emma.Sophia.Hannah.Emilia.Lina.Ella.Marie.Clara.Lena.Lea.Lilly.Anna.Ida.Mila.Luisa.Nora.Greta.Frieda.Johanna.Lotte.Charlotte.Mathilda.Lara.Sarah.Julia.Laura.Lisa.Katharina.Sabine.Andrea.Petra.Susanne.Nicole.Stefanie.Christina.Tanja.Birgit.Monika.Ursula.Helga.Ingrid.Brigitte.Gisela.Renate.Angelika.Claudia.Sandra.Beate.Klara`.split(`.`),firstNameMale:`Ben.Paul.Leon.Finn.Elias.Jonas.Felix.Maximilian.Max.Luca.Noah.Henry.Lukas.Moritz.David.Niklas.Philipp.Julian.Tim.Tom.Simon.Alexander.Liam.Emil.Daniel.Sebastian.Matteo.Fabian.Jakob.Tobias.Florian.Marvin.Anton.Johannes.Stefan.Andreas.Michael.Thomas.Christian.Klaus.Peter.Wolfgang.Jürgen.Frank.Hans.Martin.Rolf.Bernd.Uwe.Karl`.split(`.`),gender:[`Männlich`,`Weiblich`,`Nicht-binär`,`Divers`],jobAreas:[`Finanzen`,`IT`,`Marketing`,`Vertrieb`,`Personalwesen`,`Betrieb`,`Ingenieurwesen`,`Forschung`,`Design`,`Recht`,`Kundenservice`,`Produkt`,`Logistik`,`Buchhaltung`,`Öffentlichkeitsarbeit`,`Qualitätssicherung`,`Daten`,`Sicherheit`,`Kommunikation`,`Verwaltung`],jobTypes:[`Ingenieur`,`Manager`,`Analyst`,`Spezialist`,`Koordinator`,`Direktor`,`Berater`,`Entwickler`,`Architekt`,`Administrator`,`Beamter`,`Mitarbeiter`,`Aufseher`,`Techniker`,`Assistent`],lastName:`Müller.Schmidt.Schneider.Fischer.Weber.Meyer.Wagner.Becker.Schulz.Hoffmann.Schäfer.Koch.Bauer.Richter.Klein.Wolf.Schröder.Neumann.Schwarz.Zimmermann.Braun.Krüger.Hofmann.Hartmann.Lange.Schmitt.Werner.Krause.Lehmann.Schmid.Schulze.Maier.Köhler.Herrmann.König.Walter.Mayer.Huber.Kaiser.Fuchs.Peters.Lang.Scholz.Möller.Weiß.Jung.Hahn.Schubert.Vogel.Friedrich`.split(`.`),prefix:[`Herr`,`Frau`,`Dr.`,`Prof.`],suffix:[]}},vt={code:`en`,location:{cities:[`New York`,`Los Angeles`,`Chicago`,`Houston`,`Phoenix`,`Philadelphia`,`San Antonio`,`San Diego`,`Dallas`,`San Jose`,`Austin`,`Jacksonville`,`Fort Worth`,`Columbus`,`Charlotte`,`San Francisco`,`Indianapolis`,`Seattle`,`Denver`,`Boston`],countries:[`United States`,`United Kingdom`,`Germany`,`France`,`Italy`,`Spain`,`Netherlands`,`Belgium`,`Switzerland`,`Austria`,`Canada`,`Australia`,`Japan`,`Brazil`,`India`],states:`Alabama.Alaska.Arizona.Arkansas.California.Colorado.Connecticut.Delaware.Florida.Georgia.Hawaii.Idaho.Illinois.Indiana.Iowa.Kansas.Kentucky.Louisiana.Maine.Maryland.Massachusetts.Michigan.Minnesota.Mississippi.Missouri.Montana.Nebraska.Nevada.New Hampshire.New Jersey.New Mexico.New York.North Carolina.North Dakota.Ohio.Oklahoma.Oregon.Pennsylvania.Rhode Island.South Carolina.South Dakota.Tennessee.Texas.Utah.Vermont.Virginia.Washington.West Virginia.Wisconsin.Wyoming`.split(`.`),streets:[`Main St`,`Oak Ave`,`Maple Dr`,`Cedar Ln`,`Pine Rd`,`Elm St`,`Washington Blvd`,`Park Ave`,`Lake Dr`,`Hill Rd`,`River Rd`,`Spring St`,`Forest Dr`,`Sunset Blvd`,`Highland Ave`],zipPattern:`#####`},person:{firstNameFemale:`Mary.Patricia.Jennifer.Linda.Elizabeth.Barbara.Susan.Jessica.Sarah.Karen.Lisa.Nancy.Betty.Margaret.Sandra.Ashley.Kimberly.Emily.Donna.Michelle.Carol.Amanda.Dorothy.Melissa.Deborah.Stephanie.Rebecca.Sharon.Laura.Cynthia.Kathleen.Amy.Shirley.Angela.Helen.Anna.Brenda.Pamela.Nicole.Emma.Samantha.Katherine.Christine.Debra.Rachel.Catherine.Carolyn.Janet.Ruth.Maria`.split(`.`),firstNameMale:`James.John.Robert.Michael.William.David.Richard.Joseph.Thomas.Charles.Christopher.Daniel.Matthew.Anthony.Mark.Donald.Steven.Paul.Andrew.Joshua.Kenneth.Kevin.Brian.George.Edward.Ronald.Timothy.Jason.Jeffrey.Ryan.Jacob.Gary.Nicholas.Eric.Jonathan.Stephen.Larry.Justin.Scott.Brandon.Benjamin.Samuel.Gregory.Frank.Alexander.Raymond.Patrick.Jack.Dennis.Jerry`.split(`.`),gender:[`Male`,`Female`,`Non-binary`,`Other`],jobAreas:[`Finance`,`IT`,`Marketing`,`Sales`,`Human Resources`,`Operations`,`Engineering`,`Research`,`Design`,`Legal`,`Customer Support`,`Product`,`Logistics`,`Accounting`,`Public Relations`,`Quality Assurance`,`Data`,`Security`,`Communications`,`Administration`],jobTypes:[`Engineer`,`Manager`,`Analyst`,`Specialist`,`Coordinator`,`Director`,`Consultant`,`Developer`,`Architect`,`Administrator`,`Officer`,`Representative`,`Supervisor`,`Technician`,`Assistant`],lastName:`Smith.Johnson.Williams.Brown.Jones.Garcia.Miller.Davis.Rodriguez.Martinez.Hernandez.Lopez.Gonzalez.Wilson.Anderson.Thomas.Taylor.Moore.Jackson.Martin.Lee.Perez.Thompson.White.Harris.Sanchez.Clark.Ramirez.Lewis.Robinson.Walker.Young.Allen.King.Wright.Scott.Torres.Nguyen.Hill.Flores.Green.Adams.Nelson.Baker.Hall.Rivera.Campbell.Mitchell.Carter.Roberts`.split(`.`),prefix:[`Mr.`,`Mrs.`,`Ms.`,`Dr.`,`Prof.`],suffix:[`Jr.`,`Sr.`,`II`,`III`,`IV`,`PhD`]}};export{b as IllusionistError,x as IllusionistSeedError,E as amount,P as bank,he as between,O as bic,ge as birthday,j as bitcoinAddress,Le as city,Ve as country,gt as createIllusion,it as createSeed,A as creditCardCVV,k as creditCardNumber,_t as de,ce as department,ke as domainName,L as email,vt as en,M as ethereumAddress,Y as firstName,Xe as fullName,pe as future,Ze as gender,Ne as httpMethod,D as iban,Ae as ip,et as jobTitle,X as lastName,V as latitude,qe as lines,H as longitude,je as mac,Fe as mimeType,ve as month,Q as mulberry32,He as nearbyGPSCoordinate,q as paragraph,Ge as paragraphs,Oe as password,fe as past,Qe as prefix,le as price,g as productAdjective,ue as productDescription,_ as productMaterial,se as productName,v as productNoun,me as recent,G as sentence,K as sentences,Ke as slug,Be as state,Pe as statusCode,B as street,Re as streetAddress,$e as suffix,N as transactionType,R as url,Me as userAgent,De as username,_e as weekday,U as word,W as words,ze as zipCode};
4
+ //# sourceMappingURL=illusionist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"illusionist.js","names":["e","e","t","e","n","t","t","e"],"sources":["../src/_helpers/float.ts","../../arsenal/dist/random/uuid.js","../../arsenal/dist/random/_index.js","../../arsenal/dist/random/random.js","../../arsenal/dist/random/draw.js","../src/_helpers/int.ts","../src/_helpers/string.ts","../src/commerce/data.ts","../src/commerce/commerce.ts","../src/date/date.ts","../src/errors.ts","../src/finance/data.ts","../src/finance/finance.ts","../src/internet/data.ts","../src/internet/internet.ts","../src/location/location.ts","../src/lorem/data.ts","../src/lorem/lorem.ts","../src/_helpers/boolean.ts","../src/person/person.ts","../../arsenal/dist/errors.js","../../arsenal/dist/object/hash.js","../src/seed/mulberry32.ts","../src/seed/create-seed.ts","../src/system/data.ts","../src/system/system.ts","../src/factory.ts","../src/location/data/de.ts","../src/person/data/de.ts","../src/locales/de.ts","../src/location/data/en.ts","../src/person/data/en.ts","../src/locales/en.ts"],"sourcesContent":["import type { RandomSource } from '@vielzeug/arsenal/random';\n\n/**\n * Generates a random float in `[min, max)`.\n * Pass `min` = `max` for a constant; the result is still `min` (not `max`).\n */\nexport function float(min: number, max: number, source?: RandomSource): number {\n if (min > max) return min;\n\n const span = max - min;\n const raw = source?.next() ?? crypto.getRandomValues(new Uint32Array(1))[0]! / 0x100000000;\n\n return min + raw * span;\n}\n\n/** Generates a random float with a fixed number of decimal places. */\nexport function floatFixed(min: number, max: number, decimals = 2, source?: RandomSource): number {\n const factor = 10 ** decimals;\n const scaled = float(min * factor, max * factor, source);\n\n return Math.round(scaled) / factor;\n}\n","//#region src/random/uuid.ts\nfunction e() {\n\treturn crypto.randomUUID();\n}\n//#endregion\nexport { e as uuid };\n\n//# sourceMappingURL=uuid.js.map","//#region src/random/_index.ts\nfunction e(e, t) {\n\tlet n = t?.next() ?? crypto.getRandomValues(/* @__PURE__ */ new Uint32Array(1))[0] / 4294967296;\n\tif (!Number.isFinite(n) || n < 0 || n >= 1) throw RangeError(\"random source must return a finite number in [0, 1)\");\n\treturn Math.floor(n * e);\n}\n//#endregion\nexport { e as randomIndex };\n\n//# sourceMappingURL=_index.js.map","import { randomIndex as e } from \"./_index.js\";\n//#region src/random/random.ts\nfunction t(t, n, r) {\n\tif (t > n) throw RangeError(\"random: minimum value must not be greater than maximum value\");\n\treturn e(n - t + 1, r) + t;\n}\n//#endregion\nexport { t as random };\n\n//# sourceMappingURL=random.js.map","import { randomIndex as e } from \"./_index.js\";\nimport { random as t } from \"./random.js\";\n//#region src/random/draw.ts\nfunction n(e, n) {\n\tif (e.length !== 0) return e[t(0, e.length - 1, n)];\n}\nfunction r(t, n, r) {\n\tlet i = Math.max(0, Math.min(t.length, Math.floor(n)));\n\tif (i === 0) return [];\n\tif (i === t.length) return [...t];\n\tlet a = [...t];\n\tfor (let t = a.length - 1; t > 0; t--) {\n\t\tlet n = e(t + 1, r), i = a[t];\n\t\ta[t] = a[n], a[n] = i;\n\t}\n\treturn a.slice(0, i);\n}\n//#endregion\nexport { n as draw, r as drawMany };\n\n//# sourceMappingURL=draw.js.map","import type { RandomSource } from '@vielzeug/arsenal/random';\nimport { random } from '@vielzeug/arsenal/random';\n\n/** Generates a random integer in `[min, max]` (inclusive). */\nexport function int(min: number, max: number, source?: RandomSource): number {\n return random(min, max, source);\n}\n","import type { RandomSource } from '@vielzeug/arsenal/random';\nimport { draw } from '@vielzeug/arsenal/random';\n\n/** Picks a random element from an array. Returns `undefined` for empty arrays. */\nexport function pick<T>(array: readonly T[], source?: RandomSource): T | undefined {\n return draw([...array], source);\n}\n\n/** Generates a string of random digits with a fixed length. */\nexport function numericString(length: number, source?: RandomSource): string {\n let result = '';\n\n for (let i = 0; i < length; i++) {\n result += Math.floor((source?.next() ?? crypto.getRandomValues(new Uint32Array(1))[0]! / 0x100000000) * 10);\n }\n\n return result;\n}\n\n/** Generates a random hex string of the given length. */\nexport function hexString(length: number, source?: RandomSource): string {\n const chars = '0123456789abcdef';\n let result = '';\n\n for (let i = 0; i < length; i++) {\n const idx = Math.floor((source?.next() ?? crypto.getRandomValues(new Uint32Array(1))[0]! / 0x100000000) * 16);\n\n result += chars[idx];\n }\n\n return result;\n}\n\n/** Generates a random alphanumeric string of the given length. */\nexport function alphanumeric(length: number, source?: RandomSource): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let result = '';\n\n for (let i = 0; i < length; i++) {\n const idx = Math.floor(\n (source?.next() ?? crypto.getRandomValues(new Uint32Array(1))[0]! / 0x100000000) * chars.length,\n );\n\n result += chars[idx];\n }\n\n return result;\n}\n\n/** Generates a random Base58 string (no 0, O, I, l) — used for Bitcoin-style addresses. */\nexport function base58String(length: number, source?: RandomSource): string {\n const chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\n let result = '';\n\n for (let i = 0; i < length; i++) {\n const idx = Math.floor(\n (source?.next() ?? crypto.getRandomValues(new Uint32Array(1))[0]! / 0x100000000) * chars.length,\n );\n\n result += chars[idx];\n }\n\n return result;\n}\n","export const COMMERCE_DATA = {\n departments: [\n 'Books',\n 'Movies',\n 'Music',\n 'Games',\n 'Electronics',\n 'Computers',\n 'Home',\n 'Garden',\n 'Tools',\n 'Grocery',\n 'Health',\n 'Beauty',\n 'Toys',\n 'Kids',\n 'Baby',\n 'Clothing',\n 'Shoes',\n 'Jewelry',\n 'Sports',\n 'Outdoors',\n 'Automotive',\n ],\n productAdjectives: [\n 'Small',\n 'Ergonomic',\n 'Rustic',\n 'Intelligent',\n 'Gorgeous',\n 'Incredible',\n 'Fantastic',\n 'Practical',\n 'Sleek',\n 'Awesome',\n 'Generic',\n 'Handmade',\n 'Licensed',\n 'Refined',\n 'Unbranded',\n 'Tasty',\n ],\n productMaterials: [\n 'Steel',\n 'Wooden',\n 'Concrete',\n 'Plastic',\n 'Cotton',\n 'Granite',\n 'Rubber',\n 'Metal',\n 'Soft',\n 'Fresh',\n 'Frozen',\n ],\n productNouns: [\n 'Chair',\n 'Car',\n 'Computer',\n 'Gloves',\n 'Pants',\n 'Shirt',\n 'Table',\n 'Shoes',\n 'Hat',\n 'Plate',\n 'Knife',\n 'Bottle',\n 'Coat',\n 'Lamp',\n 'Keyboard',\n 'Bag',\n 'Bench',\n 'Clock',\n 'Watch',\n 'Wallet',\n ],\n} as const;\n","import { type Currency, EUR, GBP, type Money, money, USD } from '@vielzeug/coins';\n\nimport { floatFixed } from '../_helpers/float';\nimport { int } from '../_helpers/int';\nimport { pick } from '../_helpers/string';\nimport type { IllusionistContext } from '../types';\nimport { COMMERCE_DATA } from './data';\n\nconst CURRENCIES: Record<'USD' | 'EUR' | 'GBP', Currency> = { EUR, GBP, USD };\n\nexport type PriceOptions = {\n readonly min?: number;\n readonly max?: number;\n readonly currency?: 'USD' | 'EUR' | 'GBP';\n};\n\nexport function productAdjective(ctx: IllusionistContext): string {\n return pick(COMMERCE_DATA.productAdjectives, ctx.source)!;\n}\n\nexport function productMaterial(ctx: IllusionistContext): string {\n return pick(COMMERCE_DATA.productMaterials, ctx.source)!;\n}\n\nexport function productNoun(ctx: IllusionistContext): string {\n return pick(COMMERCE_DATA.productNouns, ctx.source)!;\n}\n\nexport function productName(ctx: IllusionistContext): string {\n return `${productAdjective(ctx)} ${productMaterial(ctx)} ${productNoun(ctx)}`;\n}\n\nexport function department(ctx: IllusionistContext): string {\n return pick(COMMERCE_DATA.departments, ctx.source)!;\n}\n\nexport function price(ctx: IllusionistContext, opts: PriceOptions = {}): Money {\n const min = opts.min ?? 0.01;\n const max = opts.max ?? 1000;\n const code = opts.currency ?? 'USD';\n const amount = floatFixed(min, max, 2, ctx.source);\n\n return money(amount.toFixed(2), CURRENCIES[code]);\n}\n\nexport function productDescription(ctx: IllusionistContext): string {\n const sentences = int(1, 2, ctx.source);\n const parts: string[] = [];\n\n for (let i = 0; i < sentences; i++) {\n const adjective = pick(COMMERCE_DATA.productAdjectives, ctx.source)!;\n const material = pick(COMMERCE_DATA.productMaterials, ctx.source)!;\n const noun = pick(COMMERCE_DATA.productNouns, ctx.source)!;\n const department = pick(COMMERCE_DATA.departments, ctx.source)!;\n\n parts.push(\n `The ${adjective.toLowerCase()} ${material.toLowerCase()} ${noun.toLowerCase()} is a great choice for your ${department.toLowerCase()} needs.`,\n );\n }\n\n return parts.join(' ');\n}\n","import { shift, Temporal } from '@vielzeug/tempo';\n\nimport { int } from '../_helpers/int';\nimport type { IllusionistContext } from '../types';\n\ntype DateOptions = {\n years?: number;\n ref?: Temporal.ZonedDateTime;\n};\n\nfunction resolveRef(ref?: Temporal.ZonedDateTime): Temporal.ZonedDateTime {\n return ref ?? Temporal.Now.zonedDateTimeISO('UTC');\n}\n\n/**\n * Generates a past date within the given number of years from `ref` (default: now).\n */\nexport function past(ctx: IllusionistContext, options?: DateOptions): Temporal.ZonedDateTime {\n const ref = resolveRef(options?.ref);\n const years = options?.years ?? 1;\n const maxSeconds = years * 365 * 24 * 60 * 60;\n const minSeconds = 1;\n\n return shift(ref, { seconds: -int(minSeconds, maxSeconds, ctx.source) });\n}\n\n/**\n * Generates a future date within the given number of years from `ref` (default: now).\n */\nexport function future(ctx: IllusionistContext, options?: DateOptions): Temporal.ZonedDateTime {\n const ref = resolveRef(options?.ref);\n const years = options?.years ?? 1;\n const maxSeconds = years * 365 * 24 * 60 * 60;\n\n return shift(ref, { seconds: int(1, maxSeconds, ctx.source) });\n}\n\n/**\n * Generates a recent date within the given number of days from `ref` (default: now).\n */\nexport function recent(\n ctx: IllusionistContext,\n options?: { days?: number; ref?: Temporal.ZonedDateTime },\n): Temporal.ZonedDateTime {\n const ref = resolveRef(options?.ref);\n const days = options?.days ?? 1;\n const maxSeconds = days * 24 * 60 * 60;\n\n return shift(ref, { seconds: -int(1, maxSeconds, ctx.source) });\n}\n\n/**\n * Generates a date between `from` and `to`.\n */\nexport function between(\n ctx: IllusionistContext,\n from: Temporal.ZonedDateTime,\n to: Temporal.ZonedDateTime,\n): Temporal.ZonedDateTime {\n const fromNs = from.toInstant().epochNanoseconds;\n const toNs = to.toInstant().epochNanoseconds;\n\n if (fromNs > toNs) {\n return from;\n }\n\n const spanNs = toNs - fromNs;\n const spanSeconds = Number(spanNs / 1_000_000_000n);\n const offsetSeconds = Math.floor(ctx.source.next() * spanSeconds);\n\n return from.add({ seconds: offsetSeconds });\n}\n\n/**\n * Generates a random birthday — a date with a random year (default 18-80 years ago) and random month/day.\n */\nexport function birthday(\n ctx: IllusionistContext,\n options?: { minAge?: number; maxAge?: number; ref?: Temporal.ZonedDateTime },\n): Temporal.PlainDate {\n const ref = resolveRef(options?.ref);\n const minAge = options?.minAge ?? 18;\n const maxAge = options?.maxAge ?? 80;\n const age = int(minAge, maxAge, ctx.source);\n const month = int(1, 12, ctx.source);\n const day = int(1, 28, ctx.source);\n\n return ref.toPlainDate().subtract({ years: age }).with({ day, month });\n}\n\n/**\n * Returns a random weekday name.\n */\nexport function weekday(ctx: IllusionistContext, locale?: string): string {\n const days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n const loc = locale ?? ctx.locale.code;\n const localized =\n loc === 'de' ? ['Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag'] : days;\n\n return localized[int(0, 6, ctx.source)]!;\n}\n\n/**\n * Returns a random month name.\n */\nexport function month(ctx: IllusionistContext, locale?: string): string {\n const months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ];\n const loc = locale ?? ctx.locale.code;\n const localized =\n loc === 'de'\n ? [\n 'Januar',\n 'Februar',\n 'März',\n 'April',\n 'Mai',\n 'Juni',\n 'Juli',\n 'August',\n 'September',\n 'Oktober',\n 'November',\n 'Dezember',\n ]\n : months;\n\n return localized[int(0, 11, ctx.source)]!;\n}\n","/** Base class for all illusionist errors. Use `instanceof IllusionistError` to catch any illusionist-originated error. */\nexport class IllusionistError extends Error {\n constructor(message: string, opts?: ErrorOptions) {\n super(message, opts);\n this.name = new.target.name;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\n/** Thrown when the seeded random source produces an invalid value. */\nexport class IllusionistSeedError extends IllusionistError {}\n","export const FINANCE_DATA = {\n banks: [\n 'Deutsche Bank',\n 'Commerzbank',\n 'Sparkasse',\n 'Barclays',\n 'HSBC',\n 'BNP Paribas',\n 'Santander',\n 'ING',\n 'UniCredit',\n 'UBS',\n ],\n creditCardIins: { amex: ['34', '37'], mastercard: ['51', '52', '53', '54', '55'], visa: ['4'] },\n ibanCountryCodes: { AT: 'AT', BE: 'BE', CH: 'CH', DE: 'DE', ES: 'ES', FR: 'FR', GB: 'GB', IT: 'IT', NL: 'NL' },\n ibanLengths: { AT: 20, BE: 16, CH: 21, DE: 22, ES: 24, FR: 27, GB: 22, IT: 27, NL: 18 },\n transactionTypes: ['payment', 'transfer', 'deposit', 'withdrawal', 'refund', 'fee'],\n} as const;\n","import { type Currency, EUR, GBP, type Money, money, USD } from '@vielzeug/coins';\n\nimport { floatFixed } from '../_helpers/float';\nimport { int } from '../_helpers/int';\nimport { alphanumeric, base58String, hexString, numericString, pick } from '../_helpers/string';\nimport type { IllusionistContext } from '../types';\nimport { FINANCE_DATA } from './data';\n\nconst CURRENCIES: Record<'USD' | 'EUR' | 'GBP', Currency> = { EUR, GBP, USD };\n\nconst CREDIT_CARD_TYPES = ['visa', 'mastercard', 'amex'] as const;\ntype CreditCardType = (typeof CREDIT_CARD_TYPES)[number];\n\nconst IBAN_COUNTRIES = Object.keys(FINANCE_DATA.ibanCountryCodes) as (keyof typeof FINANCE_DATA.ibanCountryCodes)[];\n\nconst LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\nfunction letters(count: number, ctx: IllusionistContext): string {\n let result = '';\n\n for (let i = 0; i < count; i++) {\n result += LETTERS[Math.floor(ctx.source.next() * LETTERS.length)];\n }\n\n return result;\n}\n\n/** Computes `n mod 97` for an arbitrarily long numeric string. */\nfunction mod97(numeric: string): number {\n let remainder = 0;\n\n for (const ch of numeric) {\n remainder = (remainder * 10 + Number(ch)) % 97;\n }\n\n return remainder;\n}\n\n/** Computes the two IBAN check digits so the resulting IBAN passes the mod-97 validation. */\nfunction ibanCheckDigits(country: string, bban: string): string {\n const rearranged = `${bban}${country}00`;\n const numeric = rearranged.replace(/[A-Z]/g, (c) => String(c.charCodeAt(0) - 55));\n const check = 98 - mod97(numeric);\n\n return check.toString().padStart(2, '0');\n}\n\n/** Computes the Luhn check digit for a partial card number (the final digit is appended). */\nfunction luhnCheckDigit(partial: string): string {\n const digits = partial.split('').map(Number);\n let sum = 0;\n let double = true;\n\n for (let i = digits.length - 1; i >= 0; i--) {\n let d = digits[i]!;\n\n if (double) {\n d *= 2;\n if (d > 9) d -= 9;\n }\n\n sum += d;\n double = !double;\n }\n\n const check = (10 - (sum % 10)) % 10;\n\n return String(check);\n}\n\nexport type AmountOptions = {\n readonly min?: number;\n readonly max?: number;\n readonly currency?: 'USD' | 'EUR' | 'GBP';\n};\n\nexport function amount(ctx: IllusionistContext, opts: AmountOptions = {}): Money {\n const min = opts.min ?? 100;\n const max = opts.max ?? 10000;\n const code = opts.currency ?? 'USD';\n const value = floatFixed(min, max, 2, ctx.source);\n\n return money(value.toFixed(2), CURRENCIES[code]);\n}\n\nexport function iban(ctx: IllusionistContext, countryCode?: string): string {\n const country = (countryCode ?? pick(IBAN_COUNTRIES, ctx.source)!) as keyof typeof FINANCE_DATA.ibanLengths;\n\n if (!(country in FINANCE_DATA.ibanLengths)) {\n throw new RangeError(`iban: unsupported country code \"${countryCode}\". Supported: ${IBAN_COUNTRIES.join(', ')}`);\n }\n\n const totalLength = FINANCE_DATA.ibanLengths[country];\n const bbanLength = totalLength - 4;\n const bban = numericString(bbanLength, ctx.source);\n const checkDigits = ibanCheckDigits(country, bban);\n\n return `${country}${checkDigits}${bban}`;\n}\n\nexport function bic(ctx: IllusionistContext): string {\n const bankCode = letters(4, ctx);\n const country = letters(2, ctx);\n const location = alphanumeric(2, ctx.source).toUpperCase();\n const useBranch = int(0, 1, ctx.source) === 1;\n const branch = useBranch ? alphanumeric(3, ctx.source).toUpperCase() : '';\n\n return `${bankCode}${country}${location}${branch}`;\n}\n\nexport function creditCardNumber(ctx: IllusionistContext, type?: CreditCardType): string {\n const cardType = type ?? pick(CREDIT_CARD_TYPES, ctx.source)!;\n const iin = pick(FINANCE_DATA.creditCardIins[cardType], ctx.source)!;\n const totalLength = cardType === 'amex' ? 15 : 16;\n const partial = iin + numericString(totalLength - iin.length - 1, ctx.source);\n const checkDigit = luhnCheckDigit(partial);\n\n return `${partial}${checkDigit}`;\n}\n\nexport function creditCardCVV(ctx: IllusionistContext, type?: CreditCardType): string {\n const cardType = type ?? pick(CREDIT_CARD_TYPES, ctx.source)!;\n const length = cardType === 'amex' ? 4 : 3;\n\n return numericString(length, ctx.source);\n}\n\nexport function bitcoinAddress(ctx: IllusionistContext): string {\n const prefix = pick(['1', '3', 'bc1'], ctx.source)!;\n const suffixLength = int(25, 34, ctx.source);\n\n return `${prefix}${base58String(suffixLength, ctx.source)}`;\n}\n\nexport function ethereumAddress(ctx: IllusionistContext): string {\n return `0x${hexString(40, ctx.source)}`;\n}\n\nexport function transactionType(ctx: IllusionistContext): string {\n return pick(FINANCE_DATA.transactionTypes, ctx.source)!;\n}\n\nexport function bank(ctx: IllusionistContext): string {\n return pick(FINANCE_DATA.banks, ctx.source)!;\n}\n","export const INTERNET_DATA = {\n domains: ['example', 'test', 'demo', 'mail', 'web', 'tech', 'app', 'cloud', 'dev', 'info'],\n httpMethods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],\n mimeTypes: [\n 'text/plain',\n 'text/html',\n 'application/json',\n 'application/xml',\n 'application/octet-stream',\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/svg+xml',\n 'application/pdf',\n 'audio/mpeg',\n 'video/mp4',\n ],\n protocols: ['https', 'http'],\n statusCodes: [200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 405, 409, 418, 422, 429, 500, 502, 503],\n tlds: ['com', 'org', 'net', 'io', 'dev', 'co', 'app', 'tech', 'cloud', 'ai'],\n userAgents: [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1',\n 'Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36',\n ],\n} as const;\n","import { int } from '../_helpers/int';\nimport { alphanumeric, hexString, pick } from '../_helpers/string';\nimport type { IllusionistContext } from '../types';\nimport { INTERNET_DATA } from './data';\n\nconst SPECIAL_CHARS = '!@#$%^&*()_+-=[]{}|;:,.<>?';\n\nconst URL_PATH_WORDS = [\n 'api',\n 'v1',\n 'v2',\n 'users',\n 'posts',\n 'comments',\n 'articles',\n 'products',\n 'orders',\n 'items',\n 'search',\n 'auth',\n 'login',\n 'logout',\n 'profile',\n 'settings',\n 'dashboard',\n 'files',\n 'images',\n 'assets',\n 'static',\n 'public',\n 'private',\n 'admin',\n 'reports',\n];\n\n/** Generates an email address of the form `firstname.lastname@domain.tld`. */\nexport function email(ctx: IllusionistContext): string {\n const first = (\n pick(ctx.locale.person.firstNameFemale, ctx.source) ??\n pick(ctx.locale.person.firstNameMale, ctx.source) ??\n 'user'\n ).toLowerCase();\n const last = (pick(ctx.locale.person.lastName, ctx.source) ?? 'name').toLowerCase();\n const domain = pick(INTERNET_DATA.domains, ctx.source) ?? 'example';\n const tld = pick(INTERNET_DATA.tlds, ctx.source) ?? 'com';\n return `${first}.${last}@${domain}.${tld}`;\n}\n\n/** Generates a username: either a random alphanumeric string or a `firstname.lastname` pattern. */\nexport function username(ctx: IllusionistContext): string {\n if (int(0, 1, ctx.source) === 0) {\n return alphanumeric(int(6, 12, ctx.source), ctx.source);\n }\n const first = (\n pick(ctx.locale.person.firstNameFemale, ctx.source) ??\n pick(ctx.locale.person.firstNameMale, ctx.source) ??\n 'user'\n ).toLowerCase();\n const last = (pick(ctx.locale.person.lastName, ctx.source) ?? 'name').toLowerCase();\n return `${first}.${last}`;\n}\n\n/** Options for {@link password}. */\nexport type PasswordOptions = {\n /** Password length. Defaults to `12`. */\n length?: number;\n /** When `true`, builds a memorable password from name fragments and digits. */\n memorable?: boolean;\n};\n\n/** Generates a password mixing upper/lowercase letters, digits, and special characters. */\nexport function password(ctx: IllusionistContext, opts: PasswordOptions = {}): string {\n const length = opts.length ?? 12;\n\n if (opts.memorable) {\n const first = (\n pick(ctx.locale.person.firstNameFemale, ctx.source) ??\n pick(ctx.locale.person.firstNameMale, ctx.source) ??\n 'user'\n ).toLowerCase();\n const last = (pick(ctx.locale.person.lastName, ctx.source) ?? 'name').toLowerCase();\n const num = String(int(10, 99, ctx.source));\n const special = pick(SPECIAL_CHARS.split(''), ctx.source) ?? '!';\n const base = `${first}${last}${num}${special}`;\n if (base.length <= length) return base + alphanumeric(length - base.length, ctx.source);\n // Truncation would cut the special char/number — put them first, then fill from the name.\n const essential = `${num}${special}`;\n const remaining = length - essential.length;\n const namePart = remaining > 0 ? (first + last).slice(0, remaining) : '';\n const result = essential + namePart;\n\n return result.length < length ? result + alphanumeric(length - result.length, ctx.source) : result.slice(0, length);\n }\n\n const upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n const lower = 'abcdefghijklmnopqrstuvwxyz';\n const digits = '0123456789';\n const pools = [upper, lower, digits, SPECIAL_CHARS];\n\n // Guarantee at least one char from each pool, then fill the rest randomly.\n const chars: string[] = [];\n for (const pool of pools) {\n chars.push(pool[Math.floor(ctx.source.next() * pool.length)] ?? upper[0]!);\n }\n const all = upper + lower + digits + SPECIAL_CHARS;\n while (chars.length < length) {\n chars.push(all[Math.floor(ctx.source.next() * all.length)] ?? 'a');\n }\n\n // Shuffle via Fisher-Yates using ctx.source.\n for (let i = chars.length - 1; i > 0; i--) {\n const j = Math.floor(ctx.source.next() * (i + 1));\n [chars[i], chars[j]] = [chars[j]!, chars[i]!];\n }\n\n return chars.slice(0, length).join('');\n}\n\n/** Generates a URL of the form `protocol://sub.domain.tld/path/...`. */\nexport function url(ctx: IllusionistContext): string {\n const protocol = pick(INTERNET_DATA.protocols, ctx.source) ?? 'https';\n const sub = pick(['www', 'api', 'app', 'mail', 'static', 'cdn'], ctx.source) ?? 'www';\n const domain = pick(INTERNET_DATA.domains, ctx.source) ?? 'example';\n const tld = pick(INTERNET_DATA.tlds, ctx.source) ?? 'com';\n const host = `${sub}.${domain}.${tld}`;\n\n const segmentCount = int(1, 4, ctx.source);\n const segments: string[] = [];\n for (let i = 0; i < segmentCount; i++) {\n const word = pick(URL_PATH_WORDS, ctx.source) ?? 'api';\n // Occasionally append a numeric or short alphanumeric suffix to a segment.\n if (int(0, 2, ctx.source) === 0) {\n segments.push(`${word}-${alphanumeric(int(2, 5), ctx.source).toLowerCase()}`);\n } else {\n segments.push(word);\n }\n }\n\n return `${protocol}://${host}/${segments.join('/')}`;\n}\n\n/** Generates a domain name of the form `domain.tld`. */\nexport function domainName(ctx: IllusionistContext): string {\n const domain = pick(INTERNET_DATA.domains, ctx.source) ?? 'example';\n const tld = pick(INTERNET_DATA.tlds, ctx.source) ?? 'com';\n return `${domain}.${tld}`;\n}\n\n/** Generates an IPv4 or IPv6 address. Defaults to IPv4. */\nexport function ip(ctx: IllusionistContext, version: 4 | 6 = 4): string {\n if (version === 6) {\n const groups: string[] = [];\n for (let i = 0; i < 8; i++) {\n groups.push(hexString(4, ctx.source));\n }\n return groups.join(':');\n }\n const octets: number[] = [];\n for (let i = 0; i < 4; i++) {\n octets.push(int(0, 255, ctx.source));\n }\n return octets.join('.');\n}\n\n/** Generates a MAC address of the form `XX:XX:XX:XX:XX:XX`. */\nexport function mac(ctx: IllusionistContext): string {\n const parts: string[] = [];\n for (let i = 0; i < 6; i++) {\n parts.push(hexString(2, ctx.source));\n }\n return parts.join(':');\n}\n\n/** Picks a random user agent string. */\nexport function userAgent(ctx: IllusionistContext): string {\n return pick(INTERNET_DATA.userAgents, ctx.source) ?? INTERNET_DATA.userAgents[0]!;\n}\n\n/** Picks a random HTTP method. */\nexport function httpMethod(ctx: IllusionistContext): string {\n return pick(INTERNET_DATA.httpMethods, ctx.source) ?? 'GET';\n}\n\n/** Picks a random HTTP status code. */\nexport function statusCode(ctx: IllusionistContext): number {\n return pick(INTERNET_DATA.statusCodes, ctx.source) ?? 200;\n}\n\n/** Picks a random MIME type. */\nexport function mimeType(ctx: IllusionistContext): string {\n return pick(INTERNET_DATA.mimeTypes, ctx.source) ?? 'text/plain';\n}\n","import { float } from '../_helpers/float';\nimport { pick } from '../_helpers/string';\nimport type { IllusionistContext, LocationLocaleData } from '../types';\n\nfunction data(ctx: IllusionistContext): LocationLocaleData {\n return ctx.locale.location;\n}\n\n/** A geographic coordinate pair. */\nexport type Coordinate = {\n lat: number;\n lng: number;\n};\n\n/** Picks a random city from the locale dataset. */\nexport function city(ctx: IllusionistContext): string {\n return pick(data(ctx).cities, ctx.source)!;\n}\n\n/** Picks a random street from the locale dataset. */\nexport function street(ctx: IllusionistContext): string {\n return pick(data(ctx).streets, ctx.source)!;\n}\n\n/** Builds a street address: a house number (1-999) followed by a street name. */\nexport function streetAddress(ctx: IllusionistContext): string {\n const houseNumber = Math.floor(float(1, 1000, ctx.source));\n return `${houseNumber} ${street(ctx)}`;\n}\n\n/** Generates a ZIP/postal code matching the locale's pattern (`#` = digit, other chars preserved). */\nexport function zipCode(ctx: IllusionistContext): string {\n const pattern = data(ctx).zipPattern;\n\n return pattern.replace(/#/g, () => String(Math.floor((ctx.source.next() ?? 0) * 10)));\n}\n\n/** Picks a random state/region from the locale dataset. */\nexport function state(ctx: IllusionistContext): string {\n return pick(data(ctx).states, ctx.source)!;\n}\n\n/** Picks a random country from the locale dataset. */\nexport function country(ctx: IllusionistContext): string {\n return pick(data(ctx).countries, ctx.source)!;\n}\n\n/** Generates a random latitude in the range [-90, 90]. */\nexport function latitude(ctx: IllusionistContext): number {\n return float(-90, 90, ctx.source);\n}\n\n/** Generates a random longitude in the range [-180, 180]. */\nexport function longitude(ctx: IllusionistContext): number {\n return float(-180, 180, ctx.source);\n}\n\n/**\n * Returns a coordinate within ~1 degree of the reference point.\n * When no reference is provided, a random coordinate is used.\n */\nexport function nearbyGPSCoordinate(ctx: IllusionistContext, ref?: Coordinate): Coordinate {\n const base = ref ?? { lat: latitude(ctx), lng: longitude(ctx) };\n return {\n lat: float(base.lat - 1, base.lat + 1, ctx.source),\n lng: float(base.lng - 1, base.lng + 1, ctx.source),\n };\n}\n","/** Latin word pool for the `lorem` category. */\nexport const LOREM_DATA = {\n words: [\n 'lorem',\n 'ipsum',\n 'dolor',\n 'sit',\n 'amet',\n 'consectetur',\n 'adipiscing',\n 'elit',\n 'sed',\n 'do',\n 'eiusmod',\n 'tempor',\n 'incididunt',\n 'ut',\n 'labore',\n 'et',\n 'dolore',\n 'magna',\n 'aliqua',\n 'enim',\n 'ad',\n 'minim',\n 'veniam',\n 'quis',\n 'nostrud',\n 'exercitation',\n 'ullamco',\n 'laboris',\n 'nisi',\n 'aliquip',\n 'ex',\n 'ea',\n 'commodo',\n 'consequat',\n 'duis',\n 'aute',\n 'irure',\n 'in',\n 'reprehenderit',\n 'voluptate',\n 'velit',\n 'esse',\n 'cillum',\n 'fugiat',\n 'nulla',\n 'pariatur',\n 'excepteur',\n 'sint',\n 'occaecat',\n 'cupidatat',\n 'non',\n 'proident',\n 'sunt',\n 'culpa',\n 'qui',\n 'officia',\n 'deserunt',\n 'mollit',\n 'anim',\n 'id',\n 'est',\n 'laborum',\n ],\n} as const;\n","import { float } from '../_helpers/float';\nimport { pick } from '../_helpers/string';\nimport type { IllusionistContext } from '../types';\nimport { LOREM_DATA } from './data';\n\n/** Picks a single random word from the lorem word pool. */\nexport function word(ctx: IllusionistContext): string {\n return pick(LOREM_DATA.words, ctx.source)!;\n}\n\n/** Builds a space-joined run of `count` random words (default 3). */\nexport function words(ctx: IllusionistContext, count = 3): string {\n const out: string[] = [];\n for (let i = 0; i < count; i++) {\n out.push(word(ctx));\n }\n return out.join(' ');\n}\n\n/** Builds a sentence of `wordCount` words (default 6-12) with a capital first letter and trailing period. */\nexport function sentence(ctx: IllusionistContext, wordCount?: number): string {\n const count = wordCount ?? Math.floor(float(6, 13, ctx.source));\n const text = words(ctx, count);\n return `${text.charAt(0).toUpperCase()}${text.slice(1)}.`;\n}\n\n/** Builds `count` space-joined sentences (default 3). */\nexport function sentences(ctx: IllusionistContext, count = 3): string {\n const out: string[] = [];\n for (let i = 0; i < count; i++) {\n out.push(sentence(ctx));\n }\n return out.join(' ');\n}\n\n/** Builds a paragraph of `sentenceCount` sentences (default 3-7), space-joined. */\nexport function paragraph(ctx: IllusionistContext, sentenceCount?: number): string {\n const count = sentenceCount ?? Math.floor(float(3, 8, ctx.source));\n return sentences(ctx, count);\n}\n\n/** Builds `count` newline-joined paragraphs (default 3). */\nexport function paragraphs(ctx: IllusionistContext, count = 3): string {\n const out: string[] = [];\n for (let i = 0; i < count; i++) {\n out.push(paragraph(ctx));\n }\n return out.join('\\n');\n}\n\n/** Builds a hyphen-joined slug of `wordCount` words (default 3). */\nexport function slug(ctx: IllusionistContext, wordCount = 3): string {\n const out: string[] = [];\n for (let i = 0; i < wordCount; i++) {\n out.push(word(ctx));\n }\n return out.join('-');\n}\n\n/** Builds `count` newline-joined lines, each a sentence (default 5). */\nexport function lines(ctx: IllusionistContext, count = 5): string {\n const out: string[] = [];\n for (let i = 0; i < count; i++) {\n out.push(sentence(ctx));\n }\n return out.join('\\n');\n}\n","import type { RandomSource } from '@vielzeug/arsenal/random';\n\n/** Generates a random boolean with an optional probability bias (0–1, default 0.5). */\nexport function boolean(source?: RandomSource, probability = 0.5): boolean {\n const raw = source?.next() ?? crypto.getRandomValues(new Uint32Array(1))[0]! / 0x100000000;\n\n return raw < probability;\n}\n","import { boolean } from '../_helpers/boolean';\nimport { pick } from '../_helpers/string';\nimport type { IllusionistContext, PersonLocaleData } from '../types';\n\nfunction data(ctx: IllusionistContext): PersonLocaleData {\n return ctx.locale.person;\n}\n\nexport function firstName(ctx: IllusionistContext): string {\n const d = data(ctx);\n const pool = boolean(ctx.source) ? d.firstNameMale : d.firstNameFemale;\n return pick(pool, ctx.source)!;\n}\n\nexport function lastName(ctx: IllusionistContext): string {\n return pick(data(ctx).lastName, ctx.source)!;\n}\n\nexport function fullName(ctx: IllusionistContext): string {\n return `${firstName(ctx)} ${lastName(ctx)}`;\n}\n\nexport function gender(ctx: IllusionistContext): string {\n return pick(data(ctx).gender, ctx.source)!;\n}\n\nexport function prefix(ctx: IllusionistContext): string {\n return pick(data(ctx).prefix, ctx.source)!;\n}\n\nexport function suffix(ctx: IllusionistContext): string {\n const d = data(ctx);\n if (d.suffix.length === 0) return '';\n return pick(d.suffix, ctx.source)!;\n}\n\nexport function jobTitle(ctx: IllusionistContext): string {\n const d = data(ctx);\n return `${pick(d.jobAreas, ctx.source)!} ${pick(d.jobTypes, ctx.source)!}`;\n}\n","//#region src/errors.ts\nvar e = class extends Error {\n\tconstructor(e, t) {\n\t\tsuper(e, t), this.name = new.target.name, Object.setPrototypeOf(this, new.target.prototype);\n\t}\n}, t = class extends e {};\n//#endregion\nexport { e as ArsenalError, t as ArsenalSerializationError };\n\n//# sourceMappingURL=errors.js.map","import { ArsenalSerializationError as e } from \"../errors.js\";\n//#region src/object/hash.ts\nfunction t(n, r, i) {\n\tif (n === void 0) return \"undefined\";\n\tif (n === null) return \"null\";\n\tif (typeof n == \"bigint\") return `${n}n`;\n\tif (typeof n != \"object\") return JSON.stringify(n);\n\tif (i.has(n)) return \"[Circular]\";\n\tif (i.add(n), n instanceof Date) return `[Date:${Number.isNaN(n.getTime()) ? \"Invalid\" : n.toISOString()}]`;\n\tif (n instanceof RegExp) return `[RegExp:${n.source}/${n.flags}]`;\n\tif (n instanceof Set) return `[Set:${[...n].map((e) => t(e, r, i)).sort().join(\",\")}]`;\n\tif (n instanceof Map) return `[Map:${[...n.entries()].map(([e, n]) => [t(e, r, i), t(n, r, i)]).sort(([e, t], [n, r]) => e === n ? t.localeCompare(r) : e.localeCompare(n)).map(([e, t]) => `${e}=>${t}`).join(\",\")}]`;\n\tif (Array.isArray(n)) return `[${n.map((e) => t(e, r, i)).join(\",\")}]`;\n\tlet a = Object.getPrototypeOf(n);\n\tif (a !== Object.prototype && a !== null) {\n\t\tif (r?.onClassInstance === \"throw\") throw new e(`hash: unsupported type ${n.constructor?.name ?? \"unknown\"}`);\n\t\treturn String(n);\n\t}\n\tlet o = n;\n\treturn `{${Object.keys(o).filter((e) => o[e] !== void 0).sort().map((e) => `${JSON.stringify(e)}:${t(o[e], r, i)}`).join(\",\")}}`;\n}\nfunction n(e, n) {\n\treturn t(e, n, /* @__PURE__ */ new Set());\n}\n//#endregion\nexport { n as hash };\n\n//# sourceMappingURL=hash.js.map","import type { RandomSource } from '@vielzeug/arsenal/random';\n\n/**\n * Mulberry32 — a fast, deterministic 32-bit PRNG.\n *\n * Not cryptographically secure. Use `createSeed()` without a seed for\n * `crypto.getRandomValues`-backed randomness in security-sensitive contexts.\n *\n * @param seed - A 32-bit integer seed.\n * @returns A {@link RandomSource} producing floats in `[0, 1)`.\n */\nexport function mulberry32(seed: number): RandomSource {\n let state = seed >>> 0;\n\n return {\n next(): number {\n state = (state + 0x6d2b79f5) >>> 0;\n let t = state;\n\n t = Math.imul(t ^ (t >>> 15), t | 1);\n t ^= t + Math.imul(t ^ (t >>> 7), t | 61);\n\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296;\n },\n };\n}\n","import { hash } from '@vielzeug/arsenal/object';\nimport type { RandomSource } from '@vielzeug/arsenal/random';\n\nimport { IllusionistSeedError } from '../errors';\nimport { mulberry32 } from './mulberry32';\n\n/**\n * Creates a {@link RandomSource} from a seed.\n *\n * - **Number seed** — used directly as the mulberry32 state.\n * - **String seed** — hashed via `arsenal`'s `hash()` to produce a 32-bit integer.\n * - **No seed** — falls back to `crypto.getRandomValues` for cryptographic randomness.\n *\n * @example\n * ```ts\n * const a = createSeed(12345); // deterministic\n * const b = createSeed('hello'); // deterministic (hashed)\n * const c = createSeed(); // cryptographic (non-deterministic)\n * ```\n */\nexport function createSeed(seed?: number | string): RandomSource {\n if (seed == null) return cryptoSource();\n\n if (typeof seed === 'number') {\n if (!Number.isFinite(seed)) throw new IllusionistSeedError(`createSeed: numeric seed must be finite, got ${seed}`);\n\n return mulberry32(Math.trunc(seed));\n }\n\n const hashed = hash(seed);\n\n // FNV-1a-ish fold from the hash string into a 32-bit integer.\n let state = 0;\n\n for (let i = 0; i < hashed.length; i++) {\n state = (Math.imul(state, 31) + hashed.charCodeAt(i)) >>> 0;\n }\n\n return mulberry32(state);\n}\n\nfunction cryptoSource(): RandomSource {\n return {\n next(): number {\n return crypto.getRandomValues(new Uint32Array(1))[0]! / 0x100000000;\n },\n };\n}\n","export const SYSTEM_DATA = {\n cronExpressions: [\n '0 * * * *',\n '0 0 * * *',\n '0 0 * * 0',\n '*/5 * * * *',\n '0 12 * * 1-5',\n '0 0 1 * *',\n '0 0 1 1 *',\n '0 3 * * *',\n '30 7 * * 1-5',\n '0 18 * * 5',\n ],\n directories: [\n 'src',\n 'dist',\n 'build',\n 'lib',\n 'test',\n 'docs',\n 'config',\n 'assets',\n 'public',\n 'private',\n 'tmp',\n 'cache',\n 'var',\n 'opt',\n 'etc',\n ],\n fileExtensions: [\n 'txt',\n 'pdf',\n 'doc',\n 'docx',\n 'xls',\n 'xlsx',\n 'ppt',\n 'pptx',\n 'jpg',\n 'png',\n 'gif',\n 'svg',\n 'webp',\n 'ico',\n 'mp3',\n 'wav',\n 'flac',\n 'ogg',\n 'mp4',\n 'avi',\n 'mkv',\n 'webm',\n 'zip',\n 'tar',\n 'gz',\n 'rar',\n '7z',\n 'js',\n 'ts',\n 'json',\n 'xml',\n 'html',\n 'css',\n 'md',\n 'py',\n 'java',\n 'go',\n 'rs',\n 'c',\n 'cpp',\n ],\n fileNames: [\n 'document',\n 'report',\n 'summary',\n 'notes',\n 'draft',\n 'config',\n 'readme',\n 'index',\n 'main',\n 'app',\n 'data',\n 'backup',\n 'export',\n 'import',\n 'log',\n ],\n mimeTypes: {\n avi: 'video/x-msvideo',\n css: 'text/css',\n gif: 'image/gif',\n gz: 'application/gzip',\n html: 'text/html',\n jpeg: 'image/jpeg',\n jpg: 'image/jpeg',\n js: 'application/javascript',\n json: 'application/json',\n mp3: 'audio/mpeg',\n mp4: 'video/mp4',\n pdf: 'application/pdf',\n png: 'image/png',\n svg: 'image/svg+xml',\n tar: 'application/x-tar',\n txt: 'text/plain',\n wav: 'audio/wav',\n webp: 'image/webp',\n xml: 'application/xml',\n zip: 'application/zip',\n },\n} as const;\n","import { uuid as cryptoUuid } from '@vielzeug/arsenal/random';\n\nimport { int } from '../_helpers/int';\nimport { alphanumeric, pick } from '../_helpers/string';\nimport type { IllusionistContext } from '../types';\nimport { SYSTEM_DATA } from './data';\n\n/** Generates a random file extension from common types. */\nexport function fileExtension(ctx: IllusionistContext): string {\n return pick(SYSTEM_DATA.fileExtensions, ctx.source)!;\n}\n\n/** Generates a random file name with extension. */\nexport function fileName(ctx: IllusionistContext): string {\n const base = pick(SYSTEM_DATA.fileNames, ctx.source)!;\n const ext = fileExtension(ctx);\n\n return `${base}.${ext}`;\n}\n\n/** Generates a random file path with 1-4 directory segments and a file name. */\nexport function filePath(ctx: IllusionistContext): string {\n const segments = int(1, 4, ctx.source);\n const dirs: string[] = [];\n\n for (let i = 0; i < segments; i++) {\n dirs.push(pick(SYSTEM_DATA.directories, ctx.source)!);\n }\n\n return `${dirs.join('/')}/${fileName(ctx)}`;\n}\n\n/** Returns a random MIME type string. */\nexport function mimeType(ctx: IllusionistContext): string {\n const types = Object.values(SYSTEM_DATA.mimeTypes);\n\n return pick(types, ctx.source)!;\n}\n\n/** Generates a random semver version string. */\nexport function semver(ctx: IllusionistContext, options?: { maxMajor?: number; includePrerelease?: boolean }): string {\n const maxMajor = options?.maxMajor ?? 20;\n const major = int(0, maxMajor, ctx.source);\n const minor = int(0, 20, ctx.source);\n const patch = int(0, 99, ctx.source);\n\n let version = `${major}.${minor}.${patch}`;\n\n if (options?.includePrerelease && ctx.source.next() < 0.3) {\n const labels = ['alpha', 'beta', 'rc', 'next'];\n const label = pick(labels, ctx.source)!;\n const num = int(1, 10, ctx.source);\n\n version += `-${label}.${num}`;\n }\n\n return version;\n}\n\n/**\n * Generates a random UUID via `crypto.randomUUID()`.\n *\n * **Not deterministic** — ignores the seeded `RandomSource` and always uses\n * cryptographic randomness. Use this for unique identifiers where\n * unpredictability matters more than reproducibility.\n */\nexport function uuid(): string {\n return cryptoUuid();\n}\n\n/** Generates a random port number (1-65535, avoiding well-known ports below 1024 by default). */\nexport function port(ctx: IllusionistContext, options?: { min?: number; max?: number }): number {\n const min = options?.min ?? 1024;\n const max = options?.max ?? 65535;\n\n return int(min, max, ctx.source);\n}\n\n/** Returns a random cron expression from common patterns. */\nexport function cron(ctx: IllusionistContext): string {\n return pick(SYSTEM_DATA.cronExpressions, ctx.source)!;\n}\n\n/** Generates a random process name. */\nexport function process(ctx: IllusionistContext): string {\n const prefixes = ['node', 'python', 'ruby', 'java', 'go', 'rust', 'bash'];\n const prefix = pick(prefixes, ctx.source)!;\n const suffix = alphanumeric(int(3, 8, ctx.source), ctx.source);\n\n return `${prefix}_${suffix}`;\n}\n","import type { RandomSource } from '@vielzeug/arsenal/random';\nimport * as commerceApi from './commerce/commerce';\nimport * as dateApi from './date/date';\nimport * as financeApi from './finance/finance';\nimport * as internetApi from './internet/internet';\nimport * as locationApi from './location/location';\nimport * as loremApi from './lorem/lorem';\nimport * as personApi from './person/person';\nimport { createSeed } from './seed/create-seed';\nimport * as systemApi from './system/system';\nimport type { IllusionistContext, IllusionistLocale, IllusionistOptions } from './types';\n\nexport type { IllusionistOptions } from './types';\n\nexport type Illusionist = {\n readonly person: typeof personApi;\n readonly internet: typeof internetApi;\n readonly commerce: typeof commerceApi;\n readonly date: typeof dateApi;\n readonly finance: typeof financeApi;\n readonly location: typeof locationApi;\n readonly lorem: typeof loremApi;\n readonly system: typeof systemApi;\n\n /** The seed used to initialize this instance, or `undefined` for cryptographic randomness. */\n readonly seed: number | string | undefined;\n /** The active locale data. */\n readonly locale: IllusionistLocale;\n\n dispose(): void;\n readonly disposed: boolean;\n readonly disposalSignal: AbortSignal;\n [Symbol.dispose](): void;\n};\n\n/**\n * Creates a bound illusionist instance with all categories sharing a single seeded\n * random source and locale.\n *\n * @example\n * ```ts\n * import { en } from '@vielzeug/illusionist/locales';\n *\n * const illusionist = createIllusion({ seed: 12345, locale: en });\n *\n * illusionist.person.fullName(); // deterministic — same seed → same result\n * illusionist.internet.email();\n * illusionist.commerce.price();\n * illusionist.dispose(); // [Symbol.dispose]() also works\n * ```\n */\nexport function createIllusion(options: IllusionistOptions): Illusionist {\n const { locale, seed } = options;\n const source: RandomSource = createSeed(seed);\n const controller = new AbortController();\n let disposed = false;\n\n const ctx: IllusionistContext = { locale, source };\n\n const bind = <T extends Record<string, (ctx: IllusionistContext, ...args: never[]) => unknown>>(api: T): T => {\n const bound = {} as Record<string, (...args: never[]) => unknown>;\n\n for (const [key, fn] of Object.entries(api)) {\n if (typeof fn === 'function') {\n bound[key] = (...args: never[]) => (fn as (ctx: IllusionistContext, ...args: never[]) => unknown)(ctx, ...args);\n }\n }\n\n return bound as T;\n };\n\n const dispose = (): void => {\n if (disposed) return;\n\n disposed = true;\n controller.abort();\n };\n\n return {\n commerce: bind(commerceApi),\n date: bind(dateApi),\n get disposalSignal(): AbortSignal {\n return controller.signal;\n },\n dispose,\n get disposed(): boolean {\n return disposed;\n },\n finance: bind(financeApi),\n internet: bind(internetApi),\n locale,\n location: bind(locationApi),\n lorem: bind(loremApi),\n person: bind(personApi),\n seed,\n system: bind(systemApi),\n [Symbol.dispose]: dispose,\n };\n}\n","/** German-language location dataset for the `location` category. */\nexport const LOCATION_DATA_DE = {\n cities: [\n 'Berlin',\n 'Hamburg',\n 'München',\n 'Köln',\n 'Frankfurt am Main',\n 'Stuttgart',\n 'Düsseldorf',\n 'Leipzig',\n 'Dortmund',\n 'Essen',\n 'Bremen',\n 'Dresden',\n 'Hannover',\n 'Nürnberg',\n 'Duisburg',\n 'Bochum',\n 'Wuppertal',\n 'Bielefeld',\n 'Bonn',\n 'Münster',\n ],\n countries: [\n 'Deutschland',\n 'Österreich',\n 'Schweiz',\n 'Frankreich',\n 'Italien',\n 'Spanien',\n 'Niederlande',\n 'Belgien',\n 'Polen',\n 'Tschechien',\n 'Dänemark',\n 'Schweden',\n 'Norwegen',\n 'Finnland',\n 'Portugal',\n ],\n states: [\n 'Baden-Württemberg',\n 'Bayern',\n 'Berlin',\n 'Brandenburg',\n 'Bremen',\n 'Hamburg',\n 'Hessen',\n 'Mecklenburg-Vorpommern',\n 'Niedersachsen',\n 'Nordrhein-Westfalen',\n 'Rheinland-Pfalz',\n 'Saarland',\n 'Sachsen',\n 'Sachsen-Anhalt',\n 'Schleswig-Holstein',\n 'Thüringen',\n ],\n streets: [\n 'Hauptstraße',\n 'Schulstraße',\n 'Bahnhofstraße',\n 'Gartenstraße',\n 'Bergstraße',\n 'Dorfstraße',\n 'Lindenstraße',\n 'Goethestraße',\n 'Schillerstraße',\n 'Mozartstraße',\n 'Bahnhofplatz',\n 'Marktplatz',\n 'Kirchplatz',\n 'Schlossplatz',\n 'Waldrand',\n ],\n zipPattern: '#####',\n} as const;\n","/** German-language person dataset for the `person` category. */\nexport const PERSON_DATA_DE = {\n firstNameFemale: [\n 'Mia',\n 'Emma',\n 'Sophia',\n 'Hannah',\n 'Emilia',\n 'Lina',\n 'Ella',\n 'Marie',\n 'Clara',\n 'Lena',\n 'Lea',\n 'Lilly',\n 'Anna',\n 'Ida',\n 'Mila',\n 'Luisa',\n 'Nora',\n 'Greta',\n 'Frieda',\n 'Johanna',\n 'Lotte',\n 'Charlotte',\n 'Mathilda',\n 'Lara',\n 'Sarah',\n 'Julia',\n 'Laura',\n 'Lisa',\n 'Katharina',\n 'Sabine',\n 'Andrea',\n 'Petra',\n 'Susanne',\n 'Nicole',\n 'Stefanie',\n 'Christina',\n 'Tanja',\n 'Birgit',\n 'Monika',\n 'Ursula',\n 'Helga',\n 'Ingrid',\n 'Brigitte',\n 'Gisela',\n 'Renate',\n 'Angelika',\n 'Claudia',\n 'Sandra',\n 'Beate',\n 'Klara',\n ],\n firstNameMale: [\n 'Ben',\n 'Paul',\n 'Leon',\n 'Finn',\n 'Elias',\n 'Jonas',\n 'Felix',\n 'Maximilian',\n 'Max',\n 'Luca',\n 'Noah',\n 'Henry',\n 'Lukas',\n 'Moritz',\n 'David',\n 'Niklas',\n 'Philipp',\n 'Julian',\n 'Tim',\n 'Tom',\n 'Simon',\n 'Alexander',\n 'Liam',\n 'Emil',\n 'Daniel',\n 'Sebastian',\n 'Matteo',\n 'Fabian',\n 'Jakob',\n 'Tobias',\n 'Florian',\n 'Marvin',\n 'Anton',\n 'Johannes',\n 'Stefan',\n 'Andreas',\n 'Michael',\n 'Thomas',\n 'Christian',\n 'Klaus',\n 'Peter',\n 'Wolfgang',\n 'Jürgen',\n 'Frank',\n 'Hans',\n 'Martin',\n 'Rolf',\n 'Bernd',\n 'Uwe',\n 'Karl',\n ],\n gender: ['Männlich', 'Weiblich', 'Nicht-binär', 'Divers'],\n jobAreas: [\n 'Finanzen',\n 'IT',\n 'Marketing',\n 'Vertrieb',\n 'Personalwesen',\n 'Betrieb',\n 'Ingenieurwesen',\n 'Forschung',\n 'Design',\n 'Recht',\n 'Kundenservice',\n 'Produkt',\n 'Logistik',\n 'Buchhaltung',\n 'Öffentlichkeitsarbeit',\n 'Qualitätssicherung',\n 'Daten',\n 'Sicherheit',\n 'Kommunikation',\n 'Verwaltung',\n ],\n jobTypes: [\n 'Ingenieur',\n 'Manager',\n 'Analyst',\n 'Spezialist',\n 'Koordinator',\n 'Direktor',\n 'Berater',\n 'Entwickler',\n 'Architekt',\n 'Administrator',\n 'Beamter',\n 'Mitarbeiter',\n 'Aufseher',\n 'Techniker',\n 'Assistent',\n ],\n lastName: [\n 'Müller',\n 'Schmidt',\n 'Schneider',\n 'Fischer',\n 'Weber',\n 'Meyer',\n 'Wagner',\n 'Becker',\n 'Schulz',\n 'Hoffmann',\n 'Schäfer',\n 'Koch',\n 'Bauer',\n 'Richter',\n 'Klein',\n 'Wolf',\n 'Schröder',\n 'Neumann',\n 'Schwarz',\n 'Zimmermann',\n 'Braun',\n 'Krüger',\n 'Hofmann',\n 'Hartmann',\n 'Lange',\n 'Schmitt',\n 'Werner',\n 'Krause',\n 'Lehmann',\n 'Schmid',\n 'Schulze',\n 'Maier',\n 'Köhler',\n 'Herrmann',\n 'König',\n 'Walter',\n 'Mayer',\n 'Huber',\n 'Kaiser',\n 'Fuchs',\n 'Peters',\n 'Lang',\n 'Scholz',\n 'Möller',\n 'Weiß',\n 'Jung',\n 'Hahn',\n 'Schubert',\n 'Vogel',\n 'Friedrich',\n ],\n prefix: ['Herr', 'Frau', 'Dr.', 'Prof.'],\n suffix: [],\n};\n","import { LOCATION_DATA_DE } from '../location/data/de';\nimport { PERSON_DATA_DE } from '../person/data/de';\nimport type { IllusionistLocale } from '../types';\n\n/** German locale data for Illusionist. */\nexport const de = {\n code: 'de',\n location: LOCATION_DATA_DE,\n person: PERSON_DATA_DE,\n} satisfies IllusionistLocale;\n","/** English-language location dataset for the `location` category. */\nexport const LOCATION_DATA_EN = {\n cities: [\n 'New York',\n 'Los Angeles',\n 'Chicago',\n 'Houston',\n 'Phoenix',\n 'Philadelphia',\n 'San Antonio',\n 'San Diego',\n 'Dallas',\n 'San Jose',\n 'Austin',\n 'Jacksonville',\n 'Fort Worth',\n 'Columbus',\n 'Charlotte',\n 'San Francisco',\n 'Indianapolis',\n 'Seattle',\n 'Denver',\n 'Boston',\n ],\n countries: [\n 'United States',\n 'United Kingdom',\n 'Germany',\n 'France',\n 'Italy',\n 'Spain',\n 'Netherlands',\n 'Belgium',\n 'Switzerland',\n 'Austria',\n 'Canada',\n 'Australia',\n 'Japan',\n 'Brazil',\n 'India',\n ],\n states: [\n 'Alabama',\n 'Alaska',\n 'Arizona',\n 'Arkansas',\n 'California',\n 'Colorado',\n 'Connecticut',\n 'Delaware',\n 'Florida',\n 'Georgia',\n 'Hawaii',\n 'Idaho',\n 'Illinois',\n 'Indiana',\n 'Iowa',\n 'Kansas',\n 'Kentucky',\n 'Louisiana',\n 'Maine',\n 'Maryland',\n 'Massachusetts',\n 'Michigan',\n 'Minnesota',\n 'Mississippi',\n 'Missouri',\n 'Montana',\n 'Nebraska',\n 'Nevada',\n 'New Hampshire',\n 'New Jersey',\n 'New Mexico',\n 'New York',\n 'North Carolina',\n 'North Dakota',\n 'Ohio',\n 'Oklahoma',\n 'Oregon',\n 'Pennsylvania',\n 'Rhode Island',\n 'South Carolina',\n 'South Dakota',\n 'Tennessee',\n 'Texas',\n 'Utah',\n 'Vermont',\n 'Virginia',\n 'Washington',\n 'West Virginia',\n 'Wisconsin',\n 'Wyoming',\n ],\n streets: [\n 'Main St',\n 'Oak Ave',\n 'Maple Dr',\n 'Cedar Ln',\n 'Pine Rd',\n 'Elm St',\n 'Washington Blvd',\n 'Park Ave',\n 'Lake Dr',\n 'Hill Rd',\n 'River Rd',\n 'Spring St',\n 'Forest Dr',\n 'Sunset Blvd',\n 'Highland Ave',\n ],\n zipPattern: '#####',\n} as const;\n","/** English-language person dataset for the `person` category. */\nexport const PERSON_DATA_EN = {\n firstNameFemale: [\n 'Mary',\n 'Patricia',\n 'Jennifer',\n 'Linda',\n 'Elizabeth',\n 'Barbara',\n 'Susan',\n 'Jessica',\n 'Sarah',\n 'Karen',\n 'Lisa',\n 'Nancy',\n 'Betty',\n 'Margaret',\n 'Sandra',\n 'Ashley',\n 'Kimberly',\n 'Emily',\n 'Donna',\n 'Michelle',\n 'Carol',\n 'Amanda',\n 'Dorothy',\n 'Melissa',\n 'Deborah',\n 'Stephanie',\n 'Rebecca',\n 'Sharon',\n 'Laura',\n 'Cynthia',\n 'Kathleen',\n 'Amy',\n 'Shirley',\n 'Angela',\n 'Helen',\n 'Anna',\n 'Brenda',\n 'Pamela',\n 'Nicole',\n 'Emma',\n 'Samantha',\n 'Katherine',\n 'Christine',\n 'Debra',\n 'Rachel',\n 'Catherine',\n 'Carolyn',\n 'Janet',\n 'Ruth',\n 'Maria',\n ],\n firstNameMale: [\n 'James',\n 'John',\n 'Robert',\n 'Michael',\n 'William',\n 'David',\n 'Richard',\n 'Joseph',\n 'Thomas',\n 'Charles',\n 'Christopher',\n 'Daniel',\n 'Matthew',\n 'Anthony',\n 'Mark',\n 'Donald',\n 'Steven',\n 'Paul',\n 'Andrew',\n 'Joshua',\n 'Kenneth',\n 'Kevin',\n 'Brian',\n 'George',\n 'Edward',\n 'Ronald',\n 'Timothy',\n 'Jason',\n 'Jeffrey',\n 'Ryan',\n 'Jacob',\n 'Gary',\n 'Nicholas',\n 'Eric',\n 'Jonathan',\n 'Stephen',\n 'Larry',\n 'Justin',\n 'Scott',\n 'Brandon',\n 'Benjamin',\n 'Samuel',\n 'Gregory',\n 'Frank',\n 'Alexander',\n 'Raymond',\n 'Patrick',\n 'Jack',\n 'Dennis',\n 'Jerry',\n ],\n gender: ['Male', 'Female', 'Non-binary', 'Other'],\n jobAreas: [\n 'Finance',\n 'IT',\n 'Marketing',\n 'Sales',\n 'Human Resources',\n 'Operations',\n 'Engineering',\n 'Research',\n 'Design',\n 'Legal',\n 'Customer Support',\n 'Product',\n 'Logistics',\n 'Accounting',\n 'Public Relations',\n 'Quality Assurance',\n 'Data',\n 'Security',\n 'Communications',\n 'Administration',\n ],\n jobTypes: [\n 'Engineer',\n 'Manager',\n 'Analyst',\n 'Specialist',\n 'Coordinator',\n 'Director',\n 'Consultant',\n 'Developer',\n 'Architect',\n 'Administrator',\n 'Officer',\n 'Representative',\n 'Supervisor',\n 'Technician',\n 'Assistant',\n ],\n lastName: [\n 'Smith',\n 'Johnson',\n 'Williams',\n 'Brown',\n 'Jones',\n 'Garcia',\n 'Miller',\n 'Davis',\n 'Rodriguez',\n 'Martinez',\n 'Hernandez',\n 'Lopez',\n 'Gonzalez',\n 'Wilson',\n 'Anderson',\n 'Thomas',\n 'Taylor',\n 'Moore',\n 'Jackson',\n 'Martin',\n 'Lee',\n 'Perez',\n 'Thompson',\n 'White',\n 'Harris',\n 'Sanchez',\n 'Clark',\n 'Ramirez',\n 'Lewis',\n 'Robinson',\n 'Walker',\n 'Young',\n 'Allen',\n 'King',\n 'Wright',\n 'Scott',\n 'Torres',\n 'Nguyen',\n 'Hill',\n 'Flores',\n 'Green',\n 'Adams',\n 'Nelson',\n 'Baker',\n 'Hall',\n 'Rivera',\n 'Campbell',\n 'Mitchell',\n 'Carter',\n 'Roberts',\n ],\n prefix: ['Mr.', 'Mrs.', 'Ms.', 'Dr.', 'Prof.'],\n suffix: ['Jr.', 'Sr.', 'II', 'III', 'IV', 'PhD'],\n};\n","import { LOCATION_DATA_EN } from '../location/data/en';\nimport { PERSON_DATA_EN } from '../person/data/en';\nimport type { IllusionistLocale } from '../types';\n\n/** English locale data for Illusionist. */\nexport const en = {\n code: 'en',\n location: LOCATION_DATA_EN,\n person: PERSON_DATA_EN,\n} satisfies IllusionistLocale;\n"],"mappings":"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A,iBACA,eACA,eACA,aACA,aACA,eACA,UACF,EACA,WAAY,OErEF,EACV,OAAQ,CDNR,gBAAiB,oVAmDjB,EACA,cAAe,8UAmDf,EACA,OAAQ,CAAC,WAAY,WAAY,cAAe,QAAQ,EACxD,SAAU,CACR,WACA,KACA,YACA,WACA,gBACA,UACA,iBACA,YACA,SACA,QACA,gBACA,UACA,WACA,cACA,wBACA,qBACA,QACA,aACA,gBACA,YACF,EACA,SAAU,CACR,YACA,UACA,UACA,aACA,cACA,WACA,UACA,aACA,YACA,gBACA,UACA,cACA,WACA,YACA,WACF,EACA,SAAU,+WAmDV,EACA,OAAQ,CAAC,OAAQ,OAAQ,MAAO,OAAO,EACvC,OAAQ,CAAC,CC/LD,CACV,EGJa,GAAK,CAChB,KAAM,KACN,SAAU,CFLV,OAAQ,CACN,WACA,cACA,UACA,UACA,UACA,eACA,cACA,YACA,SACA,WACA,SACA,eACA,aACA,WACA,YACA,gBACA,eACA,UACA,SACA,QACF,EACA,UAAW,CACT,gBACA,iBACA,UACA,SACA,QACA,QACA,cACA,UACA,cACA,UACA,SACA,YACA,QACA,SACA,OACF,EACA,OAAQ,meAmDR,EACA,QAAS,CACP,UACA,UACA,WACA,WACA,UACA,SACA,kBACA,WACA,UACA,UACA,WACA,YACA,YACA,cACA,cACF,EACA,WAAY,OEvGF,EACV,OAAQ,CDNR,gBAAiB,oXAmDjB,EACA,cAAe,6WAmDf,EACA,OAAQ,CAAC,OAAQ,SAAU,aAAc,OAAO,EAChD,SAAU,CACR,UACA,KACA,YACA,QACA,kBACA,aACA,cACA,WACA,SACA,QACA,mBACA,UACA,YACA,aACA,mBACA,oBACA,OACA,WACA,iBACA,gBACF,EACA,SAAU,CACR,WACA,UACA,UACA,aACA,cACA,WACA,aACA,YACA,YACA,gBACA,UACA,iBACA,aACA,aACA,WACF,EACA,SAAU,2WAmDV,EACA,OAAQ,CAAC,MAAO,OAAQ,MAAO,MAAO,OAAO,EAC7C,OAAQ,CAAC,MAAO,MAAO,KAAM,MAAO,KAAM,KAAK,CC/LvC,CACV"}
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./commerce/commerce.cjs"),t=require("./date/date.cjs"),n=require("./finance/finance.cjs"),r=require("./errors.cjs"),i=require("./internet/internet.cjs"),a=require("./location/location.cjs"),o=require("./lorem/lorem.cjs"),s=require("./person/person.cjs"),c=require("./seed/mulberry32.cjs"),l=require("./seed/create-seed.cjs"),u=require("./factory.cjs");exports.IllusionistError=r.IllusionistError,exports.IllusionistSeedError=r.IllusionistSeedError,exports.amount=n.amount,exports.bank=n.bank,exports.between=t.between,exports.bic=n.bic,exports.birthday=t.birthday,exports.bitcoinAddress=n.bitcoinAddress,exports.city=a.city,exports.country=a.country,exports.createIllusion=u.createIllusion,exports.createSeed=l.createSeed,exports.creditCardCVV=n.creditCardCVV,exports.creditCardNumber=n.creditCardNumber,exports.department=e.department,exports.domainName=i.domainName,exports.email=i.email,exports.ethereumAddress=n.ethereumAddress,exports.firstName=s.firstName,exports.fullName=s.fullName,exports.future=t.future,exports.gender=s.gender,exports.httpMethod=i.httpMethod,exports.iban=n.iban,exports.ip=i.ip,exports.jobTitle=s.jobTitle,exports.lastName=s.lastName,exports.latitude=a.latitude,exports.lines=o.lines,exports.longitude=a.longitude,exports.mac=i.mac,exports.mimeType=i.mimeType,exports.month=t.month,exports.mulberry32=c.mulberry32,exports.nearbyGPSCoordinate=a.nearbyGPSCoordinate,exports.paragraph=o.paragraph,exports.paragraphs=o.paragraphs,exports.password=i.password,exports.past=t.past,exports.prefix=s.prefix,exports.price=e.price,exports.productAdjective=e.productAdjective,exports.productDescription=e.productDescription,exports.productMaterial=e.productMaterial,exports.productName=e.productName,exports.productNoun=e.productNoun,exports.recent=t.recent,exports.sentence=o.sentence,exports.sentences=o.sentences,exports.slug=o.slug,exports.state=a.state,exports.statusCode=i.statusCode,exports.street=a.street,exports.streetAddress=a.streetAddress,exports.suffix=s.suffix,exports.transactionType=n.transactionType,exports.url=i.url,exports.userAgent=i.userAgent,exports.username=i.username,exports.weekday=t.weekday,exports.word=o.word,exports.words=o.words,exports.zipCode=a.zipCode;
@@ -0,0 +1,13 @@
1
+ export * from './commerce/commerce';
2
+ export * from './date/date';
3
+ export * from './errors';
4
+ export * from './factory';
5
+ export * from './finance/finance';
6
+ export * from './internet/internet';
7
+ export * from './location/location';
8
+ export * from './lorem/lorem';
9
+ export * from './person/person';
10
+ export * from './seed/create-seed';
11
+ export * from './seed/mulberry32';
12
+ export * from './types';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ import { department as e, price as t, productAdjective as n, productDescription as r, productMaterial as i, productName as a, productNoun as o } from "./commerce/commerce.js";
2
+ import { between as s, birthday as c, future as l, month as u, past as d, recent as f, weekday as p } from "./date/date.js";
3
+ import { amount as m, bank as h, bic as g, bitcoinAddress as _, creditCardCVV as v, creditCardNumber as y, ethereumAddress as b, iban as x, transactionType as S } from "./finance/finance.js";
4
+ import { IllusionistError as C, IllusionistSeedError as w } from "./errors.js";
5
+ import { domainName as T, email as E, httpMethod as D, ip as O, mac as k, mimeType as A, password as j, statusCode as M, url as N, userAgent as P, username as F } from "./internet/internet.js";
6
+ import { city as I, country as L, latitude as R, longitude as z, nearbyGPSCoordinate as B, state as V, street as H, streetAddress as U, zipCode as W } from "./location/location.js";
7
+ import { lines as G, paragraph as K, paragraphs as q, sentence as J, sentences as Y, slug as X, word as Z, words as Q } from "./lorem/lorem.js";
8
+ import { firstName as $, fullName as ee, gender as te, jobTitle as ne, lastName as re, prefix as ie, suffix as ae } from "./person/person.js";
9
+ import { mulberry32 as oe } from "./seed/mulberry32.js";
10
+ import { createSeed as se } from "./seed/create-seed.js";
11
+ import { createIllusion as ce } from "./factory.js";
12
+ export { C as IllusionistError, w as IllusionistSeedError, m as amount, h as bank, s as between, g as bic, c as birthday, _ as bitcoinAddress, I as city, L as country, ce as createIllusion, se as createSeed, v as creditCardCVV, y as creditCardNumber, e as department, T as domainName, E as email, b as ethereumAddress, $ as firstName, ee as fullName, l as future, te as gender, D as httpMethod, x as iban, O as ip, ne as jobTitle, re as lastName, R as latitude, G as lines, z as longitude, k as mac, A as mimeType, u as month, oe as mulberry32, B as nearbyGPSCoordinate, K as paragraph, q as paragraphs, j as password, d as past, ie as prefix, t as price, n as productAdjective, r as productDescription, i as productMaterial, a as productName, o as productNoun, f as recent, J as sentence, Y as sentences, X as slug, V as state, M as statusCode, H as street, U as streetAddress, ae as suffix, S as transactionType, N as url, P as userAgent, F as username, p as weekday, Z as word, Q as words, W as zipCode };
@@ -0,0 +1,2 @@
1
+ var e={domains:[`example`,`test`,`demo`,`mail`,`web`,`tech`,`app`,`cloud`,`dev`,`info`],httpMethods:[`GET`,`POST`,`PUT`,`PATCH`,`DELETE`,`HEAD`,`OPTIONS`],mimeTypes:[`text/plain`,`text/html`,`application/json`,`application/xml`,`application/octet-stream`,`image/png`,`image/jpeg`,`image/gif`,`image/svg+xml`,`application/pdf`,`audio/mpeg`,`video/mp4`],protocols:[`https`,`http`],statusCodes:[200,201,204,301,302,304,400,401,403,404,405,409,418,422,429,500,502,503],tlds:[`com`,`org`,`net`,`io`,`dev`,`co`,`app`,`tech`,`cloud`,`ai`],userAgents:[`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`,`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`,`Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`,`Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0`,`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15`,`Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1`,`Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36`]};exports.INTERNET_DATA=e;
2
+ //# sourceMappingURL=data.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.cjs","names":[],"sources":["../../src/internet/data.ts"],"sourcesContent":["export const INTERNET_DATA = {\n domains: ['example', 'test', 'demo', 'mail', 'web', 'tech', 'app', 'cloud', 'dev', 'info'],\n httpMethods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],\n mimeTypes: [\n 'text/plain',\n 'text/html',\n 'application/json',\n 'application/xml',\n 'application/octet-stream',\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/svg+xml',\n 'application/pdf',\n 'audio/mpeg',\n 'video/mp4',\n ],\n protocols: ['https', 'http'],\n statusCodes: [200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 405, 409, 418, 422, 429, 500, 502, 503],\n tlds: ['com', 'org', 'net', 'io', 'dev', 'co', 'app', 'tech', 'cloud', 'ai'],\n userAgents: [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1',\n 'Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36',\n ],\n} as const;\n"],"mappings":"AAAA,IAAa,EAAgB,CAC3B,QAAS,CAAC,UAAW,OAAQ,OAAQ,OAAQ,MAAO,OAAQ,MAAO,QAAS,MAAO,MAAM,EACzF,YAAa,CAAC,MAAO,OAAQ,MAAO,QAAS,SAAU,OAAQ,SAAS,EACxE,UAAW,CACT,aACA,YACA,mBACA,kBACA,2BACA,YACA,aACA,YACA,gBACA,kBACA,aACA,WACF,EACA,UAAW,CAAC,QAAS,MAAM,EAC3B,YAAa,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACtG,KAAM,CAAC,MAAO,MAAO,MAAO,KAAM,MAAO,KAAM,MAAO,OAAQ,QAAS,IAAI,EAC3E,WAAY,CACV,kHACA,wHACA,wGACA,mFACA,wHACA,0IACA,uHACF,CACF"}
@@ -0,0 +1,10 @@
1
+ export declare const INTERNET_DATA: {
2
+ readonly domains: readonly ["example", "test", "demo", "mail", "web", "tech", "app", "cloud", "dev", "info"];
3
+ readonly httpMethods: readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"];
4
+ readonly mimeTypes: readonly ["text/plain", "text/html", "application/json", "application/xml", "application/octet-stream", "image/png", "image/jpeg", "image/gif", "image/svg+xml", "application/pdf", "audio/mpeg", "video/mp4"];
5
+ readonly protocols: readonly ["https", "http"];
6
+ readonly statusCodes: readonly [200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 405, 409, 418, 422, 429, 500, 502, 503];
7
+ readonly tlds: readonly ["com", "org", "net", "io", "dev", "co", "app", "tech", "cloud", "ai"];
8
+ readonly userAgents: readonly ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1", "Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36"];
9
+ };
10
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/internet/data.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;CA6BhB,CAAC"}
@@ -0,0 +1,84 @@
1
+ //#region src/internet/data.ts
2
+ var e = {
3
+ domains: [
4
+ "example",
5
+ "test",
6
+ "demo",
7
+ "mail",
8
+ "web",
9
+ "tech",
10
+ "app",
11
+ "cloud",
12
+ "dev",
13
+ "info"
14
+ ],
15
+ httpMethods: [
16
+ "GET",
17
+ "POST",
18
+ "PUT",
19
+ "PATCH",
20
+ "DELETE",
21
+ "HEAD",
22
+ "OPTIONS"
23
+ ],
24
+ mimeTypes: [
25
+ "text/plain",
26
+ "text/html",
27
+ "application/json",
28
+ "application/xml",
29
+ "application/octet-stream",
30
+ "image/png",
31
+ "image/jpeg",
32
+ "image/gif",
33
+ "image/svg+xml",
34
+ "application/pdf",
35
+ "audio/mpeg",
36
+ "video/mp4"
37
+ ],
38
+ protocols: ["https", "http"],
39
+ statusCodes: [
40
+ 200,
41
+ 201,
42
+ 204,
43
+ 301,
44
+ 302,
45
+ 304,
46
+ 400,
47
+ 401,
48
+ 403,
49
+ 404,
50
+ 405,
51
+ 409,
52
+ 418,
53
+ 422,
54
+ 429,
55
+ 500,
56
+ 502,
57
+ 503
58
+ ],
59
+ tlds: [
60
+ "com",
61
+ "org",
62
+ "net",
63
+ "io",
64
+ "dev",
65
+ "co",
66
+ "app",
67
+ "tech",
68
+ "cloud",
69
+ "ai"
70
+ ],
71
+ userAgents: [
72
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
73
+ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
74
+ "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
75
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0",
76
+ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15",
77
+ "Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1",
78
+ "Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36"
79
+ ]
80
+ };
81
+ //#endregion
82
+ export { e as INTERNET_DATA };
83
+
84
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.js","names":[],"sources":["../../src/internet/data.ts"],"sourcesContent":["export const INTERNET_DATA = {\n domains: ['example', 'test', 'demo', 'mail', 'web', 'tech', 'app', 'cloud', 'dev', 'info'],\n httpMethods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],\n mimeTypes: [\n 'text/plain',\n 'text/html',\n 'application/json',\n 'application/xml',\n 'application/octet-stream',\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/svg+xml',\n 'application/pdf',\n 'audio/mpeg',\n 'video/mp4',\n ],\n protocols: ['https', 'http'],\n statusCodes: [200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 405, 409, 418, 422, 429, 500, 502, 503],\n tlds: ['com', 'org', 'net', 'io', 'dev', 'co', 'app', 'tech', 'cloud', 'ai'],\n userAgents: [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1',\n 'Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36',\n ],\n} as const;\n"],"mappings":";AAAA,IAAa,IAAgB;CAC3B,SAAS;EAAC;EAAW;EAAQ;EAAQ;EAAQ;EAAO;EAAQ;EAAO;EAAS;EAAO;CAAM;CACzF,aAAa;EAAC;EAAO;EAAQ;EAAO;EAAS;EAAU;EAAQ;CAAS;CACxE,WAAW;EACT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,WAAW,CAAC,SAAS,MAAM;CAC3B,aAAa;EAAC;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;EAAK;CAAG;CACtG,MAAM;EAAC;EAAO;EAAO;EAAO;EAAM;EAAO;EAAM;EAAO;EAAQ;EAAS;CAAI;CAC3E,YAAY;EACV;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./internet.cjs");exports.domainName=e.domainName,exports.email=e.email,exports.httpMethod=e.httpMethod,exports.ip=e.ip,exports.mac=e.mac,exports.mimeType=e.mimeType,exports.password=e.password,exports.statusCode=e.statusCode,exports.url=e.url,exports.userAgent=e.userAgent,exports.username=e.username;
@@ -0,0 +1,2 @@
1
+ export * from './internet';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internet/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { domainName as e, email as t, httpMethod as n, ip as r, mac as i, mimeType as a, password as o, statusCode as s, url as c, userAgent as l, username as u } from "./internet.js";
2
+ export { e as domainName, t as email, n as httpMethod, r as ip, i as mac, a as mimeType, o as password, s as statusCode, c as url, l as userAgent, u as username };
@@ -0,0 +1,2 @@
1
+ const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../_helpers/int.cjs"),n=require("../_helpers/string.cjs"),r=require("./data.cjs");var i=e.__exportAll({domainName:()=>d,email:()=>s,httpMethod:()=>h,ip:()=>f,mac:()=>p,mimeType:()=>_,password:()=>l,statusCode:()=>g,url:()=>u,userAgent:()=>m,username:()=>c}),a=`!@#$%^&*()_+-=[]{}|;:,.<>?`,o=[`api`,`v1`,`v2`,`users`,`posts`,`comments`,`articles`,`products`,`orders`,`items`,`search`,`auth`,`login`,`logout`,`profile`,`settings`,`dashboard`,`files`,`images`,`assets`,`static`,`public`,`private`,`admin`,`reports`];function s(e){return`${(n.pick(e.locale.person.firstNameFemale,e.source)??n.pick(e.locale.person.firstNameMale,e.source)??`user`).toLowerCase()}.${(n.pick(e.locale.person.lastName,e.source)??`name`).toLowerCase()}@${n.pick(r.INTERNET_DATA.domains,e.source)??`example`}.${n.pick(r.INTERNET_DATA.tlds,e.source)??`com`}`}function c(e){return t.int(0,1,e.source)===0?n.alphanumeric(t.int(6,12,e.source),e.source):`${(n.pick(e.locale.person.firstNameFemale,e.source)??n.pick(e.locale.person.firstNameMale,e.source)??`user`).toLowerCase()}.${(n.pick(e.locale.person.lastName,e.source)??`name`).toLowerCase()}`}function l(e,r={}){let i=r.length??12;if(r.memorable){let r=(n.pick(e.locale.person.firstNameFemale,e.source)??n.pick(e.locale.person.firstNameMale,e.source)??`user`).toLowerCase(),o=(n.pick(e.locale.person.lastName,e.source)??`name`).toLowerCase(),s=String(t.int(10,99,e.source)),c=n.pick(a.split(``),e.source)??`!`,l=`${r}${o}${s}${c}`;if(l.length<=i)return l+n.alphanumeric(i-l.length,e.source);let u=`${s}${c}`,d=i-u.length,f=u+(d>0?(r+o).slice(0,d):``);return f.length<i?f+n.alphanumeric(i-f.length,e.source):f.slice(0,i)}let o=`ABCDEFGHIJKLMNOPQRSTUVWXYZ`,s=[o,`abcdefghijklmnopqrstuvwxyz`,`0123456789`,a],c=[];for(let t of s)c.push(t[Math.floor(e.source.next()*t.length)]??o[0]);for(;c.length<i;)c.push(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+-=[]{}|;:,.<>?`[Math.floor(e.source.next()*88)]??`a`);for(let t=c.length-1;t>0;t--){let n=Math.floor(e.source.next()*(t+1));[c[t],c[n]]=[c[n],c[t]]}return c.slice(0,i).join(``)}function u(e){let i=n.pick(r.INTERNET_DATA.protocols,e.source)??`https`,a=`${n.pick([`www`,`api`,`app`,`mail`,`static`,`cdn`],e.source)??`www`}.${n.pick(r.INTERNET_DATA.domains,e.source)??`example`}.${n.pick(r.INTERNET_DATA.tlds,e.source)??`com`}`,s=t.int(1,4,e.source),c=[];for(let r=0;r<s;r++){let r=n.pick(o,e.source)??`api`;t.int(0,2,e.source)===0?c.push(`${r}-${n.alphanumeric(t.int(2,5),e.source).toLowerCase()}`):c.push(r)}return`${i}://${a}/${c.join(`/`)}`}function d(e){return`${n.pick(r.INTERNET_DATA.domains,e.source)??`example`}.${n.pick(r.INTERNET_DATA.tlds,e.source)??`com`}`}function f(e,r=4){if(r===6){let t=[];for(let r=0;r<8;r++)t.push(n.hexString(4,e.source));return t.join(`:`)}let i=[];for(let n=0;n<4;n++)i.push(t.int(0,255,e.source));return i.join(`.`)}function p(e){let t=[];for(let r=0;r<6;r++)t.push(n.hexString(2,e.source));return t.join(`:`)}function m(e){return n.pick(r.INTERNET_DATA.userAgents,e.source)??r.INTERNET_DATA.userAgents[0]}function h(e){return n.pick(r.INTERNET_DATA.httpMethods,e.source)??`GET`}function g(e){return n.pick(r.INTERNET_DATA.statusCodes,e.source)??200}function _(e){return n.pick(r.INTERNET_DATA.mimeTypes,e.source)??`text/plain`}exports.domainName=d,exports.email=s,exports.httpMethod=h,Object.defineProperty(exports,"internet_exports",{enumerable:!0,get:function(){return i}}),exports.ip=f,exports.mac=p,exports.mimeType=_,exports.password=l,exports.statusCode=g,exports.url=u,exports.userAgent=m,exports.username=c;
2
+ //# sourceMappingURL=internet.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internet.cjs","names":[],"sources":["../../src/internet/internet.ts"],"sourcesContent":["import { int } from '../_helpers/int';\nimport { alphanumeric, hexString, pick } from '../_helpers/string';\nimport type { IllusionistContext } from '../types';\nimport { INTERNET_DATA } from './data';\n\nconst SPECIAL_CHARS = '!@#$%^&*()_+-=[]{}|;:,.<>?';\n\nconst URL_PATH_WORDS = [\n 'api',\n 'v1',\n 'v2',\n 'users',\n 'posts',\n 'comments',\n 'articles',\n 'products',\n 'orders',\n 'items',\n 'search',\n 'auth',\n 'login',\n 'logout',\n 'profile',\n 'settings',\n 'dashboard',\n 'files',\n 'images',\n 'assets',\n 'static',\n 'public',\n 'private',\n 'admin',\n 'reports',\n];\n\n/** Generates an email address of the form `firstname.lastname@domain.tld`. */\nexport function email(ctx: IllusionistContext): string {\n const first = (\n pick(ctx.locale.person.firstNameFemale, ctx.source) ??\n pick(ctx.locale.person.firstNameMale, ctx.source) ??\n 'user'\n ).toLowerCase();\n const last = (pick(ctx.locale.person.lastName, ctx.source) ?? 'name').toLowerCase();\n const domain = pick(INTERNET_DATA.domains, ctx.source) ?? 'example';\n const tld = pick(INTERNET_DATA.tlds, ctx.source) ?? 'com';\n return `${first}.${last}@${domain}.${tld}`;\n}\n\n/** Generates a username: either a random alphanumeric string or a `firstname.lastname` pattern. */\nexport function username(ctx: IllusionistContext): string {\n if (int(0, 1, ctx.source) === 0) {\n return alphanumeric(int(6, 12, ctx.source), ctx.source);\n }\n const first = (\n pick(ctx.locale.person.firstNameFemale, ctx.source) ??\n pick(ctx.locale.person.firstNameMale, ctx.source) ??\n 'user'\n ).toLowerCase();\n const last = (pick(ctx.locale.person.lastName, ctx.source) ?? 'name').toLowerCase();\n return `${first}.${last}`;\n}\n\n/** Options for {@link password}. */\nexport type PasswordOptions = {\n /** Password length. Defaults to `12`. */\n length?: number;\n /** When `true`, builds a memorable password from name fragments and digits. */\n memorable?: boolean;\n};\n\n/** Generates a password mixing upper/lowercase letters, digits, and special characters. */\nexport function password(ctx: IllusionistContext, opts: PasswordOptions = {}): string {\n const length = opts.length ?? 12;\n\n if (opts.memorable) {\n const first = (\n pick(ctx.locale.person.firstNameFemale, ctx.source) ??\n pick(ctx.locale.person.firstNameMale, ctx.source) ??\n 'user'\n ).toLowerCase();\n const last = (pick(ctx.locale.person.lastName, ctx.source) ?? 'name').toLowerCase();\n const num = String(int(10, 99, ctx.source));\n const special = pick(SPECIAL_CHARS.split(''), ctx.source) ?? '!';\n const base = `${first}${last}${num}${special}`;\n if (base.length <= length) return base + alphanumeric(length - base.length, ctx.source);\n // Truncation would cut the special char/number — put them first, then fill from the name.\n const essential = `${num}${special}`;\n const remaining = length - essential.length;\n const namePart = remaining > 0 ? (first + last).slice(0, remaining) : '';\n const result = essential + namePart;\n\n return result.length < length ? result + alphanumeric(length - result.length, ctx.source) : result.slice(0, length);\n }\n\n const upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n const lower = 'abcdefghijklmnopqrstuvwxyz';\n const digits = '0123456789';\n const pools = [upper, lower, digits, SPECIAL_CHARS];\n\n // Guarantee at least one char from each pool, then fill the rest randomly.\n const chars: string[] = [];\n for (const pool of pools) {\n chars.push(pool[Math.floor(ctx.source.next() * pool.length)] ?? upper[0]!);\n }\n const all = upper + lower + digits + SPECIAL_CHARS;\n while (chars.length < length) {\n chars.push(all[Math.floor(ctx.source.next() * all.length)] ?? 'a');\n }\n\n // Shuffle via Fisher-Yates using ctx.source.\n for (let i = chars.length - 1; i > 0; i--) {\n const j = Math.floor(ctx.source.next() * (i + 1));\n [chars[i], chars[j]] = [chars[j]!, chars[i]!];\n }\n\n return chars.slice(0, length).join('');\n}\n\n/** Generates a URL of the form `protocol://sub.domain.tld/path/...`. */\nexport function url(ctx: IllusionistContext): string {\n const protocol = pick(INTERNET_DATA.protocols, ctx.source) ?? 'https';\n const sub = pick(['www', 'api', 'app', 'mail', 'static', 'cdn'], ctx.source) ?? 'www';\n const domain = pick(INTERNET_DATA.domains, ctx.source) ?? 'example';\n const tld = pick(INTERNET_DATA.tlds, ctx.source) ?? 'com';\n const host = `${sub}.${domain}.${tld}`;\n\n const segmentCount = int(1, 4, ctx.source);\n const segments: string[] = [];\n for (let i = 0; i < segmentCount; i++) {\n const word = pick(URL_PATH_WORDS, ctx.source) ?? 'api';\n // Occasionally append a numeric or short alphanumeric suffix to a segment.\n if (int(0, 2, ctx.source) === 0) {\n segments.push(`${word}-${alphanumeric(int(2, 5), ctx.source).toLowerCase()}`);\n } else {\n segments.push(word);\n }\n }\n\n return `${protocol}://${host}/${segments.join('/')}`;\n}\n\n/** Generates a domain name of the form `domain.tld`. */\nexport function domainName(ctx: IllusionistContext): string {\n const domain = pick(INTERNET_DATA.domains, ctx.source) ?? 'example';\n const tld = pick(INTERNET_DATA.tlds, ctx.source) ?? 'com';\n return `${domain}.${tld}`;\n}\n\n/** Generates an IPv4 or IPv6 address. Defaults to IPv4. */\nexport function ip(ctx: IllusionistContext, version: 4 | 6 = 4): string {\n if (version === 6) {\n const groups: string[] = [];\n for (let i = 0; i < 8; i++) {\n groups.push(hexString(4, ctx.source));\n }\n return groups.join(':');\n }\n const octets: number[] = [];\n for (let i = 0; i < 4; i++) {\n octets.push(int(0, 255, ctx.source));\n }\n return octets.join('.');\n}\n\n/** Generates a MAC address of the form `XX:XX:XX:XX:XX:XX`. */\nexport function mac(ctx: IllusionistContext): string {\n const parts: string[] = [];\n for (let i = 0; i < 6; i++) {\n parts.push(hexString(2, ctx.source));\n }\n return parts.join(':');\n}\n\n/** Picks a random user agent string. */\nexport function userAgent(ctx: IllusionistContext): string {\n return pick(INTERNET_DATA.userAgents, ctx.source) ?? INTERNET_DATA.userAgents[0]!;\n}\n\n/** Picks a random HTTP method. */\nexport function httpMethod(ctx: IllusionistContext): string {\n return pick(INTERNET_DATA.httpMethods, ctx.source) ?? 'GET';\n}\n\n/** Picks a random HTTP status code. */\nexport function statusCode(ctx: IllusionistContext): number {\n return pick(INTERNET_DATA.statusCodes, ctx.source) ?? 200;\n}\n\n/** Picks a random MIME type. */\nexport function mimeType(ctx: IllusionistContext): string {\n return pick(INTERNET_DATA.mimeTypes, ctx.source) ?? 'text/plain';\n}\n"],"mappings":"kUAKM,EAAgB,6BAEhB,EAAiB,CACrB,MACA,KACA,KACA,QACA,QACA,WACA,WACA,WACA,SACA,QACA,SACA,OACA,QACA,SACA,UACA,WACA,YACA,QACA,SACA,SACA,SACA,SACA,UACA,QACA,SACF,EAGA,SAAgB,EAAM,EAAiC,CASrD,MAAO,IAPL,EAAA,KAAK,EAAI,OAAO,OAAO,gBAAiB,EAAI,MAAM,GAClD,EAAA,KAAK,EAAI,OAAO,OAAO,cAAe,EAAI,MAAM,GAChD,OAAA,CACA,YAIQ,EAAM,IAHF,EAAA,KAAK,EAAI,OAAO,OAAO,SAAU,EAAI,MAAM,GAAK,OAAA,CAAQ,YAGnD,EAAK,GAFT,EAAA,KAAK,EAAA,cAAc,QAAS,EAAI,MAAM,GAAK,UAExB,GADtB,EAAA,KAAK,EAAA,cAAc,KAAM,EAAI,MAAM,GAAK,OAEtD,CAGA,SAAgB,EAAS,EAAiC,CAUxD,OATI,EAAA,IAAI,EAAG,EAAG,EAAI,MAAM,IAAM,EACrB,EAAA,aAAa,EAAA,IAAI,EAAG,GAAI,EAAI,MAAM,EAAG,EAAI,MAAM,EAQjD,IALL,EAAA,KAAK,EAAI,OAAO,OAAO,gBAAiB,EAAI,MAAM,GAClD,EAAA,KAAK,EAAI,OAAO,OAAO,cAAe,EAAI,MAAM,GAChD,OAAA,CACA,YAEQ,EAAM,IADF,EAAA,KAAK,EAAI,OAAO,OAAO,SAAU,EAAI,MAAM,GAAK,OAAA,CAAQ,YACnD,GACrB,CAWA,SAAgB,EAAS,EAAyB,EAAwB,CAAC,EAAW,CACpF,IAAM,EAAS,EAAK,QAAU,GAE9B,GAAI,EAAK,UAAW,CAClB,IAAM,GACJ,EAAA,KAAK,EAAI,OAAO,OAAO,gBAAiB,EAAI,MAAM,GAClD,EAAA,KAAK,EAAI,OAAO,OAAO,cAAe,EAAI,MAAM,GAChD,OAAA,CACA,YAAY,EACR,GAAQ,EAAA,KAAK,EAAI,OAAO,OAAO,SAAU,EAAI,MAAM,GAAK,OAAA,CAAQ,YAAY,EAC5E,EAAM,OAAO,EAAA,IAAI,GAAI,GAAI,EAAI,MAAM,CAAC,EACpC,EAAU,EAAA,KAAK,EAAc,MAAM,EAAE,EAAG,EAAI,MAAM,GAAK,IACvD,EAAO,GAAG,IAAQ,IAAO,IAAM,IACrC,GAAI,EAAK,QAAU,EAAQ,OAAO,EAAO,EAAA,aAAa,EAAS,EAAK,OAAQ,EAAI,MAAM,EAEtF,IAAM,EAAY,GAAG,IAAM,IACrB,EAAY,EAAS,EAAU,OAE/B,EAAS,GADE,EAAY,GAAK,EAAQ,EAAA,CAAM,MAAM,EAAG,CAAS,EAAI,IAGtE,OAAO,EAAO,OAAS,EAAS,EAAS,EAAA,aAAa,EAAS,EAAO,OAAQ,EAAI,MAAM,EAAI,EAAO,MAAM,EAAG,CAAM,CACpH,CAEA,IAAM,EAAQ,6BAGR,EAAQ,CAAC,EAAO,6BAAO,aAAQ,CAAa,EAG5C,EAAkB,CAAC,EACzB,IAAK,IAAM,KAAQ,EACjB,EAAM,KAAK,EAAK,KAAK,MAAM,EAAI,OAAO,KAAK,EAAI,EAAK,MAAM,IAAM,EAAM,EAAG,EAG3E,KAAO,EAAM,OAAS,GACpB,EAAM,KAAK,2FAAI,KAAK,MAAM,EAAI,OAAO,KAAK,EAAI,EAAU,IAAM,GAAG,EAInE,IAAK,IAAI,EAAI,EAAM,OAAS,EAAG,EAAI,EAAG,IAAK,CACzC,IAAM,EAAI,KAAK,MAAM,EAAI,OAAO,KAAK,GAAK,EAAI,EAAE,EAChD,CAAC,EAAM,GAAI,EAAM,IAAM,CAAC,EAAM,GAAK,EAAM,EAAG,CAC9C,CAEA,OAAO,EAAM,MAAM,EAAG,CAAM,CAAC,CAAC,KAAK,EAAE,CACvC,CAGA,SAAgB,EAAI,EAAiC,CACnD,IAAM,EAAW,EAAA,KAAK,EAAA,cAAc,UAAW,EAAI,MAAM,GAAK,QAIxD,EAAO,GAHD,EAAA,KAAK,CAAC,MAAO,MAAO,MAAO,OAAQ,SAAU,KAAK,EAAG,EAAI,MAAM,GAAK,MAG5D,GAFL,EAAA,KAAK,EAAA,cAAc,QAAS,EAAI,MAAM,GAAK,UAE5B,GADlB,EAAA,KAAK,EAAA,cAAc,KAAM,EAAI,MAAM,GAAK,QAG9C,EAAe,EAAA,IAAI,EAAG,EAAG,EAAI,MAAM,EACnC,EAAqB,CAAC,EAC5B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAc,IAAK,CACrC,IAAM,EAAO,EAAA,KAAK,EAAgB,EAAI,MAAM,GAAK,MAE7C,EAAA,IAAI,EAAG,EAAG,EAAI,MAAM,IAAM,EAC5B,EAAS,KAAK,GAAG,EAAK,GAAG,EAAA,aAAa,EAAA,IAAI,EAAG,CAAC,EAAG,EAAI,MAAM,CAAC,CAAC,YAAY,GAAG,EAE5E,EAAS,KAAK,CAAI,CAEtB,CAEA,MAAO,GAAG,EAAS,KAAK,EAAK,GAAG,EAAS,KAAK,GAAG,GACnD,CAGA,SAAgB,EAAW,EAAiC,CAG1D,MAAO,GAFQ,EAAA,KAAK,EAAA,cAAc,QAAS,EAAI,MAAM,GAAK,UAEzC,GADL,EAAA,KAAK,EAAA,cAAc,KAAM,EAAI,MAAM,GAAK,OAEtD,CAGA,SAAgB,EAAG,EAAyB,EAAiB,EAAW,CACtE,GAAI,IAAY,EAAG,CACjB,IAAM,EAAmB,CAAC,EAC1B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACrB,EAAO,KAAK,EAAA,UAAU,EAAG,EAAI,MAAM,CAAC,EAEtC,OAAO,EAAO,KAAK,GAAG,CACxB,CACA,IAAM,EAAmB,CAAC,EAC1B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACrB,EAAO,KAAK,EAAA,IAAI,EAAG,IAAK,EAAI,MAAM,CAAC,EAErC,OAAO,EAAO,KAAK,GAAG,CACxB,CAGA,SAAgB,EAAI,EAAiC,CACnD,IAAM,EAAkB,CAAC,EACzB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACrB,EAAM,KAAK,EAAA,UAAU,EAAG,EAAI,MAAM,CAAC,EAErC,OAAO,EAAM,KAAK,GAAG,CACvB,CAGA,SAAgB,EAAU,EAAiC,CACzD,OAAO,EAAA,KAAK,EAAA,cAAc,WAAY,EAAI,MAAM,GAAK,EAAA,cAAc,WAAW,EAChF,CAGA,SAAgB,EAAW,EAAiC,CAC1D,OAAO,EAAA,KAAK,EAAA,cAAc,YAAa,EAAI,MAAM,GAAK,KACxD,CAGA,SAAgB,EAAW,EAAiC,CAC1D,OAAO,EAAA,KAAK,EAAA,cAAc,YAAa,EAAI,MAAM,GAAK,GACxD,CAGA,SAAgB,EAAS,EAAiC,CACxD,OAAO,EAAA,KAAK,EAAA,cAAc,UAAW,EAAI,MAAM,GAAK,YACtD"}
@@ -0,0 +1,31 @@
1
+ import type { IllusionistContext } from '../types';
2
+ /** Generates an email address of the form `firstname.lastname@domain.tld`. */
3
+ export declare function email(ctx: IllusionistContext): string;
4
+ /** Generates a username: either a random alphanumeric string or a `firstname.lastname` pattern. */
5
+ export declare function username(ctx: IllusionistContext): string;
6
+ /** Options for {@link password}. */
7
+ export type PasswordOptions = {
8
+ /** Password length. Defaults to `12`. */
9
+ length?: number;
10
+ /** When `true`, builds a memorable password from name fragments and digits. */
11
+ memorable?: boolean;
12
+ };
13
+ /** Generates a password mixing upper/lowercase letters, digits, and special characters. */
14
+ export declare function password(ctx: IllusionistContext, opts?: PasswordOptions): string;
15
+ /** Generates a URL of the form `protocol://sub.domain.tld/path/...`. */
16
+ export declare function url(ctx: IllusionistContext): string;
17
+ /** Generates a domain name of the form `domain.tld`. */
18
+ export declare function domainName(ctx: IllusionistContext): string;
19
+ /** Generates an IPv4 or IPv6 address. Defaults to IPv4. */
20
+ export declare function ip(ctx: IllusionistContext, version?: 4 | 6): string;
21
+ /** Generates a MAC address of the form `XX:XX:XX:XX:XX:XX`. */
22
+ export declare function mac(ctx: IllusionistContext): string;
23
+ /** Picks a random user agent string. */
24
+ export declare function userAgent(ctx: IllusionistContext): string;
25
+ /** Picks a random HTTP method. */
26
+ export declare function httpMethod(ctx: IllusionistContext): string;
27
+ /** Picks a random HTTP status code. */
28
+ export declare function statusCode(ctx: IllusionistContext): number;
29
+ /** Picks a random MIME type. */
30
+ export declare function mimeType(ctx: IllusionistContext): string;
31
+ //# sourceMappingURL=internet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internet.d.ts","sourceRoot":"","sources":["../../src/internet/internet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAiCnD,8EAA8E;AAC9E,wBAAgB,KAAK,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAUrD;AAED,mGAAmG;AACnG,wBAAgB,QAAQ,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAWxD;AAED,oCAAoC;AACpC,MAAM,MAAM,eAAe,GAAG;IAC5B,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,2FAA2F;AAC3F,wBAAgB,QAAQ,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,GAAE,eAAoB,GAAG,MAAM,CA6CpF;AAED,wEAAwE;AACxE,wBAAgB,GAAG,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAoBnD;AAED,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAI1D;AAED,2DAA2D;AAC3D,wBAAgB,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,OAAO,GAAE,CAAC,GAAG,CAAK,GAAG,MAAM,CAatE;AAED,+DAA+D;AAC/D,wBAAgB,GAAG,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAMnD;AAED,wCAAwC;AACxC,wBAAgB,SAAS,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAEzD;AAED,kCAAkC;AAClC,wBAAgB,UAAU,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAE1D;AAED,uCAAuC;AACvC,wBAAgB,UAAU,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAE1D;AAED,gCAAgC;AAChC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAExD"}