Skip to content

V5 WIP - do not merge#6657

Draft
johnjenkins wants to merge 205 commits intomainfrom
v5
Draft

V5 WIP - do not merge#6657
johnjenkins wants to merge 205 commits intomainfrom
v5

Conversation

@johnjenkins
Copy link
Copy Markdown
Contributor

What is the current behavior?

GitHub Issue Number: N/A

What is the new behavior?

Documentation

Does this introduce a breaking change?

  • Yes
  • No

Testing

Other information

johnjenkins and others added 30 commits April 1, 2026 21:44
* chore: swap out rollup with rolldown

* chore:

* chore: update all naming

* chore: fixup tests

* chore: optimizing

* chore:

* chore:

* chore:
* chore: remove es5 / systemjs output. Make cjs opt-in

* chore:

* chore:

* chore:

* chore:

* chore: fix tests

* chore:
* chore:

* chore: add swc wip

* chore: revert swc back to terser
* chore: v5 swap out autoprefixer for lightningcss

* chore:
* chore: remove all deprecated things

* chore: update tests
* chore: migrate component decorator to new explicit API

* chore:fix cli build (don't bundle ts)

* chore: fix tsconfig discovery

* chore: migrate runtime tests

* chore: migrate ssr

* chore:

* chore:

* chore:

* chore:

* chore:

* chore:

* chore: fixup unit tests

* chore: tests for closed shadow dom and patch options

* chore:

* chore:

* chore:

* chore:

* chore:

* chore:

* chore:

* chore:
* chore: v5 multi file `transpile()` and `transpileSync()`

* chore:
* chore: v5 watch / build improvements

* chore:
…ipInDev` (#6682)

* chore: v5 remove buildDist and buildDocs. Replace with per output `skipInDev`

* chore:
* chore: v5-add-other-dist-artifacts-to-skipInDev

* chore:

* chore:

* chore:
* chore: v5 output target modernization - rename and refactor

Major refactor to rename output targets for clarity and elevate sub-outputs
to first-class citizens, creating parity between distribution strategies.

**Naming changes:**
- `dist` → `loader-bundle` (lazy-loaded bundles + loader infrastructure)
- `dist-custom-elements` → `standalone` (individual ES modules)
- `dist-hydrate-script` → `ssr` (server-side rendering)
- `dist-collection` (sub) → `stencil-meta` (first-class, metadata output)
- `dist-types` (sub) → `types` (first-class, shared type definitions)

**Key changes:**
- Updated all constants with v5 names + deprecated v4 aliases
- Updated all type definitions (OutputTarget interfaces)
- Renamed validator files and updated their logic
- Renamed output target implementation directories
- Updated type guards with backward-compatible deprecated aliases
- Removed collectionDir/typesDir from loader-bundle config
- Updated default directories to dist/loader-bundle/, dist/standalone/, etc.

**Backward compatibility:**
- All deprecated v4 aliases maintained for migration period
- Will be removed in v6

**Documentation:**
- Added comprehensive "Output Target Modernization" section to V5_PLANNING.md
- Updated breaking changes documentation

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* feat: add auto-generation logic for types and stencil-meta outputs

Implement auto-generation of types and stencil-meta output targets in
production builds, elevating them to first-class citizens.

**Auto-generation behavior:**
- In production builds (!config.devMode), automatically add types and
  stencil-meta outputs if not explicitly configured by user
- User can override by explicitly adding these outputs to their config
- Both default to skipInDev: true for optimal dev performance

**Implementation:**
- Added autoGenerateOutputs() function in validateOutputTargets
- Created validate-types.ts for types output validation
- Default directories: dist/types/ and dist/stencil-meta/
- Maintains backward compatibility with explicit configs

This ensures parity between loader-bundle and standalone outputs,
as both now automatically get type definitions in production.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* chore:

* chore: remove un-required config options

* chore: tests pass

* chore: fix knip

* chore: new tests

* chore: new migration tests

* chore: removed --prod and devMode

* chore: add transpileStyle inline

* chore:

* Revert "chore: add transpileStyle inline"

This reverts commit 9cf68f4.

* chore: change collection / stencil-meta to stencil-rebundle

* chore: fixes for package.json checking / validations

* chore: rename file extensions - .cjs.js > .cjs, .esm.js > .js

* chore: update all 'collection' naming to 'rebundle'

* chore: rename dist-custom-elements related files to standalone

* chore: update testing

* chore: remove 'loader' dir. fix build tests

* chore: add esm.js to browser bundle for posterity

* chore: main work

* chore: tidy codebase

* chore: update all tests

* chore: fixup tests

* chore: better explicit global-style output options

* chore:

* chore: change all server bundle 'hydrate' refs to 'ssr'

* chore:

* chore: update default skipInDev behaviour

* chore: tidy up

* chore:

* chore:

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant