@koine/utils 2.0.0-beta.72 → 2.0.0-beta.74

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 (333) hide show
  1. package/Defer.d.ts +1 -0
  2. package/Defer.js +11 -0
  3. package/Emitter.d.ts +1 -0
  4. package/Emitter.js +20 -0
  5. package/accentSets.d.ts +1 -0
  6. package/accentSets.js +30 -0
  7. package/addOrReplaceAtIdx.d.ts +1 -0
  8. package/addOrReplaceAtIdx.js +15 -0
  9. package/areEqual.d.ts +1 -1
  10. package/areEqual.js +46 -0
  11. package/arrayFilterFalsy.d.ts +1 -0
  12. package/arrayFilterFalsy.js +2 -0
  13. package/arrayFindLastIndex.d.ts +1 -0
  14. package/arrayFindLastIndex.js +9 -0
  15. package/arrayOfAll.d.ts +1 -0
  16. package/arrayOfAll.js +2 -0
  17. package/arraySum.d.ts +1 -0
  18. package/arraySum.js +2 -0
  19. package/arrayToLookup.d.ts +1 -0
  20. package/arrayToLookup.js +5 -0
  21. package/arrayUniqueByProperties.d.ts +1 -0
  22. package/arrayUniqueByProperties.js +2 -0
  23. package/buildUrlQueryString.d.ts +1 -0
  24. package/buildUrlQueryString.js +21 -0
  25. package/capitalize.d.ts +1 -0
  26. package/capitalize.js +3 -0
  27. package/changeCaseCamel.d.ts +1 -0
  28. package/changeCaseCamel.js +19 -0
  29. package/changeCaseCapital.d.ts +1 -0
  30. package/changeCaseCapital.js +12 -0
  31. package/changeCaseConstant.d.ts +1 -0
  32. package/changeCaseConstant.js +8 -0
  33. package/changeCaseDot.d.ts +1 -0
  34. package/changeCaseDot.js +3 -0
  35. package/changeCaseHelpers.d.ts +0 -5
  36. package/changeCaseHelpers.js +71 -0
  37. package/changeCaseKebab.d.ts +1 -0
  38. package/changeCaseKebab.js +3 -0
  39. package/changeCaseNone.d.ts +1 -0
  40. package/changeCaseNone.js +8 -0
  41. package/changeCasePascal.d.ts +1 -0
  42. package/changeCasePascal.js +11 -0
  43. package/changeCasePascalSnake.d.ts +1 -0
  44. package/changeCasePascalSnake.js +3 -0
  45. package/changeCasePath.d.ts +1 -0
  46. package/changeCasePath.js +3 -0
  47. package/changeCaseSentence.d.ts +1 -0
  48. package/changeCaseSentence.js +17 -0
  49. package/changeCaseSnake.d.ts +1 -0
  50. package/changeCaseSnake.js +3 -0
  51. package/changeCaseTrain.d.ts +1 -0
  52. package/changeCaseTrain.js +3 -0
  53. package/chunkByChunks.d.ts +1 -0
  54. package/chunkByChunks.js +32 -0
  55. package/chunkBySize.d.ts +1 -0
  56. package/chunkBySize.js +8 -0
  57. package/clamp.d.ts +1 -0
  58. package/clamp.js +2 -0
  59. package/clsx.d.ts +1 -1
  60. package/clsx.js +40 -0
  61. package/convertRange.d.ts +1 -0
  62. package/convertRange.js +2 -0
  63. package/cookie.d.ts +0 -3
  64. package/cookie.js +1 -0
  65. package/createPalette.d.ts +1 -1
  66. package/createPalette.js +12 -0
  67. package/debounce.d.ts +1 -0
  68. package/debounce.js +18 -0
  69. package/debouncePromise.d.ts +1 -0
  70. package/debouncePromise.js +52 -0
  71. package/debounceRaf.d.ts +1 -0
  72. package/debounceRaf.js +13 -0
  73. package/decode.d.ts +1 -0
  74. package/decode.js +2 -0
  75. package/encode.d.ts +1 -0
  76. package/encode.js +2 -0
  77. package/ensureInt.d.ts +1 -0
  78. package/ensureInt.js +2 -0
  79. package/env.js +1 -0
  80. package/errorToString.d.ts +1 -0
  81. package/errorToString.js +3 -0
  82. package/escapeRegExp.d.ts +1 -0
  83. package/escapeRegExp.js +2 -0
  84. package/findDuplicatedIndexes.d.ts +1 -0
  85. package/findDuplicatedIndexes.js +11 -0
  86. package/forin.d.ts +1 -0
  87. package/forin.js +6 -0
  88. package/gbToBytes.d.ts +1 -0
  89. package/gbToBytes.js +2 -0
  90. package/getEmptyArray.d.ts +1 -0
  91. package/getEmptyArray.js +5 -0
  92. package/getKeys.d.ts +1 -0
  93. package/getKeys.js +2 -0
  94. package/getMediaQueryWidthResolvers.d.ts +1 -0
  95. package/getMediaQueryWidthResolvers.js +42 -0
  96. package/getMediaQueryWidthTailwindScreens.d.ts +1 -0
  97. package/getMediaQueryWidthTailwindScreens.js +27 -0
  98. package/getNonce.d.ts +1 -0
  99. package/getNonce.js +3 -0
  100. package/getParamAmong.d.ts +1 -0
  101. package/getParamAmong.js +6 -0
  102. package/getParamAsInt.d.ts +1 -0
  103. package/getParamAsInt.js +9 -0
  104. package/getParamAsString.d.ts +1 -0
  105. package/getParamAsString.js +3 -0
  106. package/getType.d.ts +1 -0
  107. package/getType.js +2 -0
  108. package/getUrlHashParams.d.ts +1 -0
  109. package/getUrlHashParams.js +9 -0
  110. package/getUrlHashPathname.d.ts +1 -0
  111. package/getUrlHashPathname.js +2 -0
  112. package/getUrlPathnameParts.d.ts +1 -0
  113. package/getUrlPathnameParts.js +6 -0
  114. package/getUrlQueryParams.d.ts +1 -0
  115. package/getUrlQueryParams.js +22 -0
  116. package/imgEmptyPixel.d.ts +1 -0
  117. package/imgEmptyPixel.js +2 -0
  118. package/index.cjs.js +69 -69
  119. package/index.d.ts +1 -1
  120. package/index.esm.js +69 -69
  121. package/index.js +156 -0
  122. package/invariant.d.ts +1 -0
  123. package/invariant.js +17 -0
  124. package/isAbsoluteUrl.d.ts +1 -0
  125. package/isAbsoluteUrl.js +3 -0
  126. package/isAnyObject.d.ts +1 -0
  127. package/isAnyObject.js +3 -0
  128. package/isArray.d.ts +1 -0
  129. package/isArray.js +3 -0
  130. package/isBlob.d.ts +1 -0
  131. package/isBlob.js +3 -0
  132. package/isBoolean.d.ts +1 -0
  133. package/isBoolean.js +3 -0
  134. package/isBrowser.d.ts +1 -0
  135. package/isBrowser.js +2 -0
  136. package/isBrowserNow.d.ts +1 -0
  137. package/isBrowserNow.js +3 -0
  138. package/isDate.d.ts +1 -0
  139. package/isDate.js +3 -0
  140. package/isEmptyArray.d.ts +1 -0
  141. package/isEmptyArray.js +3 -0
  142. package/isEmptyObject.d.ts +1 -0
  143. package/isEmptyObject.js +3 -0
  144. package/isEmptyString.d.ts +1 -0
  145. package/isEmptyString.js +2 -0
  146. package/isError.d.ts +1 -0
  147. package/isError.js +3 -0
  148. package/isExternalUrl.d.ts +1 -0
  149. package/isExternalUrl.js +11 -0
  150. package/isFile.d.ts +1 -0
  151. package/isFile.js +3 -0
  152. package/isFloat.d.ts +1 -0
  153. package/isFloat.js +3 -0
  154. package/isFormData.d.ts +1 -0
  155. package/isFormData.js +3 -0
  156. package/isFullArray.d.ts +1 -0
  157. package/isFullArray.js +3 -0
  158. package/isFullObject.d.ts +1 -0
  159. package/isFullObject.js +3 -0
  160. package/isFullString.d.ts +1 -0
  161. package/isFullString.js +3 -0
  162. package/isFunction.d.ts +1 -0
  163. package/isFunction.js +2 -0
  164. package/isInt.d.ts +1 -0
  165. package/isInt.js +3 -0
  166. package/isMap.d.ts +1 -0
  167. package/isMap.js +3 -0
  168. package/isNaNValue.d.ts +1 -0
  169. package/isNaNValue.js +3 -0
  170. package/isNegativeNumber.d.ts +1 -0
  171. package/isNegativeNumber.js +3 -0
  172. package/isNull.d.ts +1 -0
  173. package/isNull.js +3 -0
  174. package/isNullOrUndefined.d.ts +1 -0
  175. package/isNullOrUndefined.js +5 -0
  176. package/isNumber.d.ts +1 -0
  177. package/isNumber.js +3 -0
  178. package/isNumericLiteral.d.ts +1 -0
  179. package/isNumericLiteral.js +2 -0
  180. package/isObject.d.ts +1 -0
  181. package/isObject.js +3 -0
  182. package/isObjectLike.d.ts +1 -0
  183. package/isObjectLike.js +3 -0
  184. package/isObjectStringKeyed.d.ts +1 -0
  185. package/isObjectStringKeyed.js +3 -0
  186. package/isOneOf.d.ts +1 -0
  187. package/isOneOf.js +8 -0
  188. package/isPlainObject.d.ts +1 -0
  189. package/isPlainObject.js +6 -0
  190. package/isPositiveNumber.d.ts +1 -0
  191. package/isPositiveNumber.js +3 -0
  192. package/isPrimitive.d.ts +1 -0
  193. package/isPrimitive.js +13 -0
  194. package/isPromise.d.ts +1 -0
  195. package/isPromise.js +3 -0
  196. package/isRegExp.d.ts +1 -0
  197. package/isRegExp.js +3 -0
  198. package/isServer.d.ts +1 -0
  199. package/isServer.js +3 -0
  200. package/isServerNow.d.ts +1 -0
  201. package/isServerNow.js +3 -0
  202. package/isSet.d.ts +1 -0
  203. package/isSet.js +3 -0
  204. package/isString.d.ts +1 -0
  205. package/isString.js +3 -0
  206. package/isSymbol.d.ts +1 -0
  207. package/isSymbol.js +3 -0
  208. package/isType.d.ts +1 -0
  209. package/isType.js +13 -0
  210. package/isUndefined.d.ts +1 -0
  211. package/isUndefined.js +3 -0
  212. package/isWeakMap.d.ts +1 -0
  213. package/isWeakMap.js +3 -0
  214. package/isWeakSet.d.ts +1 -0
  215. package/isWeakSet.js +3 -0
  216. package/kbToBytes.d.ts +1 -0
  217. package/kbToBytes.js +2 -0
  218. package/location.js +1 -0
  219. package/lowercase.d.ts +1 -0
  220. package/lowercase.js +2 -0
  221. package/mapListBy.d.ts +1 -0
  222. package/mapListBy.js +5 -0
  223. package/matchSorter.d.ts +1 -0
  224. package/matchSorter.js +239 -0
  225. package/mbToBytes.d.ts +1 -0
  226. package/mbToBytes.js +2 -0
  227. package/mergeObjects.d.ts +1 -0
  228. package/mergeObjects.js +29 -0
  229. package/mergeUrlQueryParams.d.ts +1 -0
  230. package/mergeUrlQueryParams.js +14 -0
  231. package/moveSortableArrayItemByKey.d.ts +1 -0
  232. package/moveSortableArrayItemByKey.js +9 -0
  233. package/noop.d.ts +1 -0
  234. package/noop.js +2 -0
  235. package/normaliseUrl.d.ts +1 -0
  236. package/normaliseUrl.js +3 -0
  237. package/normaliseUrlPathname.d.ts +1 -0
  238. package/normaliseUrlPathname.js +3 -0
  239. package/objectFlat.d.ts +1 -0
  240. package/objectFlat.js +17 -0
  241. package/objectFlip.d.ts +1 -0
  242. package/objectFlip.js +5 -0
  243. package/objectMergeWithDefaults.d.ts +1 -0
  244. package/objectMergeWithDefaults.js +21 -0
  245. package/objectOmit.d.ts +1 -0
  246. package/objectOmit.js +8 -0
  247. package/objectPick.d.ts +1 -0
  248. package/objectPick.js +9 -0
  249. package/objectSort.d.ts +1 -0
  250. package/objectSort.js +2 -0
  251. package/objectSortByKeysMatching.d.ts +1 -0
  252. package/objectSortByKeysMatching.js +3 -0
  253. package/objectToArray.d.ts +1 -0
  254. package/objectToArray.js +2 -0
  255. package/package.json +1 -1
  256. package/parseCookie.d.ts +1 -0
  257. package/parseCookie.js +33 -0
  258. package/parseURL.d.ts +1 -0
  259. package/parseURL.js +14 -0
  260. package/quaranteneProps.d.ts +1 -1
  261. package/quaranteneProps.js +16 -0
  262. package/randomInt.d.ts +1 -0
  263. package/randomInt.js +2 -0
  264. package/randomKey.d.ts +1 -0
  265. package/randomKey.js +5 -0
  266. package/readCookie.d.ts +1 -0
  267. package/readCookie.js +34 -0
  268. package/removeAccents.d.ts +1 -0
  269. package/removeAccents.js +10 -0
  270. package/removeCookie.d.ts +1 -0
  271. package/removeCookie.js +10 -0
  272. package/removeDuplicates.d.ts +2 -0
  273. package/removeDuplicates.js +2 -0
  274. package/removeDuplicatesByKey.d.ts +1 -0
  275. package/removeDuplicatesByKey.js +13 -0
  276. package/removeDuplicatesComparing.d.ts +1 -0
  277. package/removeDuplicatesComparing.js +7 -0
  278. package/removeIndexesFromArray.d.ts +1 -0
  279. package/removeIndexesFromArray.js +10 -0
  280. package/removeTrailingSlash.d.ts +2 -1
  281. package/removeTrailingSlash.js +2 -0
  282. package/removeUrlQueryParams.d.ts +1 -0
  283. package/removeUrlQueryParams.js +14 -0
  284. package/render.d.ts +1 -1
  285. package/render.js +113 -0
  286. package/round.d.ts +1 -0
  287. package/round.js +4 -0
  288. package/roundTo.d.ts +1 -0
  289. package/roundTo.js +11 -0
  290. package/serializeCookie.d.ts +1 -0
  291. package/serializeCookie.js +69 -0
  292. package/setCookie.d.ts +1 -0
  293. package/setCookie.js +45 -0
  294. package/shuffle.d.ts +1 -0
  295. package/shuffle.js +17 -0
  296. package/slugify.d.ts +1 -0
  297. package/slugify.js +11 -0
  298. package/split.d.ts +1 -0
  299. package/split.js +2 -0
  300. package/splitReverse.d.ts +1 -0
  301. package/splitReverse.js +2 -0
  302. package/swapMap.d.ts +1 -0
  303. package/swapMap.js +8 -0
  304. package/throttle.d.ts +1 -0
  305. package/throttle.js +15 -0
  306. package/titleCase.d.ts +1 -0
  307. package/titleCase.js +4 -0
  308. package/toNumber.d.ts +1 -0
  309. package/toNumber.js +3 -0
  310. package/toRgba.d.ts +1 -0
  311. package/toRgba.js +8 -0
  312. package/transformToUrlPathname.d.ts +1 -0
  313. package/transformToUrlPathname.js +5 -0
  314. package/truncate.d.ts +1 -0
  315. package/truncate.js +6 -0
  316. package/tryUntil.d.ts +1 -0
  317. package/tryUntil.js +15 -0
  318. package/types.js +1 -0
  319. package/uid.d.ts +1 -0
  320. package/uid.js +6 -0
  321. package/updateLinkParams.d.ts +1 -0
  322. package/updateLinkParams.js +7 -0
  323. package/updateUrlQueryParams.d.ts +1 -0
  324. package/updateUrlQueryParams.js +11 -0
  325. package/uppercase.d.ts +1 -0
  326. package/uppercase.js +2 -0
  327. package/uuid.d.ts +1 -0
  328. package/uuid.js +5 -0
  329. package/uuidNumeric.d.ts +1 -0
  330. package/uuidNumeric.js +2 -0
  331. package/wait.d.ts +1 -0
  332. package/wait.js +2 -0
  333. package/without.js +1 -0
