@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/hashAny.cjs.js ADDED
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var isUndefined = require('./isUndefined.cjs.js');
6
+ require('./getType.cjs.js');
7
+
8
+ /* eslint-disable @typescript-eslint/no-explicit-any */// import { OBJECT, isUndefined } from './shared'
9
+ let e=Object,// use WeakMap to store the object->key mapping
10
+ // so the objects can be garbage collected.
11
+ // WeakMap uses a hashtable under the hood, so the lookup
12
+ // complexity is almost O(1).
13
+ r=new WeakMap,// counter of the key
14
+ s=0;/**
15
+ * A stable hash implementation that supports:
16
+ * - Fast and ensures unique hash properties
17
+ * - Handles unserializable values
18
+ * - Handles object key ordering
19
+ * - Generates short results
20
+ *
21
+ * This is not a serialization function, and the result is not guaranteed to be
22
+ * parsable.
23
+ *
24
+ * @borrows [`swr`'s `stableHash`](https://github.com/vercel/swr/blob/main/src/_internal/utils/shared.ts)
25
+ *
26
+ * That is not exported by the package, the following is not possible:
27
+ * ```js
28
+ * import { stableHash } from "swr/_internal/dist";
29
+ * ```
30
+ */const hashAny=n=>{let o,f;let i=typeof n,a=n&&n.constructor,h=a==Date;if(e(n)!==n||h||a==RegExp)o=h?n.toJSON():"symbol"==i?n.toString():"string"==i?JSON.stringify(n):""+n;else {if(// Object/function, not null/date/regexp. Use WeakMap to store the id first.
31
+ // If it's already hashed, directly return the result.
32
+ o=r.get(n))return o;if(// Store the hash first for circular reference detection before entering the
33
+ // recursive `hashAny` calls.
34
+ // For other objects like set and map, we use this id directly as the hash.
35
+ o=++s+"~",r.set(n,o),a==Array){for(f=0,// Array.
36
+ o="@";f<n.length;f++)o+=hashAny(n[f])+",";r.set(n,o);}if(a==e){// Object, sort keys.
37
+ o="#";let s=e.keys(n).sort();for(;!isUndefined.isUndefined(f=s.pop());)isUndefined.isUndefined(n[f])||(o+=f+":"+hashAny(n[f])+",");r.set(n,o);}}return o};
38
+
39
+ exports["default"] = hashAny;
40
+ exports.hashAny = hashAny;
@@ -0,0 +1,2 @@
1
+ export * from './hashAny.cjs.js';
2
+ export { _default as default } from './hashAny.cjs.default.js';
package/hashAny.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare const hashAny: (arg: any) => string;
2
+ export default hashAny;
package/hashAny.esm.js ADDED
@@ -0,0 +1,35 @@
1
+ import { isUndefined } from './isUndefined.esm.js';
2
+ import './getType.esm.js';
3
+
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */// import { OBJECT, isUndefined } from './shared'
5
+ let e=Object,// use WeakMap to store the object->key mapping
6
+ // so the objects can be garbage collected.
7
+ // WeakMap uses a hashtable under the hood, so the lookup
8
+ // complexity is almost O(1).
9
+ r=new WeakMap,// counter of the key
10
+ s=0;/**
11
+ * A stable hash implementation that supports:
12
+ * - Fast and ensures unique hash properties
13
+ * - Handles unserializable values
14
+ * - Handles object key ordering
15
+ * - Generates short results
16
+ *
17
+ * This is not a serialization function, and the result is not guaranteed to be
18
+ * parsable.
19
+ *
20
+ * @borrows [`swr`'s `stableHash`](https://github.com/vercel/swr/blob/main/src/_internal/utils/shared.ts)
21
+ *
22
+ * That is not exported by the package, the following is not possible:
23
+ * ```js
24
+ * import { stableHash } from "swr/_internal/dist";
25
+ * ```
26
+ */const hashAny=n=>{let o,f;let i=typeof n,a=n&&n.constructor,h=a==Date;if(e(n)!==n||h||a==RegExp)o=h?n.toJSON():"symbol"==i?n.toString():"string"==i?JSON.stringify(n):""+n;else {if(// Object/function, not null/date/regexp. Use WeakMap to store the id first.
27
+ // If it's already hashed, directly return the result.
28
+ o=r.get(n))return o;if(// Store the hash first for circular reference detection before entering the
29
+ // recursive `hashAny` calls.
30
+ // For other objects like set and map, we use this id directly as the hash.
31
+ o=++s+"~",r.set(n,o),a==Array){for(f=0,// Array.
32
+ o="@";f<n.length;f++)o+=hashAny(n[f])+",";r.set(n,o);}if(a==e){// Object, sort keys.
33
+ o="#";let s=e.keys(n).sort();for(;!isUndefined(f=s.pop());)isUndefined(n[f])||(o+=f+":"+hashAny(n[f])+",");r.set(n,o);}}return o};
34
+
35
+ export { hashAny as default, hashAny };
@@ -2,7 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let imgEmptyPixel = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
5
+ /**
6
+ * Empty img pixel as a string to inline
7
+ *
8
+ * @category img
9
+ */let imgEmptyPixel="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
6
10
 
