@koine/utils 2.0.0-beta.82 → 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 (325) hide show
  1. package/Defer.cjs.js +20 -1
  2. package/Defer.esm.js +20 -1
  3. package/Emitter.cjs.js +18 -1
  4. package/Emitter.esm.js +18 -1
  5. package/accentsSets.cjs.js +13 -1
  6. package/accentsSets.esm.js +13 -1
  7. package/addOrReplaceAtIdx.cjs.js +7 -1
  8. package/addOrReplaceAtIdx.esm.js +7 -1
  9. package/areEqual.cjs.js +28 -1
  10. package/areEqual.esm.js +28 -1
  11. package/arrayFilterFalsy.cjs.js +6 -1
  12. package/arrayFilterFalsy.esm.js +6 -1
  13. package/arrayFindLastIndex.cjs.js +13 -1
  14. package/arrayFindLastIndex.esm.js +13 -1
  15. package/arrayOfAll.cjs.js +16 -1
  16. package/arrayOfAll.esm.js +16 -1
  17. package/arraySum.cjs.js +6 -1
  18. package/arraySum.esm.js +6 -1
  19. package/arrayToLookup.cjs.js +5 -1
  20. package/arrayToLookup.esm.js +5 -1
  21. package/arrayUniqueByProperties.cjs.js +8 -1
  22. package/arrayUniqueByProperties.esm.js +8 -1
  23. package/buildUrlQueryString.cjs.js +10 -1
  24. package/buildUrlQueryString.esm.js +10 -1
  25. package/capitalize.cjs.js +7 -1
  26. package/capitalize.esm.js +7 -1
  27. package/changeCaseCamel.cjs.js +7 -1
  28. package/changeCaseCamel.esm.js +7 -1
  29. package/changeCaseCapital.cjs.js +7 -1
  30. package/changeCaseCapital.esm.js +7 -1
  31. package/changeCaseConstant.cjs.js +7 -1
  32. package/changeCaseConstant.esm.js +7 -1
  33. package/changeCaseDot.cjs.js +7 -1
  34. package/changeCaseDot.esm.js +7 -1
  35. package/changeCaseHelpers.cjs.js +32 -1
  36. package/changeCaseHelpers.esm.js +32 -1
  37. package/changeCaseKebab.cjs.js +7 -1
  38. package/changeCaseKebab.esm.js +7 -1
  39. package/changeCaseNone.cjs.js +7 -1
  40. package/changeCaseNone.esm.js +7 -1
  41. package/changeCasePascal.cjs.js +7 -1
  42. package/changeCasePascal.esm.js +7 -1
  43. package/changeCasePascalSnake.cjs.js +7 -1
  44. package/changeCasePascalSnake.esm.js +7 -1
  45. package/changeCasePath.cjs.js +7 -1
  46. package/changeCasePath.esm.js +7 -1
  47. package/changeCaseSentence.cjs.js +7 -1
  48. package/changeCaseSentence.esm.js +7 -1
  49. package/changeCaseSnake.cjs.js +7 -1
  50. package/changeCaseSnake.esm.js +7 -1
  51. package/changeCaseTrain.cjs.js +7 -1
  52. package/changeCaseTrain.esm.js +7 -1
  53. package/chunkByChunks.cjs.js +5 -1
  54. package/chunkByChunks.esm.js +5 -1
  55. package/chunkBySize.cjs.js +4 -1
  56. package/chunkBySize.esm.js +4 -1
  57. package/clamp.cjs.js +6 -1
  58. package/clamp.esm.js +6 -1
  59. package/clsx.cjs.js +2 -1
  60. package/clsx.esm.js +2 -1
  61. package/convertRange.cjs.js +14 -1
  62. package/convertRange.esm.js +14 -1
  63. package/cookie.cjs.js +44 -1
  64. package/cookie.esm.js +44 -1
  65. package/createPalette.cjs.js +17 -1
  66. package/createPalette.esm.js +17 -1
  67. package/debounce.cjs.js +7 -1
  68. package/debounce.esm.js +7 -1
  69. package/debouncePromise.cjs.js +10 -1
  70. package/debouncePromise.esm.js +10 -1
  71. package/debounceRaf.cjs.js +4 -1
  72. package/debounceRaf.esm.js +4 -1
  73. package/decode.cjs.js +4 -1
  74. package/decode.esm.js +4 -1
  75. package/encode.cjs.js +4 -1
  76. package/encode.esm.js +4 -1
  77. package/ensureInt.cjs.js +5 -1
  78. package/ensureInt.esm.js +5 -1
  79. package/errorToString.cjs.js +6 -1
  80. package/errorToString.esm.js +6 -1
  81. package/escapeRegExp.cjs.js +7 -1
  82. package/escapeRegExp.esm.js +7 -1
  83. package/findDuplicatedIndexes.cjs.js +3 -1
  84. package/findDuplicatedIndexes.esm.js +3 -1
  85. package/forin.cjs.js +6 -1
  86. package/forin.esm.js +6 -1
  87. package/gbToBytes.cjs.js +5 -1
  88. package/gbToBytes.esm.js +5 -1
  89. package/getEmptyArray.cjs.js +6 -1
  90. package/getEmptyArray.esm.js +6 -1
  91. package/getKeys.cjs.js +8 -1
  92. package/getKeys.esm.js +8 -1
  93. package/getMediaQueryWidthResolvers.cjs.js +27 -1
  94. package/getMediaQueryWidthResolvers.esm.js +27 -1
  95. package/getMediaQueryWidthTailwindScreens.cjs.js +6 -1
  96. package/getMediaQueryWidthTailwindScreens.esm.js +6 -1
  97. package/getNonce.cjs.js +4 -1
  98. package/getNonce.esm.js +4 -1
  99. package/getParamAmong.cjs.js +11 -1
  100. package/getParamAmong.esm.js +11 -1
  101. package/getParamAsInt.cjs.js +10 -1
  102. package/getParamAsInt.esm.js +10 -1
  103. package/getParamAsString.cjs.js +9 -1
  104. package/getParamAsString.esm.js +9 -1
  105. package/getType.cjs.js +13 -1
  106. package/getType.esm.js +13 -1
  107. package/getUrlHashParams.cjs.js +6 -1
  108. package/getUrlHashParams.esm.js +6 -1
  109. package/getUrlHashPathname.cjs.js +7 -1
  110. package/getUrlHashPathname.esm.js +7 -1
  111. package/getUrlPathnameParts.cjs.js +10 -1
  112. package/getUrlPathnameParts.esm.js +10 -1
  113. package/getUrlQueryParams.cjs.js +12 -1
  114. package/getUrlQueryParams.esm.js +12 -1
  115. package/hashAny.cjs.js +30 -1
  116. package/hashAny.esm.js +30 -1
  117. package/imgEmptyPixel.cjs.js +5 -1
  118. package/imgEmptyPixel.esm.js +5 -1
  119. package/invariant.cjs.js +17 -1
  120. package/invariant.esm.js +17 -1
  121. package/isAbsoluteUrl.cjs.js +5 -1
  122. package/isAbsoluteUrl.esm.js +5 -1
  123. package/isAnyObject.cjs.js +5 -1
  124. package/isAnyObject.esm.js +5 -1
  125. package/isArray.cjs.js +5 -1
  126. package/isArray.esm.js +5 -1
  127. package/isBlob.cjs.js +5 -1
  128. package/isBlob.esm.js +5 -1
  129. package/isBoolean.cjs.js +5 -1
  130. package/isBoolean.esm.js +5 -1
  131. package/isBrowser.cjs.js +4 -1
  132. package/isBrowser.esm.js +4 -1
  133. package/isBrowserNow.cjs.js +4 -1
  134. package/isBrowserNow.esm.js +4 -1
  135. package/isDate.cjs.js +5 -1
  136. package/isDate.esm.js +5 -1
  137. package/isEmptyArray.cjs.js +5 -1
  138. package/isEmptyArray.esm.js +5 -1
  139. package/isEmptyObject.cjs.js +5 -1
  140. package/isEmptyObject.esm.js +5 -1
  141. package/isEmptyString.cjs.js +5 -1
  142. package/isEmptyString.esm.js +5 -1
  143. package/isError.cjs.js +5 -1
  144. package/isError.esm.js +5 -1
  145. package/isExternalUrl.cjs.js +9 -1
  146. package/isExternalUrl.esm.js +9 -1
  147. package/isFile.cjs.js +5 -1
  148. package/isFile.esm.js +5 -1
  149. package/isFloat.cjs.js +5 -1
  150. package/isFloat.esm.js +5 -1
  151. package/isFormData.cjs.js +5 -1
  152. package/isFormData.esm.js +5 -1
  153. package/isFullArray.cjs.js +5 -1
  154. package/isFullArray.esm.js +5 -1
  155. package/isFullObject.cjs.js +5 -1
  156. package/isFullObject.esm.js +5 -1
  157. package/isFullString.cjs.js +5 -1
  158. package/isFullString.esm.js +5 -1
  159. package/isFunction.cjs.js +5 -1
  160. package/isFunction.esm.js +5 -1
  161. package/isInt.cjs.js +5 -1
  162. package/isInt.esm.js +5 -1
  163. package/isMap.cjs.js +5 -1
  164. package/isMap.esm.js +5 -1
  165. package/isNaNValue.cjs.js +5 -1
  166. package/isNaNValue.esm.js +5 -1
  167. package/isNegativeNumber.cjs.js +5 -1
  168. package/isNegativeNumber.esm.js +5 -1
  169. package/isNull.cjs.js +5 -1
  170. package/isNull.esm.js +5 -1
  171. package/isNullOrUndefined.cjs.js +5 -1
  172. package/isNullOrUndefined.esm.js +5 -1
  173. package/isNumber.cjs.js +7 -1
  174. package/isNumber.esm.js +7 -1
  175. package/isNumericLiteral.cjs.js +8 -1
  176. package/isNumericLiteral.esm.js +8 -1
  177. package/isObject.cjs.js +5 -1
  178. package/isObject.esm.js +5 -1
  179. package/isObjectLike.cjs.js +7 -1
  180. package/isObjectLike.esm.js +7 -1
  181. package/isObjectStringKeyed.cjs.js +9 -1
  182. package/isObjectStringKeyed.esm.js +9 -1
  183. package/isOneOf.cjs.js +3 -1
  184. package/isOneOf.esm.js +3 -1
  185. package/isPlainObject.cjs.js +5 -1
  186. package/isPlainObject.esm.js +5 -1
  187. package/isPositiveNumber.cjs.js +5 -1
  188. package/isPositiveNumber.esm.js +5 -1
  189. package/isPrimitive.cjs.js +5 -1
  190. package/isPrimitive.esm.js +5 -1
  191. package/isPromise.cjs.js +5 -1
  192. package/isPromise.esm.js +5 -1
  193. package/isRegExp.cjs.js +5 -1
  194. package/isRegExp.esm.js +5 -1
  195. package/isServer.cjs.js +4 -1
  196. package/isServer.esm.js +4 -1
  197. package/isServerNow.cjs.js +4 -1
  198. package/isServerNow.esm.js +4 -1
  199. package/isSet.cjs.js +5 -1
  200. package/isSet.esm.js +5 -1
  201. package/isString.cjs.js +5 -1
  202. package/isString.esm.js +5 -1
  203. package/isSymbol.cjs.js +5 -1
  204. package/isSymbol.esm.js +5 -1
  205. package/isType.cjs.js +9 -1
  206. package/isType.esm.js +9 -1
  207. package/isUndefined.cjs.js +5 -1
  208. package/isUndefined.esm.js +5 -1
  209. package/isWeakMap.cjs.js +5 -1
  210. package/isWeakMap.esm.js +5 -1
  211. package/isWeakSet.cjs.js +5 -1
  212. package/isWeakSet.esm.js +5 -1
  213. package/kbToBytes.cjs.js +5 -1
  214. package/kbToBytes.esm.js +5 -1
  215. package/lowercase.cjs.js +5 -1
  216. package/lowercase.esm.js +5 -1
  217. package/mapListBy.cjs.js +5 -1
  218. package/mapListBy.esm.js +5 -1
  219. package/matchSorter.cjs.js +90 -1
  220. package/matchSorter.esm.js +90 -1
  221. package/mbToBytes.cjs.js +5 -1
  222. package/mbToBytes.esm.js +5 -1
  223. package/mergeObjects.cjs.js +8 -1
  224. package/mergeObjects.esm.js +8 -1
  225. package/mergeUrlQueryParams.cjs.js +5 -1
  226. package/mergeUrlQueryParams.esm.js +5 -1
  227. package/moveSortableArrayItemByKey.cjs.js +7 -1
  228. package/moveSortableArrayItemByKey.esm.js +7 -1
  229. package/noop.cjs.js +5 -1
  230. package/noop.esm.js +5 -1
  231. package/normaliseUrl.cjs.js +9 -1
  232. package/normaliseUrl.esm.js +9 -1
  233. package/normaliseUrlPathname.cjs.js +8 -1
  234. package/normaliseUrlPathname.esm.js +8 -1
  235. package/objectFlat.cjs.js +8 -1
  236. package/objectFlat.esm.js +8 -1
  237. package/objectFlip.cjs.js +4 -1
  238. package/objectFlip.esm.js +4 -1
  239. package/objectMergeWithDefaults.cjs.js +29 -1
  240. package/objectMergeWithDefaults.esm.js +29 -1
  241. package/objectOmit.cjs.js +9 -1
  242. package/objectOmit.esm.js +9 -1
  243. package/objectPick.cjs.js +6 -1
  244. package/objectPick.esm.js +6 -1
  245. package/objectSort.cjs.js +8 -1
  246. package/objectSort.esm.js +8 -1
  247. package/objectSortByKeysMatching.cjs.js +9 -1
  248. package/objectSortByKeysMatching.esm.js +9 -1
  249. package/objectToArray.cjs.js +6 -1
  250. package/objectToArray.esm.js +6 -1
  251. package/package.json +1 -1
  252. package/parseCookie.cjs.js +13 -1
  253. package/parseCookie.esm.js +13 -1
  254. package/parseURL.cjs.js +6 -1
  255. package/parseURL.esm.js +6 -1
  256. package/quaranteneProps.cjs.js +17 -1
  257. package/quaranteneProps.esm.js +17 -1
  258. package/randomInt.cjs.js +5 -1
  259. package/randomInt.esm.js +5 -1
  260. package/randomKey.cjs.js +6 -1
  261. package/randomKey.esm.js +6 -1
  262. package/readCookie.cjs.js +5 -1
  263. package/readCookie.esm.js +5 -1
  264. package/removeAccents.cjs.js +3 -1
  265. package/removeAccents.esm.js +3 -1
  266. package/removeCookie.cjs.js +3 -1
  267. package/removeCookie.esm.js +3 -1
  268. package/removeDuplicates.cjs.js +8 -1
  269. package/removeDuplicates.esm.js +8 -1
  270. package/removeDuplicatesByKey.cjs.js +6 -1
  271. package/removeDuplicatesByKey.esm.js +6 -1
  272. package/removeDuplicatesComparing.cjs.js +3 -1
  273. package/removeDuplicatesComparing.esm.js +3 -1
  274. package/removeIndexesFromArray.cjs.js +4 -1
  275. package/removeIndexesFromArray.esm.js +4 -1
  276. package/removeTrailingSlash.cjs.js +5 -1
  277. package/removeTrailingSlash.esm.js +5 -1
  278. package/removeUrlQueryParams.cjs.js +5 -1
  279. package/removeUrlQueryParams.esm.js +5 -1
  280. package/render.cjs.js +52 -1
  281. package/render.esm.js +52 -1
  282. package/round.cjs.js +11 -1
  283. package/round.esm.js +11 -1
  284. package/roundTo.cjs.js +22 -1
  285. package/roundTo.esm.js +22 -1
  286. package/serializeCookie.cjs.js +13 -1
  287. package/serializeCookie.esm.js +13 -1
  288. package/setCookie.cjs.js +11 -1
  289. package/setCookie.esm.js +11 -1
  290. package/shuffle.cjs.js +15 -1
  291. package/shuffle.esm.js +15 -1
  292. package/slugify.cjs.js +19 -1
  293. package/slugify.esm.js +19 -1
  294. package/split.cjs.js +6 -1
  295. package/split.esm.js +6 -1
  296. package/splitReverse.cjs.js +6 -1
  297. package/splitReverse.esm.js +6 -1
  298. package/swapMap.cjs.js +5 -1
  299. package/swapMap.esm.js +5 -1
  300. package/throttle.cjs.js +6 -1
  301. package/throttle.esm.js +6 -1
  302. package/toNumber.cjs.js +5 -1
  303. package/toNumber.esm.js +5 -1
  304. package/toRgba.cjs.js +5 -1
  305. package/toRgba.esm.js +5 -1
  306. package/transformToUrlPathname.cjs.js +9 -1
  307. package/transformToUrlPathname.esm.js +9 -1
  308. package/truncate.cjs.js +5 -1
  309. package/truncate.esm.js +5 -1
  310. package/tryUntil.cjs.js +14 -1
  311. package/tryUntil.esm.js +14 -1
  312. package/uid.cjs.js +5 -1
  313. package/uid.esm.js +5 -1
  314. package/updateLinkParams.cjs.js +7 -1
  315. package/updateLinkParams.esm.js +7 -1
  316. package/updateUrlQueryParams.cjs.js +5 -1
  317. package/updateUrlQueryParams.esm.js +5 -1
  318. package/uppercase.cjs.js +6 -1
  319. package/uppercase.esm.js +6 -1
  320. package/uuid.cjs.js +6 -1
  321. package/uuid.esm.js +6 -1
  322. package/uuidNumeric.cjs.js +4 -1
  323. package/uuidNumeric.esm.js +4 -1
  324. package/wait.cjs.js +5 -1
  325. package/wait.esm.js +5 -1
