@koine/utils 2.0.0-beta.80 → 2.0.0-beta.83

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 (354) hide show
  1. package/Defer.cjs.js +20 -10
  2. package/Defer.esm.js +20 -10
  3. package/Emitter.cjs.js +18 -19
  4. package/Emitter.d.ts +1 -1
  5. package/Emitter.esm.js +18 -19
  6. package/accentsSets.cjs.d.ts +2 -0
  7. package/accentsSets.cjs.default.js +1 -0
  8. package/accentsSets.cjs.js +20 -0
  9. package/accentsSets.cjs.mjs +2 -0
  10. package/accentsSets.esm.js +15 -0
  11. package/addOrReplaceAtIdx.cjs.js +7 -14
  12. package/addOrReplaceAtIdx.esm.js +7 -14
  13. package/areEqual.cjs.js +28 -43
  14. package/areEqual.esm.js +28 -43
  15. package/arrayFilterFalsy.cjs.js +6 -1
  16. package/arrayFilterFalsy.d.ts +1 -1
  17. package/arrayFilterFalsy.esm.js +6 -1
  18. package/arrayFindLastIndex.cjs.js +13 -8
  19. package/arrayFindLastIndex.d.ts +1 -1
  20. package/arrayFindLastIndex.esm.js +13 -8
  21. package/arrayOfAll.cjs.js +16 -1
  22. package/arrayOfAll.esm.js +16 -1
  23. package/arraySum.cjs.js +6 -1
  24. package/arraySum.esm.js +6 -1
  25. package/arrayToLookup.cjs.js +5 -4
  26. package/arrayToLookup.esm.js +5 -4
  27. package/arrayUniqueByProperties.cjs.js +8 -1
  28. package/arrayUniqueByProperties.esm.js +8 -1
  29. package/buildUrlQueryString.cjs.js +10 -17
  30. package/buildUrlQueryString.esm.js +10 -17
  31. package/capitalize.cjs.js +7 -2
  32. package/capitalize.d.ts +1 -1
  33. package/capitalize.esm.js +7 -2
  34. package/changeCaseCamel.cjs.js +7 -17
  35. package/changeCaseCamel.esm.js +7 -17
  36. package/changeCaseCapital.cjs.js +7 -10
  37. package/changeCaseCapital.esm.js +7 -10
  38. package/changeCaseConstant.cjs.js +7 -6
  39. package/changeCaseConstant.esm.js +7 -6
  40. package/changeCaseDot.cjs.js +7 -1
  41. package/changeCaseDot.esm.js +7 -1
  42. package/changeCaseHelpers.cjs.js +32 -71
  43. package/changeCaseHelpers.esm.js +32 -71
  44. package/changeCaseKebab.cjs.js +7 -1
  45. package/changeCaseKebab.esm.js +7 -1
  46. package/changeCaseNone.cjs.js +7 -6
  47. package/changeCaseNone.esm.js +7 -6
  48. package/changeCasePascal.cjs.js +7 -9
  49. package/changeCasePascal.esm.js +7 -9
  50. package/changeCasePascalSnake.cjs.js +7 -1
  51. package/changeCasePascalSnake.esm.js +7 -1
  52. package/changeCasePath.cjs.js +7 -1
  53. package/changeCasePath.esm.js +7 -1
  54. package/changeCaseSentence.cjs.js +7 -15
  55. package/changeCaseSentence.esm.js +8 -16
  56. package/changeCaseSnake.cjs.js +7 -1
  57. package/changeCaseSnake.esm.js +7 -1
  58. package/changeCaseTrain.cjs.js +7 -1
  59. package/changeCaseTrain.esm.js +7 -1
  60. package/chunkByChunks.cjs.js +5 -31
  61. package/chunkByChunks.esm.js +5 -31
  62. package/chunkBySize.cjs.js +4 -7
  63. package/chunkBySize.esm.js +4 -7
  64. package/clamp.cjs.js +6 -1
  65. package/clamp.esm.js +6 -1
  66. package/clsx.cjs.js +8 -39
  67. package/clsx.esm.js +8 -39
  68. package/convertRange.cjs.js +14 -1
  69. package/convertRange.esm.js +14 -1
  70. package/cookie.cjs.js +44 -1
  71. package/cookie.esm.js +44 -1
  72. package/createPalette.cjs.js +17 -11
  73. package/createPalette.esm.js +17 -11
  74. package/debounce.cjs.js +7 -17
  75. package/debounce.esm.js +7 -17
  76. package/debouncePromise.cjs.js +16 -51
  77. package/debouncePromise.esm.js +16 -51
  78. package/debounceRaf.cjs.js +10 -12
  79. package/debounceRaf.esm.js +10 -12
  80. package/decode.cjs.js +4 -1
  81. package/decode.esm.js +4 -1
  82. package/encode.cjs.js +4 -1
  83. package/encode.esm.js +4 -1
  84. package/ensureInt.cjs.js +5 -1
  85. package/ensureInt.esm.js +5 -1
  86. package/errorToString.cjs.js +6 -1
  87. package/errorToString.esm.js +6 -1
  88. package/escapeRegExp.cjs.js +7 -1
  89. package/escapeRegExp.esm.js +7 -1
  90. package/findDuplicatedIndexes.cjs.js +3 -10
  91. package/findDuplicatedIndexes.esm.js +3 -10
  92. package/forin.cjs.js +6 -5
  93. package/forin.esm.js +6 -5
  94. package/gbToBytes.cjs.js +5 -1
  95. package/gbToBytes.esm.js +5 -1
  96. package/getEmptyArray.cjs.js +6 -3
  97. package/getEmptyArray.esm.js +6 -3
  98. package/getKeys.cjs.js +8 -1
  99. package/getKeys.d.ts +1 -1
  100. package/getKeys.esm.js +8 -1
  101. package/getMediaQueryWidthResolvers.cjs.js +27 -41
  102. package/getMediaQueryWidthResolvers.esm.js +27 -41
  103. package/getMediaQueryWidthTailwindScreens.cjs.js +6 -25
  104. package/getMediaQueryWidthTailwindScreens.esm.js +6 -25
  105. package/getNonce.cjs.js +4 -1
  106. package/getNonce.esm.js +4 -1
  107. package/getParamAmong.cjs.js +11 -4
  108. package/getParamAmong.esm.js +11 -4
  109. package/getParamAsInt.cjs.js +10 -7
  110. package/getParamAsInt.esm.js +10 -7
  111. package/getParamAsString.cjs.js +9 -1
  112. package/getParamAsString.esm.js +9 -1
  113. package/getType.cjs.js +13 -1
  114. package/getType.esm.js +13 -1
  115. package/getUrlHashParams.cjs.js +6 -8
  116. package/getUrlHashParams.esm.js +6 -8
  117. package/getUrlHashPathname.cjs.js +7 -1
  118. package/getUrlHashPathname.esm.js +7 -1
  119. package/getUrlPathnameParts.cjs.js +10 -4
  120. package/getUrlPathnameParts.esm.js +10 -4
  121. package/getUrlQueryParams.cjs.js +12 -20
  122. package/getUrlQueryParams.esm.js +12 -20
  123. package/hashAny.cjs.d.ts +2 -0
  124. package/hashAny.cjs.default.js +1 -0
  125. package/hashAny.cjs.js +40 -0
  126. package/hashAny.cjs.mjs +2 -0
  127. package/hashAny.d.ts +2 -0
  128. package/hashAny.esm.js +35 -0
  129. package/imgEmptyPixel.cjs.js +5 -1
  130. package/imgEmptyPixel.esm.js +5 -1
  131. package/index.cjs.js +5 -3
  132. package/index.d.ts +2 -1
  133. package/index.esm.js +3 -2
  134. package/invariant.cjs.js +17 -16
  135. package/invariant.esm.js +17 -16
  136. package/isAbsoluteUrl.cjs.js +5 -2
  137. package/isAbsoluteUrl.esm.js +5 -2
  138. package/isAnyObject.cjs.js +5 -1
  139. package/isAnyObject.esm.js +5 -1
  140. package/isArray.cjs.js +5 -1
  141. package/isArray.esm.js +5 -1
  142. package/isBlob.cjs.js +5 -1
  143. package/isBlob.esm.js +5 -1
  144. package/isBoolean.cjs.js +5 -1
  145. package/isBoolean.esm.js +5 -1
  146. package/isBrowser.cjs.js +4 -1
  147. package/isBrowser.esm.js +4 -1
  148. package/isBrowserNow.cjs.js +4 -1
  149. package/isBrowserNow.esm.js +4 -1
  150. package/isDate.cjs.js +5 -1
  151. package/isDate.esm.js +5 -1
  152. package/isEmptyArray.cjs.js +5 -1
  153. package/isEmptyArray.esm.js +5 -1
  154. package/isEmptyObject.cjs.js +5 -1
  155. package/isEmptyObject.esm.js +5 -1
  156. package/isEmptyString.cjs.js +5 -1
  157. package/isEmptyString.esm.js +5 -1
  158. package/isError.cjs.js +5 -1
  159. package/isError.esm.js +5 -1
  160. package/isExternalUrl.cjs.js +9 -9
  161. package/isExternalUrl.esm.js +9 -9
  162. package/isFile.cjs.js +5 -1
  163. package/isFile.esm.js +5 -1
  164. package/isFloat.cjs.js +5 -1
  165. package/isFloat.esm.js +5 -1
  166. package/isFormData.cjs.js +5 -1
  167. package/isFormData.esm.js +5 -1
  168. package/isFullArray.cjs.js +5 -1
  169. package/isFullArray.esm.js +5 -1
  170. package/isFullObject.cjs.js +5 -1
  171. package/isFullObject.esm.js +5 -1
  172. package/isFullString.cjs.js +5 -1
  173. package/isFullString.esm.js +5 -1
  174. package/isFunction.cjs.js +5 -1
  175. package/isFunction.esm.js +5 -1
  176. package/isInt.cjs.js +5 -1
  177. package/isInt.esm.js +5 -1
  178. package/isMap.cjs.js +5 -1
  179. package/isMap.esm.js +5 -1
  180. package/isNaNValue.cjs.js +5 -1
  181. package/isNaNValue.esm.js +5 -1
  182. package/isNegativeNumber.cjs.js +5 -1
  183. package/isNegativeNumber.esm.js +5 -1
  184. package/isNull.cjs.js +5 -1
  185. package/isNull.esm.js +5 -1
  186. package/isNullOrUndefined.cjs.js +5 -1
  187. package/isNullOrUndefined.esm.js +5 -1
  188. package/isNumber.cjs.js +7 -1
  189. package/isNumber.esm.js +7 -1
  190. package/isNumericLiteral.cjs.js +8 -1
  191. package/isNumericLiteral.esm.js +8 -1
  192. package/isObject.cjs.js +5 -1
  193. package/isObject.esm.js +5 -1
  194. package/isObjectLike.cjs.js +7 -1
  195. package/isObjectLike.esm.js +7 -1
  196. package/isObjectStringKeyed.cjs.js +9 -1
  197. package/isObjectStringKeyed.esm.js +9 -1
  198. package/isOneOf.cjs.js +3 -7
  199. package/isOneOf.esm.js +3 -7
  200. package/isPlainObject.cjs.js +5 -4
  201. package/isPlainObject.esm.js +5 -4
  202. package/isPositiveNumber.cjs.js +5 -1
  203. package/isPositiveNumber.esm.js +5 -1
  204. package/isPrimitive.cjs.js +5 -6
  205. package/isPrimitive.esm.js +5 -6
  206. package/isPromise.cjs.js +5 -1
  207. package/isPromise.esm.js +5 -1
  208. package/isRegExp.cjs.js +5 -1
  209. package/isRegExp.esm.js +5 -1
  210. package/isServer.cjs.js +4 -1
  211. package/isServer.esm.js +4 -1
  212. package/isServerNow.cjs.js +4 -1
  213. package/isServerNow.esm.js +4 -1
  214. package/isSet.cjs.js +5 -1
  215. package/isSet.esm.js +5 -1
  216. package/isString.cjs.js +5 -1
  217. package/isString.esm.js +5 -1
  218. package/isSymbol.cjs.js +5 -1
  219. package/isSymbol.esm.js +5 -1
  220. package/isType.cjs.js +9 -11
  221. package/isType.esm.js +9 -11
  222. package/isUndefined.cjs.js +5 -1
  223. package/isUndefined.esm.js +5 -1
  224. package/isWeakMap.cjs.js +5 -1
  225. package/isWeakMap.esm.js +5 -1
  226. package/isWeakSet.cjs.js +5 -1
  227. package/isWeakSet.esm.js +5 -1
  228. package/kbToBytes.cjs.js +5 -1
  229. package/kbToBytes.esm.js +5 -1
  230. package/lowercase.cjs.js +5 -1
  231. package/lowercase.d.ts +1 -1
  232. package/lowercase.esm.js +5 -1
  233. package/mapListBy.cjs.js +5 -4
  234. package/mapListBy.esm.js +5 -4
  235. package/matchSorter.cjs.js +94 -239
  236. package/matchSorter.d.ts +1 -1
  237. package/matchSorter.esm.js +92 -237
  238. package/mbToBytes.cjs.js +5 -1
  239. package/mbToBytes.esm.js +5 -1
  240. package/mergeObjects.cjs.js +8 -26
  241. package/mergeObjects.esm.js +8 -26
  242. package/mergeUrlQueryParams.cjs.js +5 -12
  243. package/mergeUrlQueryParams.esm.js +5 -12
  244. package/moveSortableArrayItemByKey.cjs.js +7 -8
  245. package/moveSortableArrayItemByKey.esm.js +7 -8
  246. package/noop.cjs.js +5 -1
  247. package/noop.esm.js +5 -1
  248. package/normaliseUrl.cjs.js +9 -1
  249. package/normaliseUrl.esm.js +9 -1
  250. package/normaliseUrlPathname.cjs.js +8 -1
  251. package/normaliseUrlPathname.esm.js +8 -1
  252. package/objectFlat.cjs.js +8 -16
  253. package/objectFlat.esm.js +8 -16
  254. package/objectFlip.cjs.js +4 -4
  255. package/objectFlip.esm.js +4 -4
  256. package/objectMergeWithDefaults.cjs.js +29 -19
  257. package/objectMergeWithDefaults.d.ts +1 -1
  258. package/objectMergeWithDefaults.esm.js +29 -19
  259. package/objectOmit.cjs.js +9 -7
  260. package/objectOmit.esm.js +9 -7
  261. package/objectPick.cjs.js +6 -8
  262. package/objectPick.esm.js +6 -8
  263. package/objectSort.cjs.js +8 -1
  264. package/objectSort.esm.js +8 -1
  265. package/objectSortByKeysMatching.cjs.js +9 -1
  266. package/objectSortByKeysMatching.esm.js +9 -1
  267. package/objectToArray.cjs.js +6 -1
  268. package/objectToArray.esm.js +6 -1
  269. package/package.json +10 -5
  270. package/parseCookie.cjs.js +13 -32
  271. package/parseCookie.esm.js +13 -32
  272. package/parseURL.cjs.js +6 -13
  273. package/parseURL.esm.js +6 -13
  274. package/quaranteneProps.cjs.js +17 -15
  275. package/quaranteneProps.esm.js +17 -15
  276. package/randomInt.cjs.js +5 -1
  277. package/randomInt.esm.js +5 -1
  278. package/randomKey.cjs.js +6 -4
  279. package/randomKey.esm.js +6 -4
  280. package/readCookie.cjs.js +5 -33
  281. package/readCookie.esm.js +5 -33
  282. package/removeAccents.cjs.js +4 -9
  283. package/removeAccents.d.ts +1 -1
  284. package/removeAccents.esm.js +4 -9
  285. package/removeCookie.cjs.js +3 -7
  286. package/removeCookie.esm.js +3 -7
  287. package/removeDuplicates.cjs.js +8 -1
  288. package/removeDuplicates.esm.js +8 -1
  289. package/removeDuplicatesByKey.cjs.js +6 -12
  290. package/removeDuplicatesByKey.esm.js +6 -12
  291. package/removeDuplicatesComparing.cjs.js +3 -4
  292. package/removeDuplicatesComparing.esm.js +3 -4
  293. package/removeIndexesFromArray.cjs.js +4 -9
  294. package/removeIndexesFromArray.esm.js +4 -9
  295. package/removeTrailingSlash.cjs.js +5 -1
  296. package/removeTrailingSlash.esm.js +5 -1
  297. package/removeUrlQueryParams.cjs.js +5 -11
  298. package/removeUrlQueryParams.esm.js +5 -11
  299. package/render.cjs.js +52 -112
  300. package/render.esm.js +52 -112
  301. package/round.cjs.js +11 -3
  302. package/round.esm.js +11 -3
  303. package/roundTo.cjs.js +22 -10
  304. package/roundTo.esm.js +22 -10
  305. package/serializeCookie.cjs.js +13 -67
  306. package/serializeCookie.esm.js +13 -67
  307. package/setCookie.cjs.js +11 -41
  308. package/setCookie.esm.js +11 -41
  309. package/shuffle.cjs.js +15 -16
  310. package/shuffle.esm.js +15 -16
  311. package/slugify.cjs.js +20 -9
  312. package/slugify.esm.js +20 -9
  313. package/split.cjs.js +6 -1
  314. package/split.esm.js +6 -1
  315. package/splitReverse.cjs.js +6 -1
  316. package/splitReverse.esm.js +6 -1
  317. package/swapMap.cjs.js +5 -7
  318. package/swapMap.esm.js +5 -7
  319. package/throttle.cjs.js +6 -14
  320. package/throttle.d.ts +1 -1
  321. package/throttle.esm.js +6 -14
  322. package/titleCase.cjs.js +6 -3
  323. package/titleCase.esm.js +6 -3
  324. package/toNumber.cjs.js +5 -1
  325. package/toNumber.esm.js +5 -1
  326. package/toRgba.cjs.js +5 -7
  327. package/toRgba.esm.js +5 -7
  328. package/transformToUrlPathname.cjs.js +9 -3
  329. package/transformToUrlPathname.esm.js +9 -3
  330. package/truncate.cjs.js +5 -5
  331. package/truncate.esm.js +5 -5
  332. package/tryUntil.cjs.js +14 -14
  333. package/tryUntil.esm.js +14 -14
  334. package/uid.cjs.js +5 -5
  335. package/uid.esm.js +5 -5
  336. package/updateLinkParams.cjs.js +7 -5
  337. package/updateLinkParams.esm.js +7 -5
  338. package/updateUrlQueryParams.cjs.js +5 -7
  339. package/updateUrlQueryParams.esm.js +5 -7
  340. package/uppercase.cjs.js +6 -1
  341. package/uppercase.d.ts +1 -1
  342. package/uppercase.esm.js +6 -1
  343. package/uuid.cjs.js +6 -4
  344. package/uuid.esm.js +6 -4
  345. package/uuidNumeric.cjs.js +4 -1
  346. package/uuidNumeric.esm.js +4 -1
  347. package/wait.cjs.js +5 -1
  348. package/wait.esm.js +5 -1
  349. package/accentSets.cjs.d.ts +0 -2
  350. package/accentSets.cjs.default.js +0 -1
  351. package/accentSets.cjs.js +0 -36
  352. package/accentSets.cjs.mjs +0 -2
  353. package/accentSets.esm.js +0 -31
  354. /package/{accentSets.d.ts → accentsSets.d.ts} +0 -0
