@workflow/sveltekit 4.0.0-beta.4 → 4.0.0-beta.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAgBvE,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAY9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YA8BvB,eAAe;YAyCf,mBAAmB;YAwCnB,iBAAiB;YAoFjB,mBAAmB;CA8BlC"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EAEX,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAS5B,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAe9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAqCvB,eAAe;YAuCf,mBAAmB;YAqCnB,iBAAiB;YAqDjB,mBAAmB;CA8BlC"}
package/dist/builder.js CHANGED
@@ -1,30 +1,25 @@
1
1
  import { constants } from 'node:fs';
2
2
  import { access, mkdir, readFile, stat, writeFile } from 'node:fs/promises';
3
3
  import { join, resolve } from 'node:path';
4
- import { BaseBuilder } from '@workflow/builders';
5
- // Helper function code for converting SvelteKit requests to standard Request objects
6
- const SVELTEKIT_REQUEST_CONVERTER = `
7
- async function convertSvelteKitRequest(request) {
8
- const options = {
9
- method: request.method,
10
- headers: new Headers(request.headers)
11
- };
12
- if (!['GET', 'HEAD', 'OPTIONS', 'TRACE', 'CONNECT'].includes(request.method)) {
13
- options.body = await request.arrayBuffer();
14
- }
15
- return new Request(request.url, options);
16
- }
17
- `;
4
+ import { BaseBuilder, NORMALIZE_REQUEST_CODE, } from '@workflow/builders';
5
+ const SVELTEKIT_VIRTUAL_MODULES = [
6
+ '$env/*', // All $env subpaths
7
+ '$lib', // Exact $lib import
8
+ '$lib/*', // All $lib subpaths
9
+ '$app/*', // All $app subpaths
10
+ ];
18
11
  export class SvelteKitBuilder extends BaseBuilder {
19
12
  constructor(config) {
13
+ const workingDir = config?.workingDir || process.cwd();
20
14
  super({
21
15
  ...config,
22
- dirs: ['workflows'],
16
+ dirs: ['workflows', 'src/workflows', 'routes', 'src/routes'],
23
17
  buildTarget: 'sveltekit',
24
18
  stepsBundlePath: '', // unused in base
25
19
  workflowsBundlePath: '', // unused in base
26
20
  webhookBundlePath: '', // unused in base
27
- workingDir: config?.workingDir || process.cwd(),
21
+ workingDir,
22
+ externalPackages: [...SVELTEKIT_VIRTUAL_MODULES],
28
23
  });
29
24
  }
30
25
  async build() {
@@ -39,42 +34,48 @@ export class SvelteKitBuilder extends BaseBuilder {
39
34
  }
40
35
  // Get workflow and step files to bundle
41
36
  const inputFiles = await this.getInputFiles();
42
- const tsConfig = await this.getTsConfigOptions();
37
+ const tsconfigPath = await this.findTsConfigPath();
43
38
  const options = {
44
39
  inputFiles,
45
40
  workflowGeneratedDir,
46
- tsBaseUrl: tsConfig.baseUrl,
47
- tsPaths: tsConfig.paths,
41
+ tsconfigPath,
48
42
  };
49
43
  // Generate the three SvelteKit route handlers
50
- await this.buildStepsRoute(options);
44
+ const manifest = await this.buildStepsRoute(options);
51
45
  await this.buildWorkflowsRoute(options);
52
46
  await this.buildWebhookRoute({ workflowGeneratedDir });
47
+ // Generate unified manifest
48
+ const workflowBundlePath = join(workflowGeneratedDir, 'flow/+server.js');
49
+ await this.createManifest({
50
+ workflowBundlePath,
51
+ manifestDir: workflowGeneratedDir,
52
+ manifest,
53
+ });
53
54
  }
54
- async buildStepsRoute({ inputFiles, workflowGeneratedDir, tsPaths, tsBaseUrl, }) {
55
+ async buildStepsRoute({ inputFiles, workflowGeneratedDir, tsconfigPath, }) {
55
56
  // Create steps route: .well-known/workflow/v1/step/+server.js
56
57
  const stepsRouteDir = join(workflowGeneratedDir, 'step');
57
58
  await mkdir(stepsRouteDir, { recursive: true });
58
- await this.createStepsBundle({
59
+ const { manifest } = await this.createStepsBundle({
59
60
  format: 'esm',
60
61
  inputFiles,
61
62
  outfile: join(stepsRouteDir, '+server.js'),
62
63
  externalizeNonSteps: true,
63
- tsBaseUrl,
64
- tsPaths,
64
+ tsconfigPath,
65
65
  });
66
66
  // Post-process the generated file to wrap with SvelteKit request converter
67
67
  const stepsRouteFile = join(stepsRouteDir, '+server.js');
68
68
  let stepsRouteContent = await readFile(stepsRouteFile, 'utf-8');
69
69
  // Replace the default export with SvelteKit-compatible handler
70
- stepsRouteContent = stepsRouteContent.replace(/export\s*\{\s*stepEntrypoint\s+as\s+POST\s*\}\s*;?$/m, `${SVELTEKIT_REQUEST_CONVERTER}
70
+ stepsRouteContent = stepsRouteContent.replace(/export\s*\{\s*stepEntrypoint\s+as\s+POST\s*\}\s*;?$/m, `${NORMALIZE_REQUEST_CODE}
71
71
  export const POST = async ({request}) => {
72
- const normalRequest = await convertSvelteKitRequest(request);
72
+ const normalRequest = await normalizeRequest(request);
73
73
  return stepEntrypoint(normalRequest);
74
74
  }`);
75
75
  await writeFile(stepsRouteFile, stepsRouteContent);
76
+ return manifest;
76
77
  }
77
- async buildWorkflowsRoute({ inputFiles, workflowGeneratedDir, tsPaths, tsBaseUrl, }) {
78
+ async buildWorkflowsRoute({ inputFiles, workflowGeneratedDir, tsconfigPath, }) {
78
79
  // Create workflows route: .well-known/workflow/v1/flow/+server.js
79
80
  const workflowsRouteDir = join(workflowGeneratedDir, 'flow');
80
81
  await mkdir(workflowsRouteDir, { recursive: true });
@@ -83,16 +84,15 @@ export const POST = async ({request}) => {
83
84
  outfile: join(workflowsRouteDir, '+server.js'),
84
85
  bundleFinalOutput: false,
85
86
  inputFiles,
86
- tsBaseUrl,
87
- tsPaths,
87
+ tsconfigPath,
88
88
  });
89
89
  // Post-process the generated file to wrap with SvelteKit request converter
90
90
  const workflowsRouteFile = join(workflowsRouteDir, '+server.js');
91
91
  let workflowsRouteContent = await readFile(workflowsRouteFile, 'utf-8');
92
92
  // Replace the default export with SvelteKit-compatible handler
93
- workflowsRouteContent = workflowsRouteContent.replace(/export const POST = workflowEntrypoint\(workflowCode\);?$/m, `${SVELTEKIT_REQUEST_CONVERTER}
93
+ workflowsRouteContent = workflowsRouteContent.replace(/export const POST = workflowEntrypoint\(workflowCode\);?$/m, `${NORMALIZE_REQUEST_CODE}
94
94
  export const POST = async ({request}) => {
95
- const normalRequest = await convertSvelteKitRequest(request);
95
+ const normalRequest = await normalizeRequest(request);
96
96
  return workflowEntrypoint(workflowCode)(normalRequest);
97
97
  }`);
98
98
  await writeFile(workflowsRouteFile, workflowsRouteContent);
@@ -106,42 +106,15 @@ export const POST = async ({request}) => {
106
106
  });
107
107
  // Post-process the generated file to wrap with SvelteKit request converter
108
108
  let webhookRouteContent = await readFile(webhookRouteFile, 'utf-8');
109
- // For local dev (node), need this since context isn't available to waitUntil()
110
- // Add SYMBOL_FOR_REQ_CONTEXT at the top after imports
111
- webhookRouteContent = webhookRouteContent.replace(/(import.*?;)/, `$1\n\nconst SYMBOL_FOR_REQ_CONTEXT = Symbol.for('@vercel/request-context');`);
112
109
  // Update handler signature to accept token as parameter
113
110
  webhookRouteContent = webhookRouteContent.replace(/async function handler\(request\) \{[\s\S]*?const token = decodeURIComponent\(pathParts\[pathParts\.length - 1\]\);/, `async function handler(request, token) {`);
114
111
  // Remove the URL parsing code since we get token from params
115
112
  webhookRouteContent = webhookRouteContent.replace(/const url = new URL\(request\.url\);[\s\S]*?const pathParts = url\.pathname\.split\('\/'\);[\s\S]*?\n/, '');
116
113
  // Replace all HTTP method exports with SvelteKit-compatible handlers
117
- webhookRouteContent = webhookRouteContent.replace(/export const GET = handler;\nexport const POST = handler;\nexport const PUT = handler;\nexport const PATCH = handler;\nexport const DELETE = handler;\nexport const HEAD = handler;\nexport const OPTIONS = handler;/, `${SVELTEKIT_REQUEST_CONVERTER}
114
+ webhookRouteContent = webhookRouteContent.replace(/export const GET = handler;\nexport const POST = handler;\nexport const PUT = handler;\nexport const PATCH = handler;\nexport const DELETE = handler;\nexport const HEAD = handler;\nexport const OPTIONS = handler;/, `${NORMALIZE_REQUEST_CODE}
118
115
  const createSvelteKitHandler = (method) => async ({ request, params, platform }) => {
119
- // Track background promises for local dev
120
- const backgroundPromises = [];
121
-
122
- // Set up context for @vercel/functions waitUntil
123
- const context = {
124
- waitUntil: platform?.waitUntil || ((promise) => {
125
- // Fallback for local dev/tests: collect promises to await them
126
- backgroundPromises.push(promise.catch(err => console.error('Background task error:', err)));
127
- })
128
- };
129
-
130
- // Only set context if it doesn't already exist (Vercel sets it and makes it read-only)
131
- if (!globalThis[SYMBOL_FOR_REQ_CONTEXT]) {
132
- globalThis[SYMBOL_FOR_REQ_CONTEXT] = {
133
- get: () => context
134
- };
135
- }
136
-
137
- const normalRequest = await convertSvelteKitRequest(request);
116
+ const normalRequest = await normalizeRequest(request);
138
117
  const response = await handler(normalRequest, params.token);
139
-
140
- // In local dev (no platform.waitUntil), await background tasks before returning
141
- if (!platform?.waitUntil && backgroundPromises.length > 0) {
142
- await Promise.all(backgroundPromises);
143
- }
144
-
145
118
  return response;
146
119
  };
147
120
 
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
package/dist/plugin.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import type { Plugin } from 'vite';
2
- export declare function workflowPlugin(): Plugin;
2
+ export declare function workflowPlugin(): Plugin[];
3
3
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,MAAM,EAAE,MAAM,MAAM,CAAC;AAG/C,wBAAgB,cAAc,IAAI,MAAM,CA6HvC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAczC"}
package/dist/plugin.js CHANGED
@@ -1,111 +1,19 @@
1
- import { relative } from 'node:path';
2
- import { transform } from '@swc/core';
3
- import { resolveModulePath } from 'exsolve';
1
+ import { createBuildQueue } from '@workflow/builders';
2
+ import { workflowTransformPlugin } from '@workflow/rollup';
3
+ import { workflowHotUpdatePlugin } from '@workflow/vite';
4
4
  import { SvelteKitBuilder } from './builder.js';
5
5
  export function workflowPlugin() {
6
- let builder;
7
- return {
8
- name: 'workflow:sveltekit',
9
- // TODO: Move this to @workflow/vite or something since this is vite specific
10
- // Transform workflow files with SWC
11
- async transform(code, id) {
12
- // Only apply the transform if file needs it
13
- if (!code.match(/(use step|use workflow)/)) {
14
- return null;
15
- }
16
- const isTypeScript = id.endsWith('.ts') || id.endsWith('.tsx');
17
- const isTsx = id.endsWith('.tsx');
18
- const swcPlugin = resolveModulePath('@workflow/swc-plugin', {
19
- from: [import.meta.url],
20
- });
21
- // Calculate relative filename for SWC plugin
22
- // The SWC plugin uses filename to generate workflowId, so it must be relative
23
- const workingDir = process.cwd();
24
- const normalizedWorkingDir = workingDir
25
- .replace(/\\/g, '/')
26
- .replace(/\/$/, '');
27
- const normalizedFilepath = id.replace(/\\/g, '/');
28
- // Windows fix: Use case-insensitive comparison to work around drive letter casing issues
29
- const lowerWd = normalizedWorkingDir.toLowerCase();
30
- const lowerPath = normalizedFilepath.toLowerCase();
31
- let relativeFilename;
32
- if (lowerPath.startsWith(lowerWd + '/')) {
33
- // File is under working directory - manually calculate relative path
34
- relativeFilename = normalizedFilepath.substring(normalizedWorkingDir.length + 1);
35
- }
36
- else if (lowerPath === lowerWd) {
37
- // File IS the working directory (shouldn't happen)
38
- relativeFilename = '.';
39
- }
40
- else {
41
- // Use relative() for files outside working directory
42
- relativeFilename = relative(workingDir, id).replace(/\\/g, '/');
43
- if (relativeFilename.startsWith('../')) {
44
- relativeFilename = relativeFilename
45
- .split('/')
46
- .filter((part) => part !== '..')
47
- .join('/');
48
- }
49
- }
50
- // Final safety check - ensure we never pass an absolute path to SWC
51
- if (relativeFilename.includes(':') || relativeFilename.startsWith('/')) {
52
- // This should rarely happen, but use filename split as last resort
53
- relativeFilename = normalizedFilepath.split('/').pop() || 'unknown.ts';
54
- }
55
- // Transform with SWC
56
- const result = await transform(code, {
57
- filename: relativeFilename,
58
- jsc: {
59
- parser: {
60
- syntax: isTypeScript ? 'typescript' : 'ecmascript',
61
- tsx: isTsx,
62
- },
63
- target: 'es2022',
64
- experimental: {
65
- plugins: [[swcPlugin, { mode: 'client' }]],
66
- },
67
- },
68
- minify: false,
69
- sourceMaps: true,
70
- inlineSourcesContent: true,
71
- });
72
- return {
73
- code: result.code,
74
- map: result.map ? JSON.parse(result.map) : null,
75
- };
6
+ const builder = new SvelteKitBuilder();
7
+ const enqueue = createBuildQueue();
8
+ return [
9
+ workflowTransformPlugin(),
10
+ {
11
+ name: 'workflow:sveltekit',
76
12
  },
77
- configResolved() {
78
- builder = new SvelteKitBuilder();
79
- },
80
- async buildStart() {
81
- await builder.build();
82
- },
83
- // TODO: Move this to @workflow/vite or something since this is vite specific
84
- async handleHotUpdate(ctx) {
85
- const { file, server, read } = ctx;
86
- // Check if this is a TS/JS file that might contain workflow directives
87
- const jsTsRegex = /\.(ts|tsx|js|jsx|mjs|cjs)$/;
88
- if (!jsTsRegex.test(file)) {
89
- return;
90
- }
91
- // Read the file to check for workflow/step directives
92
- const content = await read();
93
- const useWorkflowPattern = /^\s*(['"])use workflow\1;?\s*$/m;
94
- const useStepPattern = /^\s*(['"])use step\1;?\s*$/m;
95
- if (!useWorkflowPattern.test(content) && !useStepPattern.test(content)) {
96
- return;
97
- }
98
- // Rebuild everything - simpler and more reliable than tracking individual files
99
- console.log('Workflow file changed, regenerating routes...');
100
- await builder.build();
101
- // Trigger full reload of workflow routes
102
- server.ws.send({
103
- type: 'full-reload',
104
- path: '*',
105
- });
106
- // Let Vite handle the normal HMR for the changed file
107
- return;
108
- },
109
- };
13
+ workflowHotUpdatePlugin({
14
+ builder,
15
+ enqueue,
16
+ }),
17
+ ];
110
18
  }
111
19
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IAEnC,OAAO;QACL,uBAAuB,EAAY;QACnC;YACE,IAAI,EAAE,oBAAoB;SAC3B;QACD,uBAAuB,CAAC;YACtB,OAAO;YACP,OAAO;SACR,CAAC;KACH,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workflow/sveltekit",
3
- "version": "4.0.0-beta.4",
3
+ "version": "4.0.0-beta.41",
4
4
  "description": "SvelteKit integration for Workflow DevKit",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -10,7 +10,7 @@
10
10
  "publishConfig": {
11
11
  "access": "public"
12
12
  },
13
- "license": "MIT",
13
+ "license": "Apache-2.0",
14
14
  "repository": {
15
15
  "type": "git",
16
16
  "url": "https://github.com/vercel/workflow.git",
@@ -20,18 +20,19 @@
20
20
  ".": "./dist/index.js"
21
21
  },
22
22
  "dependencies": {
23
- "@swc/core": "1.11.24",
24
- "@sveltejs/kit": "^2.48.2",
25
- "fs-extra": "^11.3.2",
23
+ "@swc/core": "1.15.3",
26
24
  "exsolve": "^1.0.7",
25
+ "fs-extra": "^11.3.2",
27
26
  "pathe": "^2.0.3",
28
- "@workflow/builders": "4.0.1-beta.6",
29
- "@workflow/swc-plugin": "4.0.1-beta.3"
27
+ "@workflow/builders": "4.0.1-beta.43",
28
+ "@workflow/rollup": "4.0.0-beta.9",
29
+ "@workflow/swc-plugin": "4.1.0-beta.15",
30
+ "@workflow/vite": "4.0.0-beta.2"
30
31
  },
31
32
  "devDependencies": {
32
- "@types/fs-extra": "^11.0.4",
33
+ "@types/fs-extra": "11.0.4",
33
34
  "@types/node": "22.19.0",
34
- "vite": "^7.1.11",
35
+ "vite": "7.1.12",
35
36
  "@workflow/tsconfig": "4.0.1-beta.0"
36
37
  },
37
38
  "scripts": {