package/Defer.d.ts CHANGED
@@ -3,3 +3,4 @@ export type Deferred<T> = Promise<T> & {
3
3
  reject: PromiseConstructor["reject"];
4
4
  };
5
5
  export declare function Defer<T>(): Deferred<T>;
6
+ export default Defer;
package/Defer.js ADDED
@@ -0,0 +1,11 @@
1
+ export function Defer() {
2
+ const self = this || {};
3
+ const p = (self.promise = new Promise((resolve, reject) => {
4
+ self.resolve = resolve;
5
+ self.reject = reject;
6
+ }));
7
+ self.then = p.then.bind(p);
8
+ self.catch = p.catch.bind(p);
9
+ return self;
10
+ }
11
+ export default Defer;
package/Emitter.d.ts CHANGED
@@ -4,3 +4,4 @@ export declare let Emitter: <EventMap extends {
4
4
  on<EventName extends keyof EventMap>(name: EventName, handler: (data?: EventMap[EventName] | undefined) => any): void;
5
5
  emit<EventName_1 extends keyof EventMap>(name: EventName_1, data?: EventMap[EventName_1] | undefined): void;
6
6
  };
7
+ export default Emitter;
package/Emitter.js ADDED
@@ -0,0 +1,20 @@
1
+ export let Emitter = (namespace) => {
2
+ const all = new Map();
3
+ return {
4
+ on(name, handler) {
5
+ const handlers = all.get(`${namespace}.${String(name)}`);
6
+ const added = handlers && handlers.push(handler);
7
+ if (!added) {
8
+ all.set(`${namespace}.${String(name)}`, [handler]);
9
+ }
10
+ },
11
+ emit(name, data) {
12
+ (all.get(`${namespace}.${String(name)}`) || [])
13
+ .slice()
14
+ .map((handler) => {
15
+ handler(data);
16
+ });
17
+ },
18
+ };
19
+ };
20
+ export default Emitter;
package/accentSets.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export type AccentsSet = [string, string];
2
2
  export declare let accentsSets: AccentsSet[];
