-
-
Notifications
You must be signed in to change notification settings - Fork 155
fix(renderers): replace workspace:* deps and publish alpha.1 #175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Implements @touchspin/angular adapter with full Angular 17+ support: Features: - Standalone component (no NgModule required) - ControlValueAccessor for Template-driven and Reactive Forms - Per-renderer subpaths (bootstrap3/4/5, tailwind, vanilla) - Imperative API via component reference (increment, decrement, etc.) - SSR-friendly with isPlatformBrowser guards - Full TypeScript type safety Implementation: - Core component in src/touch-spin.component.ts - Per-renderer components extending core with specific renderers - Build system using TypeScript + tsup (matches React adapter) - Comprehensive README with usage examples - ACCEPTANCE_REPORT documenting implementation API Parity with React: - All inputs (min, max, step, decimals, prefix, suffix, etc.) - valueChange output event - Imperative methods (focus, blur, increment, decrement, getValue, setValue) - Hidden input for form submission Status: Alpha-ready for publishing Deferred to Phase 2: - Playwright tests (non-blocking) - Angular example app (non-blocking) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Update Package Matrix workflow to build Angular adapter with renderer deps - Add Angular section to root README with template/reactive/imperative examples - Add changeset for @touchspin/angular minor bump - All 5 renderer subpaths (bootstrap3/4/5, tailwind, vanilla) - ControlValueAccessor integration for Angular forms - SSR-safe with isPlatformBrowser guards 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Separates Angular unit tests (Vitest) from Playwright E2E tests to allow different import patterns. Unit tests can import from /src/ for component testing, while E2E tests continue to enforce /dist/ imports. Changes: - Split test commands: `test` (E2E only), `test:unit` (Angular), `test:unit:all` (all workspaces) - Updated test:ci to run both unit and E2E tests - Excluded Angular unit tests from guard-no-src-in-tests check 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configures Vitest coverage using V8 provider to collect coverage metrics from Angular unit tests. Current coverage: 66.79% of touch-spin.component.ts. Changes: - Added @vitest/coverage-v8 dependency - Configured coverage in vitest.config.ts (V8, HTML/JSON/text reporters) - Added test:coverage and test:coverage:open scripts - Excluded coverage/ directories from git Usage: yarn workspace @touchspin/angular test:coverage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Updates coverage-open.mjs to accept an optional path argument, enabling it to be used for both Playwright E2E coverage and Angular unit test coverage. This provides robust cross-platform browser opening (WSL, Windows, macOS, Linux) for all coverage reports instead of the basic open/xdg-open fallback. Changes: - scripts/coverage-open.mjs: Accept optional path argument (defaults to Playwright coverage) - Angular package.json: Use shared script instead of inline open/xdg-open command Benefits: - Consistent cross-platform support across all coverage types - WSL path conversion and multiple fallback commands - Better error messages - Maintains backward compatibility 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Fixes conflict where Angular unit tests (Vitest) and Playwright E2E tests couldn't coexist in the same workspace due to competing expect() matchers. Changes: - Renamed Angular unit tests from .spec.ts to .test.ts extension - Removed coverage setup/teardown from main Playwright config (coverage-only feature) - Added Angular tests to Playwright tsconfig exclusion - Added Angular tests to Playwright testIgnore pattern - Disabled Vitest globals to prevent global namespace pollution - Updated Vitest config to match .test.ts files instead of .spec.ts File extension conventions: - .spec.ts = Playwright E2E tests (use Playwright's expect) - .test.ts = Vitest unit tests (use Vitest's expect) This ensures clean separation between test frameworks without conflicts. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Excludes the root workspace from `yarn workspaces foreach` to avoid running the root package's test script, which executes all 1042 Playwright E2E tests redundantly before running individual package tests. Changes: - Updated test:unit:all to use --exclude bootstrap-touchspin flag - Now only runs tests from child workspaces (Angular unit tests + individual package E2E tests) - Root `yarn test` still runs full test suite as expected Result: Eliminates duplicate test execution, significantly reduces test time. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Install ng-packagr v18.2.1 for Angular-native compilation - Configure ng-package.json for main entry point - Restructure secondary entry points (bootstrap3/4/5, tailwind, vanilla) to follow ng-packagr conventions (moved to root with src/ subdirectories) - Update imports to use @touchspin/angular path mapping - Update build scripts to use ng-packagr instead of tsc+tsup - Add TypeScript path mappings for cross-entry-point imports Build now generates proper Angular Ivy metadata (ɵcmp, ɵfac) in all entry points, making the package usable in Angular AOT compilation. Fixes Codex P0 review feedback about missing Ivy metadata. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Replace Vitest mocked tests with Jest using jest-preset-angular to enable real Angular component testing via TestBed. **Changes:** - Add Jest dependencies: jest, jest-preset-angular, jsdom - Remove Vitest dependencies: vitest, @vitest/coverage-v8, happy-dom - Create jest.config.ts with proper Angular configuration - Create setup-jest.ts to initialize Zone.js test environment - Update tsconfig.spec.json for CommonJS and Jest types - Convert tests from Jasmine to Jest syntax (jasmine.createSpy → jest.fn) - Add Yarn PnP packageExtensions for zone.js and @angular/compiler - Add moduleNameMapper for workspace packages resolution - Delete old Vitest test file and config - Add Jest globals to biome.json for linting **Test Results:** All 16 tests passing with real Angular TestBed: ✓ Component initialization ✓ Default value handling ✓ Controlled value input ✓ ControlValueAccessor implementation ✓ Imperative methods ✓ Disabled state management 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Add 29 new tests covering previously untested areas: - Input options (min, max, step, decimals, prefix, suffix, coreOptions) - ngOnChanges dynamic property updates - Imperative methods (focus, blur, getCore) - ControlValueAccessor edge cases (registerOnTouched, null/undefined) - Property getters (value, defaultValue, inputTestId) - Edge cases (null handling, controlled mode precedence) Coverage improved significantly: - Statements: 64.96% → 94.9% (+29.94%) - Branches: 36.2% → 87.06% (+50.86%) - Functions: 67.74% → 93.54% (+25.8%) - Lines: 68.24% → 95.27% (+27.03%) All 45 tests passing with Jest and Angular TestBed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Add 4 targeted edge case tests for uncovered code paths: - NaN input validation in writeValue - value getter when never set (null coalescing) - defaultValue getter when never set (null coalescing) - default onTouched behavior before registration Coverage improvements: - Statements: 94.9% → 95.54% (+0.64%) - Branches: 87.06% → 91.37% (+4.31%) - Functions: 93.54% → 96.77% (+3.23%) - Lines: 95.27% → 95.94% (+0.67%) Total tests: 49 (was 45) Remaining ~4% uncovered code consists of: - Angular framework code (forwardRef DI provider) - SSR guard (platform-specific) - Defensive edge cases (race conditions) All acceptable and documented in investigation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Replace exact version and wildcard in packageExtensions with semver ranges to prevent duplicate lockfile entries that CI's hardened mode rejects. Changes: - zone.js: "*" → "^0.14.0" (consolidates with existing 0.14.10) - @angular/compiler: "18.2.14" → "^18.2.0" (matches existing range) This eliminates duplicate entries for @angular/compiler and zone.js that caused lockfile validation failures in CI. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…ture - Add NaN validation in useTouchSpin hook to prevent state corruption - Set up complete Jest unit test infrastructure with 24 comprehensive tests - Add test coverage for controlled/uncontrolled behavior, edge cases, and form integration - Create detailed documentation comparing React vs Angular implementations - Install all required testing dependencies (@testing-library/react, jest, ts-jest) - Fix type safety by using RendererConstructor type instead of any Note: Tests are written but blocked by ESM module resolution issue in Jest. The NaN validation fix itself is production-ready and critical. Related to commit 105210a which fixed similar issue in Angular adapter. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
BREAKING THROUGH: All 24 unit tests now passing! Critical Fixes: - Fixed Jest ESM module resolution with custom Babel plugin - Added 'input' event listener (in addition to 'change') for proper test support - Fixed getValue test timing with async/await - Replaced all 'any' types with proper RendererConstructor types Test Infrastructure: - Jest + Babel configuration with custom .js extension stripping plugin - babel-plugin-module-resolver for package aliases - React Testing Library setup - 24 comprehensive unit tests covering all functionality Coverage Results: - 97.82% statement coverage - 92.98% branch coverage - 100% function coverage - 97.67% line coverage (exceeds Angular's 95.94%!) Tests Verify: ✅ NaN validation fix (critical bug fix) ✅ Controlled/uncontrolled value behavior ✅ Input options (min/max/step/decimals/prefix/suffix) ✅ Imperative methods (focus/blur/getValue/setValue) ✅ Disabled and readonly states ✅ Edge cases (NaN, transitions, rapid updates) ✅ Form integration ✅ Styling The NaN fix is production-critical and now fully verified by tests. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Remove analysis and planning documents that were temporary working notes: - React: REACT_VS_ANGULAR_ANALYSIS.md (temporary analysis) - React: UNIT_TESTING_STATUS.md (temporary status doc) - React: TODO.md (outdated planning doc) - Angular: TODO.md (outdated planning doc) These were useful during development but don't belong in the committed codebase. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Remove temporary completion/acceptance reports that were useful during development but don't belong in the committed codebase: - FINALIZATION_SUMMARY.md - REACT_ADAPTER_ACCEPTANCE_REPORT.md - packages/adapters/angular/ACCEPTANCE_REPORT.md These were useful for documenting completion milestones but are not ongoing documentation that should be maintained in the repo. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
FIXES CI BUILD ERROR - TypeScript type mismatch between CoreFacade and RendererCoreBridge Problem: - RendererConstructor used loose CoreFacade type - Actual renderers expect strict RendererCoreBridge type - Type mismatch caused "Type 'typeof Bootstrap3Renderer' is not assignable" errors in CI Solution: - Export RendererCoreBridge from AbstractRendererBase - Update RendererConstructor to use RendererCoreBridge - Keep CoreFacade as type alias for backward compatibility This ensures proper type checking without using 'any' escape hatches. All 24 React unit tests still passing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Changed zone.js version in Angular adapter from exact "0.14.10" to range "^0.14.0" to deduplicate lockfile entries. This resolves CI hardened mode errors where the lockfile would have been modified. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Changed touchSpinOptions from Record<string, unknown> to Partial<UseTouchSpinOptions> to preserve type safety for the renderer property. This ensures TypeScript properly validates the renderer type (RendererConstructor | null | undefined) throughout the component. Addresses Codex review feedback about type safety regression. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Added experimentalDecorators compiler option to tsconfig files to fix Angular decorator compilation in Jest tests. This resolves the error: "Standard Angular field decorators are not supported in JIT mode" All 49 Angular Jest tests now pass successfully. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Document React and Angular repos moved to separate locations - Add installation instructions with alpha tag - List repository URLs for both adapters - Note independent versioning at v5.0.1-alpha.0 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Published renderer packages contained invalid workspace:* references for @touchspin/core dependency, preventing external consumers from installing them. This fixes all 5 renderers to reference the published version 5.0.1-alpha.0 instead. Changes: - Fixed workspace:* → 5.0.1-alpha.0 in all renderer dependencies - Bumped renderers to 5.0.1-alpha.1 via changesets - Bumped adapters to 5.0.1-alpha.1 (workspace dependency updates) - Marked React adapter as private (will publish from extracted repo) - Angular adapter already private Packages ready to publish (via CI): - @touchspin/renderer-bootstrap3@5.0.1-alpha.1 - @touchspin/renderer-bootstrap4@5.0.1-alpha.1 - @touchspin/renderer-bootstrap5@5.0.1-alpha.1 - @touchspin/renderer-tailwind@5.0.1-alpha.1 - @touchspin/renderer-vanilla@5.0.1-alpha.1 - @touchspin/jquery@5.0.1-alpha.1 - @touchspin/standalone@5.0.1-alpha.1 - @touchspin/webcomponent@5.0.1-alpha.1 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
touchspin/packages/adapters/webcomponent/package.json
Lines 80 to 86 in 7419bc8
"dependencies": { | |
"@touchspin/core": "workspace:*", | |
"@touchspin/renderer-bootstrap3": "workspace:*", | |
"@touchspin/renderer-bootstrap4": "workspace:*", | |
"@touchspin/renderer-bootstrap5": "workspace:*", | |
"@touchspin/renderer-tailwind": "workspace:*", | |
"@touchspin/renderer-vanilla": "workspace:*" |
The @touchspin/webcomponent
package is being bumped to 5.0.1-alpha.1
and listed for publication, yet its manifest still declares all core renderer dependencies as "workspace:*"
. Those placeholders are stripped only during workspace installs; when this package is published to npm they remain unresolved strings and external consumers will see npm ERR! Unsupported URL Type "workspace:*"
on install. If the goal of this release is to provide consumable artifacts, these dependencies need real semver ranges (e.g. 5.0.1-alpha.1
) before publishing.
touchspin/packages/adapters/standalone/package.json
Lines 60 to 65 in 7419bc8
"@touchspin/core": "workspace:*", | |
"@touchspin/renderer-bootstrap3": "workspace:*", | |
"@touchspin/renderer-bootstrap4": "workspace:*", | |
"@touchspin/renderer-bootstrap5": "workspace:*", | |
"@touchspin/renderer-tailwind": "workspace:*", | |
"@touchspin/renderer-vanilla": "workspace:*" |
The standalone adapter is also slated for publication at 5.0.1-alpha.1
, but its dependencies
block still references @touchspin/core
and all renderers using "workspace:*"
. Published packages cannot depend on workspace:*
; consumers outside the monorepo will be unable to install the adapter because npm does not understand workspace protocol. These entries should be replaced with the corresponding alpha versions (or peer dependencies) before shipping.
touchspin/packages/adapters/jquery/package.json
Lines 57 to 58 in 7419bc8
"dependencies": { | |
"@touchspin/standalone": "workspace:*" |
The jQuery wrapper’s only runtime dependency is @touchspin/standalone
, but it continues to specify that dependency as "workspace:*"
while bumping the package version for release. Once this package is published, consumers will hit an install error because npm cannot resolve workspace:*
. The dependency must be replaced with the actual version of @touchspin/standalone
that will be published (e.g. 5.0.1-alpha.1
).
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting
Fixes missed workspace:* dependencies in adapter packages: - standalone: @touchspin/core + all 5 renderers - webcomponent: @touchspin/core + all 5 renderers - jquery: @touchspin/standalone These packages are being published at 5.0.1-alpha.1 but had invalid workspace:* references that would cause npm install errors for external consumers. Now using: - @touchspin/core: "5.0.1-alpha.0" - @touchspin/renderer-*: "5.0.1-alpha.1" (all 5 renderers) - @touchspin/standalone: "5.0.1-alpha.1" Addresses Codex feedback from PR #175. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
React and Angular adapters have been extracted to separate repositories: - /apps/touchspin-frameworks/touchspin-react - /apps/touchspin-frameworks/touchspin-angular Keeping them in the monorepo was causing lockfile conflicts in CI because they reference workspace packages but are marked as private (won't be published from here). These adapters will be published from their extracted repos instead. Fixes CI yarn install failures in hardened mode. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Updates lockfile to reflect: - Changed workspace:* to explicit versions in renderers/adapters - Removed React and Angular adapter packages from workspace This fixes CI hardened mode failures where Yarn detected lockfile modifications and refused to proceed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
React and Angular adapters have been extracted to separate repos and removed from the monorepo. Updated the package-matrix workflow to: - Remove @touchspin/react and @touchspin/angular from build matrix - Remove React/Angular-specific build dependency steps - Remove React/Angular-specific pack validation logic Fixes CI build failures where workflow tried to build non-existent packages. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting
package.json
Outdated
"test": "node scripts/pre-test.mjs && PLAYWRIGHT_TSCONFIG=tsconfig.playwright.json TS_BUILD_TARGET=dev playwright test --project=chromium --reporter=list", | ||
"test:ci": "yarn build:test && yarn guard:all && PLAYWRIGHT_TSCONFIG=tsconfig.playwright.json TS_BUILD_TARGET=dev playwright test --project=chromium --reporter=list", | ||
"test:unit": "yarn workspace @touchspin/angular test", | ||
"test:unit:all": "yarn workspaces foreach -A --exclude bootstrap-touchspin run test", | ||
"test:ci": "yarn build:test && yarn guard:all && yarn test:unit && PLAYWRIGHT_TSCONFIG=tsconfig.playwright.json TS_BUILD_TARGET=dev playwright test --project=chromium --reporter=list", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove
test:unit
reference to deleted Angular workspace
test:ci
now runs yarn test:unit
, but test:unit
invokes yarn workspace @touchspin/angular test
. The entire Angular adapter workspace was deleted in this commit (packages/adapters/angular
no longer exists), so both yarn test:unit
and any CI job calling yarn test:ci
will fail with “Unknown workspace @touchspin/angular”. Either drop this script or point it at an existing workspace to keep the test pipeline runnable.
Useful? React with 👍 / 👎.
The test:unit script was calling `yarn workspace @touchspin/angular test` but Angular was removed from the monorepo. Also removed the call to test:unit from test:ci to fix CI test pipeline. Addresses Codex review feedback. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting
.changeset/angular-adapter.md
Outdated
--- | ||
"@touchspin/angular": minor | ||
--- | ||
|
||
feat(angular): add Angular adapter with ControlValueAccessor support | ||
|
||
Implements a comprehensive Angular 17+ adapter with: | ||
- Standalone component architecture (no NgModule required) | ||
- ControlValueAccessor for Template-driven and Reactive Forms integration | ||
- Per-renderer subpaths (bootstrap3, bootstrap4, bootstrap5, tailwind, vanilla) | ||
- Imperative API (focus, blur, increment, decrement, getValue, setValue, getCore) | ||
- SSR-safe with isPlatformBrowser guards for Angular Universal | ||
- Full TypeScript types with TouchSpinInputs, TouchSpinOutputs, TouchSpinHandle interfaces | ||
- Angular lifecycle hooks (ngAfterViewInit, ngOnChanges, ngOnDestroy) | ||
- Hidden native input for form submission | ||
- Comprehensive README with usage examples | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Drop changesets for removed adapters
This changeset still schedules a release for @touchspin/angular
, and .changeset/pre.json
now references it as an active prerelease change set even though the Angular (and React) packages were deleted in this commit. Running yarn changeset version
will fail because Changesets cannot find the referenced packages to bump, blocking the release pipeline. Remove or move these change files to the new repositories before publishing.
Useful? React with 👍 / 👎.
Comprehensive cleanup after extracting React and Angular to separate repos: Changesets: - Deleted .changeset/angular-adapter.md (referenced non-existent package) - Removed @touchspin/react from v5-alpha-release.md - Removed Angular/React from .changeset/pre.json initialVersions - Removed "angular-adapter" from pre.json changesets array Documentation: - Removed React/Angular from main package table in README.md - Updated README.md to link to separate repos instead of local paths - Updated packages/README.md "Future Development" → "Framework Adapters" - Updated docs/architecture/package-requirements.md to note separate repos All remaining references now correctly point to the separate repositories: - https://github.com/istvan-ujjmeszaros/touchspin-react - https://github.com/istvan-ujjmeszaros/touchspin-angular Addresses Codex review feedback about stale changesets blocking release. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Summary
Fixes critical bug where published renderer packages contained invalid
workspace:*
dependencies, preventing external consumers from installing them.Changes Made
Renderer Packages (all 5):
"@touchspin/core": "workspace:*"
→"5.0.1-alpha.0"
in:npm pack --dry-run
Adapter Packages:
private: true
(will publish from extracted repo)private: true
Config Updates:
Packages to Publish (via CI)
When merged to main, CI will publish these packages at 5.0.1-alpha.1:
NOT published (marked private): @touchspin/react, @touchspin/angular
Problem Context
Published renderers at 5.0.1-alpha.0 had:
This caused extracted React and Angular repos to fail with:
Resolution Path
Test Plan
package.json
files updated with explicit versionsyarn build:test
(2m 26s)workspace:*
in packed manifestsnpm view @touchspin/renderer-bootstrap5@alpha dependencies
Verification Commands
After merge and CI publish:
Related Issues
Unblocks:
🤖 Generated with Claude Code