@md-oss/common 0.1.6 → 0.1.7

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 (129) hide show
  1. package/dist/arrays-6DA6GfsQ.mjs +2 -0
  2. package/dist/arrays-6DA6GfsQ.mjs.map +1 -0
  3. package/dist/arrays-DvPJ1GeR.d.cts +163 -0
  4. package/dist/arrays-DvPJ1GeR.d.mts +163 -0
  5. package/dist/arrays-bgbansWs.cjs +2 -0
  6. package/dist/arrays-bgbansWs.cjs.map +1 -0
  7. package/dist/constants/bytes.cjs +1 -1
  8. package/dist/constants/bytes.cjs.map +1 -1
  9. package/dist/constants/bytes.d.cts +31 -1
  10. package/dist/constants/bytes.d.mts +31 -1
  11. package/dist/constants/bytes.mjs +1 -1
  12. package/dist/constants/bytes.mjs.map +1 -1
  13. package/dist/files-DzKYei0a.mjs +2 -0
  14. package/dist/files-DzKYei0a.mjs.map +1 -0
  15. package/dist/files-m1nnj5gT.cjs +2 -0
  16. package/dist/files-m1nnj5gT.cjs.map +1 -0
  17. package/dist/index.cjs +1 -1
  18. package/dist/index.d.cts +10 -8
  19. package/dist/index.d.mts +10 -8
  20. package/dist/index.mjs +1 -1
  21. package/dist/mime-types-BmvBrrZ7.cjs.map +1 -1
  22. package/dist/mime-types-D_K53zgk.mjs.map +1 -1
  23. package/dist/{mime-types-Bjt4NvnE.d.cts → mime-types-Dajfhq2c.d.cts} +58 -1
  24. package/dist/{mime-types-Bjt4NvnE.d.mts → mime-types-Dajfhq2c.d.mts} +58 -1
  25. package/dist/numbers-B_mptknO.cjs +2 -0
  26. package/dist/numbers-B_mptknO.cjs.map +1 -0
  27. package/dist/numbers-C2680fmA.d.cts +184 -0
  28. package/dist/numbers-C2680fmA.d.mts +184 -0
  29. package/dist/numbers-lJ6gwIpk.mjs +2 -0
  30. package/dist/numbers-lJ6gwIpk.mjs.map +1 -0
  31. package/dist/objects-VXf3mqE5.mjs +2 -0
  32. package/dist/objects-VXf3mqE5.mjs.map +1 -0
  33. package/dist/objects-fiFExjsf.d.cts +116 -0
  34. package/dist/objects-fiFExjsf.d.mts +116 -0
  35. package/dist/objects-wcO6hNA8.cjs +2 -0
  36. package/dist/objects-wcO6hNA8.cjs.map +1 -0
  37. package/dist/random-668tofPV.cjs +2 -0
  38. package/dist/random-668tofPV.cjs.map +1 -0
  39. package/dist/random-BqJDZAPb.d.cts +131 -0
  40. package/dist/random-BqJDZAPb.d.mts +131 -0
  41. package/dist/random-ihslkInn.mjs +2 -0
  42. package/dist/random-ihslkInn.mjs.map +1 -0
  43. package/dist/runtime-7fkN5_oL.d.cts +206 -0
  44. package/dist/runtime-7fkN5_oL.d.mts +206 -0
  45. package/dist/runtime-Bfs-yn_-.cjs +2 -0
  46. package/dist/runtime-Bfs-yn_-.cjs.map +1 -0
  47. package/dist/runtime-CE36Va0l.mjs +2 -0
  48. package/dist/runtime-CE36Va0l.mjs.map +1 -0
  49. package/dist/strings-CrzGdnZH.mjs +3 -0
  50. package/dist/strings-CrzGdnZH.mjs.map +1 -0
  51. package/dist/strings-_1vAPvzS.cjs +3 -0
  52. package/dist/strings-_1vAPvzS.cjs.map +1 -0
  53. package/dist/strings-jE1j-qqa.d.cts +213 -0
  54. package/dist/strings-jE1j-qqa.d.mts +213 -0
  55. package/dist/time-BrLHgSth.d.mts +68 -0
  56. package/dist/time-DmJNWZeL.mjs.map +1 -1
  57. package/dist/time-ufhllID1.d.cts +68 -0
  58. package/dist/time-yNkQSJnQ.cjs.map +1 -1
  59. package/dist/utils/arrays.cjs +1 -1
  60. package/dist/utils/arrays.d.cts +1 -1
  61. package/dist/utils/arrays.d.mts +1 -1
  62. package/dist/utils/arrays.mjs +1 -1
  63. package/dist/utils/index.cjs +1 -1
  64. package/dist/utils/index.d.cts +187 -8
  65. package/dist/utils/index.d.mts +187 -8
  66. package/dist/utils/index.mjs +1 -1
  67. package/dist/utils/mime-types.d.cts +1 -1
  68. package/dist/utils/mime-types.d.mts +1 -1
  69. package/dist/utils/numbers.cjs +1 -1
  70. package/dist/utils/numbers.d.cts +1 -1
  71. package/dist/utils/numbers.d.mts +1 -1
  72. package/dist/utils/numbers.mjs +1 -1
  73. package/dist/utils/objects.cjs +1 -1
  74. package/dist/utils/objects.d.cts +1 -1
  75. package/dist/utils/objects.d.mts +1 -1
  76. package/dist/utils/objects.mjs +1 -1
  77. package/dist/utils/random.cjs +1 -1
  78. package/dist/utils/random.d.cts +1 -1
  79. package/dist/utils/random.d.mts +1 -1
  80. package/dist/utils/random.mjs +1 -1
  81. package/dist/utils/runtime.cjs +1 -1
  82. package/dist/utils/runtime.d.cts +1 -1
  83. package/dist/utils/runtime.d.mts +1 -1
  84. package/dist/utils/runtime.mjs +1 -1
  85. package/dist/utils/strings.cjs +1 -1
  86. package/dist/utils/strings.d.cts +1 -1
  87. package/dist/utils/strings.d.mts +1 -1
  88. package/dist/utils/strings.mjs +1 -1
  89. package/dist/utils/time.d.cts +1 -1
  90. package/dist/utils/time.d.mts +1 -1
  91. package/package.json +2 -2
  92. package/dist/arrays-BkHBzTDO.mjs +0 -2
  93. package/dist/arrays-BkHBzTDO.mjs.map +0 -1
  94. package/dist/arrays-CElcW69H.d.cts +0 -43
  95. package/dist/arrays-CElcW69H.d.mts +0 -43
  96. package/dist/arrays-DaB1Xn47.cjs +0 -2
  97. package/dist/arrays-DaB1Xn47.cjs.map +0 -1
  98. package/dist/numbers-CtAqd3eH.d.cts +0 -49
  99. package/dist/numbers-CtAqd3eH.d.mts +0 -49
  100. package/dist/numbers-D2K-8sJL.mjs +0 -2
  101. package/dist/numbers-D2K-8sJL.mjs.map +0 -1
  102. package/dist/numbers-Du__2-8Y.cjs +0 -2
  103. package/dist/numbers-Du__2-8Y.cjs.map +0 -1
  104. package/dist/objects--cO_X3EV.mjs +0 -2
  105. package/dist/objects--cO_X3EV.mjs.map +0 -1
  106. package/dist/objects-CnGoVkh6.cjs +0 -2
  107. package/dist/objects-CnGoVkh6.cjs.map +0 -1
  108. package/dist/objects-cf8j7rS8.d.cts +0 -26
  109. package/dist/objects-cf8j7rS8.d.mts +0 -26
  110. package/dist/random-D1e1NTOt.cjs +0 -2
  111. package/dist/random-D1e1NTOt.cjs.map +0 -1
  112. package/dist/random-DbidGSrQ.mjs +0 -2
  113. package/dist/random-DbidGSrQ.mjs.map +0 -1
  114. package/dist/random-DpNyGGAZ.d.cts +0 -28
  115. package/dist/random-DpNyGGAZ.d.mts +0 -28
  116. package/dist/runtime-DY-8W6Jr.mjs +0 -2
  117. package/dist/runtime-DY-8W6Jr.mjs.map +0 -1
  118. package/dist/runtime-T8Kcf7Af.d.cts +0 -28
  119. package/dist/runtime-T8Kcf7Af.d.mts +0 -28
  120. package/dist/runtime-peVFcWot.cjs +0 -2
  121. package/dist/runtime-peVFcWot.cjs.map +0 -1
  122. package/dist/strings-B0BRwNX9.mjs +0 -3
  123. package/dist/strings-B0BRwNX9.mjs.map +0 -1
  124. package/dist/strings-DV446vv-.cjs +0 -3
  125. package/dist/strings-DV446vv-.cjs.map +0 -1
  126. package/dist/strings-DhPbrpq7.d.cts +0 -47
  127. package/dist/strings-DhPbrpq7.d.mts +0 -47
  128. package/dist/time-8KLG8kBO.d.cts +0 -29
  129. package/dist/time-D8Wfqzu6.d.mts +0 -29