package/Defer.cjs.js CHANGED
@@ -2,16 +2,26 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- function Defer() {
6
- const self = this || {};
7
- const p = (self.promise = new Promise((resolve, reject) => {
8
- self.resolve = resolve;
9
- self.reject = reject;
10
- }));
11
- self.then = p.then.bind(p);
12
- self.catch = p.catch.bind(p);
13
- return self;
14
- }
5
+ /**
6
+ * @category async
7
+ */// then: Promise<T>["then"];
8
+ // catch: Promise<T>["catch"]
9
+ // finally: Promise<T>["finally"]
10
+ /**
11
+ * @category async
12
+ * @see https://stackoverflow.com/a/37673534/1938970
13
+ * @example
14
+ *
15
+ * ```ts
16
+ * const deferred = Defer();
17
+ * deferred.resolve();
18
+ * deferred.then(handleSuccess, handleError);
19
+ * ```
20
+ */function Defer()/* : PromiseConstructor */{// @ts-expect-error nevermind
21
+ let e=this||{},t=e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r;});// if (p.finally) {
22
+ // self.finally = p.finally.bind(p);
23
+ // }
24
+ return e.then=t.then.bind(t),e.catch=t.catch.bind(t),e}
15
25
 
16
26
  exports.Defer = Defer;
