{"_id":"@bucketco/vue-sdk","_rev":"7-260e20d1ac29a89de2973c9e211a8570","name":"@bucketco/vue-sdk","dist-tags":{"latest":"0.2.2"},"versions":{"0.0.1":{"name":"@bucketco/vue-sdk","version":"0.0.1","license":"MIT","_id":"@bucketco/vue-sdk@0.0.1","maintainers":[{"name":"munter","email":"pingvin@gmail.com"},{"name":"roncohen1","email":"cohen1+1@gmail.com"},{"name":"laander","email":"la@laander.com"},{"name":"pavkam","email":"alex+git@ciobanu.org"}],"homepage":"https://github.com/bucketco/bucket-javascript-sdk#readme","bugs":{"url":"https://github.com/bucketco/bucket-javascript-sdk/issues"},"dist":{"shasum":"d0ffbfb332088c2d8ff65d15c81a6ed60d276eb8","tarball":"https://registry.npmjs.org/@bucketco/vue-sdk/-/vue-sdk-0.0.1.tgz","fileCount":11,"integrity":"sha512-LcRsJdvyRf47Qs69O89/K7x0hMoGHQh6MsijO5GoqEl0TwqFYs77uq0Wy+ik1BKV+UN8wYg7OK+sqsHYrEMarw==","signatures":[{"sig":"MEUCIQD7BkuTBn45YUs/872r/QZnv6K7JHNV7BrO+8fl+fP9wAIgeEIYn5OyI5QNmEObiZEQYKFf8ZAlqnzXk57IThxDRKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872176},"main":"./dist/bucket-vue-sdk.umd.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/bucket-vue-sdk.mjs","require":"./dist/bucket-vue-sdk.umd.js"}},"gitHead":"fecb4ddce54c97762a4f5a150b9430f52802bdec","scripts":{"dev":"vite","lint":"eslint .","test":"vitest -c vite.config.mjs","build":"tsc --project tsconfig.build.json && vite build","format":"yarn lint --fix && yarn prettier --write","lint:ci":"eslint --output-file eslint-report.json --format json .","test:ci":"vitest run -c vite.config.mjs --reporter=default --reporter=junit --outputFile=junit.xml","coverage":"vitest run --coverage","prettier":"prettier --check .","preversion":"yarn lint && yarn prettier && yarn vitest run -c vite.config.mjs && yarn build"},"_npmUser":{"name":"roncohen1","actor":{"name":"roncohen1","type":"user","email":"cohen1+1@gmail.com"},"email":"cohen1+1@gmail.com"},"repository":{"url":"git+https://github.com/bucketco/bucket-javascript-sdk.git","type":"git"},"_npmVersion":"lerna/8.1.3/node@v20.15.1+x64 (linux)","description":"Vue client side library for [Bucket.co](https://bucket.co)","directories":{},"_nodeVersion":"20.15.1","dependencies":{"rollup":"^4.2.0","canonical-json":"^0.0.4","@bucketco/browser-sdk":"3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.3.5","vue":"^3.5.16","vite":"^5.0.13","jsdom":"^24.1.0","eslint":"^9.21.0","vitest":"^2.0.4","ts-node":"^10.9.2","prettier":"^3.5.2","typescript":"^5.7.3","@types/node":"^22.12.0","@types/jsdom":"^21.1.6","@vue/test-utils":"^2.3.2","vite-plugin-dts":"^4.5.4","@bucketco/tsconfig":"^0.0.2","@vitejs/plugin-vue":"^5.2.4","@bucketco/eslint-config":"^0.0.2","rollup-preserve-directives":"^1.1.2"},"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-sdk_0.0.1_1750246768796_0.14492029978146537","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has been moved to @reflag/vue-sdk. Please upgrade."},"0.1.0":{"name":"@bucketco/vue-sdk","version":"0.1.0","license":"MIT","_id":"@bucketco/vue-sdk@0.1.0","maintainers":[{"name":"munter","email":"pingvin@gmail.com"},{"name":"roncohen1","email":"cohen1+1@gmail.com"},{"name":"laander","email":"la@laander.com"},{"name":"pavkam","email":"alex+git@ciobanu.org"}],"homepage":"https://github.com/bucketco/bucket-javascript-sdk#readme","bugs":{"url":"https://github.com/bucketco/bucket-javascript-sdk/issues"},"dist":{"shasum":"29691f4ee37f64fbf14a5fada99b9fa717f22359","tarball":"https://registry.npmjs.org/@bucketco/vue-sdk/-/vue-sdk-0.1.0.tgz","fileCount":11,"integrity":"sha512-XLw8SK+25FTtzSZ/68OnMumdDHTDD8VFfCnBv2hyt4/9EyVxjKerjZ8EDP6wcoU8/Tgo3EQzO74eqSPMQ5pJvQ==","signatures":[{"sig":"MEUCIQDNX6iE/RkPJzE5Dho/sSKPlpQxhASv6uxOIVCrtj2PWAIgbYQDUCKeiV3SPKy7x+w3MXsSpDgWKMuNX/+kxXskeAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":899846},"main":"./dist/bucket-vue-sdk.umd.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/bucket-vue-sdk.mjs","require":"./dist/bucket-vue-sdk.umd.js"}},"gitHead":"f578580066bc7d8a77596701c1a4d336fbfc5736","scripts":{"dev":"vite","lint":"eslint .","test":"vitest -c vite.config.mjs","build":"tsc --project tsconfig.build.json && vite build","format":"yarn lint --fix && yarn prettier --write","lint:ci":"eslint --output-file eslint-report.json --format json .","test:ci":"vitest run -c vite.config.mjs --reporter=default --reporter=junit --outputFile=junit.xml","coverage":"vitest run --coverage","prettier":"prettier --check .","preversion":"yarn lint && yarn prettier && yarn vitest run -c vite.config.mjs && yarn build"},"_npmUser":{"name":"roncohen1","actor":{"name":"roncohen1","type":"user","email":"cohen1+1@gmail.com"},"email":"cohen1+1@gmail.com"},"repository":{"url":"git+https://github.com/bucketco/bucket-javascript-sdk.git","type":"git"},"_npmVersion":"lerna/8.1.3/node@v20.15.1+x64 (linux)","description":"Vue client side library for [Bucket.co](https://bucket.co)","directories":{},"_nodeVersion":"20.15.1","dependencies":{"canonical-json":"^0.2.0","@bucketco/browser-sdk":"3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.3.5","vue":"^3.5.16","vite":"^5.0.13","jsdom":"^24.1.0","eslint":"^9.21.0","rollup":"^4.2.0","vitest":"^2.0.4","ts-node":"^10.9.2","prettier":"^3.5.2","typescript":"^5.7.3","@types/node":"^22.12.0","@types/jsdom":"^21.1.6","@vue/test-utils":"^2.3.2","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^9.28.0","vue-eslint-parser":"^9.4.2","@bucketco/tsconfig":"^0.0.2","@vitejs/plugin-vue":"^5.2.4","@bucketco/eslint-config":"^0.0.2","rollup-preserve-directives":"^1.1.2"},"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-sdk_0.1.0_1750325403644_0.5581863067764545","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has been moved to @reflag/vue-sdk. Please upgrade."},"0.1.1":{"name":"@bucketco/vue-sdk","version":"0.1.1","license":"MIT","_id":"@bucketco/vue-sdk@0.1.1","maintainers":[{"name":"munter","email":"pingvin@gmail.com"},{"name":"roncohen1","email":"cohen1+1@gmail.com"},{"name":"laander","email":"la@laander.com"},{"name":"pavkam","email":"alex+git@ciobanu.org"}],"homepage":"https://github.com/bucketco/bucket-javascript-sdk#readme","bugs":{"url":"https://github.com/bucketco/bucket-javascript-sdk/issues"},"dist":{"shasum":"aa1802f94b960da30655c1d0f39f805476e0bb4b","tarball":"https://registry.npmjs.org/@bucketco/vue-sdk/-/vue-sdk-0.1.1.tgz","fileCount":19,"integrity":"sha512-H/Bbp5yrUzpkDnwy7wo6rQ5Njx45npGB6/23yXKB663lW6ZExOo6LO5INLsH5BAIP2l6FjEXkD9XtoGiaecFKA==","signatures":[{"sig":"MEUCIQCXUf8bCaw8aZDcHfYMJyGDtZTBebcpWh+mBVaQgE4JUgIgO1AGTagOPG8Qq2NkHiOvd8cvukgrK4lXi/TmdnQKLQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":897613},"main":"./dist/bucket-vue-sdk.umd.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/bucket-vue-sdk.mjs","require":"./dist/bucket-vue-sdk.umd.js"}},"gitHead":"e559d94e3b596ca9f572b947d102bc0db8eddb63","scripts":{"dev":"vite","lint":"eslint .","test":"vitest -c vite.config.mjs","build":"tsc --project tsconfig.build.json && vite build","format":"yarn lint --fix && yarn prettier --write","lint:ci":"eslint --output-file eslint-report.json --format json .","test:ci":"vitest run -c vite.config.mjs --reporter=default --reporter=junit --outputFile=junit.xml","coverage":"vitest run --coverage","prettier":"prettier --check .","preversion":"yarn lint && yarn prettier && yarn vitest run -c vite.config.mjs && yarn build"},"_npmUser":{"name":"roncohen1","actor":{"name":"roncohen1","type":"user","email":"cohen1+1@gmail.com"},"email":"cohen1+1@gmail.com"},"repository":{"url":"git+https://github.com/bucketco/bucket-javascript-sdk.git","type":"git"},"_npmVersion":"lerna/8.1.3/node@v20.15.1+x64 (linux)","description":"Vue client side library for [Bucket.co](https://bucket.co)","directories":{},"_nodeVersion":"20.15.1","dependencies":{"canonical-json":"^0.2.0","@bucketco/browser-sdk":"3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.3.5","vue":"^3.5.16","vite":"^5.0.13","jsdom":"^24.1.0","eslint":"^9.21.0","rollup":"^4.2.0","vitest":"^2.0.4","ts-node":"^10.9.2","prettier":"^3.5.2","typescript":"^5.7.3","@types/node":"^22.12.0","@types/jsdom":"^21.1.6","@vue/test-utils":"^2.3.2","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^9.28.0","vue-eslint-parser":"^9.4.2","@bucketco/tsconfig":"^0.0.2","@vitejs/plugin-vue":"^5.2.4","@bucketco/eslint-config":"^0.0.2","rollup-preserve-directives":"^1.1.2"},"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-sdk_0.1.1_1750337605846_0.031949747588157384","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has been moved to @reflag/vue-sdk. Please upgrade."},"0.2.0":{"name":"@bucketco/vue-sdk","version":"0.2.0","license":"MIT","_id":"@bucketco/vue-sdk@0.2.0","maintainers":[{"name":"munter","email":"pingvin@gmail.com"},{"name":"roncohen1","email":"cohen1+1@gmail.com"},{"name":"laander","email":"la@laander.com"},{"name":"pavkam","email":"alex+git@ciobanu.org"}],"homepage":"https://github.com/bucketco/bucket-javascript-sdk#readme","bugs":{"url":"https://github.com/bucketco/bucket-javascript-sdk/issues"},"dist":{"shasum":"3401e737857cb585f2c996bea8a6244fc02c2b3f","tarball":"https://registry.npmjs.org/@bucketco/vue-sdk/-/vue-sdk-0.2.0.tgz","fileCount":19,"integrity":"sha512-RdLZkD1P/bxkP6WZmq1i5wZWs07F2ArKULsdYdW9p1HTmMzRw5Pe4Qp9D/oocQHQ4OLnTh4NF4PgIS10OL0VFA==","signatures":[{"sig":"MEQCIH8XcdP737m9bRinj2Ml0vZbyHYaz2h2/B4bo/INX7lrAiA2MNLvoX+JQErVqzbLK+fnyf9sNcr2tucaKxUEl2TnJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":897355},"main":"./dist/bucket-vue-sdk.umd.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/bucket-vue-sdk.mjs","require":"./dist/bucket-vue-sdk.umd.js"}},"gitHead":"7043dd30a202e41d6a12c63b86df8844ace89ac9","scripts":{"dev":"vite","lint":"eslint .","test":"vitest -c vite.config.mjs","build":"tsc --project tsconfig.build.json && vite build","format":"yarn lint --fix && yarn prettier --write","lint:ci":"eslint --output-file eslint-report.json --format json .","test:ci":"vitest run -c vite.config.mjs --reporter=default --reporter=junit --outputFile=junit.xml","coverage":"vitest run --coverage","prettier":"prettier --check .","preversion":"yarn lint && yarn prettier && yarn vitest run -c vite.config.mjs && yarn build"},"_npmUser":{"name":"roncohen1","actor":{"name":"roncohen1","type":"user","email":"cohen1+1@gmail.com"},"email":"cohen1+1@gmail.com"},"repository":{"url":"git+https://github.com/bucketco/bucket-javascript-sdk.git","type":"git"},"_npmVersion":"lerna/8.1.3/node@v20.15.1+x64 (linux)","description":"Vue client side library for [Bucket.co](https://bucket.co)","directories":{},"_nodeVersion":"20.15.1","dependencies":{"canonical-json":"^0.2.0","@bucketco/browser-sdk":"3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.3.5","vue":"^3.5.16","vite":"^5.0.13","jsdom":"^24.1.0","eslint":"^9.21.0","rollup":"^4.2.0","vitest":"^2.0.4","ts-node":"^10.9.2","prettier":"^3.5.2","typescript":"^5.7.3","@types/node":"^22.12.0","@types/jsdom":"^21.1.6","@vue/test-utils":"^2.3.2","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^9.28.0","vue-eslint-parser":"^9.4.2","@bucketco/tsconfig":"^0.0.2","@vitejs/plugin-vue":"^5.2.4","@bucketco/eslint-config":"^0.0.2","rollup-preserve-directives":"^1.1.2"},"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-sdk_0.2.0_1750675251632_0.3892514758008141","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has been moved to @reflag/vue-sdk. Please upgrade."},"0.2.1":{"name":"@bucketco/vue-sdk","version":"0.2.1","license":"MIT","_id":"@bucketco/vue-sdk@0.2.1","maintainers":[{"name":"munter","email":"pingvin@gmail.com"},{"name":"roncohen1","email":"cohen1+1@gmail.com"},{"name":"laander","email":"la@laander.com"},{"name":"pavkam","email":"alex+git@ciobanu.org"}],"homepage":"https://github.com/bucketco/bucket-javascript-sdk#readme","bugs":{"url":"https://github.com/bucketco/bucket-javascript-sdk/issues"},"dist":{"shasum":"09781865ba06239a713a25f9c0db0e358f7cc9fb","tarball":"https://registry.npmjs.org/@bucketco/vue-sdk/-/vue-sdk-0.2.1.tgz","fileCount":19,"integrity":"sha512-f668Q7mUjzMsdfckpgnixmAGgeQY8tStZn1PjSvL0NUN6tZASMmhPyWTUD/wYYavO6q24y+IJXqUrnCwUvH3vQ==","signatures":[{"sig":"MEYCIQDeWBXnw4Mj9pXuEhNx8880Y9CneWQ1zKIZudyVrTzEdAIhAOvPD7tMkrGWCeonvkUQhBhUdsmLcls273Famu/NRAWe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":904611},"main":"./dist/bucket-vue-sdk.umd.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/bucket-vue-sdk.mjs","require":"./dist/bucket-vue-sdk.umd.js"}},"gitHead":"b5114731c71249fb837dc477777b5dc1d81d0ed9","scripts":{"dev":"vite","lint":"eslint .","test":"vitest -c vite.config.mjs","build":"tsc --project tsconfig.build.json && vite build","format":"yarn lint --fix && yarn prettier --write","lint:ci":"eslint --output-file eslint-report.json --format json .","test:ci":"vitest run -c vite.config.mjs --reporter=default --reporter=junit --outputFile=junit.xml","coverage":"vitest run --coverage","prettier":"prettier --check .","preversion":"yarn lint && yarn prettier && yarn vitest run -c vite.config.mjs && yarn build"},"_npmUser":{"name":"pavkam","email":"alex+git@ciobanu.org"},"repository":{"url":"git+https://github.com/bucketco/bucket-javascript-sdk.git","type":"git"},"_npmVersion":"lerna/8.1.3/node@v20.15.1+x64 (linux)","description":"Vue client side library for [Bucket.co](https://bucket.co)","directories":{},"_nodeVersion":"20.15.1","dependencies":{"canonical-json":"^0.2.0","@bucketco/browser-sdk":"3.3.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.3.5","vue":"^3.5.16","vite":"^5.0.13","jsdom":"^24.1.0","eslint":"^9.21.0","rollup":"^4.2.0","vitest":"^2.0.4","ts-node":"^10.9.2","prettier":"^3.5.2","typescript":"^5.7.3","@types/node":"^22.12.0","@types/jsdom":"^21.1.6","@vue/test-utils":"^2.3.2","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^9.28.0","vue-eslint-parser":"^9.4.2","@bucketco/tsconfig":"^0.0.2","@vitejs/plugin-vue":"^5.2.4","@bucketco/eslint-config":"^0.0.2","rollup-preserve-directives":"^1.1.2"},"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-sdk_0.2.1_1755083722788_0.7559257898040372","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has been moved to @reflag/vue-sdk. Please upgrade."},"0.2.2":{"name":"@bucketco/vue-sdk","version":"0.2.2","license":"MIT","_id":"@bucketco/vue-sdk@0.2.2","maintainers":[{"name":"munter","email":"pingvin@gmail.com"},{"name":"roncohen1","email":"cohen1+1@gmail.com"},{"name":"laander","email":"la@laander.com"},{"name":"pavkam","email":"alex+git@ciobanu.org"}],"homepage":"https://github.com/bucketco/bucket-javascript-sdk#readme","bugs":{"url":"https://github.com/bucketco/bucket-javascript-sdk/issues"},"dist":{"shasum":"ec280153b37b08591e11a8f1673fd1211dfbd816","tarball":"https://registry.npmjs.org/@bucketco/vue-sdk/-/vue-sdk-0.2.2.tgz","fileCount":19,"integrity":"sha512-YwDjHjjHvhAlo5xSTUya8neRLAnHHfsqeA1GW6s6r7a8HaXFPwPbTHkvx/ThI0NphqsPS9APX9p7OOiK/olOXQ==","signatures":[{"sig":"MEUCIQCfykP4DjuoKSsqRkQPom62A75JAsFzpNj6BIAGGJsFNAIgLax8KtL8fDZqBgGPw9GMfmJ9BX3YpMLF8VuMnhgW2vM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":904605},"main":"./dist/bucket-vue-sdk.umd.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/bucket-vue-sdk.mjs","require":"./dist/bucket-vue-sdk.umd.js"}},"gitHead":"77554125f25624bb0914642edd1f7d4fac8a8944","scripts":{"dev":"vite","lint":"eslint .","test":"vitest -c vite.config.mjs","build":"tsc --project tsconfig.build.json && vite build","format":"yarn lint --fix && yarn prettier --write","lint:ci":"eslint --output-file eslint-report.json --format json .","test:ci":"vitest run -c vite.config.mjs --reporter=default --reporter=junit --outputFile=junit.xml","coverage":"vitest run --coverage","prettier":"prettier --check .","preversion":"yarn lint && yarn prettier && yarn vitest run -c vite.config.mjs && yarn build"},"_npmUser":{"name":"pavkam","email":"alex+git@ciobanu.org"},"repository":{"url":"git+https://github.com/bucketco/bucket-javascript-sdk.git","type":"git"},"_npmVersion":"lerna/8.1.3/node@v20.15.1+x64 (linux)","description":"Vue client side library for [Bucket.co](https://bucket.co)","directories":{},"_nodeVersion":"20.15.1","dependencies":{"canonical-json":"^0.2.0","@bucketco/browser-sdk":"3.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.3.5","vue":"^3.5.16","vite":"^5.0.13","jsdom":"^24.1.0","eslint":"^9.21.0","rollup":"^4.2.0","vitest":"^2.0.4","ts-node":"^10.9.2","prettier":"^3.5.2","typescript":"^5.7.3","@types/node":"^22.12.0","@types/jsdom":"^21.1.6","@vue/test-utils":"^2.3.2","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^9.28.0","vue-eslint-parser":"^9.4.2","@bucketco/tsconfig":"^0.0.2","@vitejs/plugin-vue":"^5.2.4","@bucketco/eslint-config":"^0.0.2","rollup-preserve-directives":"^1.1.2"},"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-sdk_0.2.2_1756215805885_0.29769574561299295","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package has been moved to @reflag/vue-sdk. Please upgrade."}},"time":{"created":"2025-06-18T11:39:28.720Z","modified":"2025-09-02T20:53:20.513Z","0.0.1":"2025-06-18T11:39:28.968Z","0.1.0":"2025-06-19T09:30:03.860Z","0.1.1":"2025-06-19T12:53:26.019Z","0.2.0":"2025-06-23T10:40:51.826Z","0.2.1":"2025-08-13T11:15:22.976Z","0.2.2":"2025-08-26T13:43:26.097Z"},"bugs":{"url":"https://github.com/bucketco/bucket-javascript-sdk/issues"},"license":"MIT","homepage":"https://github.com/bucketco/bucket-javascript-sdk#readme","repository":{"url":"git+https://github.com/bucketco/bucket-javascript-sdk.git","type":"git"},"description":"Vue client side library for [Bucket.co](https://bucket.co)","maintainers":[{"name":"laander","email":"la@laander.com"},{"name":"munter","email":"pingvin@gmail.com"},{"name":"pavkam","email":"alex+git@ciobanu.org"},{"name":"roncohen1","email":"cohen1+1@gmail.com"}],"readme":"# Bucket Vue SDK (beta)\n\nVue client side library for [Bucket.co](https://bucket.co)\n\nBucket supports feature toggling, tracking feature usage, requesting feedback on features and remotely configuring features.\n\nThe Bucket Vue SDK comes with the same built-in toolbar as the browser SDK which appears on `localhost` by default.\n\n## Install\n\nInstall via npm:\n\n```shell\nnpm i @bucketco/vue-sdk\n```\n\n## Get started\n\n### 1. Wrap your application with the `BucketProvider`\n\n```vue\n<script setup lang=\"ts\">\nimport { BucketProvider } from \"@bucketco/vue-sdk\";\n</script>\n\n<BucketProvider\n  :publishable-key=\"publishableKey\"\n  :user=\"{ id: 'user_123', name: 'John Doe', email: 'john@acme.com' }\"\n  :company=\"{ id: 'acme_inc', plan: 'pro' }\"\n>\n  <!-- your app -->\n</BucketProvider>\n```\n\nIf using Nuxt, wrap `<BucketProvider>` in `<ClientOnly>`. `<BucketProvider>` only renders client-side currently.\n\n### 2. Use `useFeature(key)` to get feature status\n\n```vue\n<script setup lang=\"ts\">\nimport { useFeature } from \"@bucketco/vue-sdk\";\n\nconst { isEnabled } = useFeature(\"huddle\");\n</script>\n\n<template>\n  <div v-if=\"isEnabled\">\n    <button>Start huddle!</button>\n  </div>\n</template>\n```\n\nSee [useFeature()](#usefeature) for a full example\n\n## Setting `user` and `company`\n\nBucket determines which features are active for a given `user`, `company`, or `otherContext`.\nYou pass these to the `BucketProvider` as props.\n\nIf you supply `user` or `company` objects, they must include at least the `id` property otherwise they will be ignored in their entirety.\nIn addition to the `id`, you must also supply anything additional that you want to be able to evaluate feature targeting rules against.\nAttributes which are not properties of the `user` or `company` can be supplied using the `otherContext` prop.\n\nAttributes cannot be nested (multiple levels) and must be either strings, numbers or booleans.\nA number of special attributes exist:\n\n- `name` -- display name for `user`/`company`,\n- `email` -- the email of the user,\n- `avatar` -- the URL for `user`/`company` avatar image.\n\n```vue\n<BucketProvider\n  :publishable-key=\"publishableKey\"\n  :user=\"{ id: 'user_123', name: 'John Doe', email: 'john@acme.com' }\"\n  :company=\"{ id: 'acme_inc', plan: 'pro' }\"\n>\n  <!-- your app -->\n</BucketProvider>\n```\n\nTo retrieve features along with their targeting information, use `useFeature(key: string)` hook (described in a section below).\n\nNote that accessing `isEnabled` on the object returned by `useFeature()` automatically\ngenerates a `check` event.\n\n## Remote config\n\nRemote config is a dynamic and flexible approach to configuring feature behavior outside of your app – without needing to re-deploy it.\n\nSimilar to `isEnabled`, each feature accessed using the `useFeature()` hook, has a `config` property. This configuration is managed from within Bucket. It is managed similar to the way access to features is managed, but instead of the\nbinary `isEnabled` you can have multiple configuration values which are given to different user/companies.\n\n### Get started with Remote config\n\n```ts\nconst {\n  isEnabled,\n  config: { key, payload },\n} = useFeature(\"huddles\");\n\n// isEnabled: true,\n// key: \"gpt-3.5\",\n// payload: { maxTokens: 10000, model: \"gpt-3.5-beta1\" }\n```\n\n`key` is mandatory for a config, but if a feature has no config or no config value was matched against the context, the `key` will be `undefined`. Make sure to check against this case when trying to use the configuration in your application. `payload` is an optional JSON value for arbitrary configuration needs.\n\nNote that, similar to `isEnabled`, accessing `config` on the object returned by `useFeature()` automatically\ngenerates a `check` event.\n\n## `<BucketProvider>` component\n\nThe `<BucketProvider>` initializes the Bucket SDK, fetches features and starts listening for automated feedback survey events. The component can be configured using a number of props:\n\n- `publishableKey` is used to connect the provider to an _environment_ on Bucket. Find your `publishableKey` under [environment settings](https://app.bucket.co/env-current/settings/app-environments) in Bucket,\n- `company`, `user` and `otherContext` make up the _context_ that is used to determine if a feature is enabled or not. `company` and `user` contexts are automatically transmitted to Bucket servers so the Bucket app can show you which companies have access to which features etc.\n\n  > [!Note]\n  > If you specify `company` and/or `user` they must have at least the `id` property, otherwise they will be ignored in their entirety. You should also supply anything additional you want to be able to evaluate feature targeting against,\n\n- `timeoutMs`: Timeout in milliseconds when fetching features from the server,\n- `staleWhileRevalidate`: If set to `true`, stale features will be returned while refetching features in the background,\n- `expireTimeMs`: If set, features will be cached between page loads for this duration (in milliseconds),\n- `staleTimeMs`: Maximum time (in milliseconds) that stale features will be returned if `staleWhileRevalidate` is true and new features cannot be fetched.\n\n- `enableTracking`: Set to `false` to stop sending tracking events and user/company updates to Bucket. Useful when you're impersonating a user (defaults to `true`),\n- `apiBaseUrl`: Optional base URL for the Bucket API. Use this to override the default API endpoint,\n- `appBaseUrl`: Optional base URL for the Bucket application. Use this to override the default app URL,\n- `sseBaseUrl`: Optional base URL for Server-Sent Events. Use this to override the default SSE endpoint,\n- `debug`: Set to `true` to enable debug logging to the console,\n- `toolbar`: Optional [configuration](https://docs.bucket.co/supported-languages/browser-sdk/globals#toolbaroptions) for the Bucket toolbar,\n- `feedback`: Optional configuration for feedback collection\n\n### Loading states\n\nBucketProvider lets you define a template to be shown while BucketProvider is inititalizing:\n\n```vue\n<template>\n  <BucketProvider\n    :publishable-key=\"publishableKey\"\n    :user=\"user\"\n    :company=\"{ id: 'acme_inc', plan: 'pro' }\"\n  >\n    <template #loading>Loading...</template>\n    <StartHuddleButton />\n  </BucketProvider>\n</template>\n```\n\nIf you want more control over loading screens, `useIsLoading()` returns a Ref<boolean> which you can use to customize the loading experience.\n\n## Hooks\n\n### `useFeature()`\n\nReturns the state of a given feature for the current context. The composable provides access to feature flags and their configurations.\n\n`useFeature()` returns an object with this shape:\n\n```ts\n{\n  isEnabled: boolean, // is the feature enabled\n  track: () => void, // send a track event when the feature is used\n  requestFeedback: (...) => void // open up a feedback dialog\n  config: {key: string, payload: any},  // remote configuration for this feature\n  isLoading: boolean // if you want to manage loading state at the feature level\n}\n```\n\nExample:\n\n```vue\n<script setup lang=\"ts\">\nimport { useFeature } from \"@bucketco/vue-sdk\";\n\nconst { isEnabled, track, requestFeedback, config } = useFeature(\"huddle\");\n</script>\n\n<template>\n  <div v-if=\"isLoading\">Loading...</div>\n  <div v-else-if=\"!isEnabled\">Feature not available</div>\n  <div v-else>\n    <button @click=\"track()\">Start huddle!</button>\n    <button\n      @click=\"\n        (e) =>\n          requestFeedback({\n            title:\n              config.payload?.question ??\n              'How do you like the Huddles feature?',\n            position: {\n              type: 'POPOVER',\n              anchor: e.currentTarget as HTMLElement,\n            },\n          })\n      \"\n    >\n      Give feedback!\n    </button>\n  </div>\n</template>\n```\n\nSee the reference docs for details.\n\n### `useTrack()`\n\n`useTrack()` returns a function which lets you send custom events to Bucket. It takes a string argument with the event name and optionally an object with properties to attach the event.\n\nUsing `track` returned from `useFeature()` calles this track function with the feature key as the event name.\n\n```vue\n<script setup lang=\"ts\">\nimport { useTrack } from \"@bucketco/vue-sdk\";\n\nconst track = useTrack();\n</script>\n\n<template>\n  <div>\n    <button @click=\"track('Huddle Started', { huddleType: 'voice' })\">\n      Start voice huddle!\n    </button>\n  </div>\n</template>\n```\n\n### `useRequestFeedback()`\n\nReturns a function that lets you open up a dialog to ask for feedback on a specific feature. This is useful for collecting targeted feedback about specific features.\n\nSee [Automated Feedback Surveys](https://docs.bucket.co/product-handbook/live-satisfaction) for how to do this automatically, without code.\n\nWhen using the `useRequestFeedback` you must pass the feature key to `requestFeedback`.\nThe example below shows how to use `position` to ensure the popover appears next to the \"Give feedback!\" button.\n\n```vue\n<script setup lang=\"ts\">\nimport { useRequestFeedback } from \"@bucketco/vue-sdk\";\n\nconst requestFeedback = useRequestFeedback();\n</script>\n\n<template>\n  <button\n    @click=\"\n      (e) =>\n        requestFeedback({\n          featureKey: 'huddle-feature',\n          title: 'How satisfied are you with file uploads?',\n          position: {\n            type: 'POPOVER',\n            anchor: e.currentTarget as HTMLElement,\n          },\n          // Optional custom styling\n          style: {\n            theme: 'light',\n            primaryColor: '#007AFF',\n          },\n        })\n    \"\n  >\n    Give feedback!\n  </button>\n</template>\n```\n\nSee the [Feedback Documentation](https://github.com/bucketco/bucket-javascript-sdk/blob/main/packages/browser-sdk/FEEDBACK.md#manual-feedback-collection) for more information on `requestFeedback` options.\n\n### `useSendFeedback()`\n\nReturns a function that lets you send feedback to Bucket. This is useful if you've manually collected feedback through your own UI and want to send it to Bucket.\n\n```vue\n<script setup lang=\"ts\">\nimport { useSendFeedback } from \"@bucketco/vue-sdk\";\n\nconst sendFeedback = useSendFeedback();\n\nconst handleSubmit = async (data: FormData) => {\n  await sendFeedback({\n    featureKey: \"bucket-feature-key\",\n    score: parseInt(data.get(\"score\") as string),\n    comment: data.get(\"comment\") as string,\n  });\n};\n</script>\n\n<template>\n  <form @submit=\"handleSubmit\">\n    <!-- form content -->\n  </form>\n</template>\n```\n\n### `useUpdateUser()`, `useUpdateCompany()` and `useUpdateOtherContext()`\n\nThese composables return functions that let you update the attributes for the currently set user, company, or other context. Updates to user/company are stored remotely and affect feature targeting, while \"other\" context updates only affect the current session.\n\n```vue\n<script setup lang=\"ts\">\nimport {\n  useUpdateUser,\n  useUpdateCompany,\n  useUpdateOtherContext,\n} from \"@bucketco/vue-sdk\";\n\nconst updateUser = useUpdateUser();\nconst updateCompany = useUpdateCompany();\nconst updateOtherContext = useUpdateOtherContext();\n\nconst handleUserUpdate = async () => {\n  await updateUser({\n    role: \"admin\",\n    betaFeatures: \"enabled\",\n  });\n};\n\nconst handleCompanyUpdate = async () => {\n  await updateCompany({\n    plan: \"enterprise\",\n    employees: 500,\n  });\n};\n\nconst handleContextUpdate = async () => {\n  await updateOtherContext({\n    currentWorkspace: \"workspace-123\",\n    theme: \"dark\",\n  });\n};\n</script>\n\n<template>\n  <div>\n    <button @click=\"handleUserUpdate\">Update User</button>\n    <button @click=\"handleCompanyUpdate\">Update Company</button>\n    <button @click=\"handleContextUpdate\">Update Context</button>\n  </div>\n</template>\n```\n\nNote: To change the `user.id` or `company.id`, you need to update the props passed to `BucketProvider` instead of using these composables.\n\n### `useClient()`\n\nReturns the `BucketClient` used by the `BucketProvider`. The client offers more functionality that\nis not directly accessible through the other composables.\n\n```vue\n<script setup>\nimport { useClient } from \"@bucketco/vue-sdk\";\nimport { onMounted } from \"vue\";\n\nconst client = useClient();\n\nonMounted(() => {\n  client.value.on(\"check\", (evt) => {\n    console.log(`The feature ${evt.key} is ${evt.value} for user.`);\n  });\n});\n</script>\n\n<template>\n  <!-- your component content -->\n</template>\n```\n\n### `useIsLoading()`\n\nReturns a `Ref<boolean>` to indicate if Bucket has finished loading.\n\n## Content Security Policy (CSP)\n\nSee [CSP](https://github.com/bucketco/bucket-javascript-sdk/blob/main/packages/browser-sdk/README.md#content-security-policy-csp) for info on using Bucket React SDK with CSP\n\n## License\n\nMIT License\n\nCopyright (c) 2025 Bucket ApS\n","readmeFilename":"README.md"}