emsdk-env 0.9.0 → 0.11.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 (41) hide show
  1. package/dist/build-BbwVl0T6.js +1379 -0
  2. package/dist/build-BbwVl0T6.js.map +1 -0
  3. package/dist/build-TpHGBYTu.cjs +1388 -0
  4. package/dist/build-TpHGBYTu.cjs.map +1 -0
  5. package/dist/build.d.ts +22 -0
  6. package/dist/build.d.ts.map +1 -0
  7. package/dist/commands.d.ts +14 -0
  8. package/dist/commands.d.ts.map +1 -0
  9. package/dist/emsdk.d.ts +22 -0
  10. package/dist/emsdk.d.ts.map +1 -0
  11. package/dist/env.d.ts +16 -0
  12. package/dist/env.d.ts.map +1 -0
  13. package/dist/fs-utils.d.ts +13 -0
  14. package/dist/fs-utils.d.ts.map +1 -0
  15. package/dist/generated/packageMetadata.d.ts +18 -0
  16. package/dist/generated/packageMetadata.d.ts.map +1 -0
  17. package/dist/index.cjs +11 -14
  18. package/dist/index.d.ts +17 -338
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.mjs +10 -15
  21. package/dist/logger.d.ts +13 -0
  22. package/dist/logger.d.ts.map +1 -0
  23. package/dist/{vite.d.ts → types.d.ts} +299 -268
  24. package/dist/types.d.ts.map +1 -0
  25. package/dist/vite/index.d.ts +24 -0
  26. package/dist/vite/index.d.ts.map +1 -0
  27. package/dist/vite/logger.d.ts +14 -0
  28. package/dist/vite/logger.d.ts.map +1 -0
  29. package/dist/vite/types.d.ts +17 -0
  30. package/dist/vite/types.d.ts.map +1 -0
  31. package/dist/vite.cjs +735 -712
  32. package/dist/vite.cjs.map +1 -1
  33. package/dist/vite.mjs +729 -712
  34. package/dist/vite.mjs.map +1 -1
  35. package/package.json +22 -21
  36. package/dist/build-BOZTStIM.js +0 -1660
  37. package/dist/build-BOZTStIM.js.map +0 -1
  38. package/dist/build-CgmcFNSR.cjs +0 -1681
  39. package/dist/build-CgmcFNSR.cjs.map +0 -1
  40. package/dist/index.cjs.map +0 -1
  41. package/dist/index.mjs.map +0 -1
