@moxon/api 6.0.0-pre

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 (246) hide show
  1. package/.prettierignore +5 -0
  2. package/LICENSE +28 -0
  3. package/README.md +277 -0
  4. package/dist/app.d.ts +2 -0
  5. package/dist/app.js +55 -0
  6. package/dist/app.js.map +1 -0
  7. package/dist/config/env.d.ts +22 -0
  8. package/dist/config/env.js +36 -0
  9. package/dist/config/env.js.map +1 -0
  10. package/dist/config/plans.d.ts +26 -0
  11. package/dist/config/plans.js +44 -0
  12. package/dist/config/plans.js.map +1 -0
  13. package/dist/config/versions.d.ts +18 -0
  14. package/dist/config/versions.js +248 -0
  15. package/dist/config/versions.js.map +1 -0
  16. package/dist/constants.d.ts +48 -0
  17. package/dist/constants.js +75 -0
  18. package/dist/constants.js.map +1 -0
  19. package/dist/middleware/cors.d.ts +2 -0
  20. package/dist/middleware/cors.js +31 -0
  21. package/dist/middleware/cors.js.map +1 -0
  22. package/dist/middleware/error.d.ts +4 -0
  23. package/dist/middleware/error.js +8 -0
  24. package/dist/middleware/error.js.map +1 -0
  25. package/dist/middleware/json.d.ts +2 -0
  26. package/dist/middleware/json.js +8 -0
  27. package/dist/middleware/json.js.map +1 -0
  28. package/dist/middleware/logger.d.ts +26 -0
  29. package/dist/middleware/logger.js +65 -0
  30. package/dist/middleware/logger.js.map +1 -0
  31. package/dist/middleware/ratelimit.d.ts +2 -0
  32. package/dist/middleware/ratelimit.js +83 -0
  33. package/dist/middleware/ratelimit.js.map +1 -0
  34. package/dist/middleware/version.d.ts +3 -0
  35. package/dist/middleware/version.js +30 -0
  36. package/dist/middleware/version.js.map +1 -0
  37. package/dist/modules/v4/address.d.ts +20 -0
  38. package/dist/modules/v4/address.js +381 -0
  39. package/dist/modules/v4/address.js.map +1 -0
  40. package/dist/modules/v4/agent.d.ts +30 -0
  41. package/dist/modules/v4/agent.js +92 -0
  42. package/dist/modules/v4/agent.js.map +1 -0
  43. package/dist/modules/v4/algorithms.d.ts +90 -0
  44. package/dist/modules/v4/algorithms.js +279 -0
  45. package/dist/modules/v4/algorithms.js.map +1 -0
  46. package/dist/modules/v4/avatar.d.ts +23 -0
  47. package/dist/modules/v4/avatar.js +136 -0
  48. package/dist/modules/v4/avatar.js.map +1 -0
  49. package/dist/modules/v4/barcode.d.ts +27 -0
  50. package/dist/modules/v4/barcode.js +440 -0
  51. package/dist/modules/v4/barcode.js.map +1 -0
  52. package/dist/modules/v4/captcha.d.ts +22 -0
  53. package/dist/modules/v4/captcha.js +79 -0
  54. package/dist/modules/v4/captcha.js.map +1 -0
  55. package/dist/modules/v4/chat.d.ts +21 -0
  56. package/dist/modules/v4/chat.js +100 -0
  57. package/dist/modules/v4/chat.js.map +1 -0
  58. package/dist/modules/v4/color.d.ts +16 -0
  59. package/dist/modules/v4/color.js +59 -0
  60. package/dist/modules/v4/color.js.map +1 -0
  61. package/dist/modules/v4/convert.d.ts +15 -0
  62. package/dist/modules/v4/convert.js +116 -0
  63. package/dist/modules/v4/convert.js.map +1 -0
  64. package/dist/modules/v4/credit.d.ts +22 -0
  65. package/dist/modules/v4/credit.js +104 -0
  66. package/dist/modules/v4/credit.js.map +1 -0
  67. package/dist/modules/v4/cron.d.ts +17 -0
  68. package/dist/modules/v4/cron.js +202 -0
  69. package/dist/modules/v4/cron.js.map +1 -0
  70. package/dist/modules/v4/dice.d.ts +16 -0
  71. package/dist/modules/v4/dice.js +37 -0
  72. package/dist/modules/v4/dice.js.map +1 -0
  73. package/dist/modules/v4/domain.d.ts +6 -0
  74. package/dist/modules/v4/domain.js +83 -0
  75. package/dist/modules/v4/domain.js.map +1 -0
  76. package/dist/modules/v4/encode.d.ts +81 -0
  77. package/dist/modules/v4/encode.js +236 -0
  78. package/dist/modules/v4/encode.js.map +1 -0
  79. package/dist/modules/v4/geo.d.ts +30 -0
  80. package/dist/modules/v4/geo.js +51 -0
  81. package/dist/modules/v4/geo.js.map +1 -0
  82. package/dist/modules/v4/hash.d.ts +15 -0
  83. package/dist/modules/v4/hash.js +25 -0
  84. package/dist/modules/v4/hash.js.map +1 -0
  85. package/dist/modules/v4/hyperplanning.d.ts +19 -0
  86. package/dist/modules/v4/hyperplanning.js +80 -0
  87. package/dist/modules/v4/hyperplanning.js.map +1 -0
  88. package/dist/modules/v4/ip.d.ts +19 -0
  89. package/dist/modules/v4/ip.js +132 -0
  90. package/dist/modules/v4/ip.js.map +1 -0
  91. package/dist/modules/v4/levenshtein.d.ts +13 -0
  92. package/dist/modules/v4/levenshtein.js +37 -0
  93. package/dist/modules/v4/levenshtein.js.map +1 -0
  94. package/dist/modules/v4/palette.d.ts +19 -0
  95. package/dist/modules/v4/palette.js +56 -0
  96. package/dist/modules/v4/palette.js.map +1 -0
  97. package/dist/modules/v4/password.d.ts +25 -0
  98. package/dist/modules/v4/password.js +343 -0
  99. package/dist/modules/v4/password.js.map +1 -0
  100. package/dist/modules/v4/personal.d.ts +6 -0
  101. package/dist/modules/v4/personal.js +121 -0
  102. package/dist/modules/v4/personal.js.map +1 -0
  103. package/dist/modules/v4/placeholder.d.ts +30 -0
  104. package/dist/modules/v4/placeholder.js +160 -0
  105. package/dist/modules/v4/placeholder.js.map +1 -0
  106. package/dist/modules/v4/qrcode.d.ts +25 -0
  107. package/dist/modules/v4/qrcode.js +92 -0
  108. package/dist/modules/v4/qrcode.js.map +1 -0
  109. package/dist/modules/v4/regex.d.ts +23 -0
  110. package/dist/modules/v4/regex.js +48 -0
  111. package/dist/modules/v4/regex.js.map +1 -0
  112. package/dist/modules/v4/statistics.d.ts +20 -0
  113. package/dist/modules/v4/statistics.js +48 -0
  114. package/dist/modules/v4/statistics.js.map +1 -0
  115. package/dist/modules/v4/text.d.ts +43 -0
  116. package/dist/modules/v4/text.js +323 -0
  117. package/dist/modules/v4/text.js.map +1 -0
  118. package/dist/modules/v4/tic_tac_toe.d.ts +19 -0
  119. package/dist/modules/v4/tic_tac_toe.js +214 -0
  120. package/dist/modules/v4/tic_tac_toe.js.map +1 -0
  121. package/dist/modules/v4/time.d.ts +15 -0
  122. package/dist/modules/v4/time.js +124 -0
  123. package/dist/modules/v4/time.js.map +1 -0
  124. package/dist/modules/v4/token.d.ts +9 -0
  125. package/dist/modules/v4/token.js +45 -0
  126. package/dist/modules/v4/token.js.map +1 -0
  127. package/dist/modules/v4/username.d.ts +6 -0
  128. package/dist/modules/v4/username.js +92 -0
  129. package/dist/modules/v4/username.js.map +1 -0
  130. package/dist/modules/v4/validate.d.ts +34 -0
  131. package/dist/modules/v4/validate.js +75 -0
  132. package/dist/modules/v4/validate.js.map +1 -0
  133. package/dist/modules/v4.d.ts +32 -0
  134. package/dist/modules/v4.js +33 -0
  135. package/dist/modules/v4.js.map +1 -0
  136. package/dist/modules/v5/address.d.ts +5 -0
  137. package/dist/modules/v5/address.js +20 -0
  138. package/dist/modules/v5/address.js.map +1 -0
  139. package/dist/modules/v5/algorithms.d.ts +9 -0
  140. package/dist/modules/v5/algorithms.js +39 -0
  141. package/dist/modules/v5/algorithms.js.map +1 -0
  142. package/dist/modules/v5/asymmetric.d.ts +26 -0
  143. package/dist/modules/v5/asymmetric.js +74 -0
  144. package/dist/modules/v5/asymmetric.js.map +1 -0
  145. package/dist/modules/v5/barcode.d.ts +27 -0
  146. package/dist/modules/v5/barcode.js +424 -0
  147. package/dist/modules/v5/barcode.js.map +1 -0
  148. package/dist/modules/v5/base.d.ts +16 -0
  149. package/dist/modules/v5/base.js +41 -0
  150. package/dist/modules/v5/base.js.map +1 -0
  151. package/dist/modules/v5/captcha.d.ts +27 -0
  152. package/dist/modules/v5/captcha.js +136 -0
  153. package/dist/modules/v5/captcha.js.map +1 -0
  154. package/dist/modules/v5/case.d.ts +10 -0
  155. package/dist/modules/v5/case.js +57 -0
  156. package/dist/modules/v5/case.js.map +1 -0
  157. package/dist/modules/v5/chart.d.ts +53 -0
  158. package/dist/modules/v5/chart.js +385 -0
  159. package/dist/modules/v5/chart.js.map +1 -0
  160. package/dist/modules/v5/chat.d.ts +21 -0
  161. package/dist/modules/v5/chat.js +107 -0
  162. package/dist/modules/v5/chat.js.map +1 -0
  163. package/dist/modules/v5/csv.d.ts +29 -0
  164. package/dist/modules/v5/csv.js +143 -0
  165. package/dist/modules/v5/csv.js.map +1 -0
  166. package/dist/modules/v5/diff.d.ts +20 -0
  167. package/dist/modules/v5/diff.js +81 -0
  168. package/dist/modules/v5/diff.js.map +1 -0
  169. package/dist/modules/v5/evaluate.d.ts +14 -0
  170. package/dist/modules/v5/evaluate.js +284 -0
  171. package/dist/modules/v5/evaluate.js.map +1 -0
  172. package/dist/modules/v5/jwt.d.ts +11 -0
  173. package/dist/modules/v5/jwt.js +42 -0
  174. package/dist/modules/v5/jwt.js.map +1 -0
  175. package/dist/modules/v5/matrix.d.ts +77 -0
  176. package/dist/modules/v5/matrix.js +239 -0
  177. package/dist/modules/v5/matrix.js.map +1 -0
  178. package/dist/modules/v5/otp.d.ts +30 -0
  179. package/dist/modules/v5/otp.js +117 -0
  180. package/dist/modules/v5/otp.js.map +1 -0
  181. package/dist/modules/v5/pow.d.ts +29 -0
  182. package/dist/modules/v5/pow.js +49 -0
  183. package/dist/modules/v5/pow.js.map +1 -0
  184. package/dist/modules/v5/read.d.ts +20 -0
  185. package/dist/modules/v5/read.js +59 -0
  186. package/dist/modules/v5/read.js.map +1 -0
  187. package/dist/modules/v5/semver.d.ts +33 -0
  188. package/dist/modules/v5/semver.js +99 -0
  189. package/dist/modules/v5/semver.js.map +1 -0
  190. package/dist/modules/v5/symmetric.d.ts +15 -0
  191. package/dist/modules/v5/symmetric.js +88 -0
  192. package/dist/modules/v5/symmetric.js.map +1 -0
  193. package/dist/modules/v5/text.d.ts +5 -0
  194. package/dist/modules/v5/text.js +12 -0
  195. package/dist/modules/v5/text.js.map +1 -0
  196. package/dist/modules/v5/tic_tac_toe.d.ts +19 -0
  197. package/dist/modules/v5/tic_tac_toe.js +226 -0
  198. package/dist/modules/v5/tic_tac_toe.js.map +1 -0
  199. package/dist/modules/v5/url.d.ts +18 -0
  200. package/dist/modules/v5/url.js +51 -0
  201. package/dist/modules/v5/url.js.map +1 -0
  202. package/dist/modules/v5/uuid.d.ts +25 -0
  203. package/dist/modules/v5/uuid.js +40 -0
  204. package/dist/modules/v5/uuid.js.map +1 -0
  205. package/dist/modules/v5.d.ts +24 -0
  206. package/dist/modules/v5.js +25 -0
  207. package/dist/modules/v5.js.map +1 -0
  208. package/dist/modules/v6.d.ts +1 -0
  209. package/dist/modules/v6.js +2 -0
  210. package/dist/modules/v6.js.map +1 -0
  211. package/dist/routes/delete.d.ts +2 -0
  212. package/dist/routes/delete.js +73 -0
  213. package/dist/routes/delete.js.map +1 -0
  214. package/dist/routes/get.d.ts +2 -0
  215. package/dist/routes/get.js +857 -0
  216. package/dist/routes/get.js.map +1 -0
  217. package/dist/routes/index.d.ts +2 -0
  218. package/dist/routes/index.js +95 -0
  219. package/dist/routes/index.js.map +1 -0
  220. package/dist/routes/patch.d.ts +2 -0
  221. package/dist/routes/patch.js +45 -0
  222. package/dist/routes/patch.js.map +1 -0
  223. package/dist/routes/post.d.ts +2 -0
  224. package/dist/routes/post.js +604 -0
  225. package/dist/routes/post.js.map +1 -0
  226. package/dist/storage/index.d.ts +5 -0
  227. package/dist/storage/index.js +14 -0
  228. package/dist/storage/index.js.map +1 -0
  229. package/dist/types/storage.d.ts +52 -0
  230. package/dist/types/storage.js +2 -0
  231. package/dist/types/storage.js.map +1 -0
  232. package/dist/utils/challenge.d.ts +40 -0
  233. package/dist/utils/challenge.js +75 -0
  234. package/dist/utils/challenge.js.map +1 -0
  235. package/dist/utils/colors.d.ts +44 -0
  236. package/dist/utils/colors.js +93 -0
  237. package/dist/utils/colors.js.map +1 -0
  238. package/dist/utils/helpers.d.ts +55 -0
  239. package/dist/utils/helpers.js +82 -0
  240. package/dist/utils/helpers.js.map +1 -0
  241. package/dist/utils/response.d.ts +9 -0
  242. package/dist/utils/response.js +24 -0
  243. package/dist/utils/response.js.map +1 -0
  244. package/package.json +90 -0
  245. package/robots.txt +74 -0
  246. package/src/favicon.ico +0 -0
