{"_id":"mutative","_rev":"35-e6e952cb39d0613d9f88c09f8e8b4db5","name":"mutative","dist-tags":{"latest":"2.0.0"},"versions":{"0.0.1":{"name":"mutative","version":"0.0.1","author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.0.1","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"661292586c58eeb522e6d10a5f883d5899eab5be","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.0.1.tgz","fileCount":3,"integrity":"sha512-Nsjsj748LUuhjgs+JTLJSFtz6xFzluqapJhU3nQx77oqqf2iTr7qiqzA89meM/C/OQR/iluH9LW4RfkwGZvF1A==","signatures":[{"sig":"MEQCIHsXV4AaOhSnRPEFHeVwyo0sE0zqR7CvEmWB38exVLkyAiB2kjD1Ryo95CGB2+rKkTXlphK4H9ypkNCG7cw0IimYGg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1597,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiI6iaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqc5RAAoOHEe2QFwYYHwGIzdBScT6oSbmxwm+XNAMpil3ZIP6mITeiV\r\n9fjmh0KXloeFLBd6XMNmMMibvWij8M/mdQ35qkanC4Vq6u1vjpCp4IkCQM1V\r\nxBNwWCIRay6jzVQusfLD9WjT4ZtmYgeqzsypFVH2h9ZBzS8mloUk9ZKskB7p\r\nk5fhpn9OtKC8TFxwEn+7Xk/7FEGb2In5ywxICH5efqF0qu7yDfSBT5GahwYh\r\nLXi1doizNUY7/5ggVN2HZEFTbHN3o1HKqbMBmbmaGBEF6kOf2FfqUMiIifTT\r\nRWA1Y0AXqBNGaXuZ+MLbBxpSCYiqRyH2zduPO5OFti7JHH7YTfAJK0+f+7m7\r\nxxXwWAYazuNK6FMR46G0w6CqCA3Jhei9pqFy98pv6dpLPpE1MIUKcaT/RVsr\r\n91PlA+Idj3LiMeltphDp1JjAJm05ixASrRkV96UEiaNKNTmJ2glH0NpVsAlS\r\n88rxnYyCipe8DidT7zCT90kZr/usy/nHhpIqBSV+cuGxb8Cm2iqxIkA8Af8W\r\nkCJrP8KDpH1jRlF03oB4DRoMvAgA9mr1ruzyetbA092DGfvMwKQAml9K7/Re\r\niDivpo7V5HMnl2zcWRPOOG3NUyIfIzAdFEHFSV1ux7+sIzwW8YQHFtqVoFiy\r\nFc/eRqW4SiGgJfdo0ada9Qdj895vtdvyE5Y=\r\n=c9QF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"c8c2c9c56c2901439464e0abe82ebb1822128787","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"_npmVersion":"8.3.1","description":"Efficient creation of immutable state","directories":{},"_nodeVersion":"16.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mutative_0.0.1_1646504090200_0.19260108181298374","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"mutative","version":"0.1.0","keywords":["mutative","immutable","mutable","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.1.0","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"14ae2c5be8025f7c2059af7f2abb89399b3ef868","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.1.0.tgz","fileCount":87,"integrity":"sha512-XAdUh8dBLhjGITZLZZQrsT+FfyDsBO1I0+X1emHOJ26eYDD9AHiS3hhl4/OjWHym8smdgm29sI0e1ZqASmsw4w==","signatures":[{"sig":"MEQCIF4xz6sO4CfrAbvvZ12fcHZEkA8qQiiNl05db41kuKxCAiBuEUfYxcqgTYq+6tO1V5DD4YrsHguVEeRAAru3NF5Adg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1515559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhjKYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpGKQ/+LrVMdSTDI3Rx+HYFDmycbQe2ueqy8wDAGtFMUt72KBScHY6p\r\n2h15+p5CPFfTx8arOCJEHD0k2o14QZB35LsT8CrQrB+UeGPsVT8VaQTcmlIl\r\nSQj9rfGGLQOPnAd4PQaoDUSRc0SyS/uwKaZDhinBJgcHm4UV4XPRBDVxMFAf\r\nzpZMPefo6IZs2ns3WhAmJHLy5tPxq2guM8IhNvZ832/QXtYbXEqif/uN1nvT\r\na4sE25PlKqjk7kDi/fn0i1kFiWS/Xxbljd8p4xtnmKJNsCEffxO9dUThrMFT\r\nvrB/KMzVPJ40WgGmKLaFX9JwCAgRPXmR+mhiWnbaLjxgt/gvcdKoXODGtt6P\r\n+hybEROLQ8BMJx004EJlqfHRcAuJIg2o9zvlUUi0wXuW0qt7LRslCadrGu5W\r\nZu7v5atZleIcRPoZnf+ZUiLoxU6wBOeEXTU1YxR/MZ91JR0hh+4JM4xWx5e2\r\ni3G59hqqnj6+yWDup9XFL7nDioyuHUQvNNciEfVT5LUi9gDm0fKaCET81/ek\r\nG++oNdYASlY3b2oOpvxzO5oTVNjNvtQHL07ThHRhLIuk/ypn5wBmXzzm1Qmc\r\nOtkYFXdO8I87r8I0j2t0j0T0AtpvOKVIOpxMtmvNmCcFApd7WRPNONsFB1x0\r\nk/pzo5UIBkpuqY4wKssV6503WaMqVyJiPnM=\r\n=4oXr\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"__DEV__":true}},"main":"lib/index.js","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"engines":{"node":">=12.2.0"},"gitHead":"b06f63d2ff31fcf1bd81aac6e327a94c95af7e39","scripts":{"perf":"cd test/performance && ts-node add-data.ts && ts-node todo.ts && ts-node incremental.ts","test":"jest","build":"yarn clean && tsc && yarn build:prod && yarn build:dev","clean":"rimraf dist","commit":"yarn git-cz","benchmark":"cd test/performance && ts-node benchmark.ts","build:dev":"NODE_ENV=development rollup --config","build:doc":"rimraf docs && typedoc --out docs src/index.ts","build:prod":"NODE_ENV=production rollup --config","performance":"cd test/performance && ts-node index.ts","performance:all":"yarn perf && yarn performance && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","performance:sample":"cd test/performance && ts-node sample.ts","performance:set-map":"cd test/performance && ts-node set-map.ts","performance:big-object":"cd test/performance && ts-node big-object.ts","performance:array-object":"cd test/performance && ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"_npmVersion":"8.5.0","description":"Efficient creation of immutable state","directories":{},"_nodeVersion":"16.14.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","immer":"^9.0.12","redux":"^4.2.0","tslib":"^2.3.1","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^27.1.3","ts-node":"^10.7.0","typedoc":"^0.22.13","json2csv":"^5.0.7","prettier":"^2.5.1","benchmark":"^2.1.4","immutable":"^4.0.0","commitizen":"^4.2.4","typescript":"^4.6.2","@types/jest":"^27.4.1","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^0.1.1","seamless-immutable":"^7.1.4","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-replace":"^4.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^21.0.2","typedoc-plugin-markdown":"^3.11.14","@typescript-eslint/parser":"^5.15.0","@rollup/plugin-node-resolve":"^13.1.3","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.1.0_1669739159876_0.4927467691851515","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"mutative","version":"0.2.0","keywords":["mutative","immutable","mutable","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.2.0","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"0ce51a8613c43c0912d581f8e46dd26e48343ff4","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.2.0.tgz","fileCount":59,"integrity":"sha512-LKHcWkZ1i8fRAZWF5rODyE1ER+8vCTIAp58PblHpQK43eDLC6hU53+YU3ytjjZ99xdYWfJqMKfW3OyXJHC9h2A==","signatures":[{"sig":"MEYCIQCxHMeBXyhfQ4T/JCDgaS4D/ZevYCUly1vdWOVVIRH3JgIhALOnxi5134Iij5YiNHCWw/fxn7QEyRUcegBTo6cgb0g5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":632674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjofAzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqd0A/9HI+X0DtKLH/NkLxZZsdSDs7Lkx1feNuNR3NAgMNbc70BkhCi\r\ngbIEcVGXA5H3L1YOOfPSLgRf2K0FOE9eAvVrmf4vi85HYGJW2kuTuCwHaHDf\r\nanjkjGwBt9q9xqOKVG9bp9sck9Z4Iw9rBn7kAmU0E07l4AZeQdD2eg02tGIZ\r\norX+n0gCRyzefN5wIp6rCY7AyNMZLnroKESsXxg87WW6CWi50S8yy40Ekyf+\r\nJQgKJEAfEA7goFA5XUUsjvp6ywCIFBiy25nHML89UYWL9gSRooGxQVHFMuyG\r\n3eVGcSevHByQvfZeCiiH4ApfieMappEsLvPEF8PB+5aJKMd5K1er6KwUyTe3\r\n+bzp/R1cEN3vGA4h1QKv7JQGgFUE1AlQ1a7ACbQcsixIKfISNkACTBSWAY+s\r\no6vxd4dmVOodCoaRud+xI/CMRgr5YMYX+ySxcC49l6HerOBd72OUFWQFQAl6\r\nVCuTsoiD37duQJjhFCPH31Nzhc98iDFtqkOFa/yagHic3pxpT0wvpyXM+7X+\r\n/8paReoh/QjsaNxWslIvhQ/9OFtAhww/4WiIPiQ/wv4lplh3w4Q1DAHUKrx3\r\nidepiVdxZqkQBPlDw7Zcbte3CDXPrq6VATcvO0usU9/4FKbRXbgMFrzuOGWc\r\nn38RvdSXzIMVw7weQQVSfHRRg4K6kPNDx4U=\r\n=VLJz\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"__DEV__":true,"ts-jest":{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}}},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","engines":{"node":">=12.2.0"},"gitHead":"bbd6fb888db07edf7256652a8035e92cfa9dc18b","scripts":{"perf":"cd test/performance && ts-node add-data.ts && ts-node todo.ts && ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","benchmark":"cd test/performance && ts-node benchmark.ts","build:doc":"rimraf docs && typedoc --out docs src/index.ts --readme none","performance":"cd test/performance && ts-node index.ts","performance:all":"yarn perf && yarn performance && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","performance:sample":"cd test/performance && ts-node sample.ts","performance:set-map":"cd test/performance && ts-node set-map.ts","performance:big-object":"cd test/performance && ts-node big-object.ts","performance:array-object":"cd test/performance && ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"6.14.17","description":"Efficient creation of immutable state","directories":{},"_nodeVersion":"14.21.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","tsdx":"^0.14.1","immer":"^9.0.12","redux":"^4.2.0","tslib":"^2.3.1","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^27.1.3","ts-node":"^10.7.0","typedoc":"^0.22.13","json2csv":"^5.0.7","prettier":"^2.5.1","benchmark":"^2.1.4","immutable":"^4.0.0","commitizen":"^4.2.4","size-limit":"^8.1.0","typescript":"^4.6.2","@types/jest":"^27.4.1","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^0.1.1","seamless-immutable":"^7.1.4","@size-limit/webpack":"^8.1.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.11.14","@typescript-eslint/parser":"^5.15.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.2.0_1671557171031_0.37987555620908053","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"mutative","version":"0.2.1","keywords":["mutative","immutable","mutable","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.2.1","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"f22fbb7f02d563ec0be4410ec73e84a68af25c04","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.2.1.tgz","fileCount":60,"integrity":"sha512-1W5D+k0wa8RMqnKrtXCmUOj16ywoJSs/9FQUw2PlPMGvFcAMIP4/N2kbIylEq5juCVNgfAwjocK4+H1/Fvttlg==","signatures":[{"sig":"MEQCIAgjvDbcoPnoJy2Pg92EoaBwoHO9SBu7oWfOVNvENXcFAiBRa6nFD31uGwS/JxCb7RYPvaHiETfZR5hDGX+4gHxBfg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":656206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpF2BACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoNJBAAgy+yzl1gWttildpVKLF8DGLOQgmqXm3ydBo5sIktXIcOedPh\r\nogCrVZMTEDEqklBZDIjzQuMOqdDSm7LB9261AAKeu5ewh2FbjwBQ786+2B8T\r\nZG7QFj9xlLw8eqDHhVmPFi/NTXjNlVanLdZu2kUa1RB1qFV50FjvCaBgQ89v\r\nIbPaqRa0hbynQGjsuQx2miGjeXh77p9PjFMVDzJ54EBwIq4y8GTplRFFgzvo\r\ndfYZgHlwnxxsOAybD5fX1QPAOcvdy0DLBNtR5Z71/iSd+vDOdmYbu3A7E2EL\r\nWL34SyTv89xAMjRuEQ8SzL3bUoPfHKawMMdOpeKS6FvSlQcJoHQGywbOB11I\r\naZbxW0WbAbzCJeVbK1KbdX78+OsBanl0nSB4s4p9FmITLgyQv/hTFvEqKjsT\r\n6rAINSTJwu0bm1VRwQUctyc9GTOh29EX3pchjonJFd9yB898y+psLI8A8dSp\r\npvyzLrMcUBDM94hVChYYeHrd6WJBBrGcmMM5VS2eRxIfbcbN4GTQuzr3ewEA\r\nXsfQHQt+S2bAo9WYhQdm87OC0PrzGnCCzWJHvuAzZmx+ZMCLjg0bJnGkwEF9\r\nhwRfmqsLtt/7w3bR+vNGXzj4fnmjrWMhtZ6dcTdsNAlEAtyeecqldUaCsR0W\r\ndsVwW+Q0cfkcweoBHpJIl/dA3Dp3ez85Dvk=\r\n=9K+h\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"__DEV__":true,"ts-jest":{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}}},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","engines":{"node":">=12.2.0"},"gitHead":"be7ce460f63d70a6896b69f5974785fc8e24022e","scripts":{"perf":"cd test/performance && ts-node add-data.ts && ts-node todo.ts && ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","benchmark":"cd test/performance && ts-node benchmark.ts","build:doc":"rimraf docs && typedoc --out docs src/index.ts --readme none","performance":"cd test/performance && ts-node index.ts","performance:all":"yarn perf && yarn performance && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","performance:sample":"cd test/performance && ts-node sample.ts","performance:set-map":"cd test/performance && ts-node set-map.ts","performance:big-object":"cd test/performance && ts-node big-object.ts","performance:array-object":"cd test/performance && ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"6.14.17","description":"A JavaScript library for efficient creation of immutable state","directories":{},"_nodeVersion":"14.21.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","tsdx":"^0.14.1","immer":"^9.0.12","redux":"^4.2.0","tslib":"^2.3.1","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^27.1.3","ts-node":"^10.7.0","typedoc":"^0.22.13","json2csv":"^5.0.7","prettier":"^2.5.1","benchmark":"^2.1.4","immutable":"^4.0.0","commitizen":"^4.2.4","size-limit":"^8.1.0","typescript":"^4.6.2","@types/jest":"^27.4.1","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^0.1.1","seamless-immutable":"^7.1.4","@size-limit/webpack":"^8.1.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.11.14","@typescript-eslint/parser":"^5.15.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.2.1_1671716225671_0.3528465428064711","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"mutative","version":"0.2.2","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.2.2","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"16e412d0e11095b7e7de04369599f91561e0ba8b","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.2.2.tgz","fileCount":60,"integrity":"sha512-47/hXxP7paHrzyDh8Sd8SI4/gwIWKKQhZtCuQ6IQdnKRWgk8dDUyUGWI51xmYUA2uc4ggCbfg++MZ5C7oML8wg==","signatures":[{"sig":"MEQCICXBFu2lJSQHXctOAJrNc+7UBH82Z2pizVXXzcFN18izAiBWNhB0XFT3uAvT3+xN+ceYMppSrKzW6vIwh+u2qLwakQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":663638,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsrIUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmow2A//a/niJUP7s3xEHEL+uTLrUwi6f+TrLv3ZB/I4l+JojjPyIRra\r\n8icliw1TwfFwvemCbAp3yxGvk3ccYJ8heBFCeDWqt/2eWQVT1Dm+ITy0eENd\r\nqnpcqHOY6WA6xpGOKQAZY4xEhSewdc+7zG6uyyq/0rqE/6kG43InwAOl1UYA\r\nEXYLitLEfsvczziQNHnHR09TUcJagiOcAlSI4rdDEd1AHJIJ6v4kCTlfhX6D\r\npKrqd8Ja2G4llPS2eILV7n3/kBTAmWMn/qCStws8WpnMS+CGNq3y5VK9VHVz\r\nvAKMXPRNDQ8+6vuhM8ZYhDGxcoKRANkV7WNETIzyb+4WNmTosPbklPw2qlyn\r\nsublRxlKAKhhpJe/yrUZ/gufFWcaXM6lNv3Bs99UFcA5m9Ad/MsdMWXQ+j1A\r\nuRVDbsaFNgRaGm88vDCfSML2TlaIGyEOYRrPWyrAzJUQbuevX7wfLQm8MQAO\r\ngY8Y2A8ihGe3Ak0ByT6fqHqkuy3LC5z9hiZl4gCAysitr2w0ZOTGuRi2Cq05\r\nWYnunhV1dfNpei0IZSY5Mf/sxlfpAV9hK3PAjyycVxm9VYVTsA3UIQuwmvSX\r\nVYYZ7FNa0d2QIWdDY5ar2lCVrBqtqtskjDVYAklYkLsJFkew07B3VXXMI0t1\r\nmSWPGIRl80JqVhg4vB621M89jw9tAIDErWA=\r\n=O7Ht\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"__DEV__":true,"ts-jest":{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}}},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=12.2.0"},"gitHead":"eb9b32474c61edf150689bed860ff14403ed57d1","scripts":{"perf":"cd test/performance && ts-node add-data.ts && ts-node todo.ts && ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","benchmark":"cd test/performance && ts-node benchmark.ts","build:doc":"rimraf docs && typedoc --out docs src/index.ts --readme none","performance":"yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","performance:basic":"cd test/performance && ts-node index.ts","performance:sample":"cd test/performance && ts-node sample.ts","performance:set-map":"cd test/performance && ts-node set-map.ts","performance:big-object":"cd test/performance && ts-node big-object.ts","performance:array-object":"cd test/performance && ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"6.14.17","description":"A JavaScript library for efficient creation of immutable state","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"14.21.1","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","tsdx":"^0.14.1","immer":"^9.0.12","redux":"^4.2.0","tslib":"^2.3.1","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^27.1.3","ts-node":"^10.7.0","typedoc":"^0.22.13","json2csv":"^5.0.7","prettier":"^2.5.1","benchmark":"^2.1.4","immutable":"^4.0.0","commitizen":"^4.2.4","size-limit":"^8.1.0","typescript":"^4.6.2","@types/jest":"^27.4.1","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^0.1.1","seamless-immutable":"^7.1.4","@size-limit/webpack":"^8.1.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.11.14","@typescript-eslint/parser":"^5.15.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.2.2_1672655380288_0.21166536595986063","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"mutative","version":"0.3.0","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.3.0","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"8c39f9111bd87a37fcfaec6120ecfc8ff84486bf","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.3.0.tgz","fileCount":63,"integrity":"sha512-8lpCNWhGsvq3pjGLg7HqazZ8dOPRlDhFbOoE4uPyr4K3bNUxQviWIDZMVEt4If36fJhUsF9pJpg2nUouUka4mA==","signatures":[{"sig":"MEQCIFSEo5WJC4q8vtiJSOoOaUbd/xaQtYZ18VLBIBMCak6FAiBVsgy7HpaGbEDfU4T0jDy5azugp72JbI4ZzgtF/gTesA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":770857,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0fTiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpPOQ/+LvhzxfW9KylODrdMvMgy/tKQFehvA9LxKlAfkIZhbCZRPFcM\r\nZ5nDnkSlba6EXkT/w0edDtzUxsEnRt2P3zQsew8/Z2eedT6z4+8EY9/D8g5A\r\nfIFAhGSrVhviZcvDZejJOfzfBLgrDFOlr84Ul5ylY4uvIAvZvMQlo9Ve7pAQ\r\nribpSnbaHhaT2KzzmC+ERKBZcclvfXCgo2Bfc2p/pQiT0R9TU3gvyq0OgadR\r\n/pXhbR0Rhm12ImUd2i9yGr89LWPIBeKcYgCv3TxS9GNYywNBCIM5w8My+WdE\r\nYdQMQNEdLSFeGuyHddxQct2rWOZazma3tbMBmbLUVXslzLQHtsCaTM7Gk1fJ\r\nuXF1/l7iZgVxrUsO3BycmD9MnuRKZ99kn3ycU9AoiRr/G3F/rIM16KF3db9P\r\nryMTCIK/vSDbtqDrQhkjSALd6aeeOgEr7qU0x/jlGCoDzuiOFxqL97p1q0vZ\r\nX8EdNYJBOkI1RKN59+xevpTcLnotqgUCECvlb++aUc0x7R36iA3JimnsVtxT\r\nYU6SVBaNDv3iGoBO7jSoG4Y6JzWxbOkpGZ2ee29MouDdLGvQamDmnqkPA4nk\r\nfKkt+cPpFmEcRwbFO3E3ITEt7bYum84Y0DJs7kS3+NGp/Zbg+QloqLQcNRmu\r\nNqgJtDOATmwN2oqYH2EA0XTTS/iIT2pl8zM=\r\n=7/4n\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]}},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=12.2.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"779cae981317605c6a0471002f1986ef4b1f1ee3","scripts":{"perf":"cd test/performance && ts-node add-data.ts && ts-node todo.ts && ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd && cp dist/mutative.esm.js dist/mutative.esm.mjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && ts-node test/performance/benchmark.ts","build:doc":"rimraf docs && typedoc --out docs src/index.ts --readme none","performance":"yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","performance:basic":"cd test/performance && ts-node index.ts","performance:sample":"cd test/performance && ts-node sample.ts","performance:set-map":"cd test/performance && ts-node set-map.ts","performance:big-object":"cd test/performance && ts-node big-object.ts","performance:array-object":"cd test/performance && ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"6.14.17","description":"A JavaScript library for efficient creation of immutable state","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"14.21.2","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","tsdx":"^0.14.1","immer":"^9.0.18","redux":"^4.2.0","tslib":"^2.3.1","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^29.0.5","ts-node":"^10.9.1","typedoc":"^0.22.13","json2csv":"^5.0.7","prettier":"^2.5.1","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.2.4","size-limit":"^8.1.0","typescript":"^4.9.4","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^0.1.1","seamless-immutable":"^7.1.4","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.11.14","@typescript-eslint/parser":"^5.49.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.49.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.3.0_1674704098597_0.9089930124384324","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"mutative","version":"0.3.1","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.3.1","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"560287338c6f74665eaca5ca3bb66a7e258942cb","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.3.1.tgz","fileCount":63,"integrity":"sha512-IIshJVDozKBJN7PqddhPl/sQB7puEt9Ntu3AZwmlftQu14YD1XbRzOrfGI1lVNRdMvEwuUAVWKwnTniejsQbZA==","signatures":[{"sig":"MEUCIQDUWpVdOl0mGUJ5ef245GuhrhjGBWWufbcJO74L3sh4UgIgfBLx8/vAmEb6qtcw1gmwPTKMuH/WNC/DJ3KfLlcmE5M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":774567,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0n3/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqCjg/9GsHD6MHzfpnwO1tLcYjKjxaRWvIycV3uuBxO5L1lMr8Pie4z\r\njVfrQEvi+yluZusHr7hE/flgOfyMEYA2g3HcTbo+hB9zWuN/DUmRyOlrnUhL\r\nyDgFSx7d7wOu5oL0YYtt0DsveGgcEY4D5e1d39dL4wpL9jBK2T5GxRfCv6Kl\r\n79cX7kScixxOr2vM7P8lWpWuooHzIGm3tDM/vMQyLOidXgim00cMe60W820F\r\nDaDEMmYwLxmRc9hisR8j6GTmHvPl3KySqHLl1bsA61q5SlQIPkKBndJRGEZk\r\nDIzPktcVfjtzctfkR+IjwB/49DD3oj60TmgtO4WfOpQsFQK9sDWRFZ+ND2PY\r\n7UxTbZv5smISCbecy9GgpMENyQnUaeg/F///ucyWwVGqsysww3x6WqxJOO8b\r\nzh17d5xAvCpPXj+t7E7oV2ZxXSDY/NM0ja5yurbXM3mKXAE/zd8rbqtaLHVo\r\nN89vHFOohCTcpMu+Yo2Qz6DFDDR+McVPfinQvv7URVcxSgRbAUk9pFDAPHIH\r\nW8vmO5FVbODuYBjherxH+fIBkOB7xIYNqOu8JBgyyBubNNDYSR90oLnxI2oI\r\nqRGe6phdjy9/WtQ3juLl6uoLMuumM0w6EaFSPvchNBI4/MzcrBxoF+mqdM9u\r\n1RzE+uG+NGFWVCm8BtLsmP/Myx5nU/aRSYY=\r\n=jFlV\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]}},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=12.2.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"9279a55f45aa9175a02cac36124ad2a1ba18979c","scripts":{"perf":"cd test/performance && ts-node add-data.ts && ts-node todo.ts && ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd && cp dist/mutative.esm.js dist/mutative.esm.mjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && ts-node test/performance/benchmark.ts","build:doc":"rimraf docs && typedoc --out docs src/index.ts --readme none","performance":"yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","performance:basic":"cd test/performance && ts-node index.ts","performance:sample":"cd test/performance && ts-node sample.ts","performance:set-map":"cd test/performance && ts-node set-map.ts","performance:big-object":"cd test/performance && ts-node big-object.ts","performance:array-object":"cd test/performance && ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"6.14.17","description":"A JavaScript library for efficient creation of immutable state","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"14.21.2","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","tsdx":"^0.14.1","immer":"^9.0.18","redux":"^4.2.0","tslib":"^2.3.1","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^29.0.5","ts-node":"^10.9.1","typedoc":"^0.22.13","json2csv":"^5.0.7","prettier":"^2.5.1","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.2.4","size-limit":"^8.1.0","typescript":"^4.9.4","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^0.1.1","seamless-immutable":"^7.1.4","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.11.14","@typescript-eslint/parser":"^5.49.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.49.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.3.1_1674739198731_0.8812170085157527","host":"s3://npm-registry-packages"}},"0.3.2":{"name":"mutative","version":"0.3.2","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.3.2","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"d4585a638838b1710af91779d2e0a168367cca5d","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.3.2.tgz","fileCount":63,"integrity":"sha512-HRE9pg0Nuo+2zwWk4jDKbeuRAbOWIoPSOUGqxrum9keO38Q2uBd1qKc9OaailzkrVDjgxDv4CaaWdGyZ/t1OWw==","signatures":[{"sig":"MEUCID8sBON0DrxcUo3hHb1zaZhAMAqB4qtoRu4wZIGATEYBAiEAuZS1aLr1oRhBtMAzrt4MpBP8usvLH0WwIOYl/8CVbks=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":775720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0zkDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqmmA//ew8L0U9KeYLrdtOG0rip7B8rBoNghwOPyNiZKCs6mO0iDPAr\r\nHp/Uo1Ydnm24daZt8iwTA+vwZnxGLeEK3hB8T7flyrJaBA3SArXQeWsSicO0\r\nC9zuVKKjoHetAavwpESkQtwxjJDOEQs0IAOJYFVspODqjFPTC1oPK+xXB2xq\r\nnZX2bxYvafCgVWqCl6ISZlfs2mAqghChglX/5sru2f3hjLiI5H5cxk4hZFE7\r\nixB/BEt4mbA8xD1IVfk8gs3tay0li2qNUhG4ihRs6jkZIKIBD9+vdBv9vUnC\r\nOr+rNeZMeKuCMCo9kHiRQRgDNwAlPcAURgPNtD+X3aXZurW4e0+insmJcK4e\r\nH4jZdYkrEk8VJt3Tj3KDI9HjR97U/3OM8G6MNbp8atCkYYMsOWM+u72aY3yv\r\nd6vjvcPpragcs8USq2xM2/DBuZUlQlWUVumF2a/N56TLhhOTUhwP0JHnsFv8\r\n3ra+2JAbJO9QK+oq7hhy/PsOKSm6MBxOYmizznL+X8uXL4vQc35eRGxOrAqs\r\niND3Ph3b/rMKyk1I0QIEzZll5aMQyHCsJhDFpaTuCPgQ208jJ2g6WVjI0z+C\r\nEfxKTGIdn/8ecdB2+B4+3v2RtuMLIqwfjT2YVALMSojp7qWY5saoG4BM2oY6\r\n3T4pazfyv/l6eFO1j1pMRoSaEaRaXj9zhPE=\r\n=+lmm\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]}},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=12.2.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"1fbcf397574dc0f7f66266c76bcd9f123eeff5eb","scripts":{"perf":"cd test/performance && ts-node add-data.ts && ts-node todo.ts && ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd && cp dist/mutative.esm.js dist/mutative.esm.mjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && ts-node test/performance/benchmark.ts","build:doc":"rimraf docs && typedoc --out docs src/index.ts --readme none","performance":"yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","performance:basic":"cd test/performance && ts-node index.ts","performance:sample":"cd test/performance && ts-node sample.ts","performance:set-map":"cd test/performance && ts-node set-map.ts","performance:big-object":"cd test/performance && ts-node big-object.ts","performance:array-object":"cd test/performance && ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"6.14.17","description":"A JavaScript library for efficient creation of immutable state","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"14.21.2","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","tsdx":"^0.14.1","immer":"^9.0.18","redux":"^4.2.0","tslib":"^2.3.1","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^29.0.5","ts-node":"^10.9.1","typedoc":"^0.22.13","json2csv":"^5.0.7","prettier":"^2.5.1","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.2.4","size-limit":"^8.1.0","typescript":"^4.9.4","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^0.1.1","seamless-immutable":"^7.1.4","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.11.14","@typescript-eslint/parser":"^5.49.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.49.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.3.2_1674787074899_0.5937402265725773","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"mutative","version":"0.4.0","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.4.0","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"bb8030d0b19eb74d83781e726641d16b1c54ee74","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.4.0.tgz","fileCount":63,"integrity":"sha512-Cy+sfcvOCVrvFEiBE286Im2NVhtciPEll4ENX8rPDg5tGeSzPQ7B1x4KunjedRFIZnZmcFhiK4cCvojU64cBfw==","signatures":[{"sig":"MEUCIQDAmAAOD0wwzWBycuEwxm3+kEo8d8GM5OmnYQXVucpknwIgCQQAv/eNJnIY/PEiGBUbhDzSCcFIzVGWwhNG2KeNZT8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":808295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj1lIsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpU7g//TZioRn+DJhVYKjW9Tnr6fcXjewBmg5B3mKaGCa8oM0CaffdE\r\nHqmTDtb8px6EvWPv3LzjplwsaJxWOiA9SpJ55oLYw2GJaw/mh+6dG8lPa5LR\r\npFKCF3wPmMSL2AjOr2mx78RtwlV4Nfr3wa+ZQweKZzNS00CQJyV0ElTMXmBK\r\nWgISJO6KKH9Bv7zV9ra4l9OPX/YHnSa96yHviQE+Yt58XtZlNck86JXghTca\r\nwXObc54VmYFyRb2vL9enCB+SsVuPodDvz7Dbuj1dMUBzCX7uj+L8Hbgqux4U\r\nW9BsVJV1b4mqX0u+0wxERcpQhKX8xVnnF6cZHodfRv6djMk4141xJonzCmuJ\r\ni5nKE679wj9oDmGAJxzWe3PZU8wqT+DTuF7ltdbEc3FAU9NabWfb2hbX9BML\r\n3qgMavP/9o8CLqaPUlY5vMlehD8ZsvcvY1qhfRnnsC/uwsco/stUHlSLu7Nk\r\nHbIv5Z9JdMlP/YgkllZwwsuDNDHQ+f+HvLNScZIEMaJc0qmlHn/7wsvGgFln\r\nyp7rVJ6E9PAfo+9GvH8cLP5IULlrf5KMGjZqo06B77UkleLuqy8+rS3Wiebk\r\nS+ynn6+r6xjPbJjjiMxG7mEJLnH/EQ2FRPra1wUNHTJSHope1BXNmqwHaBgP\r\nNcjtkBHpfbNpAXVBWHtmP5Pg05jM4DTScec=\r\n=EN+O\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]}},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=12.2.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"46a4bd46d19d09d0e7cb1b3e84f88e72233a234f","scripts":{"perf":"cd test/performance && ts-node add-data.ts && ts-node todo.ts && ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd && cp dist/mutative.esm.js dist/mutative.esm.mjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && ts-node test/performance/benchmark.ts","build:doc":"rimraf docs && typedoc --out docs src/index.ts --readme none","performance":"yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","performance:basic":"cd test/performance && ts-node index.ts","performance:sample":"cd test/performance && ts-node sample.ts","performance:set-map":"cd test/performance && ts-node set-map.ts","performance:big-object":"cd test/performance && ts-node big-object.ts","performance:array-object":"cd test/performance && ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"6.14.17","description":"A JavaScript library for efficient creation of immutable state","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"14.21.2","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","tsdx":"^0.14.1","immer":"^9.0.19","redux":"^4.2.0","tslib":"^2.3.1","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^29.0.5","ts-node":"^10.9.1","typedoc":"^0.22.13","json2csv":"^5.0.7","prettier":"^2.5.1","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.2.4","size-limit":"^8.1.0","typescript":"^4.9.4","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^0.1.1","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.11.14","@typescript-eslint/parser":"^5.49.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.49.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.4.0_1674990123750_0.5930306713410054","host":"s3://npm-registry-packages"}},"0.4.1":{"name":"mutative","version":"0.4.1","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.4.1","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"7e71eb01ec24e5a8b031079588d5455fa16786e7","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.4.1.tgz","fileCount":63,"integrity":"sha512-V3z99IFyMfmGoEFoYWXgyEzPis3nsqu8SceQFgR2dKm+Rzn8lQBle/VjPF9sEh1xABxgJvCicQ82q0iwdj4E+A==","signatures":[{"sig":"MEUCIQDZXe1pcEAHDfi+p+IGIai3xuaz2Md2nj6gP2MXdc9hAQIgVfypPBr+v/t0waLVmPCpcRyxpofW89C5an/xrmRjJ8Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":824430,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj161fACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpTVQ/+K5JXc+PUyQ335cEJ3xxJ19Efjn32PPECqxNhPe+13kck+q2e\r\nf9bUbjUDxqD7r0fVRWLIzU7Wzvk1g+zUut/Im/08Sz98+sy6+zw2l0uowcCD\r\na5YVHkVhwILxBmJeayxvCFWKQ/AU5WdNudb/xgoJtONn6DCfD7yaTRz4v/GL\r\nocFpjPzWRH4Ku03R7599S3LXI2omTJuB8aFxP7b83bxHKi0/no5VvDtoTuIq\r\n1BJMVQwOT9zAX06bXUk2mjU64ToxTxyrEgznO9zGIZ7TSNMjsqdulJg7Bdzy\r\njy8Pu4mQG46Ap+2X2Qa/DULRscXv2gGhe/aQTqOv2tEfv9cm54Xh8d9WjRSV\r\ndgF7MbkNAFMz2P5Qaiq5EjBeUDsnuIobk+GUDxoS46DFrshGm/K81XAi+itN\r\n6ys5+BRod7tyGjnu/SuV6Bj8L4I/R3B/UFhfLOqJak6bjN7tmwXPJyjGKULg\r\n3y2ac02DB3PFd/F0cCLCJsQE2efSI7ciSoMEvBo3SLceO1+wU3gbE5wGjrrZ\r\nXOx4xEAtUbtfOKOm414KV0H/T/XlKvJqBi2AsMHfqCEqtNYwWoZKzsBQPeiE\r\n19XoCyKSPg0HR5Ga0Ig3g1koATs5wWd+vts5DMarLGHFEBDuf4Ax2kHdqFZo\r\nmMjHQYuFX8vQCSw73xnQ6gHxYg1gLzTN+7o=\r\n=v3Lh\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]}},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=12.2.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"0b8c2c1a58b7e3113bd1841d66e37a5f6bdbdfa9","scripts":{"perf":"cd test/performance && ts-node add-data.ts && ts-node todo.ts && ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd && cp dist/mutative.esm.js dist/mutative.esm.mjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && ts-node test/performance/benchmark.ts","build:doc":"rimraf docs && typedoc --out docs src/index.ts --readme none","performance":"yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","performance:basic":"cd test/performance && ts-node index.ts","performance:sample":"cd test/performance && ts-node sample.ts","performance:set-map":"cd test/performance && ts-node set-map.ts","performance:big-object":"cd test/performance && ts-node big-object.ts","performance:array-object":"cd test/performance && ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"6.14.17","description":"A JavaScript library for efficient creation of immutable state","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"14.21.2","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","tsdx":"^0.14.1","immer":"^9.0.19","redux":"^4.2.0","tslib":"^2.3.1","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^29.0.5","ts-node":"^10.9.1","typedoc":"^0.22.13","json2csv":"^5.0.7","prettier":"^2.5.1","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.2.4","size-limit":"^8.1.0","typescript":"^4.9.4","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^0.1.1","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.11.14","@typescript-eslint/parser":"^5.49.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.49.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.4.1_1675079007002_0.320307944049683","host":"s3://npm-registry-packages"}},"0.4.2":{"name":"mutative","version":"0.4.2","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.4.2","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"dacdae80c32f09b380979cfc534c4274f5a46079","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.4.2.tgz","fileCount":63,"integrity":"sha512-zAWi/R6mShx7Dr6SnT61Z2Wf2TKVbAVGPzoS8vbr/fK5X0e7hD4pglpLSCWNtA0jh3RoS0QsdjJCywbQpwef5g==","signatures":[{"sig":"MEUCIQDW1eJvhrYxD73soJeclmH9aU2pW59D3zYeqBTWCls7QwIgUjiS3AZih+JKsYhWfQDSW8SaZUCmjdkiIxdtol6hsb4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":844259,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj3+BBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrtcA//U5HKRaMEMP6ZNGzUDVSQ+9fKa0p/s/aWQabWKbRhsqlArMB+\r\n5yJIRORK/Y1DRUdib+7qaS8Ok8lLLrCo8DCs7z3ZhX1DXPAkqgxE5CbTbvcP\r\nJ7NcAXS7JtVS5jiztcs9sAWuXVL81t+w6Sv/jAodmCmCRJzqVt3i8+u1dg/C\r\n2Nhm9SKOYfem/4riioYI2ic9C1sBnOcJPDgraVGB/TAEYtp5P4dZzdbMjeV9\r\n5YpsCEPfJYY9KVfx18I+/hLxaWfqq8G5uCiek1WV8Lnl1gueHqqSIWUB1a1N\r\nrjWj7mkAStucaDmf+c++LPXjC6cMkLO8gC/RlPOicKDjRSxN1p04EFzxEFys\r\n6752O0vvg9vn+NisX3BWcNyihYVAZIBg8jnepIwQLTPEOh9JadoyoXG9EdYn\r\npVlM7gl0zkCaAeX8nv8VbBQZuDbfcVMeb+EhrOFVM7IzSxkOYuthr+lVFFfD\r\nJ+Nicag53Y1nvC2N0z4/oadg3975F3AJGVCo3idGvp6+ZqNUT2Sw6Dscd3sJ\r\nEk4fVtZDkvYlJ4nas9dD08YofnN5JxnUQQOj2pVlQcZJr5sYDnAJ4nN63WCx\r\nUlstfDepl7YQR/0Mgq24SOuoyVs1sKlC/bnPVRUESiUaCAOUtrL8f8YDtyuC\r\nQRbAwl2rB5JmAKMBlFxzZbeV95mwNuMahCI=\r\n=uBrg\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]}},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=12.2.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"ed7c7d154ee3157de90d6fa04a09fa81ebb776ef","scripts":{"perf":"cd test/performance && yarn ts-node-prod add-data.ts && yarn ts-node-prod todo.ts && yarn ts-node-prod incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd && cp dist/mutative.esm.js dist/mutative.esm.mjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn ts-node-prod test/performance/benchmark.ts","build:doc":"rimraf docs && typedoc --out docs src/index.ts --readme none","performance":"yarn build && yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","ts-node-prod":"NODE_ENV='production' ts-node","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","performance:basic":"cd test/performance && yarn ts-node-prod index.ts","performance:sample":"cd test/performance && yarn ts-node-prod sample.ts","performance:set-map":"cd test/performance && yarn ts-node-prod set-map.ts","performance:big-object":"cd test/performance && yarn ts-node-prod big-object.ts","performance:array-object":"cd test/performance && yarn ts-node-prod array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"6.14.17","description":"A JavaScript library for efficient creation of immutable state","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"14.21.2","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","tsdx":"^0.14.1","immer":"^9.0.19","redux":"^4.2.0","tslib":"^2.3.1","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^29.0.5","ts-node":"^10.9.1","typedoc":"^0.22.13","json2csv":"^5.0.7","prettier":"^2.5.1","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.2.4","size-limit":"^8.1.0","typescript":"^4.9.4","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^0.1.1","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.11.14","@typescript-eslint/parser":"^5.49.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.49.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.4.2_1675616321094_0.35271314476087845","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"mutative","version":"0.5.0","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.5.0","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"31fce5ac4e22316770067ff95d6a8ab4e7e2672d","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.5.0.tgz","fileCount":63,"integrity":"sha512-VrchxO6AMPjy2HyXvByMy14RVhlwdQGyKLEEMcnAd5JRCWnjtMcxabLVRG2mAweYrWTBex1TZXpFifV8oLGlVw==","signatures":[{"sig":"MEUCICFm/CgLgfqgpmwA8MmVOErogo8HGh9/pdls9ETTIE+HAiEAtMbrn+cG9QaQmDm7Hz7pBEuEoSUHMbKbw5x/Cr7nnIw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":875994,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIG9dACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo46A/9EMWpe+Oqu5NbBxgVZtIlWe2DdDYC9tmN8l2HBjmjg3HvVdeV\r\nv3gWu1EWe0SI14Fg5rrljPvD7lNlOzgt4REfkoMLCukp7Lf4uof5GVbFognh\r\nb3WmawLqUDwB3bntLk5akcr7FOH6P69SkNgiEIbEWZR8rwveriMvW4zhzVdI\r\nhBY7D0xPO2QSNINACe+xKWQfFRO6qPsOcmDs9yLEC2l2W/4G9bM68zFDgWRA\r\nMGaViDbTnbndE9T1Mxd0yMiJju/EjroyOrfBEQ+eFJhLN303dV/42qQXc/ZJ\r\neYX4bKk4ZJjUAA81Vqz1M6TSjk3EZwZ28yM9gYUIrlXJ+As+LMTqZ6UXFx+T\r\nx6oTKIuZtCi2SlrrBmVrv2v2pQ8bltkr/AC+GM3xMsadv9AkE3+Q1oDhHieF\r\nqx0PTf1UvXzsiaO3lMizKEqpjsPkFvY9pY8r1RGZTZByWBRYTSTMXHJG+3nr\r\nNdPB94CkMriZN3/vJLkzRkQDZt2AheCKgiCeAkKArFFoYUv6j8ixHoYwomho\r\nRr7GAFGi8YL5WVlCh1U6zxzRTGE4+BD4UasJ3EDHN1lIMAs/o0dt2vYHB4E0\r\n71r6S/FmevRI9LDhP/PCppR+0stSAP+gqsVJwrAKL6KssnTzCz9NxFG8gGVz\r\nBpZHOPxVIXQi04GhaH2JFOgH3U29nAgiigc=\r\n=e3c1\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]}},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=12.2.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"488418ed44487e17fdab2faee365cb4f6ae4fe9c","scripts":{"perf":"cd test/performance && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd && cp dist/mutative.esm.js dist/mutative.esm.mjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && NODE_ENV='production' ts-node test/performance/benchmark.ts","build:doc":"rimraf docs && typedoc --out docs src/index.ts --readme none","performance":"yarn build && yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"6.14.18","description":"A JavaScript library for efficient creation of immutable state","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"14.21.3","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","tsdx":"^0.14.1","immer":"^9.0.19","redux":"^4.2.0","tslib":"^2.3.1","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^29.0.5","ts-node":"^10.9.1","typedoc":"^0.22.13","json2csv":"^5.0.7","prettier":"^2.5.1","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^4.9.5","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.11.14","@typescript-eslint/parser":"^5.49.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.49.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.5.0_1679847261200_0.6244658182034517","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"mutative","version":"0.6.0","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.6.0","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"43a007237ee7dbec6ff7a6384de2e3510d6993e7","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.6.0.tgz","fileCount":65,"integrity":"sha512-TcEBPDJHauFxiLtrgDLZBn2lfW6FMKBcr7lyRHimwdznrqWsmXHLXnBjb+7mTLXRg6GebKWHV1v0qtSGvQp5Yw==","signatures":[{"sig":"MEUCIQCByhx+aUaYnRYpIGOEsIbOKNd/Hon78XcXjB4IELpgIgIgDedIScpRWpnzLbQMtjY9ONWy0VxSDHQ/Y8xCowt3R0M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":892821},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]}},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"1318dc7b947a456ecdcd52ab94fab30a42afc492","scripts":{"perf":"cd test/performance && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd && cp dist/mutative.esm.js dist/mutative.esm.mjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","performance":"yarn build && yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"6.14.18","description":"A JavaScript library for efficient creation of immutable state","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"14.21.3","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","tsdx":"^0.14.1","immer":"^10.0.2","redux":"^4.2.0","tslib":"^2.3.1","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.4","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.1.6","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.15.1","@typescript-eslint/parser":"^5.58.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.6.0_1690836301567_0.25497454329072333","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"mutative","version":"0.7.0","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.7.0","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"f69f2678ac8c47ad4098760f19c2ad12da4f4b78","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.7.0.tgz","fileCount":65,"integrity":"sha512-oSOC00Ku0abYGZ4Rao4PgWNaDJMIEpHsdyaX71tLPhiQLKSy26v8RYYcM+LVkVL2h1rfzxbcYwUWZks5xiwdNg==","signatures":[{"sig":"MEYCIQCUCvsw1wac0obMuAtfQrbGyoGwTcpUO8M9zT376qKgoAIhAKW1uwikAFmBJCMB7BuS0pQ9BnVQf//1ssM9IAU5wJ4D","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":905458},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]}},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"f968d85f3e0ae0d6704bc4b6e58a9493f41dd348","scripts":{"perf":"cd test/performance && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd && cp dist/mutative.esm.js dist/mutative.esm.mjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","performance":"yarn build && yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"9.8.1","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.18.2","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","tsdx":"^0.14.1","immer":"^10.0.3","redux":"^4.2.0","tslib":"^2.6.2","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.4","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.2.2","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.15.1","@typescript-eslint/parser":"^5.58.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.7.0_1699464650023_0.4507177978843031","host":"s3://npm-registry-packages"}},"0.7.1":{"name":"mutative","version":"0.7.1","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.7.1","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"ea64959342bc48612a248b53d99fdd5b7a0d086d","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.7.1.tgz","fileCount":65,"integrity":"sha512-R5EhjpPbUX9uTPn5GT1Nz6NqGdoeb5PfDy7AO3lKMEOH++XD1cljRM7WGA9JIKF2VZdigGGwrskxBc4RDSmGQQ==","signatures":[{"sig":"MEQCIB2/YX7S454qsfdFzzlq0T5cwFT64S2GwleQasYMdwibAiB8vNhNVc0Nm+NLhTQol/OQe3gVwPhPahvCwPUQc+L1lQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":897643},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]}},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"bc77b2464a42bd579337af757833eea338112951","scripts":{"perf":"cd test/performance && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd && cp dist/mutative.esm.js dist/mutative.esm.mjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","performance":"yarn build && yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"9.8.1","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.18.2","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","tsdx":"^0.14.1","immer":"^10.0.3","redux":"^4.2.0","tslib":"^2.6.2","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.4","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.2.2","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.15.1","@typescript-eslint/parser":"^5.58.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.7.1_1699541998779_0.018324740227945835","host":"s3://npm-registry-packages"}},"0.7.2":{"name":"mutative","version":"0.7.2","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.7.2","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"b48e8b6033898cdc93f0b23a32bf34bdc2677de8","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.7.2.tgz","fileCount":65,"integrity":"sha512-R+C5g9147aIUg7w+7Tz4aeHDfkwFhOIyWM8z9yhTMrfgWWvWx9u0A4+Ip5AVq9B3Cld3G04e4U/LhnJgdq4I+A==","signatures":[{"sig":"MEUCIHLlDMOy5NpFQM2a9gdnLf5Sci5KPRv4vxpYYfXyaYlcAiEA5ZlOhkhI6gKqSvexh2lWHlLfxiQ2YuhqwWdBmOZjY74=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":906676},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"7ac57725b3d9d31d5e1f4f3fafe00854d3d00169","scripts":{"perf":"cd test/performance && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd && cp dist/mutative.esm.js dist/mutative.esm.mjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","performance":"yarn build && yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"9.8.1","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.18.2","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","tsdx":"^0.14.1","immer":"^10.0.3","redux":"^4.2.0","tslib":"^2.6.2","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.4","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.3.2","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.15.1","@typescript-eslint/parser":"^5.58.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.7.2_1700986637671_0.8018320748081544","host":"s3://npm-registry-packages"}},"0.7.3":{"name":"mutative","version":"0.7.3","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.7.3","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"ab6c4c020e6012f5547f9ffbb704fb2522e1b811","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.7.3.tgz","fileCount":67,"integrity":"sha512-aDkmke2FAnWu8gG6W+mLpMbGRErPL/Sa0qXUNcSfpNAeQuiDnJWPO0fVHxNzdPruxyqU1vDiMpyY1i2MnpYSKQ==","signatures":[{"sig":"MEYCIQDbSpc9/I/ZPOXqPhgI5CsuGYSeaMfXFfy5KkTLhyIWNAIhAPDYrX8w3BE3HUrTIQy1QQboxFrwtJjGeJuiaessgzg/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@0.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":931250},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"169c5ab44a6b3f0c44dd6f1da023cf3292c3c425","scripts":{"perf":"cd test/performance && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","size":"size-limit","test":"jest","build":"tsdx build --format esm,cjs,umd && cp dist/mutative.esm.js dist/mutative.esm.mjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"9.8.1","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.18.2","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","tsdx":"^0.14.1","immer":"^10.0.3","redux":"^4.2.0","tslib":"^2.6.2","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^2.70.1","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.4","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.3.2","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.15.1","@typescript-eslint/parser":"^5.58.0","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.7.3_1701455931162_0.7253202110999311","host":"s3://npm-registry-packages"}},"0.7.4":{"name":"mutative","version":"0.7.4","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@0.7.4","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://github.com/unadlib/mutative#readme","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"0dd6f13c1bc4d8aa69c5466a183576e4342444f8","tarball":"https://registry.npmjs.org/mutative/-/mutative-0.7.4.tgz","fileCount":68,"integrity":"sha512-DfycgdnmgnPSDPUZQtvjbCqj2/KXibec2Ua//QoMQEVJdgqOgmaUEGsTDQf5AmMCjBaez0xZOJwdNfzWSDphTQ==","signatures":[{"sig":"MEYCIQCH89rTVrcEDpiX1VTk/U4d2tE7akWkt1NaObZw8FXZqwIhAIXz7V844hFOoqOt/uXZPUwFAWS+sMv13IbYRCNitEeS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@0.7.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":653903},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"64b80840994d66c36ee358754bb007cb4422fde8","scripts":{"perf":"cd test/performance && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.2.3","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.19.0","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","immer":"^10.0.3","redux":"^4.2.0","tslib":"^2.6.2","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.4","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.3.2","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.15.1","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^5.58.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_0.7.4_1702665621250_0.2622446690556084","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"mutative","version":"1.0.0","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.0.0","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"3efc40dc7c6833cd916afbb491f09060f9689bfd","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.0.0.tgz","fileCount":68,"integrity":"sha512-UiqQeGPjJo06wTHuMMEc4zpB+eLukw6JdQIC5xzzkNvcrC+wLjkWXyFPECGJu8xn48hIsPBdld//3fsd/4MgDA==","signatures":[{"sig":"MEQCICT0bGD6nMxBIUhL0/U2VFeoBAyfhY3GQAPvt8QFL9sbAiA0ZqDkJgBWKoLfmnDS+E7kRCNtqKIJtzlq9UejSdxuxA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":654134},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"70e2c812e89d5bc5173ebe5069568171d16d1f1c","scripts":{"perf":"cd test/performance && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.2.3","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.19.0","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","immer":"^10.0.3","redux":"^4.2.0","tslib":"^2.6.2","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.4","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.3.2","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.15.1","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^5.58.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.0.0_1702669615747_0.281266004240609","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"mutative","version":"1.0.1","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.0.1","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"57f93ea757dda9c1a9f81f985cbcf7c1d2e0e2e6","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.0.1.tgz","fileCount":68,"integrity":"sha512-ZGIHEFfZIvPEuygTkmT18aLsmArkPd1sw510c7+3aldWDhoQAVj+lxCngJxemZXHI+x7vlEfiRFFKlfzq5cmcg==","signatures":[{"sig":"MEYCIQD8KcIxQrpdX8dkI3v7VeIxVVYgRChUxYnG3jLz4d6E+gIhAPKOUOFihVFemB/KdK0/VdUuHkVtvnOmke+6mMTNOL3B","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":655438},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"5e567cde57f869c79dc672917d155914be43edbb","scripts":{"perf":"cd test/performance && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.2.3","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.19.0","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","immer":"^10.0.3","redux":"^4.2.0","tslib":"^2.6.2","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.4","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.3.2","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.15.1","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^5.58.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.0.1_1703358992608_0.26056268909997304","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"mutative","version":"1.0.2","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.0.2","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"acba4a17bace5029bb2efdb5cbfd2fc56fa150b6","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.0.2.tgz","fileCount":68,"integrity":"sha512-fNndMP48ydJOLi7xWLX6RDr5kl7kQNuffALHqeIMn9e+TTj4zPzI3nPCQWtNUspmgdrjrgOJBx3n9gffQr1BXw==","signatures":[{"sig":"MEUCIHU4Qk3M5TWW17Y32pdBREcwgtA6/+nA7HVmno++pc4rAiEA2fJQ3yihji7uF/6q+fK66eKXKuRPKwLmR7wGneMu2UU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":658313},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"5a7e68538b8bee8d13c480ecc92474045e93b702","scripts":{"perf":"cd test/performance && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.2.3","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.19.0","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.0","immer":"^10.0.3","redux":"^4.2.0","tslib":"^2.6.2","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.4","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.3.2","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.15.1","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^5.58.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.0.2_1703515500131_0.09108317132268295","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"mutative","version":"1.0.3","keywords":["mutative","immutable","mutable","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.0.3","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"43d9d5584826bfa4b4aaed4111e93516dae05b37","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.0.3.tgz","fileCount":68,"integrity":"sha512-2DW6gxEtV+6108QajMBVZZd9OGb0sxih8GvM+SWT71qSLTU1UNCAUWGgRw5T7+i2xGN48WDJcQpPitp5SWqM8Q==","signatures":[{"sig":"MEQCIDK0NXEDIP0hSxvrlnVCGR8ZReVDjDp/XqRzxCP42SvYAiBh8XeVhY5PkyEM3aDu4M0/knPeEMXJJ5XleJvfRy6FVQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":660804},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"f0b56f25dbfafe439b7604e263d5934fdfcca9ef","scripts":{"perf":"cd test/performance && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array && yarn benchmark:class","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn perf && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:class":"NODE_ENV='production' ts-node test/performance/benchmark-class.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.2.3","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.19.0","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","immer":"^10.0.3","redux":"^4.2.0","tslib":"^2.6.2","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","typedoc":"^0.24.4","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.3.2","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.15.1","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^5.58.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.0.3_1706031489312_0.44552282056407555","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"mutative","version":"1.0.4","keywords":["immutable","mutable","copy-on-write","mutative","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.0.4","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"90c44f72a90c4d449e64170cbe0855dae8eeead7","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.0.4.tgz","fileCount":68,"integrity":"sha512-pfd+Tz+b4W8MZtfisus32joGb5tz8MXKensi57mxChZirxv/gGsu91fp8ZCIRTWYG144buGkV386i6up4N3h0g==","signatures":[{"sig":"MEYCIQCqpa7krmBa5sCVxL7HxnI1RWKj+JUn5lvs/r0Wte4HYQIhAIHw9rHKFTvE7PKnNpcrAocysIROXmiWnVUzQzlwVx4z","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":663454},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"77d23a9bc3b379220f6e444d49486de0feebdb6c","scripts":{"size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array && yarn benchmark:class","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn performance:immer && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","all-benchmark":"NODE_ENV='production' ts-node test/benchmark/index.ts","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:class":"NODE_ENV='production' ts-node test/performance/benchmark-class.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:immer":"cd test/__immer_performance_tests__ && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.5.0","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.20.1","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","immer":"^10.0.4","redux":"^4.2.0","tslib":"^2.6.2","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","typedoc":"^0.24.4","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.3.2","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","lodash.clonedeep":"^4.5.0","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.15.1","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^5.58.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.0.4_1713288869919_0.08241070402236428","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"mutative","version":"1.0.5","keywords":["immutable","mutable","copy-on-write","mutative","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.0.5","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"62b879a521212e4e7539c697e35814533f08d52c","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.0.5.tgz","fileCount":68,"integrity":"sha512-uN4rD54sN8NRG2wuIO3K8nI0sB4Kk/wmjG5UbZa3amFU3bdF1k80OojBGQMomCeEIphq2hzIvK5T7f4hoZdkWA==","signatures":[{"sig":"MEUCIBV4aLJ58HMOTsDrhQPiCOkTHVKh92IMQYWaOrjONVy0AiEAwz1VB6IpPDC5XLBzTj2eaD5rZpcZnzfQLuyiAnoHTQw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":664573},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"603f2eceb8f3f19f9043f464aae960a2a8082dca","scripts":{"size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array && yarn benchmark:class","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn performance:immer && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","all-benchmark":"NODE_ENV='production' ts-node test/benchmark/index.ts","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:class":"NODE_ENV='production' ts-node test/performance/benchmark-class.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:immer":"cd test/__immer_performance_tests__ && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.5.0","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.20.2","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","immer":"^10.0.4","redux":"^4.2.0","tslib":"^2.6.2","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","typedoc":"^0.24.4","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.3.2","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","lodash.clonedeep":"^4.5.0","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.15.1","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^5.58.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.0.5_1713518067448_0.038665449460866474","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"mutative","version":"1.0.6","keywords":["immutable","mutable","copy-on-write","mutative","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.0.6","homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"9588df4b67b68a0fc012c2615a21e42993514e8a","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.0.6.tgz","fileCount":68,"integrity":"sha512-6mcjGc09LGNQizP/in3NYbNFWwor2cMozm/W0fSXS+lhQXsrvRmZ2xG6MGW6aft6xBjrM8wT3pORO1eCZujMxw==","signatures":[{"sig":"MEQCIF4uOcyGirT+pb7Qg4Fg+ZCcN0h8T5aOHhFuSVwnDI4bAiAcxuflFYemXlaZFTpn9FR3GEte2uLOJFQmElTunMDOQw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":668639},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"1887eace2bd7abca1f08e456fa63d66f7ec61c5c","scripts":{"size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array && yarn benchmark:class","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn performance:immer && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","all-benchmark":"yarn build && NODE_ENV='production' ts-node test/benchmark/index.ts","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:class":"NODE_ENV='production' ts-node test/performance/benchmark-class.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:immer":"cd test/__immer_performance_tests__ && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:read-only":"yarn build && NODE_ENV='production' ts-node test/performance/read-draft/index.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.7.0","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.20.3","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","immer":"^10.1.1","redux":"^4.2.0","tslib":"^2.6.2","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","typedoc":"^0.24.4","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.3.2","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","lodash.clonedeep":"^4.5.0","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^3.15.1","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^5.58.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.0.6_1718910845701_0.8380170679743117","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"mutative","version":"1.0.7","keywords":["immutable","mutable","copy-on-write","mutative","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.0.7","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"61bb72e8b271fdbdae4e49411bdadf9b973a64ce","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.0.7.tgz","fileCount":68,"integrity":"sha512-5pKxmcpNfb3h8k23c8u/amcoesLXn6eZaXett9FV0G9xpIOOVxsjlVptHnHc/0ZtJy2VsHBtdx76vZONnupwRQ==","signatures":[{"sig":"MEUCIHKxMIkYKg/PpwkwSD9L4sRRyLK636fTcKkkWka067TWAiEAxeMSiDRNpEyDK4lW+lfqyBijbj6AjMarAyX1aehxOzE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":668022},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"0d1cb6dfaf08bfd45f5ecfafc0c6f401aa42e19b","scripts":{"size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array && yarn benchmark:class","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn performance:immer && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","all-benchmark":"yarn build && NODE_ENV='production' ts-node test/benchmark/index.ts","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:class":"NODE_ENV='production' ts-node test/performance/benchmark-class.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:immer":"cd test/__immer_performance_tests__ && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:read-only":"yarn build && NODE_ENV='production' ts-node test/performance/read-draft/index.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.7.0","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.20.4","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","immer":"^10.1.1","redux":"^5.0.1","tslib":"^2.6.3","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","typedoc":"^0.26.3","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.5.3","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","lodash.clonedeep":"^4.5.0","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^4.1.2","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^5.58.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.0.7_1721845199593_0.9514506489224865","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"mutative","version":"1.0.8","keywords":["immutable","mutable","copy-on-write","mutative","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.0.8","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"5dfc7a74bdda8acc5b3c1d91aba47d95f2b2dd3a","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.0.8.tgz","fileCount":68,"integrity":"sha512-bVVGCfEQTJDbsa+L1LX3jJftFnWZWfH0XIM+h/rJYnjgof3ZimBSuF/mOrh/NJI7H4pWGoji+DDuurPGpUZofw==","signatures":[{"sig":"MEYCIQDZjI+776kvPhWhMLpXVUuxvLo6P2f4Uj3BTYGq5+2GtAIhAKRcqloroLyKtuaIPWtCUAnLS807vJlEEUNuu0SnVDW9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":672458},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"ba367eaa22daa5bbd3c69c52bef3ec0ffe9a4699","scripts":{"size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array && yarn benchmark:class","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn performance:immer && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","all-benchmark":"yarn build && NODE_ENV='production' ts-node test/benchmark/index.ts","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:class":"NODE_ENV='production' ts-node test/performance/benchmark-class.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:immer":"cd test/__immer_performance_tests__ && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:read-only":"yarn build && NODE_ENV='production' ts-node test/performance/read-draft/index.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.7.0","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.20.4","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","immer":"^10.1.1","redux":"^5.0.1","tslib":"^2.6.3","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","typedoc":"^0.26.3","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.5.3","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","lodash.clonedeep":"^4.5.0","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^4.1.2","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^5.58.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.0.8_1722027910333_0.6195103666593138","host":"s3://npm-registry-packages"}},"1.0.9":{"name":"mutative","version":"1.0.9","keywords":["immutable","mutable","copy-on-write","mutative","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.0.9","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"4e99ee46478f8ace11927adbb1a759b3f36ffb4b","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.0.9.tgz","fileCount":68,"integrity":"sha512-o6Y0VnakFjr1Z8JtipQqg1MvOpCHNnaFNEWYt9EopSYW3fX/FFKklLPK1YB9Ksz2gSEe3V6Y7hCcWQqK6rb8Iw==","signatures":[{"sig":"MEQCIAEypsNGINUBYyYQWQDhxPlGvVYbLdotmoSezMcfK5yzAiApgUsg0tnynywWRU/umauWaZDkM5QrPkl8obLdt/m/nA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":672692},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"807d85deefed013414c87d5b936a4a37727d7dcb","scripts":{"size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array && yarn benchmark:class","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn performance:immer && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","all-benchmark":"yarn build && NODE_ENV='production' ts-node test/benchmark/index.ts","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:class":"NODE_ENV='production' ts-node test/performance/benchmark-class.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:immer":"cd test/__immer_performance_tests__ && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:read-only":"yarn build && NODE_ENV='production' ts-node test/performance/read-draft/index.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.7.0","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.20.4","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","immer":"^10.1.1","redux":"^5.0.1","tslib":"^2.6.3","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","typedoc":"^0.26.3","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.5.3","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","lodash.clonedeep":"^4.5.0","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^4.1.2","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^5.58.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.0.9_1726569149789_0.39911272351390914","host":"s3://npm-registry-packages"}},"1.0.10":{"name":"mutative","version":"1.0.10","keywords":["immutable","mutable","copy-on-write","mutative","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.0.10","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"d4c349867463e70e9c34718a65cefad479f28eb0","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.0.10.tgz","fileCount":68,"integrity":"sha512-YD4MEleW9vJyIVEItz6x71fWdJ9qea3+R8hxtNiei8cQ7BGLM1c9Q6zCJ7SuLzorBhd2PBHN+xUEwEahxMI34w==","signatures":[{"sig":"MEQCIEfPVlY4ZJZShqP7ji3DYOOboFySb3jianqFYF3HkMF8AiAqSBKn25JtWgHoeElIYVt0b4kCYOWbijhqle9qsgd90A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.0.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":679298},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"2eda9479872e1d8a0be19381bc19f896f042db0a","scripts":{"size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array && yarn benchmark:class","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn performance:immer && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","all-benchmark":"yarn build && NODE_ENV='production' ts-node test/benchmark/index.ts","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:class":"NODE_ENV='production' ts-node test/performance/benchmark-class.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:immer":"cd test/__immer_performance_tests__ && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:read-only":"yarn build && NODE_ENV='production' ts-node test/performance/read-draft/index.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.7.0","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.20.4","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","immer":"^10.1.1","redux":"^5.0.1","tslib":"^2.6.3","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","typedoc":"^0.26.3","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.5.3","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","lodash.clonedeep":"^4.5.0","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^4.1.2","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^5.58.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.0.10_1726668412500_0.35281198525898305","host":"s3://npm-registry-packages"}},"1.0.11":{"name":"mutative","version":"1.0.11","keywords":["immutable","mutable","copy-on-write","mutative","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.0.11","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"a03b48151800129fbc464257eff9ffa869c648a8","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.0.11.tgz","fileCount":68,"integrity":"sha512-DfxsNvHfJlxp5yul7jhcNSI0EEWlP1vatiOr6Q7cvr8RNFBbIU5nENilUULbNJiOtbXznOxgbxHf4cYbqPDPlg==","signatures":[{"sig":"MEQCIHwGXglG4ZY+gpOebqyWmF1U5lzKimSVlEndKSrqI8SrAiAO/2jq6mLT+momh5mS8+wwSekHylwqJsvZ1q0CtWccGw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.0.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":681877},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"da40c5c01591c0a4f3edfc0b8c0cb0c32342d4d3","scripts":{"size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array && yarn benchmark:class","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","performance":"yarn build && yarn performance:immer && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","all-benchmark":"yarn build && NODE_ENV='production' ts-node test/benchmark/index.ts","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:class":"NODE_ENV='production' ts-node test/performance/benchmark-class.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:immer":"cd test/__immer_performance_tests__ && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:read-only":"yarn build && NODE_ENV='production' ts-node test/performance/read-draft/index.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.7.0","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"18.20.4","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","immer":"^10.1.1","redux":"^5.0.1","tslib":"^2.6.3","yargs":"^17.3.1","eslint":"^8.11.0","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","typedoc":"^0.26.3","json2csv":"^5.0.7","prettier":"^2.8.7","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^8.1.0","typescript":"^5.5.3","@types/jest":"^29.4.0","@types/node":"^17.0.21","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","lodash.clonedeep":"^4.5.0","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^8.2.6","@size-limit/webpack":"^8.1.0","eslint-plugin-react":"^7.32.1","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","rollup-plugin-terser":"^7.0.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^8.5.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^8.1.0","typedoc-plugin-markdown":"^4.1.2","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^5.58.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.0.11_1727374033072_0.21386620994481698","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"mutative","version":"1.1.0","keywords":["immutable","mutable","copy-on-write","mutative","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.1.0","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"ff3e12a9903702e0487428510f8502dd4667e908","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.1.0.tgz","fileCount":68,"integrity":"sha512-2PJADREjOusk3iJkD3rXV2YjAxTuaLxdfqtqTEt6vcY07LtEBR1seHuBHXWEIuscqRDGvbauYPs+A4Rj/KTczQ==","signatures":[{"sig":"MEUCIQCx2y2bjfYrPx9ThktSfDVu6T61cPBGF+Sj6GGxrD2nEgIgQdUQmRIaFJote1UYNuFOtgVEJ0LbJYbQcxknGRjZcwQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":713678},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"9410f7de1fc562eeb5164ca176f675a7b51900b0","scripts":{"size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array && yarn benchmark:class","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","type-check":"tsc --noEmit","performance":"yarn build && yarn performance:immer && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","all-benchmark":"yarn build && NODE_ENV='production' ts-node test/benchmark/index.ts","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:class":"NODE_ENV='production' ts-node test/performance/benchmark-class.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:immer":"cd test/__immer_performance_tests__ && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:read-only":"yarn build && NODE_ENV='production' ts-node test/performance/read-draft/index.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.8.2","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"20.18.0","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","immer":"^10.1.1","redux":"^5.0.1","tslib":"^2.7.0","yargs":"^17.7.2","eslint":"^9.11.1","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typedoc":"^0.26.7","json2csv":"^5.0.7","prettier":"^3.3.3","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^11.1.6","typescript":"^5.6.3","@types/jest":"^29.5.13","@types/node":"^22.7.4","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","lodash.clonedeep":"^4.5.0","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^11.1.6","@size-limit/webpack":"^11.1.6","eslint-plugin-react":"^7.37.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.30.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^9.1.0","eslint-plugin-jsx-a11y":"^6.10.0","eslint-plugin-prettier":"^5.2.1","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^11.1.6","typedoc-plugin-markdown":"^4.2.8","@rollup/plugin-typescript":"^11.1.5","@typescript-eslint/parser":"^8.8.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^11.1.6","@typescript-eslint/eslint-plugin":"^8.8.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.1.0_1732299496173_0.04758668925470455","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"mutative","version":"1.2.0","keywords":["immutable","mutable","copy-on-write","mutative","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.2.0","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"db75b60b436ad0a940e2e47bffb6661dd77c2754","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.2.0.tgz","fileCount":68,"integrity":"sha512-1muFw45Lwjso6TSBGiXfbjKS01fVSD/qaqBfTo/gXgp79e8KM4Sa1XP/S4iN2/DvSdIZgjFJI+JIhC7eKf3GTg==","signatures":[{"sig":"MEUCIQCFVTxDhugcghYwH8TqV/Ls9NhRlSaad0Pf0S+/jPFjcgIgCMLdSlubfeskbdlGyqvWewVyisGL2HF9h2EQLBIsGWI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":719495},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"433c9ed41483086b31c2f3a7addb5208aef29f40","scripts":{"size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array && yarn benchmark:class","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","type-check":"tsc --noEmit","performance":"yarn build && yarn performance:immer && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","all-benchmark":"yarn build && NODE_ENV='production' ts-node test/benchmark/index.ts","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:class":"NODE_ENV='production' ts-node test/performance/benchmark-class.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","benchmark:reducer":"NODE_ENV='production' ts-node test/performance/benchmark-reducer.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:immer":"cd test/__immer_performance_tests__ && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:read-only":"yarn build && NODE_ENV='production' ts-node test/performance/read-draft/index.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.8.2","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"20.19.1","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","immer":"^10.1.1","redux":"^5.0.1","tslib":"^2.8.1","yargs":"^17.7.2","eslint":"^9.11.1","lodash":"^4.17.21","rimraf":"^3.0.2","rollup":"^4.9.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typedoc":"^0.28.4","json2csv":"^5.0.7","prettier":"^3.3.3","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^4.0.0","commitizen":"^4.3.0","size-limit":"^11.1.6","typescript":"^5.8.3","@types/jest":"^29.5.13","@types/node":"^22.7.4","deep-freeze":"^0.0.1","jsdoc-tests":"^1.1.0","quickchart-js":"^3.1.2","fast-json-patch":"^3.1.1","lodash.clonedeep":"^4.5.0","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^11.1.6","@size-limit/webpack":"^11.1.6","eslint-plugin-react":"^7.37.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.30.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^5.0.5","eslint-config-prettier":"^9.1.0","eslint-plugin-jsx-a11y":"^6.10.0","eslint-plugin-prettier":"^5.2.1","@rollup/plugin-commonjs":"^25.0.7","@size-limit/esbuild-why":"^8.2.6","@size-limit/webpack-why":"^11.1.6","typedoc-plugin-markdown":"^4.6.3","@rollup/plugin-typescript":"^12.1.1","@typescript-eslint/parser":"^8.15.0","@rollup/plugin-node-resolve":"^15.2.3","@size-limit/preset-small-lib":"^11.1.6","@typescript-eslint/eslint-plugin":"^8.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.2.0_1747925867273_0.5914517356877758","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"mutative","version":"1.3.0","keywords":["immutable","mutable","copy-on-write","mutative","immutability","mutation"],"author":{"name":"unadlib"},"license":"MIT","_id":"mutative@1.3.0","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"homepage":"https://mutative.js.org/","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"9cb4f216813267487fadfae794881ed6ee69f444","tarball":"https://registry.npmjs.org/mutative/-/mutative-1.3.0.tgz","fileCount":68,"integrity":"sha512-8MJj6URmOZAV70dpFe1YnSppRTKC4DsMkXQiBDFayLcDI4ljGokHxmpqaBQuDWa4iAxWaJJ1PS8vAmbntjjKmQ==","signatures":[{"sig":"MEYCIQDaPf7TOmo5jhJw4h4GZnSZDJii43MYAa33hfOHet1qIAIhAKcVZed3JqFwIFxpaPbys4RH8EuCRQFDZVquw8oqMztn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":705484},"jest":{"preset":"ts-jest","globals":{"__DEV__":true},"transform":{"\\.[jt]sx?$":["ts-jest",{"tsconfig":{"noUnusedLocals":false,"noImplicitReturns":false,"noUnusedParameters":false,"noFallthroughCasesInSwitch":false}}]},"coveragePathIgnorePatterns":["<rootDir>/test/"]},"main":"dist/index.js","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/mutative.esm.mjs","require":"./dist/index.js"},"./*":"./*"},"gitHead":"01945e3274e9730706799e4d432c22248a6bdeb1","scripts":{"size":"size-limit","test":"jest","build":"yarn clean && rollup --config --bundleConfigAsCjs","clean":"rimraf dist","commit":"yarn git-cz","analyze":"size-limit --why","prettier":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","benchmark":"yarn build && yarn benchmark:base && yarn benchmark:object && yarn benchmark:array && yarn benchmark:class","build:doc":"rimraf docs && typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts --readme none","start:docs":"cd website && yarn run start","type-check":"tsc --noEmit","performance":"yarn build && yarn performance:immer && yarn performance:basic && yarn performance:set-map && yarn performance:big-object && yarn performance:sample && yarn performance:array-object","publish:docs":"yarn clean && cd website && GIT_USER=unadlib USE_SSH=true yarn run deploy","all-benchmark":"yarn build && NODE_ENV='production' ts-node test/benchmark/index.ts","test:coverage":"jest --coverage && coveralls < coverage/lcov.info","benchmark:base":"NODE_ENV='production' ts-node test/performance/benchmark.ts","benchmark:array":"NODE_ENV='production' ts-node test/performance/benchmark-array.ts","benchmark:class":"NODE_ENV='production' ts-node test/performance/benchmark-class.ts","benchmark:object":"NODE_ENV='production' ts-node test/performance/benchmark-object.ts","benchmark:reducer":"NODE_ENV='production' ts-node test/performance/benchmark-reducer.ts","performance:basic":"cd test/performance && NODE_ENV='production' ts-node index.ts","performance:immer":"cd test/__immer_performance_tests__ && NODE_ENV='production' ts-node add-data.ts && NODE_ENV='production' ts-node todo.ts && NODE_ENV='production' ts-node incremental.ts","performance:sample":"cd test/performance && NODE_ENV='production' ts-node sample.ts","performance:set-map":"cd test/performance && NODE_ENV='production' ts-node set-map.ts","performance:read-only":"yarn build && NODE_ENV='production' ts-node test/performance/read-draft/index.ts","performance:big-object":"cd test/performance && NODE_ENV='production' ts-node big-object.ts","performance:array-object":"cd test/performance && NODE_ENV='production' ts-node array-object.ts"},"_npmUser":{"name":"unadlib","email":"unadlib@gmail.com"},"jsdelivr":"dist/mutative.umd.production.min.js","umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"path":"dist/mutative.cjs.production.min.js","limit":"5 KB"},{"path":"dist/mutative.esm.js","limit":"5 KB"}],"_npmVersion":"10.8.2","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","_nodeVersion":"20.19.5","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.1.1","immer":"^10.1.3","redux":"^5.0.1","tslib":"^2.8.1","yargs":"^17.7.2","eslint":"^9.34.0","lodash":"^4.17.21","rimraf":"^6.0.1","rollup":"^4.49.0","ts-jest":"^29.4.1","ts-node":"^10.9.2","typedoc":"^0.28.12","json2csv":"^5.0.7","prettier":"^3.6.2","benchmark":"^2.1.4","coveralls":"^3.1.1","immutable":"^5.1.3","commitizen":"^4.3.1","size-limit":"^11.1.6","typescript":"^5.8.3","@types/jest":"^30.0.0","@types/node":"^24.0.13","deep-freeze":"^0.0.1","jsdoc-tests":"^1.2.1","quickchart-js":"^3.1.3","fast-json-patch":"^3.1.1","lodash.clonedeep":"^4.5.0","seamless-immutable":"^7.1.4","@size-limit/esbuild":"^11.1.6","@size-limit/webpack":"^11.1.6","eslint-plugin-react":"^7.37.5","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.30.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.0","eslint-plugin-prettier":"^5.2.1","@rollup/plugin-commonjs":"^28.0.6","@size-limit/esbuild-why":"^11.2.0","@size-limit/webpack-why":"^11.1.6","typedoc-plugin-markdown":"^4.8.1","@rollup/plugin-typescript":"^12.1.4","@typescript-eslint/parser":"^8.43.0","@rollup/plugin-node-resolve":"^16.0.1","@size-limit/preset-small-lib":"^11.1.6","@typescript-eslint/eslint-plugin":"^8.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mutative_1.3.0_1758470579287_0.42186499881836514","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"_id":"mutative@2.0.0","bugs":{"url":"https://github.com/unadlib/mutative/issues"},"dist":{"shasum":"18394811ace8222089848742eb8c25039ed93fa5","tarball":"https://registry.npmjs.org/mutative/-/mutative-2.0.0.tgz","fileCount":76,"integrity":"sha512-HCb6TyEvwUChR3K+sssLk2LqEAOobSlu1ZATUvoa7Kh952kzhyX+huPddmIFc0LYEctFRJb0+ioQybKMkFLO6A==","signatures":[{"sig":"MEUCIGW03iTxU0H9v32N42IN3g8NKij/ieH9AacDIxMbZZXiAiEAo1yBW+ZlOm0jJIFCu/0/0cQbpSzTTeUVuJGAFNhKyOo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD2JQFbUnZujCHJ2dgcdI/Yt6IEvSnB7oe6CDTTH9+S+gIgUOYExIkcvQbjwyPlQgXQLJ+DctebCvKiz9Q7QofoWQQ="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mutative@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":951110},"main":"dist/index.js","name":"mutative","types":"dist/index.d.ts","unpkg":"dist/mutative.umd.production.min.js","author":{"name":"unadlib"},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/mutative.esm.js","source":"src/index.ts","engines":{"node":">=14.0"},"exports":{".":{"import":{"node":"./dist/index.mjs","types":"./dist/index.d.mts","default":"./dist/mutative.esm.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./*":"./*"},"gitHead":"7bd3fcfdfd0399c0a96fa3aeea31682e9af9f4f3","license":"MIT","scripts":{"lint":"oxlint","size":"size-limit && pnpm size:compare","test":"vitest run","build":"pnpm run clean && tsdown && tsc --noEmit false --emitDeclarationOnly --outDir dist && node scripts/write-package-entries.mjs","clean":"rimraf dist","commit":"git-cz","format":"oxfmt \"src/**/*.ts\" \"test/**/*.ts\"","analyze":"size-limit --why","build:doc":"rimraf docs && typedoc","start:docs":"cd website && pnpm run dev","type-check":"tsc --noEmit && tsc --noEmit -p test","benchmark:ci":"pnpm build && node perf-testing/ci.mjs","publish:docs":"pnpm run clean && cd website && pnpm run deploy","size:compare":"node scripts/check-build-size.mjs","test:package":"node scripts/check-package.mjs","build:analyze":"ANALYZE=true pnpm build","profile:immer":"pnpm build && pnpm benchmark:immer:build && node --expose-gc --enable-source-maps perf-testing/dist/immutability-profiling.mjs","test:api-docs":"node scripts/check-api-docs.mjs","test:coverage":"vitest run --coverage && coveralls < coverage/lcov.info","benchmark:immer":"pnpm build && pnpm benchmark:immer:build && node perf-testing/run-benchmarks.mjs","test:benchmarks":"node --expose-gc --test perf-testing/*.test.mjs","benchmark:memory":"pnpm build && pnpm benchmark:immer:build && node perf-testing/run-memory.mjs","test:build-watch":"node scripts/check-build-watch.mjs","benchmark:immer:build":"node perf-testing/build.mjs","benchmark:immer:check":"pnpm build && pnpm benchmark:immer:build && node --expose-gc --enable-source-maps perf-testing/dist/immutability-benchmarks.mjs --check --patches both","profile:immer:analyze":"node perf-testing/read-cpuprofile.mjs"},"version":"2.0.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"156124d8-d238-4222-a3df-f80d5b977171"}},"homepage":"https://mutative.js.org/","jsdelivr":"dist/mutative.umd.production.min.js","keywords":["immutable","mutable","copy-on-write","mutative","immutability","mutation"],"umd:main":"dist/mutative.umd.production.min.js","repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"size-limit":[{"name":"production CJS, all exports","path":"dist/mutative.cjs.production.min.js","limit":"8.7 KB","import":"*"},{"name":"ESM, create","path":"dist/mutative.esm.mjs","limit":"7.7 KB","import":"{ create }"},{"name":"ESM, all exports","path":"dist/mutative.esm.mjs","limit":"8.6 KB","import":"*"}],"_npmVersion":"11.19.0","description":"A JavaScript library for efficient immutable updates","directories":{},"jsnext:main":"dist/mutative.esm.js","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"_nodeVersion":"24.21.0","react-native":"dist/mutative.esm.js","_hasShrinkwrap":false,"packageManager":"pnpm@12.6.0","devDependencies":{"immer":"11.1.18","oxfmt":"^0.70.0","redux":"^5.0.1","tslib":"^2.8.1","yargs":"^17.7.2","lodash":"^4.17.21","mitata":"1.0.34","oxlint":"^1.85.0","rimraf":"^6.0.1","terser":"5.34.1","tsdown":"^0.23.0","vitest":"^5.0.1","esbuild":"0.24.0","publint":"^0.3.24","typedoc":"^0.28.12","coveralls":"^3.1.1","commitizen":"^4.3.1","size-limit":"^11.1.6","typescript":"^5.8.3","@types/node":"^24.0.13","deep-freeze":"^0.0.1","mutative-v1":"npm:mutative@1.3.0","typescript-5.0":"npm:typescript@5.0.4","fast-json-patch":"^3.1.1","@size-limit/esbuild":"^11.1.6","@size-limit/webpack":"^11.1.6","@vitest/coverage-v8":"^5.0.1","vite-bundle-analyzer":"^1.3.2","@arethetypeswrong/cli":"^0.18.5","@size-limit/esbuild-why":"^11.2.0","@size-limit/webpack-why":"^11.1.6","typedoc-plugin-markdown":"^4.8.1","@size-limit/preset-small-lib":"^11.1.6"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mutative_2.0.0_1791826336412_0.8006921405171454"}}},"time":{"created":"2022-03-05T18:14:50.200Z","modified":"2026-10-12T17:32:16.848Z","0.0.1":"2022-03-05T18:14:50.365Z","0.1.0":"2022-11-29T16:26:00.163Z","0.2.0":"2022-12-20T17:26:11.242Z","0.2.1":"2022-12-22T13:37:05.896Z","0.2.2":"2023-01-02T10:29:40.525Z","0.3.0":"2023-01-26T03:34:58.862Z","0.3.1":"2023-01-26T13:19:58.972Z","0.3.2":"2023-01-27T02:37:55.119Z","0.4.0":"2023-01-29T11:02:03.977Z","0.4.1":"2023-01-30T11:43:27.226Z","0.4.2":"2023-02-05T16:58:41.320Z","0.5.0":"2023-03-26T16:14:21.349Z","0.6.0":"2023-07-31T20:45:01.783Z","0.7.0":"2023-11-08T17:30:50.434Z","0.7.1":"2023-11-09T14:59:59.000Z","0.7.2":"2023-11-26T08:17:17.923Z","0.7.3":"2023-12-01T18:38:51.397Z","0.7.4":"2023-12-15T18:40:21.503Z","1.0.0":"2023-12-15T19:46:56.001Z","1.0.1":"2023-12-23T19:16:32.867Z","1.0.2":"2023-12-25T14:45:00.414Z","1.0.3":"2024-01-23T17:38:09.574Z","1.0.4":"2024-04-16T17:34:30.268Z","1.0.5":"2024-04-19T09:14:27.689Z","1.0.6":"2024-06-20T19:14:05.926Z","1.0.7":"2024-07-24T18:19:59.987Z","1.0.8":"2024-07-26T21:05:10.575Z","1.0.9":"2024-09-17T10:32:30.023Z","1.0.10":"2024-09-18T14:06:52.695Z","1.0.11":"2024-09-26T18:07:13.450Z","1.1.0":"2024-11-22T18:18:16.391Z","1.2.0":"2025-05-22T14:57:47.524Z","1.3.0":"2025-09-21T16:02:59.572Z","2.0.0":"2026-10-12T17:32:16.578Z"},"bugs":{"url":"https://github.com/unadlib/mutative/issues"},"author":{"name":"unadlib"},"license":"MIT","homepage":"https://mutative.js.org/","keywords":["immutable","mutable","copy-on-write","mutative","immutability","mutation"],"repository":{"url":"git+https://github.com/unadlib/mutative.git","type":"git"},"description":"A JavaScript library for efficient immutable updates","maintainers":[{"name":"unadlib","email":"unadlib@gmail.com"}],"readme":"# Mutative\n\n<a href=\"https://mutative.js.org/\" target=\"_blank\"><img src=\"https://raw.githubusercontent.com/unadlib/mutative/main/website/static/img/ mutative.png\" height=\"120\" alt=\"Mutative Logo\" style=\"max-width: 100%;height: 128px;\"/></a>\n\n![Node CI](https://github.com/unadlib/mutative/workflows/Node%20CI/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/unadlib/mutative/badge.svg?branch=main)](https://coveralls.io/github/unadlib/mutative?branch=main)\n[![npm](https://img.shields.io/npm/v/mutative.svg)](https://www.npmjs.com/package/mutative)\n[![NPM Downloads](https://img.shields.io/npm/dm/mutative)](https://npmtrends.com/mutative)\n![license](https://img.shields.io/npm/l/mutative)\n\n**Mutative** - A JavaScript library for efficient immutable updates ([documentation](https://mutative.js.org/)). In the [benchmark](./perf-testing/reports/SUMMARY.md), it was about 3.6x faster than Immer with the same settings and 6.6x faster with each library's defaults across 97 workloads.\n\nIn that benchmark the gap widened on large arrays, where Mutative moved elements up to 1,052x faster than Immer. When copying dominates, such as updating objects with thousands of keys, inserting at the front of a large array or adding an item to a large Set, Mutative is even faster than hand-written reducers.\n\n**How does Mutative compare with the spread operation (hand-written reducers)?**\n\n- <a href=\"https://www.richsnapp.com/article/2019/06-09-reduce-spread-anti-pattern\" target=\"_blank\">The reduce ({...spread}) anti-pattern</a>\n- <a href=\"https://jonlinnell.co.uk/articles/spread-operator-performance?fbclid=IwAR0mElQwz2aOxl8rcsqoYwkcQDlcXcwuyIsTmTAbmyzrarysS8-BC1lSY9k\" target=\"_blank\">How slow is the Spread operator in JavaScript?</a>\n\nMutative copies each object at most once per update, however many changes a recipe makes.\n\n## Motivation\n\nImmer made it easy to write immutable updates as mutations of a draft. Mutative keeps that model and focuses on performance: it copies each object at most once per update, drafts objects only when a recipe reads them, finalizes only the drafts that changed, and runs array methods that move elements natively on its copies. Immer freezes the next state by default, which costs time on every update; Mutative freezes it only when asked to.\n\nMutative also takes its options per call instead of from global configuration, drafts class instances through marks instead of changing their classes, supports async recipes and Map and Set subclasses, and handles [edge cases](test/immer-non-support.test.ts) that Immer gets wrong. [Comparison with Immer](https://mutative.js.org/docs/extra-topics/comparison-with-immer) lists the differences.\n\n## Performance\n\n> Mutative passed all of Immer's test cases.\n\nMutative was 3.6x faster than Immer 11.1.18 with matched settings and 6.6x faster with each library's defaults, on geometric mean across 97 benchmarked workloads, and faster in 595 of 614 measured cases. The gap grows on large arrays, where Mutative moves elements natively: removing the first of 10,000 rows took 7.04 µs, against 7,408 µs. The [performance summary](./perf-testing/reports/SUMMARY.md) has the complete results, the method, and their limits.\n\n<details>\n<summary><strong>Selected results</strong></summary>\n\nThe [benchmark suite](./perf-testing/README.md) times 99 workloads: Immer's own performance tests, array methods, reads, Map and Set values, object records, class instances, a deep path, patch application, returned values, and searches. Its last full run measured 97 of them, and a focused run the two that return fresh data. It compares Mutative with Immer 11.1.18 and with reducers written by hand, after checking every result against those reducers. With matched settings, both libraries freeze or both do not, and both generate patches or both do not. With each library's defaults, Mutative without auto-freeze and Immer with it, Mutative was faster in 154 of 157 cases. The other 3 return a state that Immer froze earlier: Immer skips frozen values when it searches a returned state for drafts, while Mutative, which does not freeze by default, searches it unless the recipe wraps it in [`rawReturn()`](https://mutative.js.org/docs/api-reference/rawreturn#performance-compared-with-immer), which took 0.26 µs.\n\nTimes are microseconds per update, medians of three runs on an Apple M1 Max with Node.js 24.16.0, each library in a process of its own; lower is better. Mutative, the first Immer column, and the hand-written reducers run without auto-freeze; the second Immer column shows Immer's default.\n\n| Workload                            |   Rows | Mutative |  Immer | Immer, auto-freeze | Hand-written |\n| ----------------------------------- | -----: | -------: | -----: | -----------------: | -----------: |\n| Update one field of a small object  |      — |     0.51 |   0.69 |               0.95 |         0.02 |\n| Update an array item found by ID    |    100 |     1.12 |   1.82 |               25.0 |         0.38 |\n| 200 RTK Query-style updates         |      — |    1,001 |  1,133 |              4,795 |          352 |\n| Read every row by index             | 10,000 |    4,756 |  9,584 |              9,687 |         57.7 |\n| Remove the first row                | 10,000 |     7.04 |  7,408 |              8,137 |         1.40 |\n| Update every row                    | 10,000 |    6,462 | 12,570 |             15,607 |          211 |\n| Update one of 10,000 records        | 10,000 |    1,200 |  2,094 |              3,131 |        2,088 |\n| Insert into a 1,000-property object |      — |     50.3 |    149 |                229 |          126 |\n| Update a Map value                  | 10,000 |      518 |    526 |                733 |          519 |\n| Add a number to a Set               | 10,000 |     29.5 |    904 |                975 |         61.2 |\n| Update a class instance             | 10,000 |     2.92 |   3.44 |                668 |         1.42 |\n| Update a value ten levels deep      |      — |     3.50 |   4.41 |               7.84 |         0.76 |\n| Apply patches to 10% of rows        | 10,000 |      734 |  1,166 |              2,095 |            — |\n| Search `current()` after `shift()`  | 10,000 |      257 | 11,255 |             11,846 |         64.8 |\n| Return draft.filter()               | 10,000 |    2,658 |  4,251 |              4,736 |         77.7 |\n| Return a new state                  | 10,000 |    2,604 |  5,718 |               0.79 |         0.02 |\n| Return it with rawReturn()          | 10,000 |     0.26 |  5,703 |               0.79 |         0.02 |\n\nEach library ran each workload in a process of its own. With all of them in one process every library ran slower, and not by the same amount: Mutative took 1.1 times as long on geometric mean, Immer 1.2 times, and the hand-written reducers 1.7 times. The search removes the first row with `shift()`, then finds the last row in a snapshot of the array and updates it. Immer has no `rawReturn()` and returns the same plain value in the last two rows; with auto-freeze, Mutative skips a returned state that is already frozen, as Immer does, taking 0.53 µs. Immer was faster in 6 of the 614 matched cases, all with auto-freeze: four updates of class instances with 100 to 10,000 fields, and two array updates at 100 rows whose runs overlapped those of Mutative.\n\nRun `pnpm benchmark:immer` to measure the suite; the [benchmark guide](./perf-testing/README.md) describes its options.\n\n</details>\n\n<details>\n<summary><strong>Large arrays</strong></summary>\n\nAt 1,000 and 10,000 rows the gap grows. Against Immer without its array-method plugin, Mutative was faster in 222 of 232 cases at these sizes, 4.7x on geometric mean, and faster in every case that moves elements:\n\n| Auto-freeze | Patches | All workloads, 1,000 rows | All workloads, 10,000 rows | Moves, 1,000 rows | Moves, 10,000 rows |\n| ----------- | ------- | ------------------------: | -------------------------: | ----------------: | -----------------: |\n| off         | off     |                      8.7x |                      10.8x |              209x |               430x |\n| off         | on      |                      4.1x |                       4.5x |              7.1x |               7.3x |\n| on          | off     |                      3.9x |                       4.2x |               32x |                39x |\n| on          | on      |                      2.7x |                       2.8x |              6.6x |               6.8x |\n\nEach value is the geometric mean of Immer's time over Mutative's; moves are `shift`, `unshift`, `splice` insertion, and `reverse`. Mutative moves elements natively on its copy, while Immer moves each one through its draft proxy: removing the first of 10,000 rows took 7.04 µs against 7,408 µs, 1,052x. With patches, both libraries emit one patch per moved index, which bounds the gain to 5-9x. The [performance summary](./perf-testing/reports/SUMMARY.md) breaks these results down by scenario.\n\n</details>\n\n<details>\n<summary><strong>With patches</strong></summary>\n\nWith patches on and auto-freeze off, Mutative was faster than Immer in 148 of 150 cases and within 5% in the other 2, 3.3x on geometric mean, and faster than Mutative 1.3.0 in 131 and within 5% in the rest, 4.6x. In every array case measured it was faster than both: 4.4x Immer and 13x Mutative 1.3.0 on geometric mean. Patches cost little when an update changes a few paths: pushing a row and inserting a property at 10,000 rows took 63.2 µs with patches against 63.8 µs without. Moving elements emits one patch per moved index in every library, so removing the first of 10,000 rows produces 10,000 forward and 10,000 inverse patches.\n\nTimes are microseconds per update with patches on and auto-freeze off:\n\n| Workload                           |   Rows | Mutative |  Immer | Mutative 1.3.0 |\n| ---------------------------------- | -----: | -------: | -----: | -------------: |\n| Push a row and insert a property   | 10,000 |     63.2 |    360 |            210 |\n| Update an array item found by ID   |    100 |     1.50 |   3.22 |           3.35 |\n| 200 RTK Query-style updates        |      — |    1,140 |  1,470 |          2,116 |\n| Remove the first row with `splice` |    100 |     11.5 |   83.6 |          2,982 |\n| Insert a row in the middle         |    100 |     8.83 |   48.0 |          1,191 |\n| Sort rows                          |    100 |      105 |    129 |          2,466 |\n| Remove the first row with `shift`  | 10,000 |    1,063 |  8,943 |        265,439 |\n| Reverse the rows                   | 10,000 |    1,071 |  9,424 |        280,542 |\n| Update every row                   | 10,000 |    8,555 | 21,767 |         22,549 |\n| Update one of 10,000 records       | 10,000 |    1,184 |  2,104 |          1,181 |\n\nImmer's optional `enableArrayMethods()` plugin also runs array methods on the draft's copy, and with patches it comes within 1.13-1.70x of Mutative when moving elements of 1,000 or 10,000 rows. These comparisons leave it off because in Immer 11.1.18 it breaks guarantees that Immer otherwise keeps: `shift`, `pop` and `splice` return raw base objects, so editing a removed object changes the previous state; reordering can expose original objects the same way and leave revoked drafts in the result; and its forward patches can fail to replay. In [the audit](./test/immer-array-methods.md), 123 of 4,913 three-step operation sequences break with the plugin and none without it. The [performance summary](./perf-testing/reports/SUMMARY.md) reports Immer with the plugin separately.\n\n</details>\n\n<details>\n<summary><strong>Bundle size compared with Immer</strong></summary>\n\nMutative ships patches, `Map`/`Set` support and native array methods built in; Immer provides them as opt-in plugins. The following Brotli sizes were measured with esbuild 0.24.0 from the ESM entry that bundlers resolve for each library (Immer 11.1.21 `dist/immer.mjs`; Mutative 2.0), with `process.env.NODE_ENV` defined as `production`, bundled for the browser with `--minify --target=es2018 --format=esm`. The first row imports `create`, `apply`, `current` and `original` for Mutative, and `produce`, `applyPatches`, `current` and `original` with Immer's `enablePatches`, `enableMapSet` and `enableArrayMethods`. The second imports only `create` or `produce`.\n\n| Bundle                                      |  Immer | Mutative |\n| ------------------------------------------- | -----: | -------: |\n| With patches, `Map`/`Set` and array methods | 6.4 kB |   8.5 kB |\n| `produce` / `create` only                   | 3.6 kB |   7.9 kB |\n\nMutative's `create` includes patches, `Map`/`Set` support and the native array methods even when a recipe does not use them: they are part of `create`, not separate imports, so bundlers cannot drop them. The difference buys the draft fast paths and the native array methods measured in the [performance summary](./perf-testing/reports/SUMMARY.md), which also records the artifact sizes of each measured source. See the [array methods FAQ](#faqs) for the supported fast paths and their contract, and the [Immer regression cases](./test/immer-array-methods.md) for the behavior of its array-method plugin.\n\n</details>\n\n## Features and Benefits\n\n- **Mutation makes immutable updates** - Immutable updates of objects, arrays, Maps and Sets, written as mutations of a draft.\n- **High performance** - About 6.6x faster than Immer with each library's defaults, and faster than hand-written spreads in measured wide-object and large-array insertion workloads.\n- **Optional freezing state** - No freezing of immutable data by default, and [auto-freeze](https://mutative.js.org/docs/advanced-guides/auto-freeze) when you want it.\n- **Support for JSON Patch** - [Patches](https://mutative.js.org/docs/advanced-guides/patches) use the `add`, `remove` and `replace` operations of JSON Patch, and with `pathAsArray: false` and `arrayLengthAssignment: false`, those of objects and arrays are JSON Patch operations.\n- **Custom shallow copy** - [Marks](https://mutative.js.org/docs/advanced-guides/mark) draft class instances and other types of immutable data, with their own shallow copies if needed.\n- **Support mark for immutable and mutable data** - Marks set what is drafted without changing the data or its classes.\n- **Safer mutable data access in strict mode** - [Strict mode](https://mutative.js.org/docs/advanced-guides/strict-mode) makes reads of data that cannot be drafted explicit.\n- **Support for reducer** - [Producers](https://mutative.js.org/docs/advanced-guides/currying) work as reducers for Redux and any other immutable state library, and recipes can be async.\n\n## Difference between Mutative and Immer\n\n|                                                       | Mutative |     Immer     |\n| :---------------------------------------------------- | :------: | :-----------: |\n| Auto-freeze off by default                            |    ✅    |      ❌       |\n| Options per call, without global settings or plugins  |    ✅    |      ❌       |\n| Drafts of class instances without changing the class  |    ✅    |      ❌       |\n| Custom shallow copies                                 |    ✅    |      ❌       |\n| Strict mode                                           |    ✅    |      ❌       |\n| Async recipes                                         |    ✅    |      ❌       |\n| Map and Set subclasses keep their class               |    ✅    |      ❌       |\n| ES2025 Set methods on Set drafts                      |    ✅    |      ❌       |\n| Freezing reaches the objects used as Map keys         |    ✅    |      ❌       |\n| Array methods that run natively on drafts             |    ✅    | Opt-in plugin |\n| JSON Pointer string paths in patches                  |    ✅    |      ❌       |\n\n[Comparison with Immer](https://mutative.js.org/docs/extra-topics/comparison-with-immer) lists every difference, checked against Immer 11.1.18: the APIs that replace Immer's, defaults and configuration, drafts, patches, and the Immer failures that Mutative's tests pin.\n\n## Installation\n\n```sh\npnpm add mutative\n# or `npm install mutative`\n# or `yarn add mutative`\n```\n\nCDN\n\n- Unpkg: `<script src=\"https://unpkg.com/mutative\"></script>`\n- JSDelivr: `<script src=\"https://cdn.jsdelivr.net/npm/mutative\"></script>`\n- ES module: `import { create } from 'https://unpkg.com/mutative/dist/mutative.esm.production.min.mjs';`\n\nThe package's other ESM files read `process.env.NODE_ENV`, which bundlers and Node.js provide; a browser without a bundler needs the production file above.\n\nMutative has no dependencies. A production bundle of `create` alone is about 7.9 kB after Brotli compression, and one of `create`, `apply`, `current` and `original` about 8.5 kB, including patches, `Map` and `Set` support and native array methods, which need no plugins.\n\n## Usage\n\n```ts\nimport { create } from \"mutative\";\n\nconst baseState = {\n  foo: \"bar\",\n  list: [{ text: \"coding\" }],\n};\n\nconst state = create(baseState, (draft) => {\n  draft.list.push({ text: \"learning\" });\n});\n\nexpect(state).not.toBe(baseState);\nexpect(state.list).not.toBe(baseState.list);\n```\n\n`create(baseState, recipe, options?)` drafts the base state and passes the draft to the recipe. The recipe changes the draft with ordinary JavaScript, and `create()` returns the next state, which copies the objects that the recipe changed and shares all the others with the base state. The base state does not change.\n\nUse `create()` for more advanced features by [setting `options`](#createstate-fn-options). The [documentation](https://mutative.js.org/docs/getting-started/usages) shows common updates of objects, arrays, Maps and Sets.\n\n## APIs\n\n- [`create()`](#create)\n- [`apply()`](#apply)\n- [`current()`](#current)\n- [`original()`](#original)\n- [`unsafe()`](#unsafe)\n- [`isDraft()`](#isdraft)\n- [`isDraftable()`](#isdraftable)\n- [`rawReturn()`](#rawreturn)\n- [`makeCreator()`](#makecreator)\n- [`markSimpleObject()`](#marksimpleobject)\n\n### `create()`\n\n`create()` produces the next state from the changes that a recipe makes to a draft of the base state, and also makes [producers and manual drafts](#create---currying).\n\n```ts\nimport { create } from \"mutative\";\n\nconst baseState = {\n  foo: \"bar\",\n  list: [{ text: \"todo\" }],\n};\n\nconst state = create(baseState, (draft) => {\n  draft.foo = \"foobar\";\n  draft.list.push({ text: \"learning\" });\n});\n```\n\nThe recipe changes the draft as if it were mutable, and `create()` returns the next state with those changes, while `baseState` stays as it was.\n\nThe recipe can be an async function: `create()` then returns a Promise of the result, and the draft stays usable until that Promise settles. `create()` recognizes the Promises of the current JavaScript realm only, so an async function from another realm, such as a `vm` context or an iframe, needs a wrapper from this realm: `create(baseState, async (draft) => { return await recipe(draft); })`. TypeScript types the result as a Promise as well, except with an explicit state type that is a type parameter, as in `create<T>(base, async (draft) => { … })` in a generic function, or that includes Promises, such as `object` or `unknown`, which gives the state type itself. In generic code, leave out the type argument: `create(base, async (draft) => { … })` gives `Promise<T>`, and `create(async (draft: T) => { … })` gives `(base: T) => Promise<T>`.\n\n#### `create(state, fn, options)`\n\nThe `options` argument is optional; [`makeCreator()`](#makecreator) sets defaults for it.\n\n- `strict` - `boolean`, the default is `false`.\n\n  In strict mode, reading an object that cannot be drafted from a draft, such as a `Date` or a class instance that no mark makes draftable, or a value that `mark` makes mutable, throws unless the read happens inside [`unsafe()`](#unsafe). A value that the recipe returns with [`rawReturn()`](#rawreturn) is still searched for drafts, and development builds warn when it holds one. In development builds, strict mode also warns once when a recipe leaves 1,000 or more drafts unchanged, as a search through a large draft array does; see [`current()`](#current) for searching without creating drafts.\n\n  Strict mode checks every value that the recipe reads, so enable it in development and disable it in production, for example with `strict: process.env.NODE_ENV !== 'production'`.\n\n- `enablePatches` - `boolean | { pathAsArray?: boolean; arrayLengthAssignment?: boolean }`, the default is `false`.\n\n  `true` makes `create()` return `[nextState, patches, inversePatches]`. An object sets the shape of the patches as well:\n\n  - `pathAsArray`, `true` by default: a path is an array of keys, such as `['list', 0]`. With `false`, it is a JSON Pointer string, such as `'/list/0'`. A string path holds only strings, so it cannot name a Map key that is not a string, or a symbol key: with `pathAsArray: false`, the patch of `draft.set(1, 'b')` would set the key `'1'`. Keep the default array paths for such keys; development builds throw an error when a string path would hold one.\n  - `arrayLengthAssignment`, `true` by default: an array that gets shorter gets a `replace` patch of its `length`. With `false`, it gets a `remove` patch for each index that it loses, which takes more time for large arrays.\n\n  With `pathAsArray: false` and `arrayLengthAssignment: false`, the patches of objects and arrays are JSON Patch operations ([RFC 6902](https://datatracker.ietf.org/doc/html/rfc6902)); see the [related discussion](https://github.com/unadlib/mutative/issues/6).\n\n  TypeScript types the result from the type of `enablePatches` in the options passed to `create()` or `makeCreator()`: `true` or an object gives `[state, patches, inversePatches]`, and `boolean` gives either. Options typed `{ enablePatches: true }` that may be `undefined`, such as an optional parameter of a wrapper, or typed `{ enablePatches?: true }` still give the tuple, although `create()` returns the state alone when patches are off; type the flag as `boolean` there. With an explicit state type, TypeScript infers no other type argument, so pass `boolean` as the type argument for `enablePatches` as well, as in `create<State, false, boolean>(base, recipe, options)` or `create<State, [], false, boolean>(recipe, options)`.\n\n- `enableAutoFreeze` - `boolean`, the default is `false`.\n\n  Freeze the next state deeply, also the parts that it shares with the base state, and, in development builds, throw for an object that holds itself.\n\n- `mark` - `Mark | Mark[]`, where `Mark` is `(target, { mutable, immutable }) => 'mutable' | 'immutable' | (() => copy) | undefined`.\n\n  A mark decides how a value is drafted. It receives each value that the recipe reads, and returns:\n\n  - `'immutable'` to make the value draftable, such as a class instance, which is then copied when the recipe changes it.\n  - `'mutable'` to keep the value out of drafts: the recipe reads and changes it in place, as it does all the values that it holds.\n  - A function that returns a shallow copy of the value, which drafts it with that copy. Patches and auto-freeze must be off, and some patches might not apply to such values.\n  - `undefined` to draft the value as usual.\n\n  With an array of marks, the first one that returns a value decides. When a mark makes every object immutable, as `() => 'immutable'` does, patches and auto-freeze work as usual. An instance that `mark` makes `immutable` is copied with all its own properties, and those that are enumerable, writable and configurable are assigned, so an own property that shadows a setter of its class runs it, and one that shadows a getter or a read-only property throws; see [Copying marked instances](https://mutative.js.org/docs/advanced-guides/mark#copying-marked-instances).\n\n#### `create()` - Currying\n\n- A base state without a recipe gives a draft and a `finalize()` function, which returns what `create()` returns with a recipe:\n\n```ts\nconst [draft, finalize] = create(baseState);\ndraft.foo = \"foobar\";\nconst state = finalize();\n```\n\n> Options follow the base state, as in `const [draft, finalize] = create(baseState, { enableAutoFreeze: true });`.\n\n> Call `finalize()` only once. When it throws, for example because a development build rejects a patch path, the drafts are not revoked as they are when a recipe fails: they stay writable, and a second `finalize()` returns a state that can hold a revoked draft, with patches that miss changes. Create a new draft from the base state instead.\n\n- A recipe without a base state gives a producer, which takes the base state and passes its other arguments to the recipe:\n\n```ts\nconst produce = create((draft) => {\n  draft.foo = \"foobar\";\n});\nconst state = produce(baseState);\n```\n\n> Options follow the recipe, as in `const produce = create((draft) => {}, { enableAutoFreeze: true });`.\n\n#### `create()` on a draft\n\nA recipe can pass a draft to a helper that calls `create()`. Unlike Immer's `produce`, which drafts the draft itself, `create()` drafts a copy of its current state, `current(draft)`: the values that the helper's recipe leaves unchanged are objects of the base state. Assigning the result back into the outer draft is safe, but changing one of those values afterwards changes the base state, because the outer draft returns an assigned value as it is ([#160](https://github.com/unadlib/mutative/issues/160)). Development builds warn once when `create()` receives a draft with a recipe.\n\n```ts\nconst state = create(baseState, (draft) => {\n  draft.node = create(draft.node, (node) => {\n    node.name = \"renamed\";\n  });\n  // `draft.node` is now the helper's result, and `draft.node.metadata` is an\n  // object of `baseState`: writing to it here would change `baseState`.\n});\n```\n\nTo avoid it, let such a helper change a draft in place, and call `create()` only on other values:\n\n```ts\ntype Item = { name: string; metadata: { value: string } };\n\nfunction rename(item: Item, name: string): Item {\n  if (isDraft(item)) {\n    item.name = name;\n    return item;\n  }\n  return create(item, (draft) => {\n    draft.name = name;\n  });\n}\n```\n\nOn a draft, `rename()` returns the draft itself, so the outer recipe changes its result through the outer draft, and the values that it leaves unchanged keep their references. Unlike a call to `create()`, it changes the outer draft even if the caller discards the result.\n\nWhere that does not fit, make such changes in the helper's recipe, or through the outer draft before calling the helper. If the helper's result must not share objects with the base state, give `create()` a deep copy, as in `create(structuredClone(current(draft)), recipe)`, at the cost of copying the draft on each call and of new references for the values that the recipe leaves unchanged; `structuredClone` turns class instances into plain objects and throws on functions. To catch such writes, enable `enableAutoFreeze` in development, for example with `makeCreator({ enableAutoFreeze: process.env.NODE_ENV !== 'production' })` for such helpers: it freezes the helper's result together with the objects of the base state that it shares, so a write to them throws instead of changing the base state, as Immer's default auto-freeze does.\n\nA draft belongs to the `create()` call that made it, also the draft that `create(base)` returns. Do not store it in the draft of another call, or in an object that you assign there: it is revoked when its own call ends, so the other call's result can hold a draft that throws when it is read, and a Set draft that received it may no longer find it with `has()` or `delete()`. Store `current(draft)`, the original object or the result of that call instead.\n\n### `apply()`\n\n`apply()` applies patches, such as those that `create()` returns with `enablePatches`, and returns the next state.\n\n```ts\nimport { create, apply } from \"mutative\";\n\nconst baseState = {\n  foo: \"bar\",\n  list: [{ text: \"todo\" }],\n};\n\nconst [state, patches, inversePatches] = create(\n  baseState,\n  (draft) => {\n    draft.foo = \"foobar\";\n    draft.list.push({ text: \"learning\" });\n  },\n  {\n    enablePatches: true,\n  },\n);\n\nconst nextState = apply(baseState, patches);\nexpect(nextState).toEqual(state);\nconst prevState = apply(state, inversePatches);\nexpect(prevState).toEqual(baseState);\n```\n\n#### `apply(state, patches, options)`\n\nThe `options` argument is optional. `enableAutoFreeze`, `strict` and `mark` work as the [options of `create()`](#createstate-fn-options) do. Pass `apply()` the same `mark` as the `create()` calls that generated the patches, so that it drafts the same values, such as class instances.\n\n```ts\nconst baseState = { foo: { bar: \"test\" } };\n\n// This will create a new state.\nconst result = apply(baseState, [\n  {\n    op: \"replace\",\n    path: [\"foo\", \"bar\"],\n    value: \"test2\",\n  },\n]);\nexpect(baseState).not.toEqual({ foo: { bar: \"test2\" } });\nexpect(result).toEqual({ foo: { bar: \"test2\" } });\n```\n\n`mutable: true`, available since Mutative 1.2.0, changes the state in place instead, and `apply()` then returns `undefined`:\n\n```ts\nconst baseState = { foo: { bar: \"test\" } };\n\n// This will modify baseState directly\napply(\n  baseState,\n  [\n    {\n      op: \"replace\",\n      path: [\"foo\", \"bar\"],\n      value: \"test2\",\n    },\n  ],\n  {\n    mutable: true,\n  },\n);\nexpect(baseState).toEqual({ foo: { bar: \"test2\" } });\n```\n\n> The `mutable` option cannot be combined with the other options, which development builds report with a warning. It throws for a patch that replaces the root state with another value, such as the patch of a recipe that returns a new state, because the state cannot be replaced in place.\n\n> `apply()` throws for a patch path through the `__proto__` or `constructor` of an object or array, or through the `prototype` of a function, so that patches cannot change the prototypes of objects; Map keys of these names are ordinary keys. It reads the other path segments as properties, as Immer does, and does not guard against prototypes that other code has already changed.\n\n> Patches add and remove Set elements by value, also a changed element of a Set that added or removed elements, and `apply()` copies patch values, so inverse patches cannot remove an object that `apply()` added to a Set, as in an undo after a redo. `apply()` also appends the elements that it adds, so such a Set can hold its elements in another order, and the patches of a later recipe, which find Set elements by position, can then change another element. See [Sets of objects](https://mutative.js.org/docs/advanced-guides/patches#sets-of-objects).\n\n### `current()`\n\n`current(draft)` returns a snapshot of the current value of a draft, with the changes that the recipe has made so far and without the proxies of the draft.\n\n- For a draft that the recipe has not changed, it returns the original value without copying it.\n- A changed draft is copied, together with its changed descendants, on every call, so each call returns new objects for it. Take one snapshot for a series of reads rather than calling `current()` in a loop.\n\n```ts\nconst state = create({ a: { b: { c: 1 } }, d: { f: 1 } }, (draft) => {\n  draft.a.b.c = 2;\n  expect(current(draft.a)).toEqual({ b: { c: 2 } });\n  // The node `a` has been modified.\n  expect(current(draft.a) === current(draft.a)).toBeFalsy();\n  // The node `d` has not been modified.\n  expect(current(draft.d) === current(draft.d)).toBeTruthy();\n});\n```\n\n`current()` is also the cheap way to search a large array of objects. Every object read through a draft becomes a draft of its own, so `draft.list.find()` pays for a draft per visited element. `current(draft.list)` is the original array while the recipe has not changed it; otherwise it is a copy that holds the current value of each changed element and the original object of every other one. Its indices are those of the draft, also after the recipe added, removed or moved elements. Search it and change the match through the draft. Its elements are not drafts, so the callback must only read them.\n\n```ts\nconst state = create(baseState, (draft) => {\n  const index = current(draft.list).findIndex((item) => item.text === \"todo\");\n  draft.list[index].done = true;\n});\n```\n\n### `original()`\n\nGet the original value from a draft.\n\n```ts\nconst baseState = {\n  foo: \"bar\",\n  list: [{ text: \"todo\" }],\n};\n\nconst state = create(baseState, (draft) => {\n  draft.foo = \"foobar\";\n  draft.list.push({ text: \"learning\" });\n  expect(original(draft.list)).toEqual([{ text: \"todo\" }]);\n});\n```\n\n`original()` reflects the state before the recipe's changes, so an index found in `original(draft.list)` no longer matches the draft once the recipe has added, removed or moved elements. To search a draft array, use [`current()`](#current).\n\n### `unsafe()`\n\nWhen strict mode is enabled, reading a value that Mutative does not draft, such as a `Date`, a class instance that no mark makes draftable, or a value that a mark makes mutable, throws outside `unsafe()`.\n\n```ts\nimport { create, unsafe } from \"mutative\";\n\nconst baseState = {\n  createdAt: new Date(Date.UTC(2020, 0, 1)),\n  updatedAt: new Date(Date.UTC(2020, 0, 1)),\n};\n\nconst state = create(\n  baseState,\n  (draft) => {\n    const year = unsafe(() => draft.createdAt.getUTCFullYear());\n    expect(year).toBe(2020);\n    // Assigning a value is no read and needs no unsafe().\n    draft.updatedAt = new Date(Date.UTC(2021, 0, 1));\n  },\n  {\n    strict: true,\n  },\n);\n```\n\nMutative does not copy the values that it does not draft, so changing one of them, such as with `draft.createdAt.setFullYear(2000)`, changes the base state as well. Replace such values, or mark their class as immutable so that Mutative drafts them.\n\n> If you'd like to enable strict mode by default in a development build and turn it off for production, you can use `strict: process.env.NODE_ENV !== 'production'`.\n\n### `isDraft()`\n\nCheck if a value is a draft.\n\n```ts\nconst baseState = {\n  date: new Date(),\n  list: [{ text: \"todo\" }],\n};\n\nconst state = create(baseState, (draft) => {\n  expect(isDraft(draft.date)).toBeFalsy();\n  expect(isDraft(draft.list)).toBeTruthy();\n});\n```\n\n### `isDraftable()`\n\nCheck if a value is draftable: plain objects, arrays, Maps and Sets are, and other values are when a `mark` makes them draftable.\n\n```ts\nconst baseState = {\n  date: new Date(),\n  list: [{ text: \"todo\" }],\n};\n\nexpect(isDraftable(baseState.date)).toBeFalsy();\nexpect(isDraftable(baseState.list)).toBeTruthy();\n```\n\n> A mark makes other values draftable. Pass `isDraftable()` the same `mark` as the `create()` calls, as in `isDraftable(value, { mark })`, to get their answer.\n\n### `rawReturn()`\n\nFor return values that do not contain any drafts, you can use `rawReturn()` to wrap this return value to improve performance: `create()` then returns it as it is, without searching it for drafts. `rawReturn(undefined)` also makes `undefined` the next state.\n\nMutative searches the value a recipe returns for drafts, so that drafts mixed into it are replaced. With auto-freeze enabled, production builds do not search frozen objects or the values they hold, so returning an earlier, frozen state, or state built from one, costs little even without `rawReturn()`. Development builds still search them and throw when they find a draft there, so never put a draft in a frozen object or in a value it holds.\n\n```ts\nconst baseState = { id: \"test\" };\nconst state = create(baseState as { id: string } | undefined, (draft) => {\n  return rawReturn(undefined);\n});\nexpect(state).toBe(undefined);\n```\n\n> If the return value mixes drafts, you should not use `rawReturn()`.\n\n```ts\nconst baseState = { a: 1, b: { c: 1 } };\nconst state = create(baseState, (draft) => {\n  if (draft.b.c === 1) {\n    return {\n      ...draft,\n      a: 2,\n    };\n  }\n});\nexpect(state).toEqual({ a: 2, b: { c: 1 } });\nexpect(isDraft(state.b)).toBeFalsy();\n```\n\nIf you use `rawReturn()`, we recommend that you enable `strict` mode in development.\n\n```ts\nconst baseState = { a: 1, b: { c: 1 } };\nconst state = create(\n  baseState,\n  (draft) => {\n    if (draft.b.c === 1) {\n      return rawReturn({\n        ...draft,\n        a: 2,\n      });\n    }\n  },\n  {\n    strict: true,\n  },\n);\n// it will warn `The return value contains drafts, please don't use 'rawReturn()' to wrap the return value.` in strict mode.\nexpect(state).toEqual({ a: 2, b: { c: 1 } });\nexpect(isDraft(state.b)).toBeFalsy();\n```\n\n### `makeCreator()`\n\n`makeCreator()` only takes [options](#createstate-fn-options) as the first argument, resulting in a custom `create()` function.\n\n```ts\nconst baseState = {\n  foo: {\n    bar: \"str\",\n  },\n};\n\nconst create = makeCreator({\n  enablePatches: true,\n});\n\nconst [state, patches, inversePatches] = create(baseState, (draft) => {\n  draft.foo.bar = \"new str\";\n});\n```\n\n### `markSimpleObject()`\n\n`markSimpleObject()` is a mark function that makes simple objects draftable: plain objects, objects without a prototype, such as those of `Object.create(null)`, and plain objects of other realms, such as same-origin iframes.\n\n```ts\nconst baseState = {\n  foo: {\n    bar: \"str\",\n  },\n  simpleObject: Object.create(null),\n};\n\nconst state = create(\n  baseState,\n  (draft) => {\n    draft.foo.bar = \"new str\";\n    draft.simpleObject.a = \"a\";\n  },\n  {\n    mark: markSimpleObject,\n  },\n);\n\nexpect(state.simpleObject).not.toBe(baseState.simpleObject);\n```\n\nSee the [API reference](https://mutative.js.org/docs/api-reference) on the website for every option and behavior, and the [generated API docs](./docs/README.md) for the type signatures.\n\n## Using TypeScript\n\nMutative's types support TypeScript 5.0 and later; the package checks compile them with TypeScript 5.0. The [TypeScript guide](https://mutative.js.org/docs/advanced-guides/typescript) describes how they type drafts, results and producers.\n\n- `castDraft()`\n- `castImmutable()`\n- `castMutable()`\n- `Draft<T>`\n- `Immutable<T>`\n- `Patches`\n- `Patch`\n- `Options<O, F>`\n\n## Integration with React\n\n- [use-mutative](https://github.com/mutativejs/use-mutative) - A 2-6x faster alternative to useState with spread operation\n- [use-travel](https://github.com/mutativejs/use-travel) - A React hook for state time travel with undo, redo, reset and archive functionalities.\n- [zustand-mutative](https://github.com/mutativejs/zustand-mutative) - A Zustand middleware that makes `set()` take a Mutative recipe.\n\n[Using Mutative with React](https://mutative.js.org/docs/getting-started/mutative-with-react) shows `create()` with `useState()` and `useReducer()`, and the [ecosystem](https://mutative.js.org/docs/extra-topics/mutative-ecosystem) lists the integrations for Jotai, XState, Yjs, undo and redo, and more.\n\n## FAQs\n\n- I'm already using Immer, can I migrate smoothly to Mutative?\n\nYes. Unless you have to be compatible with Internet Explorer, Mutative supports almost all of Immer's features, and the [migration guide](https://mutative.js.org/docs/advanced-guides/migration) shows how to replace each API. [Comparison with Immer](https://mutative.js.org/docs/extra-topics/comparison-with-immer) lists the APIs that replace Immer's and every behavior that differs.\n\n> Mutative, like Immer, needs `Proxy`. On Android, React Native supports it since version 0.59 with JavaScriptCore and since version 0.64 with [Hermes](https://reactnative.dev/blog/2021/03/12/version-0.64#hermes-with-proxy-support).\n\n- Can Mutative be integrated with Redux?\n\nYes. A [producer](https://mutative.js.org/docs/advanced-guides/currying) with an action argument is a reducer, and a recipe can return a new state, for example the initial state with [`rawReturn()`](#rawreturn). Redux Toolkit drafts state with Immer in `createSlice()` and `createReducer()`, and an RFC to make its [`produce()` configurable](https://github.com/reduxjs/redux-toolkit/pull/3074) is open.\n\n- Which array methods run natively on drafts?\n\n`shift`, `unshift`, `splice` and `reverse` move elements directly on the copy of a plain array without holes, including `undefined` elements; `indexOf`, `lastIndexOf` and `includes` search the current array natively; `sort` and `join` run natively on arrays of primitives. Removed elements are returned as drafts, patches replay in both directions, and a call that changes nothing keeps the state. Sparse arrays, array subclasses, an own `constructor` or `Symbol.isConcatSpreadable`, arrays under a custom `mark`, every method with a callback, `at`, `slice`, `fill` and `copyWithin` use the proxy path. An argument that can run user code, such as an object passed as `fromIndex` or as a `splice` index, is converted on the proxy path, so a conversion that changes the array is observed as the native methods observe it. The fast paths are made for data arrays: an accessor property defined on an array index is read as a data value, and the number and order of such getter calls, their re-entrant effects on the draft, and the identity of objects they return are not guaranteed to match element-by-element execution through the proxy. With auto-freeze, Mutative may also read such a getter twice when it copies a frozen, sealed or non-extensible array.\n\nOptimized searches give the same results as the proxy path, comparing elements as a read returns them. Drafts, values assigned in the recipe, non-draftable objects and primitives are found. An object of the base state is drafted when it is read, so it is never found, whether or not it was read before, unless the recipe assigned or inserted it and it is not at its original index; use [`original()`](#original) to search the base state, for example `original(draft.list).indexOf(item)`. The search never reads a property of the value it is given.\n\nIn strict mode, outside [`unsafe()`](#unsafe), optimized calls on an array that may hold objects take the proxy path unchanged, so reading a non-draftable element fails exactly as it always did; arrays of primitives, recognized with `typeof` alone, keep the native paths. Elements are moved and compared without being inspected, while the proxy path inspects each element it reads. An element that is itself a Proxy may therefore see fewer calls to its internal methods on the native paths, never more and never at other times; a revoked Proxy element that a search passes over, for example, does not throw there.\n\nDraftable base elements removed or moved by these methods are drafted before they are exposed. Methods with callbacks, such as `forEach`, `map`, `filter` and `find`, go through the draft so that their callbacks see every change and can modify elements; use [`current()`](#current) for read-only scans of large arrays.\n\n- Can a recipe change a Map draft while iterating over it?\n\nYes. Deleting the entry being visited and changing the values of other entries work as on a Map, and Set drafts iterate like Sets. One difference remains: an iteration over a Map draft that starts before the recipe has changed that Map, or read an object value from it, walks the entries of the base Map. An entry that the recipe deletes later in such an iteration is still visited, with `undefined` as its value, and an entry that it adds is not visited. To delete other entries while iterating, iterate over `Array.from(draft.keys())` and skip the keys for which `draft.has()` returns false.\n\n- Do the Set methods such as `union()` and `isSubsetOf()` work on Set drafts?\n\nYes, but they compare elements as iterating the draft returns them. An object of the base state is a draft there, so these methods do not match it with the original object, although `has()` accepts the original object. To compare a Set draft with objects of the base state, call the method on `current(draft)`, in which unchanged objects keep their identity, or on `original(draft)` for the base state, or compare ids, for example `[...draft].filter((item) => ids.has(item.id))`. This applies to `union()`, `intersection()`, `difference()`, `symmetricDifference()`, `isSubsetOf()`, `isSupersetOf()` and `isDisjointFrom()`.\n\n- Can a draft be a Map key?\n\nNo. Map keys are used as they are, and a draft is revoked when its producer ends, so a Map that kept a draft as a key, and the patches that name that key, would hold a revoked draft, whose properties throw when they are read. Use `original(draft)`, `current(draft)` or an id as the key. Development builds throw when a recipe passes a draft to the `set()` method of a Map draft.\n\n- Does Mutative support shared references?\n\nYes, Mutative supports shared references, but **each path to a shared object gets its own independent draft**. Modifications to one path do not automatically reflect in others. If you want to preserve shared references in the result, you must explicitly assign them (e.g., `draft.b = draft.a`). [Read more details](https://mutative.js.org/docs/extra-topics/shared-references).\n\n## Migration from Immer to Mutative\n\n[Comparison with Immer](https://mutative.js.org/docs/extra-topics/comparison-with-immer) maps every Immer API to Mutative and lists the behaviors that differ, and the [migration guide](https://mutative.js.org/docs/advanced-guides/migration) also covers manual drafts, classes and async recipes.\n\n> [mutative-compat](https://github.com/exuanbo/mutative-compat) wraps Mutative in Immer's API, for a quick switch before you migrate the calls themselves.\n\n1. `produce()` -> `create()`\n\nMutative leaves the next state unfrozen unless `enableAutoFreeze` is set, while Immer freezes it by default.\n\n> Check whether your code relies on frozen state, for example to catch accidental mutations. If it does, enable auto-freeze in Mutative.\n\n```ts\nimport { produce } from \"immer\";\n\nconst baseState = [\n  { title: \"Learn TypeScript\", done: true },\n  { title: \"Try Immer\", done: false },\n];\n\nconst nextState = produce(baseState, (draft) => {\n  draft[1].done = true;\n  draft.push({ title: \"Tweet about it\", done: false });\n});\n```\n\nUse Mutative\n\n```ts\nimport { create } from \"mutative\";\n\nconst baseState = [\n  { title: \"Learn TypeScript\", done: true },\n  { title: \"Try Mutative\", done: false },\n];\n\nconst nextState = create(baseState, (draft) => {\n  draft[1].done = true;\n  draft.push({ title: \"Tweet about it\", done: false });\n});\n```\n\n2. `Patches`\n\n```ts\nimport { applyPatches, enablePatches, produceWithPatches } from \"immer\";\n\nenablePatches();\n\nconst baseState = {\n  age: 33,\n};\n\nconst [nextState, patches, inversePatches] = produceWithPatches(\n  baseState,\n  (draft) => {\n    draft.age++;\n  },\n);\n\nconst state = applyPatches(nextState, inversePatches);\n\nexpect(state).toEqual(baseState);\n```\n\nUse Mutative\n\n```ts\nimport { create, apply } from \"mutative\";\n\nconst baseState = {\n  age: 33,\n};\n\nconst [nextState, patches, inversePatches] = create(\n  baseState,\n  (draft) => {\n    draft.age++;\n  },\n  {\n    enablePatches: true,\n  },\n);\n\nconst state = apply(nextState, inversePatches);\n\nexpect(state).toEqual(baseState);\n```\n\n3. Return `undefined`\n\n```ts\nimport { nothing, produce } from \"immer\";\n\nconst baseState: { count: number } | undefined = { count: 1 };\n\nconst nextState = produce(baseState, () => nothing);\n```\n\nUse Mutative\n\n```ts\nimport { create, rawReturn } from \"mutative\";\n\nconst baseState: { count: number } | undefined = { count: 1 };\n\nconst nextState = create(baseState, () => rawReturn(undefined));\n```\n\n## Migration from Mutative v1 to v2\n\nMutative v2 keeps the v1 API. The changes below, made since v1.3.0, can affect existing code.\n\n### Build output and package entries\n\n- **ES2018 output.** Every build targets ES2018 instead of ES2015, so object spread stays native. Engines that support Proxy but not ES2018 syntax, such as Chrome 49–59, Firefox 18–54, Safari 10–11.0 and Edge 12–18, need Mutative transpiled by your build.\n- **Bundlers.** The ESM entry compares `process.env.NODE_ENV` at each development check instead of always running development code. Production bundles, in which the bundler defines `NODE_ENV` as `production`, drop the development checks and warnings and throw minified errors, as CommonJS consumers already did. Bundles that target Node.js without defining `NODE_ENV`, such as esbuild with `platform: 'node'`, now include both CommonJS builds; define `NODE_ENV` or keep Mutative external.\n- **Node.js ESM.** In Node.js, `import` resolves a module that re-exports the CommonJS build, so `import` and `require` share one instance and both follow `NODE_ENV`. Previously, `import` always ran the development ESM build as a separate instance.\n- **Browsers without a bundler.** `dist/mutative.esm.mjs` and `dist/mutative.esm.js` read `process.env.NODE_ENV`, so a page that loads them directly, for example from a raw CDN URL, fails with `process is not defined`. Load `dist/mutative.esm.production.min.mjs` instead, or the UMD build that the `unpkg` and `jsdelivr` fields point to.\n- **Production errors.** Production builds throw `Minified Mutative error #<code>` with a link to the [errors page](https://mutative.js.org/docs/extra-topics/errors) instead of the full message, also for `apply()`, `original()` and `rawReturn()`. Development builds keep the messages. Code that matches error messages in production must match the codes instead.\n\n### Patches\n\n- **Order.** The patches of a nested draft now come before those of its parents, the order Immer uses. For example, `const item = draft.list[0]; draft.list.length = 0; item.text = 'b'; draft.item = item;` yields the `list` length replace before the `item` add. Applying the patches gives the same state as before, and replace patches that only restated an unchanged draft at its original index are no longer emitted.\n- **Values.** A patch value that was a draft is now the object that the next state holds instead of a deep copy, and it is frozen with the state when `enableAutoFreeze` is on. `apply()` still copies patch values before applying them. Copy a patch value before mutating it.\n- **Moved drafts.** A changed draft that leaves its key, because `sort()` or an assignment moved it or another value replaced it there, no longer emits patches under its old path; the patches of its parent carry its value. In v1, the patches of such a recipe could fail to apply, for example the inverse patches once a primitive took the old key.\n- **Set items.** A changed item of a Set that also added or removed items is carried by the Set's `remove` and `add` patches. v1 also emitted patches under the item's position in the changed Set, which replay applied to whatever sat at that position in the base Set, or could not apply at all. A Set that only changed its items keeps the patches under each item's position.\n- **Original objects assigned over drafts.** Assigning the original object of a draft to the key that holds the draft is recorded like any other assignment: when the draft was read at that key, the key holds its original value again and emits no patch; when the draft was moved there from another key, the key emits the patch of that assignment. In v1, both cases emitted a `remove` patch for an object key that the state kept, and the second emitted no patch for an array element, so replaying the patches dropped the key or lost the element.\n\n### Arrays\n\n- `shift`, `unshift`, `splice` and `reverse` run natively on the draft's copy of a plain array, and `indexOf`, `lastIndexOf` and `includes` search it natively; see [which array methods run natively](#faqs). For data arrays, the results are those of v1 and the patches replay in both directions. An accessor property on an array index is read as a data value, so its getter may run a different number of times.\n- `current()` of a changed array copies the current array instead of reading every element through the draft. Base elements that a native method moved and that hold drafts of an outer `create()` call are left as they are, as unmoved elements always were.\n- To search a large array without drafting each element it visits, search `current(draft.list)` and change the match through the draft; see [`current()`](#current).\n\n### Returned values\n\n- With `enableAutoFreeze`, production builds no longer search frozen objects in a value returned from a recipe, the returned value included, or the values they hold, for drafts, and leave a draft there unresolved. Development builds still search them and throw when they find one, also in an unfrozen object that a frozen one holds, where v1 replaced it. Never put a draft in a frozen object or in a value it holds. Without auto-freeze, returned values are searched as in v1.\n\n### Development builds\n\n- In strict mode, development builds warn once when a recipe leaves 1,000 or more drafts unchanged, as a search through a large draft array does.\n- In strict mode, `rawReturn()` of a value without drafts no longer prints contradictory warnings.\n- With `enablePatches: { pathAsArray: false }`, development builds throw when a patch path would hold a Map key that is not a string, or a symbol key, as a string path cannot name such a key: applying the patch writes another key, for example `'1'` instead of `1`, or fails for a change below that key. Production builds still generate such patches, as v1 did, and still throw a `TypeError` for a symbol key. Keep the default array paths for such keys.\n- With `enableAutoFreeze`, development builds report a circular reference only for an object that holds itself. A changed draft that holds its original, as `draft.prev = original(draft)` makes it, or that links to a shared object through another path no longer throws; production builds always froze such states. For a real cycle, the error names the path of the object that repeats, which can be one key longer than in v1.\n- Development builds throw when a recipe passes a draft to the `set()` method of a Map draft, as in `draft.map.set(draft.key, value)`: Map keys are used as they are, so the next state would keep the draft as a key, revoked, and reading its properties would throw. Production builds still keep such a key, as v1 did. Use `original(draft)`, `current(draft)` or an id as the key.\n\n### TypeScript\n\n- `create()` with an explicit state type and an async recipe, such as `create<State>(base, async (draft) => { … })`, returns `Promise<State>`, and so do curried producers; v1 typed the result as `State`. A state type that is a type parameter, as in a generic function, or that includes Promises, such as `object` or `unknown`, still gives the state type for async recipes and for recipes that may return a Promise, as in v1; leave out the type argument in generic code.\n- `apply()` accepts `enableAutoFreeze: true` and then returns `Immutable<State>`, as `apply<State, true>()` does; v1 rejected the option and typed the frozen result as mutable. With `enableAutoFreeze` typed as `boolean` or optional `true`, the result is `State | Immutable<State>`. With `mutable` typed as `boolean`, optional `boolean`, or optional `true`, `apply()` returns `State | void`.\n- A curried producer whose recipe annotates its draft and returns a new state, such as `create((draft: State) => ({ ...draft, count: 0 }))`, returns `State`, or `Promise<State>` for an async recipe. v1 typed such a call as a manual draft, so calling the producer did not compile. A recipe whose draft is annotated with a type parameter, as in `create((draft: T) => { … })` in a generic function, also gives a producer, which v1 typed as a manual draft as well.\n- With an explicit state type, a recipe that may or may not return a Promise, such as one typed `(draft: State) => void | Promise<void>`, gives `State | Promise<State>`, also for a primitive state type, such as `number`, and in curried producers and creators from `makeCreator()`. v1 typed the result as `State`.\n\n### Fixes that change results\n\n- With `enablePatches`, every changed item of a Set keeps its changes. In v1, when two or more items of a Set that was not the root changed below their first level, the state kept the change of only one of them.\n- A Set that receives an unchanged draft holds the original object, as the rest of the state does, instead of the draft's shallow copy.\n- A Set draft that the recipe moves to another place, such as another key, an array, a Map, another Set or a new object, keeps its added, deleted and changed items there when its old place gets another value or is removed; v1 kept its original items.\n- A draft of a Set subclass changes its copy, an instance of the subclass, as Map drafts do: the subclass's own `add`, `has`, `delete` and `clear` take effect during the recipe, while the draft iterates the items in the order in which the Set holds them. v1 kept the items of a changed Set in a separate map, which bypassed those methods until it rebuilt the Set after the recipe. As a Map subclass's `set` already had to in v1, a Set subclass's `add` must store the value that it receives: an `add` that stores a copy of a draft, or of an object that holds drafts, leaves those drafts in the next state, where reading them throws.\n- Assigning `undefined` to a key that `delete`, `shift`, `unshift` or a shrinking `splice` removed from a draft adds the key back; v1 left a hole or kept the shorter length.\n- Under a `mark` that returns `mutable`, a value that the recipe assigned or moved is read back as assigned, through the draft and in `current()`; v1 returned the original value.\n- `current()` of a draft whose state holds a plain Set with drafts returns a snapshot; v1 threw.\n- `current()` snapshots an object that the recipe assigned and that `mark` makes draftable, such as a class instance, together with the drafts it holds; v1 returned the object as it was, so a later change to those drafts showed through the snapshot.\n- With `enableAutoFreeze`, Map and Set instances are frozen too, so adding a property or replacing a method fails as on any frozen object; v1 only replaced their mutators. Later producers skip a frozen Map or Set instead of walking its entries again, and a Map or Set that holds itself no longer overflows the stack in production builds.\n- The iterators that Map and Set drafts return behave like built-in iterators: iterating one that was partly consumed continues where it stopped, and iterator helpers such as `toArray()` are available where the engine has them. In v1, iterating such an iterator started over, and only a Map's `keys()` had the helpers.\n- Consume Map value and entry iterators, and all Set iterators, while their draft is active. After the producer finishes or fails, or a manual draft is finalized, an iterator cannot yield another value and throws a `TypeError`. Lazy iterator helpers follow the same lifetime; an exhausted iterator stays exhausted. Map keys are not drafted, and `keys()` continues to return a native iterator.\n- `apply()` copies the own symbol keys of patch values, and an own `__proto__` key, as `JSON.parse()` creates one, stays a data property. v1 dropped symbol keys there and turned an own `__proto__` key into the prototype of the copy.\n- `apply()` rejects a patch whose path ends in `__proto__` on an object or array, as it rejects `__proto__` earlier in a path. Coercible property keys, such as a boxed string, are checked after conversion too. With `mutable: true`, v1 assigned the value and so replaced the prototype of the object.\n- In a patch path, `apply()` reads an item of a Set only at its index, such as `1` or `'1'`, and throws for any other key, such as `__proto__`. v1 read any property of an array of the Set's items there, which let a path through `__proto__` reach `Array.prototype`.\n- `apply()` with `mutable: true` throws for a patch that replaces the root state with another value, such as the patch of a recipe that returns a new state, as the state cannot be replaced in place. v1 ignored the replacement and applied the patches after it to the replacing value, so the state stayed as it was and the value of that patch changed.\n- An object that `mark` makes draftable, such as a plain object under `markSimpleObject`, keeps an own `__proto__` key, as `JSON.parse()` creates one, as a property of its copy; v1 assigned it, which replaced the prototype of the copy.\n- A patch for a Map key that is an array holds the key as one path segment; v1 spread the array into the path, so applying the patch wrote to other keys.\n- `apply()` uses a Map key of a patch path as it is. v1 converted it to a string first, which threw for an object without a prototype.\n- Array patches record a change between `0` and `-0`, which the state already kept; in v1, applying the patches lost the sign. An element that stays `NaN` no longer yields a replace patch.\n- When a recipe shortens an array and lengthens it again, as `draft.length = 1; draft.length = 3` does, the patches replace the indices that the longer length exposes again. In v1, applying the patches kept the removed elements at those indices, and applying the inverse patches left holes there.\n- In strict mode, a nested `unsafe()` call no longer ends the access of the outer call; in v1, reading mutable data after it in the outer callback threw.\n- A producer that fails after its recipe returned, for example because the recipe changed the draft and returned another value, revokes its drafts and releases its array method cache, as a recipe that throws does; v1 left them usable. This also covers errors while inspecting a returned Proxy or calling a returned Promise's `then` method, and preserves the original error.\n- A draft of an array whose `Symbol.isConcatSpreadable` is false copies its elements; v1 put the whole array into the copy as its only element.\n\n## Contributing\n\nMutative's goal is efficient immutable updates. The focus is on performance and on APIs that make development easier, and pull requests that help with either are welcome. For a larger change, open an [issue](https://github.com/unadlib/mutative/issues) or a [discussion](https://github.com/unadlib/mutative/discussions) first.\n\nDevelopment workflow:\n\n- Clone the repository, and use Node.js 22 or 24 with the pnpm version that `package.json` declares.\n- Run `pnpm install` to install all the dependencies.\n- Run `pnpm test` to run the tests, or `pnpm test --watch` for an interactive test watcher.\n- Run `pnpm format`, `pnpm lint` and `pnpm type-check` before you commit.\n- Run `pnpm commit` to write a commit message in the [Conventional Commits](https://www.conventionalcommits.org/) format.\n- Create a pull request.\n\n[Building and validating Mutative](./BUILDING.md) describes the build pipeline, the package checks, the bundle size limits and the generated API reference. [The benchmark suite](./perf-testing/README.md) compares the current build with Mutative 1.3.0, Immer and hand-written reducers, and describes the regression budgets that CI checks: run `pnpm benchmark:immer:check` to validate every workload and `pnpm benchmark:immer` to measure them.\n\nThe [contributing guide](https://mutative.js.org/docs/extra-topics/contributing) also covers the docs: code examples in this README and on the website that import from `mutative` run as tests.\n\n## License\n\nMutative is [MIT licensed](https://github.com/unadlib/mutative/blob/main/LICENSE).\n","readmeFilename":"README.md"}