{"_id":"imean-service-engine","_rev":"35-a33e960b7810d400b2069b75b49f2996","name":"imean-service-engine","dist-tags":{"latest":"1.10.0"},"versions":{"1.0.0":{"name":"imean-service-engine","version":"1.0.0","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.0.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"a080c7fe3d6c6f2e929981c521b35c66b9ba376e","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.0.0.tgz","fileCount":6,"integrity":"sha512-BZl4xaB44LfDvK9cfHqA8lknMwV3xQ2otkebQD1iw5tFvuVNt5UwJukobQ9+jmBDCWxeglqW+lYsP/G1O/BWMw==","signatures":[{"sig":"MEUCIQCreARaOeVa8vYv/uNW88/lA370OiMvjImtwXBsn13pBAIgVAj9dkchLNHyd9hYE9hkIcQh846T4FYtbzhEjf9FOkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104919},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=23"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"33523c88e8c6351c9434d51095583c507fd1b325","scripts":{"dev":"tsx dev/index.ts","fmt":"deno fmt","lint":"deno lint","test":"vitest","build":"tsup","coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.57.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","@types/fs-extra":"^11.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.4.1"},"peerDependencies":{"isomorphic-ws":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.0.0_1737619646391_0.8142554747912811","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"imean-service-engine","version":"1.1.0","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.1.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"b2b3cd6040fb9836a144f28551c8ea1ff276f8aa","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.1.0.tgz","fileCount":6,"integrity":"sha512-xhRQa0kqQWvSwjulNmaFBawf98O4FPW+C8P9nn6FYaG9JjIRu3HxEcHgLxFpx+vAREe5TlQEwVzM8Kg0Rn76ig==","signatures":[{"sig":"MEYCIQC+1XbuU3pMdOk2y71oO9PmycPZix4OCf5yP17Fp55GHwIhAOaA5Njcj+ASoISJvtIM8OCWYUXieS9mZeJtnDvVsP80","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105270},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"258f22767ded48e578060bd9b9e2717b4126a7cd","scripts":{"dev":"tsx dev/index.ts","fmt":"deno fmt","lint":"deno lint","test":"vitest","build":"tsup","coverage":"vitest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.57.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","@types/fs-extra":"^11.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.4.4"},"peerDependencies":{"isomorphic-ws":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.1.0_1737624470523_0.1624185547008663","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"imean-service-engine","version":"1.2.0","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.2.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"6d40dfb5921260652f9bf8689c089d85d7151a85","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.2.0.tgz","fileCount":6,"integrity":"sha512-sipAmdWnywgz/famv1/zcfTHJzf+GhKqYBTMbXqRYBTVDGyqToKmW1WjVueo0I3sJ3it4niQz7iBHNmOZOS/cw==","signatures":[{"sig":"MEQCIBoK0ItpoMJpLHICvHkFFyax+hkDyhlHv14J5g6Uk0fQAiAPjUE+Mo3W0E+Bs0ugdR9xDMJcWj+MJt/8GN8E+9Av9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107171},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"384ff228c1bad2fe8f77fdd47665359edff28c71","scripts":{"dev":"tsx dev/index.ts","fmt":"deno fmt","lint":"deno lint","test":"vitest","build":"tsup","coverage":"vitest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","@types/fs-extra":"^11.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.2.0_1737643664324_0.5726923674702653","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"imean-service-engine","version":"1.2.1","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.2.1","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"f80b5a468bd111511c8b4d2d79dc0fdf4699dbdb","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.2.1.tgz","fileCount":6,"integrity":"sha512-X/AMdJunvWgyoAmjGuA5mEFkwxqZAZBZzSjyjLjPe0BaHrSEf49Bzlm4+6c/5mx4SjwmBCy+NdGo9lJwvD8wvg==","signatures":[{"sig":"MEUCIC1LncnWy1JvREsU4155tDg3Qg3bS/ZokNR6iAF5U40uAiEAsfN421f/Iqd+/WDQIcq9R9CIrD4Uhon4ueqsGvGYAJw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106167},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"384ff228c1bad2fe8f77fdd47665359edff28c71","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","@types/fs-extra":"^11.0.4","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.2.1_1737880585605_0.9546071560099794","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"imean-service-engine","version":"1.2.2","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.2.2","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"fe00694553fd37e5044d8ca4f9e86073428f727d","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.2.2.tgz","fileCount":6,"integrity":"sha512-Jp0qQXRf6JdKUxVkhjgor99CJ71Rqkt0WVgzm7R10NPlnlZS5ypURmBJNbslmNHj3cI/Xj9pAfuVM5WzRsPuuA==","signatures":[{"sig":"MEUCIBWpYWJU2+h8Y9WrMaQOXQxUtVQM9eXvFk8ZkkTcQQK4AiEAzE04VOPtMb0gDXC4ln9AAVtfi5KWFawNjfmwIfepFsc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106429},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"9744e250f15fe6aee2c2b371da71274d59ff98c3","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","@types/fs-extra":"^11.0.4","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.2.2_1739267183388_0.04476749666259572","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"imean-service-engine","version":"1.2.3","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.2.3","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"ab9098cfb0d79313ab0a7550fd350265d234b14e","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.2.3.tgz","fileCount":6,"integrity":"sha512-B+EWZ5LOAV0Q9FZk/Z8bcWaDGbrFLpegjGqyzCKU8kXVxP/aBBnUdqfkno6q21Ukfk2kreZWh27EjZy3n/5Sjg==","signatures":[{"sig":"MEYCIQCYml/g1bct4lJzTi4fAw839bpLAatPSuCDWHxIEX+aOQIhAMTbfNIo4QAP3moIjYkPs2G67fjbEy6fq5Thvld5mh+A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106808},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"9744e250f15fe6aee2c2b371da71274d59ff98c3","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","@types/fs-extra":"^11.0.4","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.2.3_1741751521809_0.3990793824515071","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"imean-service-engine","version":"1.3.0","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.3.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"a3e9e2cff53364749e89df36058613f622bf74c5","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.3.0.tgz","fileCount":6,"integrity":"sha512-C8wwWRUeWgarfbeBd1VxrRkZJ28VCkv62Z8v04/21bsD5zDXpkiCXCuL66+PwqTXEi8p9YdaVMexdZPojtvR4g==","signatures":[{"sig":"MEYCIQCuzBXPafh/+wRHSUUC+LNeS9xFu/wclWZxTUYuhrQHJAIhALzwUbSwdVjmr6W4QMkmFGv6tFp+zoNSYA8cJBbezt4B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109948},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"b29d683bfd8e328e505871beb5caedebd24c1e57","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.3.0_1741759978275_0.12384132063514941","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"imean-service-engine","version":"1.4.0","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.4.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"19c98a689fc965a8c8ed05e5b54f4dea8fdb617f","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.4.0.tgz","fileCount":6,"integrity":"sha512-hTtUg9jBy6wQAHcusqdZAR0KPZOQf4YnJBcu1wpQnRJ8RZb9vIaLD7yB9mmPjZXLY3l1cEmpIcOzaGRohBr/XQ==","signatures":[{"sig":"MEUCIQDDMy/laNv2rYHg7mrTCXw6TD7ZiKt//IETVeg3hoqOXgIgP1gEfw8Vv8tEin2/J6HNYcobSItzipU79Mv4nPY8n3k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109796},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"faa27855d841c74f4b42f253010a6a27f46d2f78","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","ulid":"^3.0.0","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.4.0_1743992056221_0.7665854670703767","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"imean-service-engine","version":"1.4.1","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.4.1","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"4f2730f6a34cb49d57f9adb322c419adcc6da7d8","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.4.1.tgz","fileCount":6,"integrity":"sha512-cI31r0jKBQNQ8L3ZyUYPgNB6LV3uRUxomd2fRLt7qPCU5VfEiTulMyjuSuyhLMmw+AooFFc83uPUh1FXPo8ZMg==","signatures":[{"sig":"MEQCID9EucvnAQDyI0h8OgnlswBL4BCTz67lkxf3pXyuOGv+AiARCFazeJaO7iPY4NCX+qW2jpYQBA6KF+IP6qkTg2aX+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117708},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"faa27855d841c74f4b42f253010a6a27f46d2f78","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","ulid":"^3.0.0","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.4.1_1745499869526_0.6393391477141648","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"imean-service-engine","version":"1.4.2","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.4.2","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"5474e8f881962492317ec8bb05827de7426a036c","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.4.2.tgz","fileCount":6,"integrity":"sha512-48PcAEhCrMEG3xLRelpNpsal6ntjmbnsqZDtMr1xyRgnBCKlVzqwok20R89MtEbEkgm/cpVfG8PbIFaawtqM3A==","signatures":[{"sig":"MEUCIDS4sUFMWPZRJYkBrAEIOmNBwa+PExAFjYU6fwRQClyPAiEAlAu6C3gCQxWcbCOBfxA/+V1fr0xg51DfgBhZaj8Uupg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116887},"main":"dist/mod.js","type":"module","_from":"file:imean-service-engine-1.4.2.tgz","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_resolved":"/private/var/folders/n7/fqwjg6h12zvglyxy_nf0j0fm0000gn/T/c7f7b361ef501210f70d2f430cf8fdeb/imean-service-engine-1.4.2.tgz","_integrity":"sha512-48PcAEhCrMEG3xLRelpNpsal6ntjmbnsqZDtMr1xyRgnBCKlVzqwok20R89MtEbEkgm/cpVfG8PbIFaawtqM3A==","repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.1","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","ulid":"^3.0.0","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.4.2_1747713842428_0.06257957790754576","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"imean-service-engine","version":"1.5.0","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.5.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"04bec8339da25ac00271e4c44bacbcfa69bfdb54","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.5.0.tgz","fileCount":6,"integrity":"sha512-U8/TmfJ9UGj6fqKBR2tao7D4+V9uaAU5Vn5lgXMdishIFMsn7CWwFCDIiKqJAGnpOnB3zQXawHi9sqAukBcYJw==","signatures":[{"sig":"MEYCIQDBv5XD6ixpVyn5GfkiGRFAAN/yIFJS8AfIC/9vDV+PvwIhALVbaGTHsmn8IUFRI0hwcSeW7u+0KJ31p4RqwvNwyuN5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117940},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"92f91c8803ab768c7fe183d947ebb7e6d17f30e7","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","actor":{"name":"imean-bot","type":"user","email":"imean-devprod@stellarrover.com"},"email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","ulid":"^3.0.0","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.5.0_1750860103583_0.3598723552473819","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"imean-service-engine","version":"1.6.0","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.6.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"55912725ba4fe8f3284099a478e1b446043194ef","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.6.0.tgz","fileCount":6,"integrity":"sha512-ZLTme8y+rc5ytjnfS1mn/LtXyN0BUeMj7otIFQYhQWYCdCGmZZM+ElDvkthIOFiwQBmim7OLkrLBYJVW+u9aQw==","signatures":[{"sig":"MEUCIQCAciFE13IYyhjqe0B+kIUwJDUzTaaaK2cMAb8E2v5kCwIgUhCO6Rp1b0qnkI6oZ0/APrFIO7vRqnqQg8oe+NCHGx8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127228},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"92f91c8803ab768c7fe183d947ebb7e6d17f30e7","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","ulid":"^3.0.0","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.6.0_1758535465184_0.9587856008068403","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"imean-service-engine","version":"1.7.0","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.7.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"2270d9261dadea4bcd99af312d486500584fb957","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.7.0.tgz","fileCount":6,"integrity":"sha512-3HnjkB93AL738jfKGMYSCkxooGktandd9bLjoudLCJXKCN+xm6Rr+uyp2rFYyFAnyVd8H9bHxZn1c/3aZudcbA==","signatures":[{"sig":"MEYCIQCe6g1NlRPKiXgn1V2ZKMsK0q2yea1t0Us0hkmBtIQSaQIhALR7mPibM6FTuBqmcAEk/N0ycbEEtnRf33pnmLi0PhxR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157976},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"2f32fcc2294852c408cdacf29013e218c9ca8f5b","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","ulid":"^3.0.0","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.7.0_1758960165417_0.1131023458188678","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"imean-service-engine","version":"1.7.1","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.7.1","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"d751e67a9059781ea1eab2383760573ddf833768","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.7.1.tgz","fileCount":6,"integrity":"sha512-kMBF/xKf5xkcCeQbdHoigjXbC3zMSb7tjG4oyMhbNYI8ax4rts+th+sARynzX5OxQO4icb//UmYFEwZ3hg57cw==","signatures":[{"sig":"MEUCIQD+06IPEcVz3wkNC0q/jvqdz3cDaC7i9vz2/DG/LQSjWwIgWi2Phwzh1okyLL5uEgrd+XZLD9BZbZUpVm2kXJq4yqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158517},"main":"dist/mod.js","type":"module","_from":"file:imean-service-engine-1.7.1.tgz","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_resolved":"C:\\Users\\41682\\AppData\\Local\\Temp\\798b15c7486592c5ba9fa7fd9d599bf8\\imean-service-engine-1.7.1.tgz","_integrity":"sha512-kMBF/xKf5xkcCeQbdHoigjXbC3zMSb7tjG4oyMhbNYI8ax4rts+th+sARynzX5OxQO4icb//UmYFEwZ3hg57cw==","repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","ulid":"^3.0.0","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.7.1_1758962294197_0.813213385583516","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"imean-service-engine","version":"1.7.2","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.7.2","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"5840eeda35300f0345a2302dbee99528cd803b01","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.7.2.tgz","fileCount":6,"integrity":"sha512-JVry+KFBATMzFJQQgtRlmiN7TUA0DN3op5jJLgkUlQZ0NQhk25D12Nk9wUsw6bckbnSsWn2uxEQDiLXWfzBlmw==","signatures":[{"sig":"MEQCIHJcZKbQpwrHOVDcgeKM7eqHwUpCibdIK0TUiSPdq3R5AiBQPGKooRM+jNOQhplheYQu9qAinp9B2WSIX5kaAwx6rw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159696},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"83c9e4515b378598daa327fd8c42c379cc1e9479","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","ulid":"^3.0.0","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.7.2_1758963857384_0.685554410997012","host":"s3://npm-registry-packages-npm-production"}},"1.7.3":{"name":"imean-service-engine","version":"1.7.3","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.7.3","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"2de3b21007352cf5e61254e5f9af4818436f69bf","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.7.3.tgz","fileCount":6,"integrity":"sha512-GvkVtO9nOzsVngmIHLuwPHuagDJEtaR1TVX6hhcxChowLb+UVW/VKygp7h+LjrgvV4ACzowmFPvQL1hogBCvvw==","signatures":[{"sig":"MEUCIGzmPLN0e0tZKgKIhfbus6qvbsZ+qymreBD5jjYRqtjzAiEAjWlZi9WElt7AYkhExgu4K2drcpOHA0RIwyAeRcAaHyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159862},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"83c9e4515b378598daa327fd8c42c379cc1e9479","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","ulid":"^3.0.0","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.7.3_1758967996074_0.7443655102454538","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"imean-service-engine","version":"1.8.0","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.8.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"3039e335ad10a8fb0b6d44bf8881a6e271b9cfec","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.8.0.tgz","fileCount":6,"integrity":"sha512-w+Rh4RbzZmPNADvowU+rG3kEek+45ugzTwIbcHrToNN7jYSsgp5IXpaQ4+rux5bDcEEKFd4d+6Cf3lK4S2U7tg==","signatures":[{"sig":"MEYCIQDGt0t1c8ktf8wmVfHzhXK4cbRCEiAM1nd9iC2iCnCNqwIhAMxpSa8FT9vUahiVntQF/bhgcmguEiCXDLvSZIAGHCrg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152575},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"3584a4421ffa007e2d97c0c57b78a9ccc7cd930f","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","ulid":"^3.0.0","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.8.0_1759049944704_0.6432260971390193","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"imean-service-engine","version":"1.8.1","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.8.1","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"f3e4347fb28a3bcc87ea8790a54c5a26342f9bd6","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.8.1.tgz","fileCount":6,"integrity":"sha512-GTYPQA9suKkNQLcvq6Hu7AXaOaGL6f1fQQyDdgfGYfU0ICJ5JGZX74pFhI7pkq6nmG/du3x6b2ItQTPfQmlPbg==","signatures":[{"sig":"MEQCIE5XV8yUT4vf+Ibl9j3kGUEczbHeCDXQ0PQJfL1GRq7iAiBm348H7HhbC26OvhJGdBfi8YxZOSpveGsI+owSkD8u+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152545},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"160e42c02c29960f3d986090833149a1fa6b5b2a","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","ulid":"^3.0.0","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.8.1_1759061259349_0.41077061536644077","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"imean-service-engine","version":"1.8.2","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.8.2","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"3be3a833c252e351ed16b0a1d6f32c42b570dba5","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.8.2.tgz","fileCount":6,"integrity":"sha512-MPkdPVZJ65+HcqtjFe2I7RsjkSQjvOh7exsbPOVGhTLNtTz+QKP/kjF3f5o40JhYjiyiORcz4z0VmTOs+yQbNQ==","signatures":[{"sig":"MEQCIE50yaUJwqSEWC+nJyzXb23LeqND/rbDid359WTGWsXOAiA3C8Yu+StdzL134CysmtVXKF1Q81Z5ewB5N6NetJZVAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152345},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"de545fee8a841dbb95971b8736ae8137b133d62a","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","ulid":"^3.0.0","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.8.2_1760240986000_0.7680993425057256","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"imean-service-engine","version":"1.9.0","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"license":"MIT","_id":"imean-service-engine@1.9.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"d1a5adeb83e421024376df1f1188386a5badf9bc","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.9.0.tgz","fileCount":6,"integrity":"sha512-HjEpo2+ZxKFgs7Goq+gkJB12lVtzg4hcKYU5k10u8ohcgqVZh1pMFbO59wAigsYyfljKSs37MyEP1ysGDrJa5A==","signatures":[{"sig":"MEYCIQCFVEx9f7JzPwHHv9Xl76eOWqCYHXmpsZwS747bpFi5rAIhANKcwko2TfSCxoeYKHfRHiIx03naAZN9UTXiTHJVf3Xe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153235},"main":"dist/mod.js","type":"module","types":"dist/mod.d.ts","module":"dist/mod.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"gitHead":"efb54824f0b01c9f1bcb70b83298041ad968f4fc","scripts":{"dev":"tsx watch dev/index.ts","test":"vitest run","build":"tsup","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"repository":{"url":"git+https://git.imean.tech/imean/imean-microservice-framework.git","type":"git"},"_npmVersion":"10.9.2","description":"microservice engine","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^3.24.1","hono":"^4.6.17","ulid":"^3.0.0","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.17.0","fs-extra":"^11.3.0","prettier":"^3.4.2","lru-cache":"^11.0.2","@hono/node-ws":"^1.0.6","@hono/node-server":"^1.13.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.0.1","tslib":"^2.8.1","vitest":"^3.0.3","typescript":"^5.3.3","@types/node":"^20.0.0","@types/ejson":"^2.2.2","ioredis-mock":"^8.9.0","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@vitest/coverage-v8":"^3.0.4","vite-tsconfig-paths":"^5.1.4","imean-service-client":"^1.5.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","opentelemetry-instrumentation-fetch-node":"^1.2.3","@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1"},"peerDependencies":{"ioredis":"^5.6.0","@opentelemetry/api":"^1.x"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_1.9.0_1765358289881_0.6979861464758887","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"imean-service-engine","version":"2.0.0","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.0.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"6c2f174bcae246f6f77bfc9e9a893ab01f5888e7","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.0.0.tgz","fileCount":74,"integrity":"sha512-+fg2uH2LJRsTTAXNhvf3P8oBoo5ko+idwNgwLmHJy27ZBBsuomFcxxFQDIJiCaun1tK46nTF2bmh1mX9WRnt4g==","signatures":[{"sig":"MEUCIQDMYUbjQ3ls1sPEGsBnBiM1PeT4qwF3U22w0hfy2k/lewIgUuTP23VW6SKpbwP003sB6WsJTFq7vE/Sll5WwxOisVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":756369},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","imean-service-client":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.0.0_1765641451394_0.08453798084782793","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"imean-service-engine","version":"2.0.1","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.0.1","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"2ba7f8ff47bbe5e875b90428a6091529e75fa520","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.0.1.tgz","fileCount":7,"integrity":"sha512-3VW5UrM+nxZDLrEkKwB21QPQsN/DJYoD55pNeUxKBAoEf4oPPmnnE8ALhb8EBeSYnhqVELLXswaEKHjT4nGmFA==","signatures":[{"sig":"MEQCIA2rUVP5qoDKNmVrWhGvsaAiZpnfrcEL9dZTKYBCyiVGAiAwQCtKZzjj8P9/uPkxcDrgSOEkGuIb2WrqxsukcJCvsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":426159},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"7cf78ba17a9c28bbe1914b827eacf57cc1fb046c","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --run --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","@vitest/coverage-v8":"4.0.15","imean-service-client":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.0.1_1765691980426_0.2335869027941595","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"imean-service-engine","version":"2.0.2","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.0.2","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"0aa9f9de71f4f35d44894a9ac9a1c76a800f7a60","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.0.2.tgz","fileCount":7,"integrity":"sha512-SQaOoxx7prkLHRkJMtha7LCn4rSKi4SAvCbBzuMG8Ewyfecm9Gx2gJsT4zMYOE/YrXX+72pA3qpQiQdP+fBqFg==","signatures":[{"sig":"MEMCIFaJ4Rzy4Qe4jfs/aKTB0eC5Yg6x9lxIJ5urG1tm2C2hAh8i91Yd5sgKD85w6eN1VrkbzqYJ+ahWe/s/QcCujT/a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":427017},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"7cf78ba17a9c28bbe1914b827eacf57cc1fb046c","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --run --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","@vitest/coverage-v8":"4.0.15","imean-service-client":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.0.2_1765693081855_0.6251822946422254","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"imean-service-engine","version":"2.0.3","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.0.3","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"9c92b266b8250cc8fac1d04ac86c99e80713d2f6","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.0.3.tgz","fileCount":7,"integrity":"sha512-v2oN7LqklO+Ynh/VGw4p70eBUMMQ2QHSicMNLa7cq4JeLBm1hfp3+L5iuvwjBjMnPu4eoOd5kQqmNru6SoX5dA==","signatures":[{"sig":"MEUCIQCi5Qr23OAXaLI9GCmlOEg4op4NN6oSohtnn8yr0PXUCwIgN8TYan3IZKqI+m1McpvJxLTYUWJeoZ25tAtSHx6LOUI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":427621},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"bf6afdf80d4a0e789776966c17ce87193c67fb16","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --run --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","@vitest/coverage-v8":"4.0.15","imean-service-client":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.0.3_1765694222971_0.7298328345497742","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"imean-service-engine","version":"2.0.4","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.0.4","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"ed96bcdd6451d87a2319d79a890374e93de6aeb4","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.0.4.tgz","fileCount":7,"integrity":"sha512-dZWMcaFz29gqRjIVK9ZUwF/wCZIJ/aVlN4btspq5/37rbduH4c49Zq6jZd03k6j3zSR7SZ6KPRaXNxIIbgx8gA==","signatures":[{"sig":"MEUCIGtcjGapOqQw8jMoyB4KGd/JnlQrUguj6dc9WgU+mB97AiEAv7u1cWYlmUdAhsjOToSic0yAu7Cuu+GXUQmhKv0SQb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":428097},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9c1a655ebd24067f9ade8f4e56d461b2965f1b2e","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --run --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","@vitest/coverage-v8":"4.0.15","imean-service-client":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.0.4_1765695208171_0.30997736319043834","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"imean-service-engine","version":"2.0.5","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.0.5","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"3824953ca2b5210d219cf83e6eb80df7a75d9d14","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.0.5.tgz","fileCount":7,"integrity":"sha512-pGdAWgel1gizXIXQB4sIE+oTz26arEYdxv2TL59wsoKSAZ7wHDebmw0Fd/+apdz55pdKxacQ92pceEHGZafmkw==","signatures":[{"sig":"MEQCIE0vyDrnvjgbK53j3ErOsDOhKj4QVDCXiZwcTntYIgArAiAfgZV9PMG3vQY5hkDcNP+IWB2hReG/nfCLat96p3ZJ2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":430719},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"546098429827a180182d49e7e8d618ef52e8c02b","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --run --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","@vitest/coverage-v8":"4.0.15","imean-service-client":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.0.5_1765696407390_0.3237777970985263","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"imean-service-engine","version":"2.1.0","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.1.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"06c630e6489648a9bd6311f9857d4ab7707a7e1c","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.1.0.tgz","fileCount":7,"integrity":"sha512-NvXkbu2jyhWU5CgRrhIq/g2w5Oajap64FYVGxksSRpmKu0fBh5N7lkI/D6BPvzKE21IOPM1kSWr/6Dg5sc9hcw==","signatures":[{"sig":"MEQCIAR6XL1v9xrFq0CTpbb6aM9bVx5dlqDW0uapZrwpBqURAiAvH08K8BKUyI09P9kxlJuKGu5MpF7ssOep9Zd3TTMgqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":448271},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6cff3341bd6b7c13e6dc223cf3c389d2e6d2ff2b","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --run --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","@vitest/coverage-v8":"4.0.15","imean-service-client":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.1.0_1765703465383_0.23984800388543537","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"imean-service-engine","version":"2.2.0","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.2.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"30404c98a8eb3ee0a68bd4b1bf0be457175fcab2","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.2.0.tgz","fileCount":7,"integrity":"sha512-M1dRHKMNsJzwrJs0aJCl/X+d8A1Cau3ehgQHnjQtWFATGS7IuZINHd6cBNK35HduGEJxi5kw3yf/gD0SIAlVTQ==","signatures":[{"sig":"MEQCIAyHHBxQnXCHhQ8q5eVq6iWt2YvdoLDM32GuOgVr7HuZAiAq1y39T63NWuQN9D1GYzMKTpshxTTTIJWYaCrlQSBwyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":745234},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2ac4ad47a831f7c09d5478148841bdda82c10c0e","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --run --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","@vitest/coverage-v8":"4.0.15","imean-service-client":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.2.0_1766049097263_0.5518331195562991","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"imean-service-engine","version":"2.2.1","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.2.1","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"e65e75be9d1b76d6448a48b6baacfabd68255d4a","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.2.1.tgz","fileCount":7,"integrity":"sha512-B3mEyLJaWPZ1M7d5Z/P0pWE6bWKl87jPCSrvu5U/y3+SF4Mr/9bKbkWfVMIYoNbahxyJKUi/cmgBnNDVzNOXNw==","signatures":[{"sig":"MEQCIAr4PnwuBAiAyIX3S5EjyfR4xHQy9e0c6roKLM/XDSrKAiAt/FXykRiMwKodBZcb+U4ps92ftd3/H63f/o1iFtet1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":747184},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"39336a64fd30de245a6cd5e36c145eca1ddcbd19","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --run --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","@vitest/coverage-v8":"4.0.15","imean-service-client":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.2.1_1766050167988_0.818460029559712","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"imean-service-engine","version":"2.2.2","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.2.2","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"b4d73d50adcd12f65082bcc9ddb4d0d4265fc85f","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.2.2.tgz","fileCount":7,"integrity":"sha512-Xm/h596jff60gmIWd3uJtuG2VXMHYggVjT5jNgzLxxBCYiJ/cmRJOiCAIO5O4YEbPxaypFwnYYdq3n2qgQmNTQ==","signatures":[{"sig":"MEUCIQCxeFxeh87VQrsRm9e4MTG0xOYqGYiW5fhv86uLvS0yFQIgY7kzVb9HIcPHOn5OU9Q+FTKEAub0N8+OCE09wIPR300=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":746036},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"fc48a7ed5464b56732738046c3f9ca7b22c6435b","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --run --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","@vitest/coverage-v8":"4.0.15","imean-service-client":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.2.2_1766069239758_0.2635492812765796","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"imean-service-engine","version":"2.3.0","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.3.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"b5ebf8302699710435a8cca0415ec10a8e04faf0","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.3.0.tgz","fileCount":7,"integrity":"sha512-RfWUHAFZWlcD/yDq/JBW0o/q1lP/40ztwfoMhQR96efNtv1Fgv8twu7ruYsWbWfrO/WUjd8s37bKCJaGzsO0iA==","signatures":[{"sig":"MEUCIQCKfdd/2Mp0WFwiiFQRsOWL24AaLq6Ip14eetJH77Y/eQIgBOppOtlzT5dQRteerReoBRKWkPunK7jZ+I5PAtRtrwM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":448154},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"03647c384afb8fd0c7f11a4569db62b26553e7be","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --run --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","@vitest/coverage-v8":"4.0.15","imean-service-client":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.3.0_1767681713482_0.4710016709022651","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"imean-service-engine","version":"2.3.1","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.3.1","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"d63ce6ef89d338bf1e0e2d3b382154a962c68c3f","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.3.1.tgz","fileCount":7,"integrity":"sha512-SEE1XeN0d0SdxY7tvCnVzkHIkihLjjf3BB/tDGuc5BtqjAbxaq2tkbWO5SJ4MektLiez7B0Rsk6/oMyWwRF6SQ==","signatures":[{"sig":"MEQCIGhPFkg0yPxoVOaO5HcFs5x/bQbtYSbLlRllD3YixTDqAiBSm2iaYvMxCJ4324et7QYrfhfcY0iYIYAOVikpXTgQow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":449720},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"474b9c1f9647b12fbab93e96650ea740e79d6fc9","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --run --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","@vitest/coverage-v8":"4.0.15","imean-service-client":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.3.1_1768968131386_0.38543421399299294","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"imean-service-engine","version":"2.4.0","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.4.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"0d10a990854bafb3cd2cf4330c464b9291d5e971","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.4.0.tgz","fileCount":7,"integrity":"sha512-xm8AERGPvbi/3m1GBDNKGmReZ2dRpP00L+5Z90AJk0Gx+7/gtCHeBAm5hi4Z06Do98skeAkz1IHhfgw3Sq4I4A==","signatures":[{"sig":"MEUCIBsIkOFB9hghLuDeQdmDmqizRg3lgo9TxZzr1WNlB24EAiEAhAkp7aFQcWq/On5v2/TzU4uKTbjnESWjqdTj1OEZwmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":385335},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d3d3c0dbb042761c6a978ef0099b1a3b144d2f0b","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --run --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","@opentelemetry/api":"^1","@vitest/coverage-v8":"4.0.15","imean-service-client":"^1.6.0"},"peerDependencies":{"@opentelemetry/api":"^1"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.4.0_1769070935790_0.6699076832497546","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"imean-service-engine","version":"2.5.0","keywords":["microservice","hono","framework","typescript"],"author":"","license":"MIT","_id":"imean-service-engine@2.5.0","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"dist":{"shasum":"c4499af25a7a75a681532046d96bbe03eeed0c24","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-2.5.0.tgz","fileCount":7,"integrity":"sha512-bHpn+PgWx/GUPA290sycIwC9dji3Ivk+j5Xe3YnJXp61urYDjLecPH3n6Di/acSeoA+mu/XRA5TjrXxDV2+6Pw==","signatures":[{"sig":"MEYCIQCNErP70RGswG5Blotv99jkxQs0IcVEgP5wHfUgasr0OAIhAOhgSAHNDbULLfbaNv8PZTsgyrWlr2zMzXAx5Xyd8SqZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":388675},"main":"dist/index.js","_from":"file:imean-service-engine-2.5.0.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsx tests/integration/start-service.ts","test":"vitest --run","build":"tsup","test:ui":"vitest --ui","test:coverage":"vitest --run --coverage"},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"_resolved":"C:\\Users\\41682\\AppData\\Local\\Temp\\07b06577a8c75af0ba5b20b1e8fdb3cf\\imean-service-engine-2.5.0.tgz","_integrity":"sha512-bHpn+PgWx/GUPA290sycIwC9dji3Ivk+j5Xe3YnJXp61urYDjLecPH3n6Di/acSeoA+mu/XRA5TjrXxDV2+6Pw==","_npmVersion":"10.9.2","description":"基于Hono的轻量级微服务引擎框架","directories":{},"_nodeVersion":"22.13.0","dependencies":{"zod":"^4.1.13","hono":"^4.10.8","ejson":"^2.2.3","etcd3":"^1.1.2","nanoid":"^5.1.6","winston":"^3.19.0","prettier":"^3.7.4","@hono/node-server":"^1.19.7","@opentelemetry/api":"^1.9.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","vitest":"^4.0.15","@vitest/ui":"^4.0.15","typescript":"^5.9.3","@types/node":"^25.0.1","@types/ejson":"^2.2.2","@opentelemetry/api":"^1","@vitest/coverage-v8":"4.0.15","imean-service-client":"^1.6.0"},"peerDependencies":{"@opentelemetry/api":"^1"},"_npmOperationalInternal":{"tmp":"tmp/imean-service-engine_2.5.0_1769073741785_0.35262029137571194","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"imean-service-engine","version":"1.10.0","description":"microservice engine","keywords":["microservice","websocket","http","node"],"author":{"name":"imean"},"type":"module","license":"MIT","repository":{"type":"git","url":"git+https://git.imean.tech/imean/imean-microservice-framework.git"},"main":"dist/mod.js","module":"dist/mod.js","types":"dist/mod.d.ts","exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"dependencies":{"@hono/node-server":"^1.13.7","@hono/node-ws":"^1.0.6","dayjs":"^1.11.13","ejson":"^2.2.3","etcd3":"^1.1.2","fs-extra":"^11.3.0","hono":"^4.6.17","lru-cache":"^11.0.2","nanoid":"^5.1.6","prettier":"^3.4.2","ulid":"^3.0.0","winston":"^3.17.0","zod":"^3.24.1"},"peerDependencies":{"@opentelemetry/api":"^1.x","ioredis":"^5.6.0"},"devDependencies":{"@opentelemetry/auto-instrumentations-node":"^0.55.3","@opentelemetry/exporter-logs-otlp-proto":"^0.57.1","@opentelemetry/exporter-metrics-otlp-proto":"^0.57.1","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1","@opentelemetry/instrumentation-winston":"^0.44.0","@opentelemetry/sdk-logs":"^0.57.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-node":"^0.57.1","@opentelemetry/sdk-trace-node":"^1.30.1","@opentelemetry/winston-transport":"^0.10.0","@types/ejson":"^2.2.2","@types/fs-extra":"^11.0.4","@types/ioredis-mock":"^8.2.5","@types/node":"^20.0.0","@vitest/coverage-v8":"^3.0.4","imean-service-client":"^1.5.0","ioredis-mock":"^8.9.0","opentelemetry-instrumentation-fetch-node":"^1.2.3","tslib":"^2.8.1","tsup":"^8.0.1","tsx":"^4.19.2","typescript":"^5.3.3","vite-tsconfig-paths":"^5.1.4","vitest":"^3.0.3"},"engines":{"node":">=20"},"scripts":{"dev":"tsx watch dev/index.ts","build":"tsup","test":"vitest run"},"_id":"imean-service-engine@1.10.0","_integrity":"sha512-F/PDdFRrziyJfkl58RZ6iicB9gKul+TeNUlMiTAVzjlISWP8poqwG5GYY7pC2FyNmWJk9tzXZTBjquvXyz0UBg==","_resolved":"/private/var/folders/8_/w5k7nhg136328kwyk052nm_r0000gn/T/84a9672b917ff9f2dbe03cf20eed3417/imean-service-engine-1.10.0.tgz","_from":"file:imean-service-engine-1.10.0.tgz","_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-F/PDdFRrziyJfkl58RZ6iicB9gKul+TeNUlMiTAVzjlISWP8poqwG5GYY7pC2FyNmWJk9tzXZTBjquvXyz0UBg==","shasum":"1443122ccc212281e587b4c4f40fc48cbd37e23b","tarball":"https://registry.npmjs.org/imean-service-engine/-/imean-service-engine-1.10.0.tgz","fileCount":6,"unpackedSize":155719,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHqeYowEqe1tSBEzXLqwC55OxMC9A/QCitiucomYhyrhAiEA9+JN2gBcAMUwzPaKKls0XAC9iYyDicsZih4pNkUB/qo="}]},"_npmUser":{"name":"imean-bot","email":"imean-devprod@stellarrover.com"},"directories":{},"maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/imean-service-engine_1.10.0_1769573055714_0.7788943726767279"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-23T08:07:26.390Z","modified":"2026-01-28T04:04:15.985Z","1.0.0":"2025-01-23T08:07:26.554Z","1.1.0":"2025-01-23T09:27:50.683Z","1.2.0":"2025-01-23T14:47:44.479Z","1.2.1":"2025-01-26T08:36:25.785Z","1.2.2":"2025-02-11T09:46:23.574Z","1.2.3":"2025-03-12T03:52:01.979Z","1.3.0":"2025-03-12T06:12:58.453Z","1.4.0":"2025-04-07T02:14:16.412Z","1.4.1":"2025-04-24T13:04:29.736Z","1.4.2":"2025-05-20T04:04:02.623Z","1.5.0":"2025-06-25T14:01:43.803Z","1.6.0":"2025-09-22T10:04:25.386Z","1.7.0":"2025-09-27T08:02:45.626Z","1.7.1":"2025-09-27T08:38:14.384Z","1.7.2":"2025-09-27T09:04:17.566Z","1.7.3":"2025-09-27T10:13:16.258Z","1.8.0":"2025-09-28T08:59:04.884Z","1.8.1":"2025-09-28T12:07:39.542Z","1.8.2":"2025-10-12T03:49:46.214Z","1.9.0":"2025-12-10T09:18:10.071Z","2.0.0":"2025-12-13T15:57:31.596Z","2.0.1":"2025-12-14T05:59:40.574Z","2.0.2":"2025-12-14T06:18:02.019Z","2.0.3":"2025-12-14T06:37:03.146Z","2.0.4":"2025-12-14T06:53:28.323Z","2.0.5":"2025-12-14T07:13:27.553Z","2.1.0":"2025-12-14T09:11:05.516Z","2.2.0":"2025-12-18T09:11:37.411Z","2.2.1":"2025-12-18T09:29:28.148Z","2.2.2":"2025-12-18T14:47:19.959Z","2.3.0":"2026-01-06T06:41:53.628Z","2.3.1":"2026-01-21T04:02:11.598Z","2.4.0":"2026-01-22T08:35:35.951Z","2.5.0":"2026-01-22T09:22:21.968Z","1.10.0":"2026-01-28T04:04:15.864Z"},"license":"MIT","keywords":["microservice","websocket","http","node"],"description":"microservice engine","maintainers":[{"name":"imean-bot","email":"imean-devprod@stellarrover.com"}],"readme":"# Microservice Framework\n\n一个轻量级的 TypeScript 微服务框架。提供了类型安全、自动客户端生成、请求重试等特性。\n\n## 特性\n\n- 📝 完全的 TypeScript 支持\n- 🔄 自动生成类型安全的客户端代码\n- 🛡️ 使用 Zod 进行运行时类型验证\n- 🔁 内置智能重试机制\n- 🎯 支持幂等操作\n- 🌟 优雅的装饰器 API\n- 🚦 优雅停机支持\n- 📡 生成基于 fetch 的客户端代码,可以在 Deno 、Node.js、Bun 以及浏览器中使用\n- 🌟 支持 Stream 流传输，客户端使用 AsyncIterator 迭代\n- 🌟 服务引擎支持通过 WebSocket 进行实时通信，相比 HTTP 请求具有以下优势：\n  - 保持长连接，减少连接建立的开销\n  - 支持双向通信\n  - 使用 Brotli 压缩，减少数据传输量\n  - 自动重连和心跳检测\n- 🌐 内置 PageRenderPlugin 支持服务端渲染页面，集成 HTMX 和 Hyperscript\n\n## TODOs\n\n- [ ] 示例项目\n- [ ] 微服务高级功能，熔断器、负载均衡等\n\n## 安装\n\n```typescript\nimport { Action, Microservice, Module } from \"imean-service-engine\";\n```\n\n## 快速开始\n\n### 1. 定义数据模型\n\n使用 Zod 定义你的数据模型：\n\n```typescript\nimport { z } from \"zod\";\nconst UserSchema = z.object({\n  id: z.string(),\n  name: z.string(),\n  age: z.number().min(0).max(150),\n});\ntype User = z.infer<typeof UserSchema>;\n```\n\n### 2. 创建服务模块\n\n使用装饰器定义你的服务模块和方法：\n\n```typescript\n@Module(\"users\", {\n  description: \"用户服务模块\",\n  version: \"1.0.0\",\n})\nclass UserService {\n  private users = new Map<string, User>();\n\n  @Action({\n    description: \"获取用户信息\",\n    params: [z.string()],\n    returns: UserSchema,\n  })\n  async getUser(id: string): Promise<User> {\n    const user = this.users.get(id);\n    if (!user) {\n      throw new Error(\"用户不存在\");\n    }\n    return user;\n  }\n\n  @Action({\n    description: \"创建新用户\",\n    params: [z.string(), z.number()],\n    returns: UserSchema,\n  })\n  async createUser(name: string, age: number): Promise<User> {\n    const id = crypto.randomUUID();\n    const user = { id, name, age };\n    this.users.set(id, user);\n    return user;\n  }\n\n  @Action({\n    description: \"更新用户信息\",\n    params: [z.string(), z.string(), z.number()],\n    returns: UserSchema,\n    // 标记为幂等操作，支持自动重试\n    idempotence: true,\n  })\n  async updateUser(id: string, name: string, age: number): Promise<User> {\n    const user = this.users.get(id);\n    if (!user) {\n      throw new Error(\"用户不存在\");\n    }\n    const updatedUser = { ...user, name, age };\n    this.users.set(id, updatedUser);\n    return updatedUser;\n  }\n}\n```\n\n### 3. 启动服务\n\n```typescript\nconst service = new Microservice({\n  modules: [UserService],\n  prefix: \"/api\",\n});\nawait service.init();\n// 启动在 3000 端口\nservice.start(3000);\n```\n\n### 4. 使用生成的客户端\n\n访问服务根路径（如 `http://localhost:3000/client.ts`）会自动下载生成的\nTypeScript 客户端代码。\n\n使用生成的客户端：\n\n```typescript\nconst client = new MicroserviceClient({\n  baseUrl: \"http://localhost:3000\",\n});\n// 创建用户\nconst user = await client.users.createUser(\"张三\", 25);\n// 更新用户（支持自动重试）\nconst updated = await client.users.updateUser(user.id, \"张三丰\", 30);\n// 获取用户\nconst found = await client.users.getUser(user.id);\n```\n\n## 高级特性\n\n### PageRenderPlugin - 服务端渲染页面\n\nPageRenderPlugin 为微服务框架提供了服务端渲染页面的能力，集成了 HTMX 和 Hyperscript，让你可以轻松构建现代化的 Web 应用。\n\n#### 启用 PageRenderPlugin\n\n```typescript\nimport { Microservice, PageRenderPlugin } from \"imean-service-engine\";\n\nconst service = new Microservice({\n  modules: [UserService],\n  plugins: [new PageRenderPlugin()],\n});\n```\n\n#### 使用 @Page 装饰器\n\n使用 `@Page` 装饰器可以将模块方法暴露为 Web 页面：\n\n```typescript\nimport { Page, HtmxLayout } from \"imean-service-engine\";\n\n@Module(\"web\")\nclass WebService {\n  @Page({\n    path: \"/greeting\",\n    method: \"get\",\n    description: \"问候页面\",\n  })\n  greetingPage(ctx: Context) {\n    return (\n      <HtmxLayout title=\"问候页面\">\n        <div class=\"min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100 p-8\">\n          <div class=\"max-w-4xl mx-auto\">\n            <h1 class=\"text-4xl font-bold text-center text-gray-800 mb-8\">\n              HTMX 交互示例\n            </h1>\n            <div class=\"bg-white rounded-lg shadow-lg p-6\">\n              <h2 class=\"text-2xl font-semibold mb-4 text-gray-700\">问候语</h2>\n              <div id=\"greeting\" class=\"text-xl p-4 bg-blue-50 rounded-lg\">\n                欢迎使用微服务框架！\n              </div>\n              <button\n                class=\"mt-4 px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600\"\n                hx-post=\"/api/greeting\"\n                hx-target=\"#greeting\"\n                hx-swap=\"innerHTML\"\n              >\n                更新问候语\n              </button>\n            </div>\n          </div>\n        </div>\n      </HtmxLayout>\n    );\n  }\n\n  @Page({\n    path: \"/greeting\",\n    method: \"post\",\n    description: \"更新问候语\",\n  })\n  updateGreeting(ctx: Context) {\n    return \"你好，世界！当前时间：\" + new Date().toLocaleString();\n  }\n}\n```\n\n#### JSX 配置\n\n要使用 JSX 语法，需要在 `tsconfig.json` 中配置：\n\n```json\n{\n  \"compilerOptions\": {\n    \"jsx\": \"react-jsx\",\n    \"jsxImportSource\": \"hono/jsx\"\n  }\n}\n```\n\n#### HtmxLayout 组件\n\n`HtmxLayout` 提供了预配置的页面布局，包含：\n\n- HTMX 库（最新版本）\n- Hyperscript 库（最新版本）\n- Tailwind CSS（CDN 版本）\n- 响应式设计支持\n- 默认图标\n\n```typescript\nimport { HtmxLayout } from \"imean-service-engine\";\n\n// 基本用法\nconst page = (\n  <HtmxLayout title=\"我的页面\">\n    <div>页面内容</div>\n  </HtmxLayout>\n);\n\n// 自定义图标\nconst pageWithCustomIcon = (\n  <HtmxLayout title=\"我的页面\" favicon={<link rel=\"icon\" href=\"/custom-icon.ico\" />}>\n    <div>页面内容</div>\n  </HtmxLayout>\n);\n```\n\n#### BaseLayout 组件\n\n如果你不想使用 HTMX 和 Hyperscript，而是想使用其他前端框架（如 React、Vue 等），可以使用 `BaseLayout` 组件：\n\n```typescript\nimport { BaseLayout } from \"imean-service-engine\";\n\n// 使用 BaseLayout 自定义页面\nconst customPage = (\n  <BaseLayout title=\"自定义页面\">\n    <div>页面内容</div>\n  </BaseLayout>\n);\n\n// 自定义头部内容\nconst pageWithCustomHead = (\n  <BaseLayout \n    title=\"自定义页面\"\n    heads={\n      <>\n        <link rel=\"stylesheet\" href=\"/custom.css\" />\n        <script src=\"https://unpkg.com/react@18/umd/react.development.js\"></script>\n        <script src=\"https://unpkg.com/react-dom@18/umd/react-dom.development.js\"></script>\n      </>\n    }\n  >\n    <div id=\"root\">React 应用将在这里渲染</div>\n  </BaseLayout>\n);\n```\n\n`BaseLayout` 提供：\n- 基本的 HTML 结构\n- 可自定义的 `<head>` 内容\n- 可自定义的页面标题\n- 可自定义的图标\n\n#### HTMX 交互示例\n\n结合 HTMX 可以实现丰富的交互效果：\n\n```typescript\n@Page({\n  path: \"/users\",\n  method: \"get\",\n  description: \"用户列表页面\",\n})\nusersPage(ctx: Context) {\n  return (\n    <HtmxLayout title=\"用户管理\">\n      <div class=\"container mx-auto p-8\">\n        <h1 class=\"text-3xl font-bold mb-6\">用户管理</h1>\n        \n        {/* 用户列表 */}\n        <div \n          id=\"user-list\" \n          hx-get=\"/api/users/list\"\n          hx-trigger=\"load\"\n        >\n          加载中...\n        </div>\n        \n        {/* 添加用户表单 */}\n        <div class=\"mt-8 bg-white rounded-lg shadow p-6\">\n          <h2 class=\"text-xl font-semibold mb-4\">添加新用户</h2>\n          <form \n            hx-post=\"/api/users/add\"\n            hx-target=\"#user-list\"\n            hx-swap=\"outerHTML\"\n          >\n            <div class=\"grid grid-cols-2 gap-4\">\n              <input \n                type=\"text\" \n                name=\"name\" \n                placeholder=\"姓名\"\n                class=\"px-3 py-2 border rounded-md\" \n                required \n              />\n              <input \n                type=\"number\" \n                name=\"age\" \n                placeholder=\"年龄\"\n                class=\"px-3 py-2 border rounded-md\" \n                required \n              />\n            </div>\n            <button \n              type=\"submit\" \n              class=\"mt-4 px-4 py-2 bg-green-500 text-white rounded hover:bg-green-600\"\n            >\n              添加用户\n            </button>\n          </form>\n        </div>\n      </div>\n    </HtmxLayout>\n  );\n}\n```\n\n#### Hyperscript 增强交互\n\n使用 Hyperscript 可以实现更复杂的客户端逻辑：\n\n```typescript\n// 带加载状态的按钮\n<button\n  hx-post=\"/api/users/refresh\"\n  hx-target=\"#user-list\"\n  hx-swap=\"innerHTML\"\n  _=\"on htmx:beforeRequest hide #button-text then show #loading-spinner end \n     on htmx:afterRequest hide #loading-spinner then show #button-text end\"\n>\n  <span id=\"loading-spinner\" class=\"htmx-indicator\">\n    <svg class=\"animate-spin h-4 w-4\" viewBox=\"0 0 24 24\">\n      <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\n      <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n    </svg>\n    加载中...\n  </span>\n  <span id=\"button-text\">刷新用户列表</span>\n</button>\n```\n\n#### 服务状态页面\n\nPageRenderPlugin 自动在服务根路径（`/api`）提供服务的状态页面，显示：\n\n- 服务基本信息（名称、版本、环境）\n- 模块列表和 API 端点\n- 服务健康状态\n\n访问 `http://localhost:3000/api` 即可查看服务状态页面。\n\n#### 最佳实践\n\n1. **页面组织**：将页面逻辑与 API 逻辑分离\n2. **组件复用**：使用 HtmxLayout 确保一致的页面结构\n3. **渐进增强**：优先使用 HTMX 实现交互，必要时使用 Hyperscript\n4. **响应式设计**：利用 Tailwind CSS 构建响应式界面\n5. **布局选择**：\n   - 使用 `HtmxLayout` 进行快速原型开发和简单交互\n   - 使用 `BaseLayout` 集成复杂的前端框架（React、Vue 等）\n   - 根据项目需求选择合适的布局组件\n\n```typescript\n// 推荐的目录结构\nsrc/\n├── pages/           # 页面组件\n│   ├── users.tsx\n│   └── dashboard.tsx\n├── services/        # 服务模块\n│   ├── user.ts\n│   └── web.ts\n└── layouts/         # 自定义布局\n    └── admin.tsx\n```\n\n### 幂等性和重试机制\n\n框架提供了智能的重试机制，但仅对标记为幂等的操作生效：\n\n重试策略：\n\n- 仅对标记为 `idempotence: true` 的方法进行重试\n- 重试间隔：500ms、1000ms、3000ms、5000ms\n- 最多重试 4 次\n\n### 优雅停机\n\n在需要停止服务时，可以等待所有重试请求完成：\n\n## API 参考\n\n### 装饰器\n\n#### @Module(name: string, options: ModuleOptions)\n\n定义一个服务模块。\n\n```typescript\ninterface ModuleOptions {\n  description?: string;\n  version?: string;\n}\n```\n\n#### @Action(options: ActionOptions)\n\n定义一个模块方法。\n\n```typescript\ninterface ActionOptions {\n  description?: string;\n  params: z.ZodType<any>[]; // 参数类型定义\n  returns: z.ZodType<any>; // 返回值类型定义\n  idempotence?: boolean; // 是否是幂等操作\n  stream?: boolean; // 是否是流式操作\n  cache?: boolean; // 是否开启缓存\n  cacheTTL?: number; // 缓存过期时间（秒）\n}\n```\n\n#### @Page(options: PageOptions)\n\n定义一个页面路由（需要启用 PageRenderPlugin）。\n\n```typescript\ninterface PageOptions {\n  method: \"get\" | \"post\" | \"put\" | \"delete\" | \"patch\" | \"options\";\n  path: string;\n  description?: string;\n}\n```\n\n示例：\n\n```typescript\n@Page({\n  path: \"/dashboard\",\n  method: \"get\",\n  description: \"仪表板页面\",\n})\ndashboardPage(ctx: Context) {\n  return (\n    <HtmxLayout title=\"仪表板\">\n      <div>仪表板内容</div>\n    </HtmxLayout>\n  );\n}\n```\n\n### Microservice\n\n#### constructor(options: MicroserviceOptions)\n\n创建微服务实例。\n\n```typescript\ninterface MicroserviceOptions {\n  modules: (new () => any)[]; // 模块类数组\n  prefix?: string; // API 前缀，默认为 \"/api\"\n  plugins?: Plugin[]; // 插件数组，如 PageRenderPlugin\n}\n```\n\n#### start(port?: number): void\n\n启动服务器，默认端口为 3000。\n\n### MicroserviceClient\n\n#### constructor(options: ClientOptions)\n\n创建客户端实例。\n\n```typescript\ninterface ClientOptions {\n  baseUrl: string; // 服务器地址\n  prefix?: string; // API 前缀，默认为 \"/api\"\n  headers?: Record<string, string>; // 自定义请求头\n}\n```\n\n## 类型安全\n\n框架使用 Zod 进行运行时类型验证，确保：\n\n- 请求参数类型正确\n- 返回值类型符合预期\n- 自动生成的客户端代码类型完整\n\n## 最佳实践\n\n### 服务启动前检查\n\n框架提供了 `startCheck` 方法用于在服务正式启动前进行必要的检查和初始化。这对于确保依赖服务（如数据库）可用非常有用。\n\n```typescript\n// main.ts\nimport { startCheck } from \"imean-service-engine\";\n\n// 数据库连接检查\nasync function checkDatabase() {\n  try {\n    const db = await connectDB({\n      host: \"localhost\",\n      port: 5432,\n      // ...其他配置\n    });\n    await db.ping();\n    console.log(\"✅ 数据库连接成功\");\n  } catch (error) {\n    throw new Error(`数据库连接失败: ${error.message}`);\n  }\n}\n\n// Redis 连接检查\nasync function checkRedis() {\n  try {\n    const redis = await connectRedis();\n    await redis.ping();\n    console.log(\"✅ Redis 连接成功\");\n  } catch (error) {\n    throw new Error(`Redis 连接失败: ${error.message}`);\n  }\n}\n\n// 启动检查\nstartCheck(\n  // 前置检查项\n  [checkDatabase, checkRedis],\n  // 服务启动回调\n  async () => {\n    // 使用动态导入载入服务模块\n    const { UserService } = await import(\"./services/user.ts\");\n    const { OrderService } = await import(\"./services/order.ts\");\n\n    const service = new Microservice({\n      modules: [UserService, OrderService],\n      prefix: \"/api\",\n    });\n\n    service.start(3000);\n  }\n);\n```\n\n这种方式的优点：\n\n1. **依赖检查**\n\n   - 确保所有必要的外部服务都可用\n   - 避免服务启动后才发现依赖问题\n   - 提供清晰的错误信息\n\n2. **按需加载**\n\n   - 使用动态导入延迟加载服务模块\n   - 避免在检查失败时不必要的资源初始化\n   - 提高启动性能\n\n3. **优雅失败**\n   - 如果检查失败，服务不会启动\n   - 适合在容器环境中使用\n   - 便于问题诊断\n\n### 目录结构建议\n\n```\nyour-service/\n├── main.ts              # 入口文件，包含启动检查\n├── config/\n│   └── index.ts         # 配置文件\n├── services/\n│   ├── user.ts          # 用户服务模块\n│   └── order.ts         # 订单服务模块\n├── models/\n│   ├── user.ts          # 用户数据模型\n│   └── order.ts         # 订单数据模型\n├── utils/\n│   └── db.ts            # 数据库连接工具\n└── tests/\n    └── services/\n        ├── user.test.ts\n        └── order.test.ts\n```\n\n### 配置管理\n\n建议将配置和服务逻辑分离：\n\n```typescript\n// config/index.ts\nexport const config = {\n  database: {\n    host: process.env.DB_HOST || \"localhost\",\n    port: parseInt(process.env.DB_PORT || \"5432\"),\n    // ...\n  },\n  redis: {\n    url: process.env.REDIS_URL || \"redis://localhost:6379\",\n    // ...\n  },\n  service: {\n    port: parseInt(process.env.PORT || \"3000\"),\n    prefix: process.env.API_PREFIX || \"/api\",\n  },\n};\n\n// main.ts\nimport { config } from \"./config/index.ts\";\n\nstartCheck(\n  [\n    /* ... */\n  ],\n  async () => {\n    const service = new Microservice({\n      modules: [\n        /* ... */\n      ],\n      prefix: config.service.prefix,\n    });\n\n    service.start(config.service.port);\n  }\n);\n```\n\n### 文件上传/二进制数据\n\n框架传输采用 ejson 进行序列化，支持二进制数据传输。只需要在模型中接受 `Uint8Array` 类型即可，并且 Zod 类型需要设置为 `z.instanceof(Uint8Array)`。\n\n```typescript\nimport * as z from \"zod\";\n\n@Module(\"files\")\nexport class FileService {\n  @Action({\n    params: [z.instanceof(Uint8Array)],\n    returns: z.instanceof(Uint8Array),\n  })\n  reverseBinary(data: Uint8Array): Uint8Array {\n    return data.reverse();\n  }\n}\n```\n\n### 定时任务\n\n框架提供了 `@Schedule` 装饰器用于定义定时任务。在分布式环境中，同一个定时任务只会在一个服务实例上执行。\n\n#### 基本用法\n\n```typescript\n@Module(\"tasks\")\nclass TaskService {\n  @Schedule({\n    interval: 5000, // 执行间隔（毫秒）\n    mode: ScheduleMode.FIXED_RATE, // 执行模式\n  })\n  async cleanupTask() {\n    // 定时执行的任务代码\n  }\n}\n```\n\n#### 执行模式\n\n框架支持两种执行模式：\n\n- `FIXED_RATE`: 固定频率执行，不考虑任务执行时间\n\n  ```typescript\n  @Schedule({\n    interval: 5000,\n    mode: ScheduleMode.FIXED_RATE,\n  })\n  async quickTask() {\n    // 每 5 秒执行一次\n  }\n  ```\n\n- `FIXED_DELAY`: 固定延迟执行，等待任务完成后再计时\n  ```typescript\n  @Schedule({\n    interval: 5000,\n    mode: ScheduleMode.FIXED_DELAY,\n  })\n  async longRunningTask() {\n    // 任务完成后等待 5 秒再执行下一次\n  }\n  ```\n\n#### 分布式调度\n\n定时任务基于 etcd 实现分布式调度：\n\n1. 自动选主：多个服务实例中只有一个会执行定时任务\n2. 故障转移：当执行任务的实例故障时，其他实例会自动接管\n3. 服务发现：新加入的实例会自动参与选主\n\n```typescript\nconst service = new Microservice({\n  name: \"user-service\", // 服务名称\n  modules: [TaskService],\n  etcd: {\n    hosts: [\"localhost:2379\"], // etcd 服务地址\n    auth: {\n      // 可选的认证信息\n      username: \"root\",\n      password: \"password\",\n    },\n    ttl: 10, // 租约 TTL（秒）\n    namespace: \"services\", // 可选的命名空间\n  },\n});\n```\n\n#### 选举 Key (内部工作机制)\n\n每个定时任务都有唯一的选举 key，格式为：\n\n```\n{service-name}/{module-name}/schedules/{method-name}\n```\n\n#### 优雅停机\n\n服务停止时会自动清理定时任务和选举信息：\n\n```typescript\n// 在 k8s 停机信号处理中\nawait service.stop();\n```\n\n#### 注意事项\n\n1. 使用定时任务需要配置 etcd\n2. 建议使用 `FIXED_DELAY` 模式执行耗时任务\n3. 任务执行时间不应超过执行间隔\n\n#### Stream 流\n\n服务引擎支持 Stream 流传输，可以在服务端返回 Stream 流，客户端使用 `await iter.next()` 逐个获取数据。或者使用 `for await (const item of iter)` 迭代。\n\n> 注意：服务端返回的流需要使用 `AsyncIterableIterator` 类型，客户端使用 `AsyncIterator` 迭代。\n> HTTP 请求方式也支持流式传输，服务端是通过 SSE 实现。\n\n服务端：\n\n```typescript\n@Module(\"stream\")\nclass StreamService {\n  @Action({\n    params: [z.number()],\n    returns: z.number,\n    stream: true,\n  })\n  async *stream(count: number): AsyncIterableIterator<number> {\n    for (let i = 0; i < count; i++) {\n      yield i;\n      await new Promise((resolve) => setTimeout(resolve, 100));\n    }\n  }\n}\n```\n\n客户端：\n\n```typescript\nconst client = new MicroserviceClient({\n  baseUrl: \"http://localhost:3000\",\n  prefix: \"/api\",\n});\n\nconst iter = await client.stream.streamNumbers(10);\nfor await (const item of iter) {\n  console.log(item);\n}\n```\n\n## WebSocket\n\n服务引擎支持通过 WebSocket 进行实时通信，相比 HTTP 请求具有以下优势：\n\n1. 保持长连接，减少连接建立的开销\n2. 支持双向通信\n3. 使用 Brotli 压缩，减少数据传输量\n4. 自动重连和心跳检测\n\n服务端配置：\n\n```typescript\nconst service = new Microservice({\n  modules: [UserService],\n  prefix: \"/api\",\n  websocket: {\n    pingInterval: 5000,\n  },\n});\n```\n\n客户端配置：\n\n```typescript\nconst client = new MicroserviceClient({\n  baseUrl: \"ws://localhost:3000\",\n  prefix: \"/api\",\n  websocket: {\n    pingInterval: 5000,\n  },\n});\n```\n\n注意：客户端使用 websocket 时，需要安装 brotli-wasm 库。因为服务端使用 brotli 压缩，客户端需要解压。\n\n### Node.js 环境使用 WebSocket\n\n最新Node.js已经提供了 WebSocket 实现，可以直接使用。如果在较低 Node.js 环境下，可以使用 `isomorphic-ws` 包来提供 WebSocket 实现：\n\n```typescript\nimport WebSocket from \"isomorphic-ws\";\n\nconst client = new MicroserviceClient({\n  baseUrl: \"http://localhost:3000\",\n  websocket: {\n    WebSocket, // 传入 WebSocket 实现\n    timeout: 10000,\n    retryInterval: 3000,\n    maxRetries: 5,\n    pingInterval: 30000,\n  },\n});\n\n// 使用方法和浏览器环境完全一样\nconst result = await client.users.getUser(\"1\");\n```\n\n安装依赖：\n\n```bash\nnpm install isomorphic-ws brotli-wasm\n```\n\n### 注意事项\n\n1. WebSocket 连接会自动重连，无需手动处理\n2. 所有消息都使用 Brotli 压缩，需要安装 brotli-wasm 库\n3. 客户端会定期发送心跳消息以保持连接\n4. 在不再使用时应调用 `close()` 方法关闭连接\n5. Node.js 环境需要安装 `isomorphic-ws` 包\n","readmeFilename":"README.md","repository":{"type":"git","url":"git+https://git.imean.tech/imean/imean-microservice-framework.git"},"author":{"name":"imean"}}