17
27
  exports["default"] = Defer;
package/Defer.esm.js CHANGED
@@ -1,12 +1,22 @@
1
- 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
- }
1
+ /**
2
+ * @category async
3
+ */// then: Promise<T>["then"];
4
+ // catch: Promise<T>["catch"]
5
+ // finally: Promise<T>["finally"]
6
+ /**
7
+ * @category async
8
+ * @see https://stackoverflow.com/a/37673534/1938970
9
+ * @example
10
+ *
11
+ * ```ts
12
+ * const deferred = Defer();
13
+ * deferred.resolve();
14
+ * deferred.then(handleSuccess, handleError);
15
+ * ```
16
+ */function Defer()/* : PromiseConstructor */{// @ts-expect-error nevermind
17
+ let e=this||{},t=e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r;});// if (p.finally) {
18
+ // self.finally = p.finally.bind(p);
19
+ // }
20
+ return e.then=t.then.bind(t),e.catch=t.catch.bind(t),e}
11
21
 
12
22
  export { Defer, Defer as default };
package/Emitter.cjs.js CHANGED
@@ -2,25 +2,24 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let Emitter = (namespace) => {
6
- const all = new Map();
7
- return {
8
- on(name, handler) {
9
- const handlers = all.get(`${namespace}.${String(name)}`);
10
- const added = handlers && handlers.push(handler);
11
- if (!added) {
12
- all.set(`${namespace}.${String(name)}`, [handler]);
13
- }
14
- },
15
- emit(name, data) {
16
- (all.get(`${namespace}.${String(name)}`) || [])
17
- .slice()
18
- .map((handler) => {
19
- handler(data);
20
- });
21
- },
22
- };
23
- };
5
+ /**
6
+ * Emitter super simple class
7
+ *
8
+ * Events will be prefixed with the given `namespace` plus a `.` so:
9
+ * `{namespace}.myevent`
10
+ *
11
+ * Adapted from https://github.com/developit/mitt
12
+ *
13
+ * Regarding typescript support see:
14
+ * - https://stackoverflow.com/q/53299743/1938970
15
+ * - https://github.com/Microsoft/TypeScript/pull/26349
16
+ *
17
+ * @category impl
18
+ */let Emitter=t=>{let e=new Map;return {/**
19
+ * Register an event handler for the given type.
20
+ */on(r,i){let n=e.get(`${t}.${String(r)}`);n&&n.push(i)||e.set(`${t}.${String(r)}`,[i]);},/**
21
+ * Invoke all handlers for the given type.
22
+ */emit(r,i){(e.get(`${t}.${String(r)}`)||[]).slice().map(t=>{t(i);});}}};
24
23
 
