@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.
- package/Defer.cjs.js +20 -1
- package/Defer.esm.js +20 -1
- package/Emitter.cjs.js +18 -1
- package/Emitter.esm.js +18 -1
- package/accentsSets.cjs.js +13 -1
- package/accentsSets.esm.js +13 -1
- package/addOrReplaceAtIdx.cjs.js +7 -1
- package/addOrReplaceAtIdx.esm.js +7 -1
- package/areEqual.cjs.js +28 -1
- package/areEqual.esm.js +28 -1
- package/arrayFilterFalsy.cjs.js +6 -1
- package/arrayFilterFalsy.esm.js +6 -1
- package/arrayFindLastIndex.cjs.js +13 -1
- package/arrayFindLastIndex.esm.js +13 -1
- package/arrayOfAll.cjs.js +16 -1
- package/arrayOfAll.esm.js +16 -1
- package/arraySum.cjs.js +6 -1
- package/arraySum.esm.js +6 -1
- package/arrayToLookup.cjs.js +5 -1
- package/arrayToLookup.esm.js +5 -1
- package/arrayUniqueByProperties.cjs.js +8 -1
- package/arrayUniqueByProperties.esm.js +8 -1
- package/buildUrlQueryString.cjs.js +10 -1
- package/buildUrlQueryString.esm.js +10 -1
- package/capitalize.cjs.js +7 -1
- package/capitalize.esm.js +7 -1
- package/changeCaseCamel.cjs.js +7 -1
- package/changeCaseCamel.esm.js +7 -1
- package/changeCaseCapital.cjs.js +7 -1
- package/changeCaseCapital.esm.js +7 -1
- package/changeCaseConstant.cjs.js +7 -1
- package/changeCaseConstant.esm.js +7 -1
- package/changeCaseDot.cjs.js +7 -1
- package/changeCaseDot.esm.js +7 -1
- package/changeCaseHelpers.cjs.js +32 -1
- package/changeCaseHelpers.esm.js +32 -1
- package/changeCaseKebab.cjs.js +7 -1
- package/changeCaseKebab.esm.js +7 -1
- package/changeCaseNone.cjs.js +7 -1
- package/changeCaseNone.esm.js +7 -1
- package/changeCasePascal.cjs.js +7 -1
- package/changeCasePascal.esm.js +7 -1
- package/changeCasePascalSnake.cjs.js +7 -1
- package/changeCasePascalSnake.esm.js +7 -1
- package/changeCasePath.cjs.js +7 -1
- package/changeCasePath.esm.js +7 -1
- package/changeCaseSentence.cjs.js +7 -1
- package/changeCaseSentence.esm.js +7 -1
- package/changeCaseSnake.cjs.js +7 -1
- package/changeCaseSnake.esm.js +7 -1
- package/changeCaseTrain.cjs.js +7 -1
- package/changeCaseTrain.esm.js +7 -1
- package/chunkByChunks.cjs.js +5 -1
- package/chunkByChunks.esm.js +5 -1
- package/chunkBySize.cjs.js +4 -1
- package/chunkBySize.esm.js +4 -1
- package/clamp.cjs.js +6 -1
- package/clamp.esm.js +6 -1
- package/clsx.cjs.js +2 -1
- package/clsx.esm.js +2 -1
- package/convertRange.cjs.js +14 -1
- package/convertRange.esm.js +14 -1
- package/cookie.cjs.js +44 -1
- package/cookie.esm.js +44 -1
- package/createPalette.cjs.js +17 -1
- package/createPalette.esm.js +17 -1
- package/debounce.cjs.js +7 -1
- package/debounce.esm.js +7 -1
- package/debouncePromise.cjs.js +10 -1
- package/debouncePromise.esm.js +10 -1
- package/debounceRaf.cjs.js +4 -1
- package/debounceRaf.esm.js +4 -1
- package/decode.cjs.js +4 -1
- package/decode.esm.js +4 -1
- package/encode.cjs.js +4 -1
- package/encode.esm.js +4 -1
- package/ensureInt.cjs.js +5 -1
- package/ensureInt.esm.js +5 -1
- package/errorToString.cjs.js +6 -1
- package/errorToString.esm.js +6 -1
- package/escapeRegExp.cjs.js +7 -1
- package/escapeRegExp.esm.js +7 -1
- package/findDuplicatedIndexes.cjs.js +3 -1
- package/findDuplicatedIndexes.esm.js +3 -1
- package/forin.cjs.js +6 -1
- package/forin.esm.js +6 -1
- package/gbToBytes.cjs.js +5 -1
- package/gbToBytes.esm.js +5 -1
- package/getEmptyArray.cjs.js +6 -1
- package/getEmptyArray.esm.js +6 -1
- package/getKeys.cjs.js +8 -1
- package/getKeys.esm.js +8 -1
- package/getMediaQueryWidthResolvers.cjs.js +27 -1
- package/getMediaQueryWidthResolvers.esm.js +27 -1
- package/getMediaQueryWidthTailwindScreens.cjs.js +6 -1
- package/getMediaQueryWidthTailwindScreens.esm.js +6 -1
- package/getNonce.cjs.js +4 -1
- package/getNonce.esm.js +4 -1
- package/getParamAmong.cjs.js +11 -1
- package/getParamAmong.esm.js +11 -1
- package/getParamAsInt.cjs.js +10 -1
- package/getParamAsInt.esm.js +10 -1
- package/getParamAsString.cjs.js +9 -1
- package/getParamAsString.esm.js +9 -1
- package/getType.cjs.js +13 -1
- package/getType.esm.js +13 -1
- package/getUrlHashParams.cjs.js +6 -1
- package/getUrlHashParams.esm.js +6 -1
- package/getUrlHashPathname.cjs.js +7 -1
- package/getUrlHashPathname.esm.js +7 -1
- package/getUrlPathnameParts.cjs.js +10 -1
- package/getUrlPathnameParts.esm.js +10 -1
- package/getUrlQueryParams.cjs.js +12 -1
- package/getUrlQueryParams.esm.js +12 -1
- package/hashAny.cjs.js +30 -1
- package/hashAny.esm.js +30 -1
- package/imgEmptyPixel.cjs.js +5 -1
- package/imgEmptyPixel.esm.js +5 -1
- package/invariant.cjs.js +17 -1
- package/invariant.esm.js +17 -1
- package/isAbsoluteUrl.cjs.js +5 -1
- package/isAbsoluteUrl.esm.js +5 -1
- package/isAnyObject.cjs.js +5 -1
- package/isAnyObject.esm.js +5 -1
- package/isArray.cjs.js +5 -1
- package/isArray.esm.js +5 -1
- package/isBlob.cjs.js +5 -1
- package/isBlob.esm.js +5 -1
- package/isBoolean.cjs.js +5 -1
- package/isBoolean.esm.js +5 -1
- package/isBrowser.cjs.js +4 -1
- package/isBrowser.esm.js +4 -1
- package/isBrowserNow.cjs.js +4 -1
- package/isBrowserNow.esm.js +4 -1
- package/isDate.cjs.js +5 -1
- package/isDate.esm.js +5 -1
- package/isEmptyArray.cjs.js +5 -1
- package/isEmptyArray.esm.js +5 -1
- package/isEmptyObject.cjs.js +5 -1
- package/isEmptyObject.esm.js +5 -1
- package/isEmptyString.cjs.js +5 -1
- package/isEmptyString.esm.js +5 -1
- package/isError.cjs.js +5 -1
- package/isError.esm.js +5 -1
- package/isExternalUrl.cjs.js +9 -1
- package/isExternalUrl.esm.js +9 -1
- package/isFile.cjs.js +5 -1
- package/isFile.esm.js +5 -1
- package/isFloat.cjs.js +5 -1
- package/isFloat.esm.js +5 -1
- package/isFormData.cjs.js +5 -1
- package/isFormData.esm.js +5 -1
- package/isFullArray.cjs.js +5 -1
- package/isFullArray.esm.js +5 -1
- package/isFullObject.cjs.js +5 -1
- package/isFullObject.esm.js +5 -1
- package/isFullString.cjs.js +5 -1
- package/isFullString.esm.js +5 -1
- package/isFunction.cjs.js +5 -1
- package/isFunction.esm.js +5 -1
- package/isInt.cjs.js +5 -1
- package/isInt.esm.js +5 -1
- package/isMap.cjs.js +5 -1
- package/isMap.esm.js +5 -1
- package/isNaNValue.cjs.js +5 -1
- package/isNaNValue.esm.js +5 -1
- package/isNegativeNumber.cjs.js +5 -1
- package/isNegativeNumber.esm.js +5 -1
- package/isNull.cjs.js +5 -1
- package/isNull.esm.js +5 -1
- package/isNullOrUndefined.cjs.js +5 -1
- package/isNullOrUndefined.esm.js +5 -1
- package/isNumber.cjs.js +7 -1
- package/isNumber.esm.js +7 -1
- package/isNumericLiteral.cjs.js +8 -1
- package/isNumericLiteral.esm.js +8 -1
- package/isObject.cjs.js +5 -1
- package/isObject.esm.js +5 -1
- package/isObjectLike.cjs.js +7 -1
- package/isObjectLike.esm.js +7 -1
- package/isObjectStringKeyed.cjs.js +9 -1
- package/isObjectStringKeyed.esm.js +9 -1
- package/isOneOf.cjs.js +3 -1
- package/isOneOf.esm.js +3 -1
- package/isPlainObject.cjs.js +5 -1
- package/isPlainObject.esm.js +5 -1
- package/isPositiveNumber.cjs.js +5 -1
- package/isPositiveNumber.esm.js +5 -1
- package/isPrimitive.cjs.js +5 -1
- package/isPrimitive.esm.js +5 -1
- package/isPromise.cjs.js +5 -1
- package/isPromise.esm.js +5 -1
- package/isRegExp.cjs.js +5 -1
- package/isRegExp.esm.js +5 -1
- package/isServer.cjs.js +4 -1
- package/isServer.esm.js +4 -1
- package/isServerNow.cjs.js +4 -1
- package/isServerNow.esm.js +4 -1
- package/isSet.cjs.js +5 -1
- package/isSet.esm.js +5 -1
- package/isString.cjs.js +5 -1
- package/isString.esm.js +5 -1
- package/isSymbol.cjs.js +5 -1
- package/isSymbol.esm.js +5 -1
- package/isType.cjs.js +9 -1
- package/isType.esm.js +9 -1
- package/isUndefined.cjs.js +5 -1
- package/isUndefined.esm.js +5 -1
- package/isWeakMap.cjs.js +5 -1
- package/isWeakMap.esm.js +5 -1
- package/isWeakSet.cjs.js +5 -1
- package/isWeakSet.esm.js +5 -1
- package/kbToBytes.cjs.js +5 -1
- package/kbToBytes.esm.js +5 -1
- package/lowercase.cjs.js +5 -1
- package/lowercase.esm.js +5 -1
- package/mapListBy.cjs.js +5 -1
- package/mapListBy.esm.js +5 -1
- package/matchSorter.cjs.js +90 -1
- package/matchSorter.esm.js +90 -1
- package/mbToBytes.cjs.js +5 -1
- package/mbToBytes.esm.js +5 -1
- package/mergeObjects.cjs.js +8 -1
- package/mergeObjects.esm.js +8 -1
- package/mergeUrlQueryParams.cjs.js +5 -1
- package/mergeUrlQueryParams.esm.js +5 -1
- package/moveSortableArrayItemByKey.cjs.js +7 -1
- package/moveSortableArrayItemByKey.esm.js +7 -1
- package/noop.cjs.js +5 -1
- package/noop.esm.js +5 -1
- package/normaliseUrl.cjs.js +9 -1
- package/normaliseUrl.esm.js +9 -1
- package/normaliseUrlPathname.cjs.js +8 -1
- package/normaliseUrlPathname.esm.js +8 -1
- package/objectFlat.cjs.js +8 -1
- package/objectFlat.esm.js +8 -1
- package/objectFlip.cjs.js +4 -1
- package/objectFlip.esm.js +4 -1
- package/objectMergeWithDefaults.cjs.js +29 -1
- package/objectMergeWithDefaults.esm.js +29 -1
- package/objectOmit.cjs.js +9 -1
- package/objectOmit.esm.js +9 -1
- package/objectPick.cjs.js +6 -1
- package/objectPick.esm.js +6 -1
- package/objectSort.cjs.js +8 -1
- package/objectSort.esm.js +8 -1
- package/objectSortByKeysMatching.cjs.js +9 -1
- package/objectSortByKeysMatching.esm.js +9 -1
- package/objectToArray.cjs.js +6 -1
- package/objectToArray.esm.js +6 -1
- package/package.json +1 -1
- package/parseCookie.cjs.js +13 -1
- package/parseCookie.esm.js +13 -1
- package/parseURL.cjs.js +6 -1
- package/parseURL.esm.js +6 -1
- package/quaranteneProps.cjs.js +17 -1
- package/quaranteneProps.esm.js +17 -1
- package/randomInt.cjs.js +5 -1
- package/randomInt.esm.js +5 -1
- package/randomKey.cjs.js +6 -1
- package/randomKey.esm.js +6 -1
- package/readCookie.cjs.js +5 -1
- package/readCookie.esm.js +5 -1
- package/removeAccents.cjs.js +3 -1
- package/removeAccents.esm.js +3 -1
- package/removeCookie.cjs.js +3 -1
- package/removeCookie.esm.js +3 -1
- package/removeDuplicates.cjs.js +8 -1
- package/removeDuplicates.esm.js +8 -1
- package/removeDuplicatesByKey.cjs.js +6 -1
- package/removeDuplicatesByKey.esm.js +6 -1
- package/removeDuplicatesComparing.cjs.js +3 -1
- package/removeDuplicatesComparing.esm.js +3 -1
- package/removeIndexesFromArray.cjs.js +4 -1
- package/removeIndexesFromArray.esm.js +4 -1
- package/removeTrailingSlash.cjs.js +5 -1
- package/removeTrailingSlash.esm.js +5 -1
- package/removeUrlQueryParams.cjs.js +5 -1
- package/removeUrlQueryParams.esm.js +5 -1
- package/render.cjs.js +52 -1
- package/render.esm.js +52 -1
- package/round.cjs.js +11 -1
- package/round.esm.js +11 -1
- package/roundTo.cjs.js +22 -1
- package/roundTo.esm.js +22 -1
- package/serializeCookie.cjs.js +13 -1
- package/serializeCookie.esm.js +13 -1
- package/setCookie.cjs.js +11 -1
- package/setCookie.esm.js +11 -1
- package/shuffle.cjs.js +15 -1
- package/shuffle.esm.js +15 -1
- package/slugify.cjs.js +19 -1
- package/slugify.esm.js +19 -1
- package/split.cjs.js +6 -1
- package/split.esm.js +6 -1
- package/splitReverse.cjs.js +6 -1
- package/splitReverse.esm.js +6 -1
- package/swapMap.cjs.js +5 -1
- package/swapMap.esm.js +5 -1
- package/throttle.cjs.js +6 -1
- package/throttle.esm.js +6 -1
- package/toNumber.cjs.js +5 -1
- package/toNumber.esm.js +5 -1
- package/toRgba.cjs.js +5 -1
- package/toRgba.esm.js +5 -1
- package/transformToUrlPathname.cjs.js +9 -1
- package/transformToUrlPathname.esm.js +9 -1
- package/truncate.cjs.js +5 -1
- package/truncate.esm.js +5 -1
- package/tryUntil.cjs.js +14 -1
- package/tryUntil.esm.js +14 -1
- package/uid.cjs.js +5 -1
- package/uid.esm.js +5 -1
- package/updateLinkParams.cjs.js +7 -1
- package/updateLinkParams.esm.js +7 -1
- package/updateUrlQueryParams.cjs.js +5 -1
- package/updateUrlQueryParams.esm.js +5 -1
- package/uppercase.cjs.js +6 -1
- package/uppercase.esm.js +6 -1
- package/uuid.cjs.js +6 -1
- package/uuid.esm.js +6 -1
- package/uuidNumeric.cjs.js +4 -1
- package/uuidNumeric.esm.js +4 -1
- package/wait.cjs.js +5 -1
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
@@ -10,7 +10,11 @@ require('./isNull.cjs.js');
|
|
|
10
10
|
require('./isUndefined.cjs.js');
|
|
11
11
|
require('./isBrowser.cjs.js');
|
|
12
12
|
|
|
13
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|
package/serializeCookie.cjs.js
CHANGED
|
@@ -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]
|
|
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;
|
package/serializeCookie.esm.js
CHANGED
|
@@ -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]
|
|
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)
|
|
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)
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
package/splitReverse.cjs.js
CHANGED
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
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;
|
package/splitReverse.esm.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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
package/throttle.cjs.js
CHANGED
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|