@@ -0,0 +1,2 @@
1
+ var q=Object.defineProperty;var r=(e,t)=>q(e,"name",{value:t,configurable:!0});import{t as M}from"./strings-CrzGdnZH.mjs";const l=r((e,t)=>{const n=[];if(t<=0)throw new Error("Chunk size must be greater than 0");for(let s=0;s<e.length;s+=t)n.push(e.slice(s,t+s));return n},"chunk"),a=r(e=>[...new Set(e)],"unique"),f=r((e,t)=>{const n=new Set;return e.filter(s=>{const o=t(s);return n.has(o)?!1:(n.add(o),!0)})},"uniqueBy"),h=r(e=>e.flat(),"flatten"),i=r(e=>e.reduce((t,n)=>Array.isArray(n)?t.concat(i(n)):t.concat(n),[]),"flattenDeep"),y=r((e,t)=>{const n=new Set(t);return e.filter(s=>!n.has(s))},"difference"),p=r((e,t)=>{const n=new Set(t);return e.filter(s=>n.has(s))},"intersection"),d=r((e,t)=>a([...e,...t]),"union"),g=r(e=>{const t=[...e];for(let n=t.length-1;n>0;n--){const s=Math.floor(Math.random()*(n+1));[t[n],t[s]]=[t[s],t[n]]}return t},"shuffle"),m=r((e,t)=>{const n=[],s=[];for(const o of e)t(o)?n.push(o):s.push(o);return[n,s]},"partition"),j=r((e,t)=>e.reduce((n,s)=>{const o=t(s);return n[o]||(n[o]=[]),n[o].push(s),n},{}),"groupBy"),b=r((e,t={})=>{let n;const{maxItems:s=-1,maxLength:o=-1,emptyOutput:k="None",joinString:c=", "}=t,B=r(u=>o===-1?u:u.length>o?M(u,o):u,"withMaxLength");if(e.length===0)n=k;else if(e.length<=s||s===-1)n=e.join(c);else{const u=e.slice(0,s),I=`and ${e.length-s} more...`;n=`${u.join(c)}, ${I}`}return B(n)},"join"),A=r(e=>e.every(t=>typeof t=="string"),"isStringArray"),w=r(e=>e.every(t=>typeof t=="number"),"isNumberArray"),x=r(e=>e.every(t=>typeof t=="boolean"),"isBooleanArray"),S=r(e=>e.every(t=>typeof t=="object"&&t!==null),"isObjectArray");var O=Object.freeze({__proto__:null,chunk:l,difference:y,flatten:h,flattenDeep:i,groupBy:j,intersection:p,isBooleanArray:x,isNumberArray:w,isObjectArray:S,isStringArray:A,join:b,partition:m,shuffle:g,union:d,unique:a,uniqueBy:f});export{O as a,f as b,l as c,i as d,y as e,h as f,d as g,j as h,p as i,b as j,A as k,w as l,x as m,S as n,m as p,g as s,a as u};
2
+ //# sourceMappingURL=arrays-6DA6GfsQ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrays-6DA6GfsQ.mjs","sources":["../src/utils/arrays.ts"],"sourcesContent":["import { truncate } from './strings';\n\n/**\n * Split an array into chunks of specified size\n * @param arr - The array to chunk\n * @param size - The size of each chunk\n * @returns Array of chunks\n * @example chunk([1, 2, 3, 4, 5], 2) // [[1, 2], [3, 4], [5]]\n */\nconst chunk = <T>(arr: T[], size: number): T[][] => {\n\tconst result = [];\n\n\tif (size <= 0) {\n\t\tthrow new Error('Chunk size must be greater than 0');\n\t}\n\n\tfor (let i = 0; i < arr.length; i += size) {\n\t\tresult.push(arr.slice(i, size + i));\n\t}\n\n\treturn result;\n};\n\n/**\n * Get unique values from an array\n * @param arr - The array to filter\n * @returns Array with unique values\n * @example unique([1, 2, 2, 3, 3, 3]) // [1, 2, 3]\n */\nconst unique = <T>(arr: T[]): T[] => [...new Set(arr)];\n\n/**\n * Get unique values from an array based on a key function\n * @param arr - The array to filter\n * @param keyFn - Function to extract the unique key from each element\n * @returns Array with unique values based on key\n * @example uniqueBy([{id: 1}, {id: 2}, {id: 1}], x => x.id) // [{id: 1}, {id: 2}]\n */\nconst uniqueBy = <T, K>(arr: T[], keyFn: (item: T) => K): T[] => {\n\tconst seen = new Set<K>();\n\treturn arr.filter((item) => {\n\t\tconst key = keyFn(item);\n\t\tif (seen.has(key)) return false;\n\t\tseen.add(key);\n\t\treturn true;\n\t});\n};\n\n/**\n * Flatten an array of arrays one level deep\n * @param arr - The array to flatten\n * @returns Flattened array\n * @example flatten([[1, 2], [3, 4]]) // [1, 2, 3, 4]\n */\nconst flatten = <T>(arr: T[][]): T[] => arr.flat();\n\n/**\n * Flatten an array of arrays recursively\n * @param arr - The array to flatten\n * @returns Deeply flattened array\n * @example flattenDeep([[1, [2]], [3, [4, [5]]]]) // [1, 2, 3, 4, 5]\n */\nconst flattenDeep = (arr: unknown[]): unknown[] => {\n\treturn arr.reduce<unknown[]>((acc, val) => {\n\t\treturn Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val);\n\t}, []);\n};\n\n/**\n * Get the difference between two arrays (items in first but not in second)\n * @param arr1 - First array\n * @param arr2 - Second array\n * @returns Array of items in arr1 but not in arr2\n * @example difference([1, 2, 3], [2, 3, 4]) // [1]\n */\nconst difference = <T>(arr1: T[], arr2: T[]): T[] => {\n\tconst set2 = new Set(arr2);\n\treturn arr1.filter((item) => !set2.has(item));\n};\n\n/**\n * Get the intersection of two arrays (items common to both)\n * @param arr1 - First array\n * @param arr2 - Second array\n * @returns Array of items in both arrays\n * @example intersection([1, 2, 3], [2, 3, 4]) // [2, 3]\n */\nconst intersection = <T>(arr1: T[], arr2: T[]): T[] => {\n\tconst set2 = new Set(arr2);\n\treturn arr1.filter((item) => set2.has(item));\n};\n\n/**\n * Get the union of two arrays (all unique items from both)\n * @param arr1 - First array\n * @param arr2 - Second array\n * @returns Array of all unique items\n * @example union([1, 2], [2, 3]) // [1, 2, 3]\n */\nconst union = <T>(arr1: T[], arr2: T[]): T[] => unique([...arr1, ...arr2]);\n\n/**\n * Shuffle an array randomly\n * @param arr - The array to shuffle\n * @returns New shuffled array\n * @example shuffle([1, 2, 3, 4]) // [3, 1, 4, 2] (random order)\n */\nconst shuffle = <T>(arr: T[]): T[] => {\n\tconst result = [...arr];\n\tfor (let i = result.length - 1; i > 0; i--) {\n\t\tconst j = Math.floor(Math.random() * (i + 1));\n\t\t[result[i], result[j]] = [result[j], result[i]];\n\t}\n\treturn result;\n};\n\n/**\n * Partition an array into two arrays based on a predicate\n * @param arr - The array to partition\n * @param predicate - Function to test each element\n * @returns Tuple of [passing, failing] arrays\n * @example partition([1, 2, 3, 4], x => x % 2 === 0) // [[2, 4], [1, 3]]\n */\nconst partition = <T>(\n\tarr: T[],\n\tpredicate: (item: T) => boolean\n): [T[], T[]] => {\n\tconst pass: T[] = [];\n\tconst fail: T[] = [];\n\tfor (const item of arr) {\n\t\tif (predicate(item)) pass.push(item);\n\t\telse fail.push(item);\n\t}\n\treturn [pass, fail];\n};\n\n/**\n * Group array elements by a key function\n * @param arr - The array to group\n * @param keyFn - Function to extract the group key\n * @returns Object with keys and arrays of matching items\n * @example groupBy([{type: 'a', val: 1}, {type: 'b', val: 2}, {type: 'a', val: 3}], x => x.type)\n * // {a: [{type: 'a', val: 1}, {type: 'a', val: 3}], b: [{type: 'b', val: 2}]}\n */\nconst groupBy = <T, K extends string | number | symbol>(\n\tarr: T[],\n\tkeyFn: (item: T) => K\n): Record<K, T[]> => {\n\treturn arr.reduce(\n\t\t(acc, item) => {\n\t\t\tconst key = keyFn(item);\n\t\t\tif (!acc[key]) acc[key] = [];\n\t\t\tacc[key].push(item);\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<K, T[]>\n\t);\n};\n\n/**\n * Join array items into a string with various options\n * @param arr - The array to join\n * @param options - Join options (separator, max items, max length, etc.)\n * @returns Joined string\n */\nconst join = <T extends unknown[]>(\n\tarr: T,\n\toptions: JoinOptions = {}\n): string => {\n\tlet output: string;\n\tconst {\n\t\tmaxItems = -1,\n\t\tmaxLength = -1,\n\t\temptyOutput = 'None',\n\t\tjoinString = ', ',\n\t} = options;\n\n\tconst withMaxLength = (str: string) => {\n\t\tif (maxLength === -1) return str;\n\t\treturn str.length > maxLength ? truncate(str, maxLength) : str;\n\t};\n\n\tif (arr.length === 0) output = emptyOutput;\n\telse if (arr.length <= maxItems || maxItems === -1) {\n\t\toutput = arr.join(joinString);\n\t} else {\n\t\tconst includedItems = arr.slice(0, maxItems);\n\t\tconst excludedItemsCount = arr.length - maxItems;\n\t\tconst excludedItemsMessage = `and ${excludedItemsCount} more...`;\n\n\t\toutput = `${includedItems.join(joinString)}, ${excludedItemsMessage}`;\n\t}\n\n\treturn withMaxLength(output);\n};\n\n/**\n * Type guard to check if all items in array are strings\n * @param arr - The array to check\n * @returns True if all items are strings\n */\nconst isStringArray = (arr: unknown[]): arr is string[] =>\n\tarr.every((item) => typeof item === 'string');\n\n/**\n * Type guard to check if all items in array are numbers\n * @param arr - The array to check\n * @returns True if all items are numbers\n */\nconst isNumberArray = (arr: unknown[]): arr is number[] =>\n\tarr.every((item) => typeof item === 'number');\n\n/**\n * Type guard to check if all items in array are booleans\n * @param arr - The array to check\n * @returns True if all items are booleans\n */\nconst isBooleanArray = (arr: unknown[]): arr is boolean[] =>\n\tarr.every((item) => typeof item === 'boolean');\n\n/**\n * Type guard to check if all items in array are objects\n * @param arr - The array to check\n * @returns True if all items are objects\n */\nconst isObjectArray = (arr: unknown[]): arr is Record<string, unknown>[] =>\n\tarr.every((item) => typeof item === 'object' && item !== null);\n\ntype JoinOptions = {\n\t/**\n\t * The string to join the items with\n\t * @default ', '\n\t */\n\tjoinString?: string;\n\t/**\n\t * The maximum number of (array) items to include\n\t * @default -1\n\t */\n\tmaxItems?: number;\n\t/**\n\t * The maximum length of the joined/final string\n\t * @default -1\n\t */\n\tmaxLength?: number;\n\t/**\n\t * The string that is returned if the input array is empty\n\t * @default 'None'\n\t */\n\temptyOutput?: string;\n};\n\nexport {\n\tchunk,\n\tunique,\n\tuniqueBy,\n\tflatten,\n\tflattenDeep,\n\tdifference,\n\tintersection,\n\tunion,\n\tshuffle,\n\tpartition,\n\tgroupBy,\n\tjoin,\n\tisStringArray,\n\tisNumberArray,\n\tisBooleanArray,\n\tisObjectArray,\n\ttype JoinOptions,\n};\n"],"names":["chunk","__name","arr","size","result","i","unique","uniqueBy","keyFn","seen","item","key","flatten","flattenDeep","acc","val","difference","arr1","arr2","set2","intersection","union","shuffle","j","partition","predicate","pass","fail","groupBy","join","options","output","maxItems","maxLength","emptyOutput","joinString","withMaxLength","str","truncate","includedItems","excludedItemsMessage","isStringArray","isNumberArray","isBooleanArray","isObjectArray"],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Split an array into chunks of specified size
3
+ * @param arr - The array to chunk
4
+ * @param size - The size of each chunk
5
+ * @returns Array of chunks
6
+ * @example chunk([1, 2, 3, 4, 5], 2) // [[1, 2], [3, 4], [5]]
7
+ */
8
+ declare const chunk: <T>(arr: T[], size: number) => T[][];
9
+ /**
10
+ * Get unique values from an array
11
+ * @param arr - The array to filter
12
+ * @returns Array with unique values
13
+ * @example unique([1, 2, 2, 3, 3, 3]) // [1, 2, 3]
14
+ */
15
+ declare const unique: <T>(arr: T[]) => T[];
16
+ /**
17
+ * Get unique values from an array based on a key function
18
+ * @param arr - The array to filter
19
+ * @param keyFn - Function to extract the unique key from each element
20
+ * @returns Array with unique values based on key
21
+ * @example uniqueBy([{id: 1}, {id: 2}, {id: 1}], x => x.id) // [{id: 1}, {id: 2}]
22
+ */
23
+ declare const uniqueBy: <T, K>(arr: T[], keyFn: (item: T) => K) => T[];
24
+ /**
25
+ * Flatten an array of arrays one level deep
26
+ * @param arr - The array to flatten
27
+ * @returns Flattened array
28
+ * @example flatten([[1, 2], [3, 4]]) // [1, 2, 3, 4]
29
+ */
30
+ declare const flatten: <T>(arr: T[][]) => T[];
31
+ /**
32
+ * Flatten an array of arrays recursively
33
+ * @param arr - The array to flatten
34
+ * @returns Deeply flattened array
35
+ * @example flattenDeep([[1, [2]], [3, [4, [5]]]]) // [1, 2, 3, 4, 5]
36
+ */
37
+ declare const flattenDeep: (arr: unknown[]) => unknown[];
38
+ /**
39
+ * Get the difference between two arrays (items in first but not in second)
40
+ * @param arr1 - First array
41
+ * @param arr2 - Second array
42
+ * @returns Array of items in arr1 but not in arr2
43
+ * @example difference([1, 2, 3], [2, 3, 4]) // [1]
44
+ */
45
+ declare const difference: <T>(arr1: T[], arr2: T[]) => T[];
46
+ /**
47
+ * Get the intersection of two arrays (items common to both)
48
+ * @param arr1 - First array
49
+ * @param arr2 - Second array
50
+ * @returns Array of items in both arrays
51
+ * @example intersection([1, 2, 3], [2, 3, 4]) // [2, 3]
52
+ */
53
+ declare const intersection: <T>(arr1: T[], arr2: T[]) => T[];
54
+ /**
55
+ * Get the union of two arrays (all unique items from both)
56
+ * @param arr1 - First array
57
+ * @param arr2 - Second array
58
+ * @returns Array of all unique items
59
+ * @example union([1, 2], [2, 3]) // [1, 2, 3]
60
+ */
61
+ declare const union: <T>(arr1: T[], arr2: T[]) => T[];
62
+ /**
63
+ * Shuffle an array randomly
64
+ * @param arr - The array to shuffle
65
+ * @returns New shuffled array
66
+ * @example shuffle([1, 2, 3, 4]) // [3, 1, 4, 2] (random order)
67
+ */
68
+ declare const shuffle: <T>(arr: T[]) => T[];
69
+ /**
70
+ * Partition an array into two arrays based on a predicate
71
+ * @param arr - The array to partition
72
+ * @param predicate - Function to test each element
73
+ * @returns Tuple of [passing, failing] arrays
74
+ * @example partition([1, 2, 3, 4], x => x % 2 === 0) // [[2, 4], [1, 3]]
75
+ */
76
+ declare const partition: <T>(arr: T[], predicate: (item: T) => boolean) => [T[], T[]];
77
+ /**
78
+ * Group array elements by a key function
79
+ * @param arr - The array to group
80
+ * @param keyFn - Function to extract the group key
81
+ * @returns Object with keys and arrays of matching items
82
+ * @example groupBy([{type: 'a', val: 1}, {type: 'b', val: 2}, {type: 'a', val: 3}], x => x.type)
83
+ * // {a: [{type: 'a', val: 1}, {type: 'a', val: 3}], b: [{type: 'b', val: 2}]}
84
+ */
85
+ declare const groupBy: <T, K extends string | number | symbol>(arr: T[], keyFn: (item: T) => K) => Record<K, T[]>;
86
+ /**
87
+ * Join array items into a string with various options
88
+ * @param arr - The array to join
89
+ * @param options - Join options (separator, max items, max length, etc.)
90
+ * @returns Joined string
91
+ */
92
+ declare const join: <T extends unknown[]>(arr: T, options?: JoinOptions) => string;
93
+ /**
94
+ * Type guard to check if all items in array are strings
95
+ * @param arr - The array to check
96
+ * @returns True if all items are strings
97
+ */
98
+ declare const isStringArray: (arr: unknown[]) => arr is string[];
99
+ /**
100
+ * Type guard to check if all items in array are numbers
101
+ * @param arr - The array to check
102
+ * @returns True if all items are numbers
103
+ */
104
+ declare const isNumberArray: (arr: unknown[]) => arr is number[];
105
+ /**
106
+ * Type guard to check if all items in array are booleans
107
+ * @param arr - The array to check
108
+ * @returns True if all items are booleans
109
+ */
110
+ declare const isBooleanArray: (arr: unknown[]) => arr is boolean[];
111
+ /**
112
+ * Type guard to check if all items in array are objects
113
+ * @param arr - The array to check
114
+ * @returns True if all items are objects
115
+ */
116
+ declare const isObjectArray: (arr: unknown[]) => arr is Record<string, unknown>[];
117
+ type JoinOptions = {
118
+ /**
119
+ * The string to join the items with
120
+ * @default ', '
121
+ */
122
+ joinString?: string;
123
+ /**
124
+ * The maximum number of (array) items to include
125
+ * @default -1
126
+ */
127
+ maxItems?: number;
128
+ /**
129
+ * The maximum length of the joined/final string
130
+ * @default -1
131
+ */
132
+ maxLength?: number;
133
+ /**
134
+ * The string that is returned if the input array is empty
135
+ * @default 'None'
136
+ */
137
+ emptyOutput?: string;
138
+ };
139
+
140
+ type arrays_JoinOptions = JoinOptions;
141
+ declare const arrays_chunk: typeof chunk;
142
+ declare const arrays_difference: typeof difference;
143
+ declare const arrays_flatten: typeof flatten;
144
+ declare const arrays_flattenDeep: typeof flattenDeep;
145
+ declare const arrays_groupBy: typeof groupBy;
146
+ declare const arrays_intersection: typeof intersection;
147
+ declare const arrays_isBooleanArray: typeof isBooleanArray;
148
+ declare const arrays_isNumberArray: typeof isNumberArray;
149
+ declare const arrays_isObjectArray: typeof isObjectArray;
150
+ declare const arrays_isStringArray: typeof isStringArray;
151
+ declare const arrays_join: typeof join;
152
+ declare const arrays_partition: typeof partition;
153
+ declare const arrays_shuffle: typeof shuffle;
154
+ declare const arrays_union: typeof union;
155
+ declare const arrays_unique: typeof unique;
156
+ declare const arrays_uniqueBy: typeof uniqueBy;
157
+ declare namespace arrays {
158
+ export { arrays_chunk as chunk, arrays_difference as difference, arrays_flatten as flatten, arrays_flattenDeep as flattenDeep, arrays_groupBy as groupBy, arrays_intersection as intersection, arrays_isBooleanArray as isBooleanArray, arrays_isNumberArray as isNumberArray, arrays_isObjectArray as isObjectArray, arrays_isStringArray as isStringArray, arrays_join as join, arrays_partition as partition, arrays_shuffle as shuffle, arrays_union as union, arrays_unique as unique, arrays_uniqueBy as uniqueBy };
159
+ export type { arrays_JoinOptions as JoinOptions };
160
+ }
161
+
162
+ export { arrays as a, uniqueBy as b, chunk as c, flattenDeep as d, difference as e, flatten as f, union as g, groupBy as h, intersection as i, join as j, isStringArray as k, isNumberArray as l, isBooleanArray as m, isObjectArray as n, partition as p, shuffle as s, unique as u };
163
+ export type { JoinOptions as J };
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Split an array into chunks of specified size
3
+ * @param arr - The array to chunk
4
+ * @param size - The size of each chunk
5
+ * @returns Array of chunks
6
+ * @example chunk([1, 2, 3, 4, 5], 2) // [[1, 2], [3, 4], [5]]
7
+ */
8
+ declare const chunk: <T>(arr: T[], size: number) => T[][];
9
+ /**
10
+ * Get unique values from an array
11
+ * @param arr - The array to filter
12
+ * @returns Array with unique values
13
+ * @example unique([1, 2, 2, 3, 3, 3]) // [1, 2, 3]
14
+ */
15
+ declare const unique: <T>(arr: T[]) => T[];
16
+ /**
17
+ * Get unique values from an array based on a key function
18
+ * @param arr - The array to filter
19
+ * @param keyFn - Function to extract the unique key from each element
20
+ * @returns Array with unique values based on key
21
+ * @example uniqueBy([{id: 1}, {id: 2}, {id: 1}], x => x.id) // [{id: 1}, {id: 2}]
22
+ */
23
+ declare const uniqueBy: <T, K>(arr: T[], keyFn: (item: T) => K) => T[];
24
+ /**
25
+ * Flatten an array of arrays one level deep
26
+ * @param arr - The array to flatten
27
+ * @returns Flattened array
28
+ * @example flatten([[1, 2], [3, 4]]) // [1, 2, 3, 4]
29
+ */
30
+ declare const flatten: <T>(arr: T[][]) => T[];
31
+ /**
32
+ * Flatten an array of arrays recursively
33
+ * @param arr - The array to flatten
34
+ * @returns Deeply flattened array
35
+ * @example flattenDeep([[1, [2]], [3, [4, [5]]]]) // [1, 2, 3, 4, 5]
36
+ */
37
+ declare const flattenDeep: (arr: unknown[]) => unknown[];
38
+ /**
39
+ * Get the difference between two arrays (items in first but not in second)
40
+ * @param arr1 - First array
41
+ * @param arr2 - Second array
42
+ * @returns Array of items in arr1 but not in arr2
43
+ * @example difference([1, 2, 3], [2, 3, 4]) // [1]
44
+ */
45
+ declare const difference: <T>(arr1: T[], arr2: T[]) => T[];
46
+ /**
47
+ * Get the intersection of two arrays (items common to both)
48
+ * @param arr1 - First array
49
+ * @param arr2 - Second array
50
+ * @returns Array of items in both arrays
51
+ * @example intersection([1, 2, 3], [2, 3, 4]) // [2, 3]
52
+ */
53
+ declare const intersection: <T>(arr1: T[], arr2: T[]) => T[];
54
+ /**
55
+ * Get the union of two arrays (all unique items from both)
56
+ * @param arr1 - First array
57
+ * @param arr2 - Second array
58
+ * @returns Array of all unique items
59
+ * @example union([1, 2], [2, 3]) // [1, 2, 3]
60
+ */
61
+ declare const union: <T>(arr1: T[], arr2: T[]) => T[];
62
+ /**
63
+ * Shuffle an array randomly
64
+ * @param arr - The array to shuffle
65
+ * @returns New shuffled array
66
+ * @example shuffle([1, 2, 3, 4]) // [3, 1, 4, 2] (random order)
67
+ */
68
+ declare const shuffle: <T>(arr: T[]) => T[];
69
+ /**
70
+ * Partition an array into two arrays based on a predicate
71
+ * @param arr - The array to partition
72
+ * @param predicate - Function to test each element
73
+ * @returns Tuple of [passing, failing] arrays
74
+ * @example partition([1, 2, 3, 4], x => x % 2 === 0) // [[2, 4], [1, 3]]
75
+ */
76
+ declare const partition: <T>(arr: T[], predicate: (item: T) => boolean) => [T[], T[]];
77
+ /**
78
+ * Group array elements by a key function
79
+ * @param arr - The array to group
80
+ * @param keyFn - Function to extract the group key
81
+ * @returns Object with keys and arrays of matching items
82
+ * @example groupBy([{type: 'a', val: 1}, {type: 'b', val: 2}, {type: 'a', val: 3}], x => x.type)
83
+ * // {a: [{type: 'a', val: 1}, {type: 'a', val: 3}], b: [{type: 'b', val: 2}]}
84
+ */
85
+ declare const groupBy: <T, K extends string | number | symbol>(arr: T[], keyFn: (item: T) => K) => Record<K, T[]>;
86
+ /**
87
+ * Join array items into a string with various options
88
+ * @param arr - The array to join
89
+ * @param options - Join options (separator, max items, max length, etc.)
90
+ * @returns Joined string
91
+ */
92
+ declare const join: <T extends unknown[]>(arr: T, options?: JoinOptions) => string;
93
+ /**
94
+ * Type guard to check if all items in array are strings
95
+ * @param arr - The array to check
96
+ * @returns True if all items are strings
97
+ */
98
+ declare const isStringArray: (arr: unknown[]) => arr is string[];
99
+ /**
100
+ * Type guard to check if all items in array are numbers
101
+ * @param arr - The array to check
102
+ * @returns True if all items are numbers
103
+ */
104
+ declare const isNumberArray: (arr: unknown[]) => arr is number[];
105
+ /**
106
+ * Type guard to check if all items in array are booleans
107
+ * @param arr - The array to check
108
+ * @returns True if all items are booleans
109
+ */
110
+ declare const isBooleanArray: (arr: unknown[]) => arr is boolean[];
111
+ /**
112
+ * Type guard to check if all items in array are objects
113
+ * @param arr - The array to check
114
+ * @returns True if all items are objects
115
+ */
116
+ declare const isObjectArray: (arr: unknown[]) => arr is Record<string, unknown>[];
117
+ type JoinOptions = {
118
+ /**
119
+ * The string to join the items with
120
+ * @default ', '
121
+ */
122
+ joinString?: string;
123
+ /**
124
+ * The maximum number of (array) items to include
125
+ * @default -1
126
+ */
127
+ maxItems?: number;
128
+ /**
129
+ * The maximum length of the joined/final string
130
+ * @default -1
131
+ */
132
+ maxLength?: number;
133
+ /**
134
+ * The string that is returned if the input array is empty
135
+ * @default 'None'
136
+ */
137
+ emptyOutput?: string;
138
+ };
139
+
140
+ type arrays_JoinOptions = JoinOptions;
141
+ declare const arrays_chunk: typeof chunk;
142
+ declare const arrays_difference: typeof difference;
143
+ declare const arrays_flatten: typeof flatten;
144
+ declare const arrays_flattenDeep: typeof flattenDeep;
145
+ declare const arrays_groupBy: typeof groupBy;
146
+ declare const arrays_intersection: typeof intersection;
147
+ declare const arrays_isBooleanArray: typeof isBooleanArray;
148
+ declare const arrays_isNumberArray: typeof isNumberArray;
149
+ declare const arrays_isObjectArray: typeof isObjectArray;
150
+ declare const arrays_isStringArray: typeof isStringArray;
151
+ declare const arrays_join: typeof join;
152
+ declare const arrays_partition: typeof partition;
153
+ declare const arrays_shuffle: typeof shuffle;
154
+ declare const arrays_union: typeof union;
155
+ declare const arrays_unique: typeof unique;
156
+ declare const arrays_uniqueBy: typeof uniqueBy;
157
+ declare namespace arrays {
158
+ export { arrays_chunk as chunk, arrays_difference as difference, arrays_flatten as flatten, arrays_flattenDeep as flattenDeep, arrays_groupBy as groupBy, arrays_intersection as intersection, arrays_isBooleanArray as isBooleanArray, arrays_isNumberArray as isNumberArray, arrays_isObjectArray as isObjectArray, arrays_isStringArray as isStringArray, arrays_join as join, arrays_partition as partition, arrays_shuffle as shuffle, arrays_union as union, arrays_unique as unique, arrays_uniqueBy as uniqueBy };
159
+ export type { arrays_JoinOptions as JoinOptions };
160
+ }
161
+
162
+ export { arrays as a, uniqueBy as b, chunk as c, flattenDeep as d, difference as e, flatten as f, union as g, groupBy as h, intersection as i, join as j, isStringArray as k, isNumberArray as l, isBooleanArray as m, isObjectArray as n, partition as p, shuffle as s, unique as u };
163
+ export type { JoinOptions as J };
@@ -0,0 +1,2 @@
1
+ "use strict";var I=Object.defineProperty;var s=(e,t)=>I(e,"name",{value:t,configurable:!0});var O=require("./strings-_1vAPvzS.cjs");const l=s((e,t)=>{const n=[];if(t<=0)throw new Error("Chunk size must be greater than 0");for(let r=0;r<e.length;r+=t)n.push(e.slice(r,t+r));return n},"chunk"),i=s(e=>[...new Set(e)],"unique"),f=s((e,t)=>{const n=new Set;return e.filter(r=>{const o=t(r);return n.has(o)?!1:(n.add(o),!0)})},"uniqueBy"),y=s(e=>e.flat(),"flatten"),c=s(e=>e.reduce((t,n)=>Array.isArray(n)?t.concat(c(n)):t.concat(n),[]),"flattenDeep"),h=s((e,t)=>{const n=new Set(t);return e.filter(r=>!n.has(r))},"difference"),p=s((e,t)=>{const n=new Set(t);return e.filter(r=>n.has(r))},"intersection"),g=s((e,t)=>i([...e,...t]),"union"),d=s(e=>{const t=[...e];for(let n=t.length-1;n>0;n--){const r=Math.floor(Math.random()*(n+1));[t[n],t[r]]=[t[r],t[n]]}return t},"shuffle"),m=s((e,t)=>{const n=[],r=[];for(const o of e)t(o)?n.push(o):r.push(o);return[n,r]},"partition"),A=s((e,t)=>e.reduce((n,r)=>{const o=t(r);return n[o]||(n[o]=[]),n[o].push(r),n},{}),"groupBy"),j=s((e,t={})=>{let n;const{maxItems:r=-1,maxLength:o=-1,emptyOutput:w="None",joinString:a=", "}=t,k=s(u=>o===-1?u:u.length>o?O.truncate(u,o):u,"withMaxLength");if(e.length===0)n=w;else if(e.length<=r||r===-1)n=e.join(a);else{const u=e.slice(0,r),x=`and ${e.length-r} more...`;n=`${u.join(a)}, ${x}`}return k(n)},"join"),b=s(e=>e.every(t=>typeof t=="string"),"isStringArray"),B=s(e=>e.every(t=>typeof t=="number"),"isNumberArray"),S=s(e=>e.every(t=>typeof t=="boolean"),"isBooleanArray"),q=s(e=>e.every(t=>typeof t=="object"&&t!==null),"isObjectArray");var _=Object.freeze({__proto__:null,chunk:l,difference:h,flatten:y,flattenDeep:c,groupBy:A,intersection:p,isBooleanArray:S,isNumberArray:B,isObjectArray:q,isStringArray:b,join:j,partition:m,shuffle:d,union:g,unique:i,uniqueBy:f});exports.arrays=_,exports.chunk=l,exports.difference=h,exports.flatten=y,exports.flattenDeep=c,exports.groupBy=A,exports.intersection=p,exports.isBooleanArray=S,exports.isNumberArray=B,exports.isObjectArray=q,exports.isStringArray=b,exports.join=j,exports.partition=m,exports.shuffle=d,exports.union=g,exports.unique=i,exports.uniqueBy=f;
2
+ //# sourceMappingURL=arrays-bgbansWs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrays-bgbansWs.cjs","sources":["../src/utils/arrays.ts"],"sourcesContent":["import { truncate } from './strings';\n\n/**\n * Split an array into chunks of specified size\n * @param arr - The array to chunk\n * @param size - The size of each chunk\n * @returns Array of chunks\n * @example chunk([1, 2, 3, 4, 5], 2) // [[1, 2], [3, 4], [5]]\n */\nconst chunk = <T>(arr: T[], size: number): T[][] => {\n\tconst result = [];\n\n\tif (size <= 0) {\n\t\tthrow new Error('Chunk size must be greater than 0');\n\t}\n\n\tfor (let i = 0; i < arr.length; i += size) {\n\t\tresult.push(arr.slice(i, size + i));\n\t}\n\n\treturn result;\n};\n\n/**\n * Get unique values from an array\n * @param arr - The array to filter\n * @returns Array with unique values\n * @example unique([1, 2, 2, 3, 3, 3]) // [1, 2, 3]\n */\nconst unique = <T>(arr: T[]): T[] => [...new Set(arr)];\n\n/**\n * Get unique values from an array based on a key function\n * @param arr - The array to filter\n * @param keyFn - Function to extract the unique key from each element\n * @returns Array with unique values based on key\n * @example uniqueBy([{id: 1}, {id: 2}, {id: 1}], x => x.id) // [{id: 1}, {id: 2}]\n */\nconst uniqueBy = <T, K>(arr: T[], keyFn: (item: T) => K): T[] => {\n\tconst seen = new Set<K>();\n\treturn arr.filter((item) => {\n\t\tconst key = keyFn(item);\n\t\tif (seen.has(key)) return false;\n\t\tseen.add(key);\n\t\treturn true;\n\t});\n};\n\n/**\n * Flatten an array of arrays one level deep\n * @param arr - The array to flatten\n * @returns Flattened array\n * @example flatten([[1, 2], [3, 4]]) // [1, 2, 3, 4]\n */\nconst flatten = <T>(arr: T[][]): T[] => arr.flat();\n\n/**\n * Flatten an array of arrays recursively\n * @param arr - The array to flatten\n * @returns Deeply flattened array\n * @example flattenDeep([[1, [2]], [3, [4, [5]]]]) // [1, 2, 3, 4, 5]\n */\nconst flattenDeep = (arr: unknown[]): unknown[] => {\n\treturn arr.reduce<unknown[]>((acc, val) => {\n\t\treturn Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val);\n\t}, []);\n};\n\n/**\n * Get the difference between two arrays (items in first but not in second)\n * @param arr1 - First array\n * @param arr2 - Second array\n * @returns Array of items in arr1 but not in arr2\n * @example difference([1, 2, 3], [2, 3, 4]) // [1]\n */\nconst difference = <T>(arr1: T[], arr2: T[]): T[] => {\n\tconst set2 = new Set(arr2);\n\treturn arr1.filter((item) => !set2.has(item));\n};\n\n/**\n * Get the intersection of two arrays (items common to both)\n * @param arr1 - First array\n * @param arr2 - Second array\n * @returns Array of items in both arrays\n * @example intersection([1, 2, 3], [2, 3, 4]) // [2, 3]\n */\nconst intersection = <T>(arr1: T[], arr2: T[]): T[] => {\n\tconst set2 = new Set(arr2);\n\treturn arr1.filter((item) => set2.has(item));\n};\n\n/**\n * Get the union of two arrays (all unique items from both)\n * @param arr1 - First array\n * @param arr2 - Second array\n * @returns Array of all unique items\n * @example union([1, 2], [2, 3]) // [1, 2, 3]\n */\nconst union = <T>(arr1: T[], arr2: T[]): T[] => unique([...arr1, ...arr2]);\n\n/**\n * Shuffle an array randomly\n * @param arr - The array to shuffle\n * @returns New shuffled array\n * @example shuffle([1, 2, 3, 4]) // [3, 1, 4, 2] (random order)\n */\nconst shuffle = <T>(arr: T[]): T[] => {\n\tconst result = [...arr];\n\tfor (let i = result.length - 1; i > 0; i--) {\n\t\tconst j = Math.floor(Math.random() * (i + 1));\n\t\t[result[i], result[j]] = [result[j], result[i]];\n\t}\n\treturn result;\n};\n\n/**\n * Partition an array into two arrays based on a predicate\n * @param arr - The array to partition\n * @param predicate - Function to test each element\n * @returns Tuple of [passing, failing] arrays\n * @example partition([1, 2, 3, 4], x => x % 2 === 0) // [[2, 4], [1, 3]]\n */\nconst partition = <T>(\n\tarr: T[],\n\tpredicate: (item: T) => boolean\n): [T[], T[]] => {\n\tconst pass: T[] = [];\n\tconst fail: T[] = [];\n\tfor (const item of arr) {\n\t\tif (predicate(item)) pass.push(item);\n\t\telse fail.push(item);\n\t}\n\treturn [pass, fail];\n};\n\n/**\n * Group array elements by a key function\n * @param arr - The array to group\n * @param keyFn - Function to extract the group key\n * @returns Object with keys and arrays of matching items\n * @example groupBy([{type: 'a', val: 1}, {type: 'b', val: 2}, {type: 'a', val: 3}], x => x.type)\n * // {a: [{type: 'a', val: 1}, {type: 'a', val: 3}], b: [{type: 'b', val: 2}]}\n */\nconst groupBy = <T, K extends string | number | symbol>(\n\tarr: T[],\n\tkeyFn: (item: T) => K\n): Record<K, T[]> => {\n\treturn arr.reduce(\n\t\t(acc, item) => {\n\t\t\tconst key = keyFn(item);\n\t\t\tif (!acc[key]) acc[key] = [];\n\t\t\tacc[key].push(item);\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<K, T[]>\n\t);\n};\n\n/**\n * Join array items into a string with various options\n * @param arr - The array to join\n * @param options - Join options (separator, max items, max length, etc.)\n * @returns Joined string\n */\nconst join = <T extends unknown[]>(\n\tarr: T,\n\toptions: JoinOptions = {}\n): string => {\n\tlet output: string;\n\tconst {\n\t\tmaxItems = -1,\n\t\tmaxLength = -1,\n\t\temptyOutput = 'None',\n\t\tjoinString = ', ',\n\t} = options;\n\n\tconst withMaxLength = (str: string) => {\n\t\tif (maxLength === -1) return str;\n\t\treturn str.length > maxLength ? truncate(str, maxLength) : str;\n\t};\n\n\tif (arr.length === 0) output = emptyOutput;\n\telse if (arr.length <= maxItems || maxItems === -1) {\n\t\toutput = arr.join(joinString);\n\t} else {\n\t\tconst includedItems = arr.slice(0, maxItems);\n\t\tconst excludedItemsCount = arr.length - maxItems;\n\t\tconst excludedItemsMessage = `and ${excludedItemsCount} more...`;\n\n\t\toutput = `${includedItems.join(joinString)}, ${excludedItemsMessage}`;\n\t}\n\n\treturn withMaxLength(output);\n};\n\n/**\n * Type guard to check if all items in array are strings\n * @param arr - The array to check\n * @returns True if all items are strings\n */\nconst isStringArray = (arr: unknown[]): arr is string[] =>\n\tarr.every((item) => typeof item === 'string');\n\n/**\n * Type guard to check if all items in array are numbers\n * @param arr - The array to check\n * @returns True if all items are numbers\n */\nconst isNumberArray = (arr: unknown[]): arr is number[] =>\n\tarr.every((item) => typeof item === 'number');\n\n/**\n * Type guard to check if all items in array are booleans\n * @param arr - The array to check\n * @returns True if all items are booleans\n */\nconst isBooleanArray = (arr: unknown[]): arr is boolean[] =>\n\tarr.every((item) => typeof item === 'boolean');\n\n/**\n * Type guard to check if all items in array are objects\n * @param arr - The array to check\n * @returns True if all items are objects\n */\nconst isObjectArray = (arr: unknown[]): arr is Record<string, unknown>[] =>\n\tarr.every((item) => typeof item === 'object' && item !== null);\n\ntype JoinOptions = {\n\t/**\n\t * The string to join the items with\n\t * @default ', '\n\t */\n\tjoinString?: string;\n\t/**\n\t * The maximum number of (array) items to include\n\t * @default -1\n\t */\n\tmaxItems?: number;\n\t/**\n\t * The maximum length of the joined/final string\n\t * @default -1\n\t */\n\tmaxLength?: number;\n\t/**\n\t * The string that is returned if the input array is empty\n\t * @default 'None'\n\t */\n\temptyOutput?: string;\n};\n\nexport {\n\tchunk,\n\tunique,\n\tuniqueBy,\n\tflatten,\n\tflattenDeep,\n\tdifference,\n\tintersection,\n\tunion,\n\tshuffle,\n\tpartition,\n\tgroupBy,\n\tjoin,\n\tisStringArray,\n\tisNumberArray,\n\tisBooleanArray,\n\tisObjectArray,\n\ttype JoinOptions,\n};\n"],"names":["chunk","__name","arr","size","result","i","unique","uniqueBy","keyFn","seen","item","key","flatten","flattenDeep","acc","val","difference","arr1","arr2","set2","intersection","union","shuffle","j","partition","predicate","pass","fail","groupBy","join","options","output","maxItems","maxLength","emptyOutput","joinString","withMaxLength","str","truncate","includedItems","excludedItemsMessage","isStringArray","isNumberArray","isBooleanArray","isObjectArray"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var T=(E=>(E[E.BYTE=1]="BYTE",E[E.KILOBYTE=1024]="KILOBYTE",E[E.MEGABYTE=1048576]="MEGABYTE",E[E.GIGABYTE=1073741824]="GIGABYTE",E[E.TERABYTE=1099511627776]="TERABYTE",E[E.BYTES_PER_KILOBYTE=1024]="BYTES_PER_KILOBYTE",E[E.BYTES_PER_MEGABYTE=1048576]="BYTES_PER_MEGABYTE",E[E.BYTES_PER_GIGABYTE=1073741824]="BYTES_PER_GIGABYTE",E[E.BYTES_PER_TERABYTE=1099511627776]="BYTES_PER_TERABYTE",E[E.KILOBYTES_PER_MEGABYTE=1024]="KILOBYTES_PER_MEGABYTE",E[E.KILOBYTES_PER_GIGABYTE=1048576]="KILOBYTES_PER_GIGABYTE",E[E.KILOBYTES_PER_TERABYTE=1073741824]="KILOBYTES_PER_TERABYTE",E[E.MEGABYTES_PER_GIGABYTE=1024]="MEGABYTES_PER_GIGABYTE",E[E.MEGABYTES_PER_TERABYTE=1048576]="MEGABYTES_PER_TERABYTE",E[E.GIGABYTES_PER_TERABYTE=1024]="GIGABYTES_PER_TERABYTE",E))(T||{});exports.ByteMagic=T;
1
+ "use strict";var T=(E=>(E[E.BYTE=1]="BYTE",E[E.KILOBYTE=1024]="KILOBYTE",E[E.MEGABYTE=1048576]="MEGABYTE",E[E.GIGABYTE=1073741824]="GIGABYTE",E[E.TERABYTE=1099511627776]="TERABYTE",E[E.PETABYTE=0x4000000000000]="PETABYTE",E[E.EXABYTE=1152921504606847e3]="EXABYTE",E[E.ZETTABYTE=11805916207174113e5]="ZETTABYTE",E[E.YOTTABYTE=12089258196146292e8]="YOTTABYTE",E[E.BYTES_PER_KILOBYTE=1024]="BYTES_PER_KILOBYTE",E[E.BYTES_PER_MEGABYTE=1048576]="BYTES_PER_MEGABYTE",E[E.BYTES_PER_GIGABYTE=1073741824]="BYTES_PER_GIGABYTE",E[E.BYTES_PER_TERABYTE=1099511627776]="BYTES_PER_TERABYTE",E[E.BYTES_PER_PETABYTE=0x4000000000000]="BYTES_PER_PETABYTE",E[E.BYTES_PER_EXABYTE=1152921504606847e3]="BYTES_PER_EXABYTE",E[E.BYTES_PER_ZETTABYTE=11805916207174113e5]="BYTES_PER_ZETTABYTE",E[E.BYTES_PER_YOTTABYTE=12089258196146292e8]="BYTES_PER_YOTTABYTE",E[E.KILOBYTES_PER_MEGABYTE=1024]="KILOBYTES_PER_MEGABYTE",E[E.KILOBYTES_PER_GIGABYTE=1048576]="KILOBYTES_PER_GIGABYTE",E[E.KILOBYTES_PER_TERABYTE=1073741824]="KILOBYTES_PER_TERABYTE",E[E.KILOBYTES_PER_PETABYTE=1099511627776]="KILOBYTES_PER_PETABYTE",E[E.KILOBYTES_PER_EXABYTE=0x4000000000000]="KILOBYTES_PER_EXABYTE",E[E.KILOBYTES_PER_ZETTABYTE=1152921504606847e3]="KILOBYTES_PER_ZETTABYTE",E[E.KILOBYTES_PER_YOTTABYTE=11805916207174113e5]="KILOBYTES_PER_YOTTABYTE",E[E.MEGABYTES_PER_GIGABYTE=1024]="MEGABYTES_PER_GIGABYTE",E[E.MEGABYTES_PER_TERABYTE=1048576]="MEGABYTES_PER_TERABYTE",E[E.MEGABYTES_PER_PETABYTE=1073741824]="MEGABYTES_PER_PETABYTE",E[E.MEGABYTES_PER_EXABYTE=1099511627776]="MEGABYTES_PER_EXABYTE",E[E.MEGABYTES_PER_ZETTABYTE=0x4000000000000]="MEGABYTES_PER_ZETTABYTE",E[E.MEGABYTES_PER_YOTTABYTE=1152921504606847e3]="MEGABYTES_PER_YOTTABYTE",E[E.GIGABYTES_PER_TERABYTE=1024]="GIGABYTES_PER_TERABYTE",E[E.GIGABYTES_PER_PETABYTE=1048576]="GIGABYTES_PER_PETABYTE",E[E.GIGABYTES_PER_EXABYTE=1073741824]="GIGABYTES_PER_EXABYTE",E[E.GIGABYTES_PER_ZETTABYTE=1099511627776]="GIGABYTES_PER_ZETTABYTE",E[E.GIGABYTES_PER_YOTTABYTE=0x4000000000000]="GIGABYTES_PER_YOTTABYTE",E[E.TERABYTES_PER_PETABYTE=1024]="TERABYTES_PER_PETABYTE",E[E.TERABYTES_PER_EXABYTE=1048576]="TERABYTES_PER_EXABYTE",E[E.TERABYTES_PER_ZETTABYTE=1073741824]="TERABYTES_PER_ZETTABYTE",E[E.TERABYTES_PER_YOTTABYTE=1099511627776]="TERABYTES_PER_YOTTABYTE",E[E.PETABYTES_PER_EXABYTE=1024]="PETABYTES_PER_EXABYTE",E[E.PETABYTES_PER_ZETTABYTE=1048576]="PETABYTES_PER_ZETTABYTE",E[E.PETABYTES_PER_YOTTABYTE=1073741824]="PETABYTES_PER_YOTTABYTE",E[E.EXABYTES_PER_ZETTABYTE=1024]="EXABYTES_PER_ZETTABYTE",E[E.EXABYTES_PER_YOTTABYTE=1048576]="EXABYTES_PER_YOTTABYTE",E[E.ZETTABYTES_PER_YOTTABYTE=1024]="ZETTABYTES_PER_YOTTABYTE",E))(T||{});exports.ByteMagic=T;
2
2
  //# sourceMappingURL=bytes.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"bytes.cjs","sources":["../../src/constants/bytes.ts"],"sourcesContent":["export enum ByteMagic {\n\tBYTE = 1,\n\tKILOBYTE = 1024,\n\tMEGABYTE = 1024 * 1024,\n\tGIGABYTE = 1024 * 1024 * 1024,\n\tTERABYTE = 1024 * 1024 * 1024 * 1024,\n\n\tBYTES_PER_KILOBYTE = 1024,\n\tBYTES_PER_MEGABYTE = 1024 * 1024,\n\tBYTES_PER_GIGABYTE = 1024 * 1024 * 1024,\n\tBYTES_PER_TERABYTE = 1024 * 1024 * 1024 * 1024,\n\n\tKILOBYTES_PER_MEGABYTE = 1024,\n\tKILOBYTES_PER_GIGABYTE = 1024 * 1024,\n\tKILOBYTES_PER_TERABYTE = 1024 * 1024 * 1024,\n\n\tMEGABYTES_PER_GIGABYTE = 1024,\n\tMEGABYTES_PER_TERABYTE = 1024 * 1024,\n\n\tGIGABYTES_PER_TERABYTE = 1024,\n}\n"],"names":["ByteMagic"],"mappings":"aAAO,IAAKA,GAAAA,IACXA,EAAAA,EAAA,KAAO,CAAA,EAAP,OACAA,EAAAA,EAAA,SAAW,IAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,OAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,UAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,aAAA,EAAX,WAEAA,EAAAA,EAAA,mBAAqB,IAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,OAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,UAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,aAAA,EAArB,qBAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,OAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,UAAA,EAAzB,yBAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,OAAA,EAAzB,yBAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBAnBWA,IAAAA,GAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"bytes.cjs","sources":["../../src/constants/bytes.ts"],"sourcesContent":["export enum ByteMagic {\n\tBYTE = 1,\n\tKILOBYTE = 1024,\n\tMEGABYTE = 1024 ** 2,\n\tGIGABYTE = 1024 ** 3,\n\tTERABYTE = 1024 ** 4,\n\tPETABYTE = 1024 ** 5,\n\tEXABYTE = 1024 ** 6,\n\tZETTABYTE = 1024 ** 7,\n\tYOTTABYTE = 1024 ** 8,\n\n\tBYTES_PER_KILOBYTE = 1024,\n\tBYTES_PER_MEGABYTE = 1024 ** 2,\n\tBYTES_PER_GIGABYTE = 1024 ** 3,\n\tBYTES_PER_TERABYTE = 1024 ** 4,\n\tBYTES_PER_PETABYTE = 1024 ** 5,\n\tBYTES_PER_EXABYTE = 1024 ** 6,\n\tBYTES_PER_ZETTABYTE = 1024 ** 7,\n\tBYTES_PER_YOTTABYTE = 1024 ** 8,\n\n\tKILOBYTES_PER_MEGABYTE = 1024,\n\tKILOBYTES_PER_GIGABYTE = 1024 ** 2,\n\tKILOBYTES_PER_TERABYTE = 1024 ** 3,\n\tKILOBYTES_PER_PETABYTE = 1024 ** 4,\n\tKILOBYTES_PER_EXABYTE = 1024 ** 5,\n\tKILOBYTES_PER_ZETTABYTE = 1024 ** 6,\n\tKILOBYTES_PER_YOTTABYTE = 1024 ** 7,\n\n\tMEGABYTES_PER_GIGABYTE = 1024,\n\tMEGABYTES_PER_TERABYTE = 1024 ** 2,\n\tMEGABYTES_PER_PETABYTE = 1024 ** 3,\n\tMEGABYTES_PER_EXABYTE = 1024 ** 4,\n\tMEGABYTES_PER_ZETTABYTE = 1024 ** 5,\n\tMEGABYTES_PER_YOTTABYTE = 1024 ** 6,\n\n\tGIGABYTES_PER_TERABYTE = 1024,\n\tGIGABYTES_PER_PETABYTE = 1024 ** 2,\n\tGIGABYTES_PER_EXABYTE = 1024 ** 3,\n\tGIGABYTES_PER_ZETTABYTE = 1024 ** 4,\n\tGIGABYTES_PER_YOTTABYTE = 1024 ** 5,\n\n\tTERABYTES_PER_PETABYTE = 1024,\n\tTERABYTES_PER_EXABYTE = 1024 ** 2,\n\tTERABYTES_PER_ZETTABYTE = 1024 ** 3,\n\tTERABYTES_PER_YOTTABYTE = 1024 ** 4,\n\n\tPETABYTES_PER_EXABYTE = 1024,\n\tPETABYTES_PER_ZETTABYTE = 1024 ** 2,\n\tPETABYTES_PER_YOTTABYTE = 1024 ** 3,\n\n\tEXABYTES_PER_ZETTABYTE = 1024,\n\tEXABYTES_PER_YOTTABYTE = 1024 ** 2,\n\n\tZETTABYTES_PER_YOTTABYTE = 1024,\n}\n"],"names":["ByteMagic"],"mappings":"aAAO,IAAKA,GAAAA,IACXA,EAAAA,EAAA,KAAO,CAAA,EAAP,OACAA,EAAAA,EAAA,SAAW,IAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,OAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,UAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,aAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,eAAA,EAAX,WACAA,EAAAA,EAAA,QAAU,kBAAA,EAAV,UACAA,EAAAA,EAAA,UAAY,mBAAA,EAAZ,YACAA,EAAAA,EAAA,UAAY,mBAAA,EAAZ,YAEAA,EAAAA,EAAA,mBAAqB,IAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,OAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,UAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,aAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,eAAA,EAArB,qBACAA,EAAAA,EAAA,kBAAoB,kBAAA,EAApB,oBACAA,EAAAA,EAAA,oBAAsB,mBAAA,EAAtB,sBACAA,EAAAA,EAAA,oBAAsB,mBAAA,EAAtB,sBAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,OAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,UAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,aAAA,EAAzB,yBACAA,EAAAA,EAAA,sBAAwB,eAAA,EAAxB,wBACAA,EAAAA,EAAA,wBAA0B,kBAAA,EAA1B,0BACAA,EAAAA,EAAA,wBAA0B,mBAAA,EAA1B,0BAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,OAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,UAAA,EAAzB,yBACAA,EAAAA,EAAA,sBAAwB,aAAA,EAAxB,wBACAA,EAAAA,EAAA,wBAA0B,eAAA,EAA1B,0BACAA,EAAAA,EAAA,wBAA0B,kBAAA,EAA1B,0BAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,OAAA,EAAzB,yBACAA,EAAAA,EAAA,sBAAwB,UAAA,EAAxB,wBACAA,EAAAA,EAAA,wBAA0B,aAAA,EAA1B,0BACAA,EAAAA,EAAA,wBAA0B,eAAA,EAA1B,0BAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,sBAAwB,OAAA,EAAxB,wBACAA,EAAAA,EAAA,wBAA0B,UAAA,EAA1B,0BACAA,EAAAA,EAAA,wBAA0B,aAAA,EAA1B,0BAEAA,EAAAA,EAAA,sBAAwB,IAAA,EAAxB,wBACAA,EAAAA,EAAA,wBAA0B,OAAA,EAA1B,0BACAA,EAAAA,EAAA,wBAA0B,UAAA,EAA1B,0BAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,OAAA,EAAzB,yBAEAA,EAAAA,EAAA,yBAA2B,IAAA,EAA3B,2BArDWA,IAAAA,GAAA,CAAA,CAAA"}
