{"_id":"@arlioz/flagship","_rev":"11-597f711b2772546e5084146379561837","name":"@arlioz/flagship","dist-tags":{"latest":"3.7.1"},"versions":{"1.1.1":{"name":"@arlioz/flagship","version":"1.1.1","keywords":["feature-flags","feature-toggle","flagship","sdk","ab-testing"],"license":"MIT","_id":"@arlioz/flagship@1.1.1","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"6cabe7f99aea43d7892b357771c7bae35d46647d","tarball":"https://registry.npmjs.org/@arlioz/flagship/-/flagship-1.1.1.tgz","fileCount":7,"integrity":"sha512-Pi+Bv1w2aPmPSrWsZs8+nXQkevuOcUAh+2Vb5MPF+XKjQ+OPSj+GUiIulRFKb7uYwlRWoZHs0AI9Th8yYWxA4w==","signatures":[{"sig":"MEYCIQCJjq7AlP+BTD6wAKLiUJkfWEKh3HNLndxMFlXbDIxQwAIhAOkER9pUnZNodg3ah1ObxHkVxDY+dCBoCD2lHxMISMUx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14743},"main":"dist/index.js","_from":"file:arlioz-flagship-1.1.1.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"dev":"tsup --watch","lint":"echo 'ok'","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"_resolved":"/tmp/7007f9bb2a94e90b04e0f2cbb8e86481/arlioz-flagship-1.1.1.tgz","_integrity":"sha512-Pi+Bv1w2aPmPSrWsZs8+nXQkevuOcUAh+2Vb5MPF+XKjQ+OPSj+GUiIulRFKb7uYwlRWoZHs0AI9Th8yYWxA4w==","repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-js"},"_npmVersion":"10.8.2","description":"Official JavaScript/TypeScript SDK for FlagShip — feature flags for startups","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/flagship_1.1.1_1772885471791_0.4251327709753243","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@arlioz/flagship","version":"1.2.0","keywords":["feature-flags","feature-toggle","flagship","sdk","ab-testing"],"license":"MIT","_id":"@arlioz/flagship@1.2.0","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"c6625a2c329344346baab37d360b85099acbc1a4","tarball":"https://registry.npmjs.org/@arlioz/flagship/-/flagship-1.2.0.tgz","fileCount":8,"integrity":"sha512-7nfBsNgd2FDciemBAe3KCJkxtrZ1GdW1lpRd/+9A2WUPLLNIwu2vQGdh5FkQlG69A4HzrWlJvqKMqZvPvF7cmg==","signatures":[{"sig":"MEYCIQDEuyhU60Ka3RK2TVIt5HFYEd2okDs7VF5sAvgAV+/sNwIhANs8GpTPWPXRUkWdRzj/tGfkcg7UBgihK8ebXT6wWgQk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23998},"main":"dist/index.js","_from":"file:arlioz-flagship-1.2.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"dev":"tsup --watch","lint":"echo 'ok'","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"_resolved":"/tmp/bd7147f9566d6fed6779f6cd2d8c4a90/arlioz-flagship-1.2.0.tgz","_integrity":"sha512-7nfBsNgd2FDciemBAe3KCJkxtrZ1GdW1lpRd/+9A2WUPLLNIwu2vQGdh5FkQlG69A4HzrWlJvqKMqZvPvF7cmg==","repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-js"},"_npmVersion":"10.8.2","description":"Official JavaScript/TypeScript SDK for FlagShip — feature flags for startups","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/flagship_1.2.0_1772892007556_0.5984798539358374","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@arlioz/flagship","version":"2.0.0","keywords":["feature-flags","feature-toggle","flagship","sdk","ab-testing"],"license":"MIT","_id":"@arlioz/flagship@2.0.0","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"16ae4e6b4a4f52a4bf07862e49131795cc915025","tarball":"https://registry.npmjs.org/@arlioz/flagship/-/flagship-2.0.0.tgz","fileCount":8,"integrity":"sha512-m1Ok8eL+JHs1I/k9QCBg17kVssOkkON/ZLJmQHGIwUzREA7rEsKYkTFfIwzXIbJVtDPBaKetp0u+AJSO3dWmIQ==","signatures":[{"sig":"MEQCIByXIafbpI7Avl0DQtxEX/oJncXJNYha9Na8lQpC0m9jAiAJhg4xpj7AeXnU37azLLRlrb3DzS4SkuGdjz65aa7bUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89125},"main":"dist/index.js","_from":"file:arlioz-flagship-2.0.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"dev":"tsup --watch","lint":"echo 'ok'","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"_resolved":"/tmp/c08247b1d8374bd20bc36319e91b3098/arlioz-flagship-2.0.0.tgz","_integrity":"sha512-m1Ok8eL+JHs1I/k9QCBg17kVssOkkON/ZLJmQHGIwUzREA7rEsKYkTFfIwzXIbJVtDPBaKetp0u+AJSO3dWmIQ==","repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-js"},"_npmVersion":"10.8.2","description":"Official JavaScript/TypeScript SDK for FlagShip — feature flags for startups","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/flagship_2.0.0_1772915422593_0.6268364659505063","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@arlioz/flagship","version":"3.0.0","keywords":["feature-flags","feature-toggle","flagship","sdk","ab-testing"],"license":"MIT","_id":"@arlioz/flagship@3.0.0","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"eb2b7365bd945a853c023c852b7aec07da45165f","tarball":"https://registry.npmjs.org/@arlioz/flagship/-/flagship-3.0.0.tgz","fileCount":8,"integrity":"sha512-Iy9YeOADJquZqsm95o6NrbvcnJZXa822P6S9pTQ3P8xZfBuFPc4oTmqCHdYk7Wz9SpWjKWNffQcvCxDw3W/m7A==","signatures":[{"sig":"MEQCIETwbIi3v+xB8RIDhz/IjLy1ibTFuUU3dmD2bbb/pLl6AiBa9C/jAVNNXP7qbcr/rh1LAtzSlCsuB9jyUFepTcLWZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94891},"main":"dist/index.js","_from":"file:arlioz-flagship-3.0.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"dev":"tsup --watch","lint":"echo 'ok'","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"_resolved":"/tmp/25b74a2b3d5424f75396bc4f69f8e779/arlioz-flagship-3.0.0.tgz","_integrity":"sha512-Iy9YeOADJquZqsm95o6NrbvcnJZXa822P6S9pTQ3P8xZfBuFPc4oTmqCHdYk7Wz9SpWjKWNffQcvCxDw3W/m7A==","repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-js"},"_npmVersion":"10.8.2","description":"Official JavaScript/TypeScript SDK for FlagShip — feature flags for startups","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/flagship_3.0.0_1773246211418_0.7270253951808405","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@arlioz/flagship","version":"3.1.1","keywords":["feature-flags","feature-toggle","flagship","sdk","ab-testing"],"license":"MIT","_id":"@arlioz/flagship@3.1.1","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"78044befd8ea50c85b573ac892d6e78d648dd097","tarball":"https://registry.npmjs.org/@arlioz/flagship/-/flagship-3.1.1.tgz","fileCount":8,"integrity":"sha512-OPsXgueRpOzbymw3iBVaJW2w20mOV3D1ycRJGazvKKL3FxemNiAUEXx9ISgcrUdo33Nf68EzzOU+97ysMIsg5A==","signatures":[{"sig":"MEUCIGlJbn9Tn+1FtO+U+nNbK3FYjVmAmoQwKldVEGyh8RNgAiEA9HCMrYDTIV/5rqHU5Sg8/0+ZIm9qP3ulwPeZrv8z6m8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94891},"main":"dist/index.js","_from":"file:arlioz-flagship-3.1.1.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"dev":"tsup --watch","lint":"echo 'ok'","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"_resolved":"/tmp/2a2f47873ce92d6e6b67ec5f292dd2f7/arlioz-flagship-3.1.1.tgz","_integrity":"sha512-OPsXgueRpOzbymw3iBVaJW2w20mOV3D1ycRJGazvKKL3FxemNiAUEXx9ISgcrUdo33Nf68EzzOU+97ysMIsg5A==","repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-js"},"_npmVersion":"10.8.2","description":"Official JavaScript/TypeScript SDK for FlagShip — feature flags for startups","directories":{},"sideEffects":false,"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/flagship_3.1.1_1773495237564_0.7164600339698566","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@arlioz/flagship","version":"3.2.0","keywords":["feature-flags","feature-toggle","flagship","sdk","ab-testing"],"license":"MIT","_id":"@arlioz/flagship@3.2.0","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"15e276d6fe16c4f483903422a72d10f09dd87494","tarball":"https://registry.npmjs.org/@arlioz/flagship/-/flagship-3.2.0.tgz","fileCount":8,"integrity":"sha512-TJdi8qEFDkj0m7WEz+15QqDBfJcDdvv1TsdjOlaMss6KnHlErS+z7qDyjpRwKrTwD+DyzrEZfpm1EZt5jeGeQw==","signatures":[{"sig":"MEUCIQDgodJIBKeWDLWtx2XVypK+8XNuby3fLTMv669VzDczBQIgNKt1KUNGPQaW3zW1He6pqiGR/+JnDAqPD9JGSGuq6Rw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105349},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"a2dd9ada6d6e28fe0e9ca5117092e9498067312c","scripts":{"dev":"tsup --watch","lint":"echo 'ok'","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-js"},"_npmVersion":"10.8.2","description":"Official JavaScript/TypeScript SDK for FlagShip — feature flags for startups","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/flagship_3.2.0_1773527448647_0.11139662001233286","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@arlioz/flagship","version":"3.4.0","keywords":["feature-flags","feature-toggle","flagship","sdk","ab-testing"],"license":"MIT","_id":"@arlioz/flagship@3.4.0","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"235f1c2580d8d8d8975ae0a470cc0acd68978252","tarball":"https://registry.npmjs.org/@arlioz/flagship/-/flagship-3.4.0.tgz","fileCount":8,"integrity":"sha512-xDZw8ep9ih8gXqWgU0ybMHeOlhUubuguh1eovq3UsVhgoVrRESX/I7TcrgVdy6wpBRE2/eTsaG6T2umPgJGB0A==","signatures":[{"sig":"MEUCICEAUatmV1vn/XaC1TCvq/n3dvnF+7NVO3mY8WqZAaliAiEAhjVt/TDhgbHNjKF/dFRiDPyCtXy59xY1M8xWshj7fyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123383},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"29cd0d35c079ba49aea37e03918093feb6674901","scripts":{"dev":"tsup --watch","lint":"echo 'ok'","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-js"},"_npmVersion":"10.8.2","description":"Official JavaScript/TypeScript SDK for FlagShip — feature flags for startups","directories":{},"sideEffects":false,"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/flagship_3.4.0_1773873048013_0.055826206189514505","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@arlioz/flagship","version":"3.5.0","keywords":["feature-flags","feature-toggle","flagship","sdk","ab-testing"],"license":"MIT","_id":"@arlioz/flagship@3.5.0","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"126888516593298bebf7e06b5a69c6aecc87d5c4","tarball":"https://registry.npmjs.org/@arlioz/flagship/-/flagship-3.5.0.tgz","fileCount":8,"integrity":"sha512-pHShfUP2zLgEd1a8UJh68NNXkJG+Mskf+SjAh8SR1ie2Ck+ROwYM2xQSwUqchsVwARgRxtFc9jWpiVPYOJC6YQ==","signatures":[{"sig":"MEYCIQDzHoh/W6Nru0yv5DDUTv9AgkuypuYvsUEYd7ybwtxFBQIhAJ1ZpLK0KvjY74n5k68ITEfudfTu8j3T8aLWxobQowh1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123383},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"ea36284e85294584df5a761598b9879f058a80e1","scripts":{"dev":"tsup --watch","lint":"echo 'ok'","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-js"},"_npmVersion":"10.8.2","description":"Official JavaScript/TypeScript SDK for FlagShip — feature flags for startups","directories":{},"sideEffects":false,"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/flagship_3.5.0_1773952721083_0.6181764496822757","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"name":"@arlioz/flagship","version":"3.6.0","keywords":["feature-flags","feature-toggle","flagship","sdk","ab-testing"],"license":"MIT","_id":"@arlioz/flagship@3.6.0","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"1e795592b2bc5c5a822ffcaf183919e92b795909","tarball":"https://registry.npmjs.org/@arlioz/flagship/-/flagship-3.6.0.tgz","fileCount":8,"integrity":"sha512-UPoWgYG8GFVmR/5uhNR53s6tl10JvIzDydbkU1LKr0H1Nq4QKrAGQSdGIbSPEdeVThtlM4wdm8shCT9UKTqajA==","signatures":[{"sig":"MEUCIQDOeeppK3dPdYg39aeEohh5gxHWstkuthjbhKlK/mWe7gIgCoUYKGSk/KQxG0nJcHG0dP0pwfldUN7kODoP1FgEOjE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146034},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"85f2108a3090bd1b3902fb08a6e4315e85af6112","scripts":{"dev":"tsup --watch","lint":"echo 'ok'","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-js"},"_npmVersion":"10.8.2","description":"Official JavaScript/TypeScript SDK for FlagShip — feature flags for startups","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/flagship_3.6.0_1776612302088_0.7523301974480754","host":"s3://npm-registry-packages-npm-production"}},"3.7.0":{"name":"@arlioz/flagship","version":"3.7.0","keywords":["feature-flags","feature-toggle","flagship","sdk","ab-testing"],"license":"MIT","_id":"@arlioz/flagship@3.7.0","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"homepage":"https://github.com/ALapaque/FlagShip#readme","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"dist":{"shasum":"3a55d6ceb0e055713c7c3735ec1ce3e01d82e01d","tarball":"https://registry.npmjs.org/@arlioz/flagship/-/flagship-3.7.0.tgz","fileCount":8,"integrity":"sha512-zaeL6t9OvJsOO5EqMMQe3qetBJm2Tk38XYpjVBnLiIRBrBuXJ9OxZCzpTOr7XTAnlh+4KWrXGXYNzhKeBCJclQ==","signatures":[{"sig":"MEUCIQCNaD0glz0ALNmzbjR4DOAwX9LbK1I1u7+JcQcAMgIX0wIgFp81yCyCUeU2g2RabvFqSBvlF5TR3mHMX3syy89F8Wk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150500},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"eb9b9642477a426d184f69d97cca845ccc62aab1","scripts":{"dev":"tsup --watch","lint":"echo 'ok'","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"repository":{"url":"git+https://github.com/ALapaque/FlagShip.git","type":"git","directory":"packages/sdk-js"},"_npmVersion":"10.8.2","description":"Official JavaScript/TypeScript SDK for FlagShip — feature flags for startups","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/flagship_3.7.0_1776617143605_0.25660370879314565","host":"s3://npm-registry-packages-npm-production"}},"3.7.1":{"name":"@arlioz/flagship","version":"3.7.1","description":"Official JavaScript/TypeScript SDK for FlagShip — feature flags for startups","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"build":"tsup","dev":"tsup --watch","clean":"rm -rf dist","lint":"echo 'ok'","test":"vitest run","test:watch":"vitest","prepublishOnly":"pnpm run build"},"keywords":["feature-flags","feature-toggle","flagship","sdk","ab-testing"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/ALapaque/FlagShip.git","directory":"packages/sdk-js"},"homepage":"https://github.com/ALapaque/FlagShip#readme","sideEffects":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.4.5"},"_id":"@arlioz/flagship@3.7.1","gitHead":"a46edd5a5007b4b172f062d76d1a8fcc4dfdc333","bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-fLSeWExO9YU9YWCbuhZHHolN60XuWbbCshANT5ETaapWdH4L13eA+a/FsgNzRpCo4YigHytIFJJbKNgSf5u+DA==","shasum":"2a01d97173e5b4118e7c1880b569d09dc8e52f24","tarball":"https://registry.npmjs.org/@arlioz/flagship/-/flagship-3.7.1.tgz","fileCount":8,"unpackedSize":151336,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCRy/OtfvEnt2Q9DdASfPSVpV5qs20l19tI8aKomqkiewIhAPqqf+iOn97UP2CnR0dhRXa0L4+sbBnXO4aolnrkERrW"}]},"_npmUser":{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"},"directories":{},"maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/flagship_3.7.1_1776631215798_0.45887310683818483"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-07T12:11:11.674Z","modified":"2026-04-19T20:40:16.143Z","1.1.1":"2026-03-07T12:11:11.945Z","1.2.0":"2026-03-07T14:00:07.712Z","2.0.0":"2026-03-07T20:30:22.730Z","3.0.0":"2026-03-11T16:23:31.553Z","3.1.1":"2026-03-14T13:33:57.703Z","3.2.0":"2026-03-14T22:30:48.819Z","3.4.0":"2026-03-18T22:30:48.159Z","3.5.0":"2026-03-19T20:38:41.211Z","3.6.0":"2026-04-19T15:25:02.242Z","3.7.0":"2026-04-19T16:45:43.725Z","3.7.1":"2026-04-19T20:40:15.993Z"},"bugs":{"url":"https://github.com/ALapaque/FlagShip/issues"},"license":"MIT","homepage":"https://github.com/ALapaque/FlagShip#readme","keywords":["feature-flags","feature-toggle","flagship","sdk","ab-testing"],"repository":{"type":"git","url":"git+https://github.com/ALapaque/FlagShip.git","directory":"packages/sdk-js"},"description":"Official JavaScript/TypeScript SDK for FlagShip — feature flags for startups","maintainers":[{"name":"amaurylapaque","email":"amaury.lapaque@arlioz.be"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/ALapaque/FlagShip/main/apps/website/public/favicon.svg\" width=\"56\" height=\"56\" alt=\"FlagShip logo\" />\n</p>\n\n<h1 align=\"center\">@arlioz/flagship</h1>\n\n<p align=\"center\">\n  <strong>Feature flags for modern teams.</strong><br />\n  Lightweight JavaScript &amp; TypeScript SDK for <a href=\"https://github.com/ALapaque/FlagShip\">FlagShip</a> — the open-source feature flag platform built for startups.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@arlioz/flagship\"><img src=\"https://img.shields.io/npm/v/@arlioz/flagship?color=6366f1&labelColor=0a0a0a&style=flat-square\" alt=\"npm version\" /></a>\n  <a href=\"https://www.npmjs.com/package/@arlioz/flagship\"><img src=\"https://img.shields.io/npm/dm/@arlioz/flagship?color=818cf8&labelColor=0a0a0a&style=flat-square\" alt=\"npm downloads\" /></a>\n  <a href=\"https://github.com/ALapaque/FlagShip/blob/main/LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-22c55e?labelColor=0a0a0a&style=flat-square\" alt=\"license\" /></a>\n  <a href=\"https://bundlephobia.com/package/@arlioz/flagship\"><img src=\"https://img.shields.io/bundlephobia/minzip/@arlioz/flagship?color=f59e0b&labelColor=0a0a0a&style=flat-square&label=size\" alt=\"bundle size\" /></a>\n  <img src=\"https://img.shields.io/badge/coverage-97%25-22c55e?labelColor=0a0a0a&style=flat-square\" alt=\"coverage\" />\n</p>\n\n<br />\n\n---\n\n<br />\n\n## Why FlagShip?\n\n- **Zero dependencies** — works in Node.js, browsers, edge runtimes, and serverless\n- **Tiny footprint** — under 2 KB minified + gzipped\n- **TypeScript-first** — full type safety out of the box\n- **Real-time sync** — built-in polling keeps flags up to date\n- **Targeting & rollouts** — percentage-based rollouts with user attribute conditions\n- **Open source** — self-host or use our managed platform\n\n<br />\n\n## Quick Start\n\n### 1. Install\n\n```bash\nnpm install @arlioz/flagship\n```\n\n```bash\n# or with your preferred package manager\nyarn add @arlioz/flagship\npnpm add @arlioz/flagship\n```\n\n### 2. Initialize\n\n```typescript\nimport { FlagShip } from '@arlioz/flagship'\n\nconst client = new FlagShip({\n  apiKey: 'flg_production_your_key_here',\n})\n```\n\n### 3. Use flags\n\n```typescript\nconst showNewUI = await client.get('new_ui')\n\nif (showNewUI) {\n  renderNewDashboard()\n} else {\n  renderLegacyDashboard()\n}\n```\n\nThat's it. You're shipping with feature flags. 🚀\n\n<br />\n\n## Usage\n\n### Basic flag evaluation\n\n```typescript\n// Boolean flag (most common)\nconst isEnabled = await client.get('dark_mode')\n\n// With a fallback value\nconst limit = await client.get('upload_limit', 10)\n\n// String flag\nconst theme = await client.get('theme', 'light')\n```\n\n### Fetch all flags at once\n\n```typescript\nconst flags = await client.fetchFlags()\n\nconsole.log(flags)\n// → { dark_mode: true, upload_limit: 50, theme: \"dark\" }\n```\n\n### Get all cached flags (synchronous)\n\n```typescript\n// After an initial fetch, read from cache without awaiting\nconst allFlags = client.getAll()\n```\n\n### User targeting\n\n```typescript\nconst client = new FlagShip({\n  apiKey: 'flg_production_abc123',\n  userId: 'user-42',\n  attributes: {\n    plan: 'pro',\n    country: 'FR',\n    role: 'admin',\n  },\n})\n\n// Flags are evaluated server-side with targeting rules\nconst canAccessBeta = await client.get('beta_features')\n```\n\n### Update user context\n\n```typescript\n// When a user logs in or their context changes\nclient.identify('user-789', {\n  plan: 'enterprise',\n  country: 'DE',\n})\n\n// Cache is cleared — next .get() will re-fetch with new context\nconst flags = await client.get('premium_feature')\n```\n\n### Auto-polling\n\n```typescript\nconst client = new FlagShip({\n  apiKey: 'flg_production_abc123',\n  pollingInterval: 15000, // poll every 15 seconds\n})\n\n// Flags stay up to date automatically.\n// When you toggle a flag in the dashboard,\n// it takes effect within one polling cycle.\n```\n\n### Singleton pattern\n\n```typescript\nimport { FlagShip } from '@arlioz/flagship'\n\n// Initialize once at app startup\nFlagShip.init({\n  apiKey: 'flg_production_abc123',\n  baseUrl: 'https://flagship-pwxs.onrender.com/api',\n})\n\n// Access anywhere without passing the instance around\nconst client = FlagShip.getInstance()\nconst isEnabled = await client.get('dark_mode')\n```\n\n### `@FeatureFlag` decorator\n\nGate method execution behind a feature flag. Requires `FlagShip.init()` first.\n\n```typescript\nimport { FlagShip, FeatureFlag } from '@arlioz/flagship'\n\nFlagShip.init({ apiKey: 'flg_production_abc123' })\n\nclass PaymentService {\n  @FeatureFlag('new-checkout')\n  async processPayment(order: Order) {\n    // Only runs when 'new-checkout' is enabled\n  }\n\n  @FeatureFlag('export-invoices', { fallback: [] })\n  async exportInvoices() {\n    // Returns [] when flag is disabled\n  }\n}\n```\n\n### Clean up\n\n```typescript\n// Stop polling when the app shuts down\nclient.close()\n```\n\n<br />\n\n## API Reference\n\n### `new FlagShip(options)`\n\nCreates a new FlagShip client instance.\n\n| Option            | Type                  | Required | Default                     | Description                                                         |\n| ----------------- | --------------------- | -------- | --------------------------- | ------------------------------------------------------------------- |\n| `apiKey`          | `string`              | **Yes**  | —                           | Environment API key from your dashboard (e.g. `flg_production_...`) |\n| `baseUrl`         | `string`              | No       | `http://localhost:4000/api` | Base URL of your FlagShip API                                       |\n| `userId`          | `string`              | No       | —                           | User ID for percentage-based rollouts                               |\n| `attributes`      | `Record<string, any>` | No       | `{}`                        | User attributes for targeting conditions                            |\n| `pollingInterval` | `number`              | No       | `30000`                     | Polling interval in ms. Set `0` to disable                          |\n\n### `client.get<T>(key, defaultValue?): Promise<T>`\n\nGet a single flag value by key. Returns the `defaultValue` if the flag doesn't exist.\n\n```typescript\nconst isEnabled = await client.get('feature_x') // boolean\nconst limit = await client.get('rate_limit', 100) // number\nconst variant = await client.get('cta_text', 'Sign Up') // string\n```\n\n### `client.fetchFlags(): Promise<Record<string, any>>`\n\nFetch all flags from the server and update the local cache. Returns the full flag map.\n\n### `client.getAll(): Record<string, any>`\n\nReturns all cached flag values synchronously. Useful after an initial `fetchFlags()` call.\n\n### `client.identify(userId, attributes?): void`\n\nUpdate the user context for subsequent evaluations. Clears the cache so the next read triggers a fresh fetch.\n\n### `client.close(): void`\n\nStop the polling timer and clean up resources. Call this when your app shuts down.\n\n<br />\n\n## Framework Examples\n\n### Next.js (App Router)\n\n```typescript\n// lib/flags.ts\nimport { FlagShip } from '@arlioz/flagship'\n\nexport const flagClient = new FlagShip({\n  apiKey: process.env.FLAGSHIP_API_KEY!,\n  baseUrl: 'https://flagship-pwxs.onrender.com/api',\n  pollingInterval: 0, // disable polling in server context\n})\n```\n\n```tsx\n// app/page.tsx\nimport { flagClient } from '@/lib/flags'\n\nexport default async function HomePage() {\n  const showBanner = await flagClient.get('promo_banner')\n\n  return (\n    <main>\n      {showBanner && <PromoBanner />}\n      <HeroSection />\n    </main>\n  )\n}\n```\n\n### Express / Node.js\n\n```typescript\nimport express from 'express'\nimport { FlagShip } from '@arlioz/flagship'\n\nconst app = express()\nconst flags = new FlagShip({\n  apiKey: 'flg_production_abc123',\n  baseUrl: 'https://flagship-pwxs.onrender.com/api',\n})\n\napp.get('/api/config', async (req, res) => {\n  const userId = req.headers['x-user-id'] as string\n\n  if (userId) {\n    flags.identify(userId)\n  }\n\n  const showNewCheckout = await flags.get('new_checkout')\n  const uploadLimit = await flags.get('upload_limit', 10)\n\n  res.json({ showNewCheckout, uploadLimit })\n})\n```\n\n### React (Client-side)\n\n```tsx\nimport { useEffect, useState } from 'react'\nimport { FlagShip } from '@arlioz/flagship'\n\nconst client = new FlagShip({\n  apiKey: 'flg_production_abc123',\n  baseUrl: 'https://flagship-pwxs.onrender.com/api',\n})\n\nfunction App() {\n  const [flags, setFlags] = useState<Record<string, any>>({})\n\n  useEffect(() => {\n    client.fetchFlags().then(setFlags)\n    return () => client.close()\n  }, [])\n\n  return (\n    <div>\n      {flags.chat_widget && <ChatWidget />}\n      {flags.dark_mode ? <DarkTheme /> : <LightTheme />}\n    </div>\n  )\n}\n```\n\n<br />\n\n## How It Works\n\n```\n┌─────────────┐     GET /flags/evaluate      ┌──────────────┐\n│  Your App    │ ──────────────────────────▶  │  FlagShip   │\n│              │     ?environment_key=...      │  API Server  │\n│  @arlioz/    │ ◀──────────────────────────  │              │\n│  flagship    │     { dark_mode: true, ... }  │  PostgreSQL  │\n└─────────────┘                               └──────────────┘\n       │                                             ▲\n       │  polls every 30s                            │\n       └─────────────────────────────────────────────┘\n```\n\n1. Your app initializes the SDK with an **environment API key**\n2. The SDK calls the **evaluate endpoint** with the key + user context\n3. The server evaluates **targeting rules** and returns resolved flag values\n4. The SDK **caches** results and **polls** for updates automatically\n\n<br />\n## License\n\nMIT — [Arlioz](https://arlioz.be)\n","readmeFilename":"README.md"}