3
+ export default accentsSets;
package/accentSets.js ADDED
@@ -0,0 +1,30 @@
1
+ export let accentsSets = [
2
+ ["a", "ÀÁÂÃÅÆĀĂĄẠẢẤẦẨẪẬẮẰẲẴẶ"],
3
+ ["ae", "Ä"],
4
+ ["c", "ÇĆĈČ"],
5
+ ["d", "ÐĎĐÞ"],
6
+ ["e", "ÈÉÊËĒĔĖĘĚẸẺẼẾỀỂỄỆ"],
7
+ ["g", "ĜĞĢǴ"],
8
+ ["h", "ĤḦ"],
9
+ ["i", "ÌÍÎÏĨĪĮİỈỊ"],
10
+ ["j", "Ĵ"],
11
+ ["ij", "IJ"],
12
+ ["k", "Ķ"],
13
+ ["l", "ĹĻĽŁ"],
14
+ ["m", "Ḿ"],
15
+ ["n", "ÑŃŅŇ"],
16
+ ["o", "ÒÓÔÕØŌŎŐỌỎỐỒỔỖỘỚỜỞỠỢǪǬƠ"],
17
+ ["oe", "΅"],
18
+ ["p", "ṕ"],
19
+ ["r", "ŔŖŘ"],
20
+ ["s", "ŚŜŞŠ"],
21
+ ["ss", "ß"],
22
+ ["t", "ŢŤ"],
23
+ ["u", "ÙÚÛŨŪŬŮŰŲỤỦỨỪỬỮỰƯ"],
24
+ ["ue", "Ü"],
25
+ ["w", "ẂŴẀẄ"],
26
+ ["x", "ẍ"],
27
+ ["y", "ÝŶŸỲỴỶỸ"],
28
+ ["z", "ŹŻŽ"],
29
+ ];
30
+ export default accentsSets;
@@ -1 +1,2 @@
1
1
  export declare let addOrReplaceAtIdx: <T>(list: T[], newItem: T, newIdx?: number) => T[];