7
11
  exports["default"] = imgEmptyPixel;
8
12
  exports.imgEmptyPixel = imgEmptyPixel;
@@ -1,3 +1,7 @@
1
- let imgEmptyPixel = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
1
+ /**
2
+ * Empty img pixel as a string to inline
3
+ *
4
+ * @category img
5
+ */let imgEmptyPixel="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
2
6
 
3
7
  export { imgEmptyPixel as default, imgEmptyPixel };
package/index.cjs.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var accentSets = require('./accentSets.cjs.js');
5
+ var accentsSets = require('./accentsSets.cjs.js');
6
6
  var addOrReplaceAtIdx = require('./addOrReplaceAtIdx.cjs.js');
7
7
  var areEqual = require('./areEqual.cjs.js');
8
8
  var arrayFilterFalsy = require('./arrayFilterFalsy.cjs.js');
@@ -54,6 +54,7 @@ var getUrlHashParams = require('./getUrlHashParams.cjs.js');
54
54
  var getUrlHashPathname = require('./getUrlHashPathname.cjs.js');
55
55
  var getUrlPathnameParts = require('./getUrlPathnameParts.cjs.js');
56
56
  var getUrlQueryParams = require('./getUrlQueryParams.cjs.js');
57
+ var hashAny = require('./hashAny.cjs.js');
57
58
  var imgEmptyPixel = require('./imgEmptyPixel.cjs.js');
58
59
  var isAbsoluteUrl = require('./isAbsoluteUrl.cjs.js');
59
60
  var isAnyObject = require('./isAnyObject.cjs.js');
@@ -163,7 +164,7 @@ require('./cookie.cjs.js');
163
164
 
164
165
 
165
166
 
166
- exports.accentsSets = accentSets.accentsSets;
167
+ exports.accentsSets = accentsSets.accentsSets;
167
168
  exports.addOrReplaceAtIdx = addOrReplaceAtIdx.addOrReplaceAtIdx;
168
169
  exports.areEqual = areEqual.areEqual;
169
170
  exports.arrayFilterFalsy = arrayFilterFalsy.arrayFilterFalsy;
@@ -215,6 +216,7 @@ exports.getUrlHashParams = getUrlHashParams.getUrlHashParams;
215
216
  exports.getUrlHashPathname = getUrlHashPathname.getUrlHashPathname;
216
217
  exports.getUrlPathnameParts = getUrlPathnameParts.getUrlPathnameParts;
217
218
  exports.getUrlQueryParams = getUrlQueryParams.getUrlQueryParams;
219
+ exports.hashAny = hashAny.hashAny;
218
220
  exports.imgEmptyPixel = imgEmptyPixel.imgEmptyPixel;
219
221
  exports.isAbsoluteUrl = isAbsoluteUrl.isAbsoluteUrl;
220
222
  exports.isAnyObject = isAnyObject.isAnyObject;
@@ -265,7 +267,7 @@ exports.isWeakSet = isWeakSet.isWeakSet;
265
267
  exports.kbToBytes = kbToBytes.kbToBytes;
266
268
  exports.lowercase = lowercase.lowercase;
267
269
  exports.mapListBy = mapListBy.mapListBy;