package/dist/vite.mjs CHANGED
@@ -1,724 +1,741 @@
1
1
  /*!
2
- * name: emsdk-env
3
- * version: 0.9.0
4
- * description: Emscripten environment builder
5
- * author: Kouji Matsui (@kekyo@mi.kekyo.net)
6
- * license: MIT
7
- * repository.url: https://github.com/kekyo/emsdk-env
8
- * git.commit.hash: 73d7e217903f020ef22daa9289362dcd19bddac1
9
- */
10
-
11
- import { isAbsolute, resolve, relative } from "path";
12
- import { c as createConsoleLogger, b as buildWasm } from "./build-BOZTStIM.js";
13
- function getDefaultExportFromCjs(x) {
14
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
15
- }
16
- var browser = { exports: {} };
17
- var ms;
18
- var hasRequiredMs;
19
- function requireMs() {
20
- if (hasRequiredMs) return ms;
21
- hasRequiredMs = 1;
22
- var s = 1e3;
23
- var m = s * 60;
24
- var h = m * 60;
25
- var d = h * 24;
26
- var w = d * 7;
27
- var y = d * 365.25;
28
- ms = function(val, options) {
29
- options = options || {};
30
- var type = typeof val;
31
- if (type === "string" && val.length > 0) {
32
- return parse(val);
33
- } else if (type === "number" && isFinite(val)) {
34
- return options.long ? fmtLong(val) : fmtShort(val);
35
- }
36
- throw new Error(
37
- "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
38
- );
39
- };
40
- function parse(str) {
41
- str = String(str);
42
- if (str.length > 100) {
43
- return;
44
- }
45
- var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
46
- str
47
- );
48
- if (!match) {
49
- return;
50
- }
51
- var n = parseFloat(match[1]);
52
- var type = (match[2] || "ms").toLowerCase();
53
- switch (type) {
54
- case "years":
55
- case "year":
56
- case "yrs":
57
- case "yr":
58
- case "y":
59
- return n * y;
60
- case "weeks":
61
- case "week":
62
- case "w":
63
- return n * w;
64
- case "days":
65
- case "day":
66
- case "d":
67
- return n * d;
68
- case "hours":
69
- case "hour":
70
- case "hrs":
71
- case "hr":
72
- case "h":
73
- return n * h;
74
- case "minutes":
75
- case "minute":
76
- case "mins":
77
- case "min":
78
- case "m":
79
- return n * m;
80
- case "seconds":
81
- case "second":
82
- case "secs":
83
- case "sec":
84
- case "s":
85
- return n * s;
86
- case "milliseconds":
87
- case "millisecond":
88
- case "msecs":
89
- case "msec":
90
- case "ms":
91
- return n;
92
- default:
93
- return void 0;
94
- }
95
- }
96
- function fmtShort(ms2) {
97
- var msAbs = Math.abs(ms2);
98
- if (msAbs >= d) {
99
- return Math.round(ms2 / d) + "d";
100
- }
101
- if (msAbs >= h) {
102
- return Math.round(ms2 / h) + "h";
103
- }
104
- if (msAbs >= m) {
105
- return Math.round(ms2 / m) + "m";
106
- }
107
- if (msAbs >= s) {
108
- return Math.round(ms2 / s) + "s";
109
- }
110
- return ms2 + "ms";
111
- }
112
- function fmtLong(ms2) {
113
- var msAbs = Math.abs(ms2);
114
- if (msAbs >= d) {
115
- return plural(ms2, msAbs, d, "day");
116
- }
117
- if (msAbs >= h) {
118
- return plural(ms2, msAbs, h, "hour");
119
- }
120
- if (msAbs >= m) {
121
- return plural(ms2, msAbs, m, "minute");
122
- }
123
- if (msAbs >= s) {
124
- return plural(ms2, msAbs, s, "second");
125
- }
126
- return ms2 + " ms";
127
- }
128
- function plural(ms2, msAbs, n, name) {
129
- var isPlural = msAbs >= n * 1.5;
130
- return Math.round(ms2 / n) + " " + name + (isPlural ? "s" : "");
131
- }
132
- return ms;
133
- }
134
- var common;
135
- var hasRequiredCommon;
136
- function requireCommon() {
137
- if (hasRequiredCommon) return common;
138
- hasRequiredCommon = 1;
139
- function setup(env) {
140
- createDebug2.debug = createDebug2;
141
- createDebug2.default = createDebug2;
142
- createDebug2.coerce = coerce;
143
- createDebug2.disable = disable;
144
- createDebug2.enable = enable;
145
- createDebug2.enabled = enabled;
146
- createDebug2.humanize = requireMs();
147
- createDebug2.destroy = destroy;
148
- Object.keys(env).forEach((key) => {
149
- createDebug2[key] = env[key];
150
- });
151
- createDebug2.names = [];
152
- createDebug2.skips = [];
153
- createDebug2.formatters = {};
154
- function selectColor(namespace) {
155
- let hash = 0;
156
- for (let i = 0; i < namespace.length; i++) {
157
- hash = (hash << 5) - hash + namespace.charCodeAt(i);
158
- hash |= 0;
159
- }
160
- return createDebug2.colors[Math.abs(hash) % createDebug2.colors.length];
161
- }
162
- createDebug2.selectColor = selectColor;
163
- function createDebug2(namespace) {
164
- let prevTime;
165
- let enableOverride = null;
166
- let namespacesCache;
167
- let enabledCache;
168
- function debug(...args) {
169
- if (!debug.enabled) {
170
- return;
171
- }
172
- const self = debug;
173
- const curr = Number(/* @__PURE__ */ new Date());
174
- const ms2 = curr - (prevTime || curr);
175
- self.diff = ms2;
176
- self.prev = prevTime;
177
- self.curr = curr;
178
- prevTime = curr;
179
- args[0] = createDebug2.coerce(args[0]);
180
- if (typeof args[0] !== "string") {
181
- args.unshift("%O");
182
- }
183
- let index = 0;
184
- args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
185
- if (match === "%%") {
186
- return "%";
187
- }
188
- index++;
189
- const formatter = createDebug2.formatters[format];
190
- if (typeof formatter === "function") {
191
- const val = args[index];
192
- match = formatter.call(self, val);
193
- args.splice(index, 1);
194
- index--;
195
- }
196
- return match;
197
- });
198
- createDebug2.formatArgs.call(self, args);
199
- const logFn = self.log || createDebug2.log;
200
- logFn.apply(self, args);
201
- }
202
- debug.namespace = namespace;
203
- debug.useColors = createDebug2.useColors();
204
- debug.color = createDebug2.selectColor(namespace);
205
- debug.extend = extend;
206
- debug.destroy = createDebug2.destroy;
207
- Object.defineProperty(debug, "enabled", {
208
- enumerable: true,
209
- configurable: false,
210
- get: () => {
211
- if (enableOverride !== null) {
212
- return enableOverride;
213
- }
214
- if (namespacesCache !== createDebug2.namespaces) {
215
- namespacesCache = createDebug2.namespaces;
216
- enabledCache = createDebug2.enabled(namespace);
217
- }
218
- return enabledCache;
219
- },
220
- set: (v) => {
221
- enableOverride = v;
222
- }
223
- });
224
- if (typeof createDebug2.init === "function") {
225
- createDebug2.init(debug);
226
- }
227
- return debug;
228
- }
229
- function extend(namespace, delimiter) {
230
- const newDebug = createDebug2(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
231
- newDebug.log = this.log;
232
- return newDebug;
233
- }
234
- function enable(namespaces) {
235
- createDebug2.save(namespaces);
236
- createDebug2.namespaces = namespaces;
237
- createDebug2.names = [];
238
- createDebug2.skips = [];
239
- const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
240
- for (const ns of split) {
241
- if (ns[0] === "-") {
242
- createDebug2.skips.push(ns.slice(1));
243
- } else {
244
- createDebug2.names.push(ns);
245
- }
246
- }
247
- }
248
- function matchesTemplate(search, template) {
249
- let searchIndex = 0;
250
- let templateIndex = 0;
251
- let starIndex = -1;
252
- let matchIndex = 0;
253
- while (searchIndex < search.length) {
254
- if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) {
255
- if (template[templateIndex] === "*") {
256
- starIndex = templateIndex;
257
- matchIndex = searchIndex;
258
- templateIndex++;
259
- } else {
260
- searchIndex++;
261
- templateIndex++;
262
- }
263
- } else if (starIndex !== -1) {
264
- templateIndex = starIndex + 1;
265
- matchIndex++;
266
- searchIndex = matchIndex;
267
- } else {
268
- return false;
269
- }
270
- }
271
- while (templateIndex < template.length && template[templateIndex] === "*") {
272
- templateIndex++;
273
- }
274
- return templateIndex === template.length;
275
- }
276
- function disable() {
277
- const namespaces = [
278
- ...createDebug2.names,
279
- ...createDebug2.skips.map((namespace) => "-" + namespace)
280
- ].join(",");
281
- createDebug2.enable("");
282
- return namespaces;
283
- }
284
- function enabled(name) {
285
- for (const skip of createDebug2.skips) {
286
- if (matchesTemplate(name, skip)) {
287
- return false;
288
- }
289
- }
290
- for (const ns of createDebug2.names) {
291
- if (matchesTemplate(name, ns)) {
292
- return true;
293
- }
294
- }
295
- return false;
296
- }
297
- function coerce(val) {
298
- if (val instanceof Error) {
299
- return val.stack || val.message;
300
- }
301
- return val;
302
- }
303
- function destroy() {
304
- console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
305
- }
306
- createDebug2.enable(createDebug2.load());
307
- return createDebug2;
308
- }
309
- common = setup;
310
- return common;
311
- }
312
- var hasRequiredBrowser;
313
- function requireBrowser() {
314
- if (hasRequiredBrowser) return browser.exports;
315
- hasRequiredBrowser = 1;
316
- (function(module, exports$1) {
317
- exports$1.formatArgs = formatArgs;
318
- exports$1.save = save;
319
- exports$1.load = load;
320
- exports$1.useColors = useColors;
321
- exports$1.storage = localstorage();
322
- exports$1.destroy = /* @__PURE__ */ (() => {
323
- let warned = false;
324
- return () => {
325
- if (!warned) {
326
- warned = true;
327
- console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
328
- }
329
- };
330
- })();
331
- exports$1.colors = [
332
- "#0000CC",
333
- "#0000FF",
334
- "#0033CC",
335
- "#0033FF",
336
- "#0066CC",
337
- "#0066FF",
338
- "#0099CC",
339
- "#0099FF",
340
- "#00CC00",
341
- "#00CC33",
342
- "#00CC66",
343
- "#00CC99",
344
- "#00CCCC",
345
- "#00CCFF",
346
- "#3300CC",
347
- "#3300FF",
348
- "#3333CC",
349
- "#3333FF",
350
- "#3366CC",
351
- "#3366FF",
352
- "#3399CC",
353
- "#3399FF",
354
- "#33CC00",
355
- "#33CC33",
356
- "#33CC66",
357
- "#33CC99",
358
- "#33CCCC",
359
- "#33CCFF",
360
- "#6600CC",
361
- "#6600FF",
362
- "#6633CC",
363
- "#6633FF",
364
- "#66CC00",
365
- "#66CC33",
366
- "#9900CC",
367
- "#9900FF",
368
- "#9933CC",
369
- "#9933FF",
370
- "#99CC00",
371
- "#99CC33",
372
- "#CC0000",
373
- "#CC0033",
374
- "#CC0066",
375
- "#CC0099",
376
- "#CC00CC",
377
- "#CC00FF",
378
- "#CC3300",
379
- "#CC3333",
380
- "#CC3366",
381
- "#CC3399",
382
- "#CC33CC",
383
- "#CC33FF",
384
- "#CC6600",
385
- "#CC6633",
386
- "#CC9900",
387
- "#CC9933",
388
- "#CCCC00",
389
- "#CCCC33",
390
- "#FF0000",
391
- "#FF0033",
392
- "#FF0066",
393
- "#FF0099",
394
- "#FF00CC",
395
- "#FF00FF",
396
- "#FF3300",
397
- "#FF3333",
398
- "#FF3366",
399
- "#FF3399",
400
- "#FF33CC",
401
- "#FF33FF",
402
- "#FF6600",
403
- "#FF6633",
404
- "#FF9900",
405
- "#FF9933",
406
- "#FFCC00",
407
- "#FFCC33"
408
- ];
409
- function useColors() {
410
- if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
411
- return true;
412
- }
413
- if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
414
- return false;
415
- }
416
- let m;
417
- return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
418
- typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
419
- // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
420
- typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
421
- typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
422
- }
423
- function formatArgs(args) {
424
- args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff);
425
- if (!this.useColors) {
426
- return;
427
- }
428
- const c = "color: " + this.color;
429
- args.splice(1, 0, c, "color: inherit");
430
- let index = 0;
431
- let lastC = 0;
432
- args[0].replace(/%[a-zA-Z%]/g, (match) => {
433
- if (match === "%%") {
434
- return;
435
- }
436
- index++;
437
- if (match === "%c") {
438
- lastC = index;
439
- }
440
- });
441
- args.splice(lastC, 0, c);
442
- }
443
- exports$1.log = console.debug || console.log || (() => {
444
- });
445
- function save(namespaces) {
446
- try {
447
- if (namespaces) {
448
- exports$1.storage.setItem("debug", namespaces);
449
- } else {
450
- exports$1.storage.removeItem("debug");
451
- }
452
- } catch (error) {
453
- }
454
- }
455
- function load() {
456
- let r;
457
- try {
458
- r = exports$1.storage.getItem("debug") || exports$1.storage.getItem("DEBUG");
459
- } catch (error) {
460
- }
461
- if (!r && typeof process !== "undefined" && "env" in process) {
462
- r = process.env.DEBUG;
463
- }
464
- return r;
465
- }
466
- function localstorage() {
467
- try {
468
- return localStorage;
469
- } catch (error) {
470
- }
471
- }
472
- module.exports = requireCommon()(exports$1);
473
- const { formatters } = module.exports;
474
- formatters.j = function(v) {
475
- try {
476
- return JSON.stringify(v);
477
- } catch (error) {
478
- return "[UnexpectedJSONParseError]: " + error.message;
479
- }
480
- };
481
- })(browser, browser.exports);
482
- return browser.exports;
483
- }
484
- var browserExports = requireBrowser();
485
- const __screwUpDefaultImportModule0 = /* @__PURE__ */ getDefaultExportFromCjs(browserExports);
486
- const createDebug = __resolveDefaultExport(__screwUpDefaultImportModule0);
2
+ * name: emsdk-env
3
+ * version: 0.11.0
4
+ * description: Emscripten environment builder
5
+ * author: Kouji Matsui (@kekyo@mi.kekyo.net)
6
+ * license: MIT
7
+ * repository.url: https://github.com/kekyo/emsdk-env
8
+ * git.commit.hash: 0cf3fec6df406458fa2cf19fe561648e1ad4e369
9
+ */
10
+ import { n as createConsoleLogger, t as buildWasm } from "./build-BbwVl0T6.js";
11
+ import { isAbsolute, relative, resolve } from "path";
12
+ //#region \0rolldown/runtime.js
13
+ var __create = Object.create;
14
+ var __defProp = Object.defineProperty;
15
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
16
+ var __getOwnPropNames = Object.getOwnPropertyNames;
17
+ var __getProtoOf = Object.getPrototypeOf;
18
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
19
+ var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
20
+ var __copyProps = (to, from, except, desc) => {
21
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
22
+ key = keys[i];
23
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
24
+ get: ((k) => from[k]).bind(null, key),
25
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
26
+ });
27
+ }
28
+ return to;
29
+ };
30
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
31
+ value: mod,
32
+ enumerable: true
33
+ }) : target, mod));
34
+ //#endregion
35
+ //#region node_modules/ms/index.js
36
+ var require_ms = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37
+ /**
38
+ * Helpers.
39
+ */
40
+ var s = 1e3;
41
+ var m = s * 60;
42
+ var h = m * 60;
43
+ var d = h * 24;
44
+ var w = d * 7;
45
+ var y = d * 365.25;
46
+ /**
47
+ * Parse or format the given `val`.
48
+ *
49
+ * Options:
50
+ *
51
+ * - `long` verbose formatting [false]
52
+ *
53
+ * @param {String|Number} val
54
+ * @param {Object} [options]
55
+ * @throws {Error} throw an error if val is not a non-empty string or a number
56
+ * @return {String|Number}
57
+ * @api public
58
+ */
59
+ module.exports = function(val, options) {
60
+ options = options || {};
61
+ var type = typeof val;
62
+ if (type === "string" && val.length > 0) return parse(val);
63
+ else if (type === "number" && isFinite(val)) return options.long ? fmtLong(val) : fmtShort(val);
64
+ throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val));
65
+ };
66
+ /**
67
+ * Parse the given `str` and return milliseconds.
68
+ *
69
+ * @param {String} str
70
+ * @return {Number}
71
+ * @api private
72
+ */
73
+ function parse(str) {
74
+ str = String(str);
75
+ if (str.length > 100) return;
76
+ var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);
77
+ if (!match) return;
78
+ var n = parseFloat(match[1]);
79
+ switch ((match[2] || "ms").toLowerCase()) {
80
+ case "years":
81
+ case "year":
82
+ case "yrs":
83
+ case "yr":
84
+ case "y": return n * y;
85
+ case "weeks":
86
+ case "week":
87
+ case "w": return n * w;
88
+ case "days":
89
+ case "day":
90
+ case "d": return n * d;
91
+ case "hours":
92
+ case "hour":
93
+ case "hrs":
94
+ case "hr":
95
+ case "h": return n * h;
96
+ case "minutes":
97
+ case "minute":
98
+ case "mins":
99
+ case "min":
100
+ case "m": return n * m;
101
+ case "seconds":
102
+ case "second":
103
+ case "secs":
104
+ case "sec":
105
+ case "s": return n * s;
106
+ case "milliseconds":
107
+ case "millisecond":
108
+ case "msecs":
109
+ case "msec":
110
+ case "ms": return n;
111
+ default: return;
112
+ }
113
+ }
114
+ /**
115
+ * Short format for `ms`.
116
+ *
117
+ * @param {Number} ms
118
+ * @return {String}
119
+ * @api private
120
+ */
121
+ function fmtShort(ms) {
122
+ var msAbs = Math.abs(ms);
123
+ if (msAbs >= d) return Math.round(ms / d) + "d";
124
+ if (msAbs >= h) return Math.round(ms / h) + "h";
125
+ if (msAbs >= m) return Math.round(ms / m) + "m";
126
+ if (msAbs >= s) return Math.round(ms / s) + "s";
127
+ return ms + "ms";
128
+ }
129
+ /**
130
+ * Long format for `ms`.
131
+ *
132
+ * @param {Number} ms
133
+ * @return {String}
134
+ * @api private
135
+ */
136
+ function fmtLong(ms) {
137
+ var msAbs = Math.abs(ms);
138
+ if (msAbs >= d) return plural(ms, msAbs, d, "day");
139
+ if (msAbs >= h) return plural(ms, msAbs, h, "hour");
140
+ if (msAbs >= m) return plural(ms, msAbs, m, "minute");
141
+ if (msAbs >= s) return plural(ms, msAbs, s, "second");
142
+ return ms + " ms";
143
+ }
144
+ /**
145
+ * Pluralization helper.
146
+ */
147
+ function plural(ms, msAbs, n, name) {
148
+ var isPlural = msAbs >= n * 1.5;
149
+ return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
150
+ }
151
+ }));
152
+ //#endregion
153
+ //#region node_modules/debug/src/common.js
154
+ var require_common = /* @__PURE__ */ __commonJSMin(((exports, module) => {
155
+ /**
156
+ * This is the common logic for both the Node.js and web browser
157
+ * implementations of `debug()`.
158
+ */
159
+ function setup(env) {
160
+ createDebug.debug = createDebug;
161
+ createDebug.default = createDebug;
162
+ createDebug.coerce = coerce;
163
+ createDebug.disable = disable;
164
+ createDebug.enable = enable;
165
+ createDebug.enabled = enabled;
166
+ createDebug.humanize = require_ms();
167
+ createDebug.destroy = destroy;
168
+ Object.keys(env).forEach((key) => {
169
+ createDebug[key] = env[key];
170
+ });
171
+ /**
172
+ * The currently active debug mode names, and names to skip.
173
+ */
174
+ createDebug.names = [];
175
+ createDebug.skips = [];
176
+ /**
177
+ * Map of special "%n" handling functions, for the debug "format" argument.
178
+ *
179
+ * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
180
+ */
181
+ createDebug.formatters = {};
182
+ /**
183
+ * Selects a color for a debug namespace
184
+ * @param {String} namespace The namespace string for the debug instance to be colored
185
+ * @return {Number|String} An ANSI color code for the given namespace
186
+ * @api private
187
+ */
188
+ function selectColor(namespace) {
189
+ let hash = 0;
190
+ for (let i = 0; i < namespace.length; i++) {
191
+ hash = (hash << 5) - hash + namespace.charCodeAt(i);
192
+ hash |= 0;
193
+ }
194
+ return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
195
+ }
196
+ createDebug.selectColor = selectColor;
197
+ /**
198
+ * Create a debugger with the given `namespace`.
199
+ *
200
+ * @param {String} namespace
201
+ * @return {Function}
202
+ * @api public
203
+ */
204
+ function createDebug(namespace) {
205
+ let prevTime;
206
+ let enableOverride = null;
207
+ let namespacesCache;
208
+ let enabledCache;
209
+ function debug(...args) {
210
+ if (!debug.enabled) return;
211
+ const self = debug;
212
+ const curr = Number(/* @__PURE__ */ new Date());
213
+ self.diff = curr - (prevTime || curr);
214
+ self.prev = prevTime;
215
+ self.curr = curr;
216
+ prevTime = curr;
217
+ args[0] = createDebug.coerce(args[0]);
218
+ if (typeof args[0] !== "string") args.unshift("%O");
219
+ let index = 0;
220
+ args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
221
+ if (match === "%%") return "%";
222
+ index++;
223
+ const formatter = createDebug.formatters[format];
224
+ if (typeof formatter === "function") {
225
+ const val = args[index];
226
+ match = formatter.call(self, val);
227
+ args.splice(index, 1);
228
+ index--;
229
+ }
230
+ return match;
231
+ });
232
+ createDebug.formatArgs.call(self, args);
233
+ (self.log || createDebug.log).apply(self, args);
234
+ }
235
+ debug.namespace = namespace;
236
+ debug.useColors = createDebug.useColors();
237
+ debug.color = createDebug.selectColor(namespace);
238
+ debug.extend = extend;
239
+ debug.destroy = createDebug.destroy;
240
+ Object.defineProperty(debug, "enabled", {
241
+ enumerable: true,
242
+ configurable: false,
243
+ get: () => {
244
+ if (enableOverride !== null) return enableOverride;
245
+ if (namespacesCache !== createDebug.namespaces) {
246
+ namespacesCache = createDebug.namespaces;
247
+ enabledCache = createDebug.enabled(namespace);
248
+ }
249
+ return enabledCache;
250
+ },
251
+ set: (v) => {
252
+ enableOverride = v;
253
+ }
254
+ });
255
+ if (typeof createDebug.init === "function") createDebug.init(debug);
256
+ return debug;
257
+ }
258
+ function extend(namespace, delimiter) {
259
+ const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
260
+ newDebug.log = this.log;
261
+ return newDebug;
262
+ }
263
+ /**
264
+ * Enables a debug mode by namespaces. This can include modes
265
+ * separated by a colon and wildcards.
266
+ *
267
+ * @param {String} namespaces
268
+ * @api public
269
+ */
270
+ function enable(namespaces) {
271
+ createDebug.save(namespaces);
272
+ createDebug.namespaces = namespaces;
273
+ createDebug.names = [];
274
+ createDebug.skips = [];
275
+ const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
276
+ for (const ns of split) if (ns[0] === "-") createDebug.skips.push(ns.slice(1));
277
+ else createDebug.names.push(ns);
278
+ }
279
+ /**
280
+ * Checks if the given string matches a namespace template, honoring
281
+ * asterisks as wildcards.
282
+ *
283
+ * @param {String} search
284
+ * @param {String} template
285
+ * @return {Boolean}
286
+ */
287
+ function matchesTemplate(search, template) {
288
+ let searchIndex = 0;
289
+ let templateIndex = 0;
290
+ let starIndex = -1;
291
+ let matchIndex = 0;
292
+ while (searchIndex < search.length) if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) if (template[templateIndex] === "*") {
293
+ starIndex = templateIndex;
294
+ matchIndex = searchIndex;
295
+ templateIndex++;
296
+ } else {
297
+ searchIndex++;
298
+ templateIndex++;
299
+ }
300
+ else if (starIndex !== -1) {
301
+ templateIndex = starIndex + 1;
302
+ matchIndex++;
303
+ searchIndex = matchIndex;
304
+ } else return false;
305
+ while (templateIndex < template.length && template[templateIndex] === "*") templateIndex++;
306
+ return templateIndex === template.length;
307
+ }
308
+ /**
309
+ * Disable debug output.
310
+ *
311
+ * @return {String} namespaces
312
+ * @api public
313
+ */
314
+ function disable() {
315
+ const namespaces = [...createDebug.names, ...createDebug.skips.map((namespace) => "-" + namespace)].join(",");
316
+ createDebug.enable("");
317
+ return namespaces;
318
+ }
319
+ /**
320
+ * Returns true if the given mode name is enabled, false otherwise.
321
+ *
322
+ * @param {String} name
323
+ * @return {Boolean}
324
+ * @api public
325
+ */
326
+ function enabled(name) {
327
+ for (const skip of createDebug.skips) if (matchesTemplate(name, skip)) return false;
328
+ for (const ns of createDebug.names) if (matchesTemplate(name, ns)) return true;
329
+ return false;
330
+ }
331
+ /**
332
+ * Coerce `val`.
333
+ *
334
+ * @param {Mixed} val
335
+ * @return {Mixed}
336
+ * @api private
337
+ */
338
+ function coerce(val) {
339
+ if (val instanceof Error) return val.stack || val.message;
340
+ return val;
341
+ }
342
+ /**
343
+ * XXX DO NOT USE. This is a temporary stub function.
344
+ * XXX It WILL be removed in the next major release.
345
+ */
346
+ function destroy() {
347
+ console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
348
+ }
349
+ createDebug.enable(createDebug.load());
350
+ return createDebug;
351
+ }
352
+ module.exports = setup;
353
+ }));
354
+ var createDebug = __resolveDefaultExport((/* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
355
+ /**
356
+ * This is the web browser implementation of `debug()`.
357
+ */
358
+ exports.formatArgs = formatArgs;
359
+ exports.save = save;
360
+ exports.load = load;
361
+ exports.useColors = useColors;
362
+ exports.storage = localstorage();
363
+ exports.destroy = (() => {
364
+ let warned = false;
365
+ return () => {
366
+ if (!warned) {
367
+ warned = true;
368
+ console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
369
+ }
370
+ };
371
+ })();
372
+ /**
373
+ * Colors.
374
+ */
375
+ exports.colors = [
376
+ "#0000CC",
377
+ "#0000FF",
378
+ "#0033CC",
379
+ "#0033FF",
380
+ "#0066CC",
381
+ "#0066FF",
382
+ "#0099CC",
383
+ "#0099FF",
384
+ "#00CC00",
385
+ "#00CC33",
386
+ "#00CC66",
387
+ "#00CC99",
388
+ "#00CCCC",
389
+ "#00CCFF",
390
+ "#3300CC",
391
+ "#3300FF",
392
+ "#3333CC",
393
+ "#3333FF",
394
+ "#3366CC",
395
+ "#3366FF",
396
+ "#3399CC",
397
+ "#3399FF",
398
+ "#33CC00",
399
+ "#33CC33",
400
+ "#33CC66",
401
+ "#33CC99",
402
+ "#33CCCC",
403
+ "#33CCFF",
404
+ "#6600CC",
405
+ "#6600FF",
406
+ "#6633CC",
407
+ "#6633FF",
408
+ "#66CC00",
409
+ "#66CC33",
410
+ "#9900CC",
411
+ "#9900FF",
412
+ "#9933CC",
413
+ "#9933FF",
414
+ "#99CC00",
415
+ "#99CC33",
416
+ "#CC0000",
417
+ "#CC0033",
418
+ "#CC0066",
419
+ "#CC0099",
420
+ "#CC00CC",
421
+ "#CC00FF",
422
+ "#CC3300",
423
+ "#CC3333",
424
+ "#CC3366",
425
+ "#CC3399",
426
+ "#CC33CC",
427
+ "#CC33FF",
428
+ "#CC6600",
429
+ "#CC6633",
430
+ "#CC9900",
431
+ "#CC9933",
432
+ "#CCCC00",
433
+ "#CCCC33",
434
+ "#FF0000",
435
+ "#FF0033",
436
+ "#FF0066",
437
+ "#FF0099",
438
+ "#FF00CC",
439
+ "#FF00FF",
440
+ "#FF3300",
441
+ "#FF3333",
442
+ "#FF3366",
443
+ "#FF3399",
444
+ "#FF33CC",
445
+ "#FF33FF",
446
+ "#FF6600",
447
+ "#FF6633",
448
+ "#FF9900",
449
+ "#FF9933",
450
+ "#FFCC00",
451
+ "#FFCC33"
452
+ ];
453
+ /**
454
+ * Currently only WebKit-based Web Inspectors, Firefox >= v31,
455
+ * and the Firebug extension (any Firefox version) are known
456
+ * to support "%c" CSS customizations.
457
+ *
458
+ * TODO: add a `localStorage` variable to explicitly enable/disable colors
459
+ */
460
+ function useColors() {
461
+ if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) return true;
462
+ if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) return false;
463
+ let m;
464
+ return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
465
+ }
466
+ /**
467
+ * Colorize log arguments if enabled.
468
+ *
469
+ * @api public
470
+ */
471
+ function formatArgs(args) {
472
+ args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff);
473
+ if (!this.useColors) return;
474
+ const c = "color: " + this.color;
475
+ args.splice(1, 0, c, "color: inherit");
476
+ let index = 0;
477
+ let lastC = 0;
478
+ args[0].replace(/%[a-zA-Z%]/g, (match) => {
479
+ if (match === "%%") return;
480
+ index++;
481
+ if (match === "%c") lastC = index;
482
+ });
483
+ args.splice(lastC, 0, c);
484
+ }
485
+ /**
486
+ * Invokes `console.debug()` when available.
487
+ * No-op when `console.debug` is not a "function".
488
+ * If `console.debug` is not available, falls back
489
+ * to `console.log`.
490
+ *
491
+ * @api public
492
+ */
493
+ exports.log = console.debug || console.log || (() => {});
494
+ /**
495
+ * Save `namespaces`.
496
+ *
497
+ * @param {String} namespaces
498
+ * @api private
499
+ */
500
+ function save(namespaces) {
501
+ try {
502
+ if (namespaces) exports.storage.setItem("debug", namespaces);
503
+ else exports.storage.removeItem("debug");
504
+ } catch (error) {}
505
+ }
506
+ /**
507
+ * Load `namespaces`.
508
+ *
509
+ * @return {String} returns the previously persisted debug modes
510
+ * @api private
511
+ */
512
+ function load() {
513
+ let r;
514
+ try {
515
+ r = exports.storage.getItem("debug") || exports.storage.getItem("DEBUG");
516
+ } catch (error) {}
517
+ if (!r && typeof process !== "undefined" && "env" in process) r = process.env.DEBUG;
518
+ return r;
519
+ }
520
+ /**
521
+ * Localstorage attempts to return the localstorage.
522
+ *
523
+ * This is necessary because safari throws
524
+ * when a user disables cookies/localstorage
525
+ * and you attempt to access it.
526
+ *
527
+ * @return {LocalStorage}
528
+ * @api private
529
+ */
530
+ function localstorage() {
531
+ try {
532
+ return localStorage;
533
+ } catch (error) {}
534
+ }
535
+ module.exports = require_common()(exports);
536
+ var { formatters } = module.exports;
537
+ /**
538
+ * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
539
+ */
540
+ formatters.j = function(v) {
541
+ try {
542
+ return JSON.stringify(v);
543
+ } catch (error) {
544
+ return "[UnexpectedJSONParseError]: " + error.message;
545
+ }
546
+ };
547
+ })))(), 1)).default, false);
487
548
  globalThis.__screwUpIsInCJS_93c24de65540 = false;
