@workflow/rollup 5.0.0-beta.3 → 5.0.0-beta.31

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":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,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,CAoHR"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,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,CAwJR"}
package/dist/index.js CHANGED
@@ -1,11 +1,43 @@
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, ensureWorkflowTargetWorldEnv, isGeneratedWorkflowFile, resolveModuleSpecifier, shouldTransformFile, WORKFLOW_OPTIONAL_OTEL_API_MODULE, WORKFLOW_WORLD_TARGET_MODULE, } 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
+ if (source !== WORKFLOW_WORLD_TARGET_MODULE) {
31
+ return null;
32
+ }
33
+ const targetWorld = ensureWorkflowTargetWorldEnv();
34
+ const resolved = await this.resolve(targetWorld, importer, {
35
+ ...options,
36
+ skipSelf: true,
37
+ });
38
+ return resolved ?? { id: targetWorld, external: true };
39
+ },
40
+ },
9
41
  // This transform applies the "use workflow"/"use step"
10
42
  // step transformation
11
43
  async transform(code, id) {
@@ -104,4 +136,4 @@ export function workflowTransformPlugin(options = {}) {
104
136
  },
105
137
  };
106
138
  }
107
- //# sourceMappingURL=index.js.map
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLGlDQUFpQyxFQUNqQyw0QkFBNEIsR0FDN0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFXNUMsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxVQUEwQyxFQUFFO0lBRTVDLE1BQU0sRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRWpDLE9BQU87UUFDTCxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFNBQVMsRUFBRTtZQUNULEtBQUssRUFBRSxLQUFLO1lBQ1osS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU87Z0JBQ3JDLG1FQUFtRTtnQkFDbkUscUVBQXFFO2dCQUNyRSx1RUFBdUU7Z0JBQ3ZFLHVFQUF1RTtnQkFDdkUsbUVBQW1FO2dCQUNuRSxxRUFBcUU7Z0JBQ3JFLGlFQUFpRTtnQkFDakUsNkRBQTZEO2dCQUM3RCx3RUFBd0U7Z0JBQ3hFLDhDQUE4QztnQkFDOUMsSUFDRSxNQUFNLEtBQUssaUNBQWlDO29CQUM1QyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsaUNBQWlDLEdBQUcsQ0FBQyxFQUMxRCxDQUFDO29CQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO3dCQUNwRCxHQUFHLE9BQU87d0JBQ1YsUUFBUSxFQUFFLElBQUk7cUJBQ2YsQ0FBQyxDQUFDO29CQUNILE9BQU8sUUFBUSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQ3BELENBQUM7Z0JBRUQsSUFBSSxNQUFNLEtBQUssNEJBQTRCLEVBQUUsQ0FBQztvQkFDNUMsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztnQkFFRCxNQUFNLFdBQVcsR0FBRyw0QkFBNEIsRUFBRSxDQUFDO2dCQUNuRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRTtvQkFDekQsR0FBRyxPQUFPO29CQUNWLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQztnQkFDSCxPQUFPLFFBQVEsSUFBSSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3pELENBQUM7U0FDRjtRQUNELHVEQUF1RDtRQUN2RCxzQkFBc0I7UUFDdEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFZLEVBQUUsRUFBVTtZQUN0QyxrRUFBa0U7WUFDbEUsSUFBSSx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFFRCx3RUFBd0U7WUFDeEUsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUMsS0FBSyxNQUFNLFdBQVcsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztvQkFDL0MsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7WUFFRCxNQUFNLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU5QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sWUFBWSxHQUNoQixFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDbEIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ25CLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUNuQixFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXRCLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLHNCQUFzQixFQUFFO2dCQUMxRCxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUN4QixDQUFDLENBQUM7WUFFSCw2Q0FBNkM7WUFDN0MsOEVBQThFO1lBQzlFLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNqQyxNQUFNLG9CQUFvQixHQUFHLFVBQVU7aUJBQ3BDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO2lCQUNuQixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFbEQseUZBQXlGO1lBQ3pGLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25ELE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRW5ELElBQUksZ0JBQXdCLENBQUM7WUFDN0IsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxxRUFBcUU7Z0JBQ3JFLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FDN0Msb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDaEMsQ0FBQztZQUNKLENBQUM7aUJBQU0sSUFBSSxTQUFTLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQ2pDLG1EQUFtRDtnQkFDbkQsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO1lBQ3pCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixxREFBcUQ7Z0JBQ3JELGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFFaEUsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDdkMsZ0JBQWdCLEdBQUcsZ0JBQWdCO3lCQUNoQyxLQUFLLENBQUMsR0FBRyxDQUFDO3lCQUNWLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQzt5QkFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNmLENBQUM7WUFDSCxDQUFDO1lBRUQsb0VBQW9FO1lBQ3BFLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN2RSxtRUFBbUU7Z0JBQ25FLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxZQUFZLENBQUM7WUFDekUsQ0FBQztZQUVELDZFQUE2RTtZQUM3RSxNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsc0JBQXNCLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBRW5FLHFCQUFxQjtZQUNyQixNQUFNLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ25DLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLEdBQUcsRUFBRTtvQkFDSCxNQUFNLEVBQUU7d0JBQ04sR0FBRyxDQUFDLFlBQVk7NEJBQ2QsQ0FBQyxDQUFDO2dDQUNFLE1BQU0sRUFBRSxZQUFZO2dDQUNwQixHQUFHLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7NkJBQ3pCOzRCQUNILENBQUMsQ0FBQztnQ0FDRSxNQUFNLEVBQUUsWUFBWTtnQ0FDcEIsR0FBRyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDOzZCQUN6QixDQUFDO3FCQUNQO29CQUNELE1BQU0sRUFBRSxRQUFRO29CQUNoQixZQUFZLEVBQUU7d0JBQ1osT0FBTyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7cUJBQzFEO29CQUNELFNBQVMsRUFBRTt3QkFDVCxLQUFLLEVBQUU7NEJBQ0wsT0FBTyxFQUFFLFVBQVU7eUJBQ3BCO3FCQUNGO2lCQUNGO2dCQUNELE1BQU0sRUFBRSxLQUFLO2dCQUNiLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixvQkFBb0IsRUFBRSxJQUFJO2FBQzNCLENBQUMsQ0FBQztZQUVILE9BQU87Z0JBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNqQixHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7YUFDaEQsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbGF0aXZlIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJ0Bzd2MvY29yZSc7XG5pbXBvcnQge1xuICBkZXRlY3RXb3JrZmxvd1BhdHRlcm5zLFxuICBlbnN1cmVXb3JrZmxvd1RhcmdldFdvcmxkRW52LFxuICBpc0dlbmVyYXRlZFdvcmtmbG93RmlsZSxcbiAgcmVzb2x2ZU1vZHVsZVNwZWNpZmllcixcbiAgc2hvdWxkVHJhbnNmb3JtRmlsZSxcbiAgV09SS0ZMT1dfT1BUSU9OQUxfT1RFTF9BUElfTU9EVUxFLFxuICBXT1JLRkxPV19XT1JMRF9UQVJHRVRfTU9EVUxFLFxufSBmcm9tICdAd29ya2Zsb3cvYnVpbGRlcnMnO1xuaW1wb3J0IHsgcmVzb2x2ZU1vZHVsZVBhdGggfSBmcm9tICdleHNvbHZlJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAncm9sbHVwJztcblxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd1RyYW5zZm9ybVBsdWdpbk9wdGlvbnMge1xuICAvKipcbiAgICogRGlyZWN0b3JpZXMgdG8gZXhjbHVkZSBmcm9tIHRyYW5zZm9ybWF0aW9uIChlLmcuLCBwcmUtYnVpbHQgd29ya2Zsb3cgYnVuZGxlcykuXG4gICAqIFBhdGhzIHNob3VsZCB1c2UgZm9yd2FyZCBzbGFzaGVzIGFuZCB3aWxsIGJlIG1hdGNoZWQgYXMgcHJlZml4ZXMuXG4gICAqL1xuICBleGNsdWRlPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3b3JrZmxvd1RyYW5zZm9ybVBsdWdpbihcbiAgb3B0aW9uczogV29ya2Zsb3dUcmFuc2Zvcm1QbHVnaW5PcHRpb25zID0ge31cbik6IFBsdWdpbiB7XG4gIGNvbnN0IHsgZXhjbHVkZSA9IFtdIH0gPSBvcHRpb25zO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3dvcmtmbG93OnRyYW5zZm9ybScsXG4gICAgcmVzb2x2ZUlkOiB7XG4gICAgICBvcmRlcjogJ3ByZScsXG4gICAgICBhc3luYyBoYW5kbGVyKHNvdXJjZSwgaW1wb3J0ZXIsIG9wdGlvbnMpIHtcbiAgICAgICAgLy8gYEBvcGVudGVsZW1ldHJ5L2FwaWAgaXMgYW4gb3B0aW9uYWwgcGVlciB0aGUgU0RLIGltcG9ydHMgbGF6aWx5LlxuICAgICAgICAvLyBFeHRlcm5hbGl6ZSBpdCBPTkxZIHdoZW4gaXQgaXNuJ3QgaW5zdGFsbGVkOiBvdGhlcndpc2UgUm9sbHVwL1ZpdGVcbiAgICAgICAgLy8gZmFpbHMgdGhlIGJ1aWxkIHdpdGggXCJmYWlsZWQgdG8gcmVzb2x2ZSBpbXBvcnQgJ0BvcGVudGVsZW1ldHJ5L2FwaSdcIlxuICAgICAgICAvLyB3aGVuIHRoZSBwZWVyIGlzIGFic2VudCAob2JzZXJ2ZWQgaW4gU3ZlbHRlS2l0J3MgcGlwZWxpbmUpLiBXaGVuIHRoZVxuICAgICAgICAvLyBwZWVyIElTIGluc3RhbGxlZCB3ZSBtdXN0IGxldCBpdCByZXNvbHZlIGFuZCBidW5kbGUgbm9ybWFsbHkg4oCUIGFcbiAgICAgICAgLy8gc2VsZi1jb250YWluZWQgb3V0cHV0IChOaXRybydzIGAub3V0cHV0L3NlcnZlcmAsIGVzYnVpbGQpIHNoaXBzIG5vXG4gICAgICAgIC8vIG5vZGVfbW9kdWxlcywgc28gZm9yY2luZyBpdCBleHRlcm5hbCB0aGVyZSBzdHJhbmRzIHRoZSBydW50aW1lXG4gICAgICAgIC8vIGBpbXBvcnQoJ0BvcGVudGVsZW1ldHJ5L2FwaScpYCBhbmQgY3Jhc2hlcyB0aGUgc2VydmVyIHdpdGhcbiAgICAgICAgLy8gRVJSX01PRFVMRV9OT1RfRk9VTkQuIEV4dGVybmFsaXplIChub3QgYSBzdHViIGFsaWFzKSBzbyB0cmFjaW5nIHN0aWxsXG4gICAgICAgIC8vIGxvYWRzIHRoZSByZWFsIEFQSSBhdCBydW50aW1lIHdoZW4gcHJlc2VudC5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNvdXJjZSA9PT0gV09SS0ZMT1dfT1BUSU9OQUxfT1RFTF9BUElfTU9EVUxFIHx8XG4gICAgICAgICAgc291cmNlLnN0YXJ0c1dpdGgoYCR7V09SS0ZMT1dfT1BUSU9OQUxfT1RFTF9BUElfTU9EVUxFfS9gKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCByZXNvbHZlZCA9IGF3YWl0IHRoaXMucmVzb2x2ZShzb3VyY2UsIGltcG9ydGVyLCB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgc2tpcFNlbGY6IHRydWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmVkID8/IHsgaWQ6IHNvdXJjZSwgZXh0ZXJuYWw6IHRydWUgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzb3VyY2UgIT09IFdPUktGTE9XX1dPUkxEX1RBUkdFVF9NT0RVTEUpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhcmdldFdvcmxkID0gZW5zdXJlV29ya2Zsb3dUYXJnZXRXb3JsZEVudigpO1xuICAgICAgICBjb25zdCByZXNvbHZlZCA9IGF3YWl0IHRoaXMucmVzb2x2ZSh0YXJnZXRXb3JsZCwgaW1wb3J0ZXIsIHtcbiAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgIHNraXBTZWxmOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVkID8/IHsgaWQ6IHRhcmdldFdvcmxkLCBleHRlcm5hbDogdHJ1ZSB9O1xuICAgICAgfSxcbiAgICB9LFxuICAgIC8vIFRoaXMgdHJhbnNmb3JtIGFwcGxpZXMgdGhlIFwidXNlIHdvcmtmbG93XCIvXCJ1c2Ugc3RlcFwiXG4gICAgLy8gc3RlcCB0cmFuc2Zvcm1hdGlvblxuICAgIGFzeW5jIHRyYW5zZm9ybShjb2RlOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcbiAgICAgIC8vIFNraXAgZ2VuZXJhdGVkIHdvcmtmbG93IHJvdXRlIGZpbGVzIHRvIGF2b2lkIHJlLXByb2Nlc3NpbmcgdGhlbVxuICAgICAgaWYgKGlzR2VuZXJhdGVkV29ya2Zsb3dGaWxlKGlkKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgLy8gU2tpcCBmaWxlcyBpbiBleGNsdWRlZCBkaXJlY3RvcmllcyAoZS5nLiwgcHJlLWJ1aWx0IHdvcmtmbG93IGJ1bmRsZXMpXG4gICAgICBjb25zdCBub3JtYWxpemVkSWQgPSBpZC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gICAgICBmb3IgKGNvbnN0IGV4Y2x1ZGVQYXRoIG9mIGV4Y2x1ZGUpIHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZEV4Y2x1ZGUgPSBleGNsdWRlUGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gICAgICAgIGlmIChub3JtYWxpemVkSWQuc3RhcnRzV2l0aChub3JtYWxpemVkRXhjbHVkZSkpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXR0ZXJucyA9IGRldGVjdFdvcmtmbG93UGF0dGVybnMoY29kZSk7XG5cbiAgICAgIGlmICghc2hvdWxkVHJhbnNmb3JtRmlsZShpZCwgcGF0dGVybnMpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpc1R5cGVTY3JpcHQgPVxuICAgICAgICBpZC5lbmRzV2l0aCgnLnRzJykgfHxcbiAgICAgICAgaWQuZW5kc1dpdGgoJy50c3gnKSB8fFxuICAgICAgICBpZC5lbmRzV2l0aCgnLm10cycpIHx8XG4gICAgICAgIGlkLmVuZHNXaXRoKCcuY3RzJyk7XG5cbiAgICAgIGNvbnN0IHN3Y1BsdWdpbiA9IHJlc29sdmVNb2R1bGVQYXRoKCdAd29ya2Zsb3cvc3djLXBsdWdpbicsIHtcbiAgICAgICAgZnJvbTogW2ltcG9ydC5tZXRhLnVybF0sXG4gICAgICB9KTtcblxuICAgICAgLy8gQ2FsY3VsYXRlIHJlbGF0aXZlIGZpbGVuYW1lIGZvciBTV0MgcGx1Z2luXG4gICAgICAvLyBUaGUgU1dDIHBsdWdpbiB1c2VzIGZpbGVuYW1lIHRvIGdlbmVyYXRlIHdvcmtmbG93SWQsIHNvIGl0IG11c3QgYmUgcmVsYXRpdmVcbiAgICAgIGNvbnN0IHdvcmtpbmdEaXIgPSBwcm9jZXNzLmN3ZCgpO1xuICAgICAgY29uc3Qgbm9ybWFsaXplZFdvcmtpbmdEaXIgPSB3b3JraW5nRGlyXG4gICAgICAgIC5yZXBsYWNlKC9cXFxcL2csICcvJylcbiAgICAgICAgLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG4gICAgICBjb25zdCBub3JtYWxpemVkRmlsZXBhdGggPSBpZC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG5cbiAgICAgIC8vIFdpbmRvd3MgZml4OiBVc2UgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIHRvIHdvcmsgYXJvdW5kIGRyaXZlIGxldHRlciBjYXNpbmcgaXNzdWVzXG4gICAgICBjb25zdCBsb3dlcldkID0gbm9ybWFsaXplZFdvcmtpbmdEaXIudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGxvd2VyUGF0aCA9IG5vcm1hbGl6ZWRGaWxlcGF0aC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBsZXQgcmVsYXRpdmVGaWxlbmFtZTogc3RyaW5nO1xuICAgICAgaWYgKGxvd2VyUGF0aC5zdGFydHNXaXRoKGAke2xvd2VyV2R9L2ApKSB7XG4gICAgICAgIC8vIEZpbGUgaXMgdW5kZXIgd29ya2luZyBkaXJlY3RvcnkgLSBtYW51YWxseSBjYWxjdWxhdGUgcmVsYXRpdmUgcGF0aFxuICAgICAgICByZWxhdGl2ZUZpbGVuYW1lID0gbm9ybWFsaXplZEZpbGVwYXRoLnN1YnN0cmluZyhcbiAgICAgICAgICBub3JtYWxpemVkV29ya2luZ0Rpci5sZW5ndGggKyAxXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKGxvd2VyUGF0aCA9PT0gbG93ZXJXZCkge1xuICAgICAgICAvLyBGaWxlIElTIHRoZSB3b3JraW5nIGRpcmVjdG9yeSAoc2hvdWxkbid0IGhhcHBlbilcbiAgICAgICAgcmVsYXRpdmVGaWxlbmFtZSA9ICcuJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFVzZSByZWxhdGl2ZSgpIGZvciBmaWxlcyBvdXRzaWRlIHdvcmtpbmcgZGlyZWN0b3J5XG4gICAgICAgIHJlbGF0aXZlRmlsZW5hbWUgPSByZWxhdGl2ZSh3b3JraW5nRGlyLCBpZCkucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuXG4gICAgICAgIGlmIChyZWxhdGl2ZUZpbGVuYW1lLnN0YXJ0c1dpdGgoJy4uLycpKSB7XG4gICAgICAgICAgcmVsYXRpdmVGaWxlbmFtZSA9IHJlbGF0aXZlRmlsZW5hbWVcbiAgICAgICAgICAgIC5zcGxpdCgnLycpXG4gICAgICAgICAgICAuZmlsdGVyKChwYXJ0KSA9PiBwYXJ0ICE9PSAnLi4nKVxuICAgICAgICAgICAgLmpvaW4oJy8nKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBGaW5hbCBzYWZldHkgY2hlY2sgLSBlbnN1cmUgd2UgbmV2ZXIgcGFzcyBhbiBhYnNvbHV0ZSBwYXRoIHRvIFNXQ1xuICAgICAgaWYgKHJlbGF0aXZlRmlsZW5hbWUuaW5jbHVkZXMoJzonKSB8fCByZWxhdGl2ZUZpbGVuYW1lLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAvLyBUaGlzIHNob3VsZCByYXJlbHkgaGFwcGVuLCBidXQgdXNlIGZpbGVuYW1lIHNwbGl0IGFzIGxhc3QgcmVzb3J0XG4gICAgICAgIHJlbGF0aXZlRmlsZW5hbWUgPSBub3JtYWxpemVkRmlsZXBhdGguc3BsaXQoJy8nKS5wb3AoKSB8fCAndW5rbm93bi50cyc7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlc29sdmUgbW9kdWxlIHNwZWNpZmllciBmb3IgcGFja2FnZXMgKG5vZGVfbW9kdWxlcyBvciB3b3Jrc3BhY2UgcGFja2FnZXMpXG4gICAgICBjb25zdCB7IG1vZHVsZVNwZWNpZmllciB9ID0gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihpZCwgd29ya2luZ0Rpcik7XG5cbiAgICAgIC8vIFRyYW5zZm9ybSB3aXRoIFNXQ1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdHJhbnNmb3JtKGNvZGUsIHtcbiAgICAgICAgZmlsZW5hbWU6IHJlbGF0aXZlRmlsZW5hbWUsXG4gICAgICAgIGpzYzoge1xuICAgICAgICAgIHBhcnNlcjoge1xuICAgICAgICAgICAgLi4uKGlzVHlwZVNjcmlwdFxuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIHN5bnRheDogJ3R5cGVzY3JpcHQnLFxuICAgICAgICAgICAgICAgICAgdHN4OiBpZC5lbmRzV2l0aCgnLnRzeCcpLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICBzeW50YXg6ICdlY21hc2NyaXB0JyxcbiAgICAgICAgICAgICAgICAgIGpzeDogaWQuZW5kc1dpdGgoJy5qc3gnKSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRhcmdldDogJ2VzMjAyMicsXG4gICAgICAgICAgZXhwZXJpbWVudGFsOiB7XG4gICAgICAgICAgICBwbHVnaW5zOiBbW3N3Y1BsdWdpbiwgeyBtb2RlOiAnc3RlcCcsIG1vZHVsZVNwZWNpZmllciB9XV0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cmFuc2Zvcm06IHtcbiAgICAgICAgICAgIHJlYWN0OiB7XG4gICAgICAgICAgICAgIHJ1bnRpbWU6ICdwcmVzZXJ2ZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG1pbmlmeTogZmFsc2UsXG4gICAgICAgIHNvdXJjZU1hcHM6IHRydWUsXG4gICAgICAgIGlubGluZVNvdXJjZXNDb250ZW50OiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvZGU6IHJlc3VsdC5jb2RlLFxuICAgICAgICBtYXA6IHJlc3VsdC5tYXAgPyBKU09OLnBhcnNlKHJlc3VsdC5tYXApIDogbnVsbCxcbiAgICAgIH07XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workflow/rollup",
3
- "version": "5.0.0-beta.3",
3
+ "version": "5.0.0-beta.31",
4
4
  "description": "Rollup plugin for Workflow SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,17 +22,20 @@
22
22
  "dependencies": {
23
23
  "@swc/core": "1.15.3",
24
24
  "exsolve": "1.0.7",
25
- "@workflow/builders": "5.0.0-beta.3",
26
- "@workflow/swc-plugin": "5.0.0-beta.3"
25
+ "@workflow/builders": "5.0.0-beta.31",
26
+ "@workflow/swc-plugin": "5.0.0-beta.5"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/node": "22.19.0",
30
- "rollup": "^4.60.0",
30
+ "rollup": "^4.62.2",
31
+ "vitest": "^4.0.18",
31
32
  "@workflow/tsconfig": "5.0.0-beta.0"
32
33
  },
33
34
  "scripts": {
34
35
  "build": "tsc",
35
36
  "dev": "tsc --watch",
36
- "clean": "tsc --build --clean && rm -rf dist"
37
+ "clean": "tsc --build --clean && rm -rf dist",
38
+ "test": "vitest run src",
39
+ "typecheck": "tsc --noEmit"
37
40
  }
38
41
  }
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"]}