{"_id":"multi-lane-manager","_rev":"37-70524a06203731e5a2156d409242c56e","name":"multi-lane-manager","dist-tags":{"latest":"1.5.8"},"versions":{"0.1.0":{"name":"multi-lane-manager","version":"0.1.0","keywords":["multi-lane","swimlane","nacos","service-registry","service-discovery","microservices","feature-flag","canary","blue-green","nuxt","auto-config"],"author":{"name":"Your Name"},"license":"MIT","_id":"multi-lane-manager@0.1.0","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"homepage":"https://github.com/yourusername/nuxt3-auth-example#readme","bugs":{"url":"https://github.com/yourusername/nuxt3-auth-example/issues"},"dist":{"shasum":"a480c59acbef181b843b7b436241c96a496ae21d","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-0.1.0.tgz","fileCount":14,"integrity":"sha512-bTB1W+xGMouSJ+30MCFyI9LCJKr994Yc2y637vTFlkLEcXB15ZOqQyF1xks8klOYulZFoZ0muJHbaLOxYnokOw==","signatures":[{"sig":"MEQCIA//dJwR9DhtIPWhSiVA6pNcqsvxkGO9dHc6ZTgn/9JnAiBhx7KMsoA2aw3HK2R6gnZKsdYZaMVV63PcAvk+DV6RnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114167},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./runtime":{"types":"./dist/runtime/index.d.ts","import":"./dist/runtime/index.js","require":"./dist/runtime/index.cjs"}},"gitHead":"0ea79c87a87fc8f9c8c326295d8f435e009ef88a","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"repository":{"url":"git+https://github.com/yourusername/nuxt3-auth-example.git","type":"git","directory":"packages/multi-lane-manager"},"_npmVersion":"10.9.2","description":"A Node.js component for managing multi-lane deployments with Nacos service registry, supporting service registration, heartbeat, and graceful shutdown","directories":{},"_nodeVersion":"22.13.1","dependencies":{"h3":"^1.8.0","defu":"^6.1.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","nacos":"^2.2.1","@nuxt/kit":"^3.8.0","typescript":"^5.3.3","@types/node":"^20.11.16"},"peerDependencies":{"nuxt":"^3.8.0","nacos":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_0.1.0_1747119183006_0.656251491230373","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"multi-lane-manager","version":"1.0.0","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.0.0","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"39632e7dcfbcf6c42d89c9a1d3d7b13a993d3e8b","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.0.0.tgz","fileCount":26,"integrity":"sha512-3iP9CAu+zgXH0mDuv7t0hsNuCSCzjQSDy5RoPMgmsbIfwHGJDX5xP91G9uAa6/6Bt/h+NoFaPH7VeSm+qKv7vw==","signatures":[{"sig":"MEUCIQDQjJfTtazUVA4RUqpnGXl6vrcZoveLE98SRb6gH+ndyAIgDfdWFSywEGKdzeO9HaHOwZuaTxnk7nuFSIlRjZAfoSk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161506},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"0ea79c87a87fc8f9c8c326295d8f435e009ef88a","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.0.0_1747236430443_0.14153569564320634","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"multi-lane-manager","version":"1.0.1","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.0.1","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"c137994b3e0bce7bd98bbee88b420fd95a3b8c0b","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.0.1.tgz","fileCount":46,"integrity":"sha512-eGnkZPQY/hs260KPEHlf5WnJHWvzCYv3sR4hNd24GGiQYAB2P+Nmgg011rBq5ExQTSBvF7lIdFzB5mSU0MJ0jg==","signatures":[{"sig":"MEUCIQDUVwemthu4zMmUHy19UIXcxrKbxwtp0zdOuvCvbrcKhAIgehYWosXn5MeaPbCFprnPUcoCERX7wf2Kg3d0fYQN+mw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162602},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"0ea79c87a87fc8f9c8c326295d8f435e009ef88a","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.0.1_1747242913504_0.6604479781581343","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"multi-lane-manager","version":"1.1.0","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.1.0","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"6ea54e2b3afed3bb7b1066fe06aed18431ba043c","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.1.0.tgz","fileCount":46,"integrity":"sha512-treijYKpwMrtzj9MOlViaMgK4FE0nsovdKCm9Wsh0HxhUbILGMn76DeDxPaPBRFUuEwbd2fCOQiM6KxvvtBOeQ==","signatures":[{"sig":"MEUCIQCzYGuIor15y692vYGmU5mXB5ocNYHxtaSFpXwoLDV+OQIgZ9NZOXAbpS/+VlXhyoa9b1SaT0fvfnBa+b/cUyV/oyM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187053},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"0ea79c87a87fc8f9c8c326295d8f435e009ef88a","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.1.0_1747243753355_0.18312346314741723","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"multi-lane-manager","version":"1.1.1","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.1.1","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"32922a9ec5d74df96bd7eba20de1f500b25fec71","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.1.1.tgz","fileCount":46,"integrity":"sha512-eyMH6L528BjuFLl89pSdFraLpBBHJi12rRSawBFUDuz+H2w9ygmiC45t7gMORPwZA1Pc0sPfAH0sHYOpZ52HbA==","signatures":[{"sig":"MEQCIFARYRHeY6LSYyP113xO6llXdaLiR4JwMZmZlq1GFZPkAiA9L5NdHlZxef5oyBnWfxuVyu78T/QWJVRYnFaFJEWlkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187053},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"c318bc99cda229356f756dfab04b955ad08a8f7c","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.1.1_1747277392443_0.01649100621016375","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"multi-lane-manager","version":"1.1.2","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.1.2","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"0a98398bf77bbf75223da977b18a8a1c1d713baf","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.1.2.tgz","fileCount":50,"integrity":"sha512-znIqKQ+GNyCz6AsrBp/PcBsc5aokJTN802n6H83jZzWfGBTy+4vYgIFjCSKEy6Z3vMN6vHQ7LNOgtb/hjghn5g==","signatures":[{"sig":"MEYCIQC7pstfxcUQ1uNXKC78n/BeOD5zU+2I5tDeaHXphoznSgIhALwKm3DxGpL7PkPKgRF4pPANt9qqoE/+3IStyX3clXIQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245552},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.1.2_1747622341650_0.8034178674184198","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"multi-lane-manager","version":"1.1.5","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.1.5","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"de57c517f67b0bbee42541ba9b45e35c2c318960","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.1.5.tgz","fileCount":50,"integrity":"sha512-FKLb+f/gbOHAu+OYObD14PzXf9Z4AIHXztXCBASOC45Deb/UAfgQ7d8l67gAyT0lARwNjGbFPjCqtt0iVu59Qw==","signatures":[{"sig":"MEQCIDl4LTpk+YgkxX5L6+5OWVD8iKJRzk/7C5WT3u+wiMRoAiAfjQG6E1As/A09UsJcyXDRXD68XEVgeebWG5GMW5Ok6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260780},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.1.5_1747624643740_0.9779886763528105","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"multi-lane-manager","version":"1.1.6","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.1.6","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"b354299fcfaac80e03ed6dc4f6a4ebbf63444ac9","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.1.6.tgz","fileCount":53,"integrity":"sha512-RqjV3A2ZDTL60LNCDYaOl0JVVKYay7cmw2aYRAqQ5pOAynHXvYE0ZfloF1Q6Pmvdd4rR8l77Te9OwzYNeUee0A==","signatures":[{"sig":"MEUCIQDL1aaJsNrMpu3b3ob3zbm1vW+yJ2uCD+C7kszGGxQ7LAIgUPRsjumnf2z/ctM/BbO/gc7TTIZP/PZjXCoL9YBcFSM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273609},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.1.6_1747625882603_0.7384693049423725","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"multi-lane-manager","version":"1.1.7","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.1.7","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"543e358710221ba6cc8708598fe8f2b0524fccf8","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.1.7.tgz","fileCount":53,"integrity":"sha512-rvHXr426o2dqbxpx0b7GmbwG9juX2IlgYNFEPgjtg71M53OZcHtTCCgA28edIlCjZGbyGAWrWHCAMqB9h7uOfA==","signatures":[{"sig":"MEYCIQCi7t/9u9CHzqz+UMaqsVWZhChQhHBHkRCrYUn+5Vm+2gIhANHQRFLgLqECrOGvfLmd9Ov1oAa25hIdxkECpsCUGmJc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275310},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.1.7_1747626557012_0.4169336842667615","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"multi-lane-manager","version":"1.1.8","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.1.8","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"d5b6327d25aa9b027360c1e632ffa035bd74f881","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.1.8.tgz","fileCount":53,"integrity":"sha512-KStBVtz9AXMkN6o9GxYNL5vS0KCNqyhOBMDUEoZBCBqh7jqAx05SMH+Y1Dun93kXAnNj8HDcmKt3xFvFZkzO+g==","signatures":[{"sig":"MEQCIA/zWJpZ/Hhi65SHaWOfWG1X3m1cAjz7WfvDMeuYYDyeAiBixZht/LK7HagNvAPPRAYm/JtWBimXg1Td9AizdTrFYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275256},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.1.8_1747626717874_0.7874996937290362","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"multi-lane-manager","version":"1.1.9","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.1.9","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"93fb2551c37b05968850a1d44e650d1772d73df3","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.1.9.tgz","fileCount":53,"integrity":"sha512-dA7uUuDl1l+f9okHSe9NGb3393bqxOqOvCehWkVCrrssGqaf3vf3tSZ400YN5iq7nYI3yV4MU7HTFuTc/cRVqA==","signatures":[{"sig":"MEYCIQC6lEeXA7/U3gcWZcJdwxvjg0Fms7Yh60dt45Vb+MO4kwIhAKMFg00UrqohB6ZpPgs0SkCQk3h4xMgT7Pdk74ecine5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275256},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.1.9_1747626816585_0.14894713202476373","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"multi-lane-manager","version":"1.1.10","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.1.10","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"c82a09b9ea9f4915cf906606f2f47e0193829094","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.1.10.tgz","fileCount":53,"integrity":"sha512-F6fuXw/0J+2ZHHCJxX0dMIhJUfjAtZD6i+6U19WFOJFcohodEFKeWZHJCJQ4nRKQpNTvzA6XIY/aYUNbmQ8nCw==","signatures":[{"sig":"MEYCIQC+YmjxpyJuppMBL+AvhRmXcagbaZ0WB0xHlgaK2/00VQIhAPSEv/NEBvIjFavSObLzdCjHfq10yR1eaBB8cwVZHiVD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275205},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.1.10_1747627042113_0.7794851195700883","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"multi-lane-manager","version":"1.2.0","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.2.0","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"99bdc328d742300eef886dc3fbbd24b6034e00dc","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.2.0.tgz","fileCount":53,"integrity":"sha512-Pa3EmDkQlzk7t/b6dNOnsL2gNEbafvuBVHYALFM2FhtkOLWWrnblEX9hFCGnl/09CtkdCZlvg/9oXJkuwPUqLQ==","signatures":[{"sig":"MEUCIQD4GKTFNaY8mKGp3gUWvnKDsEY87q1ztA2U0IF55aLuCQIgfGxKDeUfCZDhWlXSfg5uYW/s9RnOjvraszXAz/MfALo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275204},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.2.0_1747627228445_0.9426820159562048","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"multi-lane-manager","version":"1.2.1","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.2.1","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"6f748a6c219ed1876d2efc399748df1aaea08ef1","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.2.1.tgz","fileCount":53,"integrity":"sha512-SyRSbX+l+dS4JadkLa3NNV+P19zN7GHzkZnQBDUNx86GoVXtxJwM7MFvd7U6vyNsb/rInNjdUUV/VolQH8O6Fw==","signatures":[{"sig":"MEQCIDva3j3nmfkud9aRpPF8sibKg++73sZI2vt5V+XMxY16AiB6z66IqslcjwBm6MarfUJNG7AnzdFOhAg134UeoJHkIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284124},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.2.1_1747627725947_0.4266852531118257","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"multi-lane-manager","version":"1.2.2","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.2.2","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"ec1d415fe8357018bda4bc2d31925beaaf8f8451","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.2.2.tgz","fileCount":53,"integrity":"sha512-xtLLE4+nOrajNHcdl1K+TW3sVPIZZzIaOxUr1AB5o0FWpsPjVowBKHCYOfyauTffuds1mOSBLNfJ5zxTsEPhYw==","signatures":[{"sig":"MEQCIDaTSIOpEz/s1t9ocrAxjzDLTZJ6873dY5g4ivXkdQT2AiAon/Pz0WvXnQnnLvvXmgTVGV78v3ZX+FSwc2WjiH7MkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284124},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.2.2_1747627779196_0.4078056831618435","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"multi-lane-manager","version":"1.2.3","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.2.3","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"003e507cf68c3d8038f93e691e39f8247057c89c","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.2.3.tgz","fileCount":53,"integrity":"sha512-g2JZwm693yTJvlZ0FhsGqwwp1Lu3dLsqST+SvuN97QlrX6DT6J6JRLhlquICHsXwQLTZ/Up3xWELLiq6dvl+Uw==","signatures":[{"sig":"MEQCIAWWAuIguyO9b1lTY3Cr07gbOhXrpl4D5oiUP1fBo2+BAiA/1a8irEoBY+OPSNJ6hxx1WiXPzvN662/IRLm2vL8o8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284492},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.2.3_1747628042880_0.48415102758264084","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"multi-lane-manager","version":"1.2.5","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.2.5","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"59216c02e3388ef85acdab69472c58827c2e760f","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.2.5.tgz","fileCount":53,"integrity":"sha512-CZdfG+MPWGQtRLelf5U46wn0smhDCXsWJE0cmK25QntVMYsNmcuTttI5u0YJjErVRToFmjaDOYp/10XvH14Kdw==","signatures":[{"sig":"MEUCIGLyZbY+iF/IRuFnRL8WYOApfhpmGnka64uJNq4iAK6cAiEA8MfJRZoaCxJ4KuQru80bcsejmKRTGn2PKo3zEzvTC8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284492},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.2.5_1747628067955_0.9987703665392691","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"multi-lane-manager","version":"1.2.6","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.2.6","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"02c03ae70fe6cfbcbe37d212b7e52ebfd9a6ebe8","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.2.6.tgz","fileCount":53,"integrity":"sha512-HjoGpiHxRvg0/Ria1qbterdmCTzL7A0+a4PEpZPK11DvkKb54MeY7KwqxSsk2AIKqbjJggQ9KevRe88SwMcAVg==","signatures":[{"sig":"MEUCIGXgAYSxd+Mjh37oJIVV8aJB/jNsHCMtBXcg2vG6zkFjAiEAt8MFAAfQPd21MQ/XO29SPcKEWH6Q4HbXHiT/adH74js=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287599},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.2.6_1747628486221_0.10532111109635167","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"multi-lane-manager","version":"1.2.7","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.2.7","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"a698d6123d01463bf4069d70ab02c18392b2b2d1","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.2.7.tgz","fileCount":53,"integrity":"sha512-FCpM7GoWznIh+TfN9aEPskgvaX/fxPDWdGw1Rd/PDB8nyvswNyM/R7ebdIOzsoxBzVZYPVsTLXLpVSFoxrn8iA==","signatures":[{"sig":"MEUCIQD7XR3qoaRgQXwhg1TXLWoNoJ8BNDTQAWMUrtF3sm2QIgIgJM2iyRMhy0OmZSNxo+2c4OrbNs0cUN3T8fX67afbKuo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287605},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.2.7_1747628906535_0.21991590757024726","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"multi-lane-manager","version":"1.2.8","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.2.8","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"b746dacede0746b6cd582f1c82248261ed578c9d","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.2.8.tgz","fileCount":53,"integrity":"sha512-xQkJurWpWTL5+Ez1JspHWZYUeyKcBJXmzRQSlYZQthEE32aZH8ddm54K7xXwkZThDMyUoyG4xQLhFIJlwh+jeQ==","signatures":[{"sig":"MEQCIGvIHfLQnlosRChTr8N2RR3mXNtJi9faBWSFJyJBfSTWAiAIB0ER7/QC7pzuihi/0hXIWlrA/4DbEFlubLhXXkxScw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293213},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.2.8_1747629309048_0.8793946695060235","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"multi-lane-manager","version":"1.2.9","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.2.9","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"eeefaaa9079cc040547d9067fa955ec213137f00","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.2.9.tgz","fileCount":53,"integrity":"sha512-3qPSMReaA2lJUoPdBRGFZ6buuWM92e66tGu83tXmy0ELO4beUYMK/5xwzJf/7sLJm56Chiy8sfUYRgIM0CIMwQ==","signatures":[{"sig":"MEYCIQD0yi83xKX7kKvy7a2M1GOkGFMwhHXYVQZyCzlxzjL7FQIhAM1qR9jRiBzwWsWlWynlgldj/QkScW17+coa29E/B87l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299104},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.2.9_1747629555486_0.703595522622986","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"multi-lane-manager","version":"1.3.0","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.3.0","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"cbf90fee2af03e040aeada9489649b988770f1df","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.3.0.tgz","fileCount":53,"integrity":"sha512-BlNATWuzf5NmPA2qjX//dKwlg76n0J+OeJHaZbiWqXpNxGsIRwonSNvzIuBcX0MXigaJQI/y+lgnwJmtD5laLQ==","signatures":[{"sig":"MEYCIQDtURoayoujm9GwdLbfRLbbYmiiZr2blj/ctjThdCIWCgIhAIN+WB4xq1hars6iRngPEHLM1NKswppy4B/3EaGCFdWG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299104},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.3.0_1747629579352_0.20563573055910989","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"multi-lane-manager","version":"1.3.1","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.3.1","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"f758df19d5a255426e58c3392230f40008748fac","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.3.1.tgz","fileCount":53,"integrity":"sha512-L7B2NLZfj/5ZvoMjPDx9EHaQYoTDXQspK6BMH+eUodxWPoKme88m1dit+vTyTvuQ1SHl1N52XUvKwjpsnOPvDw==","signatures":[{"sig":"MEQCIBANIqVaKybrgY/yBHxGRg/0fC+nfYOz93l2q1tV49J1AiAZVm8b6xxLmndakYli4EMI4ksVswAZz7u0+Ap2gyEEBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":298938},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.3.1_1747634060532_0.29825584024770646","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"multi-lane-manager","version":"1.3.2","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.3.2","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"ba0d7047afab80105c6cf2e88140c60376082458","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.3.2.tgz","fileCount":53,"integrity":"sha512-WcDEGbOWK3BWsRNtVwN2zgIJrVtaRkDeBFSHWiAkGoOpwlerYAePicVbIMjlElR7LY/7DD+9mhHUhmHz2FZb6g==","signatures":[{"sig":"MEUCIQC6pk/lmvZ6JjM19s23MIRICjD43z6IAxVmTvn6qIz0ZwIgYYGcqzYL10jpK67hZ+4jq9d1ufYMAL9U2Yp3/gGXt24=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":298938},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.3.2_1747634086171_0.9608269682653285","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"multi-lane-manager","version":"1.3.3","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.3.3","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"67e2ab7227c00163a1338000db72d31989c806a2","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.3.3.tgz","fileCount":53,"integrity":"sha512-z19A+4vd8kQE1yYd0X8dl47BxXPnY3dyFDUxjp6UwXXXmJC6j/II6VUYo8FMxxWVYSct9YGeigzXFy5eEAiWCA==","signatures":[{"sig":"MEUCIFxDztmgw7oMNiftzYpo5DZMMaC5fJzOCT3fkCHYNd0ZAiEA3hBdYvOaj7TIQ6wRJEI1o28CxSKmgNESvi08/SwQdF0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":306210},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.3.3_1747635246070_0.8730751623096968","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"multi-lane-manager","version":"1.3.5","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.3.5","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"d5fe1809d6f7e126d602d4855e6440b01d43599b","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.3.5.tgz","fileCount":53,"integrity":"sha512-dtInmiXBwpBZ6pQ/1paPub5HY98KyJVyN3BsWb1UA9IG/PiU26BBLZKeOy6LqLCW7Ozq+ugD+A0MJbr29QjXOw==","signatures":[{"sig":"MEUCIQDq47AyQJXgp1YC3z43Wk3OZl60VnErOZBlmbo2ZuGIAAIgRAbZkmDLKpxZV2qyyThB7PgcPz+uos8rV1lTOIyrnEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":306210},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.3.5_1747635284165_0.3380751164957425","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"multi-lane-manager","version":"1.3.6","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.3.6","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"8e6aec1a0a8397a02450785ac71a33b8a3bc47c9","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.3.6.tgz","fileCount":53,"integrity":"sha512-oH4SWmt2DHBhD1NqE2/B4WhCqnyMUJKq1VX1bSnjUWx061TFB/ff+o83C1EjMDXsr6PfJUBSyxdguNmRejB9LA==","signatures":[{"sig":"MEUCIF0cnk1ef3GFgWIjda7gKoOXr3RXaQ1opximDbt117ygAiEAsEaTbTQLWs7ipD6t1go2FD4hAQDyW53Weemt0CiBIsA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":306210},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.3.6_1747635312039_0.1287295285998975","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"name":"multi-lane-manager","version":"1.3.7","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.3.7","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"c0e2934e5cf95f24497468414f6d3685145e5442","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.3.7.tgz","fileCount":53,"integrity":"sha512-75pVzm4FPTfFgZ7334G7dOA1OjDVpobf3KgBfkHHTLoR+1K21YuOo/nXzpwOhPuQBcwld/5mfrwcqplxodgcpA==","signatures":[{"sig":"MEQCICJY6J/bZW6umNbou23xpmeiIgwOo5GkWs42weKa7NJEAiB00I3/EybUh21UjPyG4M7RAFZtwgvR/1ugC1nQChrCcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":306210},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.3.7_1747635379479_0.958809096065167","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"multi-lane-manager","version":"1.5.0","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.5.0","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"9f7b87ad6ab3689c233ffb03304a08380f4736df","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.5.0.tgz","fileCount":53,"integrity":"sha512-l42I0UlYVnvE2W67WrpaCafdxTvP4HxU+T+IWtHVVcBztWYgECH3piyKi4dxdqJUwUXvwaR7AgXbIHg+0+G9Pw==","signatures":[{"sig":"MEYCIQCMQa1f0F9bpgLMkNp8pqdYZxlL8AGuS3bqp0ryxikyugIhAJooFkoLyySlHa9SElci5sRmgxl3FtC2w/UIXwJSOzIh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321807},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.5.0_1747636070913_0.49358455687972524","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"multi-lane-manager","version":"1.5.1","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.5.1","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"fbdcee1e84984e41387cf1e30541129f7de3971e","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.5.1.tgz","fileCount":53,"integrity":"sha512-WoEPrW6X37OsZOQsjDALtzJcqCaUNpMc7Ml5OaqNHb+aSffovXSnHy6++LUcwZvoh9dbTbKIXFK7WDZ9bk5F5A==","signatures":[{"sig":"MEUCIQCBzWm3AfCb6Do8Qopu71bpHHo8FL/xEX2HNb6axdAfcAIgA3IbkCDICTD61syjoZ6Y+3Wdg59UdSK2rFeOPZGS1PM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328602},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.5.1_1747637220547_0.2461293785726837","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"multi-lane-manager","version":"1.5.2","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.5.2","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"10dc8c400f53f26ff8039015d6bce2e68deadb73","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.5.2.tgz","fileCount":53,"integrity":"sha512-yrZ9B+NtlNUoWMBjkr2sVQQH8EFjS1thQUS/AnWGzcoy3kzFxWYnnApEHlWwEknQq70q+KR4Ee++KRCiPvNSpQ==","signatures":[{"sig":"MEUCIGXtgM6sQgYVUj51VBnGIJNjGebyxqtvzd82UaYm15ZVAiEAl7DhAPE8ccZg+gLWZ3XK+ZKzasWlPDY8KIuVOwNsY8k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328602},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.5.2_1747637315767_0.21870498970078422","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"multi-lane-manager","version":"1.5.3","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.5.3","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"162476a01f489b8e10b9a194cccd157ff5b5215f","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.5.3.tgz","fileCount":53,"integrity":"sha512-rOIyyJV0jRki2p2lV+7R9fRufK2bIAqCLy6vqkOut63QUxR+3CYaToGeFVTS4qnBxCCYJv/N4AIgx4i0GTFRiw==","signatures":[{"sig":"MEUCIQCJ+sLZPDphaAN1x+scJq3LY0YP+YgkyqUPVt6rhXAPiwIgTNm+m443Qc5QR5tLq5uq38WcsS+8sGv9HWM1yRl0PYc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328602},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"3afda4c65428c61539795ad89ee825f3d4ec02d2","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.5.3_1747638072699_0.4684103708610845","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"multi-lane-manager","version":"1.5.5","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.5.5","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"5fa02340ef25c0aded843993c53b85bf615dbe8b","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.5.5.tgz","fileCount":52,"integrity":"sha512-JsjMlClE5dEETgbOWkY6J/ssY5Vkyi7kHpuFyaFTVXfHAaQUSpo5yuzbhWGF5VmXaYSxqcR9anHX74daQrw/mA==","signatures":[{"sig":"MEYCIQCSqm9hOeMS/m8M2C0VPIA7AfY8XLmDMp9exZbf/qOBqwIhANvmNfVJuIW7b1cY6be2hfng494hUhSgFJJKNPoEM1Rs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":358898},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"30177411b3e922c93f5c1fb36bcabb3aeec8c9fd","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.5.5_1747986277671_0.8513093979940414","host":"s3://npm-registry-packages-npm-production"}},"1.5.6":{"name":"multi-lane-manager","version":"1.5.6","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.5.6","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"90126c31dd56ecbf45ebe4133d6a62a0b3fd1510","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.5.6.tgz","fileCount":52,"integrity":"sha512-nI4WxauYE7pWzcnzF8NYFYb2PmgyvZISbUjpU9WpbBSwaCJVo1GNAixcd4y9oXDCOofi8+O8s9kImT/eFRe83g==","signatures":[{"sig":"MEQCIBmkOg+X0YdBioBk5pGOgy8EwUkfypmSzJ44KfLAaBwpAiAl4eeCNNEcxNcPUQnoLjJx3g+1/Fq4BWjii3t1RRo2OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":402278},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"30177411b3e922c93f5c1fb36bcabb3aeec8c9fd","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.5.6_1747989584829_0.8744681434937334","host":"s3://npm-registry-packages-npm-production"}},"1.5.7":{"name":"multi-lane-manager","version":"1.5.7","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@1.5.7","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"f95c25ccf23b1288367c82c9872307f8da2e3fea","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.5.7.tgz","fileCount":52,"integrity":"sha512-ioN0P/dPNuNOopAD5Ko/qonXmjJzarQEwqZTkxzuVTRijsx2HvB54VEI1s4lJyyME7V2FTozz9p8Cyqzc8dIcw==","signatures":[{"sig":"MEUCIFY8JVcDlfqi3JzF8fC9oLp5QFikkksMn4Xb5qn0li/BAiEA1deTfyXrF6Mh+HxEpe2Q/2PteJ5Yc8kWzijdc4NRg9o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":402315},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"e8382b9bf76bdf7bda85162c6a464d64b031ff78","scripts":{"dev":"nuxi dev playground","test":"jest","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","actor":{"name":"microkernel","type":"user","email":"microkernelart@gmail.com"},"email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_1.5.7_1750695666774_0.840224715525028","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"multi-lane-manager","version":"2.0.0","keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","_id":"multi-lane-manager@2.0.0","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"dist":{"shasum":"1eef55283ed84eae22a08bf3757de9c1434b409d","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-2.0.0.tgz","fileCount":78,"integrity":"sha512-bPjfQkfbOt9kzarwqhoIJIwafiBYmgsXUK/de9tXX6m1FqmJY784X61wDrHczMh1XGr6PGqTdv+od9Jtr3QGOA==","signatures":[{"sig":"MEUCIQCv/c75PUi8IuSXZK+2+KFBnDS4lhKyIbNCJXIvVmE/AgIgKDm4nZ1x8DD6rUgEgpdeFs4I+BdiHZhsLDpTzaMoHZs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":750926},"main":"./dist/index.mjs","type":"module","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"gitHead":"927297ae14be042679536b95c75fdc1d96ce922c","scripts":{"dev":"nuxi dev playground","test":"vitest run --config test/vitest.config.ts","build":"tsup --no-dts","test:ui":"vitest --ui --config test/vitest.config.ts","test:nacos":"vitest run test/nacos/ --config test/vitest.config.ts","test:nitro":"vitest run test/nitro/ --config test/vitest.config.ts","test:proxy":"vitest run test/proxy/ --config test/vitest.config.ts","test:watch":"vitest --config test/vitest.config.ts","build:types":"tsup","test:config":"vitest run test/config/ --config test/vitest.config.ts","test:logger":"vitest run test/logger/ --config test/vitest.config.ts","test:forward":"vitest run test/forward/ --config test/vitest.config.ts","test:coverage":"vitest run --coverage --config test/vitest.config.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"microkernel","actor":{"name":"microkernel","type":"user","email":"microkernelart@gmail.com"},"email":"microkernelart@gmail.com"},"_npmVersion":"10.9.2","description":"Nacos 泳道管理与请求路由组件","directories":{},"_nodeVersion":"22.13.1","dependencies":{"defu":"^6.1.4","axios":"^1.4.0","nacos":"^2.5.1","nanoid":"^5.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vitest":"^1.6.1","consola":"^3.2.3","@nuxt/kit":"^3.11.0","nitropack":"^2.8.1","@vitest/ui":"^1.6.1","typescript":"^5.4.2","@types/node":"^20.14.1","@nuxt/schema":"^3.8.2","@vitest/coverage-v8":"^1.6.1"},"peerDependencies":{"h3":"^1.11.1","nuxt":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/multi-lane-manager_2.0.0_1751211635204_0.24242467575061588","host":"s3://npm-registry-packages-npm-production"}},"1.5.8":{"name":"multi-lane-manager","version":"1.5.8","publishConfig":{"access":"public"},"description":"Nacos 泳道管理与请求路由组件","type":"module","main":"./dist/index.mjs","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs"},"./nuxt":{"import":"./dist/module.mjs"}},"scripts":{"dev":"nuxi dev playground","build":"tsup --no-dts","build:types":"tsup","prepublishOnly":"npm run build","test":"jest"},"keywords":["nacos","lane","nuxt","middleware"],"author":"","license":"ISC","dependencies":{"axios":"^1.4.0","defu":"^6.1.4","nanoid":"^5.0.5","nacos":"^2.5.1"},"peerDependencies":{"nuxt":"^3.0.0","h3":"^1.11.1"},"devDependencies":{"@nuxt/kit":"^3.11.0","@nuxt/schema":"^3.8.2","@types/node":"^20.14.1","consola":"^3.2.3","nitropack":"^2.8.1","tsup":"^8.0.2","typescript":"^5.4.2"},"_id":"multi-lane-manager@1.5.8","gitHead":"90b9ba6900bfa8118d8cdb5c3e66f31a9334d765","_nodeVersion":"22.13.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-EKH4UdBmklDuhuQGUm2J28hlddbkW9V6Ljrsm3nqy6aUJjn8RxS3Bv0E2+zV4R3QIcy+e8hUlrKII0f0rivVxA==","shasum":"11eb3e0f5fcdd8593133f72e2df5a843e0172da8","tarball":"https://registry.npmjs.org/multi-lane-manager/-/multi-lane-manager-1.5.8.tgz","fileCount":54,"unpackedSize":591515,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDH6oaQ3v+Hcmzi3rrz47pG/Gqr/X7+pxLKZEsFSBHGLAiEAmEAkwar/QIsMU2c2jJdGLPSlkmzg3vVuYnPtrq+JVLo="}]},"_npmUser":{"name":"microkernel","email":"microkernelart@gmail.com","actor":{"name":"microkernel","email":"microkernelart@gmail.com","type":"user"}},"directories":{},"maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/multi-lane-manager_1.5.8_1751349701007_0.03639500669971274"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-13T06:53:02.891Z","modified":"2025-07-01T06:01:41.422Z","0.1.0":"2025-05-13T06:53:03.180Z","1.0.0":"2025-05-14T15:27:10.622Z","1.0.1":"2025-05-14T17:15:13.701Z","1.1.0":"2025-05-14T17:29:13.530Z","1.1.1":"2025-05-15T02:49:52.628Z","1.1.2":"2025-05-19T02:39:02.057Z","1.1.5":"2025-05-19T03:17:23.971Z","1.1.6":"2025-05-19T03:38:02.811Z","1.1.7":"2025-05-19T03:49:17.238Z","1.1.8":"2025-05-19T03:51:58.066Z","1.1.9":"2025-05-19T03:53:36.836Z","1.1.10":"2025-05-19T03:57:22.309Z","1.2.0":"2025-05-19T04:00:28.672Z","1.2.1":"2025-05-19T04:08:46.179Z","1.2.2":"2025-05-19T04:09:39.388Z","1.2.3":"2025-05-19T04:14:03.085Z","1.2.5":"2025-05-19T04:14:28.181Z","1.2.6":"2025-05-19T04:21:26.407Z","1.2.7":"2025-05-19T04:28:26.713Z","1.2.8":"2025-05-19T04:35:09.245Z","1.2.9":"2025-05-19T04:39:15.678Z","1.3.0":"2025-05-19T04:39:39.533Z","1.3.1":"2025-05-19T05:54:20.696Z","1.3.2":"2025-05-19T05:54:46.358Z","1.3.3":"2025-05-19T06:14:06.283Z","1.3.5":"2025-05-19T06:14:44.398Z","1.3.6":"2025-05-19T06:15:12.326Z","1.3.7":"2025-05-19T06:16:19.678Z","1.5.0":"2025-05-19T06:27:51.107Z","1.5.1":"2025-05-19T06:47:00.718Z","1.5.2":"2025-05-19T06:48:35.944Z","1.5.3":"2025-05-19T07:01:12.913Z","1.5.5":"2025-05-23T07:44:37.862Z","1.5.6":"2025-05-23T08:39:44.993Z","1.5.7":"2025-06-23T16:21:07.006Z","2.0.0":"2025-06-29T15:40:35.412Z","1.5.8":"2025-07-01T06:01:41.228Z"},"license":"ISC","keywords":["nacos","lane","nuxt","middleware"],"description":"Nacos 泳道管理与请求路由组件","maintainers":[{"name":"microkernel","email":"microkernelart@gmail.com"}],"readme":"# Multi-Lane Manager\n\nMulti-Lane Manager 是一个 Nuxt 模块，提供基于 Nacos 的服务注册、发现和请求路由功能，用于在 Nuxt 应用中实现多泳道架构。\n\n## 多泳道架构实现原理\n\n### 架构概览\n\n多泳道架构通过 Nacos 服务注册与发现和请求拦截分发两大核心机制实现，使同一服务的不同实例能够并行运行并智能路由请求。\n\n```ascii\n┌─────────────────────────────────────────────────────────────────────────┐\n│                                                                         │\n│                           多泳道架构实现原理                              │\n│                                                                         │\n├─────────────────┐                              ┌─────────────────────────┤\n│                 │                              │                         │\n│  Nacos服务注册   │◄──────────┐  ┌──────────────►│  请求拦截与分发          │\n│                 │           │  │              │                         │\n└─────────────────┘           │  │              └─────────────────────────┘\n        │                     │  │                         │\n        ▼                     │  │                         ▼\n┌─────────────────┐           │  │              ┌─────────────────────────┐\n│ 服务启动自动注册  │           │  │              │ HTTP请求拦截            │\n└─────────────────┘           │  │              └─────────────────────────┘\n        │                     │  │                         │\n        ▼                     │  │                         ▼\n┌─────────────────┐           │  │              ┌─────────────────────────┐\n│ 心跳维持         │           │  │              │ 泳道ID提取              │\n└─────────────────┘           │  │              └─────────────────────────┘\n        │                     │  │                         │\n        ▼                     │  │                         ▼\n┌─────────────────┐           │  │              ┌─────────────────────────┐\n│ 优雅下线         │           │  │              │ 目标实例查询            │\n└─────────────────┘           │  │              └─────────────────────────┘\n        │                     │  │                         │\n        ▼                     │  │                         ▼\n┌─────────────────┐           │  │              ┌─────────────────────────┐\n│ 元数据管理       │───────────┘  └──────────────│ 请求转发                │\n└─────────────────┘                             └─────────────────────────┘\n```\n\n### 1. Nacos服务注册与发现\n\n**服务注册流程**：\n\n- 应用启动时，自动向Nacos注册当前服务实例\n- 注册信息包含：服务名称、IP地址、端口、泳道ID（作为元数据）\n- 启动定时任务，定期向Nacos发送心跳，维持实例健康状态\n- 应用关闭时，自动向Nacos注销服务实例\n\n**服务发现机制**：\n\n- 根据服务名称和目标泳道ID查询Nacos服务实例\n- 支持按心跳时间排序，优先选择最近心跳的健康实例\n- 使用负载均衡策略（默认轮询）选择目标实例\n- 支持实例健康检查，只选择健康的实例\n\n### 2. 请求拦截与分发\n\n**请求拦截**：\n\n- 通过Nitro插件和服务器中间件拦截所有HTTP请求\n- 支持拦截静态资源请求（如CSS/JS/HTML）和API请求\n\n**泳道识别**：\n\n- 从请求头（默认X-Lane-ID）或Cookie中提取目标泳道ID\n- 如果未指定泳道ID，尝试路由到baseline泳道\n- 如果当前实例已是目标泳道，直接在本地处理请求\n\n**请求路由**：\n\n- 根据目标泳道ID查询Nacos获取目标实例\n- 如果找到目标实例，将请求转发到目标实例\n- 如果未找到目标实例但指定了baseline泳道，尝试查找baseline泳道实例\n- 如果未找到任何匹配实例，在当前实例处理请求\n\n**请求转发**：\n\n- 保留原始请求的方法、路径、查询参数和请求体\n- 添加代理相关的请求头（X-Forwarded-For等）\n- 将目标实例的响应返回给客户端\n- 支持调试模式，提供详细的请求处理信息\n\n**故障转移与健壮性**：\n\n- 自动检测实例故障（连接失败、超时、502/503/504错误）\n- 智能故障转移到其他健康实例\n- 实例黑名单机制，避免重复请求故障实例\n- 自动重试机制，提高请求成功率\n- 实例健康状态自动恢复\n\n## 目录\n\n- [第一部分：使用指南](#第一部分使用指南)\n  - [什么是多泳道架构](#什么是多泳道架构)\n  - [功能特性](#功能特性)\n  - [安装步骤](#安装步骤)\n  - [多泳道部署示例](#多泳道部署示例)\n  - [生产环境部署](#生产环境部署)\n  - [常见问题解答](#常见问题解答)\n- [第二部分：Nitro 插件编写指南](#第二部分nitro-插件编写指南)\n  - [Nitro 插件基础](#nitro-插件基础)\n  - [插件生命周期](#插件生命周期)\n  - [注册 Nitro 插件](#注册-nitro-插件)\n  - [常用钩子](#常用钩子)\n  - [最佳实践](#最佳实践)\n  - [调试 Nitro 插件](#调试-nitro-插件)\n- [第三部分：实现细节](#第三部分实现细节)\n  - [模块结构](#模块结构)\n  - [核心文件说明](#核心文件说明)\n  - [类型定义](#类型定义)\n  - [导出函数](#导出函数)\n\n## 第一部分：使用指南\n\n## 什么是多泳道架构\n\n多泳道架构是一种微服务部署模式，允许同一个服务的多个实例在不同的环境或配置下并行运行。每个\"泳道\"代表一个独立的服务实例集合，具有自己的配置和状态。\n\n多泳道架构的优势：\n\n- 支持多版本并行部署\n- 便于 A/B 测试和灰度发布\n- 隔离测试环境和生产环境\n- 支持按团队或功能划分服务实例\n\n## 功能特性\n\n- 🚀 **服务自动注册**：应用启动时自动向 Nacos 注册服务\n- 🔄 **心跳维持**：自动维持与 Nacos 的心跳连接\n- 🔍 **服务发现**：基于泳道 ID 发现目标服务实例\n- 🔀 **请求转发**：自动将请求转发到目标泳道的服务实例\n- 🛑 **优雅下线**：应用关闭时自动注销服务\n- 🔄 **智能路由**：未指定泳道 ID 的请求会优先路由到 baseline 泳道\n\n## 安装步骤\n\n### 1. 安装 Multi-Lane Manager 模块\n\n在 Nuxt 项目中安装 Multi-Lane Manager 模块：\n\n```bash\n# 使用 npm\nnpm install multi-lane-manager\n\n# 使用 yarn\nyarn add multi-lane-manager\n\n# 使用 pnpm\npnpm add multi-lane-manager\n```\n\n### 2. 配置 Nuxt 项目\n\n在 `nuxt.config.ts` 文件中添加模块：\n\n```typescript\n// nuxt.config.ts\nexport default defineNuxtConfig({\n  modules: [\n    // 其他模块...\n    'multi-lane-manager/nuxt'\n  ],\n})\n```\n\n### 3. 配置环境变量\n\n创建 `.env` 文件或在启动命令中设置以下环境变量：\n\n#### 环境变量列表\n\n| 环境变量 | 必须/可选 | 默认值 | 说明 |\n|---------|----------|--------|------|\n| **服务标识配置** |  |  |  |\n| `SERVICE_NAME` | **必须** | 无 | 服务名称，用于在 Nacos 中注册服务。如果未设置，泳道功能将被禁用。可以通过以下方式获取：1) 此环境变量，2) 其他环境变量（NITRO_APP_NAME, APP_NAME, npm_package_name），3) package.json 的 name 字段 |\n| `NITRO_APP_NAME` | 可选 | 无 | Nitro 应用名称环境变量，当 SERVICE_NAME 未设置时使用 |\n| `APP_NAME` | 可选 | 无 | 应用名称环境变量，当 SERVICE_NAME 和 NITRO_APP_NAME 未设置时使用 |\n| `npm_package_name` | 可选 | 无 | npm 运行时提供的 package.json 中的 name 字段，当其他环境变量未设置时使用 |\n| **泳道配置** |  |  |  |\n| `LANE_ENABLE` | 可选 | false | 是否启用泳道功能 |\n| `LANE_ID` | 可选 | baseline | 当前服务的泳道 ID |\n| `LANE_TARGET_HEADER` | 可选 | X-Lane-ID | 目标泳道请求头键名 |\n| `LANE_COOKIE_ENABLE` | 可选 | true | 是否启用从 cookie 中检测泳道 ID |\n| **Nacos 服务器配置** |  |  |  |\n| `LANE_SERVER` | 可选 | localhost:8848 | Nacos 服务器地址和端口（格式：host:port） |\n| `LANE_NAMESPACE` | 可选 | public | Nacos 命名空间 |\n| `LANE_GROUP_NAME` | 可选 | DEFAULT_GROUP | Nacos 分组名称 |\n| **心跳配置** |  |  |  |\n| `LANE_HEARTBEAT_INTERVAL` | 可选 | 5000 | 心跳间隔（毫秒），建议与 Java 客户端保持一致 |\n| `LANE_INSTANCE_TTL` | 可选 | 15000 | 实例过期时间（毫秒），建议为心跳间隔的 3 倍 |\n| **端口配置** |  |  |  |\n| `NITRO_PORT` | 可选 | 3000 | Nitro 服务器端口，优先级高于 PORT |\n| `PORT` | 可选 | 3000 | 服务器端口，当 NITRO_PORT 未设置时使用 |\n| **主机配置** |  |  |  |\n| `HOST` | 可选 | 自动检测 | 服务IP地址，支持自动检测容器IP |\n| `POD_IP` | 可选 | 无 | Kubernetes环境下的Pod IP地址 |\n| `CONTAINER_IP` | 可选 | 无 | 容器环境下的IP地址 |\n| **超时配置** |  |  |  |\n| `LANE_PROXY_TIMEOUT` | 可选 | 15000 | 代理请求超时时间（毫秒） |\n| `LANE_REGISTRATION_TIMEOUT` | 可选 | 5000 | 注册请求超时时间（毫秒） |\n| **缓存配置** |  |  |  |\n| `NACOS_CACHE_TTL` | 可选 | 5000 | Nacos 实例查询缓存时间（毫秒） |\n| `LANE_CACHE_TTL` | 可选 | 5000 | 泳道缓存时间（毫秒），与 NACOS_CACHE_TTL 作用相同 |\n| **日志配置** |  |  |  |\n| `LOG_LEVEL` | 可选 | info | 日志级别，可选值: silent, fatal, error, warn, info, success, debug, trace, verbose |\n| `LANE_LOG_LEVEL` | 可选 | 同 LOG_LEVEL | 泳道管理器专用日志级别，优先级低于 LOG_LEVEL |\n\n#### 示例配置\n\n```env\n# 必须配置 - 服务标识\nSERVICE_NAME=your-service-name  # 服务名称（或通过 package.json 提供）\n\n# 泳道配置\nLANE_ENABLE=true\nLANE_ID=dev-lane  # 当前服务的泳道 ID\nLANE_TARGET_HEADER=X-Lane-ID  # 目标泳道请求头键名\n\n# Nacos 配置\nLANE_SERVER=localhost:8848  # Nacos 服务器地址和端口\nLANE_NAMESPACE=public  # Nacos 命名空间\nLANE_GROUP_NAME=DEFAULT_GROUP  # Nacos 分组名称\n\n# 心跳配置\nLANE_HEARTBEAT_INTERVAL=5000  # 心跳间隔（毫秒）\nLANE_INSTANCE_TTL=15000  # 实例过期时间（毫秒）\n\n# 端口配置\nNITRO_PORT=3000  # Nitro 服务器端口\n\n# 主机配置（可选，支持自动检测）\n# HOST=192.168.1.100  # 手动指定IP地址\n# POD_IP=10.244.0.10  # Kubernetes Pod IP（通常由K8s自动注入）\n# CONTAINER_IP=172.17.0.2  # 容器IP地址\n\n# 日志配置\nLOG_LEVEL=info  # 日志级别\n```\n\n### 4. 启动 Nacos 服务器\n\n确保 Nacos 服务器已经启动并可访问。如果没有 Nacos 服务器，可以使用 Docker 快速启动一个：\n\n```bash\ndocker run --name nacos-standalone -e MODE=standalone -e JVM_XMS=512m -e JVM_XMX=512m -e JVM_XMN=256m -p 8848:8848 -d nacos/nacos-server:latest\n```\n\n### 5. 启动应用\n\n```bash\nnpm run dev\n```\n\n启动后，应用将自动向 Nacos 注册服务，并开始发送心跳。\n\n## 多泳道部署示例\n\n### 部署多个泳道实例\n\n```bash\n# 启动 dev-lane 泳道实例\nNITRO_PORT=3001 LANE_ENABLE=true LANE_ID=dev-lane SERVICE_NAME=your-service npm run dev\n\n# 启动 test-lane 泳道实例\nNITRO_PORT=3002 LANE_ENABLE=true LANE_ID=test-lane SERVICE_NAME=your-service npm run dev\n```\n\n### 测试跨泳道请求\n\n```bash\n# 向 dev-lane 发送请求，但目标泳道为 test-lane\ncurl -H \"X-Lane-ID: test-lane\" http://localhost:3001/api/some-endpoint\n\n# 向 test-lane 发送请求，但目标泳道为 dev-lane\ncurl -H \"X-Lane-ID: dev-lane\" http://localhost:3002/api/some-endpoint\n\n# 不指定泳道ID的请求（将尝试路由到 baseline 泳道）\ncurl http://localhost:3001/api/some-endpoint\n```\n\n### baseline 泳道\n\n多泳道管理器引入了 \"baseline\" 泳道的概念，作为默认的基准泳道：\n\n1. **默认泳道ID**：如果应用启用了泳道功能但没有设置泳道ID，则默认使用 \"baseline\" 作为泳道ID\n2. **智能路由**：当收到一个没有指定泳道ID的请求时：\n   - 首先查询 Nacos 是否有 \"baseline\" 泳道的实例\n   - 如果有，则将请求路由到 \"baseline\" 泳道的实例\n   - 如果没有，则在当前实例处理请求\n\n这种设计有以下优势：\n\n- 提供了一个稳定的基准环境（baseline）\n- 未指定泳道的请求默认使用基准环境，确保一致的用户体验\n- 当基准环境不可用时，自动降级到当前实例处理，提高系统可用性\n\n## 生产环境部署\n\n在生产环境中部署多泳道架构时，建议：\n\n1. **使用环境变量注入配置**：\n\n   ```bash\n   # 生产环境启动命令示例\n   NODE_ENV=production LANE_ENABLE=true LANE_ID=prod-lane SERVICE_NAME=your-service LANE_SERVER=nacos.example.com:8848 node .output/server/index.mjs\n   ```\n\n2. **使用 PM2 或 Docker 管理进程**：\n\n   ```bash\n   # PM2 示例\n   pm2 start ecosystem.config.js\n\n   # Docker 示例\n   docker run -e LANE_ENABLE=true -e LANE_ID=prod-lane -e SERVICE_NAME=your-service -e LANE_SERVER=nacos.example.com:8848 -p 3000:3000 your-service-image\n   ```\n\n3. **配置健康检查**：\n   确保监控系统可以检查服务的健康状态，包括 Nacos 连接状态。\n\n4. **设置合理的心跳间隔和过期时间**：\n   在生产环境中，建议将心跳间隔设置为 5-10 秒，过期时间设置为心跳间隔的 2-3 倍。\n\n## 容器环境部署\n\n### Docker 部署\n\n在 Docker 容器中部署时，multi-lane-manager 会自动检测容器的IP地址：\n\n```dockerfile\n# Dockerfile\nFROM node:18-alpine\n\nWORKDIR /app\nCOPY . .\nRUN npm install\nRUN npm run build\n\n# 设置环境变量\nENV LANE_ENABLE=true\nENV LANE_ID=prod-lane\nENV SERVICE_NAME=your-service\nENV LANE_SERVER=nacos.example.com:8848\n\nEXPOSE 3000\n\nCMD [\"node\", \".output/server/index.mjs\"]\n```\n\n启动容器：\n\n```bash\ndocker run -d \\\n  --name your-service-prod \\\n  -e LANE_ENABLE=true \\\n  -e LANE_ID=prod-lane \\\n  -e SERVICE_NAME=your-service \\\n  -e LANE_SERVER=nacos.example.com:8848 \\\n  -p 3000:3000 \\\n  your-service-image\n```\n\n### Kubernetes 部署\n\n在 Kubernetes 中部署时，建议使用 Pod IP 作为服务注册地址：\n\n```yaml\n# deployment.yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: your-service\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: your-service\n  template:\n    metadata:\n      labels:\n        app: your-service\n    spec:\n      containers:\n      - name: your-service\n        image: your-service-image:latest\n        ports:\n        - containerPort: 3000\n        env:\n        # 泳道配置\n        - name: LANE_ENABLE\n          value: \"true\"\n        - name: LANE_ID\n          value: \"prod-lane\"\n        - name: SERVICE_NAME\n          value: \"your-service\"\n\n        # Nacos 配置\n        - name: LANE_SERVER\n          value: \"nacos.example.com:8848\"\n\n        # Pod IP 自动注入\n        - name: POD_IP\n          valueFrom:\n            fieldRef:\n              fieldPath: status.podIP\n\n        # 其他配置\n        - name: NITRO_PORT\n          value: \"3000\"\n        - name: LOG_LEVEL\n          value: \"info\"\n\n        resources:\n          requests:\n            memory: \"256Mi\"\n            cpu: \"250m\"\n          limits:\n            memory: \"512Mi\"\n            cpu: \"500m\"\n\n        # 健康检查\n        livenessProbe:\n          httpGet:\n            path: /api/lane-manager/health\n            port: 3000\n          initialDelaySeconds: 30\n          periodSeconds: 10\n\n        readinessProbe:\n          httpGet:\n            path: /api/lane-manager/health\n            port: 3000\n          initialDelaySeconds: 5\n          periodSeconds: 5\n```\n\n### IP 地址自动检测机制\n\nmulti-lane-manager 采用完全自动化的IP检测机制，无需手动配置：\n\n1. **网络接口自动检测（核心逻辑）**：\n   - 优先检测容器网络接口：`eth0`, `eth1`, `ens3`, `ens4`\n   - 然后检测物理/虚拟机接口：`ens160`, `enp0s3`, `en0` 等\n   - 智能过滤Docker桥接网络和虚拟接口\n   - 优先选择私有网络IP（10.x.x.x, 172.16-31.x.x, 192.168.x.x）\n\n2. **Kubernetes环境变量（备选方案）**：\n   - 当网络接口检测失败时，使用 `POD_IP` 环境变量\n   - 通常由Downward API自动注入\n\n3. **其他容器环境变量（最后备选）**：\n   - 当前两种方法都失败时，使用 `CONTAINER_IP` 环境变量\n\n4. **智能过滤机制**：\n   - 自动跳过内部地址（127.x.x.x）和Docker桥接网络（172.17.x.x）\n   - 过滤虚拟接口（docker0, br-, veth等）\n   - 优先选择私有网络IP，符合容器环境实际情况\n\n5. **容错机制**：\n   - 如果所有检测方法都失败，提供详细的错误信息和解决建议\n   - 仅在极端情况下才回退到localhost\n\n### 容器环境最佳实践\n\n1. **完全自动化**：无需手动配置IP地址，让系统自动检测\n2. **Kubernetes Pod IP注入**：使用Downward API自动注入Pod IP\n\n   ```yaml\n   env:\n   - name: POD_IP\n     valueFrom:\n       fieldRef:\n         fieldPath: status.podIP\n   ```\n\n3. **健康检查**：配置 liveness 和 readiness 探针\n4. **资源限制**：设置合适的 CPU 和内存限制\n5. **日志级别**：生产环境使用 `info` 级别，调试时使用 `debug`\n6. **优雅关闭**：确保容器正确处理 SIGTERM 信号\n7. **网络策略**：确保容器能够访问Nacos服务器\n8. **监控告警**：监控服务注册状态和心跳健康\n\n## 常见问题解答\n\n### 1. 如何查看服务是否成功注册到 Nacos？\n\n可以通过 Nacos 控制台查看服务注册情况，通常访问 `http://nacos-server:8848/nacos/` 并登录（默认用户名/密码：nacos/nacos）。\n\n### 2. 如何处理跨泳道请求失败？\n\n检查以下几点：\n\n- 确保目标泳道的服务实例已注册并健康\n- 检查网络连接是否正常\n- 查看日志中的错误信息\n- 使用调试头获取详细信息（见下文）\n\n### 3. 如何调试泳道请求？\n\n可以通过添加 `X-Lane-Debug` 请求头来获取详细的调试信息。当请求中包含此头时，响应中会包含 `X-Lane-Detail` 头，其中包含请求处理的详细信息。\n\n```bash\n# 使用 curl 发送带调试头的请求\ncurl -H \"X-Lane-Debug: true\" -H \"X-Lane-ID: test-lane\" http://localhost:3000/api/some-endpoint\n```\n\n响应头中的 `X-Lane-Detail` 包含以下信息：\n\n- 请求时间和路径\n- 当前泳道和服务名称\n- 目标泳道信息（如果有）\n- 请求处理方式（本地处理或跨泳道转发）\n- 如果是跨泳道请求，还包括目标实例信息和负载均衡策略\n- 如果发生错误，包含错误信息\n\n这对于排查泳道路由和转发问题非常有用。\n\n### 4. 如何自定义请求转发逻辑？\n\n可以通过修改 `nuxt.config.ts` 中的配置选项自定义请求转发逻辑：\n\n```typescript\nmultiLaneManager: {\n  // 自定义目标泳道请求头键名\n  targetLaneHeaderKey: 'x-custom-lane',\n\n  // 自定义代理请求超时时间\n  proxyTimeout: 30000,\n}\n```\n\n### 5. 如何在 CI/CD 流程中集成多泳道架构？\n\n在 CI/CD 流程中，可以为每个分支或环境配置不同的泳道 ID，例如：\n\n- `main` 分支 → `prod-lane`\n- `develop` 分支 → `dev-lane`\n- 特性分支 → `feature-{branch-name}-lane`\n\n这样可以实现按分支或环境隔离服务实例。\n\n## 第二部分：Nitro 插件编写指南\n\n### Nitro 插件基础\n\nNitro 插件是 Nuxt 3 中一种强大的扩展机制，允许您在服务器启动时执行代码、添加中间件、注册钩子等。Multi-Lane Manager 使用 Nitro 插件来实现服务注册和健康检查功能。\n\n> 💡 **提示**：Nitro 插件与 Nuxt 插件不同。Nitro 插件在服务器端运行，而 Nuxt 插件可以在客户端和服务器端运行。Nitro 插件更适合处理服务器端的任务，如服务注册、数据库连接等。\n\nNitro 插件是一个导出默认函数的 JavaScript/TypeScript 文件，该函数接收 `nitroApp` 对象作为参数：\n\n```typescript\n// my-nitro-plugin.ts\nexport default (nitroApp) => {\n  // 插件代码\n}\n```\n\n### 插件生命周期\n\nNitro 插件在服务器启动过程中被加载和执行，具体时机如下：\n\n1. **加载阶段**：模块代码被加载到内存中\n2. **初始化阶段**：插件默认导出函数被执行\n3. **运行阶段**：服务器运行期间，插件注册的钩子会在相应事件发生时被调用\n4. **关闭阶段**：服务器关闭时，插件可以执行清理操作\n\n下图展示了 Nitro 插件的生命周期：\n\n```ascii\n┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐\n│                 │     │                 │     │                 │     │                 │\n│   加载阶段      │────▶│   初始化阶段    │────▶│    运行阶段     │────▶│    关闭阶段     │\n│                 │     │                 │     │                 │     │                 │\n└─────────────────┘     └─────────────────┘     └─────────────────┘     └─────────────────┘\n       │                       │                       │                       │\n       ▼                       ▼                       ▼                       ▼\n┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐\n│ 模块代码被加载  │     │ 插件默认函数    │     │ 钩子函数被调用  │     │ 清理资源       │\n│ 到内存中        │     │ 被执行          │     │ (request等)     │     │ 注销服务       │\n└─────────────────┘     └─────────────────┘     └─────────────────┘     └─────────────────┘\n```\n\n### 注册 Nitro 插件\n\n在 Nuxt 模块中注册 Nitro 插件的方法：\n\n```typescript\n// 在 Nuxt 模块的 setup 函数中\nnuxt.hook('nitro:config', (nitroConfig) => {\n  // 确保 plugins 数组存在\n  nitroConfig.plugins = nitroConfig.plugins || [];\n\n  // 添加插件\n  nitroConfig.plugins.push(resolve('./runtime/my-nitro-plugin'));\n});\n```\n\n### 常用钩子\n\nNitro 插件可以使用以下常用钩子：\n\n- **`request`**：处理每个请求\n- **`close`**：服务器关闭时执行清理操作\n- **`error`**：处理服务器错误\n\n```typescript\n// 注册请求钩子\nnitroApp.hooks.hook('request', async (event) => {\n  // 处理请求\n});\n\n// 注册关闭钩子\nnitroApp.hooks.hook('close', async () => {\n  // 执行清理操作\n});\n\n// 注册错误钩子\nnitroApp.hooks.hook('error', async (error, event) => {\n  // 处理错误\n});\n```\n\n### 最佳实践\n\n1. **模块化设计**：将插件代码分解为多个专门的函数，提高可维护性\n2. **错误处理**：使用 try/catch 捕获异常，避免插件错误导致服务器崩溃\n3. **资源清理**：在服务器关闭时释放资源，如关闭连接、取消定时器等\n4. **日志记录**：使用日志系统记录插件的运行状态和错误信息\n5. **类型安全**：使用 TypeScript 类型定义，提高代码质量和开发体验\n\n### 调试 Nitro 插件\n\n调试 Nitro 插件可以使用以下方法：\n\n**日志输出**：在插件中添加详细的日志输出，记录插件的执行流程和状态\n\n```typescript\nlogger.info('Nitro 插件初始化');\nlogger.debug('配置:', config);\n```\n\n**环境变量**：使用环境变量控制插件的行为，如启用/禁用功能、设置日志级别等\n\n```typescript\nif (process.env.DEBUG_NITRO_PLUGIN === 'true') {\n  logger.level = 'debug';\n}\n```\n\n**健康检查端点**：添加健康检查端点，返回插件的状态信息\n\n```typescript\nnitroApp.hooks.hook('request', (event) => {\n  if (event.path === '/api/plugin-status') {\n    event.node.res.end(JSON.stringify({\n      status: 'running',\n      uptime: process.uptime(),\n      memory: process.memoryUsage(),\n      // 其他状态信息\n    }));\n  }\n});\n```\n\n**错误监控**：捕获并记录插件中的错误，便于排查问题\n\n```typescript\ntry {\n  // 插件代码\n} catch (error) {\n  logger.error('插件错误:', error);\n  // 可以将错误发送到监控系统\n}\n```\n\n## 第三部分：实现细节\n\n### 模块结构\n\n```text\npackages/multi-lane-manager/\n├── src/\n│   ├── index.ts                # 主入口文件\n│   ├── types.ts                # 类型定义\n│   ├── module.ts               # Nuxt 模块定义\n│   ├── runtime/\n│   │   ├── nitro-plugin.ts     # Nitro 插件（服务注册和健康检查）\n│   │   ├── server-middleware.ts # 服务器中间件（请求转发）\n│   │   └── server-utils.ts     # 服务器工具函数\n│   └── utils/\n│       ├── config.ts           # 配置管理\n│       ├── logger.ts           # 日志管理\n│       ├── nacos.ts            # Nacos 服务管理\n│       └── proxy.ts            # 请求转发\n└── README.md                   # 文档\n```\n\n### 核心文件说明\n\n#### 1. `module.ts`\n\nNuxt 模块定义文件，负责注册 Nitro 插件和服务器中间件。\n\n```typescript\n// module.ts\nexport default defineNuxtModule({\n  meta: {\n    name: \"multi-lane-manager\",\n    configKey: \"multiLaneManager\",\n  },\n  setup(_options, nuxt) {\n    // 添加 Nitro 插件\n    nuxt.hook('nitro:config', (nitroConfig) => {\n      nitroConfig.plugins = nitroConfig.plugins || [];\n      nitroConfig.plugins.push(resolve('./runtime/nitro-plugin'));\n    });\n\n    // 添加服务器中间件\n    addServerHandler({\n      handler: resolve('./runtime/server-middleware'),\n      middleware: true,\n    });\n  },\n});\n```\n\n#### 2. `runtime/nitro-plugin.ts`\n\nNitro 插件文件，负责服务注册、心跳维持和健康检查。\n\n```typescript\n// nitro-plugin.ts\nexport default (nitroApp) => {\n  // 立即注册服务\n  (async () => {\n    try {\n      const port = getServerPort();\n      await registerServiceInstance(port);\n      // 设置优雅下线\n    } catch (error) {\n      // 错误处理\n    }\n  })();\n\n  // 添加健康检查路由\n  nitroApp.hooks.hook('request', (event) => {\n    if (event.path === '/api/lane-manager/health') {\n      // 返回健康状态\n    }\n  });\n};\n```\n\n#### 3. `runtime/server-middleware.ts`\n\n服务器中间件文件，负责跨泳道请求转发。\n\n```typescript\n// server-middleware.ts\nimport { createServerMiddleware } from './server-utils';\n\n// 导出中间件函数\nexport default createServerMiddleware();\n```\n\n#### 4. `utils/nacos.ts`\n\nNacos 服务管理文件，负责服务注册、注销、心跳维持和服务发现。\n\n```typescript\n// nacos.ts\nexport async function registerServiceInstance(port: number): Promise<boolean> {\n  // 向 Nacos 注册服务实例\n}\n\nexport async function deregisterServiceInstance(port: number): Promise<boolean> {\n  // 从 Nacos 注销服务实例\n}\n\nexport async function sendHeartbeat(port: number): Promise<boolean> {\n  // 向 Nacos 发送心跳\n}\n\nexport async function getNacosLaneInstances(\n  serviceName: string,\n  targetLaneId: string\n): Promise<ServiceInstanceInfo[]> {\n  // 从 Nacos 获取指定泳道的服务实例\n}\n```\n\n### 类型定义\n\n```typescript\n// 服务实例信息\ninterface ServiceInstanceInfo {\n  ip: string;\n  port: number;\n  serviceName: string;\n  clusterName: string;\n  ephemeral: boolean;\n  metadata: {\n    laneId: string;\n    [key: string]: string;\n  };\n  status: \"UP\" | \"DOWN\" | \"UNKNOWN\";\n  lastHeartbeat: number | string;\n  version?: string;\n  healthy?: boolean;\n}\n\n// 泳道信息\ninterface LaneInfo {\n  id: string;\n  instances: ServiceInstanceInfo[];\n}\n\n// 泳道管理器配置\ninterface LaneManagerConfig {\n  // Nacos 服务器配置\n  nacosServerAddr: string;\n  nacosServerPort: string;\n  nacosUrl: string;\n  nacosNamespace: string;\n  nacosGroupName: string;\n\n  // 服务配置\n  serviceName: string;\n  currentLaneId: string;\n  host: string;\n  port: number | null;\n\n  // 泳道配置\n  targetLaneHeaderKey: string; // 小写形式\n  isLaneEnabled: boolean;\n\n  // 超时配置\n  proxyTimeout: number;\n  registrationTimeout: number;\n  heartbeatInterval: number; // 心跳间隔，单位毫秒\n  instanceTtl: number; // 实例过期时间，单位毫秒\n\n  // 元数据\n  metadata: Record<string, any>;\n}\n```\n\n### 导出函数\n\n```typescript\n// 创建服务器中间件\nfunction createServerMiddleware(): (event: H3Event) => Promise<void>;\n\n// 注册服务实例\nfunction registerServiceInstance(port: number): Promise<boolean>;\n\n// 注销服务实例\nfunction deregisterServiceInstance(port: number): Promise<boolean>;\n\n// 获取指定泳道的服务实例\nfunction getNacosLaneInstances(serviceName: string, targetLaneId: string): Promise<ServiceInstanceInfo[]>;\n\n// 获取服务器端口\nfunction getServerPort(): number;\n\n// 创建日志管理器\nfunction createLogger(options?: LoggerOptions): ConsolaInstance;\n\n// 获取配置\nfunction getConfig(): LaneManagerConfig;\n\n// 更新配置端口\nfunction updateConfigPort(port: number): void;\n```\n\n### 工作流程\n\n1. **服务注册流程**：\n   - 应用启动时，Nitro 插件自动执行\n   - 获取服务器端口和配置信息\n   - 向 Nacos 发送注册请求\n   - 启动心跳定时器\n   - 设置进程退出时的注销逻辑\n\n2. **心跳维持流程**：\n   - 服务注册成功后，自动启动心跳定时器\n   - 定期向 Nacos 发送心跳请求\n   - 心跳间隔由 `NACOS_HEARTBEAT_INTERVAL` 环境变量指定，默认为 6000 毫秒（6 秒）\n   - 如果心跳失败，会记录错误日志但不会停止心跳\n\n3. **跨泳道请求转发流程**：\n   - 服务器中间件拦截所有请求\n   - 检查请求头中是否包含目标泳道 ID\n   - 如果目标泳道 ID 与当前泳道 ID 不同，则进行转发\n   - 从 Nacos 获取目标泳道的服务实例\n   - 使用负载均衡策略选择一个实例\n   - 将请求转发到目标实例\n   - 将目标实例的响应返回给客户端\n\n4. **优雅下线流程**：\n   - 监听进程退出事件（SIGINT、SIGTERM、beforeExit）\n   - 监听 Nitro 关闭事件\n   - 在这些事件发生时，向 Nacos 发送注销请求\n   - 确保服务实例被正确移除\n\n### 请求转发示例\n\n当请求头中包含 `X-Target-Lane` 且值与当前服务的泳道 ID 不同时，模块会自动将请求转发到目标泳道的服务实例。\n\n例如，向当前服务发送请求，但指定目标泳道为 `test-lane`：\n\n```bash\ncurl -H \"X-Target-Lane: test-lane\" http://localhost:3000/api/some-endpoint\n```\n\n模块会：\n\n1. 检测到这是一个跨泳道请求\n2. 从 Nacos 获取 `test-lane` 泳道的服务实例\n3. 将请求转发到目标实例\n4. 将目标实例的响应返回给客户端\n\n### 优雅下线\n\n应用关闭时，模块会自动向 Nacos 发送注销请求，确保服务实例被正确移除。\n\n## 高级配置\n\n### 编写自定义 Nitro 插件\n\nNitro 插件是 Nuxt 3 中一种强大的扩展机制，允许您在服务器启动时执行代码、添加中间件、注册钩子等。Multi-Lane Manager 使用 Nitro 插件来实现服务注册和健康检查功能。\n\n> 💡 **提示**：Nitro 插件与 Nuxt 插件不同。Nitro 插件在服务器端运行，而 Nuxt 插件可以在客户端和服务器端运行。Nitro 插件更适合处理服务器端的任务，如服务注册、数据库连接等。\n\n#### Nitro 插件基础\n\nNitro 插件是一个导出默认函数的 JavaScript/TypeScript 文件，该函数接收 `nitroApp` 对象作为参数：\n\n```typescript\n// my-nitro-plugin.ts\nexport default (nitroApp) => {\n  // 插件代码\n}\n```\n\n#### 插件生命周期\n\nNitro 插件在服务器启动过程中被加载和执行，具体时机如下：\n\n1. **加载阶段**：模块代码被加载到内存中\n2. **初始化阶段**：插件默认导出函数被执行\n3. **运行阶段**：服务器运行期间，插件注册的钩子会在相应事件发生时被调用\n4. **关闭阶段**：服务器关闭时，插件可以执行清理操作\n\n下图展示了 Nitro 插件的生命周期：\n\n```ascii\n┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐\n│                 │     │                 │     │                 │     │                 │\n│   加载阶段      │────▶│   初始化阶段    │────▶│    运行阶段     │────▶│    关闭阶段     │\n│                 │     │                 │     │                 │     │                 │\n└─────────────────┘     └─────────────────┘     └─────────────────┘     └─────────────────┘\n       │                       │                       │                       │\n       ▼                       ▼                       ▼                       ▼\n┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐\n│ 模块代码被加载  │     │ 插件默认函数    │     │ 钩子函数被调用  │     │ 清理资源       │\n│ 到内存中        │     │ 被执行          │     │ (request等)     │     │ 注销服务       │\n└─────────────────┘     └─────────────────┘     └─────────────────┘     └─────────────────┘\n```\n\n#### 注册 Nitro 插件\n\n在 Nuxt 模块中注册 Nitro 插件的方法：\n\n```typescript\n// 在 Nuxt 模块的 setup 函数中\nnuxt.hook('nitro:config', (nitroConfig) => {\n  // 确保 plugins 数组存在\n  nitroConfig.plugins = nitroConfig.plugins || [];\n\n  // 添加插件\n  nitroConfig.plugins.push(resolve('./runtime/my-nitro-plugin'));\n});\n```\n\n#### 常用钩子\n\nNitro 插件可以使用以下常用钩子：\n\n- **`request`**：处理每个请求\n- **`close`**：服务器关闭时执行清理操作\n- **`error`**：处理服务器错误\n\n```typescript\n// 注册请求钩子\nnitroApp.hooks.hook('request', async (event) => {\n  // 处理请求\n});\n\n// 注册关闭钩子\nnitroApp.hooks.hook('close', async () => {\n  // 执行清理操作\n});\n\n// 注册错误钩子\nnitroApp.hooks.hook('error', async (error, event) => {\n  // 处理错误\n});\n```\n\n#### 示例：服务注册插件\n\n以下是 Multi-Lane Manager 中服务注册插件的简化版本：\n\n```typescript\n// nitro-plugin.ts\nimport { getConfig, getGlobalState } from '../utils/config';\nimport { registerServiceInstance, deregisterServiceInstance } from '../utils/nacos';\nimport { getServerPort } from './server-utils';\n\nexport default (nitroApp) => {\n  // 获取配置\n  const config = getConfig();\n  const globalState = getGlobalState();\n\n  // 立即注册服务\n  (async () => {\n    try {\n      // 获取服务器端口\n      const port = getServerPort();\n\n      // 注册服务实例\n      const success = await registerServiceInstance(port);\n\n      if (success) {\n        // 设置服务器关闭时的注销逻辑\n        const gracefulShutdown = async () => {\n          await deregisterServiceInstance(port);\n        };\n\n        // 监听 Nitro 关闭事件\n        nitroApp.hooks.hook('close', async () => {\n          await gracefulShutdown();\n        });\n\n        // 监听进程退出事件\n        process.on('SIGINT', async () => {\n          await gracefulShutdown();\n          process.exit(0);\n        });\n\n        process.on('SIGTERM', async () => {\n          await gracefulShutdown();\n          process.exit(0);\n        });\n      }\n    } catch (error) {\n      console.error('服务注册错误:', error);\n    }\n  })();\n\n  // 添加健康检查路由\n  nitroApp.hooks.hook('request', async (event) => {\n    if (event.path === '/api/lane-manager/health') {\n      // 返回健康状态信息\n      event.node.res.end(JSON.stringify({\n        status: 'ok',\n        serviceName: config.serviceName,\n        laneId: config.currentLaneId,\n        timestamp: new Date().toISOString()\n      }));\n    }\n  });\n};\n```\n\n#### 最佳实践\n\n1. **模块化设计**：将插件代码分解为多个专门的函数，提高可维护性\n2. **错误处理**：使用 try/catch 捕获异常，避免插件错误导致服务器崩溃\n3. **资源清理**：在服务器关闭时释放资源，如关闭连接、取消定时器等\n4. **日志记录**：使用日志系统记录插件的运行状态和错误信息\n5. **类型安全**：使用 TypeScript 类型定义，提高代码质量和开发体验\n\n#### 调试 Nitro 插件\n\n调试 Nitro 插件可以使用以下方法：\n\n**日志输出**：在插件中添加详细的日志输出，记录插件的执行流程和状态\n\n```typescript\nlogger.info('Nitro 插件初始化');\nlogger.debug('配置:', config);\n```\n\n**环境变量**：使用环境变量控制插件的行为，如启用/禁用功能、设置日志级别等\n\n```typescript\nif (process.env.DEBUG_NITRO_PLUGIN === 'true') {\n  logger.level = 'debug';\n}\n```\n\n**健康检查端点**：添加健康检查端点，返回插件的状态信息\n\n```typescript\nnitroApp.hooks.hook('request', (event) => {\n  if (event.path === '/api/plugin-status') {\n    event.node.res.end(JSON.stringify({\n      status: 'running',\n      uptime: process.uptime(),\n      memory: process.memoryUsage(),\n      // 其他状态信息\n    }));\n  }\n});\n```\n\n**错误监控**：捕获并记录插件中的错误，便于排查问题\n\n```typescript\ntry {\n  // 插件代码\n} catch (error) {\n  logger.error('插件错误:', error);\n  // 可以将错误发送到监控系统\n}\n```\n\n### 模块配置选项\n\n在 `nuxt.config.ts` 中可以配置以下选项：\n\n```typescript\n// nuxt.config.ts\nexport default defineNuxtConfig({\n  modules: ['multi-lane-manager/nuxt'],\n\n  multiLaneManager: {\n    // 是否启用泳道功能\n    isLaneEnabled: true,\n\n    // 当前泳道 ID\n    currentLaneId: 'dev-lane',\n\n    // 服务名称\n    serviceName: 'your-service-name',\n\n    // Nacos 服务器地址\n    nacosServerAddr: 'localhost',\n\n    // Nacos 服务器端口\n    nacosServerPort: '8848',\n\n    // Nacos 命名空间\n    nacosNamespace: 'public',\n\n    // Nacos 分组名称\n    nacosGroupName: 'DEFAULT_GROUP',\n\n    // 主机名\n    host: 'localhost',\n\n    // 目标泳道请求头键名\n    targetLaneHeaderKey: 'x-target-lane',\n\n    // 代理请求超时时间（毫秒）\n    proxyTimeout: 15000,\n\n    // 注册请求超时时间（毫秒）\n    registrationTimeout: 5000,\n\n    // 心跳间隔（毫秒）\n    heartbeatInterval: 6000,\n\n    // 实例过期时间（毫秒）\n    instanceTtl: 10000\n  }\n## 多泳道部署示例\n\n### 部署多个泳道实例\n\n```bash\n# 启动 dev-lane 泳道实例\nNITRO_PORT=3001 LANE_ENABLE=true LANE_ID=dev-lane SERVICE_NAME=your-service npm run dev\n\n# 启动 test-lane 泳道实例\nNITRO_PORT=3002 LANE_ENABLE=true LANE_ID=test-lane SERVICE_NAME=your-service npm run dev\n\n### 测试跨泳道请求\n\n```bash\n# 向 dev-lane 发送请求，但目标泳道为 test-lane\ncurl -H \"X-Lane-ID: test-lane\" http://localhost:3001/api/some-endpoint\n\n# 向 test-lane 发送请求，但目标泳道为 dev-lane\ncurl -H \"X-Lane-ID: dev-lane\" http://localhost:3002/api/some-endpoint\n\n# 不指定泳道ID的请求（将尝试路由到 baseline 泳道）\ncurl http://localhost:3001/api/some-endpoint\n```\n\n### baseline 泳道\n\n多泳道管理器引入了 \"baseline\" 泳道的概念，作为默认的基准泳道：\n\n1. **默认泳道ID**：如果应用启用了泳道功能但没有设置泳道ID，则默认使用 \"baseline\" 作为泳道ID\n2. **智能路由**：当收到一个没有指定泳道ID的请求时：\n   - 首先查询 Nacos 是否有 \"baseline\" 泳道的实例\n   - 如果有，则将请求路由到 \"baseline\" 泳道的实例\n   - 如果没有，则在当前实例处理请求\n\n这种设计有以下优势：\n\n- 提供了一个稳定的基准环境（baseline）\n- 未指定泳道的请求默认使用基准环境，确保一致的用户体验\n- 当基准环境不可用时，自动降级到当前实例处理，提高系统可用性\n\n## 故障排除\n\n### 常见问题\n\n1. **服务注册失败**\n   - 检查 Nacos 服务器是否正常运行\n   - 检查环境变量是否正确设置\n   - 检查网络连接是否正常\n\n2. **心跳发送失败**\n   - 检查 Nacos 服务器是否正常运行\n   - 检查网络连接是否正常\n   - 检查服务实例是否已注册\n\n3. **跨泳道请求转发失败**\n   - 检查目标泳道的服务实例是否存在\n   - 检查目标泳道的服务实例是否健康\n   - 检查网络连接是否正常\n\n4. **实例故障转移**\n   - 系统会自动检测实例故障并进行故障转移\n   - 故障实例会被加入黑名单，避免重复请求\n   - 黑名单实例会在30秒后自动恢复检测\n   - 可通过日志查看故障转移过程\n\n### 故障转移机制\n\nmulti-lane-manager 内置了完善的故障转移机制来处理发版时的实例不可用问题：\n\n#### 故障检测\n\n系统会自动检测以下类型的故障：\n\n- **连接错误**：`ECONNREFUSED`、`ENOTFOUND`、`ETIMEDOUT`\n- **HTTP错误**：502 Bad Gateway、503 Service Unavailable、504 Gateway Timeout\n- **请求超时**：`ECONNABORTED`\n\n#### 故障转移流程\n\n1. **实例排序**：按心跳时间对实例进行排序，最近心跳的实例优先\n2. **主实例请求**：首先尝试请求选定的目标实例\n3. **故障检测**：如果请求失败且符合故障转移条件，记录故障\n4. **实例选择**：从同泳道的其他健康实例中选择备用实例\n5. **重试请求**：自动转发到备用实例\n6. **黑名单管理**：连续故障的实例会被加入黑名单\n\n#### 配置参数\n\n```typescript\nconst FAILURE_CONFIG = {\n  MAX_RETRY_ATTEMPTS: 2,           // 最大重试次数\n  FAILURE_THRESHOLD: 3,            // 故障阈值（连续失败次数）\n  BLACKLIST_DURATION: 30000,      // 黑名单持续时间（30秒）\n  CONNECTION_TIMEOUT: 5000,       // 连接超时时间（5秒）\n  RETRY_DELAY: 1000,              // 重试延迟（1秒）\n};\n```\n\n#### 最佳实践\n\n1. **优雅下线**：在发版时确保旧实例能够优雅地从Nacos注销\n2. **健康检查**：配置合适的健康检查端点\n3. **监控告警**：监控故障转移频率，及时发现问题\n4. **日志分析**：通过日志分析故障原因和转移效果\n\n### Nacos 实例查询缓存机制\n\n为了提高性能和减少对 Nacos 服务器的压力，multi-lane-manager 实现了智能缓存机制：\n\n#### 缓存特性\n\n1. **请求去重**：使用 Promise 去重模式，避免并发请求重复查询同一个服务\n2. **TTL 缓存**：默认 5 秒缓存时间，可通过环境变量配置\n3. **自动清理**：定期清理过期缓存项，避免内存泄漏\n4. **故障恢复**：缓存请求失败时自动清理，不影响后续请求\n\n#### 缓存配置\n\n```env\n# 设置 Nacos 实例查询缓存时间（毫秒）\nNACOS_CACHE_TTL=5000  # 默认 5 秒\n\n# 或者使用别名\nLANE_CACHE_TTL=5000\n```\n\n#### 缓存工作流程\n\n```mermaid\nflowchart TD\n    A[请求实例] --> B{检查缓存}\n    B -->|有效缓存| C[返回缓存数据]\n    B -->|正在请求| D[等待现有请求]\n    B -->|无缓存/过期| E[发起新请求]\n\n    D --> F[返回请求结果]\n    E --> G{请求成功?}\n    G -->|是| H[更新缓存]\n    G -->|否| I[清理缓存]\n\n    H --> J[返回结果]\n    I --> K[抛出错误]\n```\n\n#### 缓存管理 API\n\n```typescript\nimport { clearNacosInstanceCache, getNacosCacheStats } from 'multi-lane-manager';\n\n// 清理所有缓存\nclearNacosInstanceCache();\n\n// 获取缓存统计信息\nconst stats = getNacosCacheStats();\nconsole.log('缓存统计:', stats);\n// 输出: { totalItems: 5, validItems: 3, expiredItems: 2, pendingRequests: 0 }\n```\n\n### 心跳时间排序机制\n\n为了提高服务可用性，multi-lane-manager 实现了基于心跳时间的实例排序机制：\n\n#### 工作原理\n\n1. **心跳时间戳记录**：每次发送心跳时，在元数据中记录时间戳\n\n   ```typescript\n   metadata: {\n     lastHeartbeat: \"2024-01-15T10:30:00.000Z\",  // ISO格式时间戳\n     heartbeatTimestamp: \"1705312200000\",         // 毫秒时间戳\n     laneId: \"prod-lane\"\n   }\n   ```\n\n2. **实例排序**：查询实例时按心跳时间降序排列（最近心跳的在前）\n3. **优先选择**：负载均衡时优先选择最近心跳的实例\n4. **故障转移**：故障转移时也优先选择最近心跳的备用实例\n\n#### 优势\n\n- **提高可用性**：优先选择最活跃的实例，减少请求失败率\n- **快速故障检测**：心跳时间较老的实例可能即将下线\n- **平滑发版**：新实例的心跳时间更新，会被优先选择\n- **自动恢复**：实例恢复后心跳时间更新，重新获得优先级\n\n#### 配置选项\n\n```typescript\n// 获取实例时启用心跳时间排序（默认启用）\nconst instances = await getNacosLaneInstances(serviceName, laneId, true);\n\n// 禁用心跳时间排序\nconst instances = await getNacosLaneInstances(serviceName, laneId, false);\n```\n\n#### 调试信息\n\n启用调试模式时，可以查看实例的心跳时间排序结果：\n\n```log\n📊 实例心跳时间排序结果:\n  1. 192.168.1.10:3000 - 心跳时间: 2024-01-15T10:30:00.000Z\n  2. 192.168.1.11:3000 - 心跳时间: 2024-01-15T10:29:55.000Z\n  3. 192.168.1.12:3000 - 心跳时间: 2024-01-15T10:29:50.000Z\n```\n\n### 日志级别\n\n模块提供了详细的日志系统，可以通过环境变量 `LOG_LEVEL` 或 `LANE_LOG_LEVEL` 控制日志输出级别：\n\n```env\n# 设置日志级别\nLOG_LEVEL=info  # 可选值: silent, fatal, error, warn, info, success, debug, trace, verbose\n```\n\n支持的日志级别（从低到高）：\n\n- `silent`：不输出任何日志\n- `fatal`：只输出致命错误\n- `error`：输出错误信息\n- `warn`：输出警告和错误信息\n- `info`：输出重要信息、警告和错误（默认级别）\n- `success`：输出成功信息和 info 级别以上的日志\n- `debug`：输出调试信息和 info 级别以上的日志\n- `trace`：输出跟踪信息和 debug 级别以上的日志\n- `verbose`：输出所有详细日志\n\n日志格式示例：\n\n```log\n[泳道管理] [INFO] 服务器中间件初始化: 启用状态=true, 当前泳道ID=dev-lane\n[泳道管理] [DEBUG] 从环境变量获取服务器端口: 3000\n[泳道管理] [ERROR] 服务注册错误: 连接超时\n```\n\n在开发环境中，建议使用 `debug` 或 `trace` 级别以获取更详细的信息；在生产环境中，建议使用 `info` 或 `warn` 级别以减少日志量。\n\n## API 参考\n\n### 类型定义\n\n```typescript\n// 服务实例信息\ninterface ServiceInstanceInfo {\n  ip: string;\n  port: number;\n  serviceName: string;\n  clusterName: string;\n  ephemeral: boolean;\n  metadata: {\n    laneId: string;\n    [key: string]: string;\n  };\n  status: \"UP\" | \"DOWN\" | \"UNKNOWN\";\n  lastHeartbeat: number | string;\n  version?: string;\n  healthy?: boolean;\n}\n\n// 泳道信息\ninterface LaneInfo {\n  id: string;\n  instances: ServiceInstanceInfo[];\n}\n\n// 泳道管理器配置\ninterface LaneManagerConfig {\n  // Nacos 服务器配置\n  nacosServerAddr: string;\n  nacosServerPort: string;\n  nacosUrl: string;\n  nacosNamespace: string;\n  nacosGroupName: string;\n\n  // 服务配置\n  serviceName: string;\n  currentLaneId: string;\n  host: string;\n  port: number | null;\n\n  // 泳道配置\n  targetLaneHeaderKey: string; // 小写形式\n  isLaneEnabled: boolean;\n\n  // 超时配置\n  proxyTimeout: number;\n  registrationTimeout: number;\n  heartbeatInterval: number; // 心跳间隔，单位毫秒\n  instanceTtl: number; // 实例过期时间，单位毫秒\n\n  // 元数据\n  metadata: Record<string, any>;\n}\n\n// 日志选项\ninterface LoggerOptions {\n  prefix?: string;\n  level?: number | string;\n  timestamps?: boolean;\n}\n```\n\n### 导出函数\n\n```typescript\n// 创建服务器中间件\nfunction createServerMiddleware(): (event: H3Event) => Promise<void>;\n\n// 注册服务实例\nfunction registerServiceInstance(port: number): Promise<boolean>;\n\n// 注销服务实例\nfunction deregisterServiceInstance(port: number): Promise<boolean>;\n\n// 获取指定泳道的服务实例\nfunction getNacosLaneInstances(serviceName: string, targetLaneId: string): Promise<ServiceInstanceInfo[]>;\n\n// 获取服务器端口\nfunction getServerPort(): number;\n\n// 创建日志管理器\nfunction createLogger(options?: LoggerOptions): ConsolaInstance;\n\n// 获取配置\nfunction getConfig(): LaneManagerConfig;\n\n// 更新配置端口\nfunction updateConfigPort(port: number): void;\n```\n\n### 模块结构\n\n```text\npackages/multi-lane-manager/\n├── src/\n│   ├── index.ts                # 主入口文件\n│   ├── types.ts                # 类型定义\n│   ├── module.ts               # Nuxt 模块定义\n│   ├── runtime/\n│   │   ├── nitro-plugin.ts     # Nitro 插件（服务注册和健康检查）\n│   │   ├── server-middleware.ts # 服务器中间件（请求转发）\n│   │   └── server-utils.ts     # 服务器工具函数\n│   └── utils/\n│       ├── config.ts           # 配置管理\n│       ├── logger.ts           # 日志管理\n│       ├── nacos.ts            # Nacos 服务管理\n│       └── proxy.ts            # 请求转发\n└── README.md                   # 文档\n```\n\n### 核心文件说明\n\n#### 1. `module.ts`\n\nNuxt 模块定义文件，负责注册 Nitro 插件和服务器中间件。\n\n```typescript\n// module.ts\nexport default defineNuxtModule({\n  meta: {\n    name: \"multi-lane-manager\",\n    configKey: \"multiLaneManager\",\n  },\n  setup(_options, nuxt) {\n    // 添加 Nitro 插件\n    nuxt.hook('nitro:config', (nitroConfig) => {\n      nitroConfig.plugins = nitroConfig.plugins || [];\n      nitroConfig.plugins.push(resolve('./runtime/nitro-plugin'));\n    });\n\n    // 添加服务器中间件\n    addServerHandler({\n      handler: resolve('./runtime/server-middleware'),\n      middleware: true,\n    });\n  },\n});\n```\n\n#### 2. `runtime/nitro-plugin.ts`\n\nNitro 插件文件，负责服务注册、心跳维持和健康检查。\n\n```typescript\n// nitro-plugin.ts\nexport default (nitroApp) => {\n  // 立即注册服务\n  (async () => {\n    try {\n      const port = getServerPort();\n      await registerServiceInstance(port);\n      // 设置优雅下线\n    } catch (error) {\n      // 错误处理\n    }\n  })();\n\n  // 添加健康检查路由\n  nitroApp.hooks.hook('request', (event) => {\n    if (event.path === '/api/lane-manager/health') {\n      // 返回健康状态\n    }\n  });\n};\n```\n\n#### 3. `runtime/server-middleware.ts`\n\n服务器中间件文件，负责跨泳道请求转发。\n\n```typescript\n// server-middleware.ts\nimport { createServerMiddleware } from './server-utils';\n\n// 导出中间件函数\nexport default createServerMiddleware();\n```\n\n#### 4. `utils/nacos.ts`\n\nNacos 服务管理文件，负责服务注册、注销、心跳维持和服务发现。\n\n```typescript\n// nacos.ts\nexport async function registerServiceInstance(port: number): Promise<boolean> {\n  // 向 Nacos 注册服务实例\n}\n\nexport async function deregisterServiceInstance(port: number): Promise<boolean> {\n  // 从 Nacos 注销服务实例\n}\n\nexport async function sendHeartbeat(port: number): Promise<boolean> {\n  // 向 Nacos 发送心跳\n}\n\nexport async function getNacosLaneInstances(\n  serviceName: string,\n  targetLaneId: string\n): Promise<ServiceInstanceInfo[]> {\n  // 从 Nacos 获取指定泳道的服务实例\n}\n```\n\n## 许可证\n\nISC\n","readmeFilename":"README.md"}