@visulima/object 3.0.0-alpha.14 → 3.0.0-alpha.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## @visulima/object [3.0.0-alpha.15](https://github.com/visulima/visulima/compare/@visulima/object@3.0.0-alpha.14...@visulima/object@3.0.0-alpha.15) (2026-06-04)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **object:** 1 bug fix + 1 perf ([d317d30](https://github.com/visulima/visulima/commit/d317d30cf89629f3a2cea5a1f7a6e9b3967c86d4))
6
+
7
+ ### Miscellaneous Chores
8
+
9
+ * apply eslint + prettier autofixes across packages ([c1bb784](https://github.com/visulima/visulima/commit/c1bb7848a0d93d0dfe2960c77e3cda22239c79a0))
10
+
11
+ ### Tests
12
+
13
+ * **object:** cover recursive pick/omit non-plain-object and empty-keys branches ([79c3498](https://github.com/visulima/visulima/commit/79c34986008e0633e61a4be39dc18c2b02589e3d))
14
+
1
15
  ## @visulima/object [3.0.0-alpha.14](https://github.com/visulima/visulima/compare/@visulima/object@3.0.0-alpha.13...@visulima/object@3.0.0-alpha.14) (2026-05-27)
2
16
 
3
17
  ### Bug Fixes
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export { type OmitDeep, type Paths, type PickDeep, type Split } from 'type-fest'
8
8
  * @param keys the prop names you want to omit
9
9
  * @returns a new object without the omitted props
10
10
  */
11
- declare const omit: <T extends { [key in string]: unknown }, K extends string>(object: T, keys: Paths<T>[]) => OmitDeep<T, K>;
11
+ declare const omit: <T extends { [key in string]: unknown }, const K extends Paths<T>>(object: T, keys: K[]) => OmitDeep<T, K>;
12
12
  /**
13
13
  * Pick returns a new object with only the props you pick.
14
14
  * @template T
@@ -17,7 +17,7 @@ declare const omit: <T extends { [key in string]: unknown }, K extends string>(o
17
17
  * @param keys an array of prop names you want to keep - allows dot-notation for nested props, eg. `nested.prop` will keep just `{ nested: { prop: 1 } }`
18
18
  * @returns a new object with just the picked props
19
19
  */
20
- declare const pick: <T extends { [key in string]: unknown }, K extends Paths<T>>(object: T, keys: Paths<T>[]) => PickDeep<T, K>;
20
+ declare const pick: <T extends { [key in string]: unknown }, const K extends Paths<T>>(object: T, keys: K[]) => PickDeep<T, K>;
21
21
  /**
22
22
  * Determines whether a value is a plain object (i.e. created from `{}` or `Object.create(null)`).
23
23
  * @param value Value to inspect.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var T=Object.defineProperty;var a=(t,c)=>T(t,"name",{value:c,configurable:!0});import{default as $}from"./packem_shared/omit-CFZMq4XQ.js";import{default as te}from"./packem_shared/pick-gi5xtds4.js";import{default as ne}from"./packem_shared/isPlainObject-CKRRjQp3.js";import{deleteProperty as oe,escapePath as se,getProperty as ue,hasProperty as ce,setProperty as ie}from"./packem_shared/getProperty-DPNB_aKG.js";var W=Object.defineProperty,j=a((t,c)=>W(t,"name",{value:c,configurable:!0}),"t");function B(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}a(B,"getDefaultExportFromCjs");j(B,"getDefaultExportFromCjs");function C(t){return t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}a(C,"getDefaultExportFromNamespaceIfPresent");j(C,"getDefaultExportFromNamespaceIfPresent");function U(t){return t&&Object.prototype.hasOwnProperty.call(t,"default")&&Object.keys(t).length===1?t.default:t}a(U,"getDefaultExportFromNamespaceIfNotNamed");j(U,"getDefaultExportFromNamespaceIfNotNamed");function z(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var c=t.default;if(typeof c=="function"){var u=j(a(function p(){var y=!1;try{y=this instanceof p}catch{}return y?Reflect.construct(c,arguments,this.constructor):c.apply(this,arguments)},"a"),"a");u.prototype=c.prototype}else u={};return Object.defineProperty(u,"__esModule",{value:!0}),Object.keys(t).forEach(function(p){var y=Object.getOwnPropertyDescriptor(t,p);Object.defineProperty(u,p,y.get?y:{enumerable:!0,get:j(function(){return t[p]},"get")})}),u}a(z,"getAugmentedNamespace");j(z,"getAugmentedNamespace");var l={},b={},S;function G(){if(S)return b;S=1;var t=Object.defineProperty,c=a((f,D)=>t(f,"name",{value:D,configurable:!0}),"t");Object.defineProperty(b,"__esModule",{value:!0}),b.isDocumentToRecurOn=b.flatten=b.unique=void 0;function u(f){return[...new Set(f)]}a(u,"unique"),c(u,"unique"),b.unique=u;function p(f){return[].concat(...f)}a(p,"flatten"),c(p,"flatten"),b.flatten=p;function y(f){return typeof f=="object"&&f!==null&&!Array.isArray(f)&&Object.keys(f).length}return a(y,"isDocumentToRecurOn"),c(y,"isDocumentToRecurOn"),b.isDocumentToRecurOn=y,b}a(G,"requireUtils");var E={},I;function H(){return I||(I=1,Object.defineProperty(E,"__esModule",{value:!0})),E}a(H,"requireTypes");var R;function J(){return R||(R=1,(function(t){var c=Object.defineProperty,u=a((e,r)=>c(e,"name",{value:r,configurable:!0}),"u"),p=l&&l.__createBinding||(Object.create?(function(e,r,n,o){o===void 0&&(o=n);var s=Object.getOwnPropertyDescriptor(r,n);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:u(function(){return r[n]},"get")}),Object.defineProperty(e,o,s)}):(function(e,r,n,o){o===void 0&&(o=n),e[o]=r[n]})),y=l&&l.__setModuleDefault||(Object.create?(function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}):function(e,r){e.default=r}),f=l&&l.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&p(r,e,n);return y(r,e),r},D=l&&l.__exportStar||function(e,r){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(r,n)&&p(r,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.deepKeysFromList=t.deepKeys=void 0;const v=f(G());D(H(),t);function q(e,r){const n=N(r);return typeof e=="object"&&e!==null?k("",e,n,new WeakSet):[]}a(q,"deepKeys"),u(q,"deepKeys"),t.deepKeys=q;function K(e,r,n){const o=N(r),s=n??new WeakSet;return e.map(d=>typeof d=="object"&&d!==null?s.has(d)?[]:k("",d,o,s):[])}a(K,"deepKeysFromList"),u(K,"deepKeysFromList"),t.deepKeysFromList=K;function k(e,r,n,o){const s=[],d=Object.keys(r);o.add(r);const m=[{obj:r,keys:d,i:0,basePath:e}];for(;m.length;){const O=m[m.length-1];if(O.i>=O.keys.length){m.pop();continue}const F=O.keys[O.i++],i=O.obj[F],P=_(O.basePath,x(F,n));if(n.expandNestedObjects&&v.isDocumentToRecurOn(i)||n.arrayIndexesAsKeys&&Array.isArray(i)&&i.length)if(n.arrayIndexesAsKeys&&Array.isArray(i)){const A=i;for(let h=A.length-1;h>=0;h--){const g=A[h],M=_(P,String(h));typeof g=="object"&&g!==null&&!Array.isArray(g)?o.has(g)||(o.add(g),m.push({obj:g,keys:Object.keys(g),i:0,basePath:M})):s.push(M)}}else o.has(i)||(o.add(i),m.push({obj:i,keys:Object.keys(i),i:0,basePath:P}));else if(n.expandArrayObjects&&Array.isArray(i)){const A=w(i,P,n,o);for(const h of A)s.push(h)}else{if(n.ignoreEmptyArrays&&Array.isArray(i)&&!i.length)continue;s.push(P)}}return v.unique(s)}a(k,"generateDeepKeysList"),u(k,"generateDeepKeysList");function w(e,r,n,o){let s=K(e,n,o);return e.length?e.length&&v.flatten(s).length===0?[r]:(s=s.map(d=>Array.isArray(d)&&d.length===0?[r]:d.map(m=>_(r,x(m,n)))),v.unique(v.flatten(s))):n.ignoreEmptyArraysWhenExpanding?[]:[r]}a(w,"processArrayKeys"),u(w,"processArrayKeys");function x(e,r){return r.escapeNestedDots?e.replace(/\./g,"\\."):e}a(x,"escapeNestedDotsIfSpecified"),u(x,"escapeNestedDotsIfSpecified");function _(e,r){return e?e+"."+r:r}a(_,"buildKeyName"),u(_,"buildKeyName");function N(e){return{arrayIndexesAsKeys:!1,expandNestedObjects:!0,expandArrayObjects:!1,ignoreEmptyArraysWhenExpanding:!1,escapeNestedDots:!1,ignoreEmptyArrays:!1,...e??{}}}a(N,"mergeOptions"),u(N,"mergeOptions")})(l)),l}a(J,"requireDeeks");var L=J();const V=L.deepKeys,X=L.deepKeysFromList;export{V as deepKeys,X as deepKeysFromList,oe as deleteProperty,se as escapePath,ue as getProperty,ce as hasProperty,ne as isPlainObject,$ as omit,te as pick,ie as setProperty};
1
+ var T=Object.defineProperty;var a=(t,c)=>T(t,"name",{value:c,configurable:!0});import{default as $}from"./packem_shared/omit-BT5mi_WR.js";import{default as te}from"./packem_shared/pick-cNa7dbb7.js";import{default as ne}from"./packem_shared/isPlainObject-CKRRjQp3.js";import{deleteProperty as oe,escapePath as se,getProperty as ue,hasProperty as ce,setProperty as ie}from"./packem_shared/getProperty-DPNB_aKG.js";var W=Object.defineProperty,j=a((t,c)=>W(t,"name",{value:c,configurable:!0}),"t");function B(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}a(B,"getDefaultExportFromCjs");j(B,"getDefaultExportFromCjs");function C(t){return t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}a(C,"getDefaultExportFromNamespaceIfPresent");j(C,"getDefaultExportFromNamespaceIfPresent");function U(t){return t&&Object.prototype.hasOwnProperty.call(t,"default")&&Object.keys(t).length===1?t.default:t}a(U,"getDefaultExportFromNamespaceIfNotNamed");j(U,"getDefaultExportFromNamespaceIfNotNamed");function z(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var c=t.default;if(typeof c=="function"){var u=j(a(function p(){var y=!1;try{y=this instanceof p}catch{}return y?Reflect.construct(c,arguments,this.constructor):c.apply(this,arguments)},"a"),"a");u.prototype=c.prototype}else u={};return Object.defineProperty(u,"__esModule",{value:!0}),Object.keys(t).forEach(function(p){var y=Object.getOwnPropertyDescriptor(t,p);Object.defineProperty(u,p,y.get?y:{enumerable:!0,get:j(function(){return t[p]},"get")})}),u}a(z,"getAugmentedNamespace");j(z,"getAugmentedNamespace");var l={},b={},S;function G(){if(S)return b;S=1;var t=Object.defineProperty,c=a((f,D)=>t(f,"name",{value:D,configurable:!0}),"t");Object.defineProperty(b,"__esModule",{value:!0}),b.isDocumentToRecurOn=b.flatten=b.unique=void 0;function u(f){return[...new Set(f)]}a(u,"unique"),c(u,"unique"),b.unique=u;function p(f){return[].concat(...f)}a(p,"flatten"),c(p,"flatten"),b.flatten=p;function y(f){return typeof f=="object"&&f!==null&&!Array.isArray(f)&&Object.keys(f).length}return a(y,"isDocumentToRecurOn"),c(y,"isDocumentToRecurOn"),b.isDocumentToRecurOn=y,b}a(G,"requireUtils");var E={},I;function H(){return I||(I=1,Object.defineProperty(E,"__esModule",{value:!0})),E}a(H,"requireTypes");var R;function J(){return R||(R=1,(function(t){var c=Object.defineProperty,u=a((e,r)=>c(e,"name",{value:r,configurable:!0}),"u"),p=l&&l.__createBinding||(Object.create?(function(e,r,n,o){o===void 0&&(o=n);var s=Object.getOwnPropertyDescriptor(r,n);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:u(function(){return r[n]},"get")}),Object.defineProperty(e,o,s)}):(function(e,r,n,o){o===void 0&&(o=n),e[o]=r[n]})),y=l&&l.__setModuleDefault||(Object.create?(function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}):function(e,r){e.default=r}),f=l&&l.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&p(r,e,n);return y(r,e),r},D=l&&l.__exportStar||function(e,r){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(r,n)&&p(r,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.deepKeysFromList=t.deepKeys=void 0;const v=f(G());D(H(),t);function q(e,r){const n=N(r);return typeof e=="object"&&e!==null?k("",e,n,new WeakSet):[]}a(q,"deepKeys"),u(q,"deepKeys"),t.deepKeys=q;function K(e,r,n){const o=N(r),s=n??new WeakSet;return e.map(d=>typeof d=="object"&&d!==null?s.has(d)?[]:k("",d,o,s):[])}a(K,"deepKeysFromList"),u(K,"deepKeysFromList"),t.deepKeysFromList=K;function k(e,r,n,o){const s=[],d=Object.keys(r);o.add(r);const m=[{obj:r,keys:d,i:0,basePath:e}];for(;m.length;){const O=m[m.length-1];if(O.i>=O.keys.length){m.pop();continue}const F=O.keys[O.i++],i=O.obj[F],P=_(O.basePath,x(F,n));if(n.expandNestedObjects&&v.isDocumentToRecurOn(i)||n.arrayIndexesAsKeys&&Array.isArray(i)&&i.length)if(n.arrayIndexesAsKeys&&Array.isArray(i)){const A=i;for(let h=A.length-1;h>=0;h--){const g=A[h],M=_(P,String(h));typeof g=="object"&&g!==null&&!Array.isArray(g)?o.has(g)||(o.add(g),m.push({obj:g,keys:Object.keys(g),i:0,basePath:M})):s.push(M)}}else o.has(i)||(o.add(i),m.push({obj:i,keys:Object.keys(i),i:0,basePath:P}));else if(n.expandArrayObjects&&Array.isArray(i)){const A=w(i,P,n,o);for(const h of A)s.push(h)}else{if(n.ignoreEmptyArrays&&Array.isArray(i)&&!i.length)continue;s.push(P)}}return v.unique(s)}a(k,"generateDeepKeysList"),u(k,"generateDeepKeysList");function w(e,r,n,o){let s=K(e,n,o);return e.length?e.length&&v.flatten(s).length===0?[r]:(s=s.map(d=>Array.isArray(d)&&d.length===0?[r]:d.map(m=>_(r,x(m,n)))),v.unique(v.flatten(s))):n.ignoreEmptyArraysWhenExpanding?[]:[r]}a(w,"processArrayKeys"),u(w,"processArrayKeys");function x(e,r){return r.escapeNestedDots?e.replace(/\./g,"\\."):e}a(x,"escapeNestedDotsIfSpecified"),u(x,"escapeNestedDotsIfSpecified");function _(e,r){return e?e+"."+r:r}a(_,"buildKeyName"),u(_,"buildKeyName");function N(e){return{arrayIndexesAsKeys:!1,expandNestedObjects:!0,expandArrayObjects:!1,ignoreEmptyArraysWhenExpanding:!1,escapeNestedDots:!1,ignoreEmptyArrays:!1,...e??{}}}a(N,"mergeOptions"),u(N,"mergeOptions")})(l)),l}a(J,"requireDeeks");var L=J();const V=L.deepKeys,X=L.deepKeysFromList;export{V as deepKeys,X as deepKeysFromList,oe as deleteProperty,se as escapePath,ue as getProperty,ce as hasProperty,ne as isPlainObject,$ as omit,te as pick,ie as setProperty};
@@ -0,0 +1 @@
1
+ var m=Object.defineProperty;var l=(e,r)=>m(e,"name",{value:r,configurable:!0});import i from"./isPlainObject-CKRRjQp3.js";import{c as s}from"./paths-are-equal-BYur8Hqc.js";var v=Object.defineProperty,p=l((e,r)=>v(e,"name",{value:r,configurable:!0}),"s$1");const n=p((e,r,b="")=>i(e)?Object.entries(e).reduce((t,[u,o])=>{let a=b;return a&&(a+="."),a+=u,r.some(f=>s(a,f))?t:i(o)?(Object.defineProperty(t,u,{configurable:!0,enumerable:!0,value:n(e[u],r,a),writable:!0}),t):(Object.defineProperty(t,u,{configurable:!0,enumerable:!0,value:o,writable:!0}),t)},{}):e,"recursiveOmit");var y=Object.defineProperty,c=l((e,r)=>y(e,"name",{value:r,configurable:!0}),"r");const d=c(e=>Array.isArray(e)&&e.length>0,"isFullArray"),P=c((e,r)=>d(r)?n(e,r):e,"omit");export{P as default};
@@ -0,0 +1 @@
1
+ var y=Object.defineProperty;var l=(e,r)=>y(e,"name",{value:r,configurable:!0});import f from"./isPlainObject-CKRRjQp3.js";import{c as h}from"./paths-are-equal-BYur8Hqc.js";var O=Object.defineProperty,P=l((e,r)=>O(e,"name",{value:r,configurable:!0}),"a");const s=P((e,r,p="")=>f(e)?Object.entries(e).reduce((t,[a,u])=>{let i=p;if(i&&(i+="."),i+=a,r.length>0){let c=!1;const n=i.split("."),g=n.length;if(r.forEach(m=>{const o=m.split("."),v=o.length,d=o.slice(0,g).join("."),j=n.slice(0,v).join(".");h(j,d)&&(c=!0)}),!c)return t}return f(u)?(Object.defineProperty(t,a,{configurable:!0,enumerable:!0,value:s(e[a],r,i),writable:!0}),t):(Object.defineProperty(t,a,{configurable:!0,enumerable:!0,value:u,writable:!0}),t)},{}):e,"recursivePick");var A=Object.defineProperty,b=l((e,r)=>A(e,"name",{value:r,configurable:!0}),"t");const k=b(e=>Array.isArray(e)&&e.length>0,"isFullArray"),F=b((e,r)=>k(r)?s(e,r):{},"pick");export{F as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/object",
3
- "version": "3.0.0-alpha.14",
3
+ "version": "3.0.0-alpha.15",
4
4
  "description": "Helper functions for working with objects and arrays.",
5
5
  "keywords": [
6
6
  "access",
@@ -1 +0,0 @@
1
- var f=Object.defineProperty;var i=(r,e)=>f(r,"name",{value:e,configurable:!0});import u from"./isPlainObject-CKRRjQp3.js";import{c as v}from"./paths-are-equal-BYur8Hqc.js";var b=Object.defineProperty,p=i((r,e)=>b(r,"name",{value:e,configurable:!0}),"u");const m=p((r,e,l="")=>u(r)?Object.entries(r).reduce((a,[o,n])=>{let t=l;return t&&(t+="."),t+=o,e.some(s=>v(t,s))?a:u(n)?(a[o]=m(r[o],e,t),a):(a[o]=n,a)},{}):r,"recursiveOmit");var y=Object.defineProperty,c=i((r,e)=>y(r,"name",{value:e,configurable:!0}),"r");const d=c(r=>Array.isArray(r)&&r.length>0,"isFullArray"),A=c((r,e)=>d(e)?m(r,e):r,"omit");export{A as default};
@@ -1 +0,0 @@
1
- var d=Object.defineProperty;var a=(e,r)=>d(e,"name",{value:r,configurable:!0});import u from"./isPlainObject-CKRRjQp3.js";import{c as h}from"./paths-are-equal-BYur8Hqc.js";var j=Object.defineProperty,y=a((e,r)=>j(e,"name",{value:r,configurable:!0}),"a$1");const f=y((e,r,s="")=>u(e)?Object.entries(e).reduce((l,[i,c])=>{let t=s;if(t&&(t+="."),t+=i,r.length>0){let n=!1;if(r.forEach(o=>{const v=t.split(".").length,g=o.split(".").length,m=o.split(".").slice(0,v).join("."),b=t.split(".").slice(0,g).join(".");h(b,m)&&(n=!0)}),!n)return l}return u(c)?(l[i]=f(e[i],r,t),l):(l[i]=c,l)},{}):e,"recursivePick");var P=Object.defineProperty,p=a((e,r)=>P(e,"name",{value:r,configurable:!0}),"t");const A=p(e=>Array.isArray(e)&&e.length>0,"isFullArray"),E=p((e,r)=>A(r)?f(e,r):{},"pick");export{E as default};