@visulima/object 3.0.0-alpha.1 → 3.0.0-alpha.11

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,106 @@
1
+ ## @visulima/object [3.0.0-alpha.11](https://github.com/visulima/visulima/compare/@visulima/object@3.0.0-alpha.10...@visulima/object@3.0.0-alpha.11) (2026-04-21)
2
+
3
+ ### Miscellaneous Chores
4
+
5
+ * update the jsr.json ([864ab7e](https://github.com/visulima/visulima/commit/864ab7e71c4b5ae82f64792d1ae8debfea2c539b))
6
+
7
+ ## @visulima/object [3.0.0-alpha.10](https://github.com/visulima/visulima/compare/@visulima/object@3.0.0-alpha.9...@visulima/object@3.0.0-alpha.10) (2026-04-21)
8
+
9
+ ### Miscellaneous Chores
10
+
11
+ * **api-platform:** apply pending lint and source updates ([3fb0043](https://github.com/visulima/visulima/commit/3fb0043a4cf35f752ca89a09a077100ae0142da8))
12
+ * bump engines.node to ^22.14.0 || >=24.10.0 ([c3d0931](https://github.com/visulima/visulima/commit/c3d0931d1504e4f21ebf50ea680cfa7ce4ba15ce))
13
+ * fixed jsr.json ([5d85e51](https://github.com/visulima/visulima/commit/5d85e5179de38e284ec433b14d77c71a1619c8d6))
14
+ * **object:** apply pending changes ([0420964](https://github.com/visulima/visulima/commit/0420964a5ddbc16a02e5e2a80d65efaf0464fcca))
15
+
16
+ ## @visulima/object [3.0.0-alpha.9](https://github.com/visulima/visulima/compare/@visulima/object@3.0.0-alpha.8...@visulima/object@3.0.0-alpha.9) (2026-04-15)
17
+
18
+ ### Bug Fixes
19
+
20
+ * **data-manipulation:** resolve eslint and type-safety issues ([f1682c2](https://github.com/visulima/visulima/commit/f1682c2611cbcc6c85d4bbea520d43464b42e7ee))
21
+ * **object:** pass OmittedKeys/PickedKeys generics to recursive calls ([1943c39](https://github.com/visulima/visulima/commit/1943c3912844b133611fe5d207c52a0f78ef51dc))
22
+
23
+ ## @visulima/object [3.0.0-alpha.8](https://github.com/visulima/visulima/compare/@visulima/object@3.0.0-alpha.7...@visulima/object@3.0.0-alpha.8) (2026-04-08)
24
+
25
+ ### Bug Fixes
26
+
27
+ * **object:** suppress eslint rules for recursive utility type patterns ([f68ce68](https://github.com/visulima/visulima/commit/f68ce68b45c6d03cf072bdf9d632478e7c7cd8eb))
28
+
29
+ ### Miscellaneous Chores
30
+
31
+ * apply linting and formatting fixes across packages ([5d150a5](https://github.com/visulima/visulima/commit/5d150a578f9ce861c791843c683deeb849b774a9))
32
+ * **data-manipulation:** remove empty dependency objects from package.json ([c0e8f76](https://github.com/visulima/visulima/commit/c0e8f7689a2da413f771494f6ecb07babc4b5e06))
33
+ * **object:** add tsconfig.eslint.json for type-aware linting ([f22e998](https://github.com/visulima/visulima/commit/f22e998b368ad0de17cf8b71280a67c9d98070d0))
34
+ * **object:** apply auto-fix formatting ([2e94ac5](https://github.com/visulima/visulima/commit/2e94ac5afa7cf890d1f37a5fa7a7a0cf961087e4))
35
+ * **object:** apply prettier formatting ([893b38f](https://github.com/visulima/visulima/commit/893b38f86b7f22f9f65bb8a02812bf5b1de1e051))
36
+ * **object:** migrate .prettierrc.cjs to prettier.config.js ([6fd82bc](https://github.com/visulima/visulima/commit/6fd82bcb393bcc3e8f7223210dc18f421949ab17))
37
+
38
+ ## @visulima/object [3.0.0-alpha.7](https://github.com/visulima/visulima/compare/@visulima/object@3.0.0-alpha.6...@visulima/object@3.0.0-alpha.7) (2026-03-26)
39
+
40
+ ### Features
41
+
42
+ * **web:** auto-generate packages page from workspace metadata ([623e520](https://github.com/visulima/visulima/commit/623e5207693a7fe720f5f2f179593a3654c880e3))
43
+
44
+ ## @visulima/object [3.0.0-alpha.6](https://github.com/visulima/visulima/compare/@visulima/object@3.0.0-alpha.5...@visulima/object@3.0.0-alpha.6) (2026-03-26)
45
+
46
+ ### Bug Fixes
47
+
48
+ * **web:** improve build setup with incremental stats caching and prod install ([fe33e75](https://github.com/visulima/visulima/commit/fe33e75827586779b4b3a0c6d57b39f889ee6207))
49
+
50
+ ### Miscellaneous Chores
51
+
52
+ * **object:** migrate deps to pnpm catalogs ([690cca3](https://github.com/visulima/visulima/commit/690cca39fa4903d1538e830340c07392e4d358ae))
53
+ * **object:** update dependencies ([5ebd3d5](https://github.com/visulima/visulima/commit/5ebd3d5c6a7001877b4ad4f8e877f1dc78b60d1e))
54
+ * visulima website ([#591](https://github.com/visulima/visulima/issues/591)) ([59ab2e2](https://github.com/visulima/visulima/commit/59ab2e2befb03e51cd2088956f83d9b87de6d033))
55
+
56
+ ### Code Refactoring
57
+
58
+ * **docs:** migrate Nextra components to fumadocs-ui, remove Nextra stripping ([484878f](https://github.com/visulima/visulima/commit/484878f01879363ef5e9a0282904dc4627d6060c))
59
+
60
+ ## @visulima/object [3.0.0-alpha.5](https://github.com/visulima/visulima/compare/@visulima/object@3.0.0-alpha.4...@visulima/object@3.0.0-alpha.5) (2026-03-06)
61
+
62
+ ### Bug Fixes
63
+
64
+ * **object:** update packem to 2.0.0-alpha.54 ([a539ca7](https://github.com/visulima/visulima/commit/a539ca75ba8307c4402edc9e79d192dbb4aecf06))
65
+
66
+ ### Documentation
67
+
68
+ * **object,redact,colorize,path,fs:** add comprehensive Fumadocs documentation ([19c3840](https://github.com/visulima/visulima/commit/19c384041db855e1c2de41ce2067458b39737565))
69
+
70
+ ### Miscellaneous Chores
71
+
72
+ * **data-manipulation:** update dependencies ([49458ab](https://github.com/visulima/visulima/commit/49458ab8f8e17d875840b1b4fe8b5efe12ff3513))
73
+ * **object:** update dependencies ([173c843](https://github.com/visulima/visulima/commit/173c843f32aa8d019ba08fc6a2571a2bca22884e))
74
+ * **object:** update dependencies ([8a9ce76](https://github.com/visulima/visulima/commit/8a9ce763a67693643324f8c31850dcd88938fffc))
75
+ * update lock file maintenance ([d83e716](https://github.com/visulima/visulima/commit/d83e71697b75d24704185b66bb521a934d2db02d))
76
+ * year update ([47f4105](https://github.com/visulima/visulima/commit/47f410596ce7190cfea36a073db32e0cec50bbcd))
77
+
78
+ ## @visulima/object [3.0.0-alpha.4](https://github.com/visulima/visulima/compare/@visulima/object@3.0.0-alpha.3...@visulima/object@3.0.0-alpha.4) (2025-12-27)
79
+
80
+ ### Bug Fixes
81
+
82
+ * **object:** update package files ([5a8dad8](https://github.com/visulima/visulima/commit/5a8dad850ba0089bbd1dbd79070b49d42ea16b88))
83
+
84
+ ### Miscellaneous Chores
85
+
86
+ * fixed project.json names and schema path ([964722f](https://github.com/visulima/visulima/commit/964722f691db205c7edb9aa6db29e849a647500b))
87
+
88
+ ## @visulima/object [3.0.0-alpha.3](https://github.com/visulima/visulima/compare/@visulima/object@3.0.0-alpha.2...@visulima/object@3.0.0-alpha.3) (2025-12-11)
89
+
90
+ ### Bug Fixes
91
+
92
+ * update package OG images across multiple packages ([f08e4dd](https://github.com/visulima/visulima/commit/f08e4dd2b105ccb29c8412020a9c2be36d6c1e9e))
93
+
94
+ ## @visulima/object [3.0.0-alpha.2](https://github.com/visulima/visulima/compare/@visulima/object@3.0.0-alpha.1...@visulima/object@3.0.0-alpha.2) (2025-12-06)
95
+
96
+ ### Bug Fixes
97
+
98
+ * add new package image, fixed readme rendering on npm, fixed building of packages ([b790ba2](https://github.com/visulima/visulima/commit/b790ba253ea07fef83528fd822a678facf021b5f))
99
+
100
+ ### Miscellaneous Chores
101
+
102
+ * update @anolilab/semantic-release-pnpm and @anolilab/semantic-release-preset to versions 3.2.2 and 12.1.2 across multiple package.json files for improved compatibility ([3921626](https://github.com/visulima/visulima/commit/3921626141fe5da398749bf0ba675f1596f18afb))
103
+
1
104
  ## @visulima/object [3.0.0-alpha.1](https://github.com/visulima/visulima/compare/@visulima/object@2.0.4...@visulima/object@3.0.0-alpha.1) (2025-12-04)
2
105
 
3
106
  ### ⚠ BREAKING CHANGES
package/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 visulima
3
+ Copyright (c) 2026 visulima
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,21 +1,24 @@
1
- <div align="center">
2
- <h3>visulima object</h3>
3
- <p>
4
- Helper functions for working with objects, build on top of
1
+ <!-- START_PACKAGE_OG_IMAGE_PLACEHOLDER -->
5
2
 
6
- [is-plain-obj][is-plain-obj],
7
- [dot-prop][dot-prop],
8
- [deeks][deeks] and
9
- [type-fest][type-fest]
3
+ <a href="https://www.anolilab.com/open-source" align="center">
10
4
 
11
- </p>
12
- </div>
5
+ <img src="__assets__/package-og.svg" alt="object" />
6
+
7
+ </a>
8
+
9
+ <h3 align="center">Helper functions for working with objects and arrays.</h3>
10
+
11
+ <!-- END_PACKAGE_OG_IMAGE_PLACEHOLDER -->
13
12
 
14
13
  <br />
15
14
 
16
15
  <div align="center">
17
16
 
18
- [![typescript-image]][typescript-url] [![npm-image]][npm-url] [![license-image]][license-url]
17
+ [![typescript-image][typescript-badge]][typescript-url]
18
+ [![mit licence][license-badge]][license]
19
+ [![npm downloads][npm-downloads-badge]][npm-downloads]
20
+ [![Chat][chat-badge]][chat]
21
+ [![PRs Welcome][prs-welcome-badge]][prs-welcome]
19
22
 
20
23
  </div>
21
24
 
@@ -124,18 +127,23 @@ If you would like to help take a look at the [list of issues](https://github.com
124
127
  - [Daniel Bannert](https://github.com/prisis)
125
128
  - [All Contributors](https://github.com/visulima/visulima/graphs/contributors)
126
129
 
130
+ ## Made with ❤️ at Anolilab
131
+
132
+ This is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. [Anolilab](https://www.anolilab.com/open-source) is a Development and AI Studio. Contact us at [hello@anolilab.com](mailto:hello@anolilab.com) if you need any help with these technologies or just want to say hi!
133
+
127
134
  ## License
128
135
 
129
- The visulima object is open-sourced software licensed under the [MIT][license-url]
136
+ The visulima object is open-sourced software licensed under the [MIT][license]
130
137
 
131
- [typescript-image]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript
138
+ <!-- badges -->
132
139
 
133
- [typescript-url]: https://www.typescriptlang.org/ "TypeScript" "typescript"
134
- [license-image]: https://img.shields.io/npm/l/@visulima/object?color=blueviolet&style=for-the-badge
135
- [license-url]: LICENSE.md "license"
136
- [npm-image]: https://img.shields.io/npm/v/@visulima/object/latest.svg?style=for-the-badge&logo=npm
137
- [npm-url]: https://www.npmjs.com/package/@visulima/object/v/latest "npm"
138
- [is-plain-obj]: https://github.com/sindresorhus/is-plain-obj
139
- [dot-prop]: https://github.com/sindresorhus/dot-prop
140
- [deeks]: https://github.com/mrodrig/deeks
141
- [type-fest]: https://github.com/sindresorhus/type-fest
140
+ [license-badge]: https://img.shields.io/npm/l/@visulima/object?style=for-the-badge
141
+ [license]: https://github.com/visulima/visulima/blob/main/LICENSE
142
+ [npm-downloads-badge]: https://img.shields.io/npm/dm/@visulima/object?style=for-the-badge
143
+ [npm-downloads]: https://www.npmjs.com/package/@visulima/object
144
+ [prs-welcome-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge
145
+ [prs-welcome]: https://github.com/visulima/visulima/blob/main/.github/CONTRIBUTING.md
146
+ [chat-badge]: https://img.shields.io/discord/932323359193186354.svg?style=for-the-badge
147
+ [chat]: https://discord.gg/TtFJY8xkFK
148
+ [typescript-badge]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript
149
+ [typescript-url]: https://www.typescriptlang.org/
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var F=Object.defineProperty;var s=(y,d)=>F(y,"name",{value:d,configurable:!0});import{default as J}from"./packem_shared/omit-BfV-sPAM.js";import{default as V}from"./packem_shared/pick-CT4qE7de.js";import{deleteProperty as Y,escapePath as Z,getProperty as $,hasProperty as ee,setProperty as te}from"./packem_shared/getProperty-DPNB_aKG.js";import{default as ne}from"./packem_shared/isPlainObject-CLTs8VdF.js";var c={},p={},w;function I(){if(w)return p;w=1;var y=Object.defineProperty,d=s((u,K)=>y(u,"name",{value:K,configurable:!0}),"t");Object.defineProperty(p,"__esModule",{value:!0}),p.isDocumentToRecurOn=p.flatten=p.unique=void 0;function i(u){return[...new Set(u)]}s(i,"unique"),d(i,"unique"),p.unique=i;function m(u){return[].concat(...u)}s(m,"flatten"),d(m,"flatten"),p.flatten=m;function j(u){return typeof u=="object"&&u!==null&&!Array.isArray(u)&&Object.keys(u).length}return s(j,"isDocumentToRecurOn"),d(j,"isDocumentToRecurOn"),p.isDocumentToRecurOn=j,p}s(I,"requireUtils");var x={},E;function W(){return E||(E=1,Object.defineProperty(x,"__esModule",{value:!0})),x}s(W,"requireTypes");var M;function B(){return M||(M=1,(function(y){var d=Object.defineProperty,i=s((e,t)=>d(e,"name",{value:t,configurable:!0}),"u"),m=c&&c.__createBinding||(Object.create?(function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:i(function(){return t[r]},"get")}),Object.defineProperty(e,n,a)}):(function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]})),j=c&&c.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),u=c&&c.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&m(t,e,r);return j(t,e),t},K=c&&c.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&m(t,e,r)};Object.defineProperty(y,"__esModule",{value:!0}),y.deepKeysFromList=y.deepKeys=void 0;const O=u(I());K(W(),y);function S(e,t){const r=q(t);return typeof e=="object"&&e!==null?k("",e,r,new WeakSet):[]}s(S,"deepKeys"),i(S,"deepKeys"),y.deepKeys=S;function P(e,t,r){const n=q(t),a=r??new WeakSet;return e.map(f=>typeof f=="object"&&f!==null?a.has(f)?[]:k("",f,n,a):[])}s(P,"deepKeysFromList"),i(P,"deepKeysFromList"),y.deepKeysFromList=P;function k(e,t,r,n){const a=[],f=Object.keys(t);n.add(t);const l=[{obj:t,keys:f,i:0,basePath:e}];for(;l.length;){const g=l[l.length-1];if(g.i>=g.keys.length){l.pop();continue}const N=g.keys[g.i++],o=g.obj[N],_=v(g.basePath,D(N,r));if(r.expandNestedObjects&&O.isDocumentToRecurOn(o)||r.arrayIndexesAsKeys&&Array.isArray(o)&&o.length)if(r.arrayIndexesAsKeys&&Array.isArray(o)){const A=o;for(let h=A.length-1;h>=0;h--){const b=A[h],R=v(_,String(h));typeof b=="object"&&b!==null&&!Array.isArray(b)?n.has(b)||(n.add(b),l.push({obj:b,keys:Object.keys(b),i:0,basePath:R})):a.push(R)}}else n.has(o)||(n.add(o),l.push({obj:o,keys:Object.keys(o),i:0,basePath:_}));else if(r.expandArrayObjects&&Array.isArray(o)){const A=L(o,_,r,n);for(const h of A)a.push(h)}else{if(r.ignoreEmptyArrays&&Array.isArray(o)&&!o.length)continue;a.push(_)}}return O.unique(a)}s(k,"generateDeepKeysList"),i(k,"generateDeepKeysList");function L(e,t,r,n){let a=P(e,r,n);return e.length?e.length&&O.flatten(a).length===0?[t]:(a=a.map(f=>Array.isArray(f)&&f.length===0?[t]:f.map(l=>v(t,D(l,r)))),O.unique(O.flatten(a))):r.ignoreEmptyArraysWhenExpanding?[]:[t]}s(L,"processArrayKeys"),i(L,"processArrayKeys");function D(e,t){return t.escapeNestedDots?e.replace(/\./g,"\\."):e}s(D,"escapeNestedDotsIfSpecified"),i(D,"escapeNestedDotsIfSpecified");function v(e,t){return e?e+"."+t:t}s(v,"buildKeyName"),i(v,"buildKeyName");function q(e){return{arrayIndexesAsKeys:!1,expandNestedObjects:!0,expandArrayObjects:!1,ignoreEmptyArraysWhenExpanding:!1,escapeNestedDots:!1,ignoreEmptyArrays:!1,...e??{}}}s(q,"mergeOptions"),i(q,"mergeOptions")})(c)),c}s(B,"requireDeeks");var T=B();const z=T.deepKeys,C=T.deepKeysFromList;export{z as deepKeys,C as deepKeysFromList,Y as deleteProperty,Z as escapePath,$ as getProperty,ee as hasProperty,ne as isPlainObject,J as omit,V as pick,te 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-B99pE0nL.js";import{default as te}from"./packem_shared/pick-DxtQt02k.js";import{deleteProperty as ne,escapePath as ae,getProperty as oe,hasProperty as se,setProperty as ue}from"./packem_shared/getProperty-DPNB_aKG.js";import{default as ie}from"./packem_shared/isPlainObject-CLTs8VdF.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,ne as deleteProperty,ae as escapePath,oe as getProperty,se as hasProperty,ie as isPlainObject,$ as omit,te as pick,ue as setProperty};
@@ -0,0 +1 @@
1
+ var v=Object.defineProperty;var i=(r,e)=>v(r,"name",{value:e,configurable:!0});import m from"./isPlainObject-CLTs8VdF.js";import{c as s}from"./paths-are-equal-BYur8Hqc.js";var b=Object.defineProperty,p=i((r,e)=>b(r,"name",{value:e,configurable:!0}),"u");const c=p((r,e,f="")=>m(r)?Object.entries(r).reduce((a,[t,u])=>{let o=f;return o&&(o+="."),o+=t,e.some(n=>s(o,n))?a:m(u)?(a[t]=c(r[t],e,o),a):(a[t]=u,a)},{}):r,"recursiveOmit");var y=Object.defineProperty,l=i((r,e)=>y(r,"name",{value:e,configurable:!0}),"r");const d=l(r=>Array.isArray(r)&&r.length>0,"isFullArray"),A=l((r,e)=>d(e)?c(r,e):r,"omit");export{A as default};
@@ -0,0 +1 @@
1
+ var d=Object.defineProperty;var a=(e,r)=>d(e,"name",{value:r,configurable:!0});import u from"./isPlainObject-CLTs8VdF.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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/object",
3
- "version": "3.0.0-alpha.1",
3
+ "version": "3.0.0-alpha.11",
4
4
  "description": "Helper functions for working with objects and arrays.",
5
5
  "keywords": [
6
6
  "visulima",
@@ -59,8 +59,11 @@
59
59
  "README.md",
60
60
  "CHANGELOG.md"
61
61
  ],
62
+ "dependencies": {
63
+ "type-fest": "5.6.0"
64
+ },
62
65
  "engines": {
63
- "node": ">=22.13 <=25.x"
66
+ "node": "^22.14.0 || >=24.10.0"
64
67
  },
65
68
  "publishConfig": {
66
69
  "access": "public",
@@ -1 +0,0 @@
1
- var v=Object.defineProperty;var i=(r,e)=>v(r,"name",{value:e,configurable:!0});import m from"./isPlainObject-CLTs8VdF.js";import{c as s}from"./paths-are-equal-BYur8Hqc.js";var b=Object.defineProperty,p=i((r,e)=>b(r,"name",{value:e,configurable:!0}),"m$1");const u=p((r,e,l="")=>m(r)?Object.entries(r).reduce((a,[o,n])=>{let t=l;return t&&(t+="."),t+=o,e.some(f=>s(t,f))?a:m(n)?(a[o]=u(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)?u(r,e):r,"omit");export{A as default};
@@ -1 +0,0 @@
1
- var b=Object.defineProperty;var a=(e,r)=>b(e,"name",{value:r,configurable:!0});import u from"./isPlainObject-CLTs8VdF.js";import{c as d}from"./paths-are-equal-BYur8Hqc.js";var j=Object.defineProperty,y=a((e,r)=>j(e,"name",{value:r,configurable:!0}),"h");const s=y((e,r,p="")=>u(e)?Object.entries(e).reduce((i,[l,c])=>{let t=p;if(t&&(t+="."),t+=l,r.length>0){let n=!1;if(r.forEach(o=>{const v=t.split(".").length,g=o.split(".").length,h=o.split(".").slice(0,v).join("."),m=t.split(".").slice(0,g).join(".");d(m,h)&&(n=!0)}),!n)return i}return u(c)?(i[l]=s(e[l],r,t),i):(i[l]=c,i)},{}):e,"recursivePick");var P=Object.defineProperty,f=a((e,r)=>P(e,"name",{value:r,configurable:!0}),"t");const A=f(e=>Array.isArray(e)&&e.length>0,"isFullArray"),E=f((e,r)=>A(r)?s(e,r):{},"pick");export{E as default};