@@ -4,16 +4,46 @@ declare enum ByteMagic {
4
4
  MEGABYTE = 1048576,
5
5
  GIGABYTE = 1073741824,
6
6
  TERABYTE = 1099511627776,
7
+ PETABYTE = 1125899906842624,
8
+ EXABYTE = 1152921504606847000,
9
+ ZETTABYTE = 1.1805916207174113e+21,
10
+ YOTTABYTE = 1.2089258196146292e+24,
7
11
  BYTES_PER_KILOBYTE = 1024,
8
12
  BYTES_PER_MEGABYTE = 1048576,
9
13
  BYTES_PER_GIGABYTE = 1073741824,
10
14
  BYTES_PER_TERABYTE = 1099511627776,
15
+ BYTES_PER_PETABYTE = 1125899906842624,
16
+ BYTES_PER_EXABYTE = 1152921504606847000,
17
+ BYTES_PER_ZETTABYTE = 1.1805916207174113e+21,
18
+ BYTES_PER_YOTTABYTE = 1.2089258196146292e+24,
11
19
  KILOBYTES_PER_MEGABYTE = 1024,
12
20
  KILOBYTES_PER_GIGABYTE = 1048576,
13
21
  KILOBYTES_PER_TERABYTE = 1073741824,
22
+ KILOBYTES_PER_PETABYTE = 1099511627776,
23
+ KILOBYTES_PER_EXABYTE = 1125899906842624,
24
+ KILOBYTES_PER_ZETTABYTE = 1152921504606847000,
25
+ KILOBYTES_PER_YOTTABYTE = 1.1805916207174113e+21,
14
26
  MEGABYTES_PER_GIGABYTE = 1024,
15
27
  MEGABYTES_PER_TERABYTE = 1048576,
16
- GIGABYTES_PER_TERABYTE = 1024
28
+ MEGABYTES_PER_PETABYTE = 1073741824,
29
+ MEGABYTES_PER_EXABYTE = 1099511627776,
30
+ MEGABYTES_PER_ZETTABYTE = 1125899906842624,
31
+ MEGABYTES_PER_YOTTABYTE = 1152921504606847000,
32
+ GIGABYTES_PER_TERABYTE = 1024,
33
+ GIGABYTES_PER_PETABYTE = 1048576,
34
+ GIGABYTES_PER_EXABYTE = 1073741824,
35
+ GIGABYTES_PER_ZETTABYTE = 1099511627776,
36
+ GIGABYTES_PER_YOTTABYTE = 1125899906842624,
37
+ TERABYTES_PER_PETABYTE = 1024,
38
+ TERABYTES_PER_EXABYTE = 1048576,
39
+ TERABYTES_PER_ZETTABYTE = 1073741824,
40
+ TERABYTES_PER_YOTTABYTE = 1099511627776,
41
+ PETABYTES_PER_EXABYTE = 1024,
42
+ PETABYTES_PER_ZETTABYTE = 1048576,
43
+ PETABYTES_PER_YOTTABYTE = 1073741824,
44
+ EXABYTES_PER_ZETTABYTE = 1024,
45
+ EXABYTES_PER_YOTTABYTE = 1048576,
46
+ ZETTABYTES_PER_YOTTABYTE = 1024
17
47
  }
