{"_id":"vue3-ts-util","_rev":"96-1270d440415d314695ffa8e28cbf4c1d","name":"vue3-ts-util","dist-tags":{"latest":"2.1.4","next":"1.0.3"},"versions":{"0.0.1":{"name":"vue3-ts-util","version":"0.0.1","main":"dist/index.js","license":"MIT","devDependencies":{"@types/moment-duration-format":"^2.2.3","@types/node":"^16.3.1","@types/ramda":"^0.27.44","ant-design-vue":"^2.2.2","vuex-dispatch-infer":"^0.7.3"},"dependencies":{"moment":"^2.29.1","moment-duration-format":"^2.3.2","ramda":"^0.27.1","vue":"^3.1.4","vue-router":"^4.0.10","vuex":"^4.0.2"},"scripts":{"build":"yarn clean && tsc","clean":"rm -rf ./dist"},"_id":"vue3-ts-util@0.0.1","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-nH/CxKZ9II36NISSRVcYzRkFHQ9TbpP5MjBVUPOpbSJW99lS3taaIaLZzAk3Ynq78vOKLg5CIF+U+7AlMdeLEw==","shasum":"0cf60f11823e2c95c52349d5f5ff07290e1d3ecb","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.0.1.tgz","fileCount":50,"unpackedSize":64183,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7Q+4CRA9TVsSAnZWagAAbZsQAJIxw+4GX5yMEjOz0mDs\n3N7hRkzL3oyboG4UpG3BK8kM78hUvLc3n99WOUq1pRqjfAHII6GCpgMnJvqj\nZhk/8fLJdEdFulYtKMHIbPP4sM/zB29veoEmEa/QF7F+yembyitrZBJIfPsK\nbaGeK2erAkp55I7MLCYjJzdB5gPQrE/IE1/LssjVpS3XewKPeAw6K0DynsJh\nY5i8zPf7awqp2QqHAlhe9Qj29GD4q5UuJxHERhM7cV5TsNsNofjGlWiWF64N\n2d21ymx/lCL9i4CVchW6+bQCuizW4ZXeaykzLKQmmHFZOKSIdgdCQsGdAESA\n5Ljvg3ksWzpOMVdLbluLjHwfld7VgvpRWhiQsBRwX0QVIQgpajDqtDGQT9dc\nQaQJtKCywbh8Wp8Qa/YK/cYqqGJZvpF4AgZeEaAiSX3zchY/WUKSLEuuIGo+\nwt9WQEH5QuwITNUviJP3kLY1Slc/X9eLt5vsjRbhUk8zGtxizbz+V8NU022U\nqcB02j1XsA8PHVhMHZHhTbiQaSQ3KEMK/eMbgJW3kvg2Nqof8BrgrpA+n1Ha\nnzOo2agh7S1yZOfs9GkBfRDhEn+kQwoM0DBwGT354Mk2miDU6Y+/ude9t01T\nRdy6Z7nLK5WuTRjIjbXi7zjx6scKMMc6p4M42C59Cms9tzxbDguhPif1XpsC\nNMz4\r\n=Mjun\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGXADT2ysa8Jy5pP/uNQA6CGO89kVtNX+a1U3Fx1jxmlAiBvULij8Zkiu76QFlWvButw7tBr5CVreV82ciqEecmCvg=="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.0.1_1626148792227_0.6019120635094861"},"_hasShrinkwrap":false},"0.0.2":{"name":"vue3-ts-util","version":"0.0.2","main":"dist/index.js","license":"MIT","devDependencies":{"@types/jest":"^26.0.24","@types/moment-duration-format":"^2.2.3","@types/node":"^16.3.1","@types/ramda":"^0.27.44","ant-design-vue":"^2.2.2","ts-jest":"^27.0.3","vuex-dispatch-infer":"^0.7.3"},"dependencies":{"moment":"^2.29.1","moment-duration-format":"^2.3.2","ramda":"^0.27.1","vue":"^3.1.4","vue-router":"^4.0.10","vuex":"^4.0.2"},"scripts":{"build":"yarn clean && tsc","clean":"rm -rf ./dist","publish":"yarn build && nrm use npm && npm publish","test":"yarn jest"},"_id":"vue3-ts-util@0.0.2","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-g1omLg3vxYJz4Lw0VSwPzFojYK669dnlX2Ku+Q6EeGxkDS+Wf72MqRm5qxqYmbFVYRPmUobGJMVFeH1VR2aLrw==","shasum":"5c2605d833008e60cfe4243872ac307c9f04fb79","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.0.2.tgz","fileCount":3,"unpackedSize":7493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7TXpCRA9TVsSAnZWagAAHNcQAI7G6Ka26EO9PxHFo9Vg\niwlzqtucUgXAcCvFsOJ9CMjtiuEXeRVOK3Fx5Sz1lgCYMptfUoLdCHYAYd8I\nR8DCekINOMqvCqOygmbIYwD8PhTpVjeC7wpc+ktNttMFyp65FWscgjUkv6Fk\nUKvcfT9z7w6hpvrYNqzAjQ96OPaig+e2INEgKGy2ag9jaUfHUlhgQQMG21Ze\n1Ya5QDOLr7X6gE86Pzy41hpWKsW7j1fnVmgfw2WscRZPfURiK0OvMck6KK5I\noAWmm1nSuL/zN7q052tn8YQTegZW8BM8d/7GN5TPkA08XCwL4utTzGlKwjyU\nXvif/q1fzuBKA7YXZEqK1JkE8s2CpIZ6CC4kp/6nroKqgLby5hdiPeEd05H8\nT4W2UlaE0xYzl4NlfsQdvJlNaOEFQy4G1AGhoaK2lwvq8X2wiXZQ285g7lix\nSq/zAMgIoKCsjGx9+Bl8J4fT//G+/CyabvG38TuHO9GfiDIIUFfjkHvsF8LO\n3LYO0SoNxZQs/4PjUP0YGGvrbZQIOdiPXp9R9hfxmnl9Mcx7Vt2JEHjI1SdR\n1uEoosMw2FEaX+6ScDf88YQ5kX4yHPyS9TAnX+mIlL3kGTVLQl3q7T5zVRp+\n1wpD6iHWOnMKdBxnB7BnAhscjiaoTDGfkI+u7mEuiTgyapMjHR+FI+Uozg5a\n35o+\r\n=Xx98\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFYd8mLlctiBNi6iAiqBvltnRuDQTLpjs820gOeE6PWgAiEAokaM8BGIx60cogjNWQejcAJUfmeROC9vrkGHOYXa8Lo="}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.0.2_1626158568724_0.5570478937761494"},"_hasShrinkwrap":false},"0.0.3":{"name":"vue3-ts-util","version":"0.0.3","main":"dist/index.js","license":"MIT","devDependencies":{"@types/jest":"^26.0.24","@types/moment-duration-format":"^2.2.3","@types/node":"^16.3.1","@types/ramda":"^0.27.44","ant-design-vue":"^2.2.2","ts-jest":"^27.0.3","vuex-dispatch-infer":"^0.7.3"},"dependencies":{"moment":"^2.29.1","moment-duration-format":"^2.3.2","ramda":"^0.27.1","vue":"^3.1.4","vue-router":"^4.0.10","vuex":"^4.0.2"},"scripts":{"build":"yarn clean && tsc","clean":"rm -rf ./dist","publish":"yarn build && nrm use npm && npm publish","test":"yarn jest"},"_id":"vue3-ts-util@0.0.3","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-70TSGYtZlTFoJbP218jnLA3zNr3Q+aDADM+T5cIwZZZrK9W/nHrxNIBBQywW7IK/UvjYLTwoqwkAT6c/aTJUgQ==","shasum":"f13eced976771e8ca8d137b5c92104108a6712d8","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.0.3.tgz","fileCount":51,"unpackedSize":71278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7Td1CRA9TVsSAnZWagAA/GIP/1UmNlZ1ZoTuyKckElGB\nYEcaddEEp/CYxuCcGN2+UpI8vX4qCPe12+4E4NGC3xH1o219f8qKGjfnNqt2\nqqrxO6Bja90xWt5ORw2/4McRNLifgjuKDvi5YBpd1NrwlOwoT6tysepi3FD1\nu8gAHMf1jbW0HaAyl7KAZ7Y0ElRrauDyqEpP/V5TbyKDTXmO1pmWD2Q0+veN\nY1IUIVRzpW5HXsd6wKyKjuclNZKOO2n+0lf4nbmrLTy2D1D3i1h0PCrC8+Do\nq8LOvkGpAeh3OOuA/zJ3rK51CVu/CQA5xbJzh5GV4kHDaBX3wvnsmyCKOceg\ncCJAOnXW+qvKUC4dF4NDlf70q6TAHmQefdmOwM6ReCggDoAefFAHCbrGG7OJ\n26cRj2Qa92fBXMx0Wo1GzLQmDSZGmhSidrsuj/qctvgb7bdSoTo0IcbSAB+5\nSPCCkFU1PiqaEOiGKGY/OGowM9e4gQ/9RRrIMedtOzNG3LNw18mJffEc5JUd\ntAIbxn4o9fZIOITnplDNaJKIlImewrKYg/JYBefYF1VKS1qnkMUaZm4AbL/3\nNU6yUlvCHRylYgDyzVWDYtqGxDvPsvzwKa1dt5NjgQLJ9SUtG9Nuw5KF8yaj\nWG51ByJBBZu5Fv2/mfWhDjQvt1xsCTuZFzNet9rZaQqVoYWdGHBc58U5RqLk\n0AmQ\r\n=Stnv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4mOFjDaGP2NlEJNJk8xCDyEKTR/NovQYJWG7cR5mVvAIgch45E6sIJiur+ekO6Eb4Z0cQuMD4KRK2679ZIrF7MKI="}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.0.3_1626158964464_0.6866479673049517"},"_hasShrinkwrap":false},"0.0.4":{"name":"vue3-ts-util","version":"0.0.4","main":"dist/index.js","license":"MIT","devDependencies":{"@types/jest":"^26.0.24","@types/moment-duration-format":"^2.2.3","@types/node":"^16.3.1","@types/ramda":"^0.27.44","ant-design-vue":"^2.2.2","ts-jest":"^27.0.3","vuex-dispatch-infer":"^0.7.3","vue":"^3.1.4","vue-router":"^4.0.10","vuex":"^4.0.2"},"dependencies":{},"scripts":{"build":"yarn clean && tsc","clean":"rm -rf ./dist","publish":"yarn build && nrm use npm && npm publish","test":"yarn jest"},"_id":"vue3-ts-util@0.0.4","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-XaQn+xhAINCFMN0Rg/luY7IOglzzfOy0L2vNIS0HluLUirs/WVHsJKx2uFFgG236kxh8dIaxokYYP1vTdPT2ow==","shasum":"ff8181f4c969a357bd04dc5802c9197e282e39c2","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.0.4.tgz","fileCount":51,"unpackedSize":71190,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7TghCRA9TVsSAnZWagAAKrcP/Rn9KVH9+WTEY+oJV2np\nZsqmMrnLJo8rPsWWp0d55SlwMjy4jov8clQUG+oWEl2rMkAKyZBA3c8QVYrN\nH6SbaLhvGX7bWaqXwk7CMubfJ6bH3BKHKp3scZTOfSJbFxl4WE93lCzQ85ig\niBEGX21FbL9rUr8kKXuTmZJk+Ayq60sEMzF3Ru6NubU7WZ3djpSy0V9w51oM\nV1w6pdNwi94RfzfrEnp/P+JiOwcXq+PfErkE6wNuI2bZDqjQ6ZsB/fe8+FVQ\nkSpAveNIy/JY88xXvv/L8Rdi4E8+hmvcpAZ470N6GFu9vykY8oATRp5GJBRV\nzwNGO9olegM7FZOW9ROSNvISQymkG9wiHya2ZldQu9PKSpSPeP4emLruWBqj\n9IZiSlkzF3bfcl4gioyj1wxVdizkovlkPvfjSeRzkp99LhXj3P6V2jTkIrze\nL+Vofc6EopE2+a0Wc8rhaUFJWGy7atNd1ETp/JHw5XHgUduPM1edyESTTbMT\nyrtVhQ/nysP/J6m3hAKUV+AcfahEHWISmJMTr2uiexU4JJzYcUkzNvZg3lO3\nhlktbEqiZ48zOKvPF4RyzTi8/gKvn9HtFlcnBA2yOt4l36BgKy2qAfNaCGxx\ni20I2XoGeqNJJ3CaYQX+vL64F3WBF770/LEFqaULUsBlpCzPanUmou4Q+l8X\nJzfG\r\n=theD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEqDkW91MQM185FLJXNhD3VpifjF5Y8tbLsiwr/v4gxFAiEAgAIj12UnUZt5RVKwmyaUbjD6JNW4fTFR0kNtfcKTeIc="}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.0.4_1626159137403_0.07918044047696804"},"_hasShrinkwrap":false},"0.0.5":{"name":"vue3-ts-util","version":"0.0.5","main":"dist/index.js","license":"MIT","devDependencies":{"@types/jest":"^26.0.24","@types/moment-duration-format":"^2.2.3","@types/node":"^16.3.1","@types/ramda":"^0.27.44","ant-design-vue":"^2.2.2","ts-jest":"^27.0.3","vuex-dispatch-infer":"^0.7.3"},"dependencies":{"moment":"^2.29.1","moment-duration-format":"^2.3.2","ramda":"^0.27.1","vue":"^3.1.4","vue-router":"^4.0.10","vuex":"^4.0.2"},"scripts":{"build":"yarn clean && tsc","clean":"rm -rf ./dist","publish-new":"yarn build && nrm use npm && npm publish","test":"yarn jest"},"_id":"vue3-ts-util@0.0.5","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-s2muJ1ME7rkA39H7kI8Q2NEidqa9VvWeXNZS8ZzAdYCFM+jbt4X12mYAOXdbRmJ8p+M+d1mfnsRTss4MwcJJvA==","shasum":"770abf050847ed513825b02de86c4ac9f752b25b","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.0.5.tgz","fileCount":49,"unpackedSize":64471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7TjxCRA9TVsSAnZWagAAnJcP/35ktviUSMq0JdxchVmx\nPK18msPYJsM7X0F0a/mBiuBklCQg4EHGxYR+FPdy4Kt657NP32NYpAoeElGu\np0iIqqDpJL8ZUKtkp7S+w4SPJzNaeXs0+wKBoswX3cRXX7yLYh4v0Cpxs2bi\n6eqj0c1i3JxsexRr70Rsyawie+vZQApN7/6vKB3BBgFFUYk8edtkNH+QEmLK\ntVDKVodzRpiLb2VXsZOultPNb7KGB7cP5XM0SDolgRJJqwzOQK8ZAPyftdpK\nQoFdRNYIdRil7TecsOSBRdqTi7k+lii1GcJqF5yXDZCeYEh7qINMgVW0qt/c\nL1mLLz4YA6+mCZbL3HUOnmBBtMDir+X3xibQJ1lIfDygBlnAEDxeNSd/FAqX\n4H3JAoKGZ/Wyvub5L8ELrsEBhJ0vptQAl3Fr4EBO9a6P0GB4XmlFLKeDaMY1\ncN6CF+/XObm9Ygegzp3/otvE6iDB1+h38w2FADgkGBHSBh4HL+RXLCVMkw5V\ngBQMwEVbWOOJNTWNlwVNhX0WyAWlN9PvDfDJx29Hi+5P7f4NHoC9fYPvV7O8\n4PFUWmnkYw3MJsKiczEtW6cWzSSEAHUb19+xGdMVVWPeTEgkTMubN8wGlwFk\nhKEMt1RNK7fR7lTw11HH06JRUrVkXQvqDvUZ7Vrkz+D60rAuDUrwaXS/ibBa\nHzvn\r\n=oCoT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCees1TgaG2w+ORJh+f6vT0kOa5wUmGxRtFp53lUpSi8AIgF2u+Gk3K9DBIqUwkwbVCGR86Su1s8B8nJFm8IhnsRsY="}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.0.5_1626159344863_0.2798927132599629"},"_hasShrinkwrap":false},"0.0.6":{"name":"vue3-ts-util","version":"0.0.6","main":"dist/index.js","license":"MIT","devDependencies":{"@types/jest":"^26.0.24","@types/moment-duration-format":"^2.2.3","@types/node":"^16.3.1","@types/ramda":"^0.27.44","ant-design-vue":"^2.2.2","jest":"^27.0.6","ts-jest":"^27.0.3","typescript":"^4.3.5","vuex-dispatch-infer":"^0.7.3"},"dependencies":{"moment":"^2.29.1","moment-duration-format":"^2.3.2","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && tsc","clean":"rm -rf ./dist","release":"yarn build && nrm use npm && npm publish","test":"yarn jest"},"gitHead":"a7269f6efd30b753567aa14c2f332568838734c8","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml)","_id":"vue3-ts-util@0.0.6","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-cHjZWz9h0Q23QUBoXagYlHu3pQLx9WTkh2xbhdPl5BG6jTJES8o0GaodrmGIu3fzoBI+5QvyNkbsGtuLskr4Aw==","shasum":"392ba0d7643843dd6c8374089308e3e323661ab7","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.0.6.tgz","fileCount":51,"unpackedSize":64688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7UBTCRA9TVsSAnZWagAAD+MP+QFXkphwUa+JrgXIoaoR\n3czQ8v+GApWGsdpLHo47sny5g7jdSnq/hRJqm3B6GQI2s5i8CDr2zHdppV4Q\ngvnCS0YueGTfaIeU8d2et87asSc13G6sLwESCidf9k/BFsRZWBdFKfGA1kCh\nCSLG5hkp6Bm0h6b1o1YfCb9J5d3JO1Lh4DDE9dCL8dFKL53drYGsUh6NfAzH\nSrEzCpBwFZSokiJ1c/unCq5FPTT+RYki8zYZFVeys9GeJ04T6XmRiRcu59ve\nF12rSDpx/BxQ8VzMPVGOwMWMHbhwDmLYYCzROPXlfhSAp6Qf4xWb0Cf3qxOx\nlNI8Y0mXgzAeBg4l95vVE5AQ5+dBpRu5+9da4qcMRr2AvjjfeR8oCnUsbFNP\nRDvY+/ZWanfTCEJtVF0nLivS7tCzdZwxpWL5oviIV3b6O/Vp94+viSxCIjn0\nMnmvoiJyfVshbZxERXBlbp8/iFJPy+uIwHY0wlz6M2NHKMff1Fm0d+YSMaou\nG7fyFiLGXDlI0e3cDe/gEiHIqwN0yz31eF8L9ekNzROaDkILitUh9Sd2zSBS\nC03DYcjppIX8EcLBry1jI19VIhyKqgdro8VhR/80komEW1YYz9cPydId2zs/\n5jpjIb/opsf5XdlzUCPyeC26MTy2O3jyCgTMwj9SIFsiDVDU2Yj7P8vYrjUR\nUjJF\r\n=U4rz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDErrPo8LtC2Tt7B1ykyGVuCyUO3g2PoCem/gNVrMfgGAIhALvTJFueHAVGv9RXZW7DcAdOfUhNq01KdvOhGRjITZki"}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.0.6_1626161234713_0.1571957555750434"},"_hasShrinkwrap":false},"0.0.7":{"name":"vue3-ts-util","version":"0.0.7","main":"dist/index.js","license":"MIT","devDependencies":{"@types/jest":"^26.0.24","@types/moment-duration-format":"^2.2.3","@types/node":"^16.3.1","@types/ramda":"^0.27.44","ant-design-vue":"^2.2.2","jest":"^27.0.6","ts-jest":"^27.0.3","typescript":"^4.3.5","vuex-dispatch-infer":"^0.7.3"},"dependencies":{"moment":"^2.29.1","moment-duration-format":"^2.3.2","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && tsc","clean":"rm -rf ./dist","release":"yarn build && nrm use npm && npm publish","test":"yarn jest"},"gitHead":"a7269f6efd30b753567aa14c2f332568838734c8","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml)","_id":"vue3-ts-util@0.0.7","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-POED46k0NKTBX7nsFFX4uQ99JeROWx8+BFGOGjpXDeB04jTGr0v9GkURhHuqOxDLAZXpuJCpvRfqat6AXqD9nQ==","shasum":"c208938e74eb71ceb55bdf8e6719802b0fe03b52","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.0.7.tgz","fileCount":50,"unpackedSize":63755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7WSfCRA9TVsSAnZWagAAEmcP/249FuRqYfMUqKFg+gqz\neM1BGNVJa09t0vysi7RjUup0XAYlYllqFBX/q6T992gj/CCOM2dw9PgK6tBr\n/PhRGEQfPO/im/fgwxl9H69JPoAjowUgXCtdkqyUEz6vRcdoKmLf7zF5XfBT\nObalH8jQLHNAZS1TwbnBjPXVQzKwB0lM2HFH+hWHNKCMaNWMGE44HDO+WMmL\nD8r11TwBI8QyUaaG8BbBzPq/mPwLZKxbK2nBraC1SgmM9xQBTiyLkCydWh1F\nGu3Y0RlFH08+jsjlX2TZHYivs2F6SJHmpyZCpB25BitrQ3wIEzf9QuFkiGf+\nAwQ6riaXKCLDDRM42nZLiH1praN2M9zepd4PlyRJQQ7nw6pt92LFHHN8qkLJ\n1jH+kyeEOiJRs9/0s+T7OLiP/+QFMdBHCnWm30CtOyRtmRbE+h6qL7TbTJqW\nkJQxSDS268tMEwjbKg925vDWhnEtonuaIsKHe3OR8H/HXbz1wBfyYFAt2FDu\nqRhBvoS/xmctQrAo7bbEM7A1xLdtQFUynCPIQ7CuuwkAfqvunor7g9gyN+lI\ny7/jtD+2zDmchxc45LYXRx5ke+Gormuo7WrPssPWnWNfomY31RLPG3DH/MUD\ntPVtLoGHmkg5dk6EPvZ/8aAMM0b6g1VwH2kUP/CENQg/w36tSt0caRsAnOdi\nUKuY\r\n=PFq7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICMR2WVu2m5gGR/AK6czNnlUerXqNKFdjMNSDNm062wrAiAI5JScKLkdevpVEegBcW4AnUwYW2NS/hyrb0qQlf058w=="}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.0.7_1626170526927_0.7879211648607389"},"_hasShrinkwrap":false},"0.1.0":{"name":"vue3-ts-util","version":"0.1.0","main":"dist/index.js","license":"MIT","devDependencies":{"@types/jest":"^26.0.24","@types/moment-duration-format":"^2.2.3","@types/node":"^16.3.1","@types/ramda":"^0.27.44","ant-design-vue":"^2.2.2","jest":"^27.0.6","ts-jest":"^27.0.3","typescript":"^4.3.5","vuex-dispatch-infer":"^0.7.3"},"dependencies":{"moment":"^2.29.1","moment-duration-format":"^2.3.2","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && tsc","clean":"rm -rf ./dist","release":"yarn build && nrm use npm && npm publish","test":"yarn jest"},"gitHead":"ccec7d4e3b328c1dd798398c5866c9710516633a","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml)","_id":"vue3-ts-util@0.1.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-kcWRHgAkOlffNOuz8hv40S78FgUA0eZ4ipJ982zpv7JEBXku4QixqVN3L0Hcki89UGBMo0PB/Lih0oK5M5WuhQ==","shasum":"1896475a50d44a4f5e93b01cfb516d6e4c205ee9","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.1.0.tgz","fileCount":56,"unpackedSize":68509,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7k7oCRA9TVsSAnZWagAAlpAQAJFOdvl3/L7DOoaxE/bO\n3QY8ygFkwxF+tCCJedR5kDRIXipvBc/sz/ukTUDJnrXg7OJMYgyNGV8IazFM\ntzP4N8AmdF2vaY+NJGX9L0USClSNugCumWYup5XA0y/fpnvIVnz+tSYWKsWl\n0hMNU0+8d3j3lrq88cpA8hoS8Gu63V7PKH2/sTJbr9lJZGuFpvrnOJq9gNeF\nhyRszJclAAoo+pQYLPzQyzZkyybarwrahIzROwRBcnVSPu2LfLnpi0eZNU3x\nkL9eWjOd2TK7Qt4f/NpZGcwETpAgdY5q1xfZHbki8iQhAZkWA/PZT9JBgiDL\nalrD7dT72QAKJPWTM2pPxKAAd1XSF9ZRgcOEeMaqfjAXrihWKc/vDJThbX9l\nAgNwQhg/b829VE0PhjxxW9XFmOAjaFhEz9rdgRUHVmqceBV0UbypAzZ3gq+P\nPIp4ReT+dtS1KXnDxuHexUDToQVhnlDKWasgRNm5gW06qHk5QpfZY8cMwQdx\nmBCK0XEZSeMWWKjq92zMrdYcq5EbBIJIV7x+ILjS8bWH8JCPCxKgrZwo9ua6\nqBZn0ev0Se6zXSN8sJmgqzr494jOyZT+X3kvApxGOA2MzWcaExPxz2SxgbeP\nlVpT5jCFfP37UJnVT7/jG75oUX9HjvmQDPHKBVXkP974BfHpTgvUSzHGJxQe\nnqGd\r\n=UBHy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG3c8wi3/1cpsfVVWmeAW9H5aWBkPTdW49CDIq5IclltAiEApl3+YGBOwEJ1+AfdtQVJ2kYJbJM8LToVv+v0rc8sGSU="}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.1.0_1626230503777_0.10031424583740178"},"_hasShrinkwrap":false},"0.1.1":{"name":"vue3-ts-util","version":"0.1.1","main":"dist/index.js","license":"MIT","devDependencies":{"@types/jest":"^26.0.24","@types/moment-duration-format":"^2.2.3","@types/node":"^16.3.1","@types/ramda":"^0.27.44","ant-design-vue":"^2.2.2","jest":"^27.0.6","ts-jest":"^27.0.3","typescript":"^4.3.5","vuex-dispatch-infer":"^0.7.3"},"dependencies":{"moment":"^2.29.1","moment-duration-format":"^2.3.2","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && tsc","clean":"rm -rf ./dist","release":"yarn build && nrm use npm && npm publish","test":"yarn jest"},"gitHead":"9b1f69b9940e41421e2a26fcf389c91b6841d262","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml)","_id":"vue3-ts-util@0.1.1","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-n5tz9C/4IHEqZYxMn5F0HkdMx9qnh2kNbidEj9sNMVXNMRJTRgsnRJSY7pQ6hAoq9EzBCqYFi7VTZ150b89omw==","shasum":"e543dbbabefb53c5794f1ef7e39585113bac3d4f","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.1.1.tgz","fileCount":56,"unpackedSize":68427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7lJHCRA9TVsSAnZWagAA8OwP/0MsMo143K5LQoq/efjd\neatyuwLoP1xLNDoizFXFhGKSKA1MDcHi4ACibre30ltgGUsbCf+KcBq+dhLV\npRUPJQH7m73vuv3QQDZTZInfGLIVsFGKzyGwSMdedj/E/aypHDY9+WKEQVB6\nKJX19CksumHUFX1f4jdVZfAmsXbH3/IbH0Aj4fG6C+oTIt1t5mzd3hSOXqlR\nwhv0IE0FRwZd4a5kaCXQQK+W8Cz189YxlykK0jnXVKJAoYiDXlIxo7MThd9B\nBN02soqiC2Jt+fdSv6Xv5ick/tHBV+0S5xnwq1sam/hoCudnDGUXE6c7lKFr\nVIBdriXUYuJhSvFwuefVd3LwddRd3WPCTp8LmZnvULxNg2C+k6UTfATJpk6W\nwYa6KjBrBYh7Rqs3F8ybv6UzBq7toU9BcqGGwljsM/I2PMuN4nMC2CGfn2IR\nAjz/YWtYXoVk+zcEbr2G1lKSRGUThxlvyw9ZOU8znvRneOPJEm4cwEYzIonX\n1CEPbhI7Uam6FmBQxIHpEABZNSK+6+zg1z7dSonOS0vRUlocx7dz39BF8fbL\n8ELu/Pvc4kCWnzZTyZjMRB6wjreth6J3iyNue4Wx0B7sZbQPdA4l701FbYBL\ngm7DysWk0ZGrgMtmx+1NPU1qKNdV5vfdMiXdgyPMCn35vcUicO1dAgwN2CHp\nHIVF\r\n=kNZl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZ9IDREBC9OzvL5uUn2nVfsokOXElUZs4rptC0d6xMMQIhAP/m+TFqn8OMv/pcJT1RZ/XsXePHISopRe2UIV/i0rbn"}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.1.1_1626231367053_0.9951873415133852"},"_hasShrinkwrap":false},"0.1.2":{"name":"vue3-ts-util","version":"0.1.2","main":"dist/index.js","license":"MIT","devDependencies":{"@types/jest":"^26.0.24","@types/moment-duration-format":"^2.2.3","@types/node":"^16.3.1","@types/ramda":"^0.27.44","ant-design-vue":"^2.2.2","jest":"^27.0.6","ts-jest":"^27.0.3","typescript":"^4.3.5","vuex-dispatch-infer":"^0.7.3"},"dependencies":{"moment":"^2.29.1","moment-duration-format":"^2.3.2","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && tsc","clean":"rm -rf ./dist","release":"yarn build && nrm use npm && npm publish","test":"yarn jest"},"gitHead":"38dc4e88c4740e84b1d8f240fdf65b8aa77bc4f5","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml)","_id":"vue3-ts-util@0.1.2","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-hti2FPNdiso6CV1EhNQKgjnVns/6NWsJ1jvsdNig6ViYCMl0G/gtVuKXuGZKUKHfce2u3MrO3ZRyJ3i6gkFKpg==","shasum":"41f767656b3b7f21d4850606278cf1262646d437","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.1.2.tgz","fileCount":58,"unpackedSize":74913,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7pe0CRA9TVsSAnZWagAAlv8P/j5Y38ucyHgTr5OaJOOc\n6V9uxVp7uEWgAMQ9JAApwKnoL07ckVRljz0v112WB2sX01Kx/ZXf2VhOl+7n\nB6ll5Hlwv4O1/uZv8fJjOR43UVRfQKPx0Q0M6XRGW7ysgf8DV0Q0zPMTG5Cf\n7UfteOhs01CQJ8nw9cYZKSh3/m1aY95/NPPKXC95x0TfEs72Y2ez8HN/RrPx\nLllj4JY0zl+fUAXSu/ZeiptZeOsHTFx6Kqx1lVVkAt1j0rhc99Y7Ycay5vv4\nbLC8qlUzhMnq9msjNBQjrbGSTfGwMv3YRrDBZvoOOdVPt9HEx5+Qq56D6SNX\nRwsalLJXQ16DUHRqnFBrQb4DzIFTsMGsvGUG4xa1EGA4cR+S/Bm6YIbAhhWI\nL09J0x+g4yJ0fKxrySrBztfkLZZh1JVtIq3QrMNgljsYYbwuf3GSkLLXkkzL\nlPmh/LlLJZEYgDpPkxvflQfqvKFwPAhq3quZJ5qyiBHoWso4ziRZsNgJbdNL\nTeWGnB+gNPNO2PcZSVrEzJSyTddERLZKMjQf159Es3fykxg7tjlMzR4nr8qe\nWVg3TdB+aM4dnXOsgReSlc7RzvKJfU+Q0yM3J0QfNg+IQFSwdlzCmeXLJJAK\nuCBmgeA5/0jlDuS/YB2aRzmg1iQPIiH71o9/oz3Z9zsLcPGBRVjGKi4zzE8R\nXr9L\r\n=1+se\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC98xtr/b+vY1zTP2LLhJYbUHpUD26OqxoO2tgaL1jGLwIhAPQcaoK+bm2wQLhPuF9BhagMyOwqq2HtjBlbpxor9QBY"}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.1.2_1626249139566_0.8738555000629697"},"_hasShrinkwrap":false},"0.2.0":{"name":"vue3-ts-util","version":"0.2.0","main":"dist/index.js","license":"MIT","devDependencies":{"@babel/core":"^7.14.6","@babel/preset-env":"^7.14.7","@babel/preset-typescript":"^7.14.5","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","autoprefixer":"^10.3.1","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-loader":"^6.1.1","prettier":"^2.3.2","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2","webpack-node-externals":"^3.0.0"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && webpack --mode=production --node-env=production","clean":"rm -rf ./dist","pre-release":"yarn build && nrm use npm","test":"yarn jest","build:dev":"webpack --mode=development","build:prod":"webpack --mode=production --node-env=production","watch":"webpack --watch"},"gitHead":"0ccedfe0d759d52c8893b32451547dc1ff3c0368","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml)","_id":"vue3-ts-util@0.2.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-A3O57irsQC9lVT7gvBrdnbpvUKkdYkTq2cSPgS2DKSvC7zo0XKFEcaNomsnpOSPw06ztjTKkS79wAIFg/UrYsw==","shasum":"d64386c80ae45144f29eda20444f509b9299bb49","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.2.0.tgz","fileCount":36,"unpackedSize":50048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9OdnCRA9TVsSAnZWagAAjb8P/RtJaLC1xY9Q9u3JKDtz\nmx+eOKGruIqaFz1kfh3EzY5TWU6gzubO3gbyayXJhcq0Ql1a2De/lQQt28to\nCoVZRmgILuPe03gFvvOqFhs6hHG1wyO/LxBXyHkBN7SfVB3vCS9x58gPq7nd\njMnvwNIUfBaQMYDpuEH01AaClhAQPEa/wHwxB6O7Mh3qEJem93rQEosAduB+\n7WEXeXnm0IWJ6axxIFRm2HLy9NIQdXLpx61FkRCFafLtkiotafFxXJyPvCTs\nmFsYDkrGGkcWjuYdpDVDso6aoAExGQhHsLOPW6Irou1Ukv5bGiVm/On0wqPg\nS9ardOn09yqrTuO5Hg+ChkE+cfYGzRs7S5jw6VJfcYAKmYngvyeEiw8xVIes\nPfDjmJBam6VpQ/akh4Nj1j40ru/rfO5ooNjWY4GDc030ur1THzqZwA4xdHQr\nFLBJFnh6OgKBiaiMIG3kW4GpigRLHiJi2FjAm2thz7EnZdnCiozyBc9yWKGc\n9suvF7kgR/Rat/GTuQvaSk/C9txOoiLrbij3AHIXdwYhe3V13Kilud+l34fh\nemuAfo1S+23vYjsKsVGXKPy8pEzISXYA50Slienzpb+/9eSt52MWrSved4Fn\nJjDZhaVauTnt80sVY9tjOIEZtlW637kPMQZwUr6nfPuqBdDEg7HkRFvrjor/\nvRGn\r\n=/XuE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDLGd03GuNiBEvKRlWEkad/NiBjVMqdtzTLv71vWE1PAAiEAmGpznw59obu0zi4gUd3AYJ9Zb2BKQK/EQgDTuuL6ouc="}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.2.0_1626662759651_0.20188961616517287"},"_hasShrinkwrap":false},"0.2.1":{"name":"vue3-ts-util","version":"0.2.1","main":"dist/index.js","license":"MIT","devDependencies":{"@babel/core":"^7.14.6","@babel/preset-env":"^7.14.7","@babel/preset-typescript":"^7.14.5","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","autoprefixer":"^10.3.1","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-loader":"^6.1.1","prettier":"^2.3.2","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2","webpack-node-externals":"^3.0.0"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && webpack --mode=production --node-env=production","clean":"rm -rf ./dist","pre-release":"yarn build && nrm use npm","test":"yarn jest","build:dev":"webpack --mode=development","build:prod":"webpack --mode=production --node-env=production","watch":"webpack --watch"},"gitHead":"1f874abb29a9fa13aa20d74179d9f4ae11ed76f2","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.2.1","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-wSUNenG2VuBe+t7HGaMwPYLsPNkaV/OtLY84pX+SajoNtqh7NDcANL55hwT1k2qIj0vRasMC1tYYdYm5800WZA==","shasum":"e90802b0aef6a28eb8feb28f0270d6c82b9ed744","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.2.1.tgz","fileCount":36,"unpackedSize":50197,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9PUfCRA9TVsSAnZWagAANDwP/0IgNu8sqhj4bPu2IEuJ\nNatd6D6hOIMDR2YwluFxGiZNBjpfpqYg6Ng7HqrQtDMhkwtx2sB5AtGoyne0\nxBJRYBHLjWtmksWp7o8eMT8MIqRtNa7gCmfQiZalcsoqmA/A5EGqjeqCLIIq\n6NWS6iaeD+NicdWzE5U78z6AmGH1PNIcY6TAPfnBbzPZMF2nAiUpvvZ3ujUd\n1cQY+9v2k3VX2g4fDCwXRlIWWFhi50v8M6bgXabbaTMnvo0JECy8NMkaWhXP\nwl1PXrmZwJ+hbx9GHb5Im+l1/razCUvEyK16bSyQS0t64BjDQgbzxIug2UjJ\nZrUmmE/pQCT6/i7Nk77ANrUr11bdLhetviVDrcNLCNIgf508dgHmdr1HT7CE\nN43wZ7HNOQPUNBlldhmqSv+N0Nw62CvkOAVV0aZIxMmcEzvPe1Gn3KuBEGJB\nqDUhWN+CZbrSnZ7yJBJTnfbOQAf1i2mjkG6TrS7csegcTNFT69sw9asVE8od\n5K6ynL0Ad2s2iQIF1c4TZ1YRLLiC0Eplo0o3khgw2kZZOlIsc8oZomy88kM0\n5WUpBq0Kao3rS9AN1SnNlShUMBHke3pTeWDdGiLuYqqZxA4A9rUwMNSOXy6j\nNi2vQ9oGAQdWJGKfGui0nwvysYp/CktpUC66xBfpW5TJPV2p4Rab6rDnwrDO\nzFE0\r\n=LHKH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID5dinNZ9FtK/SceSn4KZb1TKZ+kJYY85/Ao27lldcicAiBG2fEY5Ih5zyROFn+7dwcseiXRN6hVbqfwovEs0dJ42A=="}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.2.1_1626666271829_0.6024809403364451"},"_hasShrinkwrap":false},"0.3.0":{"name":"vue3-ts-util","version":"0.3.0","main":"dist/index.js","license":"MIT","devDependencies":{"@babel/core":"^7.14.6","@babel/preset-env":"^7.14.7","@babel/preset-typescript":"^7.14.5","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","autoprefixer":"^10.3.1","babel-loader":"^8.2.2","babel-plugin-external-helpers":"^6.22.0","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-scss":"^3.0.0","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2","webpack-node-externals":"^3.0.0","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-node-resolve":"^5.2.0"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && webpack --mode=production --node-env=production","clean":"rm -rf ./dist","pre-release":"yarn build && nrm use npm","test":"yarn jest","build:dev":"webpack --mode=development","build:prod":"webpack --mode=production --node-env=production","watch":"webpack --watch"},"readme":"# vue3-ts-util\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml)\n![](https://img.shields.io/npm/v/vue3-ts-util.svg)\n\n`yarn add vue3-ts-util`","readmeFilename":"README.md","gitHead":"8f6718e788d812de0c5e4dfb3004b21bd62824c0","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.3.0","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-Poz4cyGw22ZPIcrX0k1E/ry/QxMwugwDu5zRKVXZ7qw+YFtEf2wfTwGs67Abxp3DNy1MFrI9wuca3DoNo6USow==","shasum":"016b3e6e5ef75e20c90d334dc09e155db4ce9508","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.0.tgz","fileCount":66,"unpackedSize":57386,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9psbCRA9TVsSAnZWagAAgxkP/3BIl6yqRad0UtNOvC58\nIxNz18atGCTH42c5xaxRtqhayyuowcHaiyYBs1wRxOlEUZpUE+Iv5/+PAuTX\nwYxfejX0dW6GjwGBIo1Cn3M+VgDtXbuYP+5OTpINwkPe6eF2Tfqdi8ikoUBb\nPNXgx5Ei67IU4jSMmJgHawN/+WnHwzEDrLsS+jk1KfmvbEgKTEm/KMPaEuV2\niEqqf5d67PzRmVBiouj3sNJnb70n1KlMqkpQaZ9TcP9NoXMogfU4l4wRhVfc\nPm5IxwjK5FsKvUqTyJK0tc9tHOShtrRdkuBBYmjLdOwYNoxklRgQviIQVtZh\nlZI/KrxRQXeFT3JBanCh5UylbzfMS9yi2AWKGMjYBm0zPve0X6Al2t8u1Ml9\nJSWeMfDrFyVqO4PrM+JkgiSmnIXQnO7XK8bT8jdSj9lkE8unLA4Kb4FUoHBo\nhkBjw7MypiwLsaI40F2G7Y4dPQi5ZKZSXsvI2vA2G6f6CxGMimIAkglvQ6la\n0iUgiCLJKKEIDqJG3E/IaBXpbgRUIkiNBFGxnZ8mR4q6yyx/YBr/BiylKnYD\nkmCyq3rHhItnMrCs8yRr/Ro290GjkOF6DQw4ucObpvmDxm4QSPo6FnDCmzWM\nng2KJZLWCM8J/Jx61prL3u6T915uVxZOBr1PPI+Z5Uwbv4all7x3sQE9EXd6\nE1jm\r\n=Z/3T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBwDXYOfiBgRfuHHAuRlyQm2bz/Z2Ht7anypB1wv7FADAiEAhnla/FGW06ungy/TGXLRg/pDcIcgYPj0t0qsZf2Dp0Y="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.0_1626774299734_0.34423026149270775"},"_hasShrinkwrap":false},"0.3.1":{"name":"vue3-ts-util","version":"0.3.1","main":"dist/index.js","module":"es/index.js","license":"MIT","devDependencies":{"@babel/core":"^7.14.6","@babel/preset-env":"^7.14.7","@babel/preset-typescript":"^7.14.5","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","autoprefixer":"^10.3.1","babel-loader":"^8.2.2","babel-plugin-external-helpers":"^6.22.0","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-scss":"^3.0.0","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2","webpack-node-externals":"^3.0.0","@types/rollup":"^0.54.0"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","pre-release":"yarn build && nrm use npm","test":"yarn jest"},"readme":"# vue3-ts-util\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml)\n![](https://img.shields.io/npm/v/vue3-ts-util.svg)\n\n`yarn add vue3-ts-util`","readmeFilename":"README.md","gitHead":"8f6718e788d812de0c5e4dfb3004b21bd62824c0","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.3.1","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-teRjUmUKRH8nKAh/8MrIvY2LxoeY+/kQ18vphpJvqV4gMJUfDlPA9CmB8lLRCmIS7NMHCkmIEdjpWhDH+RPTvQ==","shasum":"9b751b55a743cf77149eb2a3d3e1d646114fd30f","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.1.tgz","fileCount":93,"unpackedSize":117377,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg95kSCRA9TVsSAnZWagAAki0P/2o54USYpsYfT9CotYC2\n76TCDm0iZzglOvDlbxwuoXpp/Bjqs1I5ES4s8OPKeCFJ4udaTLsnuzBgZBhN\niUn1Amd+fyYdDB3WLwnMYyDT9XZFF5NpmmaPiauOaDdaBe605P0byE3Hvk2t\nTvdcSmHy+8rsapncS0mRjTXkwA2w2RWP10+Q/gMIc7LAPXhqpxD5Pq3T8T6c\ns9cUt9xtBsULa95LpvuhICLDwC6giyvS+XArokikYpkCkXBVd+AggkIl/t3M\naADYI8/Z9XOU+4Qaq/VYpAMo2DMtmHqZGXRlCsX8gNUQvp2LYKRaKoaXR9x0\njRqvK0eQUK3VnKil7BVDls7ZvBacohf4ZZqrsK94hLlFaTxS4k6Tq6WrpYQM\nfJD0jaYdDldb+q8OUZPdNpejjDdBt/pMpSFIPp5I1kRSW8L8YsZyJIjbkDyP\nzglAW5Pr6T7CpjuUUG6PHStd2QWXkdx+jjoAR+Po3Z6CFNXWR0QKvK9Am1f2\nS7dfmujwL7RBe5bZECed8Q2b2uuXj57L1Wu7sDY6z4JqJLvBrYlLhB0C9NTw\n8Si2ZOQJf3xnAydVGfB16vZ4FQvl6p21yKlaxXRef2kfrp5L/55wlmlR1Hhm\nwjWpOLc1jNECp2yUQ8QwLZArMA051ZLMKmlhvvyyYJqVpQiSijYlHv051VOL\nkJWF\r\n=KQR8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE4CKFIHu+fyNWSDt72vMw0aDYbOh1XWM0sCaGbs5mViAiAuMNPmykfwz3HAPN7+7NauHWy1biwiX1Ia780fI41wbw=="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.1_1626839314547_0.14076634652691933"},"_hasShrinkwrap":false},"0.3.2":{"name":"vue3-ts-util","version":"0.3.2","main":"dist/index.js","module":"es/index.js","license":"MIT","devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-typescript":"^7.14.5","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","autoprefixer":"^10.3.1","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-scss":"^3.0.0","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","pre-release":"yarn build && nrm use npm","test":"yarn jest"},"readme":"# vue3-ts-util\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml)\n![](https://img.shields.io/npm/v/vue3-ts-util.svg)\n\n`yarn add vue3-ts-util`","readmeFilename":"README.md","gitHead":"2e1f62eece0d41e9fe641a7ae90f8d664b2e03c4","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.3.2","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-67KBh3dBWTfxuzt1yQqrBZXHq3ATCXdQ6oHl+JNRae7GaOdtjVTcwIb49YOWoMDSXwp7mq2jNHoxtwl5ANyTlA==","shasum":"78fc48f35e1da8f29162dc7f723895253794987a","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.2.tgz","fileCount":107,"unpackedSize":141353,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9+ZQCRA9TVsSAnZWagAA1q0P/jbCbbNwtl1lcgmpELWG\nByAtNS59bcLfJkK6I5qIfDHECFC0WR1fGAKb8ohw6rKfBEKYtxTUJ62PdvQi\nVzn409gxIMLehdDU0U3g8wRcFpwSRiyrQHedrg+ha8ScpV2vDQqgTuPBdXux\n4PYCMSHuZMvGc4ZSGQV3AaeMUc1fE6ds7c0wAyI1PAsl5ZYXbzDYmB90EPdj\nj1/nZhZsdhmUHoWDXLBxFc6aphTUhp5S0Yje1WJlUOzu/+XQNgWqo2BJzHD7\neH39JJ+YXyzFwz1GlidIYRfc8oFF1kkYtxaeK4jxys34ucHAxFqplR39wM8s\nljZPbBtQYOMfx/tjWdThd//TAsy/FvzEzC466pSEJZHklu9kyRWATZk2vlOk\nMhr/S2fVRMGBGXeRhjjM5KEslQ6Peuv0wZcVytXPCMalVzKzD659HUe/Gmnv\n52uFV3o6NpCLg2fXi/93rVVFfE4itRzO3RCaoFDASICha3m/H0BJEX2ZTulj\nvB8MBBj4X7Gl/KoX3+GdC+kBZheLl5ucixRh0vQ1zeuf7QRGZ+oLBu03lAed\nIfkkgjs9WPrrcRHQNEY26FpRrh5hSfbhVsOIGdLMv68RcjV0jZ4wg1g44x6Y\nrR32z77W7TaHiia6JagNwQWIm22LeZmL7DQjyIn3swQEbchIhDVZF+IU9bCE\nVOKw\r\n=P1d5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNpUHi4RyzLdhj8Ka4xEWevTUHlqciHmuntgmQjEkbOQIhAJITTJaWWh6yx9Wuz+YLsQ8eKaEbemoku3Cyiu6JgnnN"}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.2_1626859088175_0.9685214247084719"},"_hasShrinkwrap":false},"0.3.3":{"name":"vue3-ts-util","version":"0.3.3","main":"dist/index.js","module":"es/index.js","license":"MIT","peerDependencies":{"postcss":"^8.3.5"},"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-typescript":"^7.14.5","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","autoprefixer":"^10.3.1","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-postcss":"^4.0.0","rollup-plugin-scss":"^3.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es bundle.css","pre-release":"yarn build && nrm use npm","test":"yarn jest"},"readme":"# vue3-ts-util\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml)\n![](https://img.shields.io/npm/v/vue3-ts-util.svg)\n\n`yarn add vue3-ts-util`","readmeFilename":"README.md","gitHead":"d5bb85c5a42a418267d5dcdff2ff84935fe0dc0f","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.3.3","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-PisKgp7vAQAjzvbl4sxiw0RzUtPjiQ3X4AKYrz3taS0UiFYGeeEtSR2oxN/f9bLtEtq1viGWvE9BHPVttYoVWA==","shasum":"7559eac303bb77da7748984ae2ea1635976a39e6","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.3.tgz","fileCount":70,"unpackedSize":136541,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+NovCRA9TVsSAnZWagAAnJkQAI3FhsZy8w7EjEYBmGoj\ntp77GgSFELyOxGG7vdXQWuPHecreSvzKqlbEF09NTTqGO2i7NYqRJygnRVFI\nZhNk1NgiOvGMWlkzZx70IsLWSUL39HmSZhHMVRCH2c7PUQFzORpCUBy8ECJo\nqoZI/52QY+1EFIcDqvlX5ZArVhoXKkUi4GAQDvJb2n1QJmECeMa1+PTl48yV\nnQ8ZB+LTZ/2qmI+9bFIisN7K3ooBVc6vDtJkKcTRsJ5LgWFYAoJxjfr4GcaY\n6rqZro2dUqPO8KfKAV8XkVTw4AbqPqrETvtOexDMn7ji9+6W8E31+epS0mDp\nRJ3bP0zHPA3sK5w6qPQ8GwjeEyvilnacU6VzouqnNm2Zn+kVGXbDmiBr+LEP\nzfVsR/UDf1BWTsiWAPKEoZ0+XoAr17lwZiuW+JerlEp64OiD7NULVHN2rBVb\niklZLEPQTxv6MqdwSr7qG6nFrMnWTPBEQRFehtI2Zc6tNt5dbga51rES9Muk\ngUbxSDfswsefPs6iYNnWUYVS0CpC306NJAcCcGGpx1Vl12Q7mOVRLMvvlpVI\n+55b6LEm3XcPT+4eoQcoeXTo4p5Xd+SNIRrdUkgV7jw9RRlfkFgxwlWhl53J\n01Rkvcan65Aw3rd4ZNuaoqYFASQdBVWn2VsS5szUPY0G9ftdy9ndb++kWnUP\n1fz2\r\n=vvNn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCeGLmEth+LroZ7A5eA7hGTinMMokNfrD6l5QQlWQXnPgIhAIkvlwmWTWEE48H8MgX8yik0IGYkVefts5++RZBoLawv"}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.3_1626921519221_0.41401511098478117"},"_hasShrinkwrap":false},"0.3.4":{"name":"vue3-ts-util","version":"0.3.4","main":"dist/index.js","module":"es/src/index.js","license":"MIT","peerDependencies":{"postcss":"^8.3.5"},"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-typescript":"^7.14.5","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","autoprefixer":"^10.3.1","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-postcss":"^4.0.0","rollup-plugin-scss":"^3.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es bundle.css","pre-release":"yarn build && nrm use npm","test":"yarn jest"},"readme":"# vue3-ts-util\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml)\n![](https://img.shields.io/npm/v/vue3-ts-util.svg)\n\n`yarn add vue3-ts-util`","readmeFilename":"README.md","gitHead":"d5bb85c5a42a418267d5dcdff2ff84935fe0dc0f","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.3.4","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-oOxELFTE4pn1wt+e/c7oeDeCID3WE3ogQXhLHwiYatDo6SXndEx+asgc+FpISmIn98q7ZJe6JPc/E/1X5pmIrA==","shasum":"70cbb716e996380f3090df13242998e2aa109e43","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.4.tgz","fileCount":70,"unpackedSize":101520,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+N1iCRA9TVsSAnZWagAAIHIP/jdEaQK1t87HKWtL8eX9\nH1Bnt2tBkbYdX0XN+tviZ3rMX+qqOJsEOynbM8YMhdemmjMEYU8yUbYTWwoH\nsilTm8eHPux7AvGZInwdH/lWCf00xsjAMulfYZ4g5l3Oarf4pCBUBceHmdaE\nxusKOuBJ+0tPiKgmdZof0cRPQMIX8r5o3LduJ0EYe2ljhU3fVCVYsbJoPM2I\nsFHdZqT/gRxhyW6B6AZvrDiadUn/iZrAqjpZlztmRFJjH4/rJFbFSHDQxFOb\nxcVFxwnffm0LGGwQOMemip/djSeF1mDKgbUeOnNjMz0mRaEtQhL/Lmad8oi/\n7elTyiP1OrXEy38PsYeK6vrouzLSW/bBbUuNiLHIjADPRfn9TCuRSPzP6+Mq\n4737Hnn+DaK/EYSXP6n7NSZsByhhTV8+Yhu129qZ0MDRAFY9+exrHaCRp/g7\nMjcQDiH6nSJY/dNPMjcfQADifu+6WuzVlSmKJLwMhDH5nkntV43t5y9pJG7Q\nDUlJ0OefM3O7jlYla8KQFDNKQGRK1JHPOs3IbM+Yr4c2Z5BEz41Ss98bmg+5\n0fCftxZVpmdgx27C56pJN9fjzMbsytb8e4iscPwwtP8+Kk/QtRQgZgDWd/rG\n2s6nuD5apyHpj6Yp3BNiE9KZE8fhFiqZ9vNliLbLwBp7bVzo1oXI8pmsrMcW\n6H5X\r\n=hJSL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBr0O11djb/kmeuiVL3MPsvytDl/wdeemqA/OdFI5ztJAiBjT6x5pAEs74tgCuZJAUKBueiv0aIdyFmjBdMc7Z02Fw=="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.4_1626922338068_0.9104764292097856"},"_hasShrinkwrap":false},"0.3.5":{"name":"vue3-ts-util","version":"0.3.5","main":"dist/index.js","module":"es/src/index.js","license":"MIT","sideEffects":false,"peerDependencies":{"postcss":"^8.3.5"},"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-typescript":"^7.14.5","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","autoprefixer":"^10.3.1","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-postcss":"^4.0.0","rollup-plugin-scss":"^3.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es bundle.css","pre-release":"yarn build && nrm use npm","test":"yarn jest"},"readme":"# vue3-ts-util\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml)\n![](https://img.shields.io/npm/v/vue3-ts-util.svg)\n\n`yarn add vue3-ts-util`","readmeFilename":"README.md","gitHead":"d5bb85c5a42a418267d5dcdff2ff84935fe0dc0f","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.3.5","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-xqiXwcg76Ah/tzi05wCYrwZV8z5ryo3+dXwVKyuJ6k0+e+fJ/vJIXcw7btQHty3EadnLTmjBDFZC1VYavtINYQ==","shasum":"8a8f3320f4ca34fac2545a6147c7f60ef50f29bb","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.5.tgz","fileCount":107,"unpackedSize":144336,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+RSzCRA9TVsSAnZWagAA0dYQAJS4sK3wLzFzYWVv8iIA\nhiBp/Q36UfiU3UzTfQq5l33CiCtBtQffi+quSDsdh5xdWFlO+RdCRsjM62ZI\ng3HfXz9+iKL5I3abbeYWFHKiYU+a9NLaOQmtyvPjU/D4uKmQ8EDH2llYtPrN\nJtdYcQZmhrSJtD+GLJD86qpF3y6Bz5RO57AjaX4kTifDmHR02C5+ulMVhm4k\nj0IDf9UgE7KhsorlzxfH5oV6Pt+NMboLDdgOG8FMM6FuTAhInlJaS2tMl+fu\nvuEUMN2hZsTIXYXV4yH0uMpGYr+fJSxPM00ekJPy2Q3VVsXbJDbhQ0SqLceO\nX5ymu7wB5Cb5Ua85IeVKOBpNPsGMJBsPOceYpKoaDqbOY42IdnNgnaozbfq2\nyxyaXkhI0ecQ7YRo+coRKBsjMJN0tmr+NQLYm0w2TnshCuQQHBnVXSsBtV6M\n/RIOgyg3pBIv3Qm0opO2qFA5qg0xJ1UrMLGDP9ynXEpx1srlWfDhYdVAjSV/\nuRNn+6aaQczN98agRK9M1ZyuMAzUYQROxL0uW0d56OZDotW+vJNHjPpmHhIw\niXFr9+z5hE5KLFuoPF/W4aj3BtcofAa5BZT/2WUqeT2YxpG/K+Z0vpiDKWAt\nB1SJ7StdzQwynAdPE2firq68DEeRdfwcc8N/OnW+++0azdeu82TNfEA9IdEN\nSyyF\r\n=tYP4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID8mEm5zIZKKzalXq4JSekUYFMkVcGG6dwPQwQ3egO+XAiAI9p/Gk3hjVvHoHXYKiUShn37nzWhFxolwFhabuqLEVA=="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.5_1626936499241_0.9320279495483219"},"_hasShrinkwrap":false},"0.3.6":{"name":"vue3-ts-util","version":"0.3.6","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":false,"peerDependencies":{"postcss":"^8.3.5"},"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-typescript":"^7.14.5","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","autoprefixer":"^10.3.1","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-postcss":"^4.0.0","rollup-plugin-scss":"^3.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es bundle.css","pre-release":"yarn build && nrm use npm","test":"yarn jest"},"readme":"# vue3-ts-util\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml)\n![](https://img.shields.io/npm/v/vue3-ts-util.svg)\n\n`yarn add vue3-ts-util`","readmeFilename":"README.md","gitHead":"d5bb85c5a42a418267d5dcdff2ff84935fe0dc0f","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.3.6","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-037+VaPDDKGppqov2Ds1JwmEbTW/WD52Oup8TWnuB7W+scXlxb0eDWzlh8ePRBneq7H4HhWw2RHqpoA2U8EO4w==","shasum":"16ebd7afb1c4ed6cef9d7f570c7c1f0d26c963ea","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.6.tgz","fileCount":107,"unpackedSize":144364,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+RVVCRA9TVsSAnZWagAAwfUP/1MWzAumrvp2TTFqUE/s\nQuLcwFQzyksyFPw+nD0Sa9tg+4TLUU2QMS18Y+R4+yFUIbtlYRfYaQhz4yL3\n/i2uGYYW4y6JZ98dbW7eLCeOsTczg6RjiJbfC1BtJd5kYJdeQ4jAIYNJyMCB\n5fTgexGljNpj5q089CXRyICQ2A0JjALEjb1ZVzJoy3aJTgei/I/9fc9RGH+O\ntwniVx6CnuUpIt3nDreYH2k9iyGru/coAz0z9ypeE/0fhR8GQyT4fU12875h\ndjgxV0JCXkYzVdOqLmuL4wpGdFpwEZnnuezj0wC6xvNa6m6pLWPgcE+k69HG\nAB5WhzTTO5LKNVSYg5HOQZJ+q+9UqcBwRO6bz1Y8HFOUFzFMeqIvIlISyNVs\n0BUMAYajfw/cw2xd5EbiY9r3wbonbFqh+5DSSeSWoUf6tG5dZxIfB2AmAAsX\nZpT8aBtUBehVAG2XlSuNBYpXl8O0SVDwBId2dZnEr+o3SCF4woh+jiaq6oni\njumQf0ANtm+4ZP2N4PIVKDWzh+oHT7kBeXXMYiMtd5SxZB3Ldr8YtusMO/bG\ncDBjRC47Le8ZbjDhaXSfLAr6HqA+2t0AaS+FlErPMYli8ogV/7WTqh5aT/jF\nex9NAWAnBz8cRpQu5DMD/EIWNpNcFJddKvV58/Ca/bWOi98duB7MeU076P6a\nRP1n\r\n=k/V/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVlMd+iD9o/9k9zPd38FUMh2SHVViWFfWee+oW4nMOCgIhAL0TGjlfZAwdF0H0gZ5yxeIDA8T9lJCxAo+hvIC6JcFg"}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.6_1626936661159_0.30909135068499416"},"_hasShrinkwrap":false},"0.3.7":{"name":"vue3-ts-util","version":"0.3.7","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":false,"peerDependencies":{"postcss":"^8.3.5"},"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-typescript":"^7.14.5","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es bundle.css","pre-release":"yarn build && nrm use npm","test":"yarn jest"},"gitHead":"d5bb85c5a42a418267d5dcdff2ff84935fe0dc0f","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.3.7","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-xk8cSG0lq8YpabtcdnPUeqvVtyf9svD7LD7RvpHDC1HYX4UQ8DQHnjHI9gSaFO+mW0LJAkfd9VUmSXKJlEJcxA==","shasum":"e0deb7d404fe4096a47f6459b4ec61eeae73732e","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.7.tgz","fileCount":107,"unpackedSize":144135,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+TBKCRA9TVsSAnZWagAAZ80P/Rtt+RTa2pEjSZ2cxEX0\nYnOd+3WaERRwc6DIG7VCdyJPZ70Zg/btBgOk/usMnW/khswcg4xI1+H354fb\nvkL9L/eoPXZoe++rXRfjE6JApV46Lt0oGdB/phOD6QCegPM7HrGSe08qvik0\npf12IxnueCg2AtyiSFNJ7gt+I+TFH5NZVYlYjcp2bD3k8DaG3DxUpvXDRJCf\nuRoX8FsongRnoVpb0w1m4uLIdqxSxI+gm83p2/LhOLDBH0wztopG2HcJj4dj\nd9pI0aTpTTQ4PxCTKzhg7UAhPZq22p4cJwsDVkoCPO487VI7VMBVgCIkzh61\n4450RSyVfskOwBNUeIPBofvBbh/QAJfitNLO30BKV5MZjiwKLUdtWFB1ZX9/\n62nngheA0azhMgtW4nmB+Zd3zYPox95rIAROVf+UoNKwcm7ZySWlfS8TwuWv\nfhChcUkQ7ZmsLgOzrAl5fS9kD2PDc0jRBF0kWW1QbymTG58jVFKayjoYPMmA\nd9rxxdoCk09fJGKoEod4k7jzlj1si42Nxy8yi1ISNiDZQhLDkeJ6YSX4pn/S\nIQSEtTVLYp8E/PRYcI2hqyNhuVWkuO+fL3D05XGYgKWjhyDq2ThTThB2fm8T\nwzcI9qD7/BdkqVmDrl8D8HvTnrSf10deqpveDkVrHGTbtwSBoyPZyHtNT2Uq\niW6D\r\n=Y7md\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjgdGyqpJsc705anRaqgi+bc2JFPZ1Wj9ZSgw35xXooAIhAJqmKgq8lUy8jA06JsZsfrd07oBYI71shmYlQNfzR4vA"}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.7_1626943562174_0.23641518649513227"},"_hasShrinkwrap":false},"0.3.8":{"name":"vue3-ts-util","version":"0.3.8","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":false,"peerDependencies":{"postcss":"^8.3.5"},"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-typescript":"^7.14.5","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es bundle.css","pre-release":"yarn build && nrm use npm","test":"yarn jest"},"gitHead":"c6c05564a5c34057877c1da401245f754e86a033","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.3.8","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-9AZ97UUDRJ+rOs893rmxJkyPRlUblcfojYPOIos6GycH/6trbXaqQVmpmR8jjDL+nE1+HUs6RKgAObc11glPpQ==","shasum":"dcfb371604294fdb64153c0bda6dd6007f7336eb","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.8.tgz","fileCount":107,"unpackedSize":144135,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+TFmCRA9TVsSAnZWagAAdAsP/jz6hsCkCYNZNOqnUR9K\noi+ml/3iN+9V20UyVD5ZnPvRtgyeUScsfj/lOba1LEbM35fLLf7QbBnQHM0D\n7JvBc37imHy0RnSct+kUnzD9EP1zLClIU3imW3NiMuWzoXS5tpq2depSV8Hj\njjecBrSil2a+fmq8lTqo+nyRcB15DnC3KCcqyy1fmhcnbZrow/QobyT7qpdi\nJAd0qdEzxZQqcgEAaRllacU0/FSAMkmlBG9LkVrW71FIMWVKQ6A7ojTpt3w2\noinho1IuW5nUBdeFJGeKQRbBIloCaU/fFR7kupeh6hoQRu/xEUHmG8dvzeQU\nmpkBInMgfYs/8OjIxWwOkWSL4AtuIS7w9A0OsoIgJMzUY/s1/0qJ9pl+zlj0\nClAGMi7vCpqcuhGJq6SWxXdZHpZK262mBYRSdiciiMHk3F98ujiHRzYduP6O\nS4VWhcqUxkwoY4Pmg8LVJQhQz30e7eHRem7InHcxIRSCvUyT/ZVcBhcfQdZU\ndOLZfYWDhx8/VWm8civ1O17VQAhVQAVbvf/Au0AcVBCIj/fprW0xRulO/G0i\nqOpjrXHdXCV4GDh72VmjBlL2k55IrCR+t5ZfSCtH6gPW4Br2QwQfAgYqk+C1\nV+gbWy5rjjVjEsXWlxCY7MJajfgW92evSgdJgD0rMxy8V4BRwh6BRAgHb0qh\ni267\r\n=xhsE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHQTZfRhqnMKA7ThPHEVDzN8So/KHU2KNoXu3j9G202bAiAcTVAIxUcaOoSIs+uVIJ4cjVi0Enj8YArMIw3mK3rwdA=="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.8_1626943846518_0.04718267073522697"},"_hasShrinkwrap":false},"0.3.9":{"name":"vue3-ts-util","version":"0.3.9","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":false,"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es bundle.css","pre-release":"yarn build && nrm use npm","test":"yarn jest"},"gitHead":"658f9a6d05871136fb01af7c60ec762d47c4cd21","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.3.9","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-D52p0vpz6GeUL4jTNNgaE4aVw7PUt0of31WTi5J+2TTU7fXm+pZNCH6tXn+j9mLfd1YhHSpNPp5ZgG9VMUAKkw==","shasum":"c5433bab9f93a7ca091961f8e2971ae8f594ae4b","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.9.tgz","fileCount":110,"unpackedSize":145530,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+nFTCRA9TVsSAnZWagAAGYUP/27r1VGidSXPlQH1vpdu\nPSpZgS3UTVSMmBZ64ZncVyeyHEMrFQAmW0JfETGVPrcfcUaSL9KU5hmwRN64\nM+fTFtWJYmazIpDMu80QyjaztacmPIqFn23x1g+4rAnoFz4sn02i4dGwQMV0\nWa4COu/U7JGyb3fNqt7Kxb9Ew6i8EEIIr84knAfF24B685qW/LeQc/34UiV6\nRwO6EbIGdLyAS6s/F5bxnu46vh/B7DuNbXMz4JCKvoiEy+/f6XcPejc8iEkX\nTTLw5bkSSEHU7KzbATEHN2UL2cvyUNrg3mPPHALVJFJ0NriSAeiIFU/4tqNu\n1z9FV27X8GaGK3q7i/xG9uauv0YnEJvAd9MOz3poQE/KKpiQJ7bjdvIk2z+g\nWUExMdAo47h5dVeURd1tlKClBK8hjDlDu3pQZzPz9bPFOntbbxGaz/v6sQZo\nuMWnd5MkLWblkIx5NfA1gNC+UgeyXt8LF+zfgO2xUpksmVDHGydnAwuQimZC\nNrVLwfXJJQSg5FAxzGrA2wFIluva5ioIFSePP3y5vT34ITHZ1/XhRk/+QEz7\nBva9LSLwEvWFJslZyyMl1peQaCIvG/AfRIdkb1qsuVxwb9NNTPbo1g9aurIO\nYDJK0RqlUxvROoOe4JsneL0/Me2LW3+/Xhnpb/RQXnWsspjJsox/4Wls0yUm\noQmE\r\n=owf5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAjlfMa+vViBod9fxJ1QCMb+lZn6KOvglB0WnkWo/bZvAiEAlZ+ufqQmceKzERKBHZ+Vq5Pr4TqaB1iX7CfepXguZFY="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.9_1627025746958_0.3386411483786156"},"_hasShrinkwrap":false},"0.3.10":{"name":"vue3-ts-util","version":"0.3.10","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":false,"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es bundle.css","pre-release":"yarn build && nrm use npm","test":"yarn jest"},"gitHead":"658f9a6d05871136fb01af7c60ec762d47c4cd21","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.3.10","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-sWTE35HUI7f003cwrZ1k0qkV9PciQefHj92e4JbvDIgDdLYUI8gI9gn34BUvuxRaO2hYFqAubaTzTUoHwM/omw==","shasum":"e288a3cf6d8fdea99064ede62008f946c7b64ffb","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.10.tgz","fileCount":110,"unpackedSize":145705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+nNfCRA9TVsSAnZWagAAKV0P+wVKJ0YefKuw5ufcHsqc\nZx3xtUq960nDJVbf43adCzLCpJH34G7ZLNxUm12AnCHi5V+WSc4OsBXLlIjR\ntZRVYomjzg/eJQ3FOOG2vOcCwnA5Ls8cigLXxwZJoqX3qXJk06HCgT2PRX7O\nFN8q6bqaNKNjYX43OBNXEm0LrxDyKMkZ6ONFjAS9d1B0Xpemed/FRBWdB4mc\nKHPiXQxQVquHYM0j8GLQTow/JPJyf0GtnXseJdY+J1DXVERQu1TayUynH4Eq\ngeDRoPD+shjEftgPaDTuR4dTWext+DekQVK6MohVl8vXD5HYVj4azkx8i9Zn\nRd3H8zX3ihYOWstXY+0C0lU+gtBk/vlpAVkRFKw1c26dQSkX0uB98Q3+Hkrw\nIqekldTGNakRkRJIrrtGNYIxSFYIVefzp4sPM2Ci8TXUIVJbQVmtiUgHBSLB\nrcciEeeOkSHnLC4GQd0S9uHyT5Qp/awHuhOe0mgknvamR9QrQnamOG5QirnU\nMs3C1R8ezELL7NVfOyzWppUgJudJwdOTE2easyYHIJ5fGCIrCEreN+0xhZqR\nwP0v0YpdL7/YzY0Px9jeAibv18aITVpOdc9w+cYKmo2vj2UviWdk5fMxOZMO\nJGLyTon8tAuWaxmVUb01jfCEYGZqeroQmqhcgbU2xdkRDUmVopx2OK7SXAr2\nvRa+\r\n=ofz0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHbOd1zKwIHct+CCpnxIhqdaGXWI7pYHyXNS1FAs61MQIhAN6evEgeOUyiOz8c8Ok4FWGRJYcenUyD+mD1usDB/qMS"}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.10_1627026270879_0.5185711518186873"},"_hasShrinkwrap":false},"0.3.11":{"name":"vue3-ts-util","version":"0.3.11","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":false,"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es bundle.css","pre-release":"yarn test && yarn build && nrm use npm","test":"yarn jest"},"description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.3.11","dist":{"shasum":"a264930c8aa5ff74bbfb3f427d97b04d74b21561","integrity":"sha512-dLoKXyAnaRYN9fn1XPCZPUTPepOgZfPY6GROFzDvPGlpbqt0PAwrid55nAEP+IMzyTRSR2do5KJvpwFyMg00IA==","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.11.tgz","fileCount":126,"unpackedSize":144694,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+nZXCRA9TVsSAnZWagAA7bMP/2DYeGg+fDMc7FmT4nZR\nwQeRnpBtcUDxresyE/9lainV7orxVT+YAU9tjahOXkVqQ2rp2JuR30FFtnvJ\nljON5/KczAOnJg43BTHC0+cUNE8JLi78A2wUxYJRaudNTzUbxc9PfNZcNxl5\nmO2QDh2mkXw9YzBMk8421aBumGAPZJHWVlUQMkkhBquQban2WNlYM8YOZ0Z0\nfvPJI4hqEk8eydkXWWieBYonioz7R7arahTYMQcJYOt+iGQcBAJzCMNRmvlC\njy2oHDv0pMBmSlKJoDchjmZm1xmnYvriNn0BoedEDhbuMOH89VnhXsZp+e9w\nhhTi8LiM8P7Sek9xWX7dwAErGAoCP1skODXVY1szxAaJNGkC/emIb6p3GCGV\n892aKLQt69SQ08sE5eexXPO0rcFvwKVGf/1bxI4BU5pe6YPlWHptIIsibKBN\n+uwPWJdW6xXAxuPQ/On/mLzYSAJ2dhiERaNaKqbJIeZJAxf7ffLfAJF6aOnx\no7qPQZ3VjC2pkBEQgUTmci73+yCHhDx/qtAaWTbIqW8UHjnILOX4zTQB7mQQ\nqLDvBnZHuZdyhAHz1/6eSFV3KaM0UmipX6iqfMryevNMrZjhFUkNgqX1TU5/\nk3vW9nIvZlCOu4PpNwBo0jQuSzapM+fdzVkaAIdUQgcElskldmf+Lg60X0dk\nMsED\r\n=o15Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCy/z9/JLSaIR1mgEJea5Qt48/3i+xe9ZRMcLvPfRdjFgIgclyhuZhEBeQu3KPWzyb4b2Gi4GuUtJO3C8YhgNGbnSE="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.11_1627027030998_0.666719195077599"},"_hasShrinkwrap":false},"0.3.12":{"name":"vue3-ts-util","version":"0.3.12","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":false,"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es bundle.css","pre-release":"yarn test && yarn build && nrm use npm","test":"yarn jest","pub":"npm publish"},"gitHead":"87a19d9320a763c751a46f7fcae911216374a61d","description":"[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/lanfan-dashboard/actions/workflows/ci.yml) ![](https://img.shields.io/npm/v/vue3-ts-util.svg)","_id":"vue3-ts-util@0.3.12","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-vqj28Kjvm6qjkEfvyald7rrWTw1E10hawBOs5mJD3s2dCatwbMln65QkfTijquuAkX7F8aQptNfaULVeTW9wLw==","shasum":"ea218462ff50d3f4434a142330e26ce7c83ab6f8","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.12.tgz","fileCount":110,"unpackedSize":145484,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+nxFCRA9TVsSAnZWagAAdEkQAJWgfdxUkHnrwVL2IKsk\nhq8l8VLMxAdG1+n8wNdtoj6gGKY3P7jk7aclQDRXI5T3qvjBNsIazlEgnrN8\nVciMHs2d5EbE1soVDZxt9fE3fmcnNXPONg3ZDvUlocMXsYJ5FcZVlacX+dy/\nWXyP38khrqO820NfvH9njWJCGJXQ5/mJV4d+kbc4qAYuAS+/lfm66l/pf0fW\nLY+6XFB8N/IV0z3cRnGLj7Ptbvbfg28PqAWXAnCDvveByRZCoRvzHR787r3h\n/WxxuXMQ6YCdfvHSugiJ/MsX7+E289DkAaMIo+qitBVhe8eesaL6yCrJgdQP\niGYddSLd9Fh272p1TZ/y4F6ls+KVdO3CrzXDdv8LUVaXBXPoLl/QSnerij1l\nRtQ0wik8U4Tcmqu4rV5y4bVDo5mo2P53rnNxAQEGcE3fZ6y1BGVq/LBDm8NS\nNsNJ2bwnJfQOVhXZDovr3BUelDldefD3f4rZGWhDTJTnAwZOoxPoeS2phcmN\nvlucfyalpfd0RqoQU1pIBvsQD4vHcsTvIAT7COS2UrTY647rAqRyIJJp/mp2\ngCk2iNtus6PuEArZwBrEIOXrVPxR9G0w9fjGKZTgzxZsYQ6xT8GOlMfrMslX\nHBaYHYJcI5RORyp4FiLz4GjjKYtLi/MafZl2+RmTH4IZ8iY42shWxEb+l8j6\niAaG\r\n=J4Vr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBjyGjDIcbBN8n/xjPtz4SrlGpj70S3r+YWATUjsGY6dAiB4bOZx0nfH79dRJvikEH1/rnk6TKZxa8+QBfS/Q+2gbg=="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.12_1627028549233_0.2859957294841753"},"_hasShrinkwrap":false},"0.3.13":{"name":"vue3-ts-util","version":"0.3.13","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","clean-unless-import":"ts-node --project tsnode.config.json scripts/cleanUnlessImport.ts","pre-release":"yarn test && yarn build && nrm use npm && yarn clean-unless-import","test":"yarn jest"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc的模块标准为es module，有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel的模块标准为es module，参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 进一步优化\n1. 替换掉moment，主要是不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"d66c9ee1b153a3ce4a57a538ac4beb8a97ca848b","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.13","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-IbOryIrnDN8a/ytmWZBNITKkEEXc+9Zqo9WSTT4L40otEY6rNBlR6JqRQ76jCkm5ICXT3Y6d/xIiLIKZ6UwRqw==","shasum":"6bdbc0eb71fa21a0a732403657734ed3507ef58c","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.13.tgz","fileCount":113,"unpackedSize":150777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/nKRCRA9TVsSAnZWagAAwzoQAJ0pkIJa95NiwpA4kL85\nZDKzqQ4ri/ZATYXf6VB38W4fjmkVWJ5drSNCWtrEZiorTrECkE4FpJgXduDX\ncGoTrU2U/K8pfdw5VHvnofPUmyooxcgZ7bzpeuskpGoY9MBW56ntSRIlYj62\npriqY9jwZS2Mr9ua8tTud8uAkU4qHD0F0Y7M9YRYHRBhaDNGezHKsiFEEj84\ncklBZJ09xSh7IRW1NIFTmhkXFksV5zyFyVYdzNISB3Jswrh+rOMbu8wiuamK\nYGOPE13ehyMc58yKIZR6OoIDJX7yzTt1I+E3t1FbPEMJs/rGk8l0Iecxr0Qd\nquuoSy+37lzkvBlYGo5ZBPaZldfUOQlLorcwd9hfD+/ulGFo1FWcv28WjBae\ny4VvG+ciNETd4VSM+loY2QDrThiQKN3/rd9RyfcjyvBXwnZW2MtXF+0NHV2h\nmdxEq+NuVjlZp7vLI1ywwvmmenZ6Oltj7WrlmdQBMY46bQTHZshRzmWc3Rju\nbZQxs3ngNbJ8w9vK9vepv+OwNr3NN4FGKH0gqZ0dzFM8YOE7MjC5uMu9bLbE\nZzXNdHRXZbNUMXrTIqjCroXoQ45+MVnV2PH+Qjumu6HRntKgn1evI2cAZToZ\nF6TwCC+DSmXAAX0Uhr44kCIvtuLcQrNne4K90eOyj3FgRq8T0n058fE4mDtg\np6EZ\r\n=UwTa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0cphU/B5OTwEQqFkk2M2WxdbWOwGuIj5RmqKnf9IMhAIhAKebCAOQDsxunMV4V5jwJgogYNVfpshrXBLsyQMMmwW5"}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.13_1627288208924_0.7738991999552998"},"_hasShrinkwrap":false},"0.3.14":{"name":"vue3-ts-util","version":"0.3.14","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","import-optimization":"ts-node --project tsnode.config.json scripts/importOptimization.ts","pre-release":"yarn test && yarn build && yarn import-optimization && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/generateVueType.ts"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc的模块标准为es module，有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel的模块标准为es module，参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 进一步优化\n1. 替换掉moment，主要是不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"d66c9ee1b153a3ce4a57a538ac4beb8a97ca848b","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.14","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-X5svxOprI5t9h/VxveQv3GBG5jC/war050nOam+ZQqBZ1/2cl6iDMoWkHc5CUNg54o7yNJlhbR3nJ1O/vsvHBw==","shasum":"d5749a164cf0e284fa6c6d8ecff9531a8e8d8cfb","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.14.tgz","fileCount":111,"unpackedSize":150555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/oYpCRA9TVsSAnZWagAAs+cP/1UOb7QToBy23pXT3hJu\nux8YEWQHkkTX3hxQ7DpotzeCN4fdoCMM4Bw4ZFtxG+F1rPLtbdoqXw3w5kwa\nsiJkOAeFR3hqa/ecHuVmEq/SDQ2O/Eu72MZzOe43bcVNALG1Ba6ytNfEGI9f\n/qsXaz4CT/z1Pwqu2UlIeizgv4+JMhoBFL1K2Huc733SKKKruHGdN0MTV2b/\nQVV53Pi59dVg16vDTboWFyYS0Z0oiVI1Nq7p8i1ZQS8HYI1eQX+8v12nLPPa\nvGXoDnwscOmlIZFJO1R1/HBE2GtJGrX54adMZTGAq7zqOE1+1APbnN287MOG\nT0jSXvsmm5GWk75y1L9oLK+exqeDxMg+TpOs60BEX1JldbedVQvSlhoAtLIJ\njCGc+bojoZr14L2a0DVC+ZOXUW8CV1qnU8THlV6K1x1DuRJmtt8vDGGQeeW5\nImLXwNotylhkbXq8rOIbC9N+0QF8F6YtMZp5C9iaGuQaG8po3gnazyCNu8vB\n4t4CzkKFHuyNwaLHGmC4+OIzuIuEpbp6k8epxBolhPkjM6Y2Auo0EFP6ADoq\n7l2wIgmIkL/PJbMB5H6oox3Xp3unMjWa8b2i5ZCfKpE9Rx6qFIAd8lJFVmgu\nejfwTi0v3Vd9Fr03pjlLp9qA/sVklqFmioxBEH/u/itNTSdXa2kxfWYugRad\nfb0w\r\n=bN/B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGAaZaH/JNd0KYoofLhOeyE2PR7SFCiIoBDV8cVyL2DPAiBXpLwg3v2P+wNOE4gqeXkBHXNijjEJJ3Xq43mO7evtRw=="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.14_1627293225499_0.4975380613448608"},"_hasShrinkwrap":false},"0.3.15":{"name":"vue3-ts-util","version":"0.3.15","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","import-optimization":"ts-node --project tsnode.config.json scripts/importOptimization.ts","pre-release":"yarn test && yarn build && yarn import-optimization && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/generateVueType.ts"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n# 开发\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn \n....\n```\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n\n### import 优化\n```\nyarn import-optimization\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 在开发时需要遵守\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shime,使用shime会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验\n2. 对于外部不可变的值(例如`strictQueue的loading`)应该对返回值加`deepReadonly`,可以对这类ref做到类型层面的只读，更狠一点可以\n```ts\nconst foo = () => {\n    const loading = ref(true)\n    return {\n        bar: computed(() => loading.value)\n    }\n}\n```\n3. 尽可能足够的单元测试\n4. \n\n# 一些问题的应对措施\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"d66c9ee1b153a3ce4a57a538ac4beb8a97ca848b","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.15","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-OMpMOi+5uS9v133y2SLwhKSXNGgYASlWHQ9ptqQhFaAPP011InZEbdpVDNbWWIknPJqhBbZjk0fUSE/3wlx7QA==","shasum":"8bfcea34cda04d15d95d46fc49c5b3271477dfa4","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.15.tgz","fileCount":111,"unpackedSize":147926,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/7BrCRA9TVsSAnZWagAA3ZAP/0g8iMGw869KWKspTUoh\nDwrA5Up3gXF8cJW+u6oz92vw0UmeLn31Hdr03Rb/ChzVCbSfhNB+4jjKhTO7\ndK4xheg7HnaBNbxS/4uI66i8tYCSGJ5lxLOw1EPMCAo6eZ1RMFTiW9QGYdhz\nmS3qHzhkW7wAOU3FI6VEwtb5byCkOyPeeDRsUTWY5uBNP6NY4n2XBUoAKJgd\ntaIYU0sOfrqD9WgTFzGkQqWFv2us8ic8WLVqN9ETzOptyFoMroukZRb8Cze+\nIDsp/1hDJCAQaZtnc9hmKZx1KbGiq50ceVtgV4ySmj61gdQGGypEjMKIFKLe\nIeEl9/8hmu1oLYIggOln8/xNeUr+BhaMDBc4TYgAwjmiiQjip8MJm5gjFBJH\nAfi5eaIArgKj3T4CMwBI7kqfbgpKaCS0H9dQhR+06Tz6kP9BYHPWzlT2mdiY\nKBT/0tYMA2mz5T0VGm+w5FvTHTItZCQ252lLqDSWe/GmDBV+xuHkbY+XpDKy\nE3pjvhI9f0ZWyV61S9Ful97CT74hfcnuI6SCPU1kieFxb/vED+obA9i60xR9\nfYbwt4McPkvZTjPSKAab7KCwgUT0ZmditxIt2tuOTZzxE1Pdd2vr16mAm/yN\n2PFYWnCkKj0sVhT03SVkT2wUbLqfbpEnOB/ezhUVuJI9NB6iDAjGsmTFwCgS\nugIw\r\n=oZEi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICVSjHbSQUIlUph/Rf1RppcfbMQrH7UR1ckXqm0zT3QEAiBhltzoQLSVx2GbYnhJ92wpiNYRUtIzjlAURuScabbBUg=="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.15_1627369579402_0.6309200225725706"},"_hasShrinkwrap":false},"0.3.16":{"name":"vue3-ts-util","version":"0.3.16","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup":"^0.54.0","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","import-optimization":"ts-node --project tsnode.config.json scripts/importOptimization.ts","pre-release":"yarn test && yarn build && yarn import-optimization && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/generateVueType.ts"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n# 开发\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn \n....\n```\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n\n### import 优化\n```\nyarn import-optimization\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 在开发时需要遵守\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验\n2. 对于外部不可变的值(例如`strictQueue的loading`)应该对返回值加`deepReadonly`,可以对这类ref做到类型层面的只读，更狠一点可以\n```ts\nconst foo = () => {\n    const loading = ref(true)\n    return {\n        bar: computed(() => loading.value)\n    }\n}\n```\n3. 尽可能足够的单元测试\n4. \n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"d3708784a2fea7b892f1757dfa3f922294bf39b6","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.16","_nodeVersion":"14.16.1","_npmVersion":"7.20.0","dist":{"integrity":"sha512-VkYeLLcvWLbiZ2uVyOTf+dwqLDJ1frdqrrZIwUBCAw2YxZUjyvgE9+CWgRPzWDgEJiFb+dUf5AXNuvJ/rO78Hw==","shasum":"b5073048abb1442aed0a5d6bb6fd0c6172150081","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.16.tgz","fileCount":111,"unpackedSize":148390,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/9z4CRA9TVsSAnZWagAATSQP/2PL/Wr42h+V89S7pD/j\nylZTwA8k7nsG1qeebyvwKr0xxtHmuMb5v7xsZ3P4tSmki1zudbRbBlqMOIhE\n8WwApcCy4bsexlTqJHDd+TIKUqkMJAAimZHCAYglcz0kNP/hw2k2K1fl8UMc\n3y2xfglTkznei3liVaYm9K44hsMcxWNxzc9eQrGnU72IIBGVEsoCIiUd3S0l\nCeI15fbA4usEOwIyN8vROt1vXTwwOgyDMA25EqWud/SrxSWIia1KMk7kMoUS\nuPzZ2RUAHpKQ3XlU4PBfE/3QHkjm5+tCqnQw7hqdb5yhbhoR4w5o9qgw9Ug5\npP8WhOSnr7E7ZNR21HwGl/+TPQerJN6OrTFw3hSI2bnEBKsvs09lerwd7n37\n2ftBuVkVBw/zCf5MWs49d6Jc9GiUA8CYgoTy77qYInDDGvC00Fb6Jqjxm+1Q\nBPbfEnlxwNU/0UI3INgn9id5FPQaOW89Yjn7nKWa7krtPPcmKexCwTTJkbVm\naSngHvANVEsG5AeVRgLo5yRa9jmwCBR/xOFjGr+4fXy0A1a/JIFZFNi0+tXD\nCzQbqxdEdG3WMGzfvUqzGOfkdW6l25WZX6yv/rwoj3M2ITOUCgCCxU0oyL1t\nrWQXNnrQxIr2zx3elS2qp2cGFKclZSdTHYQmclmNwWT3eEY1nmI2wIMRjQxC\n15+f\r\n=GKlk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDC1X7bL+zSjCq64+he4bwdW6iRGqAzxGmo42W0A5Q6uAIhAOLN8E6edPWrpAqxE/6s35G6YZpMxuyyM/2EpgNu5Wzp"}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.16_1627380984447_0.9611670806430075"},"_hasShrinkwrap":false},"0.3.17":{"name":"vue3-ts-util","version":"0.3.17","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"9783f78d8278e2aa2aea957f15953d2e868c9178","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.17","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-P68NFL5S0Gis+aBhRnl4WSJnmIuJunncXBatsostJod+HCDj1iqQYGLRzPayUBkX/qpDftlL0xoW7GW+OTdOtA==","shasum":"ae8d7c4e8c3fd356cab2a3d3455b696d3bc33780","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.17.tgz","fileCount":117,"unpackedSize":154309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCjulCRA9TVsSAnZWagAAo0oQAJwr/oMtnpJOq6j7dYoG\nyF2npiOnXbuuPJrFj65JuLYTHqgzvRrcw7PVo/L8vTC0asYaAZklfwAilray\nxoKgofVbbNSKsttPZDP2klG3C2kSWPRVMiOPtjFRcEMd+lNB0filMNaw0DIV\nY088G+UrEZTmyo8FwJgF8Ie1qqxQ0XMe6RR+iYILLeUEyI49uxG6tIdQlOAj\nswRI/D2F1Oe+R3hBHH+lCw/ozzYBJMmk/NkGtbrkvh+JVvwALSfHPrYV7cFN\nQ1kQf92lNMczLJynLC/iMwdlv1sigeIaViqdmn1sidUdLznN2yT8e1K7lqYG\nnfOA5Tbe6dtSOlbl2NOkUrKps7C+NlU3Kp1tF13V836OcCshBwgg2uZv+AdV\ndzRbSVTfx+I9LrL7SI9C956uZJyXZd66zfldHZliLmB4JYxZRC82MoyrfH8H\nxou4Zj3o6Ina8KHzJB6JP2UNDcshqsRsyZ8AgUGPSS6HSftsHjt6ikhVnkgD\nsbPq74EUAIPEqCoY7iPniVTl4Ns2iktKndGJcuYnE778M4DMhuslqx7M9pTd\n+UM2nBCQcrHLd/5b6pUug6usC/7N7YtfCKzxv0AlLaS3SIhlOkVCaHahZ+cT\nIX7RHbconU5rOe/EfTejSFjavkZXG6+vbzVA99PVNBcjDt9Jh2dCTeoXNzZe\nQBkf\r\n=3nk8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCL0PS4KSP8R3OKYyO1noi9M0hArjX0EPCkp7h844KQowIgJjUsEd4B6fG6VPMdR9MW4FdVD9rfe/AHntC/GtpQ5hs="}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.17_1628060581154_0.9695561213668531"},"_hasShrinkwrap":false},"0.3.18":{"name":"vue3-ts-util","version":"0.3.18","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n# 开发\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn \n....\n```\n## 使用dev-watch开发新功能及debug\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\"\n  }\n}\n```\n`symlink`指向你开发&debug用的项目，再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是，这个即时编译只针对esm构建可用。且关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 在开发时需要遵守\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验\n2. 对于外部不可变的值(例如`strictQueue的loading`)应该对返回值加`deepReadonly`,可以对这类ref做到类型层面的只读，更狠一点可以\n```ts\nconst foo = () => {\n    const loading = ref(true)\n    return {\n        bar: computed(() => loading.value)\n    }\n}\n```\n3. 尽可能足够的单元测试\n4. \n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"de7c8d0180546f75cc9b340185924789208e6a97","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.18","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-g3eeYu1pwX5TcPBoz2pw+VzLLvrs2FZDW99nnBoN8wXVCCN3pWk/7lw0USUd1rdasT/rgHakxoxw6hqXfENt8w==","shasum":"89d39f635c23c9216abef0e9a6bc5c30ab3c81ca","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.18.tgz","fileCount":119,"unpackedSize":155127,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCm/RCRA9TVsSAnZWagAAwesP/2CixXr3hEqJ2HquV064\nxBiP/w6FTbKrYRPLy1HuYKWhP9ncx9KzVZBaeSvsj+wwQCrc7fETjsDRH8O3\niwEQHc75G6TxMdhklI6EPChk2sjGXYK8wnjeRQXOnmzJa5Uq0oYOdFInnNdU\nKYV5UHk2LYq5kMIH0K3pZbDSoLlBsy2xwN+VGsjomDpxwlL9Vokj8yijJnCy\nMyxMIPnouKh5VZtHmFiDCdQ9ACJegEVXu+2HJ06HQOZbslO1wJR4XgZBBYVI\nJ5rjM0VSPGQi9js4EJP1deRFfkyOViZ9QNli4U1q+p77/6jtz0ZDBZIp+tHb\n+z2FW1qeCyUQTbTVq6ga/tSYJ/DF9i9STcnVeLFkQR+s1+ja6t1hTafac5B+\nHpS58JBWYMXN2vTQFORYSsoMm6IuEoFFt57QVx139W8dmZyRJTd2D9qRg/xD\nK0N7ccpVnxj98wZl68A7VN45+rDEgzpyrapVG+6MdIGjgYGQdRVxhwbuK0e0\nXaTBxyxpxdVDXS8suavAd5wBNzYi9XOMU24doi12HpJl5oiEHo6jMUzpP1Hm\n0nk5jMXnmIfddWwzyAwHYuvkR8a/+b/sSRR1YbbJKFjA+7SFoM+TMN+u8weQ\nUHmFvw6bS3Zru32yIKBNMqYLTk4f4QulkDaciusd/7SMIR9APe9/9iyfs7Nu\ngbnN\r\n=IzWO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBxsMwydthNysYp5yARXmGfWAyckIsEkCZHAyA8kPZVCAiEA1GowQ2fgbKAVZcVbXbU8yPZMtiOkQ/3atOedBrb3ZZ8="}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.18_1628073937615_0.16699276152649323"},"_hasShrinkwrap":false},"0.3.19":{"name":"vue3-ts-util","version":"0.3.19","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"f761cfdab7d07281054846fa910029cc61403876","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.19","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-bxj2GcnZPlksDkP7Z7ksLON0cKkENrrdztl8H0g2q3tP2W4AX5zzfc8alJMpLr2PPkMGmNc+6KrMaI0mw/dtNA==","shasum":"9fc53764a5e920da336ffc25938ba02319b0eb86","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.19.tgz","fileCount":119,"unpackedSize":155190,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhC1aICRA9TVsSAnZWagAAKWsP/A1qfGaR4/qAKhV3W1LN\nD2eN7w16VWP0V3cG5iICzLw5FNvrQejvbDTpyYUuk3ZZtLspNor9l66G4+kV\naLCYsaKCg2tT24ZfbRh7xAOipHxhNKzoTkf1S3U1Er+qUJyONFoQ4+412HRQ\nbnTNJQzhyGWPIUcH5Cj6LYYwX26dUEwQGCefkTOHSF5OryZbUD+faZDASNQZ\nN/J6xUkCJDK1xQJCxyIfs4cLwRvLsQh7w5fknCw2Ta43e+wibipnszWCOxNw\n5XR5KsAerj8eHZsdidhuzD0/XMN1O3KDsxDkPsZlR5rEZ56lZ+4C87LmPz7p\nk9rOwix4mPJDYjf0KJLFr+sIzpWXXfyw0VomnHXS1GjKHlStvqaXGjYWiRSW\nOdkcItaNGZ84HLwzDVn3hB8adG8S/b+SLsL4kRns3lUbXePWQDkZWL5bMHns\nPc2mC/K5OY5hz/9qAo5lvV+KOBaPQ38Rw/5qdg9vhx4b1KtMNnIrycMYj7Iw\n2bzVRalGhorrAf+CokeN3fdXBzzQBWlcsbCydx+2WDsFSZAQsUdBKG5rtGcC\nnDjuvHfAhJsr8yLQBZ4NOzYNSTWNF/CuclYE/iPb8zaouvPkdZRcOdCivbsF\nXE2LFqfHJ5tfla3HfnVD/EZ2w67T/vjJdh3mJjowVCbpJk4fW7AcpyNiAbof\n+C7g\r\n=Zihr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWZWbgishqBHLV8DfOLTy/v77DxjZzLO1bQwiS9xVivQIhANjz61FT6F7sSHWtCKG8tNilIzgPJ5GpVeF9+BUwxycK"}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.19_1628132999989_0.9284654007264732"},"_hasShrinkwrap":false},"0.3.20":{"name":"vue3-ts-util","version":"0.3.20","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"a51b5f3080e0d6779cd9e518c1de5a22da8a11be","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.20","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-8TNKfYW3KfaEbgEW5hplgcHzPePv0Hp/pLti48duIPahFtOqmOxya4hrYO+Eyl6/3rXxEjg1zXEepwQB/9TJdA==","shasum":"75f30651c7991077b23cac7dbe8e2ab06b17ac74","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.20.tgz","fileCount":120,"unpackedSize":164104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhGjEBCRA9TVsSAnZWagAAicoP+gOQrHB7Ni0h1racWVMy\nzImtSg6hCNcYCdmzzmkGerAKfa+akuPESZMXXCCH0eDt6tW67mErvKJj4qdV\nfxU5TrCegAowej3irbC+UrisBf+DsLetO5FBtDMAYsyegYC+efA70NT+ChLi\nzNkPd4L6420P0tmWqijFnVbuvk+/ItddIEzuf8i/fNtQfqbewSrmgOgeboM6\nxXXv2LDc3jAR661Ju6b/7C9YmbEsb6CWHea2N5ahWdCfFUL2Q2jKTSm3N2J2\nzhY8/4odUIHBfGhrxv0/UzOv6N/8AFa29cMRC0KATJGO0988H/e7eZLAL3fC\nS86fPDfiwU9YP1IeyDdqWFufB7Sb0CvsAT/CNSR2aUnrg/6ST1aw/WOm30Qx\nHHgObxwyJLad+WMPpIVBuBEicDU7lSG82btKkmPyUjprnGy3cRhYHN7ZDosD\n88V9i+cOK7yW1WTr0mt3802Hy4Exa5wZVWyLR9Ar8AMgy0SceIXdDNgmMWiS\nHnPERjGdWoPYhBs6d2PzHXfzbWq8kHGyDlRpb6nDfRL/mDpMa+Jr1TXCLQIX\n7QK+fV2yVPAJJQGreV0XFDgp2UN0z8KcDvZ7/eBAsRIzkZDP2vAqJIScfWN6\nTfabJt4Yvaj5aoxOzS6lWUkOfmGSwE260mYvkX4wOXBwLzmsvQ018WgUfurr\nbK0r\r\n=ChwN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbDusqpSSKDwyuG3Lvg6QH3hBti8Uf7AD3FIK8mzwX2AIhAIhLlO4sR+dd6sLrPo5zM8PXhYjQl7XCnvQVaLuq0vfw"}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.20_1629106433151_0.31645239866843133"},"_hasShrinkwrap":false},"0.3.21":{"name":"vue3-ts-util","version":"0.3.21","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"a2d4a4d494c4493f38359b82f0679ae794f068db","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.21","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"dist":{"integrity":"sha512-t75DSkQYy9q3y+c3hyWH0MiQbVqzOVqoSapUp/kXC+3wSMaIuJbpOKzuQRLwXcvIci6iipt5kf6j2s/UfiTkzw==","shasum":"8ef03242c69474a09b6e85566d08167ee3da33db","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.21.tgz","fileCount":120,"unpackedSize":164107,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJf1oCRA9TVsSAnZWagAAVLMQAIdHytIL/ezD+N8KHtk6\nqJGeb3n54gwJnQ9efTqVf3vUquIaoXYinRK2M6LRCAZLg7tV49BOTc6IB61c\nI1cO2UO3ssRx+uVd53N1Za9edMDAx4R8NaQuNwvGZayXuBOqcRo8sHhhP+yg\nmozRFs0UyXANZR3VRRn0j81sJfru8I9VHBmP70stzNDA8wH/dob3YcQ+ESjY\nTchm6gog90VcX8HiKmhda9l4Uc2i8KuOSU1gSOIyEdJbbK5n684TY2kEV91N\n2YVoX8tex6+dXg1ZodwCzhHnTCXBUxYesBiZxvxU/LrlNwgbwCrZ6vgnt4rU\nNNx/sZ/PMaT5Xp2KAGr3d2jt1TS/zHX1RojoVYqep/JrebgA9p+8lvBHoTij\nzHmXdXsowwDtbm7aY07Jin9fBTgWIKtQlQwf31eLMetJG4DLnsJqig/Uqyaw\nU88PoMJSAwNA8C5xQ43BQ8rgo0/cm1coI2QlylWZ+Vx3QIL3vc8kjCd0HnqV\nRbu6Ba1kkX8pHLbWbO01qSsb4Mczekur/yybdyi+OhoDX+tf7KPFvo1ezTuM\ns2WgCTrlDsg8jJ3apLB2jFRKDrX4v5KNCUkbOmlqTcmqwK/NFjd5iDIFbrNw\naXt9yK42En6DOG8ZcfYfMr1Z0tCpmRqqZwCMiKrDkuVm+F66mIwTBwrk3Nnf\nwg7h\r\n=6uDX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGmKC61dvAT/mNEMMS1CqdKOWReh6QB2G3yD1vlycmHdAiEAiO+cDkleX3UKyqTEJLqpRc3037oyOwLxVgNZgSPtmbo="}]},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.21_1629879656382_0.6673749726896248"},"_hasShrinkwrap":false},"0.3.22":{"name":"vue3-ts-util","version":"0.3.22","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"6d14db7211e05ab77bf73623463cf1b06ef1ab38","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.22","_nodeVersion":"14.17.3","_npmVersion":"7.21.0","dist":{"integrity":"sha512-BvFWLT8PSnquQ6p1rBRpD8ThtwKm3cH2md4r8iXJwd9c3nFiKaUz4ZVEI5LMwmPgEhCmoS2jq1/QoH1KiEZWVg==","shasum":"40514e6f865b0d5471319849194c2dd839ac5376","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.22.tgz","fileCount":45,"unpackedSize":94623,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMeikCRA9TVsSAnZWagAAsSoP/2j3ZxxscZ8H4esvGjpb\nmVJJUYe2/pK+YHkuPWhi5gsWDS3k2tyL/+XIyi1uncYsCWV4dBJFBNy3PsUG\n5u49Ivj/BLZuPolD5hyYX2sGVqNsq0rQlhcyaSWJz7yXF9g5zXrM5uyzTZZu\nyzDZMzM/u7GKn6BpV5ceb4b6ytukgtUFUJA2A9DwrlZcrNrD3C/uS5xzwu7z\nxfyyGtNCmDMjGjONVqVr6vHx5z7ao76//b9799lFT0CTSkOrHBJJa2Sz4bWj\nq2bb1CuBwCL9JJDVoI8xKhp/38/pbaWMCUFXn8DlZ9u8RK+YpbgdJaf+e/vQ\nwptLbsWV+AJvHGV0iIVRI6a3tQLrUHxNHLvXQRA3dsvtqFdNYjfzlqP9X+zn\ns5FkuIfj6x+hS+eJ26Aijdi68Fb+CW1JkQvo9vc5Sm4+xFU8G+L16JZSnjtG\nbnKt0DrEiNFFOmvv6blFFi46TrtlTFQFcPQkn4LDu+sjNdOomkjlSzoHDHuB\nCxJmTTDsP/94RZmsMPwQdq7ISuvdQkQA84ELHUkTJwFJxyt57ersyRxDUs/i\nDHgaD5CvhAkwii2lo1/Fxte7PXz89QS/8FMi0jPGYHIEr4nibiigNvcaeFqL\nubWCpDrf5PPLiUIIsfvGzVN2opimJxJ880M54MNXsKgv3kBl9eiDRwe2X8CE\naWHk\r\n=0BcB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHy9HtlGZN32a7a60pBNCdHQXlfaCHsyKVobkRagWL1DAiEAhUBT17x+F3VdEj+Fwe7Qbmo8VRAYBMRX+oml/dFLBpA="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.22_1630660771789_0.6305884749820669"},"_hasShrinkwrap":false},"0.3.23":{"name":"vue3-ts-util","version":"0.3.23","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"d0ec633bfc2768eaceffe4f0bc4564428f28862c","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.23","_nodeVersion":"14.17.3","_npmVersion":"7.21.0","dist":{"integrity":"sha512-cfDuLTokGLoMdhBW8DqvKf46mv1Q06wVRSw7CmfrSBSJzPCtbcC37PRiN53jQoHN3//5GKL1C1gq3+ClVqVoBg==","shasum":"963befbb9f7a1c723ab49d775cc514130936f361","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.23.tgz","fileCount":120,"unpackedSize":163105,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMez8CRA9TVsSAnZWagAAze0QAIetIppLDNx13UOPJBU+\nPHTCj2zIU1hpHWwrYhqcH/JzdfzNaxP7QJ8jNPktS+S+LGt1aRqZHXFVBOo6\nJgsISOL9120vFmCY6u4TEKEKnrYd+3vHL6IVDfT1THOcoD1nwf0rS4KYvb6S\nFL/v1UquUXiA7Z1ZPhvjTBTx5SkZgMVAf1j+VP57cW2njCyG3bLR/vCTWbRM\norbYIIBF7XLyXUSh+Vf3VWqYfk8l53HawhQ3FBYBelYaJFuPDsS0HHjz2Q8E\n6C4AlTjlbAbLd6nCqMASbwM8fkeS2oogZ4hpZU1xkJ/FEKlhac8jiFTEvub9\n2+8aWZqh96+YHafO3BnL3VhAshixNJ75v8k6VLE8S5hVFjKlt7cVMCrZejQn\n04+iW4Kh91OxAczefcxpe2zuQ7ISJ0j/D3kQaVX4/cva3BYkFK9ziBW2tBLd\nZKqRzNuiXUeFtrmlbBfi87bv8UVzxJ02bfYPlFY4EM0JznCnpFAaxiRNZsQi\n9sPuzVcnyjV9pSSVXBtIfDzybyvrVFhCbWhXmlSe1a4UiFRBTKjhsD/ygR8Y\nYKYNg8hglVh/Onx63uxya7XCOiApfxXCOYCQOTAwpROyaYEiRa8VAUR/GzMR\nJpKcGd+oeDa02OcbpxsskVtLLy++spnRxYX5h46XknKtXnIDyz6KJypmdiEV\nFQGJ\r\n=TsIm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3RHyT34ikblBrj6usbseWrU3t0exic2sPwtFXOxrheAIhANSQ/W3lAtcOj6Qkak/q+ohOC1aOZZrM+070ELTaEAWP"}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.23_1630661884429_0.3592689046929589"},"_hasShrinkwrap":false},"0.3.24":{"name":"vue3-ts-util","version":"0.3.24","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"d0ec633bfc2768eaceffe4f0bc4564428f28862c","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.24","_nodeVersion":"14.17.3","_npmVersion":"7.20.0","dist":{"integrity":"sha512-+VcX+LMl2kxjnyz8D31VGzZH3TB5e3FP+PVA4rpRDVz/6AAo6mV8UiU/7FzsLpv6+mPeuwEBhNyV8X4v0hcDEg==","shasum":"8a58efc421da7b2284b08bf53b7dfa4f13bc71d8","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.24.tgz","fileCount":122,"unpackedSize":163737,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhRAArCRA9TVsSAnZWagAA8WAP/iLC8qaOt4rG99H0m2I5\nFnr/M+OeyXi38NkDDTUYxx1N8Sgv7iiOcPstKlvo4lP69pWjbKN67r2tEqU+\njBrlU52JnZO9nXiP6ZBce3gFErIPKLcf/XfB9STZuMU/O927zoPLGd+IyxLc\nHcszz4+xI5/lddqo+NKI7qCMdwnc/JmDEsH8wmGQbi9hyMEFdSRinh98uTQg\n0oh2oTIp1Cizk/jzVv1nO4+qg7RuE6vfAEN6HR7OzpSWgplNNTDEqxljUrAV\nXoq5tNcI0jJu9M8KsddtdHIwh2URaZfcl+sI6kRN/0ISRGhwBD2ib+/NDaqH\nwu1YVhm62HEKg+k/d1O7uvA330eYK7JniXs2JseZXvswY+nyGW/uWEVZ7Jyl\ndXf/zB6hPLZlm50pdFtECSljiRYDC2bjBalk46sPZKVDBMR2+2cagJsSC32w\n1ZDMu3h2qg88J9BrAoB44UM2ZLOC93aJ2iTv0OEKnHlQxwgzIkIrodTOmnO0\n1xypuEQ9fde/bsmwbIOSJBmKVC5nRDR6CvN4gobGiD4DmloatFxknuK0hp/w\nnYTc07hHe5uAPoFSY/dO1jY81IJ03atkKCZmMTagTlkvwYmSkcg+21kXdWl1\nAuc7Nrth0SW33k8kUAmqYo5rgaH58GGQ0bxFEY7ghXa7WbUFv4UbUwWtcuA5\napT1\r\n=aKBH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAUwk0lLgoCc4i+7Rsk/qUko6g6QB2DFsKpajSzMaKfoAiEArbfVKh2/0nj+Kl4qDe44mqx+z05fBW+SKOfyW2G9pOM="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.24_1631846443319_0.8273134391353725"},"_hasShrinkwrap":false},"0.3.25":{"name":"vue3-ts-util","version":"0.3.25","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"af9e65b513ec44b6dd9811ff7119e4a1a436d633","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.25","_nodeVersion":"14.17.3","_npmVersion":"7.20.0","dist":{"integrity":"sha512-a8MszTQdfy93r9F748PM7T9gph+lBmyi/RghaSXzwHHibgWJwob8A4h+6ZWyGLadsRG7YnDr93uKP9skjlVvpw==","shasum":"947a825cb2fbb10c37f0cf2e33a065a16629e710","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.25.tgz","fileCount":122,"unpackedSize":163484,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGIpejP6XNFjQiTAIzYLENofpe71BABaoWVeICHd1zrhAiBCguIEUYwpXQmJLNkiBMkM+ciNyZgKE9d4kaCK7xYXaw=="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.25_1634786639632_0.21134657381551203"},"_hasShrinkwrap":false},"0.3.26":{"name":"vue3-ts-util","version":"0.3.26","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"8ab23993cfc2aa745e15c3d04de07e73cbc0bfb5","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.26","_nodeVersion":"14.17.3","_npmVersion":"7.20.0","dist":{"integrity":"sha512-VGoh51gJoYc0EShjsPDA9m0bdBC5ejlqqE3mPqXuwb4rOJHYK1XwBpAM2U+IoX5B8FoW1+eAer2BgqkUBq70BQ==","shasum":"3d936bd49d625f49bf914968a9a09c2382ea888b","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.26.tgz","fileCount":46,"unpackedSize":95031,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8nxjadWNydj2FRJxlCPwd1Z5IgxGNAnPrPnEkPzGzCwIgRNfQdaisJxPjYFN9s0UvlIdvGReWeRKhxtuQsOvFix8="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.26_1634804361558_0.46120535173315"},"_hasShrinkwrap":false},"0.3.27":{"name":"vue3-ts-util","version":"0.3.27","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"8ab23993cfc2aa745e15c3d04de07e73cbc0bfb5","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.27","_nodeVersion":"14.17.3","_npmVersion":"7.20.0","dist":{"integrity":"sha512-7gBAd1H8WXGKzpR0VMXd7umXZ2Br1kIavJpt8tSK/FIL152ovjmnfamdsBUDKyaJKTbXlJysBRqBjPRGdEvNZQ==","shasum":"23f2234b2a9ab6a353fcfb3ea0415ca0654e6b3e","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.27.tgz","fileCount":122,"unpackedSize":164097,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAskav1cYOVf2cJ0IhJIgSK5LzR/4hPFN7VH3b3IBxcyAiBhQl0zGTtvUWwXNPrKi96Ojc4ioDSWf1PJqQnx6I3q3w=="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.27_1635997592279_0.9137013308442197"},"_hasShrinkwrap":false},"0.3.28":{"name":"vue3-ts-util","version":"0.3.28","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"9c554cb22f6b2842c8ef2b6459190f53aa8b68fd","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.28","_nodeVersion":"12.22.7","_npmVersion":"6.14.15","dist":{"integrity":"sha512-Fx6DD6IV7MGyDuO1FuPStOnmrAibrnGd7ZHrkcPPX/TvFOTaJBIxlWJ1zj7qflIQPBR4Kr+Qs5e4T/vmKg+yjQ==","shasum":"6dc65f185dcf77a838b24ccc6c9b70131ed8c09f","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.28.tgz","fileCount":119,"unpackedSize":163732,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhstJ6CRA9TVsSAnZWagAAfCoP/3bDBCYCwU/o/FJYXoYU\nxwD4dnyUswtrJ7SC9OuGjBZBeTjh30aqGCP9Va9pMbXDtvpNpKNj1mjdnFY3\n4vsmKirrfcbVErXQecep3EsLvV/uM04g9hfMKuNF6n/cbZchMgwpC4hXPbI0\nCl5J3mEwvXe/5/5ZSFqvp2aYI/Nk1zj4xaVmHznXxvw2Vkd5MPcpTKdoE5qQ\n80EngnCyk+/MKIBTiwZLtTrToHKA7Dt4Lp5tRZLjyLxDI5YwkJoRi3K7Ct4H\n6Wcl/spaDKnhn85feixaVFyTFs97xBnfDy6Opg5AVCAYWBtLlR6XsPDzdxEX\n66p6a8F/SV4K9XaLR1vqjJSAzCZsEXJA9XBUOsTmQsNfDaxucUJAEyOS0gtt\nYV9j3AZr7ydgit7hHzazByQdIXms6YwFxmTtVxEaBlDOX6c3znV7k1vfNdza\nQzbp4GcXx957Zy+fumODHijwIszIzjoBYA9bPE+IYYTrwkqiJv4MItGUCYvH\nzXE5+xYC61hCuExzECeU7K4lqW1CK0IvQ7mIN6dfOfL4+ULvlcusaHwREDpU\nUGvNZZzyvRvoyXvvS0jhk0cqrWGQ5te6pCzB0/0n0UdvRdGo/PCuRBwgU0Bx\nhgixRYRCTDhgEm4gQ/Xq8B1GzTgs6e9OjkHLwHXBZMHDp6Y8yUN/6sE1RHSm\nvuxm\r\n=4EnW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICt4YcQmGUzJ0Vtqflx7bL4cDV6XUJ1YgnA00vY+EvikAiEAuYP5jYP/EUWleIkEUMXE8JkozLrLl+QetM9Q3c4RDn0="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.28_1639109241868_0.7004659175184056"},"_hasShrinkwrap":false},"0.3.29":{"name":"vue3-ts-util","version":"0.3.29","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.2.2","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"c1a19f5fedd4d3bd8e0c23e1e391869f5cc3dfba","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.29","_nodeVersion":"12.22.7","_npmVersion":"6.14.15","dist":{"integrity":"sha512-jaflGuw9c9snGD5Y442O17DqILGCMWK3rn5syOaKV/nxlbx9AnvHKcqP39GRt1C0GGKiPadX/3eesuQr56KaUw==","shasum":"d9854234151f2691a8b6b1b9c0e6dedcb2712228","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.29.tgz","fileCount":136,"unpackedSize":180745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiAedZCRA9TVsSAnZWagAAV1IP/0+jg0njOLMBUNtK7g76\nkTXGRJVZJ7xFPSdKFQIitKU2+9Sps/tDQQFvdOJ30PV+5Ivphtzwzc+Xr07Z\nPswy/4QmgoQWExKKpproH1mJNnwO99azLX8mrLkRDrTFx35S/DAHFFnP/xm6\nQ+W0pk5ucXm1aIo2S12hplBI7dICLt2s+s9/leC/0ApwbSTw6kHE48Fz7pn+\n7ohNFoVCePMe1uZzUG81Y0mkd0QycuT9Px6QV3AJcUf7FldGKeWBCOu3nOjr\nFyqtOsMTMlLivlQNzbT+sFRnafhuNvteI4j6TwTDFsxFeCuSRJ6X0c9KxZwk\nn5xqBNuNDZAQqXJMBPelDteRljFQYnq+5g52wEMRTKqe9dl81tw2ZIGjC9N7\nKxf/POVRVc/DU7rXzNeptzqjjSUutylv+3x3RZaHMGzEu5Vwa9RBQgOD5rvb\nOe9Xur6pG0Xt6P/h+sS2chap0q3Af6u03Raincn0Dc038cy6nzQVfedPIrJW\no1cVvKtFu5EFjYYR4/IRlvfg4TJxzZfxALbHwXE218e1mhS+7FOJwvVzlZRI\nQB/u0S/bn5aK1P3Q+bD7EbvAoe962oImEo88JkMlI+bpe1EcbDDm8p+qAwMY\ndkVewpRlj5FZ/lbOfh7k9eZNwT16clyjT7YfnryK6Fe7n3qTvZDrB7idfsS+\nF3+2\r\n=UKGh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH0lIVIQ7vQwqFykV5zuj3GFe1jbo3uCwBNaAMHB6YhxAiAcpUlex1n+R6GgW/r0QsjyVV2sFCR/tp7TwhP8Wj4Plw=="}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.29_1644291929364_0.7580576931452623"},"_hasShrinkwrap":false},"0.3.30":{"name":"vue3-ts-util","version":"0.3.30","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"fdfb5d36521bf3327c7f3b2e3d83c01b11d235f2","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.30","_nodeVersion":"12.22.7","_npmVersion":"6.14.15","dist":{"integrity":"sha512-5I/MyVOvh7eo8KtN5bLIjVQzgsa64bx3diM/B5V3Yhprwg0ROhr5Q+6AjpXWXyT490us+5DENo/Y0+XlKLEGxA==","shasum":"d569b9bda61220f66cd84b915191a72c9645886d","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.30.tgz","fileCount":136,"unpackedSize":180741,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiAeoUCRA9TVsSAnZWagAAqJwP/2bEoRPQWsUIh3olNhRS\nOn8lYBlgGsokxkpP4PsAuz4xDsLg3wGFeqyUuvSs40pPs78CPt4W+pqWxE+R\nQKKz/hKCrQXf3jRKELMEmXIVZS5bRRfbRJNXu1AX9FTUu5uD7IznUNkKuS+M\npmi0+DDhavagJb74EEmYFY1fKaskrdcRY0BEgKYGxJhfgHODQMMhbS4RTgoO\nNiDE6Po9jRXaudvC+wd4aauKGXGLVuUWTh56miDhsH4y0CLXGBJPK8Cmv/WE\nTRmp/75lSgusuxFksl6WL4hqXwSzdjuUJNOZ/spaxAsM1JfkqvkkA5oFtfTU\n4l7uRES1VkiR590vChFDxC3Y/nOLkPL6re5vmlUMHHA7XTL3WbqOBoketZB5\nsqwYlhBc16WUqMg7Skx1NoQ5cwmh+bwrz3kfuRwrMtakPqyFTh4avoCp8kLR\nz+Yfcd8kE94kyxqX1b2Jkc31r5CwA9eBo+OTHnWAKzscUpcr0oCzFIp79L8S\noDBvWx/VWCjAmR2iRiaabXqn7fcTmx5vHup5LlMgKA7MEkVIy02SjngmSxlF\nmBO93h+G6UocNvyZCbJACqcHXyqgFp/Cj84pV8RtMgqSx3P5wd+8BOIHnzcX\nkwDn22c1+pBJOaJI12X5iT3/ww8b3pUxyvoyBJwqEXDW3Ra0FA7bQKEfKX5j\n8acI\r\n=tGyL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8HxI3EKHwjUua+YkRNmtByGpUMAgkSdjnSQE1AaL/IAIhAN/7ykFkM5qRe0Rwt+WhNr4pySRODUKZouPIBndogVbo"}]},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.30_1644292628571_0.20683962372006826"},"_hasShrinkwrap":false},"0.3.31":{"name":"vue3-ts-util","version":"0.3.31","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"46998d6d0c4830838a8d16b628da75982251f2e0","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.31","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"integrity":"sha512-di4eZWoFXeL7Ifar5Mplm+gf28w6A2pDGDxyQqTBX780zdOQFXUZBXf2W9tdMPKPaNsYSfzaXuHqiwohcBNiwQ==","shasum":"1b84ad144d4e6977f75d50f61e89f725e8b1fc3e","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.31.tgz","fileCount":136,"unpackedSize":183621,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkc1GGpCA2F/6rkyeikBiN8UQwBC4lqk3VizZe8e4jMQIgM005pq9tZ3iMFmzXABMQcIT5RuKoSLSnYC3we8uaJrA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTVL+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoECw/9GaRUBsWrjbUij04yKVy4mingVgreFYAz21WFLW9xEDVRLPZD\r\nvRL7zffyZ125yhDIKetBl2JKTXM5ByeE7qCJLg1jOw6Lv8G/aJnPE1jm7v0i\r\nexbX1SYIgSmDlAcKChUkIqvBG1P7gM35yqHaOITihAa9fMxoiRJi3y+Koj0F\r\nMtQDg2a10Ni1zbkdXP+iHyk6/I1ok+AdxqBkbtDBOkeajxcWFcVTFy2pUlAg\r\nceV4pvY+OMeHiNOg0oLzMhYVJLtqLJUxcvlwdnb72fYJVynCo7xuO+4Gl36r\r\nOzm3yl1xEdxzUwLRv5icOruefIgntpCq5MZPUNJeJ1busoIw8IHjbTUez/lC\r\n8u4FzAF7KwjI4mFUMUlAk65A1Vq9b6f4tzwvSsAwBuG1Ll0R7bhhEwWXtp8V\r\nKktH32Kv/EKTqlnY3bH8GK3vYeRsIKNQs0IVFX0jbLwdgWGzMR3/Xw3bHqQe\r\n2TKKF+6L4DhYG8yr/xTM61es9OFeMp75oAh0H59cKzXmyEQlo2hNQn3MoTES\r\nQtjyQiwgFI3ijwUd7zN59vrKuUA691kpjBkqqpgHUtSbMUOHghgL+1n5IlHf\r\n8+NLBoLfZC0ZwHMtL2oppcBLIEiZbTQmMNQdZtvk45yTMSuPnEzXH6NU4oZd\r\nxF5euKJGGVczySwyh7VBRuJudi4p8IVmyxE=\r\n=oKJg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.31_1649234686404_0.4409273405279559"},"_hasShrinkwrap":false},"0.3.32":{"name":"vue3-ts-util","version":"0.3.32","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"5f7a6577d730946f6a59d243dc0f5bdcdf3e1c00","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.32","_nodeVersion":"12.22.7","_npmVersion":"6.14.15","dist":{"integrity":"sha512-RihTI3d2f3A9elQU4GtruU6Hy4+pDewxGgVWlVBvQPyMzVgFNPacHgRu9kC/aEUqeF0hMA0J5mIQ2oe3/ZChTQ==","shasum":"0e8f23d0b5347823aae3bd5595a9748700178a62","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.32.tgz","fileCount":136,"unpackedSize":183613,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEHQDpUuxhjAVoKSipypBKizZ52vAkoG83/+BOwfacUKAiA2o9mWwsDRUqUrhSV1jiusERm/l5Ht7FHJRkW4BXUeAA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijbloACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoCkw/9HeP9ne73E9h4tHA1ruR7/uuPT1QXcGIwXL8KAChgzuwizMug\r\nlr873jwbPL6Y/9hNvFsfduWmpxnqKV+QW76L4Juo2M9Bw2h4txwftOewZPpi\r\nptxcpeu6JVPYUpM5cGjUvc4i/vFHk4jMAnij6Wi8U7kk9R2ViP/4tad8RADA\r\ny9w7BFE96D2xhL1U3dHtbvgC1kLDwHJZnj1Pyhi+PXOmeu5UosNH57VV/nkf\r\nrO262di0p818AD+PP4ERAScDkuFndNsNnbBOpABwQffMBGqdwRmpO7E3zluH\r\nSqRX654hwD2sOk6CR5rpWebYnyTm55YqQAYm5geapDs7Zc3uuF21ZJbWDAjA\r\ndcFxi8khqbMOJTFnNsAqnaxzICkOYNXCEsW1FqzdmujVG4wi2BdD6g8MLjZo\r\nHfFuY/2SKFBOahF2TwwFdkZh4I9IXeD/j3dBVuiG3ffaaitJnuohPaKBAUfp\r\n86loj3/BZQyCkYfTl65uBCCSjAdLj0lmQ2nezOBWevQ8LdfxWzuYZWzML6YW\r\nQUC7csf/M8DJPelG8UyXIyOiR72AW2ULZF7PmkJfzwWGEq4oc6+FLQpqEfiT\r\nEse0n1OF3i3RpmrsBtJaGhLtHuQdv2qlJbrxpWS6Kwt+pyiR6/8BXyb5hmp8\r\nU5irx8FJb+bM2vs/3n6Bt1CuRq9PqfiMeII=\r\n=Qx67\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.32_1653455208717_0.3740502646299386"},"_hasShrinkwrap":false},"0.3.34":{"name":"vue3-ts-util","version":"0.3.34","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"@vueuse/core":"^8.6.0","@vueuse/gesture":"^2.0.0-beta.1","ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"4a541729724ae7d62fe88b9433f12da2c8d0ad58","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.34","_nodeVersion":"12.22.7","_npmVersion":"6.14.15","dist":{"integrity":"sha512-22lCizlrT0hhurnoMgIb9j9rbSeA9tzDmAQhnBW84eZsSjiE6X1OnxnD37Tbd9FhycNXPBgRLRUEH/OxcEFKmw==","shasum":"b396208a5331edc94d1dd1331efddc8f8bba2b56","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.34.tgz","fileCount":139,"unpackedSize":196430,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIADrXbfJxM9wcmwW+HsACS4JvdvciZnnccknCW+YYywaAiBWyJI3DmrLJUMIpQlv0XUzN1LX++8sEsjegiMAmQFUbw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisT+IACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqUaQ/9Hr66Gt9HwIpn4LXHXNahnAU4YAczmtf6v4pfO9oSbjAw8Cfp\r\nhtytPQOzl24hg/j4Zaiw11j/1AIszuB7Kg2crOetrSzTpPgoOuZaHdANXvYm\r\nzYpK29wQbkdHX7L88NFMB9Hc7GgeQAWW0/zLag9FGMEruJG+hUM7kcGCRkFT\r\nvrt6QBNx5mYgzAMwK4N178OR627zSVup/WkvHGWsxuA3B/HYWLO/Po1rjX8O\r\n/+cLGISiNnm4EkjBS2cqtjccb0pHqon8fdDgCjXqU2z4Khpk0/D1xS5iDN/M\r\nlYGvxAUFqJN+SFTiGIVPkHQv1Wcl/sXjdMkSQNqXrTDcgmRRBtz8VFgKS7bv\r\nvAkuam6Dyl8uhKnMySoOg0lnihx0L3JVheDSZBO0TcLjAKumH75QV1SMAbPT\r\nK7CbVCA4j3k42ZtEEr4Y/wC4Ek9mA/oCUZNEIfBIQfUkkxs65w02qBejv33l\r\nI/jdIcuEb/BrHhi31hNffCuUUqKgfCiyO0ZZfwUDpZkAkeNLmE6E+W0M7LaC\r\nEGAKx4U57RC3HSKgPJV72TNY4sEVZAmFN5FYTm4stEwUIHnVamu31RJDVtC4\r\n2LEY5f0WBNrgzveieMdKoyDJ5PKBD0fLltN3ZR3Q6git3JxL3Wta06J/n/eB\r\nv08ucwYBBDzEPUV6feWrmTIET2bxEAUwwIk=\r\n=JUNg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.34_1655783304245_0.053786502723556895"},"_hasShrinkwrap":false},"0.3.35":{"name":"vue3-ts-util","version":"0.3.35","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"@vueuse/core":"^8.6.0","@vueuse/gesture":"^2.0.0-beta.1","ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"bf04cf35f53a7868469a2cf58d25f293abf8fab4","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.35","_nodeVersion":"12.22.7","_npmVersion":"6.14.15","dist":{"integrity":"sha512-P8gRV80HnRkdKlqzjqeWK1Ru5TlW+qvY96adIu/etwJGE1Xa8W5N+o5G2BRtgOd+pAuHZ+W5vLPkiWFjb28+Zg==","shasum":"35bdb07380e4608dd629b1027a7b0fd58e08ce12","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.35.tgz","fileCount":139,"unpackedSize":197781,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFGoG49YaVZ8kYuxAdTNDLGAbRWDrmlPhFtcO++Aq2u1AiBzkLzKj4qQHYshUFt1vy2JZ6/76H7JU9g8wephI5ME8Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitBeFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq04g//WizKlKA9EVR/uAbTWGypZQFs6mNwo02dE8191zNkV8YRL1IR\r\n0JS1q8YldvUOwmQ5vkyAoySL9PAAxn3k4qSSwNBtKL7oEMarICQVDuf8K0Vu\r\n9HD2P8PiNTIkq1PzXQHABUofi1rbdYntbECRUpIiejwqQbFJvfqng4uPM1lH\r\nL/NCFzjdawSH9zzvelKhrY6ej7Wtf5dPJtuwqF6wSnLGQIth01nzMWL0x6Su\r\nym9JgIyqORMWpFzALIij9UCETSZRZNomrP1PDUrL+cn/sd3P00rm37alBZXA\r\nK5H/GqXNzywF/t+EiFJbNnU63Veot4SWqFwhzLWyM8O2r+rLya1BcNKImuua\r\n/4O802WY7tD/Gb2wnBkVUNit47UXRJwgCNeCb5sIqqjcQR+IifH7zy/bgcBo\r\ndK3Juo+W/YNYbQPEkbp3vGFRZO5IUFqvafIRs0b++P+vWHLD+pCrOOb6Oexp\r\n83FFLMOFtaG7uw6v5+SwqvzlNKhVWOIkvOCYOo9KU3aI+KYYSBm+eljgECdz\r\nj6f9ECJtWdVfGU1h+nMT7x7rpLZXUR8GqbHVN315xb8H25tgJMtsRKjP8pf0\r\ntZF8ACRbZ0/jDFCmIKh2Le4XrANuukadaqGIMueNFzzK4OQl5dp3lE2T0EvV\r\nYZmTSYRv6HmRBPSBuoq8Mn+DRFf9F/BN68Y=\r\n=ZpTa\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.35_1655969668824_0.5915198576716312"},"_hasShrinkwrap":false},"0.3.36":{"name":"vue3-ts-util","version":"0.3.36","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"@vueuse/core":"^8.6.0","@vueuse/gesture":"^2.0.0-beta.1","ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"fe69b8134ef3022a9fb046b7c094e174b8f697d7","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.3.36","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"integrity":"sha512-6yiX+A57IEbdJBifSY+m21kk+DeB1tyx1Im99BlKVma4um0qBeEiT8BDRTyYvqpahqIWjQWlRbjZhy2rGnmWpw==","shasum":"4e9daccdebab6f923f861f5cdabc74f70ecd4400","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.3.36.tgz","fileCount":144,"unpackedSize":236329,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA56uNKe7mHHhvd2qQe7zdi/yFevgFW6MniyjwgEjvg/AiAovDa+OXTEVcQ6LfdTNlrUi24yPsz8eWxZZ408UDT48Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2RJkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrkCA/8DiX9v0wDSMeCWv0mSWXO80FPWR33MoBXY7T2VboK4pZ0oO0m\r\nbvHRUhWW2hyR9RZch6VVMDaI6LVlJ5LQ56t5t5iIumeQ6VGOc+rXXEdaeM4z\r\nCGuTO67sUXn/7Cuk+0cLhAhllt+x1C+7rz5Ni37d3uO2H7+cwz0X5AbXLoA4\r\nTiRwaWtwDUCNxLUI/uqWVE72gFsuML7JzJIVF+YrOUjcdLRF0KauVFfmZjE9\r\ndiPdux+69NnzgP7Hxy2n5JfdwHzhkLk3bIAB5KGuS44qvdANQos4SmYO/WLB\r\nYceTyYzZfoBebQJFZzH3hzzZvL/KLCF5P0mcy2qYbg6B/GIRJ8o4nHBlAwDO\r\nYj7XQQZ2tqY6E9SW6XbPOAKjI2/umLKgI6bl8cfijw8ALWTgEJAFee2etsqt\r\nVFteceVkMRiljF9De938MHxotlybFhL93U9dDjTCpsQ3tJCaIwBTkd90oV4i\r\nDizPtvBnaoyZTpPlmaN9F5OTKmDt1VjFycweFrS2kTYA8fQaz8xXCEMLMKpP\r\n1ejZPOP21LQRNZB9p/OZCda95Sz/waCtFhnpu4s7z8qI/96oBCF6T6FGPVv/\r\nHFAandE7xJe3wUsuRNdFPuyZatOvKEUVPzCRmLIabMt4cPotZAI8uc7qFNeh\r\noeoY1ctIN818Gvk6R0pYVrXXL45oNbT6zVY=\r\n=/XTp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.3.36_1658393188652_0.7980479457704286"},"_hasShrinkwrap":false},"0.4.0":{"name":"vue3-ts-util","version":"0.4.0","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"@vueuse/core":"^8.6.0","@vueuse/gesture":"^2.0.0-beta.1","ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"a223cb73405a0e9e331d75183543fadfe94184b5","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.4.0","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-hLTswcZ0GEGpRJwTI32+GDA2e12uoO4+gZaNEzMdDnrl9mLDMQuShr+8etY322mWjEKyhOHpZzrwC9feajjC1Q==","shasum":"4e9d965536d5878cf110b700f7ccded2cac2bd63","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.4.0.tgz","fileCount":147,"unpackedSize":245414,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgCol4H9u/aZdwJDpf4xlEg3ZAUIr16b1Pca863BlsjQIgRmS/CjEMoant8d6GveEnpfMqzISCOqp/p9G/nr3UqdM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi310LACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrKDw//RSt0Mm2aehLDkYb7trnbXQ/4KMKzB+S8aEKpnbmyBW03ksqF\r\nxfGPyLdaVFs61OIzXbJZ1PXh+4cNr/LwGKgJUAJ+Bmf5XDssY0ju9ehhUkzh\r\nlz2QoFrOesc5u640jZzSlmzHNm/XubM1/mMWCosdEwKFswz7ZQ8rjRmn2gwl\r\nzaJ+wqZpDlZ1BSLqAkKCeihYP0PgmfC4yJXAJZ2TWqKo01aI8pG1ea7bvsOg\r\ny5OmNN9kFR4eWyu7AGpmIBh4Mv74rpRnl6O9GOdzmgqEx3wy/z66JDgPe0CP\r\ncnaSvHqO/vw4abpSLL99KgM0bHF9nf0XXhtJgtmt6b4S/8VfjM3sIaUwm+gs\r\nWQ03JISNXPgsXQhsS0+CxDEiqGxdtG2veKGI8VhC8fUV5yiW4STxbjNgotCH\r\nEj4T5AzrBN14TW3ENg5l2rQeDVQQmR7r4PcwJOvV3jLnStB9ZEeDg6xarVGo\r\nUpdXe8SVfrpA1dZEdgwEo14C470nXGVBHa631d3sFlPDl3dAVJUXypTQjDFH\r\nsfXGMYXTylz5NKtS/VxavXMxqJ7JzN9NYboREvvfPx1DXZ/wIoF1FfsUi25J\r\niMH49v0ae2wLVyFOOyFGl0CWa76HZh+dRKD8rgkdxUls9t/GTFi3yyf43Qq0\r\nv0L/z7Izwh0zF3LRLXx/osxBC+tg8I0lxmk=\r\n=Es3P\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.4.0_1658805515165_0.2801435714620759"},"_hasShrinkwrap":false},"0.5.0":{"name":"vue3-ts-util","version":"0.5.0","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"@vueuse/core":"^8.6.0","@vueuse/gesture":"^2.0.0-beta.1","ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"b747d843439eed331fccc0d3e5ab23d988cde1dd","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.5.0","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-OOu/5kZ2QIPmeIMQwDa763UOOnNxTf1JNBcbEsQNUxERxX1i9WXuQ+vKn77x73WWvYfdxiof+oxXg3Wt9RsCNA==","shasum":"7f5bbe7fdfd7e36ab509a09bef7b379cc9417501","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.5.0.tgz","fileCount":147,"unpackedSize":247298,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEn/1M9fhmR1PBJzUbXyWJWiwSu23aBgtEvNIO12jSoqAiEArh3JaLUjfhrAOm4+R9rfLO2rb+nkIsKkCxc8qg0WMno="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4LXDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpmTRAAmc9I/DQjyqZTdeGbsStMzb4NAwEVGyax51osvPiiCnZm0Qzk\r\nVeA+zSCxezpUO3TJmt5XibzikZKkwJmr9e61OfhDA786uWOV4sOJJ8atKjaF\r\n5B5+danF6CkM+kkemkNcyK2yusJ1iOKlLfUTn8KdI1L8h914dT3pnPZZVeMg\r\nvSNl8kK3VXnkW5Gouco2b+DTc63wLOtthdKKHZyDxQh5YnN9tgdh1nsW2EGR\r\npsrjYw8zoBtDeHZcVO2vp+U5R8P0MM9JcpQO4R+63pkazwT6x7mw2/d2ulgr\r\ne+ulnsAciN0kt4JZxNQx9ZnntgMMd9CflpPBvA97jqy0rCecdTIBOFmggY33\r\n6VAgSGlYcDZq8+3pRA1xYBxrNx5+9WyDd8oxrsx4LV75pXzE43uxvJLTPReL\r\nU6JU/gU3rHZpDevb+Va1mO/E75qo8jjveySzDJC2o0Qo03HCukU9rfUbfsms\r\njvmg8/bLdg4ljrHw3L4IqU6LyllqcHJBrDfTGi1az+fN5CkNwdiiQam73J1J\r\nvda9IwwH4bBPzA8EWgY5DV0t0Z9eJl+iE5c1i+meR4LroWBYuu0yR17BeuNT\r\noBzt29X25HpAZzmH2eNnO9MoxfOm5hmbQ5JfGOCkwatYgu2akNfAC2K5FYAr\r\nRzTcuDvFb19O5+xeELywE43zepsZ9A3Mw4g=\r\n=lhMl\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.5.0_1658893762641_0.060674767597232115"},"_hasShrinkwrap":false},"0.5.1":{"name":"vue3-ts-util","version":"0.5.1","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"@vueuse/core":"^8.6.0","@vueuse/gesture":"^2.0.0-beta.1","ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":"^3","vue-router":"^4","vuex":"^4"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"88ddb79dfac0fd3a37d9ad0b3588975b9c8a0e38","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.5.1","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-gN2wmJiLspKfasywoANTh2BCz2Z/PKKN+UsXw3jYuzQkvstS9FyNAXGWgUWUi2RGyLDsFEFRkupVJ69dsFaTLg==","shasum":"51f4c16e61592c6f2ba61fe2e11482038df628e7","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.5.1.tgz","fileCount":147,"unpackedSize":247286,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGYhsvfq1H30pdcRyu8Lb/JoIjvjOjY0VQY0unG1uyW9AiBUL3cSna+xH25QL/Z6+VbnZyA4JgB3cd7vk6dAVcXRzQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4PtCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmobrA/+KNM4VA4igCmSidLCHA65E8Zcwczy1OWJ7YsXbSiMfDAm3AJP\r\n561RwzUmtSznMiMQuIDZT/4H/H1q/QuwflAga9trtS/s7WqKpKrsCNW6FSiJ\r\nFUBdO5wOGkq5Zc10d0Y6gNefL+zdFkd77kbwAbLDvgBtMU+4o0sSB+SBLHXT\r\nO/ytf+nHJqLN80YpdgH6jqLjKawT2jcvPgMZIhwBNCYOnYl0EYIU8Y+p/ca9\r\nAOZuoBVvmBxv/Ga55NKSs20RPj5izZrIgfg4qp00xZp26OQsovmP86nldi7U\r\nUD+sEPYLuiizku52AVtizfmzGNTgfg44mwCSAqy+w5PRNWjWBA2m4V06UIhN\r\nCSeHNU+xwrhqnaFUrqXsoLXBRadqQ7AyugnwiXth4o1TMHccWMuxLznlkXdV\r\nB2De0S9OmlWCfX0N8RMqS+ATUYpwCfcgmFQ9VTi6/neToK08XYxzFer7OP41\r\naTWivvyFRYT3uxouli+NkfI56IW2L7gGvfzApkquwKwZpHWSGYImq3b4jDLV\r\nKkZX4rjw2AczOelEBEr49ZEc/tltikEuy9Ygl3z6eIsWhBVDeOHuR9feqUbP\r\nCnRjP4YMxN2CiVM5TGAZfDZksEyQXBCzct+OIyeMjsox9TbQJN+5TQy1xRtX\r\n1IdkKGxN8nyMmOqy3tF2TifDutJEO71cWxQ=\r\n=1tZE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.5.1_1658911554059_0.3300304515999155"},"_hasShrinkwrap":false},"0.5.2":{"name":"vue3-ts-util","version":"0.5.2","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"@vueuse/core":"^8.6.0","@vueuse/gesture":"^2.0.0-beta.1","ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","vue":">3.0.0","vue-router":">4.0.0","vuex":">4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"88ddb79dfac0fd3a37d9ad0b3588975b9c8a0e38","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.5.2","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-XVzcRjcpB6IkyqHS6Mdz91um2tICaRuN0az7LIsMMuk1UQGRr0hjIOpq4ax5BbmpsQZh6wFnnUWqynIQKeYpJQ==","shasum":"b6d3b76a9879f407b3ec88b2d4c58de5089ca038","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.5.2.tgz","fileCount":147,"unpackedSize":247298,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD03ml9k/ShNNEHAy+WXSX5On4iW7TMNGhkekPU7QjtdAIgTHZJXH6koQxXhCXgvqg7W6eVO6szNnQiW/XH+4OvHfQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4PyYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpKMQ//QqfBj/bYbhjfwB97ST3wxXaKOPGH2+oyOTaMd9utRxTpt2R2\r\nk9G+cLlQq1/TM1G5fu+BDPB29VQ6Rxxi3gH1JWL2I9wW7w2fvAGnnjZ7VxQ+\r\nMlgLuNWeWRdHu+T5VZ6ZS/YzOOE1KUqcXzAt8Jb90WFk0VsA1t4RkjusiIiq\r\npamyTqW+MWM028hbvXexH5tjaY48n5QqpweM2pSY1PZLuGyrjgwL9TTyPI1f\r\nA33rZR0/OT5tL06YKOB6BywcbZ4x5kAVEWLy8WkTXUtE4FFWQvuxf2pyoX6p\r\nfVXmoa+W/VeaH/zoY7sl9zD/BY3Jz2xoBycwrTNQL6TivOMsBdV2gv0tbpmS\r\nFLYJX1IcX0u5ueGTP/6YxayHfX5TZAacGAdhQUOh84vsOlymRtIYzlrPhQ9D\r\npMcadpNjOGMXz2A+8HMLayWkFYxWo6MBsYdT/K4zp+YgddKWthlpAM03rtDs\r\nrfd5vXKxRmXy5YZdYAqXJFt6f5ZeDGrDXGQWEj/b1hZv+Yn2IT59Vf7nSPH3\r\nDtbPiIiFe4YLUSHgfRH8AaHDWNyRsBq26vmNkrc34QENXpLPMO9+0h5C3wQM\r\nzGIG4czzADEy59h2F1SE+is3GMj/PwTkV5R7p7UZecANMPLln9QxcrmMWSp7\r\nWlYhuj4QdjvwCHs3jDH664JBDB342ArM8xw=\r\n=m2q0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.5.2_1658911896306_0.2700986006437742"},"_hasShrinkwrap":false},"0.5.3":{"name":"vue3-ts-util","version":"0.5.3","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue-loader":"^16.3.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2","vue":"^3.0.0","vue-router":"^4.0.0","vuex":"^4.0.0"},"dependencies":{"@vueuse/core":"^8.6.0","@vueuse/gesture":"^2.0.0-beta.1","ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"88ddb79dfac0fd3a37d9ad0b3588975b9c8a0e38","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.5.3","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-6LNTECp9+vNiX1NQdBlUgut34ykjB/1VS+idDI8Duq5nAH5sv2ps1NePKJW8/papj+n8DEUC37m27M3/Lf32Lg==","shasum":"d1a83037728b1296c4451e5b43770e6fc46b521a","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.5.3.tgz","fileCount":147,"unpackedSize":247400,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDk3RgCZ30O9z/tWyuO/Gur5jaIfvJuVH+MIlu3zxcDRAiA1gogWkFCTt1MDQYoc4ieayVe/zQ3k/LLaaV50ZzHCHA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4QEzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmprPw//bTbod/sfrrInT2P7/LnTlgXIycA0McPJIe2kv8IxG+xlyMCm\r\nh4UZKF9x2A9Xci2kFEWG4bWlM+8PlkEjhDLp8Y6VLBGc5R/2wlqTchPVkj/a\r\nrQaQLTmkNh3GSLnkeaqeMDaXMPkN0LCh4nyCnozev1ESpV9/0kxje/sYPMxy\r\nEbUm8qmhaa9GiSoqO/erJf6IVx8zJGtDD+jD6Xt1lKuoNSavbXCCay9+bTPR\r\nY0yQnBpgSsrEkPff12emRnK/m5g4aZw9eJ8wgZraPJWZImcttWXOGF60hqN7\r\n1Q9pXLef79Mw+maFAOhXFRwvNGJsefqs5rSluaEvSVrU5ZwKec0G0P+u7H7s\r\nLPawKBYzPkJo/OysePBdSNiNicHRqrfQ/IaiE5dgTL5DKZxUCa8hgSXFHdSZ\r\nwkXtH5E4zuoXpxLS8/O39NfxosJSSgb1o5bE8LKSBzPspoKz8CMoCFbMHxhY\r\nzYDh92EVxR2W2G13YjaXw9ffGbXtQjqhATPj99jNqHLBJNsWxsbvk7GBboyx\r\n/r5i68NVOBHzpMCtxdXjottmYjG1skCdV9S9pwpieuiV9fXAro6eXca6DG3O\r\n99/oRYnOCTdOOE5G40dGwfXT9eIrikZLtDnbrSvC0W2viTsChwfFY0P1VHiY\r\nxftU+8kteQpQEHOZz0REvkfildUCB+V7r6Q=\r\n=CHRL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.5.3_1658913074799_0.07134233029770742"},"_hasShrinkwrap":false},"0.5.4":{"name":"vue3-ts-util","version":"0.5.4","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"54f65d2a317bb09884694ecb2796bd400d0ac334","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.5.4","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-9Zb5GnmABJt4zglZDa1EgnSW2IwLOhpURsM/iiJDsiRRr5qv0lbABW4mbBoas4GxMWQ4goVgt+5cDDDWdSRzOQ==","shasum":"db7c65e0a3efc8f9b1362f03f52a40ce318fd080","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.5.4.tgz","fileCount":144,"unpackedSize":238012,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxk+JktmJQxo62JsdjOuDtR9t8vQfz8LeEz7U7PmDf3wIgPCH7cm+Sotzf4fpSrnftus3p5w0kmVs2uLUAeCLd0wQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4geyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp31BAAoL2Jc3JRJke/gi2CmqFMkRa2gCamNLY2D7tfuDsP2263/IG/\r\nf89yBU1dkYp1XeNXqpjBQMRNschajyD6oho0XltDf7/yQsazdJoVmarnwUkz\r\nGGAf3yF2vKIgyFouxGzLyZuYBKLh4J4gIfzJWHnLFBLSW+Ha4z0EzKZVq/J2\r\nvHE/NbZiSQxUa+PmGa0apC/TI2oQJoL+kUUhMXd9JzgJoQI5jFYqPgKr5uCv\r\nPCyXhmahWISjZmq3e05KdA/Tf7XHKCMtLbeIPdsx15A+zivCHs086nGSwxaf\r\nxi5V/JmFi6QM4G16bLfPokRt2eoJJ76LLshkphqyHwq+iUDI6OF3oUD3QuQq\r\nVMfE7aozkBalLsNQAusJyAuLg5sAY089iuO0NCOrV4w8L1Z9pO3l5nJzL2PC\r\nQG1Ip7wFgWCm2Zr3eTxJ26z/Gb4oBsb8NOcPhbxYHQfWSsqvyHNCP4lSsZcb\r\nc1zlrhyLspcSs2fbYb9fLm755trKys14WOgaIvtq/hOf3FDTpvUeauv9K67z\r\nJuIY7YhDaMskiEXqPzUMn4pHPWzGcJhd9QY8Llh5KQE8FcJX25IYtZaDJbvD\r\nb4Usyx3osPfk+iHmjMVYcdIG/8t7U52i98O/fHtSwF1ZN2kI+oo/dUznxMgG\r\nVrrHB7u0rJqiwheXPJF7p86GlaHKiN+SbYo=\r\n=Kywe\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.5.4_1658980273903_0.29057329987004543"},"_hasShrinkwrap":false},"0.5.5":{"name":"vue3-ts-util","version":"0.5.5","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n> 需要先有对等依赖 yarn add vue vuex vue-router\n\n# 用法\n见文档[doc](doc)\n目录见下方\n\n<!--docinsert-->\n##  vue3 composition api的hook\n- [useDomRect hook风格获取dom的rect](./doc/hooks.md#usedomrect-hook风格获取dom的rect)\n- [useEmit 用于在hook内emit](./doc/hooks.md#useemit-用于在hook内emit)\n- [useFetchQueueHelper/useStrictQueue/useRetryableQueue fetchqueue的hook wrapper](./doc/hooks.md#usefetchqueuehelperusestrictqueueuseretryablequeue-fetchqueue的hook-wrapper)\n- [useInfiniteScrolling 无限滚动](./doc/hooks.md#useinfinitescrolling-无限滚动)\n- [useResizeable 用于鼠标拖拽调整调整某个元素的大小位置](./doc/hooks.md#useresizeable-用于鼠标拖拽调整调整某个元素的大小位置)\n- [useStackAlloc hook风格管理object url分配](./doc/hooks.md#usestackalloc-hook风格管理object-url分配)\n- [useWatchDocument `document.addEventListener`的hook wrapper](./doc/hooks.md#usewatchdocument-documentaddeventlistener的hook-wrapper)\n- [createTypedShareStateHook/useHookShareState 生成一个实例内进行状态共享的hook](./doc/hooks.md#createtypedsharestatehookusehooksharestate-生成一个实例内进行状态共享的hook)\n- [useRouteId 路由参数id获取，合法判断](./doc/hooks.md#userouteid-路由参数id获取合法判断)\n\n##  输入输出，网络请求相关的\n- [FetchQueue 自动管理loading等的请求控制容器](./doc/io.md#fetchqueue-自动管理loading等的请求控制容器)\n  - [构造参数](./doc/io.md#构造参数)\n  - [类方法/属性](./doc/io.md#类方法属性)\n  - [pushAction返回的任务实例](./doc/io.md#pushaction返回的任务实例)\n  - [例子](./doc/io.md#例子)\n    - [最小化](./doc/io.md#最小化)\n    - [排队执行，失败自动重试](./doc/io.md#排队执行失败自动重试)\n      - [更多的例子见单元测试](./doc/io.md#更多的例子见单元测试)\n  - [衍生hooks](./doc/io.md#衍生hooks)\n- [Task 轮训请求的控制](./doc/io.md#task-轮训请求的控制)\n  - [参数](./doc/io.md#参数)\n  - [返回值](./doc/io.md#返回值)\n    - [停止轮训](./doc/io.md#停止轮训)\n    - [获取轮训结果](./doc/io.md#获取轮训结果)\n    - [获取轮训参数](./doc/io.md#获取轮训参数)\n  - [一个简单的例子](./doc/io.md#一个简单的例子)\n- [makeAsyncIter 分页api的迭代管理](./doc/io.md#makeasynciter-分页api的迭代管理)\n  - [返回类型](./doc/io.md#返回类型)\n  - [一个简单的例子](./doc/io.md#一个简单的例子-1)\n  - [控制多资源，内部状态重置](./doc/io.md#控制多资源内部状态重置)\n  - [中断之前的请求](./doc/io.md#中断之前的请求)\n  - [返回类型的约束](./doc/io.md#返回类型的约束)\n  - [在vue2 options api中使用](./doc/io.md#在vue2-options-api中使用)\n  - [在小程序中使用](./doc/io.md#在小程序中使用)\n    - [最小无限滚动加载收藏的例子](./doc/io.md#最小无限滚动加载收藏的例子)\n    - [在ts/js中获取asyncIter的状态](./doc/io.md#在tsjs中获取asynciter的状态)\n    - [在wxml中获取asyncIter的状态](./doc/io.md#在wxml中获取asynciter的状态)\n      - [通过设置回调来实现状态变化时更新 setStateUpdatedCallback](./doc/io.md#通过设置回调来实现状态变化时更新-setstateupdatedcallback)\n      - [简写方式 bindPage](./doc/io.md#简写方式-bindpage)\n    - [如何知道asyncIter引发的界面修改完成时机](./doc/io.md#如何知道asynciter引发的界面修改完成时机)\n  - [常用场景的使用](./doc/io.md#常用场景的使用)\n    - [antd表格翻页](./doc/io.md#antd表格翻页)\n    - [无限滚动](./doc/io.md#无限滚动)\n- [useInfiniteScrolling 无限滚动](./doc/io.md#useinfinitescrolling-无限滚动)\n  - [探底触发](./doc/io.md#探底触发)\n  - [交叉触发模式](./doc/io.md#交叉触发模式)\n  - [hooks](./doc/io.md#hooks)\n- [useAntdListPagination / GeneralPagination  翻页管理](./doc/io.md#useantdlistpagination--generalpagination--翻页管理)\n  - [使用参考](./doc/io.md#使用参考)\n\n##  其余不好分类的函数\n- [deepComputed](./doc/other.md#deepcomputed)\n  - [主要的使用场景](./doc/other.md#主要的使用场景)\n  - [性能相关](./doc/other.md#性能相关)\n  - [需要注意的问题](./doc/other.md#需要注意的问题)\n    - [如果发现修改了值但setter没被调用](./doc/other.md#如果发现修改了值但setter没被调用)\n    - [调用了一次值的函数(例如Array::splice)，但是setter被多次调用？](./doc/other.md#调用了一次值的函数例如arraysplice但是setter被多次调用)\n    - [原因](./doc/other.md#原因)\n    - [解决方法](./doc/other.md#解决方法)\n- [deepComputedEffect 更好的deepComputed](./doc/other.md#deepcomputedeffect-更好的deepcomputed)\n- [events/typedEventEmitter 类型安全的EventEmitter](./doc/other.md#eventstypedeventemitter-类型安全的eventemitter)\n- [image/getImageUrl 从下厨房用的图像结构构造url](./doc/other.md#imagegetimageurl-从下厨房用的图像结构构造url)\n- [assigIncrId 生成一个全局自增id](./doc/other.md#assigincrid-生成一个全局自增id)\n- [unid/typedID/ID 使用symbol实现的ID生成器](./doc/other.md#unidtypedidid-使用symbol实现的id生成器)\n- [delay,delayFn 延时，推迟控制流执行](./doc/other.md#delaydelayfn-延时推迟控制流执行)\n- [promise2ref promise转成ref](./doc/other.md#promise2ref-promise转成ref)\n- [promiseSetRef 在promise完成时设置某个ref](./doc/other.md#promisesetref-在promise完成时设置某个ref)\n- [momentConvert 一个函数实现下厨房常用的多种时间转换](./doc/other.md#momentconvert-一个函数实现下厨房常用的多种时间转换)\n\n##  类型及类型推导辅助相关\n- [globalComponents](./doc/type.md#globalcomponents)\n- [DeepReadonly转换一个类型为深度只读](./doc/type.md#deepreadonly转换一个类型为深度只读)\n  - [仅使用类型](./doc/type.md#仅使用类型)\n  - [也可以使用这种方式](./doc/type.md#也可以使用这种方式)\n- [ok 先验条件断言](./doc/type.md#ok-先验条件断言)\n- [thruthy 真值断言](./doc/type.md#thruthy-真值断言)\n- [Columns 描述antd表格结构的类型](./doc/type.md#columns-描述antd表格结构的类型)\n- [Image 下厨房的图像结构](./doc/type.md#image-下厨房的图像结构)\n- [WithRequired 将对象部分字段转为不可空](./doc/type.md#withrequired-将对象部分字段转为不可空)\n- [customPropType vue props用于推导自定义类型的辅助函数,使用interface风格写props](./doc/type.md#customproptype-vue-props用于推导自定义类型的辅助函数使用interface风格写props)\n\n##  本库的vue3组件\n- [GeneralPagination 翻页器和相关hook](./doc/vue3components.md#generalpagination-翻页器和相关hook)\n- [SplitView 支持鼠标拖拽调整的视图分割](./doc/vue3components.md#splitview-支持鼠标拖拽调整的视图分割)\n  - [props](./doc/vue3components.md#props)\n  - [例子](./doc/vue3components.md#例子)\n- [SearchSelect 支持搜索的选择，追求尽可能少的代码来描述](./doc/vue3components.md#searchselect-支持搜索的选择追求尽可能少的代码来描述)\n  - [props](./doc/vue3components.md#props-1)\n  - [例子](./doc/vue3components.md#例子-1)\n\n##  vuex相关的\n- [mutation 生成mutation函数的辅助函数](./doc/vuex.md#mutation-生成mutation函数的辅助函数)\n- [VuexPersistence 用于持久化的vuex插件](./doc/vuex.md#vuexpersistence-用于持久化的vuex插件)\n  - [feature](./doc/vuex.md#feature)\n  - [最小化例子](./doc/vuex.md#最小化例子)\n\n<!--docinsert-->\n# 开发\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn\n....\n```\n## 使用dev-watch开发新功能及debug\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\" // 直接在命令行里输入pwd获取\n  }\n}\n```\n`symlink`指向你开发&debug用的项目，再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是，这个即时编译只针对esm构建可用。且关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 一些需要注意的地方\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验(setup的更好，直接defineProps)\n2. 如果需要返回一个外部不可修改的对象可以使用`deepReadonly`\n3. 修改文档后使用vscode的markdown in one更新所在文件的目录，然后使用`yarn gen-contents`生成合并的目录写入到readme<img width=\"623\" alt=\"image\" src=\"https://user-images.githubusercontent.com/25872019/179443451-6c974bf3-18d8-463f-a4df-1dcb0f787086.png\">\n4. 尽可能足够的单元测试\n5. 如果修改了组件相关及时修改vetur下的文件，及volar所使用的`src/globalComponents.ts`\n6. 版本号修改参考https://semver.org/lang/zh-CN/\n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"e120743fb6a2b508310f2207bff29274e1dd6ae7","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.5.5","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-UXQsYu8kyEWZiBQVlwMuyZOI1L2TkNhmO83NwGPoOnpE7/Op5YZTJZj+A6i48aKM1SP8F0eIg31FKKAdJ01qiQ==","shasum":"4343859fa394eda4818413a49affe8bc33b44cd3","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.5.5.tgz","fileCount":144,"unpackedSize":238401,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHgJ+U457+V+jD+Ky4h94f6sKme9vVkahFlelJUgBk9cAiEA+rYiwbc8wHsDL1ukvV8flr8HBC8YBmLlxuMyxeiFvl0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjMrl6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrMiRAAktYAhQdqfgG9eGKSHrJ9+iA9kf5xE36/reXQ/MORQJr8OhOm\r\nMUh/QECZbTns9vw4KI02lRzKIDkI+Xx2Df9Y0nu0iGjflNtoTpfPbqinXtrd\r\n5SwFg5kdqV1XY3sarNQuWCAxD8XQ4GjMx7LsReEk7c/cG183NmzbOsLP/t39\r\nFsXz9KlrFExiS+dOcVeHaUOZpwPhhwEgSJZkyQl8V3/alH/eSahiqqXMdKH8\r\nCnjXvjJdP+gsxnfOjxbCisF8WzYrc/2i0CiTR76pSExswGka4kJik2fU9geE\r\nsrjsHVCM+7r6Cu954bfn89PLduDL0VwM7yz6zYKk0orMJnkxei9A/Uvltga0\r\noUafwfgKssT8SlKDZxsvy+R9BqdQjmc378Fy2l9jJJbWGXlGdo7Lug57ZD0W\r\nt44AhsY2qSYFNF4QLwRe1AN5eyb/xiO3xBzcUuv/Qu4p4IfBFwEDuwSv0qRh\r\nCDIjSeHfM4GMjU70Eu5HbTmNpkyTWxlk38rvDc9nfsfY+1C0YBTLa0jNyda+\r\nxP5+LvW8yfB0EwzKlGsz1797zKzxz0zup0aPXU8oEobawRnD8yjvrLqYmMIQ\r\nfyf+31UOpT5zWH6aJzzGq88QEJWHai7I6f99oSRuJA27yHnOhLlZz57HJd4r\r\nH9rRBjEAqZW+VfjQ9Lw/dv+B/zrCzVfORBc=\r\n=eXIR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"zanllp@163.com"},"directories":{},"maintainers":[{"name":"zanllp","email":"zanllp@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.5.5_1664268666515_0.5391447392211419"},"_hasShrinkwrap":false},"0.6.0":{"name":"vue3-ts-util","version":"0.6.0","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"5b63f4eae89b84aa0f7868956568ea0b6cade3e0","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.6.0","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-Tpq2Urz1a3a0BxQbqvtS/OFi8mBNhu/NIF8CF4o9TQPBA6Dok1goNejrVHi1jHNNCpc50P4MjlnUaPUsD45W9A==","shasum":"fd835a7c4188ca05f44f01be1f29e640a6ab3bae","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.6.0.tgz","fileCount":147,"unpackedSize":240397,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfhZX5IWKYtJdCvWD49RTEhAoQs012GkVxx1uecyPDtQIhAOBuUB62sZwJzAsRLvObrYYtMQiFLMPd3psP+SPvz1SJ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjR+6NACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo0ew//UUM4bdkPiPIo7KfuHCFvdR9fhn+RL3lk20DucgZyQQTy9e16\r\nmRYXhNT6kQgEZXyUmQpHCcQS7XETEcoK/O+pPpcuTsMSqWktHSXwBAz4mPZz\r\nrjNbeBLKJ3J4cmV3W8G/l42NYJh1fdS4Jmu0QNow2DkJXYdaKCMqDAPsNftf\r\n7PkxTENuy3r8eIowKHFekUe93IUbOCWTTkx8O/1M15SPNx/n5mcUfMqJF/j+\r\nShj6brzeahdbLhffzmX0A01xqHB+m8BpgFoFDwB19KF7whqzgQpxzamzUkZo\r\nhnELyFhJZvNWkhlSC0c07mB6PFEdSyHsxxhdI67UKWB78I+70jktGZ5XlqWb\r\nhFeYC2DbGYd0SOiTRHIAaSGl3rQsaRPeNSsptTr8j8eAllcdbx1q6DP346Im\r\nt8LVCyX2taKCmV3LV5nG+gDJ7VEhOd+CwJUv0UR/xGseovTz0BqkTCucatCf\r\n5zz7FcyXo9wTymglZs77fZIJj2v15iaFi+H6eNqedS5+y+TaXTurDUa+SSgY\r\nOdLE0q32mndnhTaH0ygOHpMEhxw+TiOM0tRTwqnBhpj15voErxkdX568y2j9\r\nPoU0RDk4MODW66J5EzPRtv1Pl4RfygvGgxB2i0uzKKpAa7b6TSo4ADGPAj9t\r\n/atv5vZx1iOJvs+dKMyjgBDFCAE0lic3dqA=\r\n=tL/4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.6.0_1665658509605_0.1428290910450536"},"_hasShrinkwrap":false},"0.6.1":{"name":"vue3-ts-util","version":"0.6.1","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","assert":"^2.0.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","events":"^3.3.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n> 需要先有对等依赖 yarn add vue vuex vue-router\n\n# 用法\n见文档[doc](doc)\n目录见下方\n\n<!--docinsert-->\n##  vue3 composition api的hook\n- [useDomRect hook风格获取dom的rect](./doc/hooks.md#usedomrect-hook风格获取dom的rect)\n- [useEmit 用于在hook内emit](./doc/hooks.md#useemit-用于在hook内emit)\n- [useFetchQueueHelper/useStrictQueue/useRetryableQueue fetchqueue的hook wrapper](./doc/hooks.md#usefetchqueuehelperusestrictqueueuseretryablequeue-fetchqueue的hook-wrapper)\n- [useInfiniteScrolling 无限滚动](./doc/hooks.md#useinfinitescrolling-无限滚动)\n- [useResizeable 用于鼠标拖拽调整调整某个元素的大小位置](./doc/hooks.md#useresizeable-用于鼠标拖拽调整调整某个元素的大小位置)\n- [useStackAlloc hook风格管理object url分配](./doc/hooks.md#usestackalloc-hook风格管理object-url分配)\n- [useWatchDocument `document.addEventListener`的hook wrapper](./doc/hooks.md#usewatchdocument-documentaddeventlistener的hook-wrapper)\n- [createTypedShareStateHook/useHookShareState 生成一个实例内进行状态共享的hook](./doc/hooks.md#createtypedsharestatehookusehooksharestate-生成一个实例内进行状态共享的hook)\n- [useRouteId 路由参数id获取，合法判断](./doc/hooks.md#userouteid-路由参数id获取合法判断)\n\n##  输入输出，网络请求相关的\n- [FetchQueue 自动管理loading等的请求控制容器](./doc/io.md#fetchqueue-自动管理loading等的请求控制容器)\n  - [构造参数](./doc/io.md#构造参数)\n  - [类方法/属性](./doc/io.md#类方法属性)\n  - [pushAction返回的任务实例](./doc/io.md#pushaction返回的任务实例)\n  - [例子](./doc/io.md#例子)\n    - [最小化](./doc/io.md#最小化)\n    - [排队执行，失败自动重试](./doc/io.md#排队执行失败自动重试)\n      - [更多的例子见单元测试](./doc/io.md#更多的例子见单元测试)\n  - [衍生hooks](./doc/io.md#衍生hooks)\n- [Task 轮训请求的控制](./doc/io.md#task-轮训请求的控制)\n  - [参数](./doc/io.md#参数)\n  - [返回值](./doc/io.md#返回值)\n    - [停止轮训](./doc/io.md#停止轮训)\n    - [获取轮训结果](./doc/io.md#获取轮训结果)\n    - [获取轮训参数](./doc/io.md#获取轮训参数)\n  - [一个简单的例子](./doc/io.md#一个简单的例子)\n- [makeAsyncIter 分页api的迭代管理](./doc/io.md#makeasynciter-分页api的迭代管理)\n  - [返回类型](./doc/io.md#返回类型)\n  - [一个简单的例子](./doc/io.md#一个简单的例子-1)\n  - [控制多资源，内部状态重置](./doc/io.md#控制多资源内部状态重置)\n  - [中断之前的请求](./doc/io.md#中断之前的请求)\n  - [返回类型的约束](./doc/io.md#返回类型的约束)\n  - [在vue2 options api中使用](./doc/io.md#在vue2-options-api中使用)\n  - [在小程序中使用](./doc/io.md#在小程序中使用)\n    - [最小无限滚动加载收藏的例子](./doc/io.md#最小无限滚动加载收藏的例子)\n    - [在ts/js中获取asyncIter的状态](./doc/io.md#在tsjs中获取asynciter的状态)\n    - [在wxml中获取asyncIter的状态](./doc/io.md#在wxml中获取asynciter的状态)\n      - [通过设置回调来实现状态变化时更新 setStateUpdatedCallback](./doc/io.md#通过设置回调来实现状态变化时更新-setstateupdatedcallback)\n      - [简写方式 bindPage](./doc/io.md#简写方式-bindpage)\n    - [如何知道asyncIter引发的界面修改完成时机](./doc/io.md#如何知道asynciter引发的界面修改完成时机)\n  - [常用场景的使用](./doc/io.md#常用场景的使用)\n    - [antd表格翻页](./doc/io.md#antd表格翻页)\n    - [无限滚动](./doc/io.md#无限滚动)\n- [useInfiniteScrolling 无限滚动](./doc/io.md#useinfinitescrolling-无限滚动)\n  - [探底触发](./doc/io.md#探底触发)\n  - [交叉触发模式](./doc/io.md#交叉触发模式)\n  - [hooks](./doc/io.md#hooks)\n- [useAntdListPagination / GeneralPagination  翻页管理](./doc/io.md#useantdlistpagination--generalpagination--翻页管理)\n  - [使用参考](./doc/io.md#使用参考)\n\n##  其余不好分类的函数\n- [deepComputed](./doc/other.md#deepcomputed)\n  - [主要的使用场景](./doc/other.md#主要的使用场景)\n  - [性能相关](./doc/other.md#性能相关)\n  - [需要注意的问题](./doc/other.md#需要注意的问题)\n    - [如果发现修改了值但setter没被调用](./doc/other.md#如果发现修改了值但setter没被调用)\n    - [调用了一次值的函数(例如Array::splice)，但是setter被多次调用？](./doc/other.md#调用了一次值的函数例如arraysplice但是setter被多次调用)\n    - [原因](./doc/other.md#原因)\n    - [解决方法](./doc/other.md#解决方法)\n- [deepComputedEffect 更好的deepComputed](./doc/other.md#deepcomputedeffect-更好的deepcomputed)\n- [deepComputedPick 执行后二值之间仍然会双向同步的pick](./doc/other.md#deepcomputedpick-执行后二值之间仍然会双向同步的pick)\n- [events/typedEventEmitter 类型安全的EventEmitter](./doc/other.md#eventstypedeventemitter-类型安全的eventemitter)\n- [image/getImageUrl 从下厨房用的图像结构构造url](./doc/other.md#imagegetimageurl-从下厨房用的图像结构构造url)\n- [assigIncrId 生成一个全局自增id](./doc/other.md#assigincrid-生成一个全局自增id)\n- [unid/typedID/ID 使用symbol实现的ID生成器](./doc/other.md#unidtypedidid-使用symbol实现的id生成器)\n- [delay,delayFn 延时，推迟控制流执行](./doc/other.md#delaydelayfn-延时推迟控制流执行)\n- [promise2ref promise转成ref](./doc/other.md#promise2ref-promise转成ref)\n- [promiseSetRef 在promise完成时设置某个ref](./doc/other.md#promisesetref-在promise完成时设置某个ref)\n- [momentConvert 一个函数实现下厨房常用的多种时间转换](./doc/other.md#momentconvert-一个函数实现下厨房常用的多种时间转换)\n\n##  类型及类型推导辅助相关\n- [globalComponents](./doc/type.md#globalcomponents)\n- [DeepReadonly转换一个类型为深度只读](./doc/type.md#deepreadonly转换一个类型为深度只读)\n  - [仅使用类型](./doc/type.md#仅使用类型)\n  - [也可以使用这种方式](./doc/type.md#也可以使用这种方式)\n- [ok 先验条件断言](./doc/type.md#ok-先验条件断言)\n- [thruthy 真值断言](./doc/type.md#thruthy-真值断言)\n- [Columns 描述antd表格结构的类型](./doc/type.md#columns-描述antd表格结构的类型)\n- [Image 下厨房的图像结构](./doc/type.md#image-下厨房的图像结构)\n- [WithRequired 将对象部分字段转为不可空](./doc/type.md#withrequired-将对象部分字段转为不可空)\n- [customPropType vue props用于推导自定义类型的辅助函数,使用interface风格写props](./doc/type.md#customproptype-vue-props用于推导自定义类型的辅助函数使用interface风格写props)\n\n##  本库的vue3组件\n- [GeneralPagination 翻页器和相关hook](./doc/vue3components.md#generalpagination-翻页器和相关hook)\n- [SplitView 支持鼠标拖拽调整的视图分割](./doc/vue3components.md#splitview-支持鼠标拖拽调整的视图分割)\n  - [props](./doc/vue3components.md#props)\n  - [例子](./doc/vue3components.md#例子)\n- [SearchSelect 支持搜索的选择，追求尽可能少的代码来描述](./doc/vue3components.md#searchselect-支持搜索的选择追求尽可能少的代码来描述)\n  - [props](./doc/vue3components.md#props-1)\n  - [例子](./doc/vue3components.md#例子-1)\n\n##  vuex相关的\n- [mutation 生成mutation函数的辅助函数](./doc/vuex.md#mutation-生成mutation函数的辅助函数)\n- [VuexPersistence 用于持久化的vuex插件](./doc/vuex.md#vuexpersistence-用于持久化的vuex插件)\n  - [feature](./doc/vuex.md#feature)\n  - [最小化例子](./doc/vuex.md#最小化例子)\n\n<!--docinsert-->\n# 开发\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn\n....\n```\n## 使用dev-watch开发新功能及debug\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\" // 直接在命令行里输入pwd获取\n  }\n}\n```\n`symlink`指向你开发&debug用的项目，再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是，这个即时编译只针对esm构建可用。且关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 一些需要注意的地方\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验(setup的更好，直接defineProps)\n2. 如果需要返回一个外部不可修改的对象可以使用`deepReadonly`\n3. 修改文档后使用vscode的markdown in one更新所在文件的目录，然后使用`yarn gen-contents`生成合并的目录写入到readme<img width=\"623\" alt=\"image\" src=\"https://user-images.githubusercontent.com/25872019/179443451-6c974bf3-18d8-463f-a4df-1dcb0f787086.png\">\n4. 尽可能足够的单元测试\n5. 如果修改了组件相关及时修改vetur下的文件，及volar所使用的`src/globalComponents.ts`\n6. 版本号修改参考https://semver.org/lang/zh-CN/\n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"51895b8cb7f5cb3509cf8bed5d989fd060ec9171","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.6.1","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-2iwha4NMXyvpZ1feHf/O55qeUITouKLIKm2Ula77ewnhWMg9boreuKvUKyhVB0dB1cfxVmotOHEkxZ06+kKkuQ==","shasum":"7118622ce8bc0d6cd8dd472ef1721b7e5da88468","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.6.1.tgz","fileCount":147,"unpackedSize":240445,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDF+tZ5GgWKeP3l4eoyBOhtqC/3bg3xwF6BXafYoE4x2QIhAOhZSL9UCfcaBsQQK2TdyCgSiktEP3G1xDcrHFlOrW/G"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbeeaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoMkw//cB3HrKiRgAGkGFmnLVhHSwJbFAePi6KomPetnbO1nkJcfW2d\r\n+IP/RHEQsgFI2AXBaoKQqzLmSlhMxJq7k5KrWx5eZENXh1qxN9UJTuR4yrBy\r\nblH3mKv2HKkNxi0UcPc3602p+Y7Mc4DSICApX2t5PbIyTxsLDSZK8WCwlpCd\r\nNmJ1gJ7K+/XVZ1gEp1pR5HajMyei6aeZn2CHepwvMP4rYi2+AoG0nvLhU6Ou\r\nCdBlJ5G9F1eFX4IPiYvTdM9kB+St7v5bO6UwiOfTFFQlZrOd91Si/wQO0XJj\r\nZDYvHwxf/kzW3oV8AirKAH6e5iJL0wUC+qoYYBFowwAjHDupJpCnL/54zv0K\r\nP1EAmwdVkx6bKqr+ZEBe1CUCpxsrkdHlo9TCSRfnOUbSkAgSPaEsXmC0F4eS\r\nA/LeBhQPBF/Dnr2GMopl0KOHtAMpqo2Wrnnm9EwTVCbL2moreGHwbe/zvrKo\r\n1sRy5oIxtBhUzBR8tgqpf2iLLVnqboXtU6JM3GoudUSge8v2eTBxwcT/i4dg\r\nG8bRQOM3YdDJbywcszPbF5xhq1b1yoU4gHVgr6dJUVbnvnWwsIHzgPx5aGg2\r\nSLyur5b3hkouFaOUAW7bD6kQISH1Qn3t6/vtkfyiR1FFJ7jPiCVEGBWIner1\r\ndUrZ+GhblUkTkWo5aAlmjVgNchyk+R/Gx6U=\r\n=Z16y\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.6.1_1668147098291_0.9888358651386298"},"_hasShrinkwrap":false},"0.6.2":{"name":"vue3-ts-util","version":"0.6.2","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n> 需要先有对等依赖 yarn add vue vuex vue-router\n\n# 用法\n见文档[doc](doc)\n目录见下方\n\n<!--docinsert-->\n##  vue3 composition api的hook\n- [useDomRect hook风格获取dom的rect](./doc/hooks.md#usedomrect-hook风格获取dom的rect)\n- [useEmit 用于在hook内emit](./doc/hooks.md#useemit-用于在hook内emit)\n- [useFetchQueueHelper/useStrictQueue/useRetryableQueue fetchqueue的hook wrapper](./doc/hooks.md#usefetchqueuehelperusestrictqueueuseretryablequeue-fetchqueue的hook-wrapper)\n- [useInfiniteScrolling 无限滚动](./doc/hooks.md#useinfinitescrolling-无限滚动)\n- [useResizeable 用于鼠标拖拽调整调整某个元素的大小位置](./doc/hooks.md#useresizeable-用于鼠标拖拽调整调整某个元素的大小位置)\n- [useStackAlloc hook风格管理object url分配](./doc/hooks.md#usestackalloc-hook风格管理object-url分配)\n- [useWatchDocument `document.addEventListener`的hook wrapper](./doc/hooks.md#usewatchdocument-documentaddeventlistener的hook-wrapper)\n- [createTypedShareStateHook/useHookShareState 生成一个实例内进行状态共享的hook](./doc/hooks.md#createtypedsharestatehookusehooksharestate-生成一个实例内进行状态共享的hook)\n- [useRouteId 路由参数id获取，合法判断](./doc/hooks.md#userouteid-路由参数id获取合法判断)\n\n##  输入输出，网络请求相关的\n- [FetchQueue 自动管理loading等的请求控制容器](./doc/io.md#fetchqueue-自动管理loading等的请求控制容器)\n  - [构造参数](./doc/io.md#构造参数)\n  - [类方法/属性](./doc/io.md#类方法属性)\n  - [pushAction返回的任务实例](./doc/io.md#pushaction返回的任务实例)\n  - [例子](./doc/io.md#例子)\n    - [最小化](./doc/io.md#最小化)\n    - [排队执行，失败自动重试](./doc/io.md#排队执行失败自动重试)\n      - [更多的例子见单元测试](./doc/io.md#更多的例子见单元测试)\n  - [衍生hooks](./doc/io.md#衍生hooks)\n- [Task 轮训请求的控制](./doc/io.md#task-轮训请求的控制)\n  - [参数](./doc/io.md#参数)\n  - [返回值](./doc/io.md#返回值)\n    - [停止轮训](./doc/io.md#停止轮训)\n    - [获取轮训结果](./doc/io.md#获取轮训结果)\n    - [获取轮训参数](./doc/io.md#获取轮训参数)\n  - [一个简单的例子](./doc/io.md#一个简单的例子)\n- [makeAsyncIter 分页api的迭代管理](./doc/io.md#makeasynciter-分页api的迭代管理)\n  - [返回类型](./doc/io.md#返回类型)\n  - [一个简单的例子](./doc/io.md#一个简单的例子-1)\n  - [控制多资源，内部状态重置](./doc/io.md#控制多资源内部状态重置)\n  - [中断之前的请求](./doc/io.md#中断之前的请求)\n  - [返回类型的约束](./doc/io.md#返回类型的约束)\n  - [在vue2 options api中使用](./doc/io.md#在vue2-options-api中使用)\n  - [在小程序中使用](./doc/io.md#在小程序中使用)\n    - [最小无限滚动加载收藏的例子](./doc/io.md#最小无限滚动加载收藏的例子)\n    - [在ts/js中获取asyncIter的状态](./doc/io.md#在tsjs中获取asynciter的状态)\n    - [在wxml中获取asyncIter的状态](./doc/io.md#在wxml中获取asynciter的状态)\n      - [通过设置回调来实现状态变化时更新 setStateUpdatedCallback](./doc/io.md#通过设置回调来实现状态变化时更新-setstateupdatedcallback)\n      - [简写方式 bindPage](./doc/io.md#简写方式-bindpage)\n    - [如何知道asyncIter引发的界面修改完成时机](./doc/io.md#如何知道asynciter引发的界面修改完成时机)\n  - [常用场景的使用](./doc/io.md#常用场景的使用)\n    - [antd表格翻页](./doc/io.md#antd表格翻页)\n    - [无限滚动](./doc/io.md#无限滚动)\n- [useInfiniteScrolling 无限滚动](./doc/io.md#useinfinitescrolling-无限滚动)\n  - [探底触发](./doc/io.md#探底触发)\n  - [交叉触发模式](./doc/io.md#交叉触发模式)\n  - [hooks](./doc/io.md#hooks)\n- [useAntdListPagination / GeneralPagination  翻页管理](./doc/io.md#useantdlistpagination--generalpagination--翻页管理)\n  - [使用参考](./doc/io.md#使用参考)\n\n##  其余不好分类的函数\n- [deepComputed](./doc/other.md#deepcomputed)\n  - [主要的使用场景](./doc/other.md#主要的使用场景)\n  - [性能相关](./doc/other.md#性能相关)\n  - [需要注意的问题](./doc/other.md#需要注意的问题)\n    - [如果发现修改了值但setter没被调用](./doc/other.md#如果发现修改了值但setter没被调用)\n    - [调用了一次值的函数(例如Array::splice)，但是setter被多次调用？](./doc/other.md#调用了一次值的函数例如arraysplice但是setter被多次调用)\n    - [原因](./doc/other.md#原因)\n    - [解决方法](./doc/other.md#解决方法)\n- [deepComputedEffect 更好的deepComputed](./doc/other.md#deepcomputedeffect-更好的deepcomputed)\n- [deepComputedPick 执行后二值之间仍然会双向同步的pick](./doc/other.md#deepcomputedpick-执行后二值之间仍然会双向同步的pick)\n- [events/typedEventEmitter 类型安全的EventEmitter](./doc/other.md#eventstypedeventemitter-类型安全的eventemitter)\n- [image/getImageUrl 从下厨房用的图像结构构造url](./doc/other.md#imagegetimageurl-从下厨房用的图像结构构造url)\n- [assigIncrId 生成一个全局自增id](./doc/other.md#assigincrid-生成一个全局自增id)\n- [unid/typedID/ID 使用symbol实现的ID生成器](./doc/other.md#unidtypedidid-使用symbol实现的id生成器)\n- [delay,delayFn 延时，推迟控制流执行](./doc/other.md#delaydelayfn-延时推迟控制流执行)\n- [promise2ref promise转成ref](./doc/other.md#promise2ref-promise转成ref)\n- [promiseSetRef 在promise完成时设置某个ref](./doc/other.md#promisesetref-在promise完成时设置某个ref)\n- [momentConvert 一个函数实现下厨房常用的多种时间转换](./doc/other.md#momentconvert-一个函数实现下厨房常用的多种时间转换)\n\n##  类型及类型推导辅助相关\n- [globalComponents](./doc/type.md#globalcomponents)\n- [DeepReadonly转换一个类型为深度只读](./doc/type.md#deepreadonly转换一个类型为深度只读)\n  - [仅使用类型](./doc/type.md#仅使用类型)\n  - [也可以使用这种方式](./doc/type.md#也可以使用这种方式)\n- [ok 先验条件断言](./doc/type.md#ok-先验条件断言)\n- [thruthy 真值断言](./doc/type.md#thruthy-真值断言)\n- [Columns 描述antd表格结构的类型](./doc/type.md#columns-描述antd表格结构的类型)\n- [Image 下厨房的图像结构](./doc/type.md#image-下厨房的图像结构)\n- [WithRequired 将对象部分字段转为不可空](./doc/type.md#withrequired-将对象部分字段转为不可空)\n- [customPropType vue props用于推导自定义类型的辅助函数,使用interface风格写props](./doc/type.md#customproptype-vue-props用于推导自定义类型的辅助函数使用interface风格写props)\n\n##  本库的vue3组件\n- [GeneralPagination 翻页器和相关hook](./doc/vue3components.md#generalpagination-翻页器和相关hook)\n- [SplitView 支持鼠标拖拽调整的视图分割](./doc/vue3components.md#splitview-支持鼠标拖拽调整的视图分割)\n  - [props](./doc/vue3components.md#props)\n  - [例子](./doc/vue3components.md#例子)\n- [SearchSelect 支持搜索的选择，追求尽可能少的代码来描述](./doc/vue3components.md#searchselect-支持搜索的选择追求尽可能少的代码来描述)\n  - [props](./doc/vue3components.md#props-1)\n  - [例子](./doc/vue3components.md#例子-1)\n\n##  vuex相关的\n- [mutation 生成mutation函数的辅助函数](./doc/vuex.md#mutation-生成mutation函数的辅助函数)\n- [VuexPersistence 用于持久化的vuex插件](./doc/vuex.md#vuexpersistence-用于持久化的vuex插件)\n  - [feature](./doc/vuex.md#feature)\n  - [最小化例子](./doc/vuex.md#最小化例子)\n\n<!--docinsert-->\n# 开发\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn\n....\n```\n## 使用dev-watch开发新功能及debug\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\" // 直接在命令行里输入pwd获取\n  }\n}\n```\n`symlink`指向你开发&debug用的项目，再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是，这个即时编译只针对esm构建可用。且关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 一些需要注意的地方\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验(setup的更好，直接defineProps)\n2. 如果需要返回一个外部不可修改的对象可以使用`deepReadonly`\n3. 修改文档后使用vscode的markdown in one更新所在文件的目录，然后使用`yarn gen-contents`生成合并的目录写入到readme<img width=\"623\" alt=\"image\" src=\"https://user-images.githubusercontent.com/25872019/179443451-6c974bf3-18d8-463f-a4df-1dcb0f787086.png\">\n4. 尽可能足够的单元测试\n5. 如果修改了组件相关及时修改vetur下的文件，及volar所使用的`src/globalComponents.ts`\n6. 版本号修改参考https://semver.org/lang/zh-CN/\n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"51895b8cb7f5cb3509cf8bed5d989fd060ec9171","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.6.2","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-iYY6omIQHTI+Njvnq648WZh0uqbe0fmdmv08yMHWU3JHQRaNxIigPik6QiP8oJCf6Kjbc3ikywZZt52J2WgYUg==","shasum":"2c26602aa228a1804a9237e4397597af313c01e5","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.6.2.tgz","fileCount":147,"unpackedSize":240421,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDZJ/1N413k7NScdDkmRw2fZPX4obqpCKZYLnV9WjyP4AiEAvxUlhFjJN2Zd+xQnQiQevfRMaee9NWsE5m5HyiEcyLI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbe9lACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPTA/+PlvPgEHo8yvoxnGrziT5pmRZI7biDoYEqySRsLJhBWNAyWZ3\r\nmPiGu5THd7yBw8v4jI9MjzO1MxyVnpanQssqeyf5EsSAoAADYTg8Ci6B7LnG\r\nqvFcF+BzchHdJ2vGUZ3vPXX/zTOAo1Is62ny071xDS9sLEQBtxa6ShZ3JL4l\r\nbAI3DaYTG2hglLguvJpx+FSUIlF4wJn4/nzHhnTcR7xQ28HTZAVvDExmqefP\r\ncJlDq6OC5GHzlOHQ43G8qdHzQ5U+rJWfKozai8TS/Dpm4WPbq70dH1FMJxzt\r\njEUi8FFoNHXHAvsSLTTWPe7tmdsKHcCiHBMufpStD7s04zU6SKifAQHOVWg0\r\nW8Vdzrpqum20EfRbfZYo1zlq8ks1OmEUr//3IAKnEhQVrTaQU2Hk6qgpgvAW\r\nkesEaoc4gelBg9O5dzGpAVVteEfsSb6Ho62HUEXNSVG2yrMnJK7yNlwE4eLd\r\niyz7diXjT+oi7iosVU4KSxhphntP3GsomCxSqHk32KuPFMy596B1MgOA0DKa\r\n8jabZfvJ34gX5c0YfMdIs3gk9QXegPIjoY2oNRRq7HNq4gkYiIz7tzZX6INe\r\nf4/AecbJC+jFfmVCoxcIj7CwqLqv8TdWf1tdxqJboqNE3SGTzKuUo5kLuWan\r\nnsFrW0k/lmWjY5zLANITMQawnjNorWtXKMM=\r\n=zzAW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.6.2_1668149092797_0.9478203724314418"},"_hasShrinkwrap":false},"0.6.3":{"name":"vue3-ts-util","version":"0.6.3","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n> 需要先有对等依赖 yarn add vue vuex vue-router\n\n# 用法\n见文档[doc](doc)\n目录见下方\n\n<!--docinsert-->\n##  vue3 composition api的hook\n- [useDomRect hook风格获取dom的rect](./doc/hooks.md#usedomrect-hook风格获取dom的rect)\n- [useEmit 用于在hook内emit](./doc/hooks.md#useemit-用于在hook内emit)\n- [useFetchQueueHelper/useStrictQueue/useRetryableQueue fetchqueue的hook wrapper](./doc/hooks.md#usefetchqueuehelperusestrictqueueuseretryablequeue-fetchqueue的hook-wrapper)\n- [useInfiniteScrolling 无限滚动](./doc/hooks.md#useinfinitescrolling-无限滚动)\n- [useResizeable 用于鼠标拖拽调整调整某个元素的大小位置](./doc/hooks.md#useresizeable-用于鼠标拖拽调整调整某个元素的大小位置)\n- [useStackAlloc hook风格管理object url分配](./doc/hooks.md#usestackalloc-hook风格管理object-url分配)\n- [useWatchDocument `document.addEventListener`的hook wrapper](./doc/hooks.md#usewatchdocument-documentaddeventlistener的hook-wrapper)\n- [createTypedShareStateHook/useHookShareState 生成一个实例内进行状态共享的hook](./doc/hooks.md#createtypedsharestatehookusehooksharestate-生成一个实例内进行状态共享的hook)\n- [useRouteId 路由参数id获取，合法判断](./doc/hooks.md#userouteid-路由参数id获取合法判断)\n\n##  输入输出，网络请求相关的\n- [FetchQueue 自动管理loading等的请求控制容器](./doc/io.md#fetchqueue-自动管理loading等的请求控制容器)\n  - [构造参数](./doc/io.md#构造参数)\n  - [类方法/属性](./doc/io.md#类方法属性)\n  - [pushAction返回的任务实例](./doc/io.md#pushaction返回的任务实例)\n  - [例子](./doc/io.md#例子)\n    - [最小化](./doc/io.md#最小化)\n    - [排队执行，失败自动重试](./doc/io.md#排队执行失败自动重试)\n      - [更多的例子见单元测试](./doc/io.md#更多的例子见单元测试)\n  - [衍生hooks](./doc/io.md#衍生hooks)\n- [Task 轮训请求的控制](./doc/io.md#task-轮训请求的控制)\n  - [参数](./doc/io.md#参数)\n  - [返回值](./doc/io.md#返回值)\n    - [停止轮训](./doc/io.md#停止轮训)\n    - [获取轮训结果](./doc/io.md#获取轮训结果)\n    - [获取轮训参数](./doc/io.md#获取轮训参数)\n  - [一个简单的例子](./doc/io.md#一个简单的例子)\n- [makeAsyncIter 分页api的迭代管理](./doc/io.md#makeasynciter-分页api的迭代管理)\n  - [返回类型](./doc/io.md#返回类型)\n  - [一个简单的例子](./doc/io.md#一个简单的例子-1)\n  - [控制多资源，内部状态重置](./doc/io.md#控制多资源内部状态重置)\n  - [中断之前的请求](./doc/io.md#中断之前的请求)\n  - [返回类型的约束](./doc/io.md#返回类型的约束)\n  - [在vue2 options api中使用](./doc/io.md#在vue2-options-api中使用)\n  - [在小程序中使用](./doc/io.md#在小程序中使用)\n    - [最小无限滚动加载收藏的例子](./doc/io.md#最小无限滚动加载收藏的例子)\n    - [在ts/js中获取asyncIter的状态](./doc/io.md#在tsjs中获取asynciter的状态)\n    - [在wxml中获取asyncIter的状态](./doc/io.md#在wxml中获取asynciter的状态)\n      - [通过设置回调来实现状态变化时更新 setStateUpdatedCallback](./doc/io.md#通过设置回调来实现状态变化时更新-setstateupdatedcallback)\n      - [简写方式 bindPage](./doc/io.md#简写方式-bindpage)\n    - [如何知道asyncIter引发的界面修改完成时机](./doc/io.md#如何知道asynciter引发的界面修改完成时机)\n  - [常用场景的使用](./doc/io.md#常用场景的使用)\n    - [antd表格翻页](./doc/io.md#antd表格翻页)\n    - [无限滚动](./doc/io.md#无限滚动)\n- [useInfiniteScrolling 无限滚动](./doc/io.md#useinfinitescrolling-无限滚动)\n  - [探底触发](./doc/io.md#探底触发)\n  - [交叉触发模式](./doc/io.md#交叉触发模式)\n  - [hooks](./doc/io.md#hooks)\n- [useAntdListPagination / GeneralPagination  翻页管理](./doc/io.md#useantdlistpagination--generalpagination--翻页管理)\n  - [使用参考](./doc/io.md#使用参考)\n\n##  其余不好分类的函数\n- [deepComputed](./doc/other.md#deepcomputed)\n  - [主要的使用场景](./doc/other.md#主要的使用场景)\n  - [性能相关](./doc/other.md#性能相关)\n  - [需要注意的问题](./doc/other.md#需要注意的问题)\n    - [如果发现修改了值但setter没被调用](./doc/other.md#如果发现修改了值但setter没被调用)\n    - [调用了一次值的函数(例如Array::splice)，但是setter被多次调用？](./doc/other.md#调用了一次值的函数例如arraysplice但是setter被多次调用)\n    - [原因](./doc/other.md#原因)\n    - [解决方法](./doc/other.md#解决方法)\n- [deepComputedEffect 更好的deepComputed](./doc/other.md#deepcomputedeffect-更好的deepcomputed)\n- [deepComputedPick 执行后二值之间仍然会双向同步的pick](./doc/other.md#deepcomputedpick-执行后二值之间仍然会双向同步的pick)\n- [events/typedEventEmitter 类型安全的EventEmitter](./doc/other.md#eventstypedeventemitter-类型安全的eventemitter)\n- [image/getImageUrl 从下厨房用的图像结构构造url](./doc/other.md#imagegetimageurl-从下厨房用的图像结构构造url)\n- [assigIncrId 生成一个全局自增id](./doc/other.md#assigincrid-生成一个全局自增id)\n- [unid/typedID/ID 使用symbol实现的ID生成器](./doc/other.md#unidtypedidid-使用symbol实现的id生成器)\n- [delay,delayFn 延时，推迟控制流执行](./doc/other.md#delaydelayfn-延时推迟控制流执行)\n- [promise2ref promise转成ref](./doc/other.md#promise2ref-promise转成ref)\n- [promiseSetRef 在promise完成时设置某个ref](./doc/other.md#promisesetref-在promise完成时设置某个ref)\n- [momentConvert 一个函数实现下厨房常用的多种时间转换](./doc/other.md#momentconvert-一个函数实现下厨房常用的多种时间转换)\n\n##  类型及类型推导辅助相关\n- [globalComponents](./doc/type.md#globalcomponents)\n- [DeepReadonly转换一个类型为深度只读](./doc/type.md#deepreadonly转换一个类型为深度只读)\n  - [仅使用类型](./doc/type.md#仅使用类型)\n  - [也可以使用这种方式](./doc/type.md#也可以使用这种方式)\n- [ok 先验条件断言](./doc/type.md#ok-先验条件断言)\n- [thruthy 真值断言](./doc/type.md#thruthy-真值断言)\n- [Columns 描述antd表格结构的类型](./doc/type.md#columns-描述antd表格结构的类型)\n- [Image 下厨房的图像结构](./doc/type.md#image-下厨房的图像结构)\n- [WithRequired 将对象部分字段转为不可空](./doc/type.md#withrequired-将对象部分字段转为不可空)\n- [customPropType vue props用于推导自定义类型的辅助函数,使用interface风格写props](./doc/type.md#customproptype-vue-props用于推导自定义类型的辅助函数使用interface风格写props)\n\n##  本库的vue3组件\n- [GeneralPagination 翻页器和相关hook](./doc/vue3components.md#generalpagination-翻页器和相关hook)\n- [SplitView 支持鼠标拖拽调整的视图分割](./doc/vue3components.md#splitview-支持鼠标拖拽调整的视图分割)\n  - [props](./doc/vue3components.md#props)\n  - [例子](./doc/vue3components.md#例子)\n- [SearchSelect 支持搜索的选择，追求尽可能少的代码来描述](./doc/vue3components.md#searchselect-支持搜索的选择追求尽可能少的代码来描述)\n  - [props](./doc/vue3components.md#props-1)\n  - [例子](./doc/vue3components.md#例子-1)\n\n##  vuex相关的\n- [mutation 生成mutation函数的辅助函数](./doc/vuex.md#mutation-生成mutation函数的辅助函数)\n- [VuexPersistence 用于持久化的vuex插件](./doc/vuex.md#vuexpersistence-用于持久化的vuex插件)\n  - [feature](./doc/vuex.md#feature)\n  - [最小化例子](./doc/vuex.md#最小化例子)\n\n<!--docinsert-->\n# 开发\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn\n....\n```\n## 使用dev-watch开发新功能及debug\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\" // 直接在命令行里输入pwd获取\n  }\n}\n```\n`symlink`指向你开发&debug用的项目，再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是，这个即时编译只针对esm构建可用。且关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 一些需要注意的地方\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验(setup的更好，直接defineProps)\n2. 如果需要返回一个外部不可修改的对象可以使用`deepReadonly`\n3. 修改文档后使用vscode的markdown in one更新所在文件的目录，然后使用`yarn gen-contents`生成合并的目录写入到readme<img width=\"623\" alt=\"image\" src=\"https://user-images.githubusercontent.com/25872019/179443451-6c974bf3-18d8-463f-a4df-1dcb0f787086.png\">\n4. 尽可能足够的单元测试\n5. 如果修改了组件相关及时修改vetur下的文件，及volar所使用的`src/globalComponents.ts`\n6. 版本号修改参考https://semver.org/lang/zh-CN/\n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"51895b8cb7f5cb3509cf8bed5d989fd060ec9171","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.6.3","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-HduPDr9D4ot5CvEcb6HTIpJLtx4ah5qqSGWB3MQ6wuJb2xHimvFsub3kLg8iIGusYpPz/uDztWCMeeGpWZ96qw==","shasum":"856a779a59cf781d713c71acd5506d565d127dee","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.6.3.tgz","fileCount":150,"unpackedSize":241007,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID1UJZJP/sLeQwPgVnNsqBSTj4GVBgQ4mtg6LX3qQVHXAiEA7R1JpugkaErb2d1DSIjH2//qa7Iz0G0KwJPwHq+eLnk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbe+6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmojIg//ZlytL1rbpYi1ZJQ77PRtqSNc7pTT846mOZAgo8BUOUdkHWAA\r\nOAxt8QVkGQ6rP7dAFV25Wz0sSWOvXt4tiWRFMpDYy2k6poPggLLJRJhcbCl9\r\nPnGC5Ne0JDFVhzvxr4Q19sNB5NW95JkRVLwStR6XeoAkUjuK1e8xjlC2hBbc\r\nrS7kltnSBqcUCsRvhZk46/0ffrJLts8BTzy8439OlQqfho0rdnnBVKPQL+M+\r\n1bGCKc6OqN3bg7BMs2N9+pHqkggJGQtfqQPyxGzFbl/b/idwjlfrqDk5DV85\r\nh3aim7BGGvtaEhVuu8st6M4dBNXEYazkCpdAKy7COlYOWzRi3TkciwshTq5C\r\nFHqByBap/FPPS51ARwGcKKv6hA1O34p00/pf/Gu+DwrNUcnwwZXItToFsC9d\r\n2a/9H8frygRvXS+9MH9i4fYtQaTHMVdssejeNshOiOU5dvLyhyFOeB9eol3P\r\nQFs0R5d+DBG0M+t4D8EXQxuUE+0cPibDvPN7RJLoDZQMB2Qxp/NZyZwZqbyL\r\nx5TDSqfzl6joAfGJjUmTwePPKl7Huk4YqR7k2cHGXhYDLIb6/UDZKT6AqFfv\r\ngrW6sDdrfAwFEBKIucmlsRbSLlkZ2MA8B5X5I4uYPTlsTn17nbW8LxZ4bS+B\r\nTbN8PAL73nG7yl2clr93qV5V40IPqGgr2Ck=\r\n=kFSh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.6.3_1668149177742_0.48280973867800947"},"_hasShrinkwrap":false},"0.6.4":{"name":"vue3-ts-util","version":"0.6.4","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"48ded2ad43c1d0dc3c0442928b512d10f8cb2ec3","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.6.4","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-QzP+K4bepnUfNM9KKtqnVY05AQRQzBj+Lo6/TRdnG+9JJxXuX1hGb36tbu8IBgGlluKcLs4y/6J+1wwY7ukkSA==","shasum":"12996679f89891f6a4db0470b56ffb3e10b20794","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.6.4.tgz","fileCount":150,"unpackedSize":241028,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA70DetkQI6qK3Fkc0nZvgn8d0EM+xPTI0s5qWDP3jDtAiEAp//CqEbbsXADxomRFpMiKo6qmDZOlk58Vm/nO9BOu6c="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjczROACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqhXQ/9FOFd+iNQGpYcaRcwzXWO1E/Lsem4buZxPY4NncTHzP2JbcRz\r\n+kg8jLToTxspYE6Lsr+L87LUTdmdsU1ZAdnXzPYkFXL+R1x887UwI5i529/E\r\n7FQv5WORhVzRF+yhWtXTjE5rFIcyK2/jJtjzet4bGLDjiQJHFbpuVlPyVFEU\r\nX3pxK8w36b/iiyu8F15ki0pgsmB2LTfRmxZWV5kpABmRS7js6/OfcJcrq71H\r\nFXEpkWnTyRwM8zGFtQ6YeU5Pk3fXNa2ETX72IO6Q07/ZT5vIP3za8Qo+xRii\r\nl35p2wGcfodzIQaTHGR6Jtbc74g3nRgNYBPgtwSryFLSmVUoWJAUFOtMMHAy\r\nXOTyjsj4WCCmAxA2PblFYjLHP4uIJgFxwIbLjSGSChnGF0omFIWBDalXsTCi\r\nlndmiOToYcJwWLIJ3Um38wPBH/3vUnpSUfngCZPH2kiW5akhT/OvcE+zUdnM\r\n0rfJ4WOIf1gECvkxjjtymIM5SVUKxawJ2Eje68nkhhwizI7pED27+FMJfXQU\r\ne2ukp47B3siCJPCm02V/WqLqcOWv7qK1pmugLpGBWdcjw1DbHUQ/c/N3Qkj5\r\nShyHSnN9s8TYToDwoQlrC0+M3uk8+UnoRa3wMiFd87WdTEepOKOUL9dbX5kj\r\n+KFTyHhnsdylDVG2/eXQ7d+B7tFyQRyubXs=\r\n=/H56\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.6.4_1668494414504_0.39293918618360046"},"_hasShrinkwrap":false},"0.6.5":{"name":"vue3-ts-util","version":"0.6.5","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"d3ed1ce512eaca1d7c8ea6e8ef5dac2d9c0e683b","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.6.5","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-xEL7jK1rq5bG53CBRJBaFckG6OTOldqlsVZIJmfbvLD/t2XL9PdG6SQ7gFUY/vtPpqYTASpXGtDNGizlStNnFg==","shasum":"c1706e7b35f98285677cfff2ba4a668f12b95cf0","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.6.5.tgz","fileCount":150,"unpackedSize":241065,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1EW0JztR8opSWfJiDutok5TQJq/SpNvPDXvdNTJl22QIhAIWMqHJdYPqR6m/1mlbOH7czgP4Zi1P/ih9rmNN5eDbf"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjezftACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq48w//ZVq4oEraGB+e5A75PKLRc5vENPlPZQgTocEFOE0G+BPmcERv\r\n9XGvi9P3heYBBfdMwQ7kYzWwY7RFwE+ljFX98HIQUOOKETxxokb5QIsVsxOj\r\nPt8mCPDIvba88XbLdSKZU0FA3IsFpibMbIEN8XL7JBfID9sRpfKd9x1lBhDn\r\nRP5QVXGHdTde88Njmni8+SUS+5dX4ObUVs9EIQiXHtMrjI/zMg03T34Z+YQb\r\n/oTqXYCFX6esKDlft9wFXzxY/VxG8JamynOv5eVF0xfI0lychUo+CepLgEyd\r\nHkdfxQXquapAwNC8CcotXiqqGspB3hN6PcC+V2mjnBdNRwfamYmPFXcyzKBj\r\nEqKWnmg6vQK4w+tLP5ffeF6dTzs98rXpSf7TB2qfkPh7X505099dUZqN66RV\r\nD2yuUxKR0lLRYHbVIfMNRmJPE/I1okToahXbI3TBY1uJ/J70OvD62qt6IEUy\r\nJCozJxbNUgMg7jgW3faxdVz0kgK+frh7q5ZD1CLVcTkykNF3VmzNGZQa/MFx\r\nf8BOiiBaK5posHtX7KBWfG1e8FcKRWtfb47u0+eozoIFiTAO7fEHjwt+8Asn\r\nBd3kWWGuejS/JKxkhRTdr+Tfs7Jk2HPXz2mbMZGChhFZGv5YlpqSs9/44L81\r\nkEggr4vD1G0YulvdWTjZdE2eixM4270sxpE=\r\n=ys9w\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.6.5_1669019628977_0.19587281348647334"},"_hasShrinkwrap":false},"0.6.6":{"name":"vue3-ts-util","version":"0.6.6","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"14e09d003d06c92c8757ca4bac9cc43d7a52e92e","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.6.6","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-UsR2rLBMnMdjs1pvMXyE7+xfaTptQDQVw4RqmIW4xUN77A1GzkVJ9wL8WunEhTFTG2mz0L9B5XDSgZrHZNf0bQ==","shasum":"33d83363121baffd3fd682869237a7709ee309da","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.6.6.tgz","fileCount":150,"unpackedSize":241855,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDmPOObYkIvNbg71nzmPDBuaRchHJliziwZmevZYPpE4AiA5BMqcF35kG6HeJrJZh8X7ksbsT+iO0gij9k+eUaRbPg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjvEOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrL3xAApMYC6bK/C368wZtSuuIojN2i+OoM2aIpcS93/dkF5txZqQLc\r\nvXnSQ/6UsosvZeL1pSYj1EU1ye6/4xp6fWYtjICvtaq0cD9F6Odoa0PiWSvM\r\n6s29QeO6g0vlbUC3WDyfPjcZAYJP+VIcmdwXscxlse4GmK32ud24jyhVfSoB\r\n83lK/WuG5WpuUJzrfDVyd29hXUYZrp3s6kv0M4LWt1KdEb12L7lxh79fVO3W\r\nYRrNVMwZJ7OumHpm51BaW1Cvbh9OLzZUBy22e7Eyr9AUw0NvHUpsP81fJMzK\r\n1I8s99z7cZIloNjTtMp76d997QN2md+CH4xMGTjx69zmc5sWhSus2Tnmdz7H\r\nuC1ieGMFAjftFrQ4t8fTsLRikLMz+NWOVK/87SRdWZ4pfT9h6tMUYD9/wuBq\r\nC4AD42yC+JnEtbP/ccVRwA2ywySW5q0nxAxniTMIIfv4zHXsIv8itN3kf9Tk\r\nHi1Xyibc0ib5fyzOV1jbm//xSL77I4kldE2EteHxNxdzmUNaS9sICGgq46Pn\r\nqv6R8VPPbh1zvQ59CYkOhHNOemhHrEk7bkKPHJgq12Xtf9IKsorXiFBSZ5wS\r\nIOeKcCs6SO+J7j0Cy5XOX9jUoOJZ4YJxVd3eqCvuhMAT2mAEs82VKuh3KrKb\r\nl4HDy3U7qovi2zsufwAgvbIJMqA3wYnsQaU=\r\n=EzJh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.6.6_1670312206369_0.7998499811077158"},"_hasShrinkwrap":false},"0.6.7":{"name":"vue3-ts-util","version":"0.6.7","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"415fc601b77dde8d8e67a1f91f398736794f65bb","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.6.7","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-ViyeXD51bwUpk/PbpRerq6zHORom94yCD6zCDn4Wnqp+v2w3lrb581CZ27qr/ri+dskA4cCQrckpbftrTFnybQ==","shasum":"b31abe698e29ca06c7165affa6a7e015c8adc400","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.6.7.tgz","fileCount":150,"unpackedSize":242420,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9/dYPbDjn9XxF+bdTbUrRi2cF3ZrcisPOFHvQ7/HyNgIhAMMoqxyDUFDbmhWzi7D3F62aX5n8E7RK0TUd6/pGev6k"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjwgBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+7RAAnuG8e36OxzHYOdZ1PbY0r2suMYDoNMrGX+dyDboxE500jNup\r\nuUE+dCy9xBYOjniMVZIXlS1dc31pxjj/WegpqbYROuw9DUTGWZBiiZeQ8qLr\r\nMfQ+eeWnZy9UaUR+4L7STHHzB+N51YmGoRK6pFEsX5ihy9BMsfvRjbMV12EG\r\nPTRgAenqVvFWKenNsrEnxonCguBNnGWn5efzA6+rInpW6rCt5E50a6J+fo2F\r\nDL0B5LR+cTh4EpUtZcFTfFwmZuTt5PsbhaF8pbu6hUP+hCHBc+Zl1V1VrPCo\r\naARCYF6i3CDPevSRtHv5pPD6MnE1UkchGdQX1Va/FBe4PfIfldJMZ1hP2AsH\r\nua2RVfknHdLTn1yKZ8HGgVbkQuB45Bb6P/kRWAUfs9/9AG46kw83w9L7fsuV\r\nbFbl855SgkDxU160mWQWzqtmy/BfaTsEBVESzyvIXrvIYh4TlQ+oD1Vajucf\r\nkgQDP1xmFGJ1NaaTqcGzaTlV9WDEdHtbCurltK7L1FgEHLJ4DdzRp7QbGUXL\r\nUrEPQQ+zyVsdmS6LZ9ar5xcYyy6txlfs9EZ7FQqtpfu9D2t1KcaFi5BKuSYQ\r\n780YVextr+UpRVq+Z5zz27ss5GrlVZVgQ6A3YZLP4bVMQ6xsMMZHu2KkMef/\r\nSWDkpdtpbpb6YDMTIjz3QxhXBC7s4Z0APpU=\r\n=EYSU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.6.7_1670318081205_0.5149828102183975"},"_hasShrinkwrap":false},"0.6.8":{"name":"vue3-ts-util","version":"0.6.8","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"415fc601b77dde8d8e67a1f91f398736794f65bb","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.6.8","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-o4EDRpVWUhYuhVapX5uDFCzYX5R/fshAvCiQTYQvqqteQwGYStPwEZtTrTr3jMRR+ScMp0TnWogpQX9zgXecPg==","shasum":"65f2715a0ee24db944f52d03db69a727bbd36c50","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.6.8.tgz","fileCount":150,"unpackedSize":242618,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICC0QGt9AQbgba9pNBgO6BQDLOUxPYbEAQe0oi1tVylWAiBATmcnMjqXhI/uWeJXdWaqEBfG6kT2McLjDk7RYtdKSQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjkBpQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoanhAAjIJL5V7pg6j7/XoHahL3TcBJ2dX05B6MuxKA7gvqWYg/nMyc\r\nwoYOGLlSYxB/0Kk2NiUWfeMotIFG9dNipie/MN8UOfnz0rRWWTCvgdMlKjCW\r\n+48Apv0SaRT67LClt7IxJV0nBWfa05dj6RwaGP/BodnsUlScEa88qvLudjYr\r\nQoOXJxkBxr3RtrZFkFawcuf3f2ALdILWD9xWynpbCfTRXBkdeZJDpuh3sGlO\r\nT7eH6bOrtvT2ofXJzu9U07drVpqZIOghJpcd+yZWfUcFSu0cygxgs/0l3Mxz\r\nN708l1yAinrUvu1u8mGgQ1uYtithb3kyhbLyT6CiBDwPAwOUmmdNdUEqPh+S\r\nf3sq5iwy6V+ecUTcCwfnzP6KlhApaeKNZgWhgR3Es4zfIEavJjkaYp9qlauh\r\nulSKcmZw6Z2/bwU3Pt1VXoDpA6tkVWYnxR1QBiquj/w3i2P5s3U4ktTmZoUq\r\n8/thAYOZln32ojNntD9I5aZsG0Kh+QFNhzjL3+deYM3leQu0olY1LxaDgjd0\r\nzWaw54kplZE7JT7GTh6lZ58WhHiETnnJ668OSgs4px+0014BiE2Z2UCKXypL\r\nCZqdofc/dRTeVTdsuiUhpnq0qwvEgKd6uXd7HXKKBAAHzuc8sJZY80hF316c\r\nTTgd77ughANVIISnAnzaXMuGHvvKXjbYzV4=\r\n=t2oP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.6.8_1670388303997_0.20770357721890131"},"_hasShrinkwrap":false},"0.6.9":{"name":"vue3-ts-util","version":"0.6.9","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"415fc601b77dde8d8e67a1f91f398736794f65bb","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.6.9","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-knUyTq1KvMAQKq0yZ8m0QsqP93gArpuvwBjWMHAAxLUdFHqntV+BP/WkgwPywxttddH1Z3Zv8mTq+w2xdLwJ+A==","shasum":"1454b0ecb062eefc3160e6bae516fb73b56a02e7","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.6.9.tgz","fileCount":150,"unpackedSize":242628,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAGHN1K0dSEc9GuX8wWsEgy8rpUiSS1MfnQDmNL/n2v1AiB/v1gCY0JAp8BNcaQtq5mj9Rr25Jttvgkp6aq2UNiFnA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjkGnyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpOxg//ZO7073fr1oX22pWQb/+NggDilR7bPlJ9NsBUCFM17p7KHYjO\r\nmQoZZaP9qBGqq3J6WQYCD4GtaiyE/ceq6UWPtW03fw8xBGvkW0+UIRkaJj7d\r\n2j5YhLF8Rh7I2CRSq49YWdApqFfudG3h+0+sMbq88Kw6wOEFfdWWWssfc/G1\r\nzqgbzRRBb0WcdJycfJY7wrrFCJJmPZazRz5xt2NHTFErSici2Og62akrf1kV\r\ny3mDpIYaZRFN2u9LiPhktWC9F58vRA35CSHsEuSde4lKheb9ErE63kFP4gqX\r\n8bwU0oYiI9+QSgTkd6xW2zplFnIC3Or8SqhJBc51IbgTjuR67yrTpc6lqIxH\r\np9vii3xhuznzkWJh3G7cbBwfz/+KWWKo+qcnB2DuQ51IowSQakbMxnfAWMvk\r\nkYCfK2SSKokGZUpBVuXq9pmW1r2pofx/dwN9ChOo4YeusOoaIAO+90o3tJLn\r\nZude6nB3YwiNVqsrWE9lzUyFAWXMCLxteQazmhb9FtrfkYd48yPqzM3uXGf9\r\n5pxsClL63uGt6EbUMgvoeutMPU87ParqyFpf8u08CxO4Xwv/+Bgo2kkyFRy1\r\n6gabPmi0xe6gh92hqg+yewLk72iuJ779OvVmaTUS/APB4IDbWUe03Vt75Lof\r\naABX8cUq0pS7eoyFNzOCPc4P21Riyaj9N6c=\r\n=WnJO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.6.9_1670408690313_0.8095857026717339"},"_hasShrinkwrap":false},"0.6.10":{"name":"vue3-ts-util","version":"0.6.10","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"4ac8444441c17b9a15b38d03c6e9d023fc535347","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.6.10","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-k8Fqa/yEobvMCggLc61Fet6QPCeJf7NUdxHF9Xx6oQSPvk9VIqmNiuaOi8mtZOH6K05VNMfFccC3/3J9t0T/lQ==","shasum":"2ee50a757541df0018be4f474c67703c91b8bb3a","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.6.10.tgz","fileCount":150,"unpackedSize":243135,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCuIOpnZY6t+hLD0eDqChm9YFj0rOt5YVfeDcESSy3DOwIhAMaxWSnqVE+PxZopy/Qkw0aqXdeQXXqAuWFTJ4Bb6+qU"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjoBEHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNhw/+OyBJfSmTWjvOJqvsv/X4HgxEP+cir8eTI4yRw8tXPeixHD1l\r\nIQVmOc1EHC+AhJA+lcoan+eVexT5YjVmdZ5+Ho26W5Xr58RjiTNheXpsGfn7\r\n0RkPwC1x75UWsgscXkgR3lqsw8+w0rVshwuq2cq0cwouzrVe3/XOmZ/RgIYC\r\nETT0fQxX3AOxKYzFWMRgdgS68o3HbazqFahrKCwatLutC8XBCBWUBBKzjQb9\r\ntwSC5/4Jd+A/gmFO5cqsMjUrCLsrDYpWvMJbc7odz8dcM8UfyzCcsfzh858t\r\nT8w349MxlmvUZy24uCbEPjsH4jX9q6yFh5HXIls1L7sWdfRWS9LwUOXTjB26\r\n40gBhqOlCbYUpjKwkfV7HRInaxnR/QkjPqoL60EDH3fP/SlLm2BF8gQ8gfEb\r\nKPvKiQ1MgN5WtVHdC8ryEvarrymN+HnBdgJTbCk+IQOinLn3KSnMffPR9seo\r\nYZa9n9yD/NI3IG9GkmNObkikHqfwHZFmJnz3ay6LluZlaKvctVotnuK4eJ4J\r\nguU7HShE5xqi9/n5puKairGkxmdiiUix818JIg11SbFHqc813xmg9jq0CCWZ\r\nIltihe+x7Sa8TVm5vFLeCu7ChBNikOUIQpny2dA36QKqpztgsFXgHHNn5uZD\r\nYo3IjsCdIbW85JB/bCGq5cPEWK0mz1t2GoM=\r\n=+uvt\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.6.10_1671434502923_0.19687211080352252"},"_hasShrinkwrap":false},"0.6.11":{"name":"vue3-ts-util","version":"0.6.11","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"4ac8444441c17b9a15b38d03c6e9d023fc535347","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.6.11","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-w0OgoYjL12kEalqHWGB/RJNiYWD/SIhoDuSLJkCUvbUseqPxCxU7MK1XRz8bUGXd+i8xZlI+KhwFf47/FB5yPg==","shasum":"41add0ce96d3b56e936b99773a1e5243f1c3aecf","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.6.11.tgz","fileCount":150,"unpackedSize":240398,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCDTJXvFOP5AsJkYsSSD82nhaCnzgEvKkGAapeem9c/wIgJw/2RHRYECySGHu251ccnjSgfam9OTV1qoVpCDSGjII="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjoBPQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq8wRAAn/YUUw0NHNkTUMagkv6fJI63yck2aZ75EKTrmP2CujvYSLw1\r\n146WYSELNefNOBCME+uL9gAwSrivoOc9V5opMZ2+mikkfn/Spdt9e8qRy/xH\r\nAl6w0yzQMpmj54b82jLjEotgnGFkuln4Lg4hAuX24AlYvEGEJoNJRfncbYPh\r\nAD2YLdOcx1DOiiVAZbIQ7Qgb48XrxmRMU7sIqMkH1nM4nO6mDwITwcwO/kQ8\r\nrwSeVWsqRa7eTxr9AV1nd1NQs6IWaKRLp0y1sR9503a8tx40u6A49ljIKU0K\r\nQ9MKz8Fvcp5K6fFahlduPORPl6vrX7pvjHItultATpBL/JL8hC5VlXlt+pG7\r\n7mR478cnbakPTLl4NBJB9MApTMeK6PJzinrliGBFX1gCOjvUDAV0F4VS4N/g\r\no8MTYGZke7PFTEkAua4cF3MH1dwgwEagu2SekYBnYJrhssfw8HKnAntFC8wi\r\nAiXNcDE2PuMycRUHTUS9KpNCgmS8BUz+xi/d61LXVim4g7oaFBVuTwbTh4J5\r\nSt+6ReL/E1AQLXBw+ZUmNoz8nTHr4w6rQF/ul/k4iRxhZxTQwmaL97zkricm\r\nzLiazNmKdSTIy8kcrMk5CM4EbxGmDkFzw9wYQ6TKALw4CL99lTBlN5gC+Ax9\r\n4DJIh2D34CoKN/2vgJbXvh71D7LmpBG3obw=\r\n=EpmN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.6.11_1671435216138_0.6497082637121088"},"_hasShrinkwrap":false},"0.6.12":{"name":"vue3-ts-util","version":"0.6.12","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"9c086960e9c717d2453750a9bce05f48d2f9793d","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.6.12","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-XbIamOk2D0dcMrsIyTilzjUGGJz4XDACN2oKpX/bpe1kUfdaDrrEFCnkaltvwsGv0c4t3lvuwf77hZhVUtBs5A==","shasum":"410c8cc4269c0e858a3c9db90ed2d1bf802f3deb","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.6.12.tgz","fileCount":150,"unpackedSize":242937,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCci1lY8Np3a+cu1GtyeUOfuzvpQWlehqAcGEHZD0oiwIgFsAzk8z1PZEnzHO7ZxSKypOpehJiu3h2bmtRrIu0vOY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjoBU1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmolQA//fhAL2BVJgJsIVU6GnZRFnAFTnun3QizNnjLJyK9wUKMkA8FJ\r\nvZ4Dl0OIHz+2Ot4Ov9mOiAuh0YceRjBatuO6CDo3ouDuHUaOOUHbJXiT5l2l\r\n0DcsiPj8WgmBy/BrK7wenQwGTwboJw0j6GrTGSglD9fHtZ83AvtlS53uZHej\r\nyaFPQeuP3mh8jFH1p6E/X8bC4LgJHKT3Z7YUKNWUx1IskNqTMzYZjVwQS7vd\r\nnXJeBbN4dok25JFiAdHFeruzoYTaynVCpXr4wfmR+bJm2pzmJWJhtUFCUtvo\r\nP95QcIlrO8nBGP/zVdUINpPHkPP4RINTuG/CSR50HuRDh7YWCulM57T8vXSC\r\n8nWtCOXAao2MZrfZXN3Dj/sjkqGvBkOrv+x8esUjE78a0eSk9ubfBHxWZYCK\r\n61CPKZTudQfvhX4CGmsrJcyCml0rGpmXU1APB7Yp3xjlZDc4yU0NcqAuFRb+\r\nFKoAt8rEb45tdSDb0TzMqkyXURh1jYr+lMJIMRaxQG3JKSlB8OWW+pF7wA5W\r\nrUQgp+oloABLFv3BJl+z7CmOt0lRD5mj5SdKxyKe7quBTyDhQIKCPUn9nZBr\r\n3w8D/ezaoJ2z5FP0P/xsCDSkRSF7uzdJtdTcD2kLj+hhn4XVU0uHVlXdWaH8\r\nZmTqlVMYKhM6GqFXtezrO1hbP+8n+xXLchQ=\r\n=7pRf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.6.12_1671435572810_0.5601612919516921"},"_hasShrinkwrap":false},"0.7.1":{"name":"vue3-ts-util","version":"0.7.1","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n> 按需可能会要求对等依赖 vue vuex vue-router，执行yarn add\n\n# 用法\n见文档[doc](doc)\n目录见下方\n\n<!--docinsert-->\n##  vue3 composition api的hook\n- [useDomRect hook风格获取dom的rect](./doc/hooks.md#usedomrect-hook风格获取dom的rect)\n- [useEmit 用于在hook内emit](./doc/hooks.md#useemit-用于在hook内emit)\n- [useFetchQueueHelper/useStrictQueue/useRetryableQueue fetchqueue的hook wrapper](./doc/hooks.md#usefetchqueuehelperusestrictqueueuseretryablequeue-fetchqueue的hook-wrapper)\n- [useInfiniteScrolling 无限滚动](./doc/hooks.md#useinfinitescrolling-无限滚动)\n- [useResizeable 用于鼠标拖拽调整调整某个元素的大小位置](./doc/hooks.md#useresizeable-用于鼠标拖拽调整调整某个元素的大小位置)\n- [useStackAlloc hook风格管理object url分配](./doc/hooks.md#usestackalloc-hook风格管理object-url分配)\n- [useWatchDocument `document.addEventListener`的hook wrapper](./doc/hooks.md#usewatchdocument-documentaddeventlistener的hook-wrapper)\n- [createTypedShareStateHook/useHookShareState 生成一个实例内进行状态共享的hook](./doc/hooks.md#createtypedsharestatehookusehooksharestate-生成一个实例内进行状态共享的hook)\n- [useRouteId 路由参数id获取，合法判断](./doc/hooks.md#userouteid-路由参数id获取合法判断)\n\n##  输入输出，网络请求相关的\n- [FetchQueue 自动管理loading等的请求控制容器](./doc/io.md#fetchqueue-自动管理loading等的请求控制容器)\n  - [构造参数](./doc/io.md#构造参数)\n  - [类方法/属性](./doc/io.md#类方法属性)\n  - [pushAction返回的任务实例](./doc/io.md#pushaction返回的任务实例)\n  - [例子](./doc/io.md#例子)\n    - [最小化](./doc/io.md#最小化)\n    - [排队执行，失败自动重试](./doc/io.md#排队执行失败自动重试)\n    - [取消任务，监听任务被取消](./doc/io.md#取消任务监听任务被取消)\n    - [给任务添加标识/额外信息](./doc/io.md#给任务添加标识额外信息)\n    - [让FetchQueue成为响应式](./doc/io.md#让fetchqueue成为响应式)\n  - [更多的例子见单元测试,测试要详细的多](./doc/io.md#更多的例子见单元测试测试要详细的多)\n  - [衍生hooks](./doc/io.md#衍生hooks)\n- [Task 轮训请求的控制](./doc/io.md#task-轮训请求的控制)\n  - [参数](./doc/io.md#参数)\n  - [返回值](./doc/io.md#返回值)\n    - [停止轮训](./doc/io.md#停止轮训)\n    - [获取轮训结果](./doc/io.md#获取轮训结果)\n    - [获取轮训参数](./doc/io.md#获取轮训参数)\n  - [一个简单的例子](./doc/io.md#一个简单的例子)\n- [makeAsyncIter 分页api的迭代管理](./doc/io.md#makeasynciter-分页api的迭代管理)\n  - [返回类型](./doc/io.md#返回类型)\n  - [一个简单的例子](./doc/io.md#一个简单的例子-1)\n  - [控制多资源，内部状态重置](./doc/io.md#控制多资源内部状态重置)\n  - [中断之前的请求](./doc/io.md#中断之前的请求)\n  - [返回类型的约束](./doc/io.md#返回类型的约束)\n  - [在vue2 options api中使用](./doc/io.md#在vue2-options-api中使用)\n  - [在小程序中使用](./doc/io.md#在小程序中使用)\n    - [最小无限滚动加载收藏的例子](./doc/io.md#最小无限滚动加载收藏的例子)\n    - [在ts/js中获取asyncIter的状态](./doc/io.md#在tsjs中获取asynciter的状态)\n    - [在wxml中获取asyncIter的状态](./doc/io.md#在wxml中获取asynciter的状态)\n      - [通过设置回调来实现状态变化时更新 setStateUpdatedCallback](./doc/io.md#通过设置回调来实现状态变化时更新-setstateupdatedcallback)\n      - [简写方式 bindPage](./doc/io.md#简写方式-bindpage)\n    - [如何知道asyncIter引发的界面修改完成时机](./doc/io.md#如何知道asynciter引发的界面修改完成时机)\n  - [常用场景的使用](./doc/io.md#常用场景的使用)\n    - [antd表格翻页](./doc/io.md#antd表格翻页)\n    - [无限滚动](./doc/io.md#无限滚动)\n- [useInfiniteScrolling 无限滚动](./doc/io.md#useinfinitescrolling-无限滚动)\n  - [探底触发](./doc/io.md#探底触发)\n  - [交叉触发模式](./doc/io.md#交叉触发模式)\n  - [](./doc/io.md#)\n  - [hooks](./doc/io.md#hooks)\n- [useAntdListPagination / GeneralPagination  翻页管理](./doc/io.md#useantdlistpagination--generalpagination--翻页管理)\n  - [使用参考](./doc/io.md#使用参考)\n\n##  其余不好分类的函数\n- [deepComputed](./doc/other.md#deepcomputed)\n  - [主要的使用场景](./doc/other.md#主要的使用场景)\n  - [性能相关](./doc/other.md#性能相关)\n  - [需要注意的问题](./doc/other.md#需要注意的问题)\n    - [如果发现修改了值但setter没被调用](./doc/other.md#如果发现修改了值但setter没被调用)\n    - [调用了一次值的函数(例如Array::splice)，但是setter被多次调用？](./doc/other.md#调用了一次值的函数例如arraysplice但是setter被多次调用)\n    - [原因](./doc/other.md#原因)\n    - [解决方法](./doc/other.md#解决方法)\n- [deepComputedEffect 更好的deepComputed](./doc/other.md#deepcomputedeffect-更好的deepcomputed)\n- [deepComputedPick 执行后二值之间仍然会双向同步的pick](./doc/other.md#deepcomputedpick-执行后二值之间仍然会双向同步的pick)\n- [events/typedEventEmitter 类型安全的EventEmitter](./doc/other.md#eventstypedeventemitter-类型安全的eventemitter)\n- [image/getImageUrl 从下厨房用的图像结构构造url](./doc/other.md#imagegetimageurl-从下厨房用的图像结构构造url)\n- [assigIncrId 生成一个全局自增id](./doc/other.md#assigincrid-生成一个全局自增id)\n- [unid/typedID/ID 使用symbol实现的ID生成器](./doc/other.md#unidtypedidid-使用symbol实现的id生成器)\n- [delay,delayFn 延时，推迟控制流执行](./doc/other.md#delaydelayfn-延时推迟控制流执行)\n- [promise2ref promise转成ref](./doc/other.md#promise2ref-promise转成ref)\n- [promiseSetRef 在promise完成时设置某个ref](./doc/other.md#promisesetref-在promise完成时设置某个ref)\n- [momentConvert 一个函数实现下厨房常用的多种时间转换](./doc/other.md#momentconvert-一个函数实现下厨房常用的多种时间转换)\n\n##  类型及类型推导辅助相关\n- [globalComponents](./doc/type.md#globalcomponents)\n- [DeepReadonly转换一个类型为深度只读](./doc/type.md#deepreadonly转换一个类型为深度只读)\n  - [仅使用类型](./doc/type.md#仅使用类型)\n  - [也可以使用这种方式](./doc/type.md#也可以使用这种方式)\n- [ok 先验条件断言](./doc/type.md#ok-先验条件断言)\n- [thruthy 真值断言](./doc/type.md#thruthy-真值断言)\n- [Columns 描述antd表格结构的类型](./doc/type.md#columns-描述antd表格结构的类型)\n- [Image 下厨房的图像结构](./doc/type.md#image-下厨房的图像结构)\n- [WithRequired 将对象部分字段转为不可空](./doc/type.md#withrequired-将对象部分字段转为不可空)\n- [customPropType vue props用于推导自定义类型的辅助函数,使用interface风格写props](./doc/type.md#customproptype-vue-props用于推导自定义类型的辅助函数使用interface风格写props)\n\n##  本库的vue3组件\n- [GeneralPagination 翻页器和相关hook](./doc/vue3components.md#generalpagination-翻页器和相关hook)\n- [SplitView 支持鼠标拖拽调整的视图分割](./doc/vue3components.md#splitview-支持鼠标拖拽调整的视图分割)\n  - [props](./doc/vue3components.md#props)\n  - [例子](./doc/vue3components.md#例子)\n- [SearchSelect 支持搜索的选择，追求尽可能少的代码来描述](./doc/vue3components.md#searchselect-支持搜索的选择追求尽可能少的代码来描述)\n  - [props](./doc/vue3components.md#props-1)\n  - [例子](./doc/vue3components.md#例子-1)\n\n##  vuex相关的\n- [mutation 生成mutation函数的辅助函数](./doc/vuex.md#mutation-生成mutation函数的辅助函数)\n- [VuexPersistence 用于持久化的vuex插件](./doc/vuex.md#vuexpersistence-用于持久化的vuex插件)\n  - [feature](./doc/vuex.md#feature)\n  - [最小化例子](./doc/vuex.md#最小化例子)\n\n<!--docinsert-->\n# 开发\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn\n....\n```\n## 使用dev-watch开发新功能及debug\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\" // 直接在命令行里输入pwd获取\n  }\n}\n```\n`symlink`指向你开发&debug用的项目，再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是，这个即时编译只针对esm构建可用。且关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 一些需要注意的地方\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验(setup的更好，直接defineProps)\n2. 如果需要返回一个外部不可修改的对象可以使用`deepReadonly`\n3. 修改文档后使用vscode的markdown in one更新所在文件的目录，然后使用`yarn gen-contents`生成合并的目录写入到readme<img width=\"623\" alt=\"image\" src=\"https://user-images.githubusercontent.com/25872019/179443451-6c974bf3-18d8-463f-a4df-1dcb0f787086.png\">\n4. 尽可能足够的单元测试\n5. 如果修改了组件相关及时修改vetur下的文件，及volar所使用的`src/globalComponents.ts`\n6. 版本号修改参考https://semver.org/lang/zh-CN/\n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"c62d1d0728ae56ee19971aff93a140684aef1516","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.7.1","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-oKLY9tpnTU3Tasu36DTJrANVFPU+8mUwj1Im6dF0k8SK/oTVZWBJYHQsoYebwNSi4akhLSACAxWeYx1zTvq2oA==","shasum":"fee6376830e1298ad86110bf64e1f6837b016a46","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.7.1.tgz","fileCount":150,"unpackedSize":245186,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBgQSyI2eytu8JBKUKp+bIrtSs9dPs3YwD+uKWGiyp9QAiEAn7tI5i49PBLHDsQmNngfhWbeCKlbO8KiUlSs+wNdAuk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjs/9OACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpNexAAoqy/9AU+UWiahH708xlA86t2s6yEZFR9cwR+q7euPbmHECtc\r\nut46jIVHxKiXfVOSTRCdhf9NfoIZNwZHNiuDtntGl8cY3LJZXJgJuHMe8UAH\r\nvpTDyHIKhaeRLidQaXRFXLuFo82tyVvfUjjCtldccK4iOqOuVhKhxmPOsdh7\r\nLbRSR6+jvr9puoM+EV5O1PojWGiHp+HPWmsgFVnDHjLgRngmkTdcBy5IfqRi\r\nD4GA0SeutqO+O0VZfKfm6ZdQ7ojphf19wPSc2ln3qoahU2E2OG52N5r7Kj6a\r\n80WyvDY6Knyu1UndZLdRxoXwLNsMmc5dnfiDypNd2q/u39LjJqj3E/HsS7M4\r\n9CvVvZ03RbThRMtvpaSGglQUj5UuWoxsSQZr0cUQiO6UjA7Bt9xbSH/Sea5l\r\naXU+/DYeAjwgUW7k2Ni+xZDnRtss2bown7ee8FVpMPJDGCV6VVxB7YW7v6gp\r\nKORChdKQP3vXxUH2LBbSE8Pk0YQrPis9dDJq3EY0S+79RrQ98M5TCl6svzZd\r\nv+e0B7BFbgCEgivl1+0aMPqkHSDXQmssG7f/CUyiOecb4Q0uoVdov81+QbLc\r\nGxv4pUbXZUMYksd2EGnO5XyRe08HnXfA/Y89A9KFbcZlZkaMVzpsZ+fgN2yy\r\nhZn7N+gHJNeQ3gLNT/SFrSQy7eMdLl+gheQ=\r\n=Bt11\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.7.1_1672740685912_0.9399638418101819"},"_hasShrinkwrap":false},"0.7.2":{"name":"vue3-ts-util","version":"0.7.2","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n> 按需可能会要求对等依赖 vue vuex vue-router，执行yarn add\n\n# 用法\n见文档[doc](doc)\n目录见下方\n\n<!--docinsert-->\n##  vue3 composition api的hook\n- [useDomRect hook风格获取dom的rect](./doc/hooks.md#usedomrect-hook风格获取dom的rect)\n- [useEmit 用于在hook内emit](./doc/hooks.md#useemit-用于在hook内emit)\n- [useFetchQueueHelper/useStrictQueue/useRetryableQueue fetchqueue的hook wrapper](./doc/hooks.md#usefetchqueuehelperusestrictqueueuseretryablequeue-fetchqueue的hook-wrapper)\n- [useInfiniteScrolling 无限滚动](./doc/hooks.md#useinfinitescrolling-无限滚动)\n- [useResizeable 用于鼠标拖拽调整调整某个元素的大小位置](./doc/hooks.md#useresizeable-用于鼠标拖拽调整调整某个元素的大小位置)\n- [useStackAlloc hook风格管理object url分配](./doc/hooks.md#usestackalloc-hook风格管理object-url分配)\n- [useWatchDocument `document.addEventListener`的hook wrapper](./doc/hooks.md#usewatchdocument-documentaddeventlistener的hook-wrapper)\n- [createTypedShareStateHook/useHookShareState 生成一个实例内进行状态共享的hook](./doc/hooks.md#createtypedsharestatehookusehooksharestate-生成一个实例内进行状态共享的hook)\n- [useRouteId 路由参数id获取，合法判断](./doc/hooks.md#userouteid-路由参数id获取合法判断)\n\n##  输入输出，网络请求相关的\n- [FetchQueue 自动管理loading等的请求控制容器](./doc/io.md#fetchqueue-自动管理loading等的请求控制容器)\n  - [构造参数](./doc/io.md#构造参数)\n  - [类方法/属性](./doc/io.md#类方法属性)\n  - [pushAction返回的任务实例](./doc/io.md#pushaction返回的任务实例)\n  - [例子](./doc/io.md#例子)\n    - [最小化](./doc/io.md#最小化)\n    - [排队执行，失败自动重试](./doc/io.md#排队执行失败自动重试)\n    - [取消任务，监听任务被取消](./doc/io.md#取消任务监听任务被取消)\n    - [给任务添加标识/额外信息](./doc/io.md#给任务添加标识额外信息)\n    - [让FetchQueue成为响应式](./doc/io.md#让fetchqueue成为响应式)\n  - [更多的例子见单元测试,测试要详细的多](./doc/io.md#更多的例子见单元测试测试要详细的多)\n  - [衍生hooks](./doc/io.md#衍生hooks)\n- [Task 轮训请求的控制](./doc/io.md#task-轮训请求的控制)\n  - [参数](./doc/io.md#参数)\n  - [返回值](./doc/io.md#返回值)\n    - [停止轮训](./doc/io.md#停止轮训)\n    - [获取轮训结果](./doc/io.md#获取轮训结果)\n    - [获取轮训参数](./doc/io.md#获取轮训参数)\n  - [一个简单的例子](./doc/io.md#一个简单的例子)\n- [makeAsyncIter 分页api的迭代管理](./doc/io.md#makeasynciter-分页api的迭代管理)\n  - [返回类型](./doc/io.md#返回类型)\n  - [一个简单的例子](./doc/io.md#一个简单的例子-1)\n  - [控制多资源，内部状态重置](./doc/io.md#控制多资源内部状态重置)\n  - [中断之前的请求](./doc/io.md#中断之前的请求)\n  - [返回类型的约束](./doc/io.md#返回类型的约束)\n  - [在vue2 options api中使用](./doc/io.md#在vue2-options-api中使用)\n  - [在小程序中使用](./doc/io.md#在小程序中使用)\n    - [最小无限滚动加载收藏的例子](./doc/io.md#最小无限滚动加载收藏的例子)\n    - [在ts/js中获取asyncIter的状态](./doc/io.md#在tsjs中获取asynciter的状态)\n    - [在wxml中获取asyncIter的状态](./doc/io.md#在wxml中获取asynciter的状态)\n      - [通过设置回调来实现状态变化时更新 setStateUpdatedCallback](./doc/io.md#通过设置回调来实现状态变化时更新-setstateupdatedcallback)\n      - [简写方式 bindPage](./doc/io.md#简写方式-bindpage)\n    - [如何知道asyncIter引发的界面修改完成时机](./doc/io.md#如何知道asynciter引发的界面修改完成时机)\n  - [常用场景的使用](./doc/io.md#常用场景的使用)\n    - [antd表格翻页](./doc/io.md#antd表格翻页)\n    - [无限滚动](./doc/io.md#无限滚动)\n- [useInfiniteScrolling 无限滚动](./doc/io.md#useinfinitescrolling-无限滚动)\n  - [探底触发](./doc/io.md#探底触发)\n  - [交叉触发模式](./doc/io.md#交叉触发模式)\n  - [](./doc/io.md#)\n  - [hooks](./doc/io.md#hooks)\n- [useAntdListPagination / GeneralPagination  翻页管理](./doc/io.md#useantdlistpagination--generalpagination--翻页管理)\n  - [使用参考](./doc/io.md#使用参考)\n\n##  其余不好分类的函数\n- [deepComputed](./doc/other.md#deepcomputed)\n  - [主要的使用场景](./doc/other.md#主要的使用场景)\n  - [性能相关](./doc/other.md#性能相关)\n  - [需要注意的问题](./doc/other.md#需要注意的问题)\n    - [如果发现修改了值但setter没被调用](./doc/other.md#如果发现修改了值但setter没被调用)\n    - [调用了一次值的函数(例如Array::splice)，但是setter被多次调用？](./doc/other.md#调用了一次值的函数例如arraysplice但是setter被多次调用)\n    - [原因](./doc/other.md#原因)\n    - [解决方法](./doc/other.md#解决方法)\n- [deepComputedEffect 更好的deepComputed](./doc/other.md#deepcomputedeffect-更好的deepcomputed)\n- [deepComputedPick 执行后二值之间仍然会双向同步的pick](./doc/other.md#deepcomputedpick-执行后二值之间仍然会双向同步的pick)\n- [events/typedEventEmitter 类型安全的EventEmitter](./doc/other.md#eventstypedeventemitter-类型安全的eventemitter)\n- [image/getImageUrl 从下厨房用的图像结构构造url](./doc/other.md#imagegetimageurl-从下厨房用的图像结构构造url)\n- [assigIncrId 生成一个全局自增id](./doc/other.md#assigincrid-生成一个全局自增id)\n- [unid/typedID/ID 使用symbol实现的ID生成器](./doc/other.md#unidtypedidid-使用symbol实现的id生成器)\n- [delay,delayFn 延时，推迟控制流执行](./doc/other.md#delaydelayfn-延时推迟控制流执行)\n- [promise2ref promise转成ref](./doc/other.md#promise2ref-promise转成ref)\n- [promiseSetRef 在promise完成时设置某个ref](./doc/other.md#promisesetref-在promise完成时设置某个ref)\n- [momentConvert 一个函数实现下厨房常用的多种时间转换](./doc/other.md#momentconvert-一个函数实现下厨房常用的多种时间转换)\n\n##  类型及类型推导辅助相关\n- [globalComponents](./doc/type.md#globalcomponents)\n- [DeepReadonly转换一个类型为深度只读](./doc/type.md#deepreadonly转换一个类型为深度只读)\n  - [仅使用类型](./doc/type.md#仅使用类型)\n  - [也可以使用这种方式](./doc/type.md#也可以使用这种方式)\n- [ok 先验条件断言](./doc/type.md#ok-先验条件断言)\n- [thruthy 真值断言](./doc/type.md#thruthy-真值断言)\n- [Columns 描述antd表格结构的类型](./doc/type.md#columns-描述antd表格结构的类型)\n- [Image 下厨房的图像结构](./doc/type.md#image-下厨房的图像结构)\n- [WithRequired 将对象部分字段转为不可空](./doc/type.md#withrequired-将对象部分字段转为不可空)\n- [customPropType vue props用于推导自定义类型的辅助函数,使用interface风格写props](./doc/type.md#customproptype-vue-props用于推导自定义类型的辅助函数使用interface风格写props)\n\n##  本库的vue3组件\n- [GeneralPagination 翻页器和相关hook](./doc/vue3components.md#generalpagination-翻页器和相关hook)\n- [SplitView 支持鼠标拖拽调整的视图分割](./doc/vue3components.md#splitview-支持鼠标拖拽调整的视图分割)\n  - [props](./doc/vue3components.md#props)\n  - [例子](./doc/vue3components.md#例子)\n- [SearchSelect 支持搜索的选择，追求尽可能少的代码来描述](./doc/vue3components.md#searchselect-支持搜索的选择追求尽可能少的代码来描述)\n  - [props](./doc/vue3components.md#props-1)\n  - [例子](./doc/vue3components.md#例子-1)\n\n##  vuex相关的\n- [mutation 生成mutation函数的辅助函数](./doc/vuex.md#mutation-生成mutation函数的辅助函数)\n- [VuexPersistence 用于持久化的vuex插件](./doc/vuex.md#vuexpersistence-用于持久化的vuex插件)\n  - [feature](./doc/vuex.md#feature)\n  - [最小化例子](./doc/vuex.md#最小化例子)\n\n<!--docinsert-->\n# 开发\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn\n....\n```\n## 使用dev-watch开发新功能及debug\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\" // 直接在命令行里输入pwd获取\n  }\n}\n```\n`symlink`指向你开发&debug用的项目，再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是，这个即时编译只针对esm构建可用。且关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 一些需要注意的地方\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验(setup的更好，直接defineProps)\n2. 如果需要返回一个外部不可修改的对象可以使用`deepReadonly`\n3. 修改文档后使用vscode的markdown in one更新所在文件的目录，然后使用`yarn gen-contents`生成合并的目录写入到readme<img width=\"623\" alt=\"image\" src=\"https://user-images.githubusercontent.com/25872019/179443451-6c974bf3-18d8-463f-a4df-1dcb0f787086.png\">\n4. 尽可能足够的单元测试\n5. 如果修改了组件相关及时修改vetur下的文件，及volar所使用的`src/globalComponents.ts`\n6. 版本号修改参考https://semver.org/lang/zh-CN/\n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"c62d1d0728ae56ee19971aff93a140684aef1516","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.7.2","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-MYVhzDg0ND6BdaA0uraNYA1a46d0XatALtVpS0/ia6WTEvJMSegzYuOW+AFOiAQ8Q4YgQ85JvzJGyPzcWjWEYA==","shasum":"3f03e9547358b3a6595dc3029d5980c766626b2b","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.7.2.tgz","fileCount":150,"unpackedSize":245324,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkC80/dMIIPGR1dsN4V00ULmUclUdlkH7CspGEsBx6kwIgEg8po55VnvAbzmQ9uxG3Qpnwpz5+z+2IzD/wTicCt3k="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtAcXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq8Dg//RRah23fz1S0zNby6Eaavm8243+R23Kb1QTaqYhYDFOlNJLDN\r\ntYNKmDBE7mbEWmZ0SJerKybeVsmTBy2+5fsU5gC2nXfa7Y3UftXle+PnVJvj\r\nMyDeGK9nEA3nZzSifeeODZxOBhGJk+6sLiEi+IP+TmyaCGEay0kMrtr0rDuD\r\n8mEUIiWz93IprAjcUpfBqlCbU884XXD5P3Vo8+6lGLEO5UXcp3O9hMpi4+K7\r\nK7qVkYDJoXG7Qer/A9lFwsZE+5DsnNp4wagF9qhKIub34kPamQibq4HOs0zx\r\nLUm9RHodWV8fj/JWD3ACsLFhp/xwAboMwexmNoW3gPA/pLylEJPFEy9LVNKN\r\nT4uu2a60kpz2dDmvQrNwRCU4AbBbLMRS1hYekdJ/Q3O4ZC20hrvyOyOCxjUF\r\nPFwAuXn5KZENJK0ZTlLQRtrYY1CwY9Og8nPCDR4l86GB1jelKx9BnwxGH6E/\r\nhqJRIZzArN1lslpszBsLK5AQHcBCRHvtg+E74YLT7oODfK5Z67JL+fYnkwbs\r\nCnQPlDKW1107JhnsXKvOZLZxZfMCCbCZxJtY3OyDKh1XaeofMEX0b3KmlAMn\r\n4i9S9YYUnDnDxbAcogHUHJ1fFXzWxfsXw0oG8J8MmiWUhg5ZW6wOIwFOljuC\r\n632vSS3xDWR6Mz+46Ldo2XXRijUT+idx/9c=\r\n=wOs8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.7.2_1672742679055_0.4576226627295321"},"_hasShrinkwrap":false},"0.7.3":{"name":"vue3-ts-util","version":"0.7.3","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"ant-design-vue":"^2.0.0","lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"64f4786c59e4116861555b2f042d4f61338855e3","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.7.3","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-0+5VYiTUfGwMzpeo2vGNP936r7mLGlh3xwgCV/VL6HZgJZoi79Nn1/knt7lbbjD7eoR21CJ1ffHSKMfDGuC+lw==","shasum":"ae145e7e14598bae7f87d39788ec71a4c4e1d409","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.7.3.tgz","fileCount":150,"unpackedSize":245845,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG0xd2hcSXTd92Zq7T/QxxVU4NooNPafhB/lWcr1xc3iAiASITPCAqhtdCgfYOLZ6Za0RPC1XX5+v5Hr/Ekb5fJFSw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4HOEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqraA//ZFwtP1NR9IqVmtykfDMSHMDNJ0qI0vbmGXvjhzGAFYYngi/U\r\n5w/rPs9+fbNypzooPKxCbmdvJ33TZ5m+dpmzasZJHi4Qrm8UKtV5og+BTnNa\r\nn6MIrowMSuO9krEDw346XbcGGiLiUdE54KhJRQkZHu1X6ZLXNLCo+rpaVC6T\r\nFCTRbPFtihn/BQEh+RGxDwTftqI4xr8O+fFANnAT0YMxyR/i1w2gGhv/vmqF\r\nCAXaE2n2R6bmAqbarDo8okhQHrgs1Lmgids/X2fInvMM+a2tGEPl7BL7zNeC\r\n54Ia8wuM9gc2gr1Dy4Ykjo2Td8PQGlHrQEaNP1zrs0CdyKJYQFpjODWg3mgp\r\nOcwbhfO7oqT04Ic3TDESVmHz7Akuhc+bJRJDKxTHZXLSn/jjtIWuvAxGj607\r\nlQrvLqznwdtyyOoJmZ8D3n8WXDGGpEoy6d68q61jvCLNR6cpJ3+W5Ln0qRb6\r\nFRAk3W4zCpWp0MmmdjaIjZfyh4mH6sd7mAd3JO+YFQm+ky+AhLuSe/CfyThd\r\nvb9PjzOI4ou9M4cobqQFpJhxsr/qFnZvSgel5LTI8b076SNRYEAMIK2e5fS0\r\nd6mhUHp+mI0YP2xDPmkQ3njohHCdS9Fj4XYfD3Nl7mLQBv/eMCIBHjvAbP3Y\r\ngoxA3yqpGcFP782luUUiH4Jt4ElAS3azGyM=\r\n=kCMq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.7.3_1675654020537_0.4095075379644555"},"_hasShrinkwrap":false},"0.7.4":{"name":"vue3-ts-util","version":"0.7.4","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"lodash":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","events":"^3.3.0"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n> 按需可能会要求对等依赖 vue vuex vue-router，执行yarn add\n\n# 用法\n见文档[doc](doc)\n目录见下方\n\n<!--docinsert-->\n##  vue3 composition api的hook\n- [useDomRect hook风格获取dom的rect](./doc/hooks.md#usedomrect-hook风格获取dom的rect)\n- [useEmit 用于在hook内emit](./doc/hooks.md#useemit-用于在hook内emit)\n- [useFetchQueueHelper/useStrictQueue/useRetryableQueue fetchqueue的hook wrapper](./doc/hooks.md#usefetchqueuehelperusestrictqueueuseretryablequeue-fetchqueue的hook-wrapper)\n- [useInfiniteScrolling 无限滚动](./doc/hooks.md#useinfinitescrolling-无限滚动)\n- [useResizeable 用于鼠标拖拽调整调整某个元素的大小位置](./doc/hooks.md#useresizeable-用于鼠标拖拽调整调整某个元素的大小位置)\n- [useStackAlloc hook风格管理object url分配](./doc/hooks.md#usestackalloc-hook风格管理object-url分配)\n- [useWatchDocument `document.addEventListener`的hook wrapper](./doc/hooks.md#usewatchdocument-documentaddeventlistener的hook-wrapper)\n- [createTypedShareStateHook/useHookShareState 生成一个实例内进行状态共享的hook](./doc/hooks.md#createtypedsharestatehookusehooksharestate-生成一个实例内进行状态共享的hook)\n- [useRouteId 路由参数id获取，合法判断](./doc/hooks.md#userouteid-路由参数id获取合法判断)\n\n##  输入输出，网络请求相关的\n- [FetchQueue 自动管理loading等的请求控制容器](./doc/io.md#fetchqueue-自动管理loading等的请求控制容器)\n  - [构造参数](./doc/io.md#构造参数)\n  - [类方法/属性](./doc/io.md#类方法属性)\n  - [pushAction返回的任务实例](./doc/io.md#pushaction返回的任务实例)\n  - [例子](./doc/io.md#例子)\n    - [最小化](./doc/io.md#最小化)\n    - [排队执行，失败自动重试](./doc/io.md#排队执行失败自动重试)\n    - [取消任务，监听任务被取消](./doc/io.md#取消任务监听任务被取消)\n    - [给任务添加标识/额外信息](./doc/io.md#给任务添加标识额外信息)\n    - [让FetchQueue成为响应式](./doc/io.md#让fetchqueue成为响应式)\n  - [更多的例子见单元测试,测试要详细的多](./doc/io.md#更多的例子见单元测试测试要详细的多)\n  - [衍生hooks](./doc/io.md#衍生hooks)\n- [Task 轮训请求的控制](./doc/io.md#task-轮训请求的控制)\n  - [参数](./doc/io.md#参数)\n  - [返回值](./doc/io.md#返回值)\n    - [停止轮训](./doc/io.md#停止轮训)\n    - [获取轮训结果](./doc/io.md#获取轮训结果)\n    - [获取轮训参数](./doc/io.md#获取轮训参数)\n  - [一个简单的例子](./doc/io.md#一个简单的例子)\n- [makeAsyncIter 分页api的迭代管理](./doc/io.md#makeasynciter-分页api的迭代管理)\n  - [返回类型](./doc/io.md#返回类型)\n  - [一个简单的例子](./doc/io.md#一个简单的例子-1)\n  - [控制多资源，内部状态重置](./doc/io.md#控制多资源内部状态重置)\n  - [中断之前的请求](./doc/io.md#中断之前的请求)\n  - [返回类型的约束](./doc/io.md#返回类型的约束)\n  - [在vue2 options api中使用](./doc/io.md#在vue2-options-api中使用)\n  - [在小程序中使用](./doc/io.md#在小程序中使用)\n    - [最小无限滚动加载收藏的例子](./doc/io.md#最小无限滚动加载收藏的例子)\n    - [在ts/js中获取asyncIter的状态](./doc/io.md#在tsjs中获取asynciter的状态)\n    - [在wxml中获取asyncIter的状态](./doc/io.md#在wxml中获取asynciter的状态)\n      - [通过设置回调来实现状态变化时更新 setStateUpdatedCallback](./doc/io.md#通过设置回调来实现状态变化时更新-setstateupdatedcallback)\n      - [简写方式 bindPage](./doc/io.md#简写方式-bindpage)\n    - [如何知道asyncIter引发的界面修改完成时机](./doc/io.md#如何知道asynciter引发的界面修改完成时机)\n  - [常用场景的使用](./doc/io.md#常用场景的使用)\n    - [antd表格翻页](./doc/io.md#antd表格翻页)\n    - [无限滚动](./doc/io.md#无限滚动)\n- [useInfiniteScrolling 无限滚动](./doc/io.md#useinfinitescrolling-无限滚动)\n  - [探底触发](./doc/io.md#探底触发)\n  - [交叉触发模式](./doc/io.md#交叉触发模式)\n  - [](./doc/io.md#)\n  - [hooks](./doc/io.md#hooks)\n- [useAntdListPagination / GeneralPagination  翻页管理](./doc/io.md#useantdlistpagination--generalpagination--翻页管理)\n  - [使用参考](./doc/io.md#使用参考)\n\n##  其余不好分类的函数\n- [deepComputed](./doc/other.md#deepcomputed)\n  - [主要的使用场景](./doc/other.md#主要的使用场景)\n  - [性能相关](./doc/other.md#性能相关)\n  - [需要注意的问题](./doc/other.md#需要注意的问题)\n    - [如果发现修改了值但setter没被调用](./doc/other.md#如果发现修改了值但setter没被调用)\n    - [调用了一次值的函数(例如Array::splice)，但是setter被多次调用？](./doc/other.md#调用了一次值的函数例如arraysplice但是setter被多次调用)\n    - [原因](./doc/other.md#原因)\n    - [解决方法](./doc/other.md#解决方法)\n- [deepComputedEffect 更好的deepComputed](./doc/other.md#deepcomputedeffect-更好的deepcomputed)\n- [deepComputedPick 执行后二值之间仍然会双向同步的pick](./doc/other.md#deepcomputedpick-执行后二值之间仍然会双向同步的pick)\n- [events/typedEventEmitter 类型安全的EventEmitter](./doc/other.md#eventstypedeventemitter-类型安全的eventemitter)\n- [image/getImageUrl 从下厨房用的图像结构构造url](./doc/other.md#imagegetimageurl-从下厨房用的图像结构构造url)\n- [assigIncrId 生成一个全局自增id](./doc/other.md#assigincrid-生成一个全局自增id)\n- [unid/typedID/ID 使用symbol实现的ID生成器](./doc/other.md#unidtypedidid-使用symbol实现的id生成器)\n- [delay,delayFn 延时，推迟控制流执行](./doc/other.md#delaydelayfn-延时推迟控制流执行)\n- [promise2ref promise转成ref](./doc/other.md#promise2ref-promise转成ref)\n- [promiseSetRef 在promise完成时设置某个ref](./doc/other.md#promisesetref-在promise完成时设置某个ref)\n- [momentConvert 一个函数实现下厨房常用的多种时间转换](./doc/other.md#momentconvert-一个函数实现下厨房常用的多种时间转换)\n\n##  类型及类型推导辅助相关\n- [globalComponents](./doc/type.md#globalcomponents)\n- [DeepReadonly转换一个类型为深度只读](./doc/type.md#deepreadonly转换一个类型为深度只读)\n  - [仅使用类型](./doc/type.md#仅使用类型)\n  - [也可以使用这种方式](./doc/type.md#也可以使用这种方式)\n- [ok 先验条件断言](./doc/type.md#ok-先验条件断言)\n- [thruthy 真值断言](./doc/type.md#thruthy-真值断言)\n- [Columns 描述antd表格结构的类型](./doc/type.md#columns-描述antd表格结构的类型)\n- [Image 下厨房的图像结构](./doc/type.md#image-下厨房的图像结构)\n- [WithRequired 将对象部分字段转为不可空](./doc/type.md#withrequired-将对象部分字段转为不可空)\n- [customPropType vue props用于推导自定义类型的辅助函数,使用interface风格写props](./doc/type.md#customproptype-vue-props用于推导自定义类型的辅助函数使用interface风格写props)\n\n##  本库的vue3组件\n- [GeneralPagination 翻页器和相关hook](./doc/vue3components.md#generalpagination-翻页器和相关hook)\n- [SplitView 支持鼠标拖拽调整的视图分割](./doc/vue3components.md#splitview-支持鼠标拖拽调整的视图分割)\n  - [props](./doc/vue3components.md#props)\n  - [例子](./doc/vue3components.md#例子)\n- [SearchSelect 支持搜索的选择，追求尽可能少的代码来描述](./doc/vue3components.md#searchselect-支持搜索的选择追求尽可能少的代码来描述)\n  - [props](./doc/vue3components.md#props-1)\n  - [例子](./doc/vue3components.md#例子-1)\n\n##  vuex相关的\n- [mutation 生成mutation函数的辅助函数](./doc/vuex.md#mutation-生成mutation函数的辅助函数)\n- [VuexPersistence 用于持久化的vuex插件](./doc/vuex.md#vuexpersistence-用于持久化的vuex插件)\n  - [feature](./doc/vuex.md#feature)\n  - [最小化例子](./doc/vuex.md#最小化例子)\n\n<!--docinsert-->\n# 开发\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn\n....\n```\n## 使用dev-watch开发新功能及debug\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\" // 直接在命令行里输入pwd获取\n  }\n}\n```\n`symlink`指向你开发&debug用的项目，再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是，这个即时编译只针对esm构建可用。且关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 一些需要注意的地方\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验(setup的更好，直接defineProps)\n2. 如果需要返回一个外部不可修改的对象可以使用`deepReadonly`\n3. 修改文档后使用vscode的markdown in one更新所在文件的目录，然后使用`yarn gen-contents`生成合并的目录写入到readme<img width=\"623\" alt=\"image\" src=\"https://user-images.githubusercontent.com/25872019/179443451-6c974bf3-18d8-463f-a4df-1dcb0f787086.png\">\n4. 尽可能足够的单元测试\n5. 如果修改了组件相关及时修改vetur下的文件，及volar所使用的`src/globalComponents.ts`\n6. 版本号修改参考https://semver.org/lang/zh-CN/\n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"ae737eb862029defa0c802f43490e22014095f7c","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.7.4","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-KZ4EBv22tHhtd09vdS/gMmrnjxaz08sDFgmXVwL7iZH3kqAhikboxnB2YTyrf9m71QYBXzSpDIaY+hr4/X7KfQ==","shasum":"46927bcab13aba567dcd57ea67fe6ca7495adff9","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.7.4.tgz","fileCount":150,"unpackedSize":245846,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE/UWe912HCYO2RDujCidBqZQ4RVpG4mDAxxdzM8rm51AiAJ8B5/uoMPb/rcd7trWaeBmCpZQgvBwuvReTDyF0x3wA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4MwMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrfMA/+Or4Pc+6oMpNvnmdbCHD1EDac1Km8ksmG8bt9Fz1lDpguELIs\r\nbj5MKDdTij8HfJt36pBdVVWSsiAOrd0c+ENIVWprtl2jCt2iEhmx3iQzya0+\r\n8cJKWTxK48I8vBLVWmYF70H/0jGpve3isPNAHYA5HxhfyFAhciF3ov6LQSPl\r\nMvkgRSouwpk93OnCRhDwBKqLGjOBqBawzd6g80ILLymvEx7VDNVWtNfSJvrr\r\nSjteDHcYFQG+kUzPQamFisGXpfFi7v6Z4v6dxReKiZBLDfZCL1quoxZL0Pif\r\nTrk3lge9hDjHxcrSQwDj0ZOypD/dW7rOwfdaURrwJ5gXP2RrBk0Koo4X+wxX\r\nOu2TQFCLi6j4SUYEZ/HZjV+3L1aYSDqnkehfFi2gj1ux4fXD9qAt2b4JrPcj\r\nRbK12q7UAyT+Sdgn/qj9gpvElqInSIfvh1shc++oJYKVTBJ5O7ZqluNpyZKp\r\nkWOPadXp2KsZNGyiyyLwcqstuDwKv6AagjwJCYT522/Dm35m0/c0+nd1gNng\r\ndPpqsTpiI0QwyyVaByQYBPxaE/+wARIGE+GfWlfM/wwG6Q/io+pVq0nT3WAq\r\nblYair59iManbcQqezvgdSpUx4ZrNtyy7OVyjGFU6gPbCkW62u5x5M4Z1Od8\r\nidACZp19y5/1mPygG9xVwPeLNwbZTE29SH0=\r\n=C+ak\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.7.4_1675676684127_0.5373582242100079"},"_hasShrinkwrap":false},"0.7.5":{"name":"vue3-ts-util","version":"0.7.5","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"events":"^3.3.0","lodash-commonjs-es":"^1.0.5","lodash-es":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","remove":"^0.1.5"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"ae737eb862029defa0c802f43490e22014095f7c","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.7.5","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-tsWBRcVhYSpmRZLjTsV2hECq0FRlOCQwJkM3DKnxrQcMdEc8qTF3bIoVh5Vmr0ezM3X6GyyCcnp+jtOMriKG8g==","shasum":"1b494f90d479fb8f9e278db51171cb8d033de43d","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.7.5.tgz","fileCount":150,"unpackedSize":245843,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdy0Lq6M9Uu0f3CIN/OEzXu1dDeKjsHOQqqRalbc6vuQIhAN6NHVJAC7GNNSSIxUWA9bd7c1hS6TpMmXYZyeSW1vPo"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4NNhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr3Mw/+LhsjIItF91x9zSGg9ZQouI+GSNhdScMmDWmYbtfuhRXIb6NM\r\nv0DnoBcY5nLvy42hn2uZdBKlkezSmX3GDRq6L6FYYEHYVCl/G3GIYTcqgKFb\r\nNDoAn07y5vntLBRXIxc2jYzXkCRvIOp631QKGs0KLotjp5DRuT3XTLzbqgnG\r\nFfXT7GHqP+3z4SN6nxhQ9pvlznbh2A5hhhv26M9LIm2BJhT49RoVbSvz8dsr\r\nh+Sq8zvhWXogHwurPdlyzC+KtmTLpwMXTUdmg9C06FcIOXq3XxKWzAP5757U\r\nheeFsefBMBRBHJqoTEOOiSdyn0ILbOmdXzkOEVFu0gcIcQ5MgOG8GKzmzGoV\r\nbfTamC7T56iTE15giMxY2eJB3TJeyPce+MP4OB/r106/6bjV1lpzSaJKm6G9\r\nigocwNJFmcNMsBVWLttVAFcDyqkPML2I5xckdKkYyZwDTT05ZRReYSktRFFT\r\nWfu8ZwLtwso53bptmx/kmX5d4PZ/hJO/Qlmpu6wvwTPJX4IKlSsKtR26RnNu\r\nOuwcw2aADrRKTSrvVrsuOpyhpRCvtovJIL8ze/afoVT85JPcYo7pmw82VAAt\r\n/+1Eya+cFG/kL/Y6E1Cfw2EoBB8vsavIXTIz3odNx/zrobxl6ClHcGemi1JO\r\n0t6zrAvaGAscoyjOqTN4LBpXPkDHrbLOhoU=\r\n=YqEl\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.7.5_1675678561594_0.8527868101426272"},"_hasShrinkwrap":false},"0.7.6":{"name":"vue3-ts-util","version":"0.7.6","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"events":"^3.3.0","lodash-commonjs-es":"^1.0.5","lodash-es":"^4.17.21","moment":"^2.29.1","ramda":"^0.27.1","remove":"^0.1.5"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n> 按需可能会要求对等依赖 vue vuex vue-router，执行yarn add\n\n# 用法\n见文档[doc](doc)\n目录见下方\n\n<!--docinsert-->\n##  vue3 composition api的hook\n- [useDomRect hook风格获取dom的rect](./doc/hooks.md#usedomrect-hook风格获取dom的rect)\n- [useEmit 用于在hook内emit](./doc/hooks.md#useemit-用于在hook内emit)\n- [useFetchQueueHelper/useStrictQueue/useRetryableQueue fetchqueue的hook wrapper](./doc/hooks.md#usefetchqueuehelperusestrictqueueuseretryablequeue-fetchqueue的hook-wrapper)\n- [useInfiniteScrolling 无限滚动](./doc/hooks.md#useinfinitescrolling-无限滚动)\n- [useResizeable 用于鼠标拖拽调整调整某个元素的大小位置](./doc/hooks.md#useresizeable-用于鼠标拖拽调整调整某个元素的大小位置)\n- [useStackAlloc hook风格管理object url分配](./doc/hooks.md#usestackalloc-hook风格管理object-url分配)\n- [useWatchDocument `document.addEventListener`的hook wrapper](./doc/hooks.md#usewatchdocument-documentaddeventlistener的hook-wrapper)\n- [createTypedShareStateHook/useHookShareState 生成一个实例内进行状态共享的hook](./doc/hooks.md#createtypedsharestatehookusehooksharestate-生成一个实例内进行状态共享的hook)\n- [useRouteId 路由参数id获取，合法判断](./doc/hooks.md#userouteid-路由参数id获取合法判断)\n\n##  输入输出，网络请求相关的\n- [FetchQueue 自动管理loading等的请求控制容器](./doc/io.md#fetchqueue-自动管理loading等的请求控制容器)\n  - [构造参数](./doc/io.md#构造参数)\n  - [类方法/属性](./doc/io.md#类方法属性)\n  - [pushAction返回的任务实例](./doc/io.md#pushaction返回的任务实例)\n  - [例子](./doc/io.md#例子)\n    - [最小化](./doc/io.md#最小化)\n    - [排队执行，失败自动重试](./doc/io.md#排队执行失败自动重试)\n    - [取消任务，监听任务被取消](./doc/io.md#取消任务监听任务被取消)\n    - [给任务添加标识/额外信息](./doc/io.md#给任务添加标识额外信息)\n    - [让FetchQueue成为响应式](./doc/io.md#让fetchqueue成为响应式)\n  - [更多的例子见单元测试,测试要详细的多](./doc/io.md#更多的例子见单元测试测试要详细的多)\n  - [衍生hooks](./doc/io.md#衍生hooks)\n- [Task 轮训请求的控制](./doc/io.md#task-轮训请求的控制)\n  - [参数](./doc/io.md#参数)\n  - [返回值](./doc/io.md#返回值)\n    - [停止轮训](./doc/io.md#停止轮训)\n    - [获取轮训结果](./doc/io.md#获取轮训结果)\n    - [获取轮训参数](./doc/io.md#获取轮训参数)\n  - [一个简单的例子](./doc/io.md#一个简单的例子)\n- [makeAsyncIter 分页api的迭代管理](./doc/io.md#makeasynciter-分页api的迭代管理)\n  - [返回类型](./doc/io.md#返回类型)\n  - [一个简单的例子](./doc/io.md#一个简单的例子-1)\n  - [控制多资源，内部状态重置](./doc/io.md#控制多资源内部状态重置)\n  - [中断之前的请求](./doc/io.md#中断之前的请求)\n  - [返回类型的约束](./doc/io.md#返回类型的约束)\n  - [在vue2 options api中使用](./doc/io.md#在vue2-options-api中使用)\n  - [在小程序中使用](./doc/io.md#在小程序中使用)\n    - [最小无限滚动加载收藏的例子](./doc/io.md#最小无限滚动加载收藏的例子)\n    - [在ts/js中获取asyncIter的状态](./doc/io.md#在tsjs中获取asynciter的状态)\n    - [在wxml中获取asyncIter的状态](./doc/io.md#在wxml中获取asynciter的状态)\n      - [通过设置回调来实现状态变化时更新 setStateUpdatedCallback](./doc/io.md#通过设置回调来实现状态变化时更新-setstateupdatedcallback)\n      - [简写方式 bindPage](./doc/io.md#简写方式-bindpage)\n    - [如何知道asyncIter引发的界面修改完成时机](./doc/io.md#如何知道asynciter引发的界面修改完成时机)\n  - [常用场景的使用](./doc/io.md#常用场景的使用)\n    - [antd表格翻页](./doc/io.md#antd表格翻页)\n    - [无限滚动](./doc/io.md#无限滚动)\n- [useInfiniteScrolling 无限滚动](./doc/io.md#useinfinitescrolling-无限滚动)\n  - [探底触发](./doc/io.md#探底触发)\n  - [交叉触发模式](./doc/io.md#交叉触发模式)\n  - [](./doc/io.md#)\n  - [hooks](./doc/io.md#hooks)\n- [useAntdListPagination / GeneralPagination  翻页管理](./doc/io.md#useantdlistpagination--generalpagination--翻页管理)\n  - [使用参考](./doc/io.md#使用参考)\n\n##  其余不好分类的函数\n- [deepComputed](./doc/other.md#deepcomputed)\n  - [主要的使用场景](./doc/other.md#主要的使用场景)\n  - [性能相关](./doc/other.md#性能相关)\n  - [需要注意的问题](./doc/other.md#需要注意的问题)\n    - [如果发现修改了值但setter没被调用](./doc/other.md#如果发现修改了值但setter没被调用)\n    - [调用了一次值的函数(例如Array::splice)，但是setter被多次调用？](./doc/other.md#调用了一次值的函数例如arraysplice但是setter被多次调用)\n    - [原因](./doc/other.md#原因)\n    - [解决方法](./doc/other.md#解决方法)\n- [deepComputedEffect 更好的deepComputed](./doc/other.md#deepcomputedeffect-更好的deepcomputed)\n- [deepComputedPick 执行后二值之间仍然会双向同步的pick](./doc/other.md#deepcomputedpick-执行后二值之间仍然会双向同步的pick)\n- [events/typedEventEmitter 类型安全的EventEmitter](./doc/other.md#eventstypedeventemitter-类型安全的eventemitter)\n- [image/getImageUrl 从下厨房用的图像结构构造url](./doc/other.md#imagegetimageurl-从下厨房用的图像结构构造url)\n- [assigIncrId 生成一个全局自增id](./doc/other.md#assigincrid-生成一个全局自增id)\n- [unid/typedID/ID 使用symbol实现的ID生成器](./doc/other.md#unidtypedidid-使用symbol实现的id生成器)\n- [delay,delayFn 延时，推迟控制流执行](./doc/other.md#delaydelayfn-延时推迟控制流执行)\n- [promise2ref promise转成ref](./doc/other.md#promise2ref-promise转成ref)\n- [promiseSetRef 在promise完成时设置某个ref](./doc/other.md#promisesetref-在promise完成时设置某个ref)\n- [momentConvert 一个函数实现下厨房常用的多种时间转换](./doc/other.md#momentconvert-一个函数实现下厨房常用的多种时间转换)\n\n##  类型及类型推导辅助相关\n- [globalComponents](./doc/type.md#globalcomponents)\n- [DeepReadonly转换一个类型为深度只读](./doc/type.md#deepreadonly转换一个类型为深度只读)\n  - [仅使用类型](./doc/type.md#仅使用类型)\n  - [也可以使用这种方式](./doc/type.md#也可以使用这种方式)\n- [ok 先验条件断言](./doc/type.md#ok-先验条件断言)\n- [thruthy 真值断言](./doc/type.md#thruthy-真值断言)\n- [Columns 描述antd表格结构的类型](./doc/type.md#columns-描述antd表格结构的类型)\n- [Image 下厨房的图像结构](./doc/type.md#image-下厨房的图像结构)\n- [WithRequired 将对象部分字段转为不可空](./doc/type.md#withrequired-将对象部分字段转为不可空)\n- [customPropType vue props用于推导自定义类型的辅助函数,使用interface风格写props](./doc/type.md#customproptype-vue-props用于推导自定义类型的辅助函数使用interface风格写props)\n\n##  本库的vue3组件\n- [GeneralPagination 翻页器和相关hook](./doc/vue3components.md#generalpagination-翻页器和相关hook)\n- [SplitView 支持鼠标拖拽调整的视图分割](./doc/vue3components.md#splitview-支持鼠标拖拽调整的视图分割)\n  - [props](./doc/vue3components.md#props)\n  - [例子](./doc/vue3components.md#例子)\n- [SearchSelect 支持搜索的选择，追求尽可能少的代码来描述](./doc/vue3components.md#searchselect-支持搜索的选择追求尽可能少的代码来描述)\n  - [props](./doc/vue3components.md#props-1)\n  - [例子](./doc/vue3components.md#例子-1)\n\n##  vuex相关的\n- [mutation 生成mutation函数的辅助函数](./doc/vuex.md#mutation-生成mutation函数的辅助函数)\n- [VuexPersistence 用于持久化的vuex插件](./doc/vuex.md#vuexpersistence-用于持久化的vuex插件)\n  - [feature](./doc/vuex.md#feature)\n  - [最小化例子](./doc/vuex.md#最小化例子)\n\n<!--docinsert-->\n# 开发\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn\n....\n```\n## 使用dev-watch开发新功能及debug\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\" // 直接在命令行里输入pwd获取\n  }\n}\n```\n`symlink`指向你开发&debug用的项目，再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是，这个即时编译只针对esm构建可用。且关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 一些需要注意的地方\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验(setup的更好，直接defineProps)\n2. 如果需要返回一个外部不可修改的对象可以使用`deepReadonly`\n3. 修改文档后使用vscode的markdown in one更新所在文件的目录，然后使用`yarn gen-contents`生成合并的目录写入到readme<img width=\"623\" alt=\"image\" src=\"https://user-images.githubusercontent.com/25872019/179443451-6c974bf3-18d8-463f-a4df-1dcb0f787086.png\">\n4. 尽可能足够的单元测试\n5. 如果修改了组件相关及时修改vetur下的文件，及volar所使用的`src/globalComponents.ts`\n6. 版本号修改参考https://semver.org/lang/zh-CN/\n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"ae737eb862029defa0c802f43490e22014095f7c","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.7.6","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-q8fM2PhJp1llbheoxdFw4+BCQbT5lKWUJkF1wcg9CP4cePo2vKExSTxuAmAJKnQlGKRAfevqnNoasxCt6bjpLg==","shasum":"6fca56d81f599038ad48a941358f254ab0820cf4","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.7.6.tgz","fileCount":150,"unpackedSize":245843,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQwF2M7xaFEwCQ4/gJPrH/SNZtu90LmaH9iEgrj5J7hAIgB0VDEjTVsG8dpy1YtX+hTHsR8RjfgWHDfXMD2j4n4bM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4NNzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmooLA//ZFGEwhUFv8xHRvEAEo1QR4aq7DDznHODyD7BL41/ZqxriI16\r\nnFaGbe6eZ7atR/nh/jC70jZpf0ZmZgKPNZTYjaZWleXaX4LH9jUyZxdcub4b\r\n2tiKRhTyFcNYac3V4mgjaHiU4T53J+LzTyxPLHMHp/euULMCe5bznZuLGzaq\r\nFpShyjK665l02rTL8Dye9hbkU5t9o289j/fHnIBSAeaHvFgMMRGYwqhu1vP3\r\n2TKkqULn4MDAA61WboVF9PE9Zh9WVVT6POErNHl4TjGKEbkkDt1gSu46GDzA\r\nqJ4cJUFpFKh8+WWlurxwYgjGE4W6vosIRbFwTPOgHwYPwZ+S3YERgaCflKkn\r\nre5stSdfbgvAE8P3IkoW+kRA0QGeI1z0NoGIw1UTRz/06Nu1xD4+ISZrCg8U\r\n9vT3nIY6TpBVuy4DJSBZibmtg+sgFx4B8X4+mIHwfxjoP4Fit4ZvO4CimubI\r\nSwPe5Wl7VA++EnRgII+kq7IT0h/zevSSM7TZ2z9ACl1osCwdTTUa6RZaZTts\r\nv3kwjVxY78X1hM7S9pZDGuagOM4n6y9Dl8YD3jrUDDgx2/lP+r1XHPeGYoPm\r\nupS/gOhOetJzCY/ba8+IbRAy+KRZyrOVKTxgYT/P65VU4I6YZJo60uPJw1Wn\r\n+rfGRDWsbSkKuCjwf8fh4SK47kWtFk/jToE=\r\n=Z53X\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.7.6_1675678578739_0.011743938378802277"},"_hasShrinkwrap":false},"0.7.7":{"name":"vue3-ts-util","version":"0.7.7","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","events":"^3.3.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n> 按需可能会要求对等依赖 vue vuex vue-router，执行yarn add\n\n# 用法\n见文档[doc](doc)\n目录见下方\n\n<!--docinsert-->\n##  vue3 composition api的hook\n- [useDomRect hook风格获取dom的rect](./doc/hooks.md#usedomrect-hook风格获取dom的rect)\n- [useEmit 用于在hook内emit](./doc/hooks.md#useemit-用于在hook内emit)\n- [useFetchQueueHelper/useStrictQueue/useRetryableQueue fetchqueue的hook wrapper](./doc/hooks.md#usefetchqueuehelperusestrictqueueuseretryablequeue-fetchqueue的hook-wrapper)\n- [useInfiniteScrolling 无限滚动](./doc/hooks.md#useinfinitescrolling-无限滚动)\n- [useResizeable 用于鼠标拖拽调整调整某个元素的大小位置](./doc/hooks.md#useresizeable-用于鼠标拖拽调整调整某个元素的大小位置)\n- [useStackAlloc hook风格管理object url分配](./doc/hooks.md#usestackalloc-hook风格管理object-url分配)\n- [useWatchDocument `document.addEventListener`的hook wrapper](./doc/hooks.md#usewatchdocument-documentaddeventlistener的hook-wrapper)\n- [createTypedShareStateHook/useHookShareState 生成一个实例内进行状态共享的hook](./doc/hooks.md#createtypedsharestatehookusehooksharestate-生成一个实例内进行状态共享的hook)\n- [useRouteId 路由参数id获取，合法判断](./doc/hooks.md#userouteid-路由参数id获取合法判断)\n\n##  输入输出，网络请求相关的\n- [FetchQueue 自动管理loading等的请求控制容器](./doc/io.md#fetchqueue-自动管理loading等的请求控制容器)\n  - [构造参数](./doc/io.md#构造参数)\n  - [类方法/属性](./doc/io.md#类方法属性)\n  - [pushAction返回的任务实例](./doc/io.md#pushaction返回的任务实例)\n  - [例子](./doc/io.md#例子)\n    - [最小化](./doc/io.md#最小化)\n    - [排队执行，失败自动重试](./doc/io.md#排队执行失败自动重试)\n    - [取消任务，监听任务被取消](./doc/io.md#取消任务监听任务被取消)\n    - [给任务添加标识/额外信息](./doc/io.md#给任务添加标识额外信息)\n    - [让FetchQueue成为响应式](./doc/io.md#让fetchqueue成为响应式)\n  - [更多的例子见单元测试,测试要详细的多](./doc/io.md#更多的例子见单元测试测试要详细的多)\n  - [衍生hooks](./doc/io.md#衍生hooks)\n- [Task 轮训请求的控制](./doc/io.md#task-轮训请求的控制)\n  - [参数](./doc/io.md#参数)\n  - [返回值](./doc/io.md#返回值)\n    - [停止轮训](./doc/io.md#停止轮训)\n    - [获取轮训结果](./doc/io.md#获取轮训结果)\n    - [获取轮训参数](./doc/io.md#获取轮训参数)\n  - [一个简单的例子](./doc/io.md#一个简单的例子)\n- [makeAsyncIter 分页api的迭代管理](./doc/io.md#makeasynciter-分页api的迭代管理)\n  - [返回类型](./doc/io.md#返回类型)\n  - [一个简单的例子](./doc/io.md#一个简单的例子-1)\n  - [控制多资源，内部状态重置](./doc/io.md#控制多资源内部状态重置)\n  - [中断之前的请求](./doc/io.md#中断之前的请求)\n  - [返回类型的约束](./doc/io.md#返回类型的约束)\n  - [在vue2 options api中使用](./doc/io.md#在vue2-options-api中使用)\n  - [在小程序中使用](./doc/io.md#在小程序中使用)\n    - [最小无限滚动加载收藏的例子](./doc/io.md#最小无限滚动加载收藏的例子)\n    - [在ts/js中获取asyncIter的状态](./doc/io.md#在tsjs中获取asynciter的状态)\n    - [在wxml中获取asyncIter的状态](./doc/io.md#在wxml中获取asynciter的状态)\n      - [通过设置回调来实现状态变化时更新 setStateUpdatedCallback](./doc/io.md#通过设置回调来实现状态变化时更新-setstateupdatedcallback)\n      - [简写方式 bindPage](./doc/io.md#简写方式-bindpage)\n    - [如何知道asyncIter引发的界面修改完成时机](./doc/io.md#如何知道asynciter引发的界面修改完成时机)\n  - [常用场景的使用](./doc/io.md#常用场景的使用)\n    - [antd表格翻页](./doc/io.md#antd表格翻页)\n    - [无限滚动](./doc/io.md#无限滚动)\n- [useInfiniteScrolling 无限滚动](./doc/io.md#useinfinitescrolling-无限滚动)\n  - [探底触发](./doc/io.md#探底触发)\n  - [交叉触发模式](./doc/io.md#交叉触发模式)\n  - [](./doc/io.md#)\n  - [hooks](./doc/io.md#hooks)\n- [useAntdListPagination / GeneralPagination  翻页管理](./doc/io.md#useantdlistpagination--generalpagination--翻页管理)\n  - [使用参考](./doc/io.md#使用参考)\n\n##  其余不好分类的函数\n- [deepComputed](./doc/other.md#deepcomputed)\n  - [主要的使用场景](./doc/other.md#主要的使用场景)\n  - [性能相关](./doc/other.md#性能相关)\n  - [需要注意的问题](./doc/other.md#需要注意的问题)\n    - [如果发现修改了值但setter没被调用](./doc/other.md#如果发现修改了值但setter没被调用)\n    - [调用了一次值的函数(例如Array::splice)，但是setter被多次调用？](./doc/other.md#调用了一次值的函数例如arraysplice但是setter被多次调用)\n    - [原因](./doc/other.md#原因)\n    - [解决方法](./doc/other.md#解决方法)\n- [deepComputedEffect 更好的deepComputed](./doc/other.md#deepcomputedeffect-更好的deepcomputed)\n- [deepComputedPick 执行后二值之间仍然会双向同步的pick](./doc/other.md#deepcomputedpick-执行后二值之间仍然会双向同步的pick)\n- [events/typedEventEmitter 类型安全的EventEmitter](./doc/other.md#eventstypedeventemitter-类型安全的eventemitter)\n- [image/getImageUrl 从下厨房用的图像结构构造url](./doc/other.md#imagegetimageurl-从下厨房用的图像结构构造url)\n- [assigIncrId 生成一个全局自增id](./doc/other.md#assigincrid-生成一个全局自增id)\n- [unid/typedID/ID 使用symbol实现的ID生成器](./doc/other.md#unidtypedidid-使用symbol实现的id生成器)\n- [delay,delayFn 延时，推迟控制流执行](./doc/other.md#delaydelayfn-延时推迟控制流执行)\n- [promise2ref promise转成ref](./doc/other.md#promise2ref-promise转成ref)\n- [promiseSetRef 在promise完成时设置某个ref](./doc/other.md#promisesetref-在promise完成时设置某个ref)\n- [momentConvert 一个函数实现下厨房常用的多种时间转换](./doc/other.md#momentconvert-一个函数实现下厨房常用的多种时间转换)\n\n##  类型及类型推导辅助相关\n- [globalComponents](./doc/type.md#globalcomponents)\n- [DeepReadonly转换一个类型为深度只读](./doc/type.md#deepreadonly转换一个类型为深度只读)\n  - [仅使用类型](./doc/type.md#仅使用类型)\n  - [也可以使用这种方式](./doc/type.md#也可以使用这种方式)\n- [ok 先验条件断言](./doc/type.md#ok-先验条件断言)\n- [thruthy 真值断言](./doc/type.md#thruthy-真值断言)\n- [Columns 描述antd表格结构的类型](./doc/type.md#columns-描述antd表格结构的类型)\n- [Image 下厨房的图像结构](./doc/type.md#image-下厨房的图像结构)\n- [WithRequired 将对象部分字段转为不可空](./doc/type.md#withrequired-将对象部分字段转为不可空)\n- [customPropType vue props用于推导自定义类型的辅助函数,使用interface风格写props](./doc/type.md#customproptype-vue-props用于推导自定义类型的辅助函数使用interface风格写props)\n\n##  本库的vue3组件\n- [GeneralPagination 翻页器和相关hook](./doc/vue3components.md#generalpagination-翻页器和相关hook)\n- [SplitView 支持鼠标拖拽调整的视图分割](./doc/vue3components.md#splitview-支持鼠标拖拽调整的视图分割)\n  - [props](./doc/vue3components.md#props)\n  - [例子](./doc/vue3components.md#例子)\n- [SearchSelect 支持搜索的选择，追求尽可能少的代码来描述](./doc/vue3components.md#searchselect-支持搜索的选择追求尽可能少的代码来描述)\n  - [props](./doc/vue3components.md#props-1)\n  - [例子](./doc/vue3components.md#例子-1)\n\n##  vuex相关的\n- [mutation 生成mutation函数的辅助函数](./doc/vuex.md#mutation-生成mutation函数的辅助函数)\n- [VuexPersistence 用于持久化的vuex插件](./doc/vuex.md#vuexpersistence-用于持久化的vuex插件)\n  - [feature](./doc/vuex.md#feature)\n  - [最小化例子](./doc/vuex.md#最小化例子)\n\n<!--docinsert-->\n# 开发\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn\n....\n```\n## 使用dev-watch开发新功能及debug\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\" // 直接在命令行里输入pwd获取\n  }\n}\n```\n`symlink`指向你开发&debug用的项目，再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是，这个即时编译只针对esm构建可用。且关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 一些需要注意的地方\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验(setup的更好，直接defineProps)\n2. 如果需要返回一个外部不可修改的对象可以使用`deepReadonly`\n3. 修改文档后使用vscode的markdown in one更新所在文件的目录，然后使用`yarn gen-contents`生成合并的目录写入到readme<img width=\"623\" alt=\"image\" src=\"https://user-images.githubusercontent.com/25872019/179443451-6c974bf3-18d8-463f-a4df-1dcb0f787086.png\">\n4. 尽可能足够的单元测试\n5. 如果修改了组件相关及时修改vetur下的文件，及volar所使用的`src/globalComponents.ts`\n6. 版本号修改参考https://semver.org/lang/zh-CN/\n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"96afd557a062d88cfd3f6ad1c5272197c8832c60","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.7.7","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-Ftm3VwwXcg6IOzn3gBckiLa6z07E7bUDzCRQSho76D7OLlT+cXLL5wRTqMPcxOMYwuoljVCj/7gEMLXEUmGkmw==","shasum":"92b3c1d5ead4d45f8849d6f3a25556aa94200cb6","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.7.7.tgz","fileCount":150,"unpackedSize":245693,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbmPs/33A+RcHxolAaVd/eDrWbhiuE93XzVlvblBrPywIhAObXlF+7ivOn+49f6whXozDdEKw75x973dmM+bwDPlxM"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4PC2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpa2hAAj404oxWYTzBqLlGL8XayXniT7xDTPBVTQs4vnqsOeaZv2vPT\r\nuS4GBPLnPjwm9Fyih6PjFj+HgfRawdxX7pAU0Yl3ybEBWCBbGE1JV84rNdK0\r\nkKgNWhautOtAcOiaBUEOf1S/lQig+nGWvX0K6XXGSGNxh5kqY4V9D/QWJsry\r\njIFfBUpZMdsqSI/7mlswzg04TlJE5SuYHddXYY2ERbD7QiGcnrxUquVqbhxe\r\ntGAbyPVgNKXLefnPlaeN0Z5eyIroRhgN9iwGrdLxNGeBuToczAqX/DrhcAYM\r\n5NaNcE5LMz8G4ZG1tloZlSxJV4cQevkz2oNFPDy/lZEQ7z6P1ekDGwXbxCHC\r\nC4bbEIhHvauh+Ck5eauCIC9fMu5nQ1J0JjdDCgShkQbJgc7oyfzjv8M7guSk\r\nCIaZMVtpsv/wrgruKnwn4GhTz4kjirBRvkGNRHDMsUgPZyo8rLhNgl17Nvkd\r\n5pZvG/HUvCtA21A4NCJyh/GBV/rp8VyKVUXayf8g9lMb00ImAv/3Q4HvUeaT\r\noZvmwMe/eA/lu6035p1A8gxXt3C1f+COn4Wi+zFamabSZ+tb7ISouZDzB08e\r\nqrVt4e5G4x9S124JP2YVMiQLYCJ0IGZjb14xgeQ4pl3RyOcI24+1aJ4o5hJv\r\nB2ovMZnlzD3ycS0cs9/ac6EksAa4lmcYeUQ=\r\n=c7uw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.7.7_1675686070221_0.8853612430154278"},"_hasShrinkwrap":false},"0.7.8":{"name":"vue3-ts-util","version":"0.7.8","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","events":"^3.3.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n> 按需可能会要求对等依赖 vue vuex vue-router，执行yarn add\n\n# 用法\n见文档[doc](doc)\n目录见下方\n\n<!--docinsert-->\n##  vue3 composition api的hook\n- [useDomRect hook风格获取dom的rect](./doc/hooks.md#usedomrect-hook风格获取dom的rect)\n- [useEmit 用于在hook内emit](./doc/hooks.md#useemit-用于在hook内emit)\n- [useFetchQueueHelper/useStrictQueue/useRetryableQueue fetchqueue的hook wrapper](./doc/hooks.md#usefetchqueuehelperusestrictqueueuseretryablequeue-fetchqueue的hook-wrapper)\n- [useInfiniteScrolling 无限滚动](./doc/hooks.md#useinfinitescrolling-无限滚动)\n- [useResizeable 用于鼠标拖拽调整调整某个元素的大小位置](./doc/hooks.md#useresizeable-用于鼠标拖拽调整调整某个元素的大小位置)\n- [useStackAlloc hook风格管理object url分配](./doc/hooks.md#usestackalloc-hook风格管理object-url分配)\n- [useWatchDocument `document.addEventListener`的hook wrapper](./doc/hooks.md#usewatchdocument-documentaddeventlistener的hook-wrapper)\n- [createTypedShareStateHook/useHookShareState 生成一个实例内进行状态共享的hook](./doc/hooks.md#createtypedsharestatehookusehooksharestate-生成一个实例内进行状态共享的hook)\n- [useRouteId 路由参数id获取，合法判断](./doc/hooks.md#userouteid-路由参数id获取合法判断)\n\n##  输入输出，网络请求相关的\n- [FetchQueue 自动管理loading等的请求控制容器](./doc/io.md#fetchqueue-自动管理loading等的请求控制容器)\n  - [构造参数](./doc/io.md#构造参数)\n  - [类方法/属性](./doc/io.md#类方法属性)\n  - [pushAction返回的任务实例](./doc/io.md#pushaction返回的任务实例)\n  - [例子](./doc/io.md#例子)\n    - [最小化](./doc/io.md#最小化)\n    - [排队执行，失败自动重试](./doc/io.md#排队执行失败自动重试)\n    - [取消任务，监听任务被取消](./doc/io.md#取消任务监听任务被取消)\n    - [给任务添加标识/额外信息](./doc/io.md#给任务添加标识额外信息)\n    - [让FetchQueue成为响应式](./doc/io.md#让fetchqueue成为响应式)\n  - [更多的例子见单元测试,测试要详细的多](./doc/io.md#更多的例子见单元测试测试要详细的多)\n  - [衍生hooks](./doc/io.md#衍生hooks)\n- [Task 轮训请求的控制](./doc/io.md#task-轮训请求的控制)\n  - [参数](./doc/io.md#参数)\n  - [返回值](./doc/io.md#返回值)\n    - [停止轮训](./doc/io.md#停止轮训)\n    - [获取轮训结果](./doc/io.md#获取轮训结果)\n    - [获取轮训参数](./doc/io.md#获取轮训参数)\n  - [一个简单的例子](./doc/io.md#一个简单的例子)\n- [makeAsyncIter 分页api的迭代管理](./doc/io.md#makeasynciter-分页api的迭代管理)\n  - [返回类型](./doc/io.md#返回类型)\n  - [一个简单的例子](./doc/io.md#一个简单的例子-1)\n  - [控制多资源，内部状态重置](./doc/io.md#控制多资源内部状态重置)\n  - [中断之前的请求](./doc/io.md#中断之前的请求)\n  - [返回类型的约束](./doc/io.md#返回类型的约束)\n  - [在vue2 options api中使用](./doc/io.md#在vue2-options-api中使用)\n  - [在小程序中使用](./doc/io.md#在小程序中使用)\n    - [最小无限滚动加载收藏的例子](./doc/io.md#最小无限滚动加载收藏的例子)\n    - [在ts/js中获取asyncIter的状态](./doc/io.md#在tsjs中获取asynciter的状态)\n    - [在wxml中获取asyncIter的状态](./doc/io.md#在wxml中获取asynciter的状态)\n      - [通过设置回调来实现状态变化时更新 setStateUpdatedCallback](./doc/io.md#通过设置回调来实现状态变化时更新-setstateupdatedcallback)\n      - [简写方式 bindPage](./doc/io.md#简写方式-bindpage)\n    - [如何知道asyncIter引发的界面修改完成时机](./doc/io.md#如何知道asynciter引发的界面修改完成时机)\n  - [常用场景的使用](./doc/io.md#常用场景的使用)\n    - [antd表格翻页](./doc/io.md#antd表格翻页)\n    - [无限滚动](./doc/io.md#无限滚动)\n- [useInfiniteScrolling 无限滚动](./doc/io.md#useinfinitescrolling-无限滚动)\n  - [探底触发](./doc/io.md#探底触发)\n  - [交叉触发模式](./doc/io.md#交叉触发模式)\n  - [](./doc/io.md#)\n  - [hooks](./doc/io.md#hooks)\n- [useAntdListPagination / GeneralPagination  翻页管理](./doc/io.md#useantdlistpagination--generalpagination--翻页管理)\n  - [使用参考](./doc/io.md#使用参考)\n\n##  其余不好分类的函数\n- [deepComputed](./doc/other.md#deepcomputed)\n  - [主要的使用场景](./doc/other.md#主要的使用场景)\n  - [性能相关](./doc/other.md#性能相关)\n  - [需要注意的问题](./doc/other.md#需要注意的问题)\n    - [如果发现修改了值但setter没被调用](./doc/other.md#如果发现修改了值但setter没被调用)\n    - [调用了一次值的函数(例如Array::splice)，但是setter被多次调用？](./doc/other.md#调用了一次值的函数例如arraysplice但是setter被多次调用)\n    - [原因](./doc/other.md#原因)\n    - [解决方法](./doc/other.md#解决方法)\n- [deepComputedEffect 更好的deepComputed](./doc/other.md#deepcomputedeffect-更好的deepcomputed)\n- [deepComputedPick 执行后二值之间仍然会双向同步的pick](./doc/other.md#deepcomputedpick-执行后二值之间仍然会双向同步的pick)\n- [events/typedEventEmitter 类型安全的EventEmitter](./doc/other.md#eventstypedeventemitter-类型安全的eventemitter)\n- [image/getImageUrl 从下厨房用的图像结构构造url](./doc/other.md#imagegetimageurl-从下厨房用的图像结构构造url)\n- [assigIncrId 生成一个全局自增id](./doc/other.md#assigincrid-生成一个全局自增id)\n- [unid/typedID/ID 使用symbol实现的ID生成器](./doc/other.md#unidtypedidid-使用symbol实现的id生成器)\n- [delay,delayFn 延时，推迟控制流执行](./doc/other.md#delaydelayfn-延时推迟控制流执行)\n- [promise2ref promise转成ref](./doc/other.md#promise2ref-promise转成ref)\n- [promiseSetRef 在promise完成时设置某个ref](./doc/other.md#promisesetref-在promise完成时设置某个ref)\n- [momentConvert 一个函数实现下厨房常用的多种时间转换](./doc/other.md#momentconvert-一个函数实现下厨房常用的多种时间转换)\n\n##  类型及类型推导辅助相关\n- [globalComponents](./doc/type.md#globalcomponents)\n- [DeepReadonly转换一个类型为深度只读](./doc/type.md#deepreadonly转换一个类型为深度只读)\n  - [仅使用类型](./doc/type.md#仅使用类型)\n  - [也可以使用这种方式](./doc/type.md#也可以使用这种方式)\n- [ok 先验条件断言](./doc/type.md#ok-先验条件断言)\n- [thruthy 真值断言](./doc/type.md#thruthy-真值断言)\n- [Columns 描述antd表格结构的类型](./doc/type.md#columns-描述antd表格结构的类型)\n- [Image 下厨房的图像结构](./doc/type.md#image-下厨房的图像结构)\n- [WithRequired 将对象部分字段转为不可空](./doc/type.md#withrequired-将对象部分字段转为不可空)\n- [customPropType vue props用于推导自定义类型的辅助函数,使用interface风格写props](./doc/type.md#customproptype-vue-props用于推导自定义类型的辅助函数使用interface风格写props)\n\n##  本库的vue3组件\n- [GeneralPagination 翻页器和相关hook](./doc/vue3components.md#generalpagination-翻页器和相关hook)\n- [SplitView 支持鼠标拖拽调整的视图分割](./doc/vue3components.md#splitview-支持鼠标拖拽调整的视图分割)\n  - [props](./doc/vue3components.md#props)\n  - [例子](./doc/vue3components.md#例子)\n- [SearchSelect 支持搜索的选择，追求尽可能少的代码来描述](./doc/vue3components.md#searchselect-支持搜索的选择追求尽可能少的代码来描述)\n  - [props](./doc/vue3components.md#props-1)\n  - [例子](./doc/vue3components.md#例子-1)\n\n##  vuex相关的\n- [mutation 生成mutation函数的辅助函数](./doc/vuex.md#mutation-生成mutation函数的辅助函数)\n- [VuexPersistence 用于持久化的vuex插件](./doc/vuex.md#vuexpersistence-用于持久化的vuex插件)\n  - [feature](./doc/vuex.md#feature)\n  - [最小化例子](./doc/vuex.md#最小化例子)\n\n<!--docinsert-->\n# 开发\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn\n....\n```\n## 使用dev-watch开发新功能及debug\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\" // 直接在命令行里输入pwd获取\n  }\n}\n```\n`symlink`指向你开发&debug用的项目，再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是，这个即时编译只针对esm构建可用。且关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 一些需要注意的地方\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验(setup的更好，直接defineProps)\n2. 如果需要返回一个外部不可修改的对象可以使用`deepReadonly`\n3. 修改文档后使用vscode的markdown in one更新所在文件的目录，然后使用`yarn gen-contents`生成合并的目录写入到readme<img width=\"623\" alt=\"image\" src=\"https://user-images.githubusercontent.com/25872019/179443451-6c974bf3-18d8-463f-a4df-1dcb0f787086.png\">\n4. 尽可能足够的单元测试\n5. 如果修改了组件相关及时修改vetur下的文件，及volar所使用的`src/globalComponents.ts`\n6. 版本号修改参考https://semver.org/lang/zh-CN/\n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"96afd557a062d88cfd3f6ad1c5272197c8832c60","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.7.8","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-BUEesikln7UHagQzyHjmtetjBTHTtO1WLA4emymmi66thaKzYmprEYhmDcZgQhWO8XWkTFZTH/kCM/gT8zCQ4g==","shasum":"4205eb5f44f03505de6942a6e09431d62d02e1ec","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.7.8.tgz","fileCount":150,"unpackedSize":243453,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzbx9Ds/p2eWeba6ntB5wMDvTcZgJRJxIr1MhmJ/211AIhAPCFYVIrs0IMl8MephgSNmz4XS0Oy3hyiMUGLBemvm8d"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4cBqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqLUg//dWkEG4F9Mwi4szxiyLGeH8BtsYZ5bZSaVBtrR/isvemf20h8\r\nJRpYXoD/eYPlZU25yLKQetCDVKmmG7EoHdcDflXTZGRZwWTdt+XSQ6McBshN\r\nqqEGCgoUdY5u0kSntRwHKR2RfsHFpXdgSihttLbZWEOB1w3V2XvbOUdNJU0F\r\nFSdtHYV72TBx4Rl8l/SXq/tB46ID2EGaHT0nPh8uyDFx7LFmNgB/NbdiCuxF\r\n2374LdmuWO7DXMklhLxVwB+mx+2Ktv7sYyUSXA3pLWp5elQWMLpRwVVhij1X\r\npCUwKelis8Usr90qM4bHb5kiavKAggkDa9ZXffU/FrQZ+eC4rmWVr5qQxm2k\r\nd6Zxa4KPELoW0F28l6cPzWNQhxL+Hftq9QM9rUcpB1/fk+D4DWGzI73YyDKK\r\neIDqilk/MPR/9c52ONfO+pCseGqUJNqKe6YzaWLZcpvResDuZbdxXxX5X+/B\r\n1zRKabhlis+n8Nt+vZhhoIjr5MQE0yShfrIxdRsAwVpcv4vzSu4ZLtyEB2GF\r\nw0Jy7BQju6E7AwunibvsuUI+ztLjCNllMCxv8vL5u1867iURmoMp1e4xE65s\r\nMCrsrsBfBDOD4ZUJ7+9eyBxgF/2bIDOphvwSLCFHcFzsz8ezloSwv8HW+61H\r\nyel185G6fbKrGH9NumXDgcd5+oAt4Q/ZZWg=\r\n=RPcW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.7.8_1675739242334_0.5558950239006326"},"_hasShrinkwrap":false},"0.7.9":{"name":"vue3-ts-util","version":"0.7.9","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","events":"^3.3.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"96afd557a062d88cfd3f6ad1c5272197c8832c60","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.7.9","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-Avtw6c++RMUbdmx8SZRGyUDM+IhZDMj9p7S4SjAcNiISb2olIByXhPfM3I68wmLSPc43cQedmKEzHAqFY6GtGQ==","shasum":"ff964805d66bd39452c4a58cb3dcb541d3ff9492","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.7.9.tgz","fileCount":150,"unpackedSize":243453,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDNUxMoQC76zrx9H2+nrETjRgc6oW+rmakCutAoYhICyAiEAkV4N4YuzlB41D7yonXbf0tXDGqPiq+yxm8ugGRQIMqQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4ctqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpNuA/8D9ywaEvYk6uW92fMTZ2hkqOUKadXHA04/qFqOrRZ7G7tsaSu\r\noaNYvgSD3wCagpGi8U99emlLDa7RelO58VBqMuDDl6FB9Gfj0TK2Xj2zAGpz\r\n5gShXBxN8+XFFyz21MyQ/CNhpt2rfZdyysyMVeqEy1+SpEABHMXeTRW8GZ2p\r\nbqWyqMB0bsbN+UfJMSBqAQd1oa/vtKPXY0YF5OqHlRyq2tALH0/eaGKrQDnG\r\nFbqgJJc8d4i8TxCG1/R+KFUf+ASJFsSn66kE+8eYvNegjNAxNvEham/gL/pS\r\nFObiMVNneEvgEmHOPD7xMua8iad1EbZUI0P42Sh+8Ew+BUCNbEUmgFGYoaeY\r\ncgjabaDtLyVM2Ti5YuwL4KScEdWSbd9j7k8XlVNue1n1IEpA6s2D6PvrdsdJ\r\nm8t4PP/wNbNDMe5j1NLjBtfNsMUcXDCVneIexQav/5KSJB70sGaHKoZM4MR7\r\nYxDWzZhlRCofJpCG6w4F1N99gKBVNZ+mZL9ODW/ygpuj/dA/wGEBBeGM99l5\r\nH4uTcH0WDQ787x7kGQR7amAGsuA4BBuz6/lSF7/5dg2ux0gxQAc/odm90hQb\r\nvrwh2WSz3EEGaXtmJBxzj44ByPtobjVD7pzALCLrClAAKRWiVgNjdrT2M6UR\r\nP+MnpBLBa5yD5xKR+BGmCpC/OPRF85n4cb0=\r\n=TCcs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.7.9_1675742058178_0.54601670930511"},"_hasShrinkwrap":false},"0.7.10":{"name":"vue3-ts-util","version":"0.7.10","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","events":"^3.3.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"96afd557a062d88cfd3f6ad1c5272197c8832c60","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.7.10","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-JVJ9B6q5haWiliLm5ZbzbvJ4ht+NzG1L3NP9DZ/ftYxbtz7QqTGDeYTN0R7isft1SCqAhsIybRJK0n5Tbq8PzQ==","shasum":"f55d6f08a7748849014fba29c5b8f03198c6313c","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.7.10.tgz","fileCount":150,"unpackedSize":246906,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEkANJ5TmQq+GoDHtjlY1czagr5gmwyB7gPcwNSCG/BqAiAsVaNotiIqV+fkofiQKSdvtnNldfFdXeBvlYRcxyo1+Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4dKJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0xBAAipQiLWe1UR+n7rn5YCx2E/gSWS371J+1PjICaEepGRZtU7G1\r\nmktGp/bLc+Bfp+/Wu+OB9dmdSCu/EvnQaDz/FtkvM43EKIufu1dzuKk83pgw\r\nFgewtWD2cOe8nUvrqrtMrGBbqe7l0VSB7ejlpmCxR+6AnPcuwUvu6kYlq0t3\r\nIY4w2Ak6PDzRfKOjek8MeW8N75GBkewIo1T7/k33nsR4OdsSuR1KGJZ+vzfV\r\ns3D7U4HvASFZUiCSfAsAe1o9YyEpuQBhIQZwdxchoS/9/rQevz0eImgCIX9m\r\nK41y4uYDsVU5nLBpolIxK9fme0kvKihLpKw6d7FKmhvwQ9S3XDzXBbeEIrIw\r\n7YrFXRN8CT5qIoYdd/dlWMFtUuTiw3ED+Ocb1yUzWprG6/ZwXh3YTd/Ugp5E\r\nxVEtRO0WenMbVSKVu2S2C5NMHgTjJQqtxmJT3++I+47AesMPBZAPCdEV3oaj\r\nh9eMeQEPhD1oNXzKovsZyM5ZfZkEQoKkMSrgbf59rYYDLCNXxNiFdfzMMeK+\r\n5J0fKedgtq2AFd9GIrzScGrMn8Pr2H6TeZETuV6YqjDFPW8rXW0nz/kCeyv+\r\nGvVPSVX+N1TqT21M06X8qg21w8aKTrPolA/Il+BAdlxU1sHxh2ANyrzRLoTS\r\nWp3Vup9wUoa/OtSXb7MT5BiJ2i7GOAankA0=\r\n=pndC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.7.10_1675743880923_0.21382215395700555"},"_hasShrinkwrap":false},"0.7.11":{"name":"vue3-ts-util","version":"0.7.11","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","events":"^3.3.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n\n# 安装\n`yarn add vue3-ts-util`\n\n> 按需可能会要求对等依赖 vue vuex vue-router，执行yarn add\n\n# 用法\n见文档[doc](doc)\n目录见下方\n\n<!--docinsert-->\n##  vue3 composition api的hook\n- [useDomRect hook风格获取dom的rect](./doc/hooks.md#usedomrect-hook风格获取dom的rect)\n- [useEmit 用于在hook内emit](./doc/hooks.md#useemit-用于在hook内emit)\n- [useFetchQueueHelper/useStrictQueue/useRetryableQueue fetchqueue的hook wrapper](./doc/hooks.md#usefetchqueuehelperusestrictqueueuseretryablequeue-fetchqueue的hook-wrapper)\n- [useInfiniteScrolling 无限滚动](./doc/hooks.md#useinfinitescrolling-无限滚动)\n- [useResizeable 用于鼠标拖拽调整调整某个元素的大小位置](./doc/hooks.md#useresizeable-用于鼠标拖拽调整调整某个元素的大小位置)\n- [useStackAlloc hook风格管理object url分配](./doc/hooks.md#usestackalloc-hook风格管理object-url分配)\n- [useWatchDocument `document.addEventListener`的hook wrapper](./doc/hooks.md#usewatchdocument-documentaddeventlistener的hook-wrapper)\n- [createTypedShareStateHook/useHookShareState 生成一个实例内进行状态共享的hook](./doc/hooks.md#createtypedsharestatehookusehooksharestate-生成一个实例内进行状态共享的hook)\n- [useRouteId 路由参数id获取，合法判断](./doc/hooks.md#userouteid-路由参数id获取合法判断)\n\n##  输入输出，网络请求相关的\n- [FetchQueue 自动管理loading等的请求控制容器](./doc/io.md#fetchqueue-自动管理loading等的请求控制容器)\n  - [构造参数](./doc/io.md#构造参数)\n  - [类方法/属性](./doc/io.md#类方法属性)\n  - [pushAction返回的任务实例](./doc/io.md#pushaction返回的任务实例)\n  - [例子](./doc/io.md#例子)\n    - [最小化](./doc/io.md#最小化)\n    - [排队执行，失败自动重试](./doc/io.md#排队执行失败自动重试)\n    - [取消任务，监听任务被取消](./doc/io.md#取消任务监听任务被取消)\n    - [给任务添加标识/额外信息](./doc/io.md#给任务添加标识额外信息)\n    - [让FetchQueue成为响应式](./doc/io.md#让fetchqueue成为响应式)\n  - [更多的例子见单元测试,测试要详细的多](./doc/io.md#更多的例子见单元测试测试要详细的多)\n  - [衍生hooks](./doc/io.md#衍生hooks)\n- [Task 轮训请求的控制](./doc/io.md#task-轮训请求的控制)\n  - [参数](./doc/io.md#参数)\n  - [返回值](./doc/io.md#返回值)\n    - [停止轮训](./doc/io.md#停止轮训)\n    - [获取轮训结果](./doc/io.md#获取轮训结果)\n    - [获取轮训参数](./doc/io.md#获取轮训参数)\n  - [一个简单的例子](./doc/io.md#一个简单的例子)\n- [makeAsyncIter 分页api的迭代管理](./doc/io.md#makeasynciter-分页api的迭代管理)\n  - [返回类型](./doc/io.md#返回类型)\n  - [一个简单的例子](./doc/io.md#一个简单的例子-1)\n  - [控制多资源，内部状态重置](./doc/io.md#控制多资源内部状态重置)\n  - [中断之前的请求](./doc/io.md#中断之前的请求)\n  - [返回类型的约束](./doc/io.md#返回类型的约束)\n  - [在vue2 options api中使用](./doc/io.md#在vue2-options-api中使用)\n  - [在小程序中使用](./doc/io.md#在小程序中使用)\n    - [最小无限滚动加载收藏的例子](./doc/io.md#最小无限滚动加载收藏的例子)\n    - [在ts/js中获取asyncIter的状态](./doc/io.md#在tsjs中获取asynciter的状态)\n    - [在wxml中获取asyncIter的状态](./doc/io.md#在wxml中获取asynciter的状态)\n      - [通过设置回调来实现状态变化时更新 setStateUpdatedCallback](./doc/io.md#通过设置回调来实现状态变化时更新-setstateupdatedcallback)\n      - [简写方式 bindPage](./doc/io.md#简写方式-bindpage)\n    - [如何知道asyncIter引发的界面修改完成时机](./doc/io.md#如何知道asynciter引发的界面修改完成时机)\n  - [常用场景的使用](./doc/io.md#常用场景的使用)\n    - [antd表格翻页](./doc/io.md#antd表格翻页)\n    - [无限滚动](./doc/io.md#无限滚动)\n- [useInfiniteScrolling 无限滚动](./doc/io.md#useinfinitescrolling-无限滚动)\n  - [探底触发](./doc/io.md#探底触发)\n  - [交叉触发模式](./doc/io.md#交叉触发模式)\n  - [](./doc/io.md#)\n  - [hooks](./doc/io.md#hooks)\n- [useAntdListPagination / GeneralPagination  翻页管理](./doc/io.md#useantdlistpagination--generalpagination--翻页管理)\n  - [使用参考](./doc/io.md#使用参考)\n\n##  其余不好分类的函数\n- [deepComputed](./doc/other.md#deepcomputed)\n  - [主要的使用场景](./doc/other.md#主要的使用场景)\n  - [性能相关](./doc/other.md#性能相关)\n  - [需要注意的问题](./doc/other.md#需要注意的问题)\n    - [如果发现修改了值但setter没被调用](./doc/other.md#如果发现修改了值但setter没被调用)\n    - [调用了一次值的函数(例如Array::splice)，但是setter被多次调用？](./doc/other.md#调用了一次值的函数例如arraysplice但是setter被多次调用)\n    - [原因](./doc/other.md#原因)\n    - [解决方法](./doc/other.md#解决方法)\n- [deepComputedEffect 更好的deepComputed](./doc/other.md#deepcomputedeffect-更好的deepcomputed)\n- [deepComputedPick 执行后二值之间仍然会双向同步的pick](./doc/other.md#deepcomputedpick-执行后二值之间仍然会双向同步的pick)\n- [events/typedEventEmitter 类型安全的EventEmitter](./doc/other.md#eventstypedeventemitter-类型安全的eventemitter)\n- [image/getImageUrl 从下厨房用的图像结构构造url](./doc/other.md#imagegetimageurl-从下厨房用的图像结构构造url)\n- [assigIncrId 生成一个全局自增id](./doc/other.md#assigincrid-生成一个全局自增id)\n- [unid/typedID/ID 使用symbol实现的ID生成器](./doc/other.md#unidtypedidid-使用symbol实现的id生成器)\n- [delay,delayFn 延时，推迟控制流执行](./doc/other.md#delaydelayfn-延时推迟控制流执行)\n- [promise2ref promise转成ref](./doc/other.md#promise2ref-promise转成ref)\n- [promiseSetRef 在promise完成时设置某个ref](./doc/other.md#promisesetref-在promise完成时设置某个ref)\n- [momentConvert 一个函数实现下厨房常用的多种时间转换](./doc/other.md#momentconvert-一个函数实现下厨房常用的多种时间转换)\n\n##  类型及类型推导辅助相关\n- [globalComponents](./doc/type.md#globalcomponents)\n- [DeepReadonly转换一个类型为深度只读](./doc/type.md#deepreadonly转换一个类型为深度只读)\n  - [仅使用类型](./doc/type.md#仅使用类型)\n  - [也可以使用这种方式](./doc/type.md#也可以使用这种方式)\n- [ok 先验条件断言](./doc/type.md#ok-先验条件断言)\n- [thruthy 真值断言](./doc/type.md#thruthy-真值断言)\n- [Columns 描述antd表格结构的类型](./doc/type.md#columns-描述antd表格结构的类型)\n- [Image 下厨房的图像结构](./doc/type.md#image-下厨房的图像结构)\n- [WithRequired 将对象部分字段转为不可空](./doc/type.md#withrequired-将对象部分字段转为不可空)\n- [customPropType vue props用于推导自定义类型的辅助函数,使用interface风格写props](./doc/type.md#customproptype-vue-props用于推导自定义类型的辅助函数使用interface风格写props)\n\n##  本库的vue3组件\n- [GeneralPagination 翻页器和相关hook](./doc/vue3components.md#generalpagination-翻页器和相关hook)\n- [SplitView 支持鼠标拖拽调整的视图分割](./doc/vue3components.md#splitview-支持鼠标拖拽调整的视图分割)\n  - [props](./doc/vue3components.md#props)\n  - [例子](./doc/vue3components.md#例子)\n- [SearchSelect 支持搜索的选择，追求尽可能少的代码来描述](./doc/vue3components.md#searchselect-支持搜索的选择追求尽可能少的代码来描述)\n  - [props](./doc/vue3components.md#props-1)\n  - [例子](./doc/vue3components.md#例子-1)\n\n##  vuex相关的\n- [mutation 生成mutation函数的辅助函数](./doc/vuex.md#mutation-生成mutation函数的辅助函数)\n- [VuexPersistence 用于持久化的vuex插件](./doc/vuex.md#vuexpersistence-用于持久化的vuex插件)\n  - [feature](./doc/vuex.md#feature)\n  - [最小化例子](./doc/vuex.md#最小化例子)\n\n<!--docinsert-->\n# 开发\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn\n....\n```\n## 使用dev-watch开发新功能及debug\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\" // 直接在命令行里输入pwd获取\n  }\n}\n```\n`symlink`指向你开发&debug用的项目，再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是，这个即时编译只针对esm构建可用。且关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 一些需要注意的地方\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验(setup的更好，直接defineProps)\n2. 如果需要返回一个外部不可修改的对象可以使用`deepReadonly`\n3. 修改文档后使用vscode的markdown in one更新所在文件的目录，然后使用`yarn gen-contents`生成合并的目录写入到readme<img width=\"623\" alt=\"image\" src=\"https://user-images.githubusercontent.com/25872019/179443451-6c974bf3-18d8-463f-a4df-1dcb0f787086.png\">\n4. 尽可能足够的单元测试\n5. 如果修改了组件相关及时修改vetur下的文件，及volar所使用的`src/globalComponents.ts`\n6. 版本号修改参考https://semver.org/lang/zh-CN/\n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n# 进一步优化\n1. 替换掉moment，体积又大还不支持tree-shaking\n","readmeFilename":"README.md","gitHead":"96afd557a062d88cfd3f6ad1c5272197c8832c60","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.7.11","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-Qgvlg28Fjt598Y+ukbxKX0EN5iRgPR6V2AoTo4bxKfdlxv0LZzdBANWbwBEWFhSSqSe16/7JvDDUsaL1hn2nPA==","shasum":"71309b29da38ddd213aa0696f7cf781919d4f4a7","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.7.11.tgz","fileCount":150,"unpackedSize":243450,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF4q7STeQPiqK+w3v8G4BQBee2Fy5DOKgeC65bWcWjCsAiEAz0ZGmoLDUTq0qSkGs82kLulV8gJQBOMAWbWXZPmSomA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4ftCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrKHg//fWNKcBUVb7wn+BTzZLSbmNYlBZ0o5eTC4SFPU/C0/pi9GlJt\r\nx2Ay9OdeTDpW1nYabWi+EuzQ1VKpPpu10mHR/56XUwoOkr1/gdwATZwBQFs8\r\n5cAeScqdBPLQkicXnc3cVEdKmWLDWkZNfju3wGbU7L67yBSalD/ixYLrGsL/\r\ngOoMXrYP5T7Kvzji0Z48gfg3Z+w2PjMQsqkFshwMNcf68UjdwKW9Oi7Botnh\r\nFx/IW7E7i6JOo6SQwXKU2iaoBn4+pBbSrffqWNkx7owy5Uk+uaAw2zARw8J5\r\n4yzKvEP49IBvP2pCTZBwdXtYQ1pJJB7MeTZL9a+pSi7x71vz4UMmlKYue3/G\r\nXBGRqBwN70MIX6wgbLWmYkBdoT0TQtvisWp3UGgbDjA8XxhDh2wBgFaFbmj9\r\nYjjPOG1l1rxSx0URKOILwq4Owbpd1/Z0u3jM6VjRb0mazRYCz0X8UcFFAJCu\r\n2T0ho+Cdloi1CU/b/5j69phGwdQ2UrDlyNpKF1nH3KCm8COATop6+tvUb+dF\r\nfiOyURdPoGZmR0zMgRWSOEQz4GbhmtR3tuLNrQPjA9eIKTZjhDVWngSlJCct\r\nI7cFbIjwkIpP8lW5tijlhcnMbC/+egbE0gM0A50fjL/Hc4p2qTtwvOtLSG66\r\naVTsPF/IxvgSFICrpzqTOKPb4IxDJbS9AOI=\r\n=DM/S\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.7.11_1675754306368_0.2836241018687158"},"_hasShrinkwrap":false},"0.7.12":{"name":"vue3-ts-util","version":"0.7.12","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","events":"^3.3.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"96afd557a062d88cfd3f6ad1c5272197c8832c60","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.7.12","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-t4be2/FD5SoGrgKibWilOe92fhFQ1gFsUMJ40nrynVLVto23bWPuvYzTYHU/PhsrQHWpxyaRUjvVolDQy7VXUw==","shasum":"dd055e9dcef3c7b3c617e6118d75137af77878e8","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.7.12.tgz","fileCount":150,"unpackedSize":246906,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBfIYF5JjBGz7G4z50ZJfNhZmwXtPD96qaCuoEXHyhtuAiEAoyGzsev9cTAa6dJe7gI9P9ph+pCOsscCkhifiSyzlPE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4f0iACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqugRAAgo2Ply0OMgSbc7ehv5xq/Jz7dtIjolsQBXoO5cfVgDON93E0\r\n2AVagitrJOPiy+xTTPK3hwsIITTItqORuIBQ+pQSqTYJfFd3pHvgnVTa9Xyq\r\n8izs99p2/pKe++dQ5nsULNbiJX6DPEPSLM5vba4MnnC4G5WRkWISXR2WCT0A\r\nSB85Cti+WqiN2qYkuaPLrFUcoQbTI4sFyVIyy/SM0GdeXg374b4osb6SiXmK\r\nvwtU3v6SNsHY61QmyS2I8CUMMekohb0Q9LwzgVBZ7qnXLcuEeLrZSst3VfdM\r\nZF5t5DMdhJG9ybjNnuDwcQyvz02H+vKeVy+0Et+39kc+HAhIH7vefgj0mbY4\r\nRVLNbO+/Im20h0+wveO7O1W4CnVMkcRR042ICMM2jn7lpf4iYZ4Ob++7gYAe\r\nMBT+fbvYcwRhCRsXsy5MOAOCiLXIQ3ncB+BzIdOOfSsZajIwbcaD7i0EFfH+\r\nocMpl4dUWFwcjXfFukuD797jMgVvqtuhuppx2zGbHh6XrKx06Lby3s0Zz7ff\r\nps0J/VJovdBxhXWelpxgqamzpE/TUGqUwfMbExyEBrolSMjw6hLZ7JfMDOYf\r\nKXIWee/vGmgdNN+dleaeER1PUaPI1jD93IAR/UduVGec1mCEAqaJ3zwoRLAm\r\n0MIJNFfNLYhtPFRGPPh/KjJrtQuczKsglgw=\r\n=OML6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.7.12_1675754786199_0.024955911719308554"},"_hasShrinkwrap":false},"0.8.0":{"name":"vue3-ts-util","version":"0.8.0","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","events":"^3.3.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"96afd557a062d88cfd3f6ad1c5272197c8832c60","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.8.0","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-OP7KO/UXm5En2OUIXEc0SCM5Dm2XNtjaAjipEqQdE1VQcPL2eYnLKpDOe4qpj5uIciXFdwupehT5YuSmnmcb/Q==","shasum":"6085274806a7e3cbc56650d7edef7c7c8c5540d2","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.8.0.tgz","fileCount":150,"unpackedSize":247798,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGpl9yYEvXYRbpeg3rmyNGE7x4UgPd4wklCXAXDvt0uUAiEAvPiCFqrlJxn4x/KXxc99f73FTlxNtTAgK9XE82Jynqo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4gBdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrAqQ/9Eg3r1K5Jb8eDwhxdU91Q/tUktvboHDkjsKmSMhvliddLTfE8\r\nPDCKljTrxYttlmj+qrwgASCET4Xadn/HRFkrN6Yf7Sf1a2IIFp7ogfgtlXMZ\r\nPyYKHFLL+KNkYJTOfMfRg5FZNXOW3WObO4cx3fKSc8/nhMe2vxc95S5RRI1S\r\nzgKJJALZD3qkBBdofawtfeU5b21R6mlMnoqSMd9GcHe7W/UrzBexK5fOT1HU\r\nvvGzzh41gshpR/J6VRjU65zCc0S4/KOVl3mPUjEz9jIA5cpRVLw/tOvtffLG\r\nSqO6+jXib5jrpIVBws8PYpUDmcW7gN1Tgef5wof4Qas225oFuJ/T2JGeLmUS\r\n+Rlj/lwAO3td7yrIs1BgY6IX3MTVNfour0Wc6HewN/7mu/nfU66lzf5l5NJ0\r\nbZ+8HWhhIYTXfQ8Dly1iCVidqTpoF9N3i8bDzjWruJuXRrwmLBF0i+fXnqXi\r\nlrLd3HUrKIW3lreagIse6AM1Z1QtuWO0AHyzIEwcAjPFU2cdRtfl6HelQdgI\r\nu38mAz7ZObBHcAbK25nS4090s/RKOzFyIgRYQPPFd11VpG+nKpiMbgV5fQpq\r\nGC/5gC47FuT/KOuYrgRxBap7hRN2j8ZGa78kaAmCSty0nL5+ddhTG4WPge9x\r\nklGcZO7rvS4mtwlwZm5KrsawRk+1RmxrO/A=\r\n=LqXy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.8.0_1675755613298_0.5545705822462199"},"_hasShrinkwrap":false},"0.8.1":{"name":"vue3-ts-util","version":"0.8.1","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","eventemitter3":"^5.0.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"a5bbff778625096ccab465e2bd44e1dcee1f5163","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.8.1","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-mOaXvRQlpmtOObJg3w/OvslFH/AeIjFIvXxJahgNwol6B8HhO7YBt95C8cTri6DEeDAVpCeWK9ixcE8jgqg8OA==","shasum":"57188fd49a4465a7a67e07094d68af4d99d1936f","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.8.1.tgz","fileCount":150,"unpackedSize":248047,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCKuzSTPfTp4GQWxBTEFQzbpxac1xfA/6ZeLA+148SNqwIgE+tMqidDov9Ma2ZEogIteRubZLbE9rZ5EwxIbLjl2B0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj70nYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr/9hAAlbbebtfwZf2XguZ/dKMl4sIJTYr78Ftts5kkPipjcSb10eOW\r\n23LUrscM/6Ra8ut5j9g0eUJnzDhEBXdIAQjnQTFwHqpSHva5ZXAD1M5Jm67G\r\nvPv/zuaVF78Kn89cHQE95KWpfkRRONNQCIgE8PXjtHmPOSOiZ8/MlIOQaen6\r\n8pnOj3kWk7ePNWGibMIhOfwOkJhzWOVaD92f7Y6mAkU6EtG9+A3IgYCfI5tW\r\nJV4M/v3Nk5RUhBteT/KlQAy/LsNhFzoirNHCcxP6WSHoImZPp39D9o84pEo6\r\ny6KhBvmWB4ngNPw5hm3yzLjoJHOXKFImtlE28w7jsoVHJQxVYj67ylRilhYB\r\n7m3+l2zRtpESC0ldcrP3MS83g8hYstNRgmOv1v4z4uc+xFDSuslnC91mx7Dc\r\nrlxxUO7MoKV4L+FR2/fstZHCk2ovSOxmXxdIikG+dBqo6lC0wWpXwPUymmvc\r\nKwREjBs1mbM2F9GeDQLloBw4tlWQRhpkMgyES5xHt/ru42xibYSDdsgR9Lnn\r\nzEJXVd9g+sUM9hurnriL6/D/zQL/ZrERicJSrv6wAsGcXFGwXMmMIp18QwSZ\r\nC1XQql88UUtxYPK0TNjlDrwaXXvyXEIZPKEPXevVhbBObPVXZi2/A74K8ign\r\nFI8khZE8zXXAtjgpvMzg92cO03+85tG+E2I=\r\n=4zwa\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.8.1_1676626391717_0.7877519645865112"},"_hasShrinkwrap":false},"0.8.2":{"name":"vue3-ts-util","version":"0.8.2","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","eventemitter3":"^5.0.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"bd45c6ad2b32349208b484e3056e45eb789ba54a","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@0.8.2","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-u3NCzJSt9eICW9KmODr9kJB8W9YQd2p/LCFPvBAfLS77MzNUTa6IwmgXY/YCKXWP+2y8eNLkPUzwBl+5Xze2LA==","shasum":"d0d9dfa6077c65bd124ba5fcf0e4ed32906be3ab","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-0.8.2.tgz","fileCount":150,"unpackedSize":248031,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICOxWaIRh+uDWjruBrzcZH+6pmnWTEUH4WafwmZ7ClPFAiAvr8iBTFUf2r3eYaQK+gllcHfTsw4NwZEG2xy8SDjD+g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj706BACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpR2Q/+J//aUzl24rvg3vd1fh5wwYx5baPKvG48iUe0ZYSJBzIUki5q\r\nQqQutURVR2C/o0Okveq07G0kZP0P3HE183du/1ufGuoa9MLLPSl0lqOHtcbt\r\n+SiAGzcPuc4Z5K8VSa6p+gHb/IZmCk55TiECIOnF7GyNsPEHDUOi9h3tPzrM\r\nlrrBjMxdgBi2vmYNtFxHPqhB2OrspTI3bVWVQSXkx54sewhxq0pdfaJx45zM\r\n50mGs92KdpmJuWQcNfuu1xS1jGTI/J8MdxiCuChzrB0aXreJFaJtcppxcF20\r\nua3Pg1okzuMmSp/h9rYtTui2GjP2gr0q1UN5Iqbbko7BEQFRHHc8haH1EN3+\r\nLM67Toe5GzwWWlKh62h3bdBFDJtVR7MQ5twljFcRY7vKFvTx8Gn74O0OS2tM\r\nuT83uihzeqBPVad0yUVBUt3VvDCe7gI2XmfPUEdiGy/j7wqlQtwjYUhfc5lq\r\n/na6jKoZ3xvDc4TqefasEuCmSI2ycaMe0uf6zGJtl2QdghaiaVyEK793LsNi\r\nrxL6Iv75/lF+4tqmEFzg3LoU/YKRurxbqRBt+06hcuZuQ4tPKaQsZKtvE/73\r\n1ronF9UBbO7lbq5LulgGni/+28BGB0rhUPoQeHJWCY9JuMfnUarL/sOf+xO8\r\nOSaYnDMsg5PfyD0qSYX5SwgVXBmLk+K16+o=\r\n=SRbh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_0.8.2_1676627585119_0.3205246804021118"},"_hasShrinkwrap":false},"1.0.0":{"name":"vue3-ts-util","version":"1.0.0","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","eventemitter3":"^5.0.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"d00338c41f6a4e405b92f9c750332bf558960b4c","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@1.0.0","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-G3lRTBon2R6vFthFK0r0ZGDcLmOE4jA6ryrx0PoVC3/oPSETi//YVC8HhM3praqKA/QFYGou4tbXUcHbHHtvtA==","shasum":"9d1e0feb1962cca60021d4460c277bd4fd8c9fec","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-1.0.0.tgz","fileCount":150,"unpackedSize":249352,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHj/eJZX1og491MrqH2/nkcQTTyFG7mIEKZYyK6o4zSVAiB4IgE44frUPxhjgZTFAZtc2pOeFNPZGPebVeqnMC8JHA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkU4xqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpGdw//W9yGr6QyVUNi2sO7lKFwriUmMPH6oYdgV5vvcFWQfj2Jppac\r\n5YetIDluUXII+OYBnqSGQIFFAU0CMJHJ9rOB0yv4mrhyQWdz+MdnyUEfDV0o\r\nI12rHZawTw6nxiRE75+1VOfyem0JEY1ex5wdRNmzd292U5ZpYtDX3buCgYgM\r\n1f48JEVYFpFdnA+fr8vhzpPGZSqNk3b8Z7wXnVoAmEtQY/yDYWpyi4+8ADBo\r\nn4BMVhVXsY01/0bb0am2CFYmgvvT8YgT5DfFfHt0Uc0Vc4bmWqEITYMuunT7\r\nKKLgPygzGg528h6hFOvJr5ZbIBgU0YbWh6QSNJmZDX2bwbGnSagbqK2n5R9i\r\nKgBaNlul6fkqx8roIRE5VFu/KhZj0UG/b91m/EexVXR5U3UM+wt+fwMnyCzV\r\n1hR5XwqWxOelmWk+nXQLPF8Lr03a8naLbkg6P6RrTg////VuQ3xm62Ayiwnc\r\nj7WFH2efcI1x5DtSNEvDNOcbasm/yOydswzoNFY2jH0+sgIBfIlnCMXv3oen\r\no2yxssGVYA+qF+3L9Q8d6YJ0dmcW/ZRMyLSMcVmHJ10BGA+IFBT+Fm9COeP+\r\nU6QnH2XETjiF80S1zMy3CMaW/WvZV53PfrSJxlOQ6de0I9m1DyZoOT9kMQ2s\r\nIPbxDEn8FcLZ/H2NJ0AjxGWhwf5hE5nAHcs=\r\n=hgrU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_1.0.0_1683197033829_0.05483727364743207"},"_hasShrinkwrap":false},"1.0.1":{"name":"vue3-ts-util","version":"1.0.1","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","eventemitter3":"^5.0.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"21e1047a60fa9f886f9d62362c0f506d05fc37d1","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@1.0.1","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-rJcbX0h9rOTadQfnZgy/rOdzsR84rzmHXxIo33ofTLnD4ugKI3PmHKHfPn7Ps6o0JpA9KAg6FuzPpw/SxsH1ig==","shasum":"b3f53b5f19ab11d62f1dd3e51d9e46915e675c23","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-1.0.1.tgz","fileCount":150,"unpackedSize":252785,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYm6f3qC6o5Bwe2GK/MBYfU2SY8UxbegvEJb1bHQOPdgIhAIFnxz5xg+WvI/EmGU4s+PoyAx4qFQVMWIMVCqmGGKc5"}]},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_1.0.1_1683885818623_0.15062233633375022"},"_hasShrinkwrap":false},"1.0.2":{"name":"vue3-ts-util","version":"1.0.2","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"^3.0.0","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","eventemitter3":"^5.0.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"21e1047a60fa9f886f9d62362c0f506d05fc37d1","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@1.0.2","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-qAgAbIP0i3DJwpSBF5cP5MsGZ/Gxh9UtvHN++8xYj5sq+r2lJy6f6M9hc6+02lz5y/Ya+9Yk205gK7w9gcWBLA==","shasum":"b21ff355a5a8229f653d66976c3f197a88dfde1b","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-1.0.2.tgz","fileCount":150,"unpackedSize":251838,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDuXXe3OS7KzhT1HNSfcsAQDBAR/Wee5a0Kguy+KMGlvAiEAmoT8QNFwWEEhl2nqDDIXoJHfXAbN7P0Tki6arik7E7M="}]},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_1.0.2_1683886437664_0.3979913183686139"},"_hasShrinkwrap":false},"1.0.3":{"name":"vue3-ts-util","version":"1.0.3","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"3.2","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","eventemitter3":"^5.0.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n# 安装\n`yarn add vue3-ts-util`\n\n> 按需可能会要求对等依赖 vue vuex vue-router，执行yarn add\n\n# 用法\n见文档[doc](doc)\n目录见下方\n\n<!--docinsert-->\n##  vue3 composition api的hook\n- [useDomRect hook风格获取dom的rect](./doc/hooks.md#usedomrect-hook风格获取dom的rect)\n- [useEmit 用于在hook内emit](./doc/hooks.md#useemit-用于在hook内emit)\n- [useFetchQueueHelper/useStrictQueue/useRetryableQueue fetchqueue的hook wrapper](./doc/hooks.md#usefetchqueuehelperusestrictqueueuseretryablequeue-fetchqueue的hook-wrapper)\n- [useInfiniteScrolling 无限滚动](./doc/hooks.md#useinfinitescrolling-无限滚动)\n- [useResizeable 用于鼠标拖拽调整调整某个元素的大小位置](./doc/hooks.md#useresizeable-用于鼠标拖拽调整调整某个元素的大小位置)\n- [useStackAlloc hook风格管理object url分配](./doc/hooks.md#usestackalloc-hook风格管理object-url分配)\n- [useWatchDocument `document.addEventListener`的hook wrapper](./doc/hooks.md#usewatchdocument-documentaddeventlistener的hook-wrapper)\n- [createTypedShareStateHook/useHookShareState 生成一个实例内进行状态共享的hook](./doc/hooks.md#createtypedsharestatehookusehooksharestate-生成一个实例内进行状态共享的hook)\n- [useRouteId 路由参数id获取，合法判断](./doc/hooks.md#userouteid-路由参数id获取合法判断)\n\n##  输入输出，网络请求相关的\n- [FetchQueue 自动管理loading等的请求控制容器](./doc/io.md#fetchqueue-自动管理loading等的请求控制容器)\n  - [构造参数](./doc/io.md#构造参数)\n  - [类方法/属性](./doc/io.md#类方法属性)\n  - [pushAction返回的任务实例](./doc/io.md#pushaction返回的任务实例)\n  - [例子](./doc/io.md#例子)\n    - [最小化](./doc/io.md#最小化)\n    - [排队执行，失败自动重试](./doc/io.md#排队执行失败自动重试)\n    - [取消任务，监听任务被取消](./doc/io.md#取消任务监听任务被取消)\n    - [给任务添加标识/额外信息](./doc/io.md#给任务添加标识额外信息)\n    - [让FetchQueue成为响应式](./doc/io.md#让fetchqueue成为响应式)\n  - [更多的例子见单元测试,测试要详细的多](./doc/io.md#更多的例子见单元测试测试要详细的多)\n  - [衍生hooks](./doc/io.md#衍生hooks)\n- [Task 轮训请求的控制](./doc/io.md#task-轮训请求的控制)\n  - [参数](./doc/io.md#参数)\n  - [返回值](./doc/io.md#返回值)\n    - [停止轮训](./doc/io.md#停止轮训)\n    - [获取轮训结果](./doc/io.md#获取轮训结果)\n    - [获取轮训参数](./doc/io.md#获取轮训参数)\n  - [一个简单的例子](./doc/io.md#一个简单的例子)\n- [makeAsyncIter 分页api的迭代管理](./doc/io.md#makeasynciter-分页api的迭代管理)\n  - [返回类型](./doc/io.md#返回类型)\n  - [一个简单的例子](./doc/io.md#一个简单的例子-1)\n  - [控制多资源，内部状态重置](./doc/io.md#控制多资源内部状态重置)\n  - [中断之前的请求](./doc/io.md#中断之前的请求)\n  - [返回类型的约束](./doc/io.md#返回类型的约束)\n  - [在vue2 options api中使用](./doc/io.md#在vue2-options-api中使用)\n  - [在小程序中使用](./doc/io.md#在小程序中使用)\n    - [最小无限滚动加载收藏的例子](./doc/io.md#最小无限滚动加载收藏的例子)\n    - [在ts/js中获取asyncIter的状态](./doc/io.md#在tsjs中获取asynciter的状态)\n    - [在wxml中获取asyncIter的状态](./doc/io.md#在wxml中获取asynciter的状态)\n      - [通过设置回调来实现状态变化时更新 setStateUpdatedCallback](./doc/io.md#通过设置回调来实现状态变化时更新-setstateupdatedcallback)\n      - [简写方式 bindPage](./doc/io.md#简写方式-bindpage)\n    - [如何知道asyncIter引发的界面修改完成时机](./doc/io.md#如何知道asynciter引发的界面修改完成时机)\n  - [常用场景的使用](./doc/io.md#常用场景的使用)\n    - [antd表格翻页](./doc/io.md#antd表格翻页)\n    - [无限滚动](./doc/io.md#无限滚动)\n- [useInfiniteScrolling 无限滚动](./doc/io.md#useinfinitescrolling-无限滚动)\n  - [探底触发](./doc/io.md#探底触发)\n  - [交叉触发模式](./doc/io.md#交叉触发模式)\n  - [](./doc/io.md#)\n  - [hooks](./doc/io.md#hooks)\n- [useAntdListPagination / GeneralPagination  翻页管理](./doc/io.md#useantdlistpagination--generalpagination--翻页管理)\n  - [使用参考](./doc/io.md#使用参考)\n\n##  其余不好分类的函数\n- [deepComputed](./doc/other.md#deepcomputed)\n  - [主要的使用场景](./doc/other.md#主要的使用场景)\n  - [性能相关](./doc/other.md#性能相关)\n  - [需要注意的问题](./doc/other.md#需要注意的问题)\n    - [如果发现修改了值但setter没被调用](./doc/other.md#如果发现修改了值但setter没被调用)\n    - [调用了一次值的函数(例如Array::splice)，但是setter被多次调用？](./doc/other.md#调用了一次值的函数例如arraysplice但是setter被多次调用)\n    - [原因](./doc/other.md#原因)\n    - [解决方法](./doc/other.md#解决方法)\n- [deepComputedEffect 更好的deepComputed](./doc/other.md#deepcomputedeffect-更好的deepcomputed)\n- [deepComputedPick 执行后二值之间仍然会双向同步的pick](./doc/other.md#deepcomputedpick-执行后二值之间仍然会双向同步的pick)\n- [events/typedEventEmitter 类型安全的EventEmitter](./doc/other.md#eventstypedeventemitter-类型安全的eventemitter)\n- [image/getImageUrl 从下厨房用的图像结构构造url](./doc/other.md#imagegetimageurl-从下厨房用的图像结构构造url)\n- [assigIncrId 生成一个全局自增id](./doc/other.md#assigincrid-生成一个全局自增id)\n- [unid/typedID/ID 使用symbol实现的ID生成器](./doc/other.md#unidtypedidid-使用symbol实现的id生成器)\n- [delay,delayFn 延时，推迟控制流执行](./doc/other.md#delaydelayfn-延时推迟控制流执行)\n- [promise2ref promise转成ref](./doc/other.md#promise2ref-promise转成ref)\n- [promiseSetRef 在promise完成时设置某个ref](./doc/other.md#promisesetref-在promise完成时设置某个ref)\n- [momentConvert 一个函数实现下厨房常用的多种时间转换](./doc/other.md#momentconvert-一个函数实现下厨房常用的多种时间转换)\n\n##  类型及类型推导辅助相关\n- [globalComponents](./doc/type.md#globalcomponents)\n- [DeepReadonly转换一个类型为深度只读](./doc/type.md#deepreadonly转换一个类型为深度只读)\n  - [仅使用类型](./doc/type.md#仅使用类型)\n  - [也可以使用这种方式](./doc/type.md#也可以使用这种方式)\n- [ok 先验条件断言](./doc/type.md#ok-先验条件断言)\n- [thruthy 真值断言](./doc/type.md#thruthy-真值断言)\n- [Columns 描述antd表格结构的类型](./doc/type.md#columns-描述antd表格结构的类型)\n- [Image 下厨房的图像结构](./doc/type.md#image-下厨房的图像结构)\n- [WithRequired 将对象部分字段转为不可空](./doc/type.md#withrequired-将对象部分字段转为不可空)\n- [customPropType vue props用于推导自定义类型的辅助函数,使用interface风格写props](./doc/type.md#customproptype-vue-props用于推导自定义类型的辅助函数使用interface风格写props)\n\n##  本库的vue3组件\n- [GeneralPagination 翻页器和相关hook](./doc/vue3components.md#generalpagination-翻页器和相关hook)\n- [SplitView 支持鼠标拖拽调整的视图分割](./doc/vue3components.md#splitview-支持鼠标拖拽调整的视图分割)\n  - [props](./doc/vue3components.md#props)\n  - [例子](./doc/vue3components.md#例子)\n- [SearchSelect 支持搜索的选择，追求尽可能少的代码来描述](./doc/vue3components.md#searchselect-支持搜索的选择追求尽可能少的代码来描述)\n  - [props](./doc/vue3components.md#props-1)\n  - [例子](./doc/vue3components.md#例子-1)\n\n##  vuex相关的\n- [mutation 生成mutation函数的辅助函数](./doc/vuex.md#mutation-生成mutation函数的辅助函数)\n- [VuexPersistence 用于持久化的vuex插件](./doc/vuex.md#vuexpersistence-用于持久化的vuex插件)\n  - [feature](./doc/vuex.md#feature)\n  - [最小化例子](./doc/vuex.md#最小化例子)\n\n<!--docinsert-->\n# 开发\n> rollup-plugin-vue已经没维护，出现问题搞不定可以考虑vite\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn\n....\n```\n## 使用dev-watch开发新功能及debug\n大部分功能使用单元测试即可完成。\n\n如果想要在其他项目中进行开发测试可以这么操作,以一个vite项目为例\n### 修改vite配置，使其能监听变化\n不需要实时watch的可以跳过\n```ts\nimport { defineConfig, searchForWorkspaceRoot, UserConfig } from 'vite'\n\n\nexport default defineConfig({\n  optimizeDeps: {\n    exclude: ['vue3-ts-util'] // 监听这个包的变化\n  },\n  server: {\n    watch: {\n      ignored: ['!**/node_modules/vue3-ts-util/es/**'],\n    },\n    fs: {\n      allow: [\n        searchForWorkspaceRoot(process.cwd()),\n        // 自定义规则\n        '/Users/xxxxxx/project/vue3-ts-util' // 本项目地址\n      ]\n    }\n  }\n})\n```\n### 创建符号链接，启动编译监听\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\" // 直接在命令行里输入pwd获取\n  }\n}\n```\n`symlink`指向你开发&debug用的项目, 上面这个操作也可以通过npm link/yarn link 等代替,但是我感觉还不如直接用这个symlink, see https://github.com/yarnpkg/yarn/issues/1957。\n\n再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 一些需要注意的地方\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验(setup的更好，直接defineProps)\n2. 如果需要返回一个外部不可修改的对象可以使用`deepReadonly`\n3. 修改文档后使用vscode的markdown in one更新所在文件的目录，然后使用`yarn gen-contents`生成合并的目录写入到readme<img width=\"623\" alt=\"image\" src=\"https://user-images.githubusercontent.com/25872019/179443451-6c974bf3-18d8-463f-a4df-1dcb0f787086.png\">\n4. 尽可能足够的单元测试\n5. 如果修改了组件相关及时修改vetur下的文件，及volar所使用的`src/globalComponents.ts`\n6. 版本号修改参考https://semver.org/lang/zh-CN/\n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n","readmeFilename":"README.md","gitHead":"94fa56812e87cdb51cdb0f5faa6e607f3f34253c","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@1.0.3","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-a2CbuiFcYIUQRz2k3ZmqjCudiLrYmBW6tSy/Cq9eSHv6hzT5j7dBcu1b/BQT7xp7GsIoiqxWebsYtLDdJa3ypQ==","shasum":"1c92be2331340b5e3aeb80f20d2df41811a96058","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-1.0.3.tgz","fileCount":150,"unpackedSize":250659,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2ULBDNX6w/+rYGDZWDn2LfPeCpqosPSWsjtmArWa/qAIgCdO0Okuxr3KDcKfoNl4EQqz9te5gBMXJf9MiWbZzF1g="}]},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_1.0.3_1684137972639_0.9976850171022937"},"_hasShrinkwrap":false},"1.0.4":{"name":"vue3-ts-util","version":"1.0.4","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"3.2","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","eventemitter3":"^5.0.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"94fa56812e87cdb51cdb0f5faa6e607f3f34253c","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@1.0.4","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-dXvnuAPC6JqU6ekuL5gIkrDackE1hd1Qc7/VFn7tpdEoiM5YaKw5EB9MjjybvmrJObzEbEMouXnAvARlUp90Dg==","shasum":"57d95fc12c63d95b69e09b048fbf032793ead612","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-1.0.4.tgz","fileCount":150,"unpackedSize":250659,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSfldr60pYH/51qeMEpnXYa/rPxn1/zNdPipVYCYD4rAIgad1h9uWWPUi0WkOjjQaDmJm3yYHI9nFz9b8PQx8UPpk="}]},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_1.0.4_1684141856378_0.2630852338087655"},"_hasShrinkwrap":false},"2.0.0":{"name":"vue3-ts-util","version":"2.0.0","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"3.2","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","eventemitter3":"^5.0.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"2bfff67b66a0cc0f9f8bdd54b3e5866cc8b2b790","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@2.0.0","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-BkU2fFs7fmy9N28v2ywCxufSNl+rvRluOVsNyVcAO6k7pHxpuFJf0UqTI75KD3sgO3IF0YoYe9kNanmti8fqAA==","shasum":"b5d3b45df9da2024b71584f419d8bb3fa1468fd5","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-2.0.0.tgz","fileCount":150,"unpackedSize":252251,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFfeKjarXAytjD+/jCFTLj7PpPUlq0at5o+tZOxtBwFHAiBRH1EnQ3h4pEaUGzph+SGXUXBipU2H/ON3/or1DwrLAw=="}]},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_2.0.0_1686712199804_0.572608952325826"},"_hasShrinkwrap":false},"2.1.0":{"name":"vue3-ts-util","version":"2.1.0","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"3.2","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","eventemitter3":"^5.0.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"cd03be776fd8cc2f6b6c3481d90e5358fbf89a13","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@2.1.0","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-RbQz3+jCATUBTShlGKKVNxu7kZVS39/5Z7c9knbh3j76kp+VgweMnOOlZs/el+1Uz/owW8JQXoroX+H6KUJgnw==","shasum":"71831f3195c06e2e075f99dd71a4b015963105cc","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-2.1.0.tgz","fileCount":153,"unpackedSize":253934,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTNjI/VbXvndL9/0ZtJo4a94CR3Kd7GJdgBDUlQrzLTQIgXVL3+5XW1nrd0Ly3GfgkLgbqRpMtBWy/MjTF77X+GPU="}]},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_2.1.0_1686731774482_0.6189300493999308"},"_hasShrinkwrap":false},"2.1.1":{"name":"vue3-ts-util","version":"2.1.1","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"3.2","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.7","eventemitter3":"^5.0.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"cd03be776fd8cc2f6b6c3481d90e5358fbf89a13","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@2.1.1","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-IajQIWVVGF8jjW9TcLvCOKbiiukvH3ISeIkktmRvmDaHjtwnvsd6VQ7PhLoBgyhha//B/fchdb0hj5ce6JNACw==","shasum":"8ce0ee603fe9a4508e77edf65dcbdf43467c6b83","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-2.1.1.tgz","fileCount":153,"unpackedSize":254325,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFTQ4z6IFUsoq1EB2OXu5QG0b/P1pjmdq+fjUocS8mr+AiEAvTcvDC9w/HEVMK42Tja84Sw9Ci5oUG7HotHX/ORwRoo="}]},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_2.1.1_1686733103364_0.9036684267975041"},"_hasShrinkwrap":false},"2.1.2":{"name":"vue3-ts-util","version":"2.1.2","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"3.2","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.8","eventemitter3":"^5.0.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"bd1d3feb77f2980c418cbf5aaa049625dc780d2c","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@2.1.2","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-feD75rV6HmptN9RpfGc5aAzXEO0zXZjV+bZnt7Y8O+yzHgomsAUIa36PWNVVGvWtHibzt1PPd8qFz0VBDz6ciw==","shasum":"d660bccd0c614dee6544206d367faba4557160a9","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-2.1.2.tgz","fileCount":153,"unpackedSize":253904,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVj0GwUOTKiD5BCADli2pD5bf1fejeWO0Q9tda1ntDawIhANxH5ABeUrnUJHrtrMHnX75IZ2SoC0Gqg8E2x1iwJzgz"}]},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_2.1.2_1686734059245_0.7722282555828204"},"_hasShrinkwrap":false},"2.1.3":{"name":"vue3-ts-util","version":"2.1.3","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"3.2","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.8","eventemitter3":"^5.0.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"613d9ab7a4820b2905095256b2503dc86f16d555","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@2.1.3","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-we2c2yqzZTDtODjb5bNYfYcmQSwWx0ASWGgIfzWXPTa1i6fDXh8qfHn4VRXpdbgw0OE294qOP8B4PShy/G62nQ==","shasum":"794e441909661b17bdaa89340d13a5d876c0d78a","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-2.1.3.tgz","fileCount":153,"unpackedSize":254018,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFqEjJSoTLP7tOgmyAtsqd8zElj30O1NgEJMUvtoThTAIhAIPDJ/wcfesI7s5UeO2U4P2q70GXn2Pbng9WiAu4s9i6"}]},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_2.1.3_1687161767030_0.18492891474953477"},"_hasShrinkwrap":false},"2.1.4":{"name":"vue3-ts-util","version":"2.1.4","main":"dist/index.js","module":"es/src/index.js","types":"es/index.d.ts","license":"MIT","sideEffects":["es/**/*.{vue,css}.js"],"devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/preset-env":"^7.14.8","@babel/preset-typescript":"^7.10.4","@rollup/plugin-babel":"^5.3.0","@types/jest":"^26.0.24","@types/ramda":"^0.27.44","@types/rollup-plugin-auto-external":"^2.0.2","@vue/babel-plugin-jsx":"^1.0.6","@vue/compiler-sfc":"^3.1.4","@webpack-cli/generators":"^2.2.0","ant-design-vue":"2","babel-jest":"^27.0.6","babel-loader":"^8.2.2","css-loader":"^6.0.0","jest":"^27.0.6","mini-css-extract-plugin":"^2.1.0","postcss":"^8.3.5","postcss-load-config":"^3.1.0","postcss-loader":"^6.1.1","prettier":"^2.3.2","rollup":"^2.53.2","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-styles":"^3.14.1","rollup-plugin-typescript2":"^0.30.0","rollup-plugin-vue":"^6.0.0","sass":"^1.35.2","sass-loader":"^12.1.0","style-loader":"^3.1.0","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.1.0","typescript":"^4.3.5","vue":"3.2","vue-loader":"^16.3.0","vue-router":"^4.0.0","vuex":"^4.0.0","vuex-dispatch-infer":"^0.7.3","webpack":"^5.44.0","webpack-cli":"^4.7.2"},"dependencies":{"dayjs":"^1.11.8","eventemitter3":"^5.0.0","lodash-commonjs-es":"^1.0.5","ramda":"^0.27.1"},"peerDependencies":{"ant-design-vue":">=2.0.0","vue":">=3.0.0","vue-router":">=4.0.0","vuex":">=4.0.0"},"vetur":{"tags":"vetur/tags.json","attributes":"vetur/attributes.json"},"scripts":{"build":"yarn clean && yarn rollup -c","clean":"rm -rf ./dist ./es","dev-watch":"ts-node --project tsnode.config.json scripts/index.ts --dev-watch","gen-contents":"ts-node --project tsnode.config.json scripts/index.ts --gen-contents","import-optimize":"ts-node --project tsnode.config.json scripts/index.ts --import-optimize","pre-release":"yarn build && yarn import-optimize && yarn test && nrm use npm","test":"NODE_OPTIONS=--unhandled-rejections=warn yarn jest","gen-vue-type":"ts-node --project tsnode.config.json scripts/index.ts --gen-vue-type"},"gitHead":"613d9ab7a4820b2905095256b2503dc86f16d555","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。","_id":"vue3-ts-util@2.1.4","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-pAls7RopgXXJLhvKiRw2ph+Rtyuoc7V0B8PcleS7mEofuLRdK35X/KbN/fEdhItWTwg6IHfXw9Z0ymEBBsUoGQ==","shasum":"d1d02fe8f2cd553c9b52c30f7e3daf107b770a2b","tarball":"https://registry.npmjs.org/vue3-ts-util/-/vue3-ts-util-2.1.4.tgz","fileCount":153,"unpackedSize":254050,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEhmomMIEpVycPgy9wceSn7lDt5cPd59Qv6oc8FiP0WAAiBwNz/fh5ral3Ka+jLCD6s2/5Wb2PWnQNZBn94Mz8F6ZA=="}]},"_npmUser":{"name":"zanllp","email":"qc@zanllp.cn"},"directories":{},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-ts-util_2.1.4_1687162184609_0.5331436649002808"},"_hasShrinkwrap":false}},"time":{"created":"2021-07-13T03:59:52.226Z","0.0.1":"2021-07-13T03:59:52.357Z","modified":"2023-06-19T08:09:44.955Z","0.0.2":"2021-07-13T06:42:48.821Z","0.0.3":"2021-07-13T06:49:24.626Z","0.0.4":"2021-07-13T06:52:17.635Z","0.0.5":"2021-07-13T06:55:44.992Z","0.0.6":"2021-07-13T07:27:14.917Z","0.0.7":"2021-07-13T10:02:07.058Z","0.1.0":"2021-07-14T02:41:43.900Z","0.1.1":"2021-07-14T02:56:07.191Z","0.1.2":"2021-07-14T07:52:19.680Z","0.2.0":"2021-07-19T02:45:59.784Z","0.2.1":"2021-07-19T03:44:31.980Z","0.3.0":"2021-07-20T09:44:59.910Z","0.3.1":"2021-07-21T03:48:34.715Z","0.3.2":"2021-07-21T09:18:08.373Z","0.3.3":"2021-07-22T02:38:39.365Z","0.3.4":"2021-07-22T02:52:18.246Z","0.3.5":"2021-07-22T06:48:19.624Z","0.3.6":"2021-07-22T06:51:01.285Z","0.3.7":"2021-07-22T08:46:02.309Z","0.3.8":"2021-07-22T08:50:46.676Z","0.3.9":"2021-07-23T07:35:47.101Z","0.3.10":"2021-07-23T07:44:31.010Z","0.3.11":"2021-07-23T07:57:11.172Z","0.3.12":"2021-07-23T08:22:29.419Z","0.3.13":"2021-07-26T08:30:09.036Z","0.3.14":"2021-07-26T09:53:45.633Z","0.3.15":"2021-07-27T07:06:19.587Z","0.3.16":"2021-07-27T10:16:24.666Z","0.3.17":"2021-08-04T07:03:01.281Z","0.3.18":"2021-08-04T10:45:37.787Z","0.3.19":"2021-08-05T03:10:00.146Z","0.3.20":"2021-08-16T09:33:53.321Z","0.3.21":"2021-08-25T08:20:56.728Z","0.3.22":"2021-09-03T09:19:32.182Z","0.3.23":"2021-09-03T09:38:04.661Z","0.3.24":"2021-09-17T02:40:43.485Z","0.3.25":"2021-10-21T03:23:59.765Z","0.3.26":"2021-10-21T08:19:21.731Z","0.3.27":"2021-11-04T03:46:32.476Z","0.3.28":"2021-12-10T04:07:22.018Z","0.3.29":"2022-02-08T03:45:29.532Z","0.3.30":"2022-02-08T03:57:08.705Z","0.3.31":"2022-04-06T08:44:46.645Z","0.3.32":"2022-05-25T05:06:48.923Z","0.3.34":"2022-06-21T03:48:24.496Z","0.3.35":"2022-06-23T07:34:29.117Z","0.3.36":"2022-07-21T08:46:28.851Z","0.4.0":"2022-07-26T03:18:35.361Z","0.5.0":"2022-07-27T03:49:23.128Z","0.5.1":"2022-07-27T08:45:54.273Z","0.5.2":"2022-07-27T08:51:36.585Z","0.5.3":"2022-07-27T09:11:14.994Z","0.5.4":"2022-07-28T03:51:14.110Z","0.5.5":"2022-09-27T08:51:06.761Z","0.6.0":"2022-10-13T10:55:09.804Z","0.6.1":"2022-11-11T06:11:38.472Z","0.6.2":"2022-11-11T06:44:53.008Z","0.6.3":"2022-11-11T06:46:17.993Z","0.6.4":"2022-11-15T06:40:14.738Z","0.7.0":"2022-11-18T03:03:08.469Z","0.6.5":"2022-11-21T08:33:49.156Z","0.6.6":"2022-12-06T07:36:46.601Z","0.6.7":"2022-12-06T09:14:41.466Z","0.6.8":"2022-12-07T04:45:04.205Z","0.6.9":"2022-12-07T10:24:50.526Z","0.6.10":"2022-12-19T07:21:43.105Z","0.6.11":"2022-12-19T07:33:36.731Z","0.6.12":"2022-12-19T07:39:32.991Z","0.7.1":"2023-01-03T10:11:26.114Z","0.7.2":"2023-01-03T10:44:39.288Z","0.7.3":"2023-02-06T03:27:00.734Z","0.7.4":"2023-02-06T09:44:44.284Z","0.7.5":"2023-02-06T10:16:01.751Z","0.7.6":"2023-02-06T10:16:18.977Z","0.7.7":"2023-02-06T12:21:10.421Z","0.7.8":"2023-02-07T03:07:22.498Z","0.7.9":"2023-02-07T03:54:18.340Z","0.7.10":"2023-02-07T04:24:41.089Z","0.7.11":"2023-02-07T07:18:26.636Z","0.7.12":"2023-02-07T07:26:26.397Z","0.8.0":"2023-02-07T07:40:13.516Z","0.8.1":"2023-02-17T09:33:11.983Z","0.8.2":"2023-02-17T09:53:05.310Z","1.0.0":"2023-05-04T10:43:53.999Z","1.0.1":"2023-05-12T10:03:38.928Z","1.0.2":"2023-05-12T10:13:57.853Z","1.0.3":"2023-05-15T08:06:12.851Z","1.0.4":"2023-05-15T09:10:56.594Z","2.0.0":"2023-06-14T03:09:59.994Z","2.1.0":"2023-06-14T08:36:14.659Z","2.1.1":"2023-06-14T08:58:23.578Z","2.1.2":"2023-06-14T09:14:19.463Z","2.1.3":"2023-06-19T08:02:47.231Z","2.1.4":"2023-06-19T08:09:44.784Z"},"maintainers":[{"name":"zanllp","email":"qc@zanllp.cn"}],"license":"MIT","readme":"# vue3-ts-util\nvue3-ts-util是下厨房几个vue3后台的通用函数，组件库。\n使用ts编写而成，组件使用模板及少量tsx。\n\n[![Node.js CI](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml/badge.svg)](https://github.com/xiachufang/vue3-ts-util/actions/workflows/ci.yml)\n[![](https://img.shields.io/npm/v/vue3-ts-util.svg)](https://www.npmjs.com/package/vue3-ts-util)\n\n# 安装\n`yarn add vue3-ts-util`\n\n> 按需可能会要求对等依赖 vue vuex vue-router，执行yarn add\n\n# 用法\n见文档[doc](doc)\n目录见下方\n\n<!--docinsert-->\n##  vue3 composition api的hook\n- [useDomRect hook风格获取dom的rect](./doc/hooks.md#usedomrect-hook风格获取dom的rect)\n- [useEmit 用于在hook内emit](./doc/hooks.md#useemit-用于在hook内emit)\n- [useFetchQueueHelper/useStrictQueue/useRetryableQueue fetchqueue的hook wrapper](./doc/hooks.md#usefetchqueuehelperusestrictqueueuseretryablequeue-fetchqueue的hook-wrapper)\n- [useInfiniteScrolling 无限滚动](./doc/hooks.md#useinfinitescrolling-无限滚动)\n- [useResizeable 用于鼠标拖拽调整调整某个元素的大小位置](./doc/hooks.md#useresizeable-用于鼠标拖拽调整调整某个元素的大小位置)\n- [useStackAlloc hook风格管理object url分配](./doc/hooks.md#usestackalloc-hook风格管理object-url分配)\n- [useWatchDocument `document.addEventListener`的hook wrapper](./doc/hooks.md#usewatchdocument-documentaddeventlistener的hook-wrapper)\n- [createTypedShareStateHook/useHookShareState 生成一个实例内进行状态共享的hook](./doc/hooks.md#createtypedsharestatehookusehooksharestate-生成一个实例内进行状态共享的hook)\n- [useRouteId 路由参数id获取，合法判断](./doc/hooks.md#userouteid-路由参数id获取合法判断)\n\n##  输入输出，网络请求相关的\n- [FetchQueue 自动管理loading等的请求控制容器](./doc/io.md#fetchqueue-自动管理loading等的请求控制容器)\n  - [构造参数](./doc/io.md#构造参数)\n  - [类方法/属性](./doc/io.md#类方法属性)\n  - [pushAction返回的任务实例](./doc/io.md#pushaction返回的任务实例)\n  - [例子](./doc/io.md#例子)\n    - [最小化](./doc/io.md#最小化)\n    - [排队执行，失败自动重试](./doc/io.md#排队执行失败自动重试)\n    - [取消任务，监听任务被取消](./doc/io.md#取消任务监听任务被取消)\n    - [给任务添加标识/额外信息](./doc/io.md#给任务添加标识额外信息)\n    - [让FetchQueue成为响应式](./doc/io.md#让fetchqueue成为响应式)\n  - [更多的例子见单元测试,测试要详细的多](./doc/io.md#更多的例子见单元测试测试要详细的多)\n  - [衍生hooks](./doc/io.md#衍生hooks)\n- [Task 轮训请求的控制](./doc/io.md#task-轮训请求的控制)\n  - [参数](./doc/io.md#参数)\n  - [返回值](./doc/io.md#返回值)\n    - [停止轮训](./doc/io.md#停止轮训)\n    - [获取轮训结果](./doc/io.md#获取轮训结果)\n    - [获取轮训参数](./doc/io.md#获取轮训参数)\n  - [一个简单的例子](./doc/io.md#一个简单的例子)\n- [makeAsyncIter 分页api的迭代管理](./doc/io.md#makeasynciter-分页api的迭代管理)\n  - [返回类型](./doc/io.md#返回类型)\n  - [一个简单的例子](./doc/io.md#一个简单的例子-1)\n  - [控制多资源，内部状态重置](./doc/io.md#控制多资源内部状态重置)\n  - [中断之前的请求](./doc/io.md#中断之前的请求)\n  - [返回类型的约束](./doc/io.md#返回类型的约束)\n  - [在vue2 options api中使用](./doc/io.md#在vue2-options-api中使用)\n  - [在小程序中使用](./doc/io.md#在小程序中使用)\n    - [最小无限滚动加载收藏的例子](./doc/io.md#最小无限滚动加载收藏的例子)\n    - [在ts/js中获取asyncIter的状态](./doc/io.md#在tsjs中获取asynciter的状态)\n    - [在wxml中获取asyncIter的状态](./doc/io.md#在wxml中获取asynciter的状态)\n      - [通过设置回调来实现状态变化时更新 setStateUpdatedCallback](./doc/io.md#通过设置回调来实现状态变化时更新-setstateupdatedcallback)\n      - [简写方式 bindPage](./doc/io.md#简写方式-bindpage)\n    - [如何知道asyncIter引发的界面修改完成时机](./doc/io.md#如何知道asynciter引发的界面修改完成时机)\n  - [常用场景的使用](./doc/io.md#常用场景的使用)\n    - [antd表格翻页](./doc/io.md#antd表格翻页)\n    - [无限滚动](./doc/io.md#无限滚动)\n- [useInfiniteScrolling 无限滚动](./doc/io.md#useinfinitescrolling-无限滚动)\n  - [探底触发](./doc/io.md#探底触发)\n  - [交叉触发模式](./doc/io.md#交叉触发模式)\n  - [](./doc/io.md#)\n  - [hooks](./doc/io.md#hooks)\n- [useAntdListPagination / GeneralPagination  翻页管理](./doc/io.md#useantdlistpagination--generalpagination--翻页管理)\n  - [使用参考](./doc/io.md#使用参考)\n\n##  其余不好分类的函数\n- [deepComputed](./doc/other.md#deepcomputed)\n  - [主要的使用场景](./doc/other.md#主要的使用场景)\n  - [性能相关](./doc/other.md#性能相关)\n  - [需要注意的问题](./doc/other.md#需要注意的问题)\n    - [如果发现修改了值但setter没被调用](./doc/other.md#如果发现修改了值但setter没被调用)\n    - [调用了一次值的函数(例如Array::splice)，但是setter被多次调用？](./doc/other.md#调用了一次值的函数例如arraysplice但是setter被多次调用)\n    - [原因](./doc/other.md#原因)\n    - [解决方法](./doc/other.md#解决方法)\n- [deepComputedEffect 更好的deepComputed](./doc/other.md#deepcomputedeffect-更好的deepcomputed)\n- [deepComputedPick 执行后二值之间仍然会双向同步的pick](./doc/other.md#deepcomputedpick-执行后二值之间仍然会双向同步的pick)\n- [deepProxy让defineModel也能进行深度响应](./doc/other.md#deepproxy让definemodel也能进行深度响应)\n- [events/typedEventEmitter 类型安全的EventEmitter](./doc/other.md#eventstypedeventemitter-类型安全的eventemitter)\n- [image/getImageUrl 从下厨房用的图像结构构造url](./doc/other.md#imagegetimageurl-从下厨房用的图像结构构造url)\n- [assigIncrId 生成一个全局自增id](./doc/other.md#assigincrid-生成一个全局自增id)\n- [unid/typedID/ID 使用symbol实现的ID生成器](./doc/other.md#unidtypedidid-使用symbol实现的id生成器)\n- [delay,delayFn 延时，推迟控制流执行](./doc/other.md#delaydelayfn-延时推迟控制流执行)\n- [promise2ref promise转成ref](./doc/other.md#promise2ref-promise转成ref)\n- [promiseSetRef 在promise完成时设置某个ref](./doc/other.md#promisesetref-在promise完成时设置某个ref)\n- [dayjsConvert 一个函数实现下厨房常用的多种时间转换](./doc/other.md#dayjsconvert-一个函数实现下厨房常用的多种时间转换)\n\n##  类型及类型推导辅助相关\n- [globalComponents](./doc/type.md#globalcomponents)\n- [DeepReadonly转换一个类型为深度只读](./doc/type.md#deepreadonly转换一个类型为深度只读)\n  - [仅使用类型](./doc/type.md#仅使用类型)\n  - [也可以使用这种方式](./doc/type.md#也可以使用这种方式)\n- [ok 先验条件断言](./doc/type.md#ok-先验条件断言)\n- [thruthy 真值断言](./doc/type.md#thruthy-真值断言)\n- [Columns 描述antd表格结构的类型](./doc/type.md#columns-描述antd表格结构的类型)\n- [Image 下厨房的图像结构](./doc/type.md#image-下厨房的图像结构)\n- [WithRequired 将对象部分字段转为不可空](./doc/type.md#withrequired-将对象部分字段转为不可空)\n- [customPropType vue props用于推导自定义类型的辅助函数,使用interface风格写props](./doc/type.md#customproptype-vue-props用于推导自定义类型的辅助函数使用interface风格写props)\n\n##  本库的vue3组件\n- [GeneralPagination 翻页器和相关hook](./doc/vue3components.md#generalpagination-翻页器和相关hook)\n- [SplitView 支持鼠标拖拽调整的视图分割](./doc/vue3components.md#splitview-支持鼠标拖拽调整的视图分割)\n  - [props](./doc/vue3components.md#props)\n  - [例子](./doc/vue3components.md#例子)\n- [SearchSelect 支持搜索的选择，追求尽可能少的代码来描述](./doc/vue3components.md#searchselect-支持搜索的选择追求尽可能少的代码来描述)\n  - [props](./doc/vue3components.md#props-1)\n  - [例子](./doc/vue3components.md#例子-1)\n\n##  vuex相关的\n- [mutation 生成mutation函数的辅助函数](./doc/vuex.md#mutation-生成mutation函数的辅助函数)\n- [VuexPersistence 用于持久化的vuex插件](./doc/vuex.md#vuexpersistence-用于持久化的vuex插件)\n  - [feature](./doc/vuex.md#feature)\n  - [最小化例子](./doc/vuex.md#最小化例子)\n\n<!--docinsert-->\n# 开发\n> rollup-plugin-vue已经没维护，出现问题搞不定可以考虑vite\n## 下载\n```bash\ngit clone ....\ncd vue3-ts-util\nyarn\n....\n```\n## 使用dev-watch开发新功能及debug\n大部分功能使用单元测试即可完成。\n\n如果想要在其他项目中进行开发测试可以这么操作,以一个vite项目为例\n### 修改vite配置，使其能监听变化\n不需要实时watch的可以跳过\n```ts\nimport { defineConfig, searchForWorkspaceRoot, UserConfig } from 'vite'\n\n\nexport default defineConfig({\n  optimizeDeps: {\n    exclude: ['vue3-ts-util'] // 监听这个包的变化\n  },\n  server: {\n    watch: {\n      ignored: ['!**/node_modules/vue3-ts-util/es/**'],\n    },\n    fs: {\n      allow: [\n        searchForWorkspaceRoot(process.cwd()),\n        // 自定义规则\n        '/Users/xxxxxx/project/vue3-ts-util' // 本项目地址\n      ]\n    }\n  }\n})\n```\n### 创建符号链接，启动编译监听\n在scripts的文件夹下创建conf.json\n```json\n{\n  \"devWatch\": {\n    \"symlink\": \"/Users/zanllp/try-fluent-design\" // 直接在命令行里输入pwd获取\n  }\n}\n```\n`symlink`指向你开发&debug用的项目, 上面这个操作也可以通过npm link/yarn link 等代替,但是我感觉还不如直接用这个symlink, see https://github.com/yarnpkg/yarn/issues/1957。\n\n再\n```bash\nyarn dev-watch # 开启即时编译\n```\n直接在这边修改src下面ts,tsx,vue,就可以即时在那边生效。做到近似在同一个项目内开发的体验。\n\n需要注意的是关闭后目标项目还是使用的最后构建的包，如果需要改回去重新安装一遍`vue3-ts-util`就行\n## npm scripts说明\n### 预发行\n```\nyarn pre-release\n```\n再改下版本号，`npm publish`即可发包\n### 即时编译\n```\ndev-watch\n```\n### import 优化\n```\nyarn import-optimize\n```\n可以在编译完的基础上进一步增强tree-shaking的效果，原理看scriprt文件夹下对应文件\n### vue文件的类型声明文件生成\n```\nyarn gen-vue-type\n```\n### 编译\n```\nyarn build\n```\n### 清理编译产物\n```\nyarn clean\n```\n### 单元测试\n```\nyarn test\n```\n## 一些需要注意的地方\n1. vue组件的类型声明应该使用`yarn gen-vue-type`来自动生成，而不是手写或者使用shims,使用shims会丢失props的类型信息。对于props的声明应该尽量`customPropType`，可以尽可能接近写interface的体验(setup的更好，直接defineProps)\n2. 如果需要返回一个外部不可修改的对象可以使用`deepReadonly`\n3. 修改文档后使用vscode的markdown in one更新所在文件的目录，然后使用`yarn gen-contents`生成合并的目录写入到readme<img width=\"623\" alt=\"image\" src=\"https://user-images.githubusercontent.com/25872019/179443451-6c974bf3-18d8-463f-a4df-1dcb0f787086.png\">\n4. 尽可能足够的单元测试\n5. 如果修改了组件相关及时修改vetur下的文件，及volar所使用的`src/globalComponents.ts`\n6. 版本号修改参考https://semver.org/lang/zh-CN/\n\n\n\n# 编译体积优化\nvue3-ts-util有两个构建版本，使用ESM构建版本可以有效的减少编译后的体积\n## ESM构建版本\n编译目标为es6，模块标准为es6，也是最主要使用的版本。优点是支持tree shaking。\n### 效果\n参考这个issue https://github.com/xiachufang/vue3-ts-util/issues/4\n\n### tree shaking没起作用？\n1. 将webpack.config.js的optimization.sideEffects设为true\n2. 确保打包器内部的loader使用es module进行编译\n    1. tsc有些直接在tsconfig.json就可以设置，有些需要传到加载器或者插件的参数里\n    2. babel参考https://babeljs.io/docs/en/babel-preset-env#modules\n\n如果上述无效可以参考这2篇文章\n1. [webpack tree-shaking](https://webpack.docschina.org/guides/tree-shaking/#root)\n2. [library-tree-shaking](https://blog.theodo.com/2021/04/library-tree-shaking/)\n## commonjs的兼容构建版本\n编译目标为es5，模块标准为commonjs，仅作为部分情况下的兼容，例如直接使用node运行\n\n# 一些问题的处理方法\n## ref在改变后够观测不到\n可以查看是否存在着多个vue实例，即vue3-ts-util和其他的组件不在同一个vue实例内，vue3-ts-util的ref另外一个实例收集不到。可以看看node_modules里面vue3-ts-util是否存在一个单独的vue安装，可以通过改变2者的npm package的vue版本依赖限制来解决这个问题\n## 在使用项目上线存在与本地开发时不一致的问题\n可以先判断是否是部分文件在编译完被移除掉了，即存在副作用的文件被编译器当成无副作用的处理了。判断可以通过开启source map编译，使用serve打开文件，进入页面后打开devtool的soucre查看是否缺少文件，如果确实是这个原因可以将缺少的文件添加到本项目的`package.json`的`sideEffects`里\n\n当前的`package.json`是这样\n```json\n{\n    \"sideEffects\": [\n    \"es/**/*.{vue,css}.js\"\n  ]\n}\n```\n即匹配`\"es/**/*.{vue,css}.js\"`的所有文件视为存在副作用，这两个是vue编译器生成的\n","readmeFilename":"README.md","description":"vue3-ts-util是下厨房几个vue3后台的通用函数，组件库。 使用ts编写而成，组件使用模板及少量tsx。"}