{"_id":"@astral/mobx-query","_rev":"57-f4c4420d480f0f576f0e83c8254b6cc7","name":"@astral/mobx-query","dist-tags":{"latest":"1.19.3"},"versions":{"0.1.0":{"name":"@astral/mobx-query","version":"0.1.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@0.1.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"c0a3aada00db77be44d2e869dd3438b6f0e3fc84","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-0.1.0.tgz","fileCount":31,"integrity":"sha512-l5cORDI4s3mxRAMz0ZVUggGlWDMeyp/qOYrlBOLgWxLcxFB9YlmozI34A7aG7dZUgJD03FqTxTqpplsKrvMPXw==","signatures":[{"sig":"MEUCIQDZ90XVX2S5cOw8HSif5aHR7O8E9P5VpCObN3W7BxjLRwIgEqsl73YAyR1suzuMropbF4w0rCQs+Tw1jA7M76otjzE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":49584},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"ee4a76bd2ec56b2d13af33d95471d71ab7b2b962","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"8.19.2","description":"","directories":{},"sideEffects":false,"_nodeVersion":"18.12.0","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_0.1.0_1687332049358_0.3081370700053101","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@astral/mobx-query","version":"0.1.1","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@0.1.1","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"592301f14cecc14407bf7ece2064ce6ea1049a02","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-0.1.1.tgz","fileCount":31,"integrity":"sha512-vEZZZ8CLhswFOL1xpmHwX1ulmzhYlA/Pr8pVR6kXVWFOQUMazrHS1CtJGdJLWi/5rGvi4abS8jkqcbOVuXwLsQ==","signatures":[{"sig":"MEUCIBJwlV4GBk837MHDX77vT9N56W/4Xk9mz9r5zcoA2a+LAiEAsGr564gOO/68aT/yXVoWbzOIxGPPnSIh+2k0g6Au/K4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":49751},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"4cbe4fa38d951d270416737bfa786d8616326b03","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"8.19.2","description":"","directories":{},"sideEffects":false,"_nodeVersion":"18.12.0","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_0.1.1_1687348500709_0.6975982247979466","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@astral/mobx-query","version":"0.1.2","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@0.1.2","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"c41c144d6e34c328f50682be5d986073417c5978","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-0.1.2.tgz","fileCount":31,"integrity":"sha512-orBdSLc/Jr9ZJFiLYHDdC0wrpFb6+GoPy0PkT45A+3RA0tfbyO3Mf3doBAegOmGX6kBavaAS9w4PShGv1mQw1g==","signatures":[{"sig":"MEUCID1HICDM//T01Umv5ubJTQpRqcfIXGo4jLfd/ttUY2TAAiEAm8DXIkR1PF5KbUs4KnkPQVUv87SaCkVVoHdq6VUjkp0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":49751},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"8271ed74a72a7496f56799250286b5b41bc491d2","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"8.19.2","description":"","directories":{},"sideEffects":false,"_nodeVersion":"18.12.0","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_0.1.2_1687517556646_0.4603493977160027","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@astral/mobx-query","version":"0.1.3","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@0.1.3","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"863f395c4cf704da0a44e8b7498dafe38e42a69b","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-0.1.3.tgz","fileCount":31,"integrity":"sha512-BeSpu5MdiWwQD7ZQfkXU6SNaREDXC0wB3wCgBHC9CX5lMjsFwq5Hld914gW+yo0u6oySSfwlI7x8NDo6w9g3Yg==","signatures":[{"sig":"MEYCIQC0UAAVd43h38TnS8Iei2X83IzGK7ToPTrwkO02q6tmMQIhAOg/hFCyPDJjvfXskb/Tmcgyk9ClOzzGQ0UzE1EAmloy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":49937},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"8271ed74a72a7496f56799250286b5b41bc491d2","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"8.19.2","description":"","directories":{},"sideEffects":false,"_nodeVersion":"18.12.0","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_0.1.3_1687758285691_0.951661405349552","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"@astral/mobx-query","version":"0.1.4","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@0.1.4","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"71aae5a7074fb5cf5dd6c49b7bd285e5969f68ac","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-0.1.4.tgz","fileCount":31,"integrity":"sha512-3am0ADNuciWR6xlzV3oUWGpHBSz3AvCTdyU/UZh7uuVJHLE0eWcH14h8+sD9EpSBxKpPlMWJYXvBPbmuYdl9kA==","signatures":[{"sig":"MEUCIQC+J8XSIPu5i0JttaAfmfGGird/qU5r+uSw1rz75LUZXQIgT4lCcvSs6mzXSKGXLYJhruVXWOTC9iqCKRHpx/O5maI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":51729},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"a954418eea6192e821ad2b3fc6787c7a80d338bd","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"8.19.2","description":"","directories":{},"sideEffects":false,"_nodeVersion":"18.12.0","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_0.1.4_1688464881787_0.7746707524524581","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@astral/mobx-query","version":"1.0.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.0.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"39021dcf189614a7eb46b0ff68ed3dc1ebb5b794","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.0.0.tgz","fileCount":31,"integrity":"sha512-z2Rbn0m4LwxrRPgHCBtAePJ4ABQxf7WuqV+yCZdfDU+ipMjrhunrF1eNC/B/eKahPW2SlD+yiLKNzkEersyTrw==","signatures":[{"sig":"MEUCIQChH6ikpr6ahag5sgzHguE2tTjgHVXXKX0x8Iovj7DwAgIgDARDlDntFKxQVXKLtTKmYFvUcU7jHVagR6p/kwWiLvI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":67049},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"44af03ab09280669374b8ddf3353087c87bb5e61","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"9.5.1","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.16.1","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.0.0_1688716125792_0.1937203571646775","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@astral/mobx-query","version":"1.0.1","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.0.1","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"3ca871e01c1792f3008e4b0069825cb1129529cd","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.0.1.tgz","fileCount":31,"integrity":"sha512-p5/+JJr8VX1R0QRtjQnXHgrDD5wsUrqMc5hEsPub7S0QgV0drEDJV+zwIV8ZDwu1wfcPFZf84z3GkcojWs0cIA==","signatures":[{"sig":"MEYCIQDgwpxBKQJP3jG+60C4oI75tZVLSb//VF8Y45eGptl3YQIhAJXyoF/hn3W7VwmdntWzwpb8qnSDeAprNVN5rX+9KAqI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":67155},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"ce407cdf4a7711b879274e4c5f0482e67f17f834","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"9.6.7","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.17.0","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.0.1_1691051129043_0.5897515740183814","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@astral/mobx-query","version":"1.1.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.1.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"c35c53b5db0f03d29118a38c0af78b01acb5629c","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.1.0.tgz","fileCount":31,"integrity":"sha512-T1vWuk3rgexpuhBFvoNrizXpwUgGijTPMpfX0H02qpw8BdSMTQyzjQM9ZVsnDpPPZAhiVsd2gSgEvrNuJDyxyw==","signatures":[{"sig":"MEYCIQD4p3xlt2ZSDz2TeLFZo7W0UI7Vplb5XIIrY4M+fdEtZQIhAMexkCSjLLmZjN6yy2wR2Mse60MoaiEcmt19sDZILIDe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":67757},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"3549ceb90e2805d6e8189f836b8561c23d8cf67c","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"9.6.7","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.1.0_1695028367114_0.14848875732505706","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@astral/mobx-query","version":"1.2.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.2.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"e45874f84e7eff36332b539e8102f715ce48324d","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.2.0.tgz","fileCount":31,"integrity":"sha512-EZpiBwZWr1A7KVFAzBOcEpqtTOdf+Rf0gT1qOO94lCGh5WdrN4htlNsn+/FbAJzbHPXywDyPObW/4FQVWigmhQ==","signatures":[{"sig":"MEUCIQC12suoocZMkwM4ATsF+DRl4e74Y2T5U7D6n5OvCYIjTAIgQ9F1/1KKcAv6JB5OSsogtGOc5bi9Hc7vIpzXG2sHNQ4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":67865},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"b6d177bfc4903aa97e44a5eadd3d16c3ad733f00","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"9.6.7","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.2.0_1695030017636_0.984208385104159","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"@astral/mobx-query","version":"1.2.1","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.2.1","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"eada485bd675afec3344d791811807d6826e7d3c","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.2.1.tgz","fileCount":31,"integrity":"sha512-xOEAZ4NzGZxPzKavJ5Jy/fGUHIWLq5wbrvtPd2H/qF/T0LGaL9A343pCNBIzvjwK/spiCcylSK3d/g7hw4XypQ==","signatures":[{"sig":"MEUCIG60oigUBHh3Ia5RAWfZbCKI3ZWrUaSjGEk+rxpThZ3PAiEA4JXMP2ZxuLVWpekiaOCTc+TlPsX9Vwal4gLWspr0Lf0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":67993},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"37c6776222969e5a02bd7bb5712e447056e9dddc","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"9.6.7","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.17.1","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.2.1_1695211628548_0.6433877383034845","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"@astral/mobx-query","version":"1.2.2","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.2.2","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"29a9ddf4ee14d356b2bbf33c2d922faf346a63fc","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.2.2.tgz","fileCount":31,"integrity":"sha512-1seYuWg5YFkAb1Feb3nyDi3TuaMAeCH4msAoiEo6aQVnTIlQsXcopJYafb52UIC+3SdkyX4y1ByukhlK4DWbNg==","signatures":[{"sig":"MEQCIGIKeAg2sBupP3AMlQ/Bz2qtQWYy5Zi9Vqo/FG/924FMAiAI03s6Dq4YAClUwGg56OXZIeK6XZslJXMmJrY/+5ql0Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":67986},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"0e2169f158c85d523441ef18d2bb92d20452b1c1","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"9.8.1","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.18.0","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.2.2_1696853556939_0.42796838437953433","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@astral/mobx-query","version":"1.3.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.3.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"51b03720e4cc8ee48e221938f2ed4add8de744d0","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.3.0.tgz","fileCount":31,"integrity":"sha512-2Li1dRI7IIYW6BdhKnE4ZhLiGixPPfDVlELoXol4PBgEdxtyWrNzpqjnJ9WDrkwS+HvJajmc1V0cyXDr/cNiqg==","signatures":[{"sig":"MEQCICA1jpTvCuaacXNEeE/2v+Qo9xt9HzWu0gI7JKndbqqcAiBCV8pqTHSmYzqVawmvG6O6UExn2f4ab0D9cidZAhcRxg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69269},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"88703ce2939feaba828d17b1d6771dc72e3521db","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"9.8.1","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.18.2","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.3.0_1699426024918_0.09984532444374561","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"@astral/mobx-query","version":"1.3.1","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.3.1","maintainers":[{"name":"astral_frontend","email":"frontendastral@gmail.com"},{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"80f0a2352a2ff51f6d2d6c000a4c592d6db326f7","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.3.1.tgz","fileCount":31,"integrity":"sha512-sQZA+hwGJ/BrrEN/rNgVGKUkCIKOQARqYLlAh4rvL2cd+dpmsPcjAE8Mzj2w7z2u7d/c/j7iM7EajX+clAekww==","signatures":[{"sig":"MEUCIDciS9ryElX7iG+Yb84jjqY9taen65pQI0is0b4QxeKVAiEAysXOvf+khbjwn9pFYcixnLFl5Z3O0ApFbBFLa1OICvI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69513},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"5b40d98d67c0619b944fd82a486d0f5786df4661","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.2.3","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.3.1_1705645177017_0.18057722585645153","host":"s3://npm-registry-packages"}},"1.3.2":{"name":"@astral/mobx-query","version":"1.3.2","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.3.2","maintainers":[{"name":"astral_frontend","email":"frontendastral@gmail.com"},{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"04d41fdf9950bda8f81953b687271b5cbc2d3adc","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.3.2.tgz","fileCount":31,"integrity":"sha512-BBq9jRlB7Rcl2UGAwNk+0nq3mPru9bqAW0Y65YGVH9G0cbKUZEE9t7He2Kp5Gw3GpxBvBhUKrUgiXhzrc5PbaA==","signatures":[{"sig":"MEUCIH1SqNMtgM0efqVQSnzE+avY7Wtc5LK3h8PfrHKTJzPlAiEAu7c6ojcwQMJJV1x25HLSDwXJnzmOAIkzUGDZavxyrJQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72636},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"7fd216ffae1c1d0843e4ff4683cf714baccf8a49","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.2.3","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.19.0","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.3.2_1706865858616_0.8672954566641105","host":"s3://npm-registry-packages"}},"1.3.3":{"name":"@astral/mobx-query","version":"1.3.3","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.3.3","maintainers":[{"name":"astral_frontend","email":"frontendastral@gmail.com"},{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"160c56ffcd253c56122a5014291ea158a276cbcd","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.3.3.tgz","fileCount":31,"integrity":"sha512-w0FisdrUR0y9pwozZnIDiO6Rcx4iauj8gzNdibewaFf4kptOYj4CqhS+TD8WiD0bLahlvyc7EAE9iVuEw0mQTA==","signatures":[{"sig":"MEYCIQCZLO0YvGLnOwbQH96r0ZcHGvV/6DB73OGRe9SqUlgB4AIhALpueiEtM41rA7zlwXhJtyUxjesXtrE+0dIqfvnvxhzy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72739},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"663c3148429b5864751f0a260e3caf19f857bcbe","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.2.4","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.19.1","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.3.3_1709719832586_0.7768366505719788","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@astral/mobx-query","version":"1.4.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.4.0","maintainers":[{"name":"astral_frontend","email":"frontendastral@gmail.com"},{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"perevezencev","email":"perevezenzev@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"b9544cd34cb9632ba135b971e362ca3a5a1d09ee","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.4.0.tgz","fileCount":31,"integrity":"sha512-R7ZgcySr+sUkV0QuC7FbInlAqm3HaQB42OJ7j4fg8hssfp8n3d0JNOsr+uLTQjP5cXb62x/JvGc93a5xIkuoyQ==","signatures":[{"sig":"MEYCIQDhYFaMpoRJ+U5+cigCUmXwWSZwFtPUc15FQzl9/zhOGgIhAK8aD3DzPou8figyubAvLUbTuVa6ec3HNEEkNH/oiBWz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73599},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"9e76bf50daca6f8d12f86a951c05b809a4ed3dd5","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.5.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.20.2","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.4.0_1715082621187_0.4933607942777918","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@astral/mobx-query","version":"1.5.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.5.0","homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"34dd0f3d5c1fe893ae29c8507b62c0c108c660f5","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.5.0.tgz","fileCount":43,"integrity":"sha512-+RbELUlyK0RKYTmqQwda1The0EauoEnz6xK5bbU8HNBnMw4WEaBH8vPvHcD3VQs6Xdjbv6VFJJsCVw/ZAPemUg==","signatures":[{"sig":"MEUCIE5ZUJt86VxByCegiYZocr6ay9ICDgnGldXsFxdhtcVBAiEA+vYqmgApR5eTkuMGW60XN0wjgyqBroGanKmN7NSzt4Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":81248},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"23fe73ec823c36e39d3afcd54ae5e229c6483937","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.7.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.20.3","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.5.0_1719910375914_0.9981926280661451","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"@astral/mobx-query","version":"1.6.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.6.0","maintainers":[{"name":"astral_frontend","email":"frontendastral@gmail.com"},{"name":"and_tem","email":"ipad_nw@icloud.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"4f2efd1d0b30109eaeb468aad5d88ca8a61cd287","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.6.0.tgz","fileCount":47,"integrity":"sha512-ZUIy+UWEHA7fCA73o3hw9bC1Zm6jvlB1Nr+M1s6mn/0fjMY3VpJS1gF8MQRdkjAaceF5/UWiQibsc7BGDpDhvA==","signatures":[{"sig":"MEQCIEOwT53psqPctTD6veBVdIRG0GiVmkqj9eCmi5UIbWEgAiApcL1I8Hl4IQHh80XzmV8+Ph1YVPw9R2ZzqMz8UIayPA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":91257},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"9a0ae6d36e969b8d7071705dd12f57a66eac2201","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.7.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.20.3","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.6.0_1720518052182_0.8826891675756627","host":"s3://npm-registry-packages"}},"1.6.1":{"name":"@astral/mobx-query","version":"1.6.1","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.6.1","maintainers":[{"name":"astral_frontend","email":"frontendastral@gmail.com"},{"name":"and_tem","email":"ipad_nw@icloud.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"d087badab892083cf411260c46ffc471343f3c0b","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.6.1.tgz","fileCount":47,"integrity":"sha512-9b+kOI6A5ok1XmuYySIlcZlILoJtiXPQ2i6/mhr9XfmDQyre8goT0Lw2I3Um9R+Cam2adT7V5fT9YScJWbssWQ==","signatures":[{"sig":"MEYCIQDvi0s0CMKMWCtiiE8dbtgXCgXXsv71qHOwIKvFfVxPHAIhAOJVGs7Ot+Oy42QK+KBRF91ITnJJ0Mlt27GPGyK+KcVb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":91257},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"039f82bb159ca1f49deb61fd3a69856fec8793f0","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.7.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.20.4","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.6.1_1723114731464_0.08389129088075986","host":"s3://npm-registry-packages"}},"1.6.2":{"name":"@astral/mobx-query","version":"1.6.2","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.6.2","maintainers":[{"name":"astral_frontend","email":"frontendastral@gmail.com"},{"name":"and_tem","email":"ipad_nw@icloud.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"37a53f1d87c7f9868c07b56faa462f72335b8727","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.6.2.tgz","fileCount":47,"integrity":"sha512-bT/WZljVBS/Csk3XgX+GafN0zh86zK/ZQ+7rRn6Kuru1jAG4p4m2/lOQ6HdovT+m3tnbT7R+jTjWZ4D0dak5Hg==","signatures":[{"sig":"MEQCIFuD5w7Xu/aF+WkxdFnWwGfB6eoJ7BCsp+V06PtzTSn7AiBGg6KYzEiG9RV/WYvgDzqwLAsYrDdomkGz3mJLb8zUqw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":91173},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"8be721c22706cf2622bd3c444196796fc19d2e5d","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.7.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.20.4","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.6.2_1723540219357_0.866384221454914","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"@astral/mobx-query","version":"1.7.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.7.0","maintainers":[{"name":"astral_frontend","email":"frontendastral@gmail.com"},{"name":"and_tem","email":"ipad_nw@icloud.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"a83855a5c618b683845ab8069b7dfba93e9cdbf4","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.7.0.tgz","fileCount":47,"integrity":"sha512-vCbakTTX/azci9kt+jczt/pHi85ie7JXy7LyNndHiXUU4B3kQ0fDWr5dt8mhjevyFOVAOzHql51vsvmnhqliFg==","signatures":[{"sig":"MEYCIQCLbtUCa22jeKZpIjBW6Zbi1QWKm89Z/GT3VHONOX+tZQIhAO0aT5YWum0kOYaAasjSgrzg9+o881DFINFC4yCaooYx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92254},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"647a7ec14ebb59db78c7580d0ad5e38b3aab98d5","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.7.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.20.4","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.7.0_1723541329583_0.12705293135207385","host":"s3://npm-registry-packages"}},"1.7.1":{"name":"@astral/mobx-query","version":"1.7.1","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.7.1","maintainers":[{"name":"astral_frontend","email":"frontendastral@gmail.com"},{"name":"and_tem","email":"ipad_nw@icloud.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"18202fbcdad9dd702e013a7043b639d6339362b7","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.7.1.tgz","fileCount":47,"integrity":"sha512-hKtndZ1j7XN0MVwrU4EJuR/5oSL60bkSRbP+NzTK0FTwfUOg5hbkKmqFlgjlh3ZL63GIfXxw78aRBSdqWqa/mg==","signatures":[{"sig":"MEQCIHkSazQzTp0W1ckkMGacmynQGC7otel6hgMtiBY6nQaWAiAnoqeQLiYKC/EJ71YyPtf8kpbVsiwiec9r6SUuU52wjw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92304},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"e3512af1411c400ad7b06130ab3f0fec8244b80e","_npmUser":{"name":"and_tem","email":"ipad_nw@icloud.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.7.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"18.20.4","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.7.1_1727247235866_0.4663133686864165","host":"s3://npm-registry-packages"}},"1.7.2":{"name":"@astral/mobx-query","version":"1.7.2","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.7.2","maintainers":[{"name":"astral_frontend","email":"frontendastral@gmail.com"},{"name":"and_tem","email":"ipad_nw@icloud.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"b43051bfc8983b48cca7275e15ef594116218cf0","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.7.2.tgz","fileCount":47,"integrity":"sha512-D4eUoPR01b11fyCrGfhaMWzuX1W52z3Gay4nDm/basin6A3pcVcIINZVkGxaRgCWRaWm1r3VfpFpcZXr/na+nQ==","signatures":[{"sig":"MEYCIQCPDJEGG4dhIganK3MMsyIKEIJ1zAteDvUegBCxb/dCCQIhANYyHiMrGBY0ujBvEkBSKdsRpAH4nmfgJTPlItVQF58t","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92236},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"7ce2d0611891e5f51d9958efa4b7cd07480687da","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.8.3","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.9.0","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.7.2_1727443106429_0.4107601700880248","host":"s3://npm-registry-packages"}},"1.8.0":{"name":"@astral/mobx-query","version":"1.8.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.8.0","maintainers":[{"name":"astral_frontend","email":"frontendastral@gmail.com"},{"name":"and_tem","email":"ipad_nw@icloud.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"cba0f222f1eba25cd49d319070715eaf644d64f2","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.8.0.tgz","fileCount":47,"integrity":"sha512-4REC9G2LLmaHxLF1u9thQhpRbwB8/F+l3JcGyev9kts2xac8E65g6wtB1pFgfsqc5p1NDIIn2P2BhB77d2+61w==","signatures":[{"sig":"MEYCIQCag/Fu1bMcyYGvFd0sDU/ZcqslFsgNVXArAAJG1VJt0wIhAPwbFir9lPHZ465GMOnDl/kFiwYpGHs5h4o2QEBk6IeL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":96178},"main":"./index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":"./index.js"},"gitHead":"712d2eba88abc0c9a81d14772ce4013813e97ff3","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.9.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.11.0","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.8.0_1732266893144_0.35393896880944253","host":"s3://npm-registry-packages"}},"1.8.1":{"name":"@astral/mobx-query","version":"1.8.1","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.8.1","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"1840f86a752ca5daf53ad696e697fcc9b57e578e","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.8.1.tgz","fileCount":91,"integrity":"sha512-f3wg0czrUTMyuzM5w6Zmy7HRIbx79Cvuh53dNCEfGjR07OrJqm+DdHOsxRUBVrojoSaX+2NpObse5d3De6jjKA==","signatures":[{"sig":"MEYCIQD0nbchFkfmxqDmar2U/5OaUrTZDP80BPLx+rTefnIvBwIhAIyfCWGgysyqP/lt9isE86ygn9i7MhyfwAWhgqUxnNlB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":180683},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"module":"./index.js","vitest":"./node/index.js","require":"./node/index.js"}},"gitHead":"4fced4e39cbfb74cd19322adf3cc76c9de5b6114","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.9.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.11.0","dependencies":{"mobx":"^6.9.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.8.1_1733131503316_0.22011748689696198","host":"s3://npm-registry-packages"}},"1.9.0":{"name":"@astral/mobx-query","version":"1.9.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.9.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"e644cd338dae1951a27aee3beb39bf4fd0c9dc24","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.9.0.tgz","fileCount":139,"integrity":"sha512-vzb0s/2mEGShd+t0vx0FQAfvvAs7i1BlQ3wKzJoTvKHEz0ax44IlzoYz9qGKCc4UkYI6l3QxSleyyhE20fjozA==","signatures":[{"sig":"MEYCIQDfHBfLAZ8mmlfFazxbAgzGy7SOijpC+ikTNzM2mO1TnQIhANXpfLr0n6Z15CxF7LPnSvE6NihRngBKQAPVY0T1KOj/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":264323},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"module":"./index.js","vitest":"./node/index.js","require":"./node/index.js"}},"gitHead":"00881d18b08bd6fec60b0295a62ab1d02d5e0b22","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.9.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","dependencies":{"mobx":"^6.9.0","is-plain-obj":"4.1.0","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.9.0_1733301040009_0.016492597749031113","host":"s3://npm-registry-packages"}},"1.10.0":{"name":"@astral/mobx-query","version":"1.10.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.10.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"bbacbcf9b6db221c7c43d3d913f35e8d02c60c4b","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.10.0.tgz","fileCount":139,"integrity":"sha512-FNmtVhw6ME0SWTmplX8G63308VJVJVupMIbQfVSwW7VTEdgCWgVFdpD8tbdtAxOK+KuwcnUerHKL7/hVTbRVbQ==","signatures":[{"sig":"MEYCIQC8z0Nqw3Jpsa4O+k77IvRsgAH7FcZdLOWC6msUJA20KwIhAJvDFCwRP4K4tMTpnaDkPeJWXd8Zf0GIy4Q+Mua+EZGU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":264174},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"module":"./index.js","vitest":"./node/index.js","require":"./node/index.js"}},"gitHead":"a88b01705b6d57342925ba2bba8de72c67c2870f","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.9.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.10.0_1733826862182_0.23639417270043417","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@astral/mobx-query","version":"1.10.1","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.10.1","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"0b239770b55214eb40972f25a88766b0f06d45fd","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.10.1.tgz","fileCount":139,"integrity":"sha512-Jnsl076ZFVkGbu7yv3cwP8SnkNxMayeE6uzvDm6g2bWDafo47lik6pRFwbaxY4t7WSdvESwxL9qBh98BGn6BRA==","signatures":[{"sig":"MEQCIEGpSxsnOnynn1NCikzm4e5glAP1VWQ/XlWkzlVm/jCLAiBqJXXTToE5Bt4UbgJuRMxysQXDvhqLSFiOFQCrNVJYFQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":264206},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"module":"./index.js","vitest":"./node/index.js","require":"./node/index.js"}},"gitHead":"75dba45efb23cf47daf9d18e7b7e2f9a6b132b41","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.9.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.10.1_1733831872646_0.2844701339794844","host":"s3://npm-registry-packages-npm-production"}},"1.10.2":{"name":"@astral/mobx-query","version":"1.10.2","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.10.2","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"2f2964904da3e8b63c702365becb95f79403317d","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.10.2.tgz","fileCount":139,"integrity":"sha512-SoQeAaVuiG9rTMFr2kgUBJVfc+qIDk7DqxjpDbAcpfrW3oPX9hPHbe3KPAIsv+pHafan+1EVayESkToqBcbIyg==","signatures":[{"sig":"MEUCIQDEum5CA5FcvFsYx1pUs6dT+21FP2rnTKrpzFrhQofTagIgame+ViRm3XXI2vaq8dqaJmMM9FeNARsE85LI6dlLagM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":264922},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"module":"./index.js","vitest":"./node/index.js","require":"./node/index.js"}},"gitHead":"48550322b54edeb0322668172389400d7c0de0d2","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.9.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.10.2_1733926022949_0.004426995072394968","host":"s3://npm-registry-packages-npm-production"}},"1.10.3":{"name":"@astral/mobx-query","version":"1.10.3","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.10.3","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"742dcbd317d608ccf8cd428d796035b98c221b94","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.10.3.tgz","fileCount":139,"integrity":"sha512-Zyo2QZ4iQGurPGoSh56wg+Gwibk4FTl+wyKsS8LXnrB964CIzL9dRTmcs3QjisY/QHRGK0bzHw4Sr8ETzpIz+w==","signatures":[{"sig":"MEUCIDn9Pic0yah9ELrZ2CwfFSO0z9/hC3XmPbyK2mK82idcAiEA6evP9KO1oHHUqauha2cbW+98TzBZ4fkF4mX7NckKzg0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":264695},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"module":"./index.js","vitest":"./node/index.js","require":"./node/index.js"}},"gitHead":"6dd219af6dd99bc67c73493435095c58a7e7f19b","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.9.0","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.10.3_1734006136630_0.1618338370099628","host":"s3://npm-registry-packages-npm-production"}},"1.10.4":{"name":"@astral/mobx-query","version":"1.10.4","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.10.4","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"5e52bfc157bc8610abd6a0c5f58f1a0ffc80894a","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.10.4.tgz","fileCount":139,"integrity":"sha512-jsk/W18hu6SakpaIjagXitYRLlWN5YBOxeBZv5MjrnPdNeoOFLbmxcNhRgtOXH6o+NLcBmpqO82Hb5bPVfB9Nw==","signatures":[{"sig":"MEYCIQDrCNhu7FHOTA0bfapw8yhM8OzPoN6NZ+5Y7OkMz5LEhQIhAOYhlVcmoR4tVMb30YM4nZmiT6xtJ82I9N95DKJtKiP8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264691},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"988b3dd5a7baa2e8c06425f85d9fc64897a5a923","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.10.4_1741345459241_0.09196954158044379","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@astral/mobx-query","version":"1.11.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.11.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"dd5aa2eafe3c104f05062812ebc1168bfd206212","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.11.0.tgz","fileCount":139,"integrity":"sha512-XQdK/cLq2wunL/krjczXfoqqiqoOzZvYtYpNSx1RABdXYH7fO9Z8hZrzGjrAYnRq/YJcPNra+3ahlNcG/5C5TA==","signatures":[{"sig":"MEUCIQD52syNFCHw/tYOJEXnp0QjpnL99Qgny8lp3gDTSFnUjQIgFav8J8q1CcByw2iCLY+avAAvxcCG9QuMz8u+NwaTtDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265703},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"00bace9c057f1258a6b0c124148f3699b3c73971","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.15.1","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.11.0_1747395139591_0.3977672717987448","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@astral/mobx-query","version":"1.12.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.12.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"bcc3027f9fd91211390558dfc66dabe61063005b","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.12.0.tgz","fileCount":139,"integrity":"sha512-dNZ9bLgKg2FUmm9u7h/v90/axgmSHOpTRilO+Iw8CpctORdQwfdgJijaPjoJPxNXmdl3vTlqlICfy6IurrDCwA==","signatures":[{"sig":"MEUCIDi3KJ72scYhap3tz+8VpbgT1rbXtS7By+G7CS+E8ifEAiEA1G60MKWoG92zlMkrzjzCpcNi+p300ABTd2j+09cZXFg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271723},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"fb6c9928b153dbd258cbfa3de5ccc65d6fa763df","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.15.1","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.12.0_1747639977218_0.4342285832484809","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"@astral/mobx-query","version":"1.12.1","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.12.1","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"0f02a73247a6dbbcede604977b0df25062d68f0d","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.12.1.tgz","fileCount":139,"integrity":"sha512-c8huWgMEJvRmzDUoBGjUQwuqXB93T73QfgIv+g4yckeh3qRJk7aCsycCC/P3GpZFEEBam3fpDtLK1NQX0iTBHA==","signatures":[{"sig":"MEUCIFHVNb6QwWxSHzvwVN6VohRTh68t4a6UKS6UHb8tc9UTAiEA4yjT6op12ggdUIOf7lXCeLI6+AOsyX/OcROCTxTzaIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271747},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"66c23a16f81a0c2238def774ce861c47416a2b5f","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.15.1","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.12.1_1747640164188_0.004112579544981454","host":"s3://npm-registry-packages-npm-production"}},"1.12.2":{"name":"@astral/mobx-query","version":"1.12.2","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.12.2","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"b7474971c9e21b8b43fa290249ab2b49c1ea387e","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.12.2.tgz","fileCount":139,"integrity":"sha512-L13slNm/IYLOLS0t77oLILZRbukBCTmShp2Jurag+pTEInCIW+vYp1w7hpdPc4g0cli/E+T5wmexxRzu91bJ/A==","signatures":[{"sig":"MEUCIQDDIiMlhbLYqrpfco/kFJnydc6PadchwE04sQNBFXjUHgIgAeYqCIDjgUEd6lFyljukmeYCKILc2dPesJbJG6e8dq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272667},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"ed1bbb7691fb63f7ff77a7d571af17b30643a680","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.15.1","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.12.2_1747653260229_0.10704482210357291","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@astral/mobx-query","version":"1.13.0","keywords":[],"author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.13.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"homepage":"https://github.com/kaluga-astral/mobx-query#readme","bugs":{"url":"https://github.com/kaluga-astral/mobx-query/issues"},"dist":{"shasum":"6ab28b7100e99b77bbed88170f28376ba60ed4b5","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.13.0.tgz","fileCount":139,"integrity":"sha512-E40UHfuQkbDbRY/M5chfMC62IEEwyQy/SEpzOnn8gdaJ7gyfH3SC+1A30Z7d3zom1fNfXdikS65YmTT4wnFXTA==","signatures":[{"sig":"MEQCIF2s6vFJGUOSP4LJhrxg9+M4+L0TIo+eAe7PPBG+j1aDAiAttncDnek/7yqRhUhQivQcmduprWH6LpqwM4UrfTlYow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275573},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"83e0394e8becbe0d5572a4e23f7e4f14e332d4a0","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"git+https://github.com/kaluga-astral/mobx-query.git","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.15.1","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.13.0_1747822659635_0.36549822614950034","host":"s3://npm-registry-packages-npm-production"}},"1.13.1":{"name":"@astral/mobx-query","version":"1.13.1","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.13.1","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"7fc3d6dba1afa64a92c5990d59cb5f29a86300cf","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.13.1.tgz","fileCount":139,"integrity":"sha512-GRlLX/AY9NEzKkEjkq8zlFADBVjlzCPk6ZxA0IuxeEttMOAdYkg+8Ta+C8sZjS0piznIkhE9sTNZthyqsSZWSQ==","signatures":[{"sig":"MEQCIHNCHggI+c/EDSppvaqimPS6aDAaDOYtp8n2t5x8p/5VAiBhjmT1HKx4L1Pj9a3KHwNZ8ppmZnBGOhyO4BRlj23HiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275480},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"c01c510b1781e44085cf922f12cd4a2b22d30f10","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.13.1_1748002895524_0.6446400695493166","host":"s3://npm-registry-packages-npm-production"}},"1.13.2":{"name":"@astral/mobx-query","version":"1.13.2","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.13.2","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"d5df03c8c5c7a365ed433a34c432dfa66d9744ae","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.13.2.tgz","fileCount":139,"integrity":"sha512-RPLXKB+rHP+YwZ2JA1Tw8kwYEibGcb3ahDCIeCUIodaCvsg38SveAp9MHGCQmk0DgI81g3TLsWcdsefMs7Vwzw==","signatures":[{"sig":"MEUCIQDH4lHYPGT7kfOTUH0xgCTka8uRnTDUDdtZv3fM6tqsFwIgBcxd07myALTFBqOPahd0K9YVv1d3CyU6yxF18lCH6FE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275258},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"e4a4a9ffba546c9467e870fc5177eb4c4447512d","_npmUser":{"name":"astral_frontend","actor":{"name":"astral_frontend","type":"user","email":"frontendastral@gmail.com"},"email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.13.2_1751005458110_0.2872425945261443","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@astral/mobx-query","version":"1.14.0","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.14.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"ec42cbef7d808e5a7866855e9213f58f65356162","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.14.0.tgz","fileCount":139,"integrity":"sha512-4R6W1+E3xDpT+J+6tNwsnRs8GNzQSqgpQOv+Y9zQgyVpZdYD7oMDNDb8aW4hhnWbU2reTDcBci0k2HZgmYKy+A==","signatures":[{"sig":"MEYCIQD32JJrBd2yTGue04xJI1JN18puWxpKGbkcpERwfXZslgIhAKKofJpxV0KfN1GLGlautTJ0N8Cz/I5fYuPWw2U6EjPq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276266},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"1f7b321653adceed925a193b361bc51962b74cd8","_npmUser":{"name":"astral_frontend","actor":{"name":"astral_frontend","type":"user","email":"frontendastral@gmail.com"},"email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.14.0_1751549474961_0.5248973975268134","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@astral/mobx-query","version":"1.15.0","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.15.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"b56ac24d70715bcd418161b0ed232d8dded33c14","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.15.0.tgz","fileCount":147,"integrity":"sha512-CcRgNuadeTzuxYTxwBcSRt4kXHVnERY7AJBAetDTtsxglMLEtzK2FHcIgtkZwppGGaeVDuIc7Bl+ZcKRRrCGmQ==","signatures":[{"sig":"MEYCIQCag6pWJVCg7qp6Jmk4cOub21Z2TyyuYJ3X1mGndHHVGgIhAN6lz5CeZLEpMyFaIPPSXXK+L4lnfARfrlDdxFQ5CNsA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287670},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"76381768a4475267923ffc5a06e69117a119d6c3","_npmUser":{"name":"astral_frontend","actor":{"name":"astral_frontend","type":"user","email":"frontendastral@gmail.com"},"email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"mobx":"^6.9.0","@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.15.0_1751880774426_0.16935324622102987","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"@astral/mobx-query","version":"1.15.1","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.15.1","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"f4f283775d11b2481bd8457d29910025552221b9","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.15.1.tgz","fileCount":147,"integrity":"sha512-MH7u7w9TBuTV3pcziC5xJ+r+8m7JpvHKGjPo3BMykUroTSOhCzBS0/AkUkpaV9RsOuGO8eedq44EOB1Ma6Q/Og==","signatures":[{"sig":"MEYCIQDIGoxHH++NHD2lo6BNS6oMSuUoFkqOUCH5WJK4vPhC3gIhAKxJoFhs2t7g9q9fHseneWYgL+9UNM+ZKQGaeAs0ls3I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287698},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"52f65c85457e43d8cb10a8b4ed4a486e7d12eb3f","_npmUser":{"name":"astral_frontend","actor":{"name":"astral_frontend","type":"user","email":"frontendastral@gmail.com"},"email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.15.1_1751968527774_0.07218752500486514","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@astral/mobx-query","version":"1.16.0","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.16.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"b1e6a16879c520b17936d3c6619f2a1022b004f8","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.16.0.tgz","fileCount":179,"integrity":"sha512-8nQwz87YdNeBkT33zhR5YzNVAXoERgTcBgHqq37Dzj0FzkIfuRCx8hdIbSFH21ztJzCcLcXoBTj62+7ZgFQTCQ==","signatures":[{"sig":"MEUCIFzWNsFAW4WWOiaWpUnvTZUONl6sn1ZO6B65wKxLevQNAiEAsyqm1yAAHMOoPjAmoXf+YXUVaNs/m+kzaohFCzG2Tgg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":371751},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"500f074e5ed6b7262070ba3affb0716cf9f6a352","_npmUser":{"name":"astral_frontend","actor":{"name":"astral_frontend","type":"user","email":"frontendastral@gmail.com"},"email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.16.0_1752123085926_0.32164749266257364","host":"s3://npm-registry-packages-npm-production"}},"1.16.1":{"name":"@astral/mobx-query","version":"1.16.1","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.16.1","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"b38be42c2fa6569518e1cec895b118b2d8b8e798","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.16.1.tgz","fileCount":179,"integrity":"sha512-T2sp7LYirvdkVBEy8zc4Kj53IQMUl6frSGdpwPRanep7UyNvaCTJDwijH5/aFNw9BGt3OsU27v+kT3hbWvT6Bg==","signatures":[{"sig":"MEUCIQCjiEMMVwICiTusFh5M865jOVogeMYIXiXWSCSg87s3GgIgPJ2/IvMHHtsY6ggtFJWMNgrry2pOSxPL5ktoTceTv2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":371829},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"de5f1a788ca24944948faba44d1338130b06129b","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.16.1_1752226020219_0.5056203047671266","host":"s3://npm-registry-packages-npm-production"}},"1.16.2":{"name":"@astral/mobx-query","version":"1.16.2","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.16.2","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"5290d34efe669c98499c205fb5a7460da9558762","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.16.2.tgz","fileCount":179,"integrity":"sha512-ZYCQbNubJ09FH1FaPPWrHKUKiSnYqi/Ui+Tq2kGR1mM/WuC+t9p1hxerspEsxc+o2JefG+vkIIsmSZcIQc0ZPA==","signatures":[{"sig":"MEUCID85eHgMUk0u4zCxmRwHt+Y22isKPOWZj/7zFgetOdI4AiEAk8glMBzDl21pNj2b+uYdzBMj7PIO1fRFepUH/0LQOvQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":372102},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"74e41984a486b74372310e8d47a0857e03a65124","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.16.2_1752504001669_0.5526052337072895","host":"s3://npm-registry-packages-npm-production"}},"1.16.3":{"name":"@astral/mobx-query","version":"1.16.3","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.16.3","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"43a8a7f25bf02319330db95a18eaa9210ab94a74","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.16.3.tgz","fileCount":179,"integrity":"sha512-8vbLwQ3focsyXvo9OGast3BsEi8jDqJUG3aAsaznv6gOoEg4nPrWY6QVxjQ7SuVxNXlcSpPALALODcARk0OgZw==","signatures":[{"sig":"MEUCIBA1qJBvVMp+xzEp+Dmcqy45XdcMyXcJFAgXIwF076R0AiEA5M3mW4PbZBfQYenHyQr4TMX8uX+3Lc4qU6mWv9l//Is=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":372122},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","module":"./index.js","require":"./node/index.js"}},"gitHead":"82c12a77fce103708b83aa437af7889c866f6b5b","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.16.3_1752665874337_0.09766553274044609","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@astral/mobx-query","version":"1.17.0","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.17.0","maintainers":[{"name":"and_tem","email":"ipad_nw@icloud.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"4ce6fb56d67328f799d0cc13c76cb10ff5471f3a","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.17.0.tgz","fileCount":179,"integrity":"sha512-KpI7GPUXu3z2CNRt16ZUcKwD/AmtB9jiHNtqU1SGCJne9OhAwoNe4yvIIqVgaxeKCGn/G1PJSftxDNu0ihEy6w==","signatures":[{"sig":"MEYCIQCiJAWu6INwug3o4Uf3ng88CPl7+210FYUSyEv+FyoAUwIhAPwhXQ/HAdH/0c5CPcjGInU1DxPIfdq3WpcmJwrl0RgL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":372183},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","import":"./index.js","module":"./index.js","default":"./index.js","require":"./node/index.js"}},"gitHead":"9f47fa712bb37934b930704ec85b308b26a0a6bc","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.2","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.17.0_1753369036611_0.5209735892641258","host":"s3://npm-registry-packages-npm-production"}},"1.17.1":{"name":"@astral/mobx-query","version":"1.17.1","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.17.1","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"eb50825c304a68661acfc5dc8b630d255d2b96f9","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.17.1.tgz","fileCount":179,"integrity":"sha512-uulIlMMV6neAKQtHlufa/X/LlerrYpFXv0kpXhTv/uvmBvbvelQ6ZlCK7Nvmf6F/WRwX5m9fG/rsTtIP4zv87w==","signatures":[{"sig":"MEQCIHva+nBBCbQD3fl8WnqgGYPkhMmQ9xFbKzKGalb2wEksAiAh3KAqoi1PdZ9QYVetJDDnn9vbaioYhhR05PrGsepY3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374062},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","import":"./index.js","module":"./index.js","default":"./index.js","require":"./node/index.js"}},"gitHead":"1fe08dd357d5c67d6b0d971a5f1ec3e21a58da29","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.3","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.17.1_1757918273942_0.8068469744698443","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@astral/mobx-query","version":"1.18.0","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.18.0","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"a6b11cce5abe733a3fcb7dedfec31998acb42c7d","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.18.0.tgz","fileCount":179,"integrity":"sha512-5T6El8FV02eS0ATQpr5caJ1xMUmGWq/UmTLjRKqm9574DrPCB/qtRBKdcWr8tjKnnBDyiBagrJwoSkkty04y7Q==","signatures":[{"sig":"MEUCIQDos3/GyvsogymkaQ3nW6B7MmFbCsKKmNyD0eg00bWMQAIgDS5E4oB9BCBFUhLcXHS2TA9RJ6ePVT4wb7dNaQH5Qs4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374883},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","import":"./index.js","module":"./index.js","default":"./index.js","require":"./node/index.js"}},"gitHead":"d1f356972647bb3c7592b201074ba5e3ecd34d7e","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.3","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0","fast-json-stable-stringify":"2.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.18.0_1759490972813_0.35279627247928325","host":"s3://npm-registry-packages-npm-production"}},"1.18.1":{"name":"@astral/mobx-query","version":"1.18.1","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.18.1","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"184d8d38e4daf38bb4fcb1f3ecdf0ed210014cba","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.18.1.tgz","fileCount":179,"integrity":"sha512-8xL9KvS8Hv+wA1HILmYOQ0P4mJVru+4sSTrmtZ+OXDvTZh5ak5aoB3xA3QYUyIsKpAi8CQI2o21pnOwPnGEnhQ==","signatures":[{"sig":"MEUCIBaLmT3Ux5tYHB+0/7KCUP3qL8O2fREDX/JKFP4zyjFxAiEA1pYZjIqOYTY2ve9/83j17sHsB5OUZyl5ucr54G/dVRQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":375946},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","import":"./index.js","module":"./index.js","default":"./index.js","require":"./node/index.js"}},"gitHead":"06aafb1ca8dcfd01e74599d8cb4b71a5ccf004f5","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.4","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0","fast-json-stable-stringify":"2.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.18.1_1765291899871_0.7482399843492484","host":"s3://npm-registry-packages-npm-production"}},"1.18.2":{"name":"@astral/mobx-query","version":"1.18.2","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.18.2","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"2b5bf021f020a4cf8943bce1c3b28529406948d9","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.18.2.tgz","fileCount":179,"integrity":"sha512-neXw0lnkMB7POybFeiF6XZaqz11FISEL9fAdsAyZFqWZzAa/B+7Slckp69XEpKx7qLsno7QRPzPT3b+fcYeENg==","signatures":[{"sig":"MEUCIEDhSk8qKglf/u84pW14rw1NmchOtHG9wJS9Jhg5KMJOAiEAkiuWIYx6NlsAjoigvRgrS9REs+PY+pxrG/UWnodjnWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":375885},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"types":"./index.d.ts","import":"./index.js","module":"./index.js","default":"./index.js","require":"./node/index.js"}},"gitHead":"aa220f9ee44b672704c9ceff66c519f7cf4573aa","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.4","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0","fast-json-stable-stringify":"2.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.18.2_1765348928141_0.5930645064655249","host":"s3://npm-registry-packages-npm-production"}},"1.18.3":{"name":"@astral/mobx-query","version":"1.18.3","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.18.3","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"61dc5c1cab2a754010167a816b87cca606968d8d","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.18.3.tgz","fileCount":179,"integrity":"sha512-uiS+glYxIMVDW74BJ4F2S2tFNjmpqdvjm8JMBOfRO/YwI08DQG7oUz/yzbeOGK7S4m4tMvnL6wu9Q9a1Jon6Hw==","signatures":[{"sig":"MEQCIF13Xz/5tqCzfLm/nwvecG0fk+pqkmSiFyGf1hSV0z2UAiBpu8DQ3+zkVcUFnF9AoqvUQt8XoD+ERxjEL0PdZcJFwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":376706},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"node":"./node/index.js","types":"./index.d.ts","import":"./index.js","module":"./index.js","default":"./index.js","require":"./node/index.js"}},"gitHead":"c975c4bed12e1a6a902c8a2873747f729d992a75","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.7","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0","fast-json-stable-stringify":"2.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.18.3_1778225021666_0.48442263874038693","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@astral/mobx-query","version":"1.19.0","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.19.0","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"7b7816b4f1cfee3ecb868d3d25e6cc61877c36db","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.19.0.tgz","fileCount":179,"integrity":"sha512-FjcxUmzgMXWEhOf5TWbmIPzm3JLdt6t9HZuU0dx4IOS8VxSNvJU9j7STfA9xEU9MJcao/AIQyHORDP6W10QL2Q==","signatures":[{"sig":"MEYCIQCm9ysjmQ0xdZ9vt5Uml1H0cODSGeEw+3jxE6wJYXlu8wIhAM7L5a06edCvn+8dTDDhjPSFb/b3USqiIBtS3oMu9kRK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":402407},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"node":"./node/index.js","types":"./index.d.ts","import":"./index.js","module":"./index.js","default":"./index.js","require":"./node/index.js"}},"gitHead":"79397fc2d15624ab0c951e97e72f1fc7ead4be2e","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.8","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0","fast-json-stable-stringify":"2.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.19.0_1783335737298_0.6068231186038058","host":"s3://npm-registry-packages-npm-production"}},"1.19.1":{"name":"@astral/mobx-query","version":"1.19.1","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.19.1","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"9356eacb48f038ed9cd2b42a34a34264f3f630dd","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.19.1.tgz","fileCount":179,"integrity":"sha512-qpDABGtQ4bi7cgaSCyGFiQJukLbhx8m77QuyGThl1su/Hmmn9MeRXNstnd8QVLt5wtZCo+9gomXRsJWDnTGjwQ==","signatures":[{"sig":"MEUCIQCSJGAA3fad+32vCjGCDlRl8jlG+QeOeyQgkWLfo+ZCPAIgVoJ1FqvshMYKfMeDxow5QX0t8JuGzMEGql6yFPzztyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":401506},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"node":"./node/index.js","types":"./index.d.ts","import":"./index.js","module":"./index.js","default":"./index.js","require":"./node/index.js"}},"gitHead":"549e094227daa64de7443e202245c59cdee6befc","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.8","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0","fast-json-stable-stringify":"2.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.19.1_1783435665217_0.7621674684653634","host":"s3://npm-registry-packages-npm-production"}},"1.19.2":{"name":"@astral/mobx-query","version":"1.19.2","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/mobx-query@1.19.2","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"dist":{"shasum":"4af57ab673c5e628e269203265e03182627f8fd6","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.19.2.tgz","fileCount":179,"integrity":"sha512-cvPfbH2sRzbU5/epECxpd7uHHV9folyXywGrABwEAQB+Nt+unCdBMafR2DNSYNc2EPIZmuGBIkcn2XmkEdzvbw==","signatures":[{"sig":"MEUCIQCqWCtzoBqth8Bsn8xw+qOrKbWYr93pF8tFjE0iNYt4xAIgO0sou+Lda/TCjD6XvmG8FxwcSiro5YDjydta51o8eeM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":401589},"main":"./node/index.js","types":"./index.d.ts","module":"./index.js","browser":"./index.js","exports":{".":{"node":"./node/index.js","types":"./index.d.ts","import":"./index.js","module":"./index.js","default":"./index.js","require":"./node/index.js"}},"gitHead":"fe1a0813ef9d03288b658d9306fcdd0709e2fe51","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/mobx-query","type":"git"},"_npmVersion":"10.9.8","description":"Библиотека для кеширования запросов.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0","fast-json-stable-stringify":"2.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"mobx":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mobx-query_1.19.2_1783499456492_0.07227506305325959","host":"s3://npm-registry-packages-npm-production"}},"1.19.3":{"name":"@astral/mobx-query","main":"./node/index.js","dependencies":{"@astral/utils":"^1.6.1","@emotion/hash":"0.9.2","utility-types":"3.11.0","fast-json-stable-stringify":"2.1.0"},"peerDependencies":{"mobx":"^6.0.0"},"version":"1.19.3","author":{"name":"Astral.Soft"},"license":"MIT","repository":{"type":"git","url":"https://git.astralnalog.ru/frontend.shared/mobx-query"},"types":"./index.d.ts","module":"./index.js","browser":"./index.js","sideEffects":false,"exports":{".":{"node":"./node/index.js","module":"./index.js","require":"./node/index.js","types":"./index.d.ts","default":"./index.js","import":"./index.js"}},"_id":"@astral/mobx-query@1.19.3","gitHead":"a234a4afed983dde15c417a350cd1e60b36f5908","description":"Библиотека для кеширования запросов.","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-jrHnXNDgsxp6J0k7V3F8Oqp8qLwNUmR579vHc6nNlwydT+78M+K7P2fxhKotj9uWtpp4YwJoGc5XppW7gbE8DQ==","shasum":"570435ec7954360f99b2cfffaafd3022b74d6ac5","tarball":"https://registry.npmjs.org/@astral/mobx-query/-/mobx-query-1.19.3.tgz","fileCount":179,"unpackedSize":401660,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDrvLG87RJCi+vjz3hPNCR0ZoRd7eXeZz14nFng+Ltt/wIhAN/YN0L72tvojfKV0k1F05l8d8OwUwvNgrVFCNNiZG8C"}]},"_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"directories":{},"maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mobx-query_1.19.3_1785737772633_0.8040458883760149"},"_hasShrinkwrap":false}},"time":{"created":"2023-06-21T07:20:49.300Z","modified":"2026-08-03T06:16:12.935Z","0.1.0":"2023-06-21T07:20:49.532Z","0.1.1":"2023-06-21T11:55:00.928Z","0.1.2":"2023-06-23T10:52:36.882Z","0.1.3":"2023-06-26T05:44:45.921Z","0.1.4":"2023-07-04T10:01:21.956Z","1.0.0":"2023-07-07T07:48:46.004Z","1.0.1":"2023-08-03T08:25:29.266Z","1.1.0":"2023-09-18T09:12:47.346Z","1.2.0":"2023-09-18T09:40:17.882Z","1.2.1":"2023-09-20T12:07:08.775Z","1.2.2":"2023-10-09T12:12:37.166Z","1.3.0":"2023-11-08T06:47:05.225Z","1.3.1":"2024-01-19T06:19:37.237Z","1.3.2":"2024-02-02T09:24:18.789Z","1.3.3":"2024-03-06T10:10:32.802Z","1.4.0":"2024-05-07T11:50:21.346Z","1.5.0":"2024-07-02T08:52:56.059Z","1.6.0":"2024-07-09T09:40:52.315Z","1.6.1":"2024-08-08T10:58:51.597Z","1.6.2":"2024-08-13T09:10:19.541Z","1.7.0":"2024-08-13T09:28:49.724Z","1.7.1":"2024-09-25T06:53:56.036Z","1.7.2":"2024-09-27T13:18:26.614Z","1.8.0":"2024-11-22T09:14:53.299Z","1.8.1":"2024-12-02T09:25:03.477Z","1.9.0":"2024-12-04T08:30:40.211Z","1.10.0":"2024-12-10T10:34:22.363Z","1.10.1":"2024-12-10T11:57:52.892Z","1.10.2":"2024-12-11T14:07:03.131Z","1.10.3":"2024-12-12T12:22:16.784Z","1.10.4":"2025-03-07T11:04:19.488Z","1.11.0":"2025-05-16T11:32:19.775Z","1.12.0":"2025-05-19T07:32:57.432Z","1.12.1":"2025-05-19T07:36:04.408Z","1.12.2":"2025-05-19T11:14:20.443Z","1.13.0":"2025-05-21T10:17:39.877Z","1.13.1":"2025-05-23T12:21:35.777Z","1.13.2":"2025-06-27T06:24:18.371Z","1.14.0":"2025-07-03T13:31:15.198Z","1.15.0":"2025-07-07T09:32:54.723Z","1.15.1":"2025-07-08T09:55:27.983Z","1.16.0":"2025-07-10T04:51:26.271Z","1.16.1":"2025-07-11T09:27:00.409Z","1.16.2":"2025-07-14T14:40:01.869Z","1.16.3":"2025-07-16T11:37:54.513Z","1.17.0":"2025-07-24T14:57:16.882Z","1.17.1":"2025-09-15T06:37:54.134Z","1.18.0":"2025-10-03T11:29:33.011Z","1.18.1":"2025-12-09T14:51:40.030Z","1.18.2":"2025-12-10T06:42:08.290Z","1.18.3":"2026-05-08T07:23:41.817Z","1.19.0":"2026-07-06T11:02:17.448Z","1.19.1":"2026-07-07T14:47:45.352Z","1.19.2":"2026-07-08T08:30:56.621Z","1.19.3":"2026-08-03T06:16:12.762Z"},"author":{"name":"Astral.Soft"},"license":"MIT","repository":{"type":"git","url":"https://git.astralnalog.ru/frontend.shared/mobx-query"},"description":"Библиотека для кеширования запросов.","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"readme":"# @astral/mobx-query\n\nБиблиотека для кеширования запросов.\n\nОсобенности:\n- ⚡️️️️ Реактивный кэш на основе [mobx](https://mobx.js.org/)\n- ️️️️️️⚡️️️️ Вдохновлено [@tanstack/react-query](https://www.npmjs.com/package/@tanstack/react-query/)\n- ⚡️️️️ Декларативный способ описания queries и mutations\n- ⚡️️️️ Реализация архитектурного подхода работы с данными [Astral Architecture Guide](https://guides.frontend.cloud.astral-dev.ru/docs/arch/intro)\n- ⚡️️️️ Фоновая подгрузка данных для работы с WebSocket\n- ⚡️️️️ Возможность тестирования\n\n\n## Table of contents\n\n- [Installation](#installation)\n  - [Basic usage](#basic-usage)\n  - [Core concepts](#core-concepts)\n  - [QuerySet](#queryset)\n    - [Создание QuerySet](#создание-queryset)\n    - [Использование QuerySet](#использование-queryset)\n    - [Синхронный вызов запроса данных](#синхронный-вызов-запроса-данных)\n    - [Асинхронный вызов запроса данных](#асинхронный-вызов-запроса-данных)\n    - [Автоматический запрос данных](#автоматический-запрос-данных)\n  - [InfiniteQuerySet](#infinitequerygroups)\n    - [Создание InfiniteQuerySet](#создание-infinitequerygroups)\n    - [Использование InfiniteQuerySet](#использование-infinitequerygroups)\n    - [Загрузка данных](#загрузка-данных)\n    - [Статус дозагрузки fetchMore](#статус-дозагрузки-fetchmore)\n    - [Старт не с начала списка](#старт-не-с-начала-списка)\n    - [Запоминание последней успешной позиции](#запоминание-последней-успешной-позиции)\n    - [Обратная дозагрузка данных](#обратная-дозагрузка-данных)\n    - [Курсорная пагинация](#курсорная-пагинация)\n    - [isEndReached. Определение конца списка](#isendreached-определение-конца-списка)\n    - [isStartReached. Определение начала списка](#isstartreached-определение-начала-списка)\n    - [Изменение количества запрашиваемых записей](#изменение-количества-запрашиваемых-записей)\n  - [MutationSet](#mutationset)\n    - [Создание mutations](#создание-и-использование-mutations)\n    - [Синхронный вызов mutation](#синхронный-вызов-mutation)\n    - [Асинхронный вызов mutation](#асинхронный-вызов-mutation)\n    - [Best practices для MutationSet](#best-practices-для-mutationset)\n  - [Кэширование QuerySet и InfiniteQuerySet](#кэширование-queryset-и-infinitequeryset)\n    - [FetchPolicy](#fetchpolicy)\n    - [Как работает кэш](#как-работает-кэш)\n    - [Инвалидация кэша QuerySet](#инвалидация-кэша-queryset)\n    - [Кастомная установка ключей кэширования](#кастомная-установка-ключей-кэширования)\n  - [Фоновая загрузка данных QuerySet и InfiniteQuerySet](#фоновая-загрузка-данных-queryset-и-infinitequeryset)\n  - [Изменение кэша QuerySet и InfiniteQuerySet](#изменение-кэша-queryset-и-infinitequeryset)\n  - [Тестирование](#тестирование)\n- [Core](#core)\n\n## Installation\n\n```bash\nnpm install @astral/mobx-query --save\n```\n\n```bash\nyarn add @astral/mobx-query\n```\n\n## Basic usage\n\n```\n├── api/ \n|    ├── _fakers/\n|    ├── endpoints/\n|    ├── fetchers/\n|    |    ├── docs.ts\n|    |    └── index.ts\n|    ├── services/\n|    |    ├── CacheService/\n|    |    |    ├── CacheService.ts\n|    |    |    └── index.ts\n|    |    └── index.ts\n|    └── index.ts                         \n```\n\nИнициализация MobxQuery:\n```api/services/CacheService/CacheService.ts```\n```ts\nimport { MobxQuery } from '@astral/mobx-query';\n\n// рекомендуется явно задавать параметры для MobXQuery\nexport const createCacheService = () =>\n  new MobxQuery({ enableAutoFetch: true, fetchPolicy: 'cache-first' });\n\nexport const cacheService = createCacheService();\n```\n\nОпределение fetcher и cacheGroups для docs:\n```api/services/Fetcher/docs.ts```\n```ts\nconst docsFetcher = {\n  queries: {\n    doc: cacheService.createQuerySet((id: string) => ({\n      execute: () => docsEndpoints.getDoc(id).then(({ data }) => data),\n    })),\n  },\n  infiniteQueries: {\n    docList: cacheService.createInfiniteQuerySet(\n      (filters: Omit<DocsDTO.DocListFilters, 'offset' | 'count'>) => ({\n        execute: ({ offset, count }) =>\n          docsEndpoint\n            .getDocList({ offset, count, ...filters })\n            .then(({ data }) => data.list),\n      }),\n    ),\n  },\n  mutations: {\n    editDoc: cacheService.createMutationSet(\n      (params: DocsDTO.EditDocInput) => docsEndpoints.editDoc(params),\n    ),\n  },\n};\n\nexport type DocsFetcher = typeof docsFetcher;\n```\n\nИспользование в store:\n\n```ts\nimport { type DocsFetcher } from '@example/api';\n\nclass DocStore {\n  constructor(\n    private readonly _docID: string,\n    private readonly _docsFetcher: DocsFetcher,\n  ) {\n    makeAutoObservable(this, {}, { autoBind: true });\n  }\n\n  private get docQuery() {\n    return this._docsFetcher.queries.doc.create(this.docID);\n  }\n\n  public get docName() {\n    if (!this.docQuery.data) {\n      return '';\n    }\n\n    return `Название документа: ${this.docQuery.data.name}`;\n  }\n\n  public get isLoading() {\n    return this.docQuery.isLoading;\n  }\n  \n  public get status() {\n    return this.docQuery.status;\n  }\n}\n```\n\n```ts\nclass DocManagerStore {\n  constructor(private readonly _docsFetcher: DocsFetcher) {}\n\n  public changeOrg = () => {\n    // инвалидирует все doc query, которые есть в кэше\n    this._docsFetcher.queries.doc.invalidate();\n  };\n}\n```\n\n## Core concepts\n\n[`Query`](#query) предназначен для получения данных. Не должен производить изменения.\n[`QuerySet`](#queryset) - набор queries для данных, получаемых по одной и той же сущности с разными параметрами.\n[`InfiniteQuery`](#infinitequery) предназначен для получения бесконечного списка данных.\n[`Mutation`](#mutation) предназначен для изменения данных на сервере.\n[`MutationSet`](#mutationset) - набор mutations для изменения данных. Необходим для консистенстности api с `QuerySet`.\n\n`QuerySet`, `InfiniteQuerySet` и `MutationSet` создаются через методы MobxQuery:\n- `createQuerySet`\n- `createInfiniteQuerySet`\n- `createMutationSet`\n\n`Query`, `InfiniteQuery` и `Mutation` создаются через методы MobxQuery:\n- `createQuery`\n- `createInfiniteQuery`\n- `createMutation`\n\nРекомендуется использовать именно Set'ы потому что это выскоуровневое api, скрывающее внутри себя сложность работы с кэшем и позволяющее работать с данными более декларативно. Set'ы используют внутри себя `Query`, `InfiniteQuery` и `Mutation`.\n\nМетоды `createQuery`, `createInfiniteQuery` и `createMutation` необходимо использовать для реализации собственных библиотек для работы с данными.\n\n## QuerySet\n\n[`Query`](#query) предназначен для получения данных. Не должен производить изменения.\n`QuerySet` - набор queries для данных, получаемых по одной и той же сущности с разными параметрами.\n\n### Создание QuerySet\n\nВ примере ниже будет создан doc query, который будет получать данные по id документа. После успешного выполнения запроса данные будут закэшированы.\n\n```ts\nconst docsFetcher = {\n  queries: {\n    doc: mobxQuery.createQuerySet((id: string) => ({\n      execute: () => docsEndpoints.getDoc(id).then(({ data }) => data),\n    })),\n  },\n};\n```\n\n### Использование QuerySet\n\nДля получения объекта query необходимо вызвать метод `create`.\nПараметры `create` полностью идентичны параметрам, указанным при определении query:\n```ts\nconst docsFetcher = {\n  queries: {\n    doc: mobxQuery.createQuerySet((id: string) => ({\n      execute: () => docsEndpoints.getDoc(id).then(({ data }) => data),\n    })),\n  },\n};\n\n// create принимает только один параметр - id: string\nconst docQuery = docsFetcher.queries.doc.create('docID');\n```\n\nМетод `create` вернет [объект query](#query-interface), который содержит всю информацию по запросу и методы работы с запросом.\n\n### Синхронный вызов запроса данных\n\nМетод `sync` позволяет синхронно запустить запрос на получение данных:\n```ts\nconst docQuery = docsFetcher.queries.doc.create(docID);\n\n// есть callbacks на обработку success и error\ndocQuery.sync({\n  onSuccess: (data) => {\n    console.log(data);\n  },\n  onError: (error) => {\n    console.log(error);\n  },\n});\n\n// true\ndocQuery.isLoading;\n```\n\n### Асинхронный вызов запроса данных\n\nМетод `async` позволяет асинхронно запустить запрос на получение данных:\n```ts\nconst docQuery = docsFetcher.queries.doc.create(docID);\n\n// передавать параметры запроса не нужно потому что они уже были переданы при вызове init\nconst response = await docQuery.async();\n\ndocQuery.isSuccess; // true\ndocQuery.data; // идентичен response\n```\n\n### Автоматический запрос данных\n\nЕсли MobxQuery был создан с флагом `enableAutoFetch: true`, то данные будут автоматически запрошены при обращении к полю `data`:\n\n```ts\nconst docQuery = docsFetcher.queries.doc.create(docID);\n\ndocQuery.data; // триггер запроса данных\n\ndocQuery.isLoading; // true\n```\n\nЕсли MobxQuery был создан с флагом `enableAutoFetch: false`, то автоматически запрос данных можно включить для текущего query:\n```ts\nconst docQuery = docsFetcher.queries.doc.createWithConfig((\n  { enableAutoFetch: true },\n  docID\n);\n\ndocQuery.data; // триггер запроса данных\n\ndocQuery.isLoading; // true\n```\n\n## InfiniteQuerySet\n\n[`InfiniteQuery`](#infinitequery) предназначен для получения бесконечного списка данных.\n`InfiniteQuerySet` - набор InfiniteQuery для данных, получаемых по одной и той же сущности с разными параметрами.\n\n### Создание InfiniteQuerySet\n\nВ примере ниже будет создан docList InfiniteQuerySet. После успешного выполнения запроса данные будут закэшированы.\n\n```ts\nconst docsFetcher = {\n  infiniteQueries: {\n    docList: mobxQuery.createInfiniteQuerySet(\n      (filters: Omit<DocsDTO.DocListFilters, 'offset' | 'count'>) => ({\n        execute: ({ offset, count }) =>\n          docsEndpoint\n            .getDocList({ offset, count, ...filters })\n            .then(({ data }) => data.list),\n      }),\n    ),\n  },\n};\n```\n\n### Использование InfiniteQuerySet\n\nДля получения объекта `InfiniteQuery` необходимо вызвать метод `create`.\nПараметры `create` полностью идентичны параметрам, указанным при определении InfiniteQuery:\n```ts\nconst docsFetcher = {\n  infiniteQueries: {\n    docList: mobxQuery.createInfiniteQuerySet(\n      // Omit необходим для того, чтобы не передавать offset и count при вызове запроса из логики. Offset и count будут сформированы и переданы автоматически\n      (filters: Omit<DocsDTO.DocListFilters, 'offset' | 'count'>) => ({\n        execute: ({ offset, count }) =>\n          docsEndpoint\n            .getDocList({ offset, count, ...filters })\n            // fetch должен возвращать array\n            .then(({ data }) => data.list),\n      }),\n    ),\n  },\n};\n\n// первым параметром create является - filters: Omit<DocsDTO.DocListFilters, 'offset' | 'count'>\nconst docListQuery = docsFetcher.infiniteQueries.docList.create({ search: 'test' });\n```\n\n### Загрузка данных\n\n```ts\nimport { when } from 'mobx';\n\nconst docListQuery = docsFetcher.infiniteQueries.docList.create({ search: 'test' });\n\nawait docListQuery.async(); // запрос на получение первых 30 записей\n\ndocListQuery.data.length; // 30 записей\n\ndocListQuery.fetchMore(); // запрос на получение следующих 30 записей\n\n// ждем загрузки\nawait when(() => !query.isLoading);\n\ndocListQuery.data.length; // 60 записей\n```\n\n#### Статус дозагрузки `fetchMore`\n\n`fetchMoreStatus` содержит отдельные статусы дозагрузки следующей страницы. Это позволяет отдельно отслеживать состояние `fetchMore`, не смешивая его с общим статусом `InfiniteQuery`.\n\n```ts\nimport { when } from 'mobx';\n\nconst createDocListInfiniteQuery = (filters: Omit<DocsDTO.DocListFilters, 'offset' | 'count'>) => \n  cacheService.createInfiniteQuery(['docList', filters], \n    (params: { offset: number; count: number }) => docsEndpoints.getDocList({ offset: params.offset, count: params.count, ...filters })\n  );\n\nconst docListQuery = createDocListInfiniteQuery({ search: 'test' });\n\nawait docListQuery.async();\n\ndocListQuery.fetchMore();\n\ndocListQuery.fetchMoreStatus.isLoading; // true\ndocListQuery.fetchMoreStatus.isSuccess; // false\ndocListQuery.fetchMoreStatus.isError; // false\n\nawait when(() => !docListQuery.fetchMoreStatus.isLoading);\n\ndocListQuery.fetchMoreStatus.isLoading; // false\ndocListQuery.fetchMoreStatus.isSuccess; // true\ndocListQuery.fetchMoreStatus.error; // undefined\n```\n\nЕсли `fetchMore` завершится ошибкой, `fetchMoreStatus.isError` станет `true`, а `fetchMoreStatus.error` будет содержать ошибку. Значение `offset` будет возвращено к предыдущему успешному состоянию, поэтому повторный вызов `fetchMore` повторит запрос той же страницы.\n\n### Старт не с начала списка\n\nДля сценариев восстановления позиции списка можно передать `initialOffset` или `initialCursor`.\nЭти значения используются только для самого первого запроса нового инстанса `InfiniteQuery`.\nПосле `invalidate()` следующий запрос снова начнется с начала списка.\n\nЭто полезно, когда нужно восстановить список с определенной позиции, например после возврата на страницу в SPA или при открытии ссылки, в которой уже закодирована нужная точка входа в список.\n\n#### Offset-пагинация\n\nЕсли API использует смещение, передайте `initialOffset`.\n\n```ts\nconst docListQuery = docsFetcher.infiniteQueries.docList.createWithConfig(\n  {\n    initialOffset: 120,\n  },\n  { search: 'test' },\n);\n\nawait docListQuery.async(); // первый запрос будет выполнен с offset=120\n\ndocListQuery.invalidate();\nawait docListQuery.async(); // после invalidate запрос снова начнется с offset=0\n```\n\n#### Курсорная пагинация\n\nЕсли API использует курсор, передайте `initialCursor`.\n\n```ts\nconst docListQuery = docsFetcher.infiniteQueries.docList.createWithConfig(\n  {\n    initialCursor: { id: 'doc-120' },\n  },\n  { search: 'test' },\n);\n\nawait docListQuery.async(); // первый запрос будет выполнен с cursor={ id: 'doc-120' }\n\ndocListQuery.invalidate();\nawait docListQuery.async(); // после invalidate запрос снова начнется без курсора\n```\n\n### Запоминание последней успешной позиции\n\n```ts\nawait docListQuery.async(); // запрос на получение первых 30 записей\n\ndocListQuery.fetchMore({\n  onSuccess: ({ offset, cursor }) => {\n    savedOffset = offset; // запоминаем offset последней успешной дозагрузки\n    savedCursor = cursor; // запоминаем cursor последней успешной дозагрузки\n  },\n});\n\ndocsFetcher.infiniteQueries.docList.createWithConfig(\n  { search: 'test' },\n  {\n    initialOffset: savedOffset,\n    initialCursor: savedCursor,\n  },\n); // новый инстанс продолжит загрузку с сохраненной позиции\n```\n\n```ts\nconst searchParams = new URLSearchParams(window.location.search);\n\nawait docListQuery.async();\n\ndocListQuery.fetchMore({\n  onSuccess: ({ offset, cursor }) => {\n    searchParams.set('offset', String(offset));\n    searchParams.set('cursorId', cursor.id);\n\n    window.history.replaceState(\n      null,\n      '',\n      `?${searchParams.toString()}`,\n    );\n  },\n});\n\nconst restoredQuery = docsFetcher.infiniteQueries.docList.createWithConfig(\n  {\n    initialOffset: Number(searchParams.get('offset') ?? 0),\n    initialCursor: searchParams.get('cursorId')\n      ? { id: searchParams.get('cursorId')! }\n      : undefined,\n  },\n  { search: 'test' },\n);\n```\n\n### Обратная дозагрузка данных\n\nПо умолчанию `fetchMore()` загружает следующую страницу и добавляет ее в конец списка.\nВызов `fetchMore({ direction: 'backward' })` загружает предыдущую страницу и добавляет ее в начало списка.\n\n```ts\nconst docListQuery = docsFetcher.infiniteQueries.docList.createWithConfig(\n  { initialOffset: 60 },\n  { search: 'test' },\n);\n\nawait docListQuery.async(); // будут загружены записи начиная с offset=60\n\ndocListQuery.fetchMore({ direction: 'backward' }); // будет запрошена предыдущая страница\n```\n\nПри `fetchMore({ direction: 'backward' })` библиотека уменьшает `offset`, передает в `execute` первый элемент текущего списка как `cursor` и указывает `direction: 'backward'`.\n\n### Курсорная пагинация\n\n```ts\ntype Doc = {\n  id: string;\n  title: string;\n};\n\nconst docsFetcher = {\n  infiniteQueries: {\n    docList: mobxQuery.createInfiniteQuerySet(\n      (filters: Omit<DocsDTO.DocListFilters, 'count'>) => ({\n        execute: ({ count, cursor, direction }) =>\n          docsEndpoint\n            .getDocList({\n              count,\n              cursorId: cursor?.id,\n              direction,\n              ...filters,\n            })\n            .then(({ data }) => data.list as Doc[]),\n      }),\n    ),\n  },\n};\n\nconst docListQuery = docsFetcher.infiniteQueries.docList.createWithConfig(\n  { initialCursor: { id: 'doc-120' } },\n  { search: 'test' },\n);\n\nawait docListQuery.async(); // при первом запросе execute получит initialCursor, если он задан\n\ndocListQuery.fetchMore(); // execute получит последний элемент списка и direction: 'forward'\n\ndocListQuery.fetchMore({ direction: 'backward' }); // execute получит первый элемент списка и direction: 'backward'\n```\n\nВо всех остальных запросах `cursor` будет `undefined`, включая первый запрос без `initialCursor` и повторный запрос после `invalidate()`.\n\n### `isEndReached`. Определение конца списка\n\nФлаг `isEndReached` будет установлен в `true`, если записи для загрузки закончились:\n```ts\nimport { when } from 'mobx';\n\nconst docListQuery = docsFetcher.infiniteQueries.docList.create({ search: 'test' });\n\nawait docListQuery.async(); // запрос на получение первых 30 записей\n\ndocListQuery.data.length; // 30 записей\n\ndocListQuery.fetchMore(); // запрос на получение следующих 30 записей\n\n// ждем загрузки\nawait when(() => !query.isLoading);\n\ndocListQuery.data.length; // 19 записей. Последняя страница содержит 9 записей, а не 30, как было запрошено, значит больше данных нет\n\ndocListQuery.isEndReached; // true\n```\n\nФлаг `isEndReached` устанавливается в `true`, когда количество полученных элементов меньше запрошенного количества, что означает отсутствие дополнительных данных на сервере.\n\n### `isStartReached`. Определение начала списка\n\nФлаг `isStartReached` будет установлен в `true`, если при `fetchMore({ direction: 'backward' })` сервер вернул меньше элементов, чем было запрошено.\nЭто означает, что более ранних данных больше нет, и повторные вызовы `fetchMore({ direction: 'backward' })` не будут запускать новые запросы.\n\n### Изменение количества запрашиваемых записей\n\nДля изменения конфигурации InfiniteQuery необходимо использовать метод `createWithConfig`:\n```ts\nconst docListQuery = docsFetcher.infiniteQueries.docList.createWithConfig(\n  { incrementCount: 10, enabledAutoFetch: true },\n  { search: 'test' },\n);\n```\n\n[Интерфейс `InfiniteQueryConfig`](#интерфейс-infinitequeryconfig).\n\n## MutationSet\n\n[`Mutation`](#mutation) предназначен для отправки данных на сервер.\n`MutationSet` - набор mutations, изменяющих одну и ту же сущность. Предоставляет интерфейс, идентичный `QuerySet`, для консистенстности api.\n\n### Создание и использование MutationSet\n\nВ примере ниже будет создан `editDoc` mutation, который отправляет данные на сервер для редактирования документа:\n```ts\nconst docsFetcher = {\n  mutations: {\n    editDoc: mobxQuery.createMutationSet((params: DocsDTO.EditDocInput) => docsEndpoints.editDoc(params)),\n  },\n};\n\nconst editDocMutation = docsFetcher.mutations.editDoc.create();\n\n// params являются параметрами, указанными при определении mutation - DocsDTO.EditDocInput\nawait editDocMutation.async({ params: { id: 'docID', name: 'test' } });\n```\n\nМетод `create` вернет [объект mutation](#интерфейс-mutation), который содержит всю информацию по запросу и методы работы с запросом.\n\n### Синхронный вызов mutation\n\nМетод `sync` позволяет синхронно запустить запрос:\n```ts\nconst editDocMutation = docsFetcher.mutations.editDoc.create();\n\n// есть callbacks на обработку success и error\neditDocMutation.sync({\n  params: { id: 'docID', name: 'test' },\n  onSuccess: (data) => {\n    console.log(data);\n  },\n  onError: (error) => {\n    console.log(error);\n  },\n});\n\n// true\neditDocMutation.isLoading;\n```\n\n### Асинхронный вызов mutation\n\nМетод `async` позволяет асинхронно запустить запрос:\n```ts\nconst editDocMutation = docsFetcher.mutations.editDoc.create();\n\nawait editDocMutation.async({ params: { id: 'docID', name: 'test' } });\n```\n\n### Best practices для MutationSet\n\n#### `Mutation` должен создаваться в конструкторе класса, а не в getter\n\n**✅ Valid**\n\n```ts\nclass DocStore {\n  private readonly creationDocMutation;\n\n  public constructor(\n    private readonly _docsFetcher: DocsFetcher,\n  ) {\n    this.creationDocMutation = this._docsFetcher.mutations.createDoc.create();\n  }\n}\n```\n\n**❌ Invalid**\n\n```ts\nclass DocStore {\n  private get creationDocMutation() {\n    return this._docsFetcher.mutations.createDoc.create();\n  }\n}\n```\n\nОписанный кейс является антипаттерном потому что если на `creationDocMutation` больше не будет подписчиков, то при следующем обращении getter заново создаст `mutation`. Это может привести к нежелательным побочным эффектам.\n\n## Кэширование QuerySet и InfiniteQuerySet\n\n`QuerySet` и `InfiniteQuerySet` позволяет закэшировать данные, которые были получены ранее.\n\n### FetchPolicy\n\n`FetchPolicy` определяет политику получения данных.\n\nСуществует два типа политики:\n- `cache-first` - если в кэше есть данные, они будут возвращены, если нет, то данные будут получены из сети, после чего ответ будет записан в кэш\n- `network-only` - данные всегда берутся из сети, при этом ответ записывается в кэш\n\n#### Глобальная установка fetchPolicy\n\nДля глобальной установки конкретной политики fetchPolicy необходимо передать параметр `fetchPolicy` при создании `MobxQuery`:\n```ts\nimport { MobxQuery } from 'mobx-query';\n\nexport const createQuery = () => new MobxQuery({ fetchPolicy: 'cache-first' });\n```\n\n#### Локальная установка fetchPolicy\n\nДля каждого отдельного query можно установить свою fetchPolicy при инициализации.\n\nПример для `Query`:\n```ts\nconst docQuery = docsFetcher.queries.doc.createWithConfig(({ fetchPolicy: 'network-only' }, 'docID');\n```\n\nПример для `InfiniteQuery`:\n```ts\nconst docListQuery = docsFetcher.infiniteQueries.docList.createWithConfig(\n  { incrementCount: 10, fetchPolicy: 'network-only' },\n  { search: 'test' },\n);\n```\n\n#### Принцип работы fetchPolicy\n\n`cache-first`:\n```ts\nconst docQuery = docsFetcher.queries.doc.createWithConfig(({ fetchPolicy: 'cache-first' }, 'docID');\n\nawait docQuery.async(); // запрос будет выполнен потому что до этого запроса с такими параметрами не было\n\nawait docQuery.async(); // запрос не будет выполнен потому что данные уже есть в кэше. Promise будет завершен сразу\n```\n\n`network-only`:\n```ts\nconst docQuery = docsFetcher.queries.doc.createWithConfig(({ fetchPolicy: 'network-only' }, 'docID');\n\nawait docQuery.async(); // запрос будет выполнен\nawait docQuery.async(); // запрос будет выполнен\n\nconst docQueryWithCache = docsFetcher.queries.doc.createWithConfig(({ fetchPolicy: 'cache-first' }, 'docID');\n\nawait docQueryWithCache.async(); // запрос не будет выполнен потому что прежде данные были получены с политикой `network-only` и записаны в кэш\n```\n\nДля `InfiniteQuery` параметры `initialOffset` и `initialCursor` позволяют при первом запросе нового инстанса начать загрузку с нужной позиции.\nПосле `invalidate()` эти стартовые значения больше не применяются, и следующий запрос начинается с начала списка.\n\n### Как работает кэш\n\nВсе данные, возвращаемые `QuerySet` и `InfiniteQuerySet`, кэшируются в едином хранилище @astral/mobx-query.\n\nПри первом вызове `create` в хранилище создается запись с ключем, состоящим из:\n- Хэш от функции конфигурации\n- `queryParams`\n\nПример:\n```ts\nconst docFetcher = {\n  queries: {\n    doc: mobxQuery.createQuerySet((id: string, filters: { search: string }) => ({\n      execute: () => docsEndpoints.getDoc(id, filters),\n    })),\n  },\n};\n\n// ключ кэша будет равен \"12fj1d,doc,1,\"{\"search\":\"test\"}\"\"\n// 12fj1d - это хэш от функции конфигурации\nconst docQuery = docFetcher.queries.doc.create('1', { search: 'test' });\n// ключ кэша будет равен \"12fj1d,doc,2,\"{\"search\":\"test2\"}\"\"\nconst docQuery = docsFetcher.queries.doc.create('1', { search: 'test2' });\n```\n\n#### Автоматическая чистка кэша\n\nMobx-query кэш организован через `WeekRef`, поэтому не используемые данные автоматически удаляются сборщиком мусора.\n\n### Инвалидация кэша QuerySet и InfiniteQuerySet\n\nЕсли данные в query стали неактуальными, то необходимо вызвать метод `invalidate`:\n```ts\n// инвалидация всех query с именем `doc`\ndocsFetcher.queries.doc.invalidate();\n```\n\nПосле вызова `invalidate` данные в кэше будут помечены как невалидные и при следующем обращении к query будет выполнен запрос на сервер. Если при вызове метода `invalidate` на изменения `.data` подписан любой store, то произойдет моментальный перезапрос активных query:\n\n```ts\nconst docQuery = docsFetcher.queries.doc.create('docID');\n\nawait docQuery.async(); // данные записаны в кэш\n\ndocsFetcher.queries.doc.invalidate();\n\ndocQuery.data; // триггер запроса данных потому что они были помечены как невалидные\ndocQuery.isLoading; // true\n```\n\n#### Инвалидация всех query по их имени\n\nДля инвалидации всех query по их имени можно вызвать метод `invalidate`:\n```ts\nconst docQuery1 = docsFetcher.queries.doc.create('1');\nconst docQuery2 = docsFetcher.queries.doc.create('2');\n\ndocsFetcher.queries.doc.invalidate(); // данные docQuery1 и docQuery2 помечены как невалидные\n```\n\n#### Инвалидация query по частичному совпадению параметров\n\nЕсли необходимо инвалидировать данные по конкретным параметрам, то их необходимо передать в метод `invalidate`:\n```ts\nconst docsFetcher = {\n  queries: {\n    doc: mobxQuery.createQuerySet((id: string) => ({\n      execute: () => docsEndpoints.getDoc(id).then(({ data }) => data),\n    })),\n  },\n};\n\ndocsFetcher.queries.doc.invalidate('1'); // документ с id = 1 будет помечен как невалидный\n```\n\nПараметры `invalidate` полностью совпадают с параметрами, описанными при определении query:\n\n```ts\nconst docsFetcher = {\n  queries: {\n    doc: mobxQuery.createQuerySet((id: string, search: string, filters: Filters) => ({\n      execute: () => docsEndpoints.getDoc(id, search, filters),\n    })),\n  },\n};\n\ndocsFetcher.queries.doc.invalidate('1', 'test', { sort: 'asc' });\n```\n\n#### Инвалидация query по частичному совпадению параметра-объекта\n\n```ts\nconst docsFetcher = {\n  queries: {\n    doc: mobxQuery.createQuerySet((id: string, filters: { sort: string; search: string }) => ({\n      execute: () => docsEndpoints.getDoc(id, filters),\n    })),\n  },\n};\n\nconst query1 = docsFetcher.queries.doc.create('1', { sort: 'asc', search: 'test' });\nconst query2 = docsFetcher.queries.doc.create('1', { sort: 'desc', search: 'test' });\n\ndocsFetcher.queries.doc.invalidate('1', { sort: 'asc' }); // данные только query1 будут помечены как невалидные\n```\n\n### Кастомная установка ключей кэширования\n\nПри определении `QuerySet` и `InfiniteQuerySet` можно указать параметр `keys` и `name`, которые будут использоваться для формирования ключей кэша.\n- `name` - название набора. Будет использоваться вместо хэша от функции конфигурации\n- `keys` - будут использоваться вместо параметров функции конфигурации\n\n```ts\nconst docsFetcher = {\n  queries: {\n    doc: mobxQuery.createQuerySet(\n      (id: string, search: string) => ({\n        keys: [id],\n        execute: () => docsEndpoints.getDoc(id, search),\n      }),\n      { name: 'doc' }\n    ),\n  },\n};\n\n// ключ кэша будет равен \"doc,1\"\nconst query = docsFetcher.queries.doc.create('1', 'test');\n\ndocsFetcher.queries.doc.invalidate('1'); // данные query будут помечены как невалидные\ndocsFetcher.queries.doc.invalidate('1', 'test'); // второй параметр будет проигнорирован\n```\n\n## Фоновая загрузка данных QuerySet и InfiniteQuerySet\n\nДля фонового обновления данных возможно использовать флаг `isBackground` для query и infiniteQuery.\nДанный метод хорошо подходит для инвалидации данных по событиям из WebSocket.\n\nПример для `QuerySet`:\n```ts\nconst docQuery = docsFetcher.queries.doc.createWithConfig(({ isBackground: true }, 'docID');\n\ndocQuery.sync(); // запрос будет выполнен в фоновом режиме\n\ndocQuery.isLoading; // true. Первый запрос изменит статусные флаги\n\nawait when(() => docQuery.isSuccess);\n\ndocsFetcher.queries.doc.invalidate();\n\ndocQuery.isLoading; // false. При этом запрос данных уже выполняется в фоновом режиме, если где-то есть подписчик на изменения `.data`\ndocQuery.background.isLoading; // true\n```\n\n## Изменение кэша QuerySet и InfiniteQuerySet\n\nДля изменения данных в кэше необходимо использовать `forceUpdate`, содержащийся в query:\n```ts\nconst docQuery = docsFetcher.queries.doc.create('docID');\n\n// в кэше будет записано \"{ name: 'test' }\", а статустные флаги перейдут в состояние 'success'\ndocQuery.forceUpdate({ name: 'test' });\n```\n\nДля массового изменения требуется использовать метод `forceUpdate` предоставляемый `QuerySet` или `InfiniteQuerySet`.\nПервым аргументом является метод для анализа, и изменения данных. Начиная со второго, аргументы идентичны тем, что вы используете при созданнии и инвалидации.\n\n```ts\nconst queryA = docsFetcher.queries.docsList.create(userId);\nconst queryB = docsFetcher.queries.docsList.create(userId, { isDesc: true });\n\ndocsFetcher.queries.docsList.forceUpdate(\n  (currentData = []) => [...currentData, 'дополнительный элемент'], userId\n);\nconsole.log(queryA.data); // ['дополнительный элемент']\nconsole.log(queryB.data); // ['дополнительный элемент']\n```\n\n## Синхронизация данных между вкладками\n\nДля синхронизации данных между вкладками необходимо воспользоваться флагом `enabledSynchronization` при создании MobxQuery.\nТогда все query с совпадающими ключами на разных вкладках будут одновременно изменять свои данные\n\n```ts\nnew MobxQuery({\n  enabledSynchronization: true,\n});\n```\n\nДля точечного управления синхронизацией, можно передавать флаг `enabledSynchronization` при создании query\n\n```ts\ndocsFetcher.queries.document.createWithConfig({\n  enabledSynchronization: true,\n})\n```\n\n## Последовательное получение данных\n\nДля последовательного получения данных используйте флаг `enabledAutoFetch`.\n\n```ts\n  private get fileQuery() {\n    const fileId = this._documentStore.data?.FileId;\n\n    return this._docsFetcher.queries.file.createWithConfig(\n      {\n        enabledAutoFetch: Boolean(fileId),\n      },\n      fileId,\n    );\n  }\n\n  public get file() {\n    return this.fileQuery.data; // пока enabledAutoFetch==false, запроса данных не будет\n  }\n```\n\n## Тестирование\n\n<!-- llm-section-id: mobx-query:tests -->\n\n### Реализация `mockFetcher` (один раз в проекте)\n\nДля мокинга QuerySet и InfiniteQuerySet необходимо использовать mock следующего вида:\n```ts\ntype Fetcher = {\n  queries: Record<string, QuerySet<any[], any>>;\n  infiniteQueries: Record<InfiniteQuerySet<any[], any>>;\n  mutations: Record<MutationSet<any, any>>;\n};\n\nconst mockFetcher = <TFetcher extends Fetcher>(config: DeepPartial<TFetcher>) => config as TFetcher;\n```\n\n**Не используйте `vitest-mock-extended` для мокинга Fetcher.**\nПричина: `vitest-mock-extended` нарушает работу Mobx.\n\n### 1 тест - 1 mobx-query instance\n\n```ts\nimport { createCacheService } from '#shared/api/services/CacheService';\n\nconst setup = () => {\n  const cache = createCacheService();\n\n  const booksFetcherMock = mockFetcher<BooksFetcher>({\n    queries: {\n      list: cache.createQuerySet(...),\n    },\n  });\n}\n```\n\n### Mock Query, Mutation\n\nДля определения queries, mutations использовать соответствующие методы mobxQuery:\n```ts\nconst booksFetcherMock = mockFetcher<BooksFetcher>({\n  queries: {\n    bookList: cacheService.createQuerySet((filters) => ({\n      execute: async () => fakeBookList,\n    })),\n  },\n  mutations: {\n    createBook: cacheService.createMutationSet(async (book) => undefined),\n  }\n});\n```\n\n### Mock InfiniteQuery\n\nДля определения `InfiniteQueries` использовать `createInfiniteQuerySet`:\n```ts\nconst booksFetcherMock = mockFetcher<BooksFetcher>({\n  infiniteQueries: {\n    bookList: cacheService.createInfiniteQuerySet(\n      (filters) => ({\n        execute: ({ offset, count }) => fakeBookList,\n      }),\n    ),\n  }\n});\n```\n\n### Ожидание|триггер запроса данных при `enabledAutoFetch` (дефолтное поведение)\n\n```ts\nimport { when } from 'mobx';\n\nconst booksFetcherMock = mockFetcher<BooksFetcher>({\n  queries: {\n    bookList: cacheService.createQuerySet((filters) => ({\n      execute: async () => fakeBookList,\n    })),\n  },\n});\n\nconst sut = new Store(booksFetcherMock);\n\n// Обращаемся к data из query -> триггер запроса данных -> ожидаем когда загрузятся данные\nawait when(() => Boolean(sut.data));\n\nexpect(sut.status.isSuccess).toBe(true);\n```\n\n<!-- llm-ignore:enable -->\n\n## Core\n\nКонцепции, описанные ниже являются ядром библиотеки и используются внутри `QuerySet`, `InfiniteQuerySet` и `MutationSet`.\n\n### Query\n\n`Query` позволяет получать данные из API и кешировать их. Query не должны производить изменения.\n\n#### Создание Query\n\nВ примере ниже будет создан doc query, который будет получать данные по id документа. После успешного выполнения запроса данные будут закэшированы.\n\n```ts\nconst createDocQuery = (id: string) => \n  // первый параметр - ключи, по которому в кэше будет храниться ответ запроса\n  cacheService.createQuery(['doc', id], \n    (params: { id: string }) => docsEndpoints.getDoc(params.id)\n  ); \n```\n\n#### Использование Query\n\n```ts\nconst createDocQuery = (id: string) => \n  // первый параметр - ключи, по которому в кэше будет храниться ответ запроса\n  cacheService.createQuery(['doc', id], \n    (params: { id: string }) => docsEndpoints.getDoc(params.id)\n  ); \n\nconst docQuery = createDocQuery('docID');\n```\n\n`docQuery` является объектом, который содержит всю информацию по запросу и методы работы с запросом:\n\n#### Interface Query\n\n```ts\nexport type Query<TResult = unknown, TError = unknown, TIsBackground = boolean> = {\n  /**\n   * Текущие данные запроса\n   */\n  data: TResult | undefined;\n\n  /**\n   * Флаг загрузки\n   */\n  isLoading: boolean;\n\n  /**\n   * Флаг успешного выполнения запроса\n   */\n  isSuccess: boolean;\n\n  /**\n   * Флаг наличия ошибки\n   */\n  isError: boolean;\n\n  /**\n   * Текущая ошибка\n   */\n  error: TError | undefined;\n\n  /**\n   * Флаг, обозначающий простаивание, т.е. запроса еще не было\n   */\n  isIdle: boolean;\n  \n  status: {\n    isLoading: boolean;\n    isSuccess: boolean;\n    isError: boolean;\n    error: TError | undefined;\n    isIdle: boolean;\n  }\n\n  /**\n   * Синхронизирует данные с сервером\n   * @param onSuccess - Callback успешного выполнения\n   * @param onError - Callback ошибки\n   */\n  sync: ({ onSuccess, onError }: SyncParams<TResult, TError>) => void;\n\n  /**\n   * Асинхронный метод получения данных\n   */\n  async: () => Promise<TResult>;\n\n  /**\n   * Метод инвалидации текущего query\n   */\n  invalidate: () => void;\n\n  // Статусы, изменяющиеся после первого успешного запроса в режиме фоновой загрузки isBackground: true\n  background: {\n    /**\n     * Флаг обозначающий загрузку данных в фоновом режиме\n     */\n    isLoading: boolean;\n\n    /**\n     * Флаг обозначающий, что последний запрос был зафейлен в фоновом режиме\n     */\n    isError: boolean;\n\n    /**\n     * Данные о последней ошибке в фоновом режиме\n     */\n    error?: TError;\n\n    /**\n     * Флаг, обозначающий успешность завершения последнего запроса в фоновом режиме\n     */\n    isSuccess: boolean;\n  };\n};\n```\n\n#### Синхронный вызов запроса данных\n\nМетод `sync` позволяет синхронно запустить запрос на получение данных:\n```ts\nconst createDocQuery = (id: string) => \n  // первый параметр - ключи, по которому в кэше будет храниться ответ запроса\n  cacheService.createQuery(['doc', id], \n    (params: { id: string }) => docsEndpoints.getDoc(params.id)\n  ); \n\nconst docQuery = createDocQuery('docID');\n\n// есть callbacks на обработку success и error\ndocQuery.sync({\n  onSuccess: (data) => {\n    console.log(data);\n  },\n  onError: (error) => {\n    console.log(error);\n  },\n});\n\n// true\ndocQuery.isLoading;\n```\n\n#### Асинхронный вызов запроса данных\n\nМетод `async` позволяет асинхронно запустить запрос на получение данных:\n```ts\nconst createDocQuery = (id: string) => \n  // первый параметр - ключи, по которому в кэше будет храниться ответ запроса\n  cacheService.createQuery(['doc', id], \n    (params: { id: string }) => docsEndpoints.getDoc(params.id)\n  ); \n\nconst docQuery = createDocQuery('docID');\n\n// передавать параметры запроса не нужно потому что они уже были переданы при вызове init\nconst response = await docQuery.async();\n\ndocQuery.isSuccess; // true\ndocQuery.data; // идентичен response\n```\n\n#### Автоматический запрос данных\n\nЕсли MobxQuery был создан с флагом `enableAutoFetch: true`, то данные будут автоматически запрошены при обращении к полю `data`:\n```ts\nconst cacheService = new MobxQuery({ enableAutoFetch: true });\n\nconst createDocQuery = (id: string) => \n  // первый параметр - ключи, по которому в кэше будет храниться ответ запроса\n  cacheService.createQuery(['doc', id], \n    (params: { id: string }) => docsEndpoints.getDoc(params.id)\n  ); \n\ndocQuery.data; // триггер запроса данных\n\ndocQuery.isLoading; // true\n```\n\nЕсли MobxQuery был создан с флагом `enableAutoFetch: false`, то автоматически запрос данных можно включить для текущего query:\n```ts\nconst createDocQuery = (id: string) => \n  cacheService.createQuery(['doc', id], \n    (params: { id: string }) => docsEndpoints.getDoc(params.id),\n    { enableAutoFetch: true }\n  ); \n\ndocQuery.data; // триггер запроса данных\n\ndocQuery.isLoading; // true\n```\n\n### InfiniteQuery\n\n`InfiniteQuery` предназначен для получения бесконечного списка данных.\n\n### Создание InfiniteQuery\n\nВ примере ниже будет создан docList InfiniteQuery. После успешного выполнения запроса данные будут закэшированы.\n\n```ts\nconst createDocListInfiniteQuery = (filters: Omit<DocsDTO.DocListFilters, 'offset' | 'count'>) => \n  cacheService.createInfiniteQuery(['docList', filters], \n    (params: { offset: number; count: number }) => docsEndpoints.getDocList({ offset: params.offset, count: params.count, ...filters })\n  );\n```\n\n#### Использование InfiniteQuery\n\n```ts\nconst createDocListInfiniteQuery = (filters: Omit<DocsDTO.DocListFilters, 'offset' | 'count'>) => \n  cacheService.createInfiniteQuery(['docList', filters], \n    (params: { offset: number; count: number }) => docsEndpoints.getDocList({ offset: params.offset, count: params.count, ...filters })\n  );\n\n// первым параметром create является - filters: Omit<DocsDTO.DocListFilters, 'offset' | 'count'>\nconst docListQuery = createDocListInfiniteQuery({ search: 'test' });\n```\n\nExecutor `InfiniteQuery` получает объект `{ offset, count, cursor, direction }`.\nЕсли нужна только offset-пагинация, можно использовать только `offset` и `count`.\n`cursor` передается только при `fetchMore()` или при самом первом запросе, если задан `initialCursor`. В обычном первом запросе без `initialCursor` и после `invalidate()` значение `cursor` будет `undefined`.\n\n#### Загрузка данных\n\n```ts\nimport { when } from 'mobx';\n\nconst createDocListInfiniteQuery = (filters: Omit<DocsDTO.DocListFilters, 'offset' | 'count'>) => \n  cacheService.createInfiniteQuery(['docList', filters], \n    (params: { offset: number; count: number }) => docsEndpoints.getDocList({ offset: params.offset, count: params.count, ...filters })\n  );\n\nconst docListQuery = createDocListInfiniteQuery({ search: 'test' });\n\nawait docListQuery.async(); // запрос на получение первых 30 записей\n\ndocListQuery.data.length; // 30 записей\n\ndocListQuery.fetchMore(); // запрос на получение следующих 30 записей\n\n// ждем загрузки\nawait when(() => !query.isLoading);\n\ndocListQuery.data.length; // 60 записей\n```\n\n#### Статус дозагрузки `fetchMore`\n\n- [Статус дозагрузки fetchMore](#статус-дозагрузки-fetchmore)\n\n#### Дополнительные возможности\n\n- [Старт не с начала списка](#старт-не-с-начала-списка)\n- [Запоминание последней успешной позиции](#запоминание-последней-успешной-позиции)\n- [Обратная дозагрузка данных](#обратная-дозагрузка-данных)\n- [Курсорная пагинация](#курсорная-пагинация)\n\n#### `isEndReached`. Определение конца списка\n\nФлаг `isEndReached` будет установлен в `true`, если записи для загрузки закончились:\n```ts\nimport { when } from 'mobx';\n\nconst createDocListInfiniteQuery = (filters: Omit<DocsDTO.DocListFilters, 'offset' | 'count'>) => \n  cacheService.createInfiniteQuery(['docList', filters], \n    (params: { offset: number; count: number }) => docsEndpoints.getDocList({ offset: params.offset, count: params.count, ...filters })\n  );\n\nconst docListQuery = createDocListInfiniteQuery({ search: 'test' });\n\nawait docListQuery.async(); // запрос на получение первых 30 записей\n\ndocListQuery.data.length; // 30 записей\n\ndocListQuery.fetchMore(); // запрос на получение следующих 30 записей\n\n// ждем загрузки\nawait when(() => !query.isLoading);\n\ndocListQuery.data.length; // 19 записей. Последняя страница содержит 9 записей, а не 30, как было запрошено, значит больше данных нет\n\ndocListQuery.isEndReached; // true\n```\n\nФлаг `isEndReached` устанавливается в `true`, когда количество полученных элементов меньше запрошенного количества, что означает отсутствие дополнительных данных на сервере.\n\n#### `isStartReached`. Определение начала списка\n\n- [isStartReached. Определение начала списка](#isstartreached-определение-начала-списка)\n\n#### Изменение количества запрашиваемых записей\n\nДля изменения конфигурации InfiniteQuery необходимо использовать третий параметр `config`:\n```ts\nconst createDocListInfiniteQuery = (filters: Omit<DocsDTO.DocListFilters, 'offset' | 'count'>) => \n  cacheService.createInfiniteQuery(['docList', filters], \n    (params: { offset: number; count: number }) => docsEndpoints.getDocList({ offset: params.offset, count: params.count, ...filters }),\n    { incrementCount: 10 }\n  );\n```\n\n#### Интерфейс InfiniteQueryConfig\n```ts\nexport type InfiniteQueryConfig<TResult = unknown> = {\n  /**\n   * Количество записей, которое будет загружено при первом и следующих запросах\n   * @default 30\n   */\n  incrementCount?: number;\n  /**\n   * Обработчик ошибки\n   */\n  onError?: (error: unknown) => void;\n  /**\n   * Флаг, отвечающий за автоматический запрос данных при обращении к полю data\n   */\n  enabledAutoFetch?: boolean;\n  /**\n   * Политика кэширования данных.\n   */\n  fetchPolicy?: FetchPolicy;\n  /**\n   * Стартовое значение offset, от которого требуется сделать самый первый запрос.\n   * @default 0\n   */\n  initialOffset?: number;\n  /**\n   * Стартовый элемент, от которого требуется сделать самый первый запрос.\n   */\n  initialCursor?: Partial<TResult>;\n  /**\n   * Режим фонового обновления\n   * @default false\n   */\n  isBackground?: boolean;\n};\n```\n\n### Переодическая инвалидация (Поллинг)\n\nДля обеспечения автоматической инвалидации данных по указанному времени используйте настройку `pollingTime` при создании query.\nЗначение необходимо указывать в милисекундах.\n\n```ts\nconst TEN_MINUTES = 10 * 60 * 1000;\n\ndocsfetcher.queries.document.createWithConfig(\n  {\n    pollingTime: TEN_MINUTES,\n  },\n  documenId,\n);\n\ndocsfetcher.infiniteQueries.list.createWithConfig(\n  {\n    pollingTime: TEN_MINUTES,\n  },\n);\n```\n\n### Mutation\n\n`Mutation` предназначен для отправки данных на сервер с целью произведения изменений.\n\n### Создание и использование mutations\n\nВ примере ниже будет создан `editDoc` mutation, который отправляет данные на сервер для редактирования документа:\n```ts\nconst createEditDocMutation = (params: DocsDTO.EditDocInput) => \n  cacheService.createMutation((params: DocsDTO.EditDocInput) => docsEndpoints.editDoc(params));\n\nconst editDocMutation = createEditDocMutation();\n\n// params являются параметрами, указанными при определении mutation - DocsDTO.EditDocInput\nawait editDocMutation.async({ params: { id: 'docID', name: 'test' } });\n```\n\n#### Интерфейс Mutation\n\n```ts\ntype Mutation<TResult, TError = unknown, TExecutorParams = void> = {\n  /**\n   * Синхронный метод выполнения мутации\n   */\n  sync: (options: {\n    onSuccess?: (res: TResult) => void;\n    onError?: (e: TError) => void;\n    params?: TExecutorParams;\n  }) => void;\n\n  /**\n   * Асинхронный метод выполнения мутации\n   */\n  async: (params: TExecutorParams) => Promise<TResult>;\n\n  /**\n   * Флаг загрузки\n   */\n  isLoading: boolean;\n\n  /**\n   * Флаг успешного выполнения запроса\n   */\n  isSuccess: boolean;\n\n  /**\n   * Флаг наличия ошибки\n   */\n  isError: boolean;\n\n  /**\n   * Текущая ошибка\n   */\n  error: TError | null;\n\n  /**\n   * Флаг, обозначающий простаивание, т.е. запроса еще не было\n   */\n  isIdle: boolean;\n\n  // Статусы, изменяющиеся после первого успешного запроса в режиме фоновой загрузки isBackground: true\n  background: {\n    /**\n     * Флаг обозначающий загрузку данных в фоновом режиме\n     */\n    isLoading: boolean;\n\n    /**\n     * Флаг обозначающий, что последний запрос был зафейлен в фоновом режиме\n     */\n    isError: boolean;\n\n    /**\n     * Данные о последней ошибке в фоновом режиме\n     */\n    error?: TError;\n\n    /**\n     * Флаг, обозначающий успешность завершения последнего запроса в фоновом режиме\n     */\n    isSuccess: boolean;\n  };\n};\n```\n\n#### Синхронный вызов mutation\n\nМетод `sync` позволяет синхронно запустить запрос:\n```ts\nconst createEditDocMutation = (params: DocsDTO.EditDocInput) => \n  cacheService.createMutation((params: DocsDTO.EditDocInput) => docsEndpoints.editDoc(params));\n\nconst editDocMutation = createEditDocMutation();\n\n// есть callbacks на обработку success и error\neditDocMutation.sync({\n  params: { id: 'docID', name: 'test' },\n  onSuccess: (data) => {\n    console.log(data);\n  },\n  onError: (error) => {\n    console.log(error);\n  },\n});\n\n// true\neditDocMutation.isLoading;\n```\n\n##### Асинхронный вызов mutation\n\nМетод `async` позволяет асинхронно запустить запрос:\n```ts\nconst createEditDocMutation = (params: DocsDTO.EditDocInput) => \n  cacheService.createMutation((params: DocsDTO.EditDocInput) => docsEndpoints.editDoc(params));\n\nconst editDocMutation = createEditDocMutation();\n\nawait editDocMutation.async({ params: { id: 'docID', name: 'test' } });\n```\n\n### Особенности инвалидации Queries\n\nКак при создании query, так и при инвалидации, нужно использовать массив ключей. Предполагается, что query может быть инвалидирован по нескольким ключам.\n\n```ts\nconst query = mobxQuery.createQuery(\n  ['key one', 'key two'], // ключ - массив строк\n  () => Promise.resolve('foo'),\n  { enabledAutoFetch: true }\n);\n\nmobxQuery.invalidate(['key two']); // query будет инвалидирован\nmobxQuery.invalidate(['key one']); // query будет инвалидирован\n```\n\nНо, стоит учитывать, что ключом является цельный элемент массива, а не составляющие элемента.\n```ts\nconst query = mobxQuery.createQuery(\n  [['key one', 'key two']], // ключ - двумерный массив строк\n  () => Promise.resolve('foo'),\n  { enabledAutoFetch: true }\n);\n\nmobxQuery.invalidate(['key one']); // ключ не совпадает, query НЕ будет инвалидирован\n```\n\nИнвалидация будет происходить только для query, поле data которых считывается в данный момент. Для query, data которых будут отрендерены позже, запрос произойдет только в момент использования. Для превентивного обновления данных потребуется последовательное использование sync/async методов сразу после invalidate.\n\n### Массовая инвалидация\n\nДля инвалидации всех query необходимо использовать метод `invalidateQueries`:\n```ts\nmobxQuery.invalidateQueries();\n```\n\n### Изменение кэша\n\nДля изменения данных в кэше необходимо использовать `forceUpdate`, содержащийся в query:\n```ts\nconst query = mobxQuery.createQuery(['key'], () => Promise.resolve('1'));\n\n// в кэше будет записано '2', а статустные флаги перейдут в состояние 'success'\nquery.forceUpdate('2');\n```\n","readmeFilename":"README.md"}