@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 o=n=>n==null||Array.isArray(n)||typeof n=="function"||n instanceof Date||n instanceof RegExp||n instanceof Map||n instanceof Set||n instanceof Error?!1:typeof n=="object";var E=(n,a)=>n===a,C=(n,a)=>{if(n.length!==a.length)return!1;for(let c=0;c<n.length;c++)if(Array.isArray(n[c])&&Array.isArray(a[c])){if(!C(n[c],a[c]))return!1}else if(o(n[c])&&o(a[c])){if(!P(n[c],a[c]))return!1}else if(n[c]!==a[c])return!1;return!0},P=(n,a)=>{let c=Object.keys(n),g=Object.keys(a);if(c.length!==g.length)return!1;for(let p of c){if(!(p in a))return!1;let d=n[p],y=a[p];if(Array.isArray(d)&&Array.isArray(y)){if(!C(d,y))return!1}else if(o(d)&&o(y)){if(!P(d,y))return!1}else if(d!==y)return!1}return!0},D=(n,a,c={})=>{let{includeDeleted:g=!1,includeAdded:p=!0,deepArrayComparison:d=!0,equalityFn:y=E,preserveStructure:R=!1}=c;if(n==null&&a==null)return{};if(n==null)return p?{...a}:{};if(a==null){if(g){let s={};for(let h in n)s[h]=void 0;return s}return{}}if(!o(n)||!o(a))return y(n,a)?{}:a;let S={},T=new Set;for(let s in a){T.add(s);let h=n[s],m=a[s];if(!(s in n)){p&&(S[s]=m);continue}if(Array.isArray(h)&&Array.isArray(m)){d?C(h,m)?R&&(S[s]=void 0):S[s]=m:h!==m?S[s]=m:R&&(S[s]=void 0);continue}if(o(h)&&o(m)){let i=D(h,m,c);Object.keys(i).length>0?S[s]=i:R&&(S[s]=void 0);continue}y(h,m)?R&&(S[s]=void 0):S[s]=m}if(g)for(let s in n)T.has(s)||(S[s]=void 0);return S},b=(n,a,c={})=>{let g=[],p=[],d=[],y={},{includeDeleted:R=!1,includeAdded:S=!0,deepArrayComparison:T=!0,equalityFn:s=E}=c;if(Array.isArray(n)&&Array.isArray(a)){let i=Math.max(n.length,a.length),A=[],u=!1;for(let e=0;e<i;e++){let r=`[${e}]`;if(e>=n.length)g.push(r),A[e]=a[e],u=!0;else if(e>=a.length)p.push(r),u=!0;else{let f=n[e],t=a[e];o(f)&&o(t)||Array.isArray(f)&&Array.isArray(t)?b(f,t,c).hasChanges?(d.push(r),A[e]=t,u=!0):A[e]=f:s(f,t)?A[e]=f:(d.push(r),A[e]=t,u=!0)}}return{changes:u?A:{},added:g,deleted:p,modified:d,hasChanges:u||p.length>0}}let h=(i,A,u="")=>{let e={added:[],deleted:[],modified:[]};if(Array.isArray(i)&&Array.isArray(A)){let r=Math.max(i.length,A.length);for(let f=0;f<r;f++){let t=u?`${u}[${f}]`:`[${f}]`;if(f>=i.length)e.added.push(t);else if(f>=A.length)e.deleted.push(t);else{let l=i[f],k=A[f];if(o(l)&&o(k)){let $=h(l,k,t);e.added.push(...$.added),e.deleted.push(...$.deleted),e.modified.push(...$.modified)}else if(Array.isArray(l)&&Array.isArray(k)){let $=h(l,k,t);e.added.push(...$.added),e.deleted.push(...$.deleted),e.modified.push(...$.modified)}else l!==k&&e.modified.push(t)}}return e}if(o(i)&&o(A)){let r=new Set([...Object.keys(i||{}),...Object.keys(A||{})]);for(let f of r){let t=i?.[f],l=A?.[f],k=u?`${u}.${f}`:f;if(!(f in(i||{})))e.added.push(k);else if(!(f in(A||{})))e.deleted.push(k);else if(Array.isArray(t)&&Array.isArray(l)){if(!C(t,l)){let $=h(t,l,k);e.added.push(...$.added),e.deleted.push(...$.deleted),e.modified.push(...$.modified)}}else if(o(t)&&o(l)){let $=h(t,l,k);e.added.push(...$.added),e.deleted.push(...$.deleted),e.modified.push(...$.modified)}else t!==l&&e.modified.push(k)}}return e};if(n==null&&a==null)return{changes:{},added:g,deleted:p,modified:d,hasChanges:!1};if(n==null){if(S&&a)for(let i in a)g.push(i),y[i]=a[i];return{changes:y,added:g,deleted:p,modified:d,hasChanges:g.length>0}}if(a==null){if(R)for(let i in n)p.push(i),y[i]=void 0;return{changes:y,added:g,deleted:p,modified:d,hasChanges:p.length>0}}let m=new Set;for(let i in a){m.add(i);let A=n[i],u=a[i];if(!(i in n)){S&&(g.push(i),y[i]=u);continue}let e=!1;if(Array.isArray(A)&&Array.isArray(u)){if(e=T?!C(A,u):A!==u,e){let r=h(A,u,i);g.push(...r.added),p.push(...r.deleted),d.push(...r.modified),y[i]=u}}else if(o(A)&&o(u)){let r=D(A,u,c);if(e=Object.keys(r).length>0,e){let f=h(A,u,i);g.push(...f.added),p.push(...f.deleted),d.push(...f.modified),y[i]=r}}else e=!s(A,u),e&&(d.push(i),y[i]=u)}for(let i in n)m.has(i)||(p.push(i),y[i]=void 0);return{changes:y,added:g,deleted:p,modified:d,hasChanges:g.length>0||p.length>0||d.length>0}},M=(n,a,c={})=>{let g=D(n,a,c);return Object.keys(g).length>0};function F(n){return!!(n&&(n.diff||n.changes)&&(n.modified||n.deleted||n.hasChanges))}var x=(n,a,c)=>{if(!F(a)){let e=a,r=c||!1;if(Array.isArray(n)&&Array.isArray(e)){let t=r?n:[...n];e.length<t.length&&(t.length=e.length);for(let l=0;l<e.length;l++){let k=e[l];k!==void 0&&(o(t[l])&&o(k)||Array.isArray(t[l])&&Array.isArray(k)?t[l]=x(t[l],k,r):t[l]=k)}return t}if(!o(n))return e;if(!o(e))return n;let f=r?n:{...n};for(let t in e){let l=e[t];l===void 0?delete f[t]:Array.isArray(f[t])&&Array.isArray(l)||o(f[t])&&o(l)?f[t]=x(f[t],l,r):f[t]=l}return f}let{diff:g,added:p=[],deleted:d=[],modified:y=[],changes:R,keepRef:S}=a,T=c!==void 0?c:S,s=R||g;if(!s)return n;let h=new Set(p),m=new Set(d),i=new Set(y),A=e=>{if(p.length===0&&d.length===0&&y.length===0)return!0;let r=e.split(/[.\[\]]+/).filter(Boolean);for(let f=0;f<=r.length;f++){let t=r.slice(0,f).join("."),l=r.slice(0,f).map((k,$)=>/^\d+$/.test(k)?`[${k}]`:$>0?`.${k}`:k).join("");if(h.has(t)||h.has(l)||m.has(t)||m.has(l)||i.has(t)||i.has(l))return!0}return!1};if(Array.isArray(n)&&Array.isArray(s)){let e=T?n:[...n];e.length=s.length;for(let r=0;r<s.length;r++){let f=`[${r}]`,t=s[r];t!==void 0&&A(f)&&(o(e[r])&&o(t)||Array.isArray(e[r])&&Array.isArray(t)?e[r]=x(e[r],t,T):e[r]=t)}return e}if(!o(n))return s;if(!o(s))return n;let u=T?n:{...n};for(let e of d)e.includes(".")||e.includes("[")||A(e)&&delete u[e];for(let e in s){let r=s[e];A(e)&&(r===void 0?delete u[e]:Array.isArray(u[e])&&Array.isArray(r)||o(u[e])&&o(r)?u[e]=x(u[e],r,T):u[e]=r)}return u},N=(n,a,c={})=>{let g=[],p=(d,y,R="")=>{if(d===y)return;if(Array.isArray(d)&&Array.isArray(y)){let T=Math.max(d.length,y.length);for(let s=0;s<T;s++){let h=R?`${R}[${s}]`:`[${s}]`;if(s>=d.length)g.push(h);else if(s>=y.length)g.push(h);else{let m=d[s],i=y[s];o(m)&&o(i)||Array.isArray(m)&&Array.isArray(i)?p(m,i,h):m!==i&&g.push(h)}}return}if(!o(d)||!o(y)){R&&g.push(R);return}let S=new Set([...Object.keys(d||{}),...Object.keys(y||{})]);for(let T of S){let s=d?.[T],h=y?.[T],m=R?`${R}.${T}`:T;!(T in(d||{}))||!(T in(y||{}))?g.push(m):Array.isArray(s)&&Array.isArray(h)||o(s)&&o(h)?p(s,h,m):s!==h&&g.push(m)}};return p(n,a),g};export{x as applyDiff,D as diffObject,b as diffObjectDetailed,N as getChangedPaths,M as hasObjectChanges};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var N=Object.defineProperty;var fe=Object.getOwnPropertyDescriptor;var ye=Object.getOwnPropertyNames;var ue=Object.prototype.hasOwnProperty;var ce=(e,r)=>{for(var t in r)N(e,t,{get:r[t],enumerable:!0})},de=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of ye(r))!ue.call(e,s)&&s!==t&&N(e,s,{get:()=>r[s],enumerable:!(i=fe(r,s))||i.enumerable});return e};var pe=e=>de(N({},"__esModule",{value:!0}),e);var ke={};ce(ke,{ValueOfKey:()=>P,castProps:()=>Ke,deepMergeWithArrays:()=>Fe,deletePath:()=>ae,findPaths:()=>we,flattenWithArrays:()=>oe,fromPath:()=>q,get:()=>V,getPaths:()=>W,getTypeAtPath:()=>Pe,has:()=>ie,isRangeObject:()=>ne,mergeUpdateAtPath:()=>se,select:()=>be,set:()=>L,setArrayValueWithFilter:()=>re,setAtPath:()=>I,setValueAtIndex:()=>E,setValueAtPath:()=>k,setValueBetweenRange:()=>M,setValueBetweenRangeWithSubPath:()=>te,setValueWithArraySelectors:()=>B,setValueWithFilter:()=>D,setValueWithFilterWithSubPath:()=>_,traverseWithPaths:()=>O,unflattenWithArrays:()=>Oe,update:()=>Ie,updateWithCallBack:()=>le});module.exports=pe(ke);var z=require("@fluixi/utils/primitive"),Q=require("@fluixi/utils/object"),ge=require("@fluixi/utils/array"),Ae=require("@fluixi/utils/functions");function Z(e){let r=typeof e;return e===null||r==="string"||r==="number"||r==="boolean"||r==="symbol"||r==="bigint"||r==="undefined"||(0,z.isDate)(e)}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,t,i)=>{if(t>i)return;if(r.length===0)return e;let s=r[0],l=r.slice(1);if(s.type==="descendant"){let a=w(e,l,t+1,i);if(a!==void 0)return a;if(e&&typeof e=="object")if(Array.isArray(e)){let n=[];for(let f=0;f<e.length;f++){let o=w(e[f],r,t+1,i);o!==void 0&&(n[f]=o)}return n.length>0?n:void 0}else{let n={};for(let f in e)if(e.hasOwnProperty(f)){let o=w(e[f],r,t+1,i);o!==void 0&&(n[f]=o)}return Object.keys(n).length>0?n:void 0}return}switch(s.type){case"property":if(m(e)&&s.value&&String(s.value)in e){let a=e[String(s.value)],n=w(a,l,t+1,i);if(n!==void 0)return{[String(s.value)]:n}}break;case"index":if(Array.isArray(e)){let a=s.value;if(a>=0&&a<e.length){let n=w(e[a],l,t+1,i);if(n!==void 0){let f=new Array(e.length).filter(o=>o!==void 0);return f[a]=n,f}}}else if(e&&typeof e=="object"){let a=String(s.value);if(a in e){let n=w(e[a],l,t+1,i);if(n!==void 0)return{[a]:n}}}break;case"wildcard":if(e&&typeof e=="object")if(Array.isArray(e)){let a=[],n=!1;for(let f=0;f<e.length;f++){let o=w(e[f],l,t+1,i);o!==void 0&&(a[f]=o,n=!0)}return n?a:void 0}else{let a={},n=!1;for(let f in e)if(e.hasOwnProperty(f)){let o=w(e[f],l,t+1,i);o!==void 0&&(a[f]=o,n=!0)}return n?a:void 0}break;case"slice":if(Array.isArray(e)){let[a,n]=s.value,f=Math.max(0,a),o=Math.min(e.length,n===1/0?e.length:n),u=[],g=!1;for(let p=f;p<o;p++){let A=w(e[p],l,t+1,i);A!==void 0&&(u[p]=A,g=!0)}return g?u:void 0}break;case"union":if(Array.isArray(e)){let a=s.value,n=[],f=!1;for(let o of a)if(o>=0&&o<e.length){let u=w(e[o],l,t+1,i);u!==void 0&&(n[o]=u,f=!0)}return f?n:void 0}break;case"filter":if(Array.isArray(e)){let a=s.value,n=[],f=!1;for(let o=0;o<e.length;o++)if(a(e[o])){let u=w(e[o],l,t+1,i);u!==void 0&&(n[o]=u,f=!0)}return f?n:void 0}break}};var $=(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 t=new Map;return e.forEach((i,s)=>{(!r||!r.some(l=>l.toString()===s.toString()))&&t.set(s,$(i))}),t}if(e instanceof Set){let t=new Set;return e.forEach(i=>{t.add($(i))}),t}if(Array.isArray(e))return Array.from(e).map(t=>$(t));if(m(e)){let t={};for(let s in e)Object.prototype.hasOwnProperty.call(e,s)&&(!r||!r.some(l=>l.toString()===s.toString()))&&(t[s]=$(e[s]));let i=Object.getOwnPropertySymbols(e);for(let s of i)(!r||!r.some(l=>l.toString()===s.toString()))&&(t[s]=$(e[s]));return t}return e};var G=(e,r)=>e===r,j=(e,r)=>{if(e.length!==r.length)return!1;for(let t=0;t<e.length;t++)if(Array.isArray(e[t])&&Array.isArray(r[t])){if(!j(e[t],r[t]))return!1}else if(m(e[t])&&m(r[t])){if(!H(e[t],r[t]))return!1}else if(e[t]!==r[t])return!1;return!0},H=(e,r)=>{let t=Object.keys(e),i=Object.keys(r);if(t.length!==i.length)return!1;for(let s of t){if(!(s in r))return!1;let l=e[s],a=r[s];if(Array.isArray(l)&&Array.isArray(a)){if(!j(l,a))return!1}else if(m(l)&&m(a)){if(!H(l,a))return!1}else if(l!==a)return!1}return!0},X=(e,r,t={})=>{let{includeDeleted:i=!1,includeAdded:s=!0,deepArrayComparison:l=!0,equalityFn:a=G,preserveStructure:n=!1}=t;if(e==null&&r==null)return{};if(e==null)return s?{...r}:{};if(r==null){if(i){let u={};for(let g in e)u[g]=void 0;return u}return{}}if(!m(e)||!m(r))return a(e,r)?{}:r;let f={},o=new Set;for(let u in r){o.add(u);let g=e[u],p=r[u];if(!(u in e)){s&&(f[u]=p);continue}if(Array.isArray(g)&&Array.isArray(p)){l?j(g,p)?n&&(f[u]=void 0):f[u]=p:g!==p?f[u]=p:n&&(f[u]=void 0);continue}if(m(g)&&m(p)){let A=X(g,p,t);Object.keys(A).length>0?f[u]=A:n&&(f[u]=void 0);continue}a(g,p)?n&&(f[u]=void 0):f[u]=p}if(i)for(let u in e)o.has(u)||(f[u]=void 0);return f},U=(e,r,t={})=>{let i=[],s=[],l=[],a={},{includeDeleted:n=!1,includeAdded:f=!0,deepArrayComparison:o=!0,equalityFn:u=G}=t;if(Array.isArray(e)&&Array.isArray(r)){let A=Math.max(e.length,r.length),d=[],c=!1;for(let y=0;y<A;y++){let T=`[${y}]`;if(y>=e.length)i.push(T),d[y]=r[y],c=!0;else if(y>=r.length)s.push(T),c=!0;else{let x=e[y],h=r[y];m(x)&&m(h)||Array.isArray(x)&&Array.isArray(h)?U(x,h,t).hasChanges?(l.push(T),d[y]=h,c=!0):d[y]=x:u(x,h)?d[y]=x:(l.push(T),d[y]=h,c=!0)}}return{changes:c?d:{},added:i,deleted:s,modified:l,hasChanges:c||s.length>0}}let g=(A,d,c="")=>{let y={added:[],deleted:[],modified:[]};if(Array.isArray(A)&&Array.isArray(d)){let T=Math.max(A.length,d.length);for(let x=0;x<T;x++){let h=c?`${c}[${x}]`:`[${x}]`;if(x>=A.length)y.added.push(h);else if(x>=d.length)y.deleted.push(h);else{let S=A[x],K=d[x];if(m(S)&&m(K)){let v=g(S,K,h);y.added.push(...v.added),y.deleted.push(...v.deleted),y.modified.push(...v.modified)}else if(Array.isArray(S)&&Array.isArray(K)){let v=g(S,K,h);y.added.push(...v.added),y.deleted.push(...v.deleted),y.modified.push(...v.modified)}else S!==K&&y.modified.push(h)}}return y}if(m(A)&&m(d)){let T=new Set([...Object.keys(A||{}),...Object.keys(d||{})]);for(let x of T){let h=A?.[x],S=d?.[x],K=c?`${c}.${x}`:x;if(!(x in(A||{})))y.added.push(K);else if(!(x in(d||{})))y.deleted.push(K);else if(Array.isArray(h)&&Array.isArray(S)){if(!j(h,S)){let v=g(h,S,K);y.added.push(...v.added),y.deleted.push(...v.deleted),y.modified.push(...v.modified)}}else if(m(h)&&m(S)){let v=g(h,S,K);y.added.push(...v.added),y.deleted.push(...v.deleted),y.modified.push(...v.modified)}else h!==S&&y.modified.push(K)}}return y};if(e==null&&r==null)return{changes:{},added:i,deleted:s,modified:l,hasChanges:!1};if(e==null){if(f&&r)for(let A in r)i.push(A),a[A]=r[A];return{changes:a,added:i,deleted:s,modified:l,hasChanges:i.length>0}}if(r==null){if(n)for(let A in e)s.push(A),a[A]=void 0;return{changes:a,added:i,deleted:s,modified:l,hasChanges:s.length>0}}let p=new Set;for(let A in r){p.add(A);let d=e[A],c=r[A];if(!(A in e)){f&&(i.push(A),a[A]=c);continue}let y=!1;if(Array.isArray(d)&&Array.isArray(c)){if(y=o?!j(d,c):d!==c,y){let T=g(d,c,A);i.push(...T.added),s.push(...T.deleted),l.push(...T.modified),a[A]=c}}else if(m(d)&&m(c)){let T=X(d,c,t);if(y=Object.keys(T).length>0,y){let x=g(d,c,A);i.push(...x.added),s.push(...x.deleted),l.push(...x.modified),a[A]=T}}else y=!u(d,c),y&&(l.push(A),a[A]=c)}for(let A in e)p.has(A)||(s.push(A),a[A]=void 0);return{changes:a,added:i,deleted:s,modified:l,hasChanges:i.length>0||s.length>0||l.length>0}};function Te(e){return!!(e&&(e.diff||e.changes)&&(e.modified||e.deleted||e.hasChanges))}var b=(e,r,t)=>{if(!Te(r)){let y=r,T=t||!1;if(Array.isArray(e)&&Array.isArray(y)){let h=T?e:[...e];y.length<h.length&&(h.length=y.length);for(let S=0;S<y.length;S++){let K=y[S];K!==void 0&&(m(h[S])&&m(K)||Array.isArray(h[S])&&Array.isArray(K)?h[S]=b(h[S],K,T):h[S]=K)}return h}if(!m(e))return y;if(!m(y))return e;let x=T?e:{...e};for(let h in y){let S=y[h];S===void 0?delete x[h]:Array.isArray(x[h])&&Array.isArray(S)||m(x[h])&&m(S)?x[h]=b(x[h],S,T):x[h]=S}return x}let{diff:i,added:s=[],deleted:l=[],modified:a=[],changes:n,keepRef:f}=r,o=t!==void 0?t:f,u=n||i;if(!u)return e;let g=new Set(s),p=new Set(l),A=new Set(a),d=y=>{if(s.length===0&&l.length===0&&a.length===0)return!0;let T=y.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,v)=>/^\d+$/.test(K)?`[${K}]`:v>0?`.${K}`:K).join("");if(g.has(h)||g.has(S)||p.has(h)||p.has(S)||A.has(h)||A.has(S))return!0}return!1};if(Array.isArray(e)&&Array.isArray(u)){let y=o?e:[...e];y.length=u.length;for(let T=0;T<u.length;T++){let x=`[${T}]`,h=u[T];h!==void 0&&d(x)&&(m(y[T])&&m(h)||Array.isArray(y[T])&&Array.isArray(h)?y[T]=b(y[T],h,o):y[T]=h)}return y}if(!m(e))return u;if(!m(u))return e;let c=o?e:{...e};for(let y of l)y.includes(".")||y.includes("[")||d(y)&&delete c[y];for(let y in u){let T=u[y];d(y)&&(T===void 0?delete c[y]:Array.isArray(c[y])&&Array.isArray(T)||m(c[y])&&m(T)?c[y]=b(c[y],T,o):c[y]=T)}return c};var F=(e,r={})=>{let{type:t="auto",throwOnError:i=!1}=r;if(!e||typeof e!="string")return[];let s=[],l="",a=!1,n=!1,f="",o="",u=0,p=t==="auto"?(d=>d.includes("..")?"descendant":d.includes("[?(")?"filter":d.includes("[:")||d.includes("[0:")?"slice":d.includes("[,")||d.includes("[0,1]")?"union":d.includes("[*]")||d.includes(".*.")?"wildcard":d.includes("[]")?"array-wildcard":d.includes("[")&&d.includes("]")?"bracket":"dot")(e):t,A=d=>{let c=d.trim();if(c==="*"||c==="")return{type:"wildcard",value:c===""?"[]":"*",raw:c===""?"[]":d};if(c==="[]")return{type:"wildcard",value:"[]",raw:d};if(/^-?\d+$/.test(c))return{type:"index",value:parseInt(c,10),raw:d};if(c.includes(":")){let y=c.split(":").map(h=>h.trim()),T=y[0]===""?0:parseInt(y[0],10),x=y[1]===""?1/0:parseInt(y[1],10);if(isNaN(T)||isNaN(x)){if(i)throw new Error(`Invalid slice notation: ${d}`);return{type:"wildcard",value:"*",raw:d}}return{type:"slice",value:[T,x],raw:d}}if(c.includes(",")){let y=c.split(",").map(T=>{let x=parseInt(T.trim(),10);return isNaN(x)?-1:x}).filter(T=>T>=0);if(y.length===0){if(i)throw new Error(`Invalid union notation: ${d}`);return{type:"wildcard",value:"*",raw:d}}return{type:"union",value:y,raw:d}}if(c.startsWith("?(")&&c.endsWith(")")){let y=c.slice(2,-1);try{return{type:"filter",value:xe(y),raw:d}}catch(T){if(i)throw T;return{type:"wildcard",value:"*",raw:d}}}return c.startsWith('"')&&c.endsWith('"')||c.startsWith("'")&&c.endsWith("'")?{type:"property",value:c.slice(1,-1),raw:d}:{type:"property",value:c,raw:d}};for(let d=0;d<e.length;d++){let c=e[d],y=e[d+1];if((c==='"'||c==="'")&&!n){n=!0,f=c;continue}else if(c===f&&n){n=!1,f="",c==='"'||c==="'"||(a?o+=c:l+=c);continue}if(n){a?o+=c:l+=c;continue}if(c==="["&&!a){l&&(s.push({type:"property",value:l,raw:l}),l=""),a=!0,o="";continue}if(c==="]"&&a&&!n){a=!1;let x=A(o);s.push(x);continue}let T=s.length>0?s[s.length-1]:null;if(c==="."&&!a&&!n){if(y==="."){let x=e.split("..")[0];s.push({type:"property",value:x,raw:x}),s.push({type:"descendant",value:"..",raw:".."}),d++}else l&&(l==="*"?s.push({type:"wildcard",value:l,raw:l}):s.push({type:"property",value:l,raw:l}),l="");continue}if(a)o+=c;else if(T&&T.type!=="descendant")l+=c;else{let x=e.split(T?.raw)[1];x!==void 0?l=x:l+=c}}return l&&s.push({type:"property",value:l,raw:l}),s.map(d=>{if(d.type==="property"&&typeof d.value=="string"&&/^-?\d+$/.test(d.value)){let c=parseInt(d.value,10);if(!isNaN(c))return{...d,type:"index",value:c}}return d})},xe=e=>{let r=e.replace(/@\.([a-zA-Z_$][\w$]*)/g,(t,i)=>`item.${i}`).replace(/@/g,"item");try{return new Function("item",`return ${r}`)}catch{throw new Error(`Invalid filter expression: ${e}`)}},C=e=>{let r=[];for(let t=0;t<e.length;t++){let i=e[t],s=t>0?e[t-1]:null;switch(i.type){case"property":/[\.\[\]\s]/.test(String(i.value))?r.push(`["${i.value}"]`):(s&&s.type!=="descendant"&&r.push("."),r.push(String(i.value)));break;case"index":r.push(`[${i.value}]`);break;case"wildcard":i.value==="[]"?r.push("[]"):r.push("[*]");break;case"slice":let[a,n]=i.value;r.push(`[${a}:${n===1/0?"":n}]`);break;case"union":let f=i.value;r.push(`[${f.join(",")}]`);break;case"filter":r.push(`[?(${i.raw?.slice(2,-1)||""})]`);break;case"descendant":r.push("..");break}}return r.join("").replace(/\.\[/g,"[")};var Y=(e,r,t)=>{let i=F(r),s=e;for(let l=0;l<i.length;l++){let a=i[l],n=l===i.length-1;switch(a.type){case"property":if(n)s[String(a.value)]=t;else{if(!s[String(a.value)]){let o=i[l+1];s[String(a.value)]=o.type==="index"||o.type==="slice"||o.type==="union"||o.type==="wildcard"?[]:{}}s=s[String(a.value)]}break;case"index":Array.isArray(s)||(s=[]);let f=a.value;if(n){if(f>=s.length)for(let o=s.length;o<=f;o++)s.push(void 0);s[f]=t}else{if(!s[f]){let o=i[l+1];s[f]=o.type==="index"||o.type==="slice"||o.type==="union"||o.type==="wildcard"?[]:{}}s=s[f]}break;case"wildcard":if(Array.isArray(s))if(n)for(let o=0;o<s.length;o++)s[o]=t;else{let o=i[l+1];for(let u=0;u<s.length;u++)s[u]||(s[u]=o.type==="index"||o.type==="slice"||o.type==="union"||o.type==="wildcard"?[]:{});s.length>0&&(s=s[0])}break}}};function V(e,r,t={}){let{preserveStructure:i,multiple:s,throwOnError:l=!1,defaultValue:a,maxDepth:n=20}=t;if(!e||typeof e!="object")return a;if(!r)return e;if(Array.isArray(r))if(i){let u={};for(let g of r){let p=V(e,g,{...t,preserveStructure:!1});p!==void 0&&Y(u,g,p)}return u}else return r.map(u=>V(e,u,{...t,preserveStructure:!1}));let f=F(r,{...t,throwOnError:l});if(f.length===0)return e;if(typeof i>"u"||i===!1){let u=P(e,r);return s===!1&&Array.isArray(u)?u[0]:u===void 0&&a!==void 0?a:u}let o=w(e,f,0,n);return o===void 0&&a!==void 0?a:o}function L(e,r,t,i,s){let l=$(e),a=[];if(typeof r<"u"&&a.push(r),typeof t<"u"&&a.push(t),typeof i<"u"&&a.push(i),typeof s<"u"&&a.push(s),Z(l))return typeof r=="function"?r(l):r;if(a.length===1){if(typeof a[0]=="function")return le(l,a[0]);if(Array.isArray(a[0])){if(Array.isArray(l))if(r.length===0)for(let n=0;n<l.length;n++)l.pop();else return U([...l],[...a[0]]).hasChanges&&b(l,[...a[0]],!0),l}else typeof a[0]=="object"&&!Array.isArray(a[0])?typeof l=="object"&&!Array.isArray(l)&&b(l,a[0],!0):l=a[0];return l}if(Array.isArray(l)){if(typeof r=="string"&&(he(t)||typeof t=="string")&&a.length===3){if(Array.isArray(t)){for(let n=0;n<t.length;n++)k(l,r,i,t[n]);return l}return k(l,r,i,t)}if(typeof r=="string"&&typeof t=="function"&&a.length===2)return k(l,r,t)}if((typeof r=="string"||typeof r=="number")&&(a.length===2||a.length===3))return ne(t)?M(l,r,t,i):typeof r=="number"?typeof i<"u"?k(l,`[${r}].${t}`,i):k(l,`[${r}]`,t,i):typeof t=="number"&&typeof i<"u"?E(l,r,t,i):Array.isArray(t)&&t.length>0&&t.every(n=>typeof n=="number")?R(l,r,t,i):typeof i<"u"&&typeof t=="function"?D(l,r,t,i):k(l,r,t,i);if(typeof r=="string"&&typeof t=="number"){if(a.length===3)return E(l,r,t,i);if(a.length===4)return me(l,r,t,i,s)}if(typeof r=="string"&&Array.isArray(t)){if(a.length===3)return R(l,r,t,i);if(a.length===4)return Se(l,r,t,i,s)}if(typeof r=="string"&&typeof t=="object"&&!Array.isArray(t)&&t!==null){let n=t;if("from"in n||"to"in n){if(a.length===3)return M(l,r,n,i);if(a.length===4)return te(l,r,n,i,s)}}if(typeof r=="object"&&!Array.isArray(r)&&a.length===1)return b(l,r,!0);if(typeof r=="string"&&typeof t=="object"&&!Array.isArray(t)&&a.length===2)return se(l,r,t);if(typeof r=="string"&&typeof t=="function"){if(a.length===3)return D(l,r,t,i);if(a.length===4)return _(l,r,t,i,s)}if(typeof r=="function"&&typeof t=="string"){if(a.length===3)return re(l,r,t,i);if(a.length===4)return _(l,t,r,i,s)}if(Array.isArray(r)){if(a.length===2&&typeof t=="object"&&!Array.isArray(t))return B(l,r,t);if(a.length===2)return B(l,r,t)}throw new Error(`Invalid set parameters: ${JSON.stringify(a)}`)}function J(e,r,t,i=!1){let s=F(e);if(s.length===0)return t;let l=s[s.length-1].type==="wildcard",a=s.some(f=>f.type==="wildcard")&&Array.isArray(r),n;if((l||a&&i||a&&s.length===2)&&Array.isArray(r))for(let f=0;f<r.length;f++){let o=typeof t=="function"?t(r[f]):typeof r[f]=="object"?b(r[f],t,!0):t;n||(n=[]),n.push(o)}return!l&&!n&&(n=typeof t=="function"?t(r):t),n}function ne(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 he(e){return Array.isArray(e)&&e.every(r=>typeof r=="string")}function k(e,r,t,i){let s=F(r),l=P(e,r,{paths:s,createMissing:!0}),a;i&&typeof t=="function"&&(a=V(l,i));let f=J(r,i?a:l,t,Array.isArray(e));return i?I(e,`${r}.${i}`,f,{createMissing:!0}):I(e,r,f,{createMissing:!0})}function E(e,r,t,i){let s=P(e,r,{createMissing:!0});if(!Array.isArray(s))throw new Error(`Target at ${r} is not an array ${t}`);let l=structuredClone(s),a=J(r,l[t],i);if(t<0){let n=s.length+t;if(n<0)throw new Error(`Index ${t} is out of bounds`);return I(e,`${r}[${n}]`,a,{createMissing:!0})}return I(e,`${r}[${t}]`,a,{createMissing:!0})}var me=(e,r,t,i,s)=>typeof i=="function"?k(e,`${r}[${t}]`,i):typeof i=="string"?k(e,`${r}[${t}]`,s,i):null,R=(e,r,t,i)=>{let s=P(e,r);if(!Array.isArray(s))throw new Error(`Target at ${r} is not an array`);for(let l of t)typeof l=="number"?E(e,r,l,i):typeof l=="string"&&k(e,r,i,l);return e},Se=(e,r,t,i,s)=>R(e,r,t,a=>{let n=typeof s=="function"?s(a?P(a,i):void 0):s,f=a?{...a}:{};return I(f,i,n),f});function M(e,r,t,i){let s=P(e,r);if(!Array.isArray(s))throw new Error(`Target at ${r} is not an array`);let l=t.from??0,a=t.to??s.length-1,n=t.by??1,f=[];for(let o=l;o<=a;o+=n)o>=0&&o<s.length&&f.push(o);return R(e,r,f,i)}var te=(e,r,t,i,s)=>M(e,r,t,a=>{let n=typeof s=="function"?s(a?P(a,i):void 0):s,f=a?{...a}:{};return I(f,i,n),f});function Ke(e,r){return Object.assign(e,r)}function D(e,r,t,i){let s=P(e,r);if(!Array.isArray(s))throw new Error(`Target at ${r} is not an array`);let l=[],a=[...s];return s.forEach((n,f)=>{t(n,f)&&l.push(f)}),R(e,r,l,i)}function re(e,r,t,i){let s=e;if(!Array.isArray(s))throw new Error(`Target at ${t} is not an array`);let l=[],a=[...s];return s.forEach((n,f)=>{n=I(n,t,i,{createMissing:!0})}),s}function _(e,r,t,i,s){return D(e,r,t,a=>{let n=typeof s=="function"?s(a?P(a,i):void 0):s,f=a?{...a}:{};return I(f,i,n),f})}function se(e,r,t){let i=P(e,r,{createMissing:!0}),s=b(i||{},t,!0);return I(e,r,s,{createMissing:!0})}function B(e,r,t){if(typeof t=="object"&&!Array.isArray(t)&&t!==null)for(let[i,s]of Object.entries(t))r.includes(i)&&I(e,i,s,{createMissing:!0});else for(let i of r){let s=J(i,P(e,i),t);I(e,i,s,{createMissing:!0})}return e}function P(e,r,t={}){let{createMissing:i=!1,add:s=!1,debug:l=!1}=t,a=F(r),n=e,f=!1,o="",u=r;if(typeof n=="object"&&!Array.isArray(n)&&u.length>0&&n[u])return n=n[u],n;for(let g=0;g<a.length;g++){let p=a[g],A=a.length>1?g===a.length-1:!1;if(n===null&&!i)return;let d=a[g+1];switch(p.type){case"property":if(n&&typeof n=="object")if(Array.isArray(n)){if(typeof p.value=="number"){let c=p.value;if(i&&c>=n.length)for(let y=n.length;y<=c;y++)n.push(void 0);if(i&&(n[c]===null||n[c]===void 0)&&(!A||f)&&(d?n[c]=d.type==="index"||d.type==="slice"||d.type==="union"||d.type==="wildcard"?[]:{}:n[c]=null,f=!1),n=n[c],d){f=!0;continue}}else s?n.push({[String(p.value)]:null}):n=n.map(c=>c[String(p.value)]);if(d)continue;return ee(n)}else{if(n[o]&&o.split(".").length>=2){n=n[o];continue}if(i&&(n[String(p.value)]===null||n[String(p.value)]===void 0)&&(!A||f)&&(d?n[String(p.value)]=d.type==="index"||d.type==="slice"||d.type==="union"||d.type==="wildcard"?[]:{}:n[String(p.value)]=null,f=!1,n=n[String(p.value)],d)){f=!0;continue}if(n?(!n[String(p.value)]&&i&&(n[String(p.value)]=null),n=n[String(p.value)]):n={[String(p.value)]:null},d)continue}else if(i)n={},n[String(p.value)]=d.type==="index"||d.type==="slice"||d.type==="union"||d.type==="wildcard"||t.type==="array"?[]:{},n=n[String(p.value)];else return;break;case"index":case"wildcard":if(Array.isArray(n)){if(p.type==="index"){let c=p.value;if(c<0){n=n[n.length-Math.abs(c)];continue}if(i&&(c>=n.length||n[c]==null||n[c]==null)&&!A){for(let y=n.length;y<=c;y++)n.push(void 0);d&&(n[c]=d.type==="index"||d.type==="slice"||d.type==="union"||d.type==="wildcard"?[]:{})}n=n[c]}else if(!A)continue}else if(i){let c=a[g+1];n=[];let y=p.value;for(let T=0;T<=y;T++)n.push(void 0);n[y]=c.type==="index"||c.type==="slice"||c.type==="union"||c.type==="wildcard"||t.type==="array"?[]:{},n=n[y]}else{if(p.type==="index"&&typeof n=="object"&&n&&n[String(p.value)]!==void 0){n=n[String(p.value)];continue}if(typeof n=="object"){n=Object.values(n);continue}return}break;default:return}}return ee(n)}function ee(e){return Array.isArray(e)?e.filter(r=>typeof r<"u"):e}var I=(e,r,t,i={})=>{if(r==="[*]")return b(e,t,!0);let{createMissing:s=!0}=i,l=F(r);if(l.length===0)return e;let a=l[l.length-1],n=e;for(let f=0;f<l.length-1;f++){let o=l[f];if(n==null){if(!s)return e;throw new Error(`Cannot navigate through null/undefined at segment ${f}`)}let u=l[f+1],g=u.type==="index"||u.type==="slice"||u.type==="union"||u.type==="wildcard";if(o.type==="property"){if(Array.isArray(n)&&typeof typeof o.value=="number"){let p=o.value;if(p<0)throw new Error(`Negative index ${p} not allowed`);if(p>=n.length&&s)for(let A=n.length;A<=p;A++)n.push(void 0);(n[p]===null||n[p]===void 0)&&s&&(n[p]=g?[]:{}),n=n[p]}else(n[String(o.value)]===null||n[String(o.value)]===void 0)&&s&&(n[String(o.value)]=g?[]:{}),typeof n=="object"&&!Array.isArray(n)&&(n=n[String(o.value)]);if(u)continue;break}else if(o.type==="index"||o.type==="wildcard"){if(!Array.isArray(n)){if(!s)return e;n=[]}if(o.type==="index"){let p=o.value;if(p<0)throw new Error(`Negative index ${p} not allowed`);if(p>=n.length&&s)for(let A=n.length;A<=p;A++)n.push(void 0);(n[p]===null||n[p]===void 0)&&s&&(n[p]=g?[]:void 0),n=n[p]}if(u)continue;break}else throw new Error(`Invalid segment type for set: ${o.type}`)}switch(a.type){case"property":if(Array.isArray(n)&&typeof a.value=="number"){let o=a.value;if(o<0)throw new Error(`Negative index ${o} not allowed`);if(o>=n.length)for(let u=n.length;u<=o;u++)n.push(void 0);Array.isArray(t)?n[o]=b(structuredClone(n[o]),t[o],!0):n[o]=t}else if(n||(n={}),Array.isArray(n)){let o=r.split("."),u;if(o.length>=2){o.shift();for(let g=0;g<n.length;g++)Array.isArray(t)?(u=q(o.join("."),t[g]),n[g]=typeof n[g]=="object"?b(n[g],u,!0):u):(u=q(o.join("."),t),n[g]=typeof n[g]=="object"?b(n[g],u,!0):u)}else u={[String(a.value)]:t}}else Array.isArray(t)&&t.length===0?typeof n[String(a.value)]>"u"?n[String(a.value)]=[]:n[String(a.value)]=[]:n[String(a.value)]=t;break;case"index":case"wildcard":if(!Array.isArray(n))throw new Error("Cannot use index on non-array for final segment");let f=a.value;if(a.type==="index"){if(f<0)throw new Error(`Negative index ${f} not allowed`);if(f>=n.length)for(let o=n.length;o<=f;o++)n.push(void 0);if(Array.isArray(t))if(typeof n[f]==typeof t[f])try{n[f]=b($(n[f]),t[f],!0)}catch{throw Error("expected on array")}else n[f]=t;else n[f]=t}else if(a.type==="wildcard")if(Array.isArray(t))for(let o=0;o<n.length;o++)typeof n[o]=="object"?n[o]=b(n[o],t[o],!0):n[o]=t[o];else for(let o=0;o<n.length;o++)typeof n[o]=="object"?n[o]=b(n[o],t,!0):n[o]=t;break;default:throw new Error(`Invalid final segment type for set: ${a.type}`)}return e};var q=(e,r)=>{let t=F(e);if(t.length===0)return r;let i=r;for(let s=t.length-1;s>=0;s--){let l=t[s];if(l.type==="property")i={[String(l.value)]:i};else if(l.type==="index"){let a=parseInt(String(l.value)),n=[];n[a]=i,i=n}else l.type==="wildcard"?Array.isArray(i)?i=i:i=[i]:l.type==="slice"?Array.isArray(i)||(i=[i]):l.type==="union"?Array.isArray(i)||(i=[i]):l.type==="filter"?Array.isArray(i)||(i=[i]):l.type==="descendant"&&(i=i)}return i},be=(e,r,t={})=>V(e,r,{...t,preserveStructure:!1}),ie=(e,r,t={})=>{if(Array.isArray(r))return r.map(s=>ie(e,s,t));let i=V(e,r,{...t,preserveStructure:!1});return Array.isArray(i)?i.length>0?i.every(s=>s!==void 0):!1:i!==void 0},ae=(e,r,t={})=>{let{throwOnError:i=!1}=t;if(Array.isArray(r))return r.map(n=>ae(e,n,t));let s=F(r,{throwOnError:i});if(s.length===0)return!1;let l=s[s.length-1];if(s.some(n=>n.type==="wildcard"||n.type==="slice"||n.type==="union")){let n=W(e,r,t),f=!1;for(let o of n)ve(e,o)&&(f=!0);return f}let a=e;for(let n=0;n<s.length-1;n++){let f=s[n];if(a==null)return!1;switch(f.type){case"property":a=a[String(f.value)];break;case"index":if(!Array.isArray(a))return!1;let o=f.value;if(o<0||o>=a.length)return!1;a=a[o];break;default:return!1}}if(a==null)return!1;switch(l.type){case"property":if(String(l.value)in a)return delete a[String(l.value)],!0;break;case"index":if(!Array.isArray(a))return!1;let n=l.value;if(n>=0&&n<a.length)return a.splice(n,1),!0;break}return!1},ve=(e,r)=>{let t=F(r);if(t.length===0)return!1;let i=t[t.length-1],s=e;for(let l=0;l<t.length-1;l++){let a=t[l];if(s==null)return!1;switch(a.type){case"property":s=s[String(a.value)];break;case"index":if(!Array.isArray(s))return!1;let n=a.value;if(n<0||n>=s.length)return!1;s=s[n];break;default:return!1}}if(s==null)return!1;switch(i.type){case"property":if(String(i.value)in s)return delete s[String(i.value)],!0;break;case"index":if(!Array.isArray(s))return!1;let l=i.value;if(l>=0&&l<s.length)return s.splice(l,1),!0;break}return!1},W=(e,r,t={})=>{let{format:i="selector",maxDepth:s=20}=t;if(r&&Array.isArray(r)){let n=[];for(let f of r){let o=W(e,f,t);n.push(...o)}return n}if(r){let n=F(r,t);return O(e,n,0,s).map(o=>i==="selector"?o.path:o.stringPath)}let l=[],a=(n,f=[],o=[],u=0)=>{if(!(u>s)){if(f.length>0){let g=C(f);l.push({path:g,stringPath:o.join(".")})}if(n&&typeof n=="object")if(Array.isArray(n))for(let g=0;g<n.length;g++)a(n[g],[...f,{type:"index",value:g,raw:`[${g}]`}],[...o,`[${g}]`],u+1);else for(let g in n)n.hasOwnProperty(g)&&a(n[g],[...f,{type:"property",value:g,raw:g}],[...o,g],u+1)}};return a(e),l.map(n=>i==="selector"?n.path:n.stringPath)},we=(e,r)=>W(e).filter(i=>{let s=V(e,i);return r(i,s)}),oe=(e,r=".")=>{let t={},i=(s,l=[])=>{if(s==null)return;let a=w(s,l,0,20);if(a!==void 0){t[C(l)]=a;return}if(Array.isArray(s))for(let n=0;n<s.length;n++){let f=[...l,{type:"index",value:n,raw:`[${n}]`}];i(s[n],f)}else if(m(s)){for(let f in s)if(s.hasOwnProperty(f)){let o=[...l,{type:"property",value:f,raw:f}];i(s[f],o)}let n=Object.getOwnPropertySymbols(s);for(let f of n){let o=[...l,{type:"property",value:f.toString(),raw:f.toString()}];i(s[f],o)}}else{let n=C(l);t[n]=s}};return i(e),t},Oe=e=>{let r={};for(let t in e)L(r,t,e[t]);return r},Fe=(...e)=>{let r={};for(let t of e){if(!m(t))continue;let i=oe(t);for(let s in i)L(r,s,i[s])}return r};function O(e,r,t,i,s=[],l=[]){if(t>i)return[];if(r.length===0)return[{value:e,path:C(s),stringPath:l.join(".")}];let a=r[0],n=r.slice(1),f=[];if(a.type==="descendant"){if(f.push(...O(e,n,t+1,i,s,l)),e&&typeof e=="object")if(Array.isArray(e))for(let o=0;o<e.length;o++)f.push(...O(e[o],r,t+1,i,[...s,{type:"index",value:o,raw:`[${o}]`}],[...l,`[${o}]`]));else for(let o in e)e.hasOwnProperty(o)&&f.push(...O(e[o],r,t+1,i,[...s,{type:"property",value:o,raw:o}],[...l,o]));return f}switch(a.type){case"property":if(e&&typeof e=="object"&&String(a.value)in e){let o=e[String(a.value)];f.push(...O(o,n,t+1,i,[...s,a],[...l,String(a.value)]))}break;case"index":if(Array.isArray(e)){let o=a.value;o>=0&&o<e.length&&f.push(...O(e[o],n,t+1,i,[...s,a],[...l,`[${o}]`]))}else if(e&&typeof e=="object"){let o=String(a.value);o in e&&f.push(...O(e[o],n,t+1,i,[...s,{...a,type:"property"}],[...l,o]))}break;case"wildcard":if(e&&typeof e=="object")if(Array.isArray(e))for(let o=0;o<e.length;o++)f.push(...O(e[o],n,t+1,i,[...s,{type:"index",value:o,raw:`[${o}]`}],[...l,`[${o}]`]));else for(let o in e)e.hasOwnProperty(o)&&f.push(...O(e[o],n,t+1,i,[...s,{type:"property",value:o,raw:o}],[...l,o]));break;case"slice":if(Array.isArray(e)){let[o,u]=a.value,g=Math.max(0,o),p=Math.min(e.length,u===1/0?e.length:u);for(let A=g;A<p;A++)f.push(...O(e[A],n,t+1,i,[...s,{type:"index",value:A,raw:`[${A}]`}],[...l,`[${A}]`]))}break;case"union":if(Array.isArray(e)){let o=a.value;for(let u of o)u>=0&&u<e.length&&f.push(...O(e[u],n,t+1,i,[...s,{type:"index",value:u,raw:`[${u}]`}],[...l,`[${u}]`]))}break;case"filter":if(Array.isArray(e)){let o=a.value;for(let u=0;u<e.length;u++)o(e[u])&&f.push(...O(e[u],n,t+1,i,[...s,{type:"index",value:u,raw:`[${u}]`}],[...l,`[${u}]`]))}break}return f}var Ie=(e,r,t)=>{let i=V(e,r),s=t(i);return k(e,r,s)},le=(e,r)=>{let t=r(e);return b(e,t,!0)},Pe=(e,r)=>{let t=V(e,r);if(t!==void 0)return t===null?"null":Array.isArray(t)?"array":typeof t};
|
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
import type { AnyObject, ArrayFnParam, Callback, Compare, CompareWithProperty, DataParam, FilteredFnPropertyKey, Flattened, FnPropertyKey, Indices, IValueOfKey, KeyOf, ParamUpdateValue, PropertyOrArrayValue, PropertyValue, RangeCompare, SelectorFor, SelectorForIfIndices, SelectorOptions, SelectorSegment, SetterRange } from './types.js';
|
|
2
|
+
type A<T> = T extends AnyObject ? T : never;
|
|
3
|
+
/**
|
|
4
|
+
* Setter interface for advanced object manipulation
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
7
|
+
export interface SetterType<T> {
|
|
8
|
+
<K extends SelectorFor<A<T>> | (A<T> extends any[] ? Indices : never), V extends DataParam<A<T>, K> | (A<T> extends any[] ? SelectorForIfIndices<A<T>, K> : never)>(obj: A<T>, key: K, value?: V): any;
|
|
9
|
+
<K extends SelectorFor<A<T>> | (A<T> extends any[] ? Indices : never), I extends A<T> extends any[] ? K extends SelectorFor<A<T>> ? 'K' : SelectorForIfIndices<A<T>, 0> : Indices | Compare<A<T>, K> | RangeCompare | (K extends Indices ? SelectorFor<A<T>> : SelectorFor<Flattened<KeyOf<A<T>, K>>>[]), V extends PropertyOrArrayValue<A<T>, K, I extends Indices ? I : never> | Flattened<DataParam<A<T>, K, I>>>(obj: A<T>, key: K, index: I, value: V): any;
|
|
10
|
+
<K extends SelectorFor<A<T>> | (A<T> extends any[] ? Indices : never), I extends Indices | SelectorFor<Flattened<KeyOf<A<T>, K>>>[], P extends FnPropertyKey<A<T>, K> | PropertyValue<A<T>, K, I extends Indices ? I : never>, V extends PropertyOrArrayValue<A<T>, K, I extends Indices ? I : never, P> | CompareWithProperty<A<T>, K, P>>(obj: A<T>, key: K, indices: I, property: P, value: V): any;
|
|
11
|
+
<K extends SelectorFor<A<T>> | (A<T> extends any[] ? Indices : never), KK extends SelectorFor<Flattened<KeyOf<A<T>, K>>>[], P extends FilteredFnPropertyKey<A<T>, K, KK>, V extends PropertyValue<A<T>, K, never, P>>(obj: A<T>, key: K, stringKeys: KK, property: P, value: V): any;
|
|
12
|
+
<K extends SelectorFor<A<T>> | (A<T> extends any[] ? Indices : never), R extends RangeCompare | SelectorFor<Flattened<KeyOf<A<T>, K>>>[], P extends FnPropertyKey<A<T>, K>, V extends PropertyValue<A<T>, K, never, P>>(obj: A<T>, key: K, range: R, property: P, value: V): any;
|
|
13
|
+
}
|
|
14
|
+
type S<T, K> = SelectorFor<Flattened<Flattened<IValueOfKey<A<T>, K>>>>;
|
|
15
|
+
export interface SetterParamsType<T> {
|
|
16
|
+
<V extends ParamUpdateValue<T>>(value: V): any;
|
|
17
|
+
<K extends SelectorFor<A<T>> | (A<T> extends any[] ? Indices : never) | SelectorFor<Flattened<KeyOf<T, K>>>[], V extends DataParam<A<T>, K> | (A<T> extends any[] ? SelectorForIfIndices<A<T>, K> : never)>(key: K, value: V): any;
|
|
18
|
+
<K extends SelectorFor<A<T>> | (A<T> extends any[] ? Indices : never) | SelectorFor<Flattened<KeyOf<T, K>>>[], I extends A<T> extends any[] ? K extends SelectorFor<A<T>> ? S<A<T>, K>[] : SelectorForIfIndices<A<T>, 0> : Indices | Compare<A<T>, K> | RangeCompare | (K extends Indices ? SelectorFor<A<T>> : S<A<T>, K>[]), V extends PropertyOrArrayValue<A<T>, K, I extends Indices ? I : never> | (I extends S<A<T>, K>[] ? Flattened<ArrayFnParam<A<T>, K, I>> : Flattened<DataParam<A<T>, K, I>>)>(key: K, index: I, value: V): any;
|
|
19
|
+
<K extends SelectorFor<A<T>> | (A<T> extends any[] ? Indices : never) | SelectorFor<Flattened<KeyOf<T, K>>>[], I extends Indices | S<A<T>, K>[], P extends FnPropertyKey<A<T>, K> | PropertyValue<A<T>, K, I extends Indices ? I : never>, V extends PropertyOrArrayValue<A<T>, K, I extends Indices ? I : never, P> | CompareWithProperty<A<T>, K, P>>(key: K, indices: I, property: P, value: V): any;
|
|
20
|
+
<K extends SelectorFor<A<T>> | (A<T> extends any[] ? Indices : never) | S<A<T>, K>[], KK extends S<A<T>, K>[], P extends FilteredFnPropertyKey<A<T>, K, KK>, V extends PropertyValue<A<T>, K, never, P>>(key: K, stringKeys: KK, property: P, value: V): any;
|
|
21
|
+
<K extends SelectorFor<A<T>> | (A<T> extends any[] ? Indices : never) | S<A<T>, K>[], R extends RangeCompare | SelectorFor<Flattened<KeyOf<A<T>, K>>>[], P extends FnPropertyKey<A<T>, K>, V extends PropertyValue<A<T>, K, never, P>>(key: K, range: R, property: P, value: V): any;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Gets values from an object while preserving structure
|
|
25
|
+
* @param obj - Source object
|
|
26
|
+
* @param selector - Selector string or array
|
|
27
|
+
* @param options - Selector options
|
|
28
|
+
* @returns Structured object with selected paths
|
|
29
|
+
* @example
|
|
30
|
+
* get({users: [{name: 'Alice'}, {name: 'Bob'}]}, 'users[*].name')
|
|
31
|
+
* // Returns: {users: [{name: 'Alice'}, {name: 'Bob'}]}
|
|
32
|
+
*
|
|
33
|
+
* get({a: {b: 1}, c: {b: 2}}, ['a.b', 'c.b'])
|
|
34
|
+
* // Returns: {a: {b: 1}, c: {b: 2}}
|
|
35
|
+
*/
|
|
36
|
+
export declare function get<T extends AnyObject, S extends SelectorFor<T>>(obj: T, selector?: S, options?: SelectorOptions & {
|
|
37
|
+
preserveStructure?: boolean;
|
|
38
|
+
multiple?: boolean;
|
|
39
|
+
}): T | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Enhanced setter method with multiple patterns
|
|
42
|
+
* @param obj - Target object
|
|
43
|
+
* @param params - Parameters for setting values
|
|
44
|
+
* @returns Modified object
|
|
45
|
+
* @example
|
|
46
|
+
* // Pattern 1: Simple value set
|
|
47
|
+
* set(obj, 'users[0].name', 'Alice')
|
|
48
|
+
*
|
|
49
|
+
* // Pattern 2: Update function
|
|
50
|
+
* set(obj, 'count', prev => prev + 1)
|
|
51
|
+
*
|
|
52
|
+
* // Pattern 3: Index with value
|
|
53
|
+
* set(obj, 'users', 0, {name: 'Alice'})
|
|
54
|
+
*
|
|
55
|
+
* // Pattern 4: Index with sub-path
|
|
56
|
+
* set(obj, 'users', 0, 'name', 'Alice')
|
|
57
|
+
*
|
|
58
|
+
* // Pattern 5: Multiple indices
|
|
59
|
+
* set(obj, 'users', [0, 2, 4], 'active', true)
|
|
60
|
+
*
|
|
61
|
+
* // Pattern 6: Multiple keys
|
|
62
|
+
* set(obj, 'settings', ['theme', 'language'], 'dark')
|
|
63
|
+
*
|
|
64
|
+
* // Pattern 7: Range
|
|
65
|
+
* set(obj, 'users', {from: 0, to: 5, by: 2}, 'active', false)
|
|
66
|
+
*
|
|
67
|
+
* // Pattern 8: Filter function
|
|
68
|
+
* set(obj, 'users', user => user.age > 18, 'eligible', true)
|
|
69
|
+
*
|
|
70
|
+
* // Pattern 9: Update object
|
|
71
|
+
* set(obj, {users: [{name: 'Alice'}], count: 1})
|
|
72
|
+
*
|
|
73
|
+
* // Pattern 10: Multiple selectors
|
|
74
|
+
* set(obj, ['users[0].name', 'users[1].name'], ['Alice', 'Bob'])
|
|
75
|
+
*/
|
|
76
|
+
export declare function set<T extends AnyObject, K extends SelectorFor<T> | (T extends any[] ? Indices : never), V extends DataParam<T, K> | (T extends any[] ? SelectorForIfIndices<T, K> : never)>(obj: T, key: K, value?: V): any;
|
|
77
|
+
export declare function set<T extends AnyObject, K extends SelectorFor<T> | (T extends any[] ? Indices : never), I extends T extends any[] ? K extends SelectorFor<T> ? 'K' : SelectorForIfIndices<T, 0> : Indices | Compare<T, K> | RangeCompare | (K extends Indices ? SelectorFor<T> : SelectorFor<Flattened<KeyOf<T, K>>>[]), V extends PropertyOrArrayValue<T, K, I extends Indices ? I : never> | Flattened<DataParam<T, K, I>>>(obj: T, key: K, index: I, value: V): any;
|
|
78
|
+
export declare function set<T extends AnyObject, K extends SelectorFor<T> | (T extends any[] ? Indices : never), I extends Indices | SelectorFor<Flattened<KeyOf<T, K>>>[], P extends FnPropertyKey<T, K> | PropertyValue<T, K, I extends Indices ? I : never>, V extends PropertyOrArrayValue<T, K, I extends Indices ? I : never, P> | CompareWithProperty<T, K, P>>(obj: T, key: K, indices: I, property: P, value: V): any;
|
|
79
|
+
export declare function set<T extends AnyObject, K extends SelectorFor<T> | (T extends any[] ? Indices : never), KK extends SelectorFor<Flattened<KeyOf<T, K>>>[], P extends FilteredFnPropertyKey<T, K, KK>, V extends PropertyValue<T, K, never, P>>(obj: T, key: K, stringKeys: KK, property: P, value: V): any;
|
|
80
|
+
export declare function set<T extends AnyObject, K extends SelectorFor<T> | (T extends any[] ? Indices : never), R extends RangeCompare | SelectorFor<Flattened<KeyOf<T, K>>>[], P extends FnPropertyKey<T, K>, V extends PropertyValue<T, K, never, P>>(obj: T, key: K, range: R, property: P, value: V): any;
|
|
81
|
+
export declare function set<T extends AnyObject, K extends SelectorFor<T> | (T extends any[] ? Indices : never), Fn extends Compare<T, K> | Indices, P extends FnPropertyKey<T, K>, V extends PropertyValue<T, K, never, P>>(obj: T, key: K, filterFn: Fn, property: P, value: V): any;
|
|
82
|
+
/**
|
|
83
|
+
* utility function to check if an object is a range object
|
|
84
|
+
* @param obj - The Object to check
|
|
85
|
+
* @example
|
|
86
|
+
* isRangeObject({ from: 0, to: 10 }); // true
|
|
87
|
+
* isRangeObject({ from: 0, to: 10, by: 1 }); // true
|
|
88
|
+
* isRangeObject({ from: 0, to: 10, by: '1' }); // true
|
|
89
|
+
* isRangeObject({ by: 2 }); // false
|
|
90
|
+
*/
|
|
91
|
+
export declare function isRangeObject(obj: any): obj is SetterRange;
|
|
92
|
+
/**
|
|
93
|
+
* Sets a value at a path
|
|
94
|
+
* @param obj - The Object to set the value at
|
|
95
|
+
* @param selector - The path to set the value at
|
|
96
|
+
* @param value - The value to set
|
|
97
|
+
* @param subPath - The subpath to set the value at
|
|
98
|
+
* @returns The updated object
|
|
99
|
+
* @example
|
|
100
|
+
* setValueAtPath({ a: { b: { c: 1 } } }, 'a.b.c', 2); // { a: { b: { c: 2 } } }
|
|
101
|
+
* setValueAtPath({ a: { b: { c: 1 } } }, 'a.b.c', (prev) => prev + 1); // { a: { b: { c: 2 } } }
|
|
102
|
+
* setValueAtPath({ a: { b: { c: 1 } } }, 'a.b.c', 2, 'd'); // { a: { b: { c: { d: 2 } } } }
|
|
103
|
+
* setValueAtPath({ a: { b: { c: 1 } } }, 'a.b.c', (prev) => prev + 1, 'd'); // { a: { b: { c: { d: 2 } } } }
|
|
104
|
+
*/
|
|
105
|
+
export declare function setValueAtPath<T extends AnyObject | any[], K extends SelectorFor<T> = SelectorFor<T>>(obj: T, selector: K, value: IValueOfKey<T, K> | ((prev: IValueOfKey<T, K>) => IValueOfKey<T, K>), subPath?: string): T;
|
|
106
|
+
/**
|
|
107
|
+
* Sets value at index
|
|
108
|
+
* @param obj - The Object to set the value at
|
|
109
|
+
* @param selector - The path to set the value at
|
|
110
|
+
* @param index - The index to set the value at
|
|
111
|
+
* @param value - The value to set
|
|
112
|
+
* @returns The updated object
|
|
113
|
+
* @example
|
|
114
|
+
* setValueAtIndex({ a: { b: [1, 2, 3] } }, 'a.b', 1, 4); // { a: { b: [1, 4, 3] } }
|
|
115
|
+
* setValueAtIndex({ a: { b: [1, 2, 3] } }, 'a.b', 1, (prev) => prev + 1); // { a: { b: [1, 3, 3] } }
|
|
116
|
+
* setValueAtIndex({ a: { b: [1, 2, 3] } }, 'a.b', 1, (prev) => prev + 1); // { a: { b: [1, 3, 3] } }
|
|
117
|
+
*/
|
|
118
|
+
export declare function setValueAtIndex<T extends AnyObject | any[], K extends SelectorFor<T> = SelectorFor<T>>(obj: T, selector: K, index: number, value: IValueOfKey<T, K> extends (infer U)[] ? U | Partial<U> | ((prev: U) => U | Partial<U>) : any): T;
|
|
119
|
+
/**
|
|
120
|
+
* Sets value in a range
|
|
121
|
+
* @param obj - The object to set the value on
|
|
122
|
+
* @param selector - The selector to set the value at
|
|
123
|
+
* @param range - The range to set the value in
|
|
124
|
+
* @param value - The value to set
|
|
125
|
+
* @example
|
|
126
|
+
* const obj = { a: [1, 2, 3] };
|
|
127
|
+
* setValueBetweenRange(obj, 'a', { from: 1, to: 2 }, 4);
|
|
128
|
+
* console.log(obj); // { a: [1, 4, 4] }
|
|
129
|
+
*/
|
|
130
|
+
export declare function setValueBetweenRange<T extends AnyObject | any[], K extends SelectorFor<T> = SelectorFor<T>>(obj: T, selector: K, range: SetterRange, value: IValueOfKey<T, K> extends (infer U)[] ? U | Partial<U> | ((prev: U) => U | Partial<U>) : any): T;
|
|
131
|
+
/**
|
|
132
|
+
* Sets value in a range with sub-path
|
|
133
|
+
* @param obj - The object to set the value on
|
|
134
|
+
* @param selector - The selector to set the value at
|
|
135
|
+
* @param range - The range to set the value in
|
|
136
|
+
* @param subPath - The sub-path to set the value at
|
|
137
|
+
* @param value - The value to set
|
|
138
|
+
* @example
|
|
139
|
+
* const obj = { a: [1, 2, 3] };
|
|
140
|
+
* setValueBetweenRangeWithSubPath(obj, 'a', { from: 1, to: 2 }, 'b', 4);
|
|
141
|
+
* console.log(obj); // { a: [1, { b: 4 }, { b: 4 }] }
|
|
142
|
+
*/
|
|
143
|
+
export declare const setValueBetweenRangeWithSubPath: <T extends AnyObject | any[], K extends SelectorFor<T> = SelectorFor<T>>(obj: T, selector: K, range: SetterRange, subPath: string, value: any) => T;
|
|
144
|
+
/**
|
|
145
|
+
* Casts properties to a given type
|
|
146
|
+
*/
|
|
147
|
+
export declare function castProps<T>(arr: any, props: any): T;
|
|
148
|
+
/**
|
|
149
|
+
* Sets value for filtered items
|
|
150
|
+
* @param obj - The object to modify.
|
|
151
|
+
* @param selector - The selector for the property to modify.
|
|
152
|
+
* @param filterFn - The filter function to apply to the items.
|
|
153
|
+
* @param value - The value to set for the filtered items.
|
|
154
|
+
* @example
|
|
155
|
+
* const arr = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }];
|
|
156
|
+
* setValueWithFilter(arr, 'id', id => id === 1, { name: 'John Doe' });
|
|
157
|
+
* console.log(arr); // [{ id: 1, name: 'John Doe' }, { id: 2, name: 'Jane' }]
|
|
158
|
+
*/
|
|
159
|
+
export declare function setValueWithFilter<T extends AnyObject | any[], K extends SelectorFor<T> = SelectorFor<T>>(obj: T, selector: 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): T;
|
|
160
|
+
export declare function setArrayValueWithFilter<T extends AnyObject | any[], K extends SelectorFor<T> = SelectorFor<T>>(obj: T, filterFn: (item: IValueOfKey<T, K> extends (infer U)[] ? U : any, index: number) => boolean, selector: K, value: IValueOfKey<T, K> extends (infer U)[] ? U | Partial<U> | ((prev: U) => U | Partial<U>) : any): T;
|
|
161
|
+
/**
|
|
162
|
+
* Sets value for filtered items with sub-path
|
|
163
|
+
* @param obj - The object to modify.
|
|
164
|
+
* @param selector - The selector for the property to modify.
|
|
165
|
+
* @param filterFn - The filter function to apply to the items.
|
|
166
|
+
* @param subPath - The sub-path to modify.
|
|
167
|
+
* @param value - The value to set for the filtered items.
|
|
168
|
+
* @example
|
|
169
|
+
* const arr = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }];
|
|
170
|
+
* setValueWithFilterWithSubPath(arr, 'id', id => id === 1, 'name', 'John Doe');
|
|
171
|
+
* console.log(arr); // [{ id: 1, name: 'John Doe' }, { id: 2, name: 'Jane' }]
|
|
172
|
+
*/
|
|
173
|
+
export declare function setValueWithFilterWithSubPath<T extends AnyObject | any[], K extends SelectorFor<T> = SelectorFor<T>>(obj: T, selector: K, filterFn: (item: IValueOfKey<T, K> extends (infer U)[] ? U : any, index: number) => boolean, subPath: string, value: any): T;
|
|
174
|
+
/**
|
|
175
|
+
* Merge update object at path
|
|
176
|
+
* @param obj - The object to update
|
|
177
|
+
* @param selector - The path to the object to update
|
|
178
|
+
* @param updates - The object to merge with the existing object
|
|
179
|
+
* @example
|
|
180
|
+
* const obj = { a: { b: { c: 1 } } };
|
|
181
|
+
* mergeUpdateAtPath(obj, 'a.b', { c: 2 });
|
|
182
|
+
* console.log(obj); // { a: { b: { c: 2 } } }
|
|
183
|
+
*/
|
|
184
|
+
export declare function mergeUpdateAtPath<T extends AnyObject | any[], K extends SelectorFor<T> = SelectorFor<T>>(obj: T, selector: K, updates: IValueOfKey<T, K> extends AnyObject ? Partial<IValueOfKey<T, K>> : any): T;
|
|
185
|
+
/**
|
|
186
|
+
* Set with array selectors
|
|
187
|
+
* @param obj - The object to update
|
|
188
|
+
* @param selectors - The array of paths to update
|
|
189
|
+
* @param value - The value to set for each path
|
|
190
|
+
* @example
|
|
191
|
+
* const obj = { a: { b: { c: 1 } } };
|
|
192
|
+
* setValueWithArraySelectors(obj, ['a.b', 'a.c'], { d: 2 });
|
|
193
|
+
* console.log(obj); // { a: { b: { d: 2 }, c: { d: 2 } } }
|
|
194
|
+
*/
|
|
195
|
+
export declare function setValueWithArraySelectors<T extends AnyObject | any[]>(obj: T, selectors: string[], value: any): T;
|
|
196
|
+
/**
|
|
197
|
+
* Gets value at path with createMissing option
|
|
198
|
+
* @param obj - The object to get the value from.
|
|
199
|
+
* @param selector - The path to the value.
|
|
200
|
+
* @param options - Options for the operation.
|
|
201
|
+
* @returns The value at the path.
|
|
202
|
+
* @example
|
|
203
|
+
* const a = { b: { c: 1 } };
|
|
204
|
+
* ValueOfKey(a, 'b.c', { createMissing: true });
|
|
205
|
+
* console.log(a); // 1
|
|
206
|
+
*/
|
|
207
|
+
export declare function ValueOfKey<T extends AnyObject | any[], K extends SelectorFor<T> | string>(obj: T, selector: K, options?: {
|
|
208
|
+
createMissing?: boolean;
|
|
209
|
+
type?: 'array';
|
|
210
|
+
add?: boolean;
|
|
211
|
+
debug?: boolean;
|
|
212
|
+
}): any;
|
|
213
|
+
/**
|
|
214
|
+
* Sets value at path (internal)
|
|
215
|
+
*/
|
|
216
|
+
export declare const setAtPath: <T extends AnyObject | any[], K extends string = string>(obj: T, selector: K, value: any, options?: {
|
|
217
|
+
createMissing?: boolean;
|
|
218
|
+
}) => T;
|
|
219
|
+
/**
|
|
220
|
+
* Creates a nested object structure from a path string
|
|
221
|
+
*
|
|
222
|
+
* This function generates an object hierarchy based on a path selector and assigns
|
|
223
|
+
* a value at the deepest level. It builds the structure from the inside out,
|
|
224
|
+
* handling properties, array indices, wildcards, and other selector types.
|
|
225
|
+
*
|
|
226
|
+
* @template T - The expected return type
|
|
227
|
+
* @param path - The path string describing the structure to create
|
|
228
|
+
* @param value - The value to place at the end of the path (optional)
|
|
229
|
+
* @returns The generated object/array structure, or undefined if no segments
|
|
230
|
+
*
|
|
231
|
+
* @example
|
|
232
|
+
* // Simple nested object
|
|
233
|
+
* fromPath('user.profile.name', 'John')
|
|
234
|
+
* // Returns: { user: { profile: { name: 'John' } } }
|
|
235
|
+
*
|
|
236
|
+
* @example
|
|
237
|
+
* // Array with specific index
|
|
238
|
+
* fromPath('users[0].name', 'Alice')
|
|
239
|
+
* // Returns: { users: [{ name: 'Alice' }] }
|
|
240
|
+
*
|
|
241
|
+
* @example
|
|
242
|
+
* // Array with wildcard
|
|
243
|
+
* fromPath('items[*].active', true)
|
|
244
|
+
* // Returns: { items: [true] }
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* // Deep nested with arrays
|
|
248
|
+
* fromPath('company.departments[2].manager.name', 'Bob')
|
|
249
|
+
* // Returns: { company: { departments: [undefined, undefined, { manager: { name: 'Bob' } }] } }
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* // Single property
|
|
253
|
+
* fromPath('count', 42)
|
|
254
|
+
* // Returns: { count: 42 }
|
|
255
|
+
*/
|
|
256
|
+
export declare const fromPath: <T extends AnyObject>(path: string, value?: any) => T | T[] | (T | T[])[] | undefined;
|
|
257
|
+
/**
|
|
258
|
+
* Selects values from an object (legacy method, uses get internally)
|
|
259
|
+
* @deprecated Use get() instead
|
|
260
|
+
*/
|
|
261
|
+
export declare const select: <T extends AnyObject, S extends SelectorFor<T>>(obj: T, selector: S, options?: SelectorOptions) => T | T[] | (T | T[])[] | undefined;
|
|
262
|
+
/**
|
|
263
|
+
* Checks if a selector matches any value in object
|
|
264
|
+
* @param obj - Source object
|
|
265
|
+
* @param selector - Selector string or array
|
|
266
|
+
* @param options - Selector options
|
|
267
|
+
* @returns True if selector matches at least one value (or array of booleans for array selector)
|
|
268
|
+
*/
|
|
269
|
+
export declare const has: <T extends AnyObject, S extends SelectorFor<T>, O extends SelectorOptions>(obj: T, selector: S, options?: O) => boolean | boolean[];
|
|
270
|
+
/**
|
|
271
|
+
* Deletes values from object using selector
|
|
272
|
+
* @param obj - Target object
|
|
273
|
+
* @param selector - Selector string or array
|
|
274
|
+
* @param options - Selector options
|
|
275
|
+
* @returns True if any values were deleted (or array of booleans for array selector)
|
|
276
|
+
*/
|
|
277
|
+
export declare const deletePath: <T extends AnyObject, S extends SelectorFor<T>, O extends SelectorOptions>(obj: T, selector: S, options?: O) => boolean | boolean[];
|
|
278
|
+
/**
|
|
279
|
+
* Gets all matching paths from an object
|
|
280
|
+
* @param obj - Source object
|
|
281
|
+
* @param selector - Selector string or array (optional, if not provided returns all paths)
|
|
282
|
+
* @param options - Selector options
|
|
283
|
+
* @returns Array of path strings
|
|
284
|
+
*/
|
|
285
|
+
export declare const getPaths: <T extends AnyObject, S extends SelectorFor<T>, O extends SelectorOptions & {
|
|
286
|
+
format?: "selector" | "string";
|
|
287
|
+
}>(obj: T, selector?: S, options?: O) => SelectorFor<T>[];
|
|
288
|
+
/**
|
|
289
|
+
* Finds all paths that match a predicate
|
|
290
|
+
* @param obj - Source object
|
|
291
|
+
* @param predicate - Function to test each path/value pair
|
|
292
|
+
* @returns Array of matching path strings
|
|
293
|
+
* @example
|
|
294
|
+
* findPaths({a: 1, b: {c: 2}}, (path, value) => value === 2) // ['b.c']
|
|
295
|
+
*/
|
|
296
|
+
export declare const findPaths: <T extends AnyObject, P extends <P_1 extends SelectorFor<T>, V extends IValueOfKey<T, P_1>>(path: P_1, value: V) => boolean>(obj: T, predicate: P) => string[];
|
|
297
|
+
/**
|
|
298
|
+
* Flattens an object with array notation in keys
|
|
299
|
+
* @param obj - Source object
|
|
300
|
+
* @param separator - Separator for nested keys (default: '.')
|
|
301
|
+
* @returns Flattened object with array notation
|
|
302
|
+
* @example
|
|
303
|
+
* flattenWithArrays({a: [{b: 1}, {b: 2}]}) // {'a[0].b': 1, 'a[1].b': 2}
|
|
304
|
+
*/
|
|
305
|
+
export declare const flattenWithArrays: (obj: AnyObject, separator?: string) => AnyObject;
|
|
306
|
+
/**
|
|
307
|
+
* Unflattens an object with array notation in keys
|
|
308
|
+
* @param obj - Source object
|
|
309
|
+
* @returns Unflattened object
|
|
310
|
+
* @example
|
|
311
|
+
* unflattenWithArrays({'a[0].b': 1, 'a[1].b': 2}) // {a: [{b: 1}, {b: 2}]}
|
|
312
|
+
*/
|
|
313
|
+
export declare const unflattenWithArrays: (obj: AnyObject) => AnyObject;
|
|
314
|
+
/**
|
|
315
|
+
* Merges objects with array notation support for paths
|
|
316
|
+
* @param objects - Objects to merge
|
|
317
|
+
* @returns Merged object
|
|
318
|
+
*/
|
|
319
|
+
export declare const deepMergeWithArrays: <T extends AnyObject[]>(...objects: T) => AnyObject;
|
|
320
|
+
/**
|
|
321
|
+
* Traverse with path tracking
|
|
322
|
+
* @param current - Current value
|
|
323
|
+
* @param segments - Selector segments
|
|
324
|
+
* @param depth - Current depth
|
|
325
|
+
* @param maxDepth - Maximum depth
|
|
326
|
+
* @param currentPath - Current path array
|
|
327
|
+
* @param currentStringPath - Current string path array
|
|
328
|
+
* @returns Array of values with paths
|
|
329
|
+
* @example
|
|
330
|
+
* traverseWithPaths({ a: { b: 1 } }, ['a', 'b'], 0, 2);
|
|
331
|
+
* // [{ value: 1, path: 'a.b', stringPath: 'a.b' }]
|
|
332
|
+
*/
|
|
333
|
+
export declare function traverseWithPaths(current: any, segments: SelectorSegment[], depth: number, maxDepth: number, currentPath?: SelectorSegment[], currentStringPath?: string[]): Array<{
|
|
334
|
+
value: any;
|
|
335
|
+
path: string;
|
|
336
|
+
stringPath: string;
|
|
337
|
+
}>;
|
|
338
|
+
/**
|
|
339
|
+
* Updates a value at a path using a transformation function
|
|
340
|
+
* @param obj - Target object
|
|
341
|
+
* @param path - Path string
|
|
342
|
+
* @param updater - Function to transform the current value
|
|
343
|
+
* @returns Modified object
|
|
344
|
+
* @example
|
|
345
|
+
* update({a: {b: 1}}, 'a.b', (val) => val + 1) // {a: {b: 2}}
|
|
346
|
+
* update({items: [{count: 1}]}, 'items[0].count', (count) => count * 2) // {items: [{count: 2}]}
|
|
347
|
+
*/
|
|
348
|
+
export declare const update: <T extends AnyObject, K extends SelectorFor<T>>(obj: T, path: K, updater: Callback<IValueOfKey<T, K>>) => T;
|
|
349
|
+
export declare const updateWithCallBack: <T extends AnyObject, K extends SelectorFor<T>>(obj: T, updater: Callback<T>) => T;
|
|
350
|
+
/**
|
|
351
|
+
* Gets the type of value at a path
|
|
352
|
+
* @param obj - Source object
|
|
353
|
+
* @param path - Path string
|
|
354
|
+
* @returns Type string or undefined
|
|
355
|
+
* @example
|
|
356
|
+
* getTypeAtPath({a: [{b: 1}]}, 'a[0].b') // 'number'
|
|
357
|
+
* getTypeAtPath({a: null}, 'a.b') // undefined
|
|
358
|
+
*/
|
|
359
|
+
export declare const getTypeAtPath: (obj: AnyObject, path: string) => string | undefined;
|
|
360
|
+
export {};
|
|
361
|
+
//# sourceMappingURL=getter-setter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getter-setter.d.ts","sourceRoot":"","sources":["../../../src/lib/object/getter-setter.ts"],"names":[],"mappings":"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"}
|