18
48
 
19
49
  export { ByteMagic };
@@ -4,16 +4,46 @@ declare enum ByteMagic {
4
4
  MEGABYTE = 1048576,
5
5
  GIGABYTE = 1073741824,
6
6
  TERABYTE = 1099511627776,
7
+ PETABYTE = 1125899906842624,
8
+ EXABYTE = 1152921504606847000,
9
+ ZETTABYTE = 1.1805916207174113e+21,
10
+ YOTTABYTE = 1.2089258196146292e+24,
7
11
  BYTES_PER_KILOBYTE = 1024,
8
12
  BYTES_PER_MEGABYTE = 1048576,
9
13
  BYTES_PER_GIGABYTE = 1073741824,
10
14
  BYTES_PER_TERABYTE = 1099511627776,
15
+ BYTES_PER_PETABYTE = 1125899906842624,
16
+ BYTES_PER_EXABYTE = 1152921504606847000,
17
+ BYTES_PER_ZETTABYTE = 1.1805916207174113e+21,
18
+ BYTES_PER_YOTTABYTE = 1.2089258196146292e+24,
11
19
  KILOBYTES_PER_MEGABYTE = 1024,
12
20
  KILOBYTES_PER_GIGABYTE = 1048576,
13
21
  KILOBYTES_PER_TERABYTE = 1073741824,
22
+ KILOBYTES_PER_PETABYTE = 1099511627776,
23
+ KILOBYTES_PER_EXABYTE = 1125899906842624,
24
+ KILOBYTES_PER_ZETTABYTE = 1152921504606847000,
25
+ KILOBYTES_PER_YOTTABYTE = 1.1805916207174113e+21,
14
26
  MEGABYTES_PER_GIGABYTE = 1024,
15
27
  MEGABYTES_PER_TERABYTE = 1048576,
16
- GIGABYTES_PER_TERABYTE = 1024
28
+ MEGABYTES_PER_PETABYTE = 1073741824,
29
+ MEGABYTES_PER_EXABYTE = 1099511627776,
30
+ MEGABYTES_PER_ZETTABYTE = 1125899906842624,
31
+ MEGABYTES_PER_YOTTABYTE = 1152921504606847000,
32
+ GIGABYTES_PER_TERABYTE = 1024,
33
+ GIGABYTES_PER_PETABYTE = 1048576,
34
+ GIGABYTES_PER_EXABYTE = 1073741824,
35
+ GIGABYTES_PER_ZETTABYTE = 1099511627776,
36
+ GIGABYTES_PER_YOTTABYTE = 1125899906842624,
37
+ TERABYTES_PER_PETABYTE = 1024,
38
+ TERABYTES_PER_EXABYTE = 1048576,
39
+ TERABYTES_PER_ZETTABYTE = 1073741824,
40
+ TERABYTES_PER_YOTTABYTE = 1099511627776,
41
+ PETABYTES_PER_EXABYTE = 1024,
42
+ PETABYTES_PER_ZETTABYTE = 1048576,
43
+ PETABYTES_PER_YOTTABYTE = 1073741824,
44
+ EXABYTES_PER_ZETTABYTE = 1024,
45
+ EXABYTES_PER_YOTTABYTE = 1048576,
46
+ ZETTABYTES_PER_YOTTABYTE = 1024
17
47
  }