2
+ export default addOrReplaceAtIdx;
@@ -0,0 +1,15 @@
1
+ export let addOrReplaceAtIdx = (list, newItem, newIdx) => {
2
+ if (list.length === 0) {
3
+ return [newItem];
4
+ }
5
+ if (typeof newIdx === "undefined" || list.length - 1 < newIdx) {
6
+ return [...list, newItem];
7
+ }
8
+ return list.map((item, idx) => {
9
+ if (idx === newIdx) {
10
+ return newItem;
11
+ }
12
+ return item;
13
+ });
14
+ };
15
+ export default addOrReplaceAtIdx;
package/areEqual.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  type ComparablePrimitive = string | number | boolean;
2
2
  type Comparable = ComparablePrimitive | object | Record<string, ComparablePrimitive> | Array<ComparablePrimitive>;
3
3
  export declare let areEqual: (a: Comparable, b?: Comparable) => boolean;
4
- export {};
4
+ export default areEqual;
package/areEqual.js ADDED
@@ -0,0 +1,46 @@
1
+ import { isArray } from "./isArray";
2
+ import { isObject } from "./isObject";
3
+ let areEqualArrays = (a, b) => {
4
+ if (!b)
5
+ return false;
6
+ if (a.length !== b.length)
7
+ return false;
8
+ for (let i = 0; i < a.length; i++) {
9
+ if (!areEqual(a[i], b[i]))
10
+ return false;
11
+ }
12
+ return true;
13
+ };
14
+ let areEqualObjects = (a, b) => {
15
+ if (!b)
16
+ return false;
17
+ const aKeys = Object.keys(a);
18
+ for (const _key of aKeys) {
19
+ const key = _key;
20
+ if (!areEqual(a[key], b[key])) {
21
+ return false;
22
+ }
23
+ }
24
+ return true;
25
+ };
26
+ export let areEqual = (a, b) => {
27
+ if (!a && !b) {
28
+ return true;
29
+ }
30
+ if (!b && a !== b) {
31
+ return false;
32
+ }
33
+ const areObjects = isObject(a) && isObject(b);
34
+ if (areObjects && !areEqualObjects(a, b)) {
35
+ return false;
36
+ }
37
+ const areArrays = isArray(a) && isArray(b);
38
+ if (areArrays && !areEqualArrays(a, b)) {
39
+ return false;
40
+ }
41
+ if (!areObjects && !areArrays && a !== b) {
42
+ return false;
43
+ }
44
+ return true;
45
+ };
46
+ export default areEqual;
@@ -1 +1,2 @@
1
1
  export declare let arrayFilterFalsy: <T extends unknown[]>(list?: T | null | undefined) => Exclude<NonNullable<T>[number], false | "" | 0 | undefined>[];
