@md-oss/common 0.1.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 (161) hide show
  1. package/LICENSE +5 -0
  2. package/README.md +335 -0
  3. package/dist/api/errors.cjs +2 -0
  4. package/dist/api/errors.cjs.map +1 -0
  5. package/dist/api/errors.d.cts +53 -0
  6. package/dist/api/errors.d.mts +53 -0
  7. package/dist/api/errors.mjs +2 -0
  8. package/dist/api/errors.mjs.map +1 -0
  9. package/dist/api/index.cjs +2 -0
  10. package/dist/api/index.cjs.map +1 -0
  11. package/dist/api/index.d.cts +4 -0
  12. package/dist/api/index.d.mts +4 -0
  13. package/dist/api/index.mjs +2 -0
  14. package/dist/api/index.mjs.map +1 -0
  15. package/dist/api/requests.d.cts +36 -0
  16. package/dist/api/requests.d.mts +36 -0
  17. package/dist/api/status-codes.cjs +2 -0
  18. package/dist/api/status-codes.cjs.map +1 -0
  19. package/dist/api/status-codes.d.cts +72 -0
  20. package/dist/api/status-codes.d.mts +72 -0
  21. package/dist/api/status-codes.mjs +2 -0
  22. package/dist/api/status-codes.mjs.map +1 -0
  23. package/dist/arrays-BkHBzTDO.mjs +2 -0
  24. package/dist/arrays-BkHBzTDO.mjs.map +1 -0
  25. package/dist/arrays-CElcW69H.d.cts +43 -0
  26. package/dist/arrays-CElcW69H.d.mts +43 -0
  27. package/dist/arrays-DaB1Xn47.cjs +2 -0
  28. package/dist/arrays-DaB1Xn47.cjs.map +1 -0
  29. package/dist/constants/bytes.cjs +2 -0
  30. package/dist/constants/bytes.cjs.map +1 -0
  31. package/dist/constants/bytes.d.cts +19 -0
  32. package/dist/constants/bytes.d.mts +19 -0
  33. package/dist/constants/bytes.mjs +2 -0
  34. package/dist/constants/bytes.mjs.map +1 -0
  35. package/dist/constants/discord.cjs +2 -0
  36. package/dist/constants/discord.cjs.map +1 -0
  37. package/dist/constants/discord.d.cts +25 -0
  38. package/dist/constants/discord.d.mts +25 -0
  39. package/dist/constants/discord.mjs +2 -0
  40. package/dist/constants/discord.mjs.map +1 -0
  41. package/dist/constants/index.cjs +2 -0
  42. package/dist/constants/index.cjs.map +1 -0
  43. package/dist/constants/index.d.cts +3 -0
  44. package/dist/constants/index.d.mts +3 -0
  45. package/dist/constants/index.mjs +2 -0
  46. package/dist/constants/index.mjs.map +1 -0
  47. package/dist/constants/time.cjs +2 -0
  48. package/dist/constants/time.cjs.map +1 -0
  49. package/dist/constants/time.d.cts +65 -0
  50. package/dist/constants/time.d.mts +65 -0
  51. package/dist/constants/time.mjs +2 -0
  52. package/dist/constants/time.mjs.map +1 -0
  53. package/dist/index.cjs +2 -0
  54. package/dist/index.cjs.map +1 -0
  55. package/dist/index.d.cts +17 -0
  56. package/dist/index.d.mts +17 -0
  57. package/dist/index.mjs +2 -0
  58. package/dist/index.mjs.map +1 -0
  59. package/dist/mime-types-Bjt4NvnE.d.cts +41 -0
  60. package/dist/mime-types-Bjt4NvnE.d.mts +41 -0
  61. package/dist/mime-types-BmvBrrZ7.cjs +2 -0
  62. package/dist/mime-types-BmvBrrZ7.cjs.map +1 -0
  63. package/dist/mime-types-D_K53zgk.mjs +2 -0
  64. package/dist/mime-types-D_K53zgk.mjs.map +1 -0
  65. package/dist/numbers-BmUSgeah.d.cts +46 -0
  66. package/dist/numbers-BmUSgeah.d.mts +46 -0
  67. package/dist/numbers-Bx9JTSQe.mjs +2 -0
  68. package/dist/numbers-Bx9JTSQe.mjs.map +1 -0
  69. package/dist/numbers-DuVx9Qiu.cjs +2 -0
  70. package/dist/numbers-DuVx9Qiu.cjs.map +1 -0
  71. package/dist/objects--cO_X3EV.mjs +2 -0
  72. package/dist/objects--cO_X3EV.mjs.map +1 -0
  73. package/dist/objects-CnGoVkh6.cjs +2 -0
  74. package/dist/objects-CnGoVkh6.cjs.map +1 -0
  75. package/dist/objects-cf8j7rS8.d.cts +26 -0
  76. package/dist/objects-cf8j7rS8.d.mts +26 -0
  77. package/dist/random-D1e1NTOt.cjs +2 -0
  78. package/dist/random-D1e1NTOt.cjs.map +1 -0
  79. package/dist/random-DbidGSrQ.mjs +2 -0
  80. package/dist/random-DbidGSrQ.mjs.map +1 -0
  81. package/dist/random-DpNyGGAZ.d.cts +28 -0
  82. package/dist/random-DpNyGGAZ.d.mts +28 -0
  83. package/dist/runtime-B-jA8ZxR.cjs +2 -0
  84. package/dist/runtime-B-jA8ZxR.cjs.map +1 -0
  85. package/dist/runtime-CbfL6Fgj.mjs +2 -0
  86. package/dist/runtime-CbfL6Fgj.mjs.map +1 -0
  87. package/dist/runtime-T8Kcf7Af.d.cts +28 -0
  88. package/dist/runtime-T8Kcf7Af.d.mts +28 -0
  89. package/dist/schemas.cjs +2 -0
  90. package/dist/schemas.cjs.map +1 -0
  91. package/dist/schemas.d.cts +36 -0
  92. package/dist/schemas.d.mts +36 -0
  93. package/dist/schemas.mjs +2 -0
  94. package/dist/schemas.mjs.map +1 -0
  95. package/dist/strings-B0BRwNX9.mjs +3 -0
  96. package/dist/strings-B0BRwNX9.mjs.map +1 -0
  97. package/dist/strings-DV446vv-.cjs +3 -0
  98. package/dist/strings-DV446vv-.cjs.map +1 -0
  99. package/dist/strings-DhPbrpq7.d.cts +47 -0
  100. package/dist/strings-DhPbrpq7.d.mts +47 -0
  101. package/dist/time-8KLG8kBO.d.cts +29 -0
  102. package/dist/time-D8Wfqzu6.d.mts +29 -0
  103. package/dist/time-DmJNWZeL.mjs +2 -0
  104. package/dist/time-DmJNWZeL.mjs.map +1 -0
  105. package/dist/time-yNkQSJnQ.cjs +2 -0
  106. package/dist/time-yNkQSJnQ.cjs.map +1 -0
  107. package/dist/utils/arrays.cjs +2 -0
  108. package/dist/utils/arrays.cjs.map +1 -0
  109. package/dist/utils/arrays.d.cts +1 -0
  110. package/dist/utils/arrays.d.mts +1 -0
  111. package/dist/utils/arrays.mjs +2 -0
  112. package/dist/utils/arrays.mjs.map +1 -0
  113. package/dist/utils/index.cjs +2 -0
  114. package/dist/utils/index.cjs.map +1 -0
  115. package/dist/utils/index.d.cts +9 -0
  116. package/dist/utils/index.d.mts +9 -0
  117. package/dist/utils/index.mjs +2 -0
  118. package/dist/utils/index.mjs.map +1 -0
  119. package/dist/utils/mime-types.cjs +2 -0
  120. package/dist/utils/mime-types.cjs.map +1 -0
  121. package/dist/utils/mime-types.d.cts +1 -0
  122. package/dist/utils/mime-types.d.mts +1 -0
  123. package/dist/utils/mime-types.mjs +2 -0
  124. package/dist/utils/mime-types.mjs.map +1 -0
  125. package/dist/utils/numbers.cjs +2 -0
  126. package/dist/utils/numbers.cjs.map +1 -0
  127. package/dist/utils/numbers.d.cts +1 -0
  128. package/dist/utils/numbers.d.mts +1 -0
  129. package/dist/utils/numbers.mjs +2 -0
  130. package/dist/utils/numbers.mjs.map +1 -0
  131. package/dist/utils/objects.cjs +2 -0
  132. package/dist/utils/objects.cjs.map +1 -0
  133. package/dist/utils/objects.d.cts +1 -0
  134. package/dist/utils/objects.d.mts +1 -0
  135. package/dist/utils/objects.mjs +2 -0
  136. package/dist/utils/objects.mjs.map +1 -0
  137. package/dist/utils/random.cjs +2 -0
  138. package/dist/utils/random.cjs.map +1 -0
  139. package/dist/utils/random.d.cts +1 -0
  140. package/dist/utils/random.d.mts +1 -0
  141. package/dist/utils/random.mjs +2 -0
  142. package/dist/utils/random.mjs.map +1 -0
  143. package/dist/utils/runtime.cjs +2 -0
  144. package/dist/utils/runtime.cjs.map +1 -0
  145. package/dist/utils/runtime.d.cts +1 -0
  146. package/dist/utils/runtime.d.mts +1 -0
  147. package/dist/utils/runtime.mjs +2 -0
  148. package/dist/utils/runtime.mjs.map +1 -0
  149. package/dist/utils/strings.cjs +2 -0
  150. package/dist/utils/strings.cjs.map +1 -0
  151. package/dist/utils/strings.d.cts +1 -0
  152. package/dist/utils/strings.d.mts +1 -0
  153. package/dist/utils/strings.mjs +2 -0
  154. package/dist/utils/strings.mjs.map +1 -0
  155. package/dist/utils/time.cjs +2 -0
  156. package/dist/utils/time.cjs.map +1 -0
  157. package/dist/utils/time.d.cts +2 -0
  158. package/dist/utils/time.d.mts +2 -0
  159. package/dist/utils/time.mjs +2 -0
  160. package/dist/utils/time.mjs.map +1 -0
  161. package/package.json +232 -0