18
48
 
19
49
  export { ByteMagic };
@@ -1,2 +1,2 @@
1
- var T=(E=>(E[E.BYTE=1]="BYTE",E[E.KILOBYTE=1024]="KILOBYTE",E[E.MEGABYTE=1048576]="MEGABYTE",E[E.GIGABYTE=1073741824]="GIGABYTE",E[E.TERABYTE=1099511627776]="TERABYTE",E[E.BYTES_PER_KILOBYTE=1024]="BYTES_PER_KILOBYTE",E[E.BYTES_PER_MEGABYTE=1048576]="BYTES_PER_MEGABYTE",E[E.BYTES_PER_GIGABYTE=1073741824]="BYTES_PER_GIGABYTE",E[E.BYTES_PER_TERABYTE=1099511627776]="BYTES_PER_TERABYTE",E[E.KILOBYTES_PER_MEGABYTE=1024]="KILOBYTES_PER_MEGABYTE",E[E.KILOBYTES_PER_GIGABYTE=1048576]="KILOBYTES_PER_GIGABYTE",E[E.KILOBYTES_PER_TERABYTE=1073741824]="KILOBYTES_PER_TERABYTE",E[E.MEGABYTES_PER_GIGABYTE=1024]="MEGABYTES_PER_GIGABYTE",E[E.MEGABYTES_PER_TERABYTE=1048576]="MEGABYTES_PER_TERABYTE",E[E.GIGABYTES_PER_TERABYTE=1024]="GIGABYTES_PER_TERABYTE",E))(T||{});export{T as ByteMagic};
1
+ var T=(E=>(E[E.BYTE=1]="BYTE",E[E.KILOBYTE=1024]="KILOBYTE",E[E.MEGABYTE=1048576]="MEGABYTE",E[E.GIGABYTE=1073741824]="GIGABYTE",E[E.TERABYTE=1099511627776]="TERABYTE",E[E.PETABYTE=0x4000000000000]="PETABYTE",E[E.EXABYTE=1152921504606847e3]="EXABYTE",E[E.ZETTABYTE=11805916207174113e5]="ZETTABYTE",E[E.YOTTABYTE=12089258196146292e8]="YOTTABYTE",E[E.BYTES_PER_KILOBYTE=1024]="BYTES_PER_KILOBYTE",E[E.BYTES_PER_MEGABYTE=1048576]="BYTES_PER_MEGABYTE",E[E.BYTES_PER_GIGABYTE=1073741824]="BYTES_PER_GIGABYTE",E[E.BYTES_PER_TERABYTE=1099511627776]="BYTES_PER_TERABYTE",E[E.BYTES_PER_PETABYTE=0x4000000000000]="BYTES_PER_PETABYTE",E[E.BYTES_PER_EXABYTE=1152921504606847e3]="BYTES_PER_EXABYTE",E[E.BYTES_PER_ZETTABYTE=11805916207174113e5]="BYTES_PER_ZETTABYTE",E[E.BYTES_PER_YOTTABYTE=12089258196146292e8]="BYTES_PER_YOTTABYTE",E[E.KILOBYTES_PER_MEGABYTE=1024]="KILOBYTES_PER_MEGABYTE",E[E.KILOBYTES_PER_GIGABYTE=1048576]="KILOBYTES_PER_GIGABYTE",E[E.KILOBYTES_PER_TERABYTE=1073741824]="KILOBYTES_PER_TERABYTE",E[E.KILOBYTES_PER_PETABYTE=1099511627776]="KILOBYTES_PER_PETABYTE",E[E.KILOBYTES_PER_EXABYTE=0x4000000000000]="KILOBYTES_PER_EXABYTE",E[E.KILOBYTES_PER_ZETTABYTE=1152921504606847e3]="KILOBYTES_PER_ZETTABYTE",E[E.KILOBYTES_PER_YOTTABYTE=11805916207174113e5]="KILOBYTES_PER_YOTTABYTE",E[E.MEGABYTES_PER_GIGABYTE=1024]="MEGABYTES_PER_GIGABYTE",E[E.MEGABYTES_PER_TERABYTE=1048576]="MEGABYTES_PER_TERABYTE",E[E.MEGABYTES_PER_PETABYTE=1073741824]="MEGABYTES_PER_PETABYTE",E[E.MEGABYTES_PER_EXABYTE=1099511627776]="MEGABYTES_PER_EXABYTE",E[E.MEGABYTES_PER_ZETTABYTE=0x4000000000000]="MEGABYTES_PER_ZETTABYTE",E[E.MEGABYTES_PER_YOTTABYTE=1152921504606847e3]="MEGABYTES_PER_YOTTABYTE",E[E.GIGABYTES_PER_TERABYTE=1024]="GIGABYTES_PER_TERABYTE",E[E.GIGABYTES_PER_PETABYTE=1048576]="GIGABYTES_PER_PETABYTE",E[E.GIGABYTES_PER_EXABYTE=1073741824]="GIGABYTES_PER_EXABYTE",E[E.GIGABYTES_PER_ZETTABYTE=1099511627776]="GIGABYTES_PER_ZETTABYTE",E[E.GIGABYTES_PER_YOTTABYTE=0x4000000000000]="GIGABYTES_PER_YOTTABYTE",E[E.TERABYTES_PER_PETABYTE=1024]="TERABYTES_PER_PETABYTE",E[E.TERABYTES_PER_EXABYTE=1048576]="TERABYTES_PER_EXABYTE",E[E.TERABYTES_PER_ZETTABYTE=1073741824]="TERABYTES_PER_ZETTABYTE",E[E.TERABYTES_PER_YOTTABYTE=1099511627776]="TERABYTES_PER_YOTTABYTE",E[E.PETABYTES_PER_EXABYTE=1024]="PETABYTES_PER_EXABYTE",E[E.PETABYTES_PER_ZETTABYTE=1048576]="PETABYTES_PER_ZETTABYTE",E[E.PETABYTES_PER_YOTTABYTE=1073741824]="PETABYTES_PER_YOTTABYTE",E[E.EXABYTES_PER_ZETTABYTE=1024]="EXABYTES_PER_ZETTABYTE",E[E.EXABYTES_PER_YOTTABYTE=1048576]="EXABYTES_PER_YOTTABYTE",E[E.ZETTABYTES_PER_YOTTABYTE=1024]="ZETTABYTES_PER_YOTTABYTE",E))(T||{});export{T as ByteMagic};
2
2
  //# sourceMappingURL=bytes.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"bytes.mjs","sources":["../../src/constants/bytes.ts"],"sourcesContent":["export enum ByteMagic {\n\tBYTE = 1,\n\tKILOBYTE = 1024,\n\tMEGABYTE = 1024 * 1024,\n\tGIGABYTE = 1024 * 1024 * 1024,\n\tTERABYTE = 1024 * 1024 * 1024 * 1024,\n\n\tBYTES_PER_KILOBYTE = 1024,\n\tBYTES_PER_MEGABYTE = 1024 * 1024,\n\tBYTES_PER_GIGABYTE = 1024 * 1024 * 1024,\n\tBYTES_PER_TERABYTE = 1024 * 1024 * 1024 * 1024,\n\n\tKILOBYTES_PER_MEGABYTE = 1024,\n\tKILOBYTES_PER_GIGABYTE = 1024 * 1024,\n\tKILOBYTES_PER_TERABYTE = 1024 * 1024 * 1024,\n\n\tMEGABYTES_PER_GIGABYTE = 1024,\n\tMEGABYTES_PER_TERABYTE = 1024 * 1024,\n\n\tGIGABYTES_PER_TERABYTE = 1024,\n}\n"],"names":["ByteMagic"],"mappings":"AAAO,IAAKA,GAAAA,IACXA,EAAAA,EAAA,KAAO,CAAA,EAAP,OACAA,EAAAA,EAAA,SAAW,IAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,OAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,UAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,aAAA,EAAX,WAEAA,EAAAA,EAAA,mBAAqB,IAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,OAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,UAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,aAAA,EAArB,qBAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,OAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,UAAA,EAAzB,yBAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,OAAA,EAAzB,yBAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBAnBWA,IAAAA,GAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"bytes.mjs","sources":["../../src/constants/bytes.ts"],"sourcesContent":["export enum ByteMagic {\n\tBYTE = 1,\n\tKILOBYTE = 1024,\n\tMEGABYTE = 1024 ** 2,\n\tGIGABYTE = 1024 ** 3,\n\tTERABYTE = 1024 ** 4,\n\tPETABYTE = 1024 ** 5,\n\tEXABYTE = 1024 ** 6,\n\tZETTABYTE = 1024 ** 7,\n\tYOTTABYTE = 1024 ** 8,\n\n\tBYTES_PER_KILOBYTE = 1024,\n\tBYTES_PER_MEGABYTE = 1024 ** 2,\n\tBYTES_PER_GIGABYTE = 1024 ** 3,\n\tBYTES_PER_TERABYTE = 1024 ** 4,\n\tBYTES_PER_PETABYTE = 1024 ** 5,\n\tBYTES_PER_EXABYTE = 1024 ** 6,\n\tBYTES_PER_ZETTABYTE = 1024 ** 7,\n\tBYTES_PER_YOTTABYTE = 1024 ** 8,\n\n\tKILOBYTES_PER_MEGABYTE = 1024,\n\tKILOBYTES_PER_GIGABYTE = 1024 ** 2,\n\tKILOBYTES_PER_TERABYTE = 1024 ** 3,\n\tKILOBYTES_PER_PETABYTE = 1024 ** 4,\n\tKILOBYTES_PER_EXABYTE = 1024 ** 5,\n\tKILOBYTES_PER_ZETTABYTE = 1024 ** 6,\n\tKILOBYTES_PER_YOTTABYTE = 1024 ** 7,\n\n\tMEGABYTES_PER_GIGABYTE = 1024,\n\tMEGABYTES_PER_TERABYTE = 1024 ** 2,\n\tMEGABYTES_PER_PETABYTE = 1024 ** 3,\n\tMEGABYTES_PER_EXABYTE = 1024 ** 4,\n\tMEGABYTES_PER_ZETTABYTE = 1024 ** 5,\n\tMEGABYTES_PER_YOTTABYTE = 1024 ** 6,\n\n\tGIGABYTES_PER_TERABYTE = 1024,\n\tGIGABYTES_PER_PETABYTE = 1024 ** 2,\n\tGIGABYTES_PER_EXABYTE = 1024 ** 3,\n\tGIGABYTES_PER_ZETTABYTE = 1024 ** 4,\n\tGIGABYTES_PER_YOTTABYTE = 1024 ** 5,\n\n\tTERABYTES_PER_PETABYTE = 1024,\n\tTERABYTES_PER_EXABYTE = 1024 ** 2,\n\tTERABYTES_PER_ZETTABYTE = 1024 ** 3,\n\tTERABYTES_PER_YOTTABYTE = 1024 ** 4,\n\n\tPETABYTES_PER_EXABYTE = 1024,\n\tPETABYTES_PER_ZETTABYTE = 1024 ** 2,\n\tPETABYTES_PER_YOTTABYTE = 1024 ** 3,\n\n\tEXABYTES_PER_ZETTABYTE = 1024,\n\tEXABYTES_PER_YOTTABYTE = 1024 ** 2,\n\n\tZETTABYTES_PER_YOTTABYTE = 1024,\n}\n"],"names":["ByteMagic"],"mappings":"AAAO,IAAKA,GAAAA,IACXA,EAAAA,EAAA,KAAO,CAAA,EAAP,OACAA,EAAAA,EAAA,SAAW,IAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,OAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,UAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,aAAA,EAAX,WACAA,EAAAA,EAAA,SAAW,eAAA,EAAX,WACAA,EAAAA,EAAA,QAAU,kBAAA,EAAV,UACAA,EAAAA,EAAA,UAAY,mBAAA,EAAZ,YACAA,EAAAA,EAAA,UAAY,mBAAA,EAAZ,YAEAA,EAAAA,EAAA,mBAAqB,IAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,OAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,UAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,aAAA,EAArB,qBACAA,EAAAA,EAAA,mBAAqB,eAAA,EAArB,qBACAA,EAAAA,EAAA,kBAAoB,kBAAA,EAApB,oBACAA,EAAAA,EAAA,oBAAsB,mBAAA,EAAtB,sBACAA,EAAAA,EAAA,oBAAsB,mBAAA,EAAtB,sBAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,OAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,UAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,aAAA,EAAzB,yBACAA,EAAAA,EAAA,sBAAwB,eAAA,EAAxB,wBACAA,EAAAA,EAAA,wBAA0B,kBAAA,EAA1B,0BACAA,EAAAA,EAAA,wBAA0B,mBAAA,EAA1B,0BAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,OAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,UAAA,EAAzB,yBACAA,EAAAA,EAAA,sBAAwB,aAAA,EAAxB,wBACAA,EAAAA,EAAA,wBAA0B,eAAA,EAA1B,0BACAA,EAAAA,EAAA,wBAA0B,kBAAA,EAA1B,0BAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,OAAA,EAAzB,yBACAA,EAAAA,EAAA,sBAAwB,UAAA,EAAxB,wBACAA,EAAAA,EAAA,wBAA0B,aAAA,EAA1B,0BACAA,EAAAA,EAAA,wBAA0B,eAAA,EAA1B,0BAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,sBAAwB,OAAA,EAAxB,wBACAA,EAAAA,EAAA,wBAA0B,UAAA,EAA1B,0BACAA,EAAAA,EAAA,wBAA0B,aAAA,EAA1B,0BAEAA,EAAAA,EAAA,sBAAwB,IAAA,EAAxB,wBACAA,EAAAA,EAAA,wBAA0B,OAAA,EAA1B,0BACAA,EAAAA,EAAA,wBAA0B,UAAA,EAA1B,0BAEAA,EAAAA,EAAA,uBAAyB,IAAA,EAAzB,yBACAA,EAAAA,EAAA,uBAAyB,OAAA,EAAzB,yBAEAA,EAAAA,EAAA,yBAA2B,IAAA,EAA3B,2BArDWA,IAAAA,GAAA,CAAA,CAAA"}