2
+ export default arrayFilterFalsy;
@@ -0,0 +1,2 @@
1
+ export let arrayFilterFalsy = (list) => (list ? list.filter((r) => !!r) : []);
2
+ export default arrayFilterFalsy;
@@ -1 +1,2 @@
1
1
  export declare let arrayFindLastIndex: <T>(array: T[], predicate: (value: T, index: number, obj: T[]) => boolean) => number;
2
+ export default arrayFindLastIndex;
@@ -0,0 +1,9 @@
1
+ export let arrayFindLastIndex = (array, predicate) => {
2
+ let l = array.length;
3
+ while (l--) {
4
+ if (predicate(array[l], l, array))
5
+ return l;
6
+ }
7
+ return -1;
8
+ };
9
+ export default arrayFindLastIndex;
package/arrayOfAll.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export declare let arrayOfAll: <T>() => <U extends T[]>(array: U & ([T] extends [U[number]] ? unknown : "Invalid")) => U & ([T] extends [U[number]] ? unknown : "Invalid");
2
2
  export type ArrayOfAll<List extends unknown[], Union> = List[number] extends Union ? Union extends List[number] ? true : "Incomplete" : "Incomplete";
3
+ export default arrayOfAll;
package/arrayOfAll.js ADDED
@@ -0,0 +1,2 @@
1
+ export let arrayOfAll = () => (array) => array;
2
+ export default arrayOfAll;
package/arraySum.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export declare let arraySum: (numbers: number[]) => number;
2
+ export default arraySum;
package/arraySum.js ADDED
@@ -0,0 +1,2 @@
1
+ export let arraySum = (numbers) => numbers.reduce((sum, current) => sum + current, 0);
2
+ export default arraySum;
@@ -1 +1,2 @@
1
1
  export declare let arrayToLookup: <T extends string | number | symbol>(array?: T[]) => Record<T, 1>;
2
+ export default arrayToLookup;
@@ -0,0 +1,5 @@
1
+ export let arrayToLookup = (array = []) => array.reduce((obj, item) => {
2
+ obj[item] = 1;
3
+ return obj;
4
+ }, {});
5
+ export default arrayToLookup;
@@ -1 +1,2 @@
1
1
  export declare let arrayUniqueByProperties: <T extends any[]>(array: T, keys: (keyof T[number])[]) => T;
2
+ export default arrayUniqueByProperties;
@@ -0,0 +1,2 @@
1
+ export let arrayUniqueByProperties = (array, keys) => array.filter((item, idx, arr) => arr.findIndex((itemWith) => keys.every((k) => itemWith[k] === item[k])) === idx);
2
+ export default arrayUniqueByProperties;
@@ -1,2 +1,3 @@
1
1
  import type { AnyQueryParams } from "./location";
2
2
  export declare let buildUrlQueryString: <T extends AnyQueryParams>(params: T) => string;
3
+ export default buildUrlQueryString;
@@ -0,0 +1,21 @@
1
+ import { isArray } from "./isArray";
2
+ import { isNull } from "./isNull";
3
+ import { isUndefined } from "./isUndefined";
4
+ export let buildUrlQueryString = (params) => {
5
+ let output = "";
6
+ if (!params)
7
+ return output;
8
+ for (const key in params) {
9
+ const value = params[key];
10
+ if (isArray(value)) {
11
+ for (let i = 0; i < value.length; i++) {
12
+ output += `${key}=${encodeURIComponent(value[i] + "")}&`;
13
+ }
14
+ }
15
+ else if (!isNull(value) && !isUndefined(value)) {
16
+ output += `${key}=${encodeURIComponent(value + "")}&`;
17
+ }
18
+ }
19
+ return output ? `?${output.replace(/&+$/, "")}` : "";
20
+ };
21
+ export default buildUrlQueryString;
package/capitalize.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export declare let capitalize: <T extends string>(string?: T | null | undefined) => Capitalize<T>;
2
+ export default capitalize;
package/capitalize.js ADDED
@@ -0,0 +1,3 @@
1
+ export let capitalize = (string) => ((string || "").charAt(0).toUpperCase() +
2
+ (string || "").slice(1));
3
+ export default capitalize;
@@ -1,2 +1,3 @@
1
1
  import { type PascalCaseOptions } from "./changeCaseHelpers";
2
2
  export declare let changeCaseCamel: (input: string, options?: PascalCaseOptions) => string;