25
24
  exports.Emitter = Emitter;
26
25
  exports["default"] = Emitter;
package/Emitter.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export declare let Emitter: <EventMap extends {
2
2
  [key: string]: any;
3
3
  }>(namespace: string) => {
4
- on<EventName extends keyof EventMap>(name: EventName, handler: (data?: EventMap[EventName] | undefined) => any): void;
4
+ on<EventName extends keyof EventMap>(name: EventName, handler: (data?: EventMap[EventName]) => any): void;
5
5
  emit<EventName_1 extends keyof EventMap>(name: EventName_1, data?: EventMap[EventName_1] | undefined): void;
6
6
  };
7
7
  export default Emitter;
package/Emitter.esm.js CHANGED
@@ -1,21 +1,20 @@
1
- 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
- };
1
+ /**
2
+ * Emitter super simple class
3
+ *
4
+ * Events will be prefixed with the given `namespace` plus a `.` so:
5
+ * `{namespace}.myevent`
6
+ *
7
+ * Adapted from https://github.com/developit/mitt
8
+ *
9
+ * Regarding typescript support see:
10
+ * - https://stackoverflow.com/q/53299743/1938970
11
+ * - https://github.com/Microsoft/TypeScript/pull/26349
12
+ *
13
+ * @category impl
14
+ */let Emitter=t=>{let e=new Map;return {/**
15
+ * Register an event handler for the given type.
16
+ */on(r,i){let n=e.get(`${t}.${String(r)}`);n&&n.push(i)||e.set(`${t}.${String(r)}`,[i]);},/**
17
+ * Invoke all handlers for the given type.
18
+ */emit(r,i){(e.get(`${t}.${String(r)}`)||[]).slice().map(t=>{t(i);});}}};
20
19
 
