{"_id":"@gadgetinc/mobx-quick-tree","_rev":"35-24c3594b57f77d093c9080daadbcfa21","name":"@gadgetinc/mobx-quick-tree","dist-tags":{"latest":"0.7.8"},"versions":{"0.1.0":{"name":"@gadgetinc/mobx-quick-tree","version":"0.1.0","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.1.0","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"4055357cc98a4e52c404473f724d60706a09c077","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.1.0.tgz","fileCount":43,"integrity":"sha512-1aV2ix5Mb+Cv54OTEoUZAKF24jy0hGYo+w+tl9cSep9d3NF9gwUHogPuBLufigmcYMQGQec5djrMc+DcrPFnPg==","signatures":[{"sig":"MEYCIQDY/P3184TVIa77ALiPWHy445f04KMXHE2NzAkG8oIFswIhAPQuQM6SnifPirHFCWWFjWpsNZCTFseLMHYi3MomOJCN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVFVAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJaQ//XS8130r4sSYYFk4Ohn9ubGV+NLT7g6O+fAZBkawEuKQbyr97\r\nHlu+vYTqotG/94kG4AZDoqx2KcXwRh5UFy6uovLHgWgUeUKr8dSwqG1YdiPY\r\nEprIIdVZt8EaqVvRVkdcj0voRRbPH9ukBZPbB2uwn+l5dTQM87giVOtiKk9f\r\nYMnUa12NRJ8+J9t5FNIc01ppckpP0Y/B+yweTllHnI+aV6MLKcSEKqjrpFEo\r\niC6lj1Ge94SRd6XoV4LUji1DW8nDwIBHPRAR87j7adLWtdlwM6HeK0cpr1oI\r\n+nZqwvH23w9473s4dud1EL4Oo3wlxdkLWAL9944ru+bkkwz5QncCDEqM2BqX\r\npkVCjruEe9YT+nU90eqQMRotJ31SID26Mw6xlVqFsSglUQhlcOP58u5Um+r+\r\nKL0vgGCyDSyIwNrQPiagYGOF/3YukaraE4KaVmeSl8F6CzVcxM/FqMLLldN4\r\n1+y2D0+sYrIMMI9bcxqGviHNRNWqUQWVekNxhTjbmNapSZzxgIsft92X6jb4\r\nNgVyHANlj8TIctYWokRJAcBpEDbEwJQ8QdUddInCtpPA9HhavwVh7cOlnMCZ\r\nCM74Z5Pys4a9FHrj/utAmq73FyOjtI3/rIjTBftJ4pcuHUg1NLHWsJ3nkpVV\r\npC8ahSyNN9IxEana4EGn0fx+UHw0M8DEyr0=\r\n=tXpK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"16.14.2"},"source":"src/index.ts","gitHead":"62a19b64dd2a0cb095b4dd0b4274ae82e483c783","scripts":{"lint":"yarn run lint:prettier && yarn run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"eslint --ext ts --fix packages; prettier --write --check \"{spec,src}**/*.{js,ts}\"","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"yarn run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.5.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.14.2","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","prettier":"^2.6.1","typescript":"^4.6.3","@babel/core":"^7.17.8","@types/jest":"^27.4.1","@babel/preset-env":"^7.16.11","eslint-plugin-jest":"^26.1.3","@babel/preset-typescript":"^7.16.7","@gadgetinc/eslint-config":"*","@gadgetinc/prettier-config":"*","@typescript-eslint/eslint-plugin":"^5.16.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.1.0_1649694016133_0.8056474412397812","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@gadgetinc/mobx-quick-tree","version":"0.1.1","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.1.1","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"f268988b4fbf5300089008ecd574d7fee0f7e387","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.1.1.tgz","fileCount":43,"integrity":"sha512-cR7Oqf0Y+i0Zl5k1ukrsuhAP0ar0aVZtN+eNOHTzAjzHlVc65UH2dMBXbwTkLlzx+oUoluJODsWbyfDbIzpMCg==","signatures":[{"sig":"MEUCIDIZGnEIOz0f+xokKoJBiv4jjYfMAilhZSVvySKxhF/UAiEAoCv72TGM6hRXhQetn1WOFiwANEj5r2no49ThYBCWZyk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84025,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVGSrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqLvg/+OqHlgfaPbRjta4d9apRYTupP6Z8gYNy0HmXqRqaw/zoVn5Wm\r\nQFDt3o43PQ4c9xGMgExYy0iwqPEqsQBwRJUNBvM7VqeREXdxEGLUpmFVUh7o\r\nTLT9PwloqMfupwnSAY80eKZJ7IlgMUFzTePnA/PhbMTr1ip273lrviGDnqhG\r\nezPQvYBpZgr1U7i4QDl1hcc3MQgZhehK2lGOxC5ptZfI2a5BmgUSCOe8N5mP\r\nL1OlrwUYInJg1Lq0EaykTo/jdQEb5Ov1lh28LPOTR9BlFNWF3vrmm9NNsG2s\r\ncfCWSI3dp46sR4DVmczQM561uaV+aTdPcTkMW+Rpg84UX9XJJO6nszCd9B61\r\nRqPcPtouE/zrnzvNB2hS8o4rpT1FcUCgQbkYoXJl0wtm6z4OPdojkzMAf9l+\r\nqH+E0tw7HUVhMFBr/qKub8+E9SjdbMQGd7ilatqPz42rflZ64Zdf6WrcToiS\r\nzP5Lse3uXU/GxM1rhD8Sv9R9rWBwC17wUH20cwxanW8AeH8CHVudkmhiLrlq\r\nHP6KLItDLbaATXpqx4cd0G0No3HShFutFxByqV7bfrjXDfPz3sxo1Ds4ktH9\r\nAeA/eiV6wGjzx2RkVC7r3uKEvDquq8nFNr9kkZblr+J3B1wEbua/v/55WyTD\r\nYabv36jT3x8KBtVe6AyXriptyYFqGNWXZXY=\r\n=BXpD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"16.14.2"},"source":"src/index.ts","gitHead":"5c3e68e10d5d7ab18582eb22ef729d77567000b6","scripts":{"lint":"yarn run lint:prettier && yarn run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"eslint --ext ts --fix packages; prettier --write --check \"{spec,src}**/*.{js,ts}\"","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"yarn run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.5.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.14.2","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","prettier":"^2.6.1","typescript":"^4.6.3","@babel/core":"^7.17.8","@types/jest":"^27.4.1","@babel/preset-env":"^7.16.11","eslint-plugin-jest":"^26.1.3","@babel/preset-typescript":"^7.16.7","@gadgetinc/eslint-config":"*","@gadgetinc/prettier-config":"*","@typescript-eslint/eslint-plugin":"^5.16.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.1.1_1649697963059_0.9369463512280871","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@gadgetinc/mobx-quick-tree","version":"0.1.2","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.1.2","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"c3ce4a07001633efadcb04476cb7c542cd99a8d8","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.1.2.tgz","fileCount":43,"integrity":"sha512-AFU/woAJ/wbhJgRuHvJxBBPgGKcHghSzhOHSQGSv2AtSYl8P2im5wgxMwUv7IutqYi8/m9xwwO5wmEuY6Ng7Pw==","signatures":[{"sig":"MEUCIQDjtv4xLe5yTIfxNfe51yh+/j6Lyx5tvLrShOO8Gyh1lwIgfhcCrppjkBrumf5s/8Y4/NkXrZUos9d6amfojUzY2h0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82983,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVd8NACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpDfBAAj5w6HJ0w+Arfi2nv85ggb3zmf9grwtDpQYVpr5H2gelCoOa1\r\nlHaMJzXcAP0/zy3ddndZT74CaY5q+Ue5AsjO8L+L6WFf9BGsWWFgrPoYAsF2\r\n+KRD4JMo4VfkruzEEc9Q1nRPpX+Lyy+Mu7LURG+06EVj5WIPULI6PdiUsUox\r\n4tpIxqzBVt0/3zB7DCZy2GtmBwJTVg/gakJvmJ6lVtOmBQq+LRja+PzDFDXJ\r\nsNMl/Y6TQ2NeZaVo1KL3eFhqNC9ezY7E2JKZFWkeGlI3BdmnhwAplfb3z1qc\r\noBoZw3qMasAMhLAuVuZDkamEQRMF8xMzmnDdpOqIHqd6fJ87twxusDo/4FUv\r\no/T0n9/Vv5VeawKi2LjeJtpItMTu+PdPuwNhesIwPfd5QV95AnsCYarPRA4b\r\ne0Lzf9C3h+xkhWtu+u6X3cxAuNQQdJY1S6lEa9jex0zx9ezdyyNI4rFaZbuV\r\nS+HIylBGcTGD27NV+UAhlKSQGxM+1w3Gg6rW4RyNxNlTK+KbGqI5eGE9iXB7\r\nU4jK5TPhX/zzMDhDwlilecMP3Y4AGPwo0HtyVfesXYdLM8YQnGeyJsyXvhMc\r\ndQ43u26DKJQDCM8PHBd65IkBIR7S8mGpGYr1EdCs388Gg5v+9uvWYgQOg/RC\r\n/11o04sLbSfEDpgpw4ScxXFSuiOpb0QpH68=\r\n=dpI2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"16.14.2"},"source":"src/index.ts","gitHead":"1d4b7ca0d6bb195cdbeb270baab3a384a7b311c0","scripts":{"lint":"yarn run lint:prettier && yarn run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"eslint --ext ts --fix packages; prettier --write --check \"{spec,src}**/*.{js,ts}\"","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"yarn run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.5.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.14.2","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","prettier":"^2.6.1","typescript":"^4.6.3","@babel/core":"^7.17.8","@types/jest":"^27.4.1","@babel/preset-env":"^7.16.11","eslint-plugin-jest":"^26.1.3","@babel/preset-typescript":"^7.16.7","@gadgetinc/eslint-config":"*","@gadgetinc/prettier-config":"*","@typescript-eslint/eslint-plugin":"^5.16.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.1.2_1649794828992_0.7101835323196448","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@gadgetinc/mobx-quick-tree","version":"0.1.3","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.1.3","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"ffcc2317a3ce83f1e6b97ea9983f4028e0ac3151","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.1.3.tgz","fileCount":43,"integrity":"sha512-udWsOXEyBwbznF7a24l9aG8t2dlPA8hs06SRd7DAZY3aIdlYykGkHeL6uurN+ZRSSpY6rcn7nbVc2hebZzozgA==","signatures":[{"sig":"MEQCIEZiSccSrZvAgpEnqeQXkqXTZAKE3Q5s9T0YBQWwZDD7AiAB/9c8E/ftllyr9U53mWyB7kDmGCbvxNJwMNCMPlVc3Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":83393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVwkPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmowdg/+K1mnrQ0KTMv3a8tFREX3Et7QGr+QJI5c/M7aDvq74K7BvgRr\r\njShv40401Rd4oaMEEQD2/OdrOMgkORk1BiwrRjA6gcLaiG+LOkLIE8yhjT4T\r\nS/T7ytq3MgvAxmmtoJio5tnx5m2BGrXefjqNKEaC+evUbUpJxWs9cj2T4xWd\r\nCcKXJkSt5oVlJpRsThkKIDqe0IMLDbkeicK26awRoaDYcRQYYOX3cVyUET+i\r\n7HPY/qsIYnrM9GhT5ThIeQQsBU2Yq5iP1ELZdkQZKnU7isL8XVSG76dzk5xa\r\nNlE23dGAwY3JEwQ6LPlI7+JaD9XX0XQfNbtYalZrsUFreNGojnFWHKuR+zQr\r\nj+6dvyr92yY8zb0xdKHu/4YZgNjXFQB3CQSpsgoDMNYYI6ehavJa8x2zBrLw\r\nQS85cM1ARyPHqh2ug2RKTVgHugL95DodFMIV5AHV6Hp9S6T9TjhwyVFOokx6\r\noXNnynoW007ww+V9oGxOUKxFiV4oVCNnWSKSALbjjpVvtf5EcqJtSSKi6HzT\r\nTBOd7WBJ2nbtSifyIKe9Q8/9GxuBQRFdlrRm9DAPzwaGfdqkm9me4dBpVQm3\r\nr2i4WnmvYY92qB6hpRbQn+fm6JYW3zXRhFXVYi1luGcjWkGB4yTd5ophnynF\r\nN8Q175D6aRu4T5qOWSX5sMPbKzkPQW9XWm4=\r\n=Vmj6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"16.14.2"},"source":"src/index.ts","gitHead":"a9575bd14749a0eea5023c1ab7ebc9c402cd2ea9","scripts":{"lint":"yarn run lint:prettier && yarn run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"eslint --ext ts --fix packages; prettier --write --check \"{spec,src}**/*.{js,ts}\"","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"yarn run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.5.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.14.2","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","prettier":"^2.6.1","typescript":"^4.6.3","@babel/core":"^7.17.8","@types/jest":"^27.4.1","@babel/preset-env":"^7.16.11","eslint-plugin-jest":"^26.1.3","@babel/preset-typescript":"^7.16.7","@gadgetinc/eslint-config":"*","@gadgetinc/prettier-config":"*","@typescript-eslint/eslint-plugin":"^5.16.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.1.3_1649871119300_0.6962249457660385","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"@gadgetinc/mobx-quick-tree","version":"0.1.4","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.1.4","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"8d2b283065468f421cc3728324c544d3e604bfce","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.1.4.tgz","fileCount":43,"integrity":"sha512-4/A152V8CuB/fqT0b11JeBAQyXxKTXoDbjq06rzw4IBr7q0GBtVipbjFCXnwaiO4SCS2Dnv9Qis7u82G01wbqw==","signatures":[{"sig":"MEUCIQCjIVgYWWmr30VG2Kg/IdlAN1UO9eOxh5Pqugrt+Yrr4AIgXP2X9f6iTt7cx/qE8vmAjfowE7oiPOxtSQv8mzrxtBQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":83186,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVybIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqa7w/9EpJkXuyNM0ZpBLpFpBl84V2K+wrn+dRTkWxKZ64+sNUSc/EX\r\nQCtlbjZPDf4AWMlxS6UfcqelglB2h3xmOMPHa+EELSF6tjWzhOu5NglESNy0\r\nwCqqv/giK1AzRFCzPAZln/I7NpuyIR34c4GEGNiZPqrLzxnsisT4wHW/cZ6N\r\nRRAiQ0mPSC0PwkcgtXkPZAXFrJtn2RkRCEVgQbMbXx1kz/zGMq9Jr0xTGQQn\r\njFH8VVa3VpNCh7m/lANpkyQAqv6gonwNQ5QWq5Klwg+PILegaJeOGBnFnjFU\r\nPCLU5hv/eQQtizQw+SzDB4yYN3tU+7f3TiNTRGBHS15FUN84IpDPmhvJpPCu\r\nsXKUMkFoGg5XX2kHEIAG1DsBVOex6xnhdexBAXwAHLJVs82CHftGQUVJAIkT\r\n/OnuTcJjE2hbWzYXVFy1T6CxZy6s/71rfQJayl15wjvB/kGd4FVQkJbj1abV\r\nAOOprqD5JwH0fl+h1iY5haXa+Uz+afkn9b7Xn2iLOi3dIv22ERuOdCEV7y91\r\nccxOCY+PJhNRfPwmMIGcSAWPJ3K8ymz2ArrE7LEKK6Xngyx5Is+hF5UqJN2+\r\nd5VXKq3ieNxWMoqfGNOEb6ksAcP3SHZCI9I8OjSXcndSMcrN54mE6htIfTOm\r\nEf/b33+wWz2uYm+fpexYzRscn0jeb7BO3+A=\r\n=uu1O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"16.14.2"},"source":"src/index.ts","gitHead":"86d10d0b34b3cf9265e7bc216ec0628876d64b48","scripts":{"lint":"yarn run lint:prettier && yarn run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"eslint --ext ts --fix packages; prettier --write --check \"{spec,src}**/*.{js,ts}\"","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"yarn run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.5.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.14.2","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","prettier":"^2.6.1","typescript":"^4.6.3","@babel/core":"^7.17.8","@types/jest":"^27.4.1","@babel/preset-env":"^7.16.11","eslint-plugin-jest":"^26.1.3","@babel/preset-typescript":"^7.16.7","@gadgetinc/eslint-config":"*","@gadgetinc/prettier-config":"*","@typescript-eslint/eslint-plugin":"^5.16.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.1.4_1649878728085_0.09393513863305092","host":"s3://npm-registry-packages"}},"0.1.5":{"name":"@gadgetinc/mobx-quick-tree","version":"0.1.5","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.1.5","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"646a1e18b957452af2693456c6bdf014dc054ad5","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.1.5.tgz","fileCount":43,"integrity":"sha512-cmFuREHuSn3bvMRYHP2TOhNcIoa9p7UEM0vCBx4ziiQNU5KK3g1AVxc2vxZpkfUAl3mZWVQZhG5dga+Rl2CMsw==","signatures":[{"sig":"MEUCICYm5ovvkgtXvs30VVmSMXl/hbIk0m0frg+4wNQobPOVAiEAloMd6yEqUaCUT0N0hJiwL+h87V3RmQcL1ILVSWuSakI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82095,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWGFcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp/RQ//U8VD1t3ljSePKTEQ+c6dtK2/DH/JA4EzcRNSOKxu/olFqBTj\r\nf6bdHqPeiI+9DR+kc63vNuV5UAfdQE4el3/sIRNmLrFgjQvZOrJ7tw3mHiA1\r\nXOFxzyw8mUXujPE95KG0tRJzBYrw3Wne+XQ+6md2i9yEIWGs/0jHISxrLqH2\r\nnfPATPqwGbRTf/7yei7IxTVqmUoRyg7IFe4WiC4IovTr60JIQVaSqfzzFKcj\r\nheu75gCBp8nJw63ahG2+nfaz71k0gbEetYScQrtiP8jKut6O3JTSY28pGABs\r\nQeuAoF2HfYpHx7J4SqNZDDgANxg/1soEoYgaXrIm9ao7ijq6PW4acDCPAUKz\r\nAAeCtYTVcrw3Yai5rHKSYZS0/DvUSrhZZgZ7OFEv4SjhhGbNBQn6hM+FsDMT\r\ntkruWNXzd75N2lRE2gVGY7l3Nel4WAyDv30SeHxkN46wppx7jCUXklnBxRv5\r\nhBvegDUyJ7C+e7A7Y3dX8GuVJBmy/HqA2jW8DBxSBYMutd8eSZVW0x5TS/bJ\r\nsNi3REp3I0GTPt+ypuXedqgQtwAIZy0SKSYsaq2BObjlwk98pEz2XNn9xd5C\r\nvYrDoA/Y4HiDKSHnxrJ0DjE6QZOn927oRYn1WL1ZnpINoQwTznFIsjIOmER0\r\niDj/pEQcBfXHifKZcT4Wv4S/L/Vad2CvABk=\r\n=XEQW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"16.14.2"},"source":"src/index.ts","gitHead":"bb205b3f5850d08ed8e0f26afa5faaf9c1611795","scripts":{"lint":"yarn run lint:prettier && yarn run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"eslint --ext ts --fix packages; prettier --write --check \"{spec,src}**/*.{js,ts}\"","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"yarn run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.5.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.14.2","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","prettier":"^2.6.1","typescript":"^4.6.3","@babel/core":"^7.17.8","@types/jest":"^27.4.1","@babel/preset-env":"^7.16.11","eslint-plugin-jest":"^26.1.3","@babel/preset-typescript":"^7.16.7","@gadgetinc/eslint-config":"*","@gadgetinc/prettier-config":"*","@typescript-eslint/eslint-plugin":"^5.16.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.1.5_1649959260076_0.1737141551908692","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@gadgetinc/mobx-quick-tree","version":"0.2.0","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.2.0","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"459c67a9fa00f083e0f6f7d521e86901980e9389","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.2.0.tgz","fileCount":43,"integrity":"sha512-4rzRRv5QsGDb6CFLtDOEqB+ZkNbndY5756xVHIzPKGpsT9eiF1leKfVCC2/oxSlTgDb3ZYmjJ3QOau01Qiyj0g==","signatures":[{"sig":"MEUCIBC8m5D+O2pZl/EoyXTh6Y05KJq1QtZhzLRjQPOfeQY1AiEA1erH0hXNiQ8DPYp6mhjylNK0nX2vZTG+oiJlo8brjsU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75220,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiXWoOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJXA/9Hwd97K9q5ofprKnIA8N/QQSYRZBEoHMCeIHI2QDHkvztZOX8\r\nZ0ETNsrDbK1aiSui93d1AtmZQwy9UQaZVrrdqvJ9RF8VnV3lxz8RX1tFmynu\r\nenywABRlmxKXvqWQlO3WhdKiXIksJ2FFAhwrIwemBzQ6/p1iqELwy1CEsgAi\r\nbPrBfUyeljs6qhRX3NdvcXSyTHkhchfeAOMhV7OAsOTidtgVtnWWaqUkyz+U\r\nIJGaiTz1747fTKqhDMeNRuRUIsb8/vqZwA6jkCYjNwpUtPkPYQl24buQ9we+\r\nLL1qaknGnUkIbBIWW/R/S0mHjqmg1EyYW3CeR4XmGXuDlveS71dd+aHyxusj\r\ny1W7kyUxkoU25ahf5q7DdVZTA+Bw/yDSRTDbM7+GXQAE7lY0oMOI4cWjmNrC\r\nB27ZDIEdA9txryKd151aIjqaFlkZVQ30WzJxSgJIpckxZaLqlFARIWjmUSqB\r\nJsczo5XE03vNa8AFu5pNBeL4Yf+nIlJSBfp5AqWKhtPoenfexwUcbPMkVpYC\r\ntWCY8Ky9oF1x+DpvbSPyAK4e+TR2GuwJkS9Mc675JdpXLnaFriZtjJb6e4UX\r\ncagKd2zSNifu9mx4M1Q1GwaT7nju2GaoHO6OhIdLWTlOE0FyWSG3krCODNwa\r\nf6eQA/nvktT3G0p1ftHhsxku1JlcR5qrYaQ=\r\n=nsg6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"16.14.2"},"source":"src/index.ts","gitHead":"25d3c6272d1e03e0331478197dcd2d69c145ea10","scripts":{"lint":"yarn run lint:prettier && yarn run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"eslint --ext ts --fix packages; prettier --write --check \"{spec,src}**/*.{js,ts}\"","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"yarn run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.5.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.14.2","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","prettier":"^2.6.1","typescript":"^4.6.3","@babel/core":"^7.17.8","@types/jest":"^27.4.1","@babel/preset-env":"^7.16.11","eslint-plugin-jest":"^26.1.3","@babel/preset-typescript":"^7.16.7","@gadgetinc/eslint-config":"*","@gadgetinc/prettier-config":"*","@typescript-eslint/eslint-plugin":"^5.16.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.2.0_1650289166728_0.4786347952628802","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@gadgetinc/mobx-quick-tree","version":"0.2.1","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.2.1","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"0b3529d14899476fcb51e7d90efab8dd6ef39f5b","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.2.1.tgz","fileCount":43,"integrity":"sha512-oob/DuN5XsrdLOX4F8Ys1i3CwcoS1iIhKx19AkWMPU1TccFhHIYxmm3uUc80Nlvrl8l3Iat3ejq464G2PKTWEw==","signatures":[{"sig":"MEUCIQC47Pgg+eq9sVkp7DERd/6YWzXxU1krQgA/hf4ZzmD3NwIgccvR0d4pLHTgSuBxGbhBkDSsqTRC0WQRiB4Qnx6/+Pg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75363,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYXWYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo7FhAAl7K9AM9xy3RAYocYriwCmoPoWk7QgRn9EK5/nSabyyBIHLZY\r\nmc0b9qTLNtIfucTX6ixLhOf9hoClh9uXgY7GP16WS3vjoh7cGiWsYi7G5BGm\r\n+aomDPHOa5vO8HTEH2BRXZGOwIQzgsUeBV7AoC6p1CzYGVB3dzEO8cQ/23T/\r\nW2fX//1BWh4FoxHbrzmbrM3+4viR3V4CZ2ocH0a2W33ZuYIn9P0Efu7TvPxY\r\nOoM+avF84m+2PCZ7joj5z4ratKrWR0uS++8ZJIT4V/IqqSC+8SiRXWqmDc8c\r\n7LynggAOMTmE3sd+nnGg+kwWZ02H/Ye38DHES1XGSbvNdIQGcfAy12yxv4MW\r\nqJY1i7r3c3qzcU0Pxhp77L07nPO6c4UkN6D5KIpEte5p11Z98YHQ4NkN3YcX\r\nH39tJTChDmBcIW+nnmK3X9P3fk2OTLRLild9aM5MYMjpDSZWvybFi/282rfI\r\nQisreWhWQFfbGzb+/DppHI+ASLS8cMpl6xZkOrUfCm9po7NSCttH3TJfIuwf\r\nPFwcMfxiwpUGFjnNeDdTk8HcJ7JeBfViYMROwFJ2IVvxbN/uSUxC9qkiqYAH\r\njOQHMk9qzxGf9UpVVyyPzTJ8mhGDQulR6Sagce1KaBWl6oWEvZIKm3r2KRJv\r\nsB4x/8FjaanVGd+avrJgqqtnHoVvMlCDwhM=\r\n=W/2y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"16.14.2"},"source":"src/index.ts","gitHead":"43f38e02126f477c9ff9eae0b511e5085afd8459","scripts":{"lint":"yarn run lint:prettier && yarn run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"eslint --ext ts --fix packages; prettier --write --check \"{spec,src}**/*.{js,ts}\"","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"yarn run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.5.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.14.2","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","prettier":"^2.6.1","typescript":"^4.6.3","@babel/core":"^7.17.8","@types/jest":"^27.4.1","@babel/preset-env":"^7.16.11","eslint-plugin-jest":"^26.1.3","@babel/preset-typescript":"^7.16.7","@gadgetinc/eslint-config":"*","@gadgetinc/prettier-config":"*","@typescript-eslint/eslint-plugin":"^5.16.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.2.1_1650554264469_0.16294898706370797","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@gadgetinc/mobx-quick-tree","version":"0.3.0","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.3.0","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"447761194b44e1154e0a5cd35d6d31fe049f7c11","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.3.0.tgz","fileCount":45,"integrity":"sha512-gj3K3PY/tKo2gBduqOTYozQbojzpUO6hhGAltZja5X6JFw61OB7lm1j9oI2UthOBahbb98fOyxLEArrv09Gulw==","signatures":[{"sig":"MEUCIQCeAu+Scj13Qx88+9RKDzMYMzQZTrYKXyk1kG0Ohqrs9wIgGQH/mwdPUidNWsN+czf2ZTDLDuFxhz+EvHYfcQPULYE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":76256,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicryOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJ5w/+J0iLzuGWAkVL8eMXSPnnDAVhR10anJ3L3yh510rHIgbFzYyi\r\ndJTDthGwtuve45HzAdOgMDWKurMvJDmON0A0sDprh9295HWwg1LD/LHYVj7n\r\nJmxIykyJj2vkOhaOkTKJbsU+dfk+x+CvQg2ndHWauBV9TFpqH08b7+oM1/2g\r\nJsOgchC7FYtGMBq+Exqj89TfzYmGh4su1ysoAJ4fvuOGxq0muXRZg3OLTJvi\r\nd9S7pT6uhHA+ixffjOT4WqOYJh0dqMBUfLcWHBAgJnv3oPaUoN70FCSEu7rj\r\nZqYMM4b5pj4LFMMzrn0Oy55zeZsBGCzDxNkXle6pah+pFNR6oO3FUJ9Srl8r\r\nn2A50m6DL0UhTdqfsfIOgRReDGrZy6XcygNbsIkG+MSMP59myGDllVjiaVUM\r\n5ohMk6k7TLl8/F08PQrCUuftc/DIMjqxXART4TSyTIlat0moXuATZfpqsxXA\r\nXgFFAnOS+Yg5lWk3bhp6nWTNHYUH5KsLLsCnmCN8xsSgW1ddv7L8R+Io7w+H\r\nhwv3gQdOdnrcmvZzSTFvs7EyvBCDxfgREQDRPSwKoYsK0aLodM2lJ3xXdo8J\r\nejpKMGnS3asdQtA2+VyCh+lGyiJfeinrN7KsgiN2O1504t1u4jWqzils/qTb\r\nOyl7UlsIg7sRIgGfclxSu2Astrl8KYw5n7o=\r\n=Rfu4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"16.14.2"},"source":"src/index.ts","gitHead":"0d6d120bda1b1a9e39b39c3f97cffda5d942137b","scripts":{"lint":"yarn run lint:prettier && yarn run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"eslint --ext ts --fix packages; prettier --write --check \"{spec,src}**/*.{js,ts}\"","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"yarn run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.5.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.14.2","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","prettier":"^2.6.1","typescript":"^4.6.3","@babel/core":"^7.17.8","@types/jest":"^27.4.1","@babel/preset-env":"^7.16.11","eslint-plugin-jest":"^26.1.3","@babel/preset-typescript":"^7.16.7","@gadgetinc/eslint-config":"*","@gadgetinc/prettier-config":"*","@typescript-eslint/eslint-plugin":"^5.16.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.3.0_1651686542063_0.7476181913333431","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"@gadgetinc/mobx-quick-tree","version":"0.3.1","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.3.1","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"b207c824ca5ec6db8898ed0a89ad3cfb234c4272","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.3.1.tgz","fileCount":45,"integrity":"sha512-fVoS9j0KcWAhT0gh/uvDkk0XG4v/UC5COEDyxta/b3w6wsMN5Cxd9w4xtHpvVbzNZz/kjswOLHicTfZWsBK2Mw==","signatures":[{"sig":"MEUCIQD8N4E7yexPkmM7jlGcl/W5cY1BwjBEB+stFzTQM/xwXwIgCiqPtdFoTci0IQ4ZDkjVExh5EfBUBNHGNaTStoePJ7E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":78302,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGfBRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoO0g//XUFu9M7LZvGpgutH8yq4tclVkP78unBsbV7W/f8zynsydXGu\r\nY+p1SN10SgTK3sh+cOwqN0hsuJ5YBBGPuhTBNYXBSsqSVSBLpqEIfLvEhs2h\r\nO3nNRgFj6tZAzJOrvIebZ/G9lziyyJ4YvPTCzf+TLXJs9ZD0fuuQzh6K2sL1\r\nqo0sw5rJ54zL5QYFaBvlNRj9oVMAbw2y0g96SISUDs0rwl86XCI6cTXnCmCS\r\nYwbKnImyp0k27rWRq0hdX2Hz/Rt6738FkMzMlHNFhQmk6uFBBL4gvPo001d2\r\ng/5nHCUJcVCVQWy9JLmGDDU+pP4t7TZCxuqKjGMp3KZECTecbQvJv9uoBAtJ\r\nB3vdXF1CyuWBwGItMOKWxfpQvlrpcNiUBK1xifGQmMmuqMY+5iYEWjBaB2fl\r\nXcdrbABmYSveIsiOTqumjZnI6WrD8Cc4NdTW2Oa8AkZu6ubtUxPm6RiWd8JF\r\nqqrUHcmTHQsNek0KPTJPYqdzgjZ986dfQO0dcR/wG1n5vCUQeKJGqc8HNLig\r\nraVew54ZtCz400dhCel1CLqk7f4vtbAevWv2iShUtnsitedVe6GYJFUAcpQH\r\nwAClSCIccVlpHKPVPp6K3DZmS1+6qxVCccGwM+VCAR8Srm0QGEVDXkE1bmKb\r\nkudeQv0rUHTNNcrMDgpETpm/pYHOFMEm7pw=\r\n=X5fS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"16.14.2"},"source":"src/index.ts","gitHead":"faf66200f5ef33276253d08178b012902f1b0c4c","scripts":{"lint":"yarn run lint:prettier && yarn run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"eslint --ext ts --fix packages; prettier --write --check \"{spec,src}**/*.{js,ts}\"","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"yarn run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.15.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.17.0","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.2","eslint":"^8.23.0","prettier":"^2.7.1","typescript":">=4.7.0 <4.8.0","@babel/core":"^7.19.0","@types/jest":"^29.0.0","@babel/preset-env":"^7.19.0","eslint-plugin-jest":"^27.0.1","@babel/preset-typescript":"^7.18.6","@gadgetinc/eslint-config":"*","@gadgetinc/prettier-config":"*","@typescript-eslint/eslint-plugin":"^5.36.2"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.3.1_1662644305721_0.2740181547120648","host":"s3://npm-registry-packages"}},"0.3.2":{"name":"@gadgetinc/mobx-quick-tree","version":"0.3.2","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.3.2","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"5511d457c5be17fe92368258470e0572e258ae81","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.3.2.tgz","fileCount":45,"integrity":"sha512-teBFLgCRveumkTrI8ALrqxwBy89pohw36ahXcZtE+PtURiKXle8H11rKr4f8+74JQnBFvOEtaqOpG2+8HUyPoA==","signatures":[{"sig":"MEUCIGZZxm3CsYKSYNjlzpH7uP5Gd97qABEpSiztJzksgrYAAiEAm9kSO/7yJbkwUVuwnWvewLTySpLnjiBOkmyokFlBSSs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":76455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjG1aBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpGYxAAgZhHutFZo7O6Vbp6KsDx65zbVBGBGUVu8NL/Ol+y9brMhVw0\r\nXftJoXm4ab7U01rnRA0xSSbyCr8soX8cApE65ZqUgzNTPxh3oJq9lt6oPUZq\r\nivvpS5cStEQZs0bJxfAbSrO0MT5dfhOYRuJHaBvkQilEcTLaq8RAg40MskjG\r\nqwPbXz1vruf4MNHfeencLbjHub1zMpTxADNqDEAZaZsjoDgwl8G9hnBf/W1O\r\nNZc+AmE60tTOE09R8Ux5aWF1yZ5POlm2UgSbzEZ7YrGUqkw5fw2g29eLwgo7\r\nrykDHQMv82KHet77a8RcwhLoMElJmywI/bnjhp30cED7T1D2mwblZS4LpXQn\r\nrHkGbwoZRNmFPxgoH4W0DU7l9iDDj4A9tXw2m2X79fIn0K5w+orZjBeGReI4\r\n0x7D6Zm2Aj0tkeXt2WAEqdzBJORKLRVvJhbmRa3u+Na4rbvidWKnigmkd1jx\r\nhlZ2VFoSOBjbQxj48YGszJYBcXphz0uqGH5eBHk8hkkE8d0bdeZfdvXQr80V\r\nyxbXtV3EIubJHtnyNa1p/eJh7vrj6gVugmrp8jy22DLTlBPW7SJF0ZfuunTJ\r\nZauzClyTjzoWRiqZYSMakoEaEYimma3cRVzbVVIzLT2cdTpEo9eyMXJ0C2wb\r\nFHRE4xCCHUyPJG5DEodJnyNP4fWu1VKb+mk=\r\n=LWB8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"16.14.2"},"source":"src/index.ts","gitHead":"8debdff092d3c5d84d8adb9ebc7d1b05ff556642","scripts":{"lint":"yarn run lint:prettier && yarn run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"eslint --ext ts --fix packages; prettier --write --check \"{spec,src}**/*.{js,ts}\"","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"yarn run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.15.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.17.0","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","prettier":"^2.6.1","typescript":">=4.6.3 <4.7.0","@babel/core":"^7.17.8","@types/jest":"^27.4.1","@babel/preset-env":"^7.16.11","eslint-plugin-jest":"^26.1.3","@babel/preset-typescript":"^7.16.7","@gadgetinc/eslint-config":"*","@gadgetinc/prettier-config":"*","@typescript-eslint/eslint-plugin":"^5.16.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.3.2_1662736000996_0.42854805163535015","host":"s3://npm-registry-packages"}},"0.3.3":{"name":"@gadgetinc/mobx-quick-tree","version":"0.3.3","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.3.3","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"0e7dd3dd81f9c07d06e0852ffd88c9a44c83b2f1","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.3.3.tgz","fileCount":45,"integrity":"sha512-bSiAeYzJl5sQ/tdqJBSoybr3lxz72m7rIkJ28KqnAwRMmIDRKwxLCfHseweRPa9HWgZj/DT7mshqYCdXNUgENg==","signatures":[{"sig":"MEUCIQDKD/BExf5Y7n85PelDYThgvQEbaUrpEqWsZJmiQXJw+AIgBU47XT8XajvYKUO4qPeA8TuJU8mb5yw48gSQLurVS1o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":76473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKdiZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoZtA//Udlf3D6A1OhszIuFxbCSwWNUWBRtAKJHGT7McZL+hdW8ulAJ\r\nw174bi5mceTaXdaQe/oEHWJA5shr+TmrvjY2O1aW45TzC1PtqkI//Ec2k+hT\r\nLbywKMLLZ6rC0hCAZbRIMLJmZt3u2NDc50Cqyt5s3UySbnAfiahuY4UI9CcB\r\njuQ2ggsgxRZ2cDyGBpbBv+UfElYsx7r553bCMhe0WnX7gW1QhE6Mi+tkNB6Y\r\ns6tvIrhm2+RIFbrqliXsnRTd+rT6R3xCOXdXSEI9g+mbLSMGUXwzPeh/3PlM\r\nEdL2zp8XjHDeZFrtKChuUAeDsupuyjL6ufc309T1iI1rPSGzE/ZSPdYftZCa\r\njvtmWhrrus5xguxkSBB/j/0k4gHTtfGKqMrdGBBZSVosaOi0WYJRyzVtXbH2\r\npasLBdZFG5x57Je4ttTMa1zfB19tMKGRji/lJEQDEHovHcJ6bKWbshM1W//G\r\n91d5JSwGywIsN6mdZYfU9aB/35cUJvuY7xWQmwHIFdLasGIHDhQ1t6lWdGdR\r\nU8pEco11lyEeUQg7vmft1Y3ypI337eBIXTha2ArqtHd+wV8NAfMtUxzHTi3Y\r\nfws5FKOk10nKIWK5GX8CzSKNx3/371fMsLOaciJyPrBQO+oRl36oAGzk03c/\r\nNskKGOYPR7f4D0e7BCcjAfhziReAQCoZgUg=\r\n=gt9+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"16.14.2"},"source":"src/index.ts","gitHead":"85b0ddfbe445e62b8760f1dece673f154428fb7d","scripts":{"lint":"yarn run lint:prettier && yarn run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"eslint --ext ts --fix packages; prettier --write --check \"{spec,src}**/*.{js,ts}\"","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"yarn run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.15.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.17.0","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^8.12.0","prettier":"^2.6.1","typescript":">=4.6.3 <4.7.0","@babel/core":"^7.17.8","@types/jest":"^29.0.3","@babel/preset-env":"^7.16.11","eslint-plugin-jest":"^26.1.3","@babel/preset-typescript":"^7.16.7","@gadgetinc/eslint-config":"*","@gadgetinc/prettier-config":"*","@typescript-eslint/eslint-plugin":"^5.16.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.3.3_1663686809664_0.14432490765336525","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@gadgetinc/mobx-quick-tree","version":"0.4.0","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.4.0","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"2684c8824cb9db076fff3e99c765d510b704b3d7","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.4.0.tgz","fileCount":47,"integrity":"sha512-WtaA+mzc4YgUCQR5v9wHPBlNPcDofwdUTZKpzl3PSRtMthNWzHd7JtivMAsVHOut/7H49EkH1xdaVxkNLHJ9HA==","signatures":[{"sig":"MEUCIQD9lv8iMpgovx6iweQMi4gJeqqEmfNCO24t5IT/xkaVgwIgGVejimf+v32urltZhtfBVOAm6aw89c7OSWJaZYB3bzE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":151712,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkNdudACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpKLBAAmp0gjWSo6Ydfnn+OJyTCQfgr6/0NutQrgrAMcnUY8J8BRqfy\r\nyr8NiI3Pq4pVMxfnioc5lJhuubDRVeNUjK7HvXjX1QiZVwiTuurtSSNaXzUK\r\nTFubIe8Nk4/YHCGYE0LPeAQKii7dChVDbT9MdJ0j543n9QATNbN5Rwpmf6Kg\r\nxvJXUfRXEVA2s0/GMZ35xO1+uZ2SyDxKB5mzEq0CFoqwIQ0S8yITT51Ye3H+\r\ngXjls/O9u8EP3ZRWzLkI/MO/bdEK6fztWkW5ZZ43xW1OuFP+cM7xz3QZKJfR\r\n68bbjYJ7bxSK+z0ojazHMcfeYx31giEUdt7YK+Tlim3A0GBz4T7ULRx+etRo\r\nWuwftZaNZAlAF0riH8PimfQhWWigmbrQ0OP+1ng3VFioXCuZ2fP0+RFZ1h0K\r\nxHsa+vzoBOl+sCId+ZVs07IwHba7WOsC7p5wL0amptmmibXleGFVuKtGrKiB\r\nsUEP2vtzHQF9m0BxvlabN2i/PrFGZHfzWZyqkBsBb9GRkcMRznQoYwm4PMs4\r\nsg9svsBH/h6rEi5ueg+1wka6rhmGU0ZOTVO8eoI3S8WyG8hcA9hzyFHQmk6L\r\nyy+Tucm6Z2JP6cUGi+/p1Ss5XfrSbs9V12s9gwmskfaBDn48M74oRKLOKJRQ\r\npNQr3AxZFH5ZUK6ExxEwx43u4eGyhqCYReM=\r\n=0Xx7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"675d550e3c5f14bd1368ddbd828ab0a20e5ab8b9","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.19.4","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.20.0","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","eslint":"^8.28.0","lodash":"^4.17.21","ts-node":"^10.9.1","prettier":"^2.8.2","@swc/core":"^1.3.20","@swc/jest":"^0.2.23","benchmark":"^2.1.4","microtime":"^3.1.1","typescript":"^5.0.2","@types/jest":"^29.2.3","@types/node":"^18.15.5","deep-freeze-es6":"^1.4.1","@types/benchmark":"^2.1.2","eslint-plugin-jest":"^27.1.6","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.56.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.56.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.4.0_1681251229143_0.9516062734146202","host":"s3://npm-registry-packages"}},"0.4.1":{"name":"@gadgetinc/mobx-quick-tree","version":"0.4.1","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.4.1","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"c2f36e546214564e264ce7a327fadebc8ab66ba8","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.4.1.tgz","fileCount":49,"integrity":"sha512-IErxnbYt9PrJO/FbLE22PVflZ/Jw8K8VEeZOUtQk+1WNQQm8yi0pgVpYOSTS6QaEPfm29QTckV/ezsiaNoq6/g==","signatures":[{"sig":"MEUCIG5iqTKURH/u5UbpsaOqxOrC5p0yVfXWDobGGDDNShcsAiEA6lUZ7uA8ebJt7vK7uIUmTVdMBdTRmTAEFEOx+/92Vlc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":162375},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"44e403725d3d20be85a7335b30a1f6c2aade0812","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.19.4","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.20.0","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","eslint":"^8.28.0","lodash":"^4.17.21","ts-node":"^10.9.1","prettier":"^2.8.2","@swc/core":"^1.3.20","@swc/jest":"^0.2.23","benchmark":"^2.1.4","find-root":"^1.1.0","microtime":"^3.1.1","deoptigate":"^0.7.1","typescript":"^5.0.2","@types/jest":"^29.2.3","@types/node":"^18.15.5","@faker-js/faker":"^7.6.0","deep-freeze-es6":"^1.4.1","@types/benchmark":"^2.1.2","@types/find-root":"^1.1.2","eslint-plugin-jest":"^27.1.6","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.56.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.56.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.4.1_1687201894089_0.4251751031637876","host":"s3://npm-registry-packages"}},"0.4.2":{"name":"@gadgetinc/mobx-quick-tree","version":"0.4.2","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.4.2","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"930601ba45d1191e52fb436ea867615ccdcd0f9e","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.4.2.tgz","fileCount":51,"integrity":"sha512-S1JyPSdadeMq0XJOnB3HyiTXhbndYqBN74i28bj7/gvuQtYaFK6IcKkzIFnJL61qaf/v28m7IHb1K8b+exMzUw==","signatures":[{"sig":"MEYCIQCnjy2y2xpwUc2j1ZGZV0TSY8wQs1epbmxj/wyyRKfJQgIhAOStpPGK2MhNo4ac2wTdSYcniLEzM5aThTW4gPH6Ht+b","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":167181},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"1573788d85636e920dac325eb17d58c07e0c41d8","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.19.4","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.20.0","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","eslint":"^8.28.0","lodash":"^4.17.21","ts-node":"^10.9.1","prettier":"^2.8.2","@swc/core":"^1.3.20","@swc/jest":"^0.2.23","benchmark":"^2.1.4","find-root":"^1.1.0","microtime":"^3.1.1","deoptigate":"^0.7.1","typescript":"^5.0.2","@types/jest":"^29.2.3","@types/node":"^18.15.5","@faker-js/faker":"^7.6.0","deep-freeze-es6":"^1.4.1","@types/benchmark":"^2.1.2","@types/find-root":"^1.1.2","eslint-plugin-jest":"^27.1.6","@types/lodash.memoize":"^4.1.7","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.56.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.56.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.4.2_1687543559610_0.3188003853910242","host":"s3://npm-registry-packages"}},"0.4.3":{"name":"@gadgetinc/mobx-quick-tree","version":"0.4.3","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.4.3","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"d2b8e1156ddcfce4a3642c9e77296c880b9782fa","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.4.3.tgz","fileCount":51,"integrity":"sha512-pGp1vd0K+aeGMLgdXTWJTGNnp1DGbi01F0lng2nBC6OUKgtNVS0r38yD5KxWYcXN8lv0vn9TUSqbtHSFP4lqQQ==","signatures":[{"sig":"MEUCICCGKhYEtLaMrPKFXXHuqSQ2rwgHIQ8SqG9Idjmjuao2AiEAqjIpHNeNm+wVGw/WgTGTmTTZla2GmtmgTsjuG8ObYEc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":167185},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"8c01996b65dfa8a0c3c6f3e9d2120f934f62ce1b","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.19.4","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.20.0","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","eslint":"^8.28.0","lodash":"^4.17.21","ts-node":"^10.9.1","prettier":"^2.8.2","@swc/core":"^1.3.20","@swc/jest":"^0.2.23","benchmark":"^2.1.4","find-root":"^1.1.0","microtime":"^3.1.1","deoptigate":"^0.7.1","typescript":"^5.0.2","@types/jest":"^29.2.3","@types/node":"^18.15.5","@faker-js/faker":"^7.6.0","deep-freeze-es6":"^1.4.1","@types/benchmark":"^2.1.2","@types/find-root":"^1.1.2","eslint-plugin-jest":"^27.1.6","@types/lodash.memoize":"^4.1.7","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.56.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.56.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.4.3_1687735249861_0.5033288843491166","host":"s3://npm-registry-packages"}},"0.4.4":{"name":"@gadgetinc/mobx-quick-tree","version":"0.4.4","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.4.4","maintainers":[{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"kira-bruneau","email":"kira@gadget.dev"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"fc585ace87cdb02f4d839aa51e6a45e1599e1af3","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.4.4.tgz","fileCount":51,"integrity":"sha512-ON3SBgvyGRQVAJgMU2WnuE4bdDS53TemSE0XgfwSIsyx7iQoQx9n0Ps5NnrXO+yedJqcOpX/zCkHinJGxw3Vag==","signatures":[{"sig":"MEYCIQC2pFF8XAxHyewj6hx7UgxEq2NiZkH1D3fygy50EoiUwgIhAK3N7A1X1MWsvgMuK9v4eeSznmkqBMb4eBBldIpv8s6E","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":167773},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"d4982244a0401cff7eb60ee283b1081c88db22b6","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.19.4","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.20.0","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","eslint":"^8.28.0","lodash":"^4.17.21","ts-node":"^10.9.1","prettier":"^2.8.2","@swc/core":"^1.3.20","@swc/jest":"^0.2.23","benchmark":"^2.1.4","find-root":"^1.1.0","microtime":"^3.1.1","deoptigate":"^0.7.1","typescript":"^5.0.2","@types/jest":"^29.2.3","@types/node":"^18.15.5","@faker-js/faker":"^7.6.0","deep-freeze-es6":"^1.4.1","@types/benchmark":"^2.1.2","@types/find-root":"^1.1.2","eslint-plugin-jest":"^27.1.6","@types/lodash.memoize":"^4.1.7","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.56.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.56.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.4.4_1687784985745_0.15125199449750637","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@gadgetinc/mobx-quick-tree","version":"0.5.0","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.5.0","maintainers":[{"name":"jasong689","email":"jason.gao@gadget.dev"},{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"11abab7bc852c266b6421669f1459845063ac007","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.5.0.tgz","fileCount":51,"integrity":"sha512-TWYrBzY7UtgBWswRtlF3os47uY80Vnzq8S897czGQETEpHGna4voQjSpaN0Hl3+yfv650p+840iXfy1ucir80g==","signatures":[{"sig":"MEQCIA3j+XvQoEfWixIWvTaRfGEwPNcnGkezBLq6kD8H/l4vAiB52VX1cZvYXCFMbuGad9+yDlx4Yj9C+drpBtDToNv2lg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":170820},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"21cdb881144da51e7a6d7a13f3ed0114decdd6eb","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"8.19.4","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"16.20.2","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.1.3","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.53.0","lodash":"^4.17.21","ts-node":"^10.9.1","prettier":"^2.8.8","@swc/core":"^1.3.96","@swc/jest":"^0.2.29","benchmark":"^2.1.4","find-root":"^1.1.0","microtime":"^3.1.1","deoptigate":"^0.7.1","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^18.18.9","@faker-js/faker":"^7.6.0","deep-freeze-es6":"^1.4.1","@types/benchmark":"^2.1.5","@types/find-root":"^1.1.4","eslint-plugin-jest":"^27.6.0","@types/lodash.memoize":"^4.1.9","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.62.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.5.0_1699480459497_0.7379276307881117","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@gadgetinc/mobx-quick-tree","version":"0.6.0","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.6.0","maintainers":[{"name":"jasong689","email":"jason.gao@gadget.dev"},{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"87ef9d7b6918f587805855429e88210bb79023d6","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.6.0.tgz","fileCount":51,"integrity":"sha512-adtp739p5Ing4cAYIRXMVdJSsL4eUHjjgfcfdj9qAouXbab3Iwc1eNqD56EGYMr54xz6vJpQ7f3Hk+n/B+6HmQ==","signatures":[{"sig":"MEYCIQCuoeLDXe/owrOsBlCmCA/9s0Kg2GWwFbsvgvcc9hHOIAIhAMU8PfcFGtjQalSWHyKr3CmGHCm4l1EwBL+/H0epBbxP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":170855},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"344d209d82fed30a9c39227fe233b3d30fb334dd","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"10.2.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"21.1.0","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.3.0","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.53.0","lodash":"^4.17.21","ts-node":"^10.9.1","prettier":"^2.8.8","@swc/core":"^1.3.96","@swc/jest":"^0.2.29","benchmark":"^2.1.4","find-root":"^1.1.0","microtime":"^3.1.1","deoptigate":"^0.7.1","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^18.18.9","@faker-js/faker":"^7.6.0","deep-freeze-es6":"^1.4.1","@types/benchmark":"^2.1.5","@types/find-root":"^1.1.4","eslint-plugin-jest":"^27.6.0","@types/lodash.memoize":"^4.1.9","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.62.0","@gadgetinc/prettier-config":"^0.4.0","@codspeed/benchmark.js-plugin":"^2.2.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.6.0_1699654955403_0.6643271692691197","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"@gadgetinc/mobx-quick-tree","version":"0.6.1","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.6.1","maintainers":[{"name":"jasong689","email":"jason.gao@gadget.dev"},{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"2bcafecf12ca845e0b5150868c340d89dd0cdb57","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.6.1.tgz","fileCount":51,"integrity":"sha512-4QT7wpw83XYtnOpE/u2CCx1ocUyaQM4AMdGnuqQ4YH+ODA9hVt7g8G6tYOavtiKVpqeAE21jkAi7ctn+Nen9bw==","signatures":[{"sig":"MEUCIQCJrIUE9sIh0VnG1pGp1oTT/TkU6KASyhiQ0CknIVgioAIgKQtxUy3KZyDE6acjcsmv1IdUBerYLM7pvopiWvV4lZM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":171554},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"9d0c1d2d9436badd2d232377b1b891da54dacbe3","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"10.2.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"21.1.0","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.3.0","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.53.0","lodash":"^4.17.21","dexnode":"^1.2.2","ts-node":"^10.9.1","prettier":"^2.8.8","@swc/core":"^1.3.96","@swc/jest":"^0.2.29","benchmark":"^2.1.4","find-root":"^1.1.0","microtime":"^3.1.1","deoptigate":"^0.7.1","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^18.18.9","@faker-js/faker":"^7.6.0","deep-freeze-es6":"^1.4.1","@types/benchmark":"^2.1.5","@types/find-root":"^1.1.4","eslint-plugin-jest":"^27.6.0","@types/lodash.memoize":"^4.1.9","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.62.0","@gadgetinc/prettier-config":"^0.4.0","@codspeed/benchmark.js-plugin":"^2.2.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.6.1_1699888797263_0.49390746599633184","host":"s3://npm-registry-packages"}},"0.6.2":{"name":"@gadgetinc/mobx-quick-tree","version":"0.6.2","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.6.2","maintainers":[{"name":"jasong689","email":"jason.gao@gadget.dev"},{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"cd356b501cbd66147c68c8aed837c5abd4059711","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.6.2.tgz","fileCount":51,"integrity":"sha512-IsJuCa6SJffXPvflRzsflCIAxaHf4BTK+/2HJRYfhvYJIFZBphz8AYyOxCMpT/9k79/Ib0dPOpQD/eDP1IQdMg==","signatures":[{"sig":"MEQCIFxKFKddGnwQ5c5hSk/L+fl4yS/qoc1G0DYtIo1RHjvbAiBGJgPM7DbCJkYRDyd3hWmcZygNj7Jl37vg2jflhrGlsg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":171670},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"542cbe38c2e98445f2898a81477818d7b6fcd623","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"10.2.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"21.1.0","dependencies":{"mobx":"^6.5.0","lodash.memoize":"^4.1.2","mobx-state-tree":"^5.3.0","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.53.0","lodash":"^4.17.21","dexnode":"^1.2.2","ts-node":"^10.9.1","prettier":"^2.8.8","@swc/core":"^1.3.96","@swc/jest":"^0.2.29","benchmark":"^2.1.4","find-root":"^1.1.0","microtime":"^3.1.1","deoptigate":"^0.7.1","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^18.18.9","@faker-js/faker":"^7.6.0","deep-freeze-es6":"^1.4.1","@types/benchmark":"^2.1.5","@types/find-root":"^1.1.4","eslint-plugin-jest":"^27.6.0","@types/lodash.memoize":"^4.1.9","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.62.0","@gadgetinc/prettier-config":"^0.4.0","@codspeed/benchmark.js-plugin":"^2.2.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.6.2_1704400466090_0.010619331988939162","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"@gadgetinc/mobx-quick-tree","version":"0.7.0","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.7.0","maintainers":[{"name":"jasong689","email":"jason.gao@gadget.dev"},{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"ab179e56c08ad9cbb50978d5b29ba50d0f38add9","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.7.0.tgz","fileCount":51,"integrity":"sha512-8ftSZ07L2CkZ3WeKOAvcFEDaG8AnMLB8J3k/qGlByyKr93/tm9zy1MfHTKnc+OqktMwWr1UEREYYAE5XLKWPTQ==","signatures":[{"sig":"MEUCIQCeQHkHwzKOUU+ger7SbFLR5xIUuUsNYoxDMT6DYrvJEwIgSB8ryTmZM74Px5ZEGwti4iDPprLYiJCMjdhlmqUoJHU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":173176},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"90a66e97ab6f21c94c1fc1abb426a542bbd2cc4f","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"10.2.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"21.1.0","dependencies":{"mobx":"^6.12.3","lodash.memoize":"^4.1.2","mobx-state-tree":"^6.0.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.53.0","lodash":"^4.17.21","dexnode":"^1.2.2","ts-node":"^10.9.2","prettier":"^3.2.5","@swc/core":"^1.5.5","@swc/jest":"^0.2.36","benchmark":"^2.1.4","find-root":"^1.1.0","microtime":"^3.1.1","deoptigate":"^0.7.1","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.11","@faker-js/faker":"^8.4.1","deep-freeze-es6":"^1.4.1","@types/benchmark":"^2.1.5","@types/find-root":"^1.1.4","eslint-plugin-jest":"^27.6.0","@types/lodash.memoize":"^4.1.9","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.62.0","@gadgetinc/prettier-config":"^0.4.0","@codspeed/benchmark.js-plugin":"^3.1.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.7.0_1715628302829_0.6585749719240193","host":"s3://npm-registry-packages"}},"0.7.1":{"name":"@gadgetinc/mobx-quick-tree","version":"0.7.1","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.7.1","maintainers":[{"name":"jasong689","email":"jason.gao@gadget.dev"},{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"2e04473d195af181142b8802600e4be4df7d19c7","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.7.1.tgz","fileCount":53,"integrity":"sha512-hImUN7ARDs5gKyopQd4qzqx/vPAdEY87DePTMeRueshTZEPPXoiz8kC1wQMr0sFuXU5EVBX5PnRuiEDK4faZzw==","signatures":[{"sig":"MEUCIB/nEqiOmWZGo0hY4MtR1CEg2WJG4cwQehg85ISTrf+CAiEAxnnLb30WF0xjh5F5Rh94ZWS+ldIXauxjBkJ5ly0j+DY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":176432},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"753a5462127329988d216f1419ba8153dfaa8f0c","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"10.2.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"21.1.0","dependencies":{"mobx":"^6.12.3","lodash.memoize":"^4.1.2","mobx-state-tree":"^6.0.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.53.0","lodash":"^4.17.21","dexnode":"^1.2.2","ts-node":"^10.9.2","prettier":"^3.2.5","@swc/core":"^1.5.5","@swc/jest":"^0.2.36","find-root":"^1.1.0","microtime":"^3.1.1","tinybench":"^2.6.0","deoptigate":"^0.7.1","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.11","@faker-js/faker":"^8.4.1","deep-freeze-es6":"^1.4.1","@types/find-root":"^1.1.4","eslint-plugin-jest":"^27.6.0","@types/lodash.memoize":"^4.1.9","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.62.0","@codspeed/tinybench-plugin":"^3.1.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.7.1_1717180393915_0.18127895590996124","host":"s3://npm-registry-packages"}},"0.7.2":{"name":"@gadgetinc/mobx-quick-tree","version":"0.7.2","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.7.2","maintainers":[{"name":"jasong689","email":"jason.gao@gadget.dev"},{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"4ab1f6a8033e609d5d642a5bf2c35428c0d43144","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.7.2.tgz","fileCount":53,"integrity":"sha512-JqaTmaBh+AHNoLUsh0tu9f9qzf8Slq4kex352c2dOkbn/EfdPbIk1pWawaZKf/H5JZ6Jxh3Z3wenSlSXvP7IKg==","signatures":[{"sig":"MEYCIQCtpBPH+Xk4wp61lyfqz+eRGyX8vlTi6jphJvAHH6+uBAIhAMBVRrFgBpiOnkpNIMFhkd2mRDlxq5EbhWEot4RdE/yK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":176570},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"0ebab7f2623d513af19434fddf109a657cf97ccc","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"10.2.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"21.1.0","dependencies":{"mobx":"^6.12.3","lodash.memoize":"^4.1.2","mobx-state-tree":"^6.0.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","yargs":"^17.7.2","eslint":"^8.53.0","globby":"^11.0.4","lodash":"^4.17.21","dexnode":"^1.2.2","ts-node":"^10.9.2","fs-extra":"^11.2.0","prettier":"^3.2.5","@swc/core":"^1.5.5","@swc/jest":"^0.2.36","find-root":"^1.1.0","microtime":"^3.1.1","tinybench":"^2.6.0","deoptigate":"^0.7.1","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.11","flamebearer":"^1.1.3","@types/yargs":"^17.0.32","@types/lodash":"^4.17.4","@faker-js/faker":"^8.4.1","@types/fs-extra":"^11.0.4","deep-freeze-es6":"^1.4.1","@types/find-root":"^1.1.4","eslint-plugin-jest":"^27.6.0","@types/lodash.memoize":"^4.1.9","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.62.0","@codspeed/tinybench-plugin":"^3.1.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.7.2_1717266946896_0.3389528553683061","host":"s3://npm-registry-packages"}},"0.7.3":{"name":"@gadgetinc/mobx-quick-tree","version":"0.7.3","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.7.3","homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"eb6d17a01eda5fad8b2aef3622a6ca382606a103","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.7.3.tgz","fileCount":53,"integrity":"sha512-1ReI1pwHAK7pCcqwu2yLy0FwkteU9QvVNdQA7TQOs/wBW+1M8d1tHGH2ufKATbZQLT+hMwQg0j/Odp8o7mxeAQ==","signatures":[{"sig":"MEUCIQCaUHLP+Y7vcy9YBl3F5S/VHLvqIY+cL7IPIg0qGtV4rQIgYR8w6cdzlxHHirRjjMP/kl6fiBISNuo0BMcv58XgrQ8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191251},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"0ab634aac6a6761dc51055a444c5f62de35d8d9f","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"10.7.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"22.2.0","dependencies":{"mobx":"^6.12.3","lodash.memoize":"^4.1.2","mobx-state-tree":"^6.0.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","yargs":"^17.7.2","eslint":"^8.53.0","globby":"^11.0.4","lodash":"^4.17.21","dexnode":"^1.2.2","ts-node":"^10.9.2","fs-extra":"^11.2.0","prettier":"^3.2.5","@swc/core":"^1.5.5","@swc/jest":"^0.2.36","find-root":"^1.1.0","microtime":"^3.1.1","tinybench":"^2.6.0","deoptigate":"^0.7.1","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.11","flamebearer":"^1.1.3","@types/yargs":"^17.0.32","@types/lodash":"^4.17.4","@faker-js/faker":"^8.4.1","@types/fs-extra":"^11.0.4","deep-freeze-es6":"^1.4.1","@types/find-root":"^1.1.4","eslint-plugin-jest":"^27.6.0","@types/lodash.memoize":"^4.1.9","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.62.0","@codspeed/tinybench-plugin":"^3.1.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.7.3_1719410505761_0.13275243618422095","host":"s3://npm-registry-packages"}},"0.7.4":{"name":"@gadgetinc/mobx-quick-tree","version":"0.7.4","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.7.4","maintainers":[{"name":"jasong689","email":"jason.gao@gadget.dev"},{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"ab405c6c9353b88c6cd74f60877fc4b6ef3001c3","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.7.4.tgz","fileCount":53,"integrity":"sha512-oWMKH0zhXfMmjFjvAEo30+sg53FXoNMx3Fro46txxV8IGM/VQCzMROYZjd3nHYIR8TF2ipAQCvRDSPGntU70BQ==","signatures":[{"sig":"MEYCIQC94xYP2D2e8LE1Q4gf4DEMqdVkXTWD24EOmr7nHtxrhAIhAJp6WNH9Cw2KfQYkV0/326pjYdZoKgtyc5f8ECbvNlZ7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191528},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"3dea56ccea0620985b3546cbb6f4c63fd9daed60","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"10.7.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"22.2.0","dependencies":{"mobx":"^6.12.3","lodash.memoize":"^4.1.2","mobx-state-tree":"^6.0.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","yargs":"^17.7.2","eslint":"^8.53.0","globby":"^11.0.4","lodash":"^4.17.21","dexnode":"^1.2.2","ts-node":"^10.9.2","fs-extra":"^11.2.0","prettier":"^3.2.5","@swc/core":"^1.5.5","@swc/jest":"^0.2.36","find-root":"^1.1.0","microtime":"^3.1.1","tinybench":"^2.6.0","deoptigate":"^0.7.1","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.11","flamebearer":"^1.1.3","@types/yargs":"^17.0.32","@types/lodash":"^4.17.4","@faker-js/faker":"^8.4.1","@types/fs-extra":"^11.0.4","deep-freeze-es6":"^1.4.1","@types/find-root":"^1.1.4","eslint-plugin-jest":"^27.6.0","@types/lodash.memoize":"^4.1.9","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.62.0","@codspeed/tinybench-plugin":"^3.1.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.7.4_1720019393408_0.48689444683543703","host":"s3://npm-registry-packages"}},"0.7.5":{"name":"@gadgetinc/mobx-quick-tree","version":"0.7.5","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.7.5","maintainers":[{"name":"jasong689","email":"jason.gao@gadget.dev"},{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"fe3502dd1638fb4e2ad725fd862d67541cdbbf09","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.7.5.tgz","fileCount":53,"integrity":"sha512-Y/tQmMQejzJTxGqo7mesnrQllaDSjCKtj1XPwcWmn7uyCE/94KeEQBO5m9b1Noa11h0maPK8KGiqMy3otrj1hQ==","signatures":[{"sig":"MEUCIQD5zQaZKeK+OXIgLq9TpiB+QleQ1Wn8uGJZRIo7QwKr5wIgIBlh1FMJ8HJ9egkMD+Hjlp48DewwS4UsarvDkWXXVXE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":193173},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"cbeee33d1818d00ac46bb5b21cb8cd09d0243fc2","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"10.7.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"22.2.0","dependencies":{"mobx":"^6.12.3","lodash.memoize":"^4.1.2","mobx-state-tree":"^6.0.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","yargs":"^17.7.2","eslint":"^8.53.0","globby":"^11.0.4","lodash":"^4.17.21","dexnode":"^1.2.2","ts-node":"^10.9.2","fs-extra":"^11.2.0","prettier":"^3.2.5","@swc/core":"^1.5.5","@swc/jest":"^0.2.36","find-root":"^1.1.0","microtime":"^3.1.1","tinybench":"^2.6.0","deoptigate":"^0.7.1","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.11","flamebearer":"^1.1.3","@types/yargs":"^17.0.32","@types/lodash":"^4.17.4","@faker-js/faker":"^8.4.1","@types/fs-extra":"^11.0.4","deep-freeze-es6":"^1.4.1","@types/find-root":"^1.1.4","eslint-plugin-jest":"^27.6.0","@types/lodash.memoize":"^4.1.9","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.62.0","@codspeed/tinybench-plugin":"^3.1.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.7.5_1720637429638_0.769748424295388","host":"s3://npm-registry-packages"}},"0.7.6":{"name":"@gadgetinc/mobx-quick-tree","version":"0.7.6","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.7.6","maintainers":[{"name":"jasong689","email":"jason.gao@gadget.dev"},{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"03d5f9438bdc1c51ee9f584c4f941617a5d553ed","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.7.6.tgz","fileCount":53,"integrity":"sha512-UPAVwObCe0pwwCcJl7pCLkCiK1YPvI2sD85kj+yrF+0P3OuhD4Z/FCSGr0gj3odygtfCobF7moX3LdjRSEGAWQ==","signatures":[{"sig":"MEQCIG1ZteUqYhRaGIACUHrVAa6TVHlHKByhiC6aLBXRy7enAiAtfmaWTrxXMbmCpclSQeqIxOhrd9nAuxdDC2IyoeBLbw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":193499},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"91de9d17e89128f6b4e5cb8081cbfc72533fcdb2","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"10.7.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"22.2.0","dependencies":{"mobx":"^6.12.3","lodash.memoize":"^4.1.2","mobx-state-tree":"^6.0.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","yargs":"^17.7.2","eslint":"^8.53.0","globby":"^11.0.4","lodash":"^4.17.21","dexnode":"^1.2.2","ts-node":"^10.9.2","fs-extra":"^11.2.0","prettier":"^3.2.5","@swc/core":"^1.5.5","@swc/jest":"^0.2.36","find-root":"^1.1.0","microtime":"^3.1.1","tinybench":"^2.6.0","deoptigate":"^0.7.1","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.11","flamebearer":"^1.1.3","@types/yargs":"^17.0.32","@types/lodash":"^4.17.4","@faker-js/faker":"^8.4.1","@types/fs-extra":"^11.0.4","deep-freeze-es6":"^1.4.1","@types/find-root":"^1.1.4","eslint-plugin-jest":"^27.6.0","@types/lodash.memoize":"^4.1.9","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.62.0","@codspeed/tinybench-plugin":"^3.1.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.7.6_1720642125182_0.4893458392323844","host":"s3://npm-registry-packages"}},"0.7.7":{"name":"@gadgetinc/mobx-quick-tree","version":"0.7.7","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.7.7","maintainers":[{"name":"jasong689","email":"jason.gao@gadget.dev"},{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"b9cc112032af9fdbd967c3dfd9d358fe2d881945","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.7.7.tgz","fileCount":53,"integrity":"sha512-n2cRZoWRokoSxu8BDKDHcWWQVQEkyOGCJWEyje1zK4BSvWngDNPY1KayTUH0HvLzfkCE9asHmL78amvBIBe4mA==","signatures":[{"sig":"MEQCIFBrMzBK8+MM1DNeBQi6ASmndVMywEvSvOgEuW70Cf7KAiBusgUFz1DErhxfk2vi+puU3VQkOh7VnsVrwDBfRR7wDg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":193453},"main":"dist/src/index.js","types":"dist/src/index.d.ts","volta":{"node":"18.12.1"},"source":"src/index.ts","gitHead":"41007cc69573332e27c2c018ede9e95934e56d47","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"10.7.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"22.2.0","dependencies":{"mobx":"^6.12.3","lodash.memoize":"^4.1.2","mobx-state-tree":"^6.0.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","yargs":"^17.7.2","eslint":"^8.53.0","globby":"^11.0.4","lodash":"^4.17.21","dexnode":"^1.2.2","ts-node":"^10.9.2","fs-extra":"^11.2.0","prettier":"^3.2.5","@swc/core":"^1.5.5","@swc/jest":"^0.2.36","find-root":"^1.1.0","microtime":"^3.1.1","tinybench":"^2.6.0","deoptigate":"^0.7.1","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.11","flamebearer":"^1.1.3","@types/yargs":"^17.0.32","@types/lodash":"^4.17.4","@faker-js/faker":"^8.4.1","@types/fs-extra":"^11.0.4","deep-freeze-es6":"^1.4.1","@types/find-root":"^1.1.4","eslint-plugin-jest":"^27.6.0","@types/lodash.memoize":"^4.1.9","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.62.0","@codspeed/tinybench-plugin":"^3.1.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.7.7_1720810184168_0.10149283082638205","host":"s3://npm-registry-packages"}},"0.7.8":{"name":"@gadgetinc/mobx-quick-tree","version":"0.7.8","license":"MIT","_id":"@gadgetinc/mobx-quick-tree@0.7.8","maintainers":[{"name":"jasong689","email":"jason.gao@gadget.dev"},{"name":"scott-rc","email":"scott.cote@hey.com"},{"name":"alexangelini","email":"alex.louis.angelini@gmail.com"},{"name":"gedge","email":"jason@gedge.ca"},{"name":"kristianpd","email":"kristianpd@gmail.com"},{"name":"airhorns","email":"harry@harry.me"}],"homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"dist":{"shasum":"ae839c9c0d75a52c96d019de3d8127f727221f72","tarball":"https://registry.npmjs.org/@gadgetinc/mobx-quick-tree/-/mobx-quick-tree-0.7.8.tgz","fileCount":53,"integrity":"sha512-fLrvZoAbngo08ynINNr8mXo48KyEW6cKMBL+reWF1IXnDwstMHOWjkS9Bl60lXLqTENUbWvTF+UpcX0wX1HQJQ==","signatures":[{"sig":"MEYCIQCUp3bBuLZ106oZLQrD7NGTbicBC2t8W5AJUv8gXhf8AwIhAJM+/oKwMA07cxnuKRQTv8NRgDdd6gCLCgqOvh/TzKB6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":194315},"main":"dist/src/index.js","types":"dist/src/index.d.ts","source":"src/index.ts","gitHead":"c59b402764720692f84c40ea511ba4d4a0f14346","scripts":{"x":"ts-node --transpile-only","lint":"pnpm run lint:prettier && pnpm run lint:eslint","test":"jest --runInBand","build":"rm -rf dist && tsc","clean":"rm -rf *.0x *-v8.log","watch":"rm -rf dist && tsc --watch --preserveWatchOutput","lint:fix":"prettier --write --check \"{spec,src}/**/*.{js,ts}\"; eslint --ext ts --fix spec src","typecheck":"tsc --noEmit","prerelease":"gitpkg publish","lint:eslint":"eslint --quiet --ext ts,tsx spec src","lint:prettier":"prettier --check \"{spec,src}/**/*.{js,ts}\"","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"airhorns","email":"harry@harry.me"},"repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"_npmVersion":"10.7.0","description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","directories":{},"_nodeVersion":"22.2.0","dependencies":{"mobx":"^6.12.3","lodash.memoize":"^4.1.2","mobx-state-tree":"^6.0.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","yargs":"^17.7.2","eslint":"^8.53.0","globby":"^11.0.4","lodash":"^4.17.21","dexnode":"^1.2.2","ts-node":"^10.9.2","fs-extra":"^11.2.0","prettier":"^3.2.5","@swc/core":"^1.5.5","@swc/jest":"^0.2.36","find-root":"^1.1.0","microtime":"^3.1.1","tinybench":"^2.6.0","deoptigate":"^0.7.1","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.11","flamebearer":"^1.1.3","@types/yargs":"^17.0.32","@types/lodash":"^4.17.4","@faker-js/faker":"^8.4.1","@types/fs-extra":"^11.0.4","deep-freeze-es6":"^1.4.1","@types/find-root":"^1.1.4","eslint-plugin-jest":"^27.6.0","@types/lodash.memoize":"^4.1.9","conditional-type-checks":"^1.0.6","@gadgetinc/eslint-config":"^0.6.1","@typescript-eslint/parser":"^5.62.0","@codspeed/tinybench-plugin":"^3.1.0","@gadgetinc/prettier-config":"^0.4.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-quick-tree_0.7.8_1729194175308_0.37069844568100363","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-04-11T16:20:16.083Z","modified":"2025-12-08T16:13:42.593Z","0.1.0":"2022-04-11T16:20:16.336Z","0.1.1":"2022-04-11T17:26:03.490Z","0.1.2":"2022-04-12T20:20:29.165Z","0.1.3":"2022-04-13T17:31:59.451Z","0.1.4":"2022-04-13T19:38:48.237Z","0.1.5":"2022-04-14T18:01:00.229Z","0.2.0":"2022-04-18T13:39:26.896Z","0.2.1":"2022-04-21T15:17:44.667Z","0.3.0":"2022-05-04T17:49:02.256Z","0.3.1":"2022-09-08T13:38:25.902Z","0.3.2":"2022-09-09T15:06:41.162Z","0.3.3":"2022-09-20T15:13:29.838Z","0.4.0":"2023-04-11T22:13:49.333Z","0.4.1":"2023-06-19T19:11:34.292Z","0.4.2":"2023-06-23T18:05:59.830Z","0.4.3":"2023-06-25T23:20:50.095Z","0.4.4":"2023-06-26T13:09:46.114Z","0.5.0":"2023-11-08T21:54:19.767Z","0.6.0":"2023-11-10T22:22:35.567Z","0.6.1":"2023-11-13T15:19:57.415Z","0.6.2":"2024-01-04T20:34:26.245Z","0.7.0":"2024-05-13T19:25:03.020Z","0.7.1":"2024-05-31T18:33:14.086Z","0.7.2":"2024-06-01T18:35:47.078Z","0.7.3":"2024-06-26T14:01:45.961Z","0.7.4":"2024-07-03T15:09:53.582Z","0.7.5":"2024-07-10T18:50:29.804Z","0.7.6":"2024-07-10T20:08:45.326Z","0.7.7":"2024-07-12T18:49:44.395Z","0.7.8":"2024-10-17T19:42:55.584Z"},"bugs":{"url":"https://github.com/gadget-inc/mobx-quick-tree/issues"},"license":"MIT","homepage":"https://github.com/gadget-inc/mobx-quick-tree#readme","repository":{"url":"git+https://github.com/gadget-inc/mobx-quick-tree.git","type":"git"},"description":"A mirror of mobx-state-tree's API to construct fast, read-only instances that share all the same views","maintainers":[{"email":"harry@harry.me","name":"airhorns"},{"email":"scott.cote@hey.com","name":"scott-rc"},{"email":"kyle@gadget.dev","name":"infiton"},{"email":"yandu@gadget.dev","name":"yandu_gadget"}],"readme":"<div align=\"center\">\n  <p>\n    <img alt=\"Gadget logo\" src=\"https://raw.githubusercontent.com/gadget-inc/js-clients/main/docs/assets/gadget-logo.png\" style=\"width: 50%\" />\n  </p>\n  <p>\n    <strong>\n      A mirror of the `mobx-state-tree` API that allows constructing fast, read-only instances.\n    </strong>\n  </p>\n</div>\n\n`mobx-quick-tree` is a wrapper around `mobx-state-tree` that adds a second, interface-identical type for each `mobx-state-tree` type you define that is high-performance, read-only, and no longer observable.\n\n## Why?\n\n[`mobx-state-tree`](https://mobx-state-tree.js.org/) is great for modeling data and observing changes to it, but it adds a lot of runtime overhead! Raw `mobx` itself adds substantial overhead over plain old JS objects or ES6 classes, and `mobx-state-tree` adds more on top of that. If you want to use your MST data models in a non-reactive or non-observing context, all that runtime overhead for observability is just wasted, as nothing is ever-changing.\n\n`mobx-quick-tree` implements the same API as MST and exposes the same useful observable instances for use in observable contexts, but adds a second option for instantiating a read-only instance that is 100x faster.\n\nIf `mobx-state-tree` instances are great for modeling within an \"editor\" part of an app where nodes and properties are changed all over the place, the performant, read-only instances constructed by `mobx-quick-tree` are great for use within a \"read\" part of an app that displays data in the tree without ever changing it. For a website builder for example, you might use MST in the page builder area where someone arranges components within a page, and then use MQT in the part of the app that needs to render those web pages frequently.\n\n### Two APIs\n\n`mobx-quick-tree` has two APIs for building performant, read-only versions of your models:\n\n- a 100% compatible, drop-in replacement for the `mobx-state-tree` API using `types.model`, `types.compose`, etc\n- an ES6 `class` based API that performs even faster in read-only mode\n\n### Drop-in `mobx-state-tree` API compatibility\n\nTo begin using `mobx-quick-tree`, change all your import statements from importing `mobx-state-tree` to import `mobx-quick-tree`. `mobx-quick-tree` exports all the same utilities and objects and maintains the same robust TypeScript support `mobx-state-tree` users are used to.\n\nFor example, if you have a `types.model` defined, you can keep the definition entirely the same, but define it using the `types` object imported from `mobx-quick-tree`:\n\n```typescript\nimport { types } from \"@gadgetinc/mobx-quick-tree\"\n\n// use types.model from MQT the exact same way you might use types.model from MST\nconst Todo = types.model(\"Todo\", {\n  name: types.string,\n  done: types.boolean\n}).actions(self => {\n  setDone(done: boolean) {\n    self.done = done;\n  }\n});\n```\n\nOnce you have a `mobx-quick-tree` type defined, you can use it the same way you might use a `mobx-state-tree` type:\n\n```typescript\n// create an observable instance with `create`, using mobx-state-tree under the hood\nconst instance = Todo.create({ name: \"Hello\", done: false });\n// actions run like normal on observable instances\ninstance.setDone(true);\n```\n\nEach defined type also exposes a new `.createReadOnly` function for constructing read only versions of the type:\n\n```typescript\n// create a readonly instance which is ~100x faster\nconst readOnlyInstance = Todo.createReadOnly({ name: \"Hello read only\", done: false });\nreadOnlyInstance.setDone(true); // will throw an error, the instance is readonly\n```\n\n`.createReadOnly` exists on models, arrays, maps, etc, and will be used throughout a tree started with a `.createReadOnly` call.\n\n#### API coverage\n\n`mobx-quick-tree` supports the same functionality as `mobx-state-tree` on observable instances, like:\n\n- actions, views, and volatiles\n- references\n- snapshots\n- patch streams\n- middleware\n- full type safety\n\nMany of the pieces of functionality don't make sense to call on read only instances and will throw however. Functions that change data, like `applyPatch` or `applySnapshot` will work as documented in MST against observable instances, but will throw errors when run against read-only instances created with `.createReadOnly`.\n\nType-level functions like `isModelType` or `isUnionType` report type information correctly when run against types defined using `mobx-quick-tree`.\n\n#### Mixing `mobx-state-tree` and `mobx-quick-tree`.\n\n`mobx-quick-tree` does _not_ support mixing types or instances defined with `mobx-state-tree`. `mobx-quick-tree` can co-exist in the same process, but will error if used in the same tree with `mobx-state-tree`.\n\nIf switching from `mobx-state-tree` to `mobx-quick-tree`, we recommend **completely removing** `mobx-state-tree` from your package.json, and switching all import statements over to import from `mobx-quick-tree`.\n\n### ES6 class-based Model API\n\nIf you need even more performance, `mobx-quick-tree` has an ES6 class-based API that replaces the pretty-but-slow MST API. The MST API design forces re-running each `views` or `actions` block for each and every instance defined, which adds a lot of overhead and is often not well handled by the JS VM. By using ES6 classes, each view and action can be defined only once at require time, and the prototype chain of the read-only objects can do a lot more of the heavy lifting.\n\nThese high-performance classes still allow accessing an observable instance that functions equivalently to a type defined using the `mobx-state-tree` API, so they can still be used in both observable and non-observable contexts.\n\nReadonly instances created with the ES6 Class Model API from `mobx-quick-tree` are 3x faster than the readonly instances created with the MST style API, for a total of a 300x performance improvement.\n\nTo define an ES6 class model, you use a different API than `mobx-state-tree` that only `mobx-quick-tree` exports.\n\nFor example, a `Todo` class model can be defined like so:\n\n```typescript\nimport { register, ClassModel, action, types } from \"@gadgetinc/mobx-quick-tree\";\n\n@register\nclass Todo extends ClassModel({\n  name: types.string,\n  done: types.boolean,\n}) {\n  @action\n  setDone(done: boolean) {\n    this.done = done;\n  }\n}\n\n// create a readonly instance which is ~300x faster\nconst readOnlyInstance = Todo.createReadOnly({ name: \"Hello read only\", done: false });\nreadOnlyInstance.setDone(true); // will throw an error, the instance is readonly\n\n// create an observable instance with `create`\nconst instance = Todo.create({ name: \"Hello\", done: false });\n// actions run like normal on observable instances\ninstance.setDone(true);\n```\n\nThe Class Model API works by using the class you define to power read only instances. Classes are fast to instantiate and are optimized well by JS VMs which makes them ideal for the high performance use case. For the observable instances, the Class Model API derives an equivalent type using `mobx-state-tree`'s `types.model`, and configures it to have all the same properties, views, actions, and volatiles that the class does. The read-only class and writable observable type have identical interfaces at runtime, but will be instances of two different classes.\n\nTo access the derived `mobx-state-tree` type explicitly for a class model, you can use the static `.mstType` property.\n\n#### Requirements for using Class Model API\n\nTo use the Class Model API and maintain compatibility with both read-only and observable instances, you must adhere to the following rules:\n\n- All Class Models need to subclass a base class created by the `ClassModel` base class generator\n- All Class Models need to be registered using the `@register` decorator\n- All functions which mutate data must be decorated with the `@action` function. These are the functions that would be MST `.actions()` or raw mobx `action` functions.\n- Any undecorated functions or getters on the class will become views. These functions can only read data, and aren't allowed to mutate it. These are the functions that would be MST `.views()` or raw mobx `computed` functions. Views can also be explicitly decorated with the `@view` decorator.\n- All [volatile](https://mobx-state-tree.js.org/concepts/volatiles) properties must be registered with the `@volatile` decorator. These are the properties that would be modeled using MST's `.volatile()` API and are excluded from any snapshots.\n\n#### Setting up a Class Model\n\nClass models are defined using normal ES6 classes that are decorated and extend a special, dynamically generated base class. Class models store data by passing a list of typed properties to store to the `ClassModel` base class generator:\n\n```typescript\nimport { ClassModel, register, view, action } from \"@gadgetinc/mobx-quick-tree\";\n\n@register\nclass Car extends ClassModel({\n  make: types.string,\n  model: types.string,\n  year: types.number,\n}) {\n  // define a view with a function\n  name() {\n    // refer to properties of the model with `this`\n    return `${this.year} ${this.model} ${this.make}`;\n  }\n\n  // define an action with a function, identify it as an action with the `@action` decorator\n  @action\n  setModel(model: string) {\n    // set  properties of the model on `this`\n    this.model = model;\n  }\n}\n```\n\nEach Class Model **must** be registered with the system using the `@register` decorator to be instantiated.\n`@register` is necessary for setting up the internal state of the class and generating the observable MST type.\n\nWithin Class Model class bodies, refer to the current instance using the standard ES6/JS `this` keyword. `mobx-state-tree` users tend to use `self` within view or action blocks, but Class Models return to using standard JS `this` for performance.\n\n#### Creating instances of a class model\n\nOnce you have a Class Model class created, you can create both read-only instances and observable instances of it.\n\nTo create an **observable** instance of a Class Model, use the static `.create` function:\n\n```typescript\n// create an observable instance\nconst observableInstance = Car.create({ make: \"Toyota\", model: \"Prius\", year: 2008 });\n\n// access properties of the observable, will be observed if run within an observer\ncar.make; // => \"Toyota\"\n\n// run actions to change data and fire observers by calling action functions\ncar.setModel(\"Camry\");\n```\n\nTo create an **read only** instance of a Class Model, use the static `.createReadOnly` function:\n\n```typescript\n// create an read only instance\nconst readOnlyInstance = Car.createReadOnly({ make: \"Toyota\", model: \"Prius\", year: 2008 });\n\n// access properties of the observable, will be observed if run within an observer\ncar.make; // => \"Toyota\"\n\n// actions will throw if called on a readonly instance\n// car.setModel(\"Camry\"); => would throw an throw error\n```\n\n##### Differences in using a Class Model and a `types.model`\n\nAt runtime, observable instances of Class Models and `types.model` instances behave very similarly. Both are built atop `mobx-state-tree`, so views, mobx `computed`s, `mobx-react` observer components, and any other compatible component of the mobx ecosystem can observe properties on instances of either type.\n\nAt runtime, readonly instances of Class Models and readonly `types.model` instances behave similarly. Both are created with the `.createReadOnly` call.\n\nIf using TypeScript, Class Model instances and `types.model` instances should be treated slightly differently. `mobx-state-tree` uses the `Instance` helper to refer to instances of a type, like `Instance<typeof Car>`. Since Class Models are real classes, instances of them can be referred to with just the name of the class, like `Car`, without needing to use the `Instance` helper. This matches standard ES6 class behavior.\n\nQuick reference for type-time differences:\n\n| Type                       | `types.model` model         | Class Model model                                   |\n| -------------------------- | --------------------------- | --------------------------------------------------- |\n| Type of an instance        | `Instance<typeof Model>`    | `Model` (though `Instance<typeof Model>` works too) |\n| Input snapshot of a model  | `SnapshotIn<typeof Model>`  | `SnapshotIn<typeof Model>`                          |\n| Output snapshot of a model | `SnapshotOut<typeof Model>` | `SnapshotOut<typeof Model>`                         |\n\n#### Defining views\n\nClass Models support views on instances, which are functions that derive new state from existing state. Class Model views mimic `mobx-state-tree` views defined using the `.views()` API on models defined with `types.model`. See the [`mobx-state-tree` views docs](https://mobx-state-tree.js.org/concepts/views) for more information.\n\nTo define a view on a Class Model, define a function that takes no arguments or a getter within a Class Model body.\n\n```typescript\nimport { ClassModel, register, view } from \"@gadgetinc/mobx-quick-tree\";\n\n@register\nclass Car extends ClassModel({\n  make: types.string,\n  model: types.string,\n  year: types.number,\n}) {\n  // define a view with a function. any undecorated functions are automatically defined as views\n  name() {\n    // refer to properties of the model with `this`\n    return `${this.year} ${this.model} ${this.make}`;\n  }\n}\n\nconst car = Car.createReadOnly({ make: \"Toyota\", model: \"Prius\", year: 2008 });\n// run the view\ncar.name(); // => \"2008 Toyota Prius\"\n```\n\nViews can be defined as functions which don't take arguments like above, or as getter properties on the class body:\n\n```typescript\nimport { ClassModel, register, view } from \"@gadgetinc/mobx-quick-tree\";\n\n@register\nclass Car extends ClassModel({\n  make: types.string,\n  model: types.string,\n  year: types.number,\n}) {\n  // define a view as a property with a getter\n  get name() {\n    // refer to properties of the model with `this`\n    return `${this.year} ${this.model} ${this.make}`;\n  }\n}\n\nconst car = Car.createReadOnly({ make: \"Toyota\", model: \"Prius\", year: 2008 });\n// run the view\ncar.name; // => \"2008 Toyota Prius\"\n```\n\nViews are available on both read-only and observable instances of Class Models.\n\nViews can also be made explicit with the `@view` decorator:\n\n```typescript\n@register\nclass Car extends ClassModel({\n  make: types.string,\n  model: types.string,\n  year: types.number,\n}) {\n  // define a view as a property with a getter and an explicit @view decorator\n  @view\n  name() {\n    return `${this.year} ${this.model} ${this.make}`;\n  }\n}\n```\n\nExplicit decoration of views is exactly equivalent to an implicit declaration of views without a decorator.\n\n#### Defining actions with `@action`\n\nClass Models support actions on instances, which are functions that change the state of the instance or its children. Class Model actions are exactly the same as `mobx-state-tree` actions defined using the `.actions()` API on a `types.model`. See the [`mobx-state-tree` actions docs](https://mobx-state-tree.js.org/concepts/actions) for more information.\n\nTo define an action on a Class Model, define a function within a Class Model body, and register it as an action with `@action`.\n\n```typescript\nimport { ClassModel, register, action } from \"@gadgetinc/mobx-quick-tree\";\n\n@register\nclass Car extends ClassModel({\n  make: types.string,\n  model: types.string,\n  year: types.number,\n}) {\n  // define an action with a function\n  @action\n  setModel(model: string) {\n    // set properties of the model on `this`\n    this.model = model;\n  }\n\n  // actions don't need to take arguments\n  @action\n  addYear() {\n    this.year = this.year + 1;\n  }\n}\n\nconst car = Car.create({ make: \"Toyota\", model: \"Prius\", year: 2008 });\ncar.year; // => 2008\ncar.addYear(); // run the action\ncar.year; // => 2009\n```\n\nActions are only available on observable instances created with `.create`, and are present but will throw errors if created on instances created with `.createReadOnly`.\n\n##### Asynchronous actions / `flow`s\n\n`mobx-state-tree` allows defining asynchronous actions using the `flow` helper. Asynchronous actions can't use `async`/`await`, and instead must use generator functions so that `mobx-state-tree` can wrap each chunk of execution with the appropriate wrappers. For more information on the generator-based async actions in `mobx-state-tree`, see the [`mobx-state-tree` async actions docs](https://mobx-state-tree.js.org/concepts/async-actions).\n\nTo define an asynchronous action in a class model, wrap your action generator function in the `flow()` helper, assign it to the name on the class, and apply the `@action` decorator like you might with synchronous actions.\n\n```typescript\nimport { ClassModel, register, action } from \"@gadgetinc/mobx-quick-tree\";\n\n@register\nclass Store extends ClassModel({\n  data: types.string,\n}) {\n  // define an async action with a generator function, the flow() helper, and the @action decorator\n  @action\n  load = flow(function* (this: Store) {\n    // use `yield` like you might use `await` to run promises\n    this.data = yield getNewDataSomehow();\n  });\n}\n\nconst store = Store.create({ data: \"\" });\n\n// call async actions with `await`\nawait store.load();\n```\n\nCreating asynchronous actions using generators works as follow:\n\n- The action needs to be marked as generator, by postfixing the function keyword with a \\* and a name (which will be used by middleware), and wrapping it with flow\n- The action still needs to be wrapped in the `@action` decorator\n- For type safety, the action needs to explicitly take a `this` argument with the type of the model (this is a typescript limitation with type inference across these instance functions)\n\nYour flow action function can do all the normal things that an `async` function can do, but you call async functions a bit differently.\n\n- The action can be paused by using a yield statement. Yield always needs to return a Promise.\n- If the promise resolves, the resolved value will be returned from the yield statement, and the action will continue to run\n- If the promise rejects, the action continues and the rejection reason will be thrown from the yield statement\n- Invoking the asynchronous action returns a promise. That will resolve with the return value of the function, or rejected with any exception that escapes from the asynchronous actions.\n\n#### Defining volatile properties with `@volatile`\n\nClass Models support volatile properties on instances, which are observable properties that are excluded from any snapshots. Volatiles last only for the lifetime of the object and are _not_ persisted because they aren't serialized into snapshots or read out of incoming snapshots. Class Model volatiles are exactly the same as `mobx-state-tree` volatiles defined using the `.volatile()` API on a `types.model`.\n\nVolatile tends to be most useful for implementation details, like timers, counters, transport objects like `fetch` requests, or other state that only matters for making other stuff work as opposed to saving source of truth data that might belong in a database. See the [`mobx-state-tree` volatile docs](https://mobx-state-tree.js.org/concepts/volatiles) for more information.\n\nVolatiles can be referred to and used in views, and changed by actions. Volatile properties are observable, so you can rely on views recomputing if they change for observable instances.\n\nTo define an volatile property on a Class Model, define a type-only property within a Class Model body, and register it as a volatile `@volatile` that initializes the value:\n\n```typescript\nimport { ClassModel, register, action } from \"@gadgetinc/mobx-quick-tree\";\n\n@register\nclass Loader extends ClassModel({}) {\n  @volatile((_instance) => \"ready\");\n  state!: string;\n\n  @action\n  reload() {\n    this.state = \"loading\"\n    // ... do something else\n    this.state = \"ready\"\n  }\n}\n\nconst loader = Loader.create();\nloader.reload();\nloader.state // => \"ready\"\n```\n\nVolatile properties are initialized using the initializer function passed to the `@volatile` decorator. The initializer is passed the instance being initialized, and must return a value to be set as the value of the property.\n\nVolatile properties are available on both read-only and observable instances. On read-only instances, volatiles will be initialized to the value returned by the initializer, and can't be changed after as actions are not available.\n\n##### Readonly actions with `@volatileAction`\n\nReadonly instances of MQT models don't support running actions -- they are read-only, so invoking any actions will throw. But, sometimes you want some measure of mutable state on a readonly instance that doesn't ever need to be persisted in a snapshot, but does need to change over the lifecycle of an object. Things like timers, references to external handles, DOM nodes, etc all don't belong in the snapshot, but do need to be referenced.\n\nmobx-quick-tree supports a special kind of action which _is_ available on readonly instances. These actions are only allowed to mutate volatile properties.\n\nFor example, we can create a stopwatch object that has a `timer` volatile property, and mutate the value of that volatile on both and observable class model instances.\n\n```typescript\nimport { ClassModel, register, action, volatileAction } from \"@gadgetinc/mobx-quick-tree\";\n\n@register\nclass Stopwatch extends ClassModel({}) {\n  @volatile(() => null);\n  timer!: NodeJS.Timer | null;\n\n  @volatileAction\n  start(callback) {\n    this.timer = setTimeout(callback, 5000)\n  }\n\n  @volatileAction\n  stop() {\n    clearTimeout(this.timeout)\n    this.timeout = null;\n  }\n}\n\nconst watch = Stopwatch.createReadOnly()\nwatch.start(() => {}) // will work ok on both observable and readonly instances\nwatch.stop();\n```\n\n**Note**: Volatile actions will _not_ trigger observers on readonly instances. Readonly instances are not observable because they are readonly (and for performance), and so volatiles aren't observable, and so volatile actions that change them won't fire observers. This makes volatile actions appropriate for reference tracking and implementation that syncs with external systems, but not for general state management. If you need to be able to observe state, use an observable instance.\n\n#### Caching view values in snapshots with `snapshottedView`\n\nFor expensive views, `mobx-quick-tree` supports hydrating computed views from a snapshot. This allows read-only instances to skip re-computing the expensive view, and instead return a cached value from the snapshot quickly.\n\nTo hydrate a view's value from a snapshot, define a view with the `@snapshottedView` decorator.\n\n```typescript\nimport { ClassModel, register, view, snapshottedView } from \"@gadgetinc/mobx-quick-tree\";\n\n@register\nclass Car extends ClassModel({\n  make: types.string,\n  model: types.string,\n  year: types.number,\n}) {\n  @snapshottedView()\n  get name() {\n    console.log(\"computing name\"); // pretend this is expensive\n    return `${this.year} ${this.model} ${this.make}`;\n  }\n}\n\n// create an observable instance\nconst car = Car.create({ make: \"Toyota\", model: \"Prius\", year: 2008 });\ncar.name; // => \"2008 Toyota Prius\" (logs \"computing name\")\n\n// create a snapshot of the observable instance\nconst snapshot = {\n  ...getSnapshot(car),\n  name: car.name, // NOTE: you must add the snapshotted view's value to the snapshot manually\n};\n\nconst readOnlyCar = Car.createReadOnly(snapshot);\nreadOnlyCar.name; // => \"2008 Toyota Prius\" (does not log \"computing name\")\n```\n\nSnapshotted views can transform the value from the snapshot before it is stored on the read-only instance. To transform the value of a snapshotted view, pass a `createReadOnly` function to the `@snapshottedView` decorator.\n\nFor example, for a view that returns a rich type like a `URL`, we can store the view's value as a string in the snapshot, and re-create the rich type when a read-only instance is created:\n\n```typescript\nimport { ClassModel, register, view, snapshottedView } from \"@gadgetinc/mobx-quick-tree\";\n\n@register\nclass TransformExample extends ClassModel({ url: types.string }) {\n  @snapshottedView<string>({\n    createReadOnly(value, node) {\n      return value ? new URL(value) : undefined;\n    },\n  })\n  get withoutParams() {\n    const url = new URL(this.url);\n    for (const [key] of url.searchParams.entries()) {\n      url.searchParams.delete(key);\n    }\n    return url;\n  }\n\n  @action\n  setURL(url: string) {\n    this.url = url;\n  }\n}\n\nconst example = TransformExample.create({ url: \"https://example.com?foo=bar\" });\n\nconst snapshot = {\n  ...getSnapshot(example),\n  withoutParams: example.withoutParams.toString(),\n};\n\nsnapshot.withoutParams; // => \"https://example.com\"\n\nconst readOnlyExample = TransformExample.createReadOnly(snapshot);\nreadOnlyExample.withoutParams; // => URL { href: \"https://example.com\" }\n```\n\nIf your snapshotted views need to emit patches when their values change, you can pass a `shouldEmitPatchOnChange` function that returns `true` to the `@snapshottedView` decorator, or you can pass `true` to `setDefaultShouldEmitPatchOnChange` to enable patch emission for all snapshotted views.\n\n##### Snapshotted view semantics\n\nSnapshotted views are a complicated beast, and are best avoided until your performance demands less computation on readonly instances.\n\nOn observable instances, snapshotted views act like normal views and **are not** populated from the snapshot.\n\nOn readonly instances, snapshotted views go through the following lifecycle:\n\n- when a readonly instance is created, any snapshotted view values in the snapshot are memoized and stored in the readonly instance\n- snapshotted views are never re-computed on readonly instances, and their value is always returned from the snapshot if present\n- if the incoming snapshot does not have a value for the view, then the view is lazily computed on first access like a normal `@view`, and memoized forever after that\n\n#### References to and from class models\n\nClass Models support `types.references` within their properties as well as being the target of `types.reference`s on other models or class models.\n\nFor example, a Class Model can references another Class Model in it's properties with `types.reference`:\n\n```typescript\n@register\nclass Make extends ClassModel({\n  name: types.string,\n}) {}\n\n@register\nclass Car extends ClassModel({\n  model: types.string,\n  make: types.reference(Make),\n}) {\n  description() {\n    return `${this.make.name} ${this.name}`;\n  }\n}\n```\n\nA Class model can also reference a MST API model defined with `types.model`:\n\n```typescript\nconst Make = types.model(\"Make\", { name: types.string });\n\n@register\nclass Car extends ClassModel({\n  model: types.string,\n  make: types.reference(Make),\n}) {\n  description() {\n    return `${this.make.name} ${this.name}`;\n  }\n}\n```\n\nAn MST API model defined with `types.model` can also reference a Class Model:\n\n```typescript\n@register\nclass Make extends ClassModel({\n  name: types.string,\n}) {}\n\nconst Car = types\n  .model({\n    model: types.string,\n    make: types.reference(Make),\n  })\n  .views((self) => ({\n    description() {\n      return `${self.make.name} ${self.name}`;\n    },\n  }));\n```\n\n#### Subclassing Class Models\n\nClass Models support subclassing to build class heirarchies in the same way you might with normal ES6 classes. Class Model subclasses inherit properties, views, actions, and volatiles from the parent, and can add new properties, views, actions, and volatiles below. Subclasses are strongly typed and support the same observable/readonly as any other class model.\n\nTo subclass a Class Model, you can use the JavaScript builtin `extends` keyword to create a subclass:\n\n```typescript\n@register\nclass Person extends ClassModel({\n  name: types.string,\n}) {\n  @action\n  setName(name: string) {\n    this.name = name;\n  }\n}\n\n@register\nclass Dancer extends Person {\n  @action\n  dance() {\n    console.log(\"cool moves\");\n  }\n}\n\nconst dancer = Dancer.create({ name: \"Ni'jah\" });\ndancer.name; // #=> Ninjah , the inherited property from the parent class\ndancer.dance();\n```\n\n**Note**: Subclasses of class models must be `@register`'d before use, just like their parents.\n\n##### Adding observable properties in subclasses\n\nTo subclass a class model and add an observable property, you have to use a special `.extends` call when subclassing. `extends` accepts the same style of property declaration that the `ClassModel` constructor does, and will merge in the props passed with the original props from the parent.\n\n```typescript\n@register\nclass Person extends ClassModel({\n  name: types.string,\n}) {\n  @action\n  setName(name: string) {\n    this.name = name;\n  }\n}\n\n@register\nclass Dancer extends Person.extend({ outfit: types.string }) {\n  @action\n  setOutfit(outfit: string) {\n    this.outfit = outfit;\n  }\n  @action\n  dance() {\n    console.log(`cool moves in ${this.outfit}`);\n  }\n}\n\nconst dancer = Dancer.create({ name: \"Ni'jah\", outfit: \"glam\" });\ndancer.name; // #=> Ninjah , the inherited property from the parent class\ndancer.dance(); // cool moves in glam\n\ndancer.setOutfit(\"catsuit\");\ndancer.dance(); // cool moves in catsuit\n```\n\n#### Dynamically defining Class Models using class expressions\n\nUsually, Class Models are defined using top level ES6 classes exported from from a file. For advanced use-cases, classes can also be built dynamically within functions using ES6 class expressions. Generally, static classes defined with decorators are clearer and more performant, but for fancy class factories and the like you may want to use class expressions which MQT supports with slightly different syntax.\n\nTo define a class using a class expression, you can no longer use the decorator based API suggested above, as in the latest version of TypeScript, decorators are not valid within class expressions. They work just fine in named classes, but not in dynamically defined classes that are passed around as values.\n\nInstead, you need to explicitly call the `register` function with the class, the list of decorators you'd like to apply to the class, and optionally a string class name:\n\n```typescript\n// define an example function which returns a class model (a class factory)\nconst buildClass = () => {\n  const klass = class extends ClassModel({\n    key: types.string,\n  }) {\n    someView() {\n      return this.key;\n    }\n\n    someAction(newKey: string) {\n      this.key = newKey;\n    }\n  };\n\n  return register(\n    klass,\n    {\n      someView: view,\n      someAction: action,\n    },\n    \"Example\",\n  );\n};\n\n// invoke the class factory to define a class\nconst Example = buildClass();\n\nconst instance = Example.create({ key: \"foo\" });\ninstance.someAction(\"bar\");\n```\n\nThis pattern is most useful for class factories that create new classes dynamically. For example, we could build a class factory to define a Set of some other type:\n\n```typescript\nimport { ClassModel, types, register, view, action } from \"@gadgetinc/mobx-quick-tree\";\n\n// define a class factory that produces a new class model implementing a set for any type\nconst buildSet = <T extends IAnyType>(type: T) => {\n  const klass = class extends ClassModel({\n    items: types.array(type),\n  }) {\n    has(item: Instance<T>) {\n      return this.items.some((existing) => existing == item);\n    }\n\n    add(item: Instance<T>) {\n      if (!this.has(item)) {\n        this.items.push(item);\n      }\n    }\n\n    remove(item: Instance<T>) {\n      this.items.remove(item);\n    }\n  };\n\n  return register(klass, {\n    add: action,\n    remove: action,\n    has: view,\n  });\n};\n\n// produce a set of numbers class\nconst NumberSet = buildSet(types.number);\n\n// create an instance of the set\nconst set = NumberSet.create();\nset.add(1);\nset.add(2);\n\nset.has(1); // => true\nset.has(3); // => false\n```\n\n#### Dynamically subclassing Class Models\n\nIf you have bits of shared data or logic you want to re-use across classes in an MQT project, you can use the mixin pattern. MQT supports mixins by means of subclassing and the `extends` helper for adding new data properties to parent classes.\n\nFor example, we could create a `Nameable` mixin we can apply to two different classes to create two different subclasses, each getting some shared data or logic.\n\n```typescript\nconst Nameable = <Klass>(klass: Klass) => {\n  class Named extends extend(klass, { name: types.string }) {\n    get firstName() {\n      return this.name.split(\" \")[0];\n    }\n  }\n};\n\nclass Human extends Nameable(ClassModel({ salutation: types.string })) {\n  sayHello() {\n    return `Hello ${this.firstName}!`;\n  }\n}\n\nclass Dog extends Nameable(ClassModel({ breed: types.string })) {\n  pet() {\n    return `Petted ${this.name} who is a very good ${breed}`;\n  }\n}\n```\n\n#### Class model snapshots\n\n`mobx-state-tree` and `mobx-quick-tree` both support snapshotting the rich instances defined in JS land using the `getSnapshot` function, and both conform to the same set of rules. Snapshots are useful for persisting data from one place to another, and for later re-creating instances that match with `applySnapshot` or `.create`/`.createReadOnly`.\n\nSnapshots in `mobx-quick-tree` apply in the same way as `mobx-state-tree` in that they can be serialized without issue to JSON. Instances are turned into snapshots according to the following rules:\n\n- simple types like `types.boolean` or `types.string` are serialized as the equivalent JSON scalar type\n- `types.maybeNull` will output null in the snapshot if no value is present\n- `types.maybe` will be totally absent from the snapshot if no value is present\n- `types.array` arrays are serialized as plain JS arrays\n- `types.map` maps are turned into plain JS objects\n- properties defined on models are all serialized into the snapshot\n- actions, views, and volatiles on models will not be serialized at all into the snapshot\n- references will be serialized to the snapshot as the value of the referenced node's identifier (and not re-serialize the whole referenced node)\n\n#### Sharing functionality between class models\n\nWhen converting `types.model` models that use `types.compose`, you will need a deeper refactoring. `types.compose` is an implementation of multiple inheritance which ES6 classes don't support. There are a couple ways to re-use functionality in Class Models:\n\n- If the reusable chunk is only properties, you can define a constant of the properties, and spread it in the `ClassModel({...})` base class definition. For example:\n\n```typescript\nconst SharedProps = {\n  name: types.string,\n  phoneNumber: types.string,\n};\n\n@register\nclass Student extends ClassModel({\n  homeroom: types.string,\n  ...SharedProps,\n}) {}\n\n@register\nclass Teacher extends ClassModel({\n  email: types.string,\n  ...SharedProps,\n}) {}\n```\n\n- If the reusable chunk is just logic like views and actions, you can use a function to subclass. For example:\n\n```javascript\nconst addName = (klass) => {\n  return class extends klass {\n    name() {\n      return this.firstName + \" \" + this.lastName;\n    }\n  };\n};\n\n@register\nclass Student extends addName(\n  ClassModel({\n    firstName: types.string,\n    lastName: types.string,\n    homeroom: types.string,\n  }),\n) {}\n\n@register\nclass Teacher extends addName(\n  ClassModel({\n    firstName: types.string,\n    lastName: types.string,\n    email: types.string,\n  }),\n) {}\n```\n\nIf the reusable chunk includes both properties and views or actions, you can combine the two techniques.\n\n#### Converting a `types.model` to a Class Model\n\nChanging a `types.model` into a Class Model requires two key changes:\n\n- changing the syntax used to define the model\n- switching any `types.compose` calls to become subclasses, or spread properties in the `ClassModel` base class factory.\n\n##### Updating `types.model` syntax to become a `ClassModel`\n\nTo convert a `types.model` into a Class Model, you need to update the definition to use a class body. Here are the conversion rules:\n\n- `types.model(\"Name\", {...properties...})` becomes `class Name extends ClassModel({...properties...})`\n- the newly registered class needs to have the `@register` decorator\n- any views defined in `.views(...)` blocks become functions defined on the class decorated with the `@view` decorator\n- any actions defined in `.actions(...)` blocks become functions defined on the class decorated with the `@action` decorator, including `flow()` actions\n- any volatile properties defined in `.volatile()` blocks become one `@volatile` property in the class per property.\n\nFor example, lets say we have this `types.model` model:\n\n```typescript\nimport { types } from \"@gadgetinc/mobx-quick-tree\";\n\nconst Car = types\n  .model(\"Car\", {\n    make: types.string,\n    model: types.string,\n    year: types.number,\n  })\n  .views((self) => ({\n    get name() {\n      return `${self.year} ${self.make} ${self.model}`;\n    },\n    sku() {\n      return `CAR-${self.year}-${self.model}`;\n    },\n  }))\n  .actions((self) => ({\n    setModel(model: string) {\n      self.model = model;\n    },\n  }));\n```\n\nan equivalent Class Model would read:\n\n```typescript\nimport { types, register, action, view, ClassModel } from \"@gadgetinc/mobx-quick-tree\";\n\n@register\nclass Car extends ClassModel({\n  make: types.string,\n  model: types.string,\n  year: types.number,\n}) {\n  get name() {\n    return `${self.year} ${self.make} ${self.model}`;\n  }\n  sku() {\n    return `CAR-${self.year}-${self.model}`;\n  }\n  @action\n  setModel(model: string) {\n    self.model = model;\n  }\n}\n```\n\n##### Updating `types.model` volatiles to become `ClassModel` volatiles\n\nIn `types.model` models, [volatiles](https://mobx-state-tree.js.org/concepts/volatiles) are defined using the `.volatile()` call to add multiple properties, each with an initial value. In Class Models, volatiles are defined one at a time with the `@volatile` decorator.\n\nFor example, with this `types.model` model:\n\n```typescript\nconst Store = types.model(\"Store\", {\n  data: types.string;\n}).volatile((self) => ({\n  state: \"not-started\",\n  finished: false\n})).actions(self => ({\n  load: flow(function *() {\n    self.state = \"loading\"\n    try {\n      self.data = yield loadSomeData();\n      self.state = \"loaded\";\n    } catch (error) {\n      self.state = \"error\";\n    } finally {\n      self.finished = true;\n    }\n  });\n}));\n```\n\nwe convert each volatile property into a `@volatile` call on the class body:\n\n```typescript\n@register\nclass Store extends ClassModel({\n  data: types.string;\n}) {\n  @volatile(() => \"not-started\")\n  state: string\n\n  @volatile(() => false)\n  finished: boolean\n\n  @action\n  load = flow(function *(this: Store) {\n    this.state = \"loading\"\n    try {\n      this.data = yield loadSomeData();\n      this.state = \"loaded\";\n    } catch (error) {\n      this.state = \"error;\n    } finally {\n      this.finished = true;\n    }\n  });\n};\n```\n","readmeFilename":"README.md"}