3
+ export default changeCaseCamel;
@@ -0,0 +1,19 @@
1
+ import { capitalCaseTransformFactory, lowerFactory, pascalCaseTransformFactory, splitPrefixSuffix, upperFactory, } from "./changeCaseHelpers";
2
+ export let changeCaseCamel = (input, options) => {
3
+ const [prefix, words, suffix] = splitPrefixSuffix(input, options);
4
+ const lower = lowerFactory(options?.locale);
5
+ const upper = upperFactory(options?.locale);
6
+ const transform = options?.mergeAmbiguousCharacters
7
+ ? capitalCaseTransformFactory(lower, upper)
8
+ : pascalCaseTransformFactory(lower, upper);
9
+ return (prefix +
10
+ words
11
+ .map((word, index) => {
12
+ if (index === 0)
13
+ return lower(word);
14
+ return transform(word, index);
15
+ })
16
+ .join(options?.delimiter ?? "") +
17
+ suffix);
18
+ };
19
+ export default changeCaseCamel;
@@ -1,2 +1,3 @@
1
1
  import { type Options } from "./changeCaseHelpers";
2
2
  export declare let changeCaseCapital: (input: string, options?: Options) => string;
3
+ export default changeCaseCapital;
@@ -0,0 +1,12 @@
1
+ import { capitalCaseTransformFactory, lowerFactory, splitPrefixSuffix, upperFactory, } from "./changeCaseHelpers";
2
+ export let changeCaseCapital = (input, options) => {
3
+ const [prefix, words, suffix] = splitPrefixSuffix(input, options);
4
+ const lower = lowerFactory(options?.locale);
5
+ const upper = upperFactory(options?.locale);
6
+ return (prefix +
7
+ words
8
+ .map(capitalCaseTransformFactory(lower, upper))
9
+ .join(options?.delimiter ?? " ") +
10
+ suffix);
11
+ };
12
+ export default changeCaseCapital;
@@ -1,2 +1,3 @@
1
1
  import { type Options } from "./changeCaseHelpers";
2
2
  export declare let changeCaseConstant: (input: string, options?: Options) => string;
3
+ export default changeCaseConstant;
@@ -0,0 +1,8 @@
1
+ import { splitPrefixSuffix, upperFactory, } from "./changeCaseHelpers";
2
+ export let changeCaseConstant = (input, options) => {
3
+ const [prefix, words, suffix] = splitPrefixSuffix(input, options);
4
+ return (prefix +
5
+ words.map(upperFactory(options?.locale)).join(options?.delimiter ?? "_") +
6
+ suffix);
7
+ };
8
+ export default changeCaseConstant;
@@ -1,2 +1,3 @@
1
1
  import type { Options } from "./changeCaseHelpers";
2
2
  export declare let changeCaseDot: (input: string, options?: Options) => string;
3
+ export default changeCaseDot;
@@ -0,0 +1,3 @@
1
+ import { changeCaseNone } from "./changeCaseNone";
2
+ export let changeCaseDot = (input, options) => changeCaseNone(input, { delimiter: ".", ...options });
3
+ export default changeCaseDot;
@@ -12,8 +12,3 @@ export interface Options {
12
12
  }
13
13
  export declare let split: (value: string) => string[];
14
14
  export declare let splitSeparateNumbers: (value: string) => string[];
15
- export declare let lowerFactory: (locale: Locale) => (input: string) => string;
16
- export declare let upperFactory: (locale: Locale) => (input: string) => string;
17
- export declare let capitalCaseTransformFactory: (lower: (input: string) => string, upper: (input: string) => string) => (word: string) => string;
18
- export declare let pascalCaseTransformFactory: (lower: (input: string) => string, upper: (input: string) => string) => (word: string, index: number) => string;
19
- export declare let splitPrefixSuffix: (input: string, options?: Options) => [string, string[], string];
@@ -0,0 +1,71 @@
1
+ let SPLIT_LOWER_UPPER_RE = /([\p{Ll}\d])(\p{Lu})/gu;
2
+ let SPLIT_UPPER_UPPER_RE = /(\p{Lu})([\p{Lu}][\p{Ll}])/gu;
3
+ let SPLIT_SEPARATE_NUMBER_RE = /(\d)\p{Ll}|(\p{L})\d/u;
4
+ let DEFAULT_STRIP_REGEXP = /[^\p{L}\d]+/giu;
5
+ let SPLIT_REPLACE_VALUE = "$1\0$2";
6
+ let DEFAULT_PREFIX_SUFFIX_CHARACTERS = "";
7
+ export let split = (value) => {
8
+ let result = value.trim();
9
+ result = result
10
+ .replace(SPLIT_LOWER_UPPER_RE, SPLIT_REPLACE_VALUE)
11
+ .replace(SPLIT_UPPER_UPPER_RE, SPLIT_REPLACE_VALUE);
12
+ result = result.replace(DEFAULT_STRIP_REGEXP, "\0");
13
+ let start = 0;
14
+ let end = result.length;
15
+ while (result.charAt(start) === "\0")
16
+ start++;
17
+ if (start === end)
18
+ return [];
19
+ while (result.charAt(end - 1) === "\0")
20
+ end--;
21
+ return result.slice(start, end).split(/\0/g);
22
+ };
23
+ export let splitSeparateNumbers = (value) => {
24
+ const words = split(value);
25
+ for (let i = 0; i < words.length; i++) {
26
+ const word = words[i];
27
+ const match = SPLIT_SEPARATE_NUMBER_RE.exec(word);
28
+ if (match) {
29
+ const offset = match.index + (match[1] ?? match[2]).length;
30
+ words.splice(i, 1, word.slice(0, offset), word.slice(offset));
31
+ }
32
+ }
33
+ return words;
34
+ };
35
+ export let lowerFactory = (locale) => locale === false
36
+ ? (input) => input.toLowerCase()
37
+ : (input) => input.toLocaleLowerCase(locale);
38
+ export let upperFactory = (locale) => locale === false
39
+ ? (input) => input.toUpperCase()
40
+ : (input) => input.toLocaleUpperCase(locale);
41
+ export let capitalCaseTransformFactory = (lower, upper) => (word) => `${upper(word[0])}${lower(word.slice(1))}`;
42
+ export let pascalCaseTransformFactory = (lower, upper) => (word, index) => {
43
+ const char0 = word[0];
44
+ const initial = index > 0 && char0 >= "0" && char0 <= "9" ? "_" + char0 : upper(char0);
45
+ return initial + lower(word.slice(1));
46
+ };
47
+ export let splitPrefixSuffix = (input, options = {}) => {
48
+ const splitFn = options.split ?? (options.separateNumbers ? splitSeparateNumbers : split);
49
+ const prefixCharacters = options.prefixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;
50
+ const suffixCharacters = options.suffixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;
51
+ let prefixIndex = 0;
52
+ let suffixIndex = input.length;
53
+ while (prefixIndex < input.length) {
54
+ const char = input.charAt(prefixIndex);
55
+ if (!prefixCharacters.includes(char))
56
+ break;
57
+ prefixIndex++;
58
+ }
59
+ while (suffixIndex > prefixIndex) {
60
+ const index = suffixIndex - 1;
61
+ const char = input.charAt(index);
62
+ if (!suffixCharacters.includes(char))
63
+ break;
64
+ suffixIndex = index;
65
+ }
66
+ return [
67
+ input.slice(0, prefixIndex),
68
+ splitFn(input.slice(prefixIndex, suffixIndex)),
69
+ input.slice(suffixIndex),
70
+ ];
71
+ };
@@ -1,2 +1,3 @@
1
1
  import type { Options } from "./changeCaseHelpers";
