@workflow/rollup 5.0.0-beta.4 → 5.0.0-beta.40

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":"AAUA,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,CA+IR"}
package/dist/index.js CHANGED
@@ -1,11 +1,35 @@
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, } 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
+ return null;
31
+ },
32
+ },
9
33
  // This transform applies the "use workflow"/"use step"
10
34
  // step transformation
11
35
  async transform(code, id) {
@@ -104,4 +128,4 @@ export function workflowTransformPlugin(options = {}) {
104
128
  },
105
129
  };
106
130
  }
107
- //# sourceMappingURL=index.js.map
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsaUNBQWlDLEdBQ2xDLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBVzVDLE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsVUFBMEMsRUFBRTtJQUU1QyxNQUFNLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUVqQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixTQUFTLEVBQUU7WUFDVCxLQUFLLEVBQUUsS0FBSztZQUNaLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPO2dCQUNyQyxtRUFBbUU7Z0JBQ25FLHFFQUFxRTtnQkFDckUsdUVBQXVFO2dCQUN2RSx1RUFBdUU7Z0JBQ3ZFLG1FQUFtRTtnQkFDbkUscUVBQXFFO2dCQUNyRSxpRUFBaUU7Z0JBQ2pFLDZEQUE2RDtnQkFDN0Qsd0VBQXdFO2dCQUN4RSw4Q0FBOEM7Z0JBQzlDLElBQ0UsTUFBTSxLQUFLLGlDQUFpQztvQkFDNUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLGlDQUFpQyxHQUFHLENBQUMsRUFDMUQsQ0FBQztvQkFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTt3QkFDcEQsR0FBRyxPQUFPO3dCQUNWLFFBQVEsRUFBRSxJQUFJO3FCQUNmLENBQUMsQ0FBQztvQkFDSCxPQUFPLFFBQVEsSUFB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QkFDTCxPQUFPLEVBQUUsVUFBVTt5QkFDcEI7cUJBQ0Y7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLG9CQUFvQixFQUFFLElBQUk7YUFDM0IsQ0FBQyxDQUFDO1lBRUgsT0FBTztnQkFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2pCLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTthQUNoRCxDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVsYXRpdmUgfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnQHN3Yy9jb3JlJztcbmltcG9ydCB7XG4gIGRldGVjdFdvcmtmbG93UGF0dGVybnMsXG4gIGlzR2VuZXJhdGVkV29ya2Zsb3dGaWxlLFxuICByZXNvbHZlTW9kdWxlU3BlY2lmaWVyLFxuICBzaG91bGRUcmFuc2Zvcm1GaWxlLFxuICBXT1JLRkxPV19PUFRJT05BTF9PVEVMX0FQSV9NT0RVTEUsXG59IGZyb20gJ0B3b3JrZmxvdy9idWlsZGVycyc7XG5pbXBvcnQgeyByZXNvbHZlTW9kdWxlUGF0aCB9IGZyb20gJ2V4c29sdmUnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdyb2xsdXAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93VHJhbnNmb3JtUGx1Z2luT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBEaXJlY3RvcmllcyB0byBleGNsdWRlIGZyb20gdHJhbnNmb3JtYXRpb24gKGUuZy4sIHByZS1idWlsdCB3b3JrZmxvdyBidW5kbGVzKS5cbiAgICogUGF0aHMgc2hvdWxkIHVzZSBmb3J3YXJkIHNsYXNoZXMgYW5kIHdpbGwgYmUgbWF0Y2hlZCBhcyBwcmVmaXhlcy5cbiAgICovXG4gIGV4Y2x1ZGU/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdvcmtmbG93VHJhbnNmb3JtUGx1Z2luKFxuICBvcHRpb25zOiBXb3JrZmxvd1RyYW5zZm9ybVBsdWdpbk9wdGlvbnMgPSB7fVxuKTogUGx1Z2luIHtcbiAgY29uc3QgeyBleGNsdWRlID0gW10gfSA9IG9wdGlvbnM7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnd29ya2Zsb3c6dHJhbnNmb3JtJyxcbiAgICByZXNvbHZlSWQ6IHtcbiAgICAgIG9yZGVyOiAncHJlJyxcbiAgICAgIGFzeW5jIGhhbmRsZXIoc291cmNlLCBpbXBvcnRlciwgb3B0aW9ucykge1xuICAgICAgICAvLyBgQG9wZW50ZWxlbWV0cnkvYXBpYCBpcyBhbiBvcHRpb25hbCBwZWVyIHRoZSBTREsgaW1wb3J0cyBsYXppbHkuXG4gICAgICAgIC8vIEV4dGVybmFsaXplIGl0IE9OTFkgd2hlbiBpdCBpc24ndCBpbnN0YWxsZWQ6IG90aGVyd2lzZSBSb2xsdXAvVml0ZVxuICAgICAgICAvLyBmYWlscyB0aGUgYnVpbGQgd2l0aCBcImZhaWxlZCB0byByZXNvbHZlIGltcG9ydCAnQG9wZW50ZWxlbWV0cnkvYXBpJ1wiXG4gICAgICAgIC8vIHdoZW4gdGhlIHBlZXIgaXMgYWJzZW50IChvYnNlcnZlZCBpbiBTdmVsdGVLaXQncyBwaXBlbGluZSkuIFdoZW4gdGhlXG4gICAgICAgIC8vIHBlZXIgSVMgaW5zdGFsbGVkIHdlIG11c3QgbGV0IGl0IHJlc29sdmUgYW5kIGJ1bmRsZSBub3JtYWxseSDigJQgYVxuICAgICAgICAvLyBzZWxmLWNvbnRhaW5lZCBvdXRwdXQgKE5pdHJvJ3MgYC5vdXRwdXQvc2VydmVyYCwgZXNidWlsZCkgc2hpcHMgbm9cbiAgICAgICAgLy8gbm9kZV9tb2R1bGVzLCBzbyBmb3JjaW5nIGl0IGV4dGVybmFsIHRoZXJlIHN0cmFuZHMgdGhlIHJ1bnRpbWVcbiAgICAgICAgLy8gYGltcG9ydCgnQG9wZW50ZWxlbWV0cnkvYXBpJylgIGFuZCBjcmFzaGVzIHRoZSBzZXJ2ZXIgd2l0aFxuICAgICAgICAvLyBFUlJfTU9EVUxFX05PVF9GT1VORC4gRXh0ZXJuYWxpemUgKG5vdCBhIHN0dWIgYWxpYXMpIHNvIHRyYWNpbmcgc3RpbGxcbiAgICAgICAgLy8gbG9hZHMgdGhlIHJlYWwgQVBJIGF0IHJ1bnRpbWUgd2hlbiBwcmVzZW50LlxuICAgICAgICBpZiAoXG4gICAgICAgICAgc291cmNlID09PSBXT1JLRkxPV19PUFRJT05BTF9PVEVMX0FQSV9NT0RVTEUgfHxcbiAgICAgICAgICBzb3VyY2Uuc3RhcnRzV2l0aChgJHtXT1JLRkxPV19PUFRJT05BTF9PVEVMX0FQSV9NT0RVTEV9L2ApXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgdGhpcy5yZXNvbHZlKHNvdXJjZSwgaW1wb3J0ZXIsIHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICBza2lwU2VsZjogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZWQgPz8geyBpZDogc291cmNlLCBleHRlcm5hbDogdHJ1ZSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9LFxuICAgIH0sXG4gICAgLy8gVGhpcyB0cmFuc2Zvcm0gYXBwbGllcyB0aGUgXCJ1c2Ugd29ya2Zsb3dcIi9cInVzZSBzdGVwXCJcbiAgICAvLyBzdGVwIHRyYW5zZm9ybWF0aW9uXG4gICAgYXN5bmMgdHJhbnNmb3JtKGNvZGU6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgICAgLy8gU2tpcCBnZW5lcmF0ZWQgd29ya2Zsb3cgcm91dGUgZmlsZXMgdG8gYXZvaWQgcmUtcHJvY2Vzc2luZyB0aGVtXG4gICAgICBpZiAoaXNHZW5lcmF0ZWRXb3JrZmxvd0ZpbGUoaWQpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBTa2lwIGZpbGVzIGluIGV4Y2x1ZGVkIGRpcmVjdG9yaWVzIChlLmcuLCBwcmUtYnVpbHQgd29ya2Zsb3cgYnVuZGxlcylcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRJZCA9IGlkLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgICAgIGZvciAoY29uc3QgZXhjbHVkZVBhdGggb2YgZXhjbHVkZSkge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRXhjbHVkZSA9IGV4Y2x1ZGVQYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWRJZC5zdGFydHNXaXRoKG5vcm1hbGl6ZWRFeGNsdWRlKSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhdHRlcm5zID0gZGV0ZWN0V29ya2Zsb3dQYXR0ZXJucyhjb2RlKTtcblxuICAgICAgaWYgKCFzaG91bGRUcmFuc2Zvcm1GaWxlKGlkLCBwYXR0ZXJucykpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlzVHlwZVNjcmlwdCA9XG4gICAgICAgIGlkLmVuZHNXaXRoKCcudHMnKSB8fFxuICAgICAgICBpZC5lbmRzV2l0aCgnLnRzeCcpIHx8XG4gICAgICAgIGlkLmVuZHNXaXRoKCcubXRzJykgfHxcbiAgICAgICAgaWQuZW5kc1dpdGgoJy5jdHMnKTtcblxuICAgICAgY29uc3Qgc3djUGx1Z2luID0gcmVzb2x2ZU1vZHVsZVBhdGgoJ0B3b3JrZmxvdy9zd2MtcGx1Z2luJywge1xuICAgICAgICBmcm9tOiBbaW1wb3J0Lm1ldGEudXJsXSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgcmVsYXRpdmUgZmlsZW5hbWUgZm9yIFNXQyBwbHVnaW5cbiAgICAgIC8vIFRoZSBTV0MgcGx1Z2luIHVzZXMgZmlsZW5hbWUgdG8gZ2VuZXJhdGUgd29ya2Zsb3dJZCwgc28gaXQgbXVzdCBiZSByZWxhdGl2ZVxuICAgICAgY29uc3Qgd29ya2luZ0RpciA9IHByb2Nlc3MuY3dkKCk7XG4gICAgICBjb25zdCBub3JtYWxpemVkV29ya2luZ0RpciA9IHdvcmtpbmdEaXJcbiAgICAgICAgLnJlcGxhY2UoL1xcXFwvZywgJy8nKVxuICAgICAgICAucmVwbGFjZSgvXFwvJC8sICcnKTtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRGaWxlcGF0aCA9IGlkLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblxuICAgICAgLy8gV2luZG93cyBmaXg6IFVzZSBjYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24gdG8gd29yayBhcm91bmQgZHJpdmUgbGV0dGVyIGNhc2luZyBpc3N1ZXNcbiAgICAgIGNvbnN0IGxvd2VyV2QgPSBub3JtYWxpemVkV29ya2luZ0Rpci50b0xvd2VyQ2FzZSgpO1xuICAgICAgY29uc3QgbG93ZXJQYXRoID0gbm9ybWFsaXplZEZpbGVwYXRoLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGxldCByZWxhdGl2ZUZpbGVuYW1lOiBzdHJpbmc7XG4gICAgICBpZiAobG93ZXJQYXRoLnN0YXJ0c1dpdGgoYCR7bG93ZXJXZH0vYCkpIHtcbiAgICAgICAgLy8gRmlsZSBpcyB1bmRlciB3b3JraW5nIGRpcmVjdG9yeSAtIG1hbnVhbGx5IGNhbGN1bGF0ZSByZWxhdGl2ZSBwYXRoXG4gICAgICAgIHJlbGF0aXZlRmlsZW5hbWUgPSBub3JtYWxpemVkRmlsZXBhdGguc3Vic3RyaW5nKFxuICAgICAgICAgIG5vcm1hbGl6ZWRXb3JraW5nRGlyLmxlbmd0aCArIDFcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAobG93ZXJQYXRoID09PSBsb3dlcldkKSB7XG4gICAgICAgIC8vIEZpbGUgSVMgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IChzaG91bGRuJ3QgaGFwcGVuKVxuICAgICAgICByZWxhdGl2ZUZpbGVuYW1lID0gJy4nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVXNlIHJlbGF0aXZlKCkgZm9yIGZpbGVzIG91dHNpZGUgd29ya2luZyBkaXJlY3RvcnlcbiAgICAgICAgcmVsYXRpdmVGaWxlbmFtZSA9IHJlbGF0aXZlKHdvcmtpbmdEaXIsIGlkKS5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG5cbiAgICAgICAgaWYgKHJlbGF0aXZlRmlsZW5hbWUuc3RhcnRzV2l0aCgnLi4vJykpIHtcbiAgICAgICAgICByZWxhdGl2ZUZpbGVuYW1lID0gcmVsYXRpdmVGaWxlbmFtZVxuICAgICAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgICAgIC5maWx0ZXIoKHBhcnQpID0+IHBhcnQgIT09ICcuLicpXG4gICAgICAgICAgICAuam9pbignLycpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbmFsIHNhZmV0eSBjaGVjayAtIGVuc3VyZSB3ZSBuZXZlciBwYXNzIGFuIGFic29sdXRlIHBhdGggdG8gU1dDXG4gICAgICBpZiAocmVsYXRpdmVGaWxlbmFtZS5pbmNsdWRlcygnOicpIHx8IHJlbGF0aXZlRmlsZW5hbWUuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIC8vIFRoaXMgc2hvdWxkIHJhcmVseSBoYXBwZW4sIGJ1dCB1c2UgZmlsZW5hbWUgc3BsaXQgYXMgbGFzdCByZXNvcnRcbiAgICAgICAgcmVsYXRpdmVGaWxlbmFtZSA9IG5vcm1hbGl6ZWRGaWxlcGF0aC5zcGxpdCgnLycpLnBvcCgpIHx8ICd1bmtub3duLnRzJztcbiAgICAgIH1cblxuICAgICAgLy8gUmVzb2x2ZSBtb2R1bGUgc3BlY2lmaWVyIGZvciBwYWNrYWdlcyAobm9kZV9tb2R1bGVzIG9yIHdvcmtzcGFjZSBwYWNrYWdlcylcbiAgICAgIGNvbnN0IHsgbW9kdWxlU3BlY2lmaWVyIH0gPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKGlkLCB3b3JraW5nRGlyKTtcblxuICAgICAgLy8gVHJhbnNmb3JtIHdpdGggU1dDXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0cmFuc2Zvcm0oY29kZSwge1xuICAgICAgICBmaWxlbmFtZTogcmVsYXRpdmVGaWxlbmFtZSxcbiAgICAgICAganNjOiB7XG4gICAgICAgICAgcGFyc2VyOiB7XG4gICAgICAgICAgICAuLi4oaXNUeXBlU2NyaXB0XG4gICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgc3ludGF4OiAndHlwZXNjcmlwdCcsXG4gICAgICAgICAgICAgICAgICB0c3g6IGlkLmVuZHNXaXRoKCcudHN4JyksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgIHN5bnRheDogJ2VjbWFzY3JpcHQnLFxuICAgICAgICAgICAgICAgICAganN4OiBpZC5lbmRzV2l0aCgnLmpzeCcpLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGFyZ2V0OiAnZXMyMDIyJyxcbiAgICAgICAgICBleHBlcmltZW50YWw6IHtcbiAgICAgICAgICAgIHBsdWdpbnM6IFtbc3djUGx1Z2luLCB7IG1vZGU6ICdzdGVwJywgbW9kdWxlU3BlY2lmaWVyIH1dXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRyYW5zZm9ybToge1xuICAgICAgICAgICAgcmVhY3Q6IHtcbiAgICAgICAgICAgICAgcnVudGltZTogJ3ByZXNlcnZlJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbWluaWZ5OiBmYWxzZSxcbiAgICAgICAgc291cmNlTWFwczogdHJ1ZSxcbiAgICAgICAgaW5saW5lU291cmNlc0NvbnRlbnQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogcmVzdWx0LmNvZGUsXG4gICAgICAgIG1hcDogcmVzdWx0Lm1hcCA/IEpTT04ucGFyc2UocmVzdWx0Lm1hcCkgOiBudWxsLFxuICAgICAgfTtcbiAgICB9LFxuICB9O1xufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workflow/rollup",
3
- "version": "5.0.0-beta.4",
3
+ "version": "5.0.0-beta.40",
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.4",
26
- "@workflow/swc-plugin": "5.0.0-beta.3"
25
+ "@workflow/builders": "5.0.0-beta.40",
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
+ "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"]}