{"_id":"@litianxiang/portal-core","_rev":"31-3ecf0148f0a63d9146b50b239afc0c99","name":"@litianxiang/portal-core","dist-tags":{"latest":"0.2.6"},"versions":{"0.1.1":{"name":"@litianxiang/portal-core","version":"0.1.1","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.1","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"a77280c6923526fdf8d877e17701f7e041b8e1b7","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.1.tgz","fileCount":4,"integrity":"sha512-mnkcSrLhlVmfmUnCPimPqVYNDCbohMJLFjXUGC0LPA15V81k8yUkY/jtlijlRXi1F6UtllufjYvE2Yvq8TQbfA==","signatures":[{"sig":"MEUCIQC4QF/Wst7w9UvvWikU6jhyEamxD7XLkenW+U1vLwYb9AIgGXcwd1xTLl/RjdPe67A/Ynd2Akv2dtnUdVlyWiDv5Lo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12347},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.1_1771437369663_0.33489803890692627","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@litianxiang/portal-core","version":"0.1.2","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.2","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"a1329aa2a7921ee3f6acb26752be0dc56c3e7008","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.2.tgz","fileCount":4,"integrity":"sha512-T3Md5XC/bqhbQRgbWLH0/F+4o4R52LDY0k/zt+vYLcwCup60DOtXfUrpENG1iINo7s1Gf0LCFX32mGzqe3Io7g==","signatures":[{"sig":"MEUCIQD+933HYyl2Fgc7p3e2c3429SBySIPZgNtDU+ao6yoZgAIgF0cS5QYXj/52rNyiCRE19PlBqQZqLGmpxbN6cvvR5V0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12345},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.2_1771438002804_0.21375941895696093","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@litianxiang/portal-core","version":"0.1.3","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.3","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"a7cc98eef37e8b7b7b415ca28045bd114e357307","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.3.tgz","fileCount":5,"integrity":"sha512-EPUahX93D9PD3KdbtfZ5za4wEvbFRs5iBKsltyrq+1Mboy7+cXPyTrtMCxr3NH7kHKMHA16PrKM2HYaqQXeUCg==","signatures":[{"sig":"MEQCIA8Dv89CG3FXX7I2LEo28yh9/Tc1EYTzKbSGDV8XEyeTAiB2hGsdnyhjF1YnX/cJLlKCa/YkIoyUuMpfqtpAWAiIRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21726},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.3_1771818261359_0.14209605991011642","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@litianxiang/portal-core","version":"0.1.4","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.4","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"beec14a45a1fe3428763a2e00ac60a3c9655e830","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.4.tgz","fileCount":5,"integrity":"sha512-NkBQ9NvUlHysbDxZBD+vv0XTlQnp0TWZ25QmZU18Y/fPqy4Ax+Zo+/BnJGsVkIj17LPMD5aOPwI99vSngZpI4w==","signatures":[{"sig":"MEYCIQDD6HwcQW73ZbmQaupprk2vfFsWJE1cwbF3P8Tu/YRI4wIhANrMGDNoCXLVDNB6PezeLjrSNzhjI03F9Vbg33XO46D7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24938},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由/认证内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.4_1771820545895_0.6962838541738061","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@litianxiang/portal-core","version":"0.1.5","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.5","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"5ca5e75e134b28838391db103c98e48c7a138fbc","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.5.tgz","fileCount":5,"integrity":"sha512-GziDbrVjB6vHfxKCe4zI0OnweNFxXs2OlmtlLf+b5b7Zn00qmwdrTuJnUhxg/hVLiV97snRqomtqOBBUyN/38A==","signatures":[{"sig":"MEUCIA39x3aym3mmtL3cHvt4MPNsX3/4h8eVhDOIflfpmDCLAiEAsouorEtnTZfeGqom3yO3Y6rwL/BkELxYRjamgUsMEaU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24938},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由/认证内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.5_1771822581930_0.010203599814352593","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@litianxiang/portal-core","version":"0.1.6","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.6","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"eb7807e5ebc2ad959c5de98389ab161d04c1b527","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.6.tgz","fileCount":5,"integrity":"sha512-jJj/d/7QPdBOcuekmPT93AlYTuEpKluuSGQzyuHgV4wmj/V6WKfZKMBS7ew4SV0yaKuloU7td/X31vSpE9/iBw==","signatures":[{"sig":"MEUCICqruGye3bEnZgfucqOWjEapIyqYFuMOVQmyFiPK6/aHAiEAyjo5PD+alGm7dvTbcNWoKLNPKAWR2SGCBPYeSGGinvQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24938},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由/认证内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.6_1771823119339_0.6672914357889854","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@litianxiang/portal-core","version":"0.1.7","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.7","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"b2ff3c3612de02831da51fbfc6b75de64abcf19e","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.7.tgz","fileCount":5,"integrity":"sha512-gR2deY0KpWa1RWeDxd0uLHL0M8iArir8HMOFGtH7lA3Zrquc8DlE1uwJ6A+iv3ZHXIvaTMHRFJCCTWyz+MYLnA==","signatures":[{"sig":"MEUCIQDHEFL/ca7h7SGZa/THkS5jc6YcTxFV1zcOAawLDjIExwIgIrydh4m8wR835NoAmad7jRBdHkeFGffb3WDHr7rR570=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25048},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由/认证内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.7_1771823323735_0.044895952116118965","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@litianxiang/portal-core","version":"0.1.8","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.8","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"853e4339575dd9aed74be48cd4fb180e5fff3dd4","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.8.tgz","fileCount":5,"integrity":"sha512-r0eGIdDJS+QE1U8xhVKrrfldZc5b6c2NA0EFjIyU2TA2PpcIQ7ymiiFxNokj3Vy+gZJof99yQT1aU1YcvI3d4g==","signatures":[{"sig":"MEUCIQDG6SJ85pyfLnsSb2Ut93JCwKsLHzEXvQKnQTdFQgrqYQIgCojH4Wz4fJe3XS3dkMsu4UNNq15+uv0WVsM7J7TG41o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25104},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由/认证内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.8_1771823707417_0.45327141940236193","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@litianxiang/portal-core","version":"0.1.9","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.9","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"12a07b876c4a97b2d5c6fe7ee5252f2b716efae5","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.9.tgz","fileCount":5,"integrity":"sha512-qDAC3hujcUDJ8b1YlnLbWW/fNuue7gTOGft0SK3r4M3XjzEXb5OO+I/7Q+/VCMOdB0zF8Uy5ha2IWh4pk20bAA==","signatures":[{"sig":"MEYCIQCx+ZNFujt3NN7Iv4+/o8TZAaQt+ccL/oHRtuh08N51zAIhAOFNOCdgpVqw+AhXB0Z1yNPCOLMBGtID9DDOert+K0Xl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30882},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.9_1771826269383_0.8929803797557345","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@litianxiang/portal-core","version":"0.1.10","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.10","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"84d8a025bd82115b1b3867e78971e7bea8860fbf","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.10.tgz","fileCount":5,"integrity":"sha512-44kv+pFiw6MPso6PBvz6z3uarUxBaJgEHGVto2gtabcKKyykwYNuLO4IMQfcQP+V+gmvRaiJ9zrF5ybqQhh3SQ==","signatures":[{"sig":"MEUCIBq12ScYBDbmyxBBv2jCFCCYCfBV/7qp3ZS5Y1pPYA0FAiEAxBJ2AntUY1kWqprk5DDhFSdj3PEww0I50A/RRXTehxY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35534},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.10_1771829209118_0.42785370581191695","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@litianxiang/portal-core","version":"0.1.11","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.11","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"af965224e3f60eccb9ae401b11119f9404195490","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.11.tgz","fileCount":5,"integrity":"sha512-dsW3ZZfmRlhSVuIso5BqmrU4oYTPhioxMek63oS0Dfl82iETd57e7Cs6PLPqWayFfyQRMDDFuVyfwaSiEIG/Vw==","signatures":[{"sig":"MEUCIQDaQT2YJu8a+Uqroxz2UZNw0V1IRaZdm/ZsRFg65X2XrQIgNfzlREZEzPtAY3TBOTTg8JUJiATEG95Lat7yOyx4PmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39064},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.11_1771834521156_0.268475754653418","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@litianxiang/portal-core","version":"0.1.12","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.12","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"32a60ba95657efa10936cb849e1454ced3e13e4d","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.12.tgz","fileCount":5,"integrity":"sha512-LdZ7DfKmmZttrsK1zu5Yy3Pi1VT7t7lbVUIbZv6bKoox1ruy8Y8ZqiTA8+OR5Z79Q8hon9zBxGSWk4uWGY2cdA==","signatures":[{"sig":"MEQCIBgQuEUiUwDy91d+zTVDT+p8Z7lgaWhkl5GWJx5bVBhkAiAH4L1reuZv3dX2e0YJ8c/qON1I5s14COu6RN36XORtow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43234},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.12_1771838332346_0.3378854827139437","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@litianxiang/portal-core","version":"0.1.13","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.13","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"a776eb6e19bef597a79e806ed36d128c7e2c6f77","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.13.tgz","fileCount":5,"integrity":"sha512-PiQvVmNJMCxbwyHCmaDqpLIlRx9m+Yft/Y51Ckh75zzAe86Qzg1uf2KXTThJMVHbQohaSoVQqmDvp0nNyqxPVw==","signatures":[{"sig":"MEQCIBAUWBO2BogeHzsn2SQstQCIbAUCdmeZY2OIuQkC57MjAiAaORvPGWpCJEw0STBmuwdIDMuAqZSkcBJmRrqYhK2duw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48015},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","dayjs":"^1.11.13","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","dayjs":"^1.11.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.13_1771897713897_0.25420467221701903","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@litianxiang/portal-core","version":"0.1.14","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.14","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"7f43e19305c74956fa44119f6bc08cd27ae87cc6","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.14.tgz","fileCount":5,"integrity":"sha512-FMfI5/HmzUR60KzKLo2guZHG3Lx6i5Zm3NUSAaUv+lfg7p1eGC9pHMhFT1PQW0CY0C8CpEgSMriNEj9CnXGQBg==","signatures":[{"sig":"MEUCIQDeK7Szt+fIhK0dYpN7L8KydFqeHHU7CDKuocPj9lgZqwIgMg/5gl1ApYEfSBUr6vftvLJyL8FNCtqZYs/4VznTlvg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51160},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","dayjs":"^1.11.13","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","dayjs":"^1.11.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.14_1771903392304_0.7463672720015104","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@litianxiang/portal-core","version":"0.1.15","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.15","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"7177e4239df95e7f15f79254c7c94a878b9e99de","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.15.tgz","fileCount":5,"integrity":"sha512-uUZFpcC0w35b27RO06wMFeuh1zsPR+LzusqWRQiglCaJKEzV/8UFjbPlYBaHIbnXYHhOK7qBNkYOhHOPznPCIw==","signatures":[{"sig":"MEYCIQC6cXXpv7JdxmP+FeTvGUnE/haTgYdVoro2mJ25Reo08AIhAMtHstrD/HqY7zVAPY9DpGKimVjvL25F3WRaESwZNjbO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52864},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","dayjs":"^1.11.13","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","dayjs":"^1.11.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.15_1771903854903_0.9688417698179461","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@litianxiang/portal-core","version":"0.1.16","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.16","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"8bf3dd744276bfd32cb21aef230ccdbdcd840caa","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.16.tgz","fileCount":5,"integrity":"sha512-SqNSxX9JYU3MKrkoisURaJr0We2llfS2JS2a01p5+hF+OsLm2BfBAxOcNRSkndvKrZMtBLOI3U+MlItDso0kyg==","signatures":[{"sig":"MEUCIQC4yy0mFMUm4uXAAEmv/sUqZf82KAF+1z2McsAP1saRaAIgEprDRU2ZsNvHDvitoSjzya7UT38jMrovYwkcoACuiNQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56258},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","dayjs":"^1.11.13","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","dayjs":"^1.11.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.16_1771904604921_0.17496893285483694","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@litianxiang/portal-core","version":"0.1.17","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.17","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"ecf47e543855b49489ccb6f8222652a9e6f85069","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.17.tgz","fileCount":5,"integrity":"sha512-PpP1A8jpVkOjZ+bKx81exiUkg4RCciriq0VtNBNSznSmIORJTGOrr3Vd+oJteMvu86iwXIZu1uY1cOPPFelqyg==","signatures":[{"sig":"MEYCIQCWx25BCr9ds36ZOr3gXOISePGOPw8iwQsXXon/1pos+QIhAM1BQLrwhksvLXsuP2ojwpFnTUNdahPtnH37JT7qHDRd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56258},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","dayjs":"^1.11.13","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","dayjs":"^1.11.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.17_1771905472620_0.7621200309126974","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@litianxiang/portal-core","version":"0.1.18","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.18","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"c6b60980ea399d62c9beb369d1737a4a9b25e0eb","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.18.tgz","fileCount":5,"integrity":"sha512-UxxRy3US0I3vJfRGJ2POHDq4mLJLqxp02RArK+frHswGoX6uoXGMAL978xm39Uz7Yoy9h86I/lX+HSxpgzQB3Q==","signatures":[{"sig":"MEQCIH1sEln20/8vMiD27KDLJPjRk2A06iiW10DHagRMz8t6AiBT4stWy/+6eyOj1HMPOJz2qijxTYirxxcF91QIVnyVzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57307},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","dayjs":"^1.11.13","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","dayjs":"^1.11.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.18_1771905513510_0.2309002878166737","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@litianxiang/portal-core","version":"0.1.19","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.19","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"531f185878c0aa774e171c0b9197fae264a2a4bd","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.19.tgz","fileCount":5,"integrity":"sha512-1uarRXaSg8+mArDzQ4cB94jJ3bKwam0V2tZtXD2F9n0CWXtQnJ/7zhD6ixKI+E0ihLntovyArzTTcwMjXMjCPQ==","signatures":[{"sig":"MEYCIQC8r3lhbmEaKWgEDqd63oJhbZVyd5b0/+QAdx2qXRORuAIhALvIdIldVsR1ghr6fF95ckg35A/K6YN9eRk5CryKQSVj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59165},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","dayjs":"^1.11.13","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","dayjs":"^1.11.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.19_1771921671396_0.1942171095529306","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@litianxiang/portal-core","version":"0.1.20","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.20","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"0be4785b8255c779c4bdb84bf8923012bb60eca5","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.20.tgz","fileCount":5,"integrity":"sha512-Vj3IHEf1FgcNLCwVZrg9iIjpC9ef57tDNHBx0IvXUllKNkcRTye3XVbt+c4deCm9Wae4wT/WaWVh5HOgMVekFw==","signatures":[{"sig":"MEUCIEFK3T9smHbk9y/ss2QtnXf9cYKKheOnkQ26DT34QerPAiEAtYGxS+I++icWc6oko4dk+plfSCd5lxQWNBXA1tWGg/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59517},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","dependencies":{"axios":"^1.8.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","dayjs":"^1.11.13","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","dayjs":"^1.11.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.20_1772248854147_0.4065892516631744","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"@litianxiang/portal-core","version":"0.1.21","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.21","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"1855da54aa61172470fbf6a9fb011654810665d1","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.21.tgz","fileCount":5,"integrity":"sha512-KKgxJuRM5TwuIU4qXCZLBOEmwqVhlbs+cY+uLjYUQSvr8Gk8XjdT0RpgMRUQIfToZOj1mA7cmKwmu0YTWbw2Hw==","signatures":[{"sig":"MEUCIF3YLiTB1+FCNtX391EFguMQFZOj0UEli1jJgnoR2xqMAiEA1RUKyS0lQxNi8K/0dhsAYTbMTHyAIi5Y8lWqHawmSJg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59493},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","private":false,"scripts":{"build":"tsup src/index.ts --format esm --dts"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","dependencies":{"axios":"^1.8.4","dayjs":"^1.11.13"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.21_1772249342415_0.5199964857739077","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"@litianxiang/portal-core","version":"0.1.22","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.22","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"055ca2e529cccda48d2f36dd377327bbae19fd99","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.22.tgz","fileCount":4,"integrity":"sha512-EYBbNQEKp8Q9YRe8R9LZdcc5NnIOBf4un6ZqwZB7zxlhRyJzZZbAlI5HgwhwUPvuwPn36i0043u+2TgqN2tQog==","signatures":[{"sig":"MEUCIH0EQBMuk0MAQc9+OTvQaIp4CDxI10I8RCsX6KSPwXLBAiEAwobcYA1a+5Z7yCXDWoyRUggIQGoCcJKztWgcvdLwZQA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68604},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"private":false,"scripts":{"build":"pnpm run clean && tsup src/index.ts --format esm --dts","clean":"rm -rf dist","pack:check":"pnpm run build && pnpm pack --pack-destination /tmp"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"`@litianxiang/portal-core` 是一套门户子系统通用的路由 / 认证 / 请求 内核，负责统一处理：","directories":{},"_nodeVersion":"23.10.0","dependencies":{"axios":"^1.8.4","dayjs":"^1.11.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vue-i18n":"^11.2.8","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-i18n":"^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0-0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.22_1772606761102_0.9045634066543653","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"@litianxiang/portal-core","version":"0.1.23","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.23","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"0b3baa969464a1c616e009277362c8b111d2a8e2","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.23.tgz","fileCount":4,"integrity":"sha512-kun6JftFcGxIBJD4ThdAJ1sPpFXE5xlBsAxUPujUj/b2rixwoSoAS3+hn7tMRmMvd90Z/LKfZH4OB9roNwVpQA==","signatures":[{"sig":"MEYCIQDKyWyyrCstbyekkeUt+H9lAwn54+17Md3BwP0JzKPRZQIhANRNrYdohydfZBKy7nbQ2+ScWPdoBxKepyivQxcctzCI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69545},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"private":false,"scripts":{"build":"pnpm run clean && tsup src/index.ts --format esm --dts","clean":"rm -rf dist","pack:check":"pnpm run build && pnpm pack --pack-destination /tmp"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"门户子系统通用内核，统一提供：","directories":{},"_nodeVersion":"23.10.0","dependencies":{"axios":"^1.8.4","dayjs":"^1.11.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vue-i18n":"^11.2.8","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-i18n":"^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0-0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.23_1772613398085_0.48931258597768523","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"@litianxiang/portal-core","version":"0.1.24","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.1.24","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"3bdbf619319c22bea12f2196eb43ce6aa66157c5","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.1.24.tgz","fileCount":4,"integrity":"sha512-c/K+YVQDIkkpf2yFIkVZNVVqbEl0WXfb52EHL0M7IJ0vsgC/gvDO9kHr6GgVV0/EPktVbsIEnI97/9ooe3HdDw==","signatures":[{"sig":"MEUCIGYx+DnJ7tR1AAsGzQYT6yJsOYoj+9bpMsh/KhbvC6SvAiEAl+PHUW0XIlp7uSmTdLC/kM8T98AWodFmOGZBn2kGj88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70788},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"private":false,"scripts":{"build":"pnpm run clean && tsup src/index.ts --format esm --dts","clean":"rm -rf dist","pack:check":"pnpm run build && pnpm pack --pack-destination /tmp"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"门户子系统通用内核，统一提供：","directories":{},"_nodeVersion":"23.10.0","dependencies":{"axios":"^1.8.4","dayjs":"^1.11.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vue-i18n":"^11.2.8","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-i18n":"^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0-0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.1.24_1772615782174_0.17879102346183107","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@litianxiang/portal-core","version":"0.2.0","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.2.0","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"c94433bed28f7b484b3e44801655339079a2dfd2","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.2.0.tgz","fileCount":4,"integrity":"sha512-4cI6lC3dldl9K2652EUIuqwlQi/ccjRuRsJxlnHvCDITYPzNbqXtMt9YaepnziD3m4RrfJCTGo9pQ9Sxnek/0A==","signatures":[{"sig":"MEUCIQC26BsX7TmkjGsGgueKPXCgLdSkQ+A2OcHldl0PRGZYuQIgKIhd1JrddsI32n5vBZPgTF9BzcmzJD+QadyMFQV8dbQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69544},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"private":false,"scripts":{"build":"pnpm run clean && tsup src/index.ts --format esm --dts","clean":"rm -rf dist","pack:check":"pnpm run build && pnpm pack --pack-destination /tmp"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"门户子系统通用内核，统一提供：","directories":{},"_nodeVersion":"23.10.0","dependencies":{"axios":"^1.8.4","dayjs":"^1.11.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vue-i18n":"^11.2.8","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-i18n":"^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0-0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.2.0_1772616772023_0.1803049606072249","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@litianxiang/portal-core","version":"0.2.1","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.2.1","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"39bbf9bcbdc42b17219252c063809fb0f75e49b7","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.2.1.tgz","fileCount":4,"integrity":"sha512-mVWwL/tpn3fzXgMj70PczYvnOQOGsN5FoP5h5udQtmQg29GElAevPmpAfbvT0mc8mnbfnPk14/nawUg6ioc2uA==","signatures":[{"sig":"MEUCIQCYj1yWkonrTukzYRubEtOQVqQ+aS6TVGqb7cOAuzprzQIgYe/XUWGr5kB51AlCWT14u8JknwWnz1DLA9ANP6qF9DU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70442},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"private":false,"scripts":{"build":"pnpm run clean && tsup src/index.ts --format esm --dts","clean":"rm -rf dist","pack:check":"pnpm run build && pnpm pack --pack-destination /tmp"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"门户子系统通用内核，统一提供：","directories":{},"_nodeVersion":"23.10.0","dependencies":{"axios":"^1.8.4","dayjs":"^1.11.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vue-i18n":"^11.2.8","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-i18n":"^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0-0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.2.1_1772622364557_0.9825540897637948","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@litianxiang/portal-core","version":"0.2.2","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.2.2","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"b4cd0f268e0a215d0bc5771c556e430c431462ff","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.2.2.tgz","fileCount":4,"integrity":"sha512-tQyceybR1RNTdU1PS1fHtideRLp5hOU09mOo/QYDnZZJS1Df1D0VwGZQbMlholkxHcQ65wFAXhdYAws9Tcy2YA==","signatures":[{"sig":"MEYCIQCvW+IZxzplo0rhN8wNgbRMlt+YkAX2ZstrzagxVah6+AIhALec2IL9/ctGh8MpjjY0Bpv0aVKwg6ihrXuREkO3HHfH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70442},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"private":false,"scripts":{"build":"pnpm run clean && tsup src/index.ts --format esm --dts","clean":"rm -rf dist","pack:check":"pnpm run build && pnpm pack --pack-destination /tmp"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"门户子系统通用内核，统一提供：","directories":{},"_nodeVersion":"23.10.0","dependencies":{"axios":"^1.8.4","dayjs":"^1.11.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vue-i18n":"^11.2.8","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-i18n":"^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0-0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.2.2_1772627124395_0.04585523493485799","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@litianxiang/portal-core","version":"0.2.3","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.2.3","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"a9f5712f3abada17029894502ac2edbaa7678075","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.2.3.tgz","fileCount":4,"integrity":"sha512-a4Si1bpvEbVBya2Jtb6HtFAXKNcks8Kh+2tV/iUoxY6Rz2KGSqQ0Xbt+w+KIrGl3tmO+Buwj1288HjoqHhdBcQ==","signatures":[{"sig":"MEYCIQCUxN3Hs24LpKdmwoyk4dA3mrwCJ8YtWPF9VYaXHhH6QwIhAI1GMbT3jx8JVXtfeTJ1iHPcGnGtDUAugyVNAaq86fok","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70441},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"private":false,"scripts":{"build":"pnpm run clean && tsup src/index.ts --format esm --dts","clean":"rm -rf dist","pack:check":"pnpm run build && pnpm pack --pack-destination /tmp"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"门户子系统通用内核，统一提供：","directories":{},"_nodeVersion":"23.10.0","dependencies":{"axios":"^1.8.4","dayjs":"^1.11.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vue-i18n":"^11.2.8","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-i18n":"^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0-0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.2.3_1772628794495_0.8741653715891229","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@litianxiang/portal-core","version":"0.2.4","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.2.4","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"d6f8f68cd958119b04f5d970c919732675a5f7b9","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.2.4.tgz","fileCount":4,"integrity":"sha512-NzndbIi+tX7DelPR5jNKDVo8avfXNWVYIrhFaWjpfTHdYER1Uug86LitMyVSKGDc3CDfnM8+MYCESaCbOKTgsA==","signatures":[{"sig":"MEQCIHmHxXVzhEoy9ehKCdoq9it9IUhVpa8b64PNsUrVyImcAiBWMwx42cUyf4snrPjj57WRCoYdoC1BVD/4+LJ0wvuQGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72279},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"private":false,"scripts":{"build":"pnpm run clean && tsup src/index.ts --format esm --dts","clean":"rm -rf dist","pack:check":"pnpm run build && pnpm pack --pack-destination /tmp"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"门户子系统通用内核，统一提供：","directories":{},"_nodeVersion":"23.10.0","dependencies":{"axios":"^1.8.4","dayjs":"^1.11.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vue-i18n":"^11.2.8","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-i18n":"^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0-0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.2.4_1773656975944_0.00825914851544507","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@litianxiang/portal-core","version":"0.2.5","license":"UNLICENSED","_id":"@litianxiang/portal-core@0.2.5","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"dist":{"shasum":"f4217f2f060983c3ce5ef32071db9f37b1291b63","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.2.5.tgz","fileCount":4,"integrity":"sha512-gyFlKNMtlocEMdRw8GlauAbW/ruOfKe8mq8E8zZeQj/VZ3AUO9dHtWVmkipTSVo9MaBqdF5A1SejEwa1XS50tQ==","signatures":[{"sig":"MEUCIQCi91poukIYnekGd/XdKrdTChoo11yzP31tJlVmKgRizQIgE1/6rJf5Qghg68ytD0MSRBYyZXOaC/eLNYKPncRCHxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72645},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"private":false,"scripts":{"build":"pnpm run clean && tsup src/index.ts --format esm --dts","clean":"rm -rf dist","pack:check":"pnpm run build && pnpm pack --pack-destination /tmp"},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"_npmVersion":"10.9.2","description":"门户子系统通用内核，统一提供：","directories":{},"_nodeVersion":"23.10.0","dependencies":{"axios":"^1.8.4","dayjs":"^1.11.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vue-i18n":"^11.2.8","typescript":"^5.6.3"},"peerDependencies":{"vue":"^3.5.0","vue-i18n":"^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0-0","vue-router":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.2.5_1773664429231_0.6348124164088409","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@litianxiang/portal-core","version":"0.2.6","private":false,"type":"module","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"clean":"rm -rf dist","build":"pnpm run clean && tsup src/index.ts --format esm --dts","pack:check":"pnpm run build && pnpm pack --pack-destination /tmp"},"publishConfig":{"access":"public"},"peerDependencies":{"vue":"^3.5.0","vue-i18n":"^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0-0","vue-router":"^4.5.0"},"dependencies":{"axios":"^1.8.4","dayjs":"^1.11.13"},"devDependencies":{"tsup":"^8.3.0","typescript":"^5.6.3","vue-i18n":"^11.2.8"},"license":"UNLICENSED","_id":"@litianxiang/portal-core@0.2.6","description":"门户子系统通用内核，统一提供：","_nodeVersion":"23.10.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-rj8NoaeXB/R6W2UMj/uCbQ4BgP4DqjXgP0N0uF/PV5IwkGR0ikK0PPw03d0MIzqTitsopGnFtBGzkSbrfpSDag==","shasum":"d70231dabfc9afd11840187d17c95bf21f82f6ee","tarball":"https://registry.npmjs.org/@litianxiang/portal-core/-/portal-core-0.2.6.tgz","fileCount":4,"unpackedSize":76562,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHaMFcg3ZgY6wKmsk/NYLeeQglEhnjifsY6+LZNHWE0wAiAKlcM4x5jl19ABH5NJQYaGwCb/udNrbt253W8xBAOPuw=="}]},"_npmUser":{"name":"litianxiang","email":"litianxiang2046@163.com"},"directories":{},"maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/portal-core_0.2.6_1773796254391_0.2271251479337415"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-18T17:56:09.484Z","modified":"2026-03-18T01:10:54.644Z","0.1.1":"2026-02-18T17:56:09.812Z","0.1.2":"2026-02-18T18:06:42.954Z","0.1.3":"2026-02-23T03:44:21.506Z","0.1.4":"2026-02-23T04:22:26.053Z","0.1.5":"2026-02-23T04:56:22.116Z","0.1.6":"2026-02-23T05:05:19.470Z","0.1.7":"2026-02-23T05:08:43.888Z","0.1.8":"2026-02-23T05:15:07.570Z","0.1.9":"2026-02-23T05:57:49.518Z","0.1.10":"2026-02-23T06:46:49.256Z","0.1.11":"2026-02-23T08:15:21.308Z","0.1.12":"2026-02-23T09:18:52.503Z","0.1.13":"2026-02-24T01:48:34.037Z","0.1.14":"2026-02-24T03:23:12.450Z","0.1.15":"2026-02-24T03:30:55.040Z","0.1.16":"2026-02-24T03:43:25.059Z","0.1.17":"2026-02-24T03:57:52.839Z","0.1.18":"2026-02-24T03:58:33.653Z","0.1.19":"2026-02-24T08:27:51.557Z","0.1.20":"2026-02-28T03:20:54.298Z","0.1.21":"2026-02-28T03:29:02.571Z","0.1.22":"2026-03-04T06:46:01.252Z","0.1.23":"2026-03-04T08:36:38.249Z","0.1.24":"2026-03-04T09:16:22.300Z","0.2.0":"2026-03-04T09:32:52.174Z","0.2.1":"2026-03-04T11:06:04.697Z","0.2.2":"2026-03-04T12:25:24.554Z","0.2.3":"2026-03-04T12:53:14.630Z","0.2.4":"2026-03-16T10:29:36.069Z","0.2.5":"2026-03-16T12:33:49.383Z","0.2.6":"2026-03-18T01:10:54.535Z"},"license":"UNLICENSED","description":"门户子系统通用内核，统一提供：","maintainers":[{"name":"litianxiang","email":"litianxiang2046@163.com"}],"readme":"# @litianxiang/portal-core\n\n门户子系统通用内核，统一提供：\n\n- 路由守卫与动态菜单挂载\n- SSO 登录态恢复与统一退出\n- 认证 HTTP 拦截器（Loading、401、自动刷新 token）\n- 菜单/权限/用户状态工具\n- Tab、Loading、时间、数字、主题、i18n 工具\n\n## 安装\n\n```bash\npnpm add @litianxiang/portal-core\n# 或\nnpm i @litianxiang/portal-core\n```\n\n## 升级说明\n\n### 0.2.0（Breaking Change）\n\n- 移除 `createPortalHttpClient`。\n- 统一使用 `createAuthHttpClient`。\n- 业务项目原来通过 `createPortalHttpClient` 传入的 `baseURL: ''`、`timeout: 10000` 可以不再显式传递，`createAuthHttpClient` 内部已提供相同默认值。\n\n迁移示例：\n\n```ts\nimport { createAuthHttpClient } from '@litianxiang/portal-core'\n\nconst { http, logoutToAuth } = createAuthHttpClient({\n  getUserStore: () => useUserStore(),\n  getLoadingStore: () => useLoadingStore(),\n  onShowError: (msg) => console.error(msg)\n})\n```\n\n## 快速开始\n\n### 1) 路由接入\n\n```ts\nimport { createAppRouter } from '@litianxiang/portal-core'\nimport { staticRoutes } from './routes'\nimport { useUserStore } from '@/stores/user'\n\nconst router = createAppRouter({\n  staticRoutes,\n  getUserStore: () => useUserStore(),\n  getFirstPage: (allMenu) => allMenu.find((i: any) => i.category === 'page')?.path,\n  authLoginUrl: import.meta.env.VITE_AUTH_LOGIN_URL\n})\n\nexport default router\n```\n\n### 2) HTTP 接入\n\n```ts\nimport axios from 'axios'\nimport { createAuthHttpClient } from '@litianxiang/portal-core'\nimport { useUserStore } from '@/stores/user'\nimport { useLoadingStore } from '@/stores/loading'\n\nexport const { http, logoutToAuth } = createAuthHttpClient({\n  axios,\n  getUserStore: () => useUserStore(),\n  getLoadingStore: () => useLoadingStore(),\n  onShowError: (msg) => console.error(msg)\n})\n```\n\n如果业务项目只需要一个标准站点 http 模块，也可以直接使用更薄的封装：\n\n```ts\nimport { createSiteHttpModule } from '@litianxiang/portal-core'\n\nexport const { http, logoutToAuth } = createSiteHttpModule({\n  getUserStore: () => useUserStore(),\n  getLoadingStore: () => useLoadingStore(),\n  onShowError: (msg) => console.error(msg)\n})\n```\n\n## 导出方法说明（逐方法）\n\n### app\n\n- `setupApp(options)`：统一执行应用启动编排（插件注册、图标注册、beforeMount、mount）。\n- `setupRuntime(options)`：统一执行挂载前的运行时初始化（i18n、登录态同步、菜单状态、portal-ui http 绑定）。\n\n最小示例：\n\n```ts\nimport { setupApp } from '@litianxiang/portal-core'\n\nsetupApp({\n  app,\n  plugins: [router, pinia],\n  elementIcons: ElementPlusIconsVue,\n  mountSelector: '#app'\n})\n```\n\n### router\n\n- `createAppRouter(options)`：创建统一路由实例，内置登录态校验、菜单动态挂载、首屏跳转逻辑。\n  - 菜单类别为 `page` 的动态路由会挂载到 `main` 下。\n  - 菜单类别为 `flow-page` 的动态路由会挂载为顶级路由（不进入 `main` 主框架）。\n\n最小示例：\n\n```ts\nimport { createAppRouter } from '@litianxiang/portal-core'\n\nconst router = createAppRouter({\n  staticRoutes,\n  getUserStore: () => useUserStore(),\n  getFirstPage: (allMenu) => allMenu.find((m: any) => m.category === 'page')?.path\n})\n```\n\n- `createStaticAppRouter(options)`：创建静态站点路由，可选统一登录守卫，适用于 portal.web、portal.auth.web 这类无动态菜单站点。\n\n最小示例：\n\n```ts\nimport { createStaticAppRouter } from '@litianxiang/portal-core'\n\nconst router = createStaticAppRouter({\n  staticRoutes,\n  getUserStore: () => useUserStore(),\n  requireAuth: true\n})\n```\n\n### auth\n\n- `createLogoutToAuth(options)`：生成统一退出函数，负责清理用户态并跳转到认证站。\n- `calcInactivityAction(lastActiveTime, now, config)`：根据空闲时长计算是否应刷新 token 或强制退出。\n\n最小示例：\n\n```ts\nimport { createLogoutToAuth, calcInactivityAction } from '@litianxiang/portal-core'\n\nconst logoutToAuth = createLogoutToAuth({\n  getUserStore: () => useUserStore(),\n  getLoadingStore: () => useLoadingStore()\n})\n\nconst { shouldLogout, shouldRefresh } = calcInactivityAction(lastActiveTime, Date.now())\nif (shouldLogout) logoutToAuth()\nif (shouldRefresh) {\n  // 执行刷新 token\n}\n```\n\n### http\n\n- `createAuthHttpClient(options)`：创建带认证拦截器的 HTTP 客户端（Loading、token 注入、401 处理、刷新 token）。\n\n最小示例：\n\n```ts\nimport axios from 'axios'\nimport { createAuthHttpClient } from '@litianxiang/portal-core'\n\nconst { http } = createAuthHttpClient({\n  axios,\n  getUserStore: () => useUserStore(),\n  getLoadingStore: () => useLoadingStore()\n})\n\nawait http.post('/api/demo', {})\n```\n\n### config\n\n- `getDefaultAuthLoginUrl()`：基于当前域名生成默认统一登录地址。\n\n最小示例：\n\n```ts\nimport { getDefaultAuthLoginUrl } from '@litianxiang/portal-core'\n\nconst authLoginUrl = getDefaultAuthLoginUrl()\n```\n\n### permission\n\n- `createPermissionHelper(options)`：创建权限判断工具（页面权限、按钮权限、任一权限命中）。\n\n最小示例：\n\n```ts\nimport { createPermissionHelper } from '@litianxiang/portal-core'\n\nconst permission = createPermissionHelper({ getUserStore: () => useUserStore() })\nconst canVisit = permission.hasPagePermission('/system/user')\nconst canCreate = permission.hasButtonPermission('/system/user:add')\n```\n\n### menu\n\n- `createMenuHelper(options)`：创建菜单辅助工具，提供路径查找、标题、父链、面包屑能力。\n- `transformMenuTree(menuList, options)`：将后端菜单转换为标准 `CoreMenuItem` 结构。\n- `buildAllMenuTree(menuList)`：构建完整菜单树（含页面与按钮）。\n- `buildPageMenuList(menuList)`：从完整树裁剪 page/button 结构。\n- `findFirstPagePath(menuList)`：递归查找第一个可访问页面路径。\n\n最小示例：\n\n```ts\nimport {\n  createMenuHelper,\n  transformMenuTree,\n  buildAllMenuTree,\n  buildPageMenuList,\n  findFirstPagePath\n} from '@litianxiang/portal-core'\n\nconst tree = transformMenuTree(rawMenu)\nconst allMenu = buildAllMenuTree(tree)\nconst pageMenu = buildPageMenuList(allMenu)\nconst firstPath = findFirstPagePath(allMenu)\n\nconst helper = createMenuHelper({ getMenuTree: () => allMenu })\nconst breadcrumb = helper.getBreadcrumb('/system/user')\n```\n\n### user\n\n- `createBaseUserState()`：创建基础用户状态（不含菜单）。\n- `createBaseUserGetters()`：创建基础用户 getters（工号/姓名/token/最后活跃时间）。\n- `createBaseUserActions(options?)`：创建基础用户 actions（set/clear/syncFromAuthStore）。\n- `createMenuUserState()`：创建管理站点用户状态（含 all_menu/sidebar_menu/menuLoaded）。\n- `createMenuUserGetters()`：创建管理站点用户 getters（含菜单相关 getters）。\n- `createMenuUserActions(options)`：创建管理站点 actions（菜单加载、SSO 恢复、状态维护）。\n- `filterSidebarMenu(menus, options?)`：递归过滤不应在侧边栏展示的菜单类别。\n- `syncFromAuthStoreToStore(store, options?)`：从统一登录缓存恢复用户信息到 store。\n- `fetchUserMenuForStore(store, options)`：请求后端菜单并写入 `all_menu/sidebar_menu`。\n\n最小示例：\n\n```ts\nimport {\n  createBaseUserState,\n  createBaseUserGetters,\n  createBaseUserActions,\n  createMenuUserState,\n  createMenuUserGetters,\n  createMenuUserActions,\n  filterSidebarMenu,\n  syncFromAuthStoreToStore,\n  fetchUserMenuForStore\n} from '@litianxiang/portal-core'\n\n// 轻量站点\nconst baseState = createBaseUserState()\nconst baseGetters = createBaseUserGetters()\nconst baseActions = createBaseUserActions()\n\n// 管理站点\nconst menuState = createMenuUserState()\nconst menuGetters = createMenuUserGetters()\nconst menuActions = createMenuUserActions({ http, site: 'manage', transformMenuData, getALLMenu })\n\nconst restored = syncFromAuthStoreToStore(menuState)\nconst sidebar = filterSidebarMenu(menuState.all_menu)\nawait fetchUserMenuForStore(menuState, { http, site: 'manage', transformMenuData, getALLMenu })\n```\n\n### tab\n\n- `addTab(tabs, tab)`：新增标签页（同路径不重复）。\n- `removeTab(tabs, path)`：按路径删除标签页。\n- `closeOthers(tabs, path, homePath?)`：关闭除当前与首页外的标签页。\n- `closeLeft(tabs, path, homePath?)`：关闭当前左侧标签页（首页保留）。\n- `closeRight(tabs, path, homePath?)`：关闭当前右侧标签页（首页保留）。\n- `closeAll(tabs)`：关闭全部可关闭标签页。\n- `createTabStoreOptions(homePath?)`：生成可直接用于 Pinia 的 Tab Store 配置。\n\n最小示例：\n\n```ts\nimport {\n  addTab,\n  removeTab,\n  closeOthers,\n  closeLeft,\n  closeRight,\n  closeAll,\n  createTabStoreOptions\n} from '@litianxiang/portal-core'\n\nlet tabs = addTab([], { title: '首页', path: '/main/home', closable: false, keepAlive: true })\ntabs = addTab(tabs, { title: '用户管理', path: '/system/user', closable: true, keepAlive: true })\ntabs = closeOthers(tabs, '/system/user')\ntabs = closeLeft(tabs, '/system/user')\ntabs = closeRight(tabs, '/system/user')\ntabs = removeTab(tabs, '/system/user')\ntabs = closeAll(tabs)\n\nconst tabStoreOptions = createTabStoreOptions('/main/home')\n```\n\n### loading\n\n- `createLoadingStoreOptions()`：生成可直接用于 Pinia 的 Loading Store 配置。\n\n最小示例：\n\n```ts\nimport { createLoadingStoreOptions } from '@litianxiang/portal-core'\n\nconst loadingStoreOptions = createLoadingStoreOptions()\n```\n\n### time\n\n- `formatTime(date, format?)`：按指定格式输出时间字符串。\n- `humanizeTime(date)`：输出相对时间（如“3分钟前”）。\n- `timeDiff(start, end?)`：计算时间差（毫秒）。\n- `formatToMonthDay(date)`：格式化为 `MM-DD`。\n- `createRange(start, end)`：生成有序时间区间（自动处理先后）。\n- `formatRange(start, end, format?)`：格式化时间区间字符串。\n- `getPresetRange(key, now?)`：获取常用预设区间（今日/近7天/本月等）。\n- `isInRange(value, range)`：判断时间是否落在区间内（含边界）。\n- `useTime()`：组合导出以上时间工具。\n\n最小示例：\n\n```ts\nimport {\n  formatTime,\n  humanizeTime,\n  timeDiff,\n  formatToMonthDay,\n  createRange,\n  formatRange,\n  getPresetRange,\n  isInRange,\n  useTime\n} from '@litianxiang/portal-core'\n\nconst t1 = formatTime(new Date())\nconst t2 = humanizeTime(Date.now() - 60 * 1000)\nconst diff = timeDiff('2026-01-01')\nconst md = formatToMonthDay(new Date())\nconst range = createRange('2026-01-01', '2026-01-31')\nconst text = formatRange('2026-01-01', '2026-01-31')\nconst preset = getPresetRange('last7days')\nconst inRange = isInRange(new Date(), range)\nconst timeUtils = useTime()\n```\n\n### number\n\n- `formatToYi(value, decimals?)`：按“亿元”单位格式化数值。\n- `formatToWanShou(value, decimals?)`：按“万手”单位格式化数值。\n- `formatWanYuanToYi(value, decimals?)`：将“万元”转换并格式化为“亿元”。\n\n最小示例：\n\n```ts\nimport { formatToYi, formatToWanShou, formatWanYuanToYi } from '@litianxiang/portal-core'\n\nconst a = formatToYi(123000000)\nconst b = formatToWanShou(560000)\nconst c = formatWanYuanToYi(50000)\n```\n\n### theme\n\n- `initTheme()`：从本地缓存读取主题配置并初始化。\n- `applyTheme(config)`：将主题变量应用到根节点 CSS 变量。\n- `useThemeWatcher(config)`：监听主题变化并自动持久化。\n\n最小示例：\n\n```ts\nimport { initTheme, applyTheme, useThemeWatcher } from '@litianxiang/portal-core'\n\nconst theme = initTheme()\napplyTheme(theme)\nuseThemeWatcher(theme)\n```\n\n### i18n\n\n- `createPortalI18n(options)`：创建并返回统一配置的 `vue-i18n` 实例。\n\n最小示例：\n\n```ts\nimport { createPortalI18n } from '@litianxiang/portal-core'\n\nconst i18n = createPortalI18n({\n  messages: {\n    'zh-CN': { common: { ok: '确定' } },\n    'en-US': { common: { ok: 'OK' } }\n  }\n})\n```\n\n## 业务方约定\n\n### userStore（最小能力）\n\n- `getUserAccessToken`\n- `getUserRefreshToken`\n- `getUserLastActiveTime`\n- `setUserAccessToken(token)`\n- `setUserRefreshToken(token)`\n- `setUserLastActiveTime(ts)`\n- `syncFromAuthStore()`\n- `clearUserInfo()`\n\n管理站点再补充：\n\n- `isMenuLoaded`\n- `resetMenuLoaded()`\n- `fetchUserMenu()`\n- `getUserALLMenu`\n\n### 路由结构约定\n\n`createAppRouter` 会把动态菜单路由挂到 `name: 'main'` 的节点下，业务静态路由需提供该节点。\n\n### 视图解析约定\n\n菜单 path 会按以下优先级解析视图：\n\n1. `/src/views/main${path}.vue`\n2. `/src/views${path}.vue`\n\n## 常见问题\n\n### 1) 刷新后跳登录\n\n先检查 `syncFromAuthStore()` 是否正确从统一登录缓存恢复 token。\n\n### 2) 401 循环跳转\n\n检查是否重复创建多个 http 实例，或在 401 处理中重复手动跳转。\n\n### 3) 菜单加载后白屏\n\n检查菜单 path 与实际视图文件是否匹配（含 `/main` 约定）。\n\n## 本地开发\n\n```bash\npnpm install\npnpm run build\npnpm run pack:check\n```\n\n## 发布流程\n\n1. 更新版本号（patch 递增）\n2. 执行 `pnpm run pack:check`\n3. 发布：`npm publish --access public --registry=https://registry.npmjs.org/`\n","readmeFilename":"README.md"}