2
2
  export declare let changeCaseKebab: (input: string, options?: Options) => string;
3
+ export default changeCaseKebab;
@@ -0,0 +1,3 @@
1
+ import { changeCaseNone } from "./changeCaseNone";
2
+ export let changeCaseKebab = (input, options) => changeCaseNone(input, { delimiter: "-", ...options });
3
+ export default changeCaseKebab;
@@ -1,2 +1,3 @@
1
1
  import { type Options } from "./changeCaseHelpers";
2
2
  export declare let changeCaseNone: (input: string, options?: Options) => string;
3
+ export default changeCaseNone;
@@ -0,0 +1,8 @@
1
+ import { lowerFactory, splitPrefixSuffix, } from "./changeCaseHelpers";
2
+ export let changeCaseNone = (input, options) => {
3
+ const [prefix, words, suffix] = splitPrefixSuffix(input, options);
4
+ return (prefix +
5
+ words.map(lowerFactory(options?.locale)).join(options?.delimiter ?? " ") +
6
+ suffix);
7
+ };
8
+ export default changeCaseNone;
@@ -1,2 +1,3 @@
1
1
  import { type PascalCaseOptions } from "./changeCaseHelpers";
2
2
  export declare let changeCasePascal: (input: string, options?: PascalCaseOptions) => string;
3
+ export default changeCasePascal;
@@ -0,0 +1,11 @@
1
+ import { capitalCaseTransformFactory, lowerFactory, pascalCaseTransformFactory, splitPrefixSuffix, upperFactory, } from "./changeCaseHelpers";
2
+ export let changeCasePascal = (input, options) => {
3
+ const [prefix, words, suffix] = splitPrefixSuffix(input, options);
4
+ const lower = lowerFactory(options?.locale);
5
+ const upper = upperFactory(options?.locale);
6
+ const transform = options?.mergeAmbiguousCharacters
7
+ ? capitalCaseTransformFactory(lower, upper)
8
+ : pascalCaseTransformFactory(lower, upper);
9
+ return prefix + words.map(transform).join(options?.delimiter ?? "") + suffix;
10
+ };
11
+ export default changeCasePascal;
@@ -1,2 +1,3 @@
1
1
  import type { Options } from "./changeCaseHelpers";
2
2
  export declare let changeCasePascalSnake: (input: string, options?: Options) => string;
3
+ export default changeCasePascalSnake;
@@ -0,0 +1,3 @@
1
+ import { changeCaseCapital } from "./changeCaseCapital";
2
+ export let changeCasePascalSnake = (input, options) => changeCaseCapital(input, { delimiter: "_", ...options });
3
+ export default changeCasePascalSnake;
@@ -1,2 +1,3 @@
1
1
  import type { Options } from "./changeCaseHelpers";
2
2
  export declare let changeCasePath: (input: string, options?: Options) => string;
3
+ export default changeCasePath;
@@ -0,0 +1,3 @@
1
+ import { changeCaseNone } from "./changeCaseNone";
2
+ export let changeCasePath = (input, options) => changeCaseNone(input, { delimiter: "/", ...options });
3
+ export default changeCasePath;
@@ -1,2 +1,3 @@
1
1
  import { type Options } from "./changeCaseHelpers";
2
2
  export declare let changeCaseSentence: (input: string, options?: Options) => string;