@@ -1,6 +1,8 @@
1
1
  import { findDuplicatedIndexes } from './findDuplicatedIndexes.esm.js';
2
2
  import { removeIndexesFromArray } from './removeIndexesFromArray.esm.js';
3
3
 
4
- let removeDuplicatesComparing=(o,m)=>removeIndexesFromArray(m,findDuplicatedIndexes(o));
4
+ /**
5
+ * @category array
6
+ */let removeDuplicatesComparing=(o,m)=>removeIndexesFromArray(m,findDuplicatedIndexes(o));
5
7
 
6
8
  export { removeDuplicatesComparing as default, removeDuplicatesComparing };
@@ -2,7 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let removeIndexesFromArray=(e,r)=>{let t=[];for(let o=0;o<e.length;o++)r.hasOwnProperty(o)||t.push(e[o]);return t};
5
+ /**
6
+ * @category array
7
+ */let removeIndexesFromArray=(e,r)=>{let t=[];for(let o=0;o<e.length;o++)// eslint-disable-next-line no-prototype-builtins
8
+ r.hasOwnProperty(o)||t.push(e[o]);return t};
6
9
 
7
10
  exports["default"] = removeIndexesFromArray;
8
11
  exports.removeIndexesFromArray = removeIndexesFromArray;
@@ -1,3 +1,6 @@
1
- let removeIndexesFromArray=(e,r)=>{let t=[];for(let o=0;o<e.length;o++)r.hasOwnProperty(o)||t.push(e[o]);return t};
1
+ /**
2
+ * @category array
3
+ */let removeIndexesFromArray=(e,r)=>{let t=[];for(let o=0;o<e.length;o++)// eslint-disable-next-line no-prototype-builtins
4
+ r.hasOwnProperty(o)||t.push(e[o]);return t};
2
5
 