21
20
  export { Emitter, Emitter as default };
@@ -0,0 +1,2 @@
1
+ export * from "./accentsSets";
2
+ export { default } from "./accentsSets";
@@ -0,0 +1 @@
1
+ exports._default = require('./accentsSets.cjs.js').default;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /**
6
+ * First value is the `to`, second is `from`, from *which* chars do we translates *to*
7
+ *
8
+ * @category text
9
+ *//**
10
+ * Accent sets
11
+ *
12
+ * @category text
13
+ * @resources
14
+ * - https://gist.github.com/mathewbyrne/1280286#gistcomment-3498021
15
+ * - https://gist.github.com/eek/9c4887e80b3ede05c0e39fee4dce3747 for usage
16
+ * of [normalize](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize)
17
+ */let accentsSets=[["a","ÀÁÂÃÅÆĀĂĄẠẢẤẦẨẪẬẮẰẲẴẶ"],["ae","Ä"],["c","ÇĆĈČ"],["d","ÐĎĐÞ"],["e","ÈÉÊËĒĔĖĘĚẸẺẼẾỀỂỄỆ"],["g","ĜĞĢǴ"],["h","ĤḦ"],["i","ÌÍÎÏĨĪĮİỈỊ"],["j","Ĵ"],["ij","IJ"],["k","Ķ"],["l","ĹĻĽŁ"],["m","Ḿ"],["n","ÑŃŅŇ"],["o","ÒÓÔÕØŌŎŐỌỎỐỒỔỖỘỚỜỞỠỢǪǬƠ"],["oe","ŒÖ"],["p","ṕ"],["r","ŔŖŘ"],["s","ŚŜŞŠ"],["ss","ß"],["t","ŢŤ"],["u","ÙÚÛŨŪŬŮŰŲỤỦỨỪỬỮỰƯ"],["ue","Ü"],["w","ẂŴẀẄ"],["x","ẍ"],["y","ÝŶŸỲỴỶỸ"],["z","ŹŻŽ"]];
18
+
19
+ exports.accentsSets = accentsSets;
20
+ exports["default"] = accentsSets;
@@ -0,0 +1,2 @@
1
+ export * from './accentsSets.cjs.js';
2
+ export { _default as default } from './accentsSets.cjs.default.js';
@@ -0,0 +1,15 @@
1
+ /**
2
+ * First value is the `to`, second is `from`, from *which* chars do we translates *to*
3
+ *
4
+ * @category text
5
+ *//**
6
+ * Accent sets
7
+ *
8
+ * @category text
9
+ * @resources
10
+ * - https://gist.github.com/mathewbyrne/1280286#gistcomment-3498021
11
+ * - https://gist.github.com/eek/9c4887e80b3ede05c0e39fee4dce3747 for usage
12
+ * of [normalize](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize)
13
+ */let accentsSets=[["a","ÀÁÂÃÅÆĀĂĄẠẢẤẦẨẪẬẮẰẲẴẶ"],["ae","Ä"],["c","ÇĆĈČ"],["d","ÐĎĐÞ"],["e","ÈÉÊËĒĔĖĘĚẸẺẼẾỀỂỄỆ"],["g","ĜĞĢǴ"],["h","ĤḦ"],["i","ÌÍÎÏĨĪĮİỈỊ"],["j","Ĵ"],["ij","IJ"],["k","Ķ"],["l","ĹĻĽŁ"],["m","Ḿ"],["n","ÑŃŅŇ"],["o","ÒÓÔÕØŌŎŐỌỎỐỒỔỖỘỚỜỞỠỢǪǬƠ"],["oe","ŒÖ"],["p","ṕ"],["r","ŔŖŘ"],["s","ŚŜŞŠ"],["ss","ß"],["t","ŢŤ"],["u","ÙÚÛŨŪŬŮŰŲỤỦỨỪỬỮỰƯ"],["ue","Ü"],["w","ẂŴẀẄ"],["x","ẍ"],["y","ÝŶŸỲỴỶỸ"],["z","ŹŻŽ"]];
14
+
15
+ export { accentsSets, accentsSets as default };
@@ -2,20 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let addOrReplaceAtIdx = (list, newItem, newIdx) => {
6
- if (list.length === 0) {
7
- return [newItem];
8
- }
9
- if (typeof newIdx === "undefined" || list.length - 1 < newIdx) {
10
- return [...list, newItem];
11
- }
12
- return list.map((item, idx) => {
13
- if (idx === newIdx) {
14
- return newItem;
15
- }
16
- return item;
17
- });
18
- };
5
+ /**
6
+ * Add or replace an item in the given array, it returns a new array (immutable).
7
+ * Typescript wise this is meant to keep the same type on the newly returned
8
+ * array, therefore the `newItem` must match the type of the `list` items.
9
+ *
10
+ * @category array
11
+ */let addOrReplaceAtIdx=(e,d,t)=>0===e.length?[d]:void 0===t||e.length-1<t?[...e,d]:e.map((e,a)=>a===t?d:e);
19
12
 
