@distilled.cloud/cloudflare-rolldown-plugin 0.3.0 → 0.4.0

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/dist/factory.d.ts +19 -0
  2. package/dist/factory.d.ts.map +1 -0
  3. package/dist/factory.js +30 -0
  4. package/dist/factory.js.map +1 -0
  5. package/dist/options.d.ts +26 -0
  6. package/dist/options.d.ts.map +1 -0
  7. package/dist/options.js +1 -0
  8. package/dist/options.js.map +1 -0
  9. package/dist/plugin.d.ts +3 -6
  10. package/dist/plugin.d.ts.map +1 -1
  11. package/dist/plugin.js +10 -11
  12. package/dist/plugin.js.map +1 -1
  13. package/dist/plugins/additional-modules.d.ts +1 -2
  14. package/dist/plugins/additional-modules.d.ts.map +1 -1
  15. package/dist/plugins/additional-modules.js +67 -53
  16. package/dist/plugins/additional-modules.js.map +1 -1
  17. package/dist/plugins/cloudflare-externals.d.ts +1 -2
  18. package/dist/plugins/cloudflare-externals.d.ts.map +1 -1
  19. package/dist/plugins/cloudflare-externals.js +36 -15
  20. package/dist/plugins/cloudflare-externals.js.map +1 -1
  21. package/dist/plugins/index.d.ts +7 -0
  22. package/dist/plugins/index.d.ts.map +1 -0
  23. package/dist/plugins/index.js +7 -0
  24. package/dist/plugins/index.js.map +1 -0
  25. package/dist/plugins/nodejs-compat.d.ts +9 -3
  26. package/dist/plugins/nodejs-compat.d.ts.map +1 -1
  27. package/dist/plugins/nodejs-compat.js +178 -115
  28. package/dist/plugins/nodejs-compat.js.map +1 -1
  29. package/dist/plugins/options.d.ts +1 -5
  30. package/dist/plugins/options.d.ts.map +1 -1
  31. package/dist/plugins/options.js +128 -23
  32. package/dist/plugins/options.js.map +1 -1
  33. package/dist/plugins/virtual-modules.d.ts +3 -0
  34. package/dist/plugins/virtual-modules.d.ts.map +1 -0
  35. package/dist/plugins/virtual-modules.js +125 -0
  36. package/dist/plugins/virtual-modules.js.map +1 -0
  37. package/dist/plugins/wasm-init.d.ts +1 -2
  38. package/dist/plugins/wasm-init.d.ts.map +1 -1
  39. package/dist/plugins/wasm-init.js +15 -13
  40. package/dist/plugins/wasm-init.js.map +1 -1
  41. package/package.json +16 -1
  42. package/src/factory.ts +60 -0
  43. package/src/options.ts +25 -0
  44. package/src/plugin.ts +22 -18
  45. package/src/plugins/additional-modules.ts +89 -55
  46. package/src/plugins/cloudflare-externals.ts +36 -16
  47. package/src/plugins/index.ts +6 -0
  48. package/src/plugins/nodejs-compat.ts +197 -140
  49. package/src/plugins/options.ts +145 -26
  50. package/src/plugins/virtual-modules.ts +135 -0
  51. package/src/plugins/wasm-init.ts +15 -14
@@ -4,19 +4,41 @@ import { createRequire } from "node:module";
4
4
  import path from "node:path";
5
5
  import { esmExternalRequirePlugin } from "rolldown/plugins";
6
6
  import { defineEnv } from "unenv";
7
+ import { createPlugin } from "../factory.js";
7
8
  import { hasNodejsAls, hasNodejsCompat } from "../utils.js";
9
+ const ASYNC_HOOKS_REGEXP = /^(node:)?async_hooks$/;
8
10
  const NODE_BUILTIN_MODULES_REGEXP = new RegExp(`^(${nonPrefixedNodeModules.join("|")}|node:.+)$`);
