@workflow/builders 4.0.1-beta.10
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.
- package/LICENSE.md +201 -0
- package/README.md +43 -0
- package/dist/apply-swc-transform.d.ts +24 -0
- package/dist/apply-swc-transform.d.ts.map +1 -0
- package/dist/apply-swc-transform.js +38 -0
- package/dist/apply-swc-transform.js.map +1 -0
- package/dist/base-builder.d.ts +135 -0
- package/dist/base-builder.d.ts.map +1 -0
- package/dist/base-builder.js +598 -0
- package/dist/base-builder.js.map +1 -0
- package/dist/config-helpers.d.ts +12 -0
- package/dist/config-helpers.d.ts.map +1 -0
- package/dist/config-helpers.js +16 -0
- package/dist/config-helpers.js.map +1 -0
- package/dist/constants.d.ts +25 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +25 -0
- package/dist/constants.js.map +1 -0
- package/dist/discover-entries-esbuild-plugin.d.ts +11 -0
- package/dist/discover-entries-esbuild-plugin.d.ts.map +1 -0
- package/dist/discover-entries-esbuild-plugin.js +87 -0
- package/dist/discover-entries-esbuild-plugin.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/node-module-esbuild-plugin.d.ts +3 -0
- package/dist/node-module-esbuild-plugin.d.ts.map +1 -0
- package/dist/node-module-esbuild-plugin.js +25 -0
- package/dist/node-module-esbuild-plugin.js.map +1 -0
- package/dist/node-module-esbuild-plugin.test.d.ts +2 -0
- package/dist/node-module-esbuild-plugin.test.d.ts.map +1 -0
- package/dist/node-module-esbuild-plugin.test.js +198 -0
- package/dist/node-module-esbuild-plugin.test.js.map +1 -0
- package/dist/standalone.d.ts +8 -0
- package/dist/standalone.d.ts.map +1 -0
- package/dist/standalone.js +47 -0
- package/dist/standalone.js.map +1 -0
- package/dist/swc-esbuild-plugin.d.ts +12 -0
- package/dist/swc-esbuild-plugin.d.ts.map +1 -0
- package/dist/swc-esbuild-plugin.js +179 -0
- package/dist/swc-esbuild-plugin.js.map +1 -0
- package/dist/types.d.ts +56 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/dist/vercel-build-output-api.d.ts +9 -0
- package/dist/vercel-build-output-api.d.ts.map +1 -0
- package/dist/vercel-build-output-api.js +92 -0
- package/dist/vercel-build-output-api.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { relative } from 'node:path';
|
|
3
|
+
import { promisify } from 'node:util';
|
|
4
|
+
import enhancedResolveOrig from 'enhanced-resolve';
|
|
5
|
+
import { applySwcTransform, } from './apply-swc-transform.js';
|
|
6
|
+
import { jsTsRegex, parentHasChild, } from './discover-entries-esbuild-plugin.js';
|
|
7
|
+
const NODE_RESOLVE_OPTIONS = {
|
|
8
|
+
dependencyType: 'commonjs',
|
|
9
|
+
modules: ['node_modules'],
|
|
10
|
+
exportsFields: ['exports'],
|
|
11
|
+
importsFields: ['imports'],
|
|
12
|
+
conditionNames: ['node', 'require'],
|
|
13
|
+
descriptionFiles: ['package.json'],
|
|
14
|
+
extensions: ['.ts', '.mts', '.cjs', '.js', '.json', '.node'],
|
|
15
|
+
enforceExtensions: false,
|
|
16
|
+
symlinks: true,
|
|
17
|
+
mainFields: ['main'],
|
|
18
|
+
mainFiles: ['index'],
|
|
19
|
+
roots: [],
|
|
20
|
+
fullySpecified: false,
|
|
21
|
+
preferRelative: false,
|
|
22
|
+
preferAbsolute: false,
|
|
23
|
+
restrictions: [],
|
|
24
|
+
};
|
|
25
|
+
const NODE_ESM_RESOLVE_OPTIONS = {
|
|
26
|
+
...NODE_RESOLVE_OPTIONS,
|
|
27
|
+
dependencyType: 'esm',
|
|
28
|
+
conditionNames: ['node', 'import'],
|
|
29
|
+
};
|
|
30
|
+
export function createSwcPlugin(options) {
|
|
31
|
+
return {
|
|
32
|
+
name: 'swc-workflow-plugin',
|
|
33
|
+
setup(build) {
|
|
34
|
+
// everything is external unless explicitly configured
|
|
35
|
+
// to be bundled
|
|
36
|
+
const cjsResolver = promisify(enhancedResolveOrig.create(NODE_RESOLVE_OPTIONS));
|
|
37
|
+
const esmResolver = promisify(enhancedResolveOrig.create(NODE_ESM_RESOLVE_OPTIONS));
|
|
38
|
+
const enhancedResolve = async (context, path) => {
|
|
39
|
+
try {
|
|
40
|
+
return await esmResolver(context, path);
|
|
41
|
+
}
|
|
42
|
+
catch (_) {
|
|
43
|
+
return cjsResolver(context, path);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
build.onResolve({ filter: /.*/ }, async (args) => {
|
|
47
|
+
if (!options.entriesToBundle) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
let resolvedPath = args.path;
|
|
52
|
+
// handle local imports e.g. ./hello or ../another
|
|
53
|
+
if (args.path.startsWith('.')) {
|
|
54
|
+
resolvedPath = await enhancedResolve(args.resolveDir, args.path);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
resolvedPath = await enhancedResolve(
|
|
58
|
+
// `args.resolveDir` is not used here to ensure we only
|
|
59
|
+
// externalize packages that can be resolved in the
|
|
60
|
+
// project's working directory e.g. a nested dep can't
|
|
61
|
+
// be externalized as we won't be able to resolve it once
|
|
62
|
+
// it's parent has been bundled
|
|
63
|
+
build.initialOptions.absWorkingDir || process.cwd(), args.path);
|
|
64
|
+
}
|
|
65
|
+
if (!resolvedPath)
|
|
66
|
+
return null;
|
|
67
|
+
// Normalize to forward slashes for cross-platform comparison
|
|
68
|
+
const normalizedResolvedPath = resolvedPath.replace(/\\/g, '/');
|
|
69
|
+
for (const entryToBundle of options.entriesToBundle) {
|
|
70
|
+
const normalizedEntry = entryToBundle.replace(/\\/g, '/');
|
|
71
|
+
if (normalizedResolvedPath === normalizedEntry) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
// if the current entry imports a child that needs
|
|
75
|
+
// to be bundled then it needs to also be bundled so
|
|
76
|
+
// that the child can have our transform applied
|
|
77
|
+
if (parentHasChild(normalizedResolvedPath, normalizedEntry)) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const isFilePath = args.path.startsWith('.') || args.path.startsWith('/');
|
|
82
|
+
return {
|
|
83
|
+
external: true,
|
|
84
|
+
path: isFilePath
|
|
85
|
+
? relative(options.outdir || process.cwd(), resolvedPath).replace(/\\/g, '/')
|
|
86
|
+
: args.path,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
catch (_) { }
|
|
90
|
+
return null;
|
|
91
|
+
});
|
|
92
|
+
// Handle TypeScript and JavaScript files
|
|
93
|
+
build.onLoad({ filter: jsTsRegex }, async (args) => {
|
|
94
|
+
// Determine if this is a TypeScript file
|
|
95
|
+
const isTypeScript = args.path.endsWith('.ts') || args.path.endsWith('.tsx');
|
|
96
|
+
try {
|
|
97
|
+
// Determine the loader based on the output
|
|
98
|
+
let loader = 'js';
|
|
99
|
+
if (!isTypeScript && args.path.endsWith('.jsx')) {
|
|
100
|
+
loader = 'jsx';
|
|
101
|
+
}
|
|
102
|
+
const source = await readFile(args.path, 'utf8');
|
|
103
|
+
// Calculate relative path for SWC plugin
|
|
104
|
+
// The filename parameter is used to generate workflowId/stepId, so it must be relative
|
|
105
|
+
const workingDir = build.initialOptions.absWorkingDir || process.cwd();
|
|
106
|
+
// Normalize paths: convert backslashes to forward slashes and remove trailing slashes
|
|
107
|
+
const normalizedWorkingDir = workingDir
|
|
108
|
+
.replace(/\\/g, '/')
|
|
109
|
+
.replace(/\/$/, '');
|
|
110
|
+
const normalizedPath = args.path.replace(/\\/g, '/');
|
|
111
|
+
// Windows fix: Always do case-insensitive path comparison as the PRIMARY logic
|
|
112
|
+
// to work around node:path.relative() not recognizing paths with different drive
|
|
113
|
+
// letter casing (e.g., D: vs d:) as being in the same tree
|
|
114
|
+
const lowerWd = normalizedWorkingDir.toLowerCase();
|
|
115
|
+
const lowerPath = normalizedPath.toLowerCase();
|
|
116
|
+
let relativeFilepath;
|
|
117
|
+
if (lowerPath.startsWith(lowerWd + '/')) {
|
|
118
|
+
// File is under working directory - manually calculate relative path
|
|
119
|
+
// This ensures we get a relative path even with drive letter casing issues
|
|
120
|
+
relativeFilepath = normalizedPath.substring(normalizedWorkingDir.length + 1);
|
|
121
|
+
}
|
|
122
|
+
else if (lowerPath === lowerWd) {
|
|
123
|
+
// File IS the working directory
|
|
124
|
+
relativeFilepath = '.';
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
// File is outside working directory - use relative() and strip ../ prefixes if needed
|
|
128
|
+
relativeFilepath = relative(normalizedWorkingDir, normalizedPath).replace(/\\/g, '/');
|
|
129
|
+
// Handle files discovered outside the working directory
|
|
130
|
+
// These come back as ../path/to/file, but we want just path/to/file
|
|
131
|
+
if (relativeFilepath.startsWith('../')) {
|
|
132
|
+
relativeFilepath = relativeFilepath
|
|
133
|
+
.split('/')
|
|
134
|
+
.filter((part) => part !== '..')
|
|
135
|
+
.join('/');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Final safety check - ensure we never pass an absolute path to SWC
|
|
139
|
+
if (relativeFilepath.includes(':') ||
|
|
140
|
+
relativeFilepath.startsWith('/')) {
|
|
141
|
+
// This should never happen, but if it does, use just the filename as last resort
|
|
142
|
+
console.error(`[ERROR] relativeFilepath is still absolute: ${relativeFilepath}`);
|
|
143
|
+
relativeFilepath = normalizedPath.split('/').pop() || 'unknown.ts';
|
|
144
|
+
}
|
|
145
|
+
const { code: transformedCode, workflowManifest } = await applySwcTransform(relativeFilepath, source, options.mode,
|
|
146
|
+
// we need to provide the tsconfig/jsconfig
|
|
147
|
+
// alias via swc so that we can resolve them
|
|
148
|
+
// with our custom resolve logic
|
|
149
|
+
{
|
|
150
|
+
paths: options.tsPaths,
|
|
151
|
+
baseUrl: options.tsBaseUrl,
|
|
152
|
+
});
|
|
153
|
+
if (!options.workflowManifest) {
|
|
154
|
+
options.workflowManifest = {};
|
|
155
|
+
}
|
|
156
|
+
options.workflowManifest.workflows = Object.assign(options.workflowManifest.workflows || {}, workflowManifest.workflows);
|
|
157
|
+
options.workflowManifest.steps = Object.assign(options.workflowManifest.steps || {}, workflowManifest.steps);
|
|
158
|
+
return {
|
|
159
|
+
contents: transformedCode,
|
|
160
|
+
loader,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
165
|
+
console.error(`❌ SWC transform error in ${args.path}:`, errorMessage);
|
|
166
|
+
return {
|
|
167
|
+
errors: [
|
|
168
|
+
{
|
|
169
|
+
text: `SWC transform failed: ${errorMessage}`,
|
|
170
|
+
location: { file: args.path, line: 0, column: 0 },
|
|
171
|
+
},
|
|
172
|
+
],
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=swc-esbuild-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swc-esbuild-plugin.js","sourceRoot":"","sources":["../src/swc-esbuild-plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export declare const validBuildTargets: readonly ["standalone", "vercel-build-output-api", "next", "sveltekit"];
|
|
2
|
+
export type BuildTarget = (typeof validBuildTargets)[number];
|
|
3
|
+
/**
|
|
4
|
+
* Common configuration options shared across all builder types.
|
|
5
|
+
*/
|
|
6
|
+
interface BaseWorkflowConfig {
|
|
7
|
+
watch?: boolean;
|
|
8
|
+
dirs: string[];
|
|
9
|
+
workingDir: string;
|
|
10
|
+
clientBundlePath?: string;
|
|
11
|
+
externalPackages?: string[];
|
|
12
|
+
workflowManifestPath?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Configuration for standalone (CLI-based) builds.
|
|
16
|
+
*/
|
|
17
|
+
export interface StandaloneConfig extends BaseWorkflowConfig {
|
|
18
|
+
buildTarget: 'standalone';
|
|
19
|
+
stepsBundlePath: string;
|
|
20
|
+
workflowsBundlePath: string;
|
|
21
|
+
webhookBundlePath: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Configuration for Vercel Build Output API builds.
|
|
25
|
+
*/
|
|
26
|
+
export interface VercelBuildOutputConfig extends BaseWorkflowConfig {
|
|
27
|
+
buildTarget: 'vercel-build-output-api';
|
|
28
|
+
stepsBundlePath: string;
|
|
29
|
+
workflowsBundlePath: string;
|
|
30
|
+
webhookBundlePath: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Configuration for Next.js builds.
|
|
34
|
+
*/
|
|
35
|
+
export interface NextConfig extends BaseWorkflowConfig {
|
|
36
|
+
buildTarget: 'next';
|
|
37
|
+
stepsBundlePath: string;
|
|
38
|
+
workflowsBundlePath: string;
|
|
39
|
+
webhookBundlePath: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Configuration for SvelteKit builds.
|
|
43
|
+
*/
|
|
44
|
+
export interface SvelteKitConfig extends BaseWorkflowConfig {
|
|
45
|
+
buildTarget: 'sveltekit';
|
|
46
|
+
stepsBundlePath: string;
|
|
47
|
+
workflowsBundlePath: string;
|
|
48
|
+
webhookBundlePath: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Discriminated union of all builder configuration types.
|
|
52
|
+
*/
|
|
53
|
+
export type WorkflowConfig = StandaloneConfig | VercelBuildOutputConfig | NextConfig | SvelteKitConfig;
|
|
54
|
+
export declare function isValidBuildTarget(target: string | undefined): target is BuildTarget;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,yEAKpB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D;;GAEG;AACH,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IAKnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D,WAAW,EAAE,YAAY,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,WAAW,EAAE,yBAAyB,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACpD,WAAW,EAAE,MAAM,CAAC;IAEpB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,WAAW,EAAE,WAAW,CAAC;IAEzB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,uBAAuB,GACvB,UAAU,GACV,eAAe,CAAC;AAEpB,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,IAAI,WAAW,CAEvB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,YAAY;IACZ,yBAAyB;IACzB,MAAM;IACN,WAAW;CACH,CAAC;AAwEX,MAAM,UAAU,kBAAkB,CAChC,MAA0B;IAE1B,OAAO,CAAC,CAAC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAqB,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseBuilder } from './base-builder.js';
|
|
2
|
+
export declare class VercelBuildOutputAPIBuilder extends BaseBuilder {
|
|
3
|
+
build(): Promise<void>;
|
|
4
|
+
private buildStepsFunction;
|
|
5
|
+
private buildWorkflowsFunction;
|
|
6
|
+
private buildWebhookFunction;
|
|
7
|
+
private createBuildOutputConfig;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=vercel-build-output-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vercel-build-output-api.d.ts","sourceRoot":"","sources":["../src/vercel-build-output-api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,qBAAa,2BAA4B,SAAQ,WAAW;IACpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAwBd,kBAAkB;YA+BlB,sBAAsB;YA6BtB,oBAAoB;YA0BpB,uBAAuB;CA0BtC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { join, resolve } from 'node:path';
|
|
3
|
+
import { BaseBuilder } from './base-builder.js';
|
|
4
|
+
import { STEP_QUEUE_TRIGGER, WORKFLOW_QUEUE_TRIGGER } from './constants.js';
|
|
5
|
+
export class VercelBuildOutputAPIBuilder extends BaseBuilder {
|
|
6
|
+
async build() {
|
|
7
|
+
const outputDir = resolve(this.config.workingDir, '.vercel/output');
|
|
8
|
+
const functionsDir = join(outputDir, 'functions');
|
|
9
|
+
const workflowGeneratedDir = join(functionsDir, '.well-known/workflow/v1');
|
|
10
|
+
// Ensure output directories exist
|
|
11
|
+
await mkdir(workflowGeneratedDir, { recursive: true });
|
|
12
|
+
const inputFiles = await this.getInputFiles();
|
|
13
|
+
const tsConfig = await this.getTsConfigOptions();
|
|
14
|
+
const options = {
|
|
15
|
+
inputFiles,
|
|
16
|
+
workflowGeneratedDir,
|
|
17
|
+
tsBaseUrl: tsConfig.baseUrl,
|
|
18
|
+
tsPaths: tsConfig.paths,
|
|
19
|
+
};
|
|
20
|
+
await this.buildStepsFunction(options);
|
|
21
|
+
await this.buildWorkflowsFunction(options);
|
|
22
|
+
await this.buildWebhookFunction(options);
|
|
23
|
+
await this.createBuildOutputConfig(outputDir);
|
|
24
|
+
await this.createClientLibrary();
|
|
25
|
+
}
|
|
26
|
+
async buildStepsFunction({ inputFiles, workflowGeneratedDir, tsPaths, tsBaseUrl, }) {
|
|
27
|
+
console.log('Creating Vercel Build Output API steps function');
|
|
28
|
+
const stepsFuncDir = join(workflowGeneratedDir, 'step.func');
|
|
29
|
+
await mkdir(stepsFuncDir, { recursive: true });
|
|
30
|
+
// Create steps bundle
|
|
31
|
+
await this.createStepsBundle({
|
|
32
|
+
inputFiles,
|
|
33
|
+
outfile: join(stepsFuncDir, 'index.js'),
|
|
34
|
+
tsBaseUrl,
|
|
35
|
+
tsPaths,
|
|
36
|
+
});
|
|
37
|
+
// Create package.json and .vc-config.json for steps function
|
|
38
|
+
await this.createPackageJson(stepsFuncDir, 'commonjs');
|
|
39
|
+
await this.createVcConfig(stepsFuncDir, {
|
|
40
|
+
shouldAddSourcemapSupport: true,
|
|
41
|
+
experimentalTriggers: [STEP_QUEUE_TRIGGER],
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
async buildWorkflowsFunction({ inputFiles, workflowGeneratedDir, tsPaths, tsBaseUrl, }) {
|
|
45
|
+
console.log('Creating Vercel Build Output API workflows function');
|
|
46
|
+
const workflowsFuncDir = join(workflowGeneratedDir, 'flow.func');
|
|
47
|
+
await mkdir(workflowsFuncDir, { recursive: true });
|
|
48
|
+
await this.createWorkflowsBundle({
|
|
49
|
+
outfile: join(workflowsFuncDir, 'index.js'),
|
|
50
|
+
inputFiles,
|
|
51
|
+
tsBaseUrl,
|
|
52
|
+
tsPaths,
|
|
53
|
+
});
|
|
54
|
+
// Create package.json and .vc-config.json for workflows function
|
|
55
|
+
await this.createPackageJson(workflowsFuncDir, 'commonjs');
|
|
56
|
+
await this.createVcConfig(workflowsFuncDir, {
|
|
57
|
+
experimentalTriggers: [WORKFLOW_QUEUE_TRIGGER],
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
async buildWebhookFunction({ workflowGeneratedDir, bundle = true, }) {
|
|
61
|
+
console.log('Creating Vercel Build Output API webhook function');
|
|
62
|
+
const webhookFuncDir = join(workflowGeneratedDir, 'webhook/[token].func');
|
|
63
|
+
// Bundle the webhook route with dependencies resolved
|
|
64
|
+
await this.createWebhookBundle({
|
|
65
|
+
outfile: join(webhookFuncDir, 'index.js'),
|
|
66
|
+
bundle, // Build Output API needs bundling (except in tests)
|
|
67
|
+
});
|
|
68
|
+
// Create package.json and .vc-config.json for webhook function
|
|
69
|
+
await this.createPackageJson(webhookFuncDir, 'commonjs');
|
|
70
|
+
await this.createVcConfig(webhookFuncDir, {
|
|
71
|
+
shouldAddHelpers: false,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
async createBuildOutputConfig(outputDir) {
|
|
75
|
+
// Create config.json for Build Output API
|
|
76
|
+
const buildOutputConfig = {
|
|
77
|
+
version: 3,
|
|
78
|
+
routes: [
|
|
79
|
+
{
|
|
80
|
+
src: '^\\/\\.well-known\\/workflow\\/v1\\/webhook\\/([^\\/]+)$',
|
|
81
|
+
dest: '/.well-known/workflow/v1/webhook/[token]',
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
};
|
|
85
|
+
await writeFile(join(outputDir, 'config.json'), JSON.stringify(buildOutputConfig, null, 2));
|
|
86
|
+
console.log(`Build Output API created at ${outputDir}`);
|
|
87
|
+
console.log('Steps function available at /.well-known/workflow/v1/step');
|
|
88
|
+
console.log('Workflows function available at /.well-known/workflow/v1/flow');
|
|
89
|
+
console.log('Webhook function available at /.well-known/workflow/v1/webhook/[token]');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=vercel-build-output-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vercel-build-output-api.js","sourceRoot":"","sources":["../src/vercel-build-output-api.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@workflow/builders",
|
|
3
|
+
"version": "4.0.1-beta.10",
|
|
4
|
+
"description": "Shared builder infrastructure for Workflow DevKit",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./base-builder": {
|
|
14
|
+
"types": "./dist/base-builder.d.ts",
|
|
15
|
+
"default": "./dist/base-builder.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"publishConfig": {
|
|
22
|
+
"access": "public"
|
|
23
|
+
},
|
|
24
|
+
"license": "Apache-2.0",
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "https://github.com/vercel/workflow.git",
|
|
28
|
+
"directory": "packages/builders"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@types/node": "22.19.0",
|
|
32
|
+
"@workflow/tsconfig": "4.0.1-beta.0"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@swc/core": "1.11.24",
|
|
36
|
+
"builtin-modules": "5.0.0",
|
|
37
|
+
"chalk": "5.6.2",
|
|
38
|
+
"comment-json": "4.2.5",
|
|
39
|
+
"enhanced-resolve": "5.18.2",
|
|
40
|
+
"esbuild": "^0.25.11",
|
|
41
|
+
"find-up": "7.0.0",
|
|
42
|
+
"tinyglobby": "0.2.14",
|
|
43
|
+
"@workflow/errors": "4.0.1-beta.5",
|
|
44
|
+
"@workflow/core": "4.0.1-beta.12",
|
|
45
|
+
"@workflow/swc-plugin": "4.0.1-beta.6"
|
|
46
|
+
},
|
|
47
|
+
"scripts": {
|
|
48
|
+
"build": "tsc",
|
|
49
|
+
"clean": "tsc --build --clean && rm -r dist ||:",
|
|
50
|
+
"dev": "tsc --watch",
|
|
51
|
+
"test": "vitest run src",
|
|
52
|
+
"typecheck": "tsc --noEmit"
|
|
53
|
+
}
|
|
54
|
+
}
|