@@ -0,0 +1,28 @@
1
+ declare const sleep: (ms: number) => Promise<void>;
2
+ declare const sleepUntil: (condition: () => boolean | Promise<boolean>, interval?: number) => Promise<void>;
3
+ declare const sleepUntilOrTimeout: (condition: () => boolean | Promise<boolean>, timeout: number, interval?: number) => Promise<void>;
4
+ declare const awaitOrTimeout: <T>(promise: Promise<T>, timeout: number) => Promise<T>;
5
+ declare const safeSetTimeout: (timeoutMs: number, scheduleOverflowInFuture: boolean, fn: () => void, onNewTimeout?: (timeout: NodeJS.Timeout, isTimeoutForRunFn: boolean) => void) => NodeJS.Timeout;
6
+ declare const safeSetInterval: (intervalMs: number, fn: () => void, onNewTimeout?: (timeout: NodeJS.Timeout, isTimeoutForRunFn: boolean) => void) => NodeJS.Timeout;
7
+ declare const safeSetAsyncInterval: (intervalMs: number, fn: () => Promise<void>, onNewTimeout?: (timeout: NodeJS.Timeout, isTimeoutForRunFn: boolean) => void) => NodeJS.Timeout;
8
+
9
+ declare const runtime_awaitOrTimeout: typeof awaitOrTimeout;
10
+ declare const runtime_safeSetAsyncInterval: typeof safeSetAsyncInterval;
11
+ declare const runtime_safeSetInterval: typeof safeSetInterval;
12
+ declare const runtime_safeSetTimeout: typeof safeSetTimeout;
13
+ declare const runtime_sleep: typeof sleep;
14
+ declare const runtime_sleepUntil: typeof sleepUntil;
15
+ declare const runtime_sleepUntilOrTimeout: typeof sleepUntilOrTimeout;
16
+ declare namespace runtime {
17
+ export {
18
+ runtime_awaitOrTimeout as awaitOrTimeout,
19
+ runtime_safeSetAsyncInterval as safeSetAsyncInterval,
20
+ runtime_safeSetInterval as safeSetInterval,
21
+ runtime_safeSetTimeout as safeSetTimeout,
22
+ runtime_sleep as sleep,
23
+ runtime_sleepUntil as sleepUntil,
24
+ runtime_sleepUntilOrTimeout as sleepUntilOrTimeout,
25
+ };
26
+ }
27
+
28
+ export { sleepUntil as a, sleepUntilOrTimeout as b, awaitOrTimeout as c, safeSetTimeout as d, safeSetInterval as e, safeSetAsyncInterval as f, runtime as r, sleep as s };
@@ -0,0 +1,28 @@
1
+ declare const sleep: (ms: number) => Promise<void>;
2
+ declare const sleepUntil: (condition: () => boolean | Promise<boolean>, interval?: number) => Promise<void>;
3
+ declare const sleepUntilOrTimeout: (condition: () => boolean | Promise<boolean>, timeout: number, interval?: number) => Promise<void>;
4
+ declare const awaitOrTimeout: <T>(promise: Promise<T>, timeout: number) => Promise<T>;
5
+ declare const safeSetTimeout: (timeoutMs: number, scheduleOverflowInFuture: boolean, fn: () => void, onNewTimeout?: (timeout: NodeJS.Timeout, isTimeoutForRunFn: boolean) => void) => NodeJS.Timeout;
6
+ declare const safeSetInterval: (intervalMs: number, fn: () => void, onNewTimeout?: (timeout: NodeJS.Timeout, isTimeoutForRunFn: boolean) => void) => NodeJS.Timeout;
7
+ declare const safeSetAsyncInterval: (intervalMs: number, fn: () => Promise<void>, onNewTimeout?: (timeout: NodeJS.Timeout, isTimeoutForRunFn: boolean) => void) => NodeJS.Timeout;
8
+
9
+ declare const runtime_awaitOrTimeout: typeof awaitOrTimeout;
10
+ declare const runtime_safeSetAsyncInterval: typeof safeSetAsyncInterval;
11
+ declare const runtime_safeSetInterval: typeof safeSetInterval;
12
+ declare const runtime_safeSetTimeout: typeof safeSetTimeout;
13
+ declare const runtime_sleep: typeof sleep;
14
+ declare const runtime_sleepUntil: typeof sleepUntil;
15
+ declare const runtime_sleepUntilOrTimeout: typeof sleepUntilOrTimeout;
16
+ declare namespace runtime {
17
+ export {
18
+ runtime_awaitOrTimeout as awaitOrTimeout,
19
+ runtime_safeSetAsyncInterval as safeSetAsyncInterval,
20
+ runtime_safeSetInterval as safeSetInterval,
21
+ runtime_safeSetTimeout as safeSetTimeout,
22
+ runtime_sleep as sleep,
23
+ runtime_sleepUntil as sleepUntil,
24
+ runtime_sleepUntilOrTimeout as sleepUntilOrTimeout,
25
+ };
26
+ }
27
+
28
+ export { sleepUntil as a, sleepUntilOrTimeout as b, awaitOrTimeout as c, safeSetTimeout as d, safeSetInterval as e, safeSetAsyncInterval as f, runtime as r, sleep as s };
@@ -0,0 +1,2 @@
1
+ "use strict";var d=Object.defineProperty;var o=(e,t)=>d(e,"name",{value:t,configurable:!0});var n=require("zod/v4");function l(e){return e instanceof n.ZodOptional||e instanceof n.ZodNullable||e instanceof n.ZodDefault?l(e):typeof e=="string"?e:e.type}o(l,"unwrapZodType");const b=o((e,t)=>{const s=t.split(".");let i=e;for(const r of s)if(!(i instanceof n.ZodObject)||(i=i.shape[r],!i))return!1;return!(i instanceof n.ZodOptional||i instanceof n.ZodNullable)},"isFieldRequired"),g=o(e=>{const t=[],s=o((i,r=[])=>{const a=l(i);if(a instanceof n.ZodObject){const u=a.shape;for(const f in u){const c=u[f];if(c instanceof n.ZodOptional||c instanceof n.ZodNullable)continue;const m=[...r,f];s(c,m)}}else a instanceof n.ZodArray?s(a,r):t.push(r.join("."))},"traverse");return s(e),t},"requiredKeys");function p(e){const[t,...s]=Object.keys(e);return n.z.enum([t,...s])}o(p,"zodEnumFromObjectKeys");const Z=n.z.object({expires:n.z.coerce.number().int().optional().refine(e=>e===void 0||e>=0,"Expires must be a non-negative integer"),sig:n.z.string().optional(),ref:n.z.string().optional()}),y=o(({min:e=1,max:t=100,defaultLimit:s=25}={})=>n.z.object({limit:n.z.coerce.number().int().min(e,{message:`Limit must be at least ${e}`}).max(t,{message:`Limit must be at most ${t}`}).default(s),offset:n.z.coerce.number().int().min(0,{message:"Offset must be 0 or greater"}).default(0)}),"paginationQuerySchema");exports.isFieldRequired=b,exports.paginationQuerySchema=y,exports.requiredKeys=g,exports.signedUrlSchema=Z,exports.zodEnumFromObjectKeys=p;
2
+ //# sourceMappingURL=schemas.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.cjs","sources":["../src/schemas.ts"],"sourcesContent":["import {\n\tZodArray,\n\tZodDefault,\n\tZodNullable,\n\tZodObject,\n\tZodOptional,\n\ttype ZodType,\n\tz,\n} from 'zod/v4';\n\ntype FormDataFromSchema<T extends ZodObject = ZodObject> = z.infer<T>;\n\nfunction unwrapZodType(zodType: ZodType | FormDataFromSchema) {\n\tif (\n\t\tzodType instanceof ZodOptional ||\n\t\tzodType instanceof ZodNullable ||\n\t\tzodType instanceof ZodDefault\n\t) {\n\t\treturn unwrapZodType(zodType);\n\t}\n\n\treturn typeof zodType === 'string' ? zodType : zodType.type;\n}\n\nconst isFieldRequired = (\n\tschema: ZodType | FormDataFromSchema,\n\tpath: string\n): boolean => {\n\tconst keys = path.split('.');\n\tlet current: ZodType | FormDataFromSchema | undefined = schema;\n\n\tfor (const key of keys) {\n\t\tif (!(current instanceof ZodObject)) return false;\n\n\t\tcurrent = current.shape[key];\n\n\t\tif (!current) return false;\n\t}\n\n\treturn !(current instanceof ZodOptional || current instanceof ZodNullable);\n};\n\nconst requiredKeys = (schema: ZodType | FormDataFromSchema): string[] => {\n\tconst required: string[] = [];\n\n\tconst traverse = (\n\t\tzodType: ZodType | FormDataFromSchema,\n\t\tpath: string[] = []\n\t): void => {\n\t\tconst unwrapped = unwrapZodType(zodType);\n\n\t\tif (unwrapped instanceof ZodObject) {\n\t\t\tconst shape = unwrapped.shape;\n\t\t\tfor (const key in shape) {\n\t\t\t\tconst field = shape[key];\n\n\t\t\t\tif (field instanceof ZodOptional || field instanceof ZodNullable)\n\t\t\t\t\tcontinue;\n\n\t\t\t\tconst newPath = [...path, key];\n\t\t\t\ttraverse(field, newPath);\n\t\t\t}\n\t\t} else if (unwrapped instanceof ZodArray) {\n\t\t\ttraverse(unwrapped, path);\n\t\t} else {\n\t\t\trequired.push(path.join('.'));\n\t\t}\n\t};\n\n\ttraverse(schema);\n\treturn required;\n};\n\n/**\n * Converts a plain object's keys into ZodEnum with type safety and autocompletion\n */\nfunction zodEnumFromObjectKeys<\n\tTI extends Record<string, unknown>,\n\tR extends string = TI extends Record<infer R, unknown> ? R : never,\n>(\n\tinput: TI\n): z.ZodEnum<{\n\t[K in R]: K;\n}> {\n\tconst [firstKey, ...otherKeys] = Object.keys(input) as [R, ...R[]];\n\treturn z.enum([firstKey, ...otherKeys]);\n}\n\nconst signedUrlSchema = z.object({\n\texpires: z.coerce\n\t\t.number()\n\t\t.int()\n\t\t.optional()\n\t\t.refine(\n\t\t\t(val) => val === undefined || val >= 0,\n\t\t\t'Expires must be a non-negative integer'\n\t\t),\n\tsig: z.string().optional(),\n\tref: z.string().optional(),\n});\n\ntype SignedUrlSchema = z.infer<typeof signedUrlSchema>;\n\ntype Pagination = {\n\ttotalItems: number;\n\tcurrentPage: number;\n\titemsPerPage: number;\n\ttotalPages: number;\n\tlimit: number;\n\toffset: number;\n};\n\nconst paginationQuerySchema = ({\n\tmin = 1,\n\tmax = 100,\n\tdefaultLimit = 25,\n}: {\n\tmin?: number;\n\tmax?: number;\n\tdefaultLimit?: number;\n} = {}) => {\n\treturn z.object({\n\t\tlimit: z.coerce\n\t\t\t.number()\n\t\t\t.int()\n\t\t\t.min(min, { message: `Limit must be at least ${min}` })\n\t\t\t.max(max, { message: `Limit must be at most ${max}` })\n\t\t\t.default(defaultLimit),\n\t\toffset: z.coerce\n\t\t\t.number()\n\t\t\t.int()\n\t\t\t.min(0, { message: 'Offset must be 0 or greater' })\n\t\t\t.default(0),\n\t});\n};\n\nexport {\n\ttype FormDataFromSchema,\n\tisFieldRequired,\n\trequiredKeys,\n\tzodEnumFromObjectKeys,\n\tsignedUrlSchema,\n\ttype SignedUrlSchema,\n\tpaginationQuerySchema,\n\ttype Pagination,\n};\n"],"names":["unwrapZodType","zodType","ZodOptional","ZodNullable","ZodDefault","__name","isFieldRequired","schema","path","keys","current","key","ZodObject","requiredKeys","required","traverse","unwrapped","shape","field","newPath","ZodArray","zodEnumFromObjectKeys","input","firstKey","otherKeys","z","signedUrlSchema","val","paginationQuerySchema","min","max","defaultLimit"],"mappings":"oHAYA,SAASA,EAAcC,EAAuC,CAC7D,OACCA,aAAmBC,EAAAA,aACnBD,aAAmBE,EAAAA,aACnBF,aAAmBG,EAAAA,WAEZJ,EAAcC,CAAO,EAGtB,OAAOA,GAAY,SAAWA,EAAUA,EAAQ,IACxD,CAVSI,EAAAL,EAAA,iBAYT,MAAMM,EAAkBD,EAAA,CACvBE,EACAC,IACa,CACb,MAAMC,EAAOD,EAAK,MAAM,GAAG,EAC3B,IAAIE,EAAoDH,EAExD,UAAWI,KAAOF,EAKjB,GAJI,EAAEC,aAAmBE,eAEzBF,EAAUA,EAAQ,MAAMC,CAAG,EAEvB,CAACD,GAAS,MAAO,GAGtB,MAAO,EAAEA,aAAmBR,eAAeQ,aAAmBP,EAAAA,YAC/D,EAhBwB,mBAkBlBU,EAAeR,EAACE,GAAmD,CACxE,MAAMO,EAAqB,CAAA,EAErBC,EAAWV,EAAA,CAChBJ,EACAO,EAAiB,CAAA,IACP,CACV,MAAMQ,EAAYhB,EAAcC,CAAO,EAEvC,GAAIe,aAAqBJ,EAAAA,UAAW,CACnC,MAAMK,EAAQD,EAAU,MACxB,UAAWL,KAAOM,EAAO,CACxB,MAAMC,EAAQD,EAAMN,CAAG,EAEvB,GAAIO,aAAiBhB,eAAegB,aAAiBf,EAAAA,YACpD,SAED,MAAMgB,EAAU,CAAC,GAAGX,EAAMG,CAAG,EAC7BI,EAASG,EAAOC,CAAO,CACxB,CACD,MAAWH,aAAqBI,WAC/BL,EAASC,EAAWR,CAAI,EAExBM,EAAS,KAAKN,EAAK,KAAK,GAAG,CAAC,CAE9B,EAtBiB,YAwBjB,OAAAO,EAASR,CAAM,EACRO,CACR,EA7BqB,gBAkCrB,SAASO,EAIRC,EAGE,CACF,KAAM,CAACC,EAAU,GAAGC,CAAS,EAAI,OAAO,KAAKF,CAAK,EAClD,OAAOG,EAAAA,EAAE,KAAK,CAACF,EAAU,GAAGC,CAAS,CAAC,CACvC,CAVSnB,EAAAgB,EAAA,yBAYT,MAAMK,EAAkBD,EAAAA,EAAE,OAAO,CAChC,QAASA,EAAAA,EAAE,OACT,OAAA,EACA,IAAA,EACA,WACA,OACCE,GAAQA,IAAQ,QAAaA,GAAO,EACrC,wCAAA,EAEF,IAAKF,EAAAA,EAAE,OAAA,EAAS,SAAA,EAChB,IAAKA,EAAAA,EAAE,OAAA,EAAS,SAAA,CACjB,CAAC,EAaKG,EAAwBvB,EAAA,CAAC,CAC9B,IAAAwB,EAAM,EACN,IAAAC,EAAM,IACN,aAAAC,EAAe,EAChB,EAII,KACIN,EAAAA,EAAE,OAAO,CACf,MAAOA,EAAAA,EAAE,OACP,SACA,MACA,IAAII,EAAK,CAAE,QAAS,0BAA0BA,CAAG,GAAI,EACrD,IAAIC,EAAK,CAAE,QAAS,yBAAyBA,CAAG,EAAA,CAAI,EACpD,QAAQC,CAAY,EACtB,OAAQN,EAAAA,EAAE,OACR,OAAA,EACA,IAAA,EACA,IAAI,EAAG,CAAE,QAAS,6BAAA,CAA+B,EACjD,QAAQ,CAAC,CAAA,CACX,EArB4B"}
@@ -0,0 +1,36 @@
1
+ import { ZodObject, z, ZodType, ZodOptional, ZodDefault } from 'zod/v4';
2
+
3
+ type FormDataFromSchema<T extends ZodObject = ZodObject> = z.infer<T>;
4
+ declare const isFieldRequired: (schema: ZodType | FormDataFromSchema, path: string) => boolean;
5
+ declare const requiredKeys: (schema: ZodType | FormDataFromSchema) => string[];
6
+ /**
7
+ * Converts a plain object's keys into ZodEnum with type safety and autocompletion
8
+ */
9
+ declare function zodEnumFromObjectKeys<TI extends Record<string, unknown>, R extends string = TI extends Record<infer R, unknown> ? R : never>(input: TI): z.ZodEnum<{
10
+ [K in R]: K;
11
+ }>;
12
+ declare const signedUrlSchema: ZodObject<{
13
+ expires: ZodOptional<z.ZodCoercedNumber<unknown>>;
14
+ sig: ZodOptional<z.ZodString>;
15
+ ref: ZodOptional<z.ZodString>;
16
+ }, z.core.$strip>;
17
+ type SignedUrlSchema = z.infer<typeof signedUrlSchema>;
18
+ type Pagination = {
19
+ totalItems: number;
20
+ currentPage: number;
21
+ itemsPerPage: number;
22
+ totalPages: number;
23
+ limit: number;
24
+ offset: number;
25
+ };
26
+ declare const paginationQuerySchema: ({ min, max, defaultLimit, }?: {
27
+ min?: number;
28
+ max?: number;
29
+ defaultLimit?: number;
30
+ }) => ZodObject<{
31
+ limit: ZodDefault<z.ZodCoercedNumber<unknown>>;
32
+ offset: ZodDefault<z.ZodCoercedNumber<unknown>>;
33
+ }, z.core.$strip>;
34
+
35
+ export { isFieldRequired, paginationQuerySchema, requiredKeys, signedUrlSchema, zodEnumFromObjectKeys };
36
+ export type { FormDataFromSchema, Pagination, SignedUrlSchema };
@@ -0,0 +1,36 @@
1
+ import { ZodObject, z, ZodType, ZodOptional, ZodDefault } from 'zod/v4';
2
+
3
+ type FormDataFromSchema<T extends ZodObject = ZodObject> = z.infer<T>;
4
+ declare const isFieldRequired: (schema: ZodType | FormDataFromSchema, path: string) => boolean;
5
+ declare const requiredKeys: (schema: ZodType | FormDataFromSchema) => string[];
6
+ /**
7
+ * Converts a plain object's keys into ZodEnum with type safety and autocompletion
8
+ */
9
+ declare function zodEnumFromObjectKeys<TI extends Record<string, unknown>, R extends string = TI extends Record<infer R, unknown> ? R : never>(input: TI): z.ZodEnum<{
10
+ [K in R]: K;
11
+ }>;
12
+ declare const signedUrlSchema: ZodObject<{
13
+ expires: ZodOptional<z.ZodCoercedNumber<unknown>>;
14
+ sig: ZodOptional<z.ZodString>;
15
+ ref: ZodOptional<z.ZodString>;
16
+ }, z.core.$strip>;
17
+ type SignedUrlSchema = z.infer<typeof signedUrlSchema>;
18
+ type Pagination = {
19
+ totalItems: number;
20
+ currentPage: number;
21
+ itemsPerPage: number;
22
+ totalPages: number;
23
+ limit: number;
24
+ offset: number;
25
+ };
26
+ declare const paginationQuerySchema: ({ min, max, defaultLimit, }?: {
27
+ min?: number;
28
+ max?: number;
29
+ defaultLimit?: number;
30
+ }) => ZodObject<{
31
+ limit: ZodDefault<z.ZodCoercedNumber<unknown>>;
32
+ offset: ZodDefault<z.ZodCoercedNumber<unknown>>;
33
+ }, z.core.$strip>;
34
+
35
+ export { isFieldRequired, paginationQuerySchema, requiredKeys, signedUrlSchema, zodEnumFromObjectKeys };
36
+ export type { FormDataFromSchema, Pagination, SignedUrlSchema };
@@ -0,0 +1,2 @@
1
+ var d=Object.defineProperty;var o=(e,t)=>d(e,"name",{value:t,configurable:!0});import{z as i,ZodObject as b,ZodOptional as f,ZodNullable as u,ZodArray as y,ZodDefault as h}from"zod/v4";function g(e){return e instanceof f||e instanceof u||e instanceof h?g(e):typeof e=="string"?e:e.type}o(g,"unwrapZodType");const j=o((e,t)=>{const n=t.split(".");let s=e;for(const r of n)if(!(s instanceof b)||(s=s.shape[r],!s))return!1;return!(s instanceof f||s instanceof u)},"isFieldRequired"),Z=o(e=>{const t=[],n=o((s,r=[])=>{const c=g(s);if(c instanceof b){const m=c.shape;for(const l in m){const a=m[l];if(a instanceof f||a instanceof u)continue;const p=[...r,l];n(a,p)}}else c instanceof y?n(c,r):t.push(r.join("."))},"traverse");return n(e),t},"requiredKeys");function O(e){const[t,...n]=Object.keys(e);return i.enum([t,...n])}o(O,"zodEnumFromObjectKeys");const k=i.object({expires:i.coerce.number().int().optional().refine(e=>e===void 0||e>=0,"Expires must be a non-negative integer"),sig:i.string().optional(),ref:i.string().optional()}),K=o(({min:e=1,max:t=100,defaultLimit:n=25}={})=>i.object({limit:i.coerce.number().int().min(e,{message:`Limit must be at least ${e}`}).max(t,{message:`Limit must be at most ${t}`}).default(n),offset:i.coerce.number().int().min(0,{message:"Offset must be 0 or greater"}).default(0)}),"paginationQuerySchema");export{j as isFieldRequired,K as paginationQuerySchema,Z as requiredKeys,k as signedUrlSchema,O as zodEnumFromObjectKeys};
2
+ //# sourceMappingURL=schemas.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.mjs","sources":["../src/schemas.ts"],"sourcesContent":["import {\n\tZodArray,\n\tZodDefault,\n\tZodNullable,\n\tZodObject,\n\tZodOptional,\n\ttype ZodType,\n\tz,\n} from 'zod/v4';\n\ntype FormDataFromSchema<T extends ZodObject = ZodObject> = z.infer<T>;\n\nfunction unwrapZodType(zodType: ZodType | FormDataFromSchema) {\n\tif (\n\t\tzodType instanceof ZodOptional ||\n\t\tzodType instanceof ZodNullable ||\n\t\tzodType instanceof ZodDefault\n\t) {\n\t\treturn unwrapZodType(zodType);\n\t}\n\n\treturn typeof zodType === 'string' ? zodType : zodType.type;\n}\n\nconst isFieldRequired = (\n\tschema: ZodType | FormDataFromSchema,\n\tpath: string\n): boolean => {\n\tconst keys = path.split('.');\n\tlet current: ZodType | FormDataFromSchema | undefined = schema;\n\n\tfor (const key of keys) {\n\t\tif (!(current instanceof ZodObject)) return false;\n\n\t\tcurrent = current.shape[key];\n\n\t\tif (!current) return false;\n\t}\n\n\treturn !(current instanceof ZodOptional || current instanceof ZodNullable);\n};\n\nconst requiredKeys = (schema: ZodType | FormDataFromSchema): string[] => {\n\tconst required: string[] = [];\n\n\tconst traverse = (\n\t\tzodType: ZodType | FormDataFromSchema,\n\t\tpath: string[] = []\n\t): void => {\n\t\tconst unwrapped = unwrapZodType(zodType);\n\n\t\tif (unwrapped instanceof ZodObject) {\n\t\t\tconst shape = unwrapped.shape;\n\t\t\tfor (const key in shape) {\n\t\t\t\tconst field = shape[key];\n\n\t\t\t\tif (field instanceof ZodOptional || field instanceof ZodNullable)\n\t\t\t\t\tcontinue;\n\n\t\t\t\tconst newPath = [...path, key];\n\t\t\t\ttraverse(field, newPath);\n\t\t\t}\n\t\t} else if (unwrapped instanceof ZodArray) {\n\t\t\ttraverse(unwrapped, path);\n\t\t} else {\n\t\t\trequired.push(path.join('.'));\n\t\t}\n\t};\n\n\ttraverse(schema);\n\treturn required;\n};\n\n/**\n * Converts a plain object's keys into ZodEnum with type safety and autocompletion\n */\nfunction zodEnumFromObjectKeys<\n\tTI extends Record<string, unknown>,\n\tR extends string = TI extends Record<infer R, unknown> ? R : never,\n>(\n\tinput: TI\n): z.ZodEnum<{\n\t[K in R]: K;\n}> {\n\tconst [firstKey, ...otherKeys] = Object.keys(input) as [R, ...R[]];\n\treturn z.enum([firstKey, ...otherKeys]);\n}\n\nconst signedUrlSchema = z.object({\n\texpires: z.coerce\n\t\t.number()\n\t\t.int()\n\t\t.optional()\n\t\t.refine(\n\t\t\t(val) => val === undefined || val >= 0,\n\t\t\t'Expires must be a non-negative integer'\n\t\t),\n\tsig: z.string().optional(),\n\tref: z.string().optional(),\n});\n\ntype SignedUrlSchema = z.infer<typeof signedUrlSchema>;\n\ntype Pagination = {\n\ttotalItems: number;\n\tcurrentPage: number;\n\titemsPerPage: number;\n\ttotalPages: number;\n\tlimit: number;\n\toffset: number;\n};\n\nconst paginationQuerySchema = ({\n\tmin = 1,\n\tmax = 100,\n\tdefaultLimit = 25,\n}: {\n\tmin?: number;\n\tmax?: number;\n\tdefaultLimit?: number;\n} = {}) => {\n\treturn z.object({\n\t\tlimit: z.coerce\n\t\t\t.number()\n\t\t\t.int()\n\t\t\t.min(min, { message: `Limit must be at least ${min}` })\n\t\t\t.max(max, { message: `Limit must be at most ${max}` })\n\t\t\t.default(defaultLimit),\n\t\toffset: z.coerce\n\t\t\t.number()\n\t\t\t.int()\n\t\t\t.min(0, { message: 'Offset must be 0 or greater' })\n\t\t\t.default(0),\n\t});\n};\n\nexport {\n\ttype FormDataFromSchema,\n\tisFieldRequired,\n\trequiredKeys,\n\tzodEnumFromObjectKeys,\n\tsignedUrlSchema,\n\ttype SignedUrlSchema,\n\tpaginationQuerySchema,\n\ttype Pagination,\n};\n"],"names":["unwrapZodType","zodType","ZodOptional","ZodNullable","ZodDefault","__name","isFieldRequired","schema","path","keys","current","key","ZodObject","requiredKeys","required","traverse","unwrapped","shape","field","newPath","ZodArray","zodEnumFromObjectKeys","input","firstKey","otherKeys","z","signedUrlSchema","val","paginationQuerySchema","min","max","defaultLimit"],"mappings":"yLAYA,SAASA,EAAcC,EAAuC,CAC7D,OACCA,aAAmBC,GACnBD,aAAmBE,GACnBF,aAAmBG,EAEZJ,EAAcC,CAAO,EAGtB,OAAOA,GAAY,SAAWA,EAAUA,EAAQ,IACxD,CAVSI,EAAAL,EAAA,iBAYT,MAAMM,EAAkBD,EAAA,CACvBE,EACAC,IACa,CACb,MAAMC,EAAOD,EAAK,MAAM,GAAG,EAC3B,IAAIE,EAAoDH,EAExD,UAAWI,KAAOF,EAKjB,GAJI,EAAEC,aAAmBE,KAEzBF,EAAUA,EAAQ,MAAMC,CAAG,EAEvB,CAACD,GAAS,MAAO,GAGtB,MAAO,EAAEA,aAAmBR,GAAeQ,aAAmBP,EAC/D,EAhBwB,mBAkBlBU,EAAeR,EAACE,GAAmD,CACxE,MAAMO,EAAqB,CAAA,EAErBC,EAAWV,EAAA,CAChBJ,EACAO,EAAiB,CAAA,IACP,CACV,MAAMQ,EAAYhB,EAAcC,CAAO,EAEvC,GAAIe,aAAqBJ,EAAW,CACnC,MAAMK,EAAQD,EAAU,MACxB,UAAWL,KAAOM,EAAO,CACxB,MAAMC,EAAQD,EAAMN,CAAG,EAEvB,GAAIO,aAAiBhB,GAAegB,aAAiBf,EACpD,SAED,MAAMgB,EAAU,CAAC,GAAGX,EAAMG,CAAG,EAC7BI,EAASG,EAAOC,CAAO,CACxB,CACD,MAAWH,aAAqBI,EAC/BL,EAASC,EAAWR,CAAI,EAExBM,EAAS,KAAKN,EAAK,KAAK,GAAG,CAAC,CAE9B,EAtBiB,YAwBjB,OAAAO,EAASR,CAAM,EACRO,CACR,EA7BqB,gBAkCrB,SAASO,EAIRC,EAGE,CACF,KAAM,CAACC,EAAU,GAAGC,CAAS,EAAI,OAAO,KAAKF,CAAK,EAClD,OAAOG,EAAE,KAAK,CAACF,EAAU,GAAGC,CAAS,CAAC,CACvC,CAVSnB,EAAAgB,EAAA,yBAYT,MAAMK,EAAkBD,EAAE,OAAO,CAChC,QAASA,EAAE,OACT,OAAA,EACA,IAAA,EACA,WACA,OACCE,GAAQA,IAAQ,QAAaA,GAAO,EACrC,wCAAA,EAEF,IAAKF,EAAE,OAAA,EAAS,SAAA,EAChB,IAAKA,EAAE,OAAA,EAAS,SAAA,CACjB,CAAC,EAaKG,EAAwBvB,EAAA,CAAC,CAC9B,IAAAwB,EAAM,EACN,IAAAC,EAAM,IACN,aAAAC,EAAe,EAChB,EAII,KACIN,EAAE,OAAO,CACf,MAAOA,EAAE,OACP,SACA,MACA,IAAII,EAAK,CAAE,QAAS,0BAA0BA,CAAG,GAAI,EACrD,IAAIC,EAAK,CAAE,QAAS,yBAAyBA,CAAG,EAAA,CAAI,EACpD,QAAQC,CAAY,EACtB,OAAQN,EAAE,OACR,OAAA,EACA,IAAA,EACA,IAAI,EAAG,CAAE,QAAS,6BAAA,CAA+B,EACjD,QAAQ,CAAC,CAAA,CACX,EArB4B"}
@@ -0,0 +1,3 @@
1
+ var _=Object.defineProperty;var s=(e,t)=>_(e,"name",{value:t,configurable:!0});const i=s((e,t,r="...")=>e.length>t?e.slice(0,t-r.length)+r:e,"truncate"),u=s((e,t)=>{const{prefix:r="",suffix:a="",maxItemLength:c,maxTotalLength:g,joinString:j=", ",maxItems:k,stringify:x}=t,O=r.length+a.length,Z=s(o=>r+o.join(j)+a,"withOptions"),m=s(o=>{const C=s(p=>{const n=x(p);return typeof c>"u"||n.length<=c?n:i(n,c)},"processItem");if(typeof g>"u")return{result:o.map(C),truncatedItems:0};let h=0;const l=[];for(const p of o){const n=C(p);if(h+=n.length,h>g-O)break;l.push(n)}return{result:l,truncatedItems:o.length-l.length}},"processArray")(e.slice(0,k));return{result:Z(m.result),truncatedItems:m.truncatedItems}},"stringifyArray"),f=s((e,t)=>{if(e.length===0)return t.emptyOutput;const{result:r,truncatedItems:a}=u(e,t);return`${r}${a>0?`
2
+ ...and ${a} more...`:""}`},"displayArray"),d=s((e,t)=>t===1?e:`${e}s`,"pluralize"),y=s(e=>e.replace(/\s+/g,"_").replace(/([A-Z])/g,t=>`_${t.toLowerCase()}`).replace(/^_/,"").toLowerCase(),"snakeCase"),A=s(e=>e.toLowerCase().split(" ").map(t=>`${t.charAt(0).toUpperCase()}${t.slice(1)}`).join(" "),"titleCase"),L=s(e=>e.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)?.join("-").toLowerCase()??e,"kebabCase"),w=s(e=>e.toLowerCase().split(/\s+|-/).reduce((t,r,a)=>t+(a===0?r:r.charAt(0).toUpperCase()+r.slice(1))),"camelCase"),$=s(e=>e.replace(/(\w)(\w*)/g,(t,r,a)=>`${r.toUpperCase()}${a.toLowerCase()}`),"pascalCase"),b=s((e,t=" ")=>e.split(/(?=[A-Z])/).join(t),"splitOnUppercase"),I=s((e,t)=>Object.entries(t).reduce((r,[a,c])=>r.replace(new RegExp(`{${a}}`,"g"),c),e),"replaceTags"),U=s(e=>{try{return new URL(e),!0}catch{return!1}},"isUrl");var z=Object.freeze({__proto__:null,camelCase:w,displayArray:f,isUrl:U,kebabCase:L,pascalCase:$,pluralize:d,replaceTags:I,snakeCase:y,splitOnUppercase:b,stringifyArray:u,titleCase:A,truncate:i});export{u as a,y as b,A as c,f as d,w as e,$ as f,b as g,U as i,L as k,d as p,I as r,z as s,i as t};
3
+ //# sourceMappingURL=strings-B0BRwNX9.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings-B0BRwNX9.mjs","sources":["../src/utils/strings.ts"],"sourcesContent":["type StringifyArrayOptions<T> = {\n\tmaxItems: number;\n\tmaxItemLength?: number;\n\tmaxTotalLength?: number;\n\tstringify: (item: T) => string;\n\tprefix?: string;\n\tsuffix?: string;\n\tjoinString?: string;\n};\n\nconst truncate = (input: string, length: number, suffix = '...'): string =>\n\tinput.length > length\n\t\t? input.slice(0, length - suffix.length) + suffix\n\t\t: input;\n\nconst stringifyArray = <T>(\n\tarr: T[],\n\toptions: StringifyArrayOptions<T>\n): {\n\tresult: string;\n\ttruncatedItems: number;\n} => {\n\tconst {\n\t\tprefix = '',\n\t\tsuffix = '',\n\t\tmaxItemLength,\n\t\tmaxTotalLength,\n\t\tjoinString = ', ',\n\t\tmaxItems,\n\t\tstringify,\n\t} = options;\n\tconst reservedLength = prefix.length + suffix.length;\n\n\tconst withOptions = (_arr: string[]) =>\n\t\tprefix + _arr.join(joinString) + suffix;\n\n\tconst processArray = (\n\t\t_arr: T[]\n\t): {\n\t\tresult: string[];\n\t\ttruncatedItems: number;\n\t} => {\n\t\tconst processItem = (item: T) => {\n\t\t\tconst itemStr = stringify(item);\n\n\t\t\tif (\n\t\t\t\ttypeof maxItemLength === 'undefined' ||\n\t\t\t\titemStr.length <= maxItemLength\n\t\t\t) {\n\t\t\t\treturn itemStr;\n\t\t\t}\n\n\t\t\treturn truncate(itemStr, maxItemLength);\n\t\t};\n\n\t\tif (typeof maxTotalLength === 'undefined')\n\t\t\treturn {\n\t\t\t\tresult: _arr.map(processItem),\n\t\t\t\ttruncatedItems: 0,\n\t\t\t};\n\n\t\tlet totalLength = 0;\n\t\tconst result: string[] = [];\n\n\t\tfor (const item of _arr) {\n\t\t\tconst itemStr = processItem(item);\n\n\t\t\ttotalLength += itemStr.length;\n\n\t\t\tif (totalLength > maxTotalLength - reservedLength) break;\n\n\t\t\tresult.push(itemStr);\n\t\t}\n\n\t\treturn {\n\t\t\tresult,\n\t\t\ttruncatedItems: _arr.length - result.length,\n\t\t};\n\t};\n\n\tconst processed = processArray(arr.slice(0, maxItems));\n\n\treturn {\n\t\tresult: withOptions(processed.result),\n\t\ttruncatedItems: processed.truncatedItems,\n\t};\n};\n\nconst displayArray = <T>(\n\tarr: T[],\n\toptions: StringifyArrayOptions<T> & {\n\t\temptyOutput: string;\n\t}\n): string => {\n\tif (arr.length === 0) return options.emptyOutput;\n\n\tconst { result, truncatedItems } = stringifyArray(arr, options);\n\n\treturn `${result}${\n\t\ttruncatedItems > 0 ? `\\n...and ${truncatedItems} more...` : ''\n\t}`;\n};\n\nconst pluralize = (input: string, count: number): string =>\n\tcount === 1 ? input : `${input}s`;\n\nconst snakeCase = (input: string): string =>\n\tinput\n\t\t.replace(/\\s+/g, '_')\n\t\t.replace(/([A-Z])/g, (match) => `_${match.toLowerCase()}`)\n\t\t.replace(/^_/, '')\n\t\t.toLowerCase();\n\nconst titleCase = (input: string): string =>\n\tinput\n\t\t.toLowerCase()\n\t\t.split(' ')\n\t\t.map((word) => `${word.charAt(0).toUpperCase()}${word.slice(1)}`)\n\t\t.join(' ');\n\nconst kebabCase = (input: string): string =>\n\tinput\n\t\t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)\n\t\t?.join('-')\n\t\t.toLowerCase() ?? input;\n\nconst camelCase = (input: string): string =>\n\tinput\n\t\t.toLowerCase()\n\t\t.split(/\\s+|-/)\n\t\t.reduce(\n\t\t\t(s, c, i) => s + (i === 0 ? c : c.charAt(0).toUpperCase() + c.slice(1))\n\t\t);\n\nconst pascalCase = (input: string): string =>\n\tinput.replace(\n\t\t/(\\w)(\\w*)/g,\n\t\t(_g0, g1, g2) => `${g1.toUpperCase()}${g2.toLowerCase()}`\n\t);\n\nconst splitOnUppercase = (input: string, splitChar = ' '): string =>\n\tinput.split(/(?=[A-Z])/).join(splitChar);\n\nconst replaceTags = (\n\tinput: string,\n\tplaceholders: Record<string, string>\n): string =>\n\tObject.entries(placeholders).reduce(\n\t\t(str, [key, value]) => str.replace(new RegExp(`{${key}}`, 'g'), value),\n\t\tinput\n\t);\n\nconst isUrl = (input: string): boolean => {\n\ttry {\n\t\tnew URL(input);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport {\n\ttruncate,\n\tstringifyArray,\n\tdisplayArray,\n\tpluralize,\n\tsnakeCase,\n\ttitleCase,\n\tkebabCase,\n\tcamelCase,\n\tpascalCase,\n\tsplitOnUppercase,\n\treplaceTags,\n\tisUrl,\n\ttype StringifyArrayOptions,\n};\n"],"names":["truncate","__name","input","length","suffix","stringifyArray","arr","options","prefix","maxItemLength","maxTotalLength","joinString","maxItems","stringify","reservedLength","withOptions","_arr","processed","processItem","item","itemStr","totalLength","result","displayArray","truncatedItems","pluralize","count","snakeCase","match","titleCase","word","kebabCase","camelCase","s","c","i","pascalCase","_g0","g1","g2","splitOnUppercase","splitChar","replaceTags","placeholders","str","key","value","isUrl"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";var _=Object.defineProperty;var s=(e,t)=>_(e,"name",{value:t,configurable:!0});const p=s((e,t,r="...")=>e.length>t?e.slice(0,t-r.length)+r:e,"truncate"),u=s((e,t)=>{const{prefix:r="",suffix:a="",maxItemLength:c,maxTotalLength:g,joinString:j=", ",maxItems:k,stringify:O}=t,z=r.length+a.length,Z=s(l=>r+l.join(j)+a,"withOptions"),C=s(l=>{const m=s(i=>{const n=O(i);return typeof c>"u"||n.length<=c?n:p(n,c)},"processItem");if(typeof g>"u")return{result:l.map(m),truncatedItems:0};let y=0;const o=[];for(const i of l){const n=m(i);if(y+=n.length,y>g-z)break;o.push(n)}return{result:o,truncatedItems:l.length-o.length}},"processArray")(e.slice(0,k));return{result:Z(C.result),truncatedItems:C.truncatedItems}},"stringifyArray"),h=s((e,t)=>{if(e.length===0)return t.emptyOutput;const{result:r,truncatedItems:a}=u(e,t);return`${r}${a>0?`
2
+ ...and ${a} more...`:""}`},"displayArray"),f=s((e,t)=>t===1?e:`${e}s`,"pluralize"),d=s(e=>e.replace(/\s+/g,"_").replace(/([A-Z])/g,t=>`_${t.toLowerCase()}`).replace(/^_/,"").toLowerCase(),"snakeCase"),A=s(e=>e.toLowerCase().split(" ").map(t=>`${t.charAt(0).toUpperCase()}${t.slice(1)}`).join(" "),"titleCase"),L=s(e=>e.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)?.join("-").toLowerCase()??e,"kebabCase"),b=s(e=>e.toLowerCase().split(/\s+|-/).reduce((t,r,a)=>t+(a===0?r:r.charAt(0).toUpperCase()+r.slice(1))),"camelCase"),w=s(e=>e.replace(/(\w)(\w*)/g,(t,r,a)=>`${r.toUpperCase()}${a.toLowerCase()}`),"pascalCase"),U=s((e,t=" ")=>e.split(/(?=[A-Z])/).join(t),"splitOnUppercase"),$=s((e,t)=>Object.entries(t).reduce((r,[a,c])=>r.replace(new RegExp(`{${a}}`,"g"),c),e),"replaceTags"),I=s(e=>{try{return new URL(e),!0}catch{return!1}},"isUrl");var x=Object.freeze({__proto__:null,camelCase:b,displayArray:h,isUrl:I,kebabCase:L,pascalCase:w,pluralize:f,replaceTags:$,snakeCase:d,splitOnUppercase:U,stringifyArray:u,titleCase:A,truncate:p});exports.camelCase=b,exports.displayArray=h,exports.isUrl=I,exports.kebabCase=L,exports.pascalCase=w,exports.pluralize=f,exports.replaceTags=$,exports.snakeCase=d,exports.splitOnUppercase=U,exports.stringifyArray=u,exports.strings=x,exports.titleCase=A,exports.truncate=p;
3
+ //# sourceMappingURL=strings-DV446vv-.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings-DV446vv-.cjs","sources":["../src/utils/strings.ts"],"sourcesContent":["type StringifyArrayOptions<T> = {\n\tmaxItems: number;\n\tmaxItemLength?: number;\n\tmaxTotalLength?: number;\n\tstringify: (item: T) => string;\n\tprefix?: string;\n\tsuffix?: string;\n\tjoinString?: string;\n};\n\nconst truncate = (input: string, length: number, suffix = '...'): string =>\n\tinput.length > length\n\t\t? input.slice(0, length - suffix.length) + suffix\n\t\t: input;\n\nconst stringifyArray = <T>(\n\tarr: T[],\n\toptions: StringifyArrayOptions<T>\n): {\n\tresult: string;\n\ttruncatedItems: number;\n} => {\n\tconst {\n\t\tprefix = '',\n\t\tsuffix = '',\n\t\tmaxItemLength,\n\t\tmaxTotalLength,\n\t\tjoinString = ', ',\n\t\tmaxItems,\n\t\tstringify,\n\t} = options;\n\tconst reservedLength = prefix.length + suffix.length;\n\n\tconst withOptions = (_arr: string[]) =>\n\t\tprefix + _arr.join(joinString) + suffix;\n\n\tconst processArray = (\n\t\t_arr: T[]\n\t): {\n\t\tresult: string[];\n\t\ttruncatedItems: number;\n\t} => {\n\t\tconst processItem = (item: T) => {\n\t\t\tconst itemStr = stringify(item);\n\n\t\t\tif (\n\t\t\t\ttypeof maxItemLength === 'undefined' ||\n\t\t\t\titemStr.length <= maxItemLength\n\t\t\t) {\n\t\t\t\treturn itemStr;\n\t\t\t}\n\n\t\t\treturn truncate(itemStr, maxItemLength);\n\t\t};\n\n\t\tif (typeof maxTotalLength === 'undefined')\n\t\t\treturn {\n\t\t\t\tresult: _arr.map(processItem),\n\t\t\t\ttruncatedItems: 0,\n\t\t\t};\n\n\t\tlet totalLength = 0;\n\t\tconst result: string[] = [];\n\n\t\tfor (const item of _arr) {\n\t\t\tconst itemStr = processItem(item);\n\n\t\t\ttotalLength += itemStr.length;\n\n\t\t\tif (totalLength > maxTotalLength - reservedLength) break;\n\n\t\t\tresult.push(itemStr);\n\t\t}\n\n\t\treturn {\n\t\t\tresult,\n\t\t\ttruncatedItems: _arr.length - result.length,\n\t\t};\n\t};\n\n\tconst processed = processArray(arr.slice(0, maxItems));\n\n\treturn {\n\t\tresult: withOptions(processed.result),\n\t\ttruncatedItems: processed.truncatedItems,\n\t};\n};\n\nconst displayArray = <T>(\n\tarr: T[],\n\toptions: StringifyArrayOptions<T> & {\n\t\temptyOutput: string;\n\t}\n): string => {\n\tif (arr.length === 0) return options.emptyOutput;\n\n\tconst { result, truncatedItems } = stringifyArray(arr, options);\n\n\treturn `${result}${\n\t\ttruncatedItems > 0 ? `\\n...and ${truncatedItems} more...` : ''\n\t}`;\n};\n\nconst pluralize = (input: string, count: number): string =>\n\tcount === 1 ? input : `${input}s`;\n\nconst snakeCase = (input: string): string =>\n\tinput\n\t\t.replace(/\\s+/g, '_')\n\t\t.replace(/([A-Z])/g, (match) => `_${match.toLowerCase()}`)\n\t\t.replace(/^_/, '')\n\t\t.toLowerCase();\n\nconst titleCase = (input: string): string =>\n\tinput\n\t\t.toLowerCase()\n\t\t.split(' ')\n\t\t.map((word) => `${word.charAt(0).toUpperCase()}${word.slice(1)}`)\n\t\t.join(' ');\n\nconst kebabCase = (input: string): string =>\n\tinput\n\t\t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)\n\t\t?.join('-')\n\t\t.toLowerCase() ?? input;\n\nconst camelCase = (input: string): string =>\n\tinput\n\t\t.toLowerCase()\n\t\t.split(/\\s+|-/)\n\t\t.reduce(\n\t\t\t(s, c, i) => s + (i === 0 ? c : c.charAt(0).toUpperCase() + c.slice(1))\n\t\t);\n\nconst pascalCase = (input: string): string =>\n\tinput.replace(\n\t\t/(\\w)(\\w*)/g,\n\t\t(_g0, g1, g2) => `${g1.toUpperCase()}${g2.toLowerCase()}`\n\t);\n\nconst splitOnUppercase = (input: string, splitChar = ' '): string =>\n\tinput.split(/(?=[A-Z])/).join(splitChar);\n\nconst replaceTags = (\n\tinput: string,\n\tplaceholders: Record<string, string>\n): string =>\n\tObject.entries(placeholders).reduce(\n\t\t(str, [key, value]) => str.replace(new RegExp(`{${key}}`, 'g'), value),\n\t\tinput\n\t);\n\nconst isUrl = (input: string): boolean => {\n\ttry {\n\t\tnew URL(input);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport {\n\ttruncate,\n\tstringifyArray,\n\tdisplayArray,\n\tpluralize,\n\tsnakeCase,\n\ttitleCase,\n\tkebabCase,\n\tcamelCase,\n\tpascalCase,\n\tsplitOnUppercase,\n\treplaceTags,\n\tisUrl,\n\ttype StringifyArrayOptions,\n};\n"],"names":["truncate","__name","input","length","suffix","stringifyArray","arr","options","prefix","maxItemLength","maxTotalLength","joinString","maxItems","stringify","reservedLength","withOptions","_arr","processed","processItem","item","itemStr","totalLength","result","displayArray","truncatedItems","pluralize","count","snakeCase","match","titleCase","word","kebabCase","camelCase","s","c","i","pascalCase","_g0","g1","g2","splitOnUppercase","splitChar","replaceTags","placeholders","str","key","value","isUrl"],"mappings":"4FAUA,MAAMA,EAAWC,EAAA,CAACC,EAAeC,EAAgBC,EAAS,QACzDF,EAAM,OAASC,EACZD,EAAM,MAAM,EAAGC,EAASC,EAAO,MAAM,EAAIA,EACzCF,EAHa,YAKXG,EAAiBJ,EAAA,CACtBK,EACAC,IAII,CACJ,KAAM,CACL,OAAAC,EAAS,GACT,OAAAJ,EAAS,GACT,cAAAK,EACA,eAAAC,EACA,WAAAC,EAAa,KACb,SAAAC,EACA,UAAAC,CAAA,EACGN,EACEO,EAAiBN,EAAO,OAASJ,EAAO,OAExCW,EAAcd,EAACe,GACpBR,EAASQ,EAAK,KAAKL,CAAU,EAAIP,EADd,eA+Cda,EA5CehB,EACpBe,GAII,CACJ,MAAME,EAAcjB,EAACkB,GAAY,CAChC,MAAMC,EAAUP,EAAUM,CAAI,EAE9B,OACC,OAAOV,EAAkB,KACzBW,EAAQ,QAAUX,EAEXW,EAGDpB,EAASoB,EAASX,CAAa,CACvC,EAXoB,eAapB,GAAI,OAAOC,EAAmB,IAC7B,MAAO,CACN,OAAQM,EAAK,IAAIE,CAAW,EAC5B,eAAgB,CAAA,EAGlB,IAAIG,EAAc,EAClB,MAAMC,EAAmB,CAAA,EAEzB,UAAWH,KAAQH,EAAM,CACxB,MAAMI,EAAUF,EAAYC,CAAI,EAIhC,GAFAE,GAAeD,EAAQ,OAEnBC,EAAcX,EAAiBI,EAAgB,MAEnDQ,EAAO,KAAKF,CAAO,CACpB,CAEA,MAAO,CACN,OAAAE,EACA,eAAgBN,EAAK,OAASM,EAAO,MAAA,CAEvC,EA1CqB,gBA4CUhB,EAAI,MAAM,EAAGM,CAAQ,CAAC,EAErD,MAAO,CACN,OAAQG,EAAYE,EAAU,MAAM,EACpC,eAAgBA,EAAU,cAAA,CAE5B,EAvEuB,kBAyEjBM,EAAetB,EAAA,CACpBK,EACAC,IAGY,CACZ,GAAID,EAAI,SAAW,EAAG,OAAOC,EAAQ,YAErC,KAAM,CAAE,OAAAe,EAAQ,eAAAE,CAAA,EAAmBnB,EAAeC,EAAKC,CAAO,EAE9D,MAAO,GAAGe,CAAM,GACfE,EAAiB,EAAI;AAAA,SAAYA,CAAc,WAAa,EAC7D,EACD,EAbqB,gBAefC,EAAYxB,EAAA,CAACC,EAAewB,IACjCA,IAAU,EAAIxB,EAAQ,GAAGA,CAAK,IADb,aAGZyB,EAAY1B,EAACC,GAClBA,EACE,QAAQ,OAAQ,GAAG,EACnB,QAAQ,WAAa0B,GAAU,IAAIA,EAAM,aAAa,EAAE,EACxD,QAAQ,KAAM,EAAE,EAChB,YAAA,EALe,aAOZC,EAAY5B,EAACC,GAClBA,EACE,YAAA,EACA,MAAM,GAAG,EACT,IAAK4B,GAAS,GAAGA,EAAK,OAAO,CAAC,EAAE,YAAA,CAAa,GAAGA,EAAK,MAAM,CAAC,CAAC,EAAE,EAC/D,KAAK,GAAG,EALO,aAOZC,EAAY9B,EAACC,GAClBA,EACE,MAAM,oEAAoE,GACzE,KAAK,GAAG,EACT,eAAiBA,EAJF,aAMZ8B,EAAY/B,EAACC,GAClBA,EACE,cACA,MAAM,OAAO,EACb,OACA,CAAC+B,EAAGC,EAAGC,IAAMF,GAAKE,IAAM,EAAID,EAAIA,EAAE,OAAO,CAAC,EAAE,YAAA,EAAgBA,EAAE,MAAM,CAAC,EACtE,EANgB,aAQZE,EAAanC,EAACC,GACnBA,EAAM,QACL,aACA,CAACmC,EAAKC,EAAIC,IAAO,GAAGD,EAAG,aAAa,GAAGC,EAAG,aAAa,EACxD,EAJkB,cAMbC,EAAmBvC,EAAA,CAACC,EAAeuC,EAAY,MACpDvC,EAAM,MAAM,WAAW,EAAE,KAAKuC,CAAS,EADf,oBAGnBC,EAAczC,EAAA,CACnBC,EACAyC,IAEA,OAAO,QAAQA,CAAY,EAAE,OAC5B,CAACC,EAAK,CAACC,EAAKC,CAAK,IAAMF,EAAI,QAAQ,IAAI,OAAO,IAAIC,CAAG,IAAK,GAAG,EAAGC,CAAK,EACrE5C,CACD,EAPmB,eASd6C,EAAQ9C,EAACC,GAA2B,CACzC,GAAI,CACH,WAAI,IAAIA,CAAK,EACN,EACR,MAAQ,CACP,MAAO,EACR,CACD,EAPc"}
@@ -0,0 +1,47 @@
1
+ type StringifyArrayOptions<T> = {
2
+ maxItems: number;
3
+ maxItemLength?: number;
4
+ maxTotalLength?: number;
5
+ stringify: (item: T) => string;
6
+ prefix?: string;
7
+ suffix?: string;
8
+ joinString?: string;
9
+ };
10
+ declare const truncate: (input: string, length: number, suffix?: string) => string;
11
+ declare const stringifyArray: <T>(arr: T[], options: StringifyArrayOptions<T>) => {
12
+ result: string;
13
+ truncatedItems: number;
14
+ };
15
+ declare const displayArray: <T>(arr: T[], options: StringifyArrayOptions<T> & {
16
+ emptyOutput: string;
17
+ }) => string;
18
+ declare const pluralize: (input: string, count: number) => string;
19
+ declare const snakeCase: (input: string) => string;
20
+ declare const titleCase: (input: string) => string;
21
+ declare const kebabCase: (input: string) => string;
22
+ declare const camelCase: (input: string) => string;
23
+ declare const pascalCase: (input: string) => string;
24
+ declare const splitOnUppercase: (input: string, splitChar?: string) => string;
25
+ declare const replaceTags: (input: string, placeholders: Record<string, string>) => string;
26
+ declare const isUrl: (input: string) => boolean;
27
+
28
+ type strings_StringifyArrayOptions<T> = StringifyArrayOptions<T>;
29
+ declare const strings_camelCase: typeof camelCase;
30
+ declare const strings_displayArray: typeof displayArray;
31
+ declare const strings_isUrl: typeof isUrl;
32
+ declare const strings_kebabCase: typeof kebabCase;
33
+ declare const strings_pascalCase: typeof pascalCase;
34
+ declare const strings_pluralize: typeof pluralize;
35
+ declare const strings_replaceTags: typeof replaceTags;
36
+ declare const strings_snakeCase: typeof snakeCase;
37
+ declare const strings_splitOnUppercase: typeof splitOnUppercase;
38
+ declare const strings_stringifyArray: typeof stringifyArray;
39
+ declare const strings_titleCase: typeof titleCase;
40
+ declare const strings_truncate: typeof truncate;
41
+ declare namespace strings {
42
+ export { strings_camelCase as camelCase, strings_displayArray as displayArray, strings_isUrl as isUrl, strings_kebabCase as kebabCase, strings_pascalCase as pascalCase, strings_pluralize as pluralize, strings_replaceTags as replaceTags, strings_snakeCase as snakeCase, strings_splitOnUppercase as splitOnUppercase, strings_stringifyArray as stringifyArray, strings_titleCase as titleCase, strings_truncate as truncate };
43
+ export type { strings_StringifyArrayOptions as StringifyArrayOptions };
44
+ }
45
+
46
+ export { stringifyArray as a, snakeCase as b, titleCase as c, displayArray as d, camelCase as e, pascalCase as f, splitOnUppercase as g, isUrl as i, kebabCase as k, pluralize as p, replaceTags as r, strings as s, truncate as t };
47
+ export type { StringifyArrayOptions as S };
@@ -0,0 +1,47 @@
1
+ type StringifyArrayOptions<T> = {
2
+ maxItems: number;
3
+ maxItemLength?: number;
4
+ maxTotalLength?: number;
5
+ stringify: (item: T) => string;
6
+ prefix?: string;
7
+ suffix?: string;
8
+ joinString?: string;
9
+ };
10
+ declare const truncate: (input: string, length: number, suffix?: string) => string;
11
+ declare const stringifyArray: <T>(arr: T[], options: StringifyArrayOptions<T>) => {
12
+ result: string;
13
+ truncatedItems: number;
14
+ };
15
+ declare const displayArray: <T>(arr: T[], options: StringifyArrayOptions<T> & {
16
+ emptyOutput: string;
17
+ }) => string;
18
+ declare const pluralize: (input: string, count: number) => string;
19
+ declare const snakeCase: (input: string) => string;
20
+ declare const titleCase: (input: string) => string;
21
+ declare const kebabCase: (input: string) => string;
22
+ declare const camelCase: (input: string) => string;
23
+ declare const pascalCase: (input: string) => string;
24
+ declare const splitOnUppercase: (input: string, splitChar?: string) => string;
25
+ declare const replaceTags: (input: string, placeholders: Record<string, string>) => string;
26
+ declare const isUrl: (input: string) => boolean;
27
+
28
+ type strings_StringifyArrayOptions<T> = StringifyArrayOptions<T>;
29
+ declare const strings_camelCase: typeof camelCase;
30
+ declare const strings_displayArray: typeof displayArray;
31
+ declare const strings_isUrl: typeof isUrl;
32
+ declare const strings_kebabCase: typeof kebabCase;
33
+ declare const strings_pascalCase: typeof pascalCase;
34
+ declare const strings_pluralize: typeof pluralize;
35
+ declare const strings_replaceTags: typeof replaceTags;
36
+ declare const strings_snakeCase: typeof snakeCase;
37
+ declare const strings_splitOnUppercase: typeof splitOnUppercase;
38
+ declare const strings_stringifyArray: typeof stringifyArray;
39
+ declare const strings_titleCase: typeof titleCase;
40
+ declare const strings_truncate: typeof truncate;
41
+ declare namespace strings {
42
+ export { strings_camelCase as camelCase, strings_displayArray as displayArray, strings_isUrl as isUrl, strings_kebabCase as kebabCase, strings_pascalCase as pascalCase, strings_pluralize as pluralize, strings_replaceTags as replaceTags, strings_snakeCase as snakeCase, strings_splitOnUppercase as splitOnUppercase, strings_stringifyArray as stringifyArray, strings_titleCase as titleCase, strings_truncate as truncate };
43
+ export type { strings_StringifyArrayOptions as StringifyArrayOptions };
44
+ }
45
+
46
+ export { stringifyArray as a, snakeCase as b, titleCase as c, displayArray as d, camelCase as e, pascalCase as f, splitOnUppercase as g, isUrl as i, kebabCase as k, pluralize as p, replaceTags as r, strings as s, truncate as t };
47
+ export type { StringifyArrayOptions as S };
@@ -0,0 +1,29 @@
1
+ import { TimeMagic } from './constants/time.cjs';
2
+
3
+ declare const unix: (timestamp: number) => number;
4
+ declare const unixNow: () => number;
5
+ declare const humanReadableMs: (ms: number, maxParts?: number, msDisplay?: string | ((ms: number) => string)) => string;
6
+ declare const hrTimeToMs: (hrTime: [number, number]) => number;
7
+ declare const bigIntDurationToHumanReadable: (start: bigint) => string;
8
+ declare const occurrencesPerInterval: (dates: Date[], interval: number) => number;
9
+
10
+ declare const time_TimeMagic: typeof TimeMagic;
11
+ declare const time_bigIntDurationToHumanReadable: typeof bigIntDurationToHumanReadable;
12
+ declare const time_hrTimeToMs: typeof hrTimeToMs;
13
+ declare const time_humanReadableMs: typeof humanReadableMs;
14
+ declare const time_occurrencesPerInterval: typeof occurrencesPerInterval;
15
+ declare const time_unix: typeof unix;
16
+ declare const time_unixNow: typeof unixNow;
17
+ declare namespace time {
18
+ export {
19
+ time_TimeMagic as TimeMagic,
20
+ time_bigIntDurationToHumanReadable as bigIntDurationToHumanReadable,
21
+ time_hrTimeToMs as hrTimeToMs,
22
+ time_humanReadableMs as humanReadableMs,
23
+ time_occurrencesPerInterval as occurrencesPerInterval,
24
+ time_unix as unix,
25
+ time_unixNow as unixNow,
26
+ };
27
+ }
28
+
29
+ export { unixNow as a, hrTimeToMs as b, bigIntDurationToHumanReadable as c, humanReadableMs as h, occurrencesPerInterval as o, time as t, unix as u };
@@ -0,0 +1,29 @@
1
+ import { TimeMagic } from './constants/time.mjs';
2
+
3
+ declare const unix: (timestamp: number) => number;
4
+ declare const unixNow: () => number;
5
+ declare const humanReadableMs: (ms: number, maxParts?: number, msDisplay?: string | ((ms: number) => string)) => string;
6
+ declare const hrTimeToMs: (hrTime: [number, number]) => number;
7
+ declare const bigIntDurationToHumanReadable: (start: bigint) => string;
8
+ declare const occurrencesPerInterval: (dates: Date[], interval: number) => number;
9
+
10
+ declare const time_TimeMagic: typeof TimeMagic;
11
+ declare const time_bigIntDurationToHumanReadable: typeof bigIntDurationToHumanReadable;
12
+ declare const time_hrTimeToMs: typeof hrTimeToMs;
13
+ declare const time_humanReadableMs: typeof humanReadableMs;
14
+ declare const time_occurrencesPerInterval: typeof occurrencesPerInterval;
15
+ declare const time_unix: typeof unix;
16
+ declare const time_unixNow: typeof unixNow;
17
+ declare namespace time {
18
+ export {
19
+ time_TimeMagic as TimeMagic,
20
+ time_bigIntDurationToHumanReadable as bigIntDurationToHumanReadable,
21
+ time_hrTimeToMs as hrTimeToMs,
22
+ time_humanReadableMs as humanReadableMs,
23
+ time_occurrencesPerInterval as occurrencesPerInterval,
24
+ time_unix as unix,
25
+ time_unixNow as unixNow,
26
+ };
27
+ }
28
+
29
+ export { unixNow as a, hrTimeToMs as b, bigIntDurationToHumanReadable as c, humanReadableMs as h, occurrencesPerInterval as o, time as t, unix as u };
@@ -0,0 +1,2 @@
1
+ var h=Object.defineProperty;var c=(t,r)=>h(t,"name",{value:r,configurable:!0});import{TimeMagic as o}from"./constants/time.mjs";const l=c(t=>Math.floor(t/o.MILLISECONDS_PER_SECOND),"unix"),E=c(()=>l(Date.now()),"unixNow"),_=c((t,r=2,a="Just now")=>{const u=t/o.MILLISECONDS_PER_DAY|0,e=t%o.MILLISECONDS_PER_DAY/o.MILLISECONDS_PER_HOUR|0,I=t%o.MILLISECONDS_PER_HOUR/o.MILLISECONDS_PER_MINUTE|0,i=t%o.MILLISECONDS_PER_MINUTE/o.MILLISECONDS_PER_SECOND|0,n=[];u>0&&n.push(`${u} day${u===1?"":"s"}`),e>0&&n.push(`${e} hour${e===1?"":"s"}`),I>0&&n.push(`${I} minute${I===1?"":"s"}`),i>0&&n.push(`${i} second${i===1?"":"s"}`);const s=n.slice(0,r),f=s.pop();return s.length>0?`${s.join(", ")}${s.length>1?",":""} and ${f}`:f??(typeof a=="function"?a(t):a)},"humanReadableMs"),M=c(t=>t[0]*1e3+t[1]/1e6,"hrTimeToMs"),S=c(t=>{const r=process.hrtime.bigint();return`${(Number(r-t)/1e6).toFixed(3)}ms`},"bigIntDurationToHumanReadable"),m=c((t,r)=>{if(t.length===0)return 0;let a=0,u=0;const e={},I=t[0].getTime();for(const i of t){const n=i.getTime()-I,s=Math.floor(n/r);e[s]?e[s]++:e[s]=1}for(const i in e){const n=e[i];n&&(a+=n,u++)}return a/u},"occurrencesPerInterval");var L=Object.freeze({__proto__:null,TimeMagic:o,bigIntDurationToHumanReadable:S,hrTimeToMs:M,humanReadableMs:_,occurrencesPerInterval:m,unix:l,unixNow:E});export{E as a,M as b,S as c,_ as h,m as o,L as t,l as u};
2
+ //# sourceMappingURL=time-DmJNWZeL.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-DmJNWZeL.mjs","sources":["../src/utils/time.ts"],"sourcesContent":["import { TimeMagic } from '../constants/time';\n\nconst unix = (timestamp: number): number =>\n\tMath.floor(timestamp / TimeMagic.MILLISECONDS_PER_SECOND);\n\nconst unixNow = (): number => unix(Date.now());\n\nconst humanReadableMs = (\n\tms: number,\n\tmaxParts = 2,\n\tmsDisplay: string | ((ms: number) => string) = 'Just now'\n): string => {\n\tconst days = (ms / TimeMagic.MILLISECONDS_PER_DAY) | 0;\n\tconst hours =\n\t\t((ms % TimeMagic.MILLISECONDS_PER_DAY) / TimeMagic.MILLISECONDS_PER_HOUR) |\n\t\t0;\n\tconst minutes =\n\t\t((ms % TimeMagic.MILLISECONDS_PER_HOUR) /\n\t\t\tTimeMagic.MILLISECONDS_PER_MINUTE) |\n\t\t0;\n\tconst seconds =\n\t\t((ms % TimeMagic.MILLISECONDS_PER_MINUTE) /\n\t\t\tTimeMagic.MILLISECONDS_PER_SECOND) |\n\t\t0;\n\n\tconst parts = [];\n\tif (days > 0) parts.push(`${days} day${days === 1 ? '' : 's'}`);\n\tif (hours > 0) parts.push(`${hours} hour${hours === 1 ? '' : 's'}`);\n\tif (minutes > 0) parts.push(`${minutes} minute${minutes === 1 ? '' : 's'}`);\n\tif (seconds > 0) parts.push(`${seconds} second${seconds === 1 ? '' : 's'}`);\n\n\tconst formattedParts = parts.slice(0, maxParts);\n\tconst lastPart = formattedParts.pop();\n\n\tif (formattedParts.length > 0) {\n\t\treturn `${formattedParts.join(', ')}${formattedParts.length > 1 ? ',' : ''} and ${lastPart}`;\n\t} else\n\t\treturn (\n\t\t\tlastPart ?? (typeof msDisplay === 'function' ? msDisplay(ms) : msDisplay)\n\t\t);\n};\n\nconst hrTimeToMs = (hrTime: [number, number]): number =>\n\thrTime[0] * 1e3 + hrTime[1] / 1e6;\n\nconst bigIntDurationToHumanReadable = (start: bigint): string => {\n\tconst end = process.hrtime.bigint();\n\tconst ms = Number(end - start) / 1e6;\n\treturn `${ms.toFixed(3)}ms`;\n};\n\nconst occurrencesPerInterval = (dates: Date[], interval: number): number => {\n\tif (dates.length === 0) return 0;\n\n\tlet totalCount = 0;\n\tlet intervalCount = 0;\n\tconst map: Record<string, number> = {};\n\tconst baseTime = dates[0].getTime();\n\n\t// Iterate through the dates and count them in their respective intervals\n\tfor (const date of dates) {\n\t\tconst timeDiff = date.getTime() - baseTime;\n\t\tconst intervalIndex = Math.floor(timeDiff / interval);\n\n\t\tif (map[intervalIndex]) {\n\t\t\tmap[intervalIndex]++;\n\t\t} else {\n\t\t\tmap[intervalIndex] = 1;\n\t\t}\n\t}\n\n\t// Calculate the total count and number of intervals\n\tfor (const key in map) {\n\t\tconst val = map[key];\n\t\tif (!val) continue;\n\t\ttotalCount += val;\n\t\tintervalCount++;\n\t}\n\n\t// Calculate the average\n\treturn totalCount / intervalCount;\n};\n\nexport {\n\tunix,\n\tunixNow,\n\thumanReadableMs,\n\thrTimeToMs,\n\tbigIntDurationToHumanReadable,\n\toccurrencesPerInterval,\n\tTimeMagic,\n};\n"],"names":["unix","__name","timestamp","TimeMagic","unixNow","humanReadableMs","ms","maxParts","msDisplay","days","hours","minutes","seconds","parts","formattedParts","lastPart","hrTimeToMs","hrTime","bigIntDurationToHumanReadable","start","end","occurrencesPerInterval","dates","interval","totalCount","intervalCount","map","baseTime","date","timeDiff","intervalIndex","key","val"],"mappings":"gIAEA,MAAMA,EAAOC,EAACC,GACb,KAAK,MAAMA,EAAYC,EAAU,uBAAuB,EAD5C,QAGPC,EAAUH,EAAA,IAAcD,EAAK,KAAK,KAAK,EAA7B,WAEVK,EAAkBJ,EAAA,CACvBK,EACAC,EAAW,EACXC,EAA+C,aACnC,CACZ,MAAMC,EAAQH,EAAKH,EAAU,qBAAwB,EAC/CO,EACHJ,EAAKH,EAAU,qBAAwBA,EAAU,sBACnD,EACKQ,EACHL,EAAKH,EAAU,sBAChBA,EAAU,wBACX,EACKS,EACHN,EAAKH,EAAU,wBAChBA,EAAU,wBACX,EAEKU,EAAQ,CAAA,EACVJ,EAAO,GAAGI,EAAM,KAAK,GAAGJ,CAAI,OAAOA,IAAS,EAAI,GAAK,GAAG,EAAE,EAC1DC,EAAQ,GAAGG,EAAM,KAAK,GAAGH,CAAK,QAAQA,IAAU,EAAI,GAAK,GAAG,EAAE,EAC9DC,EAAU,GAAGE,EAAM,KAAK,GAAGF,CAAO,UAAUA,IAAY,EAAI,GAAK,GAAG,EAAE,EACtEC,EAAU,GAAGC,EAAM,KAAK,GAAGD,CAAO,UAAUA,IAAY,EAAI,GAAK,GAAG,EAAE,EAE1E,MAAME,EAAiBD,EAAM,MAAM,EAAGN,CAAQ,EACxCQ,EAAWD,EAAe,IAAA,EAEhC,OAAIA,EAAe,OAAS,EACpB,GAAGA,EAAe,KAAK,IAAI,CAAC,GAAGA,EAAe,OAAS,EAAI,IAAM,EAAE,QAAQC,CAAQ,GAGzFA,IAAa,OAAOP,GAAc,WAAaA,EAAUF,CAAE,EAAIE,EAElE,EAjCwB,mBAmClBQ,EAAaf,EAACgB,GACnBA,EAAO,CAAC,EAAI,IAAMA,EAAO,CAAC,EAAI,IADZ,cAGbC,EAAgCjB,EAACkB,GAA0B,CAChE,MAAMC,EAAM,QAAQ,OAAO,OAAA,EAE3B,MAAO,IADI,OAAOA,EAAMD,CAAK,EAAI,KACpB,QAAQ,CAAC,CAAC,IACxB,EAJsC,iCAMhCE,EAAyBpB,EAAA,CAACqB,EAAeC,IAA6B,CAC3E,GAAID,EAAM,SAAW,EAAG,MAAO,GAE/B,IAAIE,EAAa,EACbC,EAAgB,EACpB,MAAMC,EAA8B,CAAA,EAC9BC,EAAWL,EAAM,CAAC,EAAE,QAAA,EAG1B,UAAWM,KAAQN,EAAO,CACzB,MAAMO,EAAWD,EAAK,QAAA,EAAYD,EAC5BG,EAAgB,KAAK,MAAMD,EAAWN,CAAQ,EAEhDG,EAAII,CAAa,EACpBJ,EAAII,CAAa,IAEjBJ,EAAII,CAAa,EAAI,CAEvB,CAGA,UAAWC,KAAOL,EAAK,CACtB,MAAMM,EAAMN,EAAIK,CAAG,EACdC,IACLR,GAAcQ,EACdP,IACD,CAGA,OAAOD,EAAaC,CACrB,EA9B+B"}
@@ -0,0 +1,2 @@
1
+ "use strict";var g=Object.defineProperty;var r=(e,s)=>g(e,"name",{value:s,configurable:!0});var o=require("./constants/time.cjs");const M=r(e=>Math.floor(e/o.TimeMagic.MILLISECONDS_PER_SECOND),"unix"),l=r(()=>M(Date.now()),"unixNow"),T=r((e,s=2,a="Just now")=>{const u=e/o.TimeMagic.MILLISECONDS_PER_DAY|0,t=e%o.TimeMagic.MILLISECONDS_PER_DAY/o.TimeMagic.MILLISECONDS_PER_HOUR|0,m=e%o.TimeMagic.MILLISECONDS_PER_HOUR/o.TimeMagic.MILLISECONDS_PER_MINUTE|0,c=e%o.TimeMagic.MILLISECONDS_PER_MINUTE/o.TimeMagic.MILLISECONDS_PER_SECOND|0,n=[];u>0&&n.push(`${u} day${u===1?"":"s"}`),t>0&&n.push(`${t} hour${t===1?"":"s"}`),m>0&&n.push(`${m} minute${m===1?"":"s"}`),c>0&&n.push(`${c} second${c===1?"":"s"}`);const i=n.slice(0,s),I=i.pop();return i.length>0?`${i.join(", ")}${i.length>1?",":""} and ${I}`:I??(typeof a=="function"?a(e):a)},"humanReadableMs"),_=r(e=>e[0]*1e3+e[1]/1e6,"hrTimeToMs"),E=r(e=>{const s=process.hrtime.bigint();return`${(Number(s-e)/1e6).toFixed(3)}ms`},"bigIntDurationToHumanReadable"),f=r((e,s)=>{if(e.length===0)return 0;let a=0,u=0;const t={},m=e[0].getTime();for(const c of e){const n=c.getTime()-m,i=Math.floor(n/s);t[i]?t[i]++:t[i]=1}for(const c in t){const n=t[c];n&&(a+=n,u++)}return a/u},"occurrencesPerInterval");var S=Object.freeze({__proto__:null,TimeMagic:o.TimeMagic,bigIntDurationToHumanReadable:E,hrTimeToMs:_,humanReadableMs:T,occurrencesPerInterval:f,unix:M,unixNow:l});exports.bigIntDurationToHumanReadable=E,exports.hrTimeToMs=_,exports.humanReadableMs=T,exports.occurrencesPerInterval=f,exports.time=S,exports.unix=M,exports.unixNow=l;
2
+ //# sourceMappingURL=time-yNkQSJnQ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-yNkQSJnQ.cjs","sources":["../src/utils/time.ts"],"sourcesContent":["import { TimeMagic } from '../constants/time';\n\nconst unix = (timestamp: number): number =>\n\tMath.floor(timestamp / TimeMagic.MILLISECONDS_PER_SECOND);\n\nconst unixNow = (): number => unix(Date.now());\n\nconst humanReadableMs = (\n\tms: number,\n\tmaxParts = 2,\n\tmsDisplay: string | ((ms: number) => string) = 'Just now'\n): string => {\n\tconst days = (ms / TimeMagic.MILLISECONDS_PER_DAY) | 0;\n\tconst hours =\n\t\t((ms % TimeMagic.MILLISECONDS_PER_DAY) / TimeMagic.MILLISECONDS_PER_HOUR) |\n\t\t0;\n\tconst minutes =\n\t\t((ms % TimeMagic.MILLISECONDS_PER_HOUR) /\n\t\t\tTimeMagic.MILLISECONDS_PER_MINUTE) |\n\t\t0;\n\tconst seconds =\n\t\t((ms % TimeMagic.MILLISECONDS_PER_MINUTE) /\n\t\t\tTimeMagic.MILLISECONDS_PER_SECOND) |\n\t\t0;\n\n\tconst parts = [];\n\tif (days > 0) parts.push(`${days} day${days === 1 ? '' : 's'}`);\n\tif (hours > 0) parts.push(`${hours} hour${hours === 1 ? '' : 's'}`);\n\tif (minutes > 0) parts.push(`${minutes} minute${minutes === 1 ? '' : 's'}`);\n\tif (seconds > 0) parts.push(`${seconds} second${seconds === 1 ? '' : 's'}`);\n\n\tconst formattedParts = parts.slice(0, maxParts);\n\tconst lastPart = formattedParts.pop();\n\n\tif (formattedParts.length > 0) {\n\t\treturn `${formattedParts.join(', ')}${formattedParts.length > 1 ? ',' : ''} and ${lastPart}`;\n\t} else\n\t\treturn (\n\t\t\tlastPart ?? (typeof msDisplay === 'function' ? msDisplay(ms) : msDisplay)\n\t\t);\n};\n\nconst hrTimeToMs = (hrTime: [number, number]): number =>\n\thrTime[0] * 1e3 + hrTime[1] / 1e6;\n\nconst bigIntDurationToHumanReadable = (start: bigint): string => {\n\tconst end = process.hrtime.bigint();\n\tconst ms = Number(end - start) / 1e6;\n\treturn `${ms.toFixed(3)}ms`;\n};\n\nconst occurrencesPerInterval = (dates: Date[], interval: number): number => {\n\tif (dates.length === 0) return 0;\n\n\tlet totalCount = 0;\n\tlet intervalCount = 0;\n\tconst map: Record<string, number> = {};\n\tconst baseTime = dates[0].getTime();\n\n\t// Iterate through the dates and count them in their respective intervals\n\tfor (const date of dates) {\n\t\tconst timeDiff = date.getTime() - baseTime;\n\t\tconst intervalIndex = Math.floor(timeDiff / interval);\n\n\t\tif (map[intervalIndex]) {\n\t\t\tmap[intervalIndex]++;\n\t\t} else {\n\t\t\tmap[intervalIndex] = 1;\n\t\t}\n\t}\n\n\t// Calculate the total count and number of intervals\n\tfor (const key in map) {\n\t\tconst val = map[key];\n\t\tif (!val) continue;\n\t\ttotalCount += val;\n\t\tintervalCount++;\n\t}\n\n\t// Calculate the average\n\treturn totalCount / intervalCount;\n};\n\nexport {\n\tunix,\n\tunixNow,\n\thumanReadableMs,\n\thrTimeToMs,\n\tbigIntDurationToHumanReadable,\n\toccurrencesPerInterval,\n\tTimeMagic,\n};\n"],"names":["unix","__name","timestamp","TimeMagic","unixNow","humanReadableMs","ms","maxParts","msDisplay","days","hours","minutes","seconds","parts","formattedParts","lastPart","hrTimeToMs","hrTime","bigIntDurationToHumanReadable","start","end","occurrencesPerInterval","dates","interval","totalCount","intervalCount","map","baseTime","date","timeDiff","intervalIndex","key","val"],"mappings":"kIAEA,MAAMA,EAAOC,EAACC,GACb,KAAK,MAAMA,EAAYC,EAAAA,UAAU,uBAAuB,EAD5C,QAGPC,EAAUH,EAAA,IAAcD,EAAK,KAAK,KAAK,EAA7B,WAEVK,EAAkBJ,EAAA,CACvBK,EACAC,EAAW,EACXC,EAA+C,aACnC,CACZ,MAAMC,EAAQH,EAAKH,EAAAA,UAAU,qBAAwB,EAC/CO,EACHJ,EAAKH,EAAAA,UAAU,qBAAwBA,EAAAA,UAAU,sBACnD,EACKQ,EACHL,EAAKH,EAAAA,UAAU,sBAChBA,EAAAA,UAAU,wBACX,EACKS,EACHN,EAAKH,EAAAA,UAAU,wBAChBA,EAAAA,UAAU,wBACX,EAEKU,EAAQ,CAAA,EACVJ,EAAO,GAAGI,EAAM,KAAK,GAAGJ,CAAI,OAAOA,IAAS,EAAI,GAAK,GAAG,EAAE,EAC1DC,EAAQ,GAAGG,EAAM,KAAK,GAAGH,CAAK,QAAQA,IAAU,EAAI,GAAK,GAAG,EAAE,EAC9DC,EAAU,GAAGE,EAAM,KAAK,GAAGF,CAAO,UAAUA,IAAY,EAAI,GAAK,GAAG,EAAE,EACtEC,EAAU,GAAGC,EAAM,KAAK,GAAGD,CAAO,UAAUA,IAAY,EAAI,GAAK,GAAG,EAAE,EAE1E,MAAME,EAAiBD,EAAM,MAAM,EAAGN,CAAQ,EACxCQ,EAAWD,EAAe,IAAA,EAEhC,OAAIA,EAAe,OAAS,EACpB,GAAGA,EAAe,KAAK,IAAI,CAAC,GAAGA,EAAe,OAAS,EAAI,IAAM,EAAE,QAAQC,CAAQ,GAGzFA,IAAa,OAAOP,GAAc,WAAaA,EAAUF,CAAE,EAAIE,EAElE,EAjCwB,mBAmClBQ,EAAaf,EAACgB,GACnBA,EAAO,CAAC,EAAI,IAAMA,EAAO,CAAC,EAAI,IADZ,cAGbC,EAAgCjB,EAACkB,GAA0B,CAChE,MAAMC,EAAM,QAAQ,OAAO,OAAA,EAE3B,MAAO,IADI,OAAOA,EAAMD,CAAK,EAAI,KACpB,QAAQ,CAAC,CAAC,IACxB,EAJsC,iCAMhCE,EAAyBpB,EAAA,CAACqB,EAAeC,IAA6B,CAC3E,GAAID,EAAM,SAAW,EAAG,MAAO,GAE/B,IAAIE,EAAa,EACbC,EAAgB,EACpB,MAAMC,EAA8B,CAAA,EAC9BC,EAAWL,EAAM,CAAC,EAAE,QAAA,EAG1B,UAAWM,KAAQN,EAAO,CACzB,MAAMO,EAAWD,EAAK,QAAA,EAAYD,EAC5BG,EAAgB,KAAK,MAAMD,EAAWN,CAAQ,EAEhDG,EAAII,CAAa,EACpBJ,EAAII,CAAa,IAEjBJ,EAAII,CAAa,EAAI,CAEvB,CAGA,UAAWC,KAAOL,EAAK,CACtB,MAAMM,EAAMN,EAAIK,CAAG,EACdC,IACLR,GAAcQ,EACdP,IACD,CAGA,OAAOD,EAAaC,CACrB,EA9B+B"}
@@ -0,0 +1,2 @@
1
+ "use strict";require("../strings-DV446vv-.cjs");var r=require("../arrays-DaB1Xn47.cjs");exports.chunk=r.chunk,exports.isBooleanArray=r.isBooleanArray,exports.isNumberArray=r.isNumberArray,exports.isObjectArray=r.isObjectArray,exports.isStringArray=r.isStringArray,exports.join=r.join;
2
+ //# sourceMappingURL=arrays.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrays.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export { J as JoinOptions, c as chunk, d as isBooleanArray, b as isNumberArray, e as isObjectArray, i as isStringArray, j as join } from '../arrays-CElcW69H.cjs';
@@ -0,0 +1 @@
1
+ export { J as JoinOptions, c as chunk, d as isBooleanArray, b as isNumberArray, e as isObjectArray, i as isStringArray, j as join } from '../arrays-CElcW69H.mjs';
@@ -0,0 +1,2 @@
1
+ import"../strings-B0BRwNX9.mjs";import{c as i,d as o,b as e,e as n,i as t,j as y}from"../arrays-BkHBzTDO.mjs";export{i as chunk,o as isBooleanArray,e as isNumberArray,n as isObjectArray,t as isStringArray,y as join};
2
+ //# sourceMappingURL=arrays.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrays.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";var r=require("../arrays-DaB1Xn47.cjs"),i=require("../mime-types-BmvBrrZ7.cjs"),e=require("../numbers-DuVx9Qiu.cjs"),s=require("../objects-CnGoVkh6.cjs"),t=require("../random-D1e1NTOt.cjs"),u=require("../runtime-B-jA8ZxR.cjs"),m=require("../strings-DV446vv-.cjs"),a=require("../time-yNkQSJnQ.cjs");require("../constants/time.cjs"),exports.ArrayUtils=r.arrays,exports.MimeTypeUtils=i.mimeTypes,exports.NumberUtils=e.numbers,exports.ObjectUtils=s.objects,exports.RandomUtils=t.random,exports.RuntimeUtils=u.runtime,exports.StringUtils=m.strings,exports.TimeUtils=a.time;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export { a as ArrayUtils } from '../arrays-CElcW69H.cjs';
2
+ export { m as MimeTypeUtils } from '../mime-types-Bjt4NvnE.cjs';
3
+ export { n as NumberUtils } from '../numbers-BmUSgeah.cjs';
4
+ export { o as ObjectUtils } from '../objects-cf8j7rS8.cjs';
5
+ export { r as RandomUtils } from '../random-DpNyGGAZ.cjs';
6
+ export { r as RuntimeUtils } from '../runtime-T8Kcf7Af.cjs';
7
+ export { s as StringUtils } from '../strings-DhPbrpq7.cjs';
8
+ export { t as TimeUtils } from '../time-8KLG8kBO.cjs';
9
+ import '../constants/time.cjs';
@@ -0,0 +1,9 @@
1
+ export { a as ArrayUtils } from '../arrays-CElcW69H.mjs';
2
+ export { m as MimeTypeUtils } from '../mime-types-Bjt4NvnE.mjs';
3
+ export { n as NumberUtils } from '../numbers-BmUSgeah.mjs';
4
+ export { o as ObjectUtils } from '../objects-cf8j7rS8.mjs';
5
+ export { r as RandomUtils } from '../random-DpNyGGAZ.mjs';
6
+ export { r as RuntimeUtils } from '../runtime-T8Kcf7Af.mjs';
7
+ export { s as StringUtils } from '../strings-DhPbrpq7.mjs';
8
+ export { t as TimeUtils } from '../time-D8Wfqzu6.mjs';
9
+ import '../constants/time.mjs';
@@ -0,0 +1,2 @@
1
+ import{a as s}from"../arrays-BkHBzTDO.mjs";import{m as e}from"../mime-types-D_K53zgk.mjs";import{n as a}from"../numbers-Bx9JTSQe.mjs";import{o as f}from"../objects--cO_X3EV.mjs";import{r as x}from"../random-DbidGSrQ.mjs";import{r as n}from"../runtime-CbfL6Fgj.mjs";import{s as u}from"../strings-B0BRwNX9.mjs";import{t as R}from"../time-DmJNWZeL.mjs";import"../constants/time.mjs";export{s as ArrayUtils,e as MimeTypeUtils,a as NumberUtils,f as ObjectUtils,x as RandomUtils,n as RuntimeUtils,u as StringUtils,R as TimeUtils};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("../mime-types-BmvBrrZ7.cjs");exports.archiveMimeTypes=e.archiveMimeTypes,exports.audioMimeTypes=e.audioMimeTypes,exports.documentMimeTypes=e.documentMimeTypes,exports.getInputAccept=e.getInputAccept,exports.imageMimeTypes=e.imageMimeTypes,exports.inlineContentDispositionMimeTypes=e.inlineContentDispositionMimeTypes,exports.isAllowedMimeType=e.isAllowedMimeType,exports.isInlineContentDisposition=e.isInlineContentDisposition,exports.mimeTypeMap=e.mimeTypeMap,exports.mimeTypeResolver=e.mimeTypeResolver,exports.safeMimeTypes=e.safeMimeTypes,exports.videoMimeTypes=e.videoMimeTypes;
2
+ //# sourceMappingURL=mime-types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime-types.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export { M as MimeKind, a as MimeKindWithSafe, c as archiveMimeTypes, b as audioMimeTypes, d as documentMimeTypes, g as getInputAccept, i as imageMimeTypes, k as inlineContentDispositionMimeTypes, f as isAllowedMimeType, h as isInlineContentDisposition, e as mimeTypeMap, j as mimeTypeResolver, s as safeMimeTypes, v as videoMimeTypes } from '../mime-types-Bjt4NvnE.cjs';
@@ -0,0 +1 @@
1
+ export { M as MimeKind, a as MimeKindWithSafe, c as archiveMimeTypes, b as audioMimeTypes, d as documentMimeTypes, g as getInputAccept, i as imageMimeTypes, k as inlineContentDispositionMimeTypes, f as isAllowedMimeType, h as isInlineContentDisposition, e as mimeTypeMap, j as mimeTypeResolver, s as safeMimeTypes, v as videoMimeTypes } from '../mime-types-Bjt4NvnE.mjs';
@@ -0,0 +1,2 @@
1
+ import{b as i,a,d as p,g as m,i as o,j as n,e as t,f as y,c as T,h as M,s as c,v as d}from"../mime-types-D_K53zgk.mjs";export{i as archiveMimeTypes,a as audioMimeTypes,p as documentMimeTypes,m as getInputAccept,o as imageMimeTypes,n as inlineContentDispositionMimeTypes,t as isAllowedMimeType,y as isInlineContentDisposition,T as mimeTypeMap,M as mimeTypeResolver,c as safeMimeTypes,d as videoMimeTypes};
2
+ //# sourceMappingURL=mime-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime-types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";var a=require("../numbers-DuVx9Qiu.cjs");exports.INT32_MAX=a.INT32_MAX,exports.INT32_MIN=a.INT32_MIN,exports.INT64_MAX=a.INT64_MAX,exports.INT64_MIN=a.INT64_MIN,exports.bigIntSerializationHelper=a.bigIntSerializationHelper,exports.calculateMean=a.calculateMean,exports.calculateMedian=a.calculateMedian,exports.calculateStandardDeviation=a.calculateStandardDeviation,exports.calculateVariance=a.calculateVariance,exports.isEven=a.isEven,exports.isFloat=a.isFloat,exports.isInt=a.isInt,exports.isOdd=a.isOdd;
2
+ //# sourceMappingURL=numbers.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numbers.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export { I as INT32_MAX, d as INT32_MIN, e as INT64_MAX, f as INT64_MIN, l as bigIntSerializationHelper, g as calculateMean, h as calculateMedian, k as calculateStandardDeviation, j as calculateVariance, b as isEven, a as isFloat, i as isInt, c as isOdd } from '../numbers-BmUSgeah.cjs';
@@ -0,0 +1 @@
1
+ export { I as INT32_MAX, d as INT32_MIN, e as INT64_MAX, f as INT64_MIN, l as bigIntSerializationHelper, g as calculateMean, h as calculateMedian, k as calculateStandardDeviation, j as calculateVariance, b as isEven, a as isFloat, i as isInt, c as isOdd } from '../numbers-BmUSgeah.mjs';
@@ -0,0 +1,2 @@
1
+ import{I as e,d as i,e as l,f as t,l as c,g as n,h as I,k as d,j as r,b as M,a as N,i as o,c as u}from"../numbers-Bx9JTSQe.mjs";export{e as INT32_MAX,i as INT32_MIN,l as INT64_MAX,t as INT64_MIN,c as bigIntSerializationHelper,n as calculateMean,I as calculateMedian,d as calculateStandardDeviation,r as calculateVariance,M as isEven,N as isFloat,o as isInt,u as isOdd};
2
+ //# sourceMappingURL=numbers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numbers.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("../objects-CnGoVkh6.cjs");exports.deepClone=e.deepClone,exports.deepMerge=e.deepMerge,exports.getNestedValue=e.getNestedValue,exports.isEmptyObject=e.isEmptyObject,exports.isObject=e.isObject;
2
+ //# sourceMappingURL=objects.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export { G as GenericObject, O as ObjectChange, d as deepClone, b as deepMerge, g as getNestedValue, a as isEmptyObject, i as isObject } from '../objects-cf8j7rS8.cjs';
@@ -0,0 +1 @@
1
+ export { G as GenericObject, O as ObjectChange, d as deepClone, b as deepMerge, g as getNestedValue, a as isEmptyObject, i as isObject } from '../objects-cf8j7rS8.mjs';
@@ -0,0 +1,2 @@
1
+ import{d as a,b as t,g as d,a as p,i as b}from"../objects--cO_X3EV.mjs";export{a as deepClone,t as deepMerge,d as getNestedValue,p as isEmptyObject,b as isObject};
2
+ //# sourceMappingURL=objects.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";var a=require("../random-D1e1NTOt.cjs");exports.randomBoolean=a.randomBoolean,exports.randomFloat=a.randomFloat,exports.randomInt=a.randomInt,exports.randomItem=a.randomItem,exports.randomKey=a.randomKey,exports.randomString=a.randomString,exports.randomValue=a.randomValue;
2
+ //# sourceMappingURL=random.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export { R as RandomStringOptions, f as randomBoolean, b as randomFloat, a as randomInt, c as randomItem, d as randomKey, g as randomString, e as randomValue } from '../random-DpNyGGAZ.cjs';
@@ -0,0 +1 @@
1
+ export { R as RandomStringOptions, f as randomBoolean, b as randomFloat, a as randomInt, c as randomItem, d as randomKey, g as randomString, e as randomValue } from '../random-DpNyGGAZ.mjs';
@@ -0,0 +1,2 @@
1
+ import{f as n,b as r,a as m,c as d,d as s,g as e,e as t}from"../random-DbidGSrQ.mjs";export{n as randomBoolean,r as randomFloat,m as randomInt,d as randomItem,s as randomKey,e as randomString,t as randomValue};
2
+ //# sourceMappingURL=random.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}