@fluixi/utils 1.0.0-alpha.53
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/LICENSE +21 -0
- package/README.md +73 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/dist/lib/array/advanced.cjs +1 -0
- package/dist/lib/array/advanced.d.ts +1116 -0
- package/dist/lib/array/advanced.d.ts.map +1 -0
- package/dist/lib/array/advanced.js +2429 -0
- package/dist/lib/array/advanced.mjs +1 -0
- package/dist/lib/array/array.cjs +1 -0
- package/dist/lib/array/array.d.ts +6 -0
- package/dist/lib/array/array.d.ts.map +1 -0
- package/dist/lib/array/array.js +31 -0
- package/dist/lib/array/array.mjs +1 -0
- package/dist/lib/array/index.cjs +1 -0
- package/dist/lib/array/index.d.ts +4 -0
- package/dist/lib/array/index.d.ts.map +1 -0
- package/dist/lib/array/index.js +3 -0
- package/dist/lib/array/index.mjs +1 -0
- package/dist/lib/array/utils.cjs +1 -0
- package/dist/lib/array/utils.d.ts +100 -0
- package/dist/lib/array/utils.d.ts.map +1 -0
- package/dist/lib/array/utils.js +165 -0
- package/dist/lib/array/utils.mjs +1 -0
- package/dist/lib/color/color.cjs +1 -0
- package/dist/lib/color/color.d.ts +366 -0
- package/dist/lib/color/color.d.ts.map +1 -0
- package/dist/lib/color/color.js +722 -0
- package/dist/lib/color/color.mjs +1 -0
- package/dist/lib/color/constants.cjs +1 -0
- package/dist/lib/color/constants.d.ts +361 -0
- package/dist/lib/color/constants.d.ts.map +1 -0
- package/dist/lib/color/constants.js +358 -0
- package/dist/lib/color/constants.mjs +1 -0
- package/dist/lib/color/conversions.cjs +1 -0
- package/dist/lib/color/conversions.d.ts +166 -0
- package/dist/lib/color/conversions.d.ts.map +1 -0
- package/dist/lib/color/conversions.js +766 -0
- package/dist/lib/color/conversions.mjs +1 -0
- package/dist/lib/color/helpers.cjs +1 -0
- package/dist/lib/color/helpers.d.ts +75 -0
- package/dist/lib/color/helpers.d.ts.map +1 -0
- package/dist/lib/color/helpers.js +419 -0
- package/dist/lib/color/helpers.mjs +1 -0
- package/dist/lib/color/index.cjs +1 -0
- package/dist/lib/color/index.d.ts +12 -0
- package/dist/lib/color/index.d.ts.map +1 -0
- package/dist/lib/color/index.js +15 -0
- package/dist/lib/color/index.mjs +1 -0
- package/dist/lib/color/types.cjs +1 -0
- package/dist/lib/color/types.d.ts +179 -0
- package/dist/lib/color/types.d.ts.map +1 -0
- package/dist/lib/color/types.js +1 -0
- package/dist/lib/color/types.mjs +0 -0
- package/dist/lib/color/utils.cjs +1 -0
- package/dist/lib/color/utils.d.ts +199 -0
- package/dist/lib/color/utils.d.ts.map +1 -0
- package/dist/lib/color/utils.js +858 -0
- package/dist/lib/color/utils.mjs +1 -0
- package/dist/lib/compare/comparators.cjs +1 -0
- package/dist/lib/compare/comparators.d.ts +65 -0
- package/dist/lib/compare/comparators.d.ts.map +1 -0
- package/dist/lib/compare/comparators.js +210 -0
- package/dist/lib/compare/comparators.mjs +1 -0
- package/dist/lib/compare/index.cjs +1 -0
- package/dist/lib/compare/index.d.ts +2 -0
- package/dist/lib/compare/index.d.ts.map +1 -0
- package/dist/lib/compare/index.js +1 -0
- package/dist/lib/compare/index.mjs +1 -0
- package/dist/lib/crypto/hash.cjs +1 -0
- package/dist/lib/crypto/hash.d.ts +6 -0
- package/dist/lib/crypto/hash.d.ts.map +1 -0
- package/dist/lib/crypto/hash.js +53 -0
- package/dist/lib/crypto/hash.mjs +1 -0
- package/dist/lib/crypto/index.cjs +1 -0
- package/dist/lib/crypto/index.d.ts +2 -0
- package/dist/lib/crypto/index.d.ts.map +1 -0
- package/dist/lib/crypto/index.js +1 -0
- package/dist/lib/crypto/index.mjs +1 -0
- package/dist/lib/dom/events.cjs +1 -0
- package/dist/lib/dom/events.d.ts +159 -0
- package/dist/lib/dom/events.d.ts.map +1 -0
- package/dist/lib/dom/events.js +50 -0
- package/dist/lib/dom/events.mjs +1 -0
- package/dist/lib/dom/index.cjs +1 -0
- package/dist/lib/dom/index.d.ts +3 -0
- package/dist/lib/dom/index.d.ts.map +1 -0
- package/dist/lib/dom/index.js +2 -0
- package/dist/lib/dom/index.mjs +1 -0
- package/dist/lib/dom/utils.cjs +1 -0
- package/dist/lib/dom/utils.d.ts +6 -0
- package/dist/lib/dom/utils.d.ts.map +1 -0
- package/dist/lib/dom/utils.js +37 -0
- package/dist/lib/dom/utils.mjs +1 -0
- package/dist/lib/functions/functions.cjs +1 -0
- package/dist/lib/functions/functions.d.ts +329 -0
- package/dist/lib/functions/functions.d.ts.map +1 -0
- package/dist/lib/functions/functions.js +585 -0
- package/dist/lib/functions/functions.mjs +1 -0
- package/dist/lib/functions/index.cjs +1 -0
- package/dist/lib/functions/index.d.ts +3 -0
- package/dist/lib/functions/index.d.ts.map +1 -0
- package/dist/lib/functions/index.js +1 -0
- package/dist/lib/functions/index.mjs +1 -0
- package/dist/lib/functions/types.cjs +1 -0
- package/dist/lib/functions/types.d.ts +2 -0
- package/dist/lib/functions/types.d.ts.map +1 -0
- package/dist/lib/functions/types.js +1 -0
- package/dist/lib/functions/types.mjs +0 -0
- package/dist/lib/helpers.cjs +1 -0
- package/dist/lib/helpers.d.ts +13 -0
- package/dist/lib/helpers.d.ts.map +1 -0
- package/dist/lib/helpers.js +66 -0
- package/dist/lib/helpers.mjs +1 -0
- package/dist/lib/index.cjs +1 -0
- package/dist/lib/index.d.ts +6 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +8 -0
- package/dist/lib/index.mjs +1 -0
- package/dist/lib/maths/constants.cjs +1 -0
- package/dist/lib/maths/constants.d.ts +84 -0
- package/dist/lib/maths/constants.d.ts.map +1 -0
- package/dist/lib/maths/constants.js +79 -0
- package/dist/lib/maths/constants.mjs +1 -0
- package/dist/lib/maths/fn/advanced.cjs +1 -0
- package/dist/lib/maths/fn/advanced.d.ts +149 -0
- package/dist/lib/maths/fn/advanced.d.ts.map +1 -0
- package/dist/lib/maths/fn/advanced.js +264 -0
- package/dist/lib/maths/fn/advanced.mjs +1 -0
- package/dist/lib/maths/fn/basic.cjs +1 -0
- package/dist/lib/maths/fn/basic.d.ts +182 -0
- package/dist/lib/maths/fn/basic.d.ts.map +1 -0
- package/dist/lib/maths/fn/basic.js +343 -0
- package/dist/lib/maths/fn/basic.mjs +1 -0
- package/dist/lib/maths/fn/complex.cjs +1 -0
- package/dist/lib/maths/fn/complex.d.ts +153 -0
- package/dist/lib/maths/fn/complex.d.ts.map +1 -0
- package/dist/lib/maths/fn/complex.js +383 -0
- package/dist/lib/maths/fn/complex.mjs +1 -0
- package/dist/lib/maths/fn/index.cjs +1 -0
- package/dist/lib/maths/fn/index.d.ts +10 -0
- package/dist/lib/maths/fn/index.d.ts.map +1 -0
- package/dist/lib/maths/fn/index.js +9 -0
- package/dist/lib/maths/fn/index.mjs +1 -0
- package/dist/lib/maths/fn/trigo.cjs +1 -0
- package/dist/lib/maths/fn/trigo.d.ts +147 -0
- package/dist/lib/maths/fn/trigo.d.ts.map +1 -0
- package/dist/lib/maths/fn/trigo.js +227 -0
- package/dist/lib/maths/fn/trigo.mjs +1 -0
- package/dist/lib/maths/fn/vector.cjs +1 -0
- package/dist/lib/maths/fn/vector.d.ts +512 -0
- package/dist/lib/maths/fn/vector.d.ts.map +1 -0
- package/dist/lib/maths/fn/vector.js +1136 -0
- package/dist/lib/maths/fn/vector.mjs +1 -0
- package/dist/lib/maths/formatter.cjs +1 -0
- package/dist/lib/maths/formatter.d.ts +35 -0
- package/dist/lib/maths/formatter.d.ts.map +1 -0
- package/dist/lib/maths/formatter.js +56 -0
- package/dist/lib/maths/formatter.mjs +1 -0
- package/dist/lib/maths/guards.cjs +1 -0
- package/dist/lib/maths/guards.d.ts +166 -0
- package/dist/lib/maths/guards.d.ts.map +1 -0
- package/dist/lib/maths/guards.js +315 -0
- package/dist/lib/maths/guards.mjs +1 -0
- package/dist/lib/maths/index.cjs +1 -0
- package/dist/lib/maths/index.d.ts +24 -0
- package/dist/lib/maths/index.d.ts.map +1 -0
- package/dist/lib/maths/index.js +29 -0
- package/dist/lib/maths/index.mjs +1 -0
- package/dist/lib/maths/parser.cjs +1 -0
- package/dist/lib/maths/parser.d.ts +20 -0
- package/dist/lib/maths/parser.d.ts.map +1 -0
- package/dist/lib/maths/parser.js +78 -0
- package/dist/lib/maths/parser.mjs +1 -0
- package/dist/lib/maths/random.cjs +1 -0
- package/dist/lib/maths/random.d.ts +27 -0
- package/dist/lib/maths/random.d.ts.map +1 -0
- package/dist/lib/maths/random.js +49 -0
- package/dist/lib/maths/random.mjs +1 -0
- package/dist/lib/maths/types/advanced.cjs +1 -0
- package/dist/lib/maths/types/advanced.d.ts +357 -0
- package/dist/lib/maths/types/advanced.d.ts.map +1 -0
- package/dist/lib/maths/types/advanced.js +5 -0
- package/dist/lib/maths/types/advanced.mjs +0 -0
- package/dist/lib/maths/types/basic.cjs +1 -0
- package/dist/lib/maths/types/basic.d.ts +95 -0
- package/dist/lib/maths/types/basic.d.ts.map +1 -0
- package/dist/lib/maths/types/basic.js +5 -0
- package/dist/lib/maths/types/basic.mjs +0 -0
- package/dist/lib/maths/types/index.cjs +1 -0
- package/dist/lib/maths/types/index.d.ts +4 -0
- package/dist/lib/maths/types/index.d.ts.map +1 -0
- package/dist/lib/maths/types/index.js +3 -0
- package/dist/lib/maths/types/index.mjs +0 -0
- package/dist/lib/maths/types/negative.cjs +1 -0
- package/dist/lib/maths/types/negative.d.ts +51 -0
- package/dist/lib/maths/types/negative.d.ts.map +1 -0
- package/dist/lib/maths/types/negative.js +5 -0
- package/dist/lib/maths/types/negative.mjs +0 -0
- package/dist/lib/maths/types/operations.cjs +1 -0
- package/dist/lib/maths/types/operations.d.ts +188 -0
- package/dist/lib/maths/types/operations.d.ts.map +1 -0
- package/dist/lib/maths/types/operations.js +6 -0
- package/dist/lib/maths/types/operations.mjs +0 -0
- package/dist/lib/object/clone.cjs +1 -0
- package/dist/lib/object/clone.d.ts +46 -0
- package/dist/lib/object/clone.d.ts.map +1 -0
- package/dist/lib/object/clone.js +104 -0
- package/dist/lib/object/clone.mjs +1 -0
- package/dist/lib/object/diff.cjs +1 -0
- package/dist/lib/object/diff.d.ts +203 -0
- package/dist/lib/object/diff.d.ts.map +1 -0
- package/dist/lib/object/diff.js +805 -0
- package/dist/lib/object/diff.mjs +1 -0
- package/dist/lib/object/getter-setter.cjs +1 -0
- package/dist/lib/object/getter-setter.d.ts +361 -0
- package/dist/lib/object/getter-setter.d.ts.map +1 -0
- package/dist/lib/object/getter-setter.js +1771 -0
- package/dist/lib/object/getter-setter.mjs +1 -0
- package/dist/lib/object/index.cjs +6 -0
- package/dist/lib/object/index.d.ts +13 -0
- package/dist/lib/object/index.d.ts.map +1 -0
- package/dist/lib/object/index.js +12 -0
- package/dist/lib/object/index.mjs +6 -0
- package/dist/lib/object/merge.cjs +1 -0
- package/dist/lib/object/merge.d.ts +93 -0
- package/dist/lib/object/merge.d.ts.map +1 -0
- package/dist/lib/object/merge.js +474 -0
- package/dist/lib/object/merge.mjs +1 -0
- package/dist/lib/object/object.cjs +1 -0
- package/dist/lib/object/object.d.ts +128 -0
- package/dist/lib/object/object.d.ts.map +1 -0
- package/dist/lib/object/object.js +432 -0
- package/dist/lib/object/object.mjs +1 -0
- package/dist/lib/object/omit.cjs +1 -0
- package/dist/lib/object/omit.d.ts +351 -0
- package/dist/lib/object/omit.d.ts.map +1 -0
- package/dist/lib/object/omit.js +656 -0
- package/dist/lib/object/omit.mjs +1 -0
- package/dist/lib/object/reconcile.cjs +1 -0
- package/dist/lib/object/reconcile.d.ts +7 -0
- package/dist/lib/object/reconcile.d.ts.map +1 -0
- package/dist/lib/object/reconcile.js +122 -0
- package/dist/lib/object/reconcile.mjs +1 -0
- package/dist/lib/object/selector.cjs +1 -0
- package/dist/lib/object/selector.d.ts +50 -0
- package/dist/lib/object/selector.d.ts.map +1 -0
- package/dist/lib/object/selector.js +371 -0
- package/dist/lib/object/selector.mjs +1 -0
- package/dist/lib/object/sort.cjs +1 -0
- package/dist/lib/object/sort.d.ts +149 -0
- package/dist/lib/object/sort.d.ts.map +1 -0
- package/dist/lib/object/sort.js +298 -0
- package/dist/lib/object/sort.mjs +1 -0
- package/dist/lib/object/transform.cjs +1 -0
- package/dist/lib/object/transform.d.ts +620 -0
- package/dist/lib/object/transform.d.ts.map +1 -0
- package/dist/lib/object/transform.js +1058 -0
- package/dist/lib/object/transform.mjs +1 -0
- package/dist/lib/object/types.cjs +1 -0
- package/dist/lib/object/types.d.ts +250 -0
- package/dist/lib/object/types.d.ts.map +1 -0
- package/dist/lib/object/types.js +1 -0
- package/dist/lib/object/types.mjs +0 -0
- package/dist/lib/object/utils.cjs +6 -0
- package/dist/lib/object/utils.d.ts +165 -0
- package/dist/lib/object/utils.d.ts.map +1 -0
- package/dist/lib/object/utils.js +444 -0
- package/dist/lib/object/utils.mjs +6 -0
- package/dist/lib/primitive/boolean/boolean.cjs +1 -0
- package/dist/lib/primitive/boolean/boolean.d.ts +276 -0
- package/dist/lib/primitive/boolean/boolean.d.ts.map +1 -0
- package/dist/lib/primitive/boolean/boolean.js +615 -0
- package/dist/lib/primitive/boolean/boolean.mjs +1 -0
- package/dist/lib/primitive/boolean/index.cjs +1 -0
- package/dist/lib/primitive/boolean/index.d.ts +3 -0
- package/dist/lib/primitive/boolean/index.d.ts.map +1 -0
- package/dist/lib/primitive/boolean/index.js +2 -0
- package/dist/lib/primitive/boolean/index.mjs +1 -0
- package/dist/lib/primitive/boolean/types.cjs +1 -0
- package/dist/lib/primitive/boolean/types.d.ts +14 -0
- package/dist/lib/primitive/boolean/types.d.ts.map +1 -0
- package/dist/lib/primitive/boolean/types.js +1 -0
- package/dist/lib/primitive/boolean/types.mjs +0 -0
- package/dist/lib/primitive/date/date.cjs +1 -0
- package/dist/lib/primitive/date/date.d.ts +641 -0
- package/dist/lib/primitive/date/date.d.ts.map +1 -0
- package/dist/lib/primitive/date/date.js +1998 -0
- package/dist/lib/primitive/date/date.mjs +1 -0
- package/dist/lib/primitive/date/index.cjs +1 -0
- package/dist/lib/primitive/date/index.d.ts +3 -0
- package/dist/lib/primitive/date/index.d.ts.map +1 -0
- package/dist/lib/primitive/date/index.js +2 -0
- package/dist/lib/primitive/date/index.mjs +1 -0
- package/dist/lib/primitive/date/types.cjs +1 -0
- package/dist/lib/primitive/date/types.d.ts +205 -0
- package/dist/lib/primitive/date/types.d.ts.map +1 -0
- package/dist/lib/primitive/date/types.js +7 -0
- package/dist/lib/primitive/date/types.mjs +0 -0
- package/dist/lib/primitive/index.cjs +5 -0
- package/dist/lib/primitive/index.d.ts +5 -0
- package/dist/lib/primitive/index.d.ts.map +1 -0
- package/dist/lib/primitive/index.js +4 -0
- package/dist/lib/primitive/index.mjs +5 -0
- package/dist/lib/primitive/string/index.cjs +5 -0
- package/dist/lib/primitive/string/index.d.ts +3 -0
- package/dist/lib/primitive/string/index.d.ts.map +1 -0
- package/dist/lib/primitive/string/index.js +2 -0
- package/dist/lib/primitive/string/index.mjs +5 -0
- package/dist/lib/primitive/string/parser-2.cjs +8 -0
- package/dist/lib/primitive/string/parser-2.d.ts +17 -0
- package/dist/lib/primitive/string/parser-2.d.ts.map +1 -0
- package/dist/lib/primitive/string/parser-2.js +656 -0
- package/dist/lib/primitive/string/parser-2.mjs +8 -0
- package/dist/lib/primitive/string/parser.cjs +3 -0
- package/dist/lib/primitive/string/parser.d.ts +9 -0
- package/dist/lib/primitive/string/parser.d.ts.map +1 -0
- package/dist/lib/primitive/string/parser.js +775 -0
- package/dist/lib/primitive/string/parser.mjs +3 -0
- package/dist/lib/primitive/string/string.cjs +5 -0
- package/dist/lib/primitive/string/string.d.ts +535 -0
- package/dist/lib/primitive/string/string.d.ts.map +1 -0
- package/dist/lib/primitive/string/string.js +1301 -0
- package/dist/lib/primitive/string/string.mjs +5 -0
- package/dist/lib/primitive/string/types.cjs +1 -0
- package/dist/lib/primitive/string/types.d.ts +318 -0
- package/dist/lib/primitive/string/types.d.ts.map +1 -0
- package/dist/lib/primitive/string/types.js +5 -0
- package/dist/lib/primitive/string/types.mjs +0 -0
- package/dist/lib/primitive/types.cjs +1 -0
- package/dist/lib/primitive/types.d.ts +27 -0
- package/dist/lib/primitive/types.d.ts.map +1 -0
- package/dist/lib/primitive/types.js +1 -0
- package/dist/lib/primitive/types.mjs +0 -0
- package/dist/lib/url/index.cjs +1 -0
- package/dist/lib/url/index.d.ts +3 -0
- package/dist/lib/url/index.d.ts.map +1 -0
- package/dist/lib/url/index.js +2 -0
- package/dist/lib/url/index.mjs +1 -0
- package/dist/lib/url/parser.cjs +1 -0
- package/dist/lib/url/parser.d.ts +216 -0
- package/dist/lib/url/parser.d.ts.map +1 -0
- package/dist/lib/url/parser.js +488 -0
- package/dist/lib/url/parser.mjs +1 -0
- package/dist/lib/url/types.cjs +1 -0
- package/dist/lib/url/types.d.ts +18 -0
- package/dist/lib/url/types.d.ts.map +1 -0
- package/dist/lib/url/types.js +1 -0
- package/dist/lib/url/types.mjs +0 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/package.json +150 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var m=e=>e==null||Array.isArray(e)||typeof e=="function"||e instanceof Date||e instanceof RegExp||e instanceof Map||e instanceof Set||e instanceof Error?!1:typeof e=="object";var w=(e,r,n,a)=>{if(n>a)return;if(r.length===0)return e;let s=r[0],i=r.slice(1);if(s.type==="descendant"){let o=w(e,i,n+1,a);if(o!==void 0)return o;if(e&&typeof e=="object")if(Array.isArray(e)){let t=[];for(let f=0;f<e.length;f++){let l=w(e[f],r,n+1,a);l!==void 0&&(t[f]=l)}return t.length>0?t:void 0}else{let t={};for(let f in e)if(e.hasOwnProperty(f)){let l=w(e[f],r,n+1,a);l!==void 0&&(t[f]=l)}return Object.keys(t).length>0?t:void 0}return}switch(s.type){case"property":if(m(e)&&s.value&&String(s.value)in e){let o=e[String(s.value)],t=w(o,i,n+1,a);if(t!==void 0)return{[String(s.value)]:t}}break;case"index":if(Array.isArray(e)){let o=s.value;if(o>=0&&o<e.length){let t=w(e[o],i,n+1,a);if(t!==void 0){let f=new Array(e.length).filter(l=>l!==void 0);return f[o]=t,f}}}else if(e&&typeof e=="object"){let o=String(s.value);if(o in e){let t=w(e[o],i,n+1,a);if(t!==void 0)return{[o]:t}}}break;case"wildcard":if(e&&typeof e=="object")if(Array.isArray(e)){let o=[],t=!1;for(let f=0;f<e.length;f++){let l=w(e[f],i,n+1,a);l!==void 0&&(o[f]=l,t=!0)}return t?o:void 0}else{let o={},t=!1;for(let f in e)if(e.hasOwnProperty(f)){let l=w(e[f],i,n+1,a);l!==void 0&&(o[f]=l,t=!0)}return t?o:void 0}break;case"slice":if(Array.isArray(e)){let[o,t]=s.value,f=Math.max(0,o),l=Math.min(e.length,t===1/0?e.length:t),y=[],A=!1;for(let p=f;p<l;p++){let g=w(e[p],i,n+1,a);g!==void 0&&(y[p]=g,A=!0)}return A?y:void 0}break;case"union":if(Array.isArray(e)){let o=s.value,t=[],f=!1;for(let l of o)if(l>=0&&l<e.length){let y=w(e[l],i,n+1,a);y!==void 0&&(t[l]=y,f=!0)}return f?t:void 0}break;case"filter":if(Array.isArray(e)){let o=s.value,t=[],f=!1;for(let l=0;l<e.length;l++)if(o(e[l])){let y=w(e[l],i,n+1,a);y!==void 0&&(t[l]=y,f=!0)}return f?t:void 0}break}};import{isDate as X}from"@fluixi/utils/primitive";import{isClass as Te,isObject as xe}from"@fluixi/utils/object";import{isArray as me}from"@fluixi/utils/array";import{isFunction as Ke}from"@fluixi/utils/functions";function D(e){let r=typeof e;return e===null||r==="string"||r==="number"||r==="boolean"||r==="symbol"||r==="bigint"||r==="undefined"||X(e)}var I=(e,r)=>{if(e==null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(e instanceof Map){let n=new Map;return e.forEach((a,s)=>{(!r||!r.some(i=>i.toString()===s.toString()))&&n.set(s,I(a))}),n}if(e instanceof Set){let n=new Set;return e.forEach(a=>{n.add(I(a))}),n}if(Array.isArray(e))return Array.from(e).map(n=>I(n));if(m(e)){let n={};for(let s in e)Object.prototype.hasOwnProperty.call(e,s)&&(!r||!r.some(i=>i.toString()===s.toString()))&&(n[s]=I(e[s]));let a=Object.getOwnPropertySymbols(e);for(let s of a)(!r||!r.some(i=>i.toString()===s.toString()))&&(n[s]=I(e[s]));return n}return e};var W=(e,r)=>e===r,V=(e,r)=>{if(e.length!==r.length)return!1;for(let n=0;n<e.length;n++)if(Array.isArray(e[n])&&Array.isArray(r[n])){if(!V(e[n],r[n]))return!1}else if(m(e[n])&&m(r[n])){if(!N(e[n],r[n]))return!1}else if(e[n]!==r[n])return!1;return!0},N=(e,r)=>{let n=Object.keys(e),a=Object.keys(r);if(n.length!==a.length)return!1;for(let s of n){if(!(s in r))return!1;let i=e[s],o=r[s];if(Array.isArray(i)&&Array.isArray(o)){if(!V(i,o))return!1}else if(m(i)&&m(o)){if(!N(i,o))return!1}else if(i!==o)return!1}return!0},_=(e,r,n={})=>{let{includeDeleted:a=!1,includeAdded:s=!0,deepArrayComparison:i=!0,equalityFn:o=W,preserveStructure:t=!1}=n;if(e==null&&r==null)return{};if(e==null)return s?{...r}:{};if(r==null){if(a){let y={};for(let A in e)y[A]=void 0;return y}return{}}if(!m(e)||!m(r))return o(e,r)?{}:r;let f={},l=new Set;for(let y in r){l.add(y);let A=e[y],p=r[y];if(!(y in e)){s&&(f[y]=p);continue}if(Array.isArray(A)&&Array.isArray(p)){i?V(A,p)?t&&(f[y]=void 0):f[y]=p:A!==p?f[y]=p:t&&(f[y]=void 0);continue}if(m(A)&&m(p)){let g=_(A,p,n);Object.keys(g).length>0?f[y]=g:t&&(f[y]=void 0);continue}o(A,p)?t&&(f[y]=void 0):f[y]=p}if(a)for(let y in e)l.has(y)||(f[y]=void 0);return f},C=(e,r,n={})=>{let a=[],s=[],i=[],o={},{includeDeleted:t=!1,includeAdded:f=!0,deepArrayComparison:l=!0,equalityFn:y=W}=n;if(Array.isArray(e)&&Array.isArray(r)){let g=Math.max(e.length,r.length),c=[],d=!1;for(let u=0;u<g;u++){let T=`[${u}]`;if(u>=e.length)a.push(T),c[u]=r[u],d=!0;else if(u>=r.length)s.push(T),d=!0;else{let x=e[u],h=r[u];m(x)&&m(h)||Array.isArray(x)&&Array.isArray(h)?C(x,h,n).hasChanges?(i.push(T),c[u]=h,d=!0):c[u]=x:y(x,h)?c[u]=x:(i.push(T),c[u]=h,d=!0)}}return{changes:d?c:{},added:a,deleted:s,modified:i,hasChanges:d||s.length>0}}let A=(g,c,d="")=>{let u={added:[],deleted:[],modified:[]};if(Array.isArray(g)&&Array.isArray(c)){let T=Math.max(g.length,c.length);for(let x=0;x<T;x++){let h=d?`${d}[${x}]`:`[${x}]`;if(x>=g.length)u.added.push(h);else if(x>=c.length)u.deleted.push(h);else{let S=g[x],K=c[x];if(m(S)&&m(K)){let b=A(S,K,h);u.added.push(...b.added),u.deleted.push(...b.deleted),u.modified.push(...b.modified)}else if(Array.isArray(S)&&Array.isArray(K)){let b=A(S,K,h);u.added.push(...b.added),u.deleted.push(...b.deleted),u.modified.push(...b.modified)}else S!==K&&u.modified.push(h)}}return u}if(m(g)&&m(c)){let T=new Set([...Object.keys(g||{}),...Object.keys(c||{})]);for(let x of T){let h=g?.[x],S=c?.[x],K=d?`${d}.${x}`:x;if(!(x in(g||{})))u.added.push(K);else if(!(x in(c||{})))u.deleted.push(K);else if(Array.isArray(h)&&Array.isArray(S)){if(!V(h,S)){let b=A(h,S,K);u.added.push(...b.added),u.deleted.push(...b.deleted),u.modified.push(...b.modified)}}else if(m(h)&&m(S)){let b=A(h,S,K);u.added.push(...b.added),u.deleted.push(...b.deleted),u.modified.push(...b.modified)}else h!==S&&u.modified.push(K)}}return u};if(e==null&&r==null)return{changes:{},added:a,deleted:s,modified:i,hasChanges:!1};if(e==null){if(f&&r)for(let g in r)a.push(g),o[g]=r[g];return{changes:o,added:a,deleted:s,modified:i,hasChanges:a.length>0}}if(r==null){if(t)for(let g in e)s.push(g),o[g]=void 0;return{changes:o,added:a,deleted:s,modified:i,hasChanges:s.length>0}}let p=new Set;for(let g in r){p.add(g);let c=e[g],d=r[g];if(!(g in e)){f&&(a.push(g),o[g]=d);continue}let u=!1;if(Array.isArray(c)&&Array.isArray(d)){if(u=l?!V(c,d):c!==d,u){let T=A(c,d,g);a.push(...T.added),s.push(...T.deleted),i.push(...T.modified),o[g]=d}}else if(m(c)&&m(d)){let T=_(c,d,n);if(u=Object.keys(T).length>0,u){let x=A(c,d,g);a.push(...x.added),s.push(...x.deleted),i.push(...x.modified),o[g]=T}}else u=!y(c,d),u&&(i.push(g),o[g]=d)}for(let g in e)p.has(g)||(s.push(g),o[g]=void 0);return{changes:o,added:a,deleted:s,modified:i,hasChanges:a.length>0||s.length>0||i.length>0}};function Y(e){return!!(e&&(e.diff||e.changes)&&(e.modified||e.deleted||e.hasChanges))}var O=(e,r,n)=>{if(!Y(r)){let u=r,T=n||!1;if(Array.isArray(e)&&Array.isArray(u)){let h=T?e:[...e];u.length<h.length&&(h.length=u.length);for(let S=0;S<u.length;S++){let K=u[S];K!==void 0&&(m(h[S])&&m(K)||Array.isArray(h[S])&&Array.isArray(K)?h[S]=O(h[S],K,T):h[S]=K)}return h}if(!m(e))return u;if(!m(u))return e;let x=T?e:{...e};for(let h in u){let S=u[h];S===void 0?delete x[h]:Array.isArray(x[h])&&Array.isArray(S)||m(x[h])&&m(S)?x[h]=O(x[h],S,T):x[h]=S}return x}let{diff:a,added:s=[],deleted:i=[],modified:o=[],changes:t,keepRef:f}=r,l=n!==void 0?n:f,y=t||a;if(!y)return e;let A=new Set(s),p=new Set(i),g=new Set(o),c=u=>{if(s.length===0&&i.length===0&&o.length===0)return!0;let T=u.split(/[.\[\]]+/).filter(Boolean);for(let x=0;x<=T.length;x++){let h=T.slice(0,x).join("."),S=T.slice(0,x).map((K,b)=>/^\d+$/.test(K)?`[${K}]`:b>0?`.${K}`:K).join("");if(A.has(h)||A.has(S)||p.has(h)||p.has(S)||g.has(h)||g.has(S))return!0}return!1};if(Array.isArray(e)&&Array.isArray(y)){let u=l?e:[...e];u.length=y.length;for(let T=0;T<y.length;T++){let x=`[${T}]`,h=y[T];h!==void 0&&c(x)&&(m(u[T])&&m(h)||Array.isArray(u[T])&&Array.isArray(h)?u[T]=O(u[T],h,l):u[T]=h)}return u}if(!m(e))return y;if(!m(y))return e;let d=l?e:{...e};for(let u of i)u.includes(".")||u.includes("[")||c(u)&&delete d[u];for(let u in y){let T=y[u];c(u)&&(T===void 0?delete d[u]:Array.isArray(d[u])&&Array.isArray(T)||m(d[u])&&m(T)?d[u]=O(d[u],T,l):d[u]=T)}return d};var v=(e,r={})=>{let{type:n="auto",throwOnError:a=!1}=r;if(!e||typeof e!="string")return[];let s=[],i="",o=!1,t=!1,f="",l="",y=0,p=n==="auto"?(c=>c.includes("..")?"descendant":c.includes("[?(")?"filter":c.includes("[:")||c.includes("[0:")?"slice":c.includes("[,")||c.includes("[0,1]")?"union":c.includes("[*]")||c.includes(".*.")?"wildcard":c.includes("[]")?"array-wildcard":c.includes("[")&&c.includes("]")?"bracket":"dot")(e):n,g=c=>{let d=c.trim();if(d==="*"||d==="")return{type:"wildcard",value:d===""?"[]":"*",raw:d===""?"[]":c};if(d==="[]")return{type:"wildcard",value:"[]",raw:c};if(/^-?\d+$/.test(d))return{type:"index",value:parseInt(d,10),raw:c};if(d.includes(":")){let u=d.split(":").map(h=>h.trim()),T=u[0]===""?0:parseInt(u[0],10),x=u[1]===""?1/0:parseInt(u[1],10);if(isNaN(T)||isNaN(x)){if(a)throw new Error(`Invalid slice notation: ${c}`);return{type:"wildcard",value:"*",raw:c}}return{type:"slice",value:[T,x],raw:c}}if(d.includes(",")){let u=d.split(",").map(T=>{let x=parseInt(T.trim(),10);return isNaN(x)?-1:x}).filter(T=>T>=0);if(u.length===0){if(a)throw new Error(`Invalid union notation: ${c}`);return{type:"wildcard",value:"*",raw:c}}return{type:"union",value:u,raw:c}}if(d.startsWith("?(")&&d.endsWith(")")){let u=d.slice(2,-1);try{return{type:"filter",value:ee(u),raw:c}}catch(T){if(a)throw T;return{type:"wildcard",value:"*",raw:c}}}return d.startsWith('"')&&d.endsWith('"')||d.startsWith("'")&&d.endsWith("'")?{type:"property",value:d.slice(1,-1),raw:c}:{type:"property",value:d,raw:c}};for(let c=0;c<e.length;c++){let d=e[c],u=e[c+1];if((d==='"'||d==="'")&&!t){t=!0,f=d;continue}else if(d===f&&t){t=!1,f="",d==='"'||d==="'"||(o?l+=d:i+=d);continue}if(t){o?l+=d:i+=d;continue}if(d==="["&&!o){i&&(s.push({type:"property",value:i,raw:i}),i=""),o=!0,l="";continue}if(d==="]"&&o&&!t){o=!1;let x=g(l);s.push(x);continue}let T=s.length>0?s[s.length-1]:null;if(d==="."&&!o&&!t){if(u==="."){let x=e.split("..")[0];s.push({type:"property",value:x,raw:x}),s.push({type:"descendant",value:"..",raw:".."}),c++}else i&&(i==="*"?s.push({type:"wildcard",value:i,raw:i}):s.push({type:"property",value:i,raw:i}),i="");continue}if(o)l+=d;else if(T&&T.type!=="descendant")i+=d;else{let x=e.split(T?.raw)[1];x!==void 0?i=x:i+=d}}return i&&s.push({type:"property",value:i,raw:i}),s.map(c=>{if(c.type==="property"&&typeof c.value=="string"&&/^-?\d+$/.test(c.value)){let d=parseInt(c.value,10);if(!isNaN(d))return{...c,type:"index",value:d}}return c})},ee=e=>{let r=e.replace(/@\.([a-zA-Z_$][\w$]*)/g,(n,a)=>`item.${a}`).replace(/@/g,"item");try{return new Function("item",`return ${r}`)}catch{throw new Error(`Invalid filter expression: ${e}`)}};var q=(e,r,n)=>{let a=v(r),s=e;for(let i=0;i<a.length;i++){let o=a[i],t=i===a.length-1;switch(o.type){case"property":if(t)s[String(o.value)]=n;else{if(!s[String(o.value)]){let l=a[i+1];s[String(o.value)]=l.type==="index"||l.type==="slice"||l.type==="union"||l.type==="wildcard"?[]:{}}s=s[String(o.value)]}break;case"index":Array.isArray(s)||(s=[]);let f=o.value;if(t){if(f>=s.length)for(let l=s.length;l<=f;l++)s.push(void 0);s[f]=n}else{if(!s[f]){let l=a[i+1];s[f]=l.type==="index"||l.type==="slice"||l.type==="union"||l.type==="wildcard"?[]:{}}s=s[f]}break;case"wildcard":if(Array.isArray(s))if(t)for(let l=0;l<s.length;l++)s[l]=n;else{let l=a[i+1];for(let y=0;y<s.length;y++)s[y]||(s[y]=l.type==="index"||l.type==="slice"||l.type==="union"||l.type==="wildcard"?[]:{});s.length>0&&(s=s[0])}break}}};function $(e,r,n={}){let{preserveStructure:a,multiple:s,throwOnError:i=!1,defaultValue:o,maxDepth:t=20}=n;if(!e||typeof e!="object")return o;if(!r)return e;if(Array.isArray(r))if(a){let y={};for(let A of r){let p=$(e,A,{...n,preserveStructure:!1});p!==void 0&&q(y,A,p)}return y}else return r.map(y=>$(e,y,{...n,preserveStructure:!1}));let f=v(r,{...n,throwOnError:i});if(f.length===0)return e;if(typeof a>"u"||a===!1){let y=F(e,r);return s===!1&&Array.isArray(y)?y[0]:y===void 0&&o!==void 0?o:y}let l=w(e,f,0,t);return l===void 0&&o!==void 0?o:l}function Z(e,r,n,a,s){let i=I(e),o=[];if(typeof r<"u"&&o.push(r),typeof n<"u"&&o.push(n),typeof a<"u"&&o.push(a),typeof s<"u"&&o.push(s),D(i))return typeof r=="function"?r(i):r;if(o.length===1){if(typeof o[0]=="function")return le(i,o[0]);if(Array.isArray(o[0])){if(Array.isArray(i))if(r.length===0)for(let t=0;t<i.length;t++)i.pop();else return C([...i],[...o[0]]).hasChanges&&O(i,[...o[0]],!0),i}else typeof o[0]=="object"&&!Array.isArray(o[0])?typeof i=="object"&&!Array.isArray(i)&&O(i,o[0],!0):i=o[0];return i}if(Array.isArray(i)){if(typeof r=="string"&&(ne(n)||typeof n=="string")&&o.length===3){if(Array.isArray(n)){for(let t=0;t<n.length;t++)P(i,r,a,n[t]);return i}return P(i,r,a,n)}if(typeof r=="string"&&typeof n=="function"&&o.length===2)return P(i,r,n)}if((typeof r=="string"||typeof r=="number")&&(o.length===2||o.length===3))return te(n)?E(i,r,n,a):typeof r=="number"?typeof a<"u"?P(i,`[${r}].${n}`,a):P(i,`[${r}]`,n,a):typeof n=="number"&&typeof a<"u"?U(i,r,n,a):Array.isArray(n)&&n.length>0&&n.every(t=>typeof t=="number")?R(i,r,n,a):typeof a<"u"&&typeof n=="function"?j(i,r,n,a):P(i,r,n,a);if(typeof r=="string"&&typeof n=="number"){if(o.length===3)return U(i,r,n,a);if(o.length===4)return re(i,r,n,a,s)}if(typeof r=="string"&&Array.isArray(n)){if(o.length===3)return R(i,r,n,a);if(o.length===4)return se(i,r,n,a,s)}if(typeof r=="string"&&typeof n=="object"&&!Array.isArray(n)&&n!==null){let t=n;if("from"in t||"to"in t){if(o.length===3)return E(i,r,t,a);if(o.length===4)return ae(i,r,t,a,s)}}if(typeof r=="object"&&!Array.isArray(r)&&o.length===1)return O(i,r,!0);if(typeof r=="string"&&typeof n=="object"&&!Array.isArray(n)&&o.length===2)return oe(i,r,n);if(typeof r=="string"&&typeof n=="function"){if(o.length===3)return j(i,r,n,a);if(o.length===4)return B(i,r,n,a,s)}if(typeof r=="function"&&typeof n=="string"){if(o.length===3)return ie(i,r,n,a);if(o.length===4)return B(i,n,r,a,s)}if(Array.isArray(r)){if(o.length===2&&typeof n=="object"&&!Array.isArray(n))return L(i,r,n);if(o.length===2)return L(i,r,n)}throw new Error(`Invalid set parameters: ${JSON.stringify(o)}`)}function M(e,r,n,a=!1){let s=v(e);if(s.length===0)return n;let i=s[s.length-1].type==="wildcard",o=s.some(f=>f.type==="wildcard")&&Array.isArray(r),t;if((i||o&&a||o&&s.length===2)&&Array.isArray(r))for(let f=0;f<r.length;f++){let l=typeof n=="function"?n(r[f]):typeof r[f]=="object"?O(r[f],n,!0):n;t||(t=[]),t.push(l)}return!i&&!t&&(t=typeof n=="function"?n(r):n),t}function te(e){return typeof e=="object"&&e!==null&&"from"in e&&"to"in e&&typeof e.from=="number"&&typeof e.to=="number"&&e.from<e.to&&e.from>=0&&e.to>0}function ne(e){return Array.isArray(e)&&e.every(r=>typeof r=="string")}function P(e,r,n,a){let s=v(r),i=F(e,r,{paths:s,createMissing:!0}),o;a&&typeof n=="function"&&(o=$(i,a));let f=M(r,a?o:i,n,Array.isArray(e));return a?k(e,`${r}.${a}`,f,{createMissing:!0}):k(e,r,f,{createMissing:!0})}function U(e,r,n,a){let s=F(e,r,{createMissing:!0});if(!Array.isArray(s))throw new Error(`Target at ${r} is not an array ${n}`);let i=structuredClone(s),o=M(r,i[n],a);if(n<0){let t=s.length+n;if(t<0)throw new Error(`Index ${n} is out of bounds`);return k(e,`${r}[${t}]`,o,{createMissing:!0})}return k(e,`${r}[${n}]`,o,{createMissing:!0})}var re=(e,r,n,a,s)=>typeof a=="function"?P(e,`${r}[${n}]`,a):typeof a=="string"?P(e,`${r}[${n}]`,s,a):null,R=(e,r,n,a)=>{let s=F(e,r);if(!Array.isArray(s))throw new Error(`Target at ${r} is not an array`);for(let i of n)typeof i=="number"?U(e,r,i,a):typeof i=="string"&&P(e,r,a,i);return e},se=(e,r,n,a,s)=>R(e,r,n,o=>{let t=typeof s=="function"?s(o?F(o,a):void 0):s,f=o?{...o}:{};return k(f,a,t),f});function E(e,r,n,a){let s=F(e,r);if(!Array.isArray(s))throw new Error(`Target at ${r} is not an array`);let i=n.from??0,o=n.to??s.length-1,t=n.by??1,f=[];for(let l=i;l<=o;l+=t)l>=0&&l<s.length&&f.push(l);return R(e,r,f,a)}var ae=(e,r,n,a,s)=>E(e,r,n,o=>{let t=typeof s=="function"?s(o?F(o,a):void 0):s,f=o?{...o}:{};return k(f,a,t),f});function j(e,r,n,a){let s=F(e,r);if(!Array.isArray(s))throw new Error(`Target at ${r} is not an array`);let i=[],o=[...s];return s.forEach((t,f)=>{n(t,f)&&i.push(f)}),R(e,r,i,a)}function ie(e,r,n,a){let s=e;if(!Array.isArray(s))throw new Error(`Target at ${n} is not an array`);let i=[],o=[...s];return s.forEach((t,f)=>{t=k(t,n,a,{createMissing:!0})}),s}function B(e,r,n,a,s){return j(e,r,n,o=>{let t=typeof s=="function"?s(o?F(o,a):void 0):s,f=o?{...o}:{};return k(f,a,t),f})}function oe(e,r,n){let a=F(e,r,{createMissing:!0}),s=O(a||{},n,!0);return k(e,r,s,{createMissing:!0})}function L(e,r,n){if(typeof n=="object"&&!Array.isArray(n)&&n!==null)for(let[a,s]of Object.entries(n))r.includes(a)&&k(e,a,s,{createMissing:!0});else for(let a of r){let s=M(a,F(e,a),n);k(e,a,s,{createMissing:!0})}return e}function F(e,r,n={}){let{createMissing:a=!1,add:s=!1,debug:i=!1}=n,o=v(r),t=e,f=!1,l="",y=r;if(typeof t=="object"&&!Array.isArray(t)&&y.length>0&&t[y])return t=t[y],t;for(let A=0;A<o.length;A++){let p=o[A],g=o.length>1?A===o.length-1:!1;if(t===null&&!a)return;let c=o[A+1];switch(p.type){case"property":if(t&&typeof t=="object")if(Array.isArray(t)){if(typeof p.value=="number"){let d=p.value;if(a&&d>=t.length)for(let u=t.length;u<=d;u++)t.push(void 0);if(a&&(t[d]===null||t[d]===void 0)&&(!g||f)&&(c?t[d]=c.type==="index"||c.type==="slice"||c.type==="union"||c.type==="wildcard"?[]:{}:t[d]=null,f=!1),t=t[d],c){f=!0;continue}}else s?t.push({[String(p.value)]:null}):t=t.map(d=>d[String(p.value)]);if(c)continue;return z(t)}else{if(t[l]&&l.split(".").length>=2){t=t[l];continue}if(a&&(t[String(p.value)]===null||t[String(p.value)]===void 0)&&(!g||f)&&(c?t[String(p.value)]=c.type==="index"||c.type==="slice"||c.type==="union"||c.type==="wildcard"?[]:{}:t[String(p.value)]=null,f=!1,t=t[String(p.value)],c)){f=!0;continue}if(t?(!t[String(p.value)]&&a&&(t[String(p.value)]=null),t=t[String(p.value)]):t={[String(p.value)]:null},c)continue}else if(a)t={},t[String(p.value)]=c.type==="index"||c.type==="slice"||c.type==="union"||c.type==="wildcard"||n.type==="array"?[]:{},t=t[String(p.value)];else return;break;case"index":case"wildcard":if(Array.isArray(t)){if(p.type==="index"){let d=p.value;if(d<0){t=t[t.length-Math.abs(d)];continue}if(a&&(d>=t.length||t[d]==null||t[d]==null)&&!g){for(let u=t.length;u<=d;u++)t.push(void 0);c&&(t[d]=c.type==="index"||c.type==="slice"||c.type==="union"||c.type==="wildcard"?[]:{})}t=t[d]}else if(!g)continue}else if(a){let d=o[A+1];t=[];let u=p.value;for(let T=0;T<=u;T++)t.push(void 0);t[u]=d.type==="index"||d.type==="slice"||d.type==="union"||d.type==="wildcard"||n.type==="array"?[]:{},t=t[u]}else{if(p.type==="index"&&typeof t=="object"&&t&&t[String(p.value)]!==void 0){t=t[String(p.value)];continue}if(typeof t=="object"){t=Object.values(t);continue}return}break;default:return}}return z(t)}function z(e){return Array.isArray(e)?e.filter(r=>typeof r<"u"):e}var k=(e,r,n,a={})=>{if(r==="[*]")return O(e,n,!0);let{createMissing:s=!0}=a,i=v(r);if(i.length===0)return e;let o=i[i.length-1],t=e;for(let f=0;f<i.length-1;f++){let l=i[f];if(t==null){if(!s)return e;throw new Error(`Cannot navigate through null/undefined at segment ${f}`)}let y=i[f+1],A=y.type==="index"||y.type==="slice"||y.type==="union"||y.type==="wildcard";if(l.type==="property"){if(Array.isArray(t)&&typeof typeof l.value=="number"){let p=l.value;if(p<0)throw new Error(`Negative index ${p} not allowed`);if(p>=t.length&&s)for(let g=t.length;g<=p;g++)t.push(void 0);(t[p]===null||t[p]===void 0)&&s&&(t[p]=A?[]:{}),t=t[p]}else(t[String(l.value)]===null||t[String(l.value)]===void 0)&&s&&(t[String(l.value)]=A?[]:{}),typeof t=="object"&&!Array.isArray(t)&&(t=t[String(l.value)]);if(y)continue;break}else if(l.type==="index"||l.type==="wildcard"){if(!Array.isArray(t)){if(!s)return e;t=[]}if(l.type==="index"){let p=l.value;if(p<0)throw new Error(`Negative index ${p} not allowed`);if(p>=t.length&&s)for(let g=t.length;g<=p;g++)t.push(void 0);(t[p]===null||t[p]===void 0)&&s&&(t[p]=A?[]:void 0),t=t[p]}if(y)continue;break}else throw new Error(`Invalid segment type for set: ${l.type}`)}switch(o.type){case"property":if(Array.isArray(t)&&typeof o.value=="number"){let l=o.value;if(l<0)throw new Error(`Negative index ${l} not allowed`);if(l>=t.length)for(let y=t.length;y<=l;y++)t.push(void 0);Array.isArray(n)?t[l]=O(structuredClone(t[l]),n[l],!0):t[l]=n}else if(t||(t={}),Array.isArray(t)){let l=r.split("."),y;if(l.length>=2){l.shift();for(let A=0;A<t.length;A++)Array.isArray(n)?(y=J(l.join("."),n[A]),t[A]=typeof t[A]=="object"?O(t[A],y,!0):y):(y=J(l.join("."),n),t[A]=typeof t[A]=="object"?O(t[A],y,!0):y)}else y={[String(o.value)]:n}}else Array.isArray(n)&&n.length===0?typeof t[String(o.value)]>"u"?t[String(o.value)]=[]:t[String(o.value)]=[]:t[String(o.value)]=n;break;case"index":case"wildcard":if(!Array.isArray(t))throw new Error("Cannot use index on non-array for final segment");let f=o.value;if(o.type==="index"){if(f<0)throw new Error(`Negative index ${f} not allowed`);if(f>=t.length)for(let l=t.length;l<=f;l++)t.push(void 0);if(Array.isArray(n))if(typeof t[f]==typeof n[f])try{t[f]=O(I(t[f]),n[f],!0)}catch{throw Error("expected on array")}else t[f]=n;else t[f]=n}else if(o.type==="wildcard")if(Array.isArray(n))for(let l=0;l<t.length;l++)typeof t[l]=="object"?t[l]=O(t[l],n[l],!0):t[l]=n[l];else for(let l=0;l<t.length;l++)typeof t[l]=="object"?t[l]=O(t[l],n,!0):t[l]=n;break;default:throw new Error(`Invalid final segment type for set: ${o.type}`)}return e};var J=(e,r)=>{let n=v(e);if(n.length===0)return r;let a=r;for(let s=n.length-1;s>=0;s--){let i=n[s];if(i.type==="property")a={[String(i.value)]:a};else if(i.type==="index"){let o=parseInt(String(i.value)),t=[];t[o]=a,a=t}else i.type==="wildcard"?Array.isArray(a)?a=a:a=[a]:i.type==="slice"?Array.isArray(a)||(a=[a]):i.type==="union"?Array.isArray(a)||(a=[a]):i.type==="filter"?Array.isArray(a)||(a=[a]):i.type==="descendant"&&(a=a)}return a};var le=(e,r)=>{let n=r(e);return O(e,n,!0)};function qe(e,r){if(!m(e))return{};let n={};for(let a in e)Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=r(e[a],a,e));return n}function Be(e,r){if(!m(e))return{};let n={};for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a)){let s=r(a,e[a],e);n[s]=e[a]}return n}function Q(e,r={deep:!0}){if(!m(e))return e;if(Array.isArray(e))return r.deep?e.map(a=>Q(a,r)):e;let n={};for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a)){let s=e[a],i=a.replace(/[-_]([a-z])/g,(o,t)=>t.toUpperCase()).replace(/^([A-Z])/,o=>o.toLowerCase());n[i]=r.deep&&m(s)?Q(s,r):s}return n}function G(e,r={deep:!0}){if(!m(e))return e;if(Array.isArray(e))return r.deep?e.map(a=>G(a,r)):e;let n={};for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a)){let s=e[a],i=a.replace(/[-]([a-z])/g,(o,t)=>`_${t}`).replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase();n[i]=r.deep&&m(s)?G(s,r):s}return n}function H(e,r={deep:!0}){if(!m(e))return e;if(Array.isArray(e))return r.deep?e.map(a=>H(a,r)):e;let n={};for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a)){let s=e[a],i=a.replace(/[_]([a-z])/g,(o,t)=>`-${t}`).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();n[i]=r.deep&&m(s)?H(s,r):s}return n}var fe=(e,r={})=>{let{delimiter:n=".",includeArrays:a=!1,maxDepth:s=9}=r;if(Array.isArray(e))return e.map(t=>fe(t,r));let i={},o=(t,f="",l=0)=>{if(l>s){i[f]=t;return}if(!m(t)&&!Array.isArray(t)){f&&(i[f]=t);return}if(Array.isArray(t))for(let y=0;y<t.length;y++){let A=f?`${f}[${y}]`:`[${y}]`;o(t[y],A,l+1)}else{for(let A in t){let p=f?`${f}${n}${A}`:A;o(t[A],p,l+1)}let y=Object.getOwnPropertySymbols(t);for(let A of y){let p=f?`${f}${n}${A.toString()}`:A.toString();o(t[A],p,l+1)}}};return o(e),i};function ye(e,r={}){let{delimiter:n=".",detectArrays:a=!0}=r,s={};for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let o=e[i],t=i.split(n),f=s;for(let y=0;y<t.length-1;y++){let A=t[y],p=t[y+1],g=a&&/^\d+$/.test(p);if(!(A in f))f[A]=g?[]:{};else if(g&&!Array.isArray(f[A])){let c={...f[A]};f[A]=[],Object.assign(f[A],c)}f=f[A]}let l=t[t.length-1];f[l]=o}if(a){let i=o=>{if(!m(o))return o;if(Array.isArray(o))return o.map(i);let t=Object.keys(o);if(t.length>0&&t.every((y,A)=>String(A)===y))return Object.values(o).map(i);let l={};for(let y in o)Object.prototype.hasOwnProperty.call(o,y)&&(l[y]=i(o[y]));return l};return i(s)}return s}function Le(e,...r){if(!m(e)||r.length===0)return e;let n={...e};for(let a in n)if(Object.prototype.hasOwnProperty.call(n,a)){let s=n[a];for(let i of r)s=i(s);n[a]=s}return n}function ze(e,r,n={}){if(!m(e))return e;let{removeUnmapped:a=!1}=n,s={};for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&(i in r?s[r[i]]=e[i]:a||(s[i]=e[i]));return s}function Je(e,r={}){let{transformObject:n=t=>t,transformArray:a=t=>t,transformValue:s=t=>t,maxDepth:i=1/0}=r;function o(t,f=[],l=0){if(l>i)return t;if(Array.isArray(t)){let A=t.map((p,g)=>o(p,[...f,g.toString()],l+1));return a(A,f)}if(m(t)){let A={};for(let p in t)if(Object.prototype.hasOwnProperty.call(t,p)){let g=[...f,p];A[p]=o(t[p],g,l+1),!Array.isArray(t[p])&&!m(t[p])&&(A[p]=s(A[p],p,g))}return n(A,f)}let y=f.length>0?f[f.length-1]:"";return s(t,y,f)}return o(e)}function Ze(e,r={}){return ye(e,r)}function Qe(e,r,n,a={}){if(!m(e))return e;let s=JSON.parse(JSON.stringify(e)),{transformAll:i=!1}=a,o=Array.isArray(r)?r:[r];for(let l of o)if(l.includes("*")||l.includes("[")){let A=function(g,c=""){if(m(g)){if(Array.isArray(g)){g.forEach((d,u)=>{let T=c?`${c}[${u}]`:`[${u}]`;A(d,T)});return}for(let d in g)if(Object.prototype.hasOwnProperty.call(g,d)){let u=g[d],T=c?`${c}.${d}`:d;if(u===null||typeof u!="object"){let x=c?$(s,c):s,h=i?n(u,T,x):n(u,d,x);g[d]=h}else A(u,T)}}};var t=A;let y=$(s,l,{preserveStructure:!0});if(y===void 0)continue;A(y);let p=v(l);if(p.length>0){let g=p[0];g.type==="property"&&(s[String(g.value)]=y[String(g.value)])}}else{let A=function(p,g,c,d){if(c>=g.length)return p;let u=g[c];if(c===g.length-1){let x=c>0?A(p,g,c-1,g.slice(0,c).join(".")):p,h=i?n(x[u],d,x):n(x[u],u,x);return x[u]=h,x}let T=p[u]||{};return p[u]=A(T,g,c+1,d),p};var f=A;let y=l.split(".");A(s,y,0,l)}return s}function Ge(e,r,n,a={}){if(!m(e))return[];let{flatten:s=!0}=a,o=(Array.isArray(r)?r:[r]).map(t=>{let f=$(e,t);return f===void 0?[]:Array.isArray(f)?f.map((l,y)=>{let A=`${t}[${y}]`;return n(l,A,e)}):[n(f,t,e)]});return s?o.flat():o}function He(e,r,n,a={}){if(!m(e))return e;let s=JSON.parse(JSON.stringify(e)),{recursive:i=!1}=a,o=Array.isArray(r)?r:[r];for(let t of o){let f=t?$(s,t):s;if(!m(f))continue;let l=(y,A=t)=>{if(!m(y))return y;if(Array.isArray(y))return y.map((g,c)=>m(g)&&!Array.isArray(g)?l(g,`${A}[${c}]`):g);let p={};for(let g in y)if(Object.prototype.hasOwnProperty.call(y,g)){let c=n(g,y[g],A);i&&m(y[g])?p[c]=l(y[g],`${A}.${c}`):p[c]=y[g]}return p};if(Array.isArray(f))for(let y=0;y<f.length;y++)m(f[y])&&!Array.isArray(f[y])&&(f[y]=l(f[y],`${t}[${y}]`));else{let y=l(f);t?Z(s,t,y):(Object.keys(s).forEach(A=>{delete s[A]}),Object.assign(s,y))}}return s}export{Q as camelCaseKeys,Je as deepTransform,fe as flatten,H as kebabCaseKeys,Be as mapKeys,Ge as mapPath,qe as mapValues,ze as renameKeys,G as snakeCaseKeys,Ze as structureByKeys,He as transformKeysAtPath,Qe as transformPath,Le as transformValues,ye as unflatten};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var s=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var i=(t,e,a,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of x(e))!o.call(t,n)&&n!==a&&s(t,n,{get:()=>e[n],enumerable:!(r=d(e,n))||r.enumerable});return t};var y=t=>i(s({},"__esModule",{value:!0}),t);var l={};module.exports=y(l);
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import type { Add } from '@fluixi/utils/maths';
|
|
2
|
+
import type { FilterStartsWith, PrimitiveType, ReplaceStartsWith } from '../primitive/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Type for any object (excluding arrays, functions, and null)
|
|
5
|
+
*/
|
|
6
|
+
export type RecordObject = Record<string | number | symbol, any>;
|
|
7
|
+
export type AnyObject = RecordObject | Array<RecordObject> | Array<any>;
|
|
8
|
+
/**
|
|
9
|
+
* Type for deep partial object
|
|
10
|
+
*/
|
|
11
|
+
export type DeepPartial<T> = T extends object ? {
|
|
12
|
+
[P in keyof T]?: DeepPartial<T[P]>;
|
|
13
|
+
} : T;
|
|
14
|
+
/**
|
|
15
|
+
* Type for deep required object
|
|
16
|
+
*/
|
|
17
|
+
export type DeepRequired<T> = T extends object ? {
|
|
18
|
+
[P in keyof T]-?: DeepRequired<T[P]>;
|
|
19
|
+
} : T;
|
|
20
|
+
/**
|
|
21
|
+
* Type for deep readonly object
|
|
22
|
+
*/
|
|
23
|
+
export type DeepReadonly<T> = T extends object ? {
|
|
24
|
+
readonly [P in keyof T]: DeepReadonly<T[P]>;
|
|
25
|
+
} : T;
|
|
26
|
+
/**
|
|
27
|
+
* Type for deep mutable object
|
|
28
|
+
*/
|
|
29
|
+
export type DeepMutable<T> = T extends object ? {
|
|
30
|
+
-readonly [P in keyof T]: DeepMutable<T[P]>;
|
|
31
|
+
} : T;
|
|
32
|
+
export type ExpandRecursively<T extends any, level extends number = 0> = T extends object ? level extends 6 ? T extends () => any ? T : {
|
|
33
|
+
[K in keyof T]: ExpandRecursively<T[K], Add<level, 1>>;
|
|
34
|
+
} : T : T;
|
|
35
|
+
export type Paths<T, Prev extends string = '', Depth extends number = 4> = Depth extends 0 ? never : T extends PrimitiveType ? Prev : T extends Array<infer U> ? Paths<U, Prev, Depth extends keyof Decrement ? Decrement[Depth] : 0> : {
|
|
36
|
+
[K in keyof T]: Paths<T[K], Prev extends '' ? `${Extract<K, string>}` : `${Prev}.${Extract<K, string>}`, Depth extends keyof Decrement ? Decrement[Depth] : 0>;
|
|
37
|
+
}[keyof T];
|
|
38
|
+
type Matcher = `*` | `${number}`;
|
|
39
|
+
export type Match = `[${number}]` | `[*]`;
|
|
40
|
+
export type OnlyDefined<T> = T extends undefined ? never : T;
|
|
41
|
+
export type BasicSelector<T extends AnyObject> = T extends object ? {
|
|
42
|
+
[K in keyof T]: T[K];
|
|
43
|
+
}[keyof T] : string;
|
|
44
|
+
export type SelectorFor<T, Prev extends string = '', Depth extends number = 5> = Depth extends 0 ? never : Prev extends undefined ? never : T extends PrimitiveType ? T extends undefined ? never : Prev : T extends Array<infer U> ? U extends RecordObject ? `${Prev}${Match}` | SelectorFor<U, `${Prev}${Match}`, Depth extends keyof Decrement ? Decrement[Depth] : 0> : `${Prev}${Match}` : T extends object ? OnlyDefined<{
|
|
45
|
+
[K in keyof T]: `${Prev}${Prev extends '' ? '' : '.'}${Extract<K, string>}` | SelectorFor<T[K], Prev extends '' ? `${Extract<K, string>}` : `${Prev}${Prev extends '' ? '' : '.'}${Extract<K, string>}`, Depth extends keyof Decrement ? Decrement[Depth] : 0>;
|
|
46
|
+
}[keyof T]> : Prev;
|
|
47
|
+
export type NonEmptySelectors<T> = Exclude<SelectorFor<T>, ''> extends SelectorFor<T> ? Exclude<SelectorFor<T>, ''> : never;
|
|
48
|
+
export type _SubPathSelector<Selector, S extends string> = Selector extends string ? S extends `${Selector}.${infer R}` ? ReplaceStartsWith<FilterStartsWith<Selector, S>, `${S}.`> : Selector extends `${S}.${Match}.${string}` ? ReplaceStartsWith<FilterStartsWith<Selector, `${S}.${Match}`>, `${S}.${Match}.`> : Selector extends `${S}.${Match}` ? ReplaceStartsWith<FilterStartsWith<Selector, `${S}.${Match}`>, `${S}.${Match}.`> : S extends `${string}.${infer A}` ? A : S extends Selector ? never : S : never;
|
|
49
|
+
export type SubPathSelector<Selector, S extends string> = Selector extends string ? OnlyDefined<_SubPathSelector<Selector, S>> : never;
|
|
50
|
+
export type PathSelector<Selector extends string, S extends string> = OnlyDefined<FilterStartsWith<Selector, S>>;
|
|
51
|
+
type Decrement = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
52
|
+
/** SinglePath = either a valid dot string from Paths<T> or an array of keys */
|
|
53
|
+
export type SinglePath<T> = Paths<T>;
|
|
54
|
+
/** MultiPath = array of SinglePath */
|
|
55
|
+
export type MultiPath<T> = readonly SinglePath<T>[];
|
|
56
|
+
/** Accepted path formats */
|
|
57
|
+
export type AllowedPath<T extends unknown> = Paths<T> | Paths<T>[];
|
|
58
|
+
export type Split<S extends string, Sep extends string = '.'> = S extends `${infer T}${Sep}${infer U}` ? [T, ...Split<U, Sep>] : [S];
|
|
59
|
+
export type PathBuilder<T extends unknown> = {
|
|
60
|
+
$path: string[];
|
|
61
|
+
} & {
|
|
62
|
+
[K in keyof T]: T[K] extends PrimitiveType ? PathBuilder<T> & {
|
|
63
|
+
$path: [...string[], Extract<K, string>];
|
|
64
|
+
} : PathBuilder<T[K]> & {
|
|
65
|
+
$path: [...string[], Extract<K, string>];
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
export type PathObjectTyped<T> = T extends PrimitiveType ? T : {
|
|
69
|
+
[K in keyof T]-?: PathObjectTyped<T[K]>;
|
|
70
|
+
};
|
|
71
|
+
export type DotPathToTuple<P extends string> = P extends `${infer A}.${infer B}` ? [A, ...DotPathToTuple<B>] : P extends '' ? [] : [P];
|
|
72
|
+
export type Join<T extends readonly string[]> = T extends [] ? '' : T extends [infer F extends string] ? F : T extends [infer F extends string, ...infer R extends string[]] ? `${F}.${Join<R>}` : string;
|
|
73
|
+
export type PathValueString<T, P extends string, Depth extends number = 5> = Depth extends 0 ? never : P extends `${infer K}.${infer Rest}` ? K extends keyof T ? PathValueString<T[K], Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0> : never : P extends keyof T ? T[P] : never;
|
|
74
|
+
/** Resolve a path that can be string OR readonly string[] */
|
|
75
|
+
export type PathValue<T, P> = P extends readonly string[] ? PathValueString<T, Join<P>> : P extends string ? PathValueString<T, P> : never;
|
|
76
|
+
/** Path update tuple for setByPath multi-update */
|
|
77
|
+
export type PathUpdateTuple<T> = [SinglePath<T>, any];
|
|
78
|
+
export type MultiUpdateInput<T> = readonly PathUpdateTuple<T>[];
|
|
79
|
+
export type NormalizePath<P extends string> = P extends `${infer K}[${infer M}]${infer Rest}` ? K extends '' | '.' ? `[${M}]${Rest}` : `${K}.[${M}]${Rest}` : P;
|
|
80
|
+
export type IsStartArray<P> = P extends `[${Matcher}]${infer Rest}` ? Rest extends string ? true : false : false;
|
|
81
|
+
export type GetStartArray<P> = P extends `[${infer V}]${infer Rest}` ? V extends Matcher ? V : never : never;
|
|
82
|
+
export type GetEndArray<P> = P extends `[${infer V}]${infer Rest}` ? V extends Matcher ? Rest : never : never;
|
|
83
|
+
type HasArray<T> = T extends `${string}[${string}]` ? true : false;
|
|
84
|
+
type GetLastArray<P> = P extends `${infer Head}[${infer Index}]${infer Tail}` ? HasArray<Tail> extends true ? GetLastArray<Tail> : Index extends Matcher ? Index : never : never;
|
|
85
|
+
export type GetAtPath<T, P extends string, Depth extends number = 5> = Depth extends 0 ? never : NormalizePath<P> extends `${infer K}.${infer Rest}` ? K extends Keys<T> ? Rest extends `${infer z}.${infer _}` ? z extends `[${Matcher}]` ? NonNullable<T[K]> extends (infer U)[] ? U extends AnyObject ? z extends `[*]` ? GetAtPath<U, _, Depth extends keyof Decrement ? Decrement[Depth] : 0>[] : GetAtPath<U, _, Depth extends keyof Decrement ? Decrement[Depth] : 0>[][number] : U extends PrimitiveType ? U : U extends (infer V)[] ? 'infered array' : never : T[K] : GetAtPath<NonNullable<T[K]>, Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0> : NonNullable<T[K]> extends AnyObject ? GetAtPath<NonNullable<T[K]>, Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0> : T[K] extends (infer U)[] ? 'U' : 'never' : T extends RecordObject ? Rest extends `${infer k}[${infer m}]` ? k extends keyof T ? m extends '*' ? T[K] : T[k][number] : T extends (infer U)[] ? k extends keyof U ? U[k] : never : never : Rest extends keyof Flatten<T> ? Flatten<T>[Rest] : GetAtPath<T, Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0> : 'nevere again' : P extends keyof NonNullable<T> ? NonNullable<T>[P] : P extends `[${infer M}]` ? M extends '*' ? T : T extends (infer U)[] ? U : never : never;
|
|
86
|
+
export type PickPath<T, P extends string, Depth extends number = 5> = Depth extends 0 ? never : T extends (infer U)[] ? 'PickPath<U, P>[]' : P extends keyof T ? {
|
|
87
|
+
[K in P]: T[P];
|
|
88
|
+
} : P extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? T[Key] extends (infer U)[] ? {
|
|
89
|
+
[K in Key as `${K}`]: Rest extends `[${Matcher}].${infer _}` ? PickPath<U, _, Depth extends keyof Decrement ? Decrement[Depth] : 0>[] : PickPath<U, Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0>[];
|
|
90
|
+
} : {
|
|
91
|
+
[K in Key as `${K}`]: T[K] extends (infer V)[] ? PickPath<V, Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0>[] : PickPath<T[Key], Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0>;
|
|
92
|
+
} : T extends Record<string, any> ? {
|
|
93
|
+
[K1 in keyof T as K1 extends Key ? `${K1}` : 'nevers']: K1 extends Key ? T[K1] extends (infer U)[] ? Rest extends `[${Matcher}].${infer _}` ? PickPath<U, _, Depth extends keyof Decrement ? Decrement[Depth] : 0>[] : PickPath<U, Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0>[] : PickPath<T[K1], Rest, Depth extends keyof Decrement ? Decrement[Depth] : 0> : never;
|
|
94
|
+
} : never : T extends Record<any, any> ? {
|
|
95
|
+
[K in keyof T as K extends P ? K : P extends `${infer X}.${infer Y}` ? X extends K ? K : never : never]: K extends P ? T[K] extends (infer U)[] ? PickPath<U, K, Depth extends keyof Decrement ? Decrement[Depth] : 0>[] : P extends `${infer X}.${infer Y}` ? 'never-T[K]' : T[K] : never;
|
|
96
|
+
} : never;
|
|
97
|
+
type _PathResult<T extends AnyObject, P extends SelectorFor<T>, Filter extends string> = T extends Record<string, any> ? P extends string ? PickPath<T, PathSelector<P, Filter>> : P extends (infer U)[] ? U extends string ? PickPath<T, U> : never : never : never;
|
|
98
|
+
export type MergeUnionObject<A extends any, B extends any> = {
|
|
99
|
+
[K in keyof AddMissingProps<A | B>]: AddMissingProps<A | B>[K];
|
|
100
|
+
};
|
|
101
|
+
export type MergeUnionObjectSingle<T extends any> = T extends object ? {
|
|
102
|
+
[K in keyof AddMissingProps<T>]: AddMissingProps<T>[K];
|
|
103
|
+
} : T;
|
|
104
|
+
type _Keys<T> = T extends Record<string, any> ? NonNullable<{
|
|
105
|
+
[K in keyof T]: K;
|
|
106
|
+
}>[keyof T] : never;
|
|
107
|
+
export type Keys<T> = NonNullable<_Keys<T>> extends string ? NonNullable<_Keys<T>> : never;
|
|
108
|
+
export type AllKeys<T extends any> = T extends Record<string, any> ? keyof T : never;
|
|
109
|
+
export type AddMissingProps<T extends any, K extends PropertyKey = AllKeys<T>> = T extends unknown ? T & Record<Exclude<K, keyof T>, never> : never;
|
|
110
|
+
export type UnionToIntersection<U extends any> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
111
|
+
export type CreateMutable<T extends any, Depth extends number = 9> = Depth extends 0 ? never : T extends object ? ExpandRecursively<{
|
|
112
|
+
[K in keyof T]: T[K] extends Date | Function ? T[K] : T[K] extends object ? CreateMutable<T[K], Depth extends keyof Decrement ? Decrement[Depth] : 0> : T[K] extends readonly (infer R)[] ? R[] : T[K] extends (infer R)[] ? R[] : T[K] extends [] ? T[K] : T[K];
|
|
113
|
+
}> : T;
|
|
114
|
+
export type PathResult<T extends AnyObject, P extends SelectorFor<T>, Filter extends string> = CreateMutable<UnionToIntersection<_PathResult<T, P, Filter>>>;
|
|
115
|
+
export type AllKeysDefined<T> = {
|
|
116
|
+
[K in keyof T]: NonNullable<T[K]>;
|
|
117
|
+
};
|
|
118
|
+
export type PickType<T extends any, V extends any> = {
|
|
119
|
+
[k in keyof T as k extends V ? k : never]: T[k];
|
|
120
|
+
};
|
|
121
|
+
export type Flatten<T> = T extends (infer U)[] ? U : T;
|
|
122
|
+
export type IsMatch<T> = T extends Match ? true : false;
|
|
123
|
+
export type IsFullMatch<T> = T extends `[*]` ? true : false;
|
|
124
|
+
export type IsWildcardPath<T> = T extends `${string}[*]${string}` ? true : false;
|
|
125
|
+
export type ExtractPathBeforeWildcard<T> = T extends `${infer Before}[*]${string}` ? Before : T;
|
|
126
|
+
export type ExtractPathAfterWildcard<T> = T extends `${string}[*]${infer After}` ? After : '';
|
|
127
|
+
export type HasMultipleWildcards<T> = T extends `${string}[*]${string}[*]${string}` ? true : false;
|
|
128
|
+
export type ArrayElement<T> = T extends (infer U)[] ? U : T extends readonly (infer U)[] ? U : never;
|
|
129
|
+
export type DeepArrayElement<T, Depth extends number = 3> = Depth extends 0 ? T : T extends (infer U)[] ? DeepArrayElement<U, Depth extends keyof Decrement ? Decrement[Depth] : 0> : T;
|
|
130
|
+
export type IsNumericString<T> = T extends `${number}` ? true : false;
|
|
131
|
+
export type ParseNumber<T> = T extends `${infer N extends number}` ? N : never;
|
|
132
|
+
export type NormalizeWildcardPath<T extends string> = T extends `${infer Before}[*]${infer After}` ? After extends `.${infer Rest}` ? `${Before}[*].${NormalizeWildcardPath<Rest>}` : `${Before}[*]${NormalizeWildcardPath<After>}` : T;
|
|
133
|
+
export type IValueOfKey<D, U> = D extends AnyObject | any[] ? _IValueOfKeySimple<D, U> extends never ? _IValueOfKeyComplex<D, U> : _IValueOfKeySimple<D, U> : never;
|
|
134
|
+
type _IValueOfKeySimple<D extends AnyObject | any[], U> = IsMatch<U> extends true ? GetStartArray<U> extends '*' ? D : Flatten<D> : U extends keyof D ? D[U] : U extends Indices ? D extends (infer T)[] ? T : never : D extends any[] ? U extends `${number}` ? D[number] : U extends `[${number}]` ? D[number] : U extends `[*]` ? D[number][] : never : never;
|
|
135
|
+
type _IValueOfKeyComplex<D extends AnyObject | any[], U> = U extends SelectorFor<D> ? GetAtPath<D, U> : IsStartArray<U> extends true ? GetStartArray<U> extends `*` ? GetEndArray<U> extends '' ? D extends (infer T)[] ? T[] : D : D extends (infer T)[] ? GetAtPath<T, GetEndArray<U>>[] : GetAtPath<D, GetEndArray<U>>[] : GetEndArray<U> extends '' ? Flatten<D> : GetAtPath<D, GetEndArray<U>>[] : never;
|
|
136
|
+
export type SetStoreFunction<T extends AnyObject | any[]> = {
|
|
137
|
+
(value: T | Partial<T> | ((prev: T) => T | Partial<T>)): void;
|
|
138
|
+
<K extends SelectorFor<T>>(key: K, value: IValueOfKey<T, K> | ((prev: IValueOfKey<T, K>) => IValueOfKey<T, K>)): void;
|
|
139
|
+
<K extends SelectorFor<T>>(key: K, index: number, value: IValueOfKey<T, K> extends (infer U)[] ? U | Partial<U> | ((prev: U) => U | Partial<U>) : any): void;
|
|
140
|
+
<K extends SelectorFor<T>>(key: K, index: number, subPath: string, value: any): void;
|
|
141
|
+
<K extends SelectorFor<T>>(key: K, indices: (number | string)[], value: IValueOfKey<T, K> extends (infer U)[] ? U | Partial<U> | ((prev: U) => U | Partial<U>) : any): void;
|
|
142
|
+
<K extends SelectorFor<T>>(key: K, indices: (number | string)[], subPath: string, value: any): void;
|
|
143
|
+
<K extends SelectorFor<T>>(key: K, range: SetterRange, value: IValueOfKey<T, K> extends (infer U)[] ? U | Partial<U> | ((prev: U) => U | Partial<U>) : any): void;
|
|
144
|
+
<K extends SelectorFor<T>>(key: K, range: SetterRange, subPath: string, value: any): void;
|
|
145
|
+
<K extends SelectorFor<T>>(key: K, filterFn: (item: IValueOfKey<T, K> extends (infer U)[] ? U : any, index: number) => boolean, value: IValueOfKey<T, K> extends (infer U)[] ? U | Partial<U> | ((prev: U) => U | Partial<U>) : any): void;
|
|
146
|
+
<K extends SelectorFor<T>>(key: K, filterFn: (item: IValueOfKey<T, K> extends (infer U)[] ? U : any, index: number) => boolean, subPath: string, value: any): void;
|
|
147
|
+
(updates: Partial<T>): void;
|
|
148
|
+
<K extends SelectorFor<T>>(key: K, updates: IValueOfKey<T, K> extends AnyObject ? Partial<IValueOfKey<T, K>> : any): void;
|
|
149
|
+
(paths: string[], value: any): void;
|
|
150
|
+
(paths: string[], updates: Partial<any>): void;
|
|
151
|
+
} & (T extends any[] ? ArrayStoreMethods<T> : {});
|
|
152
|
+
export type StorePath<T> = T extends object ? {
|
|
153
|
+
[K in keyof T]: K extends string | number ? [K] | [K, ...StorePath<T[K]>] : never;
|
|
154
|
+
}[keyof T] : never;
|
|
155
|
+
export type ArrayStoreMethods<T extends any[]> = {
|
|
156
|
+
insert: (index: number, value: T[0]) => void;
|
|
157
|
+
move: (from: number, to: number) => void;
|
|
158
|
+
remove: (index: number) => void;
|
|
159
|
+
removeWhere: (filterFn: (item: T[0], index: number) => boolean) => void;
|
|
160
|
+
push: (...items: T[0][]) => void;
|
|
161
|
+
pop: () => T[0] | undefined;
|
|
162
|
+
shift: () => T[0] | undefined;
|
|
163
|
+
unshift: (...items: T[0][]) => void;
|
|
164
|
+
reverse: () => void;
|
|
165
|
+
sort: (compareFn?: (a: T[0], b: T[0]) => number) => void;
|
|
166
|
+
splice: (start: number, deleteCount: number, ...items: T[0][]) => T[0][];
|
|
167
|
+
};
|
|
168
|
+
/** Setter - getter */
|
|
169
|
+
/**
|
|
170
|
+
* Parsed selector segment
|
|
171
|
+
*/
|
|
172
|
+
export interface SelectorSegment {
|
|
173
|
+
type: 'property' | 'index' | 'wildcard' | 'slice' | 'filter' | 'union' | 'descendant';
|
|
174
|
+
value: string | number | [number, number] | number[] | ((item: any) => boolean);
|
|
175
|
+
raw?: string;
|
|
176
|
+
}
|
|
177
|
+
export type SelectorType = 'dot' | 'bracket' | 'wildcard' | 'array-wildcard' | 'property' | 'filter' | 'slice' | 'union' | 'descendant';
|
|
178
|
+
/**
|
|
179
|
+
* Selector options
|
|
180
|
+
*/
|
|
181
|
+
export interface SelectorOptions {
|
|
182
|
+
/** Type of selector parsing (default: 'auto' detects from string) */
|
|
183
|
+
type?: SelectorType | 'auto';
|
|
184
|
+
/** Whether to throw on errors (default: false) */
|
|
185
|
+
throwOnError?: boolean;
|
|
186
|
+
/** Default value for missing paths */
|
|
187
|
+
defaultValue?: any;
|
|
188
|
+
/** Maximum depth for recursive selectors (default: 20) */
|
|
189
|
+
maxDepth?: number;
|
|
190
|
+
/** Whether to flatten results (default: true for wildcards) */
|
|
191
|
+
flattenResults?: boolean;
|
|
192
|
+
/** Whether to include undefined values in results (default: false) */
|
|
193
|
+
includeUndefined?: boolean;
|
|
194
|
+
}
|
|
195
|
+
export type Indices = number | number[];
|
|
196
|
+
export type FnPropertyKey<T extends AnyObject, K> = SelectorFor<IValueOfKey<T, K> extends (infer U)[] ? U : never>;
|
|
197
|
+
export type FilteredFnPropertyKey<T extends AnyObject, K, Filter = never> = Filter extends never ? SelectorFor<IValueOfKey<T, K> extends (infer U)[] ? U : never> : Filter extends (infer U)[] ? U extends SelectorFor<IValueOfKey<T, K>> ? SubPathSelector<SelectorFor<IValueOfKey<T, K> extends (infer U)[] ? U : never>, U> : never : never;
|
|
198
|
+
export type ForKeyOf<V> = V extends object ? V[keyof V] : V extends (infer U)[] ? U[keyof U] : V extends string | number | boolean | Date | Set<any> ? V : never;
|
|
199
|
+
export type KeyOf<T, V> = V extends keyof T ? T[V] : never;
|
|
200
|
+
export type PropertyValue<T extends AnyObject, K, I extends Indices = never, Sub = never> = PropertyValueFn<T, K, I, Sub> | PropertyValuePathValue<T, K, I, Sub>;
|
|
201
|
+
export type PropertyValueFn<T extends AnyObject, K, I extends Indices = never, Sub = never> = Sub extends never ? Callback<Flattened<IValueOfKey<T, K>, I>> : IValueOfKey<T, K> extends never ? never : IValueOfKey<Flattened<IValueOfKey<T, K>>, Sub> extends never ? never : Callback<IValueOfKey<Flattened<IValueOfKey<T, K>>, Sub>>;
|
|
202
|
+
export type PropertyValuePathValue<T extends AnyObject, K, I extends Indices = never, Sub = never> = Sub extends never ? Flattened<IValueOfKey<T, K>, I> : IValueOfKey<T, K> extends never ? never : IValueOfKey<Flattened<IValueOfKey<T, K>>, Sub> extends never ? never : IValueOfKey<Flattened<IValueOfKey<T, K>>, Sub>;
|
|
203
|
+
export type Flattened<T, I extends boolean | Indices = true> = I extends never ? T : T extends (infer U)[] ? U extends RecordObject ? U : never : T extends Array<any> ? T[number] : T;
|
|
204
|
+
export type PropertyOrArrayValue<T extends AnyObject, K, I extends Indices = never, Sub extends FnPropertyKey<T, K> = never> = I extends never | number ? Flattened<PropertyValuePathValue<T, K, I, Sub>> : Flattened<PropertyValueFn<T, K, I, Sub>>;
|
|
205
|
+
export type Compare<T extends AnyObject, K> = (item: IValueOfKey<T, K> extends (infer U)[] ? U : IValueOfKey<T, K>, index: number) => boolean;
|
|
206
|
+
export type CompareWithProperty<T extends AnyObject, K, P> = P extends SelectorFor<IValueOfKey<T, K>> ? IValueOfKey<T, K> extends AnyObject ? Compare<IValueOfKey<T, K>, P> : never : never;
|
|
207
|
+
export type Callback<T> = (state: T) => T;
|
|
208
|
+
export type MixCallback<T = any> = {
|
|
209
|
+
(state: Merge<T, Array<T>>): T;
|
|
210
|
+
};
|
|
211
|
+
type Merge<A, B> = ExpandRecursively<{
|
|
212
|
+
[K in keyof A | keyof B]: K extends keyof B ? B[K] : K extends keyof A ? A[K] : never;
|
|
213
|
+
}>;
|
|
214
|
+
export type RangeCompare = {
|
|
215
|
+
from: number;
|
|
216
|
+
to: number;
|
|
217
|
+
by?: number;
|
|
218
|
+
};
|
|
219
|
+
type Expand<T> = T extends PrimitiveType ? T extends never ? never : T : ExpandRecursively<T>;
|
|
220
|
+
export type ParamUpdateValue<T> = T extends never ? never : NonNullable<Expand<T>> extends never ? never : Expand<NonNullable<T>> | Callback<NonNullable<Expand<T>>>;
|
|
221
|
+
export type SelectorForIfIndices<T, K> = K extends Indices ? T extends (infer U)[] ? SelectorFor<U> : SelectorFor<T> : never;
|
|
222
|
+
type FlattenParam<T, K> = IsStartArray<K> extends true ? IsFullMatch<K> extends true ? Expand<ParamUpdateValue<T>> : ParamUpdateValue<T> : ParamUpdateValue<T>;
|
|
223
|
+
export type DataParam<T, K, I = never, Depth extends number = 5> = Depth extends 0 ? never : IValueOfKey<T, K> extends AnyObject ? IValueOfKey<T, K> extends Array<(infer U)> ? T extends (infer V)[] ? IsStartArray<K> extends true ? IsFullMatch<K> extends true ? Expand<ParamUpdateValue<U>> : ParamUpdateValue<U> : Expand<ParamUpdateValue<IValueOfKey<T, K>>> : ParamUpdateValue<U[]> : I extends string ? T extends (infer V)[] ? Expand<ParamUpdateValue<IValueOfKey<V, I>>> : T extends RecordObject ? Expand<ParamUpdateValue<IValueOfKey<T, I>>> : never : Expand<ParamUpdateValue<IValueOfKey<T, K>>> : GetLastArray<K> extends '*' ? Expand<ParamUpdateValue<IValueOfKey<T, K>>> : Expand<ParamUpdateValue<Flatten<IValueOfKey<T, K>>>>;
|
|
224
|
+
export type ArrayFnParam<T extends AnyObject, K, I = never> = I extends (infer U)[] ? U extends string ? FlattenParam<IValueOfKey<IValueOfKey<T, K>, U>, K> : never : never;
|
|
225
|
+
/**
|
|
226
|
+
* Update type for selector - can be string or array of strings
|
|
227
|
+
*/
|
|
228
|
+
export type Selector = string | string[];
|
|
229
|
+
export type CompareFn<T> = (state: T) => boolean;
|
|
230
|
+
/**
|
|
231
|
+
* Type for update function or value
|
|
232
|
+
*/
|
|
233
|
+
export type UpdateValue<T = any> = Partial<T> | ((state: T) => Partial<T>);
|
|
234
|
+
export type UpdateObject = Record<string, any>;
|
|
235
|
+
/**
|
|
236
|
+
* Type for range object in SolidJS-style updates
|
|
237
|
+
*/
|
|
238
|
+
export interface SetterRange {
|
|
239
|
+
from?: number;
|
|
240
|
+
to?: number;
|
|
241
|
+
by?: number;
|
|
242
|
+
}
|
|
243
|
+
export type WildcardSelector<T> = T extends (infer U)[] ? `[*]` | `[${number}]` | `${number}` : never;
|
|
244
|
+
export type NestedWildcardSelector<T, K extends keyof T> = T[K] extends (infer U)[] ? `${K & string}[*]` | `${K & string}[${number}]` | `${K & string}.${number}` : never;
|
|
245
|
+
export type DeepWildcardSelector<T, K extends keyof T> = T[K] extends (infer U)[] ? U extends AnyObject ? `${K & string}[*].${keyof U & string}` | `${K & string}[${number}].${keyof U & string}` : `${K & string}[*]` | `${K & string}[${number}]` : never;
|
|
246
|
+
export type AllSelectorPatterns<T> = T extends any[] ? WildcardSelector<T> | SelectorFor<T> : T extends AnyObject ? SelectorFor<T> | {
|
|
247
|
+
[K in keyof T]: NestedWildcardSelector<T, K> | DeepWildcardSelector<T, K>;
|
|
248
|
+
}[keyof T] : string;
|
|
249
|
+
export {};
|
|
250
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/object/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";var A=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var p=(e,i)=>{for(var o in i)A(e,o,{get:i[o],enumerable:!0})},$=(e,i,o,a)=>{if(i&&typeof i=="object"||typeof i=="function")for(let f of O(i))!R.call(e,f)&&f!==o&&A(e,f,{get:()=>i[f],enumerable:!(a=k(i,f))||a.enumerable});return e};var w=e=>$(A({},"__esModule",{value:!0}),e);var T={};p(T,{isClass:()=>h,isEmptyObject:()=>C,isObject:()=>S,isPlainObject:()=>m,toJSONString:()=>E,traverseStructure:()=>c});module.exports=w(T);var S=e=>e==null||Array.isArray(e)||typeof e=="function"||e instanceof Date||e instanceof RegExp||e instanceof Map||e instanceof Set||e instanceof Error?!1:typeof e=="object";function m(e){if(typeof e!="object"||e===null)return!1;let i=Object.getPrototypeOf(e);return i===Object.prototype||i===null}function h(e){return typeof e=="function"&&/^class\s/.test(Function.prototype.toString.call(e))}var C=e=>S(e)?Object.keys(e).length===0:!1,c=(e,i,o,a)=>{if(o>a)return;if(i.length===0)return e;let f=i[0],l=i.slice(1);if(f.type==="descendant"){let s=c(e,l,o+1,a);if(s!==void 0)return s;if(e&&typeof e=="object")if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let r=c(e[n],i,o+1,a);r!==void 0&&(t[n]=r)}return t.length>0?t:void 0}else{let t={};for(let n in e)if(e.hasOwnProperty(n)){let r=c(e[n],i,o+1,a);r!==void 0&&(t[n]=r)}return Object.keys(t).length>0?t:void 0}return}switch(f.type){case"property":if(S(e)&&f.value&&String(f.value)in e){let s=e[String(f.value)],t=c(s,l,o+1,a);if(t!==void 0)return{[String(f.value)]:t}}break;case"index":if(Array.isArray(e)){let s=f.value;if(s>=0&&s<e.length){let t=c(e[s],l,o+1,a);if(t!==void 0){let n=new Array(e.length).filter(r=>r!==void 0);return n[s]=t,n}}}else if(e&&typeof e=="object"){let s=String(f.value);if(s in e){let t=c(e[s],l,o+1,a);if(t!==void 0)return{[s]:t}}}break;case"wildcard":if(e&&typeof e=="object")if(Array.isArray(e)){let s=[],t=!1;for(let n=0;n<e.length;n++){let r=c(e[n],l,o+1,a);r!==void 0&&(s[n]=r,t=!0)}return t?s:void 0}else{let s={},t=!1;for(let n in e)if(e.hasOwnProperty(n)){let r=c(e[n],l,o+1,a);r!==void 0&&(s[n]=r,t=!0)}return t?s:void 0}break;case"slice":if(Array.isArray(e)){let[s,t]=f.value,n=Math.max(0,s),r=Math.min(e.length,t===1/0?e.length:t),u=[],b=!1;for(let d=n;d<r;d++){let y=c(e[d],l,o+1,a);y!==void 0&&(u[d]=y,b=!0)}return b?u:void 0}break;case"union":if(Array.isArray(e)){let s=f.value,t=[],n=!1;for(let r of s)if(r>=0&&r<e.length){let u=c(e[r],l,o+1,a);u!==void 0&&(t[r]=u,n=!0)}return n?t:void 0}break;case"filter":if(Array.isArray(e)){let s=f.value,t=[],n=!1;for(let r=0;r<e.length;r++)if(s(e[r])){let u=c(e[r],l,o+1,a);u!==void 0&&(t[r]=u,n=!0)}return n?t:void 0}break}};function E(e,i=0){let o=new WeakSet,a=n=>i?" ".repeat(n):"",f=n=>i?`
|
|
2
|
+
${" ".repeat(n)}`:"",l=n=>n.replace(/[\u0000-\u001F"\\]/g,r=>{switch(r){case'"':return'\\"';case"\\":return"\\\\";case"\b":return"\\b";case"\f":return"\\f";case`
|
|
3
|
+
`:return"\\n";case"\r":return"\\r";case" ":return"\\t";default:return`\\u${r.charCodeAt(0).toString(16).padStart(4,"0")}`}}),s=(n,r)=>{if(n===null)return"null";let u=typeof n;if(u==="number")return Number.isFinite(n)?String(n):"null";if(u==="boolean")return n?"true":"false";if(u==="bigint")return`"${String(n)}"`;if(!(u==="function"||u==="undefined"||u==="symbol")){if(Array.isArray(n)){if(o.has(n))throw new TypeError("Converting circular structure to JSON");o.add(n);let b=r+i,d=n.map(y=>{let g=s(y,b);return g===void 0?"null":g});return o.delete(n),i?`[${f(b)}${d.join(`,${f(b)}`)}${f(r)}]`:`[${d.join(",")}]`}if(u==="object"){if(o.has(n))throw new TypeError("Converting circular structure to JSON");o.add(n);let b=Object.keys(n),d=r+i,y=[];for(let g of b){let j=s(n[g],d);j!==void 0&&(i?y.push(`${a(d)}"${l(g)}": ${j}`):y.push(`"${l(g)}":${j}`))}return o.delete(n),i?`{
|
|
4
|
+
${y.join(`,
|
|
5
|
+
`)}
|
|
6
|
+
${a(r)}}`:`{${y.join(",")}}`}}},t=s(e,0);return t===void 0?void 0:t}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { ClassType } from '@fluixi/utils/primitive';
|
|
2
|
+
import { RecordObject, SelectorSegment } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Checks if a value is an object (not array, function, date, etc.)
|
|
5
|
+
*
|
|
6
|
+
* This function determines if a value is a plain JavaScript object by excluding
|
|
7
|
+
* arrays, functions, and built-in object types like Date, RegExp, Map, etc.
|
|
8
|
+
*
|
|
9
|
+
* @param value - The value to check
|
|
10
|
+
* @returns `true` if value is a plain object; `false` otherwise
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* isObject({}); // true
|
|
15
|
+
* isObject({ key: 'value' }); // true
|
|
16
|
+
*
|
|
17
|
+
* isObject([]); // false
|
|
18
|
+
* isObject(null); // false
|
|
19
|
+
* isObject(undefined); // false
|
|
20
|
+
* isObject(new Date()); // false
|
|
21
|
+
* isObject(() => {}); // false
|
|
22
|
+
* isObject(new Map()); // false
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @category Type Checking
|
|
26
|
+
* @see isPlainObject - For stricter object type checking
|
|
27
|
+
*/
|
|
28
|
+
export declare const isObject: (value: unknown) => value is RecordObject;
|
|
29
|
+
/**
|
|
30
|
+
* Checks if a value is a plain object (only Object.prototype or null in prototype chain)
|
|
31
|
+
*
|
|
32
|
+
* Unlike {@link isObject}, this function performs a stricter check to ensure the value
|
|
33
|
+
* is a "plain" object - created via object literal `{}` or `Object.create(null)`.
|
|
34
|
+
* This excludes objects created with custom constructors.
|
|
35
|
+
*
|
|
36
|
+
* @template T - The expected object type
|
|
37
|
+
* @param v - The value to check
|
|
38
|
+
* @returns `true` if value is a plain object; `false` otherwise
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* isPlainObject({}); // true
|
|
43
|
+
* isPlainObject(Object.create(null)); // true
|
|
44
|
+
*
|
|
45
|
+
* class Custom {}
|
|
46
|
+
* isPlainObject(new Custom()); // false
|
|
47
|
+
* isPlainObject([]); // false
|
|
48
|
+
* isPlainObject(null); // false
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @category Type Checking
|
|
52
|
+
*/
|
|
53
|
+
export declare function isPlainObject<T extends Record<string, any> = Record<string, any>>(v: unknown): v is T;
|
|
54
|
+
/**
|
|
55
|
+
* Checks if a value is a class constructor
|
|
56
|
+
*
|
|
57
|
+
* This function determines if a value is a class constructor by checking
|
|
58
|
+
* if it's a function and if its string representation starts with the "class" keyword.
|
|
59
|
+
*
|
|
60
|
+
* @param obj - The value to check
|
|
61
|
+
* @returns `true` if value is a class constructor; `false` otherwise
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```ts
|
|
65
|
+
* class Example {}
|
|
66
|
+
* isClass(Example); // true
|
|
67
|
+
*
|
|
68
|
+
* function regularFn() {}
|
|
69
|
+
* isClass(regularFn); // false
|
|
70
|
+
*
|
|
71
|
+
* const arrowFn = () => {};
|
|
72
|
+
* isClass(arrowFn); // false
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* @category Type Checking
|
|
76
|
+
*/
|
|
77
|
+
export declare function isClass(obj: unknown): obj is ClassType;
|
|
78
|
+
/**
|
|
79
|
+
* Checks if a value is an empty object
|
|
80
|
+
*
|
|
81
|
+
* This function determines if a value is an object with no enumerable properties.
|
|
82
|
+
* It first checks if the value is an object using {@link isObject} and then
|
|
83
|
+
* checks if it has any enumerable properties.
|
|
84
|
+
*
|
|
85
|
+
* @param value - The value to check
|
|
86
|
+
* @returns `true` if value is an object with no properties; `false` otherwise
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```ts
|
|
90
|
+
* isEmptyObject({}); // true
|
|
91
|
+
* isEmptyObject(Object.create(null)); // true
|
|
92
|
+
*
|
|
93
|
+
* isEmptyObject({a: 1}); // false
|
|
94
|
+
* isEmptyObject(null); // false
|
|
95
|
+
* isEmptyObject([]); // false (arrays are not objects in this context)
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* @category Type Checking
|
|
99
|
+
* @see isObject - Used internally for type checking
|
|
100
|
+
*/
|
|
101
|
+
export declare const isEmptyObject: (value: unknown) => boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Traverses an object structure based on selector segments
|
|
104
|
+
*
|
|
105
|
+
* This advanced utility function traverses a data structure (object or array) based on
|
|
106
|
+
* a series of selector segments. It preserves the structure of the original data while
|
|
107
|
+
* navigating through it. The function supports various selector types including property access,
|
|
108
|
+
* array indexing, wildcards, slices, unions, filters, and recursive descent.
|
|
109
|
+
*
|
|
110
|
+
* @param current - The current object/array being traversed
|
|
111
|
+
* @param segments - An array of selector segments that define the traversal path
|
|
112
|
+
* @param depth - The current traversal depth (for recursion limits)
|
|
113
|
+
* @param maxDepth - The maximum depth to traverse (prevents infinite recursion)
|
|
114
|
+
* @returns The traversed structure or undefined if no match found
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```ts
|
|
118
|
+
* // Access nested property with a simple path
|
|
119
|
+
* const data = { users: [{ name: 'Alice', age: 30 }] };
|
|
120
|
+
* const segments = [
|
|
121
|
+
* { type: 'property', value: 'users' },
|
|
122
|
+
* { type: 'index', value: 0 },
|
|
123
|
+
* { type: 'property', value: 'name' }
|
|
124
|
+
* ];
|
|
125
|
+
* traverseStructure(data, segments, 0, 10); // { users: [{ name: 'Alice' }] }
|
|
126
|
+
* ```
|
|
127
|
+
*
|
|
128
|
+
* @internal
|
|
129
|
+
* @category Object Traversal
|
|
130
|
+
*/
|
|
131
|
+
export declare const traverseStructure: (current: any, segments: SelectorSegment[], depth: number, maxDepth: number) => any;
|
|
132
|
+
/**
|
|
133
|
+
* Converts a value to a JSON string with improved handling of special cases
|
|
134
|
+
*
|
|
135
|
+
* This function converts a JavaScript value to a JSON string, similar to `JSON.stringify`,
|
|
136
|
+
* but with improved handling of circular references and special character escaping.
|
|
137
|
+
*
|
|
138
|
+
* @param value - The value to convert to a JSON string
|
|
139
|
+
* @param space - The number of spaces to use for indentation (0 for no formatting)
|
|
140
|
+
* @returns The JSON string representation of the value or undefined for unsupported types
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```ts
|
|
144
|
+
* // Basic usage
|
|
145
|
+
* toJSONString({ name: 'Alice', age: 30 });
|
|
146
|
+
* // '{"name":"Alice","age":30}'
|
|
147
|
+
*
|
|
148
|
+
* // With formatting
|
|
149
|
+
* toJSONString({ name: 'Alice', age: 30 }, 2);
|
|
150
|
+
* // '{
|
|
151
|
+
* // "name": "Alice",
|
|
152
|
+
* // "age": 30
|
|
153
|
+
* // }'
|
|
154
|
+
*
|
|
155
|
+
* // Handles circular references safely
|
|
156
|
+
* const circular = { self: null };
|
|
157
|
+
* circular.self = circular;
|
|
158
|
+
* toJSONString(circular); // throws TypeError (circular structure)
|
|
159
|
+
* ```
|
|
160
|
+
*
|
|
161
|
+
* @throws {TypeError} When encountering circular references
|
|
162
|
+
* @category Serialization
|
|
163
|
+
*/
|
|
164
|
+
export declare function toJSONString(value: any, space?: number): string | undefined;
|
|
165
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/object/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAa,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,YAUlD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAC3B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnD,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,CAIpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,SAAS,CAKtD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,OAG9C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,GAAG,EACZ,UAAU,eAAe,EAAE,EAC3B,OAAO,MAAM,EACb,UAAU,MAAM,KACf,GA+NF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,SAAI,sBAuFjD"}
|