3
6
  export { removeIndexesFromArray as default, removeIndexesFromArray };
@@ -2,7 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let removeTrailingSlash=e=>(e||"").replace(/\/*$/,"");
5
+ /**
6
+ * Strips out the trailing slash
7
+ *
8
+ * @category location
9
+ */let removeTrailingSlash=e=>(e||"").replace(/\/*$/,"");
6
10
 
7
11
  exports["default"] = removeTrailingSlash;
8
12
  exports.removeTrailingSlash = removeTrailingSlash;
@@ -1,3 +1,7 @@
1
- let removeTrailingSlash=e=>(e||"").replace(/\/*$/,"");
1
+ /**
2
+ * Strips out the trailing slash
3
+ *
4
+ * @category location
5
+ */let removeTrailingSlash=e=>(e||"").replace(/\/*$/,"");
2
6
 
3
7
  export { removeTrailingSlash as default, removeTrailingSlash };
@@ -10,7 +10,11 @@ require('./isNull.cjs.js');
10
10
  require('./isUndefined.cjs.js');
11
11
  require('./isBrowser.cjs.js');
12
12
 
13
- let removeUrlQueryParams=(t,l=[])=>{let m=t.split("?"),o=getUrlQueryParams.getUrlQueryParams(t),u={};for(let r in o)l.includes(r)||(u[r]=o[r]);return m[0]+buildUrlQueryString.buildUrlQueryString(u)};
13
+ /**
14
+ * Remove the given keys from the given URL query parameters
15
+ *
16
+ * @category location
17
+ */let removeUrlQueryParams=(t,l=[])=>{let m=t.split("?"),o=getUrlQueryParams.getUrlQueryParams(t),u={};for(let r in o)l.includes(r)||(u[r]=o[r]);return m[0]+buildUrlQueryString.buildUrlQueryString(u)};
14
18
 
15
19
  exports["default"] = removeUrlQueryParams;
16
20
  exports.removeUrlQueryParams = removeUrlQueryParams;
@@ -6,6 +6,10 @@ import './isNull.esm.js';
6
6
  import './isUndefined.esm.js';
7
7
  import './isBrowser.esm.js';
8
8
 
9
- let removeUrlQueryParams=(t,l=[])=>{let m=t.split("?"),o=getUrlQueryParams(t),u={};for(let r in o)l.includes(r)||(u[r]=o[r]);return m[0]+buildUrlQueryString(u)};
9
+ /**
10
+ * Remove the given keys from the given URL query parameters
11
+ *
12
+ * @category location
13
+ */let removeUrlQueryParams=(t,l=[])=>{let m=t.split("?"),o=getUrlQueryParams(t),u={};for(let r in o)l.includes(r)||(u[r]=o[r]);return m[0]+buildUrlQueryString(u)};
10
14
 
11
15
  export { removeUrlQueryParams as default, removeUrlQueryParams };
package/render.cjs.js CHANGED
@@ -2,7 +2,58 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let e=/<%([\s\S]+?(\}?)+)%>/g,r=/<%=([\s\S]+?)%>/g,t=/<%\?(\?)?\s*([\s\S]*?)\s*%>/g,a=/<%~\s*(?:%>|([\s\S]+?)\s*:\s*([\w$]+)\s*(?::\s*([\w$]+))?\s*%>)/g,l=/<%#([\s\S]+?)%>/g,n=/(^|[^\w$])def(?:\.|\[['"])([\w$.]+)(?:['"]\])?\s*:\s*([\w$.]+|"[^"]+"|'[^']+'|\{[^}]+\})/g,p=/<%##\s*([\w.$]+)\s*(:|=)([\s\S]+?)#%>/g,s=/^\s*([\w$]+):([\s\S]+)/,c=/$^/,g=(e,r)=>("string"==typeof e?e:e.toString()).replace(p||c,(e,t,a,l)=>(0===t.indexOf("def.")&&(t=t.substring(4)),t in r||(":"===a?(l.replace(s,(e,a,l)=>{r[t]={arg:a,text:l};}),t in r||(r[t]=l)):Function("def","def['"+t+"']="+l)(r)),"")).replace(l||c,(e,t)=>{let a=Function("def","return "+(t=t.replace(n,(e,t,a,l)=>{if(r[a]&&r[a].arg&&l){let e=(a+":"+l).replace(/'|\\/g,"_");return r.__exp=r.__exp||{},r.__exp[e]=r[a].text.replace(RegExp("(^|[^\\w$])"+r[a].arg+"([^\\w$])","g"),"$1"+l+"$2"),t+"def.__exp['"+e+"']"}return t})))(r);return a?g(a,r):a}),i=e=>e.replace(/\\('|\\)/g,"$1").replace(/[\r\t\n]/g," ");let render=(n,s)=>{let o,$=0,f=l||p?g(n,s||{}):n;f=("var X='"+f.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,"").replace(/'|\\/g,"\\$&").replace(r||c,(e,r)=>"'+("+i(r)+")+'").replace(t||c,(e,r,t)=>r?t?"';}else if("+i(t)+"){X+='":"';}else{X+='":t?"';if("+i(t)+"){X+='":"';}X+='").replace(a||c,(e,r,t,a)=>r?($++,o=a||"i"+$,r=i(r),"';var arr"+$+"="+r+";if(arr"+$+"){var "+t+","+o+"=-1,l"+$+"=arr"+$+".length-1;while("+o+"<l"+$+"){"+t+"=arr"+$+"["+o+"+=1];X+='"):"';} } X+='").replace(e||c,(e,r)=>"';"+i(r)+"X+='")+"';return X;").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/(\s|;|\}|^|\{)X\+='';/g,"$1").replace(/\+''/g,"");try{return Function("data",f)}catch(e){if("development"===process.env.NODE_ENV)throw console.log("Could not create a template function: "+f),e}return ()=>""};
5
+ let e=/<%([\s\S]+?(\}?)+)%>/g,r=/<%=([\s\S]+?)%>/g,t=/<%\?(\?)?\s*([\s\S]*?)\s*%>/g,a=/<%~\s*(?:%>|([\s\S]+?)\s*:\s*([\w$]+)\s*(?::\s*([\w$]+))?\s*%>)/g,// let encode = /<%!([\s\S]+?)%>/g;
6
+ l=/<%#([\s\S]+?)%>/g,n=/(^|[^\w$])def(?:\.|\[['"])([\w$.]+)(?:['"]\])?\s*:\s*([\w$.]+|"[^"]+"|'[^']+'|\{[^}]+\})/g,p=/<%##\s*([\w.$]+)\s*(:|=)([\s\S]+?)#%>/g,s=/^\s*([\w$]+):([\s\S]+)/,// let startencode = "'+encodeHTML(";
7
+ c=/$^/,g=(e,r)=>("string"==typeof e?e:e.toString()).replace(p||c,(e,t,a,l)=>(0===t.indexOf("def.")&&(t=t.substring(4)),t in r||(":"===a?(l.replace(s,// @ts-expect-error nevermind
8
+ (e,a,l)=>{r[t]={arg:a,text:l};}),// @ts-expect-error nevermind
9
+ t in r||(r[t]=l)):Function("def","def['"+t+"']="+l)(r)),"")).replace(l||c,(e,t)=>{let a=Function("def","return "+(t=t.replace(n,(e,t,a,l)=>{if(r[a]&&r[a].arg&&l){let e=(a+":"+l).replace(/'|\\/g,"_");return r.__exp=r.__exp||{},r.__exp[e]=r[a].text.replace(RegExp("(^|[^\\w$])"+r[a].arg+"([^\\w$])","g"),"$1"+l+"$2"),t+"def.__exp['"+e+"']"}return t})))(r);return a?g(a,r):a}),i=e=>e.replace(/\\('|\\)/g,"$1").replace(/[\r\t\n]/g," ");/**
10
+ * Render template (adapted from doT.js)
11
+ *
12
+ * The data made available to the template is always on the `data` key, e.g.:
13
+ * `renderer({ myVal: "xx" })`
14
+ * ... will be accessible on
15
+ * `<%= data.myVal %>`
16
+ *
17
+ * The default delimiters are customised to work without conflicts with Blade and Twig:
18
+ * ```
19
+ * <% %> for evaluation
20
+ * <%= %> for interpolation
21
+ * <%? %> for conditionals
22
+ * <%~ %> for array iteration
23
+ * <%# %> for compile-time evaluation/includes and partials
24
+ * <%## #%> for compile-time defines
25
+ *
26
+ * Unsupported:
27
+ * <%! %> for interpolation with encoding
28
+ * ```
29
+ *
30
+ * @category impl
31
+ * @example
32
+ *
33
+ * ```ts
34
+ * import { render } from "...";
35
+ *
36
+ * const data = { name: "XYZ" };
37
+ * const tpl = `Hello <%= data.name %>`;
38
+ * const renderer = render(tpl);
39
+ *
40
+ * console.log(renderer(data)); // outputs 'Hello XYZ'
41
+ * ```
42
+ *
43
+ * @borrows [olado/doT by Laura Doktorova](https://github.com/olado/doT)
44
+ * @see https://olado.github.io/doT/index.html
45
+ */let render=(n,s)=>{let o,$=0,f=l||p?g(n,s||{}):n;f=("var X='"+f.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,"").replace(/'|\\/g,"\\$&").replace(r||c,(e,r)=>"'+("+i(r)+")+'").// .replace(
46
+ // encode || skip,
47
+ // (_, code) => cse.startencode + unescape(code) + cse.end
48
+ // )
49
+ replace(t||c,(e,r,t)=>r?t?"';}else if("+i(t)+"){X+='":"';}else{X+='":t?"';if("+i(t)+"){X+='":"';}X+='").replace(a||c,(e,r,t,a)=>r?($++,o=a||"i"+$,r=i(r),"';var arr"+$+"="+r+";if(arr"+$+"){var "+t+","+o+"=-1,l"+$+"=arr"+$+".length-1;while("+o+"<l"+$+"){"+t+"=arr"+$+"["+o+"+=1];X+='"):"';} } X+='").replace(e||c,(e,r)=>"';"+i(r)+"X+='")+"';return X;").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/(\s|;|\}|^|\{)X\+='';/g,"$1").replace(/\+''/g,"");//.replace(/(\s|;|\}|^|\{)X\+=''\+/g,'$1X+=');
50
+ try{return Function(// RenderData;
51
+ /**
52
+ * Returned render function
53
+ *//**
54
+ * Default render function creator
55
+ */// eslint-disable-next-line @typescript-eslint/no-unused-vars
56
+ "data",f)}catch(e){if("development"===process.env.NODE_ENV)throw console.log("Could not create a template function: "+f),e}return ()=>""};
6
57
 
7
58
  exports["default"] = render;
8
59
  exports.render = render;
package/render.esm.js CHANGED
@@ -1,3 +1,54 @@
1
- let e=/<%([\s\S]+?(\}?)+)%>/g,r=/<%=([\s\S]+?)%>/g,t=/<%\?(\?)?\s*([\s\S]*?)\s*%>/g,a=/<%~\s*(?:%>|([\s\S]+?)\s*:\s*([\w$]+)\s*(?::\s*([\w$]+))?\s*%>)/g,l=/<%#([\s\S]+?)%>/g,n=/(^|[^\w$])def(?:\.|\[['"])([\w$.]+)(?:['"]\])?\s*:\s*([\w$.]+|"[^"]+"|'[^']+'|\{[^}]+\})/g,p=/<%##\s*([\w.$]+)\s*(:|=)([\s\S]+?)#%>/g,s=/^\s*([\w$]+):([\s\S]+)/,c=/$^/,g=(e,r)=>("string"==typeof e?e:e.toString()).replace(p||c,(e,t,a,l)=>(0===t.indexOf("def.")&&(t=t.substring(4)),t in r||(":"===a?(l.replace(s,(e,a,l)=>{r[t]={arg:a,text:l};}),t in r||(r[t]=l)):Function("def","def['"+t+"']="+l)(r)),"")).replace(l||c,(e,t)=>{let a=Function("def","return "+(t=t.replace(n,(e,t,a,l)=>{if(r[a]&&r[a].arg&&l){let e=(a+":"+l).replace(/'|\\/g,"_");return r.__exp=r.__exp||{},r.__exp[e]=r[a].text.replace(RegExp("(^|[^\\w$])"+r[a].arg+"([^\\w$])","g"),"$1"+l+"$2"),t+"def.__exp['"+e+"']"}return t})))(r);return a?g(a,r):a}),i=e=>e.replace(/\\('|\\)/g,"$1").replace(/[\r\t\n]/g," ");let render=(n,s)=>{let o,$=0,f=l||p?g(n,s||{}):n;f=("var X='"+f.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,"").replace(/'|\\/g,"\\$&").replace(r||c,(e,r)=>"'+("+i(r)+")+'").replace(t||c,(e,r,t)=>r?t?"';}else if("+i(t)+"){X+='":"';}else{X+='":t?"';if("+i(t)+"){X+='":"';}X+='").replace(a||c,(e,r,t,a)=>r?($++,o=a||"i"+$,r=i(r),"';var arr"+$+"="+r+";if(arr"+$+"){var "+t+","+o+"=-1,l"+$+"=arr"+$+".length-1;while("+o+"<l"+$+"){"+t+"=arr"+$+"["+o+"+=1];X+='"):"';} } X+='").replace(e||c,(e,r)=>"';"+i(r)+"X+='")+"';return X;").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/(\s|;|\}|^|\{)X\+='';/g,"$1").replace(/\+''/g,"");try{return Function("data",f)}catch(e){if("development"===process.env.NODE_ENV)throw console.log("Could not create a template function: "+f),e}return ()=>""};
1
+ let e=/<%([\s\S]+?(\}?)+)%>/g,r=/<%=([\s\S]+?)%>/g,t=/<%\?(\?)?\s*([\s\S]*?)\s*%>/g,a=/<%~\s*(?:%>|([\s\S]+?)\s*:\s*([\w$]+)\s*(?::\s*([\w$]+))?\s*%>)/g,// let encode = /<%!([\s\S]+?)%>/g;
2
+ l=/<%#([\s\S]+?)%>/g,n=/(^|[^\w$])def(?:\.|\[['"])([\w$.]+)(?:['"]\])?\s*:\s*([\w$.]+|"[^"]+"|'[^']+'|\{[^}]+\})/g,p=/<%##\s*([\w.$]+)\s*(:|=)([\s\S]+?)#%>/g,s=/^\s*([\w$]+):([\s\S]+)/,// let startencode = "'+encodeHTML(";
3
+ c=/$^/,g=(e,r)=>("string"==typeof e?e:e.toString()).replace(p||c,(e,t,a,l)=>(0===t.indexOf("def.")&&(t=t.substring(4)),t in r||(":"===a?(l.replace(s,// @ts-expect-error nevermind
4
+ (e,a,l)=>{r[t]={arg:a,text:l};}),// @ts-expect-error nevermind
5
+ t in r||(r[t]=l)):Function("def","def['"+t+"']="+l)(r)),"")).replace(l||c,(e,t)=>{let a=Function("def","return "+(t=t.replace(n,(e,t,a,l)=>{if(r[a]&&r[a].arg&&l){let e=(a+":"+l).replace(/'|\\/g,"_");return r.__exp=r.__exp||{},r.__exp[e]=r[a].text.replace(RegExp("(^|[^\\w$])"+r[a].arg+"([^\\w$])","g"),"$1"+l+"$2"),t+"def.__exp['"+e+"']"}return t})))(r);return a?g(a,r):a}),i=e=>e.replace(/\\('|\\)/g,"$1").replace(/[\r\t\n]/g," ");/**
6
+ * Render template (adapted from doT.js)
7
+ *
8
+ * The data made available to the template is always on the `data` key, e.g.:
9
+ * `renderer({ myVal: "xx" })`
10
+ * ... will be accessible on
11
+ * `<%= data.myVal %>`
12
+ *
13
+ * The default delimiters are customised to work without conflicts with Blade and Twig:
14
+ * ```
15
+ * <% %> for evaluation
16
+ * <%= %> for interpolation
17
+ * <%? %> for conditionals
18
+ * <%~ %> for array iteration
19
+ * <%# %> for compile-time evaluation/includes and partials
20
+ * <%## #%> for compile-time defines
21
+ *
22
+ * Unsupported:
23
+ * <%! %> for interpolation with encoding
24
+ * ```
25
+ *
26
+ * @category impl
27
+ * @example
28
+ *
29
+ * ```ts
30
+ * import { render } from "...";
31
+ *
32
+ * const data = { name: "XYZ" };
33
+ * const tpl = `Hello <%= data.name %>`;
34
+ * const renderer = render(tpl);
35
+ *
36
+ * console.log(renderer(data)); // outputs 'Hello XYZ'
37
+ * ```
38
+ *
39
+ * @borrows [olado/doT by Laura Doktorova](https://github.com/olado/doT)
40
+ * @see https://olado.github.io/doT/index.html
41
+ */let render=(n,s)=>{let o,$=0,f=l||p?g(n,s||{}):n;f=("var X='"+f.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,"").replace(/'|\\/g,"\\$&").replace(r||c,(e,r)=>"'+("+i(r)+")+'").// .replace(
42
+ // encode || skip,
43
+ // (_, code) => cse.startencode + unescape(code) + cse.end
44
+ // )
45
+ replace(t||c,(e,r,t)=>r?t?"';}else if("+i(t)+"){X+='":"';}else{X+='":t?"';if("+i(t)+"){X+='":"';}X+='").replace(a||c,(e,r,t,a)=>r?($++,o=a||"i"+$,r=i(r),"';var arr"+$+"="+r+";if(arr"+$+"){var "+t+","+o+"=-1,l"+$+"=arr"+$+".length-1;while("+o+"<l"+$+"){"+t+"=arr"+$+"["+o+"+=1];X+='"):"';} } X+='").replace(e||c,(e,r)=>"';"+i(r)+"X+='")+"';return X;").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/(\s|;|\}|^|\{)X\+='';/g,"$1").replace(/\+''/g,"");//.replace(/(\s|;|\}|^|\{)X\+=''\+/g,'$1X+=');
46
+ try{return Function(// RenderData;
47
+ /**
48
+ * Returned render function
49
+ *//**
50
+ * Default render function creator
51
+ */// eslint-disable-next-line @typescript-eslint/no-unused-vars
52
+ "data",f)}catch(e){if("development"===process.env.NODE_ENV)throw console.log("Could not create a template function: "+f),e}return ()=>""};
2
53
 
3
54
  export { render as default, render };
package/round.cjs.js CHANGED
@@ -2,7 +2,17 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let round=(e,r,t)=>r?parseFloat(e.toFixed(r).replace(t?"":/\.+0*$/,"")):parseInt(e+"",10);
5
+ /**
6
+ * Round a number to the given amount of decimals
7
+ *
8
+ * If `keepZeroes` is `false` we normalises `x.00` to `x` and `x.10` to `x.1`
9
+ *
10
+ * @category number
11
+ *
12
+ * @param number
13
+ * @param decimals default `undefined`
14
+ * @param trailingZeroes default `undefined` Whether to keep trailing zeroes
15
+ */let round=(e,r,t)=>r?parseFloat(e.toFixed(r).replace(t?"":/\.+0*$/,"")):parseInt(e+"",10);
6
16
 
7
17
  exports["default"] = round;
8
18
  exports.round = round;
package/round.esm.js CHANGED
@@ -1,3 +1,13 @@
1
- let round=(e,r,t)=>r?parseFloat(e.toFixed(r).replace(t?"":/\.+0*$/,"")):parseInt(e+"",10);
1
+ /**
2
+ * Round a number to the given amount of decimals
3
+ *
4
+ * If `keepZeroes` is `false` we normalises `x.00` to `x` and `x.10` to `x.1`
5
+ *
6
+ * @category number
7
+ *
8
+ * @param number
9
+ * @param decimals default `undefined`
10
+ * @param trailingZeroes default `undefined` Whether to keep trailing zeroes
11
+ */let round=(e,r,t)=>r?parseFloat(e.toFixed(r).replace(t?"":/\.+0*$/,"")):parseInt(e+"",10);
2
12
 
3
13
  export { round as default, round };
package/roundTo.cjs.js CHANGED
@@ -2,7 +2,28 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let roundTo=(e,n=2)=>{if(isFinite(e)&&!isNaN(e)){let o=Math.pow(10,n);return Math.round(e*o)/o+""}return "development"===process.env.NODE_ENV&&console.warn("[@koine/utils] math:roundTo -> given not a finite number as first arg"),""};
5
+ /**
6
+ * Round to given number of the given number of decimals
7
+ *
8
+ * @category math
9
+ * @see https://stackoverflow.com/a/15762794/1938970
10
+ */let roundTo=(e,n=2)=>{if(isFinite(e)&&!isNaN(e)){// method 1
11
+ // return Number(num).toFixed(decimals);
12
+ // method 2: @see https://stackoverflow.com/a/43532829/1938970
13
+ let o=Math.pow(10,n);return Math.round(e*o)/o+""}return("development"===// method 3: @see https://stackoverflow.com/a/15762794/1938970
14
+ // let negative = false;
15
+ // if (num < 0) {
16
+ // negative = true;
17
+ // num = num * -1;
18
+ // }
19
+ // const multiplicator = Math.pow(10, decimals);
20
+ // const outputStr = parseFloat((num * multiplicator).toFixed(11));
21
+ // let outputNum = (Math.round(outputStr) / multiplicator).toFixed(decimals);
22
+ // if (negative) {
23
+ // return (Number(outputNum) * -1).toFixed(decimals);
24
+ // }
25
+ // return outputNum;
26
+ process.env.NODE_ENV&&console.warn("[@koine/utils] math:roundTo -> given not a finite number as first arg"),"")};
6
27
 
7
28
  exports["default"] = roundTo;
8
29
  exports.roundTo = roundTo;
package/roundTo.esm.js CHANGED
@@ -1,3 +1,24 @@
1
- let roundTo=(e,n=2)=>{if(isFinite(e)&&!isNaN(e)){let o=Math.pow(10,n);return Math.round(e*o)/o+""}return "development"===process.env.NODE_ENV&&console.warn("[@koine/utils] math:roundTo -> given not a finite number as first arg"),""};
1
+ /**
2
+ * Round to given number of the given number of decimals
3
+ *
4
+ * @category math
5
+ * @see https://stackoverflow.com/a/15762794/1938970
6
+ */let roundTo=(e,n=2)=>{if(isFinite(e)&&!isNaN(e)){// method 1
7
+ // return Number(num).toFixed(decimals);
8
+ // method 2: @see https://stackoverflow.com/a/43532829/1938970
9
+ let o=Math.pow(10,n);return Math.round(e*o)/o+""}return("development"===// method 3: @see https://stackoverflow.com/a/15762794/1938970
10
+ // let negative = false;
11
+ // if (num < 0) {
12
+ // negative = true;
13
+ // num = num * -1;
14
+ // }
15
+ // const multiplicator = Math.pow(10, decimals);
16
+ // const outputStr = parseFloat((num * multiplicator).toFixed(11));
17
+ // let outputNum = (Math.round(outputStr) / multiplicator).toFixed(decimals);
18
+ // if (negative) {
19
+ // return (Number(outputNum) * -1).toFixed(decimals);
20
+ // }
21
+ // return outputNum;
22
+ process.env.NODE_ENV&&console.warn("[@koine/utils] math:roundTo -> given not a finite number as first arg"),"")};
2
23
 
3
24
  export { roundTo as default, roundTo };
@@ -5,7 +5,19 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var isNumber = require('./isNumber.cjs.js');
6
6
  require('./getType.cjs.js');
7
7
 
8
- let i=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;let serializeCookie=(t,o,r={})=>{let{encode:n=encodeURIComponent,domain:a,path:s,httpOnly:p,secure:l,sameSite:f}=r,{maxAge:m,expires:c}=r,d=n(o);if("development"===process.env.NODE_ENV){if(!i.test(t))throw TypeError("argument name is invalid");if("function"!=typeof r.encode)throw TypeError("option encode is invalid");if(d&&!i.test(d))throw TypeError("argument val is invalid")}let u=t+"="+d;if(null!=m){if(isNaN(m-=0)||!isFinite(m))throw TypeError("option maxAge is invalid");u+="; Max-Age="+Math.floor(m);}if(a){if("development"===process.env.NODE_ENV&&!i.test(a))throw TypeError("option domain is invalid");u+="; Domain="+a;}if(s){if("development"===process.env.NODE_ENV&&!i.test(s))throw TypeError("option path is invalid");u+="; Path="+s;}if(c&&(isNumber.isNumber(c)&&(c=new Date(Date.now()+864e5*c)),u+="; Expires="+c.toUTCString()),p&&(u+="; HttpOnly"),l&&(u+="; Secure"),f)switch(f.toLowerCase()){case"lax":u+="; SameSite=Lax";break;case"strict":u+="; SameSite=Strict";break;case"none":u+="; SameSite=None";}return u};
8
+ let i=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;/**
9
+ * Serialize data into a cookie header.
10
+ *
11
+ * Serialize the a name value pair into a cookie string suitable for
12
+ * http headers. An optional attributes object specified cookie parameters.
13
+ *
14
+ * serialize('foo', 'bar', { httpOnly: true })
15
+ * => "foo=bar; httpOnly"
16
+ *
17
+ * @category cookie
18
+ */let serializeCookie=(t,o,r={})=>{let{encode:n=encodeURIComponent,domain:a,path:s,httpOnly:p,secure:l,sameSite:f}=r,{maxAge:m,expires:c}=r,d=n(o);if("development"===process.env.NODE_ENV){if(!i.test(t))throw TypeError("argument name is invalid");if("function"!=typeof r.encode)throw TypeError("option encode is invalid");if(d&&!i.test(d))throw TypeError("argument val is invalid")}let u=t+"="+d;if(null!=m){if(isNaN(m-=0)||!isFinite(m))throw TypeError("option maxAge is invalid");u+="; Max-Age="+Math.floor(m);}if(a){if("development"===process.env.NODE_ENV&&!i.test(a))throw TypeError("option domain is invalid");u+="; Domain="+a;}if(s){if("development"===process.env.NODE_ENV&&!i.test(s))throw TypeError("option path is invalid");u+="; Path="+s;}if(c&&(isNumber.isNumber(c)&&(c=new Date(Date.now()+864e5*c)),u+="; Expires="+c.toUTCString()),p&&(u+="; HttpOnly"),l&&(u+="; Secure"),f)switch(f.toLowerCase()){case"lax":u+="; SameSite=Lax";break;case"strict":u+="; SameSite=Strict";break;case"none":u+="; SameSite=None";}// default:
19
+ // throw new TypeError('option sameSite is invalid');
20
+ return u};
9
21
 
10
22
  exports["default"] = serializeCookie;
11
23
  exports.serializeCookie = serializeCookie;
@@ -1,6 +1,18 @@
1
1
  import { isNumber } from './isNumber.esm.js';
2
2
  import './getType.esm.js';
3
3
 
4
- let i=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;let serializeCookie=(t,o,r={})=>{let{encode:n=encodeURIComponent,domain:a,path:s,httpOnly:p,secure:l,sameSite:f}=r,{maxAge:m,expires:c}=r,d=n(o);if("development"===process.env.NODE_ENV){if(!i.test(t))throw TypeError("argument name is invalid");if("function"!=typeof r.encode)throw TypeError("option encode is invalid");if(d&&!i.test(d))throw TypeError("argument val is invalid")}let u=t+"="+d;if(null!=m){if(isNaN(m-=0)||!isFinite(m))throw TypeError("option maxAge is invalid");u+="; Max-Age="+Math.floor(m);}if(a){if("development"===process.env.NODE_ENV&&!i.test(a))throw TypeError("option domain is invalid");u+="; Domain="+a;}if(s){if("development"===process.env.NODE_ENV&&!i.test(s))throw TypeError("option path is invalid");u+="; Path="+s;}if(c&&(isNumber(c)&&(c=new Date(Date.now()+864e5*c)),u+="; Expires="+c.toUTCString()),p&&(u+="; HttpOnly"),l&&(u+="; Secure"),f)switch(f.toLowerCase()){case"lax":u+="; SameSite=Lax";break;case"strict":u+="; SameSite=Strict";break;case"none":u+="; SameSite=None";}return u};
4
+ let i=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;/**
5
+ * Serialize data into a cookie header.
6
+ *
7
+ * Serialize the a name value pair into a cookie string suitable for
8
+ * http headers. An optional attributes object specified cookie parameters.
9
+ *
10
+ * serialize('foo', 'bar', { httpOnly: true })
11
+ * => "foo=bar; httpOnly"
12
+ *
13
+ * @category cookie
14
+ */let serializeCookie=(t,o,r={})=>{let{encode:n=encodeURIComponent,domain:a,path:s,httpOnly:p,secure:l,sameSite:f}=r,{maxAge:m,expires:c}=r,d=n(o);if("development"===process.env.NODE_ENV){if(!i.test(t))throw TypeError("argument name is invalid");if("function"!=typeof r.encode)throw TypeError("option encode is invalid");if(d&&!i.test(d))throw TypeError("argument val is invalid")}let u=t+"="+d;if(null!=m){if(isNaN(m-=0)||!isFinite(m))throw TypeError("option maxAge is invalid");u+="; Max-Age="+Math.floor(m);}if(a){if("development"===process.env.NODE_ENV&&!i.test(a))throw TypeError("option domain is invalid");u+="; Domain="+a;}if(s){if("development"===process.env.NODE_ENV&&!i.test(s))throw TypeError("option path is invalid");u+="; Path="+s;}if(c&&(isNumber(c)&&(c=new Date(Date.now()+864e5*c)),u+="; Expires="+c.toUTCString()),p&&(u+="; HttpOnly"),l&&(u+="; Secure"),f)switch(f.toLowerCase()){case"lax":u+="; SameSite=Lax";break;case"strict":u+="; SameSite=Strict";break;case"none":u+="; SameSite=None";}// default:
15
+ // throw new TypeError('option sameSite is invalid');
16
+ return u};
5
17
 
6
18
  export { serializeCookie as default, serializeCookie };
package/setCookie.cjs.js CHANGED
@@ -7,7 +7,17 @@ var isNumber = require('./isNumber.cjs.js');
7
7
  var isUndefined = require('./isUndefined.cjs.js');
8
8
  require('./getType.cjs.js');
9
9
 
10
- let n=e=>encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent);let setCookie=(r,i,p={})=>{let {expires:c,...d}=p;({expires:"",...cookie.defaultAttributesClient,...d});if(isUndefined.isUndefined(document)){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:setCookie] document is undefined");return}isNumber.isNumber(c)&&(c=new Date(Date.now()+864e5*c)),c&&(c.toUTCString()),r=encodeURIComponent(r).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);let s="";for(let e in p)p[e]&&(s+="; "+e,!0!==p[e]&&(s+="="+String(p[e]).split(";")[0]));return document.cookie=r+"="+n(i)+s};
10
+ let n=e=>encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent);/**
11
+ * @category cookie
12
+ */let setCookie=(r,i,p={})=>{// eslint-disable-next-line prefer-const
13
+ let {expires:c,...d}=p;({expires:"",...cookie.defaultAttributesClient,...d});if(isUndefined.isUndefined(document)){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:setCookie] document is undefined");return}isNumber.isNumber(c)&&(c=new Date(Date.now()+864e5*c)),c&&(c.toUTCString()),r=encodeURIComponent(r).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);let s="";for(let e in p)p[e]&&(s+="; "+e,!0!==p[e]&&// Considers RFC 6265 section 5.2:
14
+ // ...
15
+ // 3. If the remaining unparsed-attributes contains a %x3B (";")
16
+ // character:
17
+ // Consume the characters of the unparsed-attributes up to,
18
+ // not including, the first %x3B (";") character.
19
+ // ...
20
+ (s+="="+String(p[e]).split(";")[0]));return document.cookie=r+"="+n(i)+s};
11
21
 
12
22
  exports["default"] = setCookie;
13
23
  exports.setCookie = setCookie;
package/setCookie.esm.js CHANGED
@@ -3,6 +3,16 @@ import { isNumber } from './isNumber.esm.js';
3
3
  import { isUndefined } from './isUndefined.esm.js';
4
4
  import './getType.esm.js';
5
5
 
6
- let n=e=>encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent);let setCookie=(r,i,p={})=>{let {expires:c,...d}=p;({expires:"",...defaultAttributesClient,...d});if(isUndefined(document)){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:setCookie] document is undefined");return}isNumber(c)&&(c=new Date(Date.now()+864e5*c)),c&&(c.toUTCString()),r=encodeURIComponent(r).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);let s="";for(let e in p)p[e]&&(s+="; "+e,!0!==p[e]&&(s+="="+String(p[e]).split(";")[0]));return document.cookie=r+"="+n(i)+s};
6
+ let n=e=>encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent);/**
7
+ * @category cookie
8
+ */let setCookie=(r,i,p={})=>{// eslint-disable-next-line prefer-const
9
+ let {expires:c,...d}=p;({expires:"",...defaultAttributesClient,...d});if(isUndefined(document)){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:setCookie] document is undefined");return}isNumber(c)&&(c=new Date(Date.now()+864e5*c)),c&&(c.toUTCString()),r=encodeURIComponent(r).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);let s="";for(let e in p)p[e]&&(s+="; "+e,!0!==p[e]&&// Considers RFC 6265 section 5.2:
10
+ // ...
11
+ // 3. If the remaining unparsed-attributes contains a %x3B (";")
12
+ // character:
13
+ // Consume the characters of the unparsed-attributes up to,
14
+ // not including, the first %x3B (";") character.
15
+ // ...
16
+ (s+="="+String(p[e]).split(";")[0]));return document.cookie=r+"="+n(i)+s};
7
17
 
8
18
  export { setCookie as default, setCookie };
package/shuffle.cjs.js CHANGED
@@ -2,7 +2,21 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let shuffle=e=>{let t=null==e?0:e.length;if(!t)return [];let l=-1,r=t-1,f=[...e];for(;++l<t;){let e=l+Math.floor(Math.random()*(r-l+1)),t=f[e];f[e]=f[l],f[l]=t;}return f};
5
+ /**
6
+ * Creates an array of shuffled values, using a version of the
7
+ * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).
8
+ *
9
+ * @category array
10
+ * @borrows [lodash.shuffle](https://github.com/lodash/lodash/blob/master/shuffle.js)
11
+ * @example
12
+ * ```ts
13
+ * shuffle([1, 2, 3, 4])
14
+ * // => [4, 1, 3, 2]
15
+ * ```
16
+ *
17
+ * @param array The array to shuffle.
18
+ * @returns The new shuffled array.
19
+ */let shuffle=e=>{let t=null==e?0:e.length;if(!t)return [];let l=-1,r=t-1,f=[...e];for(;++l<t;){let e=l+Math.floor(Math.random()*(r-l+1)),t=f[e];f[e]=f[l],f[l]=t;}return f};
6
20
 
7
21
  exports["default"] = shuffle;
8
22
  exports.shuffle = shuffle;
package/shuffle.esm.js CHANGED
@@ -1,3 +1,17 @@
1
- let shuffle=e=>{let t=null==e?0:e.length;if(!t)return [];let l=-1,r=t-1,f=[...e];for(;++l<t;){let e=l+Math.floor(Math.random()*(r-l+1)),t=f[e];f[e]=f[l],f[l]=t;}return f};
1
+ /**
2
+ * Creates an array of shuffled values, using a version of the
3
+ * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).
4
+ *
5
+ * @category array
6
+ * @borrows [lodash.shuffle](https://github.com/lodash/lodash/blob/master/shuffle.js)
7
+ * @example
8
+ * ```ts
9
+ * shuffle([1, 2, 3, 4])
10
+ * // => [4, 1, 3, 2]
11
+ * ```
12
+ *
13
+ * @param array The array to shuffle.
14
+ * @returns The new shuffled array.
15
+ */let shuffle=e=>{let t=null==e?0:e.length;if(!t)return [];let l=-1,r=t-1,f=[...e];for(;++l<t;){let e=l+Math.floor(Math.random()*(r-l+1)),t=f[e];f[e]=f[l],f[l]=t;}return f};
2
16
 
3
17
  export { shuffle as default, shuffle };
package/slugify.cjs.js CHANGED
@@ -5,7 +5,25 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var accentsSets = require('./accentsSets.cjs.js');
6
6
  var removeAccents = require('./removeAccents.cjs.js');
7
7
 
8
- let slugify=(t,c="-")=>removeAccents.removeAccents(t.toString().toLowerCase().trim(),accentsSets.accentsSets.concat([["-","[·/_,:;']"]])).replace(/\s+/g,"-").replace(/[^a-zA-Z0-9_\u3400-\u9FBF\s-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"").replace(/-/g,c);
8
+ /**
9
+ * Slugify a text
10
+ *
11
+ * - replaces the accented letters
12
+ * - replaces the punctuation with dashes
13
+ *
14
+ * @category text
15
+ *
16
+ * @borrows [mathewbyrne's gist](https://gist.github.com/mathewbyrne/1280286#gistcomment-3498021)
17
+ */let slugify=(t,c="-")=>removeAccents.removeAccents(t.toString().toLowerCase().trim(),accentsSets.accentsSets.concat([["-","[·/_,:;']"]])).replace(/\s+/g,"-").// replace spaces with -
18
+ // .replace(/&/g, "-and-") // replace & with 'and'
19
+ // it used to be:
20
+ // .replace(/[^\w-]+/g, "") // remove all non-word chars
21
+ // and now with chinese support @see https://stackoverflow.com/a/25698970
22
+ replace(/[^a-zA-Z0-9_\u3400-\u9FBF\s-]+/g,"").// remove all non-word chars
23
+ replace(/--+/g,"-").// replace multiple - with single -
24
+ replace(/^-+/,"").// trim - from start of text
25
+ replace(/-+$/,"").// trim - from end of text
26
+ replace(/-/g,c);
9
27
 
10
28
  exports["default"] = slugify;
11
29
  exports.slugify = slugify;
package/slugify.esm.js CHANGED
@@ -1,6 +1,24 @@
1
1
  import { accentsSets } from './accentsSets.esm.js';
2
2
  import { removeAccents } from './removeAccents.esm.js';
3
3
 
4
- let slugify=(t,c="-")=>removeAccents(t.toString().toLowerCase().trim(),accentsSets.concat([["-","[·/_,:;']"]])).replace(/\s+/g,"-").replace(/[^a-zA-Z0-9_\u3400-\u9FBF\s-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"").replace(/-/g,c);
4
+ /**
5
+ * Slugify a text
6
+ *
7
+ * - replaces the accented letters
8
+ * - replaces the punctuation with dashes
9
+ *
10
+ * @category text
11
+ *
12
+ * @borrows [mathewbyrne's gist](https://gist.github.com/mathewbyrne/1280286#gistcomment-3498021)
13
+ */let slugify=(t,c="-")=>removeAccents(t.toString().toLowerCase().trim(),accentsSets.concat([["-","[·/_,:;']"]])).replace(/\s+/g,"-").// replace spaces with -
14
+ // .replace(/&/g, "-and-") // replace & with 'and'
15
+ // it used to be:
16
+ // .replace(/[^\w-]+/g, "") // remove all non-word chars
17
+ // and now with chinese support @see https://stackoverflow.com/a/25698970
18
+ replace(/[^a-zA-Z0-9_\u3400-\u9FBF\s-]+/g,"").// remove all non-word chars
19
+ replace(/--+/g,"-").// replace multiple - with single -
20
+ replace(/^-+/,"").// trim - from start of text
21
+ replace(/-+$/,"").// trim - from end of text
22
+ replace(/-/g,c);
5
23
 
6
24
  export { slugify as default, slugify };
package/split.cjs.js CHANGED
@@ -2,7 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let split=(t,l)=>t.split(l);
5
+ /**
6
+ * Quick typed replacement for `string.split("delimiter")`
7
+ *
8
+ * @category string
9
+ * @category text
10
+ */let split=(t,l)=>t.split(l);
6
11
 
7
12
  exports["default"] = split;
8
13
  exports.split = split;
package/split.esm.js CHANGED
@@ -1,3 +1,8 @@
1
- let split=(t,l)=>t.split(l);
1
+ /**
2
+ * Quick typed replacement for `string.split("delimiter")`
3
+ *
4
+ * @category string
5
+ * @category text
6
+ */let split=(t,l)=>t.split(l);
2
7
 
3
8
  export { split as default, split };
@@ -2,7 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let splitReverse=(e,t)=>e.split(t).reverse();
5
+ /**
6
+ * Quick typed replacement for `string.split("delimiter").reverse()`
7
+ *
8
+ * @category string
9
+ * @category text
10
+ */let splitReverse=(e,t)=>e.split(t).reverse();
6
11
 
7
12
  exports["default"] = splitReverse;
8
13
  exports.splitReverse = splitReverse;
@@ -1,3 +1,8 @@
1
- let splitReverse=(e,t)=>e.split(t).reverse();
1
+ /**
2
+ * Quick typed replacement for `string.split("delimiter").reverse()`
3
+ *
4
+ * @category string
5
+ * @category text
6
+ */let splitReverse=(e,t)=>e.split(t).reverse();
2
7
 
3
8
  export { splitReverse as default, splitReverse };
package/swapMap.cjs.js CHANGED
@@ -2,7 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let swapMap=(e={})=>{let t={};for(let p in e)t[e[p]]=p;return t};
5
+ /**
6
+ * Swap object map key/value
7
+ *
8
+ * @category object
9
+ */let swapMap=(e={})=>{let t={};for(let p in e)t[e[p]]=p;return t};
6
10
 
7
11
  exports["default"] = swapMap;
8
12
  exports.swapMap = swapMap;
package/swapMap.esm.js CHANGED
@@ -1,3 +1,7 @@
1
- let swapMap=(e={})=>{let t={};for(let p in e)t[e[p]]=p;return t};
1
+ /**
2
+ * Swap object map key/value
3
+ *
4
+ * @category object
5
+ */let swapMap=(e={})=>{let t={};for(let p in e)t[e[p]]=p;return t};
2
6
 
3
7
  export { swapMap as default, swapMap };
package/throttle.cjs.js CHANGED
@@ -2,7 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let throttle=(t,e,r)=>{let o;return function(...l){if(r=r||this,!o)return t.apply(r,...l),o=!0,setTimeout(function(){o=!1;},e)}};
5
+ /**
6
+ * Throttle function (e.g. for resize / scroll handlers)
7
+ *
8
+ * @category function
9
+ * @borrows [Mobius1/Rangeable](https://github.com/Mobius1/Rangeable/)
10
+ */let throttle=(t,e,r)=>{let o;return function(...l){if(r=r||this,!o)return t.apply(r,...l),o=!0,setTimeout(function(){o=!1;},e)}};
6
11
 
7
12
  exports["default"] = throttle;
8
13
  exports.throttle = throttle;
package/throttle.esm.js CHANGED
@@ -1,3 +1,8 @@
1
- let throttle=(t,e,r)=>{let o;return function(...l){if(r=r||this,!o)return t.apply(r,...l),o=!0,setTimeout(function(){o=!1;},e)}};
1
+ /**
2
+ * Throttle function (e.g. for resize / scroll handlers)
3
+ *
4
+ * @category function
5
+ * @borrows [Mobius1/Rangeable](https://github.com/Mobius1/Rangeable/)
6
+ */let throttle=(t,e,r)=>{let o;return function(...l){if(r=r||this,!o)return t.apply(r,...l),o=!0,setTimeout(function(){o=!1;},e)}};
2
7
 
3
8
  export { throttle as default, throttle };
package/toNumber.cjs.js CHANGED
@@ -5,7 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var isNumber = require('./isNumber.cjs.js');
6
6
  require('./getType.cjs.js');
7
7
 
8
- let toNumber=(r,t)=>isNumber.isNumber(r)?r:r?parseFloat(r):t||0;
8
+ /**
9
+ * @category cast
10
+ *
11
+ * @param fallback Defaults to `0`
12
+ */let toNumber=(r,t)=>isNumber.isNumber(r)?r:r?parseFloat(r):t||0;
9
13
 
10
14
  exports["default"] = toNumber;
11
15
  exports.toNumber = toNumber;
package/toNumber.esm.js CHANGED
@@ -1,6 +1,10 @@
1
1
  import { isNumber } from './isNumber.esm.js';
2
2
  import './getType.esm.js';
3
3
 
4
- let toNumber=(r,t)=>isNumber(r)?r:r?parseFloat(r):t||0;
4
+ /**
5
+ * @category cast
6
+ *
7
+ * @param fallback Defaults to `0`
8
+ */let toNumber=(r,t)=>isNumber(r)?r:r?parseFloat(r):t||0;
5
9
 
6
10
  export { toNumber as default, toNumber };