9
- const VIRTUAL_MODULE_ID_REGEXP = /^virtual:nodejs-global-inject\/.+$/;
10
- export function makeNodejsCompatPlugin(options) {
11
- if (hasNodejsCompat(options.compatibilityFlags)) {
12
- return makeUnenvPlugin(options);
13
- }
14
- if (hasNodejsAls(options.compatibilityFlags)) {
15
- return makeNodeJsAlsPlugin();
16
- }
17
- return makeNodeJsImportWarningPlugin();
18
- }
19
- function makeUnenvPlugin(options) {
11
+ export const nodejsAlsPlugin = createPlugin("nodejs-als", (options) => {
12
+ if (!hasNodejsAls(options.compatibilityFlags))
13
+ return;
14
+ return {
15
+ rolldown: {
16
+ resolveId: {
17
+ filter: { id: ASYNC_HOOKS_REGEXP },
18
+ handler(id) {
19
+ return { id, external: true };
20
+ },
21
+ },
22
+ },
23
+ vite: {
24
+ configEnvironment(name) {
25
+ if (name === "client")
26
+ return;
27
+ return {
28
+ resolve: {
29
+ builtins: ["async_hooks", "node:async_hooks"],
30
+ },
31
+ optimizeDeps: {
32
+ exclude: ["async_hooks", "node:async_hooks"],
33
+ },
34
+ };
35
+ },
36
+ },
37
+ };
38
+ });
39
+ export const nodejsUnenvPlugin = createPlugin("nodejs-unenv", (options) => {
40
+ if (!hasNodejsCompat(options.compatibilityFlags))
41
+ return;
20
42
  const { alias, inject, external, polyfill } = defineEnv({
21
43
  presets: [
22
44
  getCloudflarePreset({
@@ -25,136 +47,177 @@ function makeUnenvPlugin(options) {
25
47
  }),
26
48
  ],
27
49
  }).env;
28
- const injectVirtualModules = makeInjectVirtualModules(inject);
50
+ const entries = new Set(Object.values(alias));
51
+ for (const globalInject of Object.values(inject)) {
52
+ if (typeof globalInject === "string") {
53
+ entries.add(globalInject);
54
+ }
55
+ else {
56
+ entries.add(globalInject[0]);
57
+ }
58
+ }
59
+ polyfill.forEach((module) => entries.add(module));
60
+ external.forEach((module) => entries.delete(module));
29
61
  const require = createRequire(import.meta.url);
30
- return [
31
- esmExternalRequirePlugin({
32
- external: [...external],
33
- skipDuplicateCheck: true,
34
- }),
35
- {
36
- name: "rolldown-plugin-cloudflare:nodejs-compat:injects",
37
- resolveId: {
38
- filter: { id: VIRTUAL_MODULE_ID_REGEXP },
39
- handler(id) {
40
- if (injectVirtualModules.has(id)) {
41
- return { id };
42
- }
43
- },
44
- },
45
- load: {
46
- filter: { id: VIRTUAL_MODULE_ID_REGEXP },
47
- handler(id) {
48
- return injectVirtualModules.get(id);
49
- },
62
+ const resolve = (id) => {
63
+ if (alias[id] && !external.includes(alias[id])) {
64
+ return require.resolve(alias[id]);
65
+ }
66
+ if (entries.has(id)) {
67
+ return require.resolve(id);
68
+ }
69
+ };
70
+ const RESOLVE_ID_FILTER = {
71
+ id: [NODE_BUILTIN_MODULES_REGEXP, /^unenv\//, /^@cloudflare\/unenv-preset\//],
72
+ };
73
+ return {
74
+ shared: {
75
+ api: {
76
+ polyfill,
77
+ inject: Object.fromEntries(Object.entries(inject).map(([injectedName, moduleSpecifier]) => {
78
+ assert(typeof moduleSpecifier === "string", `expected moduleSpecifier to be a string`);
79
+ return [injectedName, moduleSpecifier];
80
+ })),
50
81
  },
51
82
  },
52
- {
53
- name: "rolldown-plugin-cloudflare:nodejs-compat:unenv-preset-imports",
83
+ rolldown: {
84
+ async options(options) {
85
+ options.plugins = [
86
+ esmExternalRequirePlugin({
87
+ external: [...external],
88
+ skipDuplicateCheck: true,
89
+ }),
90
+ options.plugins,
91
+ ];
92
+ return options;
93
+ },
54
94
  resolveId: {
55
- filter: { id: /^@cloudflare\/unenv-preset\// },
56
- async handler(id, importer, options) {
57
- const resolved = await this.resolve(id, importer, options);
58
- if (resolved)
59
- return resolved;
60
- return { id: require.resolve(id) };
95
+ filter: RESOLVE_ID_FILTER,
96
+ handler(source, importer, options) {
97
+ const resolved = resolve(source);
98
+ if (!resolved)
99
+ return;
100
+ return this.resolve(resolved, importer, options);
61
101
  },
62
102
  },
63
103
  },
64
- {
65
- name: "rolldown-plugin-cloudflare:nodejs-compat",
104
+ vite: {
105
+ enforce: "pre",
106
+ async configEnvironment(name) {
107
+ if (name === "client")
108
+ return;
109
+ return {
110
+ resolve: {
111
+ builtins: [...external],
112
+ },
113
+ ...(this.meta.rolldownVersion
114
+ ? {
115
+ build: {
116
+ rolldownOptions: {
117
+ plugins: [
118
+ esmExternalRequirePlugin({
119
+ external: [...external],
120
+ skipDuplicateCheck: true,
121
+ }),
122
+ ],
123
+ },
124
+ },
125
+ }
126
+ : {}),
127
+ };
128
+ },
129
+ async configureServer(server) {
130
+ await Promise.all(Object.values(server.environments).flatMap(async (environment) => {
131
+ const depsOptimizer = environment.depsOptimizer;
132
+ if (!depsOptimizer)
133
+ return;
134
+ await depsOptimizer.init();
135
+ return Array.from(entries).map((entry) => {
136
+ const resolved = resolve(entry);
137
+ if (!resolved)
138
+ return;
139
+ const registration = depsOptimizer.registerMissingImport(entry, resolved);
140
+ return registration?.processing;
141
+ });
142
+ }));
143
+ },
66
144
  resolveId: {
67
- filter: { id: NODE_BUILTIN_MODULES_REGEXP },
145
+ filter: RESOLVE_ID_FILTER,
68
146
  handler(source, importer, options) {
69
- const aliased = alias[source];
70
- if (!aliased) {
147
+ const resolved = resolve(source);
148
+ if (!resolved)
71
149
  return;
150
+ if (this.environment.mode === "dev" && this.environment.depsOptimizer) {
151
+ // We are in dev mode (rather than build).
152
+ // So let's pre-bundle this polyfill entry-point using the dependency optimizer.
153
+ const { id } = this.environment.depsOptimizer.registerMissingImport(source, resolved);
154
+ // We use the unresolved path to the polyfill and let the dependency optimizer's
155
+ // resolver find the resolved path to the bundled version.
156
+ return this.resolve(id, importer, options);
72
157
  }
73
- if (external.includes(aliased)) {
74
- return {
75
- id: aliased,
76
- external: true,
77
- };
78
- }
79
- return this.resolve(aliased, importer, options);
158
+ return this.resolve(resolved, importer, options);
80
159
  },
81
160
  },
82
- transform(code, id) {
83
- const info = this.getModuleInfo(id);
84
- if (!info?.isEntry) {
85
- return;
86
- }
87
- return [
88
- ...polyfill.map((module) => `import "${module}";`),
89
- ...Array.from(injectVirtualModules.keys()).map((module) => `import "${module}";`),
90
- code,
91
- ].join("\n");
92
- },
93
- },
94
- ];
95
- }
96
- function makeNodeJsAlsPlugin() {
97
- return {
98
- name: "rolldown-plugin-cloudflare:nodejs-als",
99
- resolveId: {
100
- filter: { id: /^(node:)?async_hooks$/ },
101
- handler(id) {
102
- return { id, external: true };
103
- },
104
161
  },
105
162
  };
106
- }
107
- function makeNodeJsImportWarningPlugin() {
163
+ });
164
+ export const nodejsImportWarningPlugin = createPlugin("nodejs-import-warning", (options) => {
165
+ if (hasNodejsCompat(options.compatibilityFlags))
166
+ return;
108
167
  const imports = new Map();
109
168
  let root = process.cwd();
110
169
  return {
111
- name: "rolldown-plugin-cloudflare:nodejs-import-warnings",
112
- options(options) {
113
- if (options.cwd) {
114
- root = options.cwd;
115
- }
116
- },
117
- resolveId: {
118
- filter: { id: NODE_BUILTIN_MODULES_REGEXP },
119
- async handler(id, importer) {
120
- if (importer) {
121
- if (!imports.has(id)) {
122
- imports.set(id, new Set());
123
- }
124
- imports.get(id)?.add(importer);
170
+ rolldown: {
171
+ options(options) {
172
+ if (options.cwd) {
173
+ root = options.cwd;
125
174
  }
126
- return { id, external: true };
127
175
  },
128
176
  },
129
- buildStart() {
130
- imports.clear();
177
+ vite: {
178
+ enforce: "pre",
179
+ configResolved(config) {
180
+ root = config.root;
181
+ },
131
182
  },
132
- buildEnd() {
133
- if (imports.size > 0) {
134
- let message = `Unexpected Node.js imports. ` +
135
- `Do you need to enable the "nodejs_compat" compatibility flag? ` +
136
- "Refer to https://developers.cloudflare.com/workers/runtime-apis/nodejs/ for more details.\n";
183
+ shared: {
184
+ buildStart() {
185
+ imports.clear();
186
+ },
187
+ resolveId: {
188
+ filter: { id: NODE_BUILTIN_MODULES_REGEXP },
189
+ async handler(id, importer) {
190
+ if (hasNodejsAls(options.compatibilityFlags) && ASYNC_HOOKS_REGEXP.test(id))
191
+ return;
192
+ if (importer) {
193
+ if (!imports.has(id)) {
194
+ imports.set(id, new Set());
195
+ }
196
+ imports.get(id)?.add(importer);
197
+ }
198
+ return { id, external: true };
199
+ },
200
+ },
201
+ buildEnd() {
202
+ const filteredImports = [];
137
203
  for (const [id, importers] of imports.entries()) {
138
204
  for (const importer of importers) {
139
- message += ` - "${id}" imported from "${path.relative(root, importer)}"\n`;
205
+ if (this.getModuleInfo(importer)) {
206
+ filteredImports.push({ id, importer });
207
+ }
140
208
  }
141
209
  }
142
- this.warn(message);
143
- }
210
+ if (filteredImports.length > 0) {
211
+ const message = [
212
+ "Unexpected Node.js imports. ",
213
+ 'Do you need to enable the "nodejs_compat" compatibility flag? ',
214
+ "Refer to https://developers.cloudflare.com/workers/runtime-apis/nodejs/ for more details.\n",
215
+ ...filteredImports.map(({ id, importer }) => ` - "${id}" imported from "${path.relative(root, importer)}"\n`),
216
+ ].join("");
217
+ this.warn(message);
218
+ }
219
+ },
144
220
  },
145
221
  };
146
- }
147
- function makeInjectVirtualModules(inject) {
148
- const virtualModules = new Map();
149
- for (const [injectedName, moduleSpecifier] of Object.entries(inject)) {
150
- // The type from unenv is string | string[], but the Cloudflare preset only uses string.
151
- // This indicates a default export that we set on globalThis.
152
- assert(typeof moduleSpecifier === "string", `expected moduleSpecifier to be a string`);
153
- virtualModules.set(injectVirtualModuleId(injectedName), `import virtualModule from "${moduleSpecifier}"; globalThis.${injectedName} = virtualModule;`);
154
- }
155
- return virtualModules;
156
- }
157
- function injectVirtualModuleId(module) {
158
- return `virtual:nodejs-global-inject/${module}`;
159
- }
222
+ });
160
223
  //# sourceMappingURL=nodejs-compat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodejs-compat.js","sourceRoot":"","sources":["../../src/plugins/nodejs-compat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodejs-compat.js","sourceRoot":"","sources":["../../src/plugins/nodejs-compat.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,2 @@
1
- import type { CloudflarePluginOptions } from "../plugin.js";
2
- export declare function makeOptionsPlugin(pluginOptions: CloudflarePluginOptions): {
3
- name: string;
4
- options(this: import("rolldown").MinimalPluginContext, options: import("rolldown").InputOptions): import("rolldown").InputOptions;
5
- };
1
+ export declare const optionsPlugin: import("../factory.js").PluginOutput<any>;
6
2
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/plugins/options.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAkB5D,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,uBAAuB;;;EA+BvE"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/plugins/options.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,aAAa,2CAoGvB,CAAC"}
@@ -1,5 +1,9 @@
1
+ import path from "node:path";
2
+ import { createPlugin } from "../factory.js";
1
3
  import { hasNodejsCompat } from "../utils.js";
2
- const DEFAULT_RESOLVE_CONDITION_NAMES = ["workerd", "worker", "module", "browser", "production"];
4
+ import { WORKER_ENTRY_PREFIX } from "./virtual-modules.js";
5
+ const DEFAULT_CONDITIONS = ["workerd", "worker", "module", "browser"];
6
+ const DEFAULT_RESOLVE_MAIN_FIELDS = ["browser", "module", "jsnext:main", "jsnext"];
3
7
  const DEFAULT_RESOLVE_EXTENSIONS = [
4
8
  ".mjs",
5
9
  ".js",
@@ -12,36 +16,137 @@ const DEFAULT_RESOLVE_EXTENSIONS = [
12
16
  ".cts",
13
17
  ".ctx",
14
18
  ];
15
- export function makeOptionsPlugin(pluginOptions) {
16
- return {
17
- name: "rolldown-plugin-cloudflare:options",
19
+ const TARGET = "es2024";
20
+ export const optionsPlugin = createPlugin("options", (pluginOptions) => ({
21
+ rolldown: {
18
22
  options(options) {
23
+ options.input = wrapEntryInput(options.input ?? {});
24
+ options.preserveEntrySignatures ??= "strict";
19
25
  options.platform ??= "neutral";
20
26
  options.resolve ??= {};
21
- options.resolve.conditionNames ??= DEFAULT_RESOLVE_CONDITION_NAMES;
27
+ options.resolve.conditionNames ??= [...DEFAULT_CONDITIONS, "production"];
28
+ options.resolve.mainFields ??= DEFAULT_RESOLVE_MAIN_FIELDS;
22
29
  options.resolve.extensions ??= DEFAULT_RESOLVE_EXTENSIONS;
23
30
  options.transform ??= {};
24
- options.transform.target ??= "es2024";
31
+ options.transform.target ??= TARGET;
25
32
  options.transform.define ??= {};
26
- Object.assign(options.transform.define, {
27
- "process.env.NODE_ENV": '"production"',
28
- "global.process.env.NODE_ENV": '"production"',
29
- "globalThis.process.env.NODE_ENV": '"production"',
30
- ...(hasNodejsCompat(pluginOptions.compatibilityFlags)
31
- ? {}
32
- : {
33
- "process.env": "{}",
34
- "global.process.env": "{}",
35
- "globalThis.process.env": "{}",
36
- }),
37
- ...(pluginOptions.compatibilityDate && pluginOptions.compatibilityDate >= "2022-03-21"
38
- ? {
39
- "navigator.userAgent": '"Cloudflare-Workers"',
40
- }
41
- : {}),
42
- });
33
+ Object.assign(options.transform.define, getDefine(pluginOptions, "production"));
43
34
  return options;
44
35
  },
36
+ },
37
+ vite: {
38
+ config(userConfig) {
39
+ const isRolldown = "rolldownVersion" in this.meta;
40
+ const rollupOptions = {
41
+ input: wrapEntryInput(userConfig.environments?.ssr?.build?.rollupOptions?.input ?? {}),
42
+ preserveEntrySignatures: "strict",
43
+ };
44
+ const define = getDefine(pluginOptions, process.env.NODE_ENV || userConfig.mode || "production");
45
+ return {
46
+ ssr: {
47
+ noExternal: true,
48
+ resolve: {
49
+ conditions: [...DEFAULT_CONDITIONS, "development|production"],
50
+ },
51
+ },
52
+ environments: {
53
+ client: {
54
+ build: {
55
+ outDir: getOutputDirectory(userConfig, "client"),
56
+ },
57
+ },
58
+ ssr: {
59
+ resolve: {
60
+ noExternal: true,
61
+ conditions: [...DEFAULT_CONDITIONS, "development|production"],
62
+ },
63
+ build: {
64
+ ssr: true,
65
+ target: TARGET,
66
+ emitAssets: true,
67
+ copyPublicDir: false,
68
+ outDir: getOutputDirectory(userConfig, "ssr"),
69
+ ...(isRolldown
70
+ ? {
71
+ rolldownOptions: {
72
+ ...rollupOptions,
73
+ platform: "neutral",
74
+ resolve: {
75
+ mainFields: DEFAULT_RESOLVE_MAIN_FIELDS,
76
+ extensions: DEFAULT_RESOLVE_EXTENSIONS,
77
+ },
78
+ },
79
+ }
80
+ : { rollupOptions }),
81
+ },
82
+ optimizeDeps: {
83
+ noDiscovery: false,
84
+ ignoreOutdatedRequests: true,
85
+ ...(isRolldown
86
+ ? {
87
+ rolldownOptions: {
88
+ platform: "neutral",
89
+ resolve: {
90
+ conditionNames: [...DEFAULT_CONDITIONS, "development|production"],
91
+ mainFields: DEFAULT_RESOLVE_MAIN_FIELDS,
92
+ extensions: DEFAULT_RESOLVE_EXTENSIONS,
93
+ },
94
+ transform: {
95
+ target: TARGET,
96
+ define,
97
+ },
98
+ },
99
+ }
100
+ : {
101
+ esbuildOptions: {
102
+ platform: "neutral",
103
+ conditions: [...DEFAULT_CONDITIONS, "development|production"],
104
+ resolveExtensions: DEFAULT_RESOLVE_EXTENSIONS,
105
+ mainFields: DEFAULT_RESOLVE_MAIN_FIELDS,
106
+ target: TARGET,
107
+ define,
108
+ },
109
+ }),
110
+ },
111
+ keepProcessEnv: true,
112
+ },
113
+ },
114
+ };
115
+ },
116
+ },
117
+ }));
118
+ function wrapEntryInput(input) {
119
+ const virtualEntryId = (id) => `${WORKER_ENTRY_PREFIX}${id}`;
120
+ if (typeof input === "string") {
121
+ return virtualEntryId(input);
122
+ }
123
+ if (Array.isArray(input)) {
124
+ return input.map(virtualEntryId);
125
+ }
126
+ return Object.fromEntries(Object.entries(input).map(([key, value]) => [virtualEntryId(key), value]));
127
+ }
128
+ function getDefine(options, nodeEnv) {
129
+ return {
130
+ "process.env.NODE_ENV": JSON.stringify(nodeEnv),
131
+ "global.process.env.NODE_ENV": JSON.stringify(nodeEnv),
132
+ "globalThis.process.env.NODE_ENV": JSON.stringify(nodeEnv),
133
+ ...(hasNodejsCompat(options.compatibilityFlags)
134
+ ? {}
135
+ : {
136
+ "process.env": "{}",
137
+ "global.process.env": "{}",
138
+ "globalThis.process.env": "{}",
139
+ }),
140
+ ...(options.compatibilityDate && options.compatibilityDate >= "2022-03-21"
141
+ ? {
142
+ "navigator.userAgent": '"Cloudflare-Workers"',
143
+ }
144
+ : {}),
45
145
  };
46
146
  }
147
+ function getOutputDirectory(userConfig, environmentName) {
148
+ const rootOutputDirectory = userConfig.build?.outDir ?? "dist";
149
+ return (userConfig.environments?.[environmentName]?.build?.outDir ??
150
+ path.join(rootOutputDirectory, environmentName));
151
+ }
47
152
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/plugins/options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,+BAA+B,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AAEjG,MAAM,0BAA0B,GAAG;IACjC,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,aAAsC;IACtE,OAAO;QACL,IAAI,EAAE,oCAAoC;QAC1C,OAAO,CAAC,OAAO;YACb,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC;YAC/B,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,OAAO,CAAC,cAAc,KAAK,+BAA+B,CAAC;YACnE,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,0BAA0B,CAAC;YAC1D,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC;YACtC,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;gBACtC,sBAAsB,EAAE,cAAc;gBACtC,6BAA6B,EAAE,cAAc;gBAC7C,iCAAiC,EAAE,cAAc;gBACjD,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,kBAAkB,CAAC;oBACnD,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE,aAAa,EAAE,IAAI;wBACnB,oBAAoB,EAAE,IAAI;wBAC1B,wBAAwB,EAAE,IAAI;qBAC/B,CAAC;gBACN,GAAG,CAAC,aAAa,CAAC,iBAAiB,IAAI,aAAa,CAAC,iBAAiB,IAAI,YAAY;oBACpF,CAAC,CAAC;wBACE,qBAAqB,EAAE,sBAAsB;qBAC9C;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC;KACe,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/plugins/options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const WORKER_ENTRY_PREFIX: "\0distilled:worker-entry:";
2
+ export declare const virtualModulesPlugin: import("../factory.js").PluginOutput<any>;
3
+ //# sourceMappingURL=virtual-modules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-modules.d.ts","sourceRoot":"","sources":["../../src/plugins/virtual-modules.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,EAAG,2BAAoC,CAAC;AAMxE,eAAO,MAAM,oBAAoB,2CAyH/B,CAAC"}