268
- exports.matchSorter = matchSorter.matchSorter;
270
+ exports.matchSorter = matchSorter["default"];
269
271
  exports.mbToBytes = mbToBytes.mbToBytes;
270
272
  exports.mergeObjects = mergeObjects.mergeObjects;
271
273
  exports.mergeUrlQueryParams = mergeUrlQueryParams.mergeUrlQueryParams;
package/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { accentsSets, type AccentsSet } from "./accentSets";
1
+ export { accentsSets, type AccentsSet } from "./accentsSets";
2
2
  export { addOrReplaceAtIdx } from "./addOrReplaceAtIdx";
3
3
  export { areEqual } from "./areEqual";
4
4
  export { arrayFilterFalsy } from "./arrayFilterFalsy";
@@ -51,6 +51,7 @@ export { getUrlHashParams } from "./getUrlHashParams";
51
51
  export { getUrlHashPathname } from "./getUrlHashPathname";
52
52
  export { getUrlPathnameParts } from "./getUrlPathnameParts";
53
53
  export { getUrlQueryParams } from "./getUrlQueryParams";
54
+ export { hashAny } from "./hashAny";
54
55
  export { imgEmptyPixel } from "./imgEmptyPixel";
55
56
  export { isAbsoluteUrl } from "./isAbsoluteUrl";
56
57
  export { isAnyObject } from "./isAnyObject";
package/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- export { accentsSets } from './accentSets.esm.js';
1
+ export { accentsSets } from './accentsSets.esm.js';
2
2
  export { addOrReplaceAtIdx } from './addOrReplaceAtIdx.esm.js';
3
3
  export { areEqual } from './areEqual.esm.js';
4
4
  export { arrayFilterFalsy } from './arrayFilterFalsy.esm.js';
@@ -50,6 +50,7 @@ export { getUrlHashParams } from './getUrlHashParams.esm.js';
50
50
  export { getUrlHashPathname } from './getUrlHashPathname.esm.js';
51
51
  export { getUrlPathnameParts } from './getUrlPathnameParts.esm.js';
52
52
  export { getUrlQueryParams } from './getUrlQueryParams.esm.js';
53
+ export { hashAny } from './hashAny.esm.js';
53
54
  export { imgEmptyPixel } from './imgEmptyPixel.esm.js';
54
55
  export { isAbsoluteUrl } from './isAbsoluteUrl.esm.js';
55
56
  export { isAnyObject } from './isAnyObject.esm.js';
@@ -100,7 +101,7 @@ export { isWeakSet } from './isWeakSet.esm.js';
100
101
  export { kbToBytes } from './kbToBytes.esm.js';
101
102
  export { lowercase } from './lowercase.esm.js';
102
103
  export { mapListBy } from './mapListBy.esm.js';
103
- export { matchSorter } from './matchSorter.esm.js';
104
+ export { default as matchSorter } from './matchSorter.esm.js';
104
105
  export { mbToBytes } from './mbToBytes.esm.js';
105
106
  export { mergeObjects } from './mergeObjects.esm.js';
106
107
  export { mergeUrlQueryParams } from './mergeUrlQueryParams.esm.js';
package/invariant.cjs.js CHANGED
@@ -2,22 +2,23 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let invariant = (condition, message, lib, prefix) => {
6
- if (process.env["NODE_ENV"] === "development") {
7
- if (condition) {
8
- return;
9
- }
10
- const msgProvided = typeof message === "function" ? message() : message;
11
- let msgPrefix = "";
12
- if (lib && prefix) {
13
- msgPrefix = `[${lib}:${prefix}] `;
14
- }
15
- else if (lib) {
16
- msgPrefix = `[${lib}] `;
17
- }
18
- throw new Error(msgPrefix + msgProvided);
19
- }
20
- };
5
+ /**
6
+ * FIXME: invariant calls do not get tree shaked in minified output of projects
7
+ * using it. Let's not use it internally and not export it from `@koine/utils`
8
+ * until we find a tree-shakeable way of doing this. For now just wrapping
9
+ * the logging code into `if (process.env["NODE_ENV"] === "development") {}`
10
+ * works better despite it is more verbose.
11
+ *
12
+ * @resources
13
+ * - https://github.com/alexreardon/tiny-invariant
14
+ * - https://github.com/zertosh/invariant
15
+ * - https://stackoverflow.com/q/39055159/1938970
16
+ *
17
+ * @param condition The condition that, if `true` will throw the error during development
18
+ * @param message A string or a function that returns a string
19
+ * @param lib The library name to show in the error message prefix. When `lib` is also specified it outputs `[lib:prefix]: the message`, otherwise just `[lib|prefix]: the message`)
20
+ * @param prefix The library name to show in the error message prefix. When `lib` is also specified it outputs `[lib:prefix]: the message`, otherwise just `[lib|prefix]: the message`)
21
+ */let invariant=(e,t,r,n)=>{if("development"===process.env.NODE_ENV){if(e)return;let o="function"==typeof t?t():t,i="";throw r&&n?i=`[${r}:${n}] `:r&&(i=`[${r}] `),Error(i+o)}};
21
22
 
