codsen-utils 1.7.3 → 1.9.0
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/CHANGELOG.md +27 -2
- package/LICENSE +1 -1
- package/README.md +4 -4
- package/dist/codsen-utils.esm.js +19 -9
- package/dist/codsen-utils.umd.js +2 -2
- package/package.json +22 -29
- package/types/index.d.ts +137 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,11 +3,36 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
## 1.
|
|
6
|
+
## 1.9.0 (2026-08-22)
|
|
7
7
|
|
|
8
8
|
### Features
|
|
9
9
|
|
|
10
|
-
-
|
|
10
|
+
- **codsen-utils:** add reusable type and trim helpers ([d30a73f](https://github.com/codsen/codsen/commit/d30a73fe807afd129cd7b8e776fde1fc230628b9))
|
|
11
|
+
|
|
12
|
+
### Performance Improvements
|
|
13
|
+
|
|
14
|
+
- optimise package hot paths and JSON editing ([f3112bd](https://github.com/codsen/codsen/commit/f3112bd7fc0d7c9bc09312d3744c950691d72ca5))
|
|
15
|
+
|
|
16
|
+
## 1.8.0 (2026-08-19)
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
- make validation diagnostics safe ([7b01074](https://github.com/codsen/codsen/commit/7b0107476f12734aeb8e82852ba980b187280110))
|
|
21
|
+
- resolve various review findings ([b60e9ee](https://github.com/codsen/codsen/commit/b60e9eeb499af94685cfb87b4970fe025be1fc10))
|
|
22
|
+
- retire direct publish aliases ([f98e31e](https://github.com/codsen/codsen/commit/f98e31eb89bc185471225664e610b55f34fbf648))
|
|
23
|
+
- treat a backslash run before * like a run before any other char ([5cc839a](https://github.com/codsen/codsen/commit/5cc839abc1ba3f19f6c4ee740e8514d9122588d6))
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
- add codsen-glob and migrate glob consumers ([5595a2b](https://github.com/codsen/codsen/commit/5595a2b267eaa6cb60072d037aef00b7a28edd42))
|
|
28
|
+
- add insurance to findAllIdx() against an empty substring ([b8be7c8](https://github.com/codsen/codsen/commit/b8be7c8813d233e84eea3d5ff9ffc1bf9f0d1199))
|
|
29
|
+
- expand the shared utilty toolkit ([2d9a125](https://github.com/codsen/codsen/commit/2d9a125b16f01abf925be258329931f093dbbbe3))
|
|
30
|
+
- refresh the tooling and generate with the latest dependencies ([781f802](https://github.com/codsen/codsen/commit/781f802911066a82a4533b0e5a3fcbd742d0dd83))
|
|
31
|
+
|
|
32
|
+
### Reverts
|
|
33
|
+
|
|
34
|
+
- Revert "Merge pull request #128 from codsen/release/npm-32198404552-1" ([5baeeaa](https://github.com/codsen/codsen/commit/5baeeaaa677b86f1eaa6396cadf3aea32b06416e)), closes [#128](https://github.com/codsen/codsen/issues/128)
|
|
35
|
+
- Revert "Merge pull request #127 from codsen/release/npm-32194020886-1" ([5f1e94d](https://github.com/codsen/codsen/commit/5f1e94deef910ce735266b16aeee08a76de7a862)), closes [#127](https://github.com/codsen/codsen/issues/127)
|
|
11
36
|
|
|
12
37
|
## 1.6.0 (2023-05-21)
|
|
13
38
|
|
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright © 2010-
|
|
3
|
+
Copyright © 2010-2026 Roy Revelt and other contributors
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
6
|
a copy of this software and associated documentation files (the
|
package/README.md
CHANGED
|
@@ -32,17 +32,17 @@ npm i codsen-utils
|
|
|
32
32
|
## Quick Take
|
|
33
33
|
|
|
34
34
|
```js
|
|
35
|
-
import { strict as assert } from "assert";
|
|
35
|
+
import { strict as assert } from "node:assert";
|
|
36
36
|
|
|
37
37
|
import { isNumberChar } from "codsen-utils";
|
|
38
38
|
|
|
39
|
-
assert.equal(isNumberChar("z"), false);
|
|
40
39
|
assert.equal(isNumberChar("0"), true);
|
|
41
40
|
```
|
|
42
41
|
|
|
42
|
+
|
|
43
43
|
## Documentation
|
|
44
44
|
|
|
45
|
-
Please [visit codsen.com](https://codsen.com/os/codsen-utils/) for a full description of the API.
|
|
45
|
+
Please [visit codsen.com](https://codsen.com/os/codsen-utils/) for a full description of the API. If you’re looking for the **Changelog**, it’s [here](https://github.com/codsen/codsen/blob/main/packages/codsen-utils/CHANGELOG.md).
|
|
46
46
|
|
|
47
47
|
## Contributing
|
|
48
48
|
|
|
@@ -52,6 +52,6 @@ To report bugs or request features or assistance, [raise an issue](https://githu
|
|
|
52
52
|
|
|
53
53
|
MIT License
|
|
54
54
|
|
|
55
|
-
Copyright © 2010-
|
|
55
|
+
Copyright © 2010-2026 Roy Revelt and other contributors
|
|
56
56
|
|
|
57
57
|
<p align="center"><img src="https://codsen.com/images/png-codsen-ok.png" width="98" alt="ok" align="center"> <img src="https://codsen.com/images/png-codsen-1.png" width="148" alt="codsen" align="center"> <img src="https://codsen.com/images/png-codsen-star-small.png" width="32" alt="star" align="center"></p>
|
package/dist/codsen-utils.esm.js
CHANGED
|
@@ -1,19 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @name codsen-utils
|
|
3
3
|
* @fileoverview Various utility functions
|
|
4
|
-
* @version 1.
|
|
4
|
+
* @version 1.9.0
|
|
5
5
|
* @author Roy Revelt
|
|
6
6
|
* @license MIT
|
|
7
7
|
* {@link https://codsen.com/os/codsen-utils/}
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var $="1.9.0";function te(){let e=[],n=0,t=!1;return{append(r){return t?!1:n+r.length>1999?(e.push("\u2026"),n+=1,t=!0,!1):(e.push(r),n+=r.length,!0)},result(){return e.join("")},stopped(){return t}}}function re(e){return`\\u${e.toString(16).padStart(4,"0")}`}function I(e,n){if(e.append('"')){for(let t=0;t<n.length&&!e.stopped();t+=1){let r=n.charCodeAt(t);r===34?e.append('\\"'):r===92?e.append("\\\\"):r===8?e.append("\\b"):r===9?e.append("\\t"):r===10?e.append("\\n"):r===12?e.append("\\f"):r===13?e.append("\\r"):r<32||r===8232||r===8233||r>=55296&&r<=57343?e.append(re(r)):e.append(n[t])}e.append('"')}}function oe(e){return e.get&&e.set?"[Getter/Setter]":e.get?"[Getter]":e.set?"[Setter]":"[Accessor]"}function J(e,n){e.append("Symbol(");let t=String(n);t.length>8&&I(e,t.slice(7,-1)),e.append(")")}function _(e,n){typeof n=="symbol"?J(e,n):I(e,String(n))}function D(e,n=0){let t=te(),r=n===4?4:0,s=new WeakSet,o=0;function i(c){r&&t.append(" ".repeat(c*r))}function l(c,p){c&&t.append(","),r&&(t.append(`
|
|
11
|
+
`),i(p+1))}function f(c,p,g){r&&p&&(t.append(`
|
|
12
|
+
`),i(g)),t.append(c)}function d(c,p){Object.prototype.hasOwnProperty.call(c,"value")?S(c.value,p):t.append(oe(c))}function m(c,p){let g;try{g=Reflect.getOwnPropertyDescriptor(c,"length")}catch{t.append("[Uninspectable]");return}let x=g?.value;if(!Number.isSafeInteger(x)||x<0){t.append("[Uninspectable]");return}t.append("[");let b=!1;for(let k=0;k<x&&!t.stopped();k+=1){if(l(b,p),b=!0,o>=50){t.append("[MaxEntries]");break}o+=1;let R;try{R=Reflect.getOwnPropertyDescriptor(c,String(k))}catch{t.append("[Uninspectable]");continue}R?.enumerable?d(R,p+1):t.append("[Empty]")}f("]",b,p)}function O(c,p){let g;try{g=Reflect.ownKeys(c)}catch{t.append("[Uninspectable]");return}t.append("{");let x=!1;for(let b of g){if(t.stopped())break;if(o>=50){l(x,p),x=!0,I(t,"\u2026"),t.append(r?": ":":"),t.append("[MaxEntries]");break}o+=1;let k;try{k=Reflect.getOwnPropertyDescriptor(c,b)}catch{l(x,p),x=!0,_(t,b),t.append(r?": ":":"),t.append("[Uninspectable]");continue}k?.enumerable&&(l(x,p),x=!0,_(t,b),t.append(r?": ":":"),d(k,p+1))}f("}",x,p)}function h(c,p){if(s.has(c)){t.append("[Circular]");return}if(p>=5){t.append("[MaxDepth]");return}let g;try{g=Array.isArray(c)}catch{t.append("[Uninspectable]");return}s.add(c);try{g?m(c,p):O(c,p)}finally{s.delete(c)}}function S(c,p){c===null?t.append("null"):typeof c=="string"?I(t,c):typeof c=="number"?t.append(Object.is(c,-0)?"-0":String(c)):typeof c=="boolean"?t.append(c?"true":"false"):typeof c>"u"?t.append("undefined"):typeof c=="bigint"?t.append(`${c}n`):typeof c=="symbol"?J(t,c):typeof c=="function"?t.append("[Function]"):h(c,p)}try{return S(e,0),t.result()}catch{return"[Uninspectable]"}}var De=$,se="\u2018",ie="\u2019",le="\u201C",ce="\u201D",Ue="\u2013",Le="\u2014",Be="\xA0",Fe="\u2026",Ve="\u200A",$e="\u2009",_e="\u2032",Je="\u2033",Ke="\\",He="\uFFFD",Ge="`",Qe="\xD7",Xe=[".",",",";","!","?"],G=new Set([..."\u060B$\u20BC\u17DB\xA5\u20A1\u20B1\xA3\u20AC\xA2\u20B9\uFDFC\u20AA\u20A9\u20AD\u20A8\u20AE\u20A6\u20BD\u20AB\u0E3F\u20A9\u20BA\u20B4","$U","$b","B/.","BZ$","Br","Bs","C$","CHF","Ft","Gs","J$","KM","K\u010D","L","MT","NT$","P","Q","R","R$","RD$","RM","Rp","S","S/.","TT$","Z$","kn","kr","lei","z\u0142","\u0192","\u0414\u0438\u043D.","\u0434\u0435\u043D","\u043B\u0432","\u062F.\u0625","Lek"]),j=Object.prototype.hasOwnProperty,P=class{hasRepeatedReferences=!1;clones=[];index;sources=[];get(n){if(this.index){let r=this.index.get(n);return r!==void 0&&(this.hasRepeatedReferences=!0),r}let t=this.sources.indexOf(n);if(t!==-1)return this.hasRepeatedReferences=!0,this.clones[t]}set(n,t){if(this.index){this.index.set(n,t);return}if(this.sources.push(n),this.clones.push(t),this.sources.length===32){this.index=new WeakMap;for(let r=0;r<this.sources.length;r++)this.index.set(this.sources[r],this.clones[r]);this.sources=[],this.clones=[]}}};function Q(e,n){let t=n.get(e);if(t!==void 0)return t;let r=e.slice(0);return n.set(e,r),r}function fe(e,n){if(typeof Buffer<"u"&&Buffer.isBuffer(e)){let o=Buffer.from(e);return n.set(e,o),o}let t=Q(e.buffer,n);if(e instanceof DataView){let o=new DataView(t,e.byteOffset,e.byteLength);return n.set(e,o),o}let r=e.constructor,s=new r(t,e.byteOffset,e.length);return n.set(e,s),s}function U(e,n,t,r){for(let s of t){let o=n[s];e[s]=typeof o!="object"||o===null?o:M(o,r)}}function M(e,n){if(typeof e!="object"||e===null)return e;let t=n.get(e);if(t!==void 0)return t;if(Array.isArray(e)){let o=e.length,i=new Array(o);n.set(e,i);let l=e,f=Object.keys(e);if(f.length===o&&(o===0||f[o-1]===`${o-1}`))for(let d=0;d<o;d++){let m=l[d];i[d]=typeof m!="object"||m===null?m:M(m,n)}else U(i,l,f,n);return i}let r=Object.getPrototypeOf(e);if(r===Object.prototype||r===null){let o={};return n.set(e,o),U(o,e,Object.keys(e),n),o}if(e instanceof Date){let o=new Date(e.getTime());return n.set(e,o),o}if(ArrayBuffer.isView(e))return fe(e,n);if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer)return Q(e,n);if(e instanceof Map){let o=new Map;n.set(e,o);for(let[i,l]of e)o.set(M(i,n),M(l,n));return o}if(e instanceof Set){let o=new Set;n.set(e,o);for(let i of e)o.add(M(i,n));return o}let s={};return n.set(e,s),U(s,e,Object.keys(e),n),s}function qe(e){return M(e,new P)}function ze(e){let n=new P,t=M(e,n);return{hasRepeatedReferences:n.hasRepeatedReferences,value:t}}function Ze(e){if(!w(e))return!1;let n=e.charCodeAt(0);return n>=48&&n<=57}function Ye(e){return w(e)&&e.length===1&&G.has(e)}function ve(e){return w(e)&&G.has(e)}function en(e){if(!w(e)||e.length!==1)return!1;let n=e.charCodeAt(0);return n<128?n>64&&n<91||n>96&&n<123:e.toUpperCase()!==e.toLowerCase()}function nn(e){if(!e||!w(e))return!1;let n=e.charCodeAt(0);return n>64&&n<91||n>96&&n<123}function tn(e){return w(e)&&(e==='"'||e==="'"||e===se||e===ie||e===le||e===ce)}function rn(e){if(!w(e)||e.length!==1)return!1;let n=e.charCodeAt(0);return n<128?n>96&&n<123:e===e.toLowerCase()&&e!==e.toUpperCase()}function on(e){if(!w(e)||e.length!==1)return!1;let n=e.charCodeAt(0);return n<128?n>64&&n<91:e===e.toUpperCase()&&e!==e.toLowerCase()}function sn(e){if(!w(e)||!e)return!1;let n=e.charCodeAt(0);return n<128?n===32||n>8&&n<14:!e[0].trim()}var ln=e=>w(e)&&e.length&&e.endsWith("/")?e.slice(0,-1).trim():e;function X(e){if(e==null||typeof e!="object")return!1;let n=Object.getPrototypeOf(e);return n!==null&&n!==Object.prototype&&Object.getPrototypeOf(n)!==null?!1:!(Symbol.iterator in e)&&!(Symbol.toStringTag in e)}function cn(e="",n=0,t=0,r=""){return n<0&&(n+=e.length,n<0&&(n=0)),e.slice(0,n)+(r||"")+e.slice(n+t)}function w(e){return typeof e=="string"}function ae(e){return Number.isFinite(e)}function fn(e){return Number.isSafeInteger(e)&&e>=0}function an(e){return typeof e=="boolean"}function un(e){return e===null}var ue=Object.getOwnPropertyDescriptor(RegExp.prototype,"source")?.get,q=Object.prototype.toString;function de(e){if(e instanceof RegExp)return!0;if(e===null||typeof e!="object")return!1;if(q.call(e)!=="[object RegExp]")return e===RegExp.prototype;try{return ue.call(e),!0}catch{return!1}}var pe=Date.prototype.getTime;function dn(e){if(e instanceof Date)return!0;if(e===null||typeof e!="object"||q.call(e)!=="[object Date]")return!1;try{return pe.call(e),!0}catch{return!1}}function pn(e,n){if(!e||!n)return e;let t=!0;for(let l=n.length;l--;)if(n.charCodeAt(l)>127){t=!1;break}if(t){let l=0,f=e.length;if(n.length===1){let d=n.charCodeAt(0);for(;l<f&&e.charCodeAt(l)===d;)l++;for(;f>l&&e.charCodeAt(f-1)===d;)f--}else{for(;l<f&&n.includes(e[l]);)l++;for(;f>l&&n.includes(e[f-1]);)f--}return l===0&&f===e.length?e:e.slice(l,f)}let r=Array.from(e),s=new Set(n),o=0,i=r.length;for(;o<i&&s.has(r[o]);)o++;for(;i>o&&s.has(r[i-1]);)i--;return o===0&&i===r.length?e:r.slice(o,i).join("")}function gn(e,n){if(!w(e)||!w(n)||n.length===0)return[];let t=[],r=e.indexOf(n);for(;r!==-1;)t.push(r),r=e.indexOf(n,r+1);return t}function hn(e=[],n=[]){if(!e||!Array.isArray(e)||!e.length)return[];if(!n||!Array.isArray(n)||!n.length)return e;if(e.length*n.length<400)return e.filter(r=>!n.includes(r));let t=new Set(n);return e.filter(r=>!t.has(r))}function bn(e){return e!=null}function yn(e){return[...new Set(e)]}function ge(e){if(!(typeof e!="string"||!e)){if(e.includes(`\r
|
|
11
13
|
`))return`\r
|
|
12
|
-
`;if(
|
|
14
|
+
`;if(e.includes(`
|
|
13
15
|
`))return`
|
|
14
|
-
`;if(
|
|
15
|
-
`){if(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
`:
|
|
19
|
-
`:
|
|
16
|
+
`;if(e.includes("\r"))return"\r"}}function mn(e,n,t=`
|
|
17
|
+
`){if(t!==`
|
|
18
|
+
`&&t!==`\r
|
|
19
|
+
`&&t!=="\r")throw new Error(`codsen-utils/resolveEolSetting(): [THROW_ID_01] the input argument defaultEolChar should be one of EOL values: "\\n", "\\r", or "\\r\\n", but it was given as ${D(t)}`);return n==="crlf"?`\r
|
|
20
|
+
`:n==="cr"?"\r":n==="lf"?`
|
|
21
|
+
`:ge(e)||t}function xn(e,n){return X(e)&&w(n)&&j.call(e,n)}function kn(e,n){return e.localeCompare(n)}var wn=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],Cn=new Set(["a","abbr","acronym","audio","b","bdi","bdo","big","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","label","map","mark","meter","noscript","object","output","picture","progress","q","ruby","s","samp","script","select","slot","small","span","strong","sub","sup","svg","template","textarea","time","u","tt","var","video","wbr"]);function An(e,n){if(!Array.isArray(e)||!e.length||!w(n))return!1;for(let t of e){if(typeof t=="string"){if(n===t)return!0;continue}if(de(t)){t.global&&(t.lastIndex=0);let r=t.test(n);if(t.global&&(t.lastIndex=0),r)return!0}}return!1}function Sn(e=[],n=[]){if(!Array.isArray(e)||!Array.isArray(n)||!e.length||!n.length)return[];let t=[];if(e.length*n.length<64){for(let o of e)n.includes(o)&&!t.includes(o)&&t.push(o);return t}let r=new Set(n),s=new Set;for(let o of e)r.has(o)&&!s.has(o)&&(s.add(o),t.push(o));return t}var L=/^-?\d+(?:\.\d*)?(?:e[+-]?\d+)?$/i;function he(e){return e.replace(/-+([^-])/g,(n,t)=>t.toUpperCase())}function be(e){return e.replace(/([\da-z])([A-Z])/g,"$1-$2").toLowerCase()}function ye(e){return e.replace(/^[\r\n]+/,"").replace(/[\r\n]+$/,"")}function K(e,n){let t=Number.POSITIVE_INFINITY,r=e.split(`
|
|
22
|
+
`);for(let o of r){let i=/^[ \t]*(?=\S)/.exec(o);i&&(t=Math.min(t,i[0].length))}let s=" ".repeat(n);return r.map(o=>o.trim()?s+o.slice(t):o).join(`
|
|
23
|
+
`)}function me(e,n,t){let r="";return e&&(r=ye(e.replace(/\t+\n*$/,"")),r.includes(`
|
|
24
|
+
`)&&(r=K(r,t)),r=`
|
|
25
|
+
${r}`),n&&(r=r?`${K(`
|
|
26
|
+
${n}
|
|
27
|
+
`,t)}${r}`:`
|
|
28
|
+
${n}`),`${r}
|
|
29
|
+
`}function xe(e){let n=w(e.name)?e.name:"",{bin:t}=e;return w(t)?n.slice(n.startsWith("@")?n.indexOf("/")+1:0):t&&typeof t=="object"?Object.keys(t)[0]??n:n}function ke(e,n){let t=e?e.type:void 0;return n===void 0?t==="string"?"":t==="number"?void 0:!0:t==="boolean"?n==="true":t==="number"?Number(n):n}function On(e="",n={}){let t=typeof process>"u"?void 0:process,r=n.pkg??{},s=n.argv??t?.argv.slice(2)??[],o=n.helpIndent??2,i=n.autoHelp??!0,l=n.autoVersion??!0,f=n.version??r.version??"No version found",d=j.call(n,"booleanDefault")?n.booleanDefault:!1,m=me(e,n.description??r.description,o);function O(a){console.log(m),t?.exit(ae(a)?a:2)}function h(){console.log(f),t?.exit(0)}let S=[],c=new Map;for(let[a,u]of Object.entries(n.flags??{})){let y={key:a,type:u.type,isMultiple:!!u.isMultiple,source:u};S.push(y),c.set(a,y),c.set(be(a),y),u.shortFlag&&c.set(u.shortFlag,y)}let p=[],g={};function x(a,u){let y=c.get(a),C=y?y.key:he(a);if(y?.isMultiple){let A=g[C];Array.isArray(A)?A.push(u):g[C]=[u];return}g[C]=u}function b(a,u){x(a,ke(c.get(a),u))}function k(a,u){return u===void 0?!1:a?.type==="boolean"?u==="true"||u==="false":!(u.startsWith("-")&&u.length>1&&!L.test(u))}function R(a,u){let y=a.slice(1);for(let C=0;C<y.length;C++){let A=y[C],T=y.slice(C+1);if(T.startsWith("="))return b(A,T.slice(1)),u;if(L.test(T)||T&&/\W/.test(T[0]))return b(A,T),u;let N=c.get(A);if(T&&N?.type&&N.type!=="boolean")return b(A,T),u;if(T){b(A,void 0);continue}if(k(N,s[u+1]))return b(A,s[u+1]),u+1;b(A,void 0)}return u}for(let a=0;a<s.length;a++){let u=s[a];if(u==="--"){p.push(...s.slice(a+1));break}if(u.startsWith("--")){let y=u.slice(2),C=y.indexOf("=");if(C!==-1){b(y.slice(0,C),y.slice(C+1));continue}if(y.startsWith("no-")){x(y.slice(3),!1);continue}let A=c.get(y);if(k(A,s[a+1])){b(y,s[a+1]),a++;continue}b(y,void 0);continue}if(u.startsWith("-")&&u.length>1&&!L.test(u)){a=R(u,a);continue}p.push(u)}for(let a of S)j.call(g,a.key)||(j.call(a.source,"default")?g[a.key]=a.source.default:a.isMultiple?g[a.key]=[]:a.type==="boolean"&&d!==void 0&&(g[a.key]=d));!p.length&&s.length===1&&(l&&g.version===!0?h():i&&g.help===!0&&O(0));let V=xe(r);return V&&t&&(t.title=V),{input:p,flags:g,pkg:r,help:m,showHelp:O,showVersion:h}}function Tn(e,n=[]){if(!e)return e;if(!X(e))throw new Error(`codsen-utils/omit(): [THROW_ID_02] Input must be a plain object! It was given as ${D(e,4)} (typeof is "${typeof e}")`);let t={},r=new P;r.set(e,t);let s=Object.keys(e),o=s.length*n.length<400?void 0:new Set(n);for(let i of s)(o?o.has(i):n.includes(i))||(t[i]=M(e[i],r));return t}var we=256,Ce=1024,Ae=1,Se=new Map,Oe=new Map;function F(e){if(e>=97&&e<=122)return e-32;if(e>65535)return e;let n=String.fromCharCode(e).toUpperCase();if(n.length!==1)return e;let t=n.charCodeAt(0);return e>127&&t<128?e:t}function B(e,n,t,r,s,o){for(let i=0;i<s;i++){let l=e.charCodeAt(n+i),f=t.charCodeAt(r+i);if(o||(l>=97&&l<=122&&(l-=32),f>=97&&f<=122&&(f-=32)),l!==f)return!1}return!0}function z(e,n,t){let r=n.indexOf("\\");if(r===-1&&e===n)return!0;let s=n.indexOf("*");if(r===-1&&s===-1){if(t)return!1;for(let m=0;m<n.length;m++)if(n.charCodeAt(m)>127)return;return e.length===n.length&&B(e,0,n,0,n.length,!1)}if(r!==-1)return;let o=0,i=!1,l=-1;for(let m=0;m<n.length;m++){let O=n.charCodeAt(m);if(O>127)return;if(O===42){if(l=m,!i){if(o++,o>1)return;i=!0}}else i=!1}let f=l+1,d=n.length-f;return e.length<s+d?!1:B(e,0,n,0,s,t)&&B(e,e.length-d,n,f,d,t)}function Te(e){let n=new Uint32Array(e.length),t=0;for(let r=1;r<e.length;r++){for(;t>0&&e[r]!==e[t];)t=n[t-1];e[r]===e[t]&&t++,n[r]=t}return n}function Me(e,n){let t=[[]],r=!0,s=!1,o=!1,i=0;for(let h=0;h<e.length;){let S=e.codePointAt(h);if(S!==92){if(S===42)s=!0,o||(t.push([]),o=!0);else{let k=n?S:F(S);t[t.length-1].push(k),r&&=k<=127,i++,o=!1}h+=S>65535?2:1;continue}let c=h+1;for(;e.charCodeAt(c)===92;)c++;let p=c-h,g=e.codePointAt(c),x,b=!1;g===42?(b=p%2===0,x=b?p/2:(p-1)/2):g===void 0||g===10||g===13||g===8232||g===8233?x=Math.ceil(p/2):x=Math.floor(p/2);for(let k=0;k<x;k++)t[t.length-1].push(92),i++;if(b){o=!1,h=c;continue}if(g!==void 0){let k=n?g:F(g);t[t.length-1].push(k),r&&=k<=127,i++,c+=g>65535?2:1}o=!1,h=c}let l=s&&t[0].length===0,f=s&&t[t.length-1].length===0,d=[];for(let h of t)h.length&&d.push({values:h});let m=l?0:1,O=d.length-(f?0:1);for(let h=m;h<O;h++)d[h].values.length>Ae&&(d[h].failure=Te(d[h].values));return{asciiOnly:r,endsWithWildcard:f,hasWildcard:s,minimumInputLength:i,segments:d,startsWithWildcard:l}}function Z(e,n){let t=n?Se:Oe,r=e.length<=Ce;if(r){let o=t.get(e);if(o)return o}let s=Me(e,n);if(r){if(t.size>=we){let o=t.keys().next().value;o!==void 0&&t.delete(o)}t.set(e,s)}return s}function Y(e,n){if(n){let s=[];for(let o=0;o<e.length;){let i=e.codePointAt(o);s.push(i),o+=i>65535?2:1}return s}let t=new Uint32Array(e.length),r=0;for(let s=0;s<e.length;){let o=e.codePointAt(s);t[r]=F(o),r++,s+=o>65535?2:1}return r===t.length?t:t.subarray(0,r)}function W(e,n,t,r){for(let s=0;s<t.values.length;s++){let o=e.charCodeAt(n+s);if(!r&&o>=97&&o<=122&&(o-=32),o!==t.values[s])return!1}return!0}function Re(e,n,t,r,s){let o=r-n.values.length;if(o<t)return-1;if(!n.failure){for(let l=t;l<=o;l++)if(W(e,l,n,s))return l;return-1}let i=0;for(let l=t;l<r;l++){let f=e.charCodeAt(l);for(!s&&f>=97&&f<=122&&(f-=32);i>0&&f!==n.values[i];)i=n.failure[i-1];if(f===n.values[i]&&(i++,i===n.values.length))return l-i+1}return-1}function v(e,n,t){if(e.length<n.minimumInputLength)return!1;if(!n.hasWildcard)return e.length===n.minimumInputLength&&W(e,0,n.segments[0],t);let r=0,s=n.segments.length,o=0,i=e.length;if(!n.startsWithWildcard){let l=n.segments[0];if(!W(e,0,l,t))return!1;o=l.values.length,r++}if(!n.endsWithWildcard){s--;let l=n.segments[s];if(i-=l.values.length,!W(e,i,l,t))return!1}for(let l=r;l<s;l++){let f=n.segments[l],d=Re(e,f,o,i,t);if(d===-1)return!1;o=d+f.values.length}return!0}function E(e,n,t){for(let r=0;r<t.values.length;r++)if(e[n+r]!==t.values[r])return!1;return!0}function Pe(e,n,t,r){let s=r-n.values.length;if(s<t)return-1;if(!n.failure){for(let i=t;i<=s;i++)if(E(e,i,n))return i;return-1}let o=0;for(let i=t;i<r;i++){for(;o>0&&e[i]!==n.values[o];)o=n.failure[o-1];if(e[i]===n.values[o]&&(o++,o===n.values.length))return i-o+1}return-1}function ee(e,n){if(e.length<n.minimumInputLength)return!1;if(!n.hasWildcard)return e.length===n.minimumInputLength&&E(e,0,n.segments[0]);let t=0,r=n.segments.length,s=0,o=e.length;if(!n.startsWithWildcard){let i=n.segments[0];if(!E(e,0,i))return!1;s=i.values.length,t++}if(!n.endsWithWildcard){r--;let i=n.segments[r];if(o-=i.values.length,!E(e,o,i))return!1}for(let i=t;i<r;i++){let l=n.segments[i],f=Pe(e,l,s,o);if(f===-1)return!1;s=f+l.values.length}return!0}function Ie(e,n,t){let r=z(e,n,t);if(r!==void 0)return r;let s=Z(n,t);return s.asciiOnly?v(e,s,t):ee(Y(e,t),s)}function H(e,n,t,r){let s=z(e,n,t);if(s!==void 0)return s;let o=Z(n,t);return o.asciiOnly?v(e,o,t):(r.tokens??=Y(e,t),ee(r.tokens,o))}function Mn(e,n,t){if(typeof n!="string"&&!n.length)return!1;let r=t===void 0?!1:t.caseSensitiveMatch===!0;if(typeof n=="string"){let l=n.charCodeAt(0)===33,f=l?n.slice(1):n,d=Ie(e,f,r);return l?!d:d}let s={},o=!1,i=!1;for(let l of n){let f=l.charCodeAt(0)===33,d=f?l.slice(1):l;if(f){if(H(e,d,r,s))return!1}else o=!0,!i&&H(e,d,r,s)&&(i=!0)}return o?i:!0}export{Ke as backslash,Ge as backtick,On as codsenCLI,kn as compareFn,qe as deepClone,ze as deepCloneWithMetadata,ge as detectEol,Je as doublePrime,Fe as ellipsis,bn as existy,gn as findAllIdx,D as formatDiagnosticValue,Ve as hairspace,xn as hasOwnProp,An as includes,Cn as inlineTags,Sn as intersection,an as isBool,Ye as isCurrencyChar,ve as isCurrencySymbol,dn as isDate,fn as isInt,nn as isLatinLetter,en as isLetter,rn as isLowercaseLetter,un as isNull,ae as isNum,Ze as isNumberChar,X as isPlainObject,tn as isQuote,de as isRegExp,w as isStr,on as isUppercaseLetter,sn as isWhitespaceChar,le as leftDoubleQuote,se as leftSingleQuote,Mn as match,Qe as multiplicationSign,Tn as omit,hn as pullAll,Xe as punctuationChars,Le as rawMDash,Ue as rawNDash,Be as rawNbsp,He as rawReplacementMark,ln as removeTrailingSlash,mn as resolveEolSetting,ce as rightDoubleQuote,ie as rightSingleQuote,_e as singlePrime,cn as stringSplice,$e as thinSpace,pn as trimChars,yn as uniq,De as version,wn as voidTags};
|
package/dist/codsen-utils.umd.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @name codsen-utils
|
|
3
3
|
* @fileoverview Various utility functions
|
|
4
|
-
* @version 1.
|
|
4
|
+
* @version 1.9.0
|
|
5
5
|
* @author Roy Revelt
|
|
6
6
|
* @license MIT
|
|
7
7
|
* {@link https://codsen.com/os/codsen-utils/}
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
"use strict";var codsenUtils=(()=>{var R=Object.create;var m=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty;var P=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),U=(e,t)=>{for(var n in t)m(e,n,{get:t[n],enumerable:!0})},O=(e,t,n,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of L(t))!V.call(e,l)&&l!==n&&m(e,l,{get:()=>t[l],enumerable:!(c=$(t,l))||c.enumerable});return e};var H=(e,t,n)=>(n=e!=null?R(M(e)):{},O(t||!e||!e.__esModule?m(n,"default",{value:e,enumerable:!0}):n,e)),F=e=>O(m({},"__esModule",{value:!0}),e);var A=P(($e,j)=>{"use strict";j.exports=Q;function g(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function Q(e){if(e=e||{},e.circles)return K(e);let t=new Map;if(t.set(Date,s=>new Date(s)),t.set(Map,(s,u)=>new Map(c(Array.from(s),u))),t.set(Set,(s,u)=>new Set(c(Array.from(s),u))),e.constructorHandlers)for(let s of e.constructorHandlers)t.set(s[0],s[1]);let n=null;return e.proto?y:l;function c(s,u){let r=Object.keys(s),o=new Array(r.length);for(let f=0;f<r.length;f++){let i=r[f],p=s[i];typeof p!="object"||p===null?o[i]=p:p.constructor!==Object&&(n=t.get(p.constructor))?o[i]=n(p,u):ArrayBuffer.isView(p)?o[i]=g(p):o[i]=u(p)}return o}function l(s){if(typeof s!="object"||s===null)return s;if(Array.isArray(s))return c(s,l);if(s.constructor!==Object&&(n=t.get(s.constructor)))return n(s,l);let u={};for(let r in s){if(Object.hasOwnProperty.call(s,r)===!1)continue;let o=s[r];typeof o!="object"||o===null?u[r]=o:o.constructor!==Object&&(n=t.get(o.constructor))?u[r]=n(o,l):ArrayBuffer.isView(o)?u[r]=g(o):u[r]=l(o)}return u}function y(s){if(typeof s!="object"||s===null)return s;if(Array.isArray(s))return c(s,y);if(s.constructor!==Object&&(n=t.get(s.constructor)))return n(s,y);let u={};for(let r in s){let o=s[r];typeof o!="object"||o===null?u[r]=o:o.constructor!==Object&&(n=t.get(o.constructor))?u[r]=n(o,y):ArrayBuffer.isView(o)?u[r]=g(o):u[r]=y(o)}return u}}function K(e){let t=[],n=[],c=new Map;if(c.set(Date,r=>new Date(r)),c.set(Map,(r,o)=>new Map(y(Array.from(r),o))),c.set(Set,(r,o)=>new Set(y(Array.from(r),o))),e.constructorHandlers)for(let r of e.constructorHandlers)c.set(r[0],r[1]);let l=null;return e.proto?u:s;function y(r,o){let f=Object.keys(r),i=new Array(f.length);for(let p=0;p<f.length;p++){let b=f[p],d=r[b];if(typeof d!="object"||d===null)i[b]=d;else if(d.constructor!==Object&&(l=c.get(d.constructor)))i[b]=l(d,o);else if(ArrayBuffer.isView(d))i[b]=g(d);else{let w=t.indexOf(d);w!==-1?i[b]=n[w]:i[b]=o(d)}}return i}function s(r){if(typeof r!="object"||r===null)return r;if(Array.isArray(r))return y(r,s);if(r.constructor!==Object&&(l=c.get(r.constructor)))return l(r,s);let o={};t.push(r),n.push(o);for(let f in r){if(Object.hasOwnProperty.call(r,f)===!1)continue;let i=r[f];if(typeof i!="object"||i===null)o[f]=i;else if(i.constructor!==Object&&(l=c.get(i.constructor)))o[f]=l(i,s);else if(ArrayBuffer.isView(i))o[f]=g(i);else{let p=t.indexOf(i);p!==-1?o[f]=n[p]:o[f]=s(i)}}return t.pop(),n.pop(),o}function u(r){if(typeof r!="object"||r===null)return r;if(Array.isArray(r))return y(r,u);if(r.constructor!==Object&&(l=c.get(r.constructor)))return l(r,u);let o={};t.push(r),n.push(o);for(let f in r){let i=r[f];if(typeof i!="object"||i===null)o[f]=i;else if(i.constructor!==Object&&(l=c.get(i.constructor)))o[f]=l(i,u);else if(ArrayBuffer.isView(i))o[f]=g(i);else{let p=t.indexOf(i);p!==-1?o[f]=n[p]:o[f]=u(i)}}return t.pop(),n.pop(),o}}});var De={};U(De,{backslash:()=>te,backtick:()=>ne,compareFn:()=>Se,detectEol:()=>B,doublePrime:()=>ee,ellipsis:()=>G,existy:()=>Oe,findAllIdx:()=>he,hairspace:()=>X,hasOwnProp:()=>Ae,includes:()=>Ee,inlineTags:()=>Ne,intersection:()=>Te,isBool:()=>me,isCurrencyChar:()=>J,isCurrencySymbol:()=>ce,isInt:()=>ge,isLatinLetter:()=>ue,isLetter:()=>x,isLowercaseLetter:()=>fe,isNull:()=>xe,isNum:()=>be,isNumberChar:()=>ie,isPlainObject:()=>h,isQuote:()=>le,isRegExp:()=>D,isStr:()=>a,isUppercaseLetter:()=>pe,isWhitespaceChar:()=>ae,leftDoubleQuote:()=>E,leftSingleQuote:()=>C,multiplicationSign:()=>oe,omit:()=>Je,pullAll:()=>we,punctuationChars:()=>se,rawMDash:()=>_,rawNDash:()=>Z,rawNbsp:()=>z,rawReplacementMark:()=>re,removeTrailingSlash:()=>ye,resolveEolSetting:()=>je,rightDoubleQuote:()=>T,rightSingleQuote:()=>N,singlePrime:()=>v,stringSplice:()=>de,thinSpace:()=>Y,uniq:()=>ke,version:()=>q,voidTags:()=>Ce});var k="1.7.3";var S=H(A(),1),W=(0,S.default)(),q=k,C="\u2018",N="\u2019",E="\u201C",T="\u201D",Z="\u2013",_="\u2014",z="\xA0",G="\u2026",X="\u200A",Y="\u2009",v="\u2032",ee="\u2033",te="\\",re="\uFFFD",ne="`",oe="\xD7",se=[".",",",";","!","?"];function ie(e){return a(e)&&e.charCodeAt(0)>=48&&e.charCodeAt(0)<=57}function J(e){return a(e)&&"\u060B$\u20BC\u17DB\xA5\u20A1\u20B1\xA3\u20AC\xA2\u20B9\uFDFC\u20AA\u20A9\u20AD\u20A8\u20AE\u20A6\u20BD\u20AB\u0E3F\u20A9\u20BA\u20B4".includes(e)}function ce(e){let t=new Set(["$U","$b","B/.","BZ$","Br","Bs","C$","CHF","Ft","Gs","J$","KM","K\u010D","L","MT","NT$","P","Q","R","R$","RD$","RM","Rp","S","S/.","TT$","Z$","kn","kr","lei","z\u0142","\u0192","\u0414\u0438\u043D.","\u0434\u0435\u043D","\u043B\u0432","\u062F.\u0625","Lek"]);return a(e)&&!!e.trim()&&(J(e)||t.has(e))}function x(e){return a(e)&&e.length===1&&e.toUpperCase()!==e.toLowerCase()}function ue(e){return!!(e&&a(e)&&(e.charCodeAt(0)>64&&e.charCodeAt(0)<91||e.charCodeAt(0)>96&&e.charCodeAt(0)<123))}function le(e){return a(e)&&(e==='"'||e==="'"||e===C||e===N||e===E||e===T)}function fe(e){return!a(e)||!x(e)?!1:e===e.toLowerCase()&&e!==e.toUpperCase()}function pe(e){return!a(e)||!x(e)?!1:e===e.toUpperCase()&&e!==e.toLowerCase()}function ae(e){return!a(e)||!e?!1:!e[0].trim()}var ye=e=>a(e)&&e.length&&e.endsWith("/")?e.slice(0,-1).trim():e;function h(e){if(e==null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null?!1:!(Symbol.iterator in e)&&!(Symbol.toStringTag in e)}function de(e="",t=0,n=0,c=""){return t<0&&(t+=e.length,t<0&&(t=0)),e.slice(0,t)+(c||"")+e.slice(t+n)}function a(e){return typeof e=="string"}function be(e){return Number.isFinite(e)}function ge(e){return Number.isSafeInteger(e)&&e>=0}function me(e){return typeof e=="boolean"}function xe(e){return e===null}function D(e){return e instanceof RegExp}function he(e,t){if(!a(e)||!a(t))return[];let n=[],c=-1;for(;(c=e.indexOf(t,c+1))>=0;)n.push(c);return n}function we(e=[],t=[]){return!e||!Array.isArray(e)||!e.length?[]:!t||!Array.isArray(t)||!t.length?e:e.filter(n=>!t.includes(n))}function Oe(e){return e!=null}function ke(e){return[...new Set(e)]}function B(e){if(!(typeof e!="string"||!e)){if(e.includes("\r\n"))return"\r\n";if(e.includes("\n"))return"\n";if(e.includes("\r"))return"\r"}}function je(e,t,n="\n"){if(!["\r\n","\r","\n"].includes(n))throw new Error('codsen-utils/resolveEolSetting(): the input argument defaultEolChar should be one of EOL values: "\\n", "\\r", or "\\r\\n", but it was given as '.concat(JSON.stringify(n,null,0)));return t==="crlf"?"\r\n":t==="cr"?"\r":t==="lf"?"\n":B(e)||n}function Ae(e,t){return h(e)&&a(t)&&t in e}function Se(e,t){return e.localeCompare(t)}var Ce=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],Ne=new Set(["a","abbr","acronym","audio","b","bdi","bdo","big","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","label","map","mark","meter","noscript","object","output","picture","progress","q","ruby","s","samp","script","select","slot","small","span","strong","sub","sup","svg","template","textarea","time","u","tt","var","video","wbr"]);function Ee(e,t){return!Array.isArray(e)||!e.length?!1:e.some(n=>D(n)&&t.match(n)||typeof n=="string"&&t===n)}function Te(e=[],t=[]){return!e||!t?[]:Array.from(new Set(Array.from(e).filter(n=>new Set(t).has(n))))}function Je(e,t=[]){if(!e)return e;if(!h(e))throw new Error("codsen-utils/omit(): [THROW_ID_01] Input must be a plain object! It was given as ".concat(JSON.stringify(e,null,4),' (typeof is "').concat(typeof e,'")'));let n=W(e);return t.forEach(c=>{delete n[c]}),n}return F(De);})();
|
|
10
|
+
"use strict";var codsenUtils=(()=>{var W=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var Ce=Object.getOwnPropertyNames;var Ae=Object.prototype.hasOwnProperty;var Se=(e,n,t)=>n in e?W(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var Oe=(e,n)=>{for(var t in n)W(e,t,{get:n[t],enumerable:!0})},Te=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of Ce(n))!Ae.call(e,s)&&s!==t&&W(e,s,{get:()=>n[s],enumerable:!(r=we(n,s))||r.enumerable});return e};var Me=e=>Te(W({},"__esModule",{value:!0}),e);var I=(e,n,t)=>Se(e,typeof n!="symbol"?n+"":n,t);var Kn={};Oe(Kn,{backslash:()=>$e,backtick:()=>Je,codsenCLI:()=>jn,compareFn:()=>kn,deepClone:()=>Qe,deepCloneWithMetadata:()=>Xe,detectEol:()=>he,doublePrime:()=>Ve,ellipsis:()=>Ue,existy:()=>bn,findAllIdx:()=>gn,formatDiagnosticValue:()=>N,hairspace:()=>Le,hasOwnProp:()=>xn,includes:()=>An,inlineTags:()=>Cn,intersection:()=>Sn,isBool:()=>cn,isCurrencyChar:()=>ze,isCurrencySymbol:()=>Ze,isDate:()=>dn,isInt:()=>ln,isLatinLetter:()=>ve,isLetter:()=>Ye,isLowercaseLetter:()=>nn,isNull:()=>fn,isNum:()=>de,isNumberChar:()=>qe,isPlainObject:()=>J,isQuote:()=>en,isRegExp:()=>ge,isStr:()=>w,isUppercaseLetter:()=>tn,isWhitespaceChar:()=>rn,leftDoubleQuote:()=>ce,leftSingleQuote:()=>ie,match:()=>Jn,multiplicationSign:()=>Ke,omit:()=>Wn,pullAll:()=>hn,punctuationChars:()=>He,rawMDash:()=>Ne,rawNDash:()=>Ee,rawNbsp:()=>De,rawReplacementMark:()=>_e,removeTrailingSlash:()=>on,resolveEolSetting:()=>mn,rightDoubleQuote:()=>fe,rightSingleQuote:()=>le,singlePrime:()=>Fe,stringSplice:()=>sn,thinSpace:()=>Be,trimChars:()=>pn,uniq:()=>yn,version:()=>We,voidTags:()=>wn});var ee="1.9.0";function Pe(){let e=[],n=0,t=!1;return{append(r){return t?!1:n+r.length>1999?(e.push("\u2026"),n+=1,t=!0,!1):(e.push(r),n+=r.length,!0)},result(){return e.join("")},stopped(){return t}}}function Ie(e){return"\\u".concat(e.toString(16).padStart(4,"0"))}function E(e,n){if(e.append('"')){for(let t=0;t<n.length&&!e.stopped();t+=1){let r=n.charCodeAt(t);r===34?e.append('\\"'):r===92?e.append("\\\\"):r===8?e.append("\\b"):r===9?e.append("\\t"):r===10?e.append("\\n"):r===12?e.append("\\f"):r===13?e.append("\\r"):r<32||r===8232||r===8233||r>=55296&&r<=57343?e.append(Ie(r)):e.append(n[t])}e.append('"')}}function je(e){return e.get&&e.set?"[Getter/Setter]":e.get?"[Getter]":e.set?"[Setter]":"[Accessor]"}function te(e,n){e.append("Symbol(");let t=String(n);t.length>8&&E(e,t.slice(7,-1)),e.append(")")}function ne(e,n){typeof n=="symbol"?te(e,n):E(e,String(n))}function N(e,n=0){let t=Pe(),r=n===4?4:0,s=new WeakSet,o=0;function i(c){r&&t.append(" ".repeat(c*r))}function l(c,g){c&&t.append(","),r&&(t.append("\n"),i(g+1))}function f(c,g,d){r&&g&&(t.append("\n"),i(d)),t.append(c)}function p(c,g){Object.prototype.hasOwnProperty.call(c,"value")?S(c.value,g):t.append(je(c))}function x(c,g){let d;try{d=Reflect.getOwnPropertyDescriptor(c,"length")}catch(y){t.append("[Uninspectable]");return}let k=d==null?void 0:d.value;if(!Number.isSafeInteger(k)||k<0){t.append("[Uninspectable]");return}t.append("[");let b=!1;for(let y=0;y<k&&!t.stopped();y+=1){if(l(b,g),b=!0,o>=50){t.append("[MaxEntries]");break}o+=1;let M;try{M=Reflect.getOwnPropertyDescriptor(c,String(y))}catch(B){t.append("[Uninspectable]");continue}M!=null&&M.enumerable?p(M,g+1):t.append("[Empty]")}f("]",b,g)}function O(c,g){let d;try{d=Reflect.ownKeys(c)}catch(b){t.append("[Uninspectable]");return}t.append("{");let k=!1;for(let b of d){if(t.stopped())break;if(o>=50){l(k,g),k=!0,E(t,"\u2026"),t.append(r?": ":":"),t.append("[MaxEntries]");break}o+=1;let y;try{y=Reflect.getOwnPropertyDescriptor(c,b)}catch(M){l(k,g),k=!0,ne(t,b),t.append(r?": ":":"),t.append("[Uninspectable]");continue}y!=null&&y.enumerable&&(l(k,g),k=!0,ne(t,b),t.append(r?": ":":"),p(y,g+1))}f("}",k,g)}function m(c,g){if(s.has(c)){t.append("[Circular]");return}if(g>=5){t.append("[MaxDepth]");return}let d;try{d=Array.isArray(c)}catch(k){t.append("[Uninspectable]");return}s.add(c);try{d?x(c,g):O(c,g)}finally{s.delete(c)}}function S(c,g){c===null?t.append("null"):typeof c=="string"?E(t,c):typeof c=="number"?t.append(Object.is(c,-0)?"-0":String(c)):typeof c=="boolean"?t.append(c?"true":"false"):typeof c>"u"?t.append("undefined"):typeof c=="bigint"?t.append("".concat(c,"n")):typeof c=="symbol"?te(t,c):typeof c=="function"?t.append("[Function]"):m(c,g)}try{return S(e,0),t.result()}catch(c){return"[Uninspectable]"}}var We=ee,ie="\u2018",le="\u2019",ce="\u201C",fe="\u201D",Ee="\u2013",Ne="\u2014",De="\xA0",Ue="\u2026",Le="\u200A",Be="\u2009",Fe="\u2032",Ve="\u2033",$e="\\",_e="\uFFFD",Je="`",Ke="\xD7",He=[".",",",";","!","?"],ae=new Set([..."\u060B$\u20BC\u17DB\xA5\u20A1\u20B1\xA3\u20AC\xA2\u20B9\uFDFC\u20AA\u20A9\u20AD\u20A8\u20AE\u20A6\u20BD\u20AB\u0E3F\u20A9\u20BA\u20B4","$U","$b","B/.","BZ$","Br","Bs","C$","CHF","Ft","Gs","J$","KM","K\u010D","L","MT","NT$","P","Q","R","R$","RD$","RM","Rp","S","S/.","TT$","Z$","kn","kr","lei","z\u0142","\u0192","\u0414\u0438\u043D.","\u0434\u0435\u043D","\u043B\u0432","\u062F.\u0625","Lek"]),D=Object.prototype.hasOwnProperty,j=class{constructor(){I(this,"hasRepeatedReferences",!1);I(this,"clones",[]);I(this,"index");I(this,"sources",[])}get(n){if(this.index){let r=this.index.get(n);return r!==void 0&&(this.hasRepeatedReferences=!0),r}let t=this.sources.indexOf(n);if(t!==-1)return this.hasRepeatedReferences=!0,this.clones[t]}set(n,t){if(this.index){this.index.set(n,t);return}if(this.sources.push(n),this.clones.push(t),this.sources.length===32){this.index=new WeakMap;for(let r=0;r<this.sources.length;r++)this.index.set(this.sources[r],this.clones[r]);this.sources=[],this.clones=[]}}};function ue(e,n){let t=n.get(e);if(t!==void 0)return t;let r=e.slice(0);return n.set(e,r),r}function Ge(e,n){if(typeof Buffer<"u"&&Buffer.isBuffer(e)){let o=Buffer.from(e);return n.set(e,o),o}let t=ue(e.buffer,n);if(e instanceof DataView){let o=new DataView(t,e.byteOffset,e.byteLength);return n.set(e,o),o}let r=e.constructor,s=new r(t,e.byteOffset,e.length);return n.set(e,s),s}function F(e,n,t,r){for(let s of t){let o=n[s];e[s]=typeof o!="object"||o===null?o:R(o,r)}}function R(e,n){if(typeof e!="object"||e===null)return e;let t=n.get(e);if(t!==void 0)return t;if(Array.isArray(e)){let o=e.length,i=new Array(o);n.set(e,i);let l=e,f=Object.keys(e);if(f.length===o&&(o===0||f[o-1]==="".concat(o-1)))for(let p=0;p<o;p++){let x=l[p];i[p]=typeof x!="object"||x===null?x:R(x,n)}else F(i,l,f,n);return i}let r=Object.getPrototypeOf(e);if(r===Object.prototype||r===null){let o={};return n.set(e,o),F(o,e,Object.keys(e),n),o}if(e instanceof Date){let o=new Date(e.getTime());return n.set(e,o),o}if(ArrayBuffer.isView(e))return Ge(e,n);if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer)return ue(e,n);if(e instanceof Map){let o=new Map;n.set(e,o);for(let[i,l]of e)o.set(R(i,n),R(l,n));return o}if(e instanceof Set){let o=new Set;n.set(e,o);for(let i of e)o.add(R(i,n));return o}let s={};return n.set(e,s),F(s,e,Object.keys(e),n),s}function Qe(e){return R(e,new j)}function Xe(e){let n=new j,t=R(e,n);return{hasRepeatedReferences:n.hasRepeatedReferences,value:t}}function qe(e){if(!w(e))return!1;let n=e.charCodeAt(0);return n>=48&&n<=57}function ze(e){return w(e)&&e.length===1&&ae.has(e)}function Ze(e){return w(e)&&ae.has(e)}function Ye(e){if(!w(e)||e.length!==1)return!1;let n=e.charCodeAt(0);return n<128?n>64&&n<91||n>96&&n<123:e.toUpperCase()!==e.toLowerCase()}function ve(e){if(!e||!w(e))return!1;let n=e.charCodeAt(0);return n>64&&n<91||n>96&&n<123}function en(e){return w(e)&&(e==='"'||e==="'"||e===ie||e===le||e===ce||e===fe)}function nn(e){if(!w(e)||e.length!==1)return!1;let n=e.charCodeAt(0);return n<128?n>96&&n<123:e===e.toLowerCase()&&e!==e.toUpperCase()}function tn(e){if(!w(e)||e.length!==1)return!1;let n=e.charCodeAt(0);return n<128?n>64&&n<91:e===e.toUpperCase()&&e!==e.toLowerCase()}function rn(e){if(!w(e)||!e)return!1;let n=e.charCodeAt(0);return n<128?n===32||n>8&&n<14:!e[0].trim()}var on=e=>w(e)&&e.length&&e.endsWith("/")?e.slice(0,-1).trim():e;function J(e){if(e==null||typeof e!="object")return!1;let n=Object.getPrototypeOf(e);return n!==null&&n!==Object.prototype&&Object.getPrototypeOf(n)!==null?!1:!(Symbol.iterator in e)&&!(Symbol.toStringTag in e)}function sn(e="",n=0,t=0,r=""){return n<0&&(n+=e.length,n<0&&(n=0)),e.slice(0,n)+(r||"")+e.slice(n+t)}function w(e){return typeof e=="string"}function de(e){return Number.isFinite(e)}function ln(e){return Number.isSafeInteger(e)&&e>=0}function cn(e){return typeof e=="boolean"}function fn(e){return e===null}var se,an=(se=Object.getOwnPropertyDescriptor(RegExp.prototype,"source"))==null?void 0:se.get,pe=Object.prototype.toString;function ge(e){if(e instanceof RegExp)return!0;if(e===null||typeof e!="object")return!1;if(pe.call(e)!=="[object RegExp]")return e===RegExp.prototype;try{return an.call(e),!0}catch(n){return!1}}var un=Date.prototype.getTime;function dn(e){if(e instanceof Date)return!0;if(e===null||typeof e!="object"||pe.call(e)!=="[object Date]")return!1;try{return un.call(e),!0}catch(n){return!1}}function pn(e,n){if(!e||!n)return e;let t=!0;for(let l=n.length;l--;)if(n.charCodeAt(l)>127){t=!1;break}if(t){let l=0,f=e.length;if(n.length===1){let p=n.charCodeAt(0);for(;l<f&&e.charCodeAt(l)===p;)l++;for(;f>l&&e.charCodeAt(f-1)===p;)f--}else{for(;l<f&&n.includes(e[l]);)l++;for(;f>l&&n.includes(e[f-1]);)f--}return l===0&&f===e.length?e:e.slice(l,f)}let r=Array.from(e),s=new Set(n),o=0,i=r.length;for(;o<i&&s.has(r[o]);)o++;for(;i>o&&s.has(r[i-1]);)i--;return o===0&&i===r.length?e:r.slice(o,i).join("")}function gn(e,n){if(!w(e)||!w(n)||n.length===0)return[];let t=[],r=e.indexOf(n);for(;r!==-1;)t.push(r),r=e.indexOf(n,r+1);return t}function hn(e=[],n=[]){if(!e||!Array.isArray(e)||!e.length)return[];if(!n||!Array.isArray(n)||!n.length)return e;if(e.length*n.length<400)return e.filter(r=>!n.includes(r));let t=new Set(n);return e.filter(r=>!t.has(r))}function bn(e){return e!=null}function yn(e){return[...new Set(e)]}function he(e){if(!(typeof e!="string"||!e)){if(e.includes("\r\n"))return"\r\n";if(e.includes("\n"))return"\n";if(e.includes("\r"))return"\r"}}function mn(e,n,t="\n"){if(t!=="\n"&&t!=="\r\n"&&t!=="\r")throw new Error('codsen-utils/resolveEolSetting(): [THROW_ID_01] the input argument defaultEolChar should be one of EOL values: "\\n", "\\r", or "\\r\\n", but it was given as '.concat(N(t)));return n==="crlf"?"\r\n":n==="cr"?"\r":n==="lf"?"\n":he(e)||t}function xn(e,n){return J(e)&&w(n)&&D.call(e,n)}function kn(e,n){return e.localeCompare(n)}var wn=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],Cn=new Set(["a","abbr","acronym","audio","b","bdi","bdo","big","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","label","map","mark","meter","noscript","object","output","picture","progress","q","ruby","s","samp","script","select","slot","small","span","strong","sub","sup","svg","template","textarea","time","u","tt","var","video","wbr"]);function An(e,n){if(!Array.isArray(e)||!e.length||!w(n))return!1;for(let t of e){if(typeof t=="string"){if(n===t)return!0;continue}if(ge(t)){t.global&&(t.lastIndex=0);let r=t.test(n);if(t.global&&(t.lastIndex=0),r)return!0}}return!1}function Sn(e=[],n=[]){if(!Array.isArray(e)||!Array.isArray(n)||!e.length||!n.length)return[];let t=[];if(e.length*n.length<64){for(let o of e)n.includes(o)&&!t.includes(o)&&t.push(o);return t}let r=new Set(n),s=new Set;for(let o of e)r.has(o)&&!s.has(o)&&(s.add(o),t.push(o));return t}var V=/^-?\d+(?:\.\d*)?(?:e[+-]?\d+)?$/i;function On(e){return e.replace(/-+([^-])/g,(n,t)=>t.toUpperCase())}function Tn(e){return e.replace(/([\da-z])([A-Z])/g,"$1-$2").toLowerCase()}function Mn(e){return e.replace(/^[\r\n]+/,"").replace(/[\r\n]+$/,"")}function re(e,n){let t=Number.POSITIVE_INFINITY,r=e.split("\n");for(let o of r){let i=/^[ \t]*(?=\S)/.exec(o);i&&(t=Math.min(t,i[0].length))}let s=" ".repeat(n);return r.map(o=>o.trim()?s+o.slice(t):o).join("\n")}function Rn(e,n,t){let r="";return e&&(r=Mn(e.replace(/\t+\n*$/,"")),r.includes("\n")&&(r=re(r,t)),r="\n".concat(r)),n&&(r=r?"".concat(re("\n".concat(n,"\n"),t)).concat(r):"\n".concat(n)),"".concat(r,"\n")}function Pn(e){var r;let n=w(e.name)?e.name:"",{bin:t}=e;return w(t)?n.slice(n.startsWith("@")?n.indexOf("/")+1:0):t&&typeof t=="object"&&(r=Object.keys(t)[0])!=null?r:n}function In(e,n){let t=e?e.type:void 0;return n===void 0?t==="string"?"":t==="number"?void 0:!0:t==="boolean"?n==="true":t==="number"?Number(n):n}function jn(e="",n={}){var K,H,G,Q,X,q,z,Z,Y,v;let t=typeof process>"u"?void 0:process,r=(K=n.pkg)!=null?K:{},s=(G=(H=n.argv)!=null?H:t==null?void 0:t.argv.slice(2))!=null?G:[],o=(Q=n.helpIndent)!=null?Q:2,i=(X=n.autoHelp)!=null?X:!0,l=(q=n.autoVersion)!=null?q:!0,f=(Z=(z=n.version)!=null?z:r.version)!=null?Z:"No version found",p=D.call(n,"booleanDefault")?n.booleanDefault:!1,x=Rn(e,(Y=n.description)!=null?Y:r.description,o);function O(a){console.log(x),t==null||t.exit(de(a)?a:2)}function m(){console.log(f),t==null||t.exit(0)}let S=[],c=new Map;for(let[a,u]of Object.entries((v=n.flags)!=null?v:{})){let h={key:a,type:u.type,isMultiple:!!u.isMultiple,source:u};S.push(h),c.set(a,h),c.set(Tn(a),h),u.shortFlag&&c.set(u.shortFlag,h)}let g=[],d={};function k(a,u){let h=c.get(a),C=h?h.key:On(a);if(h!=null&&h.isMultiple){let A=d[C];Array.isArray(A)?A.push(u):d[C]=[u];return}d[C]=u}function b(a,u){k(a,In(c.get(a),u))}function y(a,u){return u===void 0?!1:(a==null?void 0:a.type)==="boolean"?u==="true"||u==="false":!(u.startsWith("-")&&u.length>1&&!V.test(u))}function M(a,u){let h=a.slice(1);for(let C=0;C<h.length;C++){let A=h[C],T=h.slice(C+1);if(T.startsWith("="))return b(A,T.slice(1)),u;if(V.test(T)||T&&/\W/.test(T[0]))return b(A,T),u;let P=c.get(A);if(T&&(P!=null&&P.type)&&P.type!=="boolean")return b(A,T),u;if(T){b(A,void 0);continue}if(y(P,s[u+1]))return b(A,s[u+1]),u+1;b(A,void 0)}return u}for(let a=0;a<s.length;a++){let u=s[a];if(u==="--"){g.push(...s.slice(a+1));break}if(u.startsWith("--")){let h=u.slice(2),C=h.indexOf("=");if(C!==-1){b(h.slice(0,C),h.slice(C+1));continue}if(h.startsWith("no-")){k(h.slice(3),!1);continue}let A=c.get(h);if(y(A,s[a+1])){b(h,s[a+1]),a++;continue}b(h,void 0);continue}if(u.startsWith("-")&&u.length>1&&!V.test(u)){a=M(u,a);continue}g.push(u)}for(let a of S)D.call(d,a.key)||(D.call(a.source,"default")?d[a.key]=a.source.default:a.isMultiple?d[a.key]=[]:a.type==="boolean"&&p!==void 0&&(d[a.key]=p));!g.length&&s.length===1&&(l&&d.version===!0?m():i&&d.help===!0&&O(0));let B=Pn(r);return B&&t&&(t.title=B),{input:g,flags:d,pkg:r,help:x,showHelp:O,showVersion:m}}function Wn(e,n=[]){if(!e)return e;if(!J(e))throw new Error("codsen-utils/omit(): [THROW_ID_02] Input must be a plain object! It was given as ".concat(N(e,4),' (typeof is "').concat(typeof e,'")'));let t={},r=new j;r.set(e,t);let s=Object.keys(e),o=s.length*n.length<400?void 0:new Set(n);for(let i of s)(o?o.has(i):n.includes(i))||(t[i]=R(e[i],r));return t}var En=256,Nn=1024,Dn=1,Un=new Map,Ln=new Map;function _(e){if(e>=97&&e<=122)return e-32;if(e>65535)return e;let n=String.fromCharCode(e).toUpperCase();if(n.length!==1)return e;let t=n.charCodeAt(0);return e>127&&t<128?e:t}function $(e,n,t,r,s,o){for(let i=0;i<s;i++){let l=e.charCodeAt(n+i),f=t.charCodeAt(r+i);if(o||(l>=97&&l<=122&&(l-=32),f>=97&&f<=122&&(f-=32)),l!==f)return!1}return!0}function be(e,n,t){let r=n.indexOf("\\");if(r===-1&&e===n)return!0;let s=n.indexOf("*");if(r===-1&&s===-1){if(t)return!1;for(let x=0;x<n.length;x++)if(n.charCodeAt(x)>127)return;return e.length===n.length&&$(e,0,n,0,n.length,!1)}if(r!==-1)return;let o=0,i=!1,l=-1;for(let x=0;x<n.length;x++){let O=n.charCodeAt(x);if(O>127)return;if(O===42){if(l=x,!i){if(o++,o>1)return;i=!0}}else i=!1}let f=l+1,p=n.length-f;return e.length<s+p?!1:$(e,0,n,0,s,t)&&$(e,e.length-p,n,f,p,t)}function Bn(e){let n=new Uint32Array(e.length),t=0;for(let r=1;r<e.length;r++){for(;t>0&&e[r]!==e[t];)t=n[t-1];e[r]===e[t]&&t++,n[r]=t}return n}function Fn(e,n){let t=[[]],r=!0,s=!1,o=!1,i=0;for(let m=0;m<e.length;){let S=e.codePointAt(m);if(S!==92){if(S===42)s=!0,o||(t.push([]),o=!0);else{let y=n?S:_(S);t[t.length-1].push(y),r&&(r=y<=127),i++,o=!1}m+=S>65535?2:1;continue}let c=m+1;for(;e.charCodeAt(c)===92;)c++;let g=c-m,d=e.codePointAt(c),k,b=!1;d===42?(b=g%2===0,k=b?g/2:(g-1)/2):d===void 0||d===10||d===13||d===8232||d===8233?k=Math.ceil(g/2):k=Math.floor(g/2);for(let y=0;y<k;y++)t[t.length-1].push(92),i++;if(b){o=!1,m=c;continue}if(d!==void 0){let y=n?d:_(d);t[t.length-1].push(y),r&&(r=y<=127),i++,c+=d>65535?2:1}o=!1,m=c}let l=s&&t[0].length===0,f=s&&t[t.length-1].length===0,p=[];for(let m of t)m.length&&p.push({values:m});let x=l?0:1,O=p.length-(f?0:1);for(let m=x;m<O;m++)p[m].values.length>Dn&&(p[m].failure=Bn(p[m].values));return{asciiOnly:r,endsWithWildcard:f,hasWildcard:s,minimumInputLength:i,segments:p,startsWithWildcard:l}}function ye(e,n){let t=n?Un:Ln,r=e.length<=Nn;if(r){let o=t.get(e);if(o)return o}let s=Fn(e,n);if(r){if(t.size>=En){let o=t.keys().next().value;o!==void 0&&t.delete(o)}t.set(e,s)}return s}function me(e,n){if(n){let s=[];for(let o=0;o<e.length;){let i=e.codePointAt(o);s.push(i),o+=i>65535?2:1}return s}let t=new Uint32Array(e.length),r=0;for(let s=0;s<e.length;){let o=e.codePointAt(s);t[r]=_(o),r++,s+=o>65535?2:1}return r===t.length?t:t.subarray(0,r)}function U(e,n,t,r){for(let s=0;s<t.values.length;s++){let o=e.charCodeAt(n+s);if(!r&&o>=97&&o<=122&&(o-=32),o!==t.values[s])return!1}return!0}function Vn(e,n,t,r,s){let o=r-n.values.length;if(o<t)return-1;if(!n.failure){for(let l=t;l<=o;l++)if(U(e,l,n,s))return l;return-1}let i=0;for(let l=t;l<r;l++){let f=e.charCodeAt(l);for(!s&&f>=97&&f<=122&&(f-=32);i>0&&f!==n.values[i];)i=n.failure[i-1];if(f===n.values[i]&&(i++,i===n.values.length))return l-i+1}return-1}function xe(e,n,t){if(e.length<n.minimumInputLength)return!1;if(!n.hasWildcard)return e.length===n.minimumInputLength&&U(e,0,n.segments[0],t);let r=0,s=n.segments.length,o=0,i=e.length;if(!n.startsWithWildcard){let l=n.segments[0];if(!U(e,0,l,t))return!1;o=l.values.length,r++}if(!n.endsWithWildcard){s--;let l=n.segments[s];if(i-=l.values.length,!U(e,i,l,t))return!1}for(let l=r;l<s;l++){let f=n.segments[l],p=Vn(e,f,o,i,t);if(p===-1)return!1;o=p+f.values.length}return!0}function L(e,n,t){for(let r=0;r<t.values.length;r++)if(e[n+r]!==t.values[r])return!1;return!0}function $n(e,n,t,r){let s=r-n.values.length;if(s<t)return-1;if(!n.failure){for(let i=t;i<=s;i++)if(L(e,i,n))return i;return-1}let o=0;for(let i=t;i<r;i++){for(;o>0&&e[i]!==n.values[o];)o=n.failure[o-1];if(e[i]===n.values[o]&&(o++,o===n.values.length))return i-o+1}return-1}function ke(e,n){if(e.length<n.minimumInputLength)return!1;if(!n.hasWildcard)return e.length===n.minimumInputLength&&L(e,0,n.segments[0]);let t=0,r=n.segments.length,s=0,o=e.length;if(!n.startsWithWildcard){let i=n.segments[0];if(!L(e,0,i))return!1;s=i.values.length,t++}if(!n.endsWithWildcard){r--;let i=n.segments[r];if(o-=i.values.length,!L(e,o,i))return!1}for(let i=t;i<r;i++){let l=n.segments[i],f=$n(e,l,s,o);if(f===-1)return!1;s=f+l.values.length}return!0}function _n(e,n,t){let r=be(e,n,t);if(r!==void 0)return r;let s=ye(n,t);return s.asciiOnly?xe(e,s,t):ke(me(e,t),s)}function oe(e,n,t,r){var i;let s=be(e,n,t);if(s!==void 0)return s;let o=ye(n,t);return o.asciiOnly?xe(e,o,t):((i=r.tokens)!=null||(r.tokens=me(e,t)),ke(r.tokens,o))}function Jn(e,n,t){if(typeof n!="string"&&!n.length)return!1;let r=t===void 0?!1:t.caseSensitiveMatch===!0;if(typeof n=="string"){let l=n.charCodeAt(0)===33,f=l?n.slice(1):n,p=_n(e,f,r);return l?!p:p}let s={},o=!1,i=!1;for(let l of n){let f=l.charCodeAt(0)===33,p=f?l.slice(1):l;if(f){if(oe(e,p,r,s))return!1}else o=!0,!i&&oe(e,p,r,s)&&(i=!0)}return o?i:!0}return Me(Kn);})();
|
package/package.json
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codsen-utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "Various utility functions",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"codsen",
|
|
7
|
-
"utility",
|
|
8
|
-
"helpers"
|
|
9
|
-
],
|
|
5
|
+
"keywords": ["codsen", "utility", "helpers"],
|
|
10
6
|
"homepage": "https://codsen.com/os/codsen-utils",
|
|
11
7
|
"repository": {
|
|
12
8
|
"type": "git",
|
|
@@ -27,45 +23,42 @@
|
|
|
27
23
|
},
|
|
28
24
|
"types": "types/index.d.ts",
|
|
29
25
|
"scripts": {
|
|
30
|
-
"build": "node
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"dev": "DEV=true node '../../ops/scripts/esbuild.js' && npm run dts",
|
|
26
|
+
"build": "node ../../ops/scripts/esbuild.js && npm run dts",
|
|
27
|
+
"coverage": "c8 uvu test",
|
|
28
|
+
"dev": "node ../../ops/scripts/esbuild.js --dev && npm run dts",
|
|
34
29
|
"devtest": "c8 npm run unit && npm run examples && npm run lint",
|
|
35
|
-
"dts": "rollup -c &&
|
|
30
|
+
"dts": "rollup -c && biome format --write --config-path=../../biome.json --vcs-enabled=false --use-editorconfig=false types/index.d.ts",
|
|
36
31
|
"examples": "node '../../ops/scripts/run-examples.js'",
|
|
37
|
-
"lect": "node '../../ops/lect/lect.js'
|
|
38
|
-
"
|
|
39
|
-
"lint": "
|
|
32
|
+
"lect": "node '../../ops/lect/lect.js'",
|
|
33
|
+
"lect:check": "node '../../ops/lect/lect.js' --check",
|
|
34
|
+
"lint": "biome lint --error-on-warnings . && npm run typecheck",
|
|
35
|
+
"lint:fix": "biome lint --write --error-on-warnings . && npm run typecheck",
|
|
40
36
|
"perf": "node perf/check.js",
|
|
41
37
|
"prep": "echo 'ready'",
|
|
42
|
-
"prettier": "
|
|
43
|
-
"prettier:format": "
|
|
44
|
-
"pretest": "npm run lect && npm run build",
|
|
38
|
+
"prettier": "biome format",
|
|
39
|
+
"prettier:format": "biome format --write .",
|
|
40
|
+
"pretest": "npm run lect:check && npm run build",
|
|
45
41
|
"test": "npm run devtest",
|
|
42
|
+
"typecheck": "tsc --noEmit --pretty false --project tsconfig.json",
|
|
46
43
|
"unit": "uvu test"
|
|
47
44
|
},
|
|
48
|
-
"engines": {
|
|
49
|
-
"node": ">=14.18.0"
|
|
50
|
-
},
|
|
51
45
|
"c8": {
|
|
46
|
+
"all": true,
|
|
52
47
|
"branches": 100,
|
|
53
48
|
"check-coverage": true,
|
|
54
|
-
"exclude": [
|
|
55
|
-
"**/test/**/*.*"
|
|
56
|
-
],
|
|
49
|
+
"exclude": ["**/test/**/*.*"],
|
|
57
50
|
"functions": 100,
|
|
58
|
-
"
|
|
51
|
+
"include": ["dist/*.esm.js"],
|
|
52
|
+
"lines": 100,
|
|
53
|
+
"statements": 100
|
|
59
54
|
},
|
|
60
55
|
"lect": {
|
|
61
56
|
"licence": {
|
|
62
|
-
"extras": [
|
|
63
|
-
""
|
|
64
|
-
]
|
|
57
|
+
"extras": [""]
|
|
65
58
|
}
|
|
66
59
|
},
|
|
67
|
-
"
|
|
68
|
-
"
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=18.20.8"
|
|
69
62
|
},
|
|
70
63
|
"publishConfig": {
|
|
71
64
|
"registry": "https://registry.npmjs.org/"
|
package/types/index.d.ts
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safely formats untrusted input for an error message.
|
|
3
|
+
*
|
|
4
|
+
* The result is JSON-like rather than JSON: values which JSON cannot express
|
|
5
|
+
* use explicit diagnostic tokens. Object accessors are described without
|
|
6
|
+
* running them, circular references are marked, and reflection failures are
|
|
7
|
+
* contained. Output is capped at 2,000 UTF-16 code units, five object levels,
|
|
8
|
+
* and 50 array items or object properties across the whole value.
|
|
9
|
+
*/
|
|
10
|
+
declare function formatDiagnosticValue(
|
|
11
|
+
value: unknown,
|
|
12
|
+
indentation?: 0 | 4,
|
|
13
|
+
): string;
|
|
14
|
+
|
|
1
15
|
declare const version: string;
|
|
2
16
|
declare const leftSingleQuote = "\u2018";
|
|
3
17
|
declare const rightSingleQuote = "\u2019";
|
|
@@ -27,6 +41,14 @@ interface JSONObject {
|
|
|
27
41
|
type Obj = JSONObject;
|
|
28
42
|
type EolChar = "\n" | "\r" | "\r\n";
|
|
29
43
|
type EolSetting = "lf" | "crlf" | "cr";
|
|
44
|
+
/** Clone nested data without retaining object or collection references. */
|
|
45
|
+
declare function deepClone<T>(value: T): T;
|
|
46
|
+
interface DeepCloneResult<T> {
|
|
47
|
+
hasRepeatedReferences: boolean;
|
|
48
|
+
value: T;
|
|
49
|
+
}
|
|
50
|
+
/** Clone nested data and report whether its source graph reused an object. */
|
|
51
|
+
declare function deepCloneWithMetadata<T>(value: T): DeepCloneResult<T>;
|
|
30
52
|
declare function isNumberChar(value: unknown): boolean;
|
|
31
53
|
declare function isCurrencyChar(value: unknown): boolean;
|
|
32
54
|
declare function isCurrencySymbol(value: unknown): boolean;
|
|
@@ -63,13 +85,17 @@ declare function isNum(something: unknown): something is number;
|
|
|
63
85
|
declare function isInt(something: unknown): something is number;
|
|
64
86
|
declare function isBool(something: unknown): something is boolean;
|
|
65
87
|
declare function isNull(something: unknown): something is null;
|
|
66
|
-
declare function isRegExp(something:
|
|
88
|
+
declare function isRegExp(something: unknown): something is RegExp;
|
|
89
|
+
declare function isDate(something: unknown): something is Date;
|
|
90
|
+
/**
|
|
91
|
+
* Trims the supplied Unicode characters from both ends of a string.
|
|
92
|
+
*/
|
|
93
|
+
declare function trimChars(input: string, chars: string): string;
|
|
67
94
|
/**
|
|
68
95
|
* Gives array of indexes of all found substring occurrences
|
|
69
96
|
* @param string source string
|
|
70
97
|
* @param substring what to look for
|
|
71
98
|
* @returns array of findings' position indexes
|
|
72
|
-
* adapted from https://stackoverflow.com/a/10710406
|
|
73
99
|
* console.log(findAllIdx("scissors", "s"));
|
|
74
100
|
* -> [0, 3, 4, 7]
|
|
75
101
|
*/
|
|
@@ -115,18 +141,117 @@ declare function includes(
|
|
|
115
141
|
): boolean;
|
|
116
142
|
/** Alternative to lodash.intersection */
|
|
117
143
|
declare function intersection<T, U>(a?: T[], b?: U[]): T[];
|
|
144
|
+
/** What a flag's value gets coerced to, once parsed */
|
|
145
|
+
type CliFlagType = "boolean" | "string" | "number";
|
|
146
|
+
interface CliFlag {
|
|
147
|
+
/** Coercion applied to whatever the user typed. Undeclared - value is
|
|
148
|
+
* passed through as a raw string (or `true` for a bare flag) */
|
|
149
|
+
type?: CliFlagType;
|
|
150
|
+
/** Single-letter alias, for example `p` to serve `--pad` as `-p` */
|
|
151
|
+
shortFlag?: string;
|
|
152
|
+
/** Used when the flag is absent from argv */
|
|
153
|
+
default?: unknown;
|
|
154
|
+
/** Collect every occurrence into an array instead of last-one-wins */
|
|
155
|
+
isMultiple?: boolean;
|
|
156
|
+
}
|
|
157
|
+
interface CliPkg {
|
|
158
|
+
name?: string;
|
|
159
|
+
version?: string;
|
|
160
|
+
description?: string;
|
|
161
|
+
bin?: string | Record<string, string>;
|
|
162
|
+
[key: string]: unknown;
|
|
163
|
+
}
|
|
164
|
+
interface CliOptions {
|
|
165
|
+
/** The consuming program's package.json contents */
|
|
166
|
+
pkg?: CliPkg;
|
|
167
|
+
/** Flag schema, keyed by the flag's camelCase name */
|
|
168
|
+
flags?: Record<string, CliFlag>;
|
|
169
|
+
/** Defaults to `process.argv.slice(2)` */
|
|
170
|
+
argv?: string[];
|
|
171
|
+
/** Printed above the help text. Defaults to `pkg.description`,
|
|
172
|
+
* set to `false` to omit it */
|
|
173
|
+
description?: string | false;
|
|
174
|
+
/** Defaults to `pkg.version` */
|
|
175
|
+
version?: string;
|
|
176
|
+
/** How many spaces the help text is indented by. Default: 2 */
|
|
177
|
+
helpIndent?: number;
|
|
178
|
+
/** Print help and exit when the only argument is `--help`. Default: true */
|
|
179
|
+
autoHelp?: boolean;
|
|
180
|
+
/** Print version and exit when the only argument is `--version`.
|
|
181
|
+
* Default: true */
|
|
182
|
+
autoVersion?: boolean;
|
|
183
|
+
/** Value given to declared boolean flags the user didn't pass.
|
|
184
|
+
* Default: `false`, set to `undefined` to leave them unset */
|
|
185
|
+
booleanDefault?: boolean;
|
|
186
|
+
}
|
|
187
|
+
interface CliResult {
|
|
188
|
+
/** Positional arguments, in the order they were given */
|
|
189
|
+
input: string[];
|
|
190
|
+
/** Parsed flags, keyed by their camelCase names */
|
|
191
|
+
flags: Record<string, unknown>;
|
|
192
|
+
pkg: CliPkg;
|
|
193
|
+
/** The assembled help text, ready to print */
|
|
194
|
+
help: string;
|
|
195
|
+
/** Prints the help text, then exits (code 2 unless told otherwise) */
|
|
196
|
+
showHelp: (exitCode?: number) => void;
|
|
197
|
+
/** Prints the version, then exits with code 0 */
|
|
198
|
+
showVersion: () => void;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Parses argv the way a CLI expects: flags with values, short flags, bundles,
|
|
202
|
+
* `--no-` negation, camelCase names and a `--` escape hatch. Prints help or
|
|
203
|
+
* version on request. An in-house stand-in for "meow".
|
|
204
|
+
* @param helpText what `--help` prints
|
|
205
|
+
* @param options flag schema and the consuming program's package.json
|
|
206
|
+
* @returns the parsed `input` and `flags`, plus `help`/`showHelp`/`showVersion`
|
|
207
|
+
*/
|
|
208
|
+
declare function codsenCLI(helpText?: string, options?: CliOptions): CliResult;
|
|
118
209
|
/** Alternative to lodash.omit */
|
|
119
210
|
declare function omit(obj: JSONObject, keysToRemove?: string[]): JSONObject;
|
|
211
|
+
interface MatchOptions {
|
|
212
|
+
/** Match letter case exactly. Off by default. */
|
|
213
|
+
caseSensitiveMatch?: boolean;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Match a whole string against one or more wildcard patterns.
|
|
217
|
+
*
|
|
218
|
+
* Patterns are anchored — they must consume the whole input, not a part of
|
|
219
|
+
* it. `*` stands for zero or more characters and does cross line breaks.
|
|
220
|
+
* A leading `!` negates a pattern: any negative pattern which matches vetoes
|
|
221
|
+
* the result outright, no matter what the positive ones did. Given only
|
|
222
|
+
* negative patterns, anything they don't catch passes. An empty pattern
|
|
223
|
+
* array matches nothing.
|
|
224
|
+
*
|
|
225
|
+
* `\` escapes the character after it, so `\*` means a literal asterisk and
|
|
226
|
+
* `\\` means a literal backslash.
|
|
227
|
+
*
|
|
228
|
+
* Matching walks code points, not UTF-16 code units, so a wildcard can never
|
|
229
|
+
* consume half of a surrogate pair.
|
|
230
|
+
* @param input string to match
|
|
231
|
+
* @param patterns one pattern or an array of them
|
|
232
|
+
* @returns boolean
|
|
233
|
+
* console.log(match("index.js", ["*.js", "!*.test.js"]));
|
|
234
|
+
* -> true
|
|
235
|
+
*/
|
|
236
|
+
declare function match(
|
|
237
|
+
input: string,
|
|
238
|
+
patterns: string | readonly string[],
|
|
239
|
+
options?: MatchOptions,
|
|
240
|
+
): boolean;
|
|
120
241
|
|
|
121
242
|
export {
|
|
122
243
|
backslash,
|
|
123
244
|
backtick,
|
|
245
|
+
codsenCLI,
|
|
124
246
|
compareFn,
|
|
247
|
+
deepClone,
|
|
248
|
+
deepCloneWithMetadata,
|
|
125
249
|
detectEol,
|
|
126
250
|
doublePrime,
|
|
127
251
|
ellipsis,
|
|
128
252
|
existy,
|
|
129
253
|
findAllIdx,
|
|
254
|
+
formatDiagnosticValue,
|
|
130
255
|
hairspace,
|
|
131
256
|
hasOwnProp,
|
|
132
257
|
includes,
|
|
@@ -135,6 +260,7 @@ export {
|
|
|
135
260
|
isBool,
|
|
136
261
|
isCurrencyChar,
|
|
137
262
|
isCurrencySymbol,
|
|
263
|
+
isDate,
|
|
138
264
|
isInt,
|
|
139
265
|
isLatinLetter,
|
|
140
266
|
isLetter,
|
|
@@ -150,6 +276,7 @@ export {
|
|
|
150
276
|
isWhitespaceChar,
|
|
151
277
|
leftDoubleQuote,
|
|
152
278
|
leftSingleQuote,
|
|
279
|
+
match,
|
|
153
280
|
multiplicationSign,
|
|
154
281
|
omit,
|
|
155
282
|
pullAll,
|
|
@@ -165,16 +292,24 @@ export {
|
|
|
165
292
|
singlePrime,
|
|
166
293
|
stringSplice,
|
|
167
294
|
thinSpace,
|
|
295
|
+
trimChars,
|
|
168
296
|
uniq,
|
|
169
297
|
version,
|
|
170
298
|
voidTags,
|
|
171
299
|
};
|
|
172
300
|
export type {
|
|
301
|
+
CliFlag,
|
|
302
|
+
CliFlagType,
|
|
303
|
+
CliOptions,
|
|
304
|
+
CliPkg,
|
|
305
|
+
CliResult,
|
|
306
|
+
DeepCloneResult,
|
|
173
307
|
EolChar,
|
|
174
308
|
EolSetting,
|
|
175
309
|
JSONArray,
|
|
176
310
|
JSONObject,
|
|
177
311
|
JSONValue,
|
|
178
312
|
JsonObject,
|
|
313
|
+
MatchOptions,
|
|
179
314
|
Obj,
|
|
180
315
|
};
|