{"_id":"@aitianyu.cn/tianyu-store","_rev":"21-6d5ed3a7bcbee2b723f9e4a1b634eb9a","name":"@aitianyu.cn/tianyu-store","dist-tags":{"latest":"0.3.0"},"versions":{"0.0.1":{"name":"@aitianyu.cn/tianyu-store","version":"0.0.1","keywords":[],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.0.1","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/npm-modules#readme","bugs":{"url":"https://github.com/aitianyu-cn/npm-modules/issues"},"dist":{"shasum":"327fa405df7faa05058d840d5d65a938cc30e908","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.0.1.tgz","fileCount":20,"integrity":"sha512-79JmyzEmGPdbEod4kuCKJwLSspBuxWulRPnOIkh5ZsPj5z7JfkbfGusOZxndhG3RBv/xJHJwU17vpMLsJRHnuA==","signatures":[{"sig":"MEQCIB7NJe18pkn3abjqkQ2qHA2ERTh1460t7xGroLdzTGi8AiB1qDA6b7asFvnxCmbcxPbExtgR5YRcK36qO7NtzGDLbA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":46761,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjv9u8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvkA//bdNc8fZ7Mitk8uxV/8nGCqeYmC845R36ROVHybj1xOBZJiji\r\nbapIXxf6MBhL4uDjeKqrqX+wfrPQuk3dFxaJF8T6Ouvy+4UkqFn2y+BZqnUY\r\nyi1gVp8/ZgaI2490mfwOrsEE7TBkmDdLr/WyHBIitVnAH4lPu6U7c+eN0hNs\r\n16OeKAglUs3rTgRQZH/EyKkjab4StoM2K4broqZ7CHm+gVthJK8hg4/Oo+p0\r\ncMvK4cxlCWpSZZ1t07eTCAKifvVc99FTh9WvUZTQiiNNaZYea960Wx8wz5CI\r\n1PYlSp9lndGqftn6wS/PxulGiNHoA3XcCQOgUpI5VZMuOZNR/f3HKc9Mesrb\r\nu2SZUTqLu2XrHBz+EoSEtf/7/ax2z82kREY8x5SQsvngkcjhptxWj52t9pXK\r\nbnvY29lInCAZTbxrgSKPChMFXr3citNE78e2HUgJ1kpIHM/9zfs4MbOhUVPU\r\nlcENPzMElwYJnZVFq3ePfcDL5c+0NTpmWfCSHSHwLF47pzXn+4JtHMm3b64l\r\nMQxqfuN9ExXozlGP/zPG9CPXl3UIIQuBdgoy0sxPy+XGii3BVhQ6+/M/N4GK\r\n2Oow/4yb+VFJxR04zBgFmb9yiDUFOGQEJSxbPOTVUr0y6gZ1CcP7buzqIhz1\r\nC/BOpKfMQMCZw3BISAngHuKZcRqiF7TnS70=\r\n=VTLP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/lib/index.js","type":"commonjs","types":"./dist/types/index.d.ts","exports":{".":"./dist/lib/index.js"},"gitHead":"a25e09928d0ed963f11137c04c69fd6e481f8a98","scripts":{"test":"jest --no-cache --verbose","build":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run after-build","start":"ts-node src/index.ts","compiler":"tsc && tsc-alias","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" \"build/index.js\" dist/lib","test-all":"jest --no-cache --verbose --coverage","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" \"build/index.d.ts\" dist/types","after-build":"rimraf ./build ./dist/types/src/module","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/npm-modules.git","type":"git"},"_npmVersion":"6.14.17","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"14.21.1","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","copyfiles":"^2.4.1","tsc-alias":"^1.8.2","perf_hooks":"0.0.1","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.11.13","jest-html-reporters":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.0.1_1673518012240_0.01725255705058415","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@aitianyu.cn/tianyu-store","version":"0.0.2","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.0.2","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/npm-modules#readme","bugs":{"url":"https://github.com/aitianyu-cn/npm-modules/issues"},"dist":{"shasum":"d8e500525a59b857c415ad0a828ff0160ba0debe","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.0.2.tgz","fileCount":23,"integrity":"sha512-dgxVreCUuC6/6A3kb1F0NDm0rpf74N83gWdacYQ/YKsqQBlnTaPqeK2HeI7nZlOX1yN5zLy+FojYKXwgf8vyAg==","signatures":[{"sig":"MEQCIGobkKsPdz8j95q0yRaElipIBQGs5bljglxCLFTNnkNGAiBdUQOI8ZRxHorNg3GBr1/7OWn7PzK6jUd8/qLc5Uc1yw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":49980,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwOb4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpt3w/9EC7bz+jFRB0vNdvYmJpvQWxSP9qyvjTam/YPLfdiQ1arrJUq\r\nM0S52dIaZAdKrHfsd5mI8ODsGfKLf2ZcWrKSVQJPcUw0HomFSFocB546giUS\r\nC7RAZxESlizruFaSlkJLrlGCPnHr7E18A6QD/eb3Fn3XQ3QTAQsi8gkyNyi4\r\nc8IR27OErZP+SVtqsy5fAJ+sTNdVw5MNNLFuTsno1dFO6wG8AOTcPHT0ZSrw\r\nUeFAtLvcwUh9iKyVkgctEMmnCZ9Aw3N2Fc8dsTpmTmt48CBbpcS8e7MJOzZS\r\nw78fyA0H735Nna/ekJzI8dwmA2ZM07sdekSjVvspbaQ/G4aVBUd/5s58HXsG\r\n36MrtkVWErfDPHrzo5nixVAIppFWCB3k8056XG0xO66eNFDPgT96Y4XBCyI/\r\nFuoISfSCSdN/emPYsSGfQyOrIDxZKmm5AchUiS/kQFQtk9JzowlK0MoqVeUM\r\nV4gkgNlkS8nmwtj+8xJeO68kOC+nuN2AxPdLiDfXCryxgD/vyWHZ+AJqrY6Z\r\nJwrxcXP4ZWPvrHZmeXbIG9M4V6Kc0W0LCLSnOHEaOYARCAfCrtj94uFo/FwC\r\ncaNA8t4pWJ4H7IvvduA7krwY/UHxgVVO4Q1pNaUGIkrcUMv8vqIInXqYikOp\r\ndT6s1Slm3+jl2hkfTR0hNWPqt9X/0jmLfWg=\r\n=slUh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/lib/index.js","type":"commonjs","types":"./dist/types/index.d.ts","exports":{".":"./dist/lib/index.js"},"gitHead":"f561789c22605b9d14c0ba1576aa9c47011d2bbd","scripts":{"test":"jest --no-cache --verbose","build":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run after-build","start":"ts-node src/index.ts","compiler":"tsc && tsc-alias","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" \"build/index.js\" dist/lib","test-all":"jest --no-cache --verbose --coverage","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" \"build/index.d.ts\" dist/types","after-build":"rimraf ./build ./dist/types/src/module","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/npm-modules.git","type":"git"},"_npmVersion":"6.14.17","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"14.21.1","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","copyfiles":"^2.4.1","tsc-alias":"^1.8.2","perf_hooks":"0.0.1","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.11.13","jest-html-reporters":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.0.2_1673586424219_0.1376153239426965","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@aitianyu.cn/tianyu-store","version":"0.0.3","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.0.3","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/npm-modules#readme","bugs":{"url":"https://github.com/aitianyu-cn/npm-modules/issues"},"dist":{"shasum":"4cb6e1ad27d3aa1e549284ceee3c09b5c05df5f8","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.0.3.tgz","fileCount":23,"integrity":"sha512-hdDSF/M1vRIqPZgSQGG8CVkB+JDMDurJC0HPNumBM1BkBOeB8xMzAqeEqk+cwxJSPEbs6B9xyEC2mIf/CE4aWw==","signatures":[{"sig":"MEQCIEypek/MZWH9DVaaYiCk3CUxGXDZbEyiYyJ889kqW3KUAiA6WGPCqkGo+hufqQPtYmzhUJknOhlNw7WwwHsQSb+IlQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":51864,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwSlQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqSiw//STkpoom+4IArqy8f43tIVjwedambU1JsPa9n5sONJYxKjF6o\r\nuRlQaMUk7MQpFyfqUhUN7+ukOKzGCFQK+Vgpna0BrSDXcGydr5gmQyLbPNu4\r\nSJe/7iBXfRXaPWO4flj+X0JhnwugsjeZIPblNevxLdWU/bvzg8hvb//oLAjD\r\n/iIun+h5Pv3oWq9N99xy1ksELgg/h7dW0YXJNRwOJ7zmoSEsc1juJ20xiSyD\r\nMSl79opd9BDuNTun3LiCr7yZnVAnWq3Cv2uQf1OpwraNTmDQn7CiNEMutXOM\r\ngAW3pJ72xLtPzAbxeA0GaipJapJqNhrNUVBnSeruoOf15htDkyVLZNHPxXz2\r\nKWy8jkbwRFMZvtRw8C4DZZRIM3FiwbPnU/5mzW8+yaa1jRJVfPe+wJ+ar4Zd\r\n/J62p+UXg7keSG+tyecTr4Svnl3kCtb/lyzfnQWGaZ3Jyd9skeuHwb3mUJ3Z\r\nkiBMbDE1yrBeePrM1d/MsXQoWsQxT7zWDKIPtHPM/s5z2i+YQEC9ybjDvMIG\r\nsQW9/z6VT8Z9fISqEu83+hyUodkA1/x7ACQBV8+rieOiMuKpd1DNGadbnM+i\r\nhAfVlVDftXc72+e1cDx6AsSTvBqfEeuZ5WPwALSCjhEobGxQE4N2JosIjkx8\r\nHI1R+UkIucoJTknWfW+G+C624lMZ0ydyNj4=\r\n=kvBo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/lib/index.js","type":"commonjs","types":"./dist/types/index.d.ts","exports":{".":"./dist/lib/index.js"},"gitHead":"ff5c1b84b928d3805746caa63f27c4e7d2c5ddd5","scripts":{"test":"jest --no-cache --verbose","build":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run after-build","start":"ts-node src/index.ts","compiler":"tsc && tsc-alias","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" \"build/index.js\" dist/lib","test-all":"jest --no-cache --verbose --coverage","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" \"build/index.d.ts\" dist/types","after-build":"rimraf ./build ./dist/types/src/module","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/npm-modules.git","type":"git"},"_npmVersion":"6.14.17","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"14.21.1","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","copyfiles":"^2.4.1","tsc-alias":"^1.8.2","perf_hooks":"0.0.1","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.11.13","jest-html-reporters":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.0.3_1673603408757_0.781406302072702","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@aitianyu.cn/tianyu-store","version":"0.0.4","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.0.4","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/npm-modules#readme","bugs":{"url":"https://github.com/aitianyu-cn/npm-modules/issues"},"dist":{"shasum":"88b65a6aaa000add8c9e68055ee6793de2b4864e","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.0.4.tgz","fileCount":28,"integrity":"sha512-iI1XpiefxvREgYsQIlCt8CkJa44vyBGC5rXdnaMrbCYzFGks0j35alK4RSve7R/XMyi6V8J1aiTrB77HAEclqw==","signatures":[{"sig":"MEUCIFricpLHDQMvWJyCgEWeX17PMNkJ7NWU4l1H7OMBa/f4AiEA4n6Psa2VmiCVHNsgZ/u7XWKeykAn1pYqucl8sOTBg9Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56439,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwSrZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmogGg/+OBKKbWPbBhga/FwLR4ZkTxLnGZKV7IHnBab8bsbHs2VlVUhc\r\naYuNqXn2SflKIJ3Y+bBNHp7qTssRmwfAekKccDzo2eNU/6qoYO3vNBskH9g0\r\nSgsHrqXArofpz21CaRTX+hfJQkuX7md+w4aKy7XN+udZ3hBPV5vFeYtymv8W\r\nlob8Mjx3goz6j6/Ra7vbbvZw/QD2qLyW+7dV6aR2rpZUb7S8Bug6BJhTCaRR\r\nYrlcH8ApnzbtFHcegQdTMmNFyDFI1YhOWIDCstRRWG0Befhpn6iQuFwyJWhG\r\ncl+zZOvVJXLNrOXHbbDDuU/KaAp3H1YFGDtDqxlMQSyNZzoJyWQ85VXQauYK\r\nxt3k25tYX8pS5Gv/9iCvq6hr2ibICIfwf5E5UmkgZb9/t3B2G7hNzQHYkjRs\r\nYA4r7zcsWFZWzIUqzhAvRlie7In4xTX5Mi8HBDgQ6lswe8f5ELOckcdABfFn\r\ni+5zDaW4vji6RvuSZJD4bisqsiv8QgGANqiCjwJlIyL6ABH/B1kRohYOpImM\r\nnQThQFBxNVmhMYFEA+/bYUDhISfILClhHaSLDkdzcam6u4TFNmclrXypg5o5\r\nOjDs/qPkZd+hwESK0WGUhxWIaITLVT3v8Yf/BmsCfmnOLUr+OWDLoQZJ9aMy\r\n5MNZ/Uulo2ydkFlkswgxtH4ivzhLm1grOZg=\r\n=V39Y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/lib/index.js","type":"commonjs","types":"./dist/types/index.d.ts","exports":{".":"./dist/lib/index.js"},"gitHead":"b0282382161b35ce2959c42d84afc55d52b53155","scripts":{"test":"jest --no-cache --verbose","build":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run after-build","start":"ts-node src/index.ts","compiler":"tsc && tsc-alias","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" \"build/index.js\" dist/lib","test-all":"jest --no-cache --verbose --coverage","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" \"build/index.d.ts\" dist/types","after-build":"rimraf ./build","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/npm-modules.git","type":"git"},"_npmVersion":"6.14.17","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"14.21.1","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","copyfiles":"^2.4.1","tsc-alias":"^1.8.2","perf_hooks":"0.0.1","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.11.13","jest-html-reporters":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.0.4_1673603801773_0.2217358910197642","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"@aitianyu.cn/tianyu-store","version":"0.0.5","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.0.5","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/npm-modules#readme","bugs":{"url":"https://github.com/aitianyu-cn/npm-modules/issues"},"dist":{"shasum":"a420caab04470ef6b7c5ddc72a7ec7c4cb1e9bb4","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.0.5.tgz","fileCount":26,"integrity":"sha512-VkEuBb5uzKXurIFD7u8NzxFYDFC8gc+RdQI5LiOpYP9sZsT/5uNrsAWqbo8M35ko3+UOEDV9vcM80df64M3z1g==","signatures":[{"sig":"MEUCICtTbm1lFzwcBPJF2UtHisYrdotkI4mVe3d45q0glCTlAiEAjDmM90cJsvyqyVwQM+0htHBR/8hM8aq4hwj+1YhnLIQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41265,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOO1OACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoTug//S0Xfo3JiGPecZRWnXRCjXpvXhi9ksTzMAE9l31WIiTopJlqH\r\nmvJLLQQf2mHHfBhpxiy+e+c0SYRnkxegdN7k6+lvbyNReSlmDRftl8b5kWmm\r\nIF5wNwQDltifQrMKXwszFoqHxvLOPrhkWsPCMWMzJ31VAqt+0rRaJBEZHhxv\r\nYFvwny9h9vzzk9rGvvSn5hOpE1NVJJedhYVX0sNCqKzT780f2SG2kRNZqkB0\r\n8SiGtFpvKlYeJKf3aWB2rzRGa27/jAPrwaVBufugSPmOb9vFS8S4bwBAC7jD\r\nl85pH9qTqeEx8T0dzPcYG/h733Phy+POZR4EC0/pbXhyhBkKd0G15B6xd1CV\r\nyBz+NSrSBoDO8FoKd95byQnYJtHBq11IltfBgwKDUaWjtgDxq83uCwCc1eHT\r\n70YbF1crVq0wIzXaD/d0fMOIOLPLlsz+I/HDrqLbqN7lSXaRT91WULHyN+dp\r\nefuYgIz5+I8LNvJQ9TkRfVO9zKt0x5+CvxbvuRdCbs7il0BWe89IXVE67S4f\r\n9S6VFupk+mgiL6aPSyfkexiT6/WXojWuueLt3vPf6Zzu0dc6DrB8e04+GlCJ\r\nsfuWY8Pi+mCsP6bbAPbcEDdDal4PTuvRNTwdc8GvXsZJ5/+33a6TMcEmeSwn\r\nAxAHXKjwgHEpjl/rhBzBcvuNoUbecWj3oKQ=\r\n=TJnP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/lib/index.js","type":"commonjs","types":"./dist/types/index.d.ts","exports":{".":"./dist/lib/index.js"},"gitHead":"e3b52085b2a4e82725a8c46124d2253ce2a8739c","scripts":{"test":"jest --no-cache --verbose","build":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run after-build","start":"ts-node src/index.ts","compiler":"tsc && tsc-alias","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" \"build/index.js\" dist/lib","test-all":"jest --no-cache --verbose --coverage","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" \"build/index.d.ts\" dist/types","after-build":"rimraf ./build","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/npm-modules.git","type":"git"},"_npmVersion":"9.5.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","copyfiles":"^2.4.1","tsc-alias":"^1.8.2","perf_hooks":"0.0.1","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.11.13","jest-html-reporters":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.0.5_1681452366482_0.3082687406542124","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@aitianyu.cn/tianyu-store","version":"0.1.0","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.1.0","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"2f64a2d1867c4b1f723da7eed355414c2d34a43e","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.1.0.tgz","fileCount":65,"integrity":"sha512-yzJiN/4r6dK+M+ujqrr97kF2C9ER5GjUCsM2O1xpEuEJp9jXFxq9VEn2NNsa65Ct9CJmmulK2GXwmjCUri2SGg==","signatures":[{"sig":"MEUCIQCgbs2JTJw7/tMT/jaqETo46lkRcOD2hGsoo2hqagx2CgIgQutlMpJMU22gz5vCtp9H7MGfmewoSH589suSVFWfT9s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54912},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"25373dcb53867e0ea4a0b3d53c7362ec174016b8","scripts":{"test":"jest --no-cache --verbose","build":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","compiler":"tsc && tsc-alias","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"8.6.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"@aitianyu.cn/types":"latest"},"typesVersions":{"*":{"*":["./dist/types/src/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","copyfiles":"^2.4.1","tsc-alias":"^1.8.2","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.11.13","jest-html-reporters":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.1.0_1712835155180_0.2349107893939144","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@aitianyu.cn/tianyu-store","version":"0.2.0","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.2.0","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"0b7107f71fcefe6e2c3ae905fe5da17fe4a17c03","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.2.0.tgz","fileCount":133,"integrity":"sha512-nDYjIDscxJE1w4cAdn1AUhVQRtMN+CKd4vMZOFRxCYf4evq4k9+k3FeZfwA8FcQd3UYHEbzug6oLQST7oh5XBA==","signatures":[{"sig":"MEUCIQDjx8zfUf3PIjqEQcOjPoA8lrxDcyKY216K28j9jq1bdgIgZxOpFe9jTx9rEqVtGaO4Hwcx4oAsW5iKZE4ChWfTiKQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":187795},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"863e51bb084ba376a652618d8c4c103bc0d6310d","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"8.6.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.2.0_1718107954396_0.15743861003496673","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@aitianyu.cn/tianyu-store","version":"0.2.1","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.2.1","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"49bdc9259f6e5e184d26901dd7285f358368dc36","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.2.1.tgz","fileCount":137,"integrity":"sha512-1gcJzZ7a+yMbohalxmCCiKeDh5/+ciELnmbgJFdEb9ImFQujE5iRGaFBkDYqVwQChkPlvX/0gv6C/T7QVYJXDg==","signatures":[{"sig":"MEUCIQDSpSvrUJf2xdpvc8pi+XOwWxhikx9WwuS8oAhgF+DDxAIgdNlojBFeYugxU5+2Mwj9boY2W4sPcLfYwKo0mWZzELs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":199282},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"bd4b337dd067e954bd8abe6d56ad6b946ca20dfa","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"9.5.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.2.1_1718606340645_0.296343043124518","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"@aitianyu.cn/tianyu-store","version":"0.2.2","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.2.2","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"c5dcf0bca59d12fa2fc08abf847aa7b4bc768235","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.2.2.tgz","fileCount":139,"integrity":"sha512-C2iA4OJVJ72vYNXoZTB1AhKi3gK20AwQhg3vS8VSbqayqN+NgOTDqBp9TF88E5FZN/+8oDmnxOTFsO93YMEhmg==","signatures":[{"sig":"MEYCIQCeXzxpETOT15JNrhV1eOhNGfBRLk4SPNXbHl1VLPeYMQIhAL38K6Gq9YKt4posmmVVJshgZj4UmKXDjn5Khx5Ta+PU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":202861},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"a21ccd9923a083e7d7d50012d0921bd4027f596d","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"9.5.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.2.2_1718693548971_0.9545971296840845","host":"s3://npm-registry-packages"}},"0.2.3":{"name":"@aitianyu.cn/tianyu-store","version":"0.2.3","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.2.3","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"2463c752066f13a0978e82b7a5cec88cf61b3efd","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.2.3.tgz","fileCount":137,"integrity":"sha512-eSCmESw5ZkdPMtIYIUQ1FqEv/BWArFPo4Lgb4ZS3sPOKWzIhdmALc25TLFPAgRIsDxFzXAmm0cevE8iJXV2Xrw==","signatures":[{"sig":"MEYCIQCKFnqEZJwm4lj8G7jtn7VhqXJzkrj/jO8RPH31I/EeYAIhANvlH6u/1hHCDbeFXz7iXSXgyVkLJElSPziDjI9a6FLj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":201233},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"c5369e44a24ff3f5f43307469b6502ce5b316e4a","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"9.5.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.2.3_1718694732910_0.668118940136333","host":"s3://npm-registry-packages"}},"0.2.4":{"name":"@aitianyu.cn/tianyu-store","version":"0.2.4","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.2.4","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"58129fb486f0822f312ef6ae966c398d4eb4fb48","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.2.4.tgz","fileCount":137,"integrity":"sha512-o6xs8yFOLP4DD557HQzFcZRWJjQsjkX/PTR/Ip0tMf1vV2mkyVyklEoUqH0bGMeOYW+jdti27lrvOzseeTde9w==","signatures":[{"sig":"MEYCIQCcC4uTxh7DUUbvQyphSuoH9Pf3uW46rNF/GszZywWrmAIhAMDJIeSXF1t3p7AA26x3/lFZhNgxXmiTnfVKmZJe7Doo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":201253},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"c5369e44a24ff3f5f43307469b6502ce5b316e4a","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"9.5.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.2.4_1718696434416_0.014301083425548367","host":"s3://npm-registry-packages"}},"0.2.5":{"name":"@aitianyu.cn/tianyu-store","version":"0.2.5","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.2.5","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"faea10253392c889d0b19e69dca50cfc84c62208","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.2.5.tgz","fileCount":143,"integrity":"sha512-KAgFGf18YOkzfast/OZt4KlUvjfFxOj7aI6LjS1K5X8OmLcyP5LxkEIbJFZgDyc7RpsX9kMTYWl1ZDPE2DG1GA==","signatures":[{"sig":"MEUCICS2RKiWZWRfmOHA5pH6Vw/aN6kn8WWbmTuNevXNZOQ/AiEA792XAd6lcf/2BWQ2HXQWYfgZpLctFm2oxd4BXS7IejA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":222042},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"8cf1a028dfe36aaaa78e8664b76bfb3cdedf445c","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"9.5.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.2.5_1720603405150_0.3533570756963511","host":"s3://npm-registry-packages"}},"0.2.6":{"name":"@aitianyu.cn/tianyu-store","version":"0.2.6","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.2.6","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"2d7147b923b5ebd8b2156b785d75b2ec0ac8f82c","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.2.6.tgz","fileCount":145,"integrity":"sha512-1/XpFpR5hdsrakgCDu3xP0Zfa4z7DkLBryDvA8FKvlk9MeQPPnGrklKORr/K/VvRifSfLNXJ+E2ajJKYwqcy5A==","signatures":[{"sig":"MEUCIEmy7Hd10IWLwpIrQOer8XEqfkjVa+L0BKq8PS9FKr6+AiEA6nuiUm7dZ40ppWnthXIGH8FHlohvSRVdvVZSUrX77Fw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":221719},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"7180654bfd488921eefa41cc66141cb64af149d1","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"8.6.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.2.6_1720695637074_0.7833645553558073","host":"s3://npm-registry-packages"}},"0.2.7":{"name":"@aitianyu.cn/tianyu-store","version":"0.2.7","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.2.7","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"e552477dbf8814f50d519463d294c9144ab42d06","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.2.7.tgz","fileCount":145,"integrity":"sha512-mLxh1JvJ0/2wkNdY9N8sO4fmJflBGKKdFUsvVkRLiQPxBdNUi8nqWQ+2bHFChX8Nah4tbkFywDrcZ3rB3d4XYA==","signatures":[{"sig":"MEQCIFlkrk/DAqKswkCem0yz5XJGZ4tdzrSRN+v2hrS1Eb42AiA/3vHZMegiEY5famM7yKSKA1ZbIXMxZqcPN1Y9qLEN+g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":228729},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"1975d4bb16f0e297be4870fdbb8dad1d73722843","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"9.5.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.2.7_1720775974655_0.9950622684017238","host":"s3://npm-registry-packages"}},"0.2.8":{"name":"@aitianyu.cn/tianyu-store","version":"0.2.8","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.2.8","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"4e8ff81b20bbf2f5481b76a53b9e857024e00bc0","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.2.8.tgz","fileCount":149,"integrity":"sha512-lTdKCqwKZnKHc0S35n3Ht3iXWx4FY0gvoEGxKIi6kJlpf85NtPSfpL/OoAngnt0ejQpkRAY6Pn0keN6JjbVoZg==","signatures":[{"sig":"MEQCIFRwsVWV8Rly2Gg03+xqBhBGndk+vROzORT7VDeJEAehAiBpN/kAm9/1KQglOpa0pIZRrM43HIuFj8ogSSlotRVpvA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236195},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"adbc93b854cbdee2fcb344a1f1cbca5841b1a5b1","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"8.11.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.2.8_1722002904756_0.9740271403638627","host":"s3://npm-registry-packages"}},"0.2.9":{"name":"@aitianyu.cn/tianyu-store","version":"0.2.9","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.2.9","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"6c1f067ba7be768526be4b6879d8a99440792f6a","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.2.9.tgz","fileCount":149,"integrity":"sha512-ukwdQmHl6r6zyIBmc8k8g8gqewEbSa0rZT1G0FMV8G8tlg7G91+AYFtjuG9BfzHOya5drV/E1sRci386gy0wVg==","signatures":[{"sig":"MEYCIQD9K8awm58KSwGFkJonDmIaj44uODZ21XyPjGJhxcBjxAIhAMlPmV0zT2FqaZ+TnMNYEXAHDH003WES/ry5SUucoYZd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236717},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"befccb4529582645c1dfdcbc96b31e3da3075c7e","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"8.11.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.2.9_1722004446569_0.8415149749682709","host":"s3://npm-registry-packages"}},"0.2.10":{"name":"@aitianyu.cn/tianyu-store","version":"0.2.10","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.2.10","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"def77bdaed5e669d23279e5f70258886d275efd4","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.2.10.tgz","fileCount":149,"integrity":"sha512-ql4wjcgDwrK+0+kc7bbWuHKHVtWpOI6f+hUez0ysW3XZzZGD6gWAFuwYi2aWvnDqN99Dnr6dWXnXR41FETNntg==","signatures":[{"sig":"MEQCIATiFI8UxBrGCF7xcxQkgPUasP+CoZAyrClcn4l7YxIjAiBFBjQus6EJFNp26P+qyTGcasZIpGFJLgJSZjhSC+n4iw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":231464},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"42537418d5d122572783fc111111c8287255cfc3","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"8.6.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.2.10_1723806047140_0.3860522872754826","host":"s3://npm-registry-packages"}},"0.2.11":{"name":"@aitianyu.cn/tianyu-store","version":"0.2.11","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@0.2.11","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"f9aa118c0bb04d8c5cde409b02d668b79557c82b","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.2.11.tgz","fileCount":149,"integrity":"sha512-CDmOPY9DPm/HHumLU8P6Hw6zZnauCbGbHYOutej4CeDJIGBxXNBqBsDaYih0RFL17iIADcgfJUrzFhh/Kzi3Kw==","signatures":[{"sig":"MEUCIDqsH10zZo/dQZwCGofHsSwtQ/X8EPiCkKr4+neXxaHwAiEA3lfQA+FrSj9xfWIbER62Thsaq29XqqEBOQwnnsamfh0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":231680},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"5572f8bae7998f65e8ffc8868c7722655bf4c9ad","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"8.6.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_0.2.11_1723991247196_0.9657051170017086","host":"s3://npm-registry-packages"}},"1.0.0-beta.0":{"name":"@aitianyu.cn/tianyu-store","version":"1.0.0-beta.0","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@1.0.0-beta.0","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"0ad361da10e7c01f32eb3ca689793018436a1b72","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-1.0.0-beta.0.tgz","fileCount":149,"integrity":"sha512-5Z5AS22G52K4euiudLGzYOJHnr/64vH+z2aTPSjJVJNdlVSGBkikOqTy8baRclDQybc04y+VL/Pk3YU/UDPDhA==","signatures":[{"sig":"MEUCIQCfukQjzJBnbYQKawT3kHgMow48bU8JaEHy+Z6B+K3PegIgYUF3iXhOu3i2zMvnOgTIHfATuGYK4sOhC9I/4Jp71j8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":239887},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"5572f8bae7998f65e8ffc8868c7722655bf4c9ad","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"9.5.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_1.0.0-beta.0_1724036750720_0.7915449346319319","host":"s3://npm-registry-packages"}},"1.0.0-beta.1":{"name":"@aitianyu.cn/tianyu-store","version":"1.0.0-beta.1","keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/tianyu-store@1.0.0-beta.1","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"dist":{"shasum":"ca398e4dbb2cf6ca0578aaaf32c099d8cc4c536d","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-1.0.0-beta.1.tgz","fileCount":149,"integrity":"sha512-o+vu9ghzfKbinlOrhuygUcBTtWNmwdXVubgGR1tKYY771g7oQxzphiVwCwbU8ta45JBAetoby+xb1NYMly/uSQ==","signatures":[{"sig":"MEQCICmK6HdD+2RQr5MEBRjtZi6TDEhyF2ooRRgz0ArLL7o/AiALsXthDfN5aJ4xpsE2F5KlHUnYdb9yqcrkm78RAVJACQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":239920},"main":"./dist/lib/src/index.js","type":"commonjs","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js"},"gitHead":"c5a76989780133f1fa4b2bfcfc12926ef5794352","scripts":{"test":"jest --no-cache --verbose","build":"npm run build-all && npm run remove-beta","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","test-all":"jest --no-cache --verbose --coverage","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\"","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","after-build":"rimraf ./build","remove-beta":"rimraf ./dist/lib/beta","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-store.git","type":"git"},"_npmVersion":"9.5.0","description":"tianyu storage for nodejs.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"@aitianyu.cn/types":"latest"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","path":"^0.12.7","react":"^18.3.1","eslint":"^8.57.0","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","webpack":"^5.91.0","copyfiles":"^2.4.1","react-dom":"^18.3.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.2","css-loader":"^7.1.2","typescript":"^4.9.4","@babel/core":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","file-loader":"^6.2.0","webpack-cli":"^5.1.4","@types/react":"^18.3.3","babel-loader":"^9.1.3","style-loader":"^4.0.0","@types/react-dom":"^18.3.0","@babel/preset-env":"^7.24.6","typescript-eslint":"^7.11.0","@types/webpack-env":"^1.18.5","webpack-dev-server":"^5.0.4","@babel/preset-react":"^7.24.6","copy-webpack-plugin":"^12.0.2","html-webpack-plugin":"^5.6.0","jest-html-reporters":"^3.0.11","clean-webpack-plugin":"^4.0.0","mini-css-extract-plugin":"^2.9.0","@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-store_1.0.0-beta.1_1724055338293_0.02850190534184538","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@aitianyu.cn/tianyu-store","version":"0.3.0","description":"tianyu storage for nodejs.","main":"./dist/lib/src/index.js","types":"./dist/types/src/index.d.ts","exports":{".":"./dist/lib/src/index.js","./react":"./dist/lib/src/react/index.js"},"type":"commonjs","scripts":{"build":"npm run build-all && npm run remove-beta","build-all":"npm run before-build && npm run compiler && npm run copy-lib && npm run copy-types && npm run copy-res && npm run after-build","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 1 \"build/src/**/*.js\" dist/lib","copy-res":"copyfiles \"src/**/*.json\" dist/lib","remove-beta":"rimraf ./dist/lib/beta","copy-types":"copyfiles -u 1 \"build/src/**/*.d.ts\" dist/types","before-build":"rimraf ./dist ./build","after-build":"rimraf ./build","test":"jest --no-cache --verbose","test-all":"jest --no-cache --verbose --coverage","test-coverage":"jest --no-cache --coverage","start-web":"webpack server --config \"./demo/webpack/webpack.config.js\""},"repository":{"type":"git","url":"git+https://github.com/aitianyu-cn/tianyu-store.git"},"keywords":["aitianyu.cn","store"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","devDependencies":{"@aitianyu.cn/client-base":"^0.0.1","@aitianyu.cn/tianyu-shell":"^0.1.2","@babel/core":"^7.24.6","@babel/preset-env":"^7.24.6","@babel/preset-react":"^7.24.6","@types/jest":"^29.2.4","@types/node":"^18.11.13","@types/react":"^18.3.3","@types/react-dom":"^18.3.0","@types/webpack-env":"^1.18.5","babel-loader":"^9.1.3","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^12.0.2","copyfiles":"^2.4.1","css-loader":"^7.1.2","eslint":"^8.57.0","file-loader":"^6.2.0","html-webpack-plugin":"^5.6.0","jest":"^29.3.1","jest-html-reporters":"^3.0.11","mini-css-extract-plugin":"^2.9.0","path":"^0.12.7","react":"^18.3.1","react-dom":"^18.3.1","rimraf":"^3.0.2","style-loader":"^4.0.0","ts-jest":"^29.0.3","ts-loader":"^9.5.1","ts-node":"^10.9.1","tsc-alias":"^1.8.2","typescript":"^4.9.4","typescript-eslint":"^7.11.0","webpack":"^5.91.0","webpack-cli":"^5.1.4","webpack-dev-server":"^5.0.4"},"dependencies":{"@aitianyu.cn/types":"latest"},"_id":"@aitianyu.cn/tianyu-store@0.3.0","gitHead":"99a00b0fb33f73c3b6c034f956148696025cf744","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-+Pamx5qHHIB8ssynVwHC0/zF875sDcqAxGN6dICpIJkQHtVrPCPhvU/HV7+oPZLuo4+mRSHXx8q4DABf3d4b2Q==","shasum":"74843f47c1d7ad9bb3a8f7d29ee1c6b816265e83","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-store/-/tianyu-store-0.3.0.tgz","fileCount":153,"unpackedSize":262825,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEaeRInUp2T8ZNQ1k/bUMUNLpznkpoC67j+r8BJHEkMYAiBhCIxoYp3i3ZZnyXFasy6pV/i8VZIsgAifUDl1zXSdHw=="}]},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"directories":{},"maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tianyu-store_0.3.0_1785306107490_0.2971197992246255"},"_hasShrinkwrap":false}},"time":{"created":"2023-01-12T10:06:52.117Z","modified":"2026-07-29T06:21:47.855Z","0.0.1":"2023-01-12T10:06:52.387Z","0.0.2":"2023-01-13T05:07:04.466Z","0.0.3":"2023-01-13T09:50:08.930Z","0.0.4":"2023-01-13T09:56:41.925Z","0.0.5":"2023-04-14T06:06:06.685Z","0.1.0":"2024-04-11T11:32:35.318Z","0.2.0":"2024-06-11T12:12:34.625Z","0.2.1":"2024-06-17T06:39:00.832Z","0.2.2":"2024-06-18T06:52:29.115Z","0.2.3":"2024-06-18T07:12:13.091Z","0.2.4":"2024-06-18T07:40:34.584Z","0.2.5":"2024-07-10T09:23:25.353Z","0.2.6":"2024-07-11T11:00:37.213Z","0.2.7":"2024-07-12T09:19:34.813Z","0.2.8":"2024-07-26T14:08:24.943Z","0.2.9":"2024-07-26T14:34:06.730Z","0.2.10":"2024-08-16T11:00:47.324Z","0.2.11":"2024-08-18T14:27:27.351Z","1.0.0-beta.0":"2024-08-19T03:05:50.943Z","1.0.0-beta.1":"2024-08-19T08:15:38.538Z","0.3.0":"2026-07-29T06:21:47.725Z"},"bugs":{"url":"https://github.com/aitianyu-cn/tianyu-store/issues"},"author":{"name":"dev@aitianyu.cn"},"license":"ISC","homepage":"https://github.com/aitianyu-cn/tianyu-store#readme","keywords":["aitianyu.cn","store"],"repository":{"type":"git","url":"git+https://github.com/aitianyu-cn/tianyu-store.git"},"description":"tianyu storage for nodejs.","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"readme":"# Tianyu-Store\n\n一个 TypeScript 状态管理库，支持层级化 Store 实例、基于 Generator 的异步 Action 处理器、内置的撤销/重做（Redo/Undo）、事务日志记录以及浏览器 DevTools 集成。\n\n**当前版本：`0.3.0`**\n\n## 目录\n\n- [安装](#安装)\n- [核心概念](#核心概念)\n- [快速开始](#快速开始)\n- [API 参考](#api-参考)\n  - [createStore](#createstore)\n  - [ActionFactor](#actionfactor)\n  - [SelectorFactor](#selectorfactor)\n  - [ListenerFactor](#listenerfactor)\n  - [StoreHelper](#storehelper)\n  - [StoreUtils](#storeutils)\n- [接口注册](#接口注册)\n- [派发 Action](#派发-action)\n- [读取状态](#读取状态)\n- [监听器与订阅](#监听器与订阅)\n- [撤销 / 重做](#撤销--重做)\n- [外部对象](#外部对象)\n- [中间件](#中间件)\n- [Action 守卫](#action-守卫)\n- [Action 取消](#action-取消)\n- [派生 Selector](#派生-selector)\n- [跨实例 Selector](#跨实例-selector)\n- [异步 Selector](#异步-selector)\n- [快照与恢复](#快照与恢复)\n- [序列化与持久化](#序列化与持久化)\n- [状态迁移](#状态迁移)\n- [React 绑定](#react-绑定)\n- [DevTools](#devtools)\n- [错误类型](#错误类型)\n- [构建与测试](#构建与测试)\n\n---\n\n## 安装\n\n```bash\nnpm install @aitianyu.cn/tianyu-store\n```\n\nReact 绑定需要 React 18+（peerDependency）：\n\n```bash\nnpm install react\n```\n\n---\n\n## 核心概念\n\n| 概念 | 说明 |\n|---|---|\n| **Store** | 顶层管理器。一个应用通常只有一个 Store。 |\n| **Entity（实体）** | 实例的逻辑分组，由 `InstanceId` 的 `entity` 字段（根 GUID）标识。 |\n| **Instance（实例）** | 实体内的单条活跃记录，由完整的层级 `InstanceId` 标识。 |\n| **StoreType** | 一个字符串标签，用于命名一组操作相同状态结构的 Action/Selector。 |\n| **InstanceId** | 由 `{storeType, entityId}` 对组成的 JSON 序列化路径，表示层级结构。 |\n| **Action** | 一个 Generator 函数，在返回通过 Reducer 生成的新状态之前，可以 `yield` 子 Action、Selector 或外部对象读取。 |\n| **Selector** | 从实例当前状态派生值的纯函数。 |\n| **Listener** | 在 dispatch 后，当特定 Selector 的值发生变化时触发的事件回调。 |\n| **Subscribe** | 与 Listener 语义相同，但返回一个 `Unsubscribe` 取消函数。 |\n| **Transaction** | 每次 dispatch 都被包裹在一个事务中，该事务会记录操作和错误，供 DevTools/调试使用。 |\n\n---\n\n## 快速开始\n\n```typescript\nimport {\n  createStore,\n  ActionFactor,\n  SelectorFactor,\n  StoreHelper,\n  StoreUtils,\n} from \"@aitianyu.cn/tianyu-store\";\n\n// 1. 定义状态结构\ninterface CounterState {\n  count: number;\n}\n\n// 2. 构建接口（Action + Selector）\nconst CounterInterface = {\n  core: {\n    creator: ActionFactor.makeCreateStoreAction<CounterState>()\n      .withReducer(() => ({ count: 0 })),\n    destroy: ActionFactor.makeDestroyStoreAction(),\n  },\n  increment: ActionFactor.makeActionCreator<CounterState, number>()\n    .withHandler(function* () { return; })\n    .withReducer((state) => ({ count: state.count + 1 })),\n  getCount: SelectorFactor.makeSelector<CounterState, number>(\n    (state) => state.count,\n  ),\n};\n\n// 3. 创建 Store\nconst store = createStore({ friendlyName: \"my-app\" });\nstore.registerInterface(\"counter\", CounterInterface);\n\n// 4. 创建实体实例\nconst instanceId = StoreHelper.generateInstanceId(\"counter\", \"entity-1\");\nawait store.dispatch(CounterInterface.core.creator(instanceId));\n\n// 5. 派发 Action\nawait store.dispatch(CounterInterface.increment(instanceId, 1));\n\n// 6. 读取状态（select 是正确拼写，selecte 为 @deprecated 别名）\nconst count = store.select(CounterInterface.getCount(instanceId));\nconsole.log(count); // 1\n\n// 7. 销毁\nawait store.dispatch(CounterInterface.core.destroy(instanceId));\nstore.destroy();\n```\n\n---\n\n## API 参考\n\n### `createStore`\n\n```typescript\nfunction createStore(config?: StoreConfiguration): IStore\n```\n\n**`StoreConfiguration`**\n\n| 字段 | 类型 | 默认值 | 说明 |\n|---|---|---|---|\n| `waitForAll` | `boolean` | `true` | `true` → `await store.dispatch(...)` 在监听器/订阅执行完成后才 resolve |\n| `friendlyName` | `string` | Store GUID | DevTools 中显示的可读名称 |\n| `middleware` | `StoreMiddleware[]` | `[]` | 中间件链，outermost-first |\n| `migrations` | `StateMigration[]` | `[]` | 状态迁移配置，在 deserialize/restore 时按版本号顺序执行 |\n| `persistence` | `PersistenceOptions` | — | 持久化适配器配置 |\n\n---\n\n### `ActionFactor`\n\n| 方法 | 说明 |\n|---|---|\n| `makeActionCreator<STATE, PARAM>()` | 创建标准 Action Creator，链式调用 `.withHandler().withReducer()` |\n| `makeVirtualAction<STATE, PARAM, RETURN>()` | 创建占位 Action（运行时抛错） |\n| `makeCreateStoreAction<STATE, PARAM>()` | 创建实体/实例的 CREATE lifecycle Action |\n| `makeDestroyStoreAction()` | 创建实体/实例的 DESTROY lifecycle Action |\n\n**Action 链式 API：**\n```typescript\nActionFactor.makeActionCreator<State, Param>()\n  .withExternal(fn)          // 注册外部对象\n  .withHandler(function* (action) {\n      const val = yield StoreUtils.Handler.doSelector(mySelector(id));\n      return val;\n  })\n  .withReducer((state, val) => ({ ...state, result: val }))\n  .withGuard(mySelector, (val) => val > 0)  // 守卫\n  .asViewAction()            // 转为 ViewAction（不记事务）\n```\n\n---\n\n### `SelectorFactor`\n\n| 方法 | 说明 |\n|---|---|\n| `makeSelector<STATE, RESULT>(getter, external?)` | 无参数 Selector |\n| `makeParameterSelector<STATE, PARAM, RESULT>(getter, external?)` | 带参数 Selector |\n| `makeEntitySelector<STATE, RESULT>(getter)` | 跨实例 Selector，getter 接收整个实例 Map |\n| `makeDerivedSelector<RESULT>(deps, combiner)` | 派生/记忆化 Selector |\n| `makeVirtualSelector<STATE, RESULT>()` | 占位 Selector |\n| `makeVirtualParameterSelector<STATE, PARAM, RESULT>()` | 带参数占位 Selector |\n\n---\n\n### `ListenerFactor`\n\n```typescript\nconst listener = ListenerFactor.createListener(mySelector(id), (newVal, oldVal) => { ... });\nstore.startListen(listener);\nstore.stopListen(listener);\n```\n\n---\n\n### `StoreHelper`\n\n| 导出 | 说明 |\n|---|---|\n| `StoreHelper.generateInstanceId(storeType, entityId)` | 创建根级 `InstanceId` |\n| `StoreHelper.newInstanceId(pairs)` | 从 `IInstancePair[]` 创建 `InstanceId` |\n| `StoreHelper.generateStoreInstanceId()` | 创建随机根级 `InstanceId` |\n\n---\n\n### `StoreUtils`\n\n| 导出 | 说明 |\n|---|---|\n| `StoreUtils.State.getNewState(state, path, value)` | 单路径不可变更新 |\n| `StoreUtils.State.getNewStateBatch(state, changes)` | 多路径批量更新 |\n| `StoreUtils.State.mergeState(target, source, deep?)` | 合并两个状态对象 |\n| `StoreUtils.Handler.doAction(action)` | 在 Handler 中 yield 子 Action |\n| `StoreUtils.Handler.doSelector(selector)` | 在 Handler 中 yield Selector 读取 |\n| `StoreUtils.Handler.doReadExternal(fn)` | 在 Handler 中 yield 外部对象读取 |\n| `StoreUtils.createBatchAction(actions)` | 创建批量 Action |\n| `StoreUtils.createTypedBatchAction(actions)` | 类型安全的批量 Action（保留元组类型） |\n| `StoreUtils.registerExpose(expose, storeType)` | 注册预构建的接口 Expose 块 |\n\n---\n\n## 接口注册\n\n```typescript\nstore.registerInterface(\"myStoreType\", MyInterface);\n// 或一次性注册多个 StoreType\nstore.registerInterface({ typeA: InterfaceA, typeB: InterfaceB });\n```\n\n保留的 StoreType `\"tianyu-store-entity-core\"` 供内部使用，用户代码不可注册。\n\n---\n\n## 派发 Action\n\n```typescript\n// 单个 Action\nawait store.dispatch(MyInterface.someAction(instanceId, params));\n\n// 带取消信号\nconst controller = new AbortController();\nawait store.dispatch(MyInterface.someAction(instanceId, params), { signal: controller.signal });\n\n// 批量（所有 Action 必须属于同一实体）\nawait store.dispatch(StoreUtils.createBatchAction([\n  MyInterface.actionA(instanceId),\n  MyInterface.actionB(instanceId, params),\n]));\n\n// 即发即忘的视图 Action（返回 Promise，错误仅记录到事务日志）\nstore.dispatchForView(MyInterface.viewAction(instanceId));\n```\n\n**dispatch 时强制执行的规则：**\n- 批量中的所有 Action 必须共享同一根实体\n- `REDO`/`UNDO` 以及实体 `CREATE`/`DESTROY` 必须原子派发（批量大小为 1）\n\n---\n\n## 读取状态\n\n```typescript\n// 同步（推荐）\nconst value = store.select(MyInterface.mySelector(instanceId));\n\n// 异步（getter 返回 Promise 时自动 await）\nconst value = await store.selectAsync(MyInterface.mySelector(instanceId));\n```\n\n`SelectorResult<T>` 类型为 `T | Missing`，检查 `value instanceof Missing` 处理实例不存在的情况。\n\n> **注意：** `store.selecte()` 是 `store.select()` 的 `@deprecated` 别名，行为相同，建议迁移到 `select()`。\n\n---\n\n## 监听器与订阅\n\n```typescript\n// 持久监听器\nconst listener = ListenerFactor.createListener(\n  MyInterface.mySelector(instanceId),\n  (newVal, oldVal) => { /* ... */ },\n);\nstore.startListen(listener);\nstore.stopListen(listener);\n\n// 订阅（返回取消函数）\nconst unsub = store.subscribe(\n  MyInterface.mySelector(instanceId),\n  (newVal, oldVal) => { /* ... */ },\n  { debounce: 300 },   // 可选：防抖毫秒数\n  // { throttle: 500 } // 或节流毫秒数\n);\nunsub();\n\n// 一次性订阅（首次触发后自动取消）\nconst unsub = store.once(selector, callback);\n\n// 多 Selector 联合订阅（任一变化时合并触发一次）\nconst unsub = store.subscribeAll(\n  [selectorA(id), selectorB(id)],\n  ([newA, newB], [oldA, oldB]) => { /* ... */ },\n);\n```\n\n---\n\n## 撤销 / 重做\n\n在 CREATE Action 参数中设置 `redoUndo: true` 启用该实体的 undo/redo 栈。\n\n```typescript\nimport { TIANYU_STORE_ENTITY_REDOUNDO, TianyuStoreEntityInterfaceExpose } from \"@aitianyu.cn/tianyu-store\";\n\nconst expose = TianyuStoreEntityInterfaceExpose[TIANYU_STORE_ENTITY_REDOUNDO];\nawait store.dispatch(expose.stack.undoAction(instanceId));\nawait store.dispatch(expose.stack.redoAction(instanceId));\n```\n\n---\n\n## 外部对象\n\nAction 和 Selector 可通过外部对象注册表访问运行时依赖（如浏览器 API、服务实例）：\n\n```typescript\n// 注册（在 Action 的 external hook 中）\nActionFactor.makeActionCreator()\n  .withExternal((register) => {\n    register.add(\"myService\", new MyService());\n  });\n\n// 在 Handler 中读取\nconst service = yield StoreUtils.Handler.doReadExternal(\n  (register) => register.get<MyService>(\"myService\"),\n);\n```\n\n---\n\n## 中间件\n\n```typescript\nimport { StoreMiddleware } from \"@aitianyu.cn/tianyu-store\";\n\nconst loggerMiddleware: StoreMiddleware = async (actions, next) => {\n  console.log(\"dispatching\", actions.map(a => a.action));\n  await next(actions);\n  console.log(\"done\");\n};\n\nconst store = createStore({\n  middleware: [loggerMiddleware, authMiddleware],\n});\n```\n\n中间件按数组顺序组合（first = outermost），可以不调用 `next` 短路整个 dispatch。\n\n---\n\n## Action 守卫\n\n在 Action 定义时声明前置条件，条件不满足时自动阻止执行：\n\n```typescript\nconst guardedAction = ActionFactor.makeActionCreator<State, Param>()\n  .withHandler(function* () { return; })\n  .withReducer((state) => newState)\n  .withGuard(\n    mySelector,                 // 读取这个 Selector 的值作为输入\n    (val) => val !== null,      // 返回 false 则抛 StoreActionGuardError\n  );\n```\n\n---\n\n## Action 取消\n\n```typescript\nconst controller = new AbortController();\n\n// 在另一个地方取消\nsetTimeout(() => controller.abort(), 1000);\n\nawait store.dispatch(myAction(instanceId, params), { signal: controller.signal });\n// 被取消后：错误记录到 transaction log，状态不变\n```\n\n---\n\n## 派生 Selector\n\n基于依赖 Selector 组合计算，只有依赖变化时才重新运行 combiner：\n\n```typescript\nconst totalCount = SelectorFactor.makeDerivedSelector<number>(\n  [CounterInterface.getCount],   // 依赖列表\n  (count) => count * 2,          // combiner，依赖不变时返回缓存值\n);\n\nstore.select(totalCount(instanceId));\n```\n\n---\n\n## 跨实例 Selector\n\n聚合同一 StoreType 下所有实例的状态：\n\n```typescript\nconst totalAll = SelectorFactor.makeEntitySelector<CounterState, number>(\n  (instances) => Object.values(instances).reduce((sum, s) => sum + s.count, 0),\n);\n\n// 传入 entity 级别的 InstanceId\nstore.select(totalAll(entityInstanceId));\n```\n\n---\n\n## 异步 Selector\n\n```typescript\n// 若 getter 返回 Promise，selectAsync 会 await 它\nconst value = await store.selectAsync(MyInterface.mySelector(instanceId));\n```\n\n---\n\n## 快照与恢复\n\n```typescript\n// 保存快照\nconst snaps = store.snapshot();               // 所有实体\nconst snaps = store.snapshot(entityId);       // 指定实体\n\n// 恢复\nawait store.restore(snaps);\n```\n\n---\n\n## 序列化与持久化\n\n```typescript\n// 手动序列化\nconst json = store.serialize();                    // 全部\nconst json = store.serialize([\"counter\", \"user\"]); // 过滤 StoreType\n\n// 手动反序列化（支持 migration）\nawait store.deserialize(json);\n\n// 持久化适配器（自动保存/加载）\nimport { createLocalStorageAdapter } from \"@aitianyu.cn/tianyu-store\";\n\nconst store = createStore({\n  persistence: {\n    adapter: createLocalStorageAdapter(\"my-app-state\"),\n    include: [\"counter\"],  // 仅持久化指定 StoreType\n    autoLoad: true,        // 创建后自动加载\n    autoSave: true,        // 每次变更后自动保存\n  },\n});\n\n// 手动加载\nawait store.loadPersistence();\n```\n\n内置适配器：\n- `createLocalStorageAdapter(key)` — 基于 `localStorage`，SSR 安全\n- `createSessionStorageAdapter(key)` — 基于 `sessionStorage`，SSR 安全\n\n---\n\n## 状态迁移\n\n```typescript\nimport { StateMigration } from \"@aitianyu.cn/tianyu-store\";\n\nconst store = createStore({\n  migrations: [\n    {\n      version: 1,\n      storeType: \"counter\",\n      migrate: (oldState) => ({ count: oldState.value ?? 0 }),  // 字段重命名\n    },\n  ],\n});\n\n// deserialize 时自动按 version 升序执行 migrate\nawait store.deserialize(savedJson);\n```\n\n---\n\n## React 绑定\n\n通过独立入口导入（避免非 React 环境报错）：\n\n```typescript\nimport { useSelector, useDispatch, useStore } from \"@aitianyu.cn/tianyu-store/react\";\n\nfunction Counter() {\n  const count = useSelector(store, CounterInterface.getCount(instanceId));\n  const dispatch = useDispatch(store);\n\n  return (\n    <button onClick={() => dispatch(CounterInterface.increment(instanceId, 1))}>\n      Count: {count ?? 0}\n    </button>\n  );\n}\n```\n\n| Hook | 说明 |\n|---|---|\n| `useSelector(store, selector)` | 订阅 Selector，值变化时自动重渲染 |\n| `useDispatch(store)` | 返回稳定的 `dispatch` 绑定 |\n| `useStore(store)` | 返回 `{ select, dispatch, subscribe }` 的稳定绑定 |\n\n---\n\n## DevTools\n\n```typescript\nstore.getAllDispatchs()       // TransactionOperationRecord<IInstanceAction>[]\nstore.getAllSelectors()       // TransactionOperationRecord<IInstanceSelector>[]\nstore.getAllErrors()          // TransactionErrorRecord[]\nstore.getRegisteredOperations() // { actions: IOperatorInfo[]; selectors: IOperatorInfo[] }\n\nstore.setOnDispatch(cb)      // 每次 dispatch 后调用\nstore.setOnSelector(cb)      // 每次 select 后调用\nstore.setOnError(cb)         // 发生任意错误时调用\nstore.setOnChangeApplied(cb) // 状态变更提交后调用\n\n// 定期清理事务历史防止内存增长\nstore.cleanTransactionHistory();\n\n// 回放历史 Action\nawait store.replay({ storeType: \"counter\", from: new Date(\"2024-01-01\") });\n```\n\n---\n\n## 错误类型\n\n所有错误均继承 `Error`，可用 `instanceof` 精确捕获：\n\n```typescript\nimport {\n  StoreActionNotFoundError,\n  StoreSelectorNotFoundError,\n  StoreInstanceNotExistError,\n  StoreEntityAlreadyExistError,\n  StoreDispatchConflictError,\n  StoreActionGuardError,\n} from \"@aitianyu.cn/tianyu-store\";\n\ntry {\n  await store.dispatch(myAction(instanceId));\n} catch (e) {\n  if (e instanceof StoreActionGuardError) {\n    console.log(\"Guard blocked:\", e.actionId);\n  } else if (e instanceof StoreInstanceNotExistError) {\n    console.log(\"Instance missing:\", e.instanceId);\n  }\n}\n```\n\n---\n\n## 构建与测试\n\n```bash\n# 完整生产构建\nnpm run build\n\n# 运行测试（verbose）\nnpm test\n\n# 运行测试并生成覆盖率报告\nnpm run test-all\n\n# 启动 Demo 开发服务器\nnpm run start-web\n```\n\n构建产物输出到 `dist/`：\n- `dist/lib/src/index.js` — 主入口（CommonJS）\n- `dist/lib/src/react/index.js` — React Hooks 入口\n- `dist/types/src/index.d.ts` — 主类型定义\n","readmeFilename":"README.md"}