488
549
  function __resolveDefaultExport(module, isESM) {
489
- const __isInCJS = typeof globalThis !== "undefined" && globalThis.__screwUpIsInCJS_93c24de65540 === true;
490
- const maybe = module;
491
- const hasDefault = !!(maybe && typeof maybe === "object" && "default" in maybe);
492
- const unwrapNamespaceDefault = (value) => {
493
- if (!value || typeof value !== "object") {
494
- return value;
495
- }
496
- const inner = value;
497
- const isModule = inner.__esModule === true || typeof Symbol !== "undefined" && inner[Symbol.toStringTag] === "Module";
498
- if (isModule && "default" in inner) {
499
- return inner.default;
500
- }
501
- return value;
502
- };
503
- const resolvedDefault = hasDefault ? unwrapNamespaceDefault(maybe.default) : void 0;
504
- if (__isInCJS) {
505
- return hasDefault ? resolvedDefault != null ? resolvedDefault : module : module;
506
- }
507
- return hasDefault ? resolvedDefault != null ? resolvedDefault : module : module;
550
+ const __isInCJS = typeof globalThis !== "undefined" && globalThis.__screwUpIsInCJS_93c24de65540 === true;
551
+ const maybe = module;
552
+ const hasDefault = !!(maybe && typeof maybe === "object" && "default" in maybe);
553
+ const unwrapNamespaceDefault = (value) => {
554
+ if (!value || typeof value !== "object") return value;
555
+ const inner = value;
556
+ if ((inner.__esModule === true || typeof Symbol !== "undefined" && inner[Symbol.toStringTag] === "Module") && "default" in inner) return inner.default;
557
+ return value;
558
+ };
559
+ const resolvedDefault = hasDefault ? unwrapNamespaceDefault(maybe.default) : void 0;
560
+ if (__isInCJS) return hasDefault ? resolvedDefault !== null && resolvedDefault !== void 0 ? resolvedDefault : module : module;
561
+ if (isESM) {
562
+ if (hasDefault) return resolvedDefault;
563
+ throw new Error("Default export not found.");
564
+ }
565
+ return hasDefault ? resolvedDefault !== null && resolvedDefault !== void 0 ? resolvedDefault : module : module;
508
566
  }
