{"_id":"milesight-thermostat-api","_rev":"96-3c7a2a762c220e84ebe7610c27bdef7a","name":"milesight-thermostat-api","dist-tags":{"latest":"2025.10.23-0","stable":"2025.10.22"},"versions":{"2024.7.4-0":{"name":"milesight-thermostat-api","version":"2024.7.4-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"26dd6ed7ca606fb7db94939dd40162d2f08403a5","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-0.tgz","fileCount":30,"integrity":"sha512-9/iZBcathg+pSE7XDBcaEwjaRZB6rT7gQVBQLqdEdbng8cPLA+JVEcBehCVPAHA7j80C8rNfzjEwMgL64ljENw==","signatures":[{"sig":"MEUCIECoK/SMkdwGmIcDiayUO0DOWxpAfJriU6geO0dKcxcXAiEAsfnMWmmtcGDX3bpetPuvbydYZdpxwIyd8Q1d6Puk73M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1350605},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"320d2f9f7797498e9944e42d2c88c620179ff89c","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2024.6.4"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-0_1721790579846_0.6435107952351715","host":"s3://npm-registry-packages"}},"2024.7.4-1":{"name":"milesight-thermostat-api","version":"2024.7.4-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"b1a9a1a73fdc9cc2d80d73ab5336f45e517fdf00","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-1.tgz","fileCount":30,"integrity":"sha512-RjxsyV3yzN3ES7KUJf1imNkxDJ7MORHmFXhQuI3iw2MoSMd+M5C22JBop3W9PL45GTKRx81riK8Jd+EhP7Ws9Q==","signatures":[{"sig":"MEYCIQCReMTWLNxFJR+k8G0nBVZH6cUo4FQk/Y7Tldz9/2gI+AIhAISrbv8jP4j2XzVSGPRd6XkDHdyOj47vi6bWOeGKI8mc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1350787},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"f2832956011f52f314900f68077258329c15e3c7","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2024.6.4"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-1_1721872158532_0.18761791510645032","host":"s3://npm-registry-packages"}},"2024.7.4-2":{"name":"milesight-thermostat-api","version":"2024.7.4-2","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-2","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"947e371ded2c4dfc4107383378c7d4816c24ab36","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-2.tgz","fileCount":31,"integrity":"sha512-ttJrPqUSepqjf1IBMdo9hZBgeDk68IhbXGqwx3WlI8hHTuvE67Aps4t7hBBNkCj+GPAZRQINf24YquStAPdPGw==","signatures":[{"sig":"MEYCIQDQfozNqKg7HpZQYKgtzbUIzqK94evKiMsuVpnQjjo50AIhAIhdrIW5qarBznfky6kAsbGJgzF7CcixwfAQYEuvScfG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1351035},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"2f1bc360a50b394c36d68be85c842d8a27c74612","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2024.6.4"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-2_1721903167420_0.5444124750756345","host":"s3://npm-registry-packages"}},"2024.7.4-3":{"name":"milesight-thermostat-api","version":"2024.7.4-3","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-3","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"3f7e5456290aa1200f235c31363685eda3124ee3","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-3.tgz","fileCount":31,"integrity":"sha512-ayhW9y1jgvuu3M+I+ofhq0nwVXRmjF0baD0UL3yE5AOgoHTW+gDC6SU1t7KX7/JjDauvWQfTd2vwfDn+lWe6Lw==","signatures":[{"sig":"MEYCIQDAH20705TYB6uxh1uJ81lLbVlRGhOi3SvUy5hOOXaUUgIhAPCLsgU6dTx8xMfCCK8sqLVxlqHnfOw4SwVjr6qHhEPc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1351081},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"3dda82169dd7178acb2d449049556502631e1a00","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2024.6.4"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-3_1722226566096_0.807763931061033","host":"s3://npm-registry-packages"}},"2024.7.4-4":{"name":"milesight-thermostat-api","version":"2024.7.4-4","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-4","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"f3ac14c3c0738b1698ef766b5c767e456c9564ce","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-4.tgz","fileCount":31,"integrity":"sha512-F/y0Uh9T5Cv5aqYCymj9sa8JOK8VpdoY9Bf8eVoUQCXSmIfu1Roq8Ylu88R7wwpEQYp0dpi3G6goBJKOO3Y2sA==","signatures":[{"sig":"MEYCIQDHX42dWTNpEhIR24mgO90AclWdDB3DqpvqAFrFPXo/vAIhAJHsnnRUpB902OfE36F+hAIcTUstAwtkYO1AXccYdEHe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1361246},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"ea0a449a57758c6eba06c702523c653249da2c1f","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2023.12.8-29"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-4_1722233050786_0.1444425667376672","host":"s3://npm-registry-packages"}},"2024.7.4-5":{"name":"milesight-thermostat-api","version":"2024.7.4-5","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-5","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"9f35457c073a11d0086eb5dd4a67956796950e1e","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-5.tgz","fileCount":32,"integrity":"sha512-lkH7edy2YXCSMVEwarrOBqBIn0bHEC4WDB1gLqcAjRMkA5vZCicKgRkYM9oeWerZcStoMjaoDuPcMZ6fGIUQwA==","signatures":[{"sig":"MEYCIQD43NSA+YqEvxOP/2s8KopZM/gfPufY2nlIfwNMOYzHzAIhAIKmpBRsNmd020v9vLTNIytycq8YM598XUWCMqi0Q3sX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1372472},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"9c73212c71f9f0cae83985b571919a3436e3fdb2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2023.12.8-29"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-5_1722309343673_0.5295070088879796","host":"s3://npm-registry-packages"}},"2024.7.4-6":{"name":"milesight-thermostat-api","version":"2024.7.4-6","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-6","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"e940adf918626f066c432e3f853d95bb01c6bebd","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-6.tgz","fileCount":32,"integrity":"sha512-4MxWGsYGs2v2SqqEQI5JTPo3+OyE4YE7Z4K2ZWYrO5YYApyr2bjRRz2zqizP564HxHMj9zNUufdNZYvN8wfsHA==","signatures":[{"sig":"MEUCIFjfpVqBpUm/dzegwz3gYzko+gnQupg2QyXd5nctkpg8AiEAk958UPVL6e3CFjfnboqvvawXF1bPUJAuOR12TAeMBFI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1378473},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"89d0e70ba0030617bc2cf7026d2a84a7ec091692","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2023.12.8-30"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-6_1722898044315_0.2674729797845312","host":"s3://npm-registry-packages"}},"2024.7.4-7":{"name":"milesight-thermostat-api","version":"2024.7.4-7","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-7","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"7a43d1d7ffe98b1cb1d95797b12ef62b7c44ae48","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-7.tgz","fileCount":32,"integrity":"sha512-oChRL6j0IWMdypNr+Z/KNmxykxRlnWO8J3G+rxVnqyJnILf54l9oPFcD9Le/ky75OLZRStOrruJaZl2L7dSvpw==","signatures":[{"sig":"MEUCIQC0g4yt1Inv3/gayU4m7kDinNYvMmygtVxM8xNlLFXtXAIgKYrstPyKh97TB3FtrM/FF80hGMlkjsX/IzgEFH5Ir+I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1381686},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"f7e5749afd6f9f445c148d20b9c98ad7233d6fe3","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2023.12.8-30"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-7_1722909844753_0.20574819438865566","host":"s3://npm-registry-packages"}},"2024.7.4-8":{"name":"milesight-thermostat-api","version":"2024.7.4-8","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-8","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"2f0cca19aba6bfa2a34aad52bb1971a433a71fa2","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-8.tgz","fileCount":32,"integrity":"sha512-Brx4IjbHyWrPDH/j8pXAtkfzrEpSPAnZKEjrXuQy9YQR6KKtH0SfF2slwhHUzq2WNXv7kOl8i7PAIpufon5j4Q==","signatures":[{"sig":"MEYCIQD75+Rpaoaiudw4ebRxs84YF25DtDS4Hxut+Kdcm/tB8QIhAO3Lh+yeogpdskyAoK+8U8FKMAxFXz2u6H/m2oVxBmRH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1386355},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"868473e7534c32d32c6dcd0b497a4e9619237c6e","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2023.12.8-30"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-8_1722914308495_0.7361029600746356","host":"s3://npm-registry-packages"}},"2024.7.4-9":{"name":"milesight-thermostat-api","version":"2024.7.4-9","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-9","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"888cf703ddb712b6a2e2fa77af217aacdaec494c","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-9.tgz","fileCount":33,"integrity":"sha512-YkxScdr0Hx9SjOTZZ7nLz//l7qogI/Vzzd7szpAIN5UDd2FnP9Fttn+znuI0bp6VSAfCTqN13I61t5y6zZPf6A==","signatures":[{"sig":"MEUCIQC6tNn7+PRO1kCfOdhub5ApsPGZmTO94Mj0XSVqXE4caQIgYOeMaovOiFcvP9g0ojFRjK1cdVLV7t3yJkBDUdAxM9w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1392799},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"e87427a04aa445a55b0a9091f0662f1db6d7b59d","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2023.12.8-30"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-9_1723028106178_0.19321220951747353","host":"s3://npm-registry-packages"}},"2024.7.4-10":{"name":"milesight-thermostat-api","version":"2024.7.4-10","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-10","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"5e1c26c3c9b8bf56c997644d7b396415a6103d5b","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-10.tgz","fileCount":33,"integrity":"sha512-MKiOQxApIEnxS8v5dbFY9y4oavsgzapusl06Hoi4uADC8egjSeNRYJ0sfnvydS4Ansca4A31PhV77iEMRigWkA==","signatures":[{"sig":"MEUCIQDmT0zlyHX2WzH/V82j9+m3OHJdTRFVRsfbJTNHemZJOwIgCb/4Pa57UM3ouVU9+mjzMW7Ocd9nqF+BdycAflJxcII=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1393842},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"7681075b93e4dde72fdcb56980ad12c5d02729b1","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2023.12.8-30"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-10_1723072264634_0.4561238812131383","host":"s3://npm-registry-packages"}},"2024.7.4-11":{"name":"milesight-thermostat-api","version":"2024.7.4-11","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-11","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"5e8d0d0da49efcfe9ebaa02741e082558cc40b99","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-11.tgz","fileCount":33,"integrity":"sha512-TuYBVqMW4Bhm7OxCtAeT8njqTrCoxrgSiGAYtg3Vmrr5Jh6v3wcoMk6Kh2l1tb6irH/ms5yj6dTZPrTasXrU8w==","signatures":[{"sig":"MEYCIQDwjaYyw4lu6x3Eco38VAnSxR0rEPqlXia8dGcC2z9atwIhAP//BDHNj6tiep8FdJgemYfaDv5UZjck3GwAeoqIEwju","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1394313},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"c1b69ff06c603b0035b48f91da6925dc1e77a7a4","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2023.12.8-30"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-11_1723075907711_0.14288578005996433","host":"s3://npm-registry-packages"}},"2024.8.8":{"name":"milesight-thermostat-api","version":"2024.8.8","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.8.8","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"49b869b79c19d6dc4213a442ecf00f1c8500f184","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.8.8.tgz","fileCount":33,"integrity":"sha512-1pa0KelNzalWWEc6oS/b2jeFgUOn9K0hSfT4gnTKLN/0WlssBfzd/fiAfwYGaSRTt0i8KnwpO28U2FNHyfUqJQ==","signatures":[{"sig":"MEUCIA8Pq0gM9OITqjP5LnYUdv9YyRFGgSWL2FFUCzuBCwenAiEAzFRhYU27NZ2XC7T44MejwH2ciaJZZr8TQck8/a4+vQQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1393805},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"76c5ed32df959df03f6fefc2996695a83cdec544","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2024.8.9"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.8.8_1723432972012_0.8554100380447585","host":"s3://npm-registry-packages"}},"2024.7.4-12":{"name":"milesight-thermostat-api","version":"2024.7.4-12","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-12","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"7b2d1a8cab6048ac6a45bb8acd12deb9e21088ba","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-12.tgz","fileCount":33,"integrity":"sha512-t9alvZDY8K6UHO7uKCB7oBKS+b7pOJXLCvgRM2EKwlKXWFZ3DJneKE0lF860ur3qFSBWVoOMno7vwOyuMdxbug==","signatures":[{"sig":"MEUCIQCgM2vMn6blSzwubcfIbSP87BoGZWxhspLNx5J+H/uNQAIgawHtVSplA/sDl2lrzKGQOQTvE2nEtNCYQIX6tEoowII=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1404708},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"5afb0a6dd189cce040a61e40c73b8a9413b053d4","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2023.12.8-30"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-12_1727058268827_0.6583549982425907","host":"s3://npm-registry-packages"}},"2024.7.4-13":{"name":"milesight-thermostat-api","version":"2024.7.4-13","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-13","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"671fc5a899c2f59fed04de0150f7d1b15c70fc1d","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-13.tgz","fileCount":33,"integrity":"sha512-288UVVTo/Dp7NVE5oToVdj+/rzPYxxjMGIefhDzDmfDEEadckBRhnrXIsy/dCiaY8I5OCYXWRIROrct027+hrA==","signatures":[{"sig":"MEUCIGZwJ4NfwGEIpN8eAGMibxw0AKUN8OkqwuTxc9Mm+TAIAiEAgc0yyutoMSPpFD/XTlegLgTpo/bJNttfC0tycAWOEnA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1410043},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"487195d7c62c11196851cb8430ba787e59a6c8f4","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2023.12.8-30"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-13_1727062050111_0.04422638223860931","host":"s3://npm-registry-packages"}},"2024.7.4-14":{"name":"milesight-thermostat-api","version":"2024.7.4-14","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.7.4-14","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"7248a0d3af365574117ccff09e7578a80382a3a3","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.7.4-14.tgz","fileCount":33,"integrity":"sha512-5sJNgLEAju819qHjhaAfRehyYn4jtXjKWfWShcyilJT7JuLDemtLOfmV/7wjz7yLg4ZaEdVDvLbTfKI/mIFFGQ==","signatures":[{"sig":"MEYCIQDLETAAc6HNYQre9W3c2QO3Y3RApNTR6F2idWxYXJmlAQIhAIzuhUeweqzj8U6cDx6fY5KRx4/5PhIbL3eaF2EfNyt8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1127160},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"48dc7ad773bfc237b3b983c8b737f11edd997669","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2024.9.21-2"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.7.4-14_1727078445709_0.027780028995895822","host":"s3://npm-registry-packages"}},"2024.9.23":{"name":"milesight-thermostat-api","version":"2024.9.23","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.9.23","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"cf2af6a3ba66332adbb235c415981be25c79c5b1","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.9.23.tgz","fileCount":33,"integrity":"sha512-2q4ZcQRzHKsy+T4GLLWhjay+WjmIUY5d0tYg4ZUUY7aU0zCG0x/csxIHRVu+nnKKzxwtH07b2AOGmz3ctC1VJw==","signatures":[{"sig":"MEQCICC+k4EiXxeN/6laCVhNjtXHq3x5BkZ5OfKw0wij1WPaAiA59TCq5TwJS+d87yEkSCfNh549ICeP8DDyXjsCiLfKZw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1126269},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"862c0caa059f49836a2860abab3c5e7ce61e6e04","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2024.9.24"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.9.23_1727341819396_0.09187686976802989","host":"s3://npm-registry-packages"}},"2024.9.24-0":{"name":"milesight-thermostat-api","version":"2024.9.24-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.9.24-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"ebf4732f1075472627414d5ce0c53ca9ed854ee1","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.9.24-0.tgz","fileCount":33,"integrity":"sha512-nGhsppSQWncfB8ZbYIj8E1NZuouCP7z1r46BSaZjTTurN+z+KVF2kwLj/CVaejsGMUmEjwSHch+qeK5KdsR8Vw==","signatures":[{"sig":"MEUCIQDbMUJ3WbI4zBozSJUoElNqYoOfRbvjeXWKIKovBsSKoAIgP6+NPz3OsPhwlREl7bSud7NK5mokFpc6LNpcs8Vcp1s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1126275},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"10c69db31b1d83fb40d3349147dddfbe35351a32","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2024.9.24"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.9.24-0_1730161087788_0.047576418533603615","host":"s3://npm-registry-packages"}},"2024.9.24-1":{"name":"milesight-thermostat-api","version":"2024.9.24-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.9.24-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"0370fc23196f3b4feefd554816ecc252e2a580cc","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.9.24-1.tgz","fileCount":33,"integrity":"sha512-FsIc2IqF+3U7ogScGvW9lCwre0TXtl+MpKThHZ3+erqjzecIkfCrhUgnWRyMi7y5Xba5YM6bIpTyDLq4mb6ekQ==","signatures":[{"sig":"MEUCIFcy0eLCju62WS8SThzUhqDpl7z3tQQp5OUeDTf9II74AiEAmm4+oO03AA4SrYrqGUTEebAEzyWNe+WLNbnisTqJ/w8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1133782},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"d073bf28d6d7ab49821cf1d2567ed3bb233e6ecf","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2024.10.8-4"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.9.24-1_1730251316897_0.5789208030638782","host":"s3://npm-registry-packages"}},"2024.11.6":{"name":"milesight-thermostat-api","version":"2024.11.6","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.11.6","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"49953697783cea6781210441d524973aa4f1abde","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.11.6.tgz","fileCount":33,"integrity":"sha512-LRK+FsQiGaq+YOVoK+NtWVytxHPBmQ/7JKuMhIyXeR67FUMoTHjvNZvrIzUIDrizQZFFadERX9mEBaVfNn+tgg==","signatures":[{"sig":"MEQCICfRcAy9CYSsaNqc34D9MAznnLbwktETM2R2sjGdxTAdAiAbR0wcPzK9XZQQqki2wPpRuBRj+zfGvcWaQCTn3e4bIA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1133774},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"6695d341b742ab02407d91bbe6bcdd395dc7f576","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2024.11.6"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.11.6_1730955416519_0.32089605470939064","host":"s3://npm-registry-packages"}},"2024.11.27":{"name":"milesight-thermostat-api","version":"2024.11.27","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.11.27","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"e5be0ce487d271d5a26c09173fb2af7924fe23ec","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.11.27.tgz","fileCount":33,"integrity":"sha512-JXg4+YBprYeuhqA1d1gkorIMAIORu2C8Dr6KjMitRy071ZS5G9KHQEICVCGrXp/iNv037NQXqn5McvdJd58gWA==","signatures":[{"sig":"MEYCIQC1/OKdTA4N8JoXvO6hi6KIUNqfLpq3BWUM7oHfPQ/IfwIhAPlywbDTNjwI1/9ets7eExdCjpHSfbRK9njmMkw6tWlO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1206535},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"59f9d3bc7442b2831717aa2511231838853a25d6","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2024.11.22"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.11.27_1732679037928_0.5842248688524854","host":"s3://npm-registry-packages"}},"2024.9.24-2":{"name":"milesight-thermostat-api","version":"2024.9.24-2","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.9.24-2","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"01610e51360805227954fdb0a34227ff9654130f","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.9.24-2.tgz","fileCount":33,"integrity":"sha512-cX+DhiPGlEPVnCrV9M9x3IF6EQsD0lVLg6a67lUlrcLftNW/9mMOsXyuwbYspw13dDoV/I4LQ+oez6mNkkbNZQ==","signatures":[{"sig":"MEYCIQC62DPkNqyXYL0lGXt2XgG+l+/wyoyfUKIy/kV/VxDmkwIhAPu7U+C1JQ+wHGrUG7OYaYfJNIv8i+q2GwaNVrwf0zVA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1185495},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"151c88b8efaccdf66d7b5d3de93b9fcba6dc0ebc","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2024.12.16"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.9.24-2_1734411253207_0.7794484523785412","host":"s3://npm-registry-packages-npm-production"}},"2024.12.17":{"name":"milesight-thermostat-api","version":"2024.12.17","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.12.17","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"a33b6c0394197e644b42b791f90574a61a42dca5","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.12.17.tgz","fileCount":33,"integrity":"sha512-e13FoqqNd/wIe+KbOSbkXKdjMztuf4mZ29FknZq4I9+LPm4hg5l4OKAo9Jrp6vmfdyHckGSzXh0M5x/rKafHew==","signatures":[{"sig":"MEUCIE+tuod9r8nLJmDTwcRDSj6TA2CtVxXknTkhPBPlwuYCAiEA1fnffLseBRyVaIOCkUjBjzjVcafiTZ+52btOUd8562Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2213587},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"5c798e06d15e266bf691d0753946c4a4bf98f125","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2024.12.16"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.12.17_1734414243189_0.4140424502423947","host":"s3://npm-registry-packages-npm-production"}},"2024.9.24-3":{"name":"milesight-thermostat-api","version":"2024.9.24-3","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2024.9.24-3","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"be2450bf3174e11eeb05f245d668cae5661ce2fa","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2024.9.24-3.tgz","fileCount":33,"integrity":"sha512-dmlwPW3a6kB/Y5kbDRE9di/wj0e8OHzf9/Y7wAwg508g/ZLsVXenVqsLJgKgm2gHj8DOjqXNNX9wzfi7eWH9lg==","signatures":[{"sig":"MEUCIHWP+A+bM1pjWHKeVIkgzWT/xnJv6GyMqhvxwTamy6d6AiEAhjpGiPAWSspSYzmFyEtu+lxul88GHF3pwHTnih1CgFg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1185751},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"2a2003dd0f5a5f82b446d89d92b930160a5aa84c","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2024.12.16"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2024.9.24-3_1740006595952_0.702741893478684","host":"s3://npm-registry-packages-npm-production"}},"2025.2.20":{"name":"milesight-thermostat-api","version":"2025.2.20","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.2.20","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"1d154acc9f96e4b3e424adbb0680ed4f7fbd3f5b","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.2.20.tgz","fileCount":33,"integrity":"sha512-ISsr7nAm5EuC/IeRiHJGP7NNHQ0RR9q95YXlNfaax/NqhwYu/uJqs5FxfaYhOdFMjDHmZPUQ73j8h+NL0m5yXg==","signatures":[{"sig":"MEQCIGjjS3YG7uA/4jBZQNUt9qPc+05nNjKtD3yZksOCV6QGAiBybWZjvVnWGtQc2WSiMHKlRKj82rbGq8lQthtf3bxkPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2216070},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"99f177655456b1a1bc56c3995fef62dc628c9192","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.2.20"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.2.20_1740014893428_0.5732449764380814","host":"s3://npm-registry-packages-npm-production"}},"2025.2.21-0":{"name":"milesight-thermostat-api","version":"2025.2.21-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.2.21-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"fe7e7fc6d995b091aeefee2af12993a34798ced8","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.2.21-0.tgz","fileCount":33,"integrity":"sha512-PbtHMFzXzz3c6sa5rJHfeVv+V9dfxtVsm9NU3IbuocVRTYj/C1Zv959jTsk/aU0y4FfY+CmFZYn9RCeKDwGo8Q==","signatures":[{"sig":"MEUCIEAbhf5PjRPzW2RzDVh/3TaAa0ZsJRsUB838LWDEE9PGAiEAwxKZ9RhKVUNGnN/ogXEG5RpxcBwK6b/5f/Yht53h75M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2216076},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"6c4f53eae93df1bb3acbba0303dfb832153837b8","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.2.20"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.2.21-0_1740016135834_0.14491530135478636","host":"s3://npm-registry-packages-npm-production"}},"2025.2.21-1":{"name":"milesight-thermostat-api","version":"2025.2.21-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.2.21-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"6c729abf51d213f286015baaba3677de00d6b076","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.2.21-1.tgz","fileCount":34,"integrity":"sha512-s93a23nMLCxdECMXVqik9zX7GpabCXZu8R5S1LsHSH4e9aJIBs+W/wBf9ln4/xpfKGoIO3yskyIHh2F4rdlgKA==","signatures":[{"sig":"MEYCIQCJbxFZAFL109UehaRyN1WcHOBniip1uC5O0rokQMvA5wIhAJe9o2Px8j6AFhdcVoQjCkRvGS5cFtP9/hoVJ0pslJr/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2227133},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"03f6af581bd3f28def80493332d722471a9c1923","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2025.2.21-3"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.2.21-1_1741824371316_0.2802237965617993","host":"s3://npm-registry-packages-npm-production"}},"2025.3.13":{"name":"milesight-thermostat-api","version":"2025.3.13","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.3.13","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"e36ac356f87a8f71676f957d341206bc74973487","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.3.13.tgz","fileCount":34,"integrity":"sha512-T6GC76twosMAr8f5iOoIEDwrwPJtuiDhBIQo7VjbjIoyh7lU9RdmDpHFSObhhH11irChrLPMkydXy7di96qtnw==","signatures":[{"sig":"MEUCIQDmQ1oppAvazYsGYSmI6kIz40ADk/w0isPAB+X4sQmYogIgc6Vpw4TRVJhXg5iQMElKdivHeqL4U39tS/gsi1iBNDs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2227127},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"48058371fa9fb18163b0f2421e026be8d7c8f615","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2025.2.21-3"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.3.13_1741831496763_0.6259435091580892","host":"s3://npm-registry-packages-npm-production"}},"2025.3.14-0":{"name":"milesight-thermostat-api","version":"2025.3.14-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.3.14-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"9aec448eb4db8ced10fc45ed38fca855d042cbb6","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.3.14-0.tgz","fileCount":34,"integrity":"sha512-USskeBb+B0Ze+rlRIu7WSnptfAeFwYCdiccHrVlmndDC3zfuBgsQCoTDTh0dyjXs2S5/gHNiyIwTgHU9M/u/WA==","signatures":[{"sig":"MEYCIQDNlVUP96PvHsuvAaFILMqQQ79rb4EP6sHGaj3qynDMGQIhAJfGEjy8pr2X0CdaEsyspacDlXlVn/YeVxkKToihgA/e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2227119},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"848905d49d08fbd7986e6519c312ac33224fe4ef","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.3.12"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.3.14-0_1741920960755_0.8789569884359021","host":"s3://npm-registry-packages-npm-production"}},"2025.3.17":{"name":"milesight-thermostat-api","version":"2025.3.17","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.3.17","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"e295043aeac6b91a4d0b8f345e7d40429a975522","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.3.17.tgz","fileCount":34,"integrity":"sha512-O3Th8Kgb4tNXIC8y+fpuGTBWA5NxltklSV8yVvIVN9BiHvITPtRhHogsTebEJpIqGzWjdjWKuGPXAKgeLROY9w==","signatures":[{"sig":"MEUCIGmiXjwspR5Hs76erkU4lkCmm+flHoffMwMVeRx1ILsvAiEA1ftK30lyBvfmfbToGWQRJXCtI3KZIsyi67Of88sVAzs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2230934},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"d0a12f7779f9d629cf7586782eb7d52d552a871a","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.3.12"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.3.17_1742180510394_0.15858855544231787","host":"s3://npm-registry-packages-npm-production"}},"2025.3.18-0":{"name":"milesight-thermostat-api","version":"2025.3.18-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.3.18-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"bffddee72f736ca3eb999c24e597c529bfaca804","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.3.18-0.tgz","fileCount":34,"integrity":"sha512-sOyzYrlhiYPmlwRciyyTJRO/IuG5ZznTONKnI1J9Bvd436IUZHuVDE0W2COW430UtiPEoiCGaBuwXQZeXmInjw==","signatures":[{"sig":"MEYCIQCCFnxC5MSjstyHMnK9fMleaaerXX3zXRL/rlY2JGUKJAIhAO62+cTR+o1+5TIsuThsUKA/QtcRufVxjG84hM0zFCwN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2230940},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"942e9aa821e29d5edbc1ecb2a7b6d43dea2caf91","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.3.12"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.3.18-0_1742263115249_0.6397032955565598","host":"s3://npm-registry-packages-npm-production"}},"2025.3.18-1":{"name":"milesight-thermostat-api","version":"2025.3.18-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.3.18-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"50c524f30518d7cdf8ce29f55d7db4dfeec896a9","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.3.18-1.tgz","fileCount":34,"integrity":"sha512-jZIxCVS1CpFaQQ8V+UMfKJUPLg+eM9UBnefm29U0IRS/tz3wmrabj3zIE1gkx3YnZE0Rzo6YrsBhHF7X+usRJA==","signatures":[{"sig":"MEUCICQCER15JXrX7zwWpeCs7kHzVUmqMQJPgy8QJ1W8CGEYAiEAlGOzcML2f00R3aHwkwQPgrhgoVHE45ZKgoW1favIqw8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2232841},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"bd4cec029c34adbd163c639a957d29491beeebb8","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.3.12"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.3.18-1_1742433225927_0.13820854278226458","host":"s3://npm-registry-packages-npm-production"}},"2025.3.20":{"name":"milesight-thermostat-api","version":"2025.3.20","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.3.20","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"2edbdb4db63911ebe9ec68ce2eb9d001281018b6","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.3.20.tgz","fileCount":34,"integrity":"sha512-78DFMZ+MgBOfBiqz00Zy80XqjxCuaWFka6TlZBhIPFv0DxPRs6pl7Ig8f9PXmRT9/6CzMQ0/gVHdimvm0HrnIQ==","signatures":[{"sig":"MEQCID4ydAA7lE3UgoAUCUdB7WqHGkMiemrzgw5dYMTmPRnxAiBGae88hXVyqZDvsGLQfB4jtBe/WY6WFjCriUcu5jGujw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2232835},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"8dbb973412a50a676708bcfdf86ed21d6eeebb33","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.3.12"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.3.20_1742437246890_0.9188902654555511","host":"s3://npm-registry-packages-npm-production"}},"2025.3.21-0":{"name":"milesight-thermostat-api","version":"2025.3.21-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.3.21-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"3faed588e54e5d93f6cacd882c00b0950169d72a","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.3.21-0.tgz","fileCount":34,"integrity":"sha512-CSTeWJLWTb605wb0FnpjMLirJ+iudSoPZGjUQtcBe7oywQVE6VIn41XH0yPfo5Om6dRXK/jPdcJAX/gohsmz8g==","signatures":[{"sig":"MEQCIHMuX32em/ms0iKCUN7nO1wEE+lp5siFBVH69zXSfb1xAiAGME7ngu+/jKCZRFnDZZPX2Y5c+g178TZ1fRhXHMXoEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2232841},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"47bdabf11cfacf87c2120c409f34a9042f0058eb","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.3.12"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.3.21-0_1742453916196_0.1957775911191264","host":"s3://npm-registry-packages-npm-production"}},"2025.3.21-1":{"name":"milesight-thermostat-api","version":"2025.3.21-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.3.21-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"d745c50d5d0b08a8b6395bf6e122cad43978d6df","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.3.21-1.tgz","fileCount":34,"integrity":"sha512-ubhoizSs/ozgZcD90Y+UbOTqQVJntqj17albzITDyYzskEuyvmnFO5xSuugTk8o4R48+J2q5ZvGfcbpRVM8KEg==","signatures":[{"sig":"MEUCIQDbvB+XoLTdjYKxCOVnYBIbRFy7p9lJFXhYiGrtuqPGggIgQyY6pIk/VgJC8Z0AdJfrNXx2qYqCcWkevit03rYZqxY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2232636},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"448f6f4975c9453c0933c664a1404de9789bbe5b","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.3.12"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.3.21-1_1742524605842_0.548274091726876","host":"s3://npm-registry-packages-npm-production"}},"2025.3.21":{"name":"milesight-thermostat-api","version":"2025.3.21","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.3.21","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"3484dbfea31604c709dc80bd1c6b00bac433e001","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.3.21.tgz","fileCount":34,"integrity":"sha512-OHAnrlggDmbCMpf1xQlw38YuawYMUQfQBeGl4GR3AnZTXZVFaAAbkdbSY1ZZXz/VS4bZrQ6iRNXJKF4+hvcwYg==","signatures":[{"sig":"MEYCIQCDDnx+4HGbc37VCcFOAy3iqTUygqrPA4Pa2fd40y5nGgIhAImtd31lEThwujMzzfkbQ7RxDCAXMWS/8fonq/d6TvxJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2232630},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"9d5062eadeb98579ffedc4e2994884c76d5f8c30","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.3.21"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.3.21_1742526986571_0.44591501947524437","host":"s3://npm-registry-packages-npm-production"}},"2025.3.22-0":{"name":"milesight-thermostat-api","version":"2025.3.22-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.3.22-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"8b05ef49f059c03390f92413a26490a850eaaa8c","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.3.22-0.tgz","fileCount":34,"integrity":"sha512-9BnUow2h1tRggabGbWQKSJM/3MJaR87d5QUYEo375XzU2wsu3yLPioN0jp8UwnCeJBXZkUi+In+46faUTFUcxA==","signatures":[{"sig":"MEUCIQCKlEyBSka+s7Ydfbj0TOJLvSlkqrwfLXR/wpDHVI3NQgIgHsBL3x66vKxe1Op6HjlXWpGlI/++6XPhhumXQ229gHA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2232956},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"cfc385773f6924a73a01052237a3277dc8f7cc3e","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.3.21"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.3.22-0_1742531717056_0.5127138366657187","host":"s3://npm-registry-packages-npm-production"}},"2025.3.22-1":{"name":"milesight-thermostat-api","version":"2025.3.22-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.3.22-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"a2a1f0902ec5b194f646668dbb138f201bad504e","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.3.22-1.tgz","fileCount":34,"integrity":"sha512-acuFGOMkuBHuABfabH7igtDGf+cqI8Kp6FmwhkfoYRQW7fN5Q4MOye6oDPGMboJHrXEwll1YyVlu5g9O7E66pg==","signatures":[{"sig":"MEYCIQCnIYxmsT/8vTsbBC4EFk0RYzTtcAiFoMNBhc4/qUxIlwIhAMlPPyJU5Vl1eXoh7dl7Dz7Cgki/8WQBFri1q3himjnc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2232956},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"cec6921e040640b67a225e7f9ae9ed720a4fd681","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.3.26"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.3.22-1_1743449753016_0.29566384615550145","host":"s3://npm-registry-packages-npm-production"}},"2025.4.1":{"name":"milesight-thermostat-api","version":"2025.4.1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.4.1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"e9c1b46016308543993b21ae8685f528a9da06e5","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.4.1.tgz","fileCount":34,"integrity":"sha512-Hv5GW6VD3/oFbvzugBW3LVhsndFvsebX7Hp5YZmEJcZQqAebAhlXkow2KQLeTLelu3xEBaicIpQwCNFF0OZc5g==","signatures":[{"sig":"MEUCID2LUNXMBvy8abIKzK1bAVwlpcflzto83Pq/ST5nBuSHAiEApXBS7YMzv5xqEI2pYxC89QIxyidacA4llK3IBOkmeJo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2232947},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"c4d371422458118af10d95c1b16499c143e2f682","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.3.26"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.4.1_1743452049281_0.6985649385751251","host":"s3://npm-registry-packages-npm-production"}},"2025.4.2-0":{"name":"milesight-thermostat-api","version":"2025.4.2-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.4.2-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"ae52661efcdde9a92c4b7588845b41efcf520513","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.4.2-0.tgz","fileCount":34,"integrity":"sha512-F6uiYfF7EwrxdriZf0mMah+LwTa7V9diHop+uRg5Yxtsua+p/EhsvRcbVUNnYVVoijDWEvq1nTrKOvjsshFucQ==","signatures":[{"sig":"MEUCIDRgYH34mkSbZTkNovN2OZAJIRn74Ogyr1WyO6wtIsX6AiEA9jKdJ4T0f19gVWNHVcbUAqmsZVFPqAs0crjROfJgHu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2232953},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"29e202e93486e988244c466cb329ffd576138285","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.3.26"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.4.2-0_1743452768404_0.17434437773443157","host":"s3://npm-registry-packages-npm-production"}},"2025.4.2-1":{"name":"milesight-thermostat-api","version":"2025.4.2-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.4.2-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"4538f51ebc12fd0bcf35caf36aa7f52003d15234","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.4.2-1.tgz","fileCount":34,"integrity":"sha512-FVLWaubNliOtnJjoSgL1khQKlQPJXgFl7vIqEROGNy4pv6l5tXpltwIOzek8mHQFyDltlRZGAqvPETQM3WiGzA==","signatures":[{"sig":"MEYCIQDUsrLlpKvvltLDxaZK142tfV1qtRrjtMyDfPGPwNb6hQIhAI4DjzWq+IjPHb710gHaY6uqQ7iGh07GZmxd5jtdYUKZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1251712},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"92d2a491b29b351c6295dcbc216b1a0083a10506","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2025.4.5-1"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.4.2-1_1744260694272_0.07402083846052587","host":"s3://npm-registry-packages-npm-production"}},"2025.4.2-2":{"name":"milesight-thermostat-api","version":"2025.4.2-2","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.4.2-2","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"17de9bcc41918e2fd58fb1a9db8004b941edac9a","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.4.2-2.tgz","fileCount":34,"integrity":"sha512-DtPCC9C7p8IGHSywRz6QhiNRioeOMX7Ysc7z94P2lUBXZmH4oXGEiE6sxwPfxR9NwlukShmmUnyTTyxmwZmKNg==","signatures":[{"sig":"MEYCIQChXh+YT/gZp/ZXiS+lfgp4iyUwIw87FfS8cM6InccK0gIhANaAiPPBpJtmr5y5ohoXRlfHPAY8YDnDt0pkQRxDxRJB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1259749},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"843cb3abf203d72175a77f33fac459137daf6f27","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2025.4.15-1"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.4.2-2_1744670927987_0.33437634431050545","host":"s3://npm-registry-packages-npm-production"}},"2025.4.15":{"name":"milesight-thermostat-api","version":"2025.4.15","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.4.15","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"97818f049a2e25d0ff13f337f18fea847fc69158","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.4.15.tgz","fileCount":34,"integrity":"sha512-PEjmRaZj8Tcqyhr1uPIYLI96JwSdUdXhCwV3hIEGEHjYHYhBsMajoHWY+R7lv9ilos1YvZbbe5qrwx14Oi0OKw==","signatures":[{"sig":"MEUCIQCjyiMrMh70gW8JXgwHdsvvmmOZaXoxB14fw/rPQYBsXwIgTQfMfBqt3rKya3u/PW0ZGM+1WVqdRc2yrftFaswq1GA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1259736},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"7658cb8b134ea5d7c3338e366521d1e5063170f8","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.4.15"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.4.15_1744678467826_0.055206093230762976","host":"s3://npm-registry-packages-npm-production"}},"2025.4.16-0":{"name":"milesight-thermostat-api","version":"2025.4.16-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.4.16-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"20874953b9fd3f58bc91efb50f7a3c2b807ff601","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.4.16-0.tgz","fileCount":34,"integrity":"sha512-hbjmk+NilyazEyID8Qi7pFhrMHlxW/LoJAHfHupayvdusD8F5BpF9wjXERG41yh2czh3KWKyUmBBC1Kh+ujWxg==","signatures":[{"sig":"MEUCIQD0p2VWs7aInJ8i4laSqZ7Ev9/Z4m1vL0uLSIESDSPE/AIgW2+LqaoHrtRQrQEoJnbF8mEfhM/roBIbFodUmNUiCzw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1259742},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"86b1bcbef202b73e3b0932792496507edd2dd23e","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.4.15"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.4.16-0_1744683019549_0.9837945754708814","host":"s3://npm-registry-packages-npm-production"}},"2025.4.16-1":{"name":"milesight-thermostat-api","version":"2025.4.16-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.4.16-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"0ea22b68ec6541ff2f890505bfa20e1db0814d06","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.4.16-1.tgz","fileCount":34,"integrity":"sha512-lw3dXYvnIyWlGZbfhxpxpCfLSwBuNEHi21GJ0YAKVMav6NP/4QtKMyyEPNdslwV62pxr67Rob5JHgDqnMfuggQ==","signatures":[{"sig":"MEUCIQCMbkO6F5L9CovLqz9Wn2nP/0ULeCqM8eHW0MJUnheAgQIgf8eBAa6s49lnfXbnuvMSE1Y/TD3r+xheBIGH2I1t9GU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1259742},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"c7864f8dc8a33b021825fbe3624c0929c0662ed8","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.4.15"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.4.16-1_1745966999315_0.09422091394288423","host":"s3://npm-registry-packages-npm-production"}},"2025.4.30":{"name":"milesight-thermostat-api","version":"2025.4.30","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.4.30","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"6ce6d237f88da4658824984990b4ac9816ee055b","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.4.30.tgz","fileCount":34,"integrity":"sha512-q5npoVscnWunoq+o/7jvn7H962ckA43mNoQoED7Fegi+wIqU9DfJI3kKGB4fPwPOtLCg5abOTZYYTaNnicHqkg==","signatures":[{"sig":"MEUCIGDnKeCtkeARmHYuPSUzc8eFnCK4BorV4jUU5Vft9ZBiAiEAsRk0IcYj4v7vvetWOYuCA4awE5X0vuzYZBfYa+SA968=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1259736},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"37b16d1bbafe996e1fbe79a632a606c7bbd0b882","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.4.15"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.4.30_1745973316024_0.4569738092716016","host":"s3://npm-registry-packages-npm-production"}},"2025.4.31-0":{"name":"milesight-thermostat-api","version":"2025.4.31-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.4.31-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"173956ad64289030f343f2c52231f7c098a448b0","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.4.31-0.tgz","fileCount":34,"integrity":"sha512-Cv3m8CtCXUi6cUOz7K6vSCORppmOxZ2L9JonCmPm04xyT8pOLF06ihj0KCPOX+N8SEfn1o1qe3xwhFgDYdSC9A==","signatures":[{"sig":"MEQCIDPI+OZhCHfCVP2pSDcbpaibo0oFonqvfUjJZkxqLOM/AiBKW4DEwST39YJGUaDZVnW0IS1EBspmEMFkb+c6I3x6mg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1259742},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"1a9d330fd8336d68e6b05d7f8562b5f30497a0dd","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.4.15"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.4.31-0_1745974610570_0.3162841854269711","host":"s3://npm-registry-packages-npm-production"}},"2025.4.31-1":{"name":"milesight-thermostat-api","version":"2025.4.31-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.4.31-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"8fb4434cb610a6b62a309d4f16375f4c5f071501","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.4.31-1.tgz","fileCount":34,"integrity":"sha512-2lgH16jZcM24/t1Ow4cuZaOXkJd7qZ3VZnHB23d+yQjqgAX/UN3NNrge2oXmpA64ToujYe4BcdFJG9rAciXUvA==","signatures":[{"sig":"MEUCIQCzFscXZOO6RcO3rxNFyyio/CdYbSzeBw6Gp6lxjm/atgIgXv7C9sRHjKex8PMnLkUBqPcrmwJD5dyH7FT6HyhHQmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1261537},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"3fb7787c67519f384c2e9c3f62d75271863ea7d3","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.4.15"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.4.31-1_1745993921259_0.4535329305775375","host":"s3://npm-registry-packages-npm-production"}},"2025.4.31-2":{"name":"milesight-thermostat-api","version":"2025.4.31-2","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.4.31-2","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"d4f5ebc781c35a38d5312bf56441d2fd8d9c9db2","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.4.31-2.tgz","fileCount":34,"integrity":"sha512-b0QKBlWnA4kbS8QZkKvrLT8PrVIJQ9Dlpw/PIq51tInKAYjxj2BqrOh+8kr5FG08TQZunh/jX77mkPDL0z18gA==","signatures":[{"sig":"MEUCIGPlWpELQA9BSgJJRcbSbRNrsTA9E4KHpKqmB0G3x/lsAiEAjfzHZsh460iDb1QtHmlRQ7yGR5ayDgGoFGehPijkrk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1156448},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"ea67043880e63b0a51415424413cc46e7afd3e7f","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2025.4.16-2"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.4.31-2_1747202044944_0.3384430540960133","host":"s3://npm-registry-packages-npm-production"}},"2025.4.31-3":{"name":"milesight-thermostat-api","version":"2025.4.31-3","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.4.31-3","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"07336abde860949491ada59028dd493ba155ad89","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.4.31-3.tgz","fileCount":34,"integrity":"sha512-gIFjYZcZd3p/0UCUPpfHdjbuNM1nYU4zlAwYXBknhWUhYa4B/82qmNmuiJblsW0eOJDtXHRxF8QykUFbIALFCg==","signatures":[{"sig":"MEUCIQCPImk6Mre+BzS1jmw1HQKWPPIohzpAXfSohDQQqU2ZIgIgLXKxWKybNUbPF6WP5wVSDMdWWv+T1Botd2CFm0ZOIlc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1305450},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"2746c6f4c99b3238b48c0817cceb1e5dd7db31e8","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2025.4.16-3"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.4.31-3_1747611136889_0.12028443488354235","host":"s3://npm-registry-packages-npm-production"}},"2025.4.31-4":{"name":"milesight-thermostat-api","version":"2025.4.31-4","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.4.31-4","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"997ff5e0791c013f1e4f1f8fad1d7ac462d22a7b","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.4.31-4.tgz","fileCount":34,"integrity":"sha512-JggS5wtn4d098KirzKPr6IsFtcGlmd6IjAo8Kc3KysmXRLwyQIAfFMlsfFeTshUxEnTMWXuOxH+nPwz4cAPZgw==","signatures":[{"sig":"MEQCIE07/LJvKfa2TgC4xqIL90RuyCJcULUrTV8HnOXrVdQ1AiBeDMti0gc0pEfvxm55DRG/1YaADFrAgAMupen8rIGcBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1306602},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"fbb5b5c1e0ce58ae197e9b4d4610398e84a16d7a","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2025.4.16-3"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.4.31-4_1747620352885_0.08249069516452034","host":"s3://npm-registry-packages-npm-production"}},"2025.5.21":{"name":"milesight-thermostat-api","version":"2025.5.21","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.5.21","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"ef56428c55814c5c9825243c420c3896cfb13f07","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.5.21.tgz","fileCount":34,"integrity":"sha512-rZcA25W4YeKuprbu5HNBdRxrvAiPdEkYuStHPvyNA1w5k2fu0Nmo4Ko2fGwJeVO7fqGk/jQfoxBLBz8YmCJqHg==","signatures":[{"sig":"MEUCIQCiFk92yCrQ4jLN+mPeTepF/qXJe7jhZo6H1fXV6B66vwIgawqvxS3XATXZZAZT7KZBrqb7PX28sq+LdGHsBYkeu2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1306592},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"f139d6f3b7a0d1b444c299e3d7bab5e0d817c51b","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.5.19"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.5.21_1747865802837_0.597506857394356","host":"s3://npm-registry-packages-npm-production"}},"2025.5.22-0":{"name":"milesight-thermostat-api","version":"2025.5.22-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.5.22-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"903373601d04a84ae6918179f2df1f88af08433b","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.5.22-0.tgz","fileCount":34,"integrity":"sha512-z2nIEBqu5x6IEkWdsmkNnizhVa5AK+wHZ2gllQouI8FcgTSz4fuAJtGdHaLdgmzCFz+GP/V9HWpGKPxoa7xS5w==","signatures":[{"sig":"MEUCIQCuUUN++qejF3ZFB/lsGhRVbPnhDB9o+TimpSpbuNBKeAIgSFQZKA4h2oAKi7t4doO/W63eKbqYZ3mSPpn2o3n+Gnc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1306598},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"e953dca9de06c58a4bcb02630a7b0933916fcb48","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.5.19"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.5.22-0_1748210822546_0.4375128834175679","host":"s3://npm-registry-packages-npm-production"}},"2025.5.22-1":{"name":"milesight-thermostat-api","version":"2025.5.22-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.5.22-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"99ba9e9170a94c8b4270108f7b9bd7d1ea2d3424","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.5.22-1.tgz","fileCount":34,"integrity":"sha512-uvvk0Cg9AJIkua3T7eGEz5Zh+BDy3ynQc9l+LN/0vhXWM3qv7xgw8EMuZDpslR28zuwDrmUrZdQuCyMp7K7NTQ==","signatures":[{"sig":"MEYCIQDQe2ZR6hQzU4wHNuA3d0V3wQuCZiZ+jwPtX4udte0NpAIhALRSRBGFLK7czllDU1trYSSFbQs6Ixkl4IeEKvwdrW6H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1307469},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"c0bb62ab0298b2badc46c2e056e438d19ad4877e","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2025.5.20-1"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.5.22-1_1748558185052_0.44024695181844464","host":"s3://npm-registry-packages-npm-production"}},"2025.5.30":{"name":"milesight-thermostat-api","version":"2025.5.30","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.5.30","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"1119cb325a106c7c7e9de8b4b096746329dd573f","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.5.30.tgz","fileCount":34,"integrity":"sha512-rDrsqz1txPr8zm3AG4e1bIBw3qMdfZMnmp5Dm8PgFw2eHPL9915kKlS1h4iuABRP8lpK65mzXQuK/jV1kyYSew==","signatures":[{"sig":"MEUCIARAoMKrs/5t/eFcL7LOWJJEPtyinZSrQm79jWmWxCH1AiEAoHYXaH9Bh2zkIrUgLsGJ0CELcVlO0kADLI4M8jPghsk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1307421},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"55aa10d7007fc4aea1fbd154589031d58b39b981","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.5.30"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.5.30_1748801717142_0.02759512426775279","host":"s3://npm-registry-packages-npm-production"}},"2025.5.31-0":{"name":"milesight-thermostat-api","version":"2025.5.31-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.5.31-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"1aca4214153ff0329951b1a742346378800b1d56","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.5.31-0.tgz","fileCount":34,"integrity":"sha512-bzFfHZtqhsvdvj3s9AALDRcY5MQEIFzjAXOhqy+m+YwY81YdhG0gstQ+8S0hR9loMH7mReNrAKLHWggCW4hUXg==","signatures":[{"sig":"MEUCIEQRpZTvY7V4iiDxALMAaeGjyQ9YEP9PK26HAUTJ0qI/AiEAuwCjeJj2vNhes7joTBkCTeTZTvUqnmXnsI3ijkTdfL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1307427},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"e2ab55a38112a53315c5f05e0e0d11badf9ef46e","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.5.30"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.5.31-0_1748802662929_0.1950577843313095","host":"s3://npm-registry-packages-npm-production"}},"2025.5.31-1":{"name":"milesight-thermostat-api","version":"2025.5.31-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.5.31-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"89ef2d97472501fc6a11a4a0f6f2b36ece75bce4","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.5.31-1.tgz","fileCount":34,"integrity":"sha512-4F3Pjc/vw1FphvSNNDfrkw9kGnrc0r7kI3Ccz1pfo9G4KmfHI3iVUDWYeLKlfDccnDmCfh7dVV5bQsiiM9joSg==","signatures":[{"sig":"MEUCIQCTmixKyu7n24SKAm/Ukgb0GaZOEUpkrA0raPbIUZZSVwIgIYpHg7jCqJ9ossxLxP4yaNJhdguQtaQC1r0Sebaj/ic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1309439},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"bc65633a6dda63128d578254b4e02dbae89be626","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","actor":{"name":"mewe-devops","type":"user","email":"internal@hellotherma.com"},"email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.5.30"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.5.31-1_1751576476640_0.5124024586204641","host":"s3://npm-registry-packages-npm-production"}},"2025.5.31-2":{"name":"milesight-thermostat-api","version":"2025.5.31-2","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.5.31-2","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"b494d55fdfefae73ef3fc15e22cb7958a672cc28","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.5.31-2.tgz","fileCount":34,"integrity":"sha512-VowOeT/VPTyd/PvDrqJ/P6Oz4w1TVdgLqS7cXoMGNJBsOSt13mB2V6EFJaxu0m2xZ+pbKaYFi5Zqnw0inCNi4g==","signatures":[{"sig":"MEUCIAb9TvlWurYS20d7U9jDrtk4Eks3kovpIGIYx8vFReJVAiEAhpvJ/366gG0WQmCoQlsC9YUTMLbelol/TIUAteP3WL4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1298613},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"7b631fc6ed17853d0b501ebfe35a0894c60bf8d5","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","actor":{"name":"mewe-devops","type":"user","email":"internal@hellotherma.com"},"email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2025.6.29-0"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.5.31-2_1751661276980_0.2739833644110796","host":"s3://npm-registry-packages-npm-production"}},"2025.7.7":{"name":"milesight-thermostat-api","version":"2025.7.7","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.7","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"095222515ef77511303120ae0667ac862e84799f","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.7.tgz","fileCount":34,"integrity":"sha512-lZaCXbop2o2WgYe2qVWkIbIOXwwHH7uG09pETcbh5K6SHiQjHpdYouSRyJ5jnhBV6pGb+rbFapMM0suMjyM8ZQ==","signatures":[{"sig":"MEUCIEPhWgkFBC/GNgQmNKKTi2tw8T2wYgPMOQHH5kEOaCjhAiEA0Y5g8m2gBeichWHM0nnW23D/W5XXLEND45w/bg/Pzmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1298563},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"6eae580468c3ff09028ba6bcb4ba04c4f577e666","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","actor":{"name":"mewe-devops","type":"user","email":"internal@hellotherma.com"},"email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.6.28"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.7_1751834606365_0.4968688512765578","host":"s3://npm-registry-packages-npm-production"}},"2025.7.8-0":{"name":"milesight-thermostat-api","version":"2025.7.8-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.8-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"b6257663a80b47bab22d08a89c1714a93b515486","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.8-0.tgz","fileCount":34,"integrity":"sha512-LyXwf7RpMSGNo5RQ7ZgVoKaRjMPEnSIm3vcRO2cV8NN5h9rJZ/eRFBx4oG5yZaj91a8lnHA3gLKhSNEv6E4EZg==","signatures":[{"sig":"MEQCICXWuZyjCwaU/3E2nXSFgS+EPvCpOfkHPRI0gwcISnD9AiA7BKb+akLmAV6Cak7TBFGZY6IxD5ikYVqU+qDaqdgSNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1298569},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"7b0727d163f8493b5047ef3a86c72e95ac2df994","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","actor":{"name":"mewe-devops","type":"user","email":"internal@hellotherma.com"},"email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.6.28"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.8-0_1751834903266_0.28394605564387754","host":"s3://npm-registry-packages-npm-production"}},"2025.7.8-1":{"name":"milesight-thermostat-api","version":"2025.7.8-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.8-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"dc2595b3824dc9321c1f6211412dac0c742253bf","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.8-1.tgz","fileCount":34,"integrity":"sha512-WBUR5PEt/d5AMuccQ2qHp3sACcKiCFTfj6NExNE7vrFfWSHvyghGm/nt2Ds737KJE0t0GbeHwqOAUuJyS8tUXw==","signatures":[{"sig":"MEUCIAS+/ADCIAxozISO+Sv8ZRA/lzgTvdTWdFtl4cDu2wCdAiEAt9DmcNuILj/cBVIdIfDcfFBYACa28QqNXHq7cUbGCKw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1298577},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"b12b7de7403d77d4e527c00a8c031295ac76a363","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","actor":{"name":"mewe-devops","type":"user","email":"internal@hellotherma.com"},"email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.6.29-1"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.8-1_1751941728991_0.20079826848717475","host":"s3://npm-registry-packages-npm-production"}},"2025.7.8":{"name":"milesight-thermostat-api","version":"2025.7.8","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.8","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"d43f8b42271567b5b86ee17b51b9e6e39f119e09","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.8.tgz","fileCount":34,"integrity":"sha512-8kE6TJ7J3cOJvk1JA8qEBNrwDAeKIXKm1UIvZp1NqQBbI7mF39J+rSRWQkmu7/26UkT8dO98GlJe9psvexW08A==","signatures":[{"sig":"MEYCIQDnyWZGIxtHsg8383JD8wodcOjgS446pyPjV8yWkNl7ugIhAMMePxWwrPDA/b2Ev+thuYbuAwww+wZA01Sm4b8X3KyD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1298559},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"391096d5f60354aaa675c4c091b4a4ed4f9d278c","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","actor":{"name":"mewe-devops","type":"user","email":"internal@hellotherma.com"},"email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.8_1751943618855_0.8410767394073684","host":"s3://npm-registry-packages-npm-production"}},"2025.7.9-0":{"name":"milesight-thermostat-api","version":"2025.7.9-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.9-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"8d9534968924e50cd842b7a3c14c87c7ecc23416","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.9-0.tgz","fileCount":34,"integrity":"sha512-CINAgCaxe1bHUyrAIagWh/qukXtiLnrUx1eG0UyxvbK6PjbU+hQa7Cmi+WcpqODH27eJUYns1Ua9aXv8pBiyPA==","signatures":[{"sig":"MEYCIQCGDpOpEIXIAXn34gBB/fUnWdogYd4XjbriL7Ht3Jgu5QIhALzJxg38ZI2Yn3ySsLzTcM+lJLSdYTMXzDvKIntnfXFI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1298565},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"974725e993279ca99b3df59556dd179f0104b0ad","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","actor":{"name":"mewe-devops","type":"user","email":"internal@hellotherma.com"},"email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.9-0_1751943930350_0.8418620361355795","host":"s3://npm-registry-packages-npm-production"}},"2025.7.9-1":{"name":"milesight-thermostat-api","version":"2025.7.9-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.9-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"03ee3fa92065dbf72c72596c2c9c79eb95dd1d7d","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.9-1.tgz","fileCount":34,"integrity":"sha512-fCeuYYBoZx6pfLJhPwOnyYMioMBoL8rKPDFEwloPX+Ey/KNmhtJae4VcbtT+9OFj5N1pwP97jIyWGrs3lqCFnQ==","signatures":[{"sig":"MEQCIF4sOxU9IBwQO4zD657w7QOvHrtwCKwrGtaYurYyebV8AiBp7Qos1NfJwLo3oyGxCCkRtZC2C/ib5RFtHjJmCd+q9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1304326},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"7508e961bc140979b1038b4f2d3535271da8552f","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.9-1_1752616987368_0.12277326323699111","host":"s3://npm-registry-packages-npm-production"}},"2025.7.9-2":{"name":"milesight-thermostat-api","version":"2025.7.9-2","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.9-2","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"3155a5412f3b27bc6b67fec1b0f5926e0ed356e5","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.9-2.tgz","fileCount":34,"integrity":"sha512-HfBr0JpNAZR9HUCmhHsKp9s62YnJn5rCxpUEQWErhpXkVYDWGAgPQN32qRmp6XtAlkrRO73/YAUDzTq8Ql7oqw==","signatures":[{"sig":"MEUCIQDxvs/cpYpt0W/j7vy8ljNyIpbCk4KvEgYKdLab/EeksAIgL0Jov5NVuzePy2AyWT3jyiwgippPmrzVjsN5LVVMAf0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1309973},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"758167ba4c96c892b87cc65692a62f4cd3102774","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.9-2_1752638859318_0.675214664591909","host":"s3://npm-registry-packages-npm-production"}},"2025.7.9-3":{"name":"milesight-thermostat-api","version":"2025.7.9-3","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.9-3","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"6f57e48c6c4fa4d51ab402e59f4693e0c288e494","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.9-3.tgz","fileCount":34,"integrity":"sha512-EiLD33S+RheqezXvGKPV2fQogzQUQEYo9BGFy4BaD4EhVInWz3H2O7s24LvHR6NOjmsrtbLIN5/aavE3a/i4kg==","signatures":[{"sig":"MEYCIQDswf66VSFiJ0mbvav7h61q//bo+N1Z8dTKbfRtZFHXQQIhANP+OlNvDKmULhPAkBQKVNMj2DCy7Fj5kbEFuYgjCHz0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1315922},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"02298d0c7172fc384b008df50b99b7d817b4f6b1","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.9-3_1752650900258_0.5998071377757026","host":"s3://npm-registry-packages-npm-production"}},"2025.7.9-4":{"name":"milesight-thermostat-api","version":"2025.7.9-4","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.9-4","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"ca01410f5681244e30a17e57acd57365f31d312b","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.9-4.tgz","fileCount":34,"integrity":"sha512-hRffmbc1igdjUwBRiFQ4wEY27S6nRpyQjl+91z1G7dgNwnNnln6HySZeIQa+/S+iEDQxictjRrJuN68s8D6cYQ==","signatures":[{"sig":"MEQCIB4+Fjr8i0dsyXCExHYDAcxyIm0hYDkyS8kC1Q//j/tzAiBseWWcrP6+Og5XRRNHGcqqHHMjw+dCEEB/K0U6EUcP5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1319649},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"e4c0dc92c043ce323008483c667bdabc9fbf0a1f","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.9-4_1752693061570_0.23007731572250845","host":"s3://npm-registry-packages-npm-production"}},"2025.7.9-5":{"name":"milesight-thermostat-api","version":"2025.7.9-5","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.9-5","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"dd42105c2d8086f52bbc338ead9a55c1dc73bb65","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.9-5.tgz","fileCount":34,"integrity":"sha512-bD669WFoTA8YAsKCCddUqsHN/D2h5Bl3FuKFuCIDeubXa4rqr7VN44qnNUeSlaf5oK+RyppEGy0/G+9sJea+AQ==","signatures":[{"sig":"MEUCIDwYGWR9gaxc2ZNISo3yLkB2Cc+N+2QlEmuLddJZFH2CAiEAkSiSd5f3bBuhUlECGzSXZh+c1Dz/8W+qMaxHS4CsYRQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1325060},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"189b05f3de4c6d54fe6a2ec8592270e60cc522dd","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.9-5_1752717004580_0.3654317298333978","host":"s3://npm-registry-packages-npm-production"}},"2025.7.9-6":{"name":"milesight-thermostat-api","version":"2025.7.9-6","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.9-6","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"9f6bed5b98d22ef93ef6d21e44c04ecf92a2841d","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.9-6.tgz","fileCount":34,"integrity":"sha512-ZVrLyChzl7YQjp2uUleRf8l0O1syB+6d35agpscPNT3Cxdz7Jo7du/Td3larxNVs6vfw0+bWuGhXlcElUVuaCg==","signatures":[{"sig":"MEYCIQDKMNPadB1oMpCdak93aOOCT4IRNy4M1ZuMZIGzTrHH1AIhAMm+Nn/PT7pqV10Q1SL8+ROoq2QQxFKbSSxcO1ab+RpP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1333965},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"5c0d9e8c7040c3b928fea2dc69f8c1cf9989df0e","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.9-6_1752778814879_0.24434951901507462","host":"s3://npm-registry-packages-npm-production"}},"2025.7.9-7":{"name":"milesight-thermostat-api","version":"2025.7.9-7","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.9-7","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"4eb3d4a9f8e1c332ad2cd7196230776dfc04c7b0","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.9-7.tgz","fileCount":34,"integrity":"sha512-gHYLLFUdW3pgnJAntPc1RJJbo2hz4pRlPCnUbBsH/WlADtqAEKI2jInQsi/k7ahxDEzqsJWnuldQRtQgCxOiGQ==","signatures":[{"sig":"MEQCIDClagIXyYJu6rkNp12H8MJNPzoCHsCU3KzInFzHTD4kAiBgwCUFxVAecFg6FsOOOk7H5XT6CNWC5eTRAlGxg9G8CQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1335894},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"eaeda1f588bb9db8ea8128385fe51fb519b1e303","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.9-7_1752793981979_0.2718810741886122","host":"s3://npm-registry-packages-npm-production"}},"2025.7.9-8":{"name":"milesight-thermostat-api","version":"2025.7.9-8","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.9-8","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"0dbe2741e44d0d6db80782749890ff0aaf5ca3dd","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.9-8.tgz","fileCount":34,"integrity":"sha512-ZcJhVH9mugEK2oG8XqNi+CJm4OavDqnfIoJOo77xDKtma4Qe/vuPLVY/WMAOjoR2xF6Snu8dKHAKmFRtW07cEw==","signatures":[{"sig":"MEQCIGW8YTMV73kdj06hpEYOsLvZLXSqyFtN0MiB3WfRhzMxAiAWM7cqqzYpGW8zYydhA3jJWB/rVJqsXDQDJGK5mGCj2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1339424},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"41f5edcdeff0dc86ecc64c1c74e29b39bac01cc2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.9-8_1752873503862_0.20868276554106457","host":"s3://npm-registry-packages-npm-production"}},"2025.7.19":{"name":"milesight-thermostat-api","version":"2025.7.19","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.19","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"15e3b5238f3bb21ff11b2c005bcf077a3dd9c423","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.19.tgz","fileCount":34,"integrity":"sha512-BW0CAnD4Dj1y2wHcydlMUQtfPGSf50va97DEWufjkgXsT1dtffF0mfwyJgLHGEtEmAQMz8P3wAIKDQNQZn4rlw==","signatures":[{"sig":"MEUCIA4etRHVWPBsEIRru4xRa8Pg2gfIEzHRl32u9ULyO0RIAiEA3dwA9wMK4trhw48Bhys03yIggsAuV3Nc7Gzbylepzzk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1339466},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"efc6806077eb31a5067707ba3569df957f38c6aa","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.19_1753049446355_0.8761460167404285","host":"s3://npm-registry-packages-npm-production"}},"2025.7.20-0":{"name":"milesight-thermostat-api","version":"2025.7.20-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.20-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"b2773512a1ffc9aaf5506c13aca7f847664a1896","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.20-0.tgz","fileCount":34,"integrity":"sha512-mP+y2DK4SDM8UsifBGuSzqi3ChUkTrezuJvLIeQ7oWK4/S5cvdB8NSOwlAXfmvHeAf5R/2Qp4y3Vx+M2VVKq4A==","signatures":[{"sig":"MEUCIQDo+HqZtC2ykRBIcl+rVIXpqgdJir0Y8aHlveSuwfYJcgIgMoBJFU87IZfcdokVylezdaVn0GR/7VXQSft8/ovKEZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1339472},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"26c6d84700195836e26d0b8a7575c5ae98d659eb","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.20-0_1753049741767_0.4009712075929457","host":"s3://npm-registry-packages-npm-production"}},"2025.7.20-1":{"name":"milesight-thermostat-api","version":"2025.7.20-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.20-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"29c893eae386967f3624b3d940331ce5e4178a64","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.20-1.tgz","fileCount":34,"integrity":"sha512-q8ExeXbA6W3FeeKcO5Iejzjr2muDovgrakYBrB9D6RctRl5Hfzvdn8cBIiio7TWNl/JOPb464kwuUfoU7J3mhQ==","signatures":[{"sig":"MEYCIQDMpd2nUucQNhuVe5AoweZn5yqWipy1Xf7sRCnumMRAaAIhAMgmxviF48KrhNTQJck/wrGEI8BNW6QoQNVc0zwRcoeb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1341010},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"24c5a568064064a83fd6bf6df63923684157cbec","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.20-1_1753116505953_0.9003649600182089","host":"s3://npm-registry-packages-npm-production"}},"2025.7.20-2":{"name":"milesight-thermostat-api","version":"2025.7.20-2","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.20-2","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"596334a478d96afba81ff7280224a21c4ff0e909","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.20-2.tgz","fileCount":34,"integrity":"sha512-JDzkcQ5LGaUv54jZMTtClQAIm5ipGaznu7ODsHPJILUlJZqw8dtevUxwkppm6heKJ1OjUlWzoOyKxYTl/F0jyQ==","signatures":[{"sig":"MEUCIQCMPdM8rIXY1Ht4uvTTMCK8yupwj99zMU64tK9vXGPrRgIgMTRCUGaQYVr5iTh+ryX6DU0pmPu5xYRC+MiqMgtt+gA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1342167},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"256aab32d8c0d490bfd7861184250f0223c515da","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.20-2_1753209518234_0.25868624016979336","host":"s3://npm-registry-packages-npm-production"}},"2025.7.20-3":{"name":"milesight-thermostat-api","version":"2025.7.20-3","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.20-3","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"365a3803bc0d4e4d5bcaf9cbd669439a3d0c6393","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.20-3.tgz","fileCount":34,"integrity":"sha512-Beu8zjZljmxuT0F2BUJoeODQPq1E4u0ykAU7UU3kbSE0gpG+Wcc23pZQjyhjgFoQgbzGXDs50wPzn1oODq+JrQ==","signatures":[{"sig":"MEUCIQDbO/2vt6MpXdaajui30byILDTcygCbrtVFqQUOMFQACQIgWKQEOX+5zrQr81nb2/TJxPhLrqKsRgUuXiwJ216GVjo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1346852},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"4081e4a0dffbf2669b80edf9a1bb5a4eae6ed374","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.8"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.20-3_1753218962319_0.9652970979182252","host":"s3://npm-registry-packages-npm-production"}},"2025.7.24":{"name":"milesight-thermostat-api","version":"2025.7.24","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.24","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"937172341acb27ef624fd9e5edb989305330fe1f","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.24.tgz","fileCount":34,"integrity":"sha512-t5Bv9XhZ2Gzu1x+phq/jMF/HD447/RKN9Op3KTaQeEJnL9J8DpC3d3z4S5CAxECOpbam4NqbXkVlTX7mHsco4A==","signatures":[{"sig":"MEUCIQC1yu81TWctsq2xRKj2rfnIj+jjqjATnjNkyutoYLrJ9AIgAXFjSGWmM4Fh2UtqSMQJpKfeYRGkmY8Shel+QoDEH2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1346845},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"af5f2aaf825aaa6ed45f628e012086df982941d9","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.24"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.24_1753640494573_0.06290034070871142","host":"s3://npm-registry-packages-npm-production"}},"2025.7.25-0":{"name":"milesight-thermostat-api","version":"2025.7.25-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.25-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"63e030cda92ebe0bea619bbbdd2a0a1cc47c357c","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.25-0.tgz","fileCount":34,"integrity":"sha512-3QDs8dzu41r3EsZuBESXb9YR02R+3Y+uo3bHydPieTITmOy3XWsCqh/2QCuP48goymo4YlKgtxmDKwH3J5V6KQ==","signatures":[{"sig":"MEUCIC61K6wAXpE0AixLsGA/zR97QhGye899f7Fk+LDNCEszAiEAmCJgCMIOg2mFLuvsD4dD1daFGnufVFJhsUjE5tdVUds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1346851},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"f5a0de5f29ba0f62aa2994bd16ba8da5ff41e438","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.24"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.25-0_1753640958691_0.42124851944778685","host":"s3://npm-registry-packages-npm-production"}},"2025.7.25-1":{"name":"milesight-thermostat-api","version":"2025.7.25-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.25-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"16e7abdfa9661973417cb1099a38a46cea277427","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.25-1.tgz","fileCount":34,"integrity":"sha512-krAamBcVngp69h7QTFEDKIPc/w3uIgTocEW1FneUsHKKpNyx2uyU/U9eMZPr+8ZrBCWiQ+QpwkGyfC0MdthMFA==","signatures":[{"sig":"MEUCIFw9EUZWTRn57G5FeUiNTkJrKOyubkxNkqmPIOiP8vzbAiEA4GZXNkRHP0A3pjT8xvpA0j8EcbIZVUZLVMRZzS6fZ0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1348346},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"6283e1bc0572d5d9897a2af23ed19e92f08b329a","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.24"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.25-1_1753923711059_0.23718188463425638","host":"s3://npm-registry-packages-npm-production"}},"2025.7.31":{"name":"milesight-thermostat-api","version":"2025.7.31","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.31","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"feb31eeabb0edc1a53104d8dbc629fac28027ae3","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.31.tgz","fileCount":34,"integrity":"sha512-vrrha7Y1LCsrXfWbJITDAR4iRUn81AH/DdQHVEzMTczGKI5bcAYIkBwE/CCHrlidJ8SMnFPG1pW9sB4kV90rWQ==","signatures":[{"sig":"MEUCIQDKYI4nWZNHASRV46W/CF2ZuYv1N/A0evv1VFyT/apYtAIgOnfWgdMUeT2/5K3hPG1m67tgeaNBN06Icr33QelfStw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1348340},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"2ce66095e5e5aaa70569a1213d43b2b0578d9db4","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.24"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.31_1753928230195_0.6511811526851157","host":"s3://npm-registry-packages-npm-production"}},"2025.7.32-0":{"name":"milesight-thermostat-api","version":"2025.7.32-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.32-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"c66706672f034a9d8a913e1861db3f8f88e6ac1e","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.32-0.tgz","fileCount":34,"integrity":"sha512-Nz6/TcmjkG3ErAEblsHpypIV5CWuC/3W49Zu52YAJTXGkcsBfTYU0Qf1SQQWbl89W4mQyntd978bj/oeQBLCsg==","signatures":[{"sig":"MEYCIQCNm84R1BV4ZUIQfSN1Xh9UksqFKs3SAdbVsR9PaT3B5wIhAOjRx9bbX166JBD+2UGbEP0qRBOqqUFyzSIBE/y+l71R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1348346},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"5316381bdf6c0a8d97e87a1d510d866586d3bfed","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.24"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.32-0_1753929215828_0.6095882967829143","host":"s3://npm-registry-packages-npm-production"}},"2025.7.32-1":{"name":"milesight-thermostat-api","version":"2025.7.32-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.32-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"9037057bc9559d10f5546fa762572b9d86b0fca7","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.32-1.tgz","fileCount":34,"integrity":"sha512-jYwqEgdGFam+WE8EmBfNUDCCjXMhFnWCK+gd0QnFZAHMNsG1VBOYB2XNIGjGWuS0VfCz/pscBQmPoyNf3mEtqQ==","signatures":[{"sig":"MEQCIHtJc/V6MDiiEjT7C6YjRD3FRxXS3Cen9XO0Vg5ea8tZAiArn7DOcLvfyPqj9d3pnKzOWfOWGLfzrAm3M/4p++auiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1359082},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"526ca81a9fe115ca7143965a6167e1d951d82b68","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.7.0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.7.24"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.32-1_1754347253062_0.04668205267535419","host":"s3://npm-registry-packages-npm-production"}},"2025.7.32-2":{"name":"milesight-thermostat-api","version":"2025.7.32-2","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.7.32-2","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"1da5b8ffc5f0797ae5d2e09ba8c35bea80ed9b9b","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.7.32-2.tgz","fileCount":34,"integrity":"sha512-Tawza7y+oVgHAwC8ABqS/TO09VFByWK0dj1DcDBkh4dIaXjYMAeF0lJIl08kWv4q5Iikx1eOAviCKssy1wuXEw==","signatures":[{"sig":"MEQCIHA9nxVkzzFJYIn9EERvC1LWL6ehvne+RI9V0AMUcFp7AiAGxPpJ46HEvotrfkyTbqHuqLjQVz9G5DtJ2mfFQXc9+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":738272},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"43f6c22c40ec5c2f260f007acd2d653f34badae8","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.9.2","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2025.8.6"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.7.32-2_1755047543453_0.8189636569212706","host":"s3://npm-registry-packages-npm-production"}},"2025.8.14":{"name":"milesight-thermostat-api","version":"2025.8.14","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.8.14","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"ba393ebb97f841ca06c0f9cba2b0754a0ef82e3e","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.8.14.tgz","fileCount":34,"integrity":"sha512-mAsB4HqbSGcmYWclBp7H76HK3EP5QAbCwcwn9zvM2fl76mRifF/luHdWznE/TjIuybbCvBy3QNw43cPW8cAe4Q==","signatures":[{"sig":"MEUCIEG/1FM7sJhB6Jq0Y3nazEpnEa75jiyjv8LEC0LOUohlAiEA90d29ofiwK2bnLosKlrXO5AXv1bCrourg1+npnZDEA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1593142},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"d354b67f9c3c2cc267973ee5f16fae7ddd1239c6","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.9.2","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.8.6"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.8.14_1755138741900_0.8597021310011643","host":"s3://npm-registry-packages-npm-production"}},"2025.8.15-0":{"name":"milesight-thermostat-api","version":"2025.8.15-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.8.15-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"062c7dbe6dc8c9f7be50dfd265f304a5391dab55","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.8.15-0.tgz","fileCount":34,"integrity":"sha512-zwEVHLI81ZuKUVNgbba7QAz9/DyErKpjNted48G1aqyu8i6vN+WXwzFr8uH3UeGHAzeQoisFrNZcCoZ6pEFHHw==","signatures":[{"sig":"MEUCIQD95AC/jWvTODBUfF4+3GHRgD3IEus6lo7vP64Cu+dSSAIgDtE217lSLsQluTdOGne0r/RDBId4Bya3oDGwczYk9V0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1593148},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"2f63dbc9b087c8d706e5ef1751ddf34842cf5d6a","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.9.2","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.8.6"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.8.15-0_1755468143468_0.957311329433878","host":"s3://npm-registry-packages-npm-production"}},"2025.8.15-1":{"name":"milesight-thermostat-api","version":"2025.8.15-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.8.15-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"6281da1e6224167953541b8828ae523d053ffd3c","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.8.15-1.tgz","fileCount":34,"integrity":"sha512-jYBjnA+rHx1YMRwxM7asuQlz3+Uv7YjCGnchPJXhRTt7VRV8VqcsHVk/wu6wafpXwg38Ang/dyezUXtAjgf+qw==","signatures":[{"sig":"MEYCIQCGCMkxLM07KGnxOLQT407SaAUrT42kyfAaz3GEkQaVSgIhALKfxpgaeyQWEI0yiURzy9gg10dcO64XOEAzVbYSJPWL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":817544},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"93a4694b939fb61fd51f1428df87b46e749831bb","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.9.2","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2025.10.14-1"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.8.15-1_1760566843413_0.25733477993890475","host":"s3://npm-registry-packages-npm-production"}},"2025.8.15-2":{"name":"milesight-thermostat-api","version":"2025.8.15-2","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.8.15-2","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"ee0c098673c9c8fcc29c741a30d621765dbb6357","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.8.15-2.tgz","fileCount":34,"integrity":"sha512-hZMKsk0x6dECGHz7q5ldrCL243+G+i7FH1KyaBnppzqtT/Ebv/l2GMgBSfiyySgMh1rAwnC4Oo6vjfYJwbBYNA==","signatures":[{"sig":"MEQCIG4lwfoGysHC2oEsxFfGClKVxOl0/EaB3LfDFDFI8n4zAiB7Ns7oVojWU3y5sMVYgU4jGNq39Kxd0vTZpmG690r5mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":739943},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"805959984d1066dec57eac658ae9f51a73ea3ae1","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.9.2","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2025.10.14-2"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.8.15-2_1760574778621_0.25966327007802814","host":"s3://npm-registry-packages-npm-production"}},"2025.10.16":{"name":"milesight-thermostat-api","version":"2025.10.16","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.10.16","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"a3d0df5e672bee712584ab03fae204ac7ce79bf9","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.10.16.tgz","fileCount":34,"integrity":"sha512-nC8E/2T/t3Is0lGyGQkgQe9Eo1PB17fKpzqcOiULED3ewrkkEs0NL9abfY7rT9yMUKxaAzRXorXDVMlIXyiXnw==","signatures":[{"sig":"MEQCIGI18/B3kbyrh2lka4jR9vMx02FjkNNbnx/QdfWjb0dcAiAea8PXvUR2iywhhoHJtcdIL+lUbz1f6OJtMh1kiWuukg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1602052},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"e48f890b29e3454c5311eabeb14d60c93279d0d0","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.9.2","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.10.16"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.10.16_1760581131604_0.7715357216450685","host":"s3://npm-registry-packages-npm-production"}},"2025.10.17-0":{"name":"milesight-thermostat-api","version":"2025.10.17-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.10.17-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"be7f869acc3ca50400545db5c3051d343ed2be5e","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.10.17-0.tgz","fileCount":34,"integrity":"sha512-ELDFVic4hWU0OnBOEadEuMsPgaEx7+T6igl2NorrItGwVMI0CgCVyG3EmbBJ0KnlLs5TO8l7gt+YRIpa37M7NA==","signatures":[{"sig":"MEYCIQDVfD6mof3FGGFS+z5FRLolJL8G4WSu2DHdJf1Y/LLLlwIhAJd8GHEu4Qc+yxKmCSwP3Qiu/bAZieEwz5/6hvHiTIBI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1602058},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"2c98fb6d084b3a4851c4b178a1fa59272053184a","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.9.2","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.10.16"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.10.17-0_1760582890822_0.08496901186758454","host":"s3://npm-registry-packages-npm-production"}},"2025.10.17-1":{"name":"milesight-thermostat-api","version":"2025.10.17-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.10.17-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"28cab492f426cb00f5061ea566564cbcfeb75129","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.10.17-1.tgz","fileCount":34,"integrity":"sha512-uQLuujElTiD77bVc0CvLUUmYM7ibi3/I91/dTJ7l9da5h9clg75fpQRW2FWmncWF02cp7fjjhDEXdqYjqIoTIg==","signatures":[{"sig":"MEUCIQCWM06lhgbEy5rMLpb4qLb4dz6gpqKi+VbWIDP4M6kJIAIgdfEGWYDfeNfN+LHTyM3/a6x+uMr3GNeJRtl48OcAqRM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1603059},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"f364ca05b43786bf9d33b0c6e55917b5849c25d9","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.9.2","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"^2025.10.14-2"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.10.17-1_1760587353147_0.7186258014992166","host":"s3://npm-registry-packages-npm-production"}},"2025.10.17-2":{"name":"milesight-thermostat-api","version":"2025.10.17-2","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.10.17-2","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"21876fe63418b52e9bc1cf63b0f2f80f83d971d6","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.10.17-2.tgz","fileCount":34,"integrity":"sha512-jrgvBg5oDNrb9L1NAmfF2LUzzS8yP2e0sqYIUHJKBKEimb8zY++TyMytT5ZJkzeaw9UEXdOq0RAWIVJTCfdYOQ==","signatures":[{"sig":"MEUCIGrl2jbn+pUEemNyqQcJm6LpVKVmYMqFSJPj+Mjy4XavAiEAzYZjP2jfg3kSXPZ1SHBvHhChK1DvGBkHwka18V7tKdY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1602912},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"a0875316f9c248c189c36e6acda732a7c0e01bb2","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.9.2","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.10.17-2"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.10.17-2_1760678494495_0.3298587916478808","host":"s3://npm-registry-packages-npm-production"}},"2025.10.20":{"name":"milesight-thermostat-api","version":"2025.10.20","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.10.20","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"0c42485748df2d40e7bd3eeeb155864d3d2b743e","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.10.20.tgz","fileCount":34,"integrity":"sha512-oAUEHck9c9eLaOMkwG7uNmjDQWcfvDSzuSTBhOzAsEIwVxDtOSJcuCNcjMOeyFlDVF3f2Gi66iEj+Sk0VjBgFw==","signatures":[{"sig":"MEUCIQCcZ/if4VhDR3QF7qw1jIoemKf9JPpG2z9w/wLPG74xFQIgSzGXjELTKwuuqY00ll1yJS9WRUpSinp1d+wX6lBP7xo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1602898},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"cc0f2e5c671fd5fcb161bed75a5d425a35f17a48","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.9.2","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.10.20"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.10.20_1760909057118_0.6295824464679833","host":"s3://npm-registry-packages-npm-production"}},"2025.10.21-0":{"name":"milesight-thermostat-api","version":"2025.10.21-0","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.10.21-0","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"f453f6fc8975e2008b78f11fa1244a3cd4bd04f4","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.10.21-0.tgz","fileCount":34,"integrity":"sha512-YD31BVw7BmdqiZOG0T5dy7SwRg4+NhIHGmJp+oxiNqkUuHuD1RKSSBE0mrv6HywN5GCB+Xjt1EdK6td3j49cbQ==","signatures":[{"sig":"MEUCIQDbTjmRh4bR+ct0hLNhvTdPZ2EsjMZiSjX7fqjJN+OhWwIgbzN7ehcbo4OWdkDRHnWljJMv8kiDiIQQhsqmFGNkJac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1602904},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"51de586de0112ef88819cd56784367d99df566ce","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.9.2","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.10.20"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.10.21-0_1760910184441_0.6279020625925074","host":"s3://npm-registry-packages-npm-production"}},"2025.10.21-1":{"name":"milesight-thermostat-api","version":"2025.10.21-1","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.10.21-1","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"ffd400eb0f7bb0a4b894f339b3e33f99c199657c","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.10.21-1.tgz","fileCount":34,"integrity":"sha512-EawhnEWYViN4WaW2R8bLETCpWrgWYW+22KyknZXzvM/8NESv36HEksqMdt9l7qt1SSu/w0C897VgKV4ehBseFg==","signatures":[{"sig":"MEUCIG7FexjOn2+tXzCEYB3YePtOv3xssesdWUohoPWc3Xf6AiEAv8jjzqI0cM4H/QSv6UC1a6vW5a9dPU6oYtefz3Zjhgs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1602912},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"571c5134b28e08cc6c27a75b7c0d3bb1b69295e5","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.9.2","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.10.21-1"},"_hasShrinkwrap":true,"devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.10.21-1_1761008647057_0.9685960918572909","host":"s3://npm-registry-packages-npm-production"}},"2025.10.22":{"name":"milesight-thermostat-api","version":"2025.10.22","author":"","license":"UNLICENSED","_id":"milesight-thermostat-api@2025.10.22","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"dist":{"shasum":"b8a32183282ed38606263daddf82ec3f0b48886b","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.10.22.tgz","fileCount":34,"integrity":"sha512-QiH3xoci41IGy8M4/9AbVLy/4h3S3i0nBmdlbH7iueP9bV9eXpMmGpKPyd6Qt5Sy3/AiuNDihztbYu2bK3OS+A==","signatures":[{"sig":"MEYCIQDy62eKf2lUZAXqrKzqioFWxu3rZsNAAWDi3rT41OBbUwIhAJRvWAo6E2wXvYqpXpLD7NyHHaISB+DByzEK+eVmwf1d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1602898},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},"gitHead":"902119752cebfceee667595af67f684a629c6c13","scripts":{"lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","build":"nest build","start":"nest start","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","build:ci":"tsc -p tsconfig.build.json","test:cov":"jest --coverage","test:e2e":"jest --config ./test/jest-e2e.json","start:dev":"nest start --watch","test:open":"jest --detectOpenHandles -vv","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","start:prod":"node dist/main","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:watch":"jest --watch","start:debug":"nest start --debug --watch","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"_npmVersion":"10.9.2","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"rxjs":"^7.8.1","convict":"^6.2.4","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","class-validator":"^0.14.1","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","class-transformer":"^0.5.1","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","@coinspect/therma-action-rule-decoder":"2025.10.22"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"jest":"^29.5.0","eslint":"^8.42.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","prettier":"^3.0.0","supertest":"^7.0.0","ts-loader":"^9.4.3","typescript":"^5.1.3","@nestjs/cli":"^10.0.0","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/express":"^4.17.17","tsconfig-paths":"^4.2.0","@nestjs/testing":"^10.0.0","@types/supertest":"^6.0.0","@nestjs/schematics":"^10.0.0","source-map-support":"^0.5.21","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/milesight-thermostat-api_2025.10.22_1761074194683_0.7971308902693852","host":"s3://npm-registry-packages-npm-production"}},"2025.10.23-0":{"name":"milesight-thermostat-api","version":"2025.10.23-0","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","author":"","license":"UNLICENSED","scripts":{"build":"nest build","build:ci":"tsc -p tsconfig.build.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","start":"nest start","start:dev":"nest start --watch","start:debug":"nest start --debug --watch","start:prod":"node dist/main","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","test:open":"jest --detectOpenHandles -vv","test:watch":"jest --watch","test:cov":"jest --coverage","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:e2e":"jest --config ./test/jest-e2e.json","build:kube":"docker build -t mewe/lorawan-milesight-thermostat-api-service -f Dockerfile .","build:kube:ci":"scripts/build-app.sh mewe/lorawan-milesight-thermostat-api-service"},"dependencies":{"@coinspect/therma-action-rule-decoder":"2025.10.22","@nestjs/common":"^10.0.0","@nestjs/core":"^10.0.0","@nestjs/platform-express":"^10.0.0","@typescript-eslint/eslint-plugin":"^7.17.0","class-transformer":"^0.5.1","class-validator":"^0.14.1","convict":"^6.2.4","elastic-apm-node":"^4.7.0","reflect-metadata":"^0.2.0","rxjs":"^7.8.1"},"devDependencies":{"@nestjs/cli":"^10.0.0","@nestjs/schematics":"^10.0.0","@nestjs/testing":"^10.0.0","@types/express":"^4.17.17","@types/jest":"^29.5.4","@types/node":"^20.3.1","@types/supertest":"^6.0.0","@typescript-eslint/parser":"^7.0.0","eslint":"^8.42.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","jest":"^29.5.0","prettier":"^3.0.0","source-map-support":"^0.5.21","supertest":"^7.0.0","ts-jest":"^29.1.2","ts-loader":"^9.4.3","ts-node":"^10.9.1","tsconfig-paths":"^4.2.0","typescript":"^5.1.3"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"_id":"milesight-thermostat-api@2025.10.23-0","gitHead":"61c95a724883278c9a02fa80ee3fae4b368eccc1","_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-4tBvPFmgYjma1ixq2Yt6aROhjhbcGGGhnX00p9UTvC5rjcrDRdOjpjrI2ibsHMhnsoqY3oQdqFQNiNxvGLENxQ==","shasum":"3f790399da476c1f6c48acbf9825a7de36812d3c","tarball":"https://registry.npmjs.org/milesight-thermostat-api/-/milesight-thermostat-api-2025.10.23-0.tgz","fileCount":34,"unpackedSize":1602904,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDxLsExO++3yqwpbY408ZvLbHcM5kpP3ExXm4yIPi9ypAiBNxfVu4tQ/sZTheB+6vRJCxE932Ot4koX4FmVlvYY5XQ=="}]},"_npmUser":{"name":"mewe-devops","email":"internal@hellotherma.com"},"directories":{},"maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/milesight-thermostat-api_2025.10.23-0_1761074477947_0.45285654097681904"},"_hasShrinkwrap":true}},"time":{"created":"2024-07-24T03:09:39.845Z","modified":"2025-10-21T19:21:18.374Z","2024.7.4-0":"2024-07-24T03:09:40.118Z","2024.7.4-1":"2024-07-25T01:49:18.894Z","2024.7.4-2":"2024-07-25T10:26:07.630Z","2024.7.4-3":"2024-07-29T04:16:06.406Z","2024.7.4-4":"2024-07-29T06:04:10.991Z","2024.7.4-5":"2024-07-30T03:15:43.854Z","2024.7.4-6":"2024-08-05T22:47:24.560Z","2024.7.4-7":"2024-08-06T02:04:04.998Z","2024.7.4-8":"2024-08-06T03:18:28.649Z","2024.7.4-9":"2024-08-07T10:55:06.416Z","2024.7.4-10":"2024-08-07T23:11:04.936Z","2024.7.4-11":"2024-08-08T00:11:48.117Z","2024.8.8":"2024-08-12T03:22:52.184Z","2024.7.4-12":"2024-09-23T02:24:29.092Z","2024.7.4-13":"2024-09-23T03:27:30.283Z","2024.7.4-14":"2024-09-23T08:00:45.962Z","2024.9.23":"2024-09-26T09:10:19.636Z","2024.9.24-0":"2024-10-29T00:18:08.057Z","2024.9.24-1":"2024-10-30T01:21:57.198Z","2024.11.6":"2024-11-07T04:56:56.806Z","2024.11.27":"2024-11-27T03:43:58.160Z","2024.9.24-2":"2024-12-17T04:54:13.417Z","2024.12.17":"2024-12-17T05:44:03.412Z","2024.9.24-3":"2025-02-19T23:09:56.281Z","2025.2.20":"2025-02-20T01:28:13.658Z","2025.2.21-0":"2025-02-20T01:48:56.056Z","2025.2.21-1":"2025-03-13T00:06:11.554Z","2025.3.13":"2025-03-13T02:04:57.018Z","2025.3.14-0":"2025-03-14T02:56:01.043Z","2025.3.17":"2025-03-17T03:01:50.604Z","2025.3.18-0":"2025-03-18T01:58:35.479Z","2025.3.18-1":"2025-03-20T01:13:46.156Z","2025.3.20":"2025-03-20T02:20:47.075Z","2025.3.21-0":"2025-03-20T06:58:36.436Z","2025.3.21-1":"2025-03-21T02:36:46.097Z","2025.3.21":"2025-03-21T03:16:26.919Z","2025.3.22-0":"2025-03-21T04:35:17.235Z","2025.3.22-1":"2025-03-31T19:35:53.210Z","2025.4.1":"2025-03-31T20:14:09.627Z","2025.4.2-0":"2025-03-31T20:26:08.595Z","2025.4.2-1":"2025-04-10T04:51:34.505Z","2025.4.2-2":"2025-04-14T22:48:48.223Z","2025.4.15":"2025-04-15T00:54:28.096Z","2025.4.16-0":"2025-04-15T02:10:19.778Z","2025.4.16-1":"2025-04-29T22:49:59.565Z","2025.4.30":"2025-04-30T00:35:16.364Z","2025.4.31-0":"2025-04-30T00:56:50.794Z","2025.4.31-1":"2025-04-30T06:18:41.455Z","2025.4.31-2":"2025-05-14T05:54:05.164Z","2025.4.31-3":"2025-05-18T23:32:17.145Z","2025.4.31-4":"2025-05-19T02:05:53.138Z","2025.5.21":"2025-05-21T22:16:43.072Z","2025.5.22-0":"2025-05-25T22:07:02.800Z","2025.5.22-1":"2025-05-29T22:36:25.332Z","2025.5.30":"2025-06-01T18:15:17.364Z","2025.5.31-0":"2025-06-01T18:31:03.153Z","2025.5.31-1":"2025-07-03T21:01:16.879Z","2025.5.31-2":"2025-07-04T20:34:37.239Z","2025.7.7":"2025-07-06T20:43:26.575Z","2025.7.8-0":"2025-07-06T20:48:23.516Z","2025.7.8-1":"2025-07-08T02:28:49.171Z","2025.7.8":"2025-07-08T03:00:19.100Z","2025.7.9-0":"2025-07-08T03:05:30.610Z","2025.7.9-1":"2025-07-15T22:03:07.588Z","2025.7.9-2":"2025-07-16T04:07:39.495Z","2025.7.9-3":"2025-07-16T07:28:20.479Z","2025.7.9-4":"2025-07-16T19:11:01.790Z","2025.7.9-5":"2025-07-17T01:50:04.752Z","2025.7.9-6":"2025-07-17T19:00:15.211Z","2025.7.9-7":"2025-07-17T23:13:02.206Z","2025.7.9-8":"2025-07-18T21:18:24.104Z","2025.7.19":"2025-07-20T22:10:46.604Z","2025.7.20-0":"2025-07-20T22:15:41.976Z","2025.7.20-1":"2025-07-21T16:48:26.179Z","2025.7.20-2":"2025-07-22T18:38:38.501Z","2025.7.20-3":"2025-07-22T21:16:02.584Z","2025.7.24":"2025-07-27T18:21:34.803Z","2025.7.25-0":"2025-07-27T18:29:18.887Z","2025.7.25-1":"2025-07-31T01:01:51.340Z","2025.7.31":"2025-07-31T02:17:10.448Z","2025.7.32-0":"2025-07-31T02:33:36.044Z","2025.7.32-1":"2025-08-04T22:40:53.406Z","2025.7.32-2":"2025-08-13T01:12:23.693Z","2025.8.14":"2025-08-14T02:32:22.361Z","2025.8.15-0":"2025-08-17T22:02:23.719Z","2025.8.15-1":"2025-10-15T22:20:43.739Z","2025.8.15-2":"2025-10-16T00:32:58.864Z","2025.10.16":"2025-10-16T02:18:51.862Z","2025.10.17-0":"2025-10-16T02:48:11.328Z","2025.10.17-1":"2025-10-16T04:02:33.373Z","2025.10.17-2":"2025-10-17T05:21:34.786Z","2025.10.20":"2025-10-19T21:24:17.326Z","2025.10.21-0":"2025-10-19T21:43:04.674Z","2025.10.21-1":"2025-10-21T01:04:07.317Z","2025.10.22":"2025-10-21T19:16:34.904Z","2025.10.23-0":"2025-10-21T19:21:18.183Z"},"license":"UNLICENSED","description":"Milesight Thermostat API is an internal tool accessible on backend. The API allows detail retrieval and command sending to our thermostats.","maintainers":[{"name":"mewe-devops","email":"internal@hellotherma.com"}],"readme":"# Milesight Thermostat Api\n\n## Description\n\nThe Milesight Thermostat API is an internal tool exclusively accessible to our backend team. It serves as a command hub for the Milesight WT201 thermostats using lorawan downlink commands. Additionally, the API allows facilitating effective control of their operational state.\n\n## Requirements\n- RabbitMQ 3.9.11\n- Node 20.15.0\n\n## Installation\n\n```bash\n$ npm install\n```\n\n## Configuration\n\n- AWS_ACCESS_KEY_ID\n    -  AWS Access Key ID\n- AWS_SECRET_ACCESS_KEY\n    -  AWS Secret Key\n\n- NODE_ENV\n    - Node environment\n- LOG_LEVEL\n    - value can be debug, info, error and verbose.\n- MILESIGHT_THERMOSTAT_API_PORT\n    - configurable host port and has a default of `9059`\n\n- AMQP_HOST\n    - rabbitmq host\n- AMQP_USERNAME\n    - rabbitmq user\n- AMQP_PASSWORD\n    - rabbitmq password\n- AMQP_PORT\n    - rabbitmq port\n\n## Running the app\n\n```bash\n# development\n$ npm run start\n\n# watch mode\n$ npm run start:dev\n\n# production mode\n$ npm run start:prod\n```\n\n## Test\n\n```bash\n# unit tests\n$ npm run test\n\n# e2e tests\n$ npm run test:e2e\n\n# test coverage\n$ npm run test:cov\n```\n## REST API\n\n### Get lorawan thermostat list\n\n```\nGET /thermostat/milesight\n```\n\n`maxResult`(optional) range from 1-250 (default is 25)<br>\n`nextToken`(optional) token for the succeeding page/request<br>\n\n### Setting thermostat mode\n\n```\nPOST thermostat/milesight/mode\n\nBody: {\n        deviceEui: string;\n        serialNumber?: string;\n        mode: 'Heat' | 'EMHeat' | 'Cool' | 'Auto';\n      }\n```\n`deviceEui`(required) device eui of the lorawan thermostat<br>\n`serialNumber`(optional) serial number of the lorawan thermostat<br>\n`mode`(required) Mode of the HVAC unit<br>\n\n### Setting thermostat hold\n\n```\nPOST thermostat/milesight/hold\n\nBody: {\n        deviceEui: string;\n        serialNumber?: string;\n        mode: 'Heat' | 'EMHeat' | 'Cool' | 'Auto';\n        dualTargetTemperature?: boolean;\n        temperatureUnit?: 'F' | 'C'\n        coolingSetPoint?: number;\n        heatingSetPoint?: number;\n      }\n```\n`deviceEui`(required) device eui of the lorawan thermostat<br>\n`serialNumber`(optional) serial number of the lorawan thermostat<br>\n`mode`(required) mode of the HVAC unit<br>\n`dualTargetTemperature` (optional) <b>true</b> to enable dual target temperature mode of thermostat <br>\n`temperatureUnit`(optional) temperature unit for the device to use<br>\n`coolingSetPoint`(optional) target temperature for cooling<br>\n`heatingSetPoint`(optional) target temperature for heating<br>\n\n### Setting thermostat schedule\n```\nPOST thermostat/milesight/schedule\n\nBody: {\n        deviceEui: string,\n        serialNumber?: string,\n        dualTargetTemperature?: boolean;\n        temperatureUnit?: string,\n        controlMode: string,\n        occupiedHoursFanMode: string,\n        unoccupiedHoursFanMode: string,\n        occupiedHeatSetPoint: number;\n        unoccupiedHeatSetPoint: number;\n        occupiedCoolSetPoint: number;\n        unoccupiedCoolSetPoint: number;\n        schedule: {\n            monday: {\n                planEnable: boolean;\n                startTime: string;\n                endTime: string;\n            },\n            tuesday: {\n                planEnable: boolean;\n                startTime: string;\n                endTime: string;\n            },\n            wednesday: {\n                planEnable: boolean;\n                startTime: string;\n                endTime: string;\n            },\n            thursday: {\n                planEnable: boolean;\n                startTime: string;\n                endTime: string;\n            },\n            friday: {\n                planEnable: boolean;\n                startTime: string;\n                endTime: string;\n            },\n            saturday: {\n                planEnable: boolean;\n                startTime: string;\n                endTime: string;\n            },\n            sunday: {\n                planEnable: boolean;\n                startTime: string;\n                endTime: string;\n            },\n        }\n    }\n```\n`deviceEui`(required) device eui of the lorawan thermostat<br>\n`serialNumber`(optional) serial number of the lorawan thermostat<br>\n`dualTargetTemperature` (optional) <b>true</b> to enable dual target temperature mode of thermostat <br>\n`temperatureUnit`(optional) temperature unit 'F' for fahrenheight 'C' for celsius<br>\n`controlMode`(required) working mode of thermostat<br>\n`schedule`(required): schedule for each day<br>\n`occupiedHoursFanMode` fan mode during occupied hours ('Auto' | 'On' | 'Circulate')<br>\n`unoccupiedHoursFanMode` fan mode during unoccupied hours ('Auto' | 'On' | 'Circulate')<br>\n`occupiedHeatSetPoint` desired temperature during occupied hours<br>\n`unoccupiedHeatSetPoint` desired temperature during unoccupied hours<br>\n`occupiedCoolSetPoint` desired temperature during occupied hours<br>\n`unoccupiedCoolSetPoint` desired temperature during unoccupied hours<br>\n\n```\n\n{ \n    monday: \n        { \n            planEnable: boolean to enable the plan for Monday\n            startTime: string in 24-hour format (HH) to define start time \n            endTime: string in 24-hour format (HH) to define end time\n        } \n    tuesday: Same structure as monday\n    wednesday: Same structure as monday\n    thursday: Same structure as monday\n    friday: Same structure as monday\n    saturday: Same structure as monday\n    sunday: Same structure as monday\n}\n```\n\n\n### Retrieving historical data\n\n```\nPOST thermostat/milesight/retrieve\n\nBody: {\n        deviceEui: string;\n        serialNumber?: string;\n        startTime: ISO8601 string;\n        endTime: ISO8601 string;\n      }\n```\n`deviceEui`(required) device eui of the lorawan thermostat<br>\n`serialNumber`(optional) serial number of the lorawan thermostat<br>\n`startTime`(required) start time<br>\n`endTime`(required) end time<br>\n\n### Reboot the thermostat\n\n```\nPOST thermostat/milesight/reboot\n\nBody: {\n        deviceEui: string;\n        serialNumber?: string;\n      }\n```\n`deviceEui`(required) device eui of the lorawan thermostat<br>\n`serialNumber`(optional) serial number of the lorawan thermostat<br>\n\n### Setting timezone\n\n```\nPOST thermostat/milesight/timezone\n\nBody: {\n        deviceEui: string;\n        serialNumber?: string;\n        timezoneOffset: number;\n      }\n```\n`deviceEui`(required) device eui of the lorawan thermostat<br>\n`serialNumber`(optional) serial number of the lorawan thermostat<br>\n`timezoneOffset`(required) timezone range (-12, 14)<br>\n\n### Setting lock configuration\n\n```\nPOST thermostat/milesight/lock\n\nBody: {\n        deviceEui: string;\n        serialNumber?: string;\n        powerButton: boolean;\n        temperatureUpButton: boolean;\n        temperatureDownButton: boolean;\n        fanButton: boolean;\n        modeButton: boolean;\n        resetButton: boolean;\n      }\n```\n`deviceEui`(required) device eui of the lorawan thermostat<br>\n`serialNumber`(optional) serial number of the lorawan thermostat<br>\n`powerButton`(required) <b>true</b> to lock and <b>false</b> to disable lock<br>\n`temperatureUpButton`(required) <b>true</b> to lock and <b>false</b> to disable lock<br>\n`temperatureDownButton`(required) <b>true</b> to lock and <b>false</b> to disable lock<br>\n`fanButton`(required) <b>true</b> to lock and <b>false</b> to disable lock<br>\n`modeButton`(required) <b>true</b> to lock and <b>false</b> to disable lock<br>\n`resetButton`(required) <b>true</b> to lock and <b>false</b> to disable lock<br>\n\n### Setting report interval\n\n```\nPOST thermostat/milesight/report-interval\n\nBody: {\n        deviceEui: string;\n        serialNumber?: string;\n        reportInterval: number;\n      }\n```\n`deviceEui`(required) device eui of the lorawan thermostat<br>\n`serialNumber`(optional) serial number of the lorawan thermostat<br>\n`reportInterval`(required) report interval range (1, 1440)<br>\n\n### Setting fan-execute-time\n\n```\nPOST thermostat/milesight/fan-execute-time\n\nBody: {\n        deviceEui: string;\n        serialNumber?: string;\n        time: number;\n      }\n```\n`deviceEui`(required) device eui of the lorawan thermostat<br>\n`serialNumber`(optional) serial number of the lorawan thermostat<br>\n`time`(required) fan execute time range (5, 55)<br>\n\n```\nPOST thermostat/milesight/fan-delay\n\nBody: {\n        deviceEui: string;\n        serialNumber?: string;\n        enabled: boolean\n        time: number;\n      }\n```\n`deviceEui`(required) device eui of the lorawan thermostat<br>\n`serialNumber`(optional) serial number of the lorawan thermostat<br>\n`enabled`(required) <b>true</b> to enable and <b>false</b> to disable <br>\n`time`(required) fan delay time in minutes (1-59). Note: v1 hardware supports 5-55, v2 hardware supports 1-59<br>\n\n### Set compressor and aux combine enable (heat-pump)\n\n```\nPOST /thermostat/milesight/heat-pump\nContent-Type: application/json\n\n{\n    \"deviceEui\": \"A840418XXXXXX\",\n    \"serialNumber\": \"A840418XXXXXX\", \n    \"heatPump\": true\n}\n```\n\n`deviceEui`(required) device eui of the lorawan thermostat<br>\n`serialNumber`(optional) serial number of the lorawan thermostat<br>\n`heatPump`(required) <b>true</b> to combine and <b>false</b> to disable<br>\n\n\n### Set wires relay configuration\n\n```\nPOST /thermostat/milesight/wires-relay\nContent-Type: application/json\n\n{\n    \"deviceEui\": \"A840418XXXXXX\",\n    \"serialNumber\": \"A840418XXXXXX\",\n    \"y1\": true,\n    \"y2_gl\": false,\n    \"w1\": true,\n    \"w2_aux\": false,\n    \"e\": true,\n    \"g\": false,\n    \"ob\": true\n}\n\n```\n\n`deviceEui`(required) device eui of the lorawan thermostat<br>\n`serialNumber`(optional) serial number of the lorawan thermostat<br>\n`y1`(required) <b>true</b> to enable Y1 relay and <b>false</b> to disable<br>\n`y2_gl`(required) <b>true</b> to enable Y2/GL relay and <b>false</b> to disable<br>\n`w1`(required) <b>true</b> to enable W1 relay and <b>false</b> to disable<br>\n`w2_aux`(required) <b>true</b> to enable W2/AUX relay and <b>false</b> to disable<br>\n`e`(required) <b>true</b> to enable E relay and <b>false</b> to disable<br>\n`g`(required) <b>true</b> to enable G relay and <b>false</b> to disable<br>\n`ob`(required) <b>true</b> to enable OB relay and <b>false</b> to disable<br>\n\n### Set Daylight Saving Time (DST) configuration\n\n```\nPOST /thermostat/milesight/dst\nContent-Type: application/json\n\n{\n    \"deviceEui\": \"A840418XXXXXX\",\n    \"serialNumber\": \"A840418XXXXXX\",\n    \"enabled\": true,\n    \"offset\": 60,\n    \"startMonth\": \"march\",\n    \"startWeek\": 2,\n    \"startWeekday\": \"sunday\",\n    \"startTime\": \"02:00\",\n    \"endMonth\": \"november\",\n    \"endWeek\": 1,\n    \"endWeekday\": \"sunday\",\n    \"endTime\": \"03:00\"\n}\n```\n\n`deviceEui`(required) device eui of the lorawan thermostat<br>\n`serialNumber`(optional) serial number of the lorawan thermostat<br>\n`enabled`(required) <b>true</b> to enable DST and <b>false</b> to disable<br>\n`offset`(required) DST offset in minutes (commonly 60 for 1 hour), range: -720 to 720<br>\n`startMonth`(required) Start month: january, february, march, april, may, june, july, august, september, october, november, december<br>\n`startWeek`(required) Start week number (1-5)<br>\n`startWeekday`(required) Start weekday: monday, tuesday, wednesday, thursday, friday, saturday, sunday<br>\n`startTime`(required) Start time in HH:mm format (24-hour, e.g., \"02:00\")<br>\n`endMonth`(required) End month: january, february, march, april, may, june, july, august, september, october, november, december<br>\n`endWeek`(required) End week number (1-5)<br>\n`endWeekday`(required) End weekday: monday, tuesday, wednesday, thursday, friday, saturday, sunday<br>\n`endTime`(required) End time in HH:mm format (24-hour, e.g., \"03:00\")<br>\n\n## Encoding Functions that are not included on this API\n\nThe following functions are used internally by `milesightDeviceEncoder()`:\n\n| Function Name | Description |Sample |\n|---------------|-------------|-------|\n| `reportStatus()` | For querying some configurations of WT201 \n0-Query Schedule\n1-Query Temperature Control Status\n2-Query the target temperature and range for each mode.\n |\n```\n{ \"report_status\": 1 }\n```\n| `setCollectionInterval()` | time interval at which the WT201 collects ambient temperature and humidity data. The LoRaWAN data reported by the WT201 is based on the data obtained from the most recent sampling interval (seconds) |\n```\n{ \"collection_interval\": 30 }\n```\n| `syncTime()` | Trigger time synchronization |\n```\n{ \"sync_time\": 1 }\n```\n| `setTemperatureUnitDisplay()` | Set display unit: 0 = Celsius, 1 = Fahrenheit. |\n```\n{ \"temperature_unit\": 0 }\n```\n| `setSystemStatus()` | Enable or disable the system. System refers to the entire thermostat, and \"system off\" means turning off the whole WT201 thermostat |\n```\n{ \"system_status\": 1 }\n```\n| `setTemperatureCalibration()` | Enable or disable the ambient temperature calibration function. \n0-disable 1-enable,\nEnable: 0-disable 1-enable,\nWhen temperature calibration is enabled, if the value is positive, it will be added to the ambient temperature; if the value is negative, it will be subtracted from the ambient temperature.(unit:Celsius) |\n```\n{\n  \"temperature_calibration\": {\n    \"enable\": 1,\n    \"temperature\": 1.5\n  }\n}\n```\n| `setHumidityCalibration()` | Enable or disable the ambient humidity calibration function. \n0-disable 1-enable,\nWhen humidity calibration is enabled, if the value is positive, it will be added to the ambient humidity; if the value is negative, it will be subtracted from the humidity temperature.(unit:%RH) |\n```\n{\n  \"humidity_calibration\": {\n    \"enable\": 1,\n    \"humidity\": 50\n  }\n}\n```\n| `setTemperatureLevelUpCondition()` | The device will start braking (heating/cooling) at a lower level. If the target temperature is not reached by the detection time, it will switch to the next level of braking (heating/cooling) mode. \nType:0-heat 1-cool,\nTime: detection time,unit: minute,\nTemperature_control_tolerance:Temperature variation value, unit: celsius\n |\n```\n{\n  \"temperature_level_up_condition\": {\n    \"type\": 0,\n    \"time\": 10,\n    \"temperature_control_tolerance\": 1\n  }\n}\n```\n| `setTemperatureSourceConfig()` | Whether to enable external temperature. If external temperature is enabled, you need to set the external temperature timeout. \nSource:0-disable  1-send downlink to modify 2-recieve the temperature sent by EM300-TH sensor,\nTimeout:The timeout period for automatically disabling the external ambient temperature mode when no external ambient temperature data has been received for a certain period of time, unit:minute\n |\n```\n{\n  \"temperature_source_config\": {\n    \"source\": 1,\n    \"timeout\": 10\n  }\n}\n```\n| `setOutsideTemperature()` | When the WT201 has enabled the external temperature mode and the temperature source is from a downlink command, you can use this function to set the external ambient temperature via a downlink command. |\n```\n{ \"temperature\": 22.5 }\n```\n| `setFreezeProtection()` | When current temperature is lower than the protection E Freeze Protection temperature, switch control mode to EM Heat to adjust to protection temperature, then change back to the original control mode. Enable:0-disable 1-enable,\nTemperature: protection Temperature,unit:celsius.\n |\n```\n{\n  \"freeze_protection_config\": {\n    \"enable\": 1,\n    \"temperature\": 5\n  }\n}\n```\n| `setHumidityRange()` | Set minimum and maximum humidity range. Both the minimum and maximum values must be between 0 and 100, unit:%RH |\n```\n{ \"humidity_range\": { \"min\": 30, \"max\": 60 } }\n```\n| `setTemperatureDehumidify()` | Set the value of Temp.Control and Dehumidify. \nEnable:0-disable 1-enable,\ntemperature_tolerance:the value of Temp.Controland Dehumidify,unit:celsius. |\n```\n{ \"temperature_dehumidify\": { \"enable\": 1, \"temperature_tolerance\": 1 } }\n```\n| `setFanDehumidify()` | When the WT201 is in standby mode, if the ambient humidity exceeds the target humidity range, the WT201 will periodically turn on the fan for dehumidification. \nEnable:0-disable  1-enable,\nExecute_time: how long the fan runs within one hour, unit:minute.\n |\n```\n{ \"fan_dehumidify\": { \"enable\": 1, \"execute_time\": 30 } }\n```\n| `setCardConfig()` | Configure card presence actions\nEnable:0-disable,1-enable\naction_type:0-power,1-plan\n\nin_plan_type: when action_type is 1,Set the local schedule mode used by WT201 when the card is inserted; the default is Home mode. 0-wake, 1-away, 2- home, 3-sleep, 4- occupied, 5- vacant, 6- eco\n\nout_plan_type: when action_type is 1,Set the local schedule mode used by WT201 when the card is removed; the default is away mode. 0-wake, 1-away, 2- home, 3-sleep, 4- occupied, 5- vacant, 6- eco\n\nInvert: \n0: Low level indicates card inserted (default) \n1: High level indicates card inserted\n |\n```\n{ \"card_config\": { \"enable\": 1, \"action_type\": 1, \"in_plan_type\": 0, \"out_plan_type\": 1, \"invert\": 0 } }\n```\n| `setOBMode()` | Configure the status of the reversing valve (O/B) of the WT201. |\n```\n{ \"ob_mode\": 1 }\n```\n| `setWires()` | Wiring settings,used to set the relays that are allowed to be used by the WT201 and O/B mode together |\n```\n{ \"ob_mode\": 1, \"wires\": { \"y1\": 1 } }\n```\n| `setMulticastGroupConfig()` | WT201 supports 4 broadcast groups. You can use this function to determine which broadcast groups the WT201 should enable. |\n```\n{ \"multicast_group_config\": { \"dev_addr\": \"26011111\", \"nwk_s_key\": \"00112233445566778899AABBCCDDEEFF\", \"app_s_key\": \"FFEEDDCCBBAA99887766554433221100\" } }\n```\n| `setD2DEnable()` | Enable D2D master/slave mode |\n```\n{ \"d2d_master_enable\": 1, \"d2d_slave_enable\": 0 }\n```\n| `setD2DMasterId()` | When the WT201 has enabled the external temperature mode and the source of the external temperature is from the EM300-TH via D2D, you can use this function to specify the deveui of the EM300-TH from which the WT201 receives data. The WT201 can receive temperature data from up to 5 EM300-TH devices via D2D and will calculate the average value. Id:range from 1 to 5\nDev_eui: the DevEUI of EM300-TH\n |\n```\n{ \"d2d_master_ids\": [\"AABBCCDDEEFF0011\"] }\n```\n| `setD2DMasterConfig()` | Set D2D master configuration. |\n```\n{ \"d2d_master_config\": [{ \"id\": \"AABBCCDDEEFF0011\", \"mode\": 0 }] }\n```\n| `setD2DSlaveConfig()` | Set D2D slave configuration.|\n```\n{ \"d2d_slave_config\": [{ \"id\": \"1122334455667788\", \"mode\": 1 }] }\n```\n| `setTemperatureAlarmConfig()` | Configure temperature alarm thresholds.\nalarm_type: 0-temperature threshold, 1-persistent low temperature threshold, 2-persistent high temperature threshold.\n\nCondition:0-disable, 1-below, 2-above, 3-between, 4-outside\n\nMin:\n- Minimum value, unit: Celsius, int16/10  \n- When in continuous low temperature alarm mode, the difference value is stored here.\n\nMax:\n- Maximum value, unit: Celsius, int16/10  \n- When in continuous high temperature alarm mode, the difference value is stored here.\n\ncontinue_time:duration,unit:s.\n |\n```\n{ \"temperature_alarm_config\": { \"alarm_type\": 0, \"condition\": 0, \"min\": 10, \"max\": 35, \"lock_time\": 10, \"continue_time\": 60 } }\n```\n| `setControlPermissions()` | Restrict control permissions. 0-thermostat,1-Remote control|\n```\n{ \"control_permissions\": { \"temperature\": 1, \"mode\": 0 } }\n```\n| `setOfflineControlMode()` | Set how WT201 should respond when the external temperature times out.\n0: keep current state\n1: returen to thermostate control\n2:disconnect all relays\n |\n```\n{ \"offline_control_mode\": 1 }\n```\n| `setWiresRelayChangeReport()` | After you enable this feature, whenever the current relay status of the WT201 changes, the WT201 will report the updated relay wiring status. |\n```\n{ \"wires_relay_change_report_enable\": 1 }\n```\n| `setAuxControlConfig()` | This feature determines whether Y1 and Y2 or W1 and W2 should be activated simultaneously to enhance the temperature control effect when entering the second-stage temperature control |\n```\n{ \"aux_control_config\": { \"y2_enable\": 1, \"w2_enable\": 1 } }\n```\n| `setScreenDisplayMode()` | Configure screen display. \n0: show all\n1:show all without schedule plan\n2: disable all\n |\n```\n{ \"screen_display_mode\": 1 }\n```\n| `setSystemProtectConfig()` | Configure system protect (delay restart). Only when the minimum running duration passes, the heating or cooling system can start or stop working. Enable:0-disable 1-enable\nDuration:range from 1 to 60, unit: minute\n |\n```\n{ \"system_protect_config\": { \"enable\": 1, \"duration\": 10 } }\n```\n| `setTargetTemperatureRange()` | Set min/max target temp per mode. Set the adjustable range of the target temperature for WT201 in different temperature control modes. \ntemperature_control_mode: 0-heat,1-em heat, 2-cool, 3-auto.\n\nmin: Minimum target temperature,unit:celsius\n\nmax: Miaxmum target temperature,unit:celsius\n |\n```\n{ \"target_temperature_range\": { \"temperature_control_mode\": 2, \"min\": 20, \"max\": 28 } }\n```\n| `setFanControlDuringHeating()` | Configure fan control when heating. Used to set whether the fan needs to be turned on when using a furnace/boiler for heating. If \"Thermostat\" is selected, the fan will be turned on during heating; otherwise, it will remain off. 0-furnace, 1- thermostat|\n```\n{ \"fan_control_during_heating\": 1 }\n```\n| `setUnlockConfig()` | Unlock device config. Combination key unlock configuration: set which buttons need to be pressed simultaneously to temporarily unlock the child lock. |\n```\n{ \"unlock_config\": 1 }\n```\n| `setTemperatureLevelUpDownDelta()` | Configure delta for up/down temperature transitions. If the difference between the target temperature and the ambient temperature exceeds delta1, it should switch to level 2; if it exceeds delta2, it should switch to level 3. \ndelta_1: temperature for delta1.unit: celsius\n\ndelta_2:temperature for delta1.unit: celsius\n |\n```\n{ \"temperature_level_up_down_delta\": { \"delta_1\": 1, \"delta_2\": 2 } }\n```\n| `setTargetTemperatureResolution()` | Set resolution (0.5°C or 1°C). Set the resolution of the target temperature displayed on the WT201 screen. target_temperature_resolution:0- 0.5 resolution,1- 1 resolution. |\n```\n{ \"target_temperature_resolution\": 0.5 }\n```\n| `setTemperatureUpDownEnable()` | Enable/disable forward/backward temp change. Set whether the temperature control level of WT201 can be upgraded or downgraded. |\n```\n{ \"temperature_up_down_enable\": { \"forward_enable\": 1, \"backward_enable\": 1 } }\n```\n| `setTemperatureControlForbiddenConfig()` | Prevent specific temp modes. Disable certain temperature control modes in WT201. |\n```\n{ \"temperature_control_forbidden_config\": { \"mode\": [0, 2] } }\n```\n","readmeFilename":"README.md"}