{"id":182199108,"number":"2.9.1","published_at":"2026-03-23T16:50:45.955Z","licenses":"MIT","integrity":"sha512-dQVco7b5vyulIC4o5Ntsasf4E7+5pG/WLqcMNuxfXpScppN8gdKd2IrdW6w3gekTLUkuS/WRWctbC3b/3tKH+g==","status":null,"download_url":"https://registry.npmjs.org/@btst/stack/-/stack-2.9.1.tgz","registry_url":"https://www.npmjs.com/package/@btst/stack/v/2.9.1","documentation_url":null,"install_command":"npm install @btst/stack@2.9.1","immutable":null,"metadata":{"deprecated":null,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:316b50e2-c410-442b-b016-1cc0bddd6ee3"}},"dist":{"shasum":"7356542b157e15e9f80e1ede6e4cddb5ee6c8d56","tarball":"https://registry.npmjs.org/@btst/stack/-/stack-2.9.1.tgz","fileCount":3092,"integrity":"sha512-dQVco7b5vyulIC4o5Ntsasf4E7+5pG/WLqcMNuxfXpScppN8gdKd2IrdW6w3gekTLUkuS/WRWctbC3b/3tKH+g==","signatures":[{"sig":"MEYCIQD++nRT5OtB1DVJem1DWgoVONa91JM4NoUVH573lD//WwIhAPNj4HzMvEbA/z+iMSDyrGnS5CSt8T/YKNfXmmbqCqvF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@btst%2fstack@2.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15101415},"gitHead":"7d1c39a7881bf07b29e9d468b822ca738f0cc412","main":"./dist/index.cjs","scripts":{"knip":"knip --strict","stub":"unbuild --stub","test":"vitest","build":"NODE_OPTIONS='--max-old-space-size=8192' unbuild --clean \u0026\u0026 node ./scripts/postbuild.cjs","typecheck":"tsc --project tsconfig.json","build:analyze":"NODE_OPTIONS='--max-old-space-size=8192' ANALYZE=1 unbuild --clean \u0026\u0026 node ./scripts/postbuild.cjs","host-registry":"npx http-server registry -p 8766 -c-1","test-registry":"bash scripts/test-registry.sh","build-registry":"tsx scripts/build-registry.ts"},"_npmVersion":"11.12.0","_nodeVersion":"22.22.1","_hasShrinkwrap":false,"directories":{},"engines":null,"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./api":{"import":{"types":"./dist/api/index.d.ts","default":"./dist/api/index.mjs"},"require":{"types":"./dist/api/index.d.cts","default":"./dist/api/index.cjs"}},"./client":{"import":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.mjs"},"require":{"types":"./dist/client/index.d.cts","default":"./dist/client/index.cjs"}},"./dist/*":"./dist/*","./ui/css":"./dist/ui/components.css","./context":{"import":{"types":"./dist/context/index.d.ts","default":"./dist/context/index.mjs"},"require":{"types":"./dist/context/index.d.cts","default":"./dist/context/index.cjs"}},"./plugins/api":{"import":{"types":"./dist/plugins/api/index.d.ts","default":"./dist/plugins/api/index.mjs"},"require":{"types":"./dist/plugins/api/index.d.cts","default":"./dist/plugins/api/index.cjs"}},"./package.json":"./package.json","./plugins/client":{"import":{"types":"./dist/plugins/client/index.d.ts","default":"./dist/plugins/client/index.mjs"},"require":{"types":"./dist/plugins/client/index.d.cts","default":"./dist/plugins/client/index.cjs"}},"./plugins/cms/api":{"import":{"types":"./dist/plugins/cms/api/index.d.ts","default":"./dist/plugins/cms/api/index.mjs"},"require":{"types":"./dist/plugins/cms/api/index.d.cts","default":"./dist/plugins/cms/api/index.cjs"}},"./plugins/cms/css":"./dist/plugins/cms/style.css","./components/empty":{"import":{"types":"./dist/components/empty/index.d.ts","default":"./dist/components/empty/index.mjs"},"require":{"types":"./dist/components/empty/index.d.cts","default":"./dist/components/empty/index.cjs"}},"./plugins/blog/api":{"import":{"types":"./dist/plugins/blog/api/index.d.ts","default":"./dist/plugins/blog/api/index.mjs"},"require":{"types":"./dist/plugins/blog/api/index.d.cts","default":"./dist/plugins/blog/api/index.cjs"}},"./plugins/blog/css":"./dist/plugins/blog/style.css","./client/components":{"import":{"types":"./dist/client/components/index.d.ts","default":"./dist/client/components/index.mjs"},"require":{"types":"./dist/client/components/index.d.cts","default":"./dist/client/components/index.cjs"}},"./plugins/media/api":{"import":{"types":"./dist/plugins/media/api/index.d.ts","default":"./dist/plugins/media/api/index.mjs"},"require":{"types":"./dist/plugins/media/api/index.d.cts","default":"./dist/plugins/media/api/index.cjs"}},"./plugins/media/css":"./dist/plugins/media/client.css","./plugins/cms/client":{"import":{"types":"./dist/plugins/cms/client/index.d.ts","default":"./dist/plugins/cms/client/index.mjs"},"require":{"types":"./dist/plugins/cms/client/index.d.cts","default":"./dist/plugins/cms/client/index.cjs"}},"./plugins/kanban/api":{"import":{"types":"./dist/plugins/kanban/api/index.d.ts","default":"./dist/plugins/kanban/api/index.mjs"},"require":{"types":"./dist/plugins/kanban/api/index.d.cts","default":"./dist/plugins/kanban/api/index.cjs"}},"./plugins/kanban/css":"./dist/plugins/kanban/style.css","./plugins/ui-builder":{"import":{"types":"./dist/plugins/ui-builder/index.d.ts","default":"./dist/plugins/ui-builder/index.mjs"},"require":{"types":"./dist/plugins/ui-builder/index.d.cts","default":"./dist/plugins/ui-builder/index.cjs"}},"./components/markdown":{"import":{"types":"./dist/components/markdown/index.d.ts","default":"./dist/components/markdown/index.mjs"},"require":{"types":"./dist/components/markdown/index.d.cts","default":"./dist/components/markdown/index.cjs"}},"./plugins/ai-chat/api":{"import":{"types":"./dist/plugins/ai-chat/api/index.d.ts","default":"./dist/plugins/ai-chat/api/index.mjs"},"require":{"types":"./dist/plugins/ai-chat/api/index.d.cts","default":"./dist/plugins/ai-chat/api/index.cjs"}},"./plugins/ai-chat/css":"./dist/plugins/ai-chat/style.css","./plugins/blog/client":{"import":{"types":"./dist/plugins/blog/client/index.d.ts","default":"./dist/plugins/blog/client/index.mjs"},"require":{"types":"./dist/plugins/blog/client/index.d.cts","default":"./dist/plugins/blog/client/index.cjs"}},"./components/auto-form":{"import":{"types":"./dist/components/auto-form/index.d.ts","default":"./dist/components/auto-form/index.mjs"},"require":{"types":"./dist/components/auto-form/index.d.cts","default":"./dist/components/auto-form/index.cjs"}},"./plugins/comments/api":{"import":{"types":"./dist/plugins/comments/api/index.d.ts","default":"./dist/plugins/comments/api/index.mjs"},"require":{"types":"./dist/plugins/comments/api/index.d.cts","default":"./dist/plugins/comments/api/index.cjs"}},"./plugins/comments/css":"./dist/plugins/comments/style.css","./plugins/media/client":{"import":{"types":"./dist/plugins/media/client/index.d.ts","default":"./dist/plugins/media/client/index.mjs"},"require":{"types":"./dist/plugins/media/client/index.d.cts","default":"./dist/plugins/media/client/index.cjs"}},"./plugins/open-api/api":{"import":{"types":"./dist/plugins/open-api/api/index.d.ts","default":"./dist/plugins/open-api/api/index.mjs"},"require":{"types":"./dist/plugins/open-api/api/index.d.cts","default":"./dist/plugins/open-api/api/index.cjs"}},"./plugins/kanban/client":{"import":{"types":"./dist/plugins/kanban/client/index.d.ts","default":"./dist/plugins/kanban/client/index.mjs"},"require":{"types":"./dist/plugins/kanban/client/index.d.cts","default":"./dist/plugins/kanban/client/index.cjs"}},"./plugins/ai-chat/client":{"import":{"types":"./dist/plugins/ai-chat/client/index.d.ts","default":"./dist/plugins/ai-chat/client/index.mjs"},"require":{"types":"./dist/plugins/ai-chat/client/index.d.cts","default":"./dist/plugins/ai-chat/client/index.cjs"}},"./plugins/route-docs/css":"./dist/plugins/route-docs/style.css","./plugins/ui-builder/css":"./dist/plugins/ui-builder/style.css","./components/form-builder":{"import":{"types":"./dist/components/form-builder/index.d.ts","default":"./dist/components/form-builder/index.mjs"},"require":{"types":"./dist/components/form-builder/index.d.cts","default":"./dist/components/form-builder/index.cjs"}},"./components/markdown/css":"./dist/components/markdown/style.css","./components/multi-select":{"import":{"types":"./dist/components/multi-select/index.d.ts","default":"./dist/components/multi-select/index.mjs"},"require":{"types":"./dist/components/multi-select/index.d.cts","default":"./dist/components/multi-select/index.cjs"}},"./plugins/comments/client":{"import":{"types":"./dist/plugins/comments/client/index.d.ts","default":"./dist/plugins/comments/client/index.mjs"},"require":{"types":"./dist/plugins/comments/client/index.d.cts","default":"./dist/plugins/comments/client/index.cjs"}},"./components/search-select":{"import":{"types":"./dist/components/search-select/index.d.ts","default":"./dist/components/search-select/index.mjs"},"require":{"types":"./dist/components/search-select/index.d.cts","default":"./dist/components/search-select/index.cjs"}},"./plugins/cms/client/hooks":{"import":{"types":"./dist/plugins/cms/client/hooks/index.d.ts","default":"./dist/plugins/cms/client/hooks/index.mjs"},"require":{"types":"./dist/plugins/cms/client/hooks/index.d.cts","default":"./dist/plugins/cms/client/hooks/index.cjs"}},"./plugins/form-builder/api":{"import":{"types":"./dist/plugins/form-builder/api/index.d.ts","default":"./dist/plugins/form-builder/api/index.mjs"},"require":{"types":"./dist/plugins/form-builder/api/index.d.cts","default":"./dist/plugins/form-builder/api/index.cjs"}},"./plugins/form-builder/css":"./dist/plugins/form-builder/style.css","./plugins/media/query-keys":{"import":{"types":"./dist/plugins/media/query-keys.d.ts","default":"./dist/plugins/media/query-keys.mjs"},"require":{"types":"./dist/plugins/media/query-keys.d.cts","default":"./dist/plugins/media/query-keys.cjs"}},"./plugins/blog/client/hooks":{"import":{"types":"./dist/plugins/blog/client/hooks/index.d.ts","default":"./dist/plugins/blog/client/hooks/index.mjs"},"require":{"types":"./dist/plugins/blog/client/hooks/index.d.cts","default":"./dist/plugins/blog/client/hooks/index.cjs"}},"./plugins/route-docs/client":{"import":{"types":"./dist/plugins/route-docs/client/index.d.ts","default":"./dist/plugins/route-docs/client/index.mjs"},"require":{"types":"./dist/plugins/route-docs/client/index.d.cts","default":"./dist/plugins/route-docs/client/index.cjs"}},"./plugins/ui-builder/client":{"import":{"types":"./dist/plugins/ui-builder/client/index.d.ts","default":"./dist/plugins/ui-builder/client/index.mjs"},"require":{"types":"./dist/plugins/ui-builder/client/index.d.cts","default":"./dist/plugins/ui-builder/client/index.cjs"}},"./plugins/media/client/hooks":{"import":{"types":"./dist/plugins/media/client/hooks/index.d.ts","default":"./dist/plugins/media/client/hooks/index.mjs"},"require":{"types":"./dist/plugins/media/client/hooks/index.d.cts","default":"./dist/plugins/media/client/hooks/index.cjs"}},"./plugins/comments/query-keys":{"import":{"types":"./dist/plugins/comments/query-keys.d.ts","default":"./dist/plugins/comments/query-keys.mjs"},"require":{"types":"./dist/plugins/comments/query-keys.d.cts","default":"./dist/plugins/comments/query-keys.cjs"}},"./plugins/form-builder/client":{"import":{"types":"./dist/plugins/form-builder/client/index.d.ts","default":"./dist/plugins/form-builder/client/index.mjs"},"require":{"types":"./dist/plugins/form-builder/client/index.d.cts","default":"./dist/plugins/form-builder/client/index.cjs"}},"./plugins/kanban/client/hooks":{"import":{"types":"./dist/plugins/kanban/client/hooks/index.d.ts","default":"./dist/plugins/kanban/client/hooks/index.mjs"},"require":{"types":"./dist/plugins/kanban/client/hooks/index.d.cts","default":"./dist/plugins/kanban/client/hooks/index.cjs"}},"./components/stepped-auto-form":{"import":{"types":"./dist/components/stepped-auto-form/index.d.ts","default":"./dist/components/stepped-auto-form/index.mjs"},"require":{"types":"./dist/components/stepped-auto-form/index.d.cts","default":"./dist/components/stepped-auto-form/index.cjs"}},"./plugins/ai-chat/client/hooks":{"import":{"types":"./dist/plugins/ai-chat/client/hooks/index.d.ts","default":"./dist/plugins/ai-chat/client/hooks/index.mjs"},"require":{"types":"./dist/plugins/ai-chat/client/hooks/index.d.cts","default":"./dist/plugins/ai-chat/client/hooks/index.cjs"}},"./plugins/cms/client/components":{"import":{"types":"./dist/plugins/cms/client/components/index.d.ts","default":"./dist/plugins/cms/client/components/index.mjs"},"require":{"types":"./dist/plugins/cms/client/components/index.d.cts","default":"./dist/plugins/cms/client/components/index.cjs"}},"./plugins/comments/client/hooks":{"import":{"types":"./dist/plugins/comments/client/hooks/index.d.ts","default":"./dist/plugins/comments/client/hooks/index.mjs"},"require":{"types":"./dist/plugins/comments/client/hooks/index.d.cts","default":"./dist/plugins/comments/client/hooks/index.cjs"}},"./plugins/media/api/adapters/s3":{"import":{"types":"./dist/plugins/media/api/adapters/s3.d.ts","default":"./dist/plugins/media/api/adapters/s3.mjs"},"require":{"types":"./dist/plugins/media/api/adapters/s3.d.cts","default":"./dist/plugins/media/api/adapters/s3.cjs"}},"./plugins/ai-chat/client/context":{"import":{"types":"./dist/plugins/ai-chat/client/context/page-ai-context.d.ts","default":"./dist/plugins/ai-chat/client/context/page-ai-context.mjs"},"require":{"types":"./dist/plugins/ai-chat/client/context/page-ai-context.d.cts","default":"./dist/plugins/ai-chat/client/context/page-ai-context.cjs"}},"./plugins/media/client/components":{"import":{"types":"./dist/plugins/media/client/components/index.d.ts","default":"./dist/plugins/media/client/components/index.mjs"},"require":{"types":"./dist/plugins/media/client/components/index.d.cts","default":"./dist/plugins/media/client/components/index.cjs"}},"./plugins/ui-builder/client/hooks":{"import":{"types":"./dist/plugins/ui-builder/client/hooks/index.d.ts","default":"./dist/plugins/ui-builder/client/hooks/index.mjs"},"require":{"types":"./dist/plugins/ui-builder/client/hooks/index.d.cts","default":"./dist/plugins/ui-builder/client/hooks/index.cjs"}},"./plugins/kanban/client/components":{"import":{"types":"./dist/plugins/kanban/client/components/index.d.ts","default":"./dist/plugins/kanban/client/components/index.mjs"},"require":{"types":"./dist/plugins/kanban/client/components/index.d.cts","default":"./dist/plugins/kanban/client/components/index.cjs"}},"./plugins/ai-chat/client/components":{"import":{"types":"./dist/plugins/ai-chat/client/components/index.d.ts","default":"./dist/plugins/ai-chat/client/components/index.mjs"},"require":{"types":"./dist/plugins/ai-chat/client/components/index.d.cts","default":"./dist/plugins/ai-chat/client/components/index.cjs"}},"./plugins/form-builder/client/hooks":{"import":{"types":"./dist/plugins/form-builder/client/hooks/index.d.ts","default":"./dist/plugins/form-builder/client/hooks/index.mjs"},"require":{"types":"./dist/plugins/form-builder/client/hooks/index.d.cts","default":"./dist/plugins/form-builder/client/hooks/index.cjs"}},"./plugins/comments/client/components":{"import":{"types":"./dist/plugins/comments/client/components/index.d.ts","default":"./dist/plugins/comments/client/components/index.mjs"},"require":{"types":"./dist/plugins/comments/client/components/index.d.cts","default":"./dist/plugins/comments/client/components/index.cjs"}},"./plugins/ui-builder/client/components":{"import":{"types":"./dist/plugins/ui-builder/client/components/index.d.ts","default":"./dist/plugins/ui-builder/client/components/index.mjs"},"require":{"types":"./dist/plugins/ui-builder/client/components/index.d.cts","default":"./dist/plugins/ui-builder/client/components/index.cjs"}},"./plugins/form-builder/client/components":{"import":{"types":"./dist/plugins/form-builder/client/components/index.d.ts","default":"./dist/plugins/form-builder/client/components/index.mjs"},"require":{"types":"./dist/plugins/form-builder/client/components/index.d.cts","default":"./dist/plugins/form-builder/client/components/index.cjs"}},"./plugins/media/api/adapters/vercel-blob":{"import":{"types":"./dist/plugins/media/api/adapters/vercel-blob.d.ts","default":"./dist/plugins/media/api/adapters/vercel-blob.mjs"},"require":{"types":"./dist/plugins/media/api/adapters/vercel-blob.d.cts","default":"./dist/plugins/media/api/adapters/vercel-blob.cjs"}}},"browserify":null},"created_at":"2026-03-24T18:15:19.030Z","updated_at":"2026-03-24T18:15:19.030Z","purl":"pkg:npm/%40btst/stack@2.9.1","related_tag":{"name":"v2.9.1","sha":"7d1c39a7881bf07b29e9d468b822ca738f0cc412","kind":"commit","published_at":"2026-03-23T16:47:52.000Z","download_url":"https://codeload.github.com/better-stack-ai/better-stack/tar.gz/v2.9.1","html_url":"https://github.com/better-stack-ai/better-stack/releases/tag/v2.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/better-stack-ai/better-stack@v2.9.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/better-stack-ai%2Fbetter-stack/tags/v2.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/better-stack-ai%2Fbetter-stack/tags/v2.9.1/manifests"},"latest":false,"version_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@btst%2Fstack/versions/2.9.1","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@btst%2Fstack/versions/2.9.1/codemeta","dependencies":[{"id":1970134535,"ecosystem":"npm","package_name":"slug","requirements":"^11.0.1","kind":"runtime","optional":false},{"id":1970134536,"ecosystem":"npm","package_name":"remend","requirements":"^1.0.1","kind":"runtime","optional":false},{"id":1970134537,"ecosystem":"npm","package_name":"@btst/db","requirements":"2.1.1","kind":"runtime","optional":false},{"id":1970134538,"ecosystem":"npm","package_name":"@milkdown/kit","requirements":"^7.17.1","kind":"runtime","optional":false},{"id":1970134539,"ecosystem":"npm","package_name":"@milkdown/crepe","requirements":"^7.17.1","kind":"runtime","optional":false},{"id":1970134540,"ecosystem":"npm","package_name":"@lukemorales/query-key-factory","requirements":"^1.3.4","kind":"runtime","optional":false},{"id":1970134541,"ecosystem":"npm","package_name":"ai","requirements":"^5.0.94","kind":"Development","optional":false},{"id":1970134542,"ecosystem":"npm","package_name":"tsx","requirements":"catalog:","kind":"Development","optional":false},{"id":1970134543,"ecosystem":"npm","package_name":"zod","requirements":"^4.2.0","kind":"Development","optional":false},{"id":1970134544,"ecosystem":"npm","package_name":"knip","requirements":"^5.61.2","kind":"Development","optional":false},{"id":1970134545,"ecosystem":"npm","package_name":"react","requirements":"^19.1.1","kind":"Development","optional":false},{"id":1970134546,"ecosystem":"npm","package_name":"vitest","requirements":"catalog:","kind":"Development","optional":false},{"id":1970134547,"ecosystem":"npm","package_name":"unbuild","requirements":"catalog:","kind":"Development","optional":false},{"id":1970134548,"ecosystem":"npm","package_name":"@btst/yar","requirements":"1.2.0","kind":"Development","optional":false},{"id":1970134549,"ecosystem":"npm","package_name":"react-dom","requirements":"^19.1.1","kind":"Development","optional":false},{"id":1970134550,"ecosystem":"npm","package_name":"typescript","requirements":"catalog:","kind":"Development","optional":false},{"id":1970134551,"ecosystem":"npm","package_name":"@types/slug","requirements":"^5.0.9","kind":"Development","optional":false},{"id":1970134552,"ecosystem":"npm","package_name":"better-call","requirements":"catalog:","kind":"Development","optional":false},{"id":1970134553,"ecosystem":"npm","package_name":"@types/react","requirements":"^19.0.0","kind":"Development","optional":false},{"id":1970134554,"ecosystem":"npm","package_name":"@vercel/blob","requirements":"^0.27.3","kind":"Development","optional":false},{"id":1970134555,"ecosystem":"npm","package_name":"@ai-sdk/react","requirements":"^2.0.94","kind":"Development","optional":false},{"id":1970134556,"ecosystem":"npm","package_name":"@workspace/ui","requirements":"workspace:*","kind":"Development","optional":false},{"id":1970134557,"ecosystem":"npm","package_name":"@aws-sdk/client-s3","requirements":"^3.1011.0","kind":"Development","optional":false},{"id":1970134558,"ecosystem":"npm","package_name":"@btst/adapter-memory","requirements":"2.1.1","kind":"Development","optional":false},{"id":1970134559,"ecosystem":"npm","package_name":"react-error-boundary","requirements":"^4.1.2","kind":"Development","optional":false},{"id":1970134560,"ecosystem":"npm","package_name":"rollup-plugin-visualizer","requirements":"^5.12.0","kind":"Development","optional":false},{"id":1970134561,"ecosystem":"npm","package_name":"@aws-sdk/s3-request-presigner","requirements":"^3.1011.0","kind":"Development","optional":false},{"id":1970134562,"ecosystem":"npm","package_name":"rollup-plugin-preserve-directives","requirements":"0.4.0","kind":"Development","optional":false}],"package_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@btst%2Fstack"}