20
13
  exports.addOrReplaceAtIdx = addOrReplaceAtIdx;
21
14
  exports["default"] = addOrReplaceAtIdx;
@@ -1,16 +1,9 @@
1
- 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
- };
1
+ /**
2
+ * Add or replace an item in the given array, it returns a new array (immutable).
3
+ * Typescript wise this is meant to keep the same type on the newly returned
4
+ * array, therefore the `newItem` must match the type of the `list` items.
5
+ *
6
+ * @category array
7
+ */let addOrReplaceAtIdx=(e,d,t)=>0===e.length?[d]:void 0===t||e.length-1<t?[...e,d]:e.map((e,a)=>a===t?d:e);
15
8
 
16
9
  export { addOrReplaceAtIdx, addOrReplaceAtIdx as default };
package/areEqual.cjs.js CHANGED
@@ -7,49 +7,34 @@ var isObject = require('./isObject.cjs.js');
7
7
  require('./getType.cjs.js');
8
8
  require('./isPlainObject.cjs.js');
9
9
 
10
- let areEqualArrays = (a, b) => {
11
- if (!b)
12
- return false;
13
- if (a.length !== b.length)
14
- return false;
15
- for (let i = 0; i < a.length; i++) {
16
- if (!areEqual(a[i], b[i]))
17
- return false;
18
- }
19
- return true;
20
- };
21
- let areEqualObjects = (a, b) => {
22
- if (!b)
23
- return false;
24
- const aKeys = Object.keys(a);
25
- for (const _key of aKeys) {
26
- const key = _key;
27
- if (!areEqual(a[key], b[key])) {
28
- return false;
29
- }
30
- }
31
- return true;
32
- };
33
- let areEqual = (a, b) => {
34
- if (!a && !b) {
35
- return true;
36
- }
37
- if (!b && a !== b) {
38
- return false;
39
- }
40
- const areObjects = isObject.isObject(a) && isObject.isObject(b);
41
- if (areObjects && !areEqualObjects(a, b)) {
42
- return false;
43
- }
44
- const areArrays = isArray.isArray(a) && isArray.isArray(b);
45
- if (areArrays && !areEqualArrays(a, b)) {
46
- return false;
47
- }
48
- if (!areObjects && !areArrays && a !== b) {
49
- return false;
50
- }
51
- return true;
52
- };
10
+ /**
11
+ */let t=(r,e)=>{if(!e||r.length!==e.length)return !1;for(let t=0;t<r.length;t++)if(!areEqual(r[t],e[t]))return !1;return !0},/**
12
+ * NOTE: Since we do not care about `undefined` values we do not check for equal
13
+ * `Object.keys().length` equality
14
+ */u=(r,e)=>{if(!e)return !1;// const bKeys = Object.keys(b);
15
+ // if (aKeys.length !== bKeys.length) {
16
+ // return false;
17
+ // }
18
+ for(let t of Object.keys(r))if(!areEqual(r[t],e[t]))return !1;return !0};/**
19
+ * A simple and quick deep equal objects utility. This is meant to be used
20
+ * solely to deduplicate requests payload and perform comparison on JSON ready
21
+ * objects made of primitives `string`, `number` and `boolean`s.
22
+ *
23
+ * It support nested `object`s and `array`s only.
24
+ *
25
+ * NB: `undefined` and `null` values do not count in the comparison as they are
26
+ * usually meant to be ignored in JSON requestBody payloads.
27
+ *
28
+ * According to very rudimentary tests this function takes on average between
29
+ * 0.15 ms and 2ms to compare two averaged sizes requet body payloads.
30
+ *
31
+ * @category object
32
+ */let areEqual=(l,f)=>{if(!l&&!f)// console.log(`areEqual took ${performance.now() - t0} ms`);
33
+ return !0;// const t0 = performance.now();
34
+ if(!f&&l!==f)// console.log(`areEqual took ${performance.now() - t0} ms`);
35
+ return !1;let n=isObject.isObject(l)&&isObject.isObject(f);if(n&&!u(l,f))// console.log(`areEqual took ${performance.now() - t0} ms`);
36
+ return !1;let i=isArray.isArray(l)&&isArray.isArray(f);return !!(!i||t(l,f))&&// console.log(`areEqual took ${performance.now() - t0} ms`);
37
+ (!!n||!!i||l===f)};// console.log(`areEqual took ${performance.now() - t0} ms`);
53
38
 
54
39
  exports.areEqual = areEqual;
55
40
  exports["default"] = areEqual;
package/areEqual.esm.js CHANGED
@@ -3,48 +3,33 @@ import { isObject } from './isObject.esm.js';
3
3
  import './getType.esm.js';
4
4
  import './isPlainObject.esm.js';
5
5
 
