@workflow/rollup 5.0.0-beta.4 → 5.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.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -2
- package/package.json +9 -5
- package/dist/index.js.map +0 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,MAAM,WAAW,8BAA8B;IAC7C;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,8BAAmC,GAC3C,MAAM,CA8JR"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,45 @@
|
|
|
1
1
|
import { relative } from 'node:path';
|
|
2
2
|
import { transform } from '@swc/core';
|
|
3
|
-
import { detectWorkflowPatterns, isGeneratedWorkflowFile, resolveModuleSpecifier, shouldTransformFile, } from '@workflow/builders';
|
|
3
|
+
import { detectWorkflowPatterns, isGeneratedWorkflowFile, resolveModuleSpecifier, shouldTransformFile, WORKFLOW_OPTIONAL_OTEL_API_MODULE, WORKFLOW_OPTIONAL_WS_NATIVE_MODULES, } from '@workflow/builders';
|
|
4
4
|
import { resolveModulePath } from 'exsolve';
|
|
5
5
|
export function workflowTransformPlugin(options = {}) {
|
|
6
6
|
const { exclude = [] } = options;
|
|
7
7
|
return {
|
|
8
8
|
name: 'workflow:transform',
|
|
9
|
+
resolveId: {
|
|
10
|
+
order: 'pre',
|
|
11
|
+
async handler(source, importer, options) {
|
|
12
|
+
// `@opentelemetry/api` is an optional peer the SDK imports lazily.
|
|
13
|
+
// Externalize it ONLY when it isn't installed: otherwise Rollup/Vite
|
|
14
|
+
// fails the build with "failed to resolve import '@opentelemetry/api'"
|
|
15
|
+
// when the peer is absent (observed in SvelteKit's pipeline). When the
|
|
16
|
+
// peer IS installed we must let it resolve and bundle normally — a
|
|
17
|
+
// self-contained output (Nitro's `.output/server`, esbuild) ships no
|
|
18
|
+
// node_modules, so forcing it external there strands the runtime
|
|
19
|
+
// `import('@opentelemetry/api')` and crashes the server with
|
|
20
|
+
// ERR_MODULE_NOT_FOUND. Externalize (not a stub alias) so tracing still
|
|
21
|
+
// loads the real API at runtime when present.
|
|
22
|
+
if (source === WORKFLOW_OPTIONAL_OTEL_API_MODULE ||
|
|
23
|
+
source.startsWith(`${WORKFLOW_OPTIONAL_OTEL_API_MODULE}/`)) {
|
|
24
|
+
const resolved = await this.resolve(source, importer, {
|
|
25
|
+
...options,
|
|
26
|
+
skipSelf: true,
|
|
27
|
+
});
|
|
28
|
+
return resolved ?? { id: source, external: true };
|
|
29
|
+
}
|
|
30
|
+
// `ws`'s optional native accelerators. Unlike the OTEL peer above these
|
|
31
|
+
// are externalized unconditionally, not only when unresolvable — `ws`
|
|
32
|
+
// requires them in a try/catch, so a failed runtime require is the
|
|
33
|
+
// designed path while a partially bundled native module is not. This
|
|
34
|
+
// plugin also runs under Vite, which substitutes a stub for an absent
|
|
35
|
+
// optional peer and would let that require succeed with no working
|
|
36
|
+
// masker. See WORKFLOW_OPTIONAL_WS_NATIVE_MODULES.
|
|
37
|
+
if (WORKFLOW_OPTIONAL_WS_NATIVE_MODULES.some((name) => source === name || source.startsWith(`${name}/`))) {
|
|
38
|
+
return { id: source, external: true };
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
},
|
|
42
|
+
},
|
|
9
43
|
// This transform applies the "use workflow"/"use step"
|
|
10
44
|
// step transformation
|
|
11
45
|
async transform(code, id) {
|
|
@@ -104,4 +138,4 @@ export function workflowTransformPlugin(options = {}) {
|
|
|
104
138
|
},
|
|
105
139
|
};
|
|
106
140
|
}
|
|
107
|
-
//# sourceMappingURL=index.js.map
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsaUNBQWlDLEVBQ2pDLG1DQUFtQyxHQUNwQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQVc1QyxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLFVBQTBDLEVBQUU7SUFFNUMsTUFBTSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFakMsT0FBTztRQUNMLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsU0FBUyxFQUFFO1lBQ1QsS0FBSyxFQUFFLEtBQUs7WUFDWixLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTztnQkFDckMsbUVBQW1FO2dCQUNuRSxxRUFBcUU7Z0JBQ3JFLHVFQUF1RTtnQkFDdkUsdUVBQXVFO2dCQUN2RSxtRUFBbUU7Z0JBQ25FLHFFQUFxRTtnQkFDckUsaUVBQWlFO2dCQUNqRSw2REFBNkQ7Z0JBQzdELHdFQUF3RTtnQkFDeEUsOENBQThDO2dCQUM5QyxJQUNFLE1BQU0sS0FBSyxpQ0FBaUM7b0JBQzVDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxpQ0FBaUMsR0FBRyxDQUFDLEVBQzFELENBQUM7b0JBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUU7d0JBQ3BELEdBQUcsT0FBTzt3QkFDVixRQUFRLEVBQUUsSUFBSTtxQkFDZixDQUFDLENBQUM7b0JBQ0gs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QUFZO2dDQUNwQixHQUFHLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7NkJBQ3pCOzRCQUNILENBQUMsQ0FBQztnQ0FDRSxNQUFNLEVBQUUsWUFBWTtnQ0FDcEIsR0FBRyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDOzZCQUN6QixDQUFDO3FCQUNQO29CQUNELE1BQU0sRUFBRSxRQUFRO29CQUNoQixZQUFZLEVBQUU7d0JBQ1osT0FBTyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7cUJBQzFEO29CQUNELFNBQVMsRUFBRTt3QkFDVCxLQUFLLEVBQUU7NEJBQ0wsT0FBTyxFQUFFLFVBQVU7eUJBQ3BCO3FCQUNGO2lCQUNGO2dCQUNELE1BQU0sRUFBRSxLQUFLO2dCQUNiLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixvQkFBb0IsRUFBRSxJQUFJO2FBQzNCLENBQUMsQ0FBQztZQUVILE9BQU87Z0JBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNqQixHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7YUFDaEQsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbGF0aXZlIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJ0Bzd2MvY29yZSc7XG5pbXBvcnQge1xuICBkZXRlY3RXb3JrZmxvd1BhdHRlcm5zLFxuICBpc0dlbmVyYXRlZFdvcmtmbG93RmlsZSxcbiAgcmVzb2x2ZU1vZHVsZVNwZWNpZmllcixcbiAgc2hvdWxkVHJhbnNmb3JtRmlsZSxcbiAgV09SS0ZMT1dfT1BUSU9OQUxfT1RFTF9BUElfTU9EVUxFLFxuICBXT1JLRkxPV19PUFRJT05BTF9XU19OQVRJVkVfTU9EVUxFUyxcbn0gZnJvbSAnQHdvcmtmbG93L2J1aWxkZXJzJztcbmltcG9ydCB7IHJlc29sdmVNb2R1bGVQYXRoIH0gZnJvbSAnZXhzb2x2ZSc7XG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ3JvbGx1cCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dUcmFuc2Zvcm1QbHVnaW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIERpcmVjdG9yaWVzIHRvIGV4Y2x1ZGUgZnJvbSB0cmFuc2Zvcm1hdGlvbiAoZS5nLiwgcHJlLWJ1aWx0IHdvcmtmbG93IGJ1bmRsZXMpLlxuICAgKiBQYXRocyBzaG91bGQgdXNlIGZvcndhcmQgc2xhc2hlcyBhbmQgd2lsbCBiZSBtYXRjaGVkIGFzIHByZWZpeGVzLlxuICAgKi9cbiAgZXhjbHVkZT86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd29ya2Zsb3dUcmFuc2Zvcm1QbHVnaW4oXG4gIG9wdGlvbnM6IFdvcmtmbG93VHJhbnNmb3JtUGx1Z2luT3B0aW9ucyA9IHt9XG4pOiBQbHVnaW4ge1xuICBjb25zdCB7IGV4Y2x1ZGUgPSBbXSB9ID0gb3B0aW9ucztcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICd3b3JrZmxvdzp0cmFuc2Zvcm0nLFxuICAgIHJlc29sdmVJZDoge1xuICAgICAgb3JkZXI6ICdwcmUnLFxuICAgICAgYXN5bmMgaGFuZGxlcihzb3VyY2UsIGltcG9ydGVyLCBvcHRpb25zKSB7XG4gICAgICAgIC8vIGBAb3BlbnRlbGVtZXRyeS9hcGlgIGlzIGFuIG9wdGlvbmFsIHBlZXIgdGhlIFNESyBpbXBvcnRzIGxhemlseS5cbiAgICAgICAgLy8gRXh0ZXJuYWxpemUgaXQgT05MWSB3aGVuIGl0IGlzbid0IGluc3RhbGxlZDogb3RoZXJ3aXNlIFJvbGx1cC9WaXRlXG4gICAgICAgIC8vIGZhaWxzIHRoZSBidWlsZCB3aXRoIFwiZmFpbGVkIHRvIHJlc29sdmUgaW1wb3J0ICdAb3BlbnRlbGVtZXRyeS9hcGknXCJcbiAgICAgICAgLy8gd2hlbiB0aGUgcGVlciBpcyBhYnNlbnQgKG9ic2VydmVkIGluIFN2ZWx0ZUtpdCdzIHBpcGVsaW5lKS4gV2hlbiB0aGVcbiAgICAgICAgLy8gcGVlciBJUyBpbnN0YWxsZWQgd2UgbXVzdCBsZXQgaXQgcmVzb2x2ZSBhbmQgYnVuZGxlIG5vcm1hbGx5IOKAlCBhXG4gICAgICAgIC8vIHNlbGYtY29udGFpbmVkIG91dHB1dCAoTml0cm8ncyBgLm91dHB1dC9zZXJ2ZXJgLCBlc2J1aWxkKSBzaGlwcyBub1xuICAgICAgICAvLyBub2RlX21vZHVsZXMsIHNvIGZvcmNpbmcgaXQgZXh0ZXJuYWwgdGhlcmUgc3RyYW5kcyB0aGUgcnVudGltZVxuICAgICAgICAvLyBgaW1wb3J0KCdAb3BlbnRlbGVtZXRyeS9hcGknKWAgYW5kIGNyYXNoZXMgdGhlIHNlcnZlciB3aXRoXG4gICAgICAgIC8vIEVSUl9NT0RVTEVfTk9UX0ZPVU5ELiBFeHRlcm5hbGl6ZSAobm90IGEgc3R1YiBhbGlhcykgc28gdHJhY2luZyBzdGlsbFxuICAgICAgICAvLyBsb2FkcyB0aGUgcmVhbCBBUEkgYXQgcnVudGltZSB3aGVuIHByZXNlbnQuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBzb3VyY2UgPT09IFdPUktGTE9XX09QVElPTkFMX09URUxfQVBJX01PRFVMRSB8fFxuICAgICAgICAgIHNvdXJjZS5zdGFydHNXaXRoKGAke1dPUktGTE9XX09QVElPTkFMX09URUxfQVBJX01PRFVMRX0vYClcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBhd2FpdCB0aGlzLnJlc29sdmUoc291cmNlLCBpbXBvcnRlciwge1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIHNraXBTZWxmOiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlZCA/PyB7IGlkOiBzb3VyY2UsIGV4dGVybmFsOiB0cnVlIH07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBgd3NgJ3Mgb3B0aW9uYWwgbmF0aXZlIGFjY2VsZXJhdG9ycy4gVW5saWtlIHRoZSBPVEVMIHBlZXIgYWJvdmUgdGhlc2VcbiAgICAgICAgLy8gYXJlIGV4dGVybmFsaXplZCB1bmNvbmRpdGlvbmFsbHksIG5vdCBvbmx5IHdoZW4gdW5yZXNvbHZhYmxlIOKAlCBgd3NgXG4gICAgICAgIC8vIHJlcXVpcmVzIHRoZW0gaW4gYSB0cnkvY2F0Y2gsIHNvIGEgZmFpbGVkIHJ1bnRpbWUgcmVxdWlyZSBpcyB0aGVcbiAgICAgICAgLy8gZGVzaWduZWQgcGF0aCB3aGlsZSBhIHBhcnRpYWxseSBidW5kbGVkIG5hdGl2ZSBtb2R1bGUgaXMgbm90LiBUaGlzXG4gICAgICAgIC8vIHBsdWdpbiBhbHNvIHJ1bnMgdW5kZXIgVml0ZSwgd2hpY2ggc3Vic3RpdHV0ZXMgYSBzdHViIGZvciBhbiBhYnNlbnRcbiAgICAgICAgLy8gb3B0aW9uYWwgcGVlciBhbmQgd291bGQgbGV0IHRoYXQgcmVxdWlyZSBzdWNjZWVkIHdpdGggbm8gd29ya2luZ1xuICAgICAgICAvLyBtYXNrZXIuIFNlZSBXT1JLRkxPV19PUFRJT05BTF9XU19OQVRJVkVfTU9EVUxFUy5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIFdPUktGTE9XX09QVElPTkFMX1dTX05BVElWRV9NT0RVTEVTLnNvbWUoXG4gICAgICAgICAgICAobmFtZSkgPT4gc291cmNlID09PSBuYW1lIHx8IHNvdXJjZS5zdGFydHNXaXRoKGAke25hbWV9L2ApXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4geyBpZDogc291cmNlLCBleHRlcm5hbDogdHJ1ZSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9LFxuICAgIH0sXG4gICAgLy8gVGhpcyB0cmFuc2Zvcm0gYXBwbGllcyB0aGUgXCJ1c2Ugd29ya2Zsb3dcIi9cInVzZSBzdGVwXCJcbiAgICAvLyBzdGVwIHRyYW5zZm9ybWF0aW9uXG4gICAgYXN5bmMgdHJhbnNmb3JtKGNvZGU6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgICAgLy8gU2tpcCBnZW5lcmF0ZWQgd29ya2Zsb3cgcm91dGUgZmlsZXMgdG8gYXZvaWQgcmUtcHJvY2Vzc2luZyB0aGVtXG4gICAgICBpZiAoaXNHZW5lcmF0ZWRXb3JrZmxvd0ZpbGUoaWQpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBTa2lwIGZpbGVzIGluIGV4Y2x1ZGVkIGRpcmVjdG9yaWVzIChlLmcuLCBwcmUtYnVpbHQgd29ya2Zsb3cgYnVuZGxlcylcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRJZCA9IGlkLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgICAgIGZvciAoY29uc3QgZXhjbHVkZVBhdGggb2YgZXhjbHVkZSkge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRXhjbHVkZSA9IGV4Y2x1ZGVQYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWRJZC5zdGFydHNXaXRoKG5vcm1hbGl6ZWRFeGNsdWRlKSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhdHRlcm5zID0gZGV0ZWN0V29ya2Zsb3dQYXR0ZXJucyhjb2RlKTtcblxuICAgICAgaWYgKCFzaG91bGRUcmFuc2Zvcm1GaWxlKGlkLCBwYXR0ZXJucykpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlzVHlwZVNjcmlwdCA9XG4gICAgICAgIGlkLmVuZHNXaXRoKCcudHMnKSB8fFxuICAgICAgICBpZC5lbmRzV2l0aCgnLnRzeCcpIHx8XG4gICAgICAgIGlkLmVuZHNXaXRoKCcubXRzJykgfHxcbiAgICAgICAgaWQuZW5kc1dpdGgoJy5jdHMnKTtcblxuICAgICAgY29uc3Qgc3djUGx1Z2luID0gcmVzb2x2ZU1vZHVsZVBhdGgoJ0B3b3JrZmxvdy9zd2MtcGx1Z2luJywge1xuICAgICAgICBmcm9tOiBbaW1wb3J0Lm1ldGEudXJsXSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgcmVsYXRpdmUgZmlsZW5hbWUgZm9yIFNXQyBwbHVnaW5cbiAgICAgIC8vIFRoZSBTV0MgcGx1Z2luIHVzZXMgZmlsZW5hbWUgdG8gZ2VuZXJhdGUgd29ya2Zsb3dJZCwgc28gaXQgbXVzdCBiZSByZWxhdGl2ZVxuICAgICAgY29uc3Qgd29ya2luZ0RpciA9IHByb2Nlc3MuY3dkKCk7XG4gICAgICBjb25zdCBub3JtYWxpemVkV29ya2luZ0RpciA9IHdvcmtpbmdEaXJcbiAgICAgICAgLnJlcGxhY2UoL1xcXFwvZywgJy8nKVxuICAgICAgICAucmVwbGFjZSgvXFwvJC8sICcnKTtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRGaWxlcGF0aCA9IGlkLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblxuICAgICAgLy8gV2luZG93cyBmaXg6IFVzZSBjYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24gdG8gd29yayBhcm91bmQgZHJpdmUgbGV0dGVyIGNhc2luZyBpc3N1ZXNcbiAgICAgIGNvbnN0IGxvd2VyV2QgPSBub3JtYWxpemVkV29ya2luZ0Rpci50b0xvd2VyQ2FzZSgpO1xuICAgICAgY29uc3QgbG93ZXJQYXRoID0gbm9ybWFsaXplZEZpbGVwYXRoLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGxldCByZWxhdGl2ZUZpbGVuYW1lOiBzdHJpbmc7XG4gICAgICBpZiAobG93ZXJQYXRoLnN0YXJ0c1dpdGgoYCR7bG93ZXJXZH0vYCkpIHtcbiAgICAgICAgLy8gRmlsZSBpcyB1bmRlciB3b3JraW5nIGRpcmVjdG9yeSAtIG1hbnVhbGx5IGNhbGN1bGF0ZSByZWxhdGl2ZSBwYXRoXG4gICAgICAgIHJlbGF0aXZlRmlsZW5hbWUgPSBub3JtYWxpemVkRmlsZXBhdGguc3Vic3RyaW5nKFxuICAgICAgICAgIG5vcm1hbGl6ZWRXb3JraW5nRGlyLmxlbmd0aCArIDFcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAobG93ZXJQYXRoID09PSBsb3dlcldkKSB7XG4gICAgICAgIC8vIEZpbGUgSVMgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IChzaG91bGRuJ3QgaGFwcGVuKVxuICAgICAgICByZWxhdGl2ZUZpbGVuYW1lID0gJy4nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVXNlIHJlbGF0aXZlKCkgZm9yIGZpbGVzIG91dHNpZGUgd29ya2luZyBkaXJlY3RvcnlcbiAgICAgICAgcmVsYXRpdmVGaWxlbmFtZSA9IHJlbGF0aXZlKHdvcmtpbmdEaXIsIGlkKS5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG5cbiAgICAgICAgaWYgKHJlbGF0aXZlRmlsZW5hbWUuc3RhcnRzV2l0aCgnLi4vJykpIHtcbiAgICAgICAgICByZWxhdGl2ZUZpbGVuYW1lID0gcmVsYXRpdmVGaWxlbmFtZVxuICAgICAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgICAgIC5maWx0ZXIoKHBhcnQpID0+IHBhcnQgIT09ICcuLicpXG4gICAgICAgICAgICAuam9pbignLycpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbmFsIHNhZmV0eSBjaGVjayAtIGVuc3VyZSB3ZSBuZXZlciBwYXNzIGFuIGFic29sdXRlIHBhdGggdG8gU1dDXG4gICAgICBpZiAocmVsYXRpdmVGaWxlbmFtZS5pbmNsdWRlcygnOicpIHx8IHJlbGF0aXZlRmlsZW5hbWUuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIC8vIFRoaXMgc2hvdWxkIHJhcmVseSBoYXBwZW4sIGJ1dCB1c2UgZmlsZW5hbWUgc3BsaXQgYXMgbGFzdCByZXNvcnRcbiAgICAgICAgcmVsYXRpdmVGaWxlbmFtZSA9IG5vcm1hbGl6ZWRGaWxlcGF0aC5zcGxpdCgnLycpLnBvcCgpIHx8ICd1bmtub3duLnRzJztcbiAgICAgIH1cblxuICAgICAgLy8gUmVzb2x2ZSBtb2R1bGUgc3BlY2lmaWVyIGZvciBwYWNrYWdlcyAobm9kZV9tb2R1bGVzIG9yIHdvcmtzcGFjZSBwYWNrYWdlcylcbiAgICAgIGNvbnN0IHsgbW9kdWxlU3BlY2lmaWVyIH0gPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKGlkLCB3b3JraW5nRGlyKTtcblxuICAgICAgLy8gVHJhbnNmb3JtIHdpdGggU1dDXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0cmFuc2Zvcm0oY29kZSwge1xuICAgICAgICBmaWxlbmFtZTogcmVsYXRpdmVGaWxlbmFtZSxcbiAgICAgICAganNjOiB7XG4gICAgICAgICAgcGFyc2VyOiB7XG4gICAgICAgICAgICAuLi4oaXNUeXBlU2NyaXB0XG4gICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgc3ludGF4OiAndHlwZXNjcmlwdCcsXG4gICAgICAgICAgICAgICAgICB0c3g6IGlkLmVuZHNXaXRoKCcudHN4JyksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgIHN5bnRheDogJ2VjbWFzY3JpcHQnLFxuICAgICAgICAgICAgICAgICAganN4OiBpZC5lbmRzV2l0aCgnLmpzeCcpLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGFyZ2V0OiAnZXMyMDIyJyxcbiAgICAgICAgICBleHBlcmltZW50YWw6IHtcbiAgICAgICAgICAgIHBsdWdpbnM6IFtbc3djUGx1Z2luLCB7IG1vZGU6ICdzdGVwJywgbW9kdWxlU3BlY2lmaWVyIH1dXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRyYW5zZm9ybToge1xuICAgICAgICAgICAgcmVhY3Q6IHtcbiAgICAgICAgICAgICAgcnVudGltZTogJ3ByZXNlcnZlJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbWluaWZ5OiBmYWxzZSxcbiAgICAgICAgc291cmNlTWFwczogdHJ1ZSxcbiAgICAgICAgaW5saW5lU291cmNlc0NvbnRlbnQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogcmVzdWx0LmNvZGUsXG4gICAgICAgIG1hcDogcmVzdWx0Lm1hcCA/IEpTT04ucGFyc2UocmVzdWx0Lm1hcCkgOiBudWxsLFxuICAgICAgfTtcbiAgICB9LFxuICB9O1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workflow/rollup",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.41",
|
|
4
4
|
"description": "Rollup plugin for Workflow SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -22,17 +22,21 @@
|
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@swc/core": "1.15.3",
|
|
24
24
|
"exsolve": "1.0.7",
|
|
25
|
-
"@workflow/builders": "5.0.0-beta.
|
|
26
|
-
"@workflow/swc-plugin": "5.0.0-beta.
|
|
25
|
+
"@workflow/builders": "5.0.0-beta.41",
|
|
26
|
+
"@workflow/swc-plugin": "5.0.0-beta.5"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/node": "22.19.0",
|
|
30
|
-
"rollup": "^4.
|
|
30
|
+
"rollup": "^4.62.2",
|
|
31
|
+
"typescript": "^6.0.3",
|
|
32
|
+
"vitest": "^4.1.10",
|
|
31
33
|
"@workflow/tsconfig": "5.0.0-beta.0"
|
|
32
34
|
},
|
|
33
35
|
"scripts": {
|
|
34
36
|
"build": "tsc",
|
|
35
37
|
"dev": "tsc --watch",
|
|
36
|
-
"clean": "tsc --build --clean && rm -rf dist"
|
|
38
|
+
"clean": "tsc --build --clean && rm -rf dist",
|
|
39
|
+
"test": "vitest run src",
|
|
40
|
+
"typecheck": "tsc --noEmit"
|
|
37
41
|
}
|
|
38
42
|
}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { relative } from 'node:path';\nimport { transform } from '@swc/core';\nimport {\n detectWorkflowPatterns,\n isGeneratedWorkflowFile,\n resolveModuleSpecifier,\n shouldTransformFile,\n} from '@workflow/builders';\nimport { resolveModulePath } from 'exsolve';\nimport type { Plugin } from 'rollup';\n\nexport interface WorkflowTransformPluginOptions {\n /**\n * Directories to exclude from transformation (e.g., pre-built workflow bundles).\n * Paths should use forward slashes and will be matched as prefixes.\n */\n exclude?: string[];\n}\n\nexport function workflowTransformPlugin(\n options: WorkflowTransformPluginOptions = {}\n): Plugin {\n const { exclude = [] } = options;\n\n return {\n name: 'workflow:transform',\n // This transform applies the \"use workflow\"/\"use step\"\n // step transformation\n async transform(code: string, id: string) {\n // Skip generated workflow route files to avoid re-processing them\n if (isGeneratedWorkflowFile(id)) {\n return null;\n }\n\n // Skip files in excluded directories (e.g., pre-built workflow bundles)\n const normalizedId = id.replace(/\\\\/g, '/');\n for (const excludePath of exclude) {\n const normalizedExclude = excludePath.replace(/\\\\/g, '/');\n if (normalizedId.startsWith(normalizedExclude)) {\n return null;\n }\n }\n\n const patterns = detectWorkflowPatterns(code);\n\n if (!shouldTransformFile(id, patterns)) {\n return null;\n }\n\n const isTypeScript =\n id.endsWith('.ts') ||\n id.endsWith('.tsx') ||\n id.endsWith('.mts') ||\n id.endsWith('.cts');\n\n const swcPlugin = resolveModulePath('@workflow/swc-plugin', {\n from: [import.meta.url],\n });\n\n // Calculate relative filename for SWC plugin\n // The SWC plugin uses filename to generate workflowId, so it must be relative\n const workingDir = process.cwd();\n const normalizedWorkingDir = workingDir\n .replace(/\\\\/g, '/')\n .replace(/\\/$/, '');\n const normalizedFilepath = id.replace(/\\\\/g, '/');\n\n // Windows fix: Use case-insensitive comparison to work around drive letter casing issues\n const lowerWd = normalizedWorkingDir.toLowerCase();\n const lowerPath = normalizedFilepath.toLowerCase();\n\n let relativeFilename: string;\n if (lowerPath.startsWith(`${lowerWd}/`)) {\n // File is under working directory - manually calculate relative path\n relativeFilename = normalizedFilepath.substring(\n normalizedWorkingDir.length + 1\n );\n } else if (lowerPath === lowerWd) {\n // File IS the working directory (shouldn't happen)\n relativeFilename = '.';\n } else {\n // Use relative() for files outside working directory\n relativeFilename = relative(workingDir, id).replace(/\\\\/g, '/');\n\n if (relativeFilename.startsWith('../')) {\n relativeFilename = relativeFilename\n .split('/')\n .filter((part) => part !== '..')\n .join('/');\n }\n }\n\n // Final safety check - ensure we never pass an absolute path to SWC\n if (relativeFilename.includes(':') || relativeFilename.startsWith('/')) {\n // This should rarely happen, but use filename split as last resort\n relativeFilename = normalizedFilepath.split('/').pop() || 'unknown.ts';\n }\n\n // Resolve module specifier for packages (node_modules or workspace packages)\n const { moduleSpecifier } = resolveModuleSpecifier(id, workingDir);\n\n // Transform with SWC\n const result = await transform(code, {\n filename: relativeFilename,\n jsc: {\n parser: {\n ...(isTypeScript\n ? {\n syntax: 'typescript',\n tsx: id.endsWith('.tsx'),\n }\n : {\n syntax: 'ecmascript',\n jsx: id.endsWith('.jsx'),\n }),\n },\n target: 'es2022',\n experimental: {\n plugins: [[swcPlugin, { mode: 'step', moduleSpecifier }]],\n },\n transform: {\n react: {\n runtime: 'preserve',\n },\n },\n },\n minify: false,\n sourceMaps: true,\n inlineSourcesContent: true,\n });\n\n return {\n code: result.code,\n map: result.map ? JSON.parse(result.map) : null,\n };\n },\n };\n}\n"]}
|