mirror of
https://github.com/vercel/workflow.git
synced 2026-09-14 19:59:43 +08:00
main
20 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
f8f6e17aeb |
Add opt-in QuickJS WASM VM engine (WORKFLOW_VM=quickjs) (#3048)
* Add opt-in QuickJS WASM VM engine (WORKFLOW_VM=quickjs) with full event replay * QuickJS engine: AbortController, setAttributes, terminal drain, turbo-safe requeue, stable PRNG seed * QuickJS engine: hook.getConflict support, cross-run writable forwarding symbols * QuickJS engine: stream framing round-trip, bound step proxies, webhook fidelity * Apply biome fixes to QuickJS engine files * Address review feedback: anchor source-map strip to end-of-input, use getWorkflowQueueName for conflict requeue, Buffer-free asset decoding, function replacers for payload injection, maxEventsLimit guard * CI: include generated QuickJS source assets in shared e2e build artifacts * Fix same-token hook ordering and conflicted-hook disposal in the QuickJS engine * CI: run both VM engines across all frameworks and worlds; label jobs with the engine * Fix stack overflow stripping inline source maps from webpack dev bundles; harden step-listing e2e assertions against eventually-consistent reads * e2e: poll step listings until analytics rows include attempt (optional column can lag terminal status) * e2e: use --withData to force storage-backed step listings for attempt assertions (analytics listing can omit attempt entirely) * Sort imports in QuickJS serialization files (biome organizeImports) * QuickJS engine: resolve the run's full payload-key capability so sealed (encp) hook payloads open Main's sealed-box work (#3096) makes cross-deployment resumeHook() seal hook payloads to the target run's published X25519 public key. The shared start() path publishes that key regardless of engine, so QuickJS runs receive sealed payloads too — but the QuickJS entrypoint resolved only the bare symmetric key via importKey(), which cannot open encp envelopes. The first sealed hook payload wedged the run right after hook_received, timing out every hook/webhook e2e on Vercel prod (node:vm legs were fine — the node engine resolves the full capability via memoizeEncryptionKey). Resolve deriveRunPayloadKeys() in the entrypoint instead and widen the runtime's key types from CryptoKey to DecryptionKey. Writes stay symmetric (encrypt() with RunPayloadKeys takes the encr path). Regression test seals a payload exactly as resumeHook does and round-trips it through the VM. * Address review: crypto/process parity, loud Intl guards, lazy engine import, VM-leak guard, telemetry namespace, eval-string escaping - Deterministic crypto.getRandomValues/randomUUID in the VM bootstrap, drawing from the seeded Math.random (identical sequences to the node engine's vm/index.ts implementations); all crypto.subtle methods throw with step-function guidance. process.env exposed as a frozen copy, matching node. - Intl: throwing constructors (no ICU in QuickJS), and toLocale*-family methods (incl. localeCompare) throw when given an explicit locale so cross-engine divergence is loud instead of silently writing different values into the event log. No-argument forms keep working. - runtime.ts lazy-imports the QuickJS entrypoint at dispatch, keeping the ~1.3MB embedded WASM assets out of node-engine deployments. - runQuickJSWorkflow wraps the per-run phase so an exceptional exit disposes the VM instead of leaking it in a reused compute instance; corrected the misleading fail-loud comment (run_failed, not retry); warn when the event drain loop exhausts its iteration bound. - Telemetry attributes renamed quickjs.* → workflow.vm.* to stay in the file's workflow.* namespace. - Eval-string correlation-id interpolation uses JSON.stringify instead of quote-only escaping. - common-vm.test.ts pins the reducer/reviver superset invariant against common.ts so the duplicated sets can't silently drift. - Docs enumerate the remaining global-surface differences (subtle.digest, Intl, WebAssembly, Atomics); quickjs-entrypoint documents the known precondition-guard gap. * QuickJS engine: implement resilient resumeHook (hookInput materialization + resumeId dedup) #1834 made resumeHook() fall back to enqueueing the run with a hookInput payload when the direct hook_received write fails transiently, with the runtime materializing the missing event on delivery. Only the node:vm path implemented it — the QuickJS dispatch returned before the node block, so the resilient payload was silently dropped and the new e2e timed out on every quickjs leg. - runtime.ts threads hookInput into runWorkflowWithQuickJS; the entrypoint materializes the missing hook_received after loading the event log (resumeId-keyed dedup, occurredAt from the resumeId ULID, local eventData substitution for lazy/ref responses, EntityConflict / HookNotFound handling) — mirroring the node block. - processEvents drops duplicate hook_received rows sharing a resumeId (first-in-log wins), matching the node engine's EventsConsumer dedup; the seen-set lives in the VM heap so it is deterministic per replay. Verified against the dev server with WORKFLOW_VM=quickjs: the resilient resume e2e passes and the materialization is observable in the logs; all 27 hook e2e tests green. * Rerun CI * QuickJS engine: split VM-local class/step-function reducers off the hardened host codec The hardened host-side serialization (#3257) made the shared reducers/class.ts and reducers/step-function.ts depend on serialization/hardened.ts, which imports node:util and captures host intrinsics — unbundleable and meaningless inside the QuickJS guest, where the codec already runs in the guest realm. Point the VM codec at pre-hardening copies with identical wire format; the host/guest boundary hardening for this engine arrives with the host-side serde that retires the VM bundle. * QuickJS engine: enqueue explicit wait continuations instead of same-message redelivery Scheduling sleep wakeups by returning { timeoutSeconds } redelivers the CURRENT queue message. When that message is a hook-resume delivery (carrying hookInput), its redelivery re-runs the lazy-resume re-ensure in the handler prologue; if the workflow disposed the hook during the first delivery (dispose -> sleep), the re-ensure gets HookNotFound, the prologue acks the message as 'nothing left to resume', and the wait timer it carried is silently lost — the run wedges (caught by the hookDisposeTestWorkflow e2e). Enqueue fresh continuation messages instead, matching the node engine's suspension handler: getWaitContinuationDispatch for pending waits (gaining delay clamping/hop chaining and pending-wait dedup keys) and a plain immediate message for elapsed-wait / attr_set / getConflict requeues. A fresh message carries only runId, so its delivery always reaches replay. Also: read hook_received resumeId from the canonical top-level event field (eventData.resumeId is the deprecated legacy fallback), and stop passing hookInput into the entrypoint — the shared prologue in runtime.ts materializes the event for both engines. Adds a VM replay test for the hook -> dispose -> sleep shape. * Sort imports in quickjs-entrypoint (biome organizeImports) * Address review: dispatch inside run-level try/catch, queue namespace + run-origin trace carrier threading, configurable interrupt budget - Move the QuickJS engine dispatch inside the replay loop's try so escaping engine failures (MaxEventsExceededError, WASM OOM, bundle-eval errors) reach the catch that classifies and records run_failed, instead of nacking the message and burning all 48 queue redeliveries into MAX_DELIVERIES_EXCEEDED. Transient world errors still rethrow for redelivery. Updated the two comments that describe the propagation. - Thread the queue namespace from runtime.ts through runWorkflowWithQuickJS into every message publish (step dispatch, hook_conflict requeue, immediate requeue, wait continuation) — without it, publishes on a namespaced deployment land on __wkf_workflow_* while consumers listen on __<ns>_wkf_workflow_*. - Thread the run-origin nextTraceCarrier accessor through instead of capturing the current invocation context, so linked-mode invocations form a star around workflow.start rather than chaining; the hook_conflict requeue now carries a traceCarrier and requestedAt. - Replace the hardcoded 30s VM interrupt budget with the configurable replay budget (getReplayTimeoutMs, default 240s), matching the node engine. * Sort imports in quickjs-runtime (biome organizeImports) |
||
|
|
62d570ed4b | Remove retired v1 step route plumbing (#3061) | ||
|
|
57cccaf373 | Remove lazy discovery from workflow/next (#2545) | ||
|
|
00a011dee4 |
Add stable Next.js eager and lazy test coverage (#1747)
* Add stable Next.js eager and lazy test coverage * Address PR review feedback * Fix eager Next step route builds * Fix eager Next manifest refreshes * Fix eager Next e2e stack assertions * Externalize native step bundle bindings * Lazy load Vercel world runtime * Fix Next dev step sourcemap assertions * Consolidate eager build changesets * Fix Vercel world tracing in Next deployments * Externalize Vercel world in Next builds * Fix webpack tracing for Vercel world deps * Fix eager workflow route bundling * Rely on Next server externals |
||
|
|
8ea1532e48 | [core] Combine flow+step bundle and process steps eagerly (#1338) | ||
|
|
8202663857 | [workbench] Add TanStack Start workbench and tests (#1875) | ||
|
|
b0464b6af2 | Always run canary Next.js tests (#1042) | ||
|
|
86f62f2779 |
Refactor e2e tests to no longer use "trigger" endpoint (#958)
## Summary
Refactors the E2E tests to call `start()` from `workflow/api` directly instead of going through the `/api/trigger` HTTP endpoint in each workbench app. This removes a layer of indirection — the tests now use the same API that users would use to start workflows programmatically.
### Before
```ts
const run = await triggerWorkflow('addTenWorkflow', [123]);
const returnValue = await getWorkflowReturnValue(run.runId);
```
- `triggerWorkflow()` sent an HTTP POST to `/api/trigger` on the workbench app
- The workbench app looked up the workflow function, called `start()`, and returned the run ID
- `getWorkflowReturnValue()` polled `GET /api/trigger?runId=...` until the workflow completed
### After
```ts
const run = await start(await e2e('addTenWorkflow'), [123]);
const returnValue = await run.returnValue;
```
- `e2e()` / `getWorkflowMetadata()` fetches the manifest from `/.well-known/workflow/v1/manifest.json` to look up the correct `workflowId`
- `start()` is called directly from the test process via the configured World
- `run.returnValue` polls for completion via the World (no HTTP polling endpoint needed)
### Changes
**`packages/core/e2e/e2e.test.ts`**
- Removed `triggerWorkflow()` and `getWorkflowReturnValue()` helpers
- Added `fetchManifest()` to fetch and cache the workflow manifest from the deployment
- Added `getWorkflowMetadata(file, fn)` to look up `{ workflowId }` from the manifest
- Added `e2e(fn)` shorthand for the common case of `workflows/99_e2e.ts`
- All tests call `start()` and `run.returnValue` directly
- Error tests use `.catch()` to inspect `WorkflowRunFailedError`
- Output stream tests use `run.getReadable()` directly (skipped on local world where cross-process streaming isn't supported)
- `beforeAll` configures the local World with the correct data directory and base URL
- Pages Router tests use `startWorkflowViaHttp()` to specifically validate the HTTP trigger path
**Workbench apps (hono, express, fastify, nest)**
- Removed `/api/trigger` route handlers
- Kept `/api/hook`, `/api/test-direct-step-call`, `/api/test-health-check` endpoints
- Re-added `_workflows.js` side-effect import for hono/express/fastify to maintain Nitro's HMR dependency graph
**Deleted trigger-only route files** from: nextjs-turbopack, nextjs-webpack, vite, sveltekit, astro, nuxt, nitro-v2, nitro-v3, example
**`.github/workflows/tests.yml`**
- Added `WORKFLOW_PUBLIC_MANIFEST: '1'` to all E2E test jobs
### Dependencies
Stacked on #963 which adds `WORKFLOW_PUBLIC_MANIFEST` support to all framework builders.
|
||
|
|
50f50f44d7 | NestJS framework support (#840) | ||
|
|
49e2df4691 | fix: fastify and astro test matrix (#538) | ||
|
|
23e1fc59ca |
Feat: fastify support with nitro (#386)
* init Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * not using my prototype fastify plugin Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * renamed workbench dir Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * lockfile update Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * removed Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * symlinked workflows dir Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * added readme Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * symlinked client page Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * scope nitro route to allow renderer fallback Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * allow empty json bodies Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * comments Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * improve error handling and cleanup in /api/trigger Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * consistent server replies Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * expect json res Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * fix json res for e2e test 3,4,5,11 Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * fix fastify streaming responses Stream web streams the same way express or hono do. Read the web reader and write each json chunk to reply.raw. Avoids fastifys async iterator quirks that reordered frames and sent undefined data in the output stream tests Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * fix stream responses for e2e tests Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * clearer comments Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * fix streaming res content type. passes all core e2e tests Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * updated dev deps fastify bench Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * fastify logo (light/dark mode) Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * update url Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * fastify docs Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com> * Apply suggestions from code review Co-authored-by: Adrian <me@adriandlam.com> * Update docs/content/docs/getting-started/fastify.mdx Co-authored-by: Adrian <me@adriandlam.com> * Update docs/content/docs/getting-started/fastify.mdx Co-authored-by: Adrian <me@adriandlam.com> * Update docs/content/docs/getting-started/fastify.mdx Co-authored-by: Adrian <me@adriandlam.com> * Update docs/content/docs/getting-started/fastify.mdx Co-authored-by: Adrian <me@adriandlam.com> * Update docs/content/docs/getting-started/fastify.mdx Co-authored-by: Adrian <me@adriandlam.com> * Update docs/content/docs/getting-started/fastify.mdx Co-authored-by: Adrian <me@adriandlam.com> * Update docs/content/docs/getting-started/fastify.mdx Co-authored-by: Adrian <me@adriandlam.com> * Sree Narayanan <sreeaadhi07@gmail.com> DCO Remediation Commit for Sree Narayanan <sreeaadhi07@gmail.com> I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: |
||
|
|
1ac5592452 | feat: add astro support (#347) | ||
|
|
00066be07b |
feat: add express support (#138)
* refactor: migrate to latest nitro v3 Signed-off-by: Pooya Parsa <pooya@pi0.io> * update workaround * fix(nitro): nitro builder using deprecated srcDir * fix: testing matrix dirs * fix(hono): externalize nitro workflow output dir * chore: format * fix(nitro): externalize .nitro/workflow folder * docs(hono): update getting started * update docs and workbench * improve plugin patch * docs: preserve code style * update `getWorkflowDirs` * test: fix hono dev config * fix: wrong api file path in hono dev config * fix(nitro): check all dirs for builder * chore: add comments * add express workbench testing app * docs: add express wip page * add workflows symlink for express workbench * add hook and trigger routes for express workbench * update server entrypoint to use hook and trigger router * remove h3 and add express types * docs: add express getting started guide * test: wire up express workbench * Update workbench/express/routes/hook.routes.ts Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com> * Update workbench/express/routes/trigger.routes.ts Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com> * build: missing deps in workbench express * build: remove express as dev dep * lockfile * build: remove test command from express workbench * fix: url query parsing * chore: add README * remove app hook and trigger routers * . * fix: json body not getting parsed in workbench express * fix: writing streams in workbench * fix: wrong stream piping express workbench * update * fix: json parsing body workbench express * update * fix: add js file extension for relative import on workflow express workbench * test * refactor: route naming conventions for nitro * refactore: convert to catch all api on express * Update workbench/express/package.json Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com> * refactor: api file convention * testing presets * refactor: use simple `index.ts` * update * switch entry format to node * add generate workflow script to express * fix: express nitro config * docs(express): update express getting started * test: add express * fix(express): workbench api routes * fix(express): add workflowsDir to testing matrix * format * update gitignore * fix * . * trigger ci * update workflows dir * fix: streaming in express * fix: not json parsing body express * fix: missing dev test in express * fix: test matrix for express * docs(express): update getting started and add rollup dep * . * docs: add express card to home page and getting started * Update docs/content/docs/getting-started/express.mdx Co-authored-by: Pooya Parsa <pooya@pi0.io> * docs: fix express * remove h1 on express --------- Signed-off-by: Pooya Parsa <pooya@pi0.io> Co-authored-by: Pooya Parsa <pooya@pi0.io> Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com> |
||
|
|
ee25bd9d55 |
refactor: upgrade to latest nitro v3 (#293)
* refactor: migrate to latest nitro v3 Signed-off-by: Pooya Parsa <pooya@pi0.io> * update workaround * fix(nitro): nitro builder using deprecated srcDir * fix: add back nitro config * fix: testing matrix dirs * fix(hono): externalize nitro workflow output dir * chore: format * fix(nitro): externalize .nitro/workflow folder * docs(hono): update getting started * changeset * update docs and workbench * improve plugin patch * docs: preserve code style * update `getWorkflowDirs` * update vite workbench * test: fix hono dev config * fix: wrong api file path in hono dev config * fix(nitro): check all dirs for builder * chore: add comments --------- Signed-off-by: Pooya Parsa <pooya@pi0.io> Co-authored-by: Adrian Lam <me@adriandlam.com> |
||
|
|
945a946812 |
Normalize Workbenches (#283)
* Normalize Workbenches Normalize trigger scripts across workbenches fix: include hono in local build test test: include src dir for test test: add workflow dir config in test to fix sveltekit dev tests add temp 7_full in example wokrflow format fix(sveltekit): detecting workflow folders and customizable dir Remove 7_full and 1_simple error replace API symlink in webpack workbench Fix sveltekit and vite tests Fix sveltekit symlinks Test fixes Fix sveltekit workflows path Dont symlink routes in vite Include e2e tests for hono and vite fix error tests post normalization wip - attempted fixes * Add claude demo command * fix: normalize workbench tests (#292) * Proper stacktrace propogation in world Proper stacktrace propogation in world * Standardize the error type in the world spec * Normalize Workbenches Normalize trigger scripts across workbenches fix: include hono in local build test test: include src dir for test test: add workflow dir config in test to fix sveltekit dev tests add temp 7_full in example wokrflow format fix(sveltekit): detecting workflow folders and customizable dir Remove 7_full and 1_simple error replace API symlink in webpack workbench Fix sveltekit and vite tests Fix sveltekit symlinks Test fixes Fix sveltekit workflows path Dont symlink routes in vite Include e2e tests for hono and vite * fix error tests post normalization * fix(sveltekit): reading file on hmr delete * changeset * fix(vite): add resolve symlink script * fix(vite): missing building on hmr * test local builder in vite * test: increase timeout on hookWorkflow * test: ignore vite based apps in crossFileWorkflow * test: fix nitro based apps status codes * fix: intercept default vite spa handler on 404 workflow routes * fix: vite hook route returning 422 * test: use 422 for hookWorkflow expected * test: fix hono returning 404 * chore: add comment to middleware to clarify * make api route for duplicate case * revert * revert: nitro builder * add back nitro unhandled rejection logic * test: add hono * changeset * fix: unused method * fix: remove duplicate import * remove * chore: add comments to clarify * test remove vite symlink script --------- Co-authored-by: Pranay Prakash <pranay.gp@gmail.com> * refactor: add top level resolve symlinks script * fix: cleanup builder directories (#319) * fix: add sveltekit server routes to builder * fix: remove root workflow dir check * fix missing root level workflow route * Fix: The constructor now hardcodes `dirs: ['src/routes', 'src/lib']` which silently ignores any user\-provided `dirs` option passed to the plugin\, breaking the documented API and removing support for custom workflow directories\. * Fix: The test expectations don\'t match the new implementation of `getWorkflowDirs()`\. The mock provides `scanDirs` which the new code no longer uses\, and the new implementation adds scanning of `routesDir` and `apiDir` instead\. * fix(nitro): use src dir --------- Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com> Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com> * refactor(nitro): use suppressUndefinedRejections * revert: sveltekit builder --------- Co-authored-by: Adrian <me@adriandlam.com> Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com> Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com> |
||
|
|
fb8153bec4 |
feat: add Nuxt module and documentation (#187)
* feat: add Nuxt module and documentation * fix: add the prepare in the build command * Apply suggestion from @vercel[bot] Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com> * chore: simplify usage without /nuxt * wip * Update nuxt.mdx Co-Authored-By: Daniel Roe <daniel@roe.dev> * add clean command and ignore prepare * use @workflow/nitro * Changeset Added a Nuxt module and updated documentation accordingly. * feat: enable typescript plugin in tsconfig * chore: revert accordion value * chore: use symlink * fix: json parsing in trigger route for nitro-v2 * ci: add e2e tests for nuxt * ci: add nuxt to test matrix * chore: make sure to add /nuxt to avoid conflicts when importing entry-points * chore: move typescriptPlugin option to Nitro * chore: body is already parsed * fix: use readRawBody * fix: use rawBody in hook.post too * chore: add missing import (but not required) * chore: update pm * Create resolve-symlinks.sh * chore: add also node-rs/xxhash * Update create-test-matrix.mjs * update matrix * Update create-test-matrix.mjs * remove symlink to nitro-v2 --------- Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe <daniel@roe.dev> Co-authored-by: Pranay Prakash <pranay.gp@gmail.com> Co-authored-by: Adrian Lam <me@adriandlam.com> |
||
|
|
adf0cfeb91 |
feat: add getPort for detecting pid port (#233)
* feat: add getPort method for detecting pid port * lockfile * update tests and fix getPort usage * changeset * docs: update sveltekit getting started * fix: use pid-port * fix: not using config port env * fix: remove unused getPort from world core * remove unused stuff * fix: world local config returning port 3000 as fallback * changeset * fix: rebase conflicts * fix: util test missing http import * changeset * fix: wrong import for getPort in core runtime * fix: getPort in @workflow/utils being imported into workflow runtime * test: simplify sveltekit test * fix missing import in test * fix: async await stuff with getPort * refactor: move getPort to @workflow/utils/get-port * test: simplfiy getPort tests * test: fix sveltekit ports |
||
|
|
98c36f1eb0 |
feat: add hmr and fix dev tests (#199)
* add hmr and dev tests for nitro and sveltekit * changeset * revert: e2e testing code * add streams.ts to workbench apps * fix: test confnigs * fix: hmr failing on new files for sveltekit plugin * lockfile * switch testing to use 3_stream.ts * fix: sveltekit hmr test file import * fix: nextjs testing file * remove stuff * changeset * refactor(tests): expose config through matrix config * fix: add symlink for nextjs turbopack * add resolve symlinks script * fix: nextjs-webpack resolve symlinks script |
||
|
|
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> |
||
|
|
4ca9a3edbd |
Introducing Workflow DevKit
build durable, resilient, and observable workflows. Co-authored-by: Nathan Rajlich <n@n8.io> Co-authored-by: Pranay Prakash <pranay.gp@gmail.com> Co-authored-by: Adrian <me@adriandlam.com> Co-authored-by: JJ Kasper <jj@jjsweb.site> Co-authored-by: Vercel Release Bot <88769842+vercel-release-bot@users.noreply.github.com> Co-authored-by: Peter Wielander <mittgfu@gmail.com> Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com> Co-authored-by: Gal Schlezinger <gal@spitfire.co.il> Co-authored-by: Manuel Muñoz Solera <mamuso@mamuso.net> Co-authored-by: Garrett <garrett.tolbert@vercel.com> Co-authored-by: Lars Grammel <lars.grammel@gmail.com> Co-authored-by: Pooya Parsa <pyapar@gmail.com> Co-authored-by: Tom Dale <tom@tomdale.net> Co-authored-by: Vishal Yathish <135551666+visyat@users.noreply.github.com> Co-authored-by: josh <144584931+dancer@users.noreply.github.com> |