6
- let areEqualArrays = (a, b) => {
7
- if (!b)
8
- return false;
9
- if (a.length !== b.length)
10
- return false;
11
- for (let i = 0; i < a.length; i++) {
12
- if (!areEqual(a[i], b[i]))
13
- return false;
14
- }
15
- return true;
16
- };
17
- let areEqualObjects = (a, b) => {
18
- if (!b)
19
- return false;
20
- const aKeys = Object.keys(a);
21
- for (const _key of aKeys) {
22
- const key = _key;
23
- if (!areEqual(a[key], b[key])) {
24
- return false;
25
- }
26
- }
27
- return true;
28
- };
29
- let areEqual = (a, b) => {
30
- if (!a && !b) {
31
- return true;
32
- }
33
- if (!b && a !== b) {
34
- return false;
35
- }
36
- const areObjects = isObject(a) && isObject(b);
37
- if (areObjects && !areEqualObjects(a, b)) {
38
- return false;
39
- }
40
- const areArrays = isArray(a) && isArray(b);
41
- if (areArrays && !areEqualArrays(a, b)) {
42
- return false;
43
- }
44
- if (!areObjects && !areArrays && a !== b) {
45
- return false;
46
- }
47
- return true;
48
- };
6
+ /**
7
+ */let t=(r,e)=>{if(!e||r.length!==e.length)return !1;for(let t=0;t<r.length;t++)if(!areEqual(r[t],e[t]))return !1;return !0},/**
8
+ * NOTE: Since we do not care about `undefined` values we do not check for equal
9
+ * `Object.keys().length` equality
10
+ */u=(r,e)=>{if(!e)return !1;// const bKeys = Object.keys(b);
11
+ // if (aKeys.length !== bKeys.length) {
12
+ // return false;
13
+ // }
14
+ for(let t of Object.keys(r))if(!areEqual(r[t],e[t]))return !1;return !0};/**
15
+ * A simple and quick deep equal objects utility. This is meant to be used
16
+ * solely to deduplicate requests payload and perform comparison on JSON ready
17
+ * objects made of primitives `string`, `number` and `boolean`s.
18
+ *
19
+ * It support nested `object`s and `array`s only.
20
+ *
21
+ * NB: `undefined` and `null` values do not count in the comparison as they are
22
+ * usually meant to be ignored in JSON requestBody payloads.
23
+ *
24
+ * According to very rudimentary tests this function takes on average between
25
+ * 0.15 ms and 2ms to compare two averaged sizes requet body payloads.
26
+ *
27
+ * @category object
28
+ */let areEqual=(l,f)=>{if(!l&&!f)// console.log(`areEqual took ${performance.now() - t0} ms`);
29
+ return !0;// const t0 = performance.now();
30
+ if(!f&&l!==f)// console.log(`areEqual took ${performance.now() - t0} ms`);
31
+ return !1;let n=isObject(l)&&isObject(f);if(n&&!u(l,f))// console.log(`areEqual took ${performance.now() - t0} ms`);
32
+ return !1;let i=isArray(l)&&isArray(f);return !!(!i||t(l,f))&&// console.log(`areEqual took ${performance.now() - t0} ms`);
33
+ (!!n||!!i||l===f)};// console.log(`areEqual took ${performance.now() - t0} ms`);
49
34
 
50
35
  export { areEqual, areEqual as default };
@@ -2,7 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let arrayFilterFalsy = (list) => (list ? list.filter((r) => !!r) : []);
5
+ /**
6
+ * Given a list it returns it filtered without any falsy values (`null`,
7
+ * `undefined`, `false`, `0`, `""`). It "adjusts" the returned type as well.
8
+ *
9
+ * @category array
10
+ */let arrayFilterFalsy=r=>r?r.filter(r=>!!r):[];
6
11
 
7
12
  exports.arrayFilterFalsy = arrayFilterFalsy;
8
13
  exports["default"] = arrayFilterFalsy;
@@ -1,2 +1,2 @@
1
- export declare let arrayFilterFalsy: <T extends unknown[]>(list?: T | null | undefined) => Exclude<NonNullable<T>[number], false | "" | 0 | undefined>[];
1
+ export declare let arrayFilterFalsy: <T extends unknown[]>(list?: null | T) => Exclude<NonNullable<T>[number], false | "" | 0 | undefined>[];
2
2
  export default arrayFilterFalsy;
@@ -1,3 +1,8 @@
1
- let arrayFilterFalsy = (list) => (list ? list.filter((r) => !!r) : []);
1
+ /**
2
+ * Given a list it returns it filtered without any falsy values (`null`,
3
+ * `undefined`, `false`, `0`, `""`). It "adjusts" the returned type as well.
4
+ *
5
+ * @category array
6
+ */let arrayFilterFalsy=r=>r?r.filter(r=>!!r):[];
2
7
 
3
8
  export { arrayFilterFalsy, arrayFilterFalsy as default };
@@ -2,14 +2,19 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let arrayFindLastIndex = (array, predicate) => {
6
- let l = array.length;
7
- while (l--) {
8
- if (predicate(array[l], l, array))
9
- return l;
10
- }
11
- return -1;
12
- };
5
+ /**
6
+ * Returns the index of the last element in the array where predicate is true, and -1
7
+ * otherwise.
8
+ *
9
+ * @borrows [SO's answer by Nico Timmerman](https://stackoverflow.com/a/53187807/1938970)
10
+ *
11
+ * @category array
12
+ *
13
+ * @param array The source array to search in
14
+ * @param predicate find calls predicate once for each element of the array, in descending
15
+ * order, until it finds one where predicate returns true. If such an element is found,
16
+ * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
17
+ */let arrayFindLastIndex=(r,e)=>{let t=r.length;for(;t--;)if(e(r[t],t,r))return t;return -1};
13
18
 
14
19
  exports.arrayFindLastIndex = arrayFindLastIndex;
15
20
  exports["default"] = arrayFindLastIndex;
