@workflow/next 4.0.1-beta.50 → 4.0.1-beta.52
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/dist/builder-deferred.d.ts +2 -0
- package/dist/builder-deferred.d.ts.map +1 -0
- package/dist/builder-deferred.js +1269 -0
- package/dist/builder-deferred.js.map +1 -0
- package/dist/builder-eager.d.ts +2 -0
- package/dist/builder-eager.d.ts.map +1 -0
- package/dist/builder-eager.js +390 -0
- package/dist/builder-eager.js.map +1 -0
- package/dist/builder.d.ts +4 -1
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +18 -381
- package/dist/builder.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +75 -27
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +7 -2
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +296 -76
- package/dist/loader.js.map +1 -1
- package/dist/socket-server.d.ts +47 -0
- package/dist/socket-server.d.ts.map +1 -0
- package/dist/socket-server.js +132 -0
- package/dist/socket-server.js.map +1 -0
- package/dist/step-copy-utils.d.ts +19 -0
- package/dist/step-copy-utils.d.ts.map +1 -0
- package/dist/step-copy-utils.js +101 -0
- package/dist/step-copy-utils.js.map +1 -0
- package/docs/api-reference/index.mdx +4 -0
- package/docs/api-reference/with-workflow.mdx +4 -0
- package/docs/next.mdx +7 -0
- package/package.json +4 -4
- package/dist/swc-cache.d.ts +0 -8
- package/dist/swc-cache.d.ts.map +0 -1
- package/dist/swc-cache.js +0 -53
- package/dist/swc-cache.js.map +0 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const DEFERRED_STEP_COPY_DIR_NAME = "__workflow_step_files__";
|
|
2
|
+
export declare const DEFERRED_STEP_SOURCE_METADATA_PREFIX = "WORKFLOW_STEP_SOURCE_B64:";
|
|
3
|
+
export interface DeferredStepSourceMetadata {
|
|
4
|
+
relativeFilename: string;
|
|
5
|
+
absolutePath: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function isDeferredStepCopyFilePath(filePath: string): boolean;
|
|
8
|
+
export declare function createDeferredStepSourceMetadataComment(metadata: DeferredStepSourceMetadata): string;
|
|
9
|
+
export declare function createDeferredStepCopyInlineSourceMapComment({ sourcePath, sourceContent, generatedContent, }: {
|
|
10
|
+
sourcePath: string;
|
|
11
|
+
sourceContent: string;
|
|
12
|
+
generatedContent?: string;
|
|
13
|
+
}): string;
|
|
14
|
+
export declare function parseInlineSourceMapComment(source: string): {
|
|
15
|
+
sourceWithoutMapComment: string;
|
|
16
|
+
sourceMap: string | null;
|
|
17
|
+
};
|
|
18
|
+
export declare function parseDeferredStepSourceMetadata(source: string): DeferredStepSourceMetadata | null;
|
|
19
|
+
//# sourceMappingURL=step-copy-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-copy-utils.d.ts","sourceRoot":"","sources":["../src/step-copy-utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,4BAA4B,CAAC;AACrE,eAAO,MAAM,oCAAoC,8BAA8B,CAAC;AAIhF,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAUD,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAKpE;AAED,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,0BAA0B,GACnC,MAAM,CAKR;AAiBD,wBAAgB,4CAA4C,CAAC,EAC3D,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAiBT;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG;IAC3D,uBAAuB,EAAE,MAAM,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAuBA;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,GACb,0BAA0B,GAAG,IAAI,CA8BnC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFERRED_STEP_SOURCE_METADATA_PREFIX = exports.DEFERRED_STEP_COPY_DIR_NAME = void 0;
|
|
4
|
+
exports.isDeferredStepCopyFilePath = isDeferredStepCopyFilePath;
|
|
5
|
+
exports.createDeferredStepSourceMetadataComment = createDeferredStepSourceMetadataComment;
|
|
6
|
+
exports.createDeferredStepCopyInlineSourceMapComment = createDeferredStepCopyInlineSourceMapComment;
|
|
7
|
+
exports.parseInlineSourceMapComment = parseInlineSourceMapComment;
|
|
8
|
+
exports.parseDeferredStepSourceMetadata = parseDeferredStepSourceMetadata;
|
|
9
|
+
exports.DEFERRED_STEP_COPY_DIR_NAME = '__workflow_step_files__';
|
|
10
|
+
exports.DEFERRED_STEP_SOURCE_METADATA_PREFIX = 'WORKFLOW_STEP_SOURCE_B64:';
|
|
11
|
+
const INLINE_SOURCE_MAP_PATTERN = /(?:^|\r?\n)\s*\/\/[#@]\s*sourceMappingURL=data:application\/json(?:;charset=[^;,]+)?;base64,([A-Za-z0-9+/=]+)\s*$/;
|
|
12
|
+
function escapeRegExp(input) {
|
|
13
|
+
return input.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
14
|
+
}
|
|
15
|
+
function normalizePath(filePath) {
|
|
16
|
+
return filePath.replace(/\\/g, '/');
|
|
17
|
+
}
|
|
18
|
+
function isDeferredStepCopyFilePath(filePath) {
|
|
19
|
+
const normalizedPath = normalizePath(filePath);
|
|
20
|
+
return normalizedPath.includes(`/.well-known/workflow/v1/step/${exports.DEFERRED_STEP_COPY_DIR_NAME}/`);
|
|
21
|
+
}
|
|
22
|
+
function createDeferredStepSourceMetadataComment(metadata) {
|
|
23
|
+
const encoded = Buffer.from(JSON.stringify(metadata), 'utf-8').toString('base64');
|
|
24
|
+
return `// ${exports.DEFERRED_STEP_SOURCE_METADATA_PREFIX}${encoded}`;
|
|
25
|
+
}
|
|
26
|
+
function getLineCount(source) {
|
|
27
|
+
if (source.length === 0) {
|
|
28
|
+
return 1;
|
|
29
|
+
}
|
|
30
|
+
const lineBreakMatches = source.match(/\r\n|\r|\n/g);
|
|
31
|
+
return (lineBreakMatches?.length ?? 0) + 1;
|
|
32
|
+
}
|
|
33
|
+
function createIdentityLineMappings(lineCount) {
|
|
34
|
+
if (lineCount <= 1) {
|
|
35
|
+
return 'AAAA';
|
|
36
|
+
}
|
|
37
|
+
return `AAAA${';AACA'.repeat(lineCount - 1)}`;
|
|
38
|
+
}
|
|
39
|
+
function createDeferredStepCopyInlineSourceMapComment({ sourcePath, sourceContent, generatedContent, }) {
|
|
40
|
+
const normalizedSourcePath = normalizePath(sourcePath);
|
|
41
|
+
const sourceMap = {
|
|
42
|
+
version: 3,
|
|
43
|
+
file: normalizedSourcePath.split('/').pop() ?? normalizedSourcePath,
|
|
44
|
+
sources: [normalizedSourcePath],
|
|
45
|
+
sourcesContent: [sourceContent],
|
|
46
|
+
names: [],
|
|
47
|
+
mappings: createIdentityLineMappings(getLineCount(generatedContent ?? sourceContent)),
|
|
48
|
+
};
|
|
49
|
+
const encodedSourceMap = Buffer.from(JSON.stringify(sourceMap), 'utf-8').toString('base64');
|
|
50
|
+
return `//# sourceMappingURL=data:application/json;base64,${encodedSourceMap}`;
|
|
51
|
+
}
|
|
52
|
+
function parseInlineSourceMapComment(source) {
|
|
53
|
+
const mapMatch = source.match(INLINE_SOURCE_MAP_PATTERN);
|
|
54
|
+
if (!mapMatch?.[1]) {
|
|
55
|
+
return {
|
|
56
|
+
sourceWithoutMapComment: source,
|
|
57
|
+
sourceMap: null,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const sourceWithoutMapComment = source.replace(INLINE_SOURCE_MAP_PATTERN, '');
|
|
61
|
+
try {
|
|
62
|
+
const decodedMap = Buffer.from(mapMatch[1], 'base64').toString('utf-8');
|
|
63
|
+
JSON.parse(decodedMap);
|
|
64
|
+
return {
|
|
65
|
+
sourceWithoutMapComment,
|
|
66
|
+
sourceMap: decodedMap,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return {
|
|
71
|
+
sourceWithoutMapComment,
|
|
72
|
+
sourceMap: null,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function parseDeferredStepSourceMetadata(source) {
|
|
77
|
+
const pattern = new RegExp(`^\\s*//\\s*${escapeRegExp(exports.DEFERRED_STEP_SOURCE_METADATA_PREFIX)}([A-Za-z0-9+/=]+)\\s*$`, 'm');
|
|
78
|
+
const match = source.match(pattern);
|
|
79
|
+
const encoded = match?.[1];
|
|
80
|
+
if (!encoded) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
const decoded = Buffer.from(encoded, 'base64').toString('utf-8');
|
|
85
|
+
const parsed = JSON.parse(decoded);
|
|
86
|
+
if (typeof parsed.relativeFilename !== 'string' ||
|
|
87
|
+
parsed.relativeFilename.length === 0 ||
|
|
88
|
+
typeof parsed.absolutePath !== 'string' ||
|
|
89
|
+
parsed.absolutePath.length === 0) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
relativeFilename: parsed.relativeFilename,
|
|
94
|
+
absolutePath: normalizePath(parsed.absolutePath),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=step-copy-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-copy-utils.js","sourceRoot":"","sources":["../src/step-copy-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "workflow/next"
|
|
3
3
|
description: Next.js integration for automatic bundling and runtime configuration.
|
|
4
|
+
type: overview
|
|
5
|
+
summary: Explore the Next.js integration for automatic workflow bundling and runtime support.
|
|
6
|
+
related:
|
|
7
|
+
- /docs/getting-started/next
|
|
4
8
|
---
|
|
5
9
|
|
|
6
10
|
Next.js integration for Workflow DevKit that automatically configures bundling and runtime support.
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: withWorkflow
|
|
3
3
|
description: Configure webpack/turbopack to transform workflow directives in Next.js.
|
|
4
|
+
type: reference
|
|
5
|
+
summary: Wrap your Next.js config with withWorkflow to enable workflow directive transformation.
|
|
6
|
+
prerequisites:
|
|
7
|
+
- /docs/getting-started/next
|
|
4
8
|
---
|
|
5
9
|
|
|
6
10
|
Configures webpack/turbopack loaders to transform workflow code (`"use step"`/`"use workflow"` directives)
|
package/docs/next.mdx
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Next.js
|
|
3
3
|
description: This guide will walk through setting up your first workflow in a Next.js app. Along the way, you'll learn more about the concepts that are fundamental to using the development kit in your own projects.
|
|
4
|
+
type: guide
|
|
5
|
+
summary: Set up Workflow DevKit in a Next.js app.
|
|
6
|
+
prerequisites:
|
|
7
|
+
- /docs/getting-started
|
|
8
|
+
related:
|
|
9
|
+
- /docs/api-reference/workflow-next
|
|
10
|
+
- /docs/deploying/world/vercel-world
|
|
4
11
|
---
|
|
5
12
|
|
|
6
13
|
<Steps>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workflow/next",
|
|
3
|
-
"version": "4.0.1-beta.
|
|
3
|
+
"version": "4.0.1-beta.52",
|
|
4
4
|
"description": "Next.js integration for Workflow DevKit",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"@swc/core": "1.15.3",
|
|
30
30
|
"semver": "7.7.3",
|
|
31
31
|
"watchpack": "2.4.4",
|
|
32
|
-
"@workflow/builders": "4.0.1-beta.
|
|
33
|
-
"@workflow/core": "4.1.0-beta.
|
|
34
|
-
"@workflow/swc-plugin": "4.1.0-beta.
|
|
32
|
+
"@workflow/builders": "4.0.1-beta.47",
|
|
33
|
+
"@workflow/core": "4.1.0-beta.56",
|
|
34
|
+
"@workflow/swc-plugin": "4.1.0-beta.18"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/node": "22.19.0",
|
package/dist/swc-cache.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks if the SWC plugin build has changed and invalidates the Next.js cache if needed.
|
|
3
|
-
* Also registers an exit handler to write the current build hash for future comparisons.
|
|
4
|
-
*
|
|
5
|
-
* @param distDir - The Next.js dist directory (e.g., '.next')
|
|
6
|
-
*/
|
|
7
|
-
export declare function maybeInvalidateCacheOnSwcChange(distDir: string): void;
|
|
8
|
-
//# sourceMappingURL=swc-cache.d.ts.map
|
package/dist/swc-cache.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"swc-cache.d.ts","sourceRoot":"","sources":["../src/swc-cache.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAyCrE"}
|
package/dist/swc-cache.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.maybeInvalidateCacheOnSwcChange = maybeInvalidateCacheOnSwcChange;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
/**
|
|
10
|
-
* Checks if the SWC plugin build has changed and invalidates the Next.js cache if needed.
|
|
11
|
-
* Also registers an exit handler to write the current build hash for future comparisons.
|
|
12
|
-
*
|
|
13
|
-
* @param distDir - The Next.js dist directory (e.g., '.next')
|
|
14
|
-
*/
|
|
15
|
-
function maybeInvalidateCacheOnSwcChange(distDir) {
|
|
16
|
-
const cacheDir = path_1.default.join(distDir, 'cache');
|
|
17
|
-
const devCacheDir = path_1.default.join(distDir, 'dev', 'cache');
|
|
18
|
-
const workflowJsonPath = path_1.default.join(cacheDir, 'workflow.json');
|
|
19
|
-
const swcPluginBuildHash = require('@workflow/swc-plugin/build-hash.json')
|
|
20
|
-
.buildHash;
|
|
21
|
-
let shouldInvalidateCache = false;
|
|
22
|
-
try {
|
|
23
|
-
const existing = JSON.parse(fs_1.default.readFileSync(workflowJsonPath, 'utf-8'));
|
|
24
|
-
if (existing.swcPluginBuildHash !== swcPluginBuildHash) {
|
|
25
|
-
shouldInvalidateCache = true;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
// File doesn't exist or is invalid
|
|
30
|
-
shouldInvalidateCache = true;
|
|
31
|
-
}
|
|
32
|
-
if (shouldInvalidateCache) {
|
|
33
|
-
console.log('workflow transform upgraded, invalidating Next.js cache');
|
|
34
|
-
// Delete cache directories
|
|
35
|
-
const cacheDirs = [cacheDir, devCacheDir];
|
|
36
|
-
for (const dir of cacheDirs) {
|
|
37
|
-
if (fs_1.default.existsSync(dir)) {
|
|
38
|
-
fs_1.default.rmSync(dir, { recursive: true, force: true });
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
// Write workflow.json lazily on process exit
|
|
43
|
-
process.on('exit', () => {
|
|
44
|
-
try {
|
|
45
|
-
fs_1.default.mkdirSync(cacheDir, { recursive: true });
|
|
46
|
-
fs_1.default.writeFileSync(workflowJsonPath, JSON.stringify({ swcPluginBuildHash }, null, 2));
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
// Ignore errors on exit
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=swc-cache.js.map
|
package/dist/swc-cache.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"swc-cache.js","sourceRoot":"","sources":["../src/swc-cache.ts"],"names":[],"mappings":";;;;;AASA,0EAyCC;AAlDD,4CAAoB;AACpB,gDAAwB;AAExB;;;;;GAKG;AACH,SAAgB,+BAA+B,CAAC,OAAe;IAC7D,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC9D,MAAM,kBAAkB,GAAG,OAAO,CAAC,sCAAsC,CAAC;SACvE,SAAmB,CAAC;IAEvB,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;QACxE,IAAI,QAAQ,CAAC,kBAAkB,KAAK,kBAAkB,EAAE,CAAC;YACvD,qBAAqB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;QACnC,qBAAqB,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,IAAI,qBAAqB,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,2BAA2B;QAC3B,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IAAI,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,YAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACtB,IAAI,CAAC;YACH,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,YAAE,CAAC,aAAa,CACd,gBAAgB,EAChB,IAAI,CAAC,SAAS,CAAC,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAChD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|