22
23
  exports["default"] = invariant;
23
24
  exports.invariant = invariant;
package/invariant.esm.js CHANGED
@@ -1,18 +1,19 @@
1
- let invariant = (condition, message, lib, prefix) => {
2
- if (process.env["NODE_ENV"] === "development") {
3
- if (condition) {
4
- return;
5
- }
6
- const msgProvided = typeof message === "function" ? message() : message;
7
- let msgPrefix = "";
8
- if (lib && prefix) {
9
- msgPrefix = `[${lib}:${prefix}] `;
10
- }
11
- else if (lib) {
12
- msgPrefix = `[${lib}] `;
13
- }
14
- throw new Error(msgPrefix + msgProvided);
15
- }
16
- };
1
+ /**
2
+ * FIXME: invariant calls do not get tree shaked in minified output of projects
3
+ * using it. Let's not use it internally and not export it from `@koine/utils`
4
+ * until we find a tree-shakeable way of doing this. For now just wrapping
5
+ * the logging code into `if (process.env["NODE_ENV"] === "development") {}`
6
+ * works better despite it is more verbose.
7
+ *
8
+ * @resources
9
+ * - https://github.com/alexreardon/tiny-invariant
10
+ * - https://github.com/zertosh/invariant
11
+ * - https://stackoverflow.com/q/39055159/1938970
12
+ *
13
+ * @param condition The condition that, if `true` will throw the error during development
14
+ * @param message A string or a function that returns a string
15
+ * @param lib The library name to show in the error message prefix. When `lib` is also specified it outputs `[lib:prefix]: the message`, otherwise just `[lib|prefix]: the message`)
16
+ * @param prefix The library name to show in the error message prefix. When `lib` is also specified it outputs `[lib:prefix]: the message`, otherwise just `[lib|prefix]: the message`)
17
+ */let invariant=(e,t,r,n)=>{if("development"===process.env.NODE_ENV){if(e)return;let o="function"==typeof t?t():t,i="";throw r&&n?i=`[${r}:${n}] `:r&&(i=`[${r}] `),Error(i+o)}};
17
18
 
18
19
  export { invariant as default, invariant };
