{"_id":"@djpanda/convex-tenants","_rev":"10-504c6f77464771c50048cec0893ead43","name":"@djpanda/convex-tenants","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.0":{"name":"@djpanda/convex-tenants","version":"0.1.0","keywords":["convex","component","multi-tenant","organizations","teams","members","invitations","authorization","saas"],"author":{"name":"djpanda"},"license":"MIT","_id":"@djpanda/convex-tenants@0.1.0","maintainers":[{"name":"djpanda","email":"dbjpanda@live.com"}],"homepage":"https://github.com/dbjpanda/convex-tenants#readme","bugs":{"url":"https://github.com/dbjpanda/convex-tenants/issues"},"dist":{"shasum":"426e1e32ed138da63349d6aed70261cad437c0a1","tarball":"https://registry.npmjs.org/@djpanda/convex-tenants/-/convex-tenants-0.1.0.tgz","fileCount":173,"integrity":"sha512-ZThtJrcxiuoR9kEpSQYFgU1PXjULqiH5MmJU+icom4XmpOvQgeijHF7zrqV3oB7zwkMkgj+nLKWjc8HxwOsQEg==","signatures":[{"sig":"MEUCIQCNQgmgIkc5DaoNMJ/U8EybwjzaOKnUPIV7PIUCaT92FgIgI0FwsSlst5V+tNU1nZL9riGyTlT+IXJe3qipFJd/vgk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":784373},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"a97954e68bfa45bfd12fede4b99f83b4aba1d0e6","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"djpanda","email":"dbjpanda@live.com"},"repository":{"url":"git+https://github.com/dbjpanda/convex-tenants.git","type":"git"},"_npmVersion":"11.6.2","description":"A multi-tenant organization and team management component for Convex with built-in authorization via @djpanda/convex-authz","directories":{},"_nodeVersion":"25.1.0","_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","vite":"7.2.6","react":"^19.2.1","convex":"1.31.0","eslint":"9.39.1","vitest":"3.2.4","cpy-cli":"^6.0.0","globals":"^16.5.0","zustand":"^5.0.9","prettier":"3.6.2","react-dom":"^19.2.1","@eslint/js":"9.39.1","pkg-pr-new":"^0.0.60","typescript":"5.9.3","@types/node":"^24.10.4","convex-test":"0.0.40","tailwindcss":"^4.1.17","@types/react":"^19.2.7","chokidar-cli":"3.0.0","lucide-react":"^0.555.0","npm-run-all2":"8.0.4","tailwind-merge":"^3.4.0","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.17","typescript-eslint":"8.47.0","eslint-plugin-react":"^7.37.5","@radix-ui/react-slot":"^1.2.4","@vitejs/plugin-react":"^5.1.1","@djpanda/convex-authz":"^0.1.3","class-variance-authority":"^0.7.1","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"clsx":"^2.0.0","react":"^18.3.1 || ^19.0.0","convex":"^1.29.3","zustand":"^4.0.0 || ^5.0.0","tailwind-merge":"^2.0.0 || ^3.0.0","@djpanda/convex-authz":"^0.1.0"},"peerDependenciesMeta":{"clsx":{"optional":true},"zustand":{"optional":true},"tailwind-merge":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/convex-tenants_0.1.0_1769638001789_0.08420275752018758","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@djpanda/convex-tenants","version":"0.1.1","keywords":["convex","component","multi-tenant","organizations","teams","members","invitations","authorization","saas"],"author":{"name":"djpanda"},"license":"MIT","_id":"@djpanda/convex-tenants@0.1.1","maintainers":[{"name":"djpanda","email":"dbjpanda@live.com"}],"homepage":"https://github.com/dbjpanda/convex-tenants#readme","bugs":{"url":"https://github.com/dbjpanda/convex-tenants/issues"},"dist":{"shasum":"d978f733285b049728961ab7c711efdc4e1e2b13","tarball":"https://registry.npmjs.org/@djpanda/convex-tenants/-/convex-tenants-0.1.1.tgz","fileCount":243,"integrity":"sha512-ch39ReFVLHuzyOp2uHxxt6qvI/Fazlq3s0UNIONf7AmuMCIaxHi3LcwPQO1UTFh5WMXU8XJnnJjAgfKQCU4bww==","signatures":[{"sig":"MEUCIDB/hzFvmg6Q9pnGurNXzUTw+Ur+zK9ta5/7kYRJ1yaEAiEA0ev8frKXS7aUQzqa13QWAk75EkhatV90Q7Hq4+xS9H0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":899249},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"6a3e79147569f99c4bc468c2113f68da3f66eb7a","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"djpanda","email":"dbjpanda@live.com"},"repository":{"url":"git+https://github.com/dbjpanda/convex-tenants.git","type":"git"},"_npmVersion":"11.6.2","description":"A multi-tenant organization and team management component for Convex with built-in authorization via @djpanda/convex-authz","directories":{},"_nodeVersion":"25.1.0","dependencies":{"radix-ui":"^1.4.3","lucide-react":"^0.555.0","class-variance-authority":"^0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","vite":"7.2.6","react":"^19.2.1","convex":"1.31.0","eslint":"9.39.1","vitest":"3.2.4","cpy-cli":"^6.0.0","globals":"^16.5.0","prettier":"3.6.2","react-dom":"^19.2.1","@eslint/js":"9.39.1","pkg-pr-new":"^0.0.60","typescript":"5.9.3","@types/node":"^24.10.4","convex-test":"0.0.40","tailwindcss":"^4.1.17","@types/react":"^19.2.7","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","tailwind-merge":"^3.4.0","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.17","typescript-eslint":"8.47.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.1","@djpanda/convex-authz":"^0.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"clsx":"^2.0.0","react":"^18.3.1 || ^19.0.0","convex":"^1.29.3","react-dom":"^18.3.1 || ^19.0.0","tailwind-merge":"^2.0.0 || ^3.0.0","@djpanda/convex-authz":"^0.1.0"},"peerDependenciesMeta":{"clsx":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"tailwind-merge":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/convex-tenants_0.1.1_1770494521116_0.4710363938382598","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@djpanda/convex-tenants","version":"0.1.2","keywords":["convex","component","multi-tenant","organizations","teams","members","invitations","authorization","saas"],"author":{"name":"djpanda"},"license":"MIT","_id":"@djpanda/convex-tenants@0.1.2","maintainers":[{"name":"djpanda","email":"dbjpanda@live.com"}],"homepage":"https://github.com/dbjpanda/convex-tenants#readme","bugs":{"url":"https://github.com/dbjpanda/convex-tenants/issues"},"dist":{"shasum":"b4c3166ceae59af2e53d1916a8d2c22326015a7d","tarball":"https://registry.npmjs.org/@djpanda/convex-tenants/-/convex-tenants-0.1.2.tgz","fileCount":243,"integrity":"sha512-l++Jdz6icOsXAmtbiytKAwf69h94hMT+s1JUFVRR4wpp2FYJbd3nxKVnRUdyaWzblWGOfYXxQaUNkYdKfmgOKg==","signatures":[{"sig":"MEYCIQDWCg0gNNUTMuQnB/tsi52o7/zk01KrAsnY2XJOcHvJkAIhAOFxVVkw9V2qkdm2NW/2SpjAXDoagXSLwzfttcyU7Fka","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@djpanda%2fconvex-tenants@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":899383},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"7910d5681345963b48a835e69c84a6844f4a6fbc","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && git push --follow-tags","version":"node -e \"const fs=require('fs');const c=fs.readFileSync('CHANGELOG.md','utf8');const h='# Changelog';const entry='## '+process.env.npm_package_version;fs.writeFileSync('CHANGELOG.md',c.replace(h,h+'\\n\\n'+entry))\" && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"djpanda","email":"dbjpanda@live.com"},"repository":{"url":"git+https://github.com/dbjpanda/convex-tenants.git","type":"git"},"_npmVersion":"11.6.2","description":"A multi-tenant organization and team management component for Convex with built-in authorization via @djpanda/convex-authz","directories":{},"_nodeVersion":"24.13.0","dependencies":{"radix-ui":"^1.4.3","lucide-react":"^0.555.0","class-variance-authority":"^0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","vite":"7.2.6","react":"^19.2.1","convex":"1.31.0","eslint":"9.39.1","vitest":"3.2.4","cpy-cli":"^6.0.0","globals":"^16.5.0","prettier":"3.6.2","react-dom":"^19.2.1","@eslint/js":"9.39.1","pkg-pr-new":"^0.0.60","typescript":"5.9.3","@types/node":"^24.10.4","convex-test":"0.0.40","tailwindcss":"^4.1.17","@types/react":"^19.2.7","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","tailwind-merge":"^3.4.0","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.17","typescript-eslint":"8.47.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.1","@djpanda/convex-authz":"^0.1.3","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"clsx":"^2.0.0","react":"^18.3.1 || ^19.0.0","convex":"^1.29.3","react-dom":"^18.3.1 || ^19.0.0","tailwind-merge":"^2.0.0 || ^3.0.0","@djpanda/convex-authz":"^0.1.0"},"peerDependenciesMeta":{"clsx":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"tailwind-merge":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/convex-tenants_0.1.2_1770499836532_0.2168236273557118","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@djpanda/convex-tenants","version":"0.1.4","keywords":["convex","component","multi-tenant","organizations","teams","members","invitations","authorization","saas"],"author":{"name":"djpanda"},"license":"MIT","_id":"@djpanda/convex-tenants@0.1.4","maintainers":[{"name":"djpanda","email":"dbjpanda@live.com"}],"homepage":"https://github.com/dbjpanda/convex-tenants#readme","bugs":{"url":"https://github.com/dbjpanda/convex-tenants/issues"},"dist":{"shasum":"1a7dd2eedda1fdb0282eeac3d68a861bbe900a7b","tarball":"https://registry.npmjs.org/@djpanda/convex-tenants/-/convex-tenants-0.1.4.tgz","fileCount":252,"integrity":"sha512-mg60BdwGjbTw2Ez1X2sXRYZksBxAyDzTE2262Pp6JQSsM9NkkdClRHeCAQ7z02JaucKr2DX0SyhnKpxeOhSjvA==","signatures":[{"sig":"MEQCIHpHoiNon7ACjVZbVKtF4BrG1QPpfsSPIxygN45wy/v0AiB7rN2nYr+8NQihznOEI4hrOKW5cg/Q7O64PQI/CupSNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@djpanda%2fconvex-tenants@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":954050},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"78729b505eb287ca17ada11a18a3a9695346309a","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && git push --follow-tags","version":"node -e \"const fs=require('fs');const c=fs.readFileSync('CHANGELOG.md','utf8');const h='# Changelog';const entry='## '+process.env.npm_package_version;fs.writeFileSync('CHANGELOG.md',c.replace(h,h+'\\n\\n'+entry))\" && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"djpanda","email":"dbjpanda@live.com"},"repository":{"url":"git+https://github.com/dbjpanda/convex-tenants.git","type":"git"},"_npmVersion":"11.6.2","description":"A multi-tenant organization and team management component for Convex with built-in authorization via @djpanda/convex-authz","directories":{},"_nodeVersion":"24.13.0","dependencies":{"radix-ui":"^1.4.3","lucide-react":"^0.555.0","class-variance-authority":"^0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","vite":"7.2.6","react":"^19.2.1","convex":"1.31.0","eslint":"9.39.1","vitest":"3.2.4","cpy-cli":"^6.0.0","globals":"^16.5.0","prettier":"3.6.2","react-dom":"^19.2.1","@eslint/js":"9.39.1","pkg-pr-new":"^0.0.60","typescript":"5.9.3","@types/node":"^24.10.4","convex-test":"0.0.40","tailwindcss":"^4.1.17","@types/react":"^19.2.7","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","tailwind-merge":"^3.4.0","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.17","typescript-eslint":"8.47.0","@vitest/coverage-v8":"^3.2.4","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.1","@djpanda/convex-authz":"^0.1.7","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"clsx":"^2.0.0","react":"^18.3.1 || ^19.0.0","convex":"^1.29.3","react-dom":"^18.3.1 || ^19.0.0","tailwind-merge":"^2.0.0 || ^3.0.0","@djpanda/convex-authz":"0.1.7"},"peerDependenciesMeta":{"clsx":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"tailwind-merge":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/convex-tenants_0.1.4_1770679009696_0.7939103041677484","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@djpanda/convex-tenants","version":"0.1.5","keywords":["convex","component","multi-tenant","organizations","teams","members","invitations","authorization","saas"],"author":{"name":"djpanda"},"license":"MIT","_id":"@djpanda/convex-tenants@0.1.5","maintainers":[{"name":"djpanda","email":"dbjpanda@live.com"}],"homepage":"https://github.com/dbjpanda/convex-tenants#readme","bugs":{"url":"https://github.com/dbjpanda/convex-tenants/issues"},"dist":{"shasum":"b032c075334f53dc2d51688255c8b8ae63f12d2a","tarball":"https://registry.npmjs.org/@djpanda/convex-tenants/-/convex-tenants-0.1.5.tgz","fileCount":308,"integrity":"sha512-1/wbx4gCyQyPmrV/lM+4hOEJC1kXm3m3cHgfBbhSvIzcK6ErgFpGlZBUHy0pPHyfDrsZ2dBvr8iCmozgzPggOQ==","signatures":[{"sig":"MEUCIHeHmwSaBXGT+AuoRhMjk0zqwNhHaPcqxgwJG+kY+iknAiEA1aYz80kfrRr+ZdLzN7rGi9DjSts02k/x3kH/p+7juQo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@djpanda%2fconvex-tenants@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1263944},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"a27c298dbb9fd96be9d79768e2aec0f3cf3e4242","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && git push --follow-tags","version":"node -e \"const fs=require('fs');const c=fs.readFileSync('CHANGELOG.md','utf8');const h='# Changelog';const entry='## '+process.env.npm_package_version;fs.writeFileSync('CHANGELOG.md',c.replace(h,h+'\\n\\n'+entry))\" && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","test:example":"vitest run --typecheck example/tests","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"djpanda","email":"dbjpanda@live.com"},"repository":{"url":"git+https://github.com/dbjpanda/convex-tenants.git","type":"git"},"_npmVersion":"11.6.2","description":"A multi-tenant organization and team management component for Convex with built-in authorization via @djpanda/convex-authz","directories":{},"_nodeVersion":"24.13.0","dependencies":{"radix-ui":"^1.4.3","lucide-react":"^0.555.0","class-variance-authority":"^0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","vite":"7.2.6","react":"^19.2.1","convex":"1.31.0","eslint":"9.39.1","vitest":"3.2.4","cpy-cli":"^6.0.0","globals":"^16.5.0","prettier":"3.6.2","react-dom":"^19.2.1","@eslint/js":"9.39.1","pkg-pr-new":"^0.0.60","typescript":"5.9.3","@types/node":"^24.10.4","convex-test":"0.0.40","tailwindcss":"^4.1.17","@types/react":"^19.2.7","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","tailwind-merge":"^3.4.0","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.17","typescript-eslint":"8.47.0","@vitest/coverage-v8":"^3.2.4","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.1","@djpanda/convex-authz":"^0.1.7","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"clsx":"^2.0.0","react":"^18.3.1 || ^19.0.0","convex":"^1.29.3","react-dom":"^18.3.1 || ^19.0.0","tailwind-merge":"^2.0.0 || ^3.0.0","@djpanda/convex-authz":"0.1.7"},"peerDependenciesMeta":{"clsx":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"tailwind-merge":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/convex-tenants_0.1.5_1770854747507_0.44154339584672764","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@djpanda/convex-tenants","version":"0.1.6","keywords":["convex","component","multi-tenant","organizations","teams","members","invitations","authorization","saas"],"author":{"name":"djpanda"},"license":"MIT","_id":"@djpanda/convex-tenants@0.1.6","maintainers":[{"name":"djpanda","email":"dbjpanda@live.com"}],"homepage":"https://github.com/dbjpanda/convex-tenants#readme","bugs":{"url":"https://github.com/dbjpanda/convex-tenants/issues"},"dist":{"shasum":"8b9b43d711bd57a58bd2b00a41e454f685c2d2f6","tarball":"https://registry.npmjs.org/@djpanda/convex-tenants/-/convex-tenants-0.1.6.tgz","fileCount":328,"integrity":"sha512-JYKqQxmrPel38RclHwBiSVhyOAvbMJF8a3ln0yvRosg3Qudno7mbQkRicideWUDo9HSVAYbD7iUn/DPZtIVYyA==","signatures":[{"sig":"MEUCIH4rgLtudAvJCJW2cviXgVrOwKFa1DE6i5oCLxeocYANAiEAyEqvD0U7OqEgENNl4RYlbYOLPiS/NS9g+xMdWyJxwEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@djpanda%2fconvex-tenants@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1359024},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"991da3c118502dd0cca47a396829b1b80ba7dc2b","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && git push --follow-tags","version":"node -e \"const fs=require('fs');const c=fs.readFileSync('CHANGELOG.md','utf8');const h='# Changelog';const entry='## '+process.env.npm_package_version;fs.writeFileSync('CHANGELOG.md',c.replace(h,h+'\\n\\n'+entry))\" && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","test:example":"vitest run --typecheck example/tests","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"djpanda","email":"dbjpanda@live.com"},"repository":{"url":"git+https://github.com/dbjpanda/convex-tenants.git","type":"git"},"_npmVersion":"11.6.2","description":"A multi-tenant organization and team management component for Convex with built-in authorization via @djpanda/convex-authz","directories":{},"_nodeVersion":"24.13.0","dependencies":{"radix-ui":"^1.4.3","lucide-react":"^0.555.0","class-variance-authority":"^0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","vite":"7.2.6","react":"^19.2.1","convex":"1.31.0","eslint":"9.39.1","vitest":"3.2.4","cpy-cli":"^6.0.0","globals":"^16.5.0","prettier":"3.6.2","react-dom":"^19.2.1","@eslint/js":"9.39.1","pkg-pr-new":"^0.0.60","typescript":"5.9.3","@types/node":"^24.10.4","convex-test":"0.0.40","tailwindcss":"^4.1.17","@types/react":"^19.2.7","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","tailwind-merge":"^3.4.0","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.1.17","typescript-eslint":"8.47.0","@vitest/coverage-v8":"^3.2.4","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^5.1.1","@djpanda/convex-authz":"^0.1.7","@convex-dev/eslint-plugin":"^1.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"clsx":"^2.0.0","react":"^18.3.1 || ^19.0.0","convex":"^1.29.3","react-dom":"^18.3.1 || ^19.0.0","tailwind-merge":"^2.0.0 || ^3.0.0","@djpanda/convex-authz":"0.1.7"},"peerDependenciesMeta":{"clsx":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"tailwind-merge":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/convex-tenants_0.1.6_1771324457020_0.09855243550156345","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@djpanda/convex-tenants","version":"0.4.0","keywords":["convex","component","multi-tenant","organizations","teams","members","invitations","authorization","saas"],"author":{"name":"djpanda"},"license":"MIT","_id":"@djpanda/convex-tenants@0.4.0","maintainers":[{"name":"djpanda","email":"dbjpanda@live.com"}],"homepage":"https://github.com/dbjpanda/convex-tenants#readme","bugs":{"url":"https://github.com/dbjpanda/convex-tenants/issues"},"dist":{"shasum":"cb562054b4a270c6429faf84dc4d80b87cdbbc2d","tarball":"https://registry.npmjs.org/@djpanda/convex-tenants/-/convex-tenants-0.4.0.tgz","fileCount":312,"integrity":"sha512-EzdljBqQWLyTWF3gwOcH8pnM77YaZTYibER/CmGpZRzHDf0nnU6DhAhrGdUYeAwjhr+HeU+MBaMzAMFu75fbkQ==","signatures":[{"sig":"MEUCIQCpJ9Dz9TIH74fFuFE6f820sEIRKs/Z5yse+94Q/2IJmAIgcyNXUAEf7VTU4mWuRbT/UL46pjhyF9lX5C5MG/UgXcM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@djpanda%2fconvex-tenants@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1597396},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":{"types":"./dist/test.d.ts","import":"./dist/test.js","default":"./dist/test.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js","@convex-dev/component-source":"./src/react/index.ts"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"43720e10131e28142d6de099bd3f861ca7da255c","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && git push --follow-tags","version":"node -e \"const fs=require('fs');const c=fs.readFileSync('CHANGELOG.md','utf8');const h='# Changelog';const entry='## '+process.env.npm_package_version;fs.writeFileSync('CHANGELOG.md',c.replace(h,h+'\\n\\n'+entry))\" && prettier -w CHANGELOG.md && git add CHANGELOG.md","test:e2e":"cd example && npx playwright test","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.{ts,tsx}' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","test:e2e:ui":"cd example && npx playwright test --ui","dev:frontend":"cd example && vite --clearScreen false","test:example":"vitest run --typecheck example/tests","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77834d71-5cbc-43ed-9a1c-1571c6c55630"}},"repository":{"url":"git+https://github.com/dbjpanda/convex-tenants.git","type":"git"},"_npmVersion":"11.11.0","description":"A multi-tenant organization and team management component for Convex with built-in authorization via @djpanda/convex-authz","directories":{},"_nodeVersion":"24.14.1","dependencies":{"radix-ui":"^1.4.3","lucide-react":"^1.8.0","class-variance-authority":"^0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","vite":"8.0.8","react":"^19.2.5","convex":"1.35.1","eslint":"10.2.0","vitest":"4.1.4","cpy-cli":"^7.0.0","globals":"^17.5.0","prettier":"3.8.2","react-dom":"^19.2.5","@eslint/js":"10.0.1","pkg-pr-new":"^0.0.66","typescript":"6.0.2","@types/node":"^25.6.0","convex-test":"0.0.47","tailwindcss":"^4.2.2","@types/react":"^19.2.14","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","tailwind-merge":"^3.5.0","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.5","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.2.2","typescript-eslint":"8.58.1","@vitest/coverage-v8":"^4.1.4","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","@djpanda/convex-authz":"^2.3.1","@convex-dev/eslint-plugin":"^2.0.0","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"clsx":"^2.0.0","react":"^18.3.1 || ^19.0.0","convex":"^1.35.1","react-dom":"^18.3.1 || ^19.0.0","tailwind-merge":"^2.0.0 || ^3.0.0","@djpanda/convex-authz":"^2.3.1"},"peerDependenciesMeta":{"clsx":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"tailwind-merge":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/convex-tenants_0.4.0_1777983835112_0.2272790848266022","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@djpanda/convex-tenants","version":"0.4.1","keywords":["convex","component","multi-tenant","organizations","teams","members","invitations","authorization","saas"],"author":{"name":"djpanda"},"license":"MIT","_id":"@djpanda/convex-tenants@0.4.1","maintainers":[{"name":"djpanda","email":"dbjpanda@live.com"}],"homepage":"https://github.com/dbjpanda/convex-tenants#readme","bugs":{"url":"https://github.com/dbjpanda/convex-tenants/issues"},"dist":{"shasum":"7f3a33b3d6c373e886c1f4ae619c284cb1369183","tarball":"https://registry.npmjs.org/@djpanda/convex-tenants/-/convex-tenants-0.4.1.tgz","fileCount":312,"integrity":"sha512-cBXCtl03uFyN+BUBUz6AHHJbWnf88cMik/8zE5QY2x+6iepRY2OhJE4C4okouAkTc9vbTT4YWKfIMw2qZZ0iIQ==","signatures":[{"sig":"MEUCID0zbTj2xgSa4jfHJABd7fcBloZRWcXzF39++IoO3DnTAiEAi2A6DtHAWuFPIviFUohg1kPuexOJNbP/WVL44+E3ZZ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@djpanda%2fconvex-tenants@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1599014},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":{"types":"./dist/test.d.ts","import":"./dist/test.js","default":"./dist/test.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js","@convex-dev/component-source":"./src/react/index.ts"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"f0032c073ed4f07848df9022d73dee39f1c39e1c","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && git push --follow-tags","version":"node -e \"const fs=require('fs');const c=fs.readFileSync('CHANGELOG.md','utf8');const h='# Changelog';const entry='## '+process.env.npm_package_version;fs.writeFileSync('CHANGELOG.md',c.replace(h,h+'\\n\\n'+entry))\" && prettier -w CHANGELOG.md && git add CHANGELOG.md","test:e2e":"cd example && npx playwright test","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.{ts,tsx}' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","test:e2e:ui":"cd example && npx playwright test --ui","dev:frontend":"cd example && vite --clearScreen false","test:example":"vitest run --typecheck example/tests","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77834d71-5cbc-43ed-9a1c-1571c6c55630"}},"repository":{"url":"git+https://github.com/dbjpanda/convex-tenants.git","type":"git"},"_npmVersion":"11.11.0","description":"A multi-tenant organization and team management component for Convex with built-in authorization via @djpanda/convex-authz","directories":{},"_nodeVersion":"24.14.1","dependencies":{"radix-ui":"^1.4.3","lucide-react":"^1.8.0","class-variance-authority":"^0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","vite":"8.0.8","react":"^19.2.5","convex":"1.35.1","eslint":"10.2.0","vitest":"4.1.4","cpy-cli":"^7.0.0","globals":"^17.5.0","prettier":"3.8.2","react-dom":"^19.2.5","@eslint/js":"10.0.1","pkg-pr-new":"^0.0.66","typescript":"6.0.2","@types/node":"^25.6.0","convex-test":"0.0.47","tailwindcss":"^4.2.2","@types/react":"^19.2.14","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","tailwind-merge":"^3.5.0","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.5","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.2.2","typescript-eslint":"8.58.1","@vitest/coverage-v8":"^4.1.4","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","@djpanda/convex-authz":"^2.3.1","@convex-dev/eslint-plugin":"^2.0.0","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"clsx":"^2.0.0","react":"^18.3.1 || ^19.0.0","convex":"^1.35.1","react-dom":"^18.3.1 || ^19.0.0","tailwind-merge":"^2.0.0 || ^3.0.0","@djpanda/convex-authz":"^2.3.1"},"peerDependenciesMeta":{"clsx":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"tailwind-merge":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/convex-tenants_0.4.1_1777984468527_0.40391965143834296","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@djpanda/convex-tenants","version":"0.4.2","keywords":["convex","component","multi-tenant","organizations","teams","members","invitations","authorization","saas"],"author":{"name":"djpanda"},"license":"MIT","_id":"@djpanda/convex-tenants@0.4.2","maintainers":[{"name":"djpanda","email":"dbjpanda@live.com"}],"homepage":"https://github.com/dbjpanda/convex-tenants#readme","bugs":{"url":"https://github.com/dbjpanda/convex-tenants/issues"},"dist":{"shasum":"c21c44d49bcf7aca54ef77483c3fdde53eaa630d","tarball":"https://registry.npmjs.org/@djpanda/convex-tenants/-/convex-tenants-0.4.2.tgz","fileCount":312,"integrity":"sha512-k304JMt5/NOqQH9zmLdh7HTFzA4IumXdS/TnINEp4KzuDFEafhFqbOhoY0U5UgnXmjFOvLsRewPapLeSpvD59g==","signatures":[{"sig":"MEQCICy37mSO74k0OsuDW/jJ4OI7VsPtBa2Hr1osKglVIJ+uAiAeGj5TQLlZnX8HMoney7oiTiF09r2kX8UioU937Kwm4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@djpanda%2fconvex-tenants@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1598919},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js","@convex-dev/component-source":"./src/react/index.ts"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"403516a6ed1e14380ca977d94b3c851636923a1f","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && git push --follow-tags","version":"node -e \"const fs=require('fs');const c=fs.readFileSync('CHANGELOG.md','utf8');const h='# Changelog';const entry='## '+process.env.npm_package_version;fs.writeFileSync('CHANGELOG.md',c.replace(h,h+'\\n\\n'+entry))\" && prettier -w CHANGELOG.md && git add CHANGELOG.md","test:e2e":"cd example && npx playwright test","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.{ts,tsx}' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","test:e2e:ui":"cd example && npx playwright test --ui","dev:frontend":"cd example && vite --clearScreen false","test:example":"vitest run --typecheck example/tests","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77834d71-5cbc-43ed-9a1c-1571c6c55630"}},"repository":{"url":"git+https://github.com/dbjpanda/convex-tenants.git","type":"git"},"_npmVersion":"11.11.0","description":"A multi-tenant organization and team management component for Convex with built-in authorization via @djpanda/convex-authz","directories":{},"_nodeVersion":"24.14.1","dependencies":{"radix-ui":"^1.4.3","lucide-react":"^1.8.0","class-variance-authority":"^0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"^2.1.1","vite":"8.0.8","react":"^19.2.5","convex":"1.35.1","eslint":"10.2.0","vitest":"4.1.4","cpy-cli":"^7.0.0","globals":"^17.5.0","prettier":"3.8.2","react-dom":"^19.2.5","@eslint/js":"10.0.1","pkg-pr-new":"^0.0.66","typescript":"6.0.2","@types/node":"^25.6.0","convex-test":"0.0.47","tailwindcss":"^4.2.2","@types/react":"^19.2.14","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","tailwind-merge":"^3.5.0","path-exists-cli":"2.0.0","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.5","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.2.2","typescript-eslint":"8.58.1","@vitest/coverage-v8":"^4.1.4","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","@djpanda/convex-authz":"^2.3.1","@convex-dev/eslint-plugin":"^2.0.0","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"clsx":"^2.0.0","react":"^18.3.1 || ^19.0.0","convex":"^1.35.1","react-dom":"^18.3.1 || ^19.0.0","tailwind-merge":"^2.0.0 || ^3.0.0","@djpanda/convex-authz":"^2.3.1"},"peerDependenciesMeta":{"clsx":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"tailwind-merge":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/convex-tenants_0.4.2_1777987190478_0.2581211082315187","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@djpanda/convex-tenants","description":"A multi-tenant organization and team management component for Convex with built-in authorization via @djpanda/convex-authz","repository":{"type":"git","url":"git+https://github.com/dbjpanda/convex-tenants.git"},"homepage":"https://github.com/dbjpanda/convex-tenants#readme","bugs":{"url":"https://github.com/dbjpanda/convex-tenants/issues"},"version":"0.5.0","license":"MIT","author":{"name":"djpanda"},"keywords":["convex","component","multi-tenant","organizations","teams","members","invitations","authorization","saas"],"type":"module","scripts":{"dev":"run-p -r 'dev:*'","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.{ts,tsx}' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","build":"tsc --project ./tsconfig.build.json","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","lint":"eslint .","all":"run-p -r 'dev:*' 'test:watch'","test":"vitest run --typecheck","test:example":"vitest run --typecheck example/tests","test:watch":"vitest --typecheck --clearScreen false","test:debug":"vitest --inspect-brk --no-file-parallelism","test:coverage":"vitest run --coverage --coverage.reporter=text","test:e2e":"cd example && npx playwright test","test:e2e:ui":"cd example && npx playwright test --ui","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","release":"npm version patch && git push --follow-tags","version":"node -e \"const fs=require('fs');const c=fs.readFileSync('CHANGELOG.md','utf8');const h='# Changelog';const entry='## '+process.env.npm_package_version;fs.writeFileSync('CHANGELOG.md',c.replace(h,h+'\\n\\n'+entry))\" && prettier -w CHANGELOG.md && git add CHANGELOG.md"},"exports":{"./package.json":"./package.json",".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./react":{"types":"./dist/react/index.d.ts","@convex-dev/component-source":"./src/react/index.ts","default":"./dist/react/index.js"},"./test":"./src/test.ts","./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"},"./_generated/component":{"types":"./dist/component/_generated/component.d.ts"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"}},"peerDependencies":{"@djpanda/convex-authz":"^2.3.1","clsx":"^2.0.0","convex":"^1.35.1","react":"^18.3.1 || ^19.0.0","react-dom":"^18.3.1 || ^19.0.0","tailwind-merge":"^2.0.0 || ^3.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"clsx":{"optional":true},"tailwind-merge":{"optional":true}},"devDependencies":{"@convex-dev/eslint-plugin":"^2.0.0","@djpanda/convex-authz":"^2.3.1","@edge-runtime/vm":"^5.0.0","@eslint/eslintrc":"^3.3.5","@eslint/js":"10.0.1","@tailwindcss/vite":"^4.2.2","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.1","@vitest/coverage-v8":"^4.1.4","chokidar-cli":"3.0.0","clsx":"^2.1.1","convex":"1.35.1","convex-test":"0.0.47","cpy-cli":"^7.0.0","eslint":"10.2.0","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.2","globals":"^17.5.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","pkg-pr-new":"^0.0.66","prettier":"3.8.2","react":"^19.2.5","react-dom":"^19.2.5","tailwind-merge":"^3.5.0","tailwindcss":"^4.2.2","typescript":"6.0.2","typescript-eslint":"8.58.1","vite":"8.0.8","vitest":"4.1.4"},"types":"./dist/client/index.d.ts","module":"./dist/client/index.js","dependencies":{"class-variance-authority":"^0.7.1","lucide-react":"^1.8.0","radix-ui":"^1.4.3"},"gitHead":"1616d83b33e300acbe6ce648b7b5ecea94dba058","_id":"@djpanda/convex-tenants@0.5.0","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-c8PXxjY8s3wdG/Pb7bJ4TDGOsrM/wDJUk75MMFRCtI/QBLODPoviYx7hQ29vak170JyAbShSbSdlrhU+gdishA==","shasum":"2a0589e4e6139e0a14de61ba271438dcddd19a8b","tarball":"https://registry.npmjs.org/@djpanda/convex-tenants/-/convex-tenants-0.5.0.tgz","fileCount":312,"unpackedSize":1613445,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@djpanda%2fconvex-tenants@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCxBMCqhpdzDQ5M43gauNvqHeVNDnb1v0RzCzLz5Iru+wIhAJO4JTBoKDGjsHQOn4onW7jAbS6Mih3B8OQb1osNZ4Dx"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77834d71-5cbc-43ed-9a1c-1571c6c55630"}},"directories":{},"maintainers":[{"name":"djpanda","email":"dbjpanda@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/convex-tenants_0.5.0_1778413058023_0.10622213359997401"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-28T22:06:41.640Z","modified":"2026-05-10T11:37:38.463Z","0.1.0":"2026-01-28T22:06:41.941Z","0.1.1":"2026-02-07T20:02:01.327Z","0.1.2":"2026-02-07T21:30:36.687Z","0.1.4":"2026-02-09T23:16:49.891Z","0.1.5":"2026-02-12T00:05:47.744Z","0.1.6":"2026-02-17T10:34:17.218Z","0.4.0":"2026-05-05T12:23:55.384Z","0.4.1":"2026-05-05T12:34:28.697Z","0.4.2":"2026-05-05T13:19:50.664Z","0.5.0":"2026-05-10T11:37:38.191Z"},"bugs":{"url":"https://github.com/dbjpanda/convex-tenants/issues"},"author":{"name":"djpanda"},"license":"MIT","homepage":"https://github.com/dbjpanda/convex-tenants#readme","keywords":["convex","component","multi-tenant","organizations","teams","members","invitations","authorization","saas"],"repository":{"type":"git","url":"git+https://github.com/dbjpanda/convex-tenants.git"},"description":"A multi-tenant organization and team management component for Convex with built-in authorization via @djpanda/convex-authz","maintainers":[{"name":"djpanda","email":"dbjpanda@live.com"}],"readme":"# @djpanda/convex-tenants\n\nA multi-tenant organization and team management component for [Convex](https://convex.dev) with flexible, developer-defined authorization via [`@djpanda/convex-authz`](https://github.com/dbjpanda/convex-authz).\n\n## Features\n\n- **Organizations** — Create, update, delete; unique slugs; optional status (`active` / `suspended` / `archived`); transfer ownership; list filtered by status; mutations blocked when org is suspended/archived (reactivate via `updateOrganization` with `status: \"active\"`)\n- **Members** — Add, remove, update roles; roles are flexible strings you define in authz; cursor-based [paginated list](docs/api-reference.md) for large member lists\n- **Teams** — Create teams with optional slug and metadata; manage membership; [paginated lists](docs/api-reference.md) for teams and for team members\n- **Invitations** — Flexible identifier-based invitations (email, phone, username, etc.); customizable validation callbacks for create and accept; optional message and team assignment; customizable expiration; [paginated list](docs/api-reference.md)\n- **Authorization** — Define permissions and roles in `authz.ts` with `@djpanda/convex-authz`; customizable [permission map](docs/permission-map.md)\n- **React** — Hooks, `TenantsProvider`, and pre-built UI (switcher, members, teams, invitations); [organization store](docs/organization-store.md) with configurable storage key\n\n## Installation\n\n```bash\nnpm install @djpanda/convex-tenants @djpanda/convex-authz\n```\n\nFor React UI: `npm install clsx tailwind-merge` (optional peer deps).\n\n## Quick Start\n\n1. Register `tenants` and `authz` in `convex/convex.config.ts`.\n2. Create `convex/authz.ts` with permissions and roles (use `TENANTS_PERMISSIONS` / `TENANTS_ROLES` from this package).\n3. Create `convex/tenants.ts` with `makeTenantsAPI(components.tenants, { authz, auth, getUser, ... })` and export the returned functions.\n4. Use the exported queries/mutations in your app (e.g. `useQuery(api.tenants.listOrganizations)`).\n\n**Full walkthrough:** [Quick Start](docs/quick-start.md).\n\n## Documentation\n\n| Topic | Description |\n|-------|-------------|\n| [Quick Start](docs/quick-start.md) | Step-by-step setup and first API usage |\n| [API Reference](docs/api-reference.md) | All `makeTenantsAPI` options and functions |\n| [Permission Map](docs/permission-map.md) | Default permissions per operation and overrides |\n| [Flexible Roles](docs/flexible-roles.md) | Custom roles and structural owner rules |\n| [Invitation System](docs/invitation-system.md) | Flexible identifier validation and examples |\n| [Migration Guide](MIGRATION_GUIDE.md) | Breaking changes and upgrade instructions |\n| [React Components](docs/react-components.md) | TenantsProvider, OrganizationSwitcher, sections, dialogs |\n| [Organization Store](docs/organization-store.md) | Active-org state and configurable storage key |\n\n## Exported constants\n\n| Export | Description |\n|--------|-------------|\n| `TENANTS_PERMISSIONS` | Default permissions; use with `definePermissions()` from `@djpanda/convex-authz`. |\n| `TENANTS_ROLES` | Default roles (`owner`, `admin`, `member`); use with `defineRoles()`. |\n| `DEFAULT_TENANTS_PERMISSION_MAP` | Operation → permission mapping. |\n| `TENANTS_REQUIRED_PERMISSIONS` | Flat list of permission strings used by default. |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}