3
+ export default changeCaseSentence;
@@ -0,0 +1,17 @@
1
+ import { capitalCaseTransformFactory, lowerFactory, splitPrefixSuffix, upperFactory, } from "./changeCaseHelpers";
2
+ export let changeCaseSentence = (input, options) => {
3
+ const [prefix, words, suffix] = splitPrefixSuffix(input, options);
4
+ const lower = lowerFactory(options?.locale);
5
+ const upper = upperFactory(options?.locale);
6
+ const transform = capitalCaseTransformFactory(lower, upper);
7
+ return (prefix +
8
+ words
9
+ .map((word, index) => {
10
+ if (index === 0)
11
+ return transform(word);
12
+ return lower(word);
13
+ })
14
+ .join(options?.delimiter ?? " ") +
15
+ suffix);
16
+ };
17
+ export default changeCaseSentence;
@@ -1,2 +1,3 @@
1
1
  import type { Options } from "./changeCaseHelpers";
2
2
  export declare let changeCaseSnake: (input: string, options?: Options) => string;
3
+ export default changeCaseSnake;
@@ -0,0 +1,3 @@
1
+ import { changeCaseNone } from "./changeCaseNone";
2
+ export let changeCaseSnake = (input, options) => changeCaseNone(input, { delimiter: "_", ...options });
3
+ export default changeCaseSnake;
@@ -1,2 +1,3 @@
1
1
  import type { Options } from "./changeCaseHelpers";
2
2
  export declare let changeCaseTrain: (input: string, options?: Options) => string;
3
+ export default changeCaseTrain;
@@ -0,0 +1,3 @@
1
+ import { changeCaseCapital } from "./changeCaseCapital";
2
+ export let changeCaseTrain = (input, options) => changeCaseCapital(input, { delimiter: "-", ...options });
3
+ export default changeCaseTrain;
@@ -1 +1,2 @@
1
1
  export declare let chunkByChunks: <T>(arr: T[], nrOfChunks: number, balanced?: boolean) => T[][];
2
+ export default chunkByChunks;
@@ -0,0 +1,32 @@
1
+ export let chunkByChunks = (arr, nrOfChunks, balanced) => {
2
+ if (nrOfChunks < 2)
3
+ return [arr];
4
+ const len = arr.length;
5
+ const output = [];
6
+ let i = 0;
7
+ let size;
8
+ if (len % nrOfChunks === 0) {
9
+ size = Math.floor(len / nrOfChunks);
10
+ while (i < len) {
11
+ output.push(arr.slice(i, (i += size)));
12
+ }
13
+ }
14
+ else if (balanced) {
15
+ while (i < len) {
16
+ size = Math.ceil((len - i) / nrOfChunks--);
17
+ output.push(arr.slice(i, (i += size)));
18
+ }
19
+ }
20
+ else {
21
+ nrOfChunks--;
22
+ size = Math.floor(len / nrOfChunks);
23
+ if (len % size === 0)
24
+ size--;
25
+ while (i < size * nrOfChunks) {
26
+ output.push(arr.slice(i, (i += size)));
27
+ }
28
+ output.push(arr.slice(size * nrOfChunks));
29
+ }
30
+ return output;
31
+ };
32
+ export default chunkByChunks;
package/chunkBySize.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export declare let chunkBySize: <T>(arr: T[], size: number) => T[][];
2
+ export default chunkBySize;
package/chunkBySize.js ADDED
@@ -0,0 +1,8 @@
1
+ export let chunkBySize = (arr, size) => {
2
+ const output = [];
3
+ for (let i = 0; i < arr.length; i += size) {
4
+ output.push(arr.slice(i, i + size));
5
+ }
6
+ return output;
7
+ };
8
+ export default chunkBySize;
package/clamp.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export declare let clamp: (num: number, min: number, max: number) => number;
2
+ export default clamp;
package/clamp.js ADDED
@@ -0,0 +1,2 @@
1
+ export let clamp = (num, min, max) => Math.min(Math.max(num, min), max);
2
+ export default clamp;
package/clsx.d.ts CHANGED
@@ -3,4 +3,4 @@ type ClassDictionary = Record<string, any>;
3
3
  type ClassArray = ClassValue[];
4
4
  export type ClsxClassValue = ClassValue;
5
5
  export declare let clsx: (...args: ClassValue[]) => string;
6
- export {};
6
+ export default clsx;
package/clsx.js ADDED
@@ -0,0 +1,40 @@
1
+ let toVal = (mix) => {
2
+ let k, y, str = "";
3
+ if (typeof mix === "string" || typeof mix === "number") {
4
+ str += mix;
5
+ }
6
+ else if (typeof mix === "object") {
7
+ if (Array.isArray(mix)) {
8
+ for (k = 0; k < mix.length; k++) {
9
+ if (mix[k]) {
10
+ if ((y = toVal(mix[k]))) {
11
+ str && (str += " ");
12
+ str += y;
13
+ }
14
+ }
15
+ }
16
+ }
17
+ else {
18
+ for (k in mix) {
19
+ if (mix[k]) {
20
+ str && (str += " ");
21
+ str += k;
22
+ }
23
+ }
24
+ }
25
+ }
26
+ return str;
27
+ };
28
+ export let clsx = function () {
29
+ let i = 0, tmp, x, str = "";
30
+ while (i < arguments.length) {
31
+ if ((tmp = arguments[i++])) {
32
+ if ((x = toVal(tmp))) {
33
+ str && (str += " ");
34
+ str += x;
35
+ }
36
+ }
37
+ }
38
+ return str;
39
+ };
40
+ export default clsx;
package/convertRange.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export declare let convertRange: (num: number, r1: number[], r2: number[]) => number;
2
+ export default convertRange;
@@ -0,0 +1,2 @@
1
+ export let convertRange = (num, r1, r2) => ((num - r1[0]) * (r2[1] - r2[0])) / (r1[1] - r1[0]) + r2[0];
2
+ export default convertRange;