509
- const createViteLoggerAdapter = (viteLogger, logLevel, prefix) => {
510
- const debug = createDebug("vite:plugin:emsdk-vite");
511
- return {
512
- debug: (msg) => {
513
- debug(msg);
514
- },
515
- info: logLevel !== "silent" ? (msg) => viteLogger.info(`[${prefix}]: ${msg}`) : () => {
516
- },
517
- warn: logLevel === "warn" || logLevel === "info" || logLevel === "error" ? (msg) => viteLogger.warn(`[${prefix}]: ${msg}`) : () => {
518
- },
519
- error: logLevel !== "silent" ? (msg) => viteLogger.error(`[${prefix}]: ${msg}`) : () => {
520
- }
521
- };
567
+ var createViteLoggerAdapter = (viteLogger, logLevel, prefix) => {
568
+ const debug = createDebug("vite:plugin:emsdk-vite");
569
+ return {
570
+ debug: (msg) => {
571
+ debug(msg);
572
+ },
573
+ info: logLevel !== "silent" ? (msg) => viteLogger.info(`[${prefix}]: ${msg}`) : () => {},
574
+ warn: logLevel === "warn" || logLevel === "info" || logLevel === "error" ? (msg) => viteLogger.warn(`[${prefix}]: ${msg}`) : () => {},
575
+ error: logLevel !== "silent" ? (msg) => viteLogger.error(`[${prefix}]: ${msg}`) : () => {}
576
+ };
522
577
  };
523
- const version = "0.9.0";
524
- const git_commit_hash = "73d7e217903f020ef22daa9289362dcd19bddac1";
525
- const DEFAULT_WASM_SRC_DIR = "wasm";
526
- const DEFAULT_WASM_INCLUDE_DIR = "include";
527
- const buildRuns = /* @__PURE__ */ new Map();
528
- const resolvePath = (rootDir, value) => isAbsolute(value) ? value : resolve(rootDir, value);
529
- const expandPlaceholders = (value, env, label) => value.replace(/\{([A-Z0-9_]+)\}/g, (_match, key) => {
530
- const replacement = env[key];
531
- if (replacement === void 0) {
532
- throw new Error(`Unknown placeholder {${key}} in ${label}.`);
533
- }
534
- return replacement;
578
+ //#endregion
579
+ //#region src/generated/packageMetadata.ts
580
+ var version = "0.11.0";
581
+ var git_commit_hash = "0cf3fec6df406458fa2cf19fe561648e1ad4e369";
582
+ //#endregion
583
+ //#region src/vite/index.ts
584
+ var DEFAULT_WASM_SRC_DIR = "wasm";
585
+ var DEFAULT_WASM_INCLUDE_DIR = "include";
586
+ var buildRuns = /* @__PURE__ */ new Map();
587
+ var resolvePath = (rootDir, value) => isAbsolute(value) ? value : resolve(rootDir, value);
588
+ var expandPlaceholders = (value, env, label) => value.replace(/\{([A-Z0-9_]+)\}/g, (_match, key) => {
589
+ const replacement = env[key];
590
+ if (replacement === void 0) throw new Error(`Unknown placeholder {${key}} in ${label}.`);
591
+ return replacement;
535
592
  });
536
- const expandArray = (values, env, label) => values.map((value) => expandPlaceholders(value, env, label));
537
- const resolveIncludeDirs = (includeDirs, env, rootDir) => {
538
- const expanded = expandArray(includeDirs, env, "includeDirs");
539
- return expanded.map((value) => resolvePath(rootDir, value));
593
+ var expandArray = (values, env, label) => values.map((value) => expandPlaceholders(value, env, label));
594
+ var resolveIncludeDirs = (includeDirs, env, rootDir) => {
595
+ return expandArray(includeDirs, env, "includeDirs").map((value) => resolvePath(rootDir, value));
540
596
  };
541
- const createBuildOptions = (options, resolvedConfig, logger) => {
542
- const {
543
- emsdk,
544
- srcDir,
545
- includeDir,
546
- imports,
547
- outDir,
548
- libDir,
549
- generatedLoader,
550
- buildDir,
551
- cleanupBuildDir,
552
- parallel,
553
- ...rule
554
- } = options;
555
- return {
556
- rule,
557
- root: resolvedConfig.root,
558
- logger,
559
- ...emsdk !== void 0 ? { emsdk } : {},
560
- ...srcDir !== void 0 ? { srcDir } : {},
561
- ...includeDir !== void 0 ? { includeDir } : {},
562
- ...imports !== void 0 ? { imports } : {},
563
- ...outDir !== void 0 ? { outDir } : {},
564
- ...libDir !== void 0 ? { libDir } : {},
565
- ...generatedLoader !== void 0 ? { generatedLoader } : {},
566
- ...buildDir !== void 0 ? { buildDir } : {},
567
- ...cleanupBuildDir !== void 0 ? { cleanupBuildDir } : {},
568
- ...parallel !== void 0 ? { parallel } : {}
569
- };
597
+ var createBuildOptions = (options, resolvedConfig, logger) => {
598
+ const { emsdk, srcDir, includeDir, imports, outDir, libDir, generatedLoader, buildDir, cleanupBuildDir, parallel, ...rule } = options;
599
+ return {
600
+ rule,
601
+ root: resolvedConfig.root,
602
+ logger,
603
+ ...emsdk !== void 0 ? { emsdk } : {},
604
+ ...srcDir !== void 0 ? { srcDir } : {},
605
+ ...includeDir !== void 0 ? { includeDir } : {},
606
+ ...imports !== void 0 ? { imports } : {},
607
+ ...outDir !== void 0 ? { outDir } : {},
608
+ ...libDir !== void 0 ? { libDir } : {},
609
+ ...generatedLoader !== void 0 ? { generatedLoader } : {},
610
+ ...buildDir !== void 0 ? { buildDir } : {},
611
+ ...cleanupBuildDir !== void 0 ? { cleanupBuildDir } : {},
612
+ ...parallel !== void 0 ? { parallel } : {}
613
+ };
570
614
  };
571
- const isSubPath = (parentDir, targetPath) => {
572
- const rel = relative(parentDir, targetPath);
573
- if (rel === "") {
574
- return true;
575
- }
576
- return !rel.startsWith("..") && !isAbsolute(rel);
615
+ var isSubPath = (parentDir, targetPath) => {
616
+ const rel = relative(parentDir, targetPath);
617
+ if (rel === "") return true;
618
+ return !rel.startsWith("..") && !isAbsolute(rel);
577
619
  };
578
- const resolveWatchTargets = (options, resolvedConfig) => {
579
- var _a, _b, _c;
580
- const rootDir = resolvedConfig.root;
581
- const baseEnv = {
582
- ROOT: rootDir
583
- };
584
- const rawSrcDir = expandPlaceholders(
585
- (_a = options.srcDir) != null ? _a : DEFAULT_WASM_SRC_DIR,
586
- baseEnv,
587
- "srcDir"
588
- );
589
- const rawIncludeDir = expandPlaceholders(
590
- (_b = options.includeDir) != null ? _b : DEFAULT_WASM_INCLUDE_DIR,
591
- baseEnv,
592
- "includeDir"
593
- );
594
- const srcDir = resolvePath(rootDir, rawSrcDir);
595
- const includeDir = resolvePath(rootDir, rawIncludeDir);
596
- const envWithDirs = {
597
- ROOT: rootDir,
598
- SRC_DIR: srcDir,
599
- INCLUDE_DIR: includeDir
600
- };
601
- const patterns = /* @__PURE__ */ new Set();
602
- const baseDirs = /* @__PURE__ */ new Set();
603
- const resolvedIncludeDirs = [];
604
- patterns.add(srcDir);
605
- baseDirs.add(srcDir);
606
- const addIncludePatterns = (targetIncludeDirs, targetName) => {
607
- if (!targetIncludeDirs || targetIncludeDirs.length === 0) {
608
- return;
609
- }
610
- const env = targetName ? { ...envWithDirs, TARGET_NAME: targetName } : envWithDirs;
611
- const resolvedDirs = resolveIncludeDirs(targetIncludeDirs, env, rootDir);
612
- for (const dir of resolvedDirs) {
613
- patterns.add(dir);
614
- baseDirs.add(dir);
615
- resolvedIncludeDirs.push(dir);
616
- }
617
- };
618
- const commonIncludeDirs = ((_c = options.common) == null ? void 0 : _c.includeDirs) === void 0 ? [rawIncludeDir] : options.common.includeDirs;
619
- addIncludePatterns(commonIncludeDirs, void 0);
620
- for (const [targetName, target] of Object.entries(options.targets)) {
621
- addIncludePatterns(target.includeDirs, targetName);
622
- }
623
- return {
624
- srcDir,
625
- includeDirs: resolvedIncludeDirs,
626
- patterns: [...patterns],
627
- baseDirs: [...baseDirs]
628
- };
620
+ var resolveWatchTargets = (options, resolvedConfig) => {
621
+ var _options$srcDir, _options$includeDir, _options$common;
622
+ const rootDir = resolvedConfig.root;
623
+ const baseEnv = { ROOT: rootDir };
624
+ const rawSrcDir = expandPlaceholders((_options$srcDir = options.srcDir) !== null && _options$srcDir !== void 0 ? _options$srcDir : DEFAULT_WASM_SRC_DIR, baseEnv, "srcDir");
625
+ const rawIncludeDir = expandPlaceholders((_options$includeDir = options.includeDir) !== null && _options$includeDir !== void 0 ? _options$includeDir : DEFAULT_WASM_INCLUDE_DIR, baseEnv, "includeDir");
626
+ const srcDir = resolvePath(rootDir, rawSrcDir);
627
+ const envWithDirs = {
628
+ ROOT: rootDir,
629
+ SRC_DIR: srcDir,
630
+ INCLUDE_DIR: resolvePath(rootDir, rawIncludeDir)
631
+ };
632
+ const patterns = /* @__PURE__ */ new Set();
633
+ const baseDirs = /* @__PURE__ */ new Set();
634
+ const resolvedIncludeDirs = [];
635
+ patterns.add(srcDir);
636
+ baseDirs.add(srcDir);
637
+ const addIncludePatterns = (targetIncludeDirs, targetName) => {
638
+ if (!targetIncludeDirs || targetIncludeDirs.length === 0) return;
639
+ const resolvedDirs = resolveIncludeDirs(targetIncludeDirs, targetName ? {
640
+ ...envWithDirs,
641
+ TARGET_NAME: targetName
642
+ } : envWithDirs, rootDir);
643
+ for (const dir of resolvedDirs) {
644
+ patterns.add(dir);
645
+ baseDirs.add(dir);
646
+ resolvedIncludeDirs.push(dir);
647
+ }
648
+ };
649
+ addIncludePatterns(((_options$common = options.common) === null || _options$common === void 0 ? void 0 : _options$common.includeDirs) === void 0 ? [rawIncludeDir] : options.common.includeDirs, void 0);
650
+ for (const [targetName, target] of Object.entries(options.targets)) addIncludePatterns(target.includeDirs, targetName);
651
+ return {
652
+ srcDir,
653
+ includeDirs: resolvedIncludeDirs,
654
+ patterns: [...patterns],
655
+ baseDirs: [...baseDirs]
656
+ };
629
657
  };
630
- const setupDevServer = async (server, options, resolvedConfig, logger) => {
631
- const buildOptions = createBuildOptions(options, resolvedConfig, logger);
632
- const watchTargets = resolveWatchTargets(options, resolvedConfig);
633
- logger.debug(`watch root: ${resolvedConfig.root}`);
634
- logger.debug(`watch srcDir: ${watchTargets.srcDir}`);
635
- logger.debug(
636
- `watch includeDirs: ${watchTargets.includeDirs.length > 0 ? watchTargets.includeDirs.join(", ") : "(none)"}`
637
- );
638
- logger.debug(`watch patterns: ${watchTargets.patterns.join(", ")}`);
639
- logger.debug(`watch baseDirs: ${watchTargets.baseDirs.join(", ")}`);
640
- if (watchTargets.patterns.length > 0) {
641
- server.watcher.add(watchTargets.patterns);
642
- }
643
- let buildQueue = Promise.resolve();
644
- const queueBuild = async (shouldReload) => {
645
- buildQueue = buildQueue.then(async () => {
646
- try {
647
- await buildWasm(buildOptions);
648
- if (shouldReload) {
649
- server.ws.send({ type: "full-reload" });
650
- }
651
- } catch (error) {
652
- const message = error instanceof Error ? error.message : "Unknown wasm build error.";
653
- logger.error(`Wasm build failed: ${message}`);
654
- }
655
- });
656
- return buildQueue;
657
- };
658
- const onWatchEvent = async (eventPath) => {
659
- const resolvedPath = isAbsolute(eventPath) ? eventPath : resolve(resolvedConfig.root, eventPath);
660
- if (!watchTargets.baseDirs.some((dir) => isSubPath(dir, resolvedPath))) {
661
- return;
662
- }
663
- await queueBuild(true);
664
- };
665
- server.watcher.on("add", onWatchEvent);
666
- server.watcher.on("change", onWatchEvent);
667
- server.watcher.on("unlink", onWatchEvent);
668
- await queueBuild(false);
658
+ var setupDevServer = async (server, options, resolvedConfig, logger) => {
659
+ const buildOptions = createBuildOptions(options, resolvedConfig, logger);
660
+ const watchTargets = resolveWatchTargets(options, resolvedConfig);
661
+ logger.debug(`watch root: ${resolvedConfig.root}`);
662
+ logger.debug(`watch srcDir: ${watchTargets.srcDir}`);
663
+ logger.debug(`watch includeDirs: ${watchTargets.includeDirs.length > 0 ? watchTargets.includeDirs.join(", ") : "(none)"}`);
664
+ logger.debug(`watch patterns: ${watchTargets.patterns.join(", ")}`);
665
+ logger.debug(`watch baseDirs: ${watchTargets.baseDirs.join(", ")}`);
666
+ if (watchTargets.patterns.length > 0) server.watcher.add(watchTargets.patterns);
667
+ let buildQueue = Promise.resolve();
668
+ const queueBuild = async (shouldReload) => {
669
+ buildQueue = buildQueue.then(async () => {
670
+ try {
671
+ await buildWasm(buildOptions);
672
+ if (shouldReload) server.ws.send({ type: "full-reload" });
673
+ } catch (error) {
674
+ const message = error instanceof Error ? error.message : "Unknown wasm build error.";
675
+ logger.error(`Wasm build failed: ${message}`);
676
+ }
677
+ });
678
+ return buildQueue;
679
+ };
680
+ const onWatchEvent = async (eventPath) => {
681
+ const resolvedPath = isAbsolute(eventPath) ? eventPath : resolve(resolvedConfig.root, eventPath);
682
+ if (!watchTargets.baseDirs.some((dir) => isSubPath(dir, resolvedPath))) return;
683
+ await queueBuild(true);
684
+ };
685
+ server.watcher.on("add", onWatchEvent);
686
+ server.watcher.on("change", onWatchEvent);
687
+ server.watcher.on("unlink", onWatchEvent);
688
+ await queueBuild(false);
669
689
  };
670
- const emsdkEnv = (options) => {
671
- let resolvedConfig;
672
- let logger = createConsoleLogger("emsdk-env");
673
- return {
674
- name: "emsdkEnv",
675
- enforce: "pre",
676
- configResolved: (config) => {
677
- var _a;
678
- resolvedConfig = config;
679
- logger = createViteLoggerAdapter(
680
- resolvedConfig.logger,
681
- (_a = resolvedConfig.logLevel) != null ? _a : "info",
682
- "emsdk-env"
683
- );
684
- logger.info(`${version}-${git_commit_hash}: Started.`);
685
- },
686
- buildStart: async () => {
687
- if (!resolvedConfig) {
688
- throw new Error("Vite config was not resolved.");
689
- }
690
- if (resolvedConfig.command !== "build") {
691
- return;
692
- }
693
- const buildOptions = createBuildOptions(options, resolvedConfig, logger);
694
- const buildKey = resolvedConfig.root;
695
- const existing = buildRuns.get(buildKey);
696
- if (existing) {
697
- await existing;
698
- return;
699
- }
700
- const run = (async () => {
701
- try {
702
- await buildWasm(buildOptions);
703
- } finally {
704
- buildRuns.delete(buildKey);
705
- }
706
- })();
707
- buildRuns.set(buildKey, run);
708
- await run;
709
- },
710
- configureServer: async (server) => {
711
- if (!resolvedConfig) {
712
- throw new Error("Vite config was not resolved.");
713
- }
714
- if (resolvedConfig.command !== "serve") {
715
- return;
716
- }
717
- await setupDevServer(server, options, resolvedConfig, logger);
718
- }
719
- };
690
+ /**
691
+ * Vite plugin that builds C/C++ sources into WASM using the Emscripten SDK.
692
+ *
693
+ * In dev (`vite serve`), it watches source/include directories and rebuilds on
694
+ * changes. In build (`vite build`), it performs a one-shot build before bundling.
695
+ *
696
+ * @param options - Plugin options including build rules.
697
+ * @returns Vite plugin instance.
698
+ */
699
+ var emsdkEnv = (options) => {
700
+ let resolvedConfig;
701
+ let logger = createConsoleLogger("emsdk-env");
702
+ return {
703
+ name: "emsdkEnv",
704
+ enforce: "pre",
705
+ configResolved: (config) => {
706
+ var _resolvedConfig$logLe;
707
+ resolvedConfig = config;
708
+ logger = createViteLoggerAdapter(resolvedConfig.logger, (_resolvedConfig$logLe = resolvedConfig.logLevel) !== null && _resolvedConfig$logLe !== void 0 ? _resolvedConfig$logLe : "info", "emsdk-env");
709
+ logger.info(`${version}-${git_commit_hash}: Started.`);
710
+ },
711
+ buildStart: async () => {
712
+ if (!resolvedConfig) throw new Error("Vite config was not resolved.");
713
+ if (resolvedConfig.command !== "build") return;
714
+ const buildOptions = createBuildOptions(options, resolvedConfig, logger);
715
+ const buildKey = resolvedConfig.root;
716
+ const existing = buildRuns.get(buildKey);
717
+ if (existing) {
718
+ await existing;
719
+ return;
720
+ }
721
+ const run = (async () => {
722
+ try {
723
+ await buildWasm(buildOptions);
724
+ } finally {
725
+ buildRuns.delete(buildKey);
726
+ }
727
+ })();
728
+ buildRuns.set(buildKey, run);
729
+ await run;
730
+ },
731
+ configureServer: async (server) => {
732
+ if (!resolvedConfig) throw new Error("Vite config was not resolved.");
733
+ if (resolvedConfig.command !== "serve") return;
734
+ await setupDevServer(server, options, resolvedConfig, logger);
735
+ }
736
+ };
720
737
  };
721
- export {
722
- emsdkEnv as default
723
- };
724
- //# sourceMappingURL=vite.mjs.map
738
+ //#endregion
739
+ export { emsdkEnv as default };
740
+
741
+ //# sourceMappingURL=vite.mjs.map