@workflow/builders 4.0.1-beta.4

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.
Files changed (51) hide show
  1. package/LICENSE.md +201 -0
  2. package/README.md +43 -0
  3. package/dist/apply-swc-transform.d.ts +24 -0
  4. package/dist/apply-swc-transform.d.ts.map +1 -0
  5. package/dist/apply-swc-transform.js +38 -0
  6. package/dist/apply-swc-transform.js.map +1 -0
  7. package/dist/base-builder.d.ts +131 -0
  8. package/dist/base-builder.d.ts.map +1 -0
  9. package/dist/base-builder.js +558 -0
  10. package/dist/base-builder.js.map +1 -0
  11. package/dist/config-helpers.d.ts +12 -0
  12. package/dist/config-helpers.d.ts.map +1 -0
  13. package/dist/config-helpers.js +16 -0
  14. package/dist/config-helpers.js.map +1 -0
  15. package/dist/constants.d.ts +25 -0
  16. package/dist/constants.d.ts.map +1 -0
  17. package/dist/constants.js +25 -0
  18. package/dist/constants.js.map +1 -0
  19. package/dist/discover-entries-esbuild-plugin.d.ts +11 -0
  20. package/dist/discover-entries-esbuild-plugin.d.ts.map +1 -0
  21. package/dist/discover-entries-esbuild-plugin.js +84 -0
  22. package/dist/discover-entries-esbuild-plugin.js.map +1 -0
  23. package/dist/index.d.ts +13 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +11 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/node-module-esbuild-plugin.d.ts +3 -0
  28. package/dist/node-module-esbuild-plugin.d.ts.map +1 -0
  29. package/dist/node-module-esbuild-plugin.js +24 -0
  30. package/dist/node-module-esbuild-plugin.js.map +1 -0
  31. package/dist/node-module-esbuild-plugin.test.d.ts +2 -0
  32. package/dist/node-module-esbuild-plugin.test.d.ts.map +1 -0
  33. package/dist/node-module-esbuild-plugin.test.js +128 -0
  34. package/dist/node-module-esbuild-plugin.test.js.map +1 -0
  35. package/dist/standalone.d.ts +8 -0
  36. package/dist/standalone.d.ts.map +1 -0
  37. package/dist/standalone.js +47 -0
  38. package/dist/standalone.js.map +1 -0
  39. package/dist/swc-esbuild-plugin.d.ts +12 -0
  40. package/dist/swc-esbuild-plugin.d.ts.map +1 -0
  41. package/dist/swc-esbuild-plugin.js +134 -0
  42. package/dist/swc-esbuild-plugin.js.map +1 -0
  43. package/dist/types.d.ts +56 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +10 -0
  46. package/dist/types.js.map +1 -0
  47. package/dist/vercel-build-output-api.d.ts +9 -0
  48. package/dist/vercel-build-output-api.d.ts.map +1 -0
  49. package/dist/vercel-build-output-api.js +92 -0
  50. package/dist/vercel-build-output-api.js.map +1 -0
  51. package/package.json +54 -0
@@ -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,10 @@
1
+ export const validBuildTargets = [
2
+ 'standalone',
3
+ 'vercel-build-output-api',
4
+ 'next',
5
+ 'sveltekit',
6
+ ];
7
+ export function isValidBuildTarget(target) {
8
+ return !!target && validBuildTargets.includes(target);
9
+ }
10
+ //# sourceMappingURL=types.js.map
@@ -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.4",
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/swc-plugin": "4.0.1-beta.2",
44
+ "@workflow/core": "4.0.1-beta.7",
45
+ "@workflow/errors": "4.0.1-beta.3"
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
+ }