mirror of
https://github.com/stack-auth/stack.git
synced 2026-06-13 21:01:21 +08:00
<!-- Make sure you've read the CONTRIBUTING.md guidelines: https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md --> <!-- RECURSEML_SUMMARY:START --> ## High-level PR Summary This PR adds support for non-interactive initialization in the Stack Auth initialization script. It introduces a `STACK_DISABLE_INTERACTIVE` environment variable flag and makes appropriate changes throughout the codebase to handle non-interactive flows. The changes include improving type definitions, adding automatic determination of project type (JS vs Next.js) and configuration (client vs server) when running in non-interactive mode, and better error handling for cases where required information is missing. These changes enable CI/CD scenarios and automation for Stack Auth integration. ⏱️ Estimated Review Time: 0h 20m <details> <summary>💡 Review Order Suggestion</summary> | Order | File Path | |-------|-----------| | 1 | `packages/init-stack/src/index.ts` | </details> <!-- RECURSEML_SUMMARY:END --> <!-- RECURSEML_ANALYSIS:START --> ## Review by RecurseML _🔍 Review performed on [bba4db2..974e4fd](bba4db2ab0...974e4fda92)_ ✨ No bugs found, your code is sparkling clean <details> <summary>✅ Files analyzed, no issues (1)</summary> • `packages/init-stack/src/index.ts` </details> [](https://discord.gg/n3SsVDAW6U) <!-- RECURSEML_ANALYSIS:END --> <!-- ELLIPSIS_HIDDEN --> ---- > [!IMPORTANT] > Adds non-interactive and React project initialization options to Stack Auth setup script, updates tests and documentation. > > - **Behavior**: > - Adds `--agent-mode` option in `index.ts` for non-interactive CLI runs. > - Adds `--react` option in `index.ts` for React project initialization. > - Updates `writeReactClientFile()` in `index.ts` to handle React-specific setup. > - **Scripts**: > - Updates `package.json` to include `test-run-react` and `test-run-react:manual` scripts. > - Modifies existing test scripts in `package.json` to use `--agent-mode`. > - **Documentation**: > - Updates `setup.mdx` to include React setup instructions and wizard/manual tabs. > - **Misc**: > - Removes `STACK_DISABLE_INTERACTIVE` checks in `index.ts`. > - Updates error handling and logging in `index.ts`. > > <sup>This description was created by </sup>[<img alt="Ellipsis" src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral)<sup> forf63a2a57ef. You can [customize](https://app.ellipsis.dev/stack-auth/settings/summaries) this summary. It will automatically update as commits are pushed.</sup> ---- <!-- ELLIPSIS_HIDDEN --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - First-class React project initialization (--react) with automatic React client scaffolding. - Added --agent-mode for fully non-interactive CLI runs and consistent --no-browser behavior. - Public env var for local React package override (STACK_REACT_INSTALL_PACKAGE_NAME_OVERRIDE). - Chores - Standardized non-interactive flows across scripts (removed legacy interactive gating). - Tests - Updated test scaffolding and run commands to use agent-mode and browser-free execution. - Documentation - Converted setup docs to a wizard-style experience with consolidated wizard/manual tabs. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
58 lines
4.4 KiB
JSON
58 lines
4.4 KiB
JSON
{
|
|
"name": "@stackframe/init-stack",
|
|
"version": "2.8.38",
|
|
"description": "The setup wizard for Stack. https://stack-auth.com",
|
|
"main": "dist/index.js",
|
|
"type": "module",
|
|
"bin": "./dist/index.js",
|
|
"scripts": {
|
|
"clean": "rimraf test-run-output && rimraf node_modules && rimraf dist",
|
|
"build": "tsup",
|
|
"dev": "tsup --watch",
|
|
"lint": "eslint --ext .tsx,.ts .",
|
|
"typecheck": "tsc --noEmit",
|
|
"init-stack": "node dist/index.js",
|
|
"init-stack:local": "STACK_NEXT_INSTALL_PACKAGE_NAME_OVERRIDE=../../stack STACK_JS_INSTALL_PACKAGE_NAME_OVERRIDE=../../js STACK_REACT_INSTALL_PACKAGE_NAME_OVERRIDE=../../react node dist/index.js",
|
|
"test-run": "pnpm run build && pnpm run test-run-js && pnpm run test-run-node && pnpm run test-run-next && pnpm run test-run-neon && pnpm run test-run-no-browser",
|
|
"test-run:manual": "pnpm run build && pnpm run test-run-js:manual && pnpm run test-run-node:manual && pnpm run test-run-next:manual && pnpm run test-run-neon:manual",
|
|
"ensure-neon": "grep -q '\"@neondatabase/serverless\"' ./test-run-output/package.json && echo 'Initialized Neon successfully!'",
|
|
"test-run-neon": "pnpm run test-run-node --neon && pnpm run ensure-neon",
|
|
"test-run-neon:manual": "pnpm run test-run-node:manual --neon && pnpm run ensure-neon",
|
|
"test-run-no-browser": "rimraf test-run-output && mkdir test-run-output && cd test-run-output && npm init --init-author-name example-author --init-license UNLICENSED --init-author-url http://example.com --init-module test-run-output --init-version 1.0.0 -y && cd .. && pnpm run init-stack:local test-run-output --agent-mode --js --server --npm --no-browser",
|
|
"test-run-node:manual": "rimraf test-run-output && mkdir test-run-output && cd test-run-output && npm init && cd .. && pnpm run init-stack:local test-run-output",
|
|
"test-run-node": "rimraf test-run-output && mkdir test-run-output && cd test-run-output && npm init --init-author-name example-author --init-license UNLICENSED --init-author-url http://example.com --init-module test-run-output --init-version 1.0.0 -y && cd .. && pnpm run init-stack:local test-run-output --agent-mode --js --server --npm --no-browser",
|
|
"test-run-js:manual": "rimraf test-run-output && npx -y sv create test-run-output --no-install && pnpm run init-stack:local test-run-output",
|
|
"test-run-js": "rimraf test-run-output && npx -y sv create test-run-output --template minimal --types ts --no-add-ons --no-install && pnpm run init-stack:local test-run-output --agent-mode --js --client --npm --no-browser",
|
|
"test-run-next:manual": "rimraf test-run-output && npx -y create-next-app@latest test-run-output && pnpm run init-stack:local test-run-output",
|
|
"test-run-next": "rimraf test-run-output && npx -y create-next-app@latest test-run-output --app --ts --no-src-dir --tailwind --use-npm --eslint --import-alias '##@#/*' --turbopack && pnpm run init-stack:local test-run-output --agent-mode --no-browser",
|
|
"test-run-keys-next": "rimraf test-run-output && npx -y create-next-app@latest test-run-output --app --ts --no-src-dir --tailwind --use-npm --eslint --import-alias '##@#/*' --turbopack && pnpm run init-stack:local test-run-output --agent-mode --project-id my-project-id --publishable-client-key my-publishable-client-key",
|
|
"test-run-keys-js": "rimraf test-run-output && npx -y sv create test-run-output --template minimal --types ts --no-add-ons --no-install && pnpm run init-stack:local test-run-output --agent-mode --js --client --npm --project-id my-project-id --publishable-client-key my-publishable-client-key",
|
|
"test-run-react": "rimraf test-run-output && npx -y create-vite@latest test-run-output --template react-ts && pnpm run init-stack:local test-run-output --agent-mode --no-browser --npm",
|
|
"test-run-react:manual": "rimraf test-run-output && npx -y create-vite@latest test-run-output --template react-ts && pnpm run init-stack:local test-run-output --react"
|
|
},
|
|
"files": [
|
|
"README.md",
|
|
"dist",
|
|
"CHANGELOG.md",
|
|
"LICENSE"
|
|
],
|
|
"homepage": "https://stack-auth.com",
|
|
"keywords": [],
|
|
"author": "",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@stackframe/stack-shared": "workspace:*",
|
|
"commander": "^13.1.0",
|
|
"inquirer": "^9.2.19",
|
|
"open": "^10.1.0",
|
|
"posthog-node": "^4.1.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/inquirer": "^9.0.7",
|
|
"@types/node": "20.17.6",
|
|
"rimraf": "^6.0.1",
|
|
"tsup": "^8.4.0",
|
|
"typescript": "5.3.3"
|
|
}
|
|
}
|