Commit Graph

242 Commits

Author SHA1 Message Date
JJ Kasper ac7997b855 Update to latest swc/core and preserve JSX (#507) 2025-12-03 11:29:27 -08:00
Vercel Release Bot 00b12be415 Version Packages (beta) (#499) 2025-12-02 13:01:12 -08:00
Vercel Release Bot 9916f2a4a6 Version Packages (beta) (#447)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-02 10:12:48 -08:00
Adrian 1ac5592452 feat: add astro support (#347) 2025-12-02 09:11:46 -08:00
Adrian 3c19e909f2 fix: nitro build race conditions (#444)
* test: make dev e2e sequential

* test: increase timeout between tests in dev test

* add logs

* feat: add queue for builds

* refactor: cleanup vite hmr

* chore: cleanup comments

* fix: regex base builder

* test: reduce sleep time between test suites in dev test

* refactor: naming conventions and remove builder value check

* refactor: sveltekit builder queue

* changeset

* fix: regex on base builder workflow code

* test: increase sleep

* format

* fix: make writeFile atomic on workflow entrypoint

* refactor: move build queue to @workflow/builders

* revert: regex stuff with workflow code

* add console log for workflow file changed
2025-12-01 19:55:28 -08:00
Adrian d53bf906ec fix: scan all dirs for standalone builder (#477)
* fix: scan all dirs for standalone builder

* changeset
2025-12-01 13:54:03 -08:00
Vercel Release Bot 87ad24b3b6 Version Packages (beta) (#416) 2025-11-26 19:55:04 -08:00
Adrian 6dd17500da refactor: move rollup plugin to own package (#382)
* refactor: move rollup plugin to own package

* refactor(sveltekit): update sveltekit to use rollup package

* Update packages/rollup/src/index.ts

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>

* chore(deps): missing nitro dep

* chore(deps): remove unused deps from @workflow/rollup

* changeset

* chore: project LICENSE symlinks

* refactor: move @swc/core version to pnpm workspace

* chore: cleanup and add readme

---------

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
2025-11-26 16:02:13 -08:00
Adrian b042ba70ee fix: externalize bun from step bundle (#425)
* fix: externlize bun from step bundle

* changeset

* fix: add bun to node module esbuild plugin

* feat: add bun to node module esbuild plugin match

* feat: add hint for using bun inside workflow in ts lsp

* fix: add support for bun:* modules
2025-11-26 09:28:59 -08:00
Vercel Release Bot 018c5a053e Version Packages (beta) (#410) 2025-11-24 15:22:23 -08:00
Vercel Release Bot e5c0380bbd Version Packages (beta) (#396) 2025-11-24 14:25:39 -08:00
Vercel Release Bot 7a230a9ad1 Version Packages (beta) (#387)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-22 07:32:12 -08:00
Adrian 73b6c68daf remove suppressUndefinedRejections from base builder (#384) 2025-11-21 06:42:28 -08:00
Vercel Release Bot 2856d665c0 Version Packages (beta) (#375)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-20 14:24:12 -08:00
Vercel Release Bot 29892a0f93 Version Packages (beta) (#369) 2025-11-19 11:15:09 -08:00
Vercel Release Bot 70fb4ebc9d Version Packages (beta) (#357)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-19 08:51:25 -08:00
Vercel Release Bot f1b734129a Version Packages (beta) (#354) 2025-11-17 14:19:24 -08:00
Vercel Release Bot c78bec37b0 Version Packages (beta) (#308)
Signed-off-by: Nathan Rajlich <n@n8.io>
2025-11-16 00:31:36 -08:00
Adrian 7ced2d6550 refactor(builder): add suppressUndefinedRejections (#327)
* refactor(builder): add suppressUndefinedRejections

* fix where undefined rejection line should be

* refactor
2025-11-13 11:19:26 -08:00
Pranay Prakash c43bc2a46a fix typo in external PR 2025-11-12 20:36:53 -05:00
Joe Innes 8e96134930 Add .svelte-kit to ignored paths (#276) 2025-11-12 16:57:24 -08:00
JJ Kasper b97b6bfaba Lock all dependencies in our packages (#318)
* Lock all dependencies in our packages

* fix type

* add savePrefix config

* add changeset
2025-11-12 14:26:01 -08:00
Vercel Release Bot 70429e499c Version Packages (beta) (#275) 2025-11-11 11:59:23 -08:00
Nathan Rajlich 94d46d423a Refactor @workflow/next to dynamically import @workflow/builders (#296)
Signed-off-by: Nathan Rajlich <n@n8.io>
2025-11-10 23:08:09 -08:00
Copilot 8208b5320b Fix Sourcemap Tracking (#256)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2025-11-09 12:08:48 -08:00
Vercel Release Bot 7bad9d454f Version Packages (beta) (#230) 2025-11-07 16:39:45 -08:00
Vercel Release Bot 7650c393bf Version Packages (beta) (#226) 2025-11-05 10:24:46 -08:00
Vercel Release Bot f368cd34a5 Version Packages (beta) (#206) 2025-11-05 09:40:03 -08:00
Adrian c2fa9df87d fix: node module plugin in workflow and add tests (#210)
* fix: node module plugin in workflow and add tests

* fix: node modules regex

* changeset
2025-11-04 16:39:56 -08:00
Vercel Release Bot cf84adefda Version Packages (beta) (#205) 2025-11-04 12:22:37 -08:00
Copilot 4a821fce7c Fix Windows support by normalizing path separators in workflow IDs (#150)
---------

Signed-off-by: Nathan Rajlich <n@n8.io>
Co-authored-by: Nathan Rajlich <n@n8.io>
2025-11-04 12:13:45 -08:00
Vercel Release Bot 79df3799a3 Version Packages (beta) (#193)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-04 11:15:36 -08:00
Pranay Prakash 80d68b7a5d docs: add documentation and improve code clarity (#84)
* feat: add type safety for builder configurations with discriminated unions

Improves type safety by creating discriminated union types for builder-specific
configurations, making it clear which configuration options are required for
each builder type.

Changes:
- Created BaseWorkflowConfig interface with common options
- Created StandaloneConfig, VercelBuildOutputConfig, and NextConfig types
- Made WorkflowConfig a discriminated union based on buildTarget
- Added documentation for each configuration type
- Exported new types from @workflow/builders

This enables better IntelliSense and type checking when constructing builder
configurations, preventing invalid configuration combinations at compile time.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

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

* refactor: consolidate builder configuration patterns

Extracts common builder configuration pattern into a reusable helper function,
improving consistency across framework integrations.

Changes:
- Created createBaseBuilderConfig() helper in @workflow/builders
- Updated @workflow/nitro builders to use the new helper
- Removed CommonBuildOptions constant from nitro package
- Added clear documentation for when bundle paths are not used

This makes it easier for framework integrations to create properly configured
builder instances without manually specifying unused bundle path properties.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

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

* docs: add documentation and improve code clarity

Adds comprehensive JSDoc comments to BaseBuilder methods and improves code
documentation throughout the builders package.

Changes:
- Added class-level documentation for BaseBuilder
- Added JSDoc comments for all major public/protected methods
- Documented the discoveredEntries WeakMap caching mechanism
- Cleaned up TODO comment about debug file location
- Improved method parameter documentation

This makes the builders package more maintainable and easier to understand
for contributors and users extending the base builder functionality.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

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

* Apply suggestion from @vercel[bot]

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Nathan Rajlich <n@n8.io>
Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
2025-11-04 00:10:50 -08:00
Pranay Prakash ebee7f5425 refactor: consolidate builder configuration patterns (#83)
* refactor: consolidate builder configuration patterns

Extracts common builder configuration pattern into a reusable helper function,
improving consistency across framework integrations.

Changes:
- Created createBaseBuilderConfig() helper in @workflow/builders
- Updated @workflow/nitro builders to use the new helper
- Removed CommonBuildOptions constant from nitro package
- Added clear documentation for when bundle paths are not used

This makes it easier for framework integrations to create properly configured
builder instances without manually specifying unused bundle path properties.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

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

* .

Signed-off-by: Nathan Rajlich <n@n8.io>

---------

Signed-off-by: Nathan Rajlich <n@n8.io>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Nathan Rajlich <n@n8.io>
2025-11-03 23:56:23 -08:00
Pranay Prakash f8c779e4c8 refactor: improve error handling in bundle creation (#82)
Enhances logEsbuildMessages to throw on critical errors by default,
ensuring build failures are properly surfaced instead of being silently logged.

Changes:
- Added throwOnError parameter to logEsbuildMessages (defaults to true)
- When errors occur, now throws with formatted error messages
- Collects all error messages and locations for comprehensive error reporting

This prevents builds from appearing successful when esbuild encounters
critical errors, improving debugging and build reliability.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-03 23:40:21 -08:00
Pranay Prakash 10bfd4aea8 refactor: extract path resolution and directory creation helpers (#81)
* feat: add type safety for builder configurations with discriminated unions

Improves type safety by creating discriminated union types for builder-specific
configurations, making it clear which configuration options are required for
each builder type.

Changes:
- Created BaseWorkflowConfig interface with common options
- Created StandaloneConfig, VercelBuildOutputConfig, and NextConfig types
- Made WorkflowConfig a discriminated union based on buildTarget
- Added documentation for each configuration type
- Exported new types from @workflow/builders

This enables better IntelliSense and type checking when constructing builder
configurations, preventing invalid configuration combinations at compile time.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

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

* refactor: extract path resolution and directory creation helpers

Adds reusable helper methods to BaseBuilder for common path operations,
reducing code duplication and improving readability in builder subclasses.

Changes:
- Added resolvePath() helper in BaseBuilder
- Added ensureDirectory() helper in BaseBuilder
- Updated StandaloneBuilder (both in @workflow/builders and @workflow/cli)
  to use the new helpers
- Removed unnecessary imports from StandaloneBuilder

This simplifies path handling code from:
  const path = resolve(this.config.workingDir, this.config.somePath);
  await mkdir(dirname(path), { recursive: true });

To:
  const path = this.resolvePath(this.config.somePath);
  await this.ensureDirectory(path);

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Nathan Rajlich <n@n8.io>

---------

Signed-off-by: Nathan Rajlich <n@n8.io>
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-03 23:30:05 -08:00
Pranay Prakash 744d82f95b feat: add type safety for builder configurations with discriminated unions (#80)
* feat: add type safety for builder configurations with discriminated unions

Improves type safety by creating discriminated union types for builder-specific
configurations, making it clear which configuration options are required for
each builder type.

Changes:
- Created BaseWorkflowConfig interface with common options
- Created StandaloneConfig, VercelBuildOutputConfig, and NextConfig types
- Made WorkflowConfig a discriminated union based on buildTarget
- Added documentation for each configuration type
- Exported new types from @workflow/builders

This enables better IntelliSense and type checking when constructing builder
configurations, preventing invalid configuration combinations at compile time.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

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

* .

Signed-off-by: Nathan Rajlich <n@n8.io>

---------

Signed-off-by: Nathan Rajlich <n@n8.io>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Nathan Rajlich <n@n8.io>
2025-11-03 23:20:39 -08:00
Pranay Prakash bf54a7b061 refactor: standardize method naming and clarify log messages (#79)
Improves code consistency by standardizing method naming conventions and
clarifying log messages across builders.

Changes:
- Renamed buildClientLibrary() to createClientLibrary() in BaseBuilder to match
  the convention where "create" is used for protected/shared methods
- Updated all callers in StandaloneBuilder and VercelBuildOutputAPIBuilder
- Clarified log messages in StandaloneBuilder by removing "Vercel API" prefix
  since this builder is framework-agnostic

This establishes a clear pattern:
- Public/template methods in subclasses: build* (buildStepsFunction, etc.)
- Protected/shared methods in BaseBuilder: create* (createStepsBundle, etc.)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-03 23:03:56 -08:00
Pranay Prakash 4585222c75 refactor: deduplicate package.json and .vc-config.json generation (#77)
Extracts repeated package.json and .vc-config.json generation logic into
reusable helper methods in BaseBuilder, eliminating code duplication across
VercelBuildOutputAPIBuilder.

Changes:
- Added createPackageJson() helper method to BaseBuilder
- Added createVcConfig() helper method with sensible defaults
- Updated VercelBuildOutputAPIBuilder (both in @workflow/builders and @workflow/cli)
  to use the new helper methods
- Reduced configuration code from ~20 lines per function to ~3 lines

This makes the build code more maintainable and ensures consistent configuration
across all Vercel Build Output API functions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-03 22:55:01 -08:00
Pranay Prakash 5dfa4eb9f1 refactor: extract queue trigger configuration constants (#76)
Consolidates duplicated queue trigger configurations into shared constants
in @workflow/builders package, eliminating repetition across multiple builders.

Changes:
- Created STEP_QUEUE_TRIGGER and WORKFLOW_QUEUE_TRIGGER constants
- Updated VercelBuildOutputAPIBuilder to use shared constants
- Updated NextBuilder (both in @workflow/next and @workflow/cli) to use constants
- Exported constants from @workflow/builders index

This ensures consistent queue configuration across all builders and makes
future updates to these settings easier to manage from a single location.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-03 22:35:01 -08:00
Adrian 05714f7924 feat: add sveltekit support (#131)
* add workbench sveltekit

* add sveltekit package

* fix: use js for generated server routes in svelte

* add test routes for sveltekit workbench

* updates from debugging

* feat: add sveltekit build target

* update user sign up workflow workbench sveltekit

* fix: base builder missing GET route handler for sveltekit

* feat: add vercel builder and check for vercel env

* refactor: workflowPlugin for sveltekit

* ci: add tests to workbench sveltekit

* fix: no start command and vercel builder outputs

* fix: base builder conditions

* .

* add auto adapter sveltekit

* fix: disable checking origin for cross site ci stuff

* allow all trusted origins in svelte config

* fix: add catch for error thrown when waiting for ops

* fix: sveltekit workbench adapter

* test

* test

* refactor: move vercel builder on config resolved

* update package json

* add demo workflow trigger

* test letting sveltekit handle route generation

* fix: exclude git ignore for local builder outputs

* update config

* add debug logs

* update debug

* update turbo.json

* fix env check

* another output

* use top-level await

* ensure vercel functions are patched

* change hook

* update

* fix spread

* debug

* update

* chore: remove vercel builder

* chore: update comments in sveltekit workflow package

* chore: remove console comment

* refactor: workflow svelte plugin

* refactor: simplify local builder config

* chore: remove unused deps

* chore: add comment for workbench svelte app

* chore: add sveltekit export to workflow

* export sveltekit from workflow

* lockfile

* chore: remove unused deps svelte workbench

* update styling

* add sveltekit getting started docs

* update sveltekit docs getting started

* changeset

* Apply suggestion from @vercel[bot]

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>

* use proper env var

* Update packages/sveltekit/src/index.ts

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>

* Update docs/content/docs/getting-started/sveltekit.mdx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Document CSRF protection bypass in SvelteKit workbench config (#157)

* Initial plan

* docs: add CSRF security warning to svelte.config.js

Co-authored-by: adriandlam <93681064+adriandlam@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: adriandlam <93681064+adriandlam@users.noreply.github.com>

* refactor: deduplicate SvelteKit request conversion logic (#156)

* Initial plan

* refactor: extract duplicated SvelteKit request conversion to helper

Co-authored-by: adriandlam <93681064+adriandlam@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: adriandlam <93681064+adriandlam@users.noreply.github.com>

* docs: fix getting staretd sveltekit missing folder

* chore: cleanup sveltekit builder after rebase

* lockfile

* fix: sveltekit building logic in base builder

* refactor: move sveltekit builder logic to its own package

* fix: console log base builder

* changeset

* test

* feat: create hmr plugin

* fix: add initial build on load

* fix: check all files for workflows and steps

* add comments for plugin todo

* remove catching error

* fix: missing context for nodejs envs causing waitUntil to fail

* fix: setting global request conext in vercel environments

---------

Co-authored-by: JJ Kasper <jj@jjsweb.site>
Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2025-11-03 21:15:33 -08:00
Pranay Prakash 652485aa30 feat: create @workflow/builders package with shared builder infrastructure (#73)
This commit extracts builder infrastructure from @workflow/cli into a new
shared @workflow/builders package. This improves code organization by:

- Creating a dedicated package for builder functionality
- Allowing @workflow/next and @workflow/nitro to depend on builders directly
- Reducing coupling between framework integrations and the CLI
- Preparing for moving NextBuilder to @workflow/next in the next PR

Changes:
- Created new @workflow/builders package
- Moved BaseBuilder, BasicBuilder, and VercelBuildOutputAPIBuilder
- Moved esbuild plugins (swc, discover-entries, node-module)
- Moved WorkflowConfig and BuildTarget types
- Updated @workflow/cli to import from @workflow/builders
- Updated @workflow/nitro to import from @workflow/builders
- Re-exported types from CLI for backwards compatibility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 13:37:39 -08:00