refactor: restructure into monorepo with packages/#276
Closed
MrTravisB wants to merge 50 commits into
Closed
Conversation
833d6a6 to
5c39553
Compare
- Add comprehensive CLI package.json scripts: build, build:cli-only, clean, typecheck, dev, test, test:watch - Simplify root package.json exports using wildcard pattern instead of explicit file list - Improves maintainability and reduces export configuration duplication
- Root package.json: Converted to workspace-only (removed build/test/typecheck scripts) - packages/core: Added format, format:check, and check scripts - packages/cli: Simplified build, added prebuild, format, and check scripts - packages/server: Added prebuild, format, and check scripts - packages/extension: Removed compile duplicate, added clean, prebuild, and standardized check - Added .prettierignore files in core, cli, and extension packages to exclude generated and vendor files
- Add comprehensive CLI package.json scripts: build, build:cli-only, clean, typecheck, dev, test, test:watch - Simplify root package.json exports using wildcard pattern instead of explicit file list - Improves maintainability and reduces export configuration duplication
- Updated README.md to include npm installation instructions for end users (@tabstack/spark) - Distinguished between external usage (npm) and developer setup (pnpm) in documentation - Updated CLAUDE.md to document the new modular configuration system architecture - Added config subcommands and XDG-compliant path information - Added guidance on config file location (~/.config/spark/config.json)
Files were lost during rebase conflict resolution. Restored: - src/browser/ariaTree/cssTokenizer.ts - src/browser/ariaTree/domUtils.ts - src/browser/ariaTree/roleUtils.ts - src/browser/ariaTree/yamlUtils.ts - tsconfig.json - tsconfig.check.json Also updated pnpm-lock.yaml and regenerated aria bundle.
- Moved src/browser/ariaTree/ to packages/core/src/browser/ariaTree/ - Updated scripts/bundle-aria-tree.ts paths to reference new location
- Remove root tsconfig files (packages have their own) - Update root package.json to be workspace-only (private, no exports) - Update workspace scripts to delegate to packages - Fix server dependency: spark -> spark-core (workspace:*) - Fix extension import: spark/ariaTree -> spark-core/ariaTree - Add explicit ariaTree export to spark-core package - Remove root from pnpm-workspace packages list
- Move scripts/bundle-aria-tree.ts to packages/core/scripts/ - Add bundle:aria script to core package.json - Update core build to run bundle:aria first - Remove bundle:aria from root package.json - Add bundle.ts to .gitignore (auto-generated) - Remove bundle.ts from git tracking
ec1ad89 to
dc264cb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR restructures Spark into a proper monorepo layout with separate packages and prepares the CLI for npm publishing, positioning the project for open-source release.
Changes
Structural Reorganization
src/cli/topackages/cli/packages/server/extension/topackages/extension/src/topackages/core/Import System Overhaul
.jsextensions: All relative imports now include explicit.jsextensions for ESM compatibilityworkspace:*protocolBuild Pipeline Fixes
typecheckscript inpackages/coreto runbundle:ariafirst (fixes typecheck on fresh checkout)core.tspackage.json(kept onlyprettier)CLI npm Package Preparation
@spark/clifor npm publishingNew Monorepo Structure
Testing
Notes
This is a foundational restructuring with no functional changes to the automation logic. The monorepo layout enables independent versioning, clear separation of concerns, and preparation for npm workspace publishing.