@@ -0,0 +1,124 @@
1
+ import { MAX_COUNTDOWN_YEARS } from '../../constants.js';
2
+ const VALID_FORMATS = [
3
+ 'iso',
4
+ 'utc',
5
+ 'timestamp',
6
+ 'locale',
7
+ 'date',
8
+ 'time',
9
+ 'year',
10
+ 'month',
11
+ 'day',
12
+ 'hour',
13
+ 'minute',
14
+ 'second',
15
+ 'ms',
16
+ 'dayOfWeek',
17
+ 'dayOfYear',
18
+ 'weekNumber',
19
+ 'timezone',
20
+ 'timezoneOffset',
21
+ ];
22
+ export const VALID_TIMEZONES = ['UTC', 'America/New_York', 'Europe/Paris', 'Asia/Tokyo', 'Australia/Sydney'];
23
+ /**
24
+ * Returns the current or a random date/time in various formats and timezones,
25
+ * or computes a countdown/elapsed time to/from a target date.
26
+ *
27
+ * @param type - "live" for the current time, "random" for a random date, or "countdown" for a time diff
28
+ * @param start - Optional start date for random mode (YYYY-MM-DD)
29
+ * @param end - Optional end date for random mode (YYYY-MM-DD)
30
+ * @param format - Optional specific format to return (e.g. "iso", "timestamp", "year")
31
+ * @param timezone - Optional timezone (e.g. "UTC", "Europe/Paris")
32
+ * @param target - Required for countdown mode: target date in ISO 8601 or YYYY-MM-DD format
33
+ * @returns Object containing all time formats, a single format, or a countdown result
34
+ * @throws Error if type, format, timezone, or target is invalid
35
+ */
36
+ export default function time(type = 'live', start, end, format, timezone, target) {
37
+ if (type !== 'live' && type !== 'random' && type !== 'countdown') {
38
+ throw new Error('Please provide a valid type (live, random or countdown)');
39
+ }
40
+ if (timezone && !VALID_TIMEZONES.includes(timezone)) {
41
+ throw new Error(`Please provide a valid timezone. Options: ${VALID_TIMEZONES.join(', ')}`);
42
+ }
43
+ if (type === 'countdown') {
44
+ if (!target) {
45
+ throw new Error('Please provide a target date (?target=YYYY-MM-DD)');
46
+ }
47
+ const targetDate = new Date(target);
48
+ if (isNaN(targetDate.getTime())) {
49
+ throw new Error('Please provide a valid target date (ISO 8601 or YYYY-MM-DD)');
50
+ }
51
+ const now = new Date();
52
+ const maxMs = MAX_COUNTDOWN_YEARS * 365.25 * 24 * 3600 * 1000;
53
+ if (Math.abs(targetDate.getTime() - now.getTime()) > maxMs) {
54
+ throw new Error(`Target date must be within ${MAX_COUNTDOWN_YEARS} years from now`);
55
+ }
56
+ const direction = targetDate > now ? 'future' : 'past';
57
+ const diffMs = Math.abs(targetDate.getTime() - now.getTime());
58
+ const total_seconds = Math.floor(diffMs / 1000);
59
+ const days = Math.floor(total_seconds / 86400);
60
+ const hours = Math.floor((total_seconds % 86400) / 3600);
61
+ const minutes = Math.floor((total_seconds % 3600) / 60);
62
+ const seconds = total_seconds % 60;
63
+ const parts = [];
64
+ if (days > 0)
65
+ parts.push(`${days} day${days !== 1 ? 's' : ''}`);
66
+ if (hours > 0)
67
+ parts.push(`${hours} hour${hours !== 1 ? 's' : ''}`);
68
+ if (minutes > 0)
69
+ parts.push(`${minutes} minute${minutes !== 1 ? 's' : ''}`);
70
+ if (seconds > 0)
71
+ parts.push(`${seconds} second${seconds !== 1 ? 's' : ''}`);
72
+ return {
73
+ target: targetDate.toISOString(),
74
+ now: now.toISOString(),
75
+ direction,
76
+ remaining: { total_seconds, days, hours, minutes, seconds },
77
+ human: parts.length > 0 ? parts.join(', ') : '0 seconds',
78
+ };
79
+ }
80
+ if (start && !Date.parse(start)) {
81
+ throw new Error('Please provide a valid start date (YYYY-MM-DD)');
82
+ }
83
+ if (end && !Date.parse(end)) {
84
+ throw new Error('Please provide a valid end date (YYYY-MM-DD)');
85
+ }
86
+ if (format && !VALID_FORMATS.includes(format)) {
87
+ throw new Error(`Please provide a valid format. Options: ${VALID_FORMATS.join(', ')}`);
88
+ }
89
+ const getTimeFormats = (date, tz) => {
90
+ return {
91
+ iso: date.toISOString(),
92
+ utc: date.toUTCString(),
93
+ timestamp: date.getTime(),
94
+ locale: date.toLocaleString('en-US', { timeZone: tz, timeZoneName: 'long' }),
95
+ date: date.toLocaleDateString('en-US', { timeZone: tz }),
96
+ time: date.toLocaleTimeString('en-US', { timeZone: tz }),
97
+ year: date.getFullYear(),
98
+ month: date.getMonth() + 1,
99
+ day: date.getDate(),
100
+ hour: date.getHours(),
101
+ minute: date.getMinutes(),
102
+ second: date.getSeconds(),
103
+ ms: date.getMilliseconds(),
104
+ dayOfWeek: date.getDay(),
105
+ dayOfYear: Math.floor((date.getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000),
106
+ weekNumber: Math.ceil(((date.getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000 + 1) / 7),
107
+ timezone: tz,
108
+ timezoneOffset: date.getTimezoneOffset(),
109
+ };
110
+ };
111
+ if (type === 'random') {
112
+ const startDate = start ? new Date(start).getTime() : new Date('1900-01-01').getTime();
113
+ const endDate = end ? new Date(end).getTime() : new Date('2100-12-31').getTime();
114
+ const randomDate = new Date(startDate + Math.random() * (endDate - startDate));
115
+ const tz = timezone || VALID_TIMEZONES[Math.floor(Math.random() * VALID_TIMEZONES.length)];
116
+ const formats = getTimeFormats(randomDate, tz);
117
+ return format ? { date: formats[format] } : formats;
118
+ }
119
+ const now = new Date();
120
+ const tz = timezone || 'UTC';
121
+ const formats = getTimeFormats(now, tz);
122
+ return format ? { date: formats[format] } : formats;
123
+ }
124
+ //# sourceMappingURL=time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../../src/modules/v4/time.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Generates a cryptographically random token of the specified length and type.
3
+ *
4
+ * @param len - Token length (must be between 12 and 4096)
5
+ * @param type - Character set to use: "alpha", "alphanum", "base64", "hex", "num", "punct", "urlsafe", or "uuid"
6
+ * @returns The generated token string
7
+ * @throws Error if length is out of range or the type is not valid
8
+ */
9
+ export default function token(len: number, type?: string): string;
@@ -0,0 +1,45 @@
1
+ import { randomBytes, randomInt } from 'crypto';
2
+ import { v4 } from 'uuid';
3
+ import { MAX_TOKEN_LENGTH, MIN_TOKEN_LENGTH } from '../../constants.js';
4
+ /**
5
+ * Generates a cryptographically random token of the specified length and type.
6
+ *
7
+ * @param len - Token length (must be between 12 and 4096)
8
+ * @param type - Character set to use: "alpha", "alphanum", "base64", "hex", "num", "punct", "urlsafe", or "uuid"
9
+ * @returns The generated token string
10
+ * @throws Error if length is out of range or the type is not valid
11
+ */
12
+ export default function token(len, type = 'alphanum') {
13
+ if (isNaN(len) || len < MIN_TOKEN_LENGTH) {
14
+ throw new Error('Length must be a number greater than or equal to 12');
15
+ }
16
+ if (len > MAX_TOKEN_LENGTH) {
17
+ throw new Error('Length cannot exceed 4096');
18
+ }
19
+ const genToken = (chars, length) => Array.from({ length }, () => chars[randomInt(chars.length)]).join('');
20
+ const tokenTypes = {
21
+ alpha: () => genToken('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', len),
22
+ alphanum: () => genToken('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', len),
23
+ base64: () => randomBytes(Math.ceil(len * 0.75))
24
+ .toString('base64')
25
+ .slice(0, len),
26
+ hex: () => randomBytes(Math.ceil(len * 0.5))
27
+ .toString('hex')
28
+ .slice(0, len),
29
+ num: () => genToken('0123456789', len),
30
+ punct: () => genToken('!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~', len),
31
+ urlsafe: () => genToken('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_', len),
32
+ uuid: () => {
33
+ let result = '';
34
+ while (result.length < len)
35
+ result += v4().replace(/-/g, '');
36
+ return result.slice(0, len);
37
+ },
38
+ };
39
+ const lowerType = type.toLowerCase();
40
+ if (!tokenTypes[lowerType]) {
41
+ throw new Error(`Invalid token type. Valid types: ${Object.keys(tokenTypes).join(', ')}`);
42
+ }
43
+ return tokenTypes[lowerType]();
44
+ }
45
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/modules/v4/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAExE;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,GAAW,EAAE,OAAe,UAAU;IAChE,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,gBAAgB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,GAAG,GAAG,gBAAgB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE,CACvD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1E,MAAM,UAAU,GAAiC;QAC7C,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,sDAAsD,EAAE,GAAG,CAAC;QAClF,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,gEAAgE,EAAE,GAAG,CAAC;QAC/F,MAAM,EAAE,GAAG,EAAE,CACT,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;aAC7B,QAAQ,CAAC,QAAQ,CAAC;aAClB,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QACtB,GAAG,EAAE,GAAG,EAAE,CACN,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;aAC5B,QAAQ,CAAC,KAAK,CAAC;aACf,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QACtB,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;QACtC,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,oCAAoC,EAAE,GAAG,CAAC;QAChE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,kEAAkE,EAAE,GAAG,CAAC;QAChG,IAAI,EAAE,GAAG,EAAE;YACP,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,MAAM,GAAG,GAAG;gBAAE,MAAM,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;KACJ,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,UAAU,CAAC,SAAS,CAAE,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generates a random username combining adjectives, animals, and job titles.
3
+ *
4
+ * @returns Object containing the generated username, the number used, and the components (adjective, animal, job)
5
+ */
6
+ export default function username(): Record<string, unknown>;
@@ -0,0 +1,92 @@
1
+ import { random, randomNumber } from '../../utils/helpers.js';
2
+ /**
3
+ * Generates a random username combining adjectives, animals, and job titles.
4
+ *
5
+ * @returns Object containing the generated username, the number used, and the components (adjective, animal, job)
6
+ */
7
+ export default function username() {
8
+ const adj = [
9
+ 'Happy',
10
+ 'Silly',
11
+ 'Clever',
12
+ 'Creative',
13
+ 'Brave',
14
+ 'Gentle',
15
+ 'Kind',
16
+ 'Funny',
17
+ 'Wise',
18
+ 'Charming',
19
+ 'Sincere',
20
+ 'Resourceful',
21
+ 'Patient',
22
+ 'Energetic',
23
+ 'Adventurous',
24
+ 'Ambitious',
25
+ 'Courageous',
26
+ 'Courteous',
27
+ 'Determined',
28
+ ];
29
+ const ani = [
30
+ 'Cat',
31
+ 'Dog',
32
+ 'Tiger',
33
+ 'Elephant',
34
+ 'Monkey',
35
+ 'Penguin',
36
+ 'Dolphin',
37
+ 'Lion',
38
+ 'Bear',
39
+ 'Fox',
40
+ 'Owl',
41
+ 'Giraffe',
42
+ 'Zebra',
43
+ 'Koala',
44
+ 'Rabbit',
45
+ 'Squirrel',
46
+ 'Panda',
47
+ 'Horse',
48
+ 'Wolf',
49
+ 'Eagle',
50
+ ];
51
+ const job = [
52
+ 'Writer',
53
+ 'Artist',
54
+ 'Musician',
55
+ 'Explorer',
56
+ 'Scientist',
57
+ 'Engineer',
58
+ 'Athlete',
59
+ 'Chef',
60
+ 'Doctor',
61
+ 'Teacher',
62
+ 'Lawyer',
63
+ 'Entrepreneur',
64
+ 'Actor',
65
+ 'Dancer',
66
+ 'Photographer',
67
+ 'Architect',
68
+ 'Pilot',
69
+ 'Designer',
70
+ 'Journalist',
71
+ 'Veterinarian',
72
+ ];
73
+ const nombre = randomNumber(0, 99);
74
+ const choix = {
75
+ adj_num: () => random(adj) + nombre,
76
+ ani_num: () => random(ani) + nombre,
77
+ pro_num: () => random(job) + nombre,
78
+ adj_ani: () => random(adj) + random(ani),
79
+ adj_ani_num: () => random(adj) + random(ani) + nombre,
80
+ adj_pro: () => random(adj) + random(job),
81
+ pro_ani: () => random(job) + random(ani),
82
+ pro_ani_num: () => random(job) + random(ani) + nombre,
83
+ };
84
+ return {
85
+ username: choix[random(Object.keys(choix))](),
86
+ number: nombre,
87
+ adjective: random(adj),
88
+ animal: random(ani),
89
+ job: random(job),
90
+ };
91
+ }
92
+ //# sourceMappingURL=username.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"username.js","sourceRoot":"","sources":["../../../src/modules/v4/username.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ;IAC5B,MAAM,GAAG,GAAG;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,UAAU;QACV,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,UAAU;QACV,SAAS;QACT,aAAa;QACb,SAAS;QACT,WAAW;QACX,aAAa;QACb,WAAW;QACX,YAAY;QACZ,WAAW;QACX,YAAY;KACf,CAAC;IACF,MAAM,GAAG,GAAG;QACR,KAAK;QACL,KAAK;QACL,OAAO;QACP,UAAU;QACV,QAAQ;QACR,SAAS;QACT,SAAS;QACT,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,SAAS;QACT,OAAO;QACP,OAAO;QACP,QAAQ;QACR,UAAU;QACV,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;KACV,CAAC;IACF,MAAM,GAAG,GAAG;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,WAAW;QACX,UAAU;QACV,SAAS;QACT,MAAM;QACN,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,cAAc;QACd,OAAO;QACP,QAAQ;QACR,cAAc;QACd,WAAW;QACX,OAAO;QACP,UAAU;QACV,YAAY;QACZ,cAAc;KACjB,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAiC;QACxC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM;QACnC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM;QACnC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM;QACnC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACxC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM;QACrD,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACxC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACxC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM;KACxD,CAAC;IAEF,OAAO;QACH,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE;QAC9C,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;KACnB,CAAC;AACN,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Validates a credit/debit card number using the Luhn algorithm.
3
+ *
4
+ * @param value - Card number string (digits, spaces, or dashes allowed)
5
+ * @returns Object containing the validity result and the sanitized digit string
6
+ * @throws Error if value is missing, contains non-digit characters, or has an invalid length
7
+ */
8
+ export declare function luhn(value: string): {
9
+ valid: boolean;
10
+ value: string;
11
+ };
12
+ /**
13
+ * Validates an IBAN using the mod-97 checksum algorithm.
14
+ *
15
+ * @param value - IBAN string (spaces allowed)
16
+ * @returns Object containing the validity result, sanitized IBAN, and country code
17
+ * @throws Error if value is missing, has an invalid format, or is out of length bounds
18
+ */
19
+ export declare function iban(value: string): {
20
+ valid: boolean;
21
+ value: string;
22
+ country?: string;
23
+ };
24
+ /**
25
+ * Validates an email address against a basic format check.
26
+ *
27
+ * @param value - The email address string to validate
28
+ * @returns Object containing the validity result and the original value
29
+ * @throws Error if value is missing, not a string, or too long
30
+ */
31
+ export declare function email(value: string): {
32
+ valid: boolean;
33
+ value: string;
34
+ };
@@ -0,0 +1,75 @@
1
+ import { MAX_STRING_LENGTH } from '../../constants.js';
2
+ function checkValue(value) {
3
+ if (!value)
4
+ throw new Error('A value is required');
5
+ if (typeof value !== 'string')
6
+ throw new Error('Value must be a string');
7
+ if (value.length > MAX_STRING_LENGTH)
8
+ throw new Error(`Value must be less than ${MAX_STRING_LENGTH} characters long`);
9
+ }
10
+ /**
11
+ * Validates a credit/debit card number using the Luhn algorithm.
12
+ *
13
+ * @param value - Card number string (digits, spaces, or dashes allowed)
14
+ * @returns Object containing the validity result and the sanitized digit string
15
+ * @throws Error if value is missing, contains non-digit characters, or has an invalid length
16
+ */
17
+ export function luhn(value) {
18
+ checkValue(value);
19
+ const digits = value.replace(/\s|-/g, '');
20
+ if (!/^\d+$/.test(digits))
21
+ throw new Error('Value must contain only digits, spaces or dashes');
22
+ if (digits.length < 12 || digits.length > 19)
23
+ throw new Error('Card number must have between 12 and 19 digits');
24
+ let sum = 0;
25
+ let alt = false;
26
+ for (let i = digits.length - 1; i >= 0; i--) {
27
+ let n = parseInt(digits[i], 10);
28
+ if (alt) {
29
+ n *= 2;
30
+ if (n > 9)
31
+ n -= 9;
32
+ }
33
+ sum += n;
34
+ alt = !alt;
35
+ }
36
+ return { valid: sum % 10 === 0, value: digits };
37
+ }
38
+ /**
39
+ * Validates an IBAN using the mod-97 checksum algorithm.
40
+ *
41
+ * @param value - IBAN string (spaces allowed)
42
+ * @returns Object containing the validity result, sanitized IBAN, and country code
43
+ * @throws Error if value is missing, has an invalid format, or is out of length bounds
44
+ */
45
+ export function iban(value) {
46
+ checkValue(value);
47
+ const cleaned = value.replace(/\s/g, '').toUpperCase();
48
+ if (!/^[A-Z]{2}\d{2}[A-Z0-9]+$/.test(cleaned))
49
+ throw new Error('Invalid IBAN format');
50
+ if (cleaned.length < 15 || cleaned.length > 34)
51
+ throw new Error('IBAN length must be between 15 and 34 characters');
52
+ const rearranged = cleaned.slice(4) + cleaned.slice(0, 4);
53
+ const numeric = rearranged
54
+ .split('')
55
+ .map((c) => (c >= 'A' && c <= 'Z' ? (c.charCodeAt(0) - 55).toString() : c))
56
+ .join('');
57
+ let remainder = 0;
58
+ for (const char of numeric) {
59
+ remainder = (remainder * 10 + parseInt(char, 10)) % 97;
60
+ }
61
+ return { valid: remainder === 1, value: cleaned, country: cleaned.slice(0, 2) };
62
+ }
63
+ /**
64
+ * Validates an email address against a basic format check.
65
+ *
66
+ * @param value - The email address string to validate
67
+ * @returns Object containing the validity result and the original value
68
+ * @throws Error if value is missing, not a string, or too long
69
+ */
70
+ export function email(value) {
71
+ checkValue(value);
72
+ const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
73
+ return { valid: regex.test(value), value };
74
+ }
75
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/modules/v4/validate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export { default as address } from './v4/address.js';
2
+ export { default as agent } from './v4/agent.js';
3
+ export * as algorithms from './v4/algorithms.js';
4
+ export { default as avatar } from './v4/avatar.js';
5
+ export { default as barcode } from './v4/barcode.js';
6
+ export { default as captcha } from './v4/captcha.js';
7
+ export { default as chat } from './v4/chat.js';
8
+ export { default as color } from './v4/color.js';
9
+ export { default as convert } from './v4/convert.js';
10
+ export { default as credit } from './v4/credit.js';
11
+ export { default as cron } from './v4/cron.js';
12
+ export { default as dice } from './v4/dice.js';
13
+ export { default as domain } from './v4/domain.js';
14
+ export * as encode from './v4/encode.js';
15
+ export { default as geo } from './v4/geo.js';
16
+ export { default as hash } from './v4/hash.js';
17
+ export { default as hyperplanning } from './v4/hyperplanning.js';
18
+ export { default as ip } from './v4/ip.js';
19
+ export { default as levenshtein } from './v4/levenshtein.js';
20
+ export { default as palette } from './v4/palette.js';
21
+ export { default as password } from './v4/password.js';
22
+ export { default as personal } from './v4/personal.js';
23
+ export { default as placeholder } from './v4/placeholder.js';
24
+ export { default as qrcode } from './v4/qrcode.js';
25
+ export { default as regex } from './v4/regex.js';
26
+ export { default as statistics } from './v4/statistics.js';
27
+ export * as text from './v4/text.js';
28
+ export { default as tic_tac_toe } from './v4/tic_tac_toe.js';
29
+ export { default as time } from './v4/time.js';
30
+ export { default as token } from './v4/token.js';
31
+ export { default as username } from './v4/username.js';
32
+ export * as validate from './v4/validate.js';
@@ -0,0 +1,33 @@
1
+ export { default as address } from './v4/address.js';
2
+ export { default as agent } from './v4/agent.js';
3
+ export * as algorithms from './v4/algorithms.js';
4
+ export { default as avatar } from './v4/avatar.js';
5
+ export { default as barcode } from './v4/barcode.js';
6
+ export { default as captcha } from './v4/captcha.js';
7
+ export { default as chat } from './v4/chat.js';
8
+ export { default as color } from './v4/color.js';
9
+ export { default as convert } from './v4/convert.js';
10
+ export { default as credit } from './v4/credit.js';
11
+ export { default as cron } from './v4/cron.js';
12
+ export { default as dice } from './v4/dice.js';
13
+ export { default as domain } from './v4/domain.js';
14
+ export * as encode from './v4/encode.js';
15
+ export { default as geo } from './v4/geo.js';
16
+ export { default as hash } from './v4/hash.js';
17
+ export { default as hyperplanning } from './v4/hyperplanning.js';
18
+ export { default as ip } from './v4/ip.js';
19
+ export { default as levenshtein } from './v4/levenshtein.js';
20
+ export { default as palette } from './v4/palette.js';
21
+ export { default as password } from './v4/password.js';
22
+ export { default as personal } from './v4/personal.js';
23
+ export { default as placeholder } from './v4/placeholder.js';
24
+ export { default as qrcode } from './v4/qrcode.js';
25
+ export { default as regex } from './v4/regex.js';
26
+ export { default as statistics } from './v4/statistics.js';
27
+ export * as text from './v4/text.js';
28
+ export { default as tic_tac_toe } from './v4/tic_tac_toe.js';
29
+ export { default as time } from './v4/time.js';
30
+ export { default as token } from './v4/token.js';
31
+ export { default as username } from './v4/username.js';
32
+ export * as validate from './v4/validate.js';
33
+ //# sourceMappingURL=v4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v4.js","sourceRoot":"","sources":["../../src/modules/v4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type AddressResult } from '../v4/address.js';
2
+ /**
3
+ * Generates one or more fictional postal addresses.
4
+ */
5
+ export default function address(countryCode?: string, count?: number): AddressResult;
@@ -0,0 +1,20 @@
1
+ import v4address from '../v4/address.js';
2
+ const NAME_THEN_TYPE = new Set(['US', 'UK', 'DE']);
3
+ /**
4
+ * Generates one or more fictional postal addresses.
5
+ */
6
+ export default function address(countryCode, count = 1) {
7
+ const result = v4address(countryCode, count);
8
+ return {
9
+ addresses: result.addresses.map((a) => {
10
+ if (!NAME_THEN_TYPE.has(a.countryCode))
11
+ return a;
12
+ const parts = a.street.split(' ');
13
+ if (parts.length < 3)
14
+ return a;
15
+ const [num, type, ...nameParts] = parts;
16
+ return { ...a, street: `${num} ${nameParts.join(' ')} ${type}` };
17
+ }),
18
+ };
19
+ }
20
+ //# sourceMappingURL=address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/modules/v5/address.ts"],"names":[],"mappings":"AAAA,OAAO,SAAiC,MAAM,kBAAkB,CAAC;AAEjE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,WAAoB,EAAE,QAAgB,CAAC;IACnE,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAE7C,OAAO;QACH,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;gBAAE,OAAO,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC;YACxC,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACrE,CAAC,CAAC;KACL,CAAC;AACN,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from '../v4/algorithms.js';
2
+ /**
3
+ * Computes the factorial of a non-negative integer.
4
+ */
5
+ export declare function factorial(value: string | number): number;
6
+ /**
7
+ * Determines whether a given number is prime.
8
+ */
9
+ export declare function isprime(value: string | number): boolean;
@@ -0,0 +1,39 @@
1
+ import { MAX_FACTORIAL, MAX_GCD_VALUE } from '../../constants.js';
2
+ export * from '../v4/algorithms.js';
3
+ /**
4
+ * Computes the factorial of a non-negative integer.
5
+ */
6
+ export function factorial(value) {
7
+ const num = Number(value);
8
+ if (isNaN(num))
9
+ throw new Error('Value must be a number');
10
+ if (!Number.isInteger(num))
11
+ throw new Error('Value must be an integer');
12
+ if (num < 0)
13
+ throw new Error('Number must be positive');
14
+ if (num > MAX_FACTORIAL)
15
+ throw new Error('Number must be between 0 and 170');
16
+ return num <= 1 ? 1 : num * factorial(num - 1);
17
+ }
18
+ /**
19
+ * Determines whether a given number is prime.
20
+ */
21
+ export function isprime(value) {
22
+ const num = Number(value);
23
+ if (isNaN(num))
24
+ throw new Error('Value must be a number');
25
+ if (!Number.isInteger(num))
26
+ throw new Error('Value must be an integer');
27
+ if (num < 1)
28
+ throw new Error('Number must be positive');
29
+ if (num > MAX_GCD_VALUE)
30
+ throw new Error('Number must be between 1 and 100000');
31
+ if (num < 2)
32
+ return false;
33
+ for (let i = 2; i <= Math.sqrt(num); i++) {
34
+ if (num % i === 0)
35
+ return false;
36
+ }
37
+ return true;
38
+ }
39
+ //# sourceMappingURL=algorithms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"algorithms.js","sourceRoot":"","sources":["../../../src/modules/v5/algorithms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClE,cAAc,qBAAqB,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACxE,IAAI,GAAG,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACxD,IAAI,GAAG,GAAG,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAE7E,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAsB;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACxE,IAAI,GAAG,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACxD,IAAI,GAAG,GAAG,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAChF,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IACpC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,26 @@
1
+ export interface KeygenResult {
2
+ action: string;
3
+ algorithm: string;
4
+ modulusLength: number;
5
+ publicKey: string;
6
+ privateKey: string;
7
+ }
8
+ export interface AsymmetricCryptResult {
9
+ action: string;
10
+ algorithm: string;
11
+ result: string;
12
+ }
13
+ /**
14
+ * RSA asymmetric key generation, encryption and decryption.
15
+ *
16
+ * @param action - "keygen", "encrypt", or "decrypt"
17
+ * @param options - Options object with text, publicKey, privateKey, modulusLength, algorithm
18
+ * @returns Keygen or crypt result object
19
+ */
20
+ export default function asymmetric(action: string, options?: {
21
+ text?: string;
22
+ publicKey?: string;
23
+ privateKey?: string;
24
+ modulusLength?: number;
25
+ algorithm?: string;
26
+ }): KeygenResult | AsymmetricCryptResult;