{"_id":"strong-license","_rev":"254-c0588d2269eb4a94e82013d49b55d98a","name":"strong-license","dist-tags":{"latest":"1.2.3"},"versions":{"1.0.0":{"name":"strong-license","version":"1.0.0","author":{"name":"Ryan Graham","email":"ryan@strongloop.com"},"license":"MIT","_id":"strong-license@1.0.0","maintainers":[{"name":"rmg","email":"r.m.graham@gmail.com"}],"homepage":"https://github.com/strongloop/strong-license","bugs":{"url":"https://github.com/strongloop/strong-license/issues"},"dist":{"shasum":"fed78c532d00679c15503ba33b2303bc8eadec31","tarball":"https://registry.npmjs.org/strong-license/-/strong-license-1.0.0.tgz","integrity":"sha512-pQ/ERa7gVuyol+58UVbxCwJGYySyLW+zj65XklhJ0JapEcXbE8KN6ZpOW0diQ11ZaqEut2BbqcXlb26kZpKbOw==","signatures":[{"sig":"MEYCIQC417gQxvF1Mvn9JTke4Bn0CNv19kC+y20z0zOs8UEKNwIhALnPlYcxsOxBAKiwUaNHRGxwkLH6DfNofJSmfrJ3qD8E","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"fed78c532d00679c15503ba33b2303bc8eadec31","gitHead":"4a22fd7a74e99fbbc99fa4fb50b94cff81ddb830","scripts":{"test":"node test.js --tap"},"_npmUser":{"name":"rmg","email":"r.m.graham@gmail.com"},"repository":{"url":"https://github.com/strongloop/strong-license.git","type":"git"},"_npmVersion":"1.4.21","description":"Simple license generator/validator using JWT.","directories":{},"dependencies":{"jwt-simple":"^0.2.0"},"devDependencies":{"tapsert":"0.0.1"}},"1.0.1":{"name":"strong-license","version":"1.0.1","author":{"name":"Ryan Graham","email":"ryan@strongloop.com"},"license":"MIT","_id":"strong-license@1.0.1","maintainers":[{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"strongloop","email":"callback@strongloop.com"},{"name":"octet","email":"sam@strongloop.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"kraman","email":"kraman@strongloop.com"}],"homepage":"https://github.com/strongloop/strong-license","bugs":{"url":"https://github.com/strongloop/strong-license/issues"},"dist":{"shasum":"25ff222715de15cc0c02fa882f79780340b1975a","tarball":"https://registry.npmjs.org/strong-license/-/strong-license-1.0.1.tgz","integrity":"sha512-P7be2lRxRa8BlhP2u+cxOvZr2GPlisR7mfhD5qtzzSD+f7x3BXfGgkEbMAHLlDT3GyKqBGX2RKJMfHgFq4m9yQ==","signatures":[{"sig":"MEYCIQDeQmbGNO/0E02wV/tIFui66/E4GIXGFLTo18G7FD1WKQIhAK5V3KMGHTux5I4bOOR6OWYahtGAOyHbYFMTfup3st4z","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"25ff222715de15cc0c02fa882f79780340b1975a","gitHead":"f0559b051a8ff2d3f33db6d13e2152af1423e82d","scripts":{"test":"node test.js --tap"},"_npmUser":{"name":"octet","email":"sam@strongloop.com"},"repository":{"url":"https://github.com/strongloop/strong-license.git","type":"git"},"_npmVersion":"1.4.28","description":"Simple license generator/validator using JWT.","directories":{},"dependencies":{"jwt-simple":"^0.2.0"},"devDependencies":{"tapsert":"0.0.1"}},"1.0.2":{"name":"strong-license","version":"1.0.2","author":{"name":"Ryan Graham","email":"ryan@strongloop.com"},"license":"MIT","_id":"strong-license@1.0.2","maintainers":[{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"strongloop","email":"callback@strongloop.com"},{"name":"octet","email":"sam@strongloop.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"kraman","email":"kraman@strongloop.com"}],"homepage":"https://github.com/strongloop/strong-license","bugs":{"url":"https://github.com/strongloop/strong-license/issues"},"dist":{"shasum":"6aeb3fc93fc00db6281f0fd79d19eea81b6be7d2","tarball":"https://registry.npmjs.org/strong-license/-/strong-license-1.0.2.tgz","integrity":"sha512-uCEQMe/8uJbbVGPtbcOwU+jKaq/ShACJToIEh2OmJZtGSs0hfeOkCoqbbtp5A16BDYWdK4a+5JFGUa9+NxnzOw==","signatures":[{"sig":"MEUCIQDFYu/nqfVPvCuGOw/F9+VEQWJBdZUzcLyXVw3PPetT8QIgTE6FbGkU7CP5eeN9j3I9BUObZXcz05vL19RNmnmvS/s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"6aeb3fc93fc00db6281f0fd79d19eea81b6be7d2","gitHead":"7955af2ece79f082ead4ee73071f2e2bbac46faf","scripts":{"test":"node test.js --tap"},"_npmUser":{"name":"octet","email":"sam@strongloop.com"},"repository":{"url":"https://github.com/strongloop/strong-license.git","type":"git"},"_npmVersion":"1.4.28","description":"Simple license generator/validator using JWT.","directories":{},"dependencies":{"jwt-simple":"^0.2.0"},"devDependencies":{"tapsert":"0.0.1"}},"1.1.0":{"name":"strong-license","version":"1.1.0","author":{"name":"Ryan Graham","email":"ryan@strongloop.com"},"license":"MIT","_id":"strong-license@1.1.0","maintainers":[{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"strongloop","email":"callback@strongloop.com"},{"name":"octet","email":"sam@strongloop.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"kraman","email":"kraman@strongloop.com"}],"homepage":"https://github.com/strongloop/strong-license","bugs":{"url":"https://github.com/strongloop/strong-license/issues"},"dist":{"shasum":"23758bbd73cb15acda7727ba44369288d7e1f3fc","tarball":"https://registry.npmjs.org/strong-license/-/strong-license-1.1.0.tgz","integrity":"sha512-echKYzuS+hT1zlPeWvMVeDCSCnr++87Bw3VzZb5z60UD0a81cdlGAkiWMbCabG6OxvqIXo4cNynoEurtyGjolw==","signatures":[{"sig":"MEYCIQCEGqstVV766MqoU22EYg+9wWsKe52rsFll6C/6xHSjcgIhAIfljfRnUxsoCjgrtCvcS7DyoAjjxZGTpLbVA1SDDP9r","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"23758bbd73cb15acda7727ba44369288d7e1f3fc","gitHead":"f91113f4b47a1a143f530af9e301c74219269c0a","scripts":{"test":"tap test/test-*"},"_npmUser":{"name":"rmg","email":"r.m.graham@gmail.com"},"repository":{"url":"git+https://github.com/strongloop/strong-license.git","type":"git"},"_npmVersion":"2.8.3","description":"Simple license generator/validator using JWT.","directories":{},"_nodeVersion":"0.10.38","dependencies":{"jwt-simple":"^0.2.0"},"devDependencies":{"tap":"^1.0.2"}},"1.2.0":{"name":"strong-license","version":"1.2.0","author":{"name":"Ryan Graham","email":"ryan@strongloop.com"},"license":"MIT","_id":"strong-license@1.2.0","maintainers":[{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"strongloop","email":"callback@strongloop.com"},{"name":"octet","email":"sam@strongloop.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"kraman","email":"kraman@strongloop.com"}],"homepage":"https://github.com/strongloop/strong-license","bugs":{"url":"https://github.com/strongloop/strong-license/issues"},"dist":{"shasum":"e049c23927d86a374048ad68d323cd69074f1cea","tarball":"https://registry.npmjs.org/strong-license/-/strong-license-1.2.0.tgz","integrity":"sha512-MW2LgPeUbOF2tWgxrnjKI5ipEyCca9rTyuCaKvn4Vv/2BnqZ9sRrRlfmXYWUBFnORcoIgSd/C5mfK3brDQ8DHA==","signatures":[{"sig":"MEUCICnnEEAi/p3TBgY9Efyx2UnU6CyszXpZ7YhDU10AuzRBAiEAvdQMou1HkybS5Jwu3umdgSHMExNvtxH2hPmDsf5YF/A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"e049c23927d86a374048ad68d323cd69074f1cea","gitHead":"3ab7d5be20a5c5e710d391c2ddc40f5af1c97192","scripts":{"test":"tap --bail --save=fail.tests --coverage --coverage-report=cobertura test/test-*"},"_npmUser":{"name":"rmg","email":"r.m.graham@gmail.com"},"repository":{"url":"git+https://github.com/strongloop/strong-license.git","type":"git"},"_npmVersion":"2.11.1","description":"Simple license generator/validator using JWT.","directories":{},"_nodeVersion":"2.2.1","dependencies":{"jwt-simple":"^0.2.0"},"devDependencies":{"tap":"^1.2.0"}},"1.2.1":{"name":"strong-license","version":"1.2.1","author":{"name":"Ryan Graham","email":"ryan@strongloop.com"},"license":"MIT","_id":"strong-license@1.2.1","maintainers":[{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"strongloop","email":"callback@strongloop.com"},{"name":"octet","email":"sam@strongloop.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"kraman","email":"kraman@strongloop.com"}],"homepage":"https://github.com/strongloop/strong-license","bugs":{"url":"https://github.com/strongloop/strong-license/issues"},"dist":{"shasum":"ee855ecaf227619ae59f7b7b11fda0804b55e2db","tarball":"https://registry.npmjs.org/strong-license/-/strong-license-1.2.1.tgz","integrity":"sha512-jFHvvZ+em/XhcKf5+gew9d/Vqiaga4/qavuqF0LBvEC7WdlZZ2y2lqzbXw/ghSoAa71S6275Z9BlOzv9fQcD7w==","signatures":[{"sig":"MEQCIGTaJIf8umeM3WfKyGhyCpahFk3ThnbGK97x2P9p29nsAiAVrbNlW7u9KDtsjkrrbAu3+Ytcz9/nKJRHywj5pz8jtw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"ee855ecaf227619ae59f7b7b11fda0804b55e2db","gitHead":"50068a1df74ddb5bb9921c3d615179ced70db3a2","scripts":{"test":"tap --bail --save=fail.tests --coverage --coverage-report=cobertura test/test-*"},"_npmUser":{"name":"octet","email":"sam@strongloop.com"},"repository":{"url":"git+https://github.com/strongloop/strong-license.git","type":"git"},"_npmVersion":"2.13.3","description":"Simple license generator/validator using JWT.","directories":{},"_nodeVersion":"3.0.0","dependencies":{"jwt-simple":"^0.2.0"},"devDependencies":{"tap":"^1.2.0"}},"1.2.2":{"name":"strong-license","version":"1.2.2","author":{"name":"Ryan Graham","email":"ryan@strongloop.com"},"license":"MIT","_id":"strong-license@1.2.2","maintainers":[{"name":"bajtos","email":"mbajtoss@gmail.com"},{"name":"chandadharap","email":"chanda_dharap@yahoo.com"},{"name":"ibmcloud-admin","email":"rmg@ca.ibm.com"},{"name":"kraman","email":"kraman@strongloop.com"},{"name":"octet","email":"sam@strongloop.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"strongloop","email":"strngops@us.ibm.com"}],"homepage":"https://github.com/strongloop/strong-license","bugs":{"url":"https://github.com/strongloop/strong-license/issues"},"dist":{"shasum":"dfaaeb38f493b4d1a26ffa91937fa43809d13737","tarball":"https://registry.npmjs.org/strong-license/-/strong-license-1.2.2.tgz","integrity":"sha512-xoGLwrDo2T/6v/ElMQhIWjcSbkGuCxsMixkAEeG0k01Gi/CgID7hXo5qWbqlCqRMkTTFCoh42PWd7Yg46l5jzw==","signatures":[{"sig":"MEQCIAbhzY3ctXNQiXyTv+vojRtbDronVK1xksjGCM78dK8RAiBTJLPMC9gnkXJbYLxDsUQt0lohbm43XNG2iv/pZ4TVTQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"dfaaeb38f493b4d1a26ffa91937fa43809d13737","gitHead":"043cb08c028a318c4607b1c3a9972eed7b0e8a7f","scripts":{"test":"tap --bail --save=fail.tests --coverage --coverage-report=cobertura test/test-*"},"_npmUser":{"name":"octet","email":"sam@strongloop.com"},"repository":{"url":"git+https://github.com/strongloop/strong-license.git","type":"git"},"_npmVersion":"2.14.7","description":"Simple license generator/validator using JWT.","directories":{},"_nodeVersion":"4.2.1","dependencies":{"jwt-simple":"^0.2.0"},"devDependencies":{"tap":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/strong-license-1.2.2.tgz_1460412238127_0.9915842509362847","host":"packages-12-west.internal.npmjs.com"}},"1.2.3":{"name":"strong-license","version":"1.2.3","author":{"name":"Ryan Graham","email":"ryan@strongloop.com"},"license":"MIT","_id":"strong-license@1.2.3","maintainers":[{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"strongloop","email":"strngops@us.ibm.com"},{"name":"octet","email":"vieuxtech@gmail.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"kraman","email":"kraman@gmail.com"},{"name":"kjdelisle","email":"kjdelisle@gmail.com"},{"name":"tonyf-ibm","email":"tffrench@us.ibm.com"},{"name":"thegman","email":"gpandya@live.com"},{"name":"qpresley","email":"qpresley@ca.ibm.com"},{"name":"loay","email":"gewily@ca.ibm.com"},{"name":"jannyhou2016","email":"juehou@ca.ibm.com"},{"name":"hacksparrow","email":"captain@hacksparrow.com"},{"name":"davidcheung","email":"davidcheung@live.ca"},{"name":"b-admike","email":"binadmt@hotmail.com"},{"name":"amir-61","email":"amirali.jfr61@gmail.com"},{"name":"0candy","email":"ngcandy@ca.ibm.com"},{"name":"superkhau","email":"superkhau@gmail.com"},{"name":"setogit","email":"setogit@gmail.com"},{"name":"bajtos","email":"mbajtoss@gmail.com"},{"name":"ibmcloud-admin","email":"rmg@ca.ibm.com"},{"name":"ritch","email":"skawful@gmail.com"}],"homepage":"https://github.com/strongloop/strong-license","bugs":{"url":"https://github.com/strongloop/strong-license/issues"},"dist":{"shasum":"97073cf2a028a40ae841e5bdaed8616d8bc27a96","tarball":"https://registry.npmjs.org/strong-license/-/strong-license-1.2.3.tgz","integrity":"sha512-gbkhiGzziAM2lj5k9XroYNdF0VGofBzplHksQ7u7BSZYhicKuJR8TODldGzChibfDOdLu0hUz7UwIy6kx+Ytfw==","signatures":[{"sig":"MEUCIH1UkrZ+dKZPbADNY983aj/Gzv/9pnuYrtw67TmIZztpAiEA+BoedHGMihWnhKOgxRs6KTsySBYoCV5VCXDbds1jV3M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","gitHead":"9c760af55eac70d7f47cda1042f2770dedc31a5b","scripts":{"test":"tap --bail --save=fail.tests --coverage --coverage-report=cobertura test/test-*"},"_npmUser":{"name":"octet","email":"vieuxtech@gmail.com"},"repository":{"url":"git+https://github.com/strongloop/strong-license.git","type":"git"},"_npmVersion":"5.3.0","description":"Simple license generator/validator using JWT.","directories":{},"_nodeVersion":"8.2.1","dependencies":{"jwt-simple":"^0.5.1"},"devDependencies":{"tap":"^8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/strong-license-1.2.3.tgz_1501560293064_0.34034914150834084","host":"s3://npm-registry-packages"}}},"time":{"created":"2014-08-25T20:19:46.707Z","modified":"2026-04-14T15:10:46.838Z","1.0.0":"2014-08-25T20:19:46.707Z","1.0.1":"2014-11-15T00:41:14.209Z","1.0.2":"2015-01-13T04:05:11.455Z","1.1.0":"2015-05-13T16:10:33.344Z","1.2.0":"2015-06-08T18:22:32.708Z","1.2.1":"2015-10-01T16:46:18.693Z","1.2.2":"2016-04-11T22:03:58.604Z","1.2.3":"2017-08-01T04:04:53.736Z"},"bugs":{"url":"https://github.com/strongloop/strong-license/issues"},"author":{"name":"Ryan Graham","email":"ryan@strongloop.com"},"license":"MIT","homepage":"https://github.com/strongloop/strong-license","repository":{"url":"git+https://github.com/strongloop/strong-license.git","type":"git"},"description":"Simple license generator/validator using JWT.","maintainers":[{"email":"r.m.graham@gmail.com","name":"rmg"},{"email":"oss@bajtos.net","name":"bajtos"},{"email":"skawful@gmail.com","name":"ritch"},{"email":"captain@hacksparrow.com","name":"hacksparrow"},{"email":"enjoyjava@gmail.com","name":"rfeng"},{"email":"superkhau@gmail.com","name":"superkhau"},{"email":"kraman@gmail.com","name":"kraman"},{"email":"gpandya@live.com","name":"thegman"},{"email":"davidcheung@live.ca","name":"davidcheung"},{"email":"tffrench@us.ibm.com","name":"tonyf-ibm"},{"email":"ngcandy@ca.ibm.com","name":"0candy"},{"email":"qpresley@ca.ibm.com","name":"qpresley"},{"email":"kjdelisle@gmail.com","name":"kjdelisle"},{"email":"amirali.jfr61@gmail.com","name":"amir-61"},{"email":"juehou@ca.ibm.com","name":"jannyhou2016"},{"email":"binadmt@hotmail.com","name":"b-admike"}],"readme":"strong-license\n==============\n\nSimple license generator/validator using JWT with the pre-defined claim names\n(fields) and validation semantics.\n\n * `product` - a string identifying the product the license applies to\n * `features` - an array of strings identifying features of the product\n * `activationDate` - a Date indicating when the license period starts\n * `expirationDate` - a Date indicating when the license period ends\n * `email` - a string identifing who the license is for (primarily used for\n   logging and identification for support purposes)\n\nBoth the `product` and `features` fields support `*` as a wildcard to indicate\nthat all products or features are covered by the license. When the product\nfield is a wildcard, any product check matches but it does not imply that all\nfeatures are covered. When the features list contains a wildcard as one of its\nentries, any feature check matches.\n\n## Usage\n\nThe strong-license module defines the License class, which can be used for\ngenerating, parsing, and validating a license key.\n\n### Generating a License Key\n\n```js\nvar License = require('strong-license').License;\nvar details = {\n  email: 'user@example.com',\n  product: 'enterprise-node',\n  features: ['foo', 'bar', 'baz'],\n  activationDate: new Date(),\n  expirationDate: new Date(Date.now() + 1000*60*60*24*365),\n};\nvar lic = new License(details, 'super secret key!');\n\nprocess.env.LICENSE_KEY = lic.key;\n```\n\nIt is also possible to generate a null license, which does not cover any\nproducts or features and is perpetually expired. It does, however, cover the\nnull query scenario.\n\n```js\nvar License = require('strong-license').License;\nvar nullLicense = new License();\n\nnullLicense.covers(); // => true! Can't do anything, but can do nothing!\n```\n\n### Parsing/Validating a License Key\n\nIf a license coverage query omits a field, that field is considered a match.\n\n```js\nvar License = require('strong-license').License;\nvar now = new Date();\nvar yesterday = new Date(Date.now() - 1000*60*60*24);\nvar lic = new License(process.env.LICENSE_KEY, 'super secret key!');\n\nlic.covers('enterprise-node', 'foo', now); // => true\nlic.covers('myProduct', 'featurex', now); // => false\n```\n\nIf a parameter is omitted, is considered a match.\n\n```js\nlic.covers('enterprise-node', 'bar', null); // => true\nlic.covers('enterprise-node', null, now); // => true\nlic.cocers(null, 'baz', yesterday); // => false\nlic.covers(); // => true! any license covers \"nothing\"\n```\n","readmeFilename":"README.md","users":{"raiscui":true}}