env-runner 0.1.9 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +130 -16
- package/dist/THIRD-PARTY-LICENSES.md +19 -0
- package/dist/_chunks/base-runner.d.mts +80 -3
- package/dist/_chunks/base-runner.mjs +108 -44
- package/dist/_chunks/libs/cjs-module-lexer.mjs +1 -1
- package/dist/_chunks/libs/es-module-lexer.mjs +83 -0
- package/dist/_chunks/runner.d.mts +3 -3
- package/dist/_chunks/runner.mjs +6 -3
- package/dist/_chunks/runner2.d.mts +15 -3
- package/dist/_chunks/runner2.mjs +145 -56
- package/dist/_chunks/runner3.d.mts +3 -3
- package/dist/_chunks/runner3.mjs +3 -3
- package/dist/_chunks/runner4.d.mts +4 -4
- package/dist/_chunks/runner4.mjs +3 -2
- package/dist/_chunks/runner5.d.mts +4 -4
- package/dist/_chunks/runner5.mjs +3 -2
- package/dist/_chunks/server.mjs +60 -17
- package/dist/_chunks/types.d.mts +15 -3
- package/dist/_chunks/virtual-loader.mjs +63 -0
- package/dist/_chunks/worker-utils.mjs +123 -9
- package/dist/cli.mjs +1 -1
- package/dist/index.d.mts +52 -14
- package/dist/index.mjs +6 -6
- package/dist/runners/bun-process/runner.d.mts +2 -2
- package/dist/runners/bun-process/runner.mjs +12 -2
- package/dist/runners/bun-process/worker.mjs +23 -3
- package/dist/runners/deno-process/runner.d.mts +2 -2
- package/dist/runners/deno-process/runner.mjs +1 -1
- package/dist/runners/deno-process/worker.mjs +22 -3
- package/dist/runners/miniflare/runner.d.mts +2 -2
- package/dist/runners/miniflare/runner.mjs +1 -1
- package/dist/runners/netlify/runner.d.mts +2 -2
- package/dist/runners/netlify/runner.mjs +1 -1
- package/dist/runners/node-process/runner.d.mts +2 -2
- package/dist/runners/node-process/runner.mjs +4 -2
- package/dist/runners/node-process/worker.mjs +23 -3
- package/dist/runners/node-worker/runner.d.mts +2 -2
- package/dist/runners/node-worker/runner.mjs +1 -1
- package/dist/runners/node-worker/worker.mjs +22 -3
- package/dist/runners/self/runner.d.mts +3 -2
- package/dist/runners/self/runner.mjs +6 -3
- package/dist/runners/vercel/runner.d.mts +2 -2
- package/dist/runners/vercel/runner.mjs +1 -1
- package/dist/vite.d.mts +1 -1
- package/package.json +12 -11
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
var ImportType;
|
|
2
|
+
(function(A) {
|
|
3
|
+
A[A.Static = 1] = "Static", A[A.Dynamic = 2] = "Dynamic", A[A.ImportMeta = 3] = "ImportMeta", A[A.StaticSourcePhase = 4] = "StaticSourcePhase", A[A.DynamicSourcePhase = 5] = "DynamicSourcePhase", A[A.StaticDeferPhase = 6] = "StaticDeferPhase", A[A.DynamicDeferPhase = 7] = "DynamicDeferPhase";
|
|
4
|
+
})(ImportType || (ImportType = {}));
|
|
5
|
+
const A = 1 === new Uint8Array(new Uint16Array([1]).buffer)[0];
|
|
6
|
+
function parse(E, g = "@") {
|
|
7
|
+
if (!C) return init.then((() => parse(E)));
|
|
8
|
+
const I = E.length + 1, o = (C.__heap_base.value || C.__heap_base) + 4 * I - C.memory.buffer.byteLength;
|
|
9
|
+
o > 0 && C.memory.grow(Math.ceil(o / 65536));
|
|
10
|
+
const D = C.sa(I - 1);
|
|
11
|
+
if ((A ? B : Q)(E, new Uint16Array(C.memory.buffer, D, I)), !C.parse()) throw Object.assign(/* @__PURE__ */ new Error(`Parse error ${g}:${E.slice(0, C.e()).split("\n").length}:${C.e() - E.lastIndexOf("\n", C.e() - 1)}`), { idx: C.e() });
|
|
12
|
+
const K = [], k = [];
|
|
13
|
+
for (; C.ri();) {
|
|
14
|
+
const A = C.is(), Q = C.ie(), B = C.it(), g = C.ai(), I = C.id(), o = C.ss(), D = C.se();
|
|
15
|
+
let k;
|
|
16
|
+
C.ip() && (k = w(E.slice(-1 === I ? A - 1 : A, -1 === I ? Q + 1 : Q)));
|
|
17
|
+
const i = [];
|
|
18
|
+
for (C.rsa(); C.ra();) {
|
|
19
|
+
const A = C.aks(), Q = C.ake(), B = C.avs(), g = C.ave();
|
|
20
|
+
i.push([N(E.slice(A, Q)), N(E.slice(B, g))]);
|
|
21
|
+
}
|
|
22
|
+
K.push({
|
|
23
|
+
n: k,
|
|
24
|
+
t: B,
|
|
25
|
+
s: A,
|
|
26
|
+
e: Q,
|
|
27
|
+
ss: o,
|
|
28
|
+
se: D,
|
|
29
|
+
d: I,
|
|
30
|
+
a: g,
|
|
31
|
+
at: i.length > 0 ? i : null
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
for (; C.re();) {
|
|
35
|
+
const A = C.es(), Q = C.ee(), B = C.els(), g = C.ele(), I = N(E.slice(A, Q)), o = B < 0 ? void 0 : N(E.slice(B, g));
|
|
36
|
+
k.push({
|
|
37
|
+
s: A,
|
|
38
|
+
e: Q,
|
|
39
|
+
ls: B,
|
|
40
|
+
le: g,
|
|
41
|
+
n: I,
|
|
42
|
+
ln: o
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function w(A) {
|
|
46
|
+
try {
|
|
47
|
+
return (0, eval)(A);
|
|
48
|
+
} catch (A) {}
|
|
49
|
+
}
|
|
50
|
+
function N(A) {
|
|
51
|
+
if (!A) return A;
|
|
52
|
+
const Q = A[0];
|
|
53
|
+
return ("\"" === Q || "'" === Q) && w(A) || A;
|
|
54
|
+
}
|
|
55
|
+
return [
|
|
56
|
+
K,
|
|
57
|
+
k,
|
|
58
|
+
!!C.f(),
|
|
59
|
+
!!C.ms()
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
function Q(A, Q) {
|
|
63
|
+
const B = A.length;
|
|
64
|
+
let C = 0;
|
|
65
|
+
for (; C < B;) {
|
|
66
|
+
const B = A.charCodeAt(C);
|
|
67
|
+
Q[C++] = (255 & B) << 8 | B >>> 8;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function B(A, Q) {
|
|
71
|
+
const B = A.length;
|
|
72
|
+
let C = 0;
|
|
73
|
+
for (; C < B;) Q[C] = A.charCodeAt(C++);
|
|
74
|
+
}
|
|
75
|
+
let C;
|
|
76
|
+
const E = () => {
|
|
77
|
+
return A = "AGFzbQEAAAABKwhgAX8Bf2AEf39/fwBgAAF/YAAAYAF/AGADf39/AX9gAn9/AX9gA39/fwADODcAAQECAgICAgICAgICAgICAgICAgICAgICAwIAAwMDBAAEAAAABQAAAAAAAwMDAAAGAAcABgIFBAUBcAEBAQUDAQABBg8CfwFBsPIAC38AQbDyAAsHnQEbBm1lbW9yeQIAAnNhAAABZQADAmlzAAQCaWUABQJzcwAGAnNlAAcCaXQACAJhaQAJAmlkAAoCaXAACwJlcwAMAmVlAA0DZWxzAA4DZWxlAA8CcmkAEAJyZQARAWYAEgJtcwATAnJhABQDYWtzABUDYWtlABYDYXZzABcDYXZlABgDcnNhABkFcGFyc2UAGgtfX2hlYXBfYmFzZQMBCrxJN2gBAX9BACAANgL0CUEAKALQCSIBIABBAXRqIgBBADsBAEEAIABBAmoiADYC+AlBACAANgL8CUEAQQA2AtQJQQBBADYC5AlBAEEANgLcCUEAQQA2AtgJQQBBADYC7AlBAEEANgLgCSABC9MBAQN/QQAoAuQJIQRBAEEAKAL8CSIFNgLkCUEAIAQ2AugJQQAgBUEoajYC/AkgBEEkakHUCSAEGyAFNgIAQQAoAsgJIQRBACgCxAkhBiAFIAE2AgAgBSAANgIIIAUgAiACQQJqQQAgBiADRiIAGyAEIANGIgQbNgIMIAUgAzYCFCAFQQA2AhAgBSACNgIEIAVCADcCICAFQQNBAUECIAAbIAQbNgIcIAVBACgCxAkgA0YiAjoAGAJAAkAgAg0AQQAoAsgJIANHDQELQQBBAToAgAoLC14BAX9BACgC7AkiBEEQakHYCSAEG0EAKAL8CSIENgIAQQAgBDYC7AlBACAEQRRqNgL8CUEAQQE6AIAKIARBADYCECAEIAM2AgwgBCACNgIIIAQgATYCBCAEIAA2AgALCABBACgChAoLFQBBACgC3AkoAgBBACgC0AlrQQF1Cx4BAX9BACgC3AkoAgQiAEEAKALQCWtBAXVBfyAAGwsVAEEAKALcCSgCCEEAKALQCWtBAXULHgEBf0EAKALcCSgCDCIAQQAoAtAJa0EBdUF/IAAbCwsAQQAoAtwJKAIcCx4BAX9BACgC3AkoAhAiAEEAKALQCWtBAXVBfyAAGws7AQF/AkBBACgC3AkoAhQiAEEAKALECUcNAEF/DwsCQCAAQQAoAsgJRw0AQX4PCyAAQQAoAtAJa0EBdQsLAEEAKALcCS0AGAsVAEEAKALgCSgCAEEAKALQCWtBAXULFQBBACgC4AkoAgRBACgC0AlrQQF1Cx4BAX9BACgC4AkoAggiAEEAKALQCWtBAXVBfyAAGwseAQF/QQAoAuAJKAIMIgBBACgC0AlrQQF1QX8gABsLJQEBf0EAQQAoAtwJIgBBJGpB1AkgABsoAgAiADYC3AkgAEEARwslAQF/QQBBACgC4AkiAEEQakHYCSAAGygCACIANgLgCSAAQQBHCwgAQQAtAIgKCwgAQQAtAIAKCysBAX9BAEEAKAKMCiIAQRBqQQAoAtwJQSBqIAAbKAIAIgA2AowKIABBAEcLFQBBACgCjAooAgBBACgC0AlrQQF1CxUAQQAoAowKKAIEQQAoAtAJa0EBdQsVAEEAKAKMCigCCEEAKALQCWtBAXULFQBBACgCjAooAgxBACgC0AlrQQF1CwoAQQBBADYCjAoLuw8BBX8jAEGA0ABrIgAkAEEAQQE6AIgKQQBBACgCzAk2ApQKQQBBACgC0AlBfmoiATYCqApBACABQQAoAvQJQQF0aiICNgKsCkEAQQA6AIAKQQBBADsBkApBAEEAOwGSCkEAQQA6AJgKQQBBADYChApBAEEAOgDwCUEAIABBgBBqNgKcCkEAIAA2AqAKQQBBADoApAoCQAJAAkACQANAQQAgAUECaiIDNgKoCiABIAJPDQECQCADLwEAIgJBd2pBBUkNAAJAAkACQAJAAkAgAkGbf2oOBQEICAgCAAsgAkEgRg0EIAJBL0YNAyACQTtGDQIMBwtBAC8BkgoNASADEBtFDQEgAUEEakGCCEEKEDYNARAcQQAtAIgKDQFBAEEAKAKoCiIBNgKUCgwHCyADEBtFDQAgAUEEakGMCEEKEDYNABAdC0EAQQAoAqgKNgKUCgwBCwJAIAEvAQQiA0EqRg0AIANBL0cNBBAeDAELQQEQHwtBACgCrAohAkEAKAKoCiEBDAALC0EAIQIgAyEBQQAtAPAJDQIMAQtBACABNgKoCkEAQQA6AIgKCwNAQQAgAUECaiIDNgKoCgJAAkACQAJAAkACQAJAIAFBACgCrApPDQACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADLwEAIgJBYGoOEBMSCRISEhIIAQUSEgQSEgoACwJAAkACQAJAIAJBpX9qDg8FFQYVFQ4VFQMVARUVFQIACyACQXdqQQVJDRUgAkGFf2oOAwgUCRQLQQAvAZIKDRMgAxAbRQ0TIAFBBGpBgghBChA2DRMQHAwTCyADEBtFDRIgAUEEakGMCEEKEDYNEhAdDBILIAMQG0UNESABKQAEQuyAhIOwjsA5Ug0RIAEvAQwiA0F3aiIBQRdLDQ9BASABdEGfgIAEcUUNDwwQC0EAQQAvAZIKIgFBAWo7AZIKQQAoApwKIAFBA3RqIgFBATYCACABQQAoApQKNgIEDBALQQBBAC8BkgoiAUEBajsBkgpBACgCnAogAUEDdGoiAUEINgIAIAFBACgClAo2AgQMDwtBAC8BkgoiAUUNC0EAIAFBf2o7AZIKDA4LQQAvAZAKIgNFDQ1BAC8BkgoiAkUNDSACQQN0QQAoApwKakF4aigCAEEFRw0NIANBAnRBACgCoApqQXxqKAIAIgMoAgQNDUEAIAFBBGo2AqgKIANBACgClApBAmo2AgRBARAgGiADQQAoAqgKIgE2AhBBACABQX5qNgKoCgwNC0EALwGSCiIDRQ0JQQAgA0F/aiIDOwGSCkEALwGQCiICRQ0MQQAoApwKIANB//8DcUEDdGooAgBBBUcNDAJAIAJBAnRBACgCoApqQXxqKAIAIgMoAgQNACADQQAoApQKQQJqNgIEC0EAIAJBf2o7AZAKIAMgAUEEajYCDAwMCwJAQQAoApQKIgEvAQBBKUcNAEEAKALkCSIDRQ0AIAMoAgQgAUcNAEEAQQAoAugJIgM2AuQJAkAgA0UNACADQQA2AiQMAQtBAEEANgLUCQtBAEEALwGSCiIDQQFqOwGSCkEAKAKcCiADQQN0aiIDQQZBAkEALQCkChs2AgAgAyABNgIEQQBBADoApAoMCwtBAC8BkgoiAUUNB0EAIAFBf2oiATsBkgpBACgCnAogAUH//wNxQQN0aigCAEEERg0EDAoLQScQIQwJC0EiECEMCAsCQAJAIAEvAQQiAUEqRg0AIAFBL0cNARAeDAoLQQEQHwwJCwJAAkACQAJAQQAoApQKIgEvAQAiAxAiRQ0AAkACQCADQVVqDgQACQEDCQsgAUF+ai8BAEErRg0DDAgLIAFBfmovAQBBLUYNAgwHCyADQSlHDQFBACgCnApBAC8BkgoiAkEDdGooAgQQI0UNAgwGCyABQX5qLwEAQVBqQf//A3FBCk8NBQtBAC8BkgohAgsCQAJAIAJB//8DcSICRQ0AIANB5gBHDQBBACgCnAogAkF/akEDdGoiBCgCAEEBRw0AIAFBfmovAQBB7wBHDQEgAUF8ahAkRQ0BIAQoAgRBlghBAxAlRQ0BDAULIANB/QBHDQBBACgCnAogAkEDdGoiAigCBBAmDQQgAigCAEEGRg0ECyABECcNAyADRQ0DIANBL0ZBAC0AmApBAEdxDQMCQEEAKALsCSICRQ0AIAEgAigCAEkNACABIAIoAgRNDQQLIAFBfmohAUEAKALQCSECAkADQCABQQJqIgQgAk0NAUEAIAE2ApQKIAEvAQAhAyABQX5qIgQhASADEChFDQALIARBAmohBAsCQCADQf//A3EQKUUNACAEQX5qIQECQANAIAFBAmoiAyACTQ0BQQAgATYClAogAS8BACEDIAFBfmoiBCEBIAMQKQ0ACyAEQQJqIQMLIAMQKg0EC0EAQQE6AJgKDAcLQQAoApwKQQAvAZIKIgFBA3QiA2pBACgClAo2AgRBACABQQFqOwGSCkEAKAKcCiADakEDNgIACxArDAULQQAtAPAJQQAvAZAKQQAvAZIKcnJFIQIMBwsQLEEAQQA6AJgKDAMLEC1BACECDAULIANBoAFHDQELQQBBAToApAoLQQBBACgCqAo2ApQKC0EAKAKoCiEBDAALCyAAQYDQAGokACACCxoAAkBBACgC0AkgAEcNAEEBDwsgAEF+ahAuC/4KAQZ/QQBBACgCqAoiAEEMaiIBNgKoCkEAKALsCSECQQEQICEDAkACQAJAAkACQAJAAkACQAJAQQAoAqgKIgQgAUcNACADEC9FDQELAkACQAJAAkACQAJAAkAgA0EqRg0AIANB+wBHDQFBACAEQQJqNgKoCkEBECAhA0EAKAKoCiEEA0ACQAJAIANB//8DcSIDQSJGDQAgA0EnRg0AIAMQMxpBACgCqAohAwwBCyADECFBAEEAKAKoCkECaiIDNgKoCgtBARAgGgJAIAQgAxA0IgNBLEcNAEEAQQAoAqgKQQJqNgKoCkEBECAhAwsgA0H9AEYNA0EAKAKoCiIFIARGDQ8gBSEEIAVBACgCrApNDQAMDwsLQQAgBEECajYCqApBARAgGkEAKAKoCiIDIAMQNBoMAgtBAEEAOgCICgJAAkACQAJAAkACQCADQZ9/ag4MAgsEAQsDCwsLCwsFAAsgA0H2AEYNBAwKC0EAIARBDmoiAzYCqAoCQAJAAkBBARAgQZ9/ag4GABICEhIBEgtBACgCqAoiBSkAAkLzgOSD4I3AMVINESAFLwEKEClFDRFBACAFQQpqNgKoCkEAECAaC0EAKAKoCiIFQQJqQbIIQQ4QNg0QIAUvARAiAkF3aiIBQRdLDQ1BASABdEGfgIAEcUUNDQwOC0EAKAKoCiIFKQACQuyAhIOwjsA5Ug0PIAUvAQoiAkF3aiIBQRdNDQYMCgtBACAEQQpqNgKoCkEAECAaQQAoAqgKIQQLQQAgBEEQajYCqAoCQEEBECAiBEEqRw0AQQBBACgCqApBAmo2AqgKQQEQICEEC0EAKAKoCiEDIAQQMxogA0EAKAKoCiIEIAMgBBACQQBBACgCqApBfmo2AqgKDwsCQCAEKQACQuyAhIOwjsA5Ug0AIAQvAQoQKEUNAEEAIARBCmo2AqgKQQEQICEEQQAoAqgKIQMgBBAzGiADQQAoAqgKIgQgAyAEEAJBAEEAKAKoCkF+ajYCqAoPC0EAIARBBGoiBDYCqAoLQQAgBEEGajYCqApBAEEAOgCICkEBECAhBEEAKAKoCiEDIAQQMyEEQQAoAqgKIQIgBEHf/wNxIgFB2wBHDQNBACACQQJqNgKoCkEBECAhBUEAKAKoCiEDQQAhBAwEC0EAQQE6AIAKQQBBACgCqApBAmo2AqgKC0EBECAhBEEAKAKoCiEDAkAgBEHmAEcNACADQQJqQawIQQYQNg0AQQAgA0EIajYCqAogAEEBECBBABAyIAJBEGpB2AkgAhshAwNAIAMoAgAiA0UNBSADQgA3AgggA0EQaiEDDAALC0EAIANBfmo2AqgKDAMLQQEgAXRBn4CABHFFDQMMBAtBASEECwNAAkACQCAEDgIAAQELIAVB//8DcRAzGkEBIQQMAQsCQAJAQQAoAqgKIgQgA0YNACADIAQgAyAEEAJBARAgIQQCQCABQdsARw0AIARBIHJB/QBGDQQLQQAoAqgKIQMCQCAEQSxHDQBBACADQQJqNgKoCkEBECAhBUEAKAKoCiEDIAVBIHJB+wBHDQILQQAgA0F+ajYCqAoLIAFB2wBHDQJBACACQX5qNgKoCg8LQQAhBAwACwsPCyACQaABRg0AIAJB+wBHDQQLQQAgBUEKajYCqApBARAgIgVB+wBGDQMMAgsCQCACQVhqDgMBAwEACyACQaABRw0CC0EAIAVBEGo2AqgKAkBBARAgIgVBKkcNAEEAQQAoAqgKQQJqNgKoCkEBECAhBQsgBUEoRg0BC0EAKAKoCiEBIAUQMxpBACgCqAoiBSABTQ0AIAQgAyABIAUQAkEAQQAoAqgKQX5qNgKoCg8LIAQgA0EAQQAQAkEAIARBDGo2AqgKDwsQLQuFDAEKf0EAQQAoAqgKIgBBDGoiATYCqApBARAgIQJBACgCqAohAwJAAkACQAJAAkACQAJAAkAgAkEuRw0AQQAgA0ECajYCqAoCQEEBECAiAkHkAEYNAAJAIAJB8wBGDQAgAkHtAEcNB0EAKAKoCiICQQJqQZwIQQYQNg0HAkBBACgClAoiAxAxDQAgAy8BAEEuRg0ICyAAIAAgAkEIakEAKALICRABDwtBACgCqAoiAkECakGiCEEKEDYNBgJAQQAoApQKIgMQMQ0AIAMvAQBBLkYNBwtBACEEQQAgAkEMajYCqApBASEFQQUhBkEBECAhAkEAIQdBASEIDAILQQAoAqgKIgIpAAJC5YCYg9CMgDlSDQUCQEEAKAKUCiIDEDENACADLwEAQS5GDQYLQQAhBEEAIAJBCmo2AqgKQQIhCEEHIQZBASEHQQEQICECQQEhBQwBCwJAAkACQAJAIAJB8wBHDQAgAyABTQ0AIANBAmpBoghBChA2DQACQCADLwEMIgRBd2oiB0EXSw0AQQEgB3RBn4CABHENAgsgBEGgAUYNAQtBACEHQQchBkEBIQQgAkHkAEYNAQwCC0EAIQRBACADQQxqIgI2AqgKQQEhBUEBECAhCQJAQQAoAqgKIgYgAkYNAEHmACECAkAgCUHmAEYNAEEFIQZBACEHQQEhCCAJIQIMBAtBACEHQQEhCCAGQQJqQawIQQYQNg0EIAYvAQgQKEUNBAtBACEHQQAgAzYCqApBByEGQQEhBEEAIQVBACEIIAkhAgwCCyADIABBCmpNDQBBACEIQeQAIQICQCADKQACQuWAmIPQjIA5Ug0AAkACQCADLwEKIgRBd2oiB0EXSw0AQQEgB3RBn4CABHENAQtBACEIIARBoAFHDQELQQAhBUEAIANBCmo2AqgKQSohAkEBIQdBAiEIQQEQICIJQSpGDQRBACADNgKoCkEBIQRBACEHQQAhCCAJIQIMAgsgAyEGQQAhBwwCC0EAIQVBACEICwJAIAJBKEcNAEEAKAKcCkEALwGSCiICQQN0aiIDQQAoAqgKNgIEQQAgAkEBajsBkgogA0EFNgIAQQAoApQKLwEAQS5GDQRBAEEAKAKoCiIDQQJqNgKoCkEBECAhAiAAQQAoAqgKQQAgAxABAkACQCAFDQBBACgC5AkhAQwBC0EAKALkCSIBIAY2AhwLQQBBAC8BkAoiA0EBajsBkApBACgCoAogA0ECdGogATYCAAJAIAJBIkYNACACQSdGDQBBAEEAKAKoCkF+ajYCqAoPCyACECFBAEEAKAKoCkECaiICNgKoCgJAAkACQEEBECBBV2oOBAECAgACC0EAQQAoAqgKQQJqNgKoCkEBECAaQQAoAuQJIgMgAjYCBCADQQE6ABggA0EAKAKoCiICNgIQQQAgAkF+ajYCqAoPC0EAKALkCSIDIAI2AgQgA0EBOgAYQQBBAC8BkgpBf2o7AZIKIANBACgCqApBAmo2AgxBAEEALwGQCkF/ajsBkAoPC0EAQQAoAqgKQX5qNgKoCg8LAkAgBEEBcyACQfsAR3INAEEAKAKoCiECQQAvAZIKDQUDQAJAAkACQCACQQAoAqwKTw0AQQEQICICQSJGDQEgAkEnRg0BIAJB/QBHDQJBAEEAKAKoCkECajYCqAoLQQEQICEDQQAoAqgKIQICQCADQeYARw0AIAJBAmpBrAhBBhA2DQcLQQAgAkEIajYCqAoCQEEBECAiAkEiRg0AIAJBJ0cNBwsgACACQQAQMg8LIAIQIQtBAEEAKAKoCkECaiICNgKoCgwACwsCQAJAIAJBWWoOBAMBAQMACyACQSJGDQILQQAoAqgKIQYLIAYgAUcNAEEAIABBCmo2AqgKDwsgAkEqRyAHcQ0DQQAvAZIKQf//A3ENA0EAKAKoCiECQQAoAqwKIQEDQCACIAFPDQECQAJAIAIvAQAiA0EnRg0AIANBIkcNAQsgACADIAgQMg8LQQAgAkECaiICNgKoCgwACwsQLQsPC0EAIAJBfmo2AqgKDwtBAEEAKAKoCkF+ajYCqAoLRwEDf0EAKAKoCkECaiEAQQAoAqwKIQECQANAIAAiAkF+aiABTw0BIAJBAmohACACLwEAQXZqDgQBAAABAAsLQQAgAjYCqAoLmAEBA39BAEEAKAKoCiIBQQJqNgKoCiABQQZqIQFBACgCrAohAgNAAkACQAJAIAFBfGogAk8NACABQX5qLwEAIQMCQAJAIAANACADQSpGDQEgA0F2ag4EAgQEAgQLIANBKkcNAwsgAS8BAEEvRw0CQQAgAUF+ajYCqAoMAQsgAUF+aiEBC0EAIAE2AqgKDwsgAUECaiEBDAALC5wBAQN/QQAoAqgKIQECQANAAkACQCABLwEAIgJBL0cNAAJAIAEvAQIiAUEqRg0AIAFBL0cNBBAeDAILIAAQHwwBCwJAAkAgAEUNACACQXdqIgFBF0sNAUEBIAF0QZ+AgARxRQ0BDAILIAIQKUUNAwwBCyACQaABRw0CC0EAQQAoAqgKIgNBAmoiATYCqAogA0EAKAKsCkkNAAsLIAILiAEBBH9BACgCqAohAUEAKAKsCiECAkACQANAIAEiA0ECaiEBIAMgAk8NASABLwEAIgQgAEYNAgJAIARB3ABGDQAgBEF2ag4EAgEBAgELIANBBGohASADLwEEQQ1HDQAgA0EGaiABIAMvAQZBCkYbIQEMAAsLQQAgATYCqAoQLQ8LQQAgATYCqAoLbAEBfwJAAkAgAEFfaiIBQQVLDQBBASABdEExcQ0BCyAAQUZqQf//A3FBBkkNACAAQSlHIABBWGpB//8DcUEHSXENAAJAIABBpX9qDgQBAAABAAsgAEH9AEcgAEGFf2pB//8DcUEESXEPC0EBCy4BAX9BASEBAkAgAEGcCUEFECUNACAAQZYIQQMQJQ0AIABBpglBAhAlIQELIAELygEBAn8CQAJAIAAvAQAiAUF3akEFSQ0AIAFBIEYNACABQSlGDQAgAUHdAEYNACABQaABRg0AQQAhAiABQf0ARw0BC0EAKALQCSECAkACQANAIAAvAQAhASAAIAJNDQECQCABQXdqQQVJDQAgAUEgRg0AIAFBoAFGDQACQCABQSlGDQAgAUHdAEYNACABQf0ARw0EC0EBDwsgAEF+aiEADAALC0EBIQIgAUEpRg0BIAFB3QBGDQEgAUH9AEYNAQsgARAvQQFzIQILIAILRgEDf0EAIQMCQCAAIAJBAXQiAmsiBEECaiIAQQAoAtAJIgVJDQAgACABIAIQNg0AAkAgACAFRw0AQQEPCyAEEC4hAwsgAwuDAQECf0EBIQECQAJAAkACQAJAAkAgAC8BACICQUVqDgQFBAQBAAsCQCACQZt/ag4EAwQEAgALIAJBKUYNBCACQfkARw0DIABBfmpBsglBBhAlDwsgAEF+ai8BAEE9Rg8LIABBfmpBqglBBBAlDwsgAEF+akG+CUEDECUPC0EAIQELIAELtAMBAn9BACEBAkACQAJAAkACQAJAAkACQAJAAkAgAC8BAEGcf2oOFAABAgkJCQkDCQkEBQkJBgkHCQkICQsCQAJAIABBfmovAQBBl39qDgQACgoBCgsgAEF8akHACEECECUPCyAAQXxqQcQIQQMQJQ8LAkACQAJAIABBfmovAQBBjX9qDgMAAQIKCwJAIABBfGovAQAiAkHhAEYNACACQewARw0KIABBempB5QAQMA8LIABBempB4wAQMA8LIABBfGpByghBBBAlDwsgAEF8akHSCEEGECUPCyAAQX5qLwEAQe8ARw0GIABBfGovAQBB5QBHDQYCQCAAQXpqLwEAIgJB8ABGDQAgAkHjAEcNByAAQXhqQd4IQQYQJQ8LIABBeGpB6ghBAhAlDwsgAEF+akHuCEEEECUPC0EBIQEgAEF+aiIAQekAEDANBCAAQfYIQQUQJQ8LIABBfmpB5AAQMA8LIABBfmpBgAlBBxAlDwsgAEF+akGOCUEEECUPCwJAIABBfmovAQAiAkHvAEYNACACQeUARw0BIABBfGpB7gAQMA8LIABBfGpBlglBAxAlIQELIAELNAEBf0EBIQECQCAAQXdqQf//A3FBBUkNACAAQYABckGgAUYNACAAQS5HIAAQL3EhAQsgAQswAQF/AkACQCAAQXdqIgFBF0sNAEEBIAF0QY2AgARxDQELIABBoAFGDQBBAA8LQQELTgECf0EAIQECQAJAIAAvAQAiAkHlAEYNACACQesARw0BIABBfmpB7ghBBBAlDwsgAEF+ai8BAEH1AEcNACAAQXxqQdIIQQYQJSEBCyABC94BAQR/QQAoAqgKIQBBACgCrAohAQJAAkACQANAIAAiAkECaiEAIAIgAU8NAQJAAkACQCAALwEAIgNBpH9qDgUCAwMDAQALIANBJEcNAiACLwEEQfsARw0CQQAgAkEEaiIANgKoCkEAQQAvAZIKIgJBAWo7AZIKQQAoApwKIAJBA3RqIgJBBDYCACACIAA2AgQPC0EAIAA2AqgKQQBBAC8BkgpBf2oiADsBkgpBACgCnAogAEH//wNxQQN0aigCAEEDRw0DDAQLIAJBBGohAAwACwtBACAANgKoCgsQLQsLcAECfwJAAkADQEEAQQAoAqgKIgBBAmoiATYCqAogAEEAKAKsCk8NAQJAAkACQCABLwEAIgFBpX9qDgIBAgALAkAgAUF2ag4EBAMDBAALIAFBL0cNAgwECxA1GgwBC0EAIABBBGo2AqgKDAALCxAtCws1AQF/QQBBAToA8AlBACgCqAohAEEAQQAoAqwKQQJqNgKoCkEAIABBACgC0AlrQQF1NgKECgtDAQJ/QQEhAQJAIAAvAQAiAkF3akH//wNxQQVJDQAgAkGAAXJBoAFGDQBBACEBIAIQL0UNACACQS5HIAAQMXIPCyABC2gBAn9BASEBAkACQCAAQV9qIgJBBUsNAEEBIAJ0QTFxDQELIABB+P8DcUEoRg0AIABBRmpB//8DcUEGSQ0AAkAgAEGlf2oiAkEDSw0AIAJBAUcNAQsgAEGFf2pB//8DcUEESSEBCyABCz0BAn9BACECAkBBACgC0AkiAyAASw0AIAAvAQAgAUcNAAJAIAMgAEcNAEEBDwsgAEF+ai8BABAoIQILIAILMQEBf0EAIQECQCAALwEAQS5HDQAgAEF+ai8BAEEuRw0AIABBfGovAQBBLkYhAQsgAQvbBAEFfwJAIAFBIkYNACABQSdGDQAQLQ8LQQAoAqgKIQMgARAhIAAgA0ECakEAKAKoCkEAKALECRABAkAgAkEBSA0AQQAoAuQJQQRBBiACQQFGGzYCHAtBAEEAKAKoCkECajYCqApBABAgIQJBACgCqAohAQJAAkAgAkH3AEcNACABLwECQekARw0AIAEvAQRB9ABHDQAgAS8BBkHoAEYNAQtBACABQX5qNgKoCg8LQQAgAUEIajYCqAoCQEEBECBB+wBGDQBBACABNgKoCg8LQQAoAqgKIgQhA0EAIQADQEEAIANBAmo2AqgKAkACQAJAAkBBARAgIgJBJ0cNAEEAKAKoCiEFQScQIUEAKAKoCkECaiEDDAELQQAoAqgKIQUgAkEiRw0BQSIQIUEAKAKoCkECaiEDC0EAIAM2AqgKQQEQICECDAELIAIQMyECQQAoAqgKIQMLAkAgAkE6Rg0AQQAgATYCqAoPC0EAQQAoAqgKQQJqNgKoCgJAQQEQICICQSJGDQAgAkEnRg0AQQAgATYCqAoPC0EAKAKoCiEGIAIQIUEAQQAoAvwJIgJBFGo2AvwJQQAoAqgKIQcgAiAFNgIAIAJBADYCECACIAY2AgggAiADNgIEIAIgB0ECajYCDEEAQQAoAqgKQQJqNgKoCiAAQRBqQQAoAuQJQSBqIAAbIAI2AgACQAJAQQEQICIAQSxGDQAgAEH9AEYNAUEAIAE2AqgKDwtBAEEAKAKoCkECaiIDNgKoCiACIQAMAQsLQQAoAuQJIgEgBDYCECABQQAoAqgKQQJqNgIMC20BAn8CQAJAA0ACQCAAQf//A3EiAUF3aiICQRdLDQBBASACdEGfgIAEcQ0CCyABQaABRg0BIAAhAiABEC8NAkEAIQJBAEEAKAKoCiIAQQJqNgKoCiAALwECIgANAAwCCwsgACECCyACQf//A3ELqwEBBH8CQAJAQQAoAqgKIgIvAQAiA0HhAEYNACABIQQgACEFDAELQQAgAkEEajYCqApBARAgIQJBACgCqAohBQJAAkAgAkEiRg0AIAJBJ0YNACACEDMaQQAoAqgKIQQMAQsgAhAhQQBBACgCqApBAmoiBDYCqAoLQQEQICEDQQAoAqgKIQILAkAgAiAFRg0AIAUgBEEAIAAgACABRiICG0EAIAEgAhsQAgsgAwtyAQR/QQAoAqgKIQBBACgCrAohAQJAAkADQCAAQQJqIQIgACABTw0BAkACQCACLwEAIgNBpH9qDgIBBAALIAIhACADQXZqDgQCAQECAQsgAEEEaiEADAALC0EAIAI2AqgKEC1BAA8LQQAgAjYCqApB3QALSQEDf0EAIQMCQCACRQ0AAkADQCAALQAAIgQgAS0AACIFRw0BIAFBAWohASAAQQFqIQAgAkF/aiICDQAMAgsLIAQgBWshAwsgAwsL4gECAEGACAvEAQAAeABwAG8AcgB0AG0AcABvAHIAdABmAG8AcgBlAHQAYQBvAHUAcgBjAGUAcgBvAG0AdQBuAGMAdABpAG8AbgB2AG8AeQBpAGUAZABlAGwAZQBjAG8AbgB0AGkAbgBpAG4AcwB0AGEAbgB0AHkAYgByAGUAYQByAGUAdAB1AHIAZABlAGIAdQBnAGcAZQBhAHcAYQBpAHQAaAByAHcAaABpAGwAZQBpAGYAYwBhAHQAYwBmAGkAbgBhAGwAbABlAGwAcwAAQcQJCxABAAAAAgAAAAAEAAAwOQAA", "undefined" != typeof Buffer ? Buffer.from(A, "base64") : Uint8Array.from(atob(A), ((A) => A.charCodeAt(0)));
|
|
78
|
+
var A;
|
|
79
|
+
};
|
|
80
|
+
const init = WebAssembly.compile(E()).then(WebAssembly.instantiate).then((({ exports: A }) => {
|
|
81
|
+
C = A;
|
|
82
|
+
}));
|
|
83
|
+
export { init, parse };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { WorkerHooks } from "./types.mjs";
|
|
2
|
+
import { BaseEnvRunner, EnvRunnerData } from "./base-runner.mjs";
|
|
3
3
|
declare class DenoProcessEnvRunner extends BaseEnvRunner {
|
|
4
4
|
#private;
|
|
5
5
|
constructor(opts: {
|
|
@@ -14,4 +14,4 @@ declare class DenoProcessEnvRunner extends BaseEnvRunner {
|
|
|
14
14
|
protected _runtimeType(): string;
|
|
15
15
|
protected _closeRuntime(): Promise<void>;
|
|
16
16
|
}
|
|
17
|
-
export { DenoProcessEnvRunner
|
|
17
|
+
export { DenoProcessEnvRunner };
|
package/dist/_chunks/runner.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseEnvRunner } from "./base-runner.mjs";
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { spawn } from "node:child_process";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
@@ -11,7 +11,7 @@ var DenoProcessEnvRunner = class extends BaseEnvRunner {
|
|
|
11
11
|
...opts,
|
|
12
12
|
workerEntry: opts.workerEntry || _defaultEntry
|
|
13
13
|
});
|
|
14
|
-
this.#initProcess(opts.execArgv);
|
|
14
|
+
this._initWithVirtualData(() => this.#initProcess(opts.execArgv));
|
|
15
15
|
}
|
|
16
16
|
sendMessage(message) {
|
|
17
17
|
if (!this.#process) throw new Error("Deno env process should be initialized before sending messages.");
|
|
@@ -88,10 +88,13 @@ var DenoProcessEnvRunner = class extends BaseEnvRunner {
|
|
|
88
88
|
buffer = buffer.slice(newlineIdx + 1);
|
|
89
89
|
if (line.startsWith("{")) try {
|
|
90
90
|
this._handleMessage(JSON.parse(line));
|
|
91
|
+
continue;
|
|
91
92
|
} catch {}
|
|
93
|
+
process.stdout.write(line + "\n");
|
|
92
94
|
}
|
|
93
95
|
});
|
|
96
|
+
child.stderr?.pipe(process.stderr);
|
|
94
97
|
this.#process = handle;
|
|
95
98
|
}
|
|
96
99
|
};
|
|
97
|
-
export { DenoProcessEnvRunner
|
|
100
|
+
export { DenoProcessEnvRunner };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { WorkerHooks } from "./types.mjs";
|
|
2
|
+
import { BaseEnvRunner, EnvRunnerData } from "./base-runner.mjs";
|
|
3
3
|
import { IncomingMessage } from "node:http";
|
|
4
4
|
import { Socket } from "node:net";
|
|
5
5
|
/** Result from a module transform (compatible with Vite's `TransformResult`). */
|
|
@@ -70,6 +70,18 @@ declare class MiniflareEnvRunner extends BaseEnvRunner {
|
|
|
70
70
|
* and responds with `module-reloaded` when done.
|
|
71
71
|
*/
|
|
72
72
|
reloadModule(timeout?: number): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Invalidate a virtual module so the next `reloadModule()` re-evaluates it.
|
|
75
|
+
*
|
|
76
|
+
* Host-side only (no worker round-trip): the module fallback service serves
|
|
77
|
+
* virtual sources from a live map, so re-running a factory source and
|
|
78
|
+
* bumping the per-specifier versions — the module plus its transitive
|
|
79
|
+
* virtual importers — is enough. Import specifiers in re-served module code
|
|
80
|
+
* are rewritten to the versioned form, giving workerd fresh module
|
|
81
|
+
* identities (it caches by name). A `persistent` instance is evicted from
|
|
82
|
+
* the cache, since its served sources no longer match the cache key.
|
|
83
|
+
*/
|
|
84
|
+
invalidateModule(specifier: string, _timeout?: number): Promise<void>;
|
|
73
85
|
protected _hasRuntime(): boolean;
|
|
74
86
|
protected _runtimeType(): string;
|
|
75
87
|
protected _closeRuntime(): Promise<void>;
|
|
@@ -81,4 +93,4 @@ declare class MiniflareEnvRunner extends BaseEnvRunner {
|
|
|
81
93
|
};
|
|
82
94
|
}): Promise<void>;
|
|
83
95
|
}
|
|
84
|
-
export {
|
|
96
|
+
export { MiniflareEnvRunner, MiniflareEnvRunnerOptions, MiniflareExportInfo, TransformResult };
|
package/dist/_chunks/runner2.mjs
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { expandVirtualInvalidation, stripVirtualTypeScript, virtualModuleFormat } from "./virtual-loader.mjs";
|
|
2
|
+
import { BaseEnvRunner } from "./base-runner.mjs";
|
|
3
|
+
import { init, parse } from "./libs/cjs-module-lexer.mjs";
|
|
4
|
+
import { init as init$1, parse as parse$1 } from "./libs/es-module-lexer.mjs";
|
|
5
|
+
import { isVirtualSpecifier } from "./worker-utils.mjs";
|
|
3
6
|
import { createRequire } from "node:module";
|
|
4
7
|
import { proxyUpgrade } from "httpxy";
|
|
5
8
|
import { readFileSync } from "node:fs";
|
|
6
9
|
import { fileURLToPath } from "node:url";
|
|
7
|
-
import { basename, dirname, resolve } from "node:path";
|
|
10
|
+
import { basename, dirname, isAbsolute, resolve } from "node:path";
|
|
8
11
|
import { resolveModulePath } from "exsolve";
|
|
9
12
|
const IPC_PATH = "/__env_runner_ipc";
|
|
10
13
|
const IPC_BINDING = "__ENV_RUNNER_IPC";
|
|
@@ -182,6 +185,9 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
182
185
|
#miniflareOptions;
|
|
183
186
|
#transformRequest;
|
|
184
187
|
#reloadCounter = 0;
|
|
188
|
+
#virtual;
|
|
189
|
+
#virtualVersions = /* @__PURE__ */ new Map();
|
|
190
|
+
#cacheEntry;
|
|
185
191
|
#ws;
|
|
186
192
|
#persistent;
|
|
187
193
|
#cacheKey;
|
|
@@ -199,7 +205,7 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
199
205
|
this.#exports = opts.exports ?? {};
|
|
200
206
|
this.#captureErrors = opts.captureErrors ?? true;
|
|
201
207
|
this.#exportConditions = opts.exportConditions ?? ["workerd", "worker"];
|
|
202
|
-
this.#init();
|
|
208
|
+
this._initWithVirtualData(() => this.#init());
|
|
203
209
|
}
|
|
204
210
|
static async disposeAll() {
|
|
205
211
|
const entries = [..._miniflareCache.values()];
|
|
@@ -213,15 +219,17 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
213
219
|
this.#ws.close();
|
|
214
220
|
this.#ws = void 0;
|
|
215
221
|
}
|
|
216
|
-
if (this.#cacheKey) _miniflareCache.delete(this.#cacheKey);
|
|
222
|
+
if (this.#cacheKey && _miniflareCache.get(this.#cacheKey)?.mf === this.#miniflare) _miniflareCache.delete(this.#cacheKey);
|
|
217
223
|
await this.#miniflare.dispose();
|
|
218
224
|
this.#miniflare = void 0;
|
|
219
225
|
}
|
|
220
226
|
if (!this.closed) await this.close();
|
|
221
227
|
}
|
|
222
228
|
async fetch(input, init) {
|
|
229
|
+
for (let i = 0; i < 5 && !this._address && !this.closed; i++) await new Promise((r) => setTimeout(r, 100 * Math.pow(2, i)));
|
|
223
230
|
if (!this.#miniflare || this.closed) return new Response("miniflare env runner is unavailable", { status: 503 });
|
|
224
|
-
const
|
|
231
|
+
const resolved = this._resolveFetchInput(input);
|
|
232
|
+
const url = typeof resolved === "string" ? resolved : resolved instanceof URL ? resolved.href : resolved.url;
|
|
225
233
|
const res = await this.#miniflare.dispatchFetch(url, init);
|
|
226
234
|
if (res instanceof Response) return res;
|
|
227
235
|
return new Response(res.body, {
|
|
@@ -248,30 +256,27 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
248
256
|
if (!this.#ws) throw new Error("Miniflare env runner should be initialized before reloading.");
|
|
249
257
|
if (!this._data?.entry) return;
|
|
250
258
|
this.#reloadCounter++;
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
cleanup();
|
|
260
|
-
if (msg.error) reject(typeof msg.error === "string" ? new Error(msg.error) : msg.error);
|
|
261
|
-
else resolve();
|
|
262
|
-
}
|
|
263
|
-
};
|
|
264
|
-
const cleanup = () => {
|
|
265
|
-
clearTimeout(timer);
|
|
266
|
-
this.offMessage(listener);
|
|
267
|
-
};
|
|
268
|
-
this.onMessage(listener);
|
|
269
|
-
this.#ws.send(JSON.stringify({
|
|
270
|
-
type: "reload",
|
|
271
|
-
version
|
|
272
|
-
}));
|
|
259
|
+
await this._request({
|
|
260
|
+
type: "reload",
|
|
261
|
+
version: this.#reloadCounter
|
|
262
|
+
}, {
|
|
263
|
+
match: (msg) => msg?.event === "module-reloaded",
|
|
264
|
+
timeout,
|
|
265
|
+
timeoutError: "Module reload timed out",
|
|
266
|
+
send: (message) => this.#ws.send(JSON.stringify(message))
|
|
273
267
|
});
|
|
274
268
|
}
|
|
269
|
+
async invalidateModule(specifier, _timeout) {
|
|
270
|
+
const virtual = this.#virtual;
|
|
271
|
+
if (!virtual || !Object.hasOwn(virtual, specifier)) {
|
|
272
|
+
const hasVirtual = Object.keys(this._data?.virtual ?? {}).length > 0;
|
|
273
|
+
throw !virtual && hasVirtual && !this.closed ? /* @__PURE__ */ new Error("Miniflare env runner should be initialized before invalidating modules.") : /* @__PURE__ */ new Error(`Cannot invalidate "${specifier}" (not a registered virtual module)`);
|
|
274
|
+
}
|
|
275
|
+
const source = await this._refreshVirtualSource(specifier);
|
|
276
|
+
if (source !== void 0) virtual[specifier] = await this.#prepareVirtualSource(specifier, source);
|
|
277
|
+
for (const key of expandVirtualInvalidation(virtual, specifier)) this.#virtualVersions.set(key, (this.#virtualVersions.get(key) ?? 0) + 1);
|
|
278
|
+
if (this.#cacheKey && _miniflareCache.get(this.#cacheKey) === this.#cacheEntry) _miniflareCache.delete(this.#cacheKey);
|
|
279
|
+
}
|
|
275
280
|
_hasRuntime() {
|
|
276
281
|
return Boolean(this.#miniflare);
|
|
277
282
|
}
|
|
@@ -285,14 +290,12 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
285
290
|
this.#ws.close();
|
|
286
291
|
this.#ws = void 0;
|
|
287
292
|
}
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
if (
|
|
293
|
-
|
|
294
|
-
await this.#miniflare.dispose();
|
|
295
|
-
}
|
|
293
|
+
const entry = this.#cacheEntry;
|
|
294
|
+
if (entry) {
|
|
295
|
+
entry.refCount--;
|
|
296
|
+
if (entry.refCount <= 0) {
|
|
297
|
+
if (this.#cacheKey && _miniflareCache.get(this.#cacheKey) === entry) _miniflareCache.delete(this.#cacheKey);
|
|
298
|
+
await this.#miniflare.dispose();
|
|
296
299
|
}
|
|
297
300
|
} else await this.#miniflare.dispose();
|
|
298
301
|
this.#miniflare = void 0;
|
|
@@ -315,9 +318,25 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
315
318
|
port: Number(address.port)
|
|
316
319
|
}, context.node.req, context.node.socket, context.node.head);
|
|
317
320
|
}
|
|
321
|
+
async #prepareVirtualModules() {
|
|
322
|
+
const virtual = this._data?.virtual;
|
|
323
|
+
if (!virtual || Object.keys(virtual).length === 0) return;
|
|
324
|
+
const out = {};
|
|
325
|
+
for (const [specifier, source] of Object.entries(virtual)) out[specifier] = await this.#prepareVirtualSource(specifier, source);
|
|
326
|
+
return out;
|
|
327
|
+
}
|
|
328
|
+
async #prepareVirtualSource(specifier, source) {
|
|
329
|
+
if (virtualModuleFormat(specifier) !== "module-typescript") return source;
|
|
330
|
+
return stripVirtualTypeScript(specifier, source, await _getStripTypeScriptTypes(), {
|
|
331
|
+
requirement: "on the host (workerd does not parse TypeScript)",
|
|
332
|
+
remedy: "upgrade Node.js"
|
|
333
|
+
});
|
|
334
|
+
}
|
|
318
335
|
async #initAsync() {
|
|
319
336
|
const { Miniflare } = await import("miniflare");
|
|
320
337
|
const entryPath = this._data?.entry;
|
|
338
|
+
const virtual = await this.#prepareVirtualModules();
|
|
339
|
+
this.#virtual = virtual;
|
|
321
340
|
const userFlags = this.#miniflareOptions.compatibilityFlags || [];
|
|
322
341
|
const userDirectSockets = this.#miniflareOptions.unsafeDirectSockets || [];
|
|
323
342
|
const options = {
|
|
@@ -331,9 +350,13 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
331
350
|
}, ...userDirectSockets]
|
|
332
351
|
};
|
|
333
352
|
if (entryPath && !options.script && !options.scriptPath) {
|
|
334
|
-
const
|
|
335
|
-
const
|
|
336
|
-
const
|
|
353
|
+
const entryIsVirtual = isVirtualSpecifier(entryPath, virtual);
|
|
354
|
+
const resolvedEntry = entryIsVirtual ? entryPath : resolve(entryPath);
|
|
355
|
+
const entryBase = isAbsolute(resolvedEntry) ? resolvedEntry : resolve("__env_runner_virtual_entry__.mjs");
|
|
356
|
+
const entryDir = dirname(entryBase);
|
|
357
|
+
const entrySource = entryIsVirtual ? virtual[entryPath] : _tryReadFile(resolvedEntry);
|
|
358
|
+
const detectedExports = this.#exports === false || this.#exports === void 0 ? [] : detectExportedClasses(entrySource, typeof this.#exports === "object" ? this.#exports : {});
|
|
359
|
+
if (entryIsVirtual && detectedExports.length > 0) throw new Error(`[env-runner] named exports (${detectedExports.join(", ")}) are not supported with a virtual entry on the miniflare runner; pass \`exports: false\` or use a real entry file.`);
|
|
337
360
|
if (detectedExports.length > 0 && !options.durableObjects) {
|
|
338
361
|
const autoDOs = { ...this.#miniflareOptions.durableObjects || {} };
|
|
339
362
|
for (const name of detectedExports) {
|
|
@@ -370,14 +393,17 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
370
393
|
]
|
|
371
394
|
}];
|
|
372
395
|
if (!options.unsafeModuleFallbackService) {
|
|
373
|
-
const _require = createRequire(
|
|
396
|
+
const _require = createRequire(entryBase);
|
|
397
|
+
const _virtual = virtual;
|
|
398
|
+
const _virtualVersions = this.#virtualVersions;
|
|
374
399
|
const _transformRequest = this.#transformRequest;
|
|
375
400
|
const _exportConditions = this.#exportConditions;
|
|
401
|
+
const _applyVirtualVersions = (code) => applyVirtualVersions(code, _virtualVersions);
|
|
376
402
|
options.unsafeUseModuleFallbackService = true;
|
|
377
403
|
const modulePathMap = /* @__PURE__ */ new Map();
|
|
378
|
-
const
|
|
404
|
+
const _lexersReady = Promise.all([ensureCjsLexer(), init$1]);
|
|
379
405
|
options.unsafeModuleFallbackService = async (request) => {
|
|
380
|
-
await
|
|
406
|
+
await _lexersReady;
|
|
381
407
|
const url = new URL(request.url);
|
|
382
408
|
const specifier = url.searchParams.get("specifier");
|
|
383
409
|
const rawSpecifier = url.searchParams.get("rawSpecifier");
|
|
@@ -385,6 +411,25 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
385
411
|
if (!specifier) return new Response(null, { status: 404 });
|
|
386
412
|
const cleanSpecifier = specifier.split("?")[0] || specifier;
|
|
387
413
|
const cleanRaw = rawSpecifier?.split("?")[0];
|
|
414
|
+
if (_virtual) {
|
|
415
|
+
const bareSpecifier = cleanSpecifier.startsWith("/") ? cleanSpecifier.slice(1) : cleanSpecifier;
|
|
416
|
+
const virtualKey = [
|
|
417
|
+
cleanRaw,
|
|
418
|
+
cleanSpecifier,
|
|
419
|
+
bareSpecifier
|
|
420
|
+
].find((key) => key !== void 0 && Object.hasOwn(_virtual, key));
|
|
421
|
+
if (virtualKey !== void 0) {
|
|
422
|
+
const name = bareSpecifier + (specifier.includes("?") ? specifier.slice(specifier.indexOf("?")) : "");
|
|
423
|
+
const source = _virtual[virtualKey];
|
|
424
|
+
return virtualModuleFormat(virtualKey) === "json" ? Response.json({
|
|
425
|
+
name,
|
|
426
|
+
json: source
|
|
427
|
+
}) : Response.json({
|
|
428
|
+
name,
|
|
429
|
+
esModule: _applyVirtualVersions(source)
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
}
|
|
388
433
|
let resolvedPath;
|
|
389
434
|
const fileUrlRaw = cleanRaw || cleanSpecifier;
|
|
390
435
|
if (fileUrlRaw.startsWith("file://")) try {
|
|
@@ -406,7 +451,7 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
406
451
|
}
|
|
407
452
|
} else try {
|
|
408
453
|
resolvedPath = resolveModulePath(cleanRaw, {
|
|
409
|
-
from: referrerReal ||
|
|
454
|
+
from: referrerReal || entryBase,
|
|
410
455
|
conditions: _exportConditions,
|
|
411
456
|
try: true
|
|
412
457
|
}) || contextRequire.resolve(cleanRaw);
|
|
@@ -437,7 +482,7 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
437
482
|
modulePathMap.set(name, resolvedPath);
|
|
438
483
|
return Response.json({
|
|
439
484
|
name,
|
|
440
|
-
esModule: result.code
|
|
485
|
+
esModule: _applyVirtualVersions(result.code)
|
|
441
486
|
});
|
|
442
487
|
}
|
|
443
488
|
} catch {}
|
|
@@ -446,7 +491,7 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
446
491
|
modulePathMap.set(name, resolvedPath);
|
|
447
492
|
if (resolvedPath.endsWith(".mjs") || !resolvedPath.endsWith(".cjs") && /\b(import\s|import\(|export\s|export\{|import\.meta\b)/.test(contents)) return Response.json({
|
|
448
493
|
name,
|
|
449
|
-
esModule: contents
|
|
494
|
+
esModule: _applyVirtualVersions(contents)
|
|
450
495
|
});
|
|
451
496
|
const cjsSuffix = "?__cjs";
|
|
452
497
|
if (specifier.endsWith(cjsSuffix)) return Response.json({
|
|
@@ -467,21 +512,30 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
467
512
|
if (this.#persistent && entryPath) {
|
|
468
513
|
this.#cacheKey = computeCacheKey(entryPath, {
|
|
469
514
|
...this.#miniflareOptions,
|
|
470
|
-
_exportConditions: this.#exportConditions
|
|
515
|
+
_exportConditions: this.#exportConditions,
|
|
516
|
+
_virtual: virtual
|
|
471
517
|
});
|
|
472
518
|
const cached = _miniflareCache.get(this.#cacheKey);
|
|
473
519
|
if (cached) {
|
|
474
520
|
this.#miniflare = cached.mf;
|
|
475
521
|
cached.refCount++;
|
|
522
|
+
this.#cacheEntry = cached;
|
|
523
|
+
this.#virtual = cached.virtual;
|
|
524
|
+
this.#virtualVersions = cached.versions;
|
|
476
525
|
}
|
|
477
526
|
}
|
|
478
527
|
if (!this.#miniflare) {
|
|
479
528
|
this.#miniflare = new Miniflare(options);
|
|
480
529
|
await this.#miniflare.ready;
|
|
481
|
-
if (this.#persistent && this.#cacheKey)
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
530
|
+
if (this.#persistent && this.#cacheKey) {
|
|
531
|
+
this.#cacheEntry = {
|
|
532
|
+
mf: this.#miniflare,
|
|
533
|
+
refCount: 1,
|
|
534
|
+
virtual,
|
|
535
|
+
versions: this.#virtualVersions
|
|
536
|
+
};
|
|
537
|
+
_miniflareCache.set(this.#cacheKey, this.#cacheEntry);
|
|
538
|
+
}
|
|
485
539
|
}
|
|
486
540
|
const initRes = await this.#miniflare.dispatchFetch("http://localhost/__env_runner_ipc", { headers: { upgrade: "websocket" } });
|
|
487
541
|
const ws = initRes.webSocket;
|
|
@@ -503,16 +557,22 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
|
|
|
503
557
|
} });
|
|
504
558
|
}
|
|
505
559
|
};
|
|
506
|
-
function detectExportedClasses(
|
|
560
|
+
function detectExportedClasses(entrySource, explicit) {
|
|
507
561
|
const names = new Set(Object.keys(explicit));
|
|
508
|
-
|
|
509
|
-
const source = readFileSync(entryPath, "utf8");
|
|
562
|
+
if (entrySource) {
|
|
510
563
|
const re = /\bexport\s+class\s+(\w+)/g;
|
|
511
564
|
let match;
|
|
512
|
-
while (match = re.exec(
|
|
513
|
-
}
|
|
565
|
+
while (match = re.exec(entrySource)) if (match[1]) names.add(match[1]);
|
|
566
|
+
}
|
|
514
567
|
return [...names];
|
|
515
568
|
}
|
|
569
|
+
function _tryReadFile(path) {
|
|
570
|
+
try {
|
|
571
|
+
return readFileSync(path, "utf8");
|
|
572
|
+
} catch {
|
|
573
|
+
return;
|
|
574
|
+
}
|
|
575
|
+
}
|
|
516
576
|
function toScreamingSnakeCase(name) {
|
|
517
577
|
return name.replace(/([a-z0-9])([A-Z])/g, "$1_$2").toUpperCase();
|
|
518
578
|
}
|
|
@@ -521,6 +581,35 @@ function computeCacheKey(entryPath, opts) {
|
|
|
521
581
|
for (const [k, v] of Object.entries(opts)) if (typeof v !== "function") serializableOpts[k] = v;
|
|
522
582
|
return `${resolve(entryPath)}::${JSON.stringify(serializableOpts)}`;
|
|
523
583
|
}
|
|
584
|
+
function applyVirtualVersions(code, versions) {
|
|
585
|
+
if (versions.size === 0) return code;
|
|
586
|
+
let imports;
|
|
587
|
+
try {
|
|
588
|
+
[imports] = parse$1(code);
|
|
589
|
+
} catch {
|
|
590
|
+
return code;
|
|
591
|
+
}
|
|
592
|
+
let out = "";
|
|
593
|
+
let last = 0;
|
|
594
|
+
for (const imp of imports) {
|
|
595
|
+
let specifier = imp.n;
|
|
596
|
+
if (specifier === void 0 && imp.d > -1) {
|
|
597
|
+
const expr = code.slice(imp.s, imp.e);
|
|
598
|
+
if (expr.length > 1 && expr[0] === "`" && expr.endsWith("`") && !expr.includes("${")) specifier = expr.slice(1, -1);
|
|
599
|
+
}
|
|
600
|
+
const version = specifier === void 0 ? void 0 : versions.get(specifier);
|
|
601
|
+
if (!version) continue;
|
|
602
|
+
const versioned = `${specifier}?v=${version}`;
|
|
603
|
+
out += code.slice(last, imp.s) + (imp.d > -1 ? JSON.stringify(versioned) : versioned);
|
|
604
|
+
last = imp.e;
|
|
605
|
+
}
|
|
606
|
+
return out + code.slice(last);
|
|
607
|
+
}
|
|
608
|
+
let _stripTypesPromise;
|
|
609
|
+
function _getStripTypeScriptTypes() {
|
|
610
|
+
_stripTypesPromise ??= import("node:module").then((m) => m.stripTypeScriptTypes);
|
|
611
|
+
return _stripTypesPromise;
|
|
612
|
+
}
|
|
524
613
|
let _cjsLexerReady;
|
|
525
614
|
function ensureCjsLexer() {
|
|
526
615
|
if (!_cjsLexerReady) _cjsLexerReady = init();
|
|
@@ -536,4 +625,4 @@ function createCjsEsmShim(cjsSpecifier, contents) {
|
|
|
536
625
|
for (const name of namedExports) shim += `export var ${name} = __cjs_mod__["${name}"];\n`;
|
|
537
626
|
return shim;
|
|
538
627
|
}
|
|
539
|
-
export { MiniflareEnvRunner
|
|
628
|
+
export { MiniflareEnvRunner };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { WorkerHooks } from "./types.mjs";
|
|
2
|
+
import { BaseEnvRunner, EnvRunnerData } from "./base-runner.mjs";
|
|
3
3
|
declare class NodeWorkerEnvRunner extends BaseEnvRunner {
|
|
4
4
|
#private;
|
|
5
5
|
constructor(opts: {
|
|
@@ -13,4 +13,4 @@ declare class NodeWorkerEnvRunner extends BaseEnvRunner {
|
|
|
13
13
|
protected _runtimeType(): string;
|
|
14
14
|
protected _closeRuntime(): Promise<void>;
|
|
15
15
|
}
|
|
16
|
-
export { NodeWorkerEnvRunner
|
|
16
|
+
export { NodeWorkerEnvRunner };
|
package/dist/_chunks/runner3.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseEnvRunner } from "./base-runner.mjs";
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { Worker } from "node:worker_threads";
|
|
@@ -11,7 +11,7 @@ var NodeWorkerEnvRunner = class extends BaseEnvRunner {
|
|
|
11
11
|
...opts,
|
|
12
12
|
workerEntry: opts.workerEntry || _defaultEntry
|
|
13
13
|
});
|
|
14
|
-
this.#initWorker();
|
|
14
|
+
this._initWithVirtualData(() => this.#initWorker());
|
|
15
15
|
}
|
|
16
16
|
sendMessage(message) {
|
|
17
17
|
if (!this.#worker) throw new Error("Worker thread should be initialized before sending messages.");
|
|
@@ -57,4 +57,4 @@ var NodeWorkerEnvRunner = class extends BaseEnvRunner {
|
|
|
57
57
|
this.#worker = worker;
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
|
-
export { NodeWorkerEnvRunner
|
|
60
|
+
export { NodeWorkerEnvRunner };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { WorkerHooks } from "./types.mjs";
|
|
2
|
+
import { EnvRunnerData } from "./base-runner.mjs";
|
|
3
|
+
import { NodeWorkerEnvRunner } from "./runner3.mjs";
|
|
4
4
|
declare class VercelEnvRunner extends NodeWorkerEnvRunner {
|
|
5
5
|
constructor(opts: {
|
|
6
6
|
name: string;
|
|
@@ -11,4 +11,4 @@ declare class VercelEnvRunner extends NodeWorkerEnvRunner {
|
|
|
11
11
|
fetch(input: string | URL | Request, init?: RequestInit): Promise<Response>;
|
|
12
12
|
protected _runtimeType(): string;
|
|
13
13
|
}
|
|
14
|
-
export { VercelEnvRunner
|
|
14
|
+
export { VercelEnvRunner };
|
package/dist/_chunks/runner4.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NodeWorkerEnvRunner } from "./runner3.mjs";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
3
|
import { randomBytes } from "node:crypto";
|
|
4
4
|
let _warned = false;
|
|
@@ -56,6 +56,7 @@ var VercelEnvRunner = class extends NodeWorkerEnvRunner {
|
|
|
56
56
|
warnIfVercelOidcTokenInvalid();
|
|
57
57
|
}
|
|
58
58
|
async fetch(input, init) {
|
|
59
|
+
input = this._resolveFetchInput(input);
|
|
59
60
|
const headers = new Headers(input instanceof Request ? input.headers : init?.headers);
|
|
60
61
|
const requestId = generateVercelId();
|
|
61
62
|
if (this._address && this._address.port != null && !headers.has("x-vercel-deployment-url")) {
|
|
@@ -90,4 +91,4 @@ var VercelEnvRunner = class extends NodeWorkerEnvRunner {
|
|
|
90
91
|
return "vercel";
|
|
91
92
|
}
|
|
92
93
|
};
|
|
93
|
-
export { VercelEnvRunner
|
|
94
|
+
export { VercelEnvRunner };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { WorkerHooks } from "./types.mjs";
|
|
2
|
+
import { EnvRunnerData } from "./base-runner.mjs";
|
|
3
|
+
import { NodeWorkerEnvRunner } from "./runner3.mjs";
|
|
4
4
|
declare class NetlifyEnvRunner extends NodeWorkerEnvRunner {
|
|
5
5
|
constructor(opts: {
|
|
6
6
|
name: string;
|
|
@@ -11,4 +11,4 @@ declare class NetlifyEnvRunner extends NodeWorkerEnvRunner {
|
|
|
11
11
|
fetch(input: string | URL | Request, init?: RequestInit): Promise<Response>;
|
|
12
12
|
protected _runtimeType(): string;
|
|
13
13
|
}
|
|
14
|
-
export { NetlifyEnvRunner
|
|
14
|
+
export { NetlifyEnvRunner };
|
package/dist/_chunks/runner5.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NodeWorkerEnvRunner } from "./runner3.mjs";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
3
|
let _defaultEntry;
|
|
4
4
|
var NetlifyEnvRunner = class extends NodeWorkerEnvRunner {
|
|
@@ -10,6 +10,7 @@ var NetlifyEnvRunner = class extends NodeWorkerEnvRunner {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
async fetch(input, init) {
|
|
13
|
+
input = this._resolveFetchInput(input);
|
|
13
14
|
const headers = new Headers(input instanceof Request ? input.headers : init?.headers);
|
|
14
15
|
const clientIp = headers.get("x-forwarded-for")?.split(",")[0]?.trim() || headers.get("x-real-ip") || "127.0.0.1";
|
|
15
16
|
if (!headers.has("x-nf-client-connection-ip")) headers.set("x-nf-client-connection-ip", clientIp);
|
|
@@ -42,4 +43,4 @@ var NetlifyEnvRunner = class extends NodeWorkerEnvRunner {
|
|
|
42
43
|
return "netlify";
|
|
43
44
|
}
|
|
44
45
|
};
|
|
45
|
-
export { NetlifyEnvRunner
|
|
46
|
+
export { NetlifyEnvRunner };
|