@@ -1,2 +1,2 @@
1
- export declare let arrayFindLastIndex: <T>(array: T[], predicate: (value: T, index: number, obj: T[]) => boolean) => number;
1
+ export declare let arrayFindLastIndex: <T>(array: Array<T>, predicate: (value: T, index: number, obj: T[]) => boolean) => number;
2
2
  export default arrayFindLastIndex;
@@ -1,10 +1,15 @@
1
- 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
- };
1
+ /**
2
+ * Returns the index of the last element in the array where predicate is true, and -1
3
+ * otherwise.
4
+ *
5
+ * @borrows [SO's answer by Nico Timmerman](https://stackoverflow.com/a/53187807/1938970)
6
+ *
7
+ * @category array
8
+ *
9
+ * @param array The source array to search in
10
+ * @param predicate find calls predicate once for each element of the array, in descending
11
+ * order, until it finds one where predicate returns true. If such an element is found,
12
+ * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.
13
+ */let arrayFindLastIndex=(r,e)=>{let t=r.length;for(;t--;)if(e(r[t],t,r))return t;return -1};
9
14
 
10
15
  export { arrayFindLastIndex, arrayFindLastIndex as default };
package/arrayOfAll.cjs.js CHANGED
@@ -2,7 +2,22 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let arrayOfAll = () => (array) => array;
5
+ /**
6
+ * Ensure an array contains all desired values
7
+ *
8
+ * @category array
9
+ * @borrows [SO comment by `CertainPerformance`](https://stackoverflow.com/a/60132060/1938970)
10
+ *
11
+ * @usage
12
+ * ```ts
13
+ * type Fruit = "pear" | "apple" | "orange";
14
+ *
15
+ * const arrayOfAllFruits = arrayOfAll<Fruit>();
16
+ *
17
+ * const allFruits = arrayOfAllFruits([ "pear", "apple", "orange" ]); // ts compiler ok
18
+ * const allFruits = arrayOfAllFruits([ "pear", "apple" ]); // ts compiler fails
19
+ * ```
20
+ */let arrayOfAll=()=>l=>l;
6
21
 
7
22
  exports.arrayOfAll = arrayOfAll;
8
23
  exports["default"] = arrayOfAll;
package/arrayOfAll.esm.js CHANGED
@@ -1,3 +1,18 @@
1
- let arrayOfAll = () => (array) => array;
1
+ /**
2
+ * Ensure an array contains all desired values
3
+ *
4
+ * @category array
5
+ * @borrows [SO comment by `CertainPerformance`](https://stackoverflow.com/a/60132060/1938970)
6
+ *
7
+ * @usage
8
+ * ```ts
9
+ * type Fruit = "pear" | "apple" | "orange";
10
+ *
11
+ * const arrayOfAllFruits = arrayOfAll<Fruit>();
12
+ *
13
+ * const allFruits = arrayOfAllFruits([ "pear", "apple", "orange" ]); // ts compiler ok
14
+ * const allFruits = arrayOfAllFruits([ "pear", "apple" ]); // ts compiler fails
15
+ * ```
16
+ */let arrayOfAll=()=>l=>l;
2
17
 
3
18
  export { arrayOfAll, arrayOfAll as default };
package/arraySum.cjs.js CHANGED
@@ -2,7 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let arraySum = (numbers) => numbers.reduce((sum, current) => sum + current, 0);
5
+ /**
6
+ * Sum array of numbers
7
+ *
8
+ * @category array
9
+ * @category math
10
+ */let arraySum=r=>r.reduce((r,e)=>r+e,0);
6
11
 
7
12
  exports.arraySum = arraySum;
8
13
  exports["default"] = arraySum;
package/arraySum.esm.js CHANGED
@@ -1,3 +1,8 @@
1
- let arraySum = (numbers) => numbers.reduce((sum, current) => sum + current, 0);
1
+ /**
2
+ * Sum array of numbers
3
+ *
4
+ * @category array
5
+ * @category math
6
+ */let arraySum=r=>r.reduce((r,e)=>r+e,0);
2
7
 
3
8
  export { arraySum, arraySum as default };
@@ -2,10 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let arrayToLookup = (array = []) => array.reduce((obj, item) => {
6
- obj[item] = 1;
7
- return obj;
8
- }, {});
5
+ /**
6
+ * Maps a simple flat array to a lookup dictionary object
7
+ *
8
+ * @category array
9
+ */let arrayToLookup=(o=[])=>o.reduce((o,r)=>(o[r]=1,o),{});
9
10
 
10
11
  exports.arrayToLookup = arrayToLookup;
11
12
  exports["default"] = arrayToLookup;
@@ -1,6 +1,7 @@
1
- let arrayToLookup = (array = []) => array.reduce((obj, item) => {
2
- obj[item] = 1;
3
- return obj;
4
- }, {});
1
+ /**
2
+ * Maps a simple flat array to a lookup dictionary object
3
+ *
4
+ * @category array
5
+ */let arrayToLookup=(o=[])=>o.reduce((o,r)=>(o[r]=1,o),{});
5
6
 
6
7
  export { arrayToLookup, arrayToLookup as default };
@@ -2,7 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let arrayUniqueByProperties = (array, keys) => array.filter((item, idx, arr) => arr.findIndex((itemWith) => keys.every((k) => itemWith[k] === item[k])) === idx);
5
+ /**
6
+ * @borrows [SO answer](https://stackoverflow.com/a/56757215/1938970)
7
+ *
8
+ * @category array
9
+ * @param array The array to filter
10
+ * @param keys The keys to compare in each array item
11
+ * @returns The filtered array
12
+ */let arrayUniqueByProperties=(e,r)=>e.filter((e,t,i)=>i.findIndex(t=>r.every(r=>t[r]===e[r]))===t);
6
13
 
7
14
  exports.arrayUniqueByProperties = arrayUniqueByProperties;
8
15
  exports["default"] = arrayUniqueByProperties;