@@ -2,8 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let reg = /^(?:[a-z+]+:)?\/\//i;
6
- let isAbsoluteUrl = (url) => reg.test(url);
5
+ let t=/^(?:[a-z+]+:)?\/\//i;/**
6
+ * @borrows [SO's answer](https://stackoverflow.com/a/19709846/1938970)
7
+ *
8
+ * @category is
9
+ */let isAbsoluteUrl=e=>t.test(e);
7
10
 
8
11
  exports["default"] = isAbsoluteUrl;
9
12
  exports.isAbsoluteUrl = isAbsoluteUrl;
@@ -1,4 +1,7 @@
1
- let reg = /^(?:[a-z+]+:)?\/\//i;
2
- let isAbsoluteUrl = (url) => reg.test(url);
1
+ let t=/^(?:[a-z+]+:)?\/\//i;/**
2
+ * @borrows [SO's answer](https://stackoverflow.com/a/19709846/1938970)
3
+ *
4
+ * @category is
5
+ */let isAbsoluteUrl=e=>t.test(e);
3
6
 
4
7
  export { isAbsoluteUrl as default, isAbsoluteUrl };
@@ -4,7 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var getType = require('./getType.cjs.js');
6
6
 
7
- let isAnyObject = (payload) => getType.getType(payload) === "Object";
7
+ /**
8
+ * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)
9
+ *
10
+ * @category is
11
+ */let isAnyObject=t=>"Object"===getType.getType(t);
8
12
 
9
13
  exports["default"] = isAnyObject;
10
14
  exports.isAnyObject = isAnyObject;
@@ -1,5 +1,9 @@
1
1
  import { getType } from './getType.esm.js';
2
2
 
3
- let isAnyObject = (payload) => getType(payload) === "Object";
3
+ /**
4
+ * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)
5
+ *
6
+ * @category is
7
+ */let isAnyObject=t=>"Object"===getType(t);
4
8
 
5
9
  export { isAnyObject as default, isAnyObject };
package/isArray.cjs.js CHANGED
@@ -4,7 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var getType = require('./getType.cjs.js');
6
6
 
7
- let isArray = (payload) => getType.getType(payload) === "Array";
7
+ /**
8
+ * Returns whether the payload is an array
9
+ *
10
+ * @category is
11
+ */let isArray=e=>"Array"===getType.getType(e);
8
12
 
9
13
  exports["default"] = isArray;
10
14
  exports.isArray = isArray;
package/isArray.esm.js CHANGED
@@ -1,5 +1,9 @@
1
1
  import { getType } from './getType.esm.js';
2
2
 
3
- let isArray = (payload) => getType(payload) === "Array";
3
+ /**
4
+ * Returns whether the payload is an array
5
+ *
6
+ * @category is
7
+ */let isArray=e=>"Array"===getType(e);
4
8
 
5
9
  export { isArray as default, isArray };
package/isBlob.cjs.js CHANGED
@@ -4,7 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var getType = require('./getType.cjs.js');
6
6
 
7
- let isBlob = (payload) => getType.getType(payload) === "Blob";
7
+ /**
8
+ * Returns whether the payload is a Blob
9
+ *
10
+ * @category is
11
+ */let isBlob=e=>"Blob"===getType.getType(e);
8
12
 
9
13
  exports["default"] = isBlob;
10
14
  exports.isBlob = isBlob;
package/isBlob.esm.js CHANGED
@@ -1,5 +1,9 @@
1
1
  import { getType } from './getType.esm.js';
2
2
 
3
- let isBlob = (payload) => getType(payload) === "Blob";
3
+ /**
4
+ * Returns whether the payload is a Blob
5
+ *
6
+ * @category is
7
+ */let isBlob=e=>"Blob"===getType(e);
4
8
 
5
9
  export { isBlob as default, isBlob };
package/isBoolean.cjs.js CHANGED
@@ -4,7 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var getType = require('./getType.cjs.js');
6
6
 
7
- let isBoolean = (payload) => getType.getType(payload) === "Boolean";
7
+ /**
8
+ * Returns whether the payload is a boolean
9
+ *
10
+ * @category is
11
+ */let isBoolean=e=>"Boolean"===getType.getType(e);
8
12
 
9
13
  exports["default"] = isBoolean;
10
14
  exports.isBoolean = isBoolean;
package/isBoolean.esm.js CHANGED
@@ -1,5 +1,9 @@
1
1
  import { getType } from './getType.esm.js';
2
2
 
3
- let isBoolean = (payload) => getType(payload) === "Boolean";
3
+ /**
4
+ * Returns whether the payload is a boolean
5
+ *
6
+ * @category is
7
+ */let isBoolean=e=>"Boolean"===getType(e);
4
8
 
5
9
  export { isBoolean as default, isBoolean };
package/isBrowser.cjs.js CHANGED
@@ -2,7 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let isBrowser = typeof window !== "undefined";
5
+ /**
6
+ * @category ssr
7
+ * @category is
8
+ */let isBrowser="undefined"!=typeof window;
6
9
 
7
10
  exports["default"] = isBrowser;
8
11
  exports.isBrowser = isBrowser;
package/isBrowser.esm.js CHANGED
@@ -1,3 +1,6 @@
1
- let isBrowser = typeof window !== "undefined";
1
+ /**
2
+ * @category ssr
3
+ * @category is
4
+ */let isBrowser="undefined"!=typeof window;
2
5
 
3
6
  export { isBrowser as default, isBrowser };
@@ -5,7 +5,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var isUndefined = require('./isUndefined.cjs.js');
6
6
  require('./getType.cjs.js');
7
7
 
8
- let isBrowserNow = () => !isUndefined.isUndefined(window);
8
+ /**
9
+ * @category ssr
10
+ * @category is
11
+ */let isBrowserNow=()=>!isUndefined.isUndefined(window);
9
12
 
10
13
  exports["default"] = isBrowserNow;
11
14
  exports.isBrowserNow = isBrowserNow;
@@ -1,6 +1,9 @@
1
1
  import { isUndefined } from './isUndefined.esm.js';
2
2
  import './getType.esm.js';
3
3
 
4
- let isBrowserNow = () => !isUndefined(window);
4
+ /**
5
+ * @category ssr
6
+ * @category is
7
+ */let isBrowserNow=()=>!isUndefined(window);
5
8
 
6
9
  export { isBrowserNow as default, isBrowserNow };
package/isDate.cjs.js CHANGED
@@ -4,7 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var getType = require('./getType.cjs.js');
6
6
 
7
- let isDate = (payload) => getType.getType(payload) === "Date" && !isNaN(payload);
7
+ /**
8
+ * Returns whether the payload is a Date, and that the date is valid
9
+ *
10
+ * @category is
11
+ */let isDate=t=>"Date"===getType.getType(t)&&!isNaN(t);
8
12
 
9
13
  exports["default"] = isDate;
10
14
  exports.isDate = isDate;
package/isDate.esm.js CHANGED
@@ -1,5 +1,9 @@
1
1
  import { getType } from './getType.esm.js';
2
2
 
3
- let isDate = (payload) => getType(payload) === "Date" && !isNaN(payload);
3
+ /**
4
+ * Returns whether the payload is a Date, and that the date is valid
5
+ *
6
+ * @category is
7
+ */let isDate=t=>"Date"===getType(t)&&!isNaN(t);
4
8
 
5
9
  export { isDate as default, isDate };
@@ -5,7 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var isArray = require('./isArray.cjs.js');
6
6
  require('./getType.cjs.js');
7
7
 
8
- let isEmptyArray = (payload) => isArray.isArray(payload) && payload.length === 0;
8
+ /**
9
+ * Returns whether the payload is a an empty array
10
+ *
11
+ * @category is
12
+ */let isEmptyArray=t=>isArray.isArray(t)&&0===t.length;
9
13
 
10
14
  exports["default"] = isEmptyArray;
11
15
  exports.isEmptyArray = isEmptyArray;
@@ -1,6 +1,10 @@
1
1
  import { isArray } from './isArray.esm.js';
2
2
  import './getType.esm.js';
3
3
 
4
- let isEmptyArray = (payload) => isArray(payload) && payload.length === 0;
4
+ /**
5
+ * Returns whether the payload is a an empty array
6
+ *
7
+ * @category is
8
+ */let isEmptyArray=t=>isArray(t)&&0===t.length;
5
9
 
6
10
  export { isEmptyArray as default, isEmptyArray };
@@ -5,7 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var isPlainObject = require('./isPlainObject.cjs.js');
6
6
  require('./getType.cjs.js');
7
7
 
8
- let isEmptyObject = (payload) => isPlainObject.isPlainObject(payload) && Object.keys(payload).length === 0;
8
+ /**
9
+ * Returns whether the payload is a an empty object (excluding special classes or objects with other prototypes)
10
+ *
11
+ * @category is
12
+ */let isEmptyObject=e=>isPlainObject.isPlainObject(e)&&0===Object.keys(e).length;
9
13
 
10
14
  exports["default"] = isEmptyObject;
11
15
  exports.isEmptyObject = isEmptyObject;
@@ -1,6 +1,10 @@
1
1
  import { isPlainObject } from './isPlainObject.esm.js';
2
2
  import './getType.esm.js';
3
3
 
4
- let isEmptyObject = (payload) => isPlainObject(payload) && Object.keys(payload).length === 0;
4
+ /**
5
+ * Returns whether the payload is a an empty object (excluding special classes or objects with other prototypes)
6
+ *
7
+ * @category is
8
+ */let isEmptyObject=e=>isPlainObject(e)&&0===Object.keys(e).length;
5
9
 
6
10
  export { isEmptyObject as default, isEmptyObject };
@@ -2,7 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let isEmptyString = (payload) => payload === "";
5
+ /**
6
+ * Returns whether the payload is ''
7
+ *
8
+ * @category is
9
+ */let isEmptyString=t=>""===t;
6
10
 
7
11
  exports["default"] = isEmptyString;
8
12
  exports.isEmptyString = isEmptyString;
@@ -1,3 +1,7 @@
1
- let isEmptyString = (payload) => payload === "";
1
+ /**
2
+ * Returns whether the payload is ''
3
+ *
4
+ * @category is
5
+ */let isEmptyString=t=>""===t;
2
6
 
3
7
  export { isEmptyString as default, isEmptyString };
package/isError.cjs.js CHANGED
@@ -4,7 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var getType = require('./getType.cjs.js');
6
6
 
7
- let isError = (payload) => getType.getType(payload) === "Error";
7
+ /**
8
+ * Returns whether the payload is an Error
9
+ *
10
+ * @category is
11
+ */let isError=o=>"Error"===getType.getType(o);
8
12
 
9
13
  exports["default"] = isError;
10
14
  exports.isError = isError;
package/isError.esm.js CHANGED
@@ -1,5 +1,9 @@
1
1
  import { getType } from './getType.esm.js';
2
2
 
3
- let isError = (payload) => getType(payload) === "Error";
3
+ /**
4
+ * Returns whether the payload is an Error
5
+ *
6
+ * @category is
7
+ */let isError=o=>"Error"===getType(o);
4
8
 
5
9
  export { isError as default, isError };
@@ -4,15 +4,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var isBrowser = require('./isBrowser.cjs.js');
6
6
 
7
- let isExternalUrl = (url, currentUrl) => {
8
- const reg = /https?:\/\/((?:[\w\d-]+\.)+[\w\d]{2,})/i;
9
- const urlMatches = reg.exec(url);
10
- if (!urlMatches) {
11
- return false;
12
- }
13
- currentUrl = currentUrl || isBrowser.isBrowser ? location.href : "";
14
- return currentUrl ? reg.exec(currentUrl)?.[1] !== urlMatches[1] : true;
15
- };
7
+ /**
8
+ * Is external url compared to the given current URL (if not provided it falls
9
+ * back to `location.href`)
10
+ *
11
+ * @category location
12
+ *
13
+ */let isExternalUrl=(r,t)=>{let l=/https?:\/\/((?:[\w\d-]+\.)+[\w\d]{2,})/i,o=l.exec(r);return(// if no matches are found it means we either have an invalid URL, a relative
14
+ // URL or a hash link, and those are not considered externals
15
+ !!o&&(!(t=t||isBrowser.isBrowser?location.href:"")||l.exec(t)?.[1]!==o[1]))};
16
16
 
17
17
  exports["default"] = isExternalUrl;
18
18
  exports.isExternalUrl = isExternalUrl;
@@ -1,13 +1,13 @@
1
1
  import { isBrowser } from './isBrowser.esm.js';
2
2
 
3
- let isExternalUrl = (url, currentUrl) => {
4
- const reg = /https?:\/\/((?:[\w\d-]+\.)+[\w\d]{2,})/i;
5
- const urlMatches = reg.exec(url);
6
- if (!urlMatches) {
7
- return false;
8
- }
9
- currentUrl = currentUrl || isBrowser ? location.href : "";
10
- return currentUrl ? reg.exec(currentUrl)?.[1] !== urlMatches[1] : true;
11
- };
3
+ /**
4
+ * Is external url compared to the given current URL (if not provided it falls
5
+ * back to `location.href`)
6
+ *
7
+ * @category location
8
+ *
9
+ */let isExternalUrl=(r,t)=>{let l=/https?:\/\/((?:[\w\d-]+\.)+[\w\d]{2,})/i,o=l.exec(r);return(// if no matches are found it means we either have an invalid URL, a relative
10
+ // URL or a hash link, and those are not considered externals
11
+ !!o&&(!(t=t||isBrowser?location.href:"")||l.exec(t)?.[1]!==o[1]))};
12
12
 
13
13
  export { isExternalUrl as default, isExternalUrl };