{"_id":"@clientsdemo/license-client","_rev":"9-f92c7b803264104b4d5dc4f42c072aee","name":"@clientsdemo/license-client","dist-tags":{"latest":"3.5.1"},"versions":{"2.0.0":{"name":"@clientsdemo/license-client","version":"2.0.0","keywords":["license","license-server","license-validation","clientsdemo","ehs","ehr","ksdb","isms","partnerhub","shoprewards"],"author":{"name":"ClientsDemo"},"license":"MIT","_id":"@clientsdemo/license-client@2.0.0","maintainers":[{"name":"lalatendu","email":"login.lalatendu@gmail.com"}],"dist":{"shasum":"1cc1e791d7b50600f326f9a08c41b9e11244df6a","tarball":"https://registry.npmjs.org/@clientsdemo/license-client/-/license-client-2.0.0.tgz","fileCount":32,"integrity":"sha512-s+x2ETSerd4iuXe1sqMuISEEzbcbtTgruoTrZBLwc/lWjMDa0Gs0CGU3Kk2Vta9OfvrukmxU15TVAYgdcJyPCg==","signatures":[{"sig":"MEQCIBQqj4xPZZteNTioHnVXZjzyoopkCH8VxYZMnkwTM9TgAiAjr11J/MRZ7oE5C7/JdYcQtqfZJ4thl2+bT4j85lz8jA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204116},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./setup":{"import":{"types":"./dist/setup.d.ts","default":"./dist/setup.js"},"require":{"types":"./dist/setup.d.cts","default":"./dist/setup.cjs"}},"./adapters/isms":{"import":{"types":"./dist/adapters/isms.d.ts","default":"./dist/adapters/isms.js"},"require":{"types":"./dist/adapters/isms.d.cts","default":"./dist/adapters/isms.cjs"}},"./middleware/astro":{"import":{"types":"./dist/middleware/astro.d.ts","default":"./dist/middleware/astro.js"},"require":{"types":"./dist/middleware/astro.d.cts","default":"./dist/middleware/astro.cjs"}},"./middleware/nextjs":{"import":{"types":"./dist/middleware/nextjs.d.ts","default":"./dist/middleware/nextjs.js"},"require":{"types":"./dist/middleware/nextjs.d.cts","default":"./dist/middleware/nextjs.cjs"}}},"gitHead":"828f2556da39d1c93b01c9115ecbeb1eaa872dba","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"lalatendu","email":"login.lalatendu@gmail.com"},"_npmVersion":"10.9.4","description":"TypeScript client SDK for the ClientsDemo License Server. Validate licenses, manage seats, renew, activate/deactivate machines, send heartbeats, and verify offline.","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/license-client_2.0.0_1776364100318_0.014146697201457892","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@clientsdemo/license-client","version":"3.0.0","keywords":["license","license-server","license-validation","clientsdemo","ehs","ehr","ksdb","isms","partnerhub","shoprewards"],"author":{"name":"ClientsDemo"},"license":"MIT","_id":"@clientsdemo/license-client@3.0.0","maintainers":[{"name":"lalatendu","email":"login.lalatendu@gmail.com"}],"dist":{"shasum":"3f4619f494cf22d86be7a75b57f12532a4a31a4a","tarball":"https://registry.npmjs.org/@clientsdemo/license-client/-/license-client-3.0.0.tgz","fileCount":50,"integrity":"sha512-bMSNw6NVziUDJqS0I+BO6Zkr0+C+YzS3z+ZUG5meG4fktoG9SQVxtkR9Sgc6tuSCIx2dtwC608g6OTm7Iebqdg==","signatures":[{"sig":"MEUCIEMy+KqRRhckArHBvA6jwXuviSHrYFCNRVly2kfKzkeuAiEAmUJD15/Mv6eBf5XX4J1R8nuhwKwccySvrXBjJlcPMhw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":375374},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./guard":{"import":{"types":"./dist/guard.d.ts","default":"./dist/guard.js"},"require":{"types":"./dist/guard.d.cts","default":"./dist/guard.cjs"}},"./setup":{"import":{"types":"./dist/setup.d.ts","default":"./dist/setup.js"},"require":{"types":"./dist/setup.d.cts","default":"./dist/setup.cjs"}},"./adapters/isms":{"import":{"types":"./dist/adapters/isms.d.ts","default":"./dist/adapters/isms.js"},"require":{"types":"./dist/adapters/isms.d.cts","default":"./dist/adapters/isms.cjs"}},"./service-binding":{"import":{"types":"./dist/service-binding.d.ts","default":"./dist/service-binding.js"},"require":{"types":"./dist/service-binding.d.cts","default":"./dist/service-binding.cjs"}},"./middleware/astro":{"import":{"types":"./dist/middleware/astro.d.ts","default":"./dist/middleware/astro.js"},"require":{"types":"./dist/middleware/astro.d.cts","default":"./dist/middleware/astro.cjs"}},"./middleware/nextjs":{"import":{"types":"./dist/middleware/nextjs.d.ts","default":"./dist/middleware/nextjs.js"},"require":{"types":"./dist/middleware/nextjs.d.cts","default":"./dist/middleware/nextjs.cjs"}},"./middleware/express":{"import":{"types":"./dist/middleware/express.d.ts","default":"./dist/middleware/express.js"},"require":{"types":"./dist/middleware/express.d.cts","default":"./dist/middleware/express.cjs"}}},"gitHead":"efc34edb4c26a97cbcd85d055c03a586b2455fcb","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"lalatendu","email":"login.lalatendu@gmail.com"},"_npmVersion":"10.8.2","description":"TypeScript client SDK for the ClientsDemo License Server. Validate licenses, manage seats, renew, activate/deactivate machines, send heartbeats, and verify offline.","directories":{},"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/license-client_3.0.0_1776430887424_0.39820729305708036","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@clientsdemo/license-client","version":"3.1.0","keywords":["license","license-server","license-validation","clientsdemo","ehs","ehr","ksdb","isms","partnerhub","shoprewards"],"author":{"name":"ClientsDemo"},"license":"MIT","_id":"@clientsdemo/license-client@3.1.0","maintainers":[{"name":"lalatendu","email":"year240@gmail.com"}],"dist":{"shasum":"82c87d265e7f67b8702d7f9dfd0bdd70e2f63cec","tarball":"https://registry.npmjs.org/@clientsdemo/license-client/-/license-client-3.1.0.tgz","fileCount":50,"integrity":"sha512-kaYAa6tyIb6XfQrgmtdp5Tn6NXet/Z/kaFIibOlKT6qL3QjuQH2Cq0x6bHRmPntOTU78Hznfk2gJwqAQb1mdqQ==","signatures":[{"sig":"MEQCIBkZQ+rQtVz1+PA6zFkQXO1ZMF75/ugYiNBqJkqt7Lo6AiBfgehb4C720S7vQQ+vGpAyiLF6E8S+yJxWKozOQ5hsOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":430654},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./guard":{"import":{"types":"./dist/guard.d.ts","default":"./dist/guard.js"},"require":{"types":"./dist/guard.d.cts","default":"./dist/guard.cjs"}},"./setup":{"import":{"types":"./dist/setup.d.ts","default":"./dist/setup.js"},"require":{"types":"./dist/setup.d.cts","default":"./dist/setup.cjs"}},"./adapters/isms":{"import":{"types":"./dist/adapters/isms.d.ts","default":"./dist/adapters/isms.js"},"require":{"types":"./dist/adapters/isms.d.cts","default":"./dist/adapters/isms.cjs"}},"./service-binding":{"import":{"types":"./dist/service-binding.d.ts","default":"./dist/service-binding.js"},"require":{"types":"./dist/service-binding.d.cts","default":"./dist/service-binding.cjs"}},"./middleware/astro":{"import":{"types":"./dist/middleware/astro.d.ts","default":"./dist/middleware/astro.js"},"require":{"types":"./dist/middleware/astro.d.cts","default":"./dist/middleware/astro.cjs"}},"./middleware/nextjs":{"import":{"types":"./dist/middleware/nextjs.d.ts","default":"./dist/middleware/nextjs.js"},"require":{"types":"./dist/middleware/nextjs.d.cts","default":"./dist/middleware/nextjs.cjs"}},"./middleware/express":{"import":{"types":"./dist/middleware/express.d.ts","default":"./dist/middleware/express.js"},"require":{"types":"./dist/middleware/express.d.cts","default":"./dist/middleware/express.cjs"}}},"gitHead":"0ffcf81e5dc6d44396d8846ee48c3c2ba18c2e49","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"lalatendu","email":"year240@gmail.com"},"_npmVersion":"10.8.2","description":"TypeScript client SDK for the ClientsDemo License Server. Validate licenses, manage seats, renew, activate/deactivate machines, send heartbeats, and verify offline.","directories":{},"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/license-client_3.1.0_1776536337259_0.031092645541486386","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@clientsdemo/license-client","version":"3.2.0","keywords":["license","license-server","license-validation","clientsdemo","ehs","ehr","ksdb","isms","partnerhub","shoprewards"],"author":{"name":"ClientsDemo"},"license":"MIT","_id":"@clientsdemo/license-client@3.2.0","maintainers":[{"name":"lalatendu","email":"year240@gmail.com"}],"dist":{"shasum":"fa1cc7b77211ccaff3a6965c9bc96158f314d604","tarball":"https://registry.npmjs.org/@clientsdemo/license-client/-/license-client-3.2.0.tgz","fileCount":100,"integrity":"sha512-R/Abz3NeUDPPjf+uMzYRcGi9yjnEcnGCnII/IdP4NMxNUSEajJYv9KLZLBM2BDMmqyQuhDoa4HAosZ4PJv50WQ==","signatures":[{"sig":"MEUCIGqMFanMEkpO3d+Zg+yAHs0blAoX4kGOAEXMIU6GsnpSAiEAjxxns9wMT+rElfJoIimq8URWEraP1/3isrvt/KGbTzw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":977397},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./jwt":{"import":{"types":"./dist/jwt.d.ts","default":"./dist/jwt.js"},"require":{"types":"./dist/jwt.d.cts","default":"./dist/jwt.cjs"}},"./guard":{"import":{"types":"./dist/guard.d.ts","default":"./dist/guard.js"},"require":{"types":"./dist/guard.d.cts","default":"./dist/guard.cjs"}},"./setup":{"import":{"types":"./dist/setup.d.ts","default":"./dist/setup.js"},"require":{"types":"./dist/setup.d.cts","default":"./dist/setup.cjs"}},"./node/sync":{"import":{"types":"./dist/node/sync.d.ts","default":"./dist/node/sync.js"},"require":{"types":"./dist/node/sync.d.cts","default":"./dist/node/sync.cjs"}},"./node/cache":{"import":{"types":"./dist/node/cache.d.ts","default":"./dist/node/cache.js"},"require":{"types":"./dist/node/cache.d.cts","default":"./dist/node/cache.cjs"}},"./node/types":{"import":{"types":"./dist/node/types.d.ts","default":"./dist/node/types.js"},"require":{"types":"./dist/node/types.d.cts","default":"./dist/node/types.cjs"}},"./node/offline":{"import":{"types":"./dist/node/offline.d.ts","default":"./dist/node/offline.js"},"require":{"types":"./dist/node/offline.d.cts","default":"./dist/node/offline.cjs"}},"./adapters/isms":{"import":{"types":"./dist/adapters/isms.d.ts","default":"./dist/adapters/isms.js"},"require":{"types":"./dist/adapters/isms.d.cts","default":"./dist/adapters/isms.cjs"}},"./node/singleton":{"import":{"types":"./dist/node/singleton.d.ts","default":"./dist/node/singleton.js"},"require":{"types":"./dist/node/singleton.d.cts","default":"./dist/node/singleton.cjs"}},"./service-binding":{"import":{"types":"./dist/service-binding.d.ts","default":"./dist/service-binding.js"},"require":{"types":"./dist/service-binding.d.cts","default":"./dist/service-binding.cjs"}},"./middleware/astro":{"import":{"types":"./dist/middleware/astro.d.ts","default":"./dist/middleware/astro.js"},"require":{"types":"./dist/middleware/astro.d.cts","default":"./dist/middleware/astro.cjs"}},"./middleware/nextjs":{"import":{"types":"./dist/middleware/nextjs.d.ts","default":"./dist/middleware/nextjs.js"},"require":{"types":"./dist/middleware/nextjs.d.cts","default":"./dist/middleware/nextjs.cjs"}},"./middleware/express":{"import":{"types":"./dist/middleware/express.d.ts","default":"./dist/middleware/express.js"},"require":{"types":"./dist/middleware/express.d.cts","default":"./dist/middleware/express.cjs"}},"./node/prisma-adapter":{"import":{"types":"./dist/node/prisma-adapter.d.ts","default":"./dist/node/prisma-adapter.js"},"require":{"types":"./dist/node/prisma-adapter.d.cts","default":"./dist/node/prisma-adapter.cjs"}}},"gitHead":"db8da13c612df3b9cfd6fe59bb02538f6174db29","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"lalatendu","email":"year240@gmail.com"},"_npmVersion":"10.9.7","description":"TypeScript client SDK for the ClientsDemo License Server. Validate licenses, manage seats, renew, activate/deactivate machines, send heartbeats, and verify offline.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/license-client_3.2.0_1778095237540_0.8294998935413906","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@clientsdemo/license-client","version":"3.4.0","keywords":["license","license-server","license-validation","clientsdemo","ehs","ehr","ksdb","isms","partnerhub","shoprewards"],"author":{"name":"ClientsDemo"},"license":"MIT","_id":"@clientsdemo/license-client@3.4.0","maintainers":[{"name":"lalatendu","email":"year240@gmail.com"}],"bin":{"license-fingerprint":"dist/node/cli.js"},"dist":{"shasum":"ec3e1a448119ebbc10bad06201d401e3708f9d38","tarball":"https://registry.npmjs.org/@clientsdemo/license-client/-/license-client-3.4.0.tgz","fileCount":118,"integrity":"sha512-+yUj+1DM9WAio3Ah4oKNxgvWmDMslTbAmJfAaYO3i7RvNdGrbJqm++3yfgIF+2dRqtLIUpY9aw365VYzBu8u4w==","signatures":[{"sig":"MEQCIFWHbMqtiC2BYF4iO3QHRNABzLXG2QjbpQpHe1M/ooEdAiBKae2IBXeUhDxgZROgh7kkSl9q6Kme8Zjqg76KC/mE/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1178498},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./jwt":{"import":{"types":"./dist/jwt.d.ts","default":"./dist/jwt.js"},"require":{"types":"./dist/jwt.d.cts","default":"./dist/jwt.cjs"}},"./guard":{"import":{"types":"./dist/guard.d.ts","default":"./dist/guard.js"},"require":{"types":"./dist/guard.d.cts","default":"./dist/guard.cjs"}},"./setup":{"import":{"types":"./dist/setup.d.ts","default":"./dist/setup.js"},"require":{"types":"./dist/setup.d.cts","default":"./dist/setup.cjs"}},"./node/sync":{"import":{"types":"./dist/node/sync.d.ts","default":"./dist/node/sync.js"},"require":{"types":"./dist/node/sync.d.cts","default":"./dist/node/sync.cjs"}},"./node/cache":{"import":{"types":"./dist/node/cache.d.ts","default":"./dist/node/cache.js"},"require":{"types":"./dist/node/cache.d.cts","default":"./dist/node/cache.cjs"}},"./node/types":{"import":{"types":"./dist/node/types.d.ts","default":"./dist/node/types.js"},"require":{"types":"./dist/node/types.d.cts","default":"./dist/node/types.cjs"}},"./node/offline":{"import":{"types":"./dist/node/offline.d.ts","default":"./dist/node/offline.js"},"require":{"types":"./dist/node/offline.d.cts","default":"./dist/node/offline.cjs"}},"./adapters/isms":{"import":{"types":"./dist/adapters/isms.d.ts","default":"./dist/adapters/isms.js"},"require":{"types":"./dist/adapters/isms.d.cts","default":"./dist/adapters/isms.cjs"}},"./node/singleton":{"import":{"types":"./dist/node/singleton.d.ts","default":"./dist/node/singleton.js"},"require":{"types":"./dist/node/singleton.d.cts","default":"./dist/node/singleton.cjs"}},"./service-binding":{"import":{"types":"./dist/service-binding.d.ts","default":"./dist/service-binding.js"},"require":{"types":"./dist/service-binding.d.cts","default":"./dist/service-binding.cjs"}},"./middleware/astro":{"import":{"types":"./dist/middleware/astro.d.ts","default":"./dist/middleware/astro.js"},"require":{"types":"./dist/middleware/astro.d.cts","default":"./dist/middleware/astro.cjs"}},"./node/fingerprint":{"import":{"types":"./dist/node/fingerprint.d.ts","default":"./dist/node/fingerprint.js"},"require":{"types":"./dist/node/fingerprint.d.cts","default":"./dist/node/fingerprint.cjs"}},"./middleware/nextjs":{"import":{"types":"./dist/middleware/nextjs.d.ts","default":"./dist/middleware/nextjs.js"},"require":{"types":"./dist/middleware/nextjs.d.cts","default":"./dist/middleware/nextjs.cjs"}},"./middleware/express":{"import":{"types":"./dist/middleware/express.d.ts","default":"./dist/middleware/express.js"},"require":{"types":"./dist/middleware/express.d.cts","default":"./dist/middleware/express.cjs"}},"./node/license-token":{"import":{"types":"./dist/node/license-token.d.ts","default":"./dist/node/license-token.js"},"require":{"types":"./dist/node/license-token.d.cts","default":"./dist/node/license-token.cjs"}},"./node/prisma-adapter":{"import":{"types":"./dist/node/prisma-adapter.d.ts","default":"./dist/node/prisma-adapter.js"},"require":{"types":"./dist/node/prisma-adapter.d.cts","default":"./dist/node/prisma-adapter.cjs"}}},"gitHead":"b9be81491312df77447598511bb17418881ac024","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"lalatendu","email":"year240@gmail.com"},"_npmVersion":"10.9.7","description":"TypeScript client SDK for the ClientsDemo License Server. Validate licenses, manage seats, renew, activate/deactivate machines, send heartbeats, run a continuous enforcement watchdog, and verify offline.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/license-client_3.4.0_1782553661565_0.3628453211141931","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@clientsdemo/license-client","version":"3.5.0","keywords":["license","license-server","license-validation","clientsdemo","ehs","ehr","ksdb","isms","partnerhub","shoprewards"],"author":{"name":"ClientsDemo"},"license":"MIT","_id":"@clientsdemo/license-client@3.5.0","maintainers":[{"name":"lalatendu","email":"year240@gmail.com"}],"bin":{"license-fingerprint":"dist/node/cli.js"},"dist":{"shasum":"906d4bee11d2e2c42e70913999836817665670b2","tarball":"https://registry.npmjs.org/@clientsdemo/license-client/-/license-client-3.5.0.tgz","fileCount":118,"integrity":"sha512-DJhJ3NUth4pVL5ruOR9UUUPhc4Adnwsq/+lKBVeX5DZZoscGsp6opV8TWdaHGRr1JyBY3yzG0zbCX1nv/mWXtw==","signatures":[{"sig":"MEQCIEw9CFkfN/UDntHDGN+gV0e07euoXaH8u5BYxFxIvglLAiAZKizbtd0h+daEHwBn1UYFmDWaKAdgh+1u/o+qEr40Zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1210722},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./jwt":{"import":{"types":"./dist/jwt.d.ts","default":"./dist/jwt.js"},"require":{"types":"./dist/jwt.d.cts","default":"./dist/jwt.cjs"}},"./guard":{"import":{"types":"./dist/guard.d.ts","default":"./dist/guard.js"},"require":{"types":"./dist/guard.d.cts","default":"./dist/guard.cjs"}},"./setup":{"import":{"types":"./dist/setup.d.ts","default":"./dist/setup.js"},"require":{"types":"./dist/setup.d.cts","default":"./dist/setup.cjs"}},"./node/sync":{"import":{"types":"./dist/node/sync.d.ts","default":"./dist/node/sync.js"},"require":{"types":"./dist/node/sync.d.cts","default":"./dist/node/sync.cjs"}},"./node/cache":{"import":{"types":"./dist/node/cache.d.ts","default":"./dist/node/cache.js"},"require":{"types":"./dist/node/cache.d.cts","default":"./dist/node/cache.cjs"}},"./node/types":{"import":{"types":"./dist/node/types.d.ts","default":"./dist/node/types.js"},"require":{"types":"./dist/node/types.d.cts","default":"./dist/node/types.cjs"}},"./node/offline":{"import":{"types":"./dist/node/offline.d.ts","default":"./dist/node/offline.js"},"require":{"types":"./dist/node/offline.d.cts","default":"./dist/node/offline.cjs"}},"./adapters/isms":{"import":{"types":"./dist/adapters/isms.d.ts","default":"./dist/adapters/isms.js"},"require":{"types":"./dist/adapters/isms.d.cts","default":"./dist/adapters/isms.cjs"}},"./node/singleton":{"import":{"types":"./dist/node/singleton.d.ts","default":"./dist/node/singleton.js"},"require":{"types":"./dist/node/singleton.d.cts","default":"./dist/node/singleton.cjs"}},"./service-binding":{"import":{"types":"./dist/service-binding.d.ts","default":"./dist/service-binding.js"},"require":{"types":"./dist/service-binding.d.cts","default":"./dist/service-binding.cjs"}},"./middleware/astro":{"import":{"types":"./dist/middleware/astro.d.ts","default":"./dist/middleware/astro.js"},"require":{"types":"./dist/middleware/astro.d.cts","default":"./dist/middleware/astro.cjs"}},"./node/fingerprint":{"import":{"types":"./dist/node/fingerprint.d.ts","default":"./dist/node/fingerprint.js"},"require":{"types":"./dist/node/fingerprint.d.cts","default":"./dist/node/fingerprint.cjs"}},"./middleware/nextjs":{"import":{"types":"./dist/middleware/nextjs.d.ts","default":"./dist/middleware/nextjs.js"},"require":{"types":"./dist/middleware/nextjs.d.cts","default":"./dist/middleware/nextjs.cjs"}},"./middleware/express":{"import":{"types":"./dist/middleware/express.d.ts","default":"./dist/middleware/express.js"},"require":{"types":"./dist/middleware/express.d.cts","default":"./dist/middleware/express.cjs"}},"./node/license-token":{"import":{"types":"./dist/node/license-token.d.ts","default":"./dist/node/license-token.js"},"require":{"types":"./dist/node/license-token.d.cts","default":"./dist/node/license-token.cjs"}},"./node/prisma-adapter":{"import":{"types":"./dist/node/prisma-adapter.d.ts","default":"./dist/node/prisma-adapter.js"},"require":{"types":"./dist/node/prisma-adapter.d.cts","default":"./dist/node/prisma-adapter.cjs"}}},"gitHead":"c12bbe978612d302497c81ee3df53643594526bb","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"lalatendu","email":"year240@gmail.com"},"_npmVersion":"10.9.7","description":"TypeScript client SDK for the ClientsDemo License Server. Validate licenses, manage seats, renew, activate/deactivate machines, send heartbeats, run a continuous enforcement watchdog, and verify offline.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/license-client_3.5.0_1782763883307_0.1886826812945821","host":"s3://npm-registry-packages-npm-production"}},"3.5.1":{"name":"@clientsdemo/license-client","version":"3.5.1","keywords":["license","license-server","license-validation","clientsdemo","ehs","ehr","ksdb","isms","partnerhub","shoprewards"],"author":{"name":"ClientsDemo"},"license":"MIT","_id":"@clientsdemo/license-client@3.5.1","maintainers":[{"name":"lalatendu","email":"year240@gmail.com"}],"bin":{"license-fingerprint":"dist/node/cli.js"},"dist":{"shasum":"100b58da58f990551ebb829353a4ea03f7b686b5","tarball":"https://registry.npmjs.org/@clientsdemo/license-client/-/license-client-3.5.1.tgz","fileCount":118,"integrity":"sha512-Y7JgFr9894l2OX1oBgBtw5BvQrm1vnEL+c1j/ajZM7JAIRB0xeaKchYJrPX3f8Ftc66R8Pgg6FTD3HFTcNE+TQ==","signatures":[{"sig":"MEUCIQC6NWp/nQ35PQJ7cJgvZr696Q3/Cd8bezOE/47VDKw+GwIgIbYI8w/vtHiWpI27mTdgwHvoN1JDO9rDEWi2xQYtR0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1211404},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./jwt":{"import":{"types":"./dist/jwt.d.ts","default":"./dist/jwt.js"},"require":{"types":"./dist/jwt.d.cts","default":"./dist/jwt.cjs"}},"./guard":{"import":{"types":"./dist/guard.d.ts","default":"./dist/guard.js"},"require":{"types":"./dist/guard.d.cts","default":"./dist/guard.cjs"}},"./setup":{"import":{"types":"./dist/setup.d.ts","default":"./dist/setup.js"},"require":{"types":"./dist/setup.d.cts","default":"./dist/setup.cjs"}},"./node/sync":{"import":{"types":"./dist/node/sync.d.ts","default":"./dist/node/sync.js"},"require":{"types":"./dist/node/sync.d.cts","default":"./dist/node/sync.cjs"}},"./node/cache":{"import":{"types":"./dist/node/cache.d.ts","default":"./dist/node/cache.js"},"require":{"types":"./dist/node/cache.d.cts","default":"./dist/node/cache.cjs"}},"./node/types":{"import":{"types":"./dist/node/types.d.ts","default":"./dist/node/types.js"},"require":{"types":"./dist/node/types.d.cts","default":"./dist/node/types.cjs"}},"./node/offline":{"import":{"types":"./dist/node/offline.d.ts","default":"./dist/node/offline.js"},"require":{"types":"./dist/node/offline.d.cts","default":"./dist/node/offline.cjs"}},"./adapters/isms":{"import":{"types":"./dist/adapters/isms.d.ts","default":"./dist/adapters/isms.js"},"require":{"types":"./dist/adapters/isms.d.cts","default":"./dist/adapters/isms.cjs"}},"./node/singleton":{"import":{"types":"./dist/node/singleton.d.ts","default":"./dist/node/singleton.js"},"require":{"types":"./dist/node/singleton.d.cts","default":"./dist/node/singleton.cjs"}},"./service-binding":{"import":{"types":"./dist/service-binding.d.ts","default":"./dist/service-binding.js"},"require":{"types":"./dist/service-binding.d.cts","default":"./dist/service-binding.cjs"}},"./middleware/astro":{"import":{"types":"./dist/middleware/astro.d.ts","default":"./dist/middleware/astro.js"},"require":{"types":"./dist/middleware/astro.d.cts","default":"./dist/middleware/astro.cjs"}},"./node/fingerprint":{"import":{"types":"./dist/node/fingerprint.d.ts","default":"./dist/node/fingerprint.js"},"require":{"types":"./dist/node/fingerprint.d.cts","default":"./dist/node/fingerprint.cjs"}},"./middleware/nextjs":{"import":{"types":"./dist/middleware/nextjs.d.ts","default":"./dist/middleware/nextjs.js"},"require":{"types":"./dist/middleware/nextjs.d.cts","default":"./dist/middleware/nextjs.cjs"}},"./middleware/express":{"import":{"types":"./dist/middleware/express.d.ts","default":"./dist/middleware/express.js"},"require":{"types":"./dist/middleware/express.d.cts","default":"./dist/middleware/express.cjs"}},"./node/license-token":{"import":{"types":"./dist/node/license-token.d.ts","default":"./dist/node/license-token.js"},"require":{"types":"./dist/node/license-token.d.cts","default":"./dist/node/license-token.cjs"}},"./node/prisma-adapter":{"import":{"types":"./dist/node/prisma-adapter.d.ts","default":"./dist/node/prisma-adapter.js"},"require":{"types":"./dist/node/prisma-adapter.d.cts","default":"./dist/node/prisma-adapter.cjs"}}},"gitHead":"58b818ae26e99f97f28ee9c073c8050990407ef4","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"lalatendu","email":"year240@gmail.com"},"_npmVersion":"10.9.7","description":"TypeScript client SDK for the ClientsDemo License Server. Validate licenses, manage seats, renew, activate/deactivate machines, send heartbeats, run a continuous enforcement watchdog, and verify offline.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/license-client_3.5.1_1784800872724_0.407872164523462","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-04-16T18:28:20.199Z","modified":"2026-09-08T16:48:54.378Z","2.0.0":"2026-04-16T18:28:20.481Z","3.0.0":"2026-04-17T13:01:27.643Z","3.1.0":"2026-04-18T18:18:57.436Z","3.2.0":"2026-05-06T19:20:37.711Z","3.4.0":"2026-06-27T09:47:41.743Z","3.5.0":"2026-06-29T20:11:23.549Z","3.5.1":"2026-07-23T10:01:12.876Z"},"author":{"name":"ClientsDemo"},"license":"MIT","keywords":["license","license-server","license-validation","clientsdemo","ehs","ehr","ksdb","isms","partnerhub","shoprewards"],"description":"TypeScript client SDK for the ClientsDemo License Server. Validate licenses, manage seats, renew, activate/deactivate machines, send heartbeats, run a continuous enforcement watchdog, and verify offline.","maintainers":[{"email":"bbqtrimtime@gmail.com","name":"license.clientsdemo"}],"readme":"# @clientsdemo/license-client\n\nTypeScript client SDK for the ClientsDemo License Server. Validate licenses, activate/deactivate machines, send heartbeats, manage subscriptions, and verify offline with Ed25519 signatures.\n\n## Installation\n\n```bash\nnpm install @clientsdemo/license-client\n# or\npnpm add @clientsdemo/license-client\n```\n\n## Quick Start\n\n```ts\nimport { LicenseClient } from \"@clientsdemo/license-client\";\n\nconst client = new LicenseClient({\n  serverUrl: \"https://license.clientsdemo.site\",\n  apiKey: \"lsk_...\",\n  appId: \"ehs\",\n});\n\n// Validate a license\nconst result = await client.validate(\"XXXX-XXXX-XXXX-XXXX-XXXX\");\nif (result.valid) {\n  console.log(\"Features:\", result.license?.features);\n}\n\n// Activate on this machine\nconst machineId = await LicenseClient.generateMachineId();\nawait client.activate(\"XXXX-XXXX-XXXX-XXXX-XXXX\", machineId, {\n  machineName: \"prod-server-01\",\n  appVersion: \"2.1.0\",\n});\n\n// Start auto-heartbeat (every hour)\nconst stopHeartbeat = client.startHeartbeat(\"XXXX-XXXX-XXXX-XXXX-XXXX\", machineId);\n// Later: stopHeartbeat();\n```\n\n## Middleware Guard\n\nUse the guard for automatic license checking in your middleware:\n\n```ts\nimport { createLicenseGuard } from \"@clientsdemo/license-client\";\n\nconst guard = createLicenseGuard({\n  serverUrl: \"https://license.clientsdemo.site\",\n  apiKey: \"lsk_...\",\n  appId: \"ehs\",\n  licenseKey: \"XXXX-XXXX-XXXX-XXXX-XXXX\",\n});\n\n// Check feature access\nif (guard.hasFeature(\"audits\")) {\n  // Enable audit module\n}\n\n// Request-scoped guard (Cloudflare Workers — isolated cache per request)\nconst scopedGuard = guard.forRequest();\n```\n\n## Service Binding (Worker-to-Worker)\n\nFor zero-latency validation between Cloudflare Workers:\n\n```ts\nimport { ServiceBindingClient } from \"@clientsdemo/license-client/service-binding\";\n\nconst client = new ServiceBindingClient(env.LICENSE_SERVER);\nconst result = await client.validate(\"XXXX-XXXX-XXXX-XXXX-XXXX\", \"ehs\");\n```\n\n## Public Activation (No API Key)\n\nFor customer-facing activation flows:\n\n```ts\nimport { activateSetupLicense } from \"@clientsdemo/license-client\";\n\nconst result = await activateSetupLicense({\n  serverUrl: \"https://license.clientsdemo.site\",\n  licenseKey: \"XXXX-XXXX-XXXX-XXXX-XXXX\",\n  orgName: \"Acme Corp\",\n  email: \"admin@acme.com\",\n});\n```\n\n## Offline Verification\n\n```ts\nimport { LicenseClient, verifyOffline } from \"@clientsdemo/license-client\";\n\n// Download and cache the license file\nconst licenseFile = await client.downloadLicenseFile(\"XXXX-XXXX-XXXX-XXXX-XXXX\");\n// Store licenseFile in localStorage, a file, etc.\n\n// Later, verify offline (no network needed)\nconst result = await verifyOffline(licenseFile);\nif (result.valid) {\n  console.log(\"License valid offline\");\n}\n\n// Or use validateWithFallback for automatic offline fallback\nconst result2 = await client.validateWithFallback(\n  \"XXXX-XXXX-XXXX-XXXX-XXXX\",\n  cachedLicenseFile,\n  machineId,\n);\n```\n\n## Billing Methods\n\n```ts\n// Get pricing plans for an app\nconst pricing = await client.getPricing();\n\n// Create a checkout session\nconst { checkoutUrl } = await client.createCheckout({\n  planTier: \"professional\",\n  billingPeriod: \"yearly\",\n  email: \"customer@example.com\",\n  orgName: \"Acme Corp\",\n});\n\n// Get subscription status\nconst sub = await client.getSubscription(\"XXXX-XXXX-XXXX-XXXX-XXXX\");\n\n// Get invoices\nconst invoices = await client.getInvoices(\"XXXX-XXXX-XXXX-XXXX-XXXX\");\n\n// Get billing portal URL\nconst { portalUrl } = await client.getBillingPortalUrl(customerId);\n```\n\n## Configuration\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `serverUrl` | `string` | required | Base URL of the license server |\n| `apiKey` | `string` | required | API key for authentication |\n| `appId` | `string` | required | Application identifier |\n| `timeout` | `number` | `10000` | Request timeout in ms |\n| `maxRetries` | `number` | `3` | Max retry attempts for failed requests |\n| `retryBaseDelay` | `number` | `1000` | Base delay in ms for exponential backoff |\n\n### Supported App IDs\n\n`ehs`, `ehr`, `ksdb`, `isms`, `partnerhub`, `shoprewards`, `safearena`, `bustracker`, `gstfiling`\n\n## API Reference\n\n### `client.validate(licenseKey, machineId?)`\nValidate a license key. Returns `{ valid, reason?, license? }`.\n\n### `client.activate(licenseKey, machineId, options?)`\nActivate a license on a machine. Returns `{ success, reason?, activationId? }`.\n\n### `client.activatePublic(params)`\nActivate without API key (rate limited). Returns `{ success, reason?, activationId? }`.\n\n### `client.deactivate(licenseKey, machineId)`\nDeactivate a license from a machine. Returns `{ success, reason? }`.\n\n### `client.heartbeat(licenseKey, machineId)`\nSend a heartbeat for an active license. Returns `{ success, reason? }`.\n\n### `client.status(licenseKey)`\nGet full license status including activations.\n\n### `client.downloadLicenseFile(licenseKey)`\nDownload a signed offline license file.\n\n### `client.startHeartbeat(licenseKey, machineId, intervalMs?)`\nStart automatic heartbeat. Returns a stop function.\n\n### `client.validateWithFallback(licenseKey, cachedFile, machineId?)`\nValidate with automatic offline fallback.\n\n### `client.getPricing()`\nGet pricing plans for the configured app.\n\n### `client.createCheckout(params)`\nCreate a Stripe checkout session.\n\n### `client.getSubscription(licenseKey)`\nGet subscription status for a license.\n\n### `client.getInvoices(licenseKey)`\nGet invoice history for a license.\n\n### `client.getBillingPortalUrl(customerId)`\nGet Stripe billing portal URL.\n\n### `LicenseClient.generateMachineId()` (static)\nGenerate a machine ID from hostname/OS info (Node.js).\n\n### `LicenseClient.generateBrowserMachineId()` (static)\nGenerate a machine ID from browser navigator data.\n\n### `verifyOffline(licenseFile)`\nVerify a license file offline using Ed25519 Web Crypto API.\n\n### `createLicenseGuard(config)`\nCreate a middleware guard for automatic license validation with caching.\n\n### `guard.forRequest()`\nCreate a request-scoped guard (Cloudflare Workers safety).\n\n## Security & Socket.dev Score\n\n> [!NOTE]\n> **Why is the Supply Chain Security score 79 on Socket.dev?**\n>\n> There is no actual vulnerability or malicious code in the package causing this score. The score of 79 simply reflects the fact that this package requires a high level of system privilege (Network, File System, OS Info, and Executables) to accomplish its intended job as a license enforcement client.\n>\n> Specifically, the package:\n> - Contains a `bin` executable (`license-fingerprint`)\n> - Reads from the File System for offline caching (`node:fs`)\n> - Accesses Environment/OS info for hardware fingerprinting (`node:os`)\n> - Makes Network requests to the license server\n\n## License\n\nMIT\n","readmeFilename":"README.md"}