@@ -0,0 +1,2 @@
1
+ var I=Object.defineProperty;var r=(e,t)=>I(e,"name",{value:t,configurable:!0});import{statSync as m,readdirSync as w}from"node:fs";import{resolve as S,extname as f,basename as T,dirname as $,parse as M,join as R,relative as v}from"node:path";import{ByteMagic as i}from"./constants/bytes.mjs";const h=/^(\d+(?:\.\d+)?)\s*([a-z]+)?$/i;function g(e,t=2){if(e===0)return"0 Bytes";if(e<0)return`-${g(-e,t)}`;const n=i.BYTES_PER_KILOBYTE,o=t<0?0:t,s=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],a=Math.floor(Math.log(e)/Math.log(n));return`${Number.parseFloat((e/n**a).toFixed(o))} ${s[a]}`}r(g,"formatBytes");function G(e){const t={b:i.BYTE,bytes:i.BYTE,kb:i.KILOBYTE,mb:i.MEGABYTE,gb:i.GIGABYTE,tb:i.TERABYTE,pb:i.PETABYTE,eb:i.EXABYTE,zb:i.ZETTABYTE,yb:i.YOTTABYTE},n=e.trim().match(h);if(!n)throw new Error(`Invalid byte string: ${e}`);const[,o,s="b"]=n,a=t[s.toLowerCase()];if(!a)throw new Error(`Unknown unit: ${s}`);return Math.floor(Number.parseFloat(o)*a)}r(G,"parseBytes");function P(e,t={}){const{extensions:n,includeDotFiles:o=!1,recursive:s=!0,maxDepth:a=Number.POSITIVE_INFINITY,excludeDirs:N=["node_modules",".git","dist","build","coverage"],pattern:l,absolutePaths:_=!1,filter:y}=t,p=[],z=S(e);function F(E,x=0){if(!(x>a))try{const B=w(E,{withFileTypes:!0});for(const u of B){const c=R(E,u.name);if(!(!o&&u.name.startsWith("."))){if(u.isDirectory()){if(N.includes(u.name))continue;s&&F(c,x+1)}else if(u.isFile()){const A=m(c);if(n){const d=f(u.name);if(!n.includes(d))continue}if(l&&!(typeof l=="string"?new RegExp(l):l).test(u.name)||y&&!y(c,A))continue;const D=_?c:v(z,c);p.push(D)}}}}catch(B){console.error(`Error reading directory ${E}:`,B)}}return r(F,"traverse"),F(e),p}r(P,"getFiles");function L(e){return f(e)}r(L,"getExtension");function O(e,t=!0){return t?T(e):T(e,f(e))}r(O,"getBaseName");function k(e){return $(e)}r(k,"getDirName");function C(e){const t=M(e);return{root:t.root,dir:t.dir,base:t.base,ext:t.ext,name:t.name}}r(C,"parseFilePath");function b(e){try{return m(e).size}catch{return 0}}r(b,"getFileSize");function K(e,t=2){return g(b(e),t)}r(K,"getFileSizeFormatted");function W(e){try{return m(e).isDirectory()}catch{return!1}}r(W,"isDirectory");function j(e){try{return m(e).isFile()}catch{return!1}}r(j,"isFile");function Z(e){return T(e).startsWith(".")}r(Z,"isDotFile");function Y(e){return e.startsWith(".")?e:`.${e}`}r(Y,"normalizeExtension");function U(e,t){const n=f(e).toLowerCase();return(Array.isArray(t)?t:[t]).some(s=>Y(s).toLowerCase()===n)}r(U,"hasExtension");function V(e){return e.reduce((t,n)=>{const o=f(n)||"no-extension";return t[o]||(t[o]=[]),t[o].push(n),t},{})}r(V,"groupByExtension");var X=Object.freeze({__proto__:null,BYTE_STRING_PATTERN:h,formatBytes:g,getBaseName:O,getDirName:k,getExtension:L,getFileSize:b,getFileSizeFormatted:K,getFiles:P,groupByExtension:V,hasExtension:U,isDirectory:W,isDotFile:Z,isFile:j,normalizeExtension:Y,parseBytes:G,parseFilePath:C});export{X as f};
2
+ //# sourceMappingURL=files-DzKYei0a.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files-DzKYei0a.mjs","sources":["../src/utils/files.ts"],"sourcesContent":["import { readdirSync, statSync } from 'node:fs';\nimport {\n\tbasename,\n\tdirname,\n\textname,\n\tjoin,\n\tparse as pathParse,\n\trelative,\n\tresolve,\n} from 'node:path';\nimport { ByteMagic } from '../constants';\n\n/**\n * Regular expression pattern for parsing byte strings\n *\n * Matches strings in the format: `<number> <unit>` where:\n * - `<number>` is an integer or decimal number\n * - `<unit>` is an optional unit (b, kb, mb, gb, tb, pb, eb, zb, yb)\n *\n * @example\n * ```ts\n * '1024'.match(BYTE_STRING_PATTERN) // ['1024', '1024', undefined]\n * '1.5 MB'.match(BYTE_STRING_PATTERN) // ['1.5 MB', '1.5', 'MB']\n * '100 KB'.match(BYTE_STRING_PATTERN) // ['100 KB', '100', 'KB']\n * '2.5gb'.match(BYTE_STRING_PATTERN) // ['2.5gb', '2.5', 'gb']\n * '500'.match(BYTE_STRING_PATTERN) // ['500', '500', undefined]\n * ```\n */\nconst BYTE_STRING_PATTERN = /^(\\d+(?:\\.\\d+)?)\\s*([a-z]+)?$/i;\n\n/**\n * Format bytes to human readable format\n * @param bytes - Number of bytes\n * @param decimals - Number of decimal places (default: 2)\n * @returns Formatted string (e.g., \"1.5 MB\")\n */\nfunction formatBytes(bytes: number, decimals = 2): string {\n\tif (bytes === 0) return '0 Bytes';\n\tif (bytes < 0) return `-${formatBytes(-bytes, decimals)}`;\n\n\tconst k = ByteMagic.BYTES_PER_KILOBYTE;\n\tconst dm = decimals < 0 ? 0 : decimals;\n\tconst sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\n\treturn `${Number.parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}`;\n}\n\n/**\n * Parse bytes from human readable format\n * @param value - String value (e.g., \"1.5 MB\")\n * @returns Number of bytes\n */\nfunction parseBytes(value: string): number {\n\tconst units: Record<string, number> = {\n\t\tb: ByteMagic.BYTE,\n\t\tbytes: ByteMagic.BYTE,\n\t\tkb: ByteMagic.KILOBYTE,\n\t\tmb: ByteMagic.MEGABYTE,\n\t\tgb: ByteMagic.GIGABYTE,\n\t\ttb: ByteMagic.TERABYTE,\n\t\tpb: ByteMagic.PETABYTE,\n\t\teb: ByteMagic.EXABYTE,\n\t\tzb: ByteMagic.ZETTABYTE,\n\t\tyb: ByteMagic.YOTTABYTE,\n\t};\n\n\tconst match = value.trim().match(BYTE_STRING_PATTERN);\n\tif (!match) throw new Error(`Invalid byte string: ${value}`);\n\n\tconst [, num, unit = 'b'] = match;\n\tconst multiplier = units[unit.toLowerCase()];\n\n\tif (!multiplier) throw new Error(`Unknown unit: ${unit}`);\n\n\treturn Math.floor(Number.parseFloat(num) * multiplier);\n}\n\ninterface GetFilesOptions {\n\t/**\n\t * File extensions to include (e.g., ['.ts', '.js'])\n\t * If not provided, all files are included\n\t */\n\textensions?: string[];\n\n\t/**\n\t * Whether to include dotfiles (default: false)\n\t */\n\tincludeDotFiles?: boolean;\n\n\t/**\n\t * Whether to search recursively (default: true)\n\t */\n\trecursive?: boolean;\n\n\t/**\n\t * Maximum depth for recursive search (default: Infinity)\n\t */\n\tmaxDepth?: number;\n\n\t/**\n\t * Directories to exclude from search\n\t */\n\texcludeDirs?: string[];\n\n\t/**\n\t * Pattern to match file names (regex or string)\n\t */\n\tpattern?: string | RegExp;\n\n\t/**\n\t * Whether to return absolute paths (default: false)\n\t */\n\tabsolutePaths?: boolean;\n\n\t/**\n\t * Custom filter function\n\t */\n\tfilter?: (filePath: string, stats: ReturnType<typeof statSync>) => boolean;\n}\n\n/**\n * Get files from a directory with various filtering options\n * @param dirPath - Directory path to search\n * @param options - Options for filtering files\n * @returns Array of file paths\n */\nfunction getFiles(dirPath: string, options: GetFilesOptions = {}): string[] {\n\tconst {\n\t\textensions,\n\t\tincludeDotFiles = false,\n\t\trecursive = true,\n\t\tmaxDepth = Number.POSITIVE_INFINITY,\n\t\texcludeDirs = ['node_modules', '.git', 'dist', 'build', 'coverage'],\n\t\tpattern,\n\t\tabsolutePaths = false,\n\t\tfilter,\n\t} = options;\n\n\tconst results: string[] = [];\n\tconst basePath = resolve(dirPath);\n\n\tfunction traverse(currentPath: string, depth = 0): void {\n\t\tif (depth > maxDepth) return;\n\n\t\ttry {\n\t\t\tconst entries = readdirSync(currentPath, { withFileTypes: true });\n\n\t\t\tfor (const entry of entries) {\n\t\t\t\tconst fullPath = join(currentPath, entry.name);\n\n\t\t\t\t// Skip dotfiles if not included\n\t\t\t\tif (!includeDotFiles && entry.name.startsWith('.')) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (entry.isDirectory()) {\n\t\t\t\t\t// Skip excluded directories\n\t\t\t\t\tif (excludeDirs.includes(entry.name)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Recurse into subdirectories\n\t\t\t\t\tif (recursive) {\n\t\t\t\t\t\ttraverse(fullPath, depth + 1);\n\t\t\t\t\t}\n\t\t\t\t} else if (entry.isFile()) {\n\t\t\t\t\tconst stats = statSync(fullPath);\n\n\t\t\t\t\t// Apply extension filter\n\t\t\t\t\tif (extensions) {\n\t\t\t\t\t\tconst ext = extname(entry.name);\n\t\t\t\t\t\tif (!extensions.includes(ext)) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Apply pattern filter\n\t\t\t\t\tif (pattern) {\n\t\t\t\t\t\tconst regex =\n\t\t\t\t\t\t\ttypeof pattern === 'string' ? new RegExp(pattern) : pattern;\n\t\t\t\t\t\tif (!regex.test(entry.name)) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Apply custom filter\n\t\t\t\t\tif (filter && !filter(fullPath, stats)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst resultPath = absolutePaths\n\t\t\t\t\t\t? fullPath\n\t\t\t\t\t\t: relative(basePath, fullPath);\n\t\t\t\t\tresults.push(resultPath);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// Skip directories we don't have permission to read\n\t\t\tconsole.error(`Error reading directory ${currentPath}:`, error);\n\t\t}\n\t}\n\n\ttraverse(dirPath);\n\treturn results;\n}\n\n/**\n * Get file extension including the dot (e.g., \".ts\")\n * @param filePath - File path\n * @returns File extension\n */\nfunction getExtension(filePath: string): string {\n\treturn extname(filePath);\n}\n\n/**\n * Get file name without parent directories, optionally including the extension\n * @param filePath - File path\n * @param includeExtension - Whether to include the file extension (default: true)\n * @returns File name without directories (e.g., \"index.ts\" or \"index\" if includeExtension is false)\n */\nfunction getBaseName(filePath: string, includeExtension = true): string {\n\treturn includeExtension\n\t\t? basename(filePath)\n\t\t: basename(filePath, extname(filePath));\n}\n\n/**\n * Get directory name from file path\n * @param filePath - File path\n * @returns Directory name\n */\nfunction getDirName(filePath: string): string {\n\treturn dirname(filePath);\n}\n\n/**\n * Parse file path into components\n * @param filePath - File path\n * @returns Parsed path object\n */\nfunction parseFilePath(filePath: string) {\n\tconst parsed = pathParse(filePath);\n\treturn {\n\t\troot: parsed.root,\n\t\tdir: parsed.dir,\n\t\tbase: parsed.base,\n\t\text: parsed.ext,\n\t\tname: parsed.name,\n\t};\n}\n\n/**\n * Get file size in bytes\n * @param filePath - File path\n * @returns File size in bytes\n */\nfunction getFileSize(filePath: string): number {\n\ttry {\n\t\treturn statSync(filePath).size;\n\t} catch {\n\t\treturn 0;\n\t}\n}\n\n/**\n * Get human readable file size\n * @param filePath - File path\n * @param decimals - Number of decimal places (default: 2)\n * @returns Formatted file size\n */\nfunction getFileSizeFormatted(filePath: string, decimals = 2): string {\n\treturn formatBytes(getFileSize(filePath), decimals);\n}\n\n/**\n * Check if path is a directory\n * @param path - Path to check\n * @returns True if path is a directory\n */\nfunction isDirectory(path: string): boolean {\n\ttry {\n\t\treturn statSync(path).isDirectory();\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n/**\n * Check if path is a file\n * @param path - Path to check\n * @returns True if path is a file\n */\nfunction isFile(path: string): boolean {\n\ttry {\n\t\treturn statSync(path).isFile();\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n/**\n * Check if file is a dotfile\n * @param filePath - File path\n * @returns True if file is a dotfile\n */\nfunction isDotFile(filePath: string): boolean {\n\tconst fileName = basename(filePath);\n\treturn fileName.startsWith('.');\n}\n\n/**\n * Normalize file extension (ensure it starts with a dot)\n * @param ext - File extension\n * @returns Normalized extension\n */\nfunction normalizeExtension(ext: string): string {\n\treturn ext.startsWith('.') ? ext : `.${ext}`;\n}\n\n/**\n * Check if file has specific extension\n * @param filePath - File path\n * @param extensions - Extension or array of extensions to check\n * @returns True if file has one of the extensions\n */\nfunction hasExtension(\n\tfilePath: string,\n\textensions: string | string[]\n): boolean {\n\tconst fileExt = extname(filePath).toLowerCase();\n\tconst exts = Array.isArray(extensions) ? extensions : [extensions];\n\n\treturn exts.some((ext) => normalizeExtension(ext).toLowerCase() === fileExt);\n}\n\n/**\n * Group files by extension\n * @param filePaths - Array of file paths\n * @returns Object with extensions as keys and file paths as values\n */\nfunction groupByExtension(filePaths: string[]): Record<string, string[]> {\n\treturn filePaths.reduce(\n\t\t(acc, filePath) => {\n\t\t\tconst ext = extname(filePath) || 'no-extension';\n\t\t\tif (!acc[ext]) {\n\t\t\t\tacc[ext] = [];\n\t\t\t}\n\t\t\tacc[ext].push(filePath);\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<string, string[]>\n\t);\n}\n\nexport {\n\tBYTE_STRING_PATTERN,\n\tformatBytes,\n\tparseBytes,\n\tgetFiles,\n\tgetExtension,\n\tgetBaseName,\n\tgetDirName,\n\tparseFilePath,\n\tgetFileSize,\n\tgetFileSizeFormatted,\n\tisDirectory,\n\tisFile,\n\tisDotFile,\n\tnormalizeExtension,\n\thasExtension,\n\tgroupByExtension,\n\ttype GetFilesOptions,\n};\n"],"names":["BYTE_STRING_PATTERN","formatBytes","bytes","decimals","k","ByteMagic","dm","sizes","i","__name","parseBytes","value","units","match","num","unit","multiplier","getFiles","dirPath","options","extensions","includeDotFiles","recursive","maxDepth","excludeDirs","pattern","absolutePaths","filter","results","basePath","resolve","traverse","currentPath","depth","entries","readdirSync","entry","fullPath","join","stats","statSync","ext","extname","resultPath","relative","error","getExtension","filePath","getBaseName","includeExtension","basename","getDirName","dirname","parseFilePath","parsed","pathParse","getFileSize","getFileSizeFormatted","isDirectory","path","isFile","isDotFile","normalizeExtension","hasExtension","fileExt","groupByExtension","filePaths","acc"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";var z=Object.defineProperty;var n=(e,t)=>z(e,"name",{value:t,configurable:!0});var l=require("node:fs"),i=require("node:path"),s=require("./constants/bytes.cjs");const b=/^(\d+(?:\.\d+)?)\s*([a-z]+)?$/i;function E(e,t=2){if(e===0)return"0 Bytes";if(e<0)return`-${E(-e,t)}`;const r=s.ByteMagic.BYTES_PER_KILOBYTE,o=t<0?0:t,a=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],c=Math.floor(Math.log(e)/Math.log(r));return`${Number.parseFloat((e/r**c).toFixed(o))} ${a[c]}`}n(E,"formatBytes");function A(e){const t={b:s.ByteMagic.BYTE,bytes:s.ByteMagic.BYTE,kb:s.ByteMagic.KILOBYTE,mb:s.ByteMagic.MEGABYTE,gb:s.ByteMagic.GIGABYTE,tb:s.ByteMagic.TERABYTE,pb:s.ByteMagic.PETABYTE,eb:s.ByteMagic.EXABYTE,zb:s.ByteMagic.ZETTABYTE,yb:s.ByteMagic.YOTTABYTE},r=e.trim().match(b);if(!r)throw new Error(`Invalid byte string: ${e}`);const[,o,a="b"]=r,c=t[a.toLowerCase()];if(!c)throw new Error(`Unknown unit: ${a}`);return Math.floor(Number.parseFloat(o)*c)}n(A,"parseBytes");function D(e,t={}){const{extensions:r,includeDotFiles:o=!1,recursive:a=!0,maxDepth:c=Number.POSITIVE_INFINITY,excludeDirs:M=["node_modules",".git","dist","build","coverage"],pattern:B,absolutePaths:Y=!1,filter:g}=t,T=[],N=i.resolve(e);function x(m,d=0){if(!(d>c))try{const y=l.readdirSync(m,{withFileTypes:!0});for(const u of y){const f=i.join(m,u.name);if(!(!o&&u.name.startsWith("."))){if(u.isDirectory()){if(M.includes(u.name))continue;a&&x(f,d+1)}else if(u.isFile()){const _=l.statSync(f);if(r){const F=i.extname(u.name);if(!r.includes(F))continue}if(B&&!(typeof B=="string"?new RegExp(B):B).test(u.name)||g&&!g(f,_))continue;const S=Y?f:i.relative(N,f);T.push(S)}}}}catch(y){console.error(`Error reading directory ${m}:`,y)}}return n(x,"traverse"),x(e),T}n(D,"getFiles");function I(e){return i.extname(e)}n(I,"getExtension");function w(e,t=!0){return t?i.basename(e):i.basename(e,i.extname(e))}n(w,"getBaseName");function v(e){return i.dirname(e)}n(v,"getDirName");function $(e){const t=i.parse(e);return{root:t.root,dir:t.dir,base:t.base,ext:t.ext,name:t.name}}n($,"parseFilePath");function h(e){try{return l.statSync(e).size}catch{return 0}}n(h,"getFileSize");function R(e,t=2){return E(h(e),t)}n(R,"getFileSizeFormatted");function G(e){try{return l.statSync(e).isDirectory()}catch{return!1}}n(G,"isDirectory");function P(e){try{return l.statSync(e).isFile()}catch{return!1}}n(P,"isFile");function L(e){return i.basename(e).startsWith(".")}n(L,"isDotFile");function p(e){return e.startsWith(".")?e:`.${e}`}n(p,"normalizeExtension");function O(e,t){const r=i.extname(e).toLowerCase();return(Array.isArray(t)?t:[t]).some(a=>p(a).toLowerCase()===r)}n(O,"hasExtension");function k(e){return e.reduce((t,r)=>{const o=i.extname(r)||"no-extension";return t[o]||(t[o]=[]),t[o].push(r),t},{})}n(k,"groupByExtension");var q=Object.freeze({__proto__:null,BYTE_STRING_PATTERN:b,formatBytes:E,getBaseName:w,getDirName:v,getExtension:I,getFileSize:h,getFileSizeFormatted:R,getFiles:D,groupByExtension:k,hasExtension:O,isDirectory:G,isDotFile:L,isFile:P,normalizeExtension:p,parseBytes:A,parseFilePath:$});exports.files=q;
2
+ //# sourceMappingURL=files-m1nnj5gT.cjs.map