vxrn 1.12.7 → 1.12.8
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/dist/config/getServerOptionsFilled.mjs +7 -6
- package/dist/config/getServerOptionsFilled.mjs.map +1 -1
- package/dist/config/getServerOptionsFilled.native.js +7 -6
- package/dist/config/getServerOptionsFilled.native.js.map +1 -1
- package/dist/serve/node.mjs +5 -4
- package/dist/serve/node.mjs.map +1 -1
- package/dist/serve/node.native.js +5 -4
- package/dist/serve/node.native.js.map +1 -1
- package/expo-plugin.cjs +10 -2
- package/package.json +13 -13
- package/src/config/getServerOptionsFilled.ts +21 -12
- package/src/serve/node.ts +9 -5
- package/types/config/getServerOptionsFilled.d.ts.map +1 -1
- package/types/serve/node.d.ts.map +1 -1
|
@@ -6,12 +6,13 @@ async function getServerOptionsFilled(serverOptions, mode) {
|
|
|
6
6
|
} = serverOptions || {},
|
|
7
7
|
portToUse = requestedPort ?? (mode === "dev" ? 8081 : 3e3),
|
|
8
8
|
protocol = "http:",
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
isClusterWorker = process.env.ONE_CLUSTER_WORKER === "1";
|
|
10
|
+
let port;
|
|
11
|
+
if (isClusterWorker) port = portToUse;else if (port = await getPort({
|
|
12
|
+
port: portToUse,
|
|
13
|
+
portRange: requestedPort ? [portToUse, portToUse] : [portToUse, portToUse + 100],
|
|
14
|
+
host
|
|
15
|
+
}), requestedPort && port !== requestedPort) throw new Error(`Port ${requestedPort} is already in use. Either free the port or use a different one.`);
|
|
15
16
|
return {
|
|
16
17
|
loadEnv: !1,
|
|
17
18
|
compress: !0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getPort","getServerOptionsFilled","serverOptions","mode","host","port","requestedPort","portToUse","protocol","portRange","Error","loadEnv","compress","url"],"sources":["../../src/config/getServerOptionsFilled.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AAGxB,eAAsBC,uBACpBC,aAAA,EACAC,IAAA,EACiC;EACjC,MAAM;MACJC,IAAA,GAAO;MACPC,IAAA,EAAMC;IACR,IAAIJ,aAAA,IAAiB,CAAC;IAGhBK,SAAA,GAAYD,aAAA,KADEH,IAAA,KAAS,QAAQ,OAAO;IAEtCK,QAAA,GAAW;
|
|
1
|
+
{"version":3,"names":["getPort","getServerOptionsFilled","serverOptions","mode","host","port","requestedPort","portToUse","protocol","isClusterWorker","process","env","ONE_CLUSTER_WORKER","portRange","Error","loadEnv","compress","url"],"sources":["../../src/config/getServerOptionsFilled.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AAGxB,eAAsBC,uBACpBC,aAAA,EACAC,IAAA,EACiC;EACjC,MAAM;MACJC,IAAA,GAAO;MACPC,IAAA,EAAMC;IACR,IAAIJ,aAAA,IAAiB,CAAC;IAGhBK,SAAA,GAAYD,aAAA,KADEH,IAAA,KAAS,QAAQ,OAAO;IAEtCK,QAAA,GAAW;IAIXC,eAAA,GAAkBC,OAAA,CAAQC,GAAA,CAAIC,kBAAA,KAAuB;EAE3D,IAAIP,IAAA;EACJ,IAAII,eAAA,EACFJ,IAAA,GAAOE,SAAA,UAIPF,IAAA,GAAO,MAAML,OAAA,CAAQ;IACnBK,IAAA,EAAME,SAAA;IACNM,SAAA,EAAWP,aAAA,GAAgB,CAACC,SAAA,EAAWA,SAAS,IAAI,CAACA,SAAA,EAAWA,SAAA,GAAY,GAAG;IAC/EH;EACF,CAAC,GAGGE,aAAA,IAAiBD,IAAA,KAASC,aAAA,EAC5B,MAAM,IAAIQ,KAAA,CACR,QAAQR,aAAa,kEACvB;EAOJ,OAAO;IACLS,OAAA,EAAS;IACTC,QAAA,EAAU;IACV,GAAGd,aAAA;IACHG,IAAA;IACAD,IAAA;IACAI,QAAA;IACAS,GAAA,EAAK,GAAGT,QAAQ,KATFJ,IAAA,KAAS,YAAY,cAAcA,IASrB,IAAIC,IAAI;EACtC;AACF","ignoreList":[]}
|
|
@@ -8,12 +8,13 @@ async function getServerOptionsFilled(serverOptions, mode) {
|
|
|
8
8
|
defaultPort = mode === "dev" ? 8081 : 3e3,
|
|
9
9
|
portToUse = requestedPort ?? defaultPort,
|
|
10
10
|
protocol = "http:",
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
isClusterWorker = process.env.ONE_CLUSTER_WORKER === "1",
|
|
12
|
+
port;
|
|
13
|
+
if (isClusterWorker) port = portToUse;else if (port = await getPort({
|
|
14
|
+
port: portToUse,
|
|
15
|
+
portRange: requestedPort ? [portToUse, portToUse] : [portToUse, portToUse + 100],
|
|
16
|
+
host
|
|
17
|
+
}), requestedPort && port !== requestedPort) throw new Error(`Port ${requestedPort} is already in use. Either free the port or use a different one.`);
|
|
17
18
|
var urlHost = host === "0.0.0.0" ? "localhost" : host;
|
|
18
19
|
return {
|
|
19
20
|
loadEnv: !1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getPort","getServerOptionsFilled","serverOptions","mode","host","port","requestedPort","defaultPort","portToUse","protocol","portRange","Error","urlHost","loadEnv","compress"],"sources":["../../src/config/getServerOptionsFilled.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AAGxB,eAAsBC,uBACpBC,aAAA,EACAC,IAAA,EACiC;EACjC;MACEC,IAAA,GAAO;MACP;MACFC,IAAI,EAAAC;
|
|
1
|
+
{"version":3,"names":["getPort","getServerOptionsFilled","serverOptions","mode","host","port","requestedPort","defaultPort","portToUse","protocol","isClusterWorker","process","env","ONE_CLUSTER_WORKER","portRange","Error","urlHost","loadEnv","compress"],"sources":["../../src/config/getServerOptionsFilled.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AAGxB,eAAsBC,uBACpBC,aAAA,EACAC,IAAA,EACiC;EACjC;MACEC,IAAA,GAAO;MACP;MACFC,IAAI,EAAAC;IAUJ,IAAIJ,aAAA;IAAAK,WAAA,GAAAJ,IAAA;IAAAK,SAAA,GAAAF,aAAA,IAAAC,WAAA;IAAAE,QAAA;IAAAC,eAAA,GAAAC,OAAA,CAAAC,GAAA,CAAAC,kBAAA;IAAAR,IAAA;EACJ,IAAIK,eAAA,EACFL,IAAA,GAAOG,SAAA,UAIPH,IAAA,GAAO,MAAML,OAAA,CAAQ;IACnBK,IAAA,EAAMG,SAAA;IACNM,SAAA,EAAWR,aAAA,GAAgB,CAC3BE,SAAA,EAIEA,SAAA,CACF,IACEA,SAAQ,EACVA,SAAA,OAOJ;IACEJ;EAAS,EACT,EAAAE,aAAU,IAAAD,IAAA,KAAAC,aAAA,EACV,MAAG,IAAAS,KAAA,SAAAT,aAAA;EAAA,IACHU,OAAA,GAAAZ,IAAA,+BAAAA,IAAA;EAAA,OACA;IACAa,OAAA;IACAC,QAAQ;IACV,GAAAhB,aAAA;IACFG,IAAA","ignoreList":[]}
|
package/dist/serve/node.mjs
CHANGED
|
@@ -6,10 +6,11 @@ import colors from "picocolors";
|
|
|
6
6
|
function getNetworkAddress() {
|
|
7
7
|
for (const addresses of Object.values(networkInterfaces())) for (const addr of addresses || []) if (addr.family === "IPv4" && !addr.internal) return addr.address;
|
|
8
8
|
}
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
const isBun = typeof process.versions.bun < "u",
|
|
10
|
+
canReusePort = !["win32", "darwin"].includes(platform()) && (isBun || (() => {
|
|
11
|
+
const [major, minor] = process.versions.node.split(".").map(Number);
|
|
12
|
+
return major > 22 || major === 22 && minor >= 12 || major >= 23;
|
|
13
|
+
})());
|
|
13
14
|
async function honoServeNode(app, options) {
|
|
14
15
|
const port = options.port ?? 3e3,
|
|
15
16
|
host = options.host ?? "0.0.0.0";
|
package/dist/serve/node.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createServer","networkInterfaces","platform","getRequestListener","serve","honoServe","colors","getNetworkAddress","addresses","Object","values","addr","family","internal","address","
|
|
1
|
+
{"version":3,"names":["createServer","networkInterfaces","platform","getRequestListener","serve","honoServe","colors","getNetworkAddress","addresses","Object","values","addr","family","internal","address","isBun","process","versions","bun","canReusePort","includes","major","minor","node","split","map","Number","honoServeNode","app","options","port","host","server","listener","fetch","listen","reusePort","hostname","colorUrl","url","cyan","replace","_","port2","bold","localUrl","console","info","green","networkHost","networkUrl","shutdown","close","exit","on","Promise","res"],"sources":["../../src/serve/node.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -38,10 +38,11 @@ function getNetworkAddress() {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
var isBun = typeof process.versions.bun < "u",
|
|
42
|
+
canReusePort = !["win32", "darwin"].includes(platform()) && (isBun || function () {
|
|
43
|
+
var [major, minor] = process.versions.node.split(".").map(Number);
|
|
44
|
+
return major > 22 || major === 22 && minor >= 12 || major >= 23;
|
|
45
|
+
}());
|
|
45
46
|
async function honoServeNode(app, options) {
|
|
46
47
|
var _options_port,
|
|
47
48
|
_options_host,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createServer","networkInterfaces","platform","getRequestListener","serve","honoServe","colors","getNetworkAddress","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","values","Symbol","iterator","_step","next","done","addresses","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","addr","family","internal","address","err","return","
|
|
1
|
+
{"version":3,"names":["createServer","networkInterfaces","platform","getRequestListener","serve","honoServe","colors","getNetworkAddress","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","values","Symbol","iterator","_step","next","done","addresses","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","addr","family","internal","address","err","return","isBun","process","versions","bun","canReusePort","includes","major","minor","node","split","map","Number","honoServeNode","app","options","_options_port","_options_host","port","host","server","listener","fetch"],"sources":["../../src/serve/node.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAA,QAAiC;AAC1C,SAASC,iBAAA,EAAmBC,QAAA,QAAgB;AAC5C,SAASC,kBAAA,QAA0B;AACnC,SAASC,KAAA,IAASC,SAAA,QAAiB;AAGnC,OAAOC,MAAA,MAAY;AAGnB,SAASC,kBAAA,EAAwC;EAC/C,IAAAC,yBAAwB,GAAO;IAAAC,iBAAO,GAAkB,CAAC;IAAAC,cAAA;EACvD;IACE,SAAIC,SAAK,GAAAC,MAAW,CAAAC,MAAW,CAAAZ,iBAAK,IAAAa,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAR,yBAAA,IAAAQ,KAAA,GAAAL,SAAA,CAAAM,IAAA,IAAAC,IAAA,GAAAV,yBAAA;MAClC,IAAAW,SAAO,GAAKH,KAAA,CAAAI,KAAA;QAAAC,0BAAA;QAAAC,kBAAA;QAAAC,eAAA;MAIpB;QAEM,SAAQC,UAAO,GAAQ,CAAAL,SAAS,IAAQ,IAAAL,MAIxC,CAAAC,QAAA,CACJ,CAAC,CAAC,EAAAU,MAAA,EAAS,EAAAJ,0BAA6B,IAAAI,MACvC,GAAAD,UACQ,CAAAP,IAAA,IAAAC,IAAA,GAAAG,0BAAA;UACE,IAAAK,IAAO,GAAKD,MAAI,CAAAL,KAAQ;UACxB,IAAAM,IAAQ,CAAAC,MAAO,WAAU,IAAM,CAAAD,IAAA,CAAAE,QAAgB,EACrD,OAAAF,IAAA,CAAAG,OAAA;QAIP;MACE,EAAM,OAAOC,GAAA;QAGTR,kBAAA,OAAAC,eAAA,GAAAO,GAAA;MAEA;QAGF,IAAM;UACN,CAAAT,0BACA,IAAAG,UAAc,CAAAO,MAAE,IAAM,IAAM,IAAAP,UAAiB,CAAAO,MAAA;QAC/C;UACE,IAAST,kBAAU,EACjB,MAAWC,eAAA;QACX;MACA;IACF;EAGF,SAAMO,GAAA;IASNrB,iBAHa,GACb,IAAAC,cAAkB,GAAAoB,GAAO;EAGvB,UAAM;IACN,IAAI;MACF,CAAAtB,yBAAmB,IAAUG,SAAA,CAAWoB,MAAI,IAAI,QAAApB,SAAA,CAAAoB,MAAA;IAChD,UAAQ;MAAA,IACNtB,iBAAkB,EACpB,MAAAC,cAAA;IACF;EACF;AACA;AAEA,IAAAsB,KAAM,UAAWC,OAAM,CAAAC,QAAA,CAAAC,GAAA;EAAAC,YAAA,KACrB,SACE,SAAc,CAAAC,QACf,CAAAnC,QAAA,QAAA8B,KAAA;IACH,KAAAM,KAAA,EAAAC,KAAA,IAAAN,OAAA,CAAAC,QAAA,CAAAM,IAAA,CAAAC,KAAA,MAAAC,GAAA,CAAAC,MAAA;IAEA,OAAAL,KAAW,SAAUA,KAAA,KAAQ,EAC7B,IAAAC,KAAQ,IAAG,MAAAD,KAAW,MAAQ;EAG5B;AACE,eAAIM,cAAAC,GAAA,EAAAC,OAAA;EAAA,IACLC,aAAA;IAAAC,aAAA;IAAAC,IAAA,IAAAF,aAAA,GAAAD,OAAA,CAAAG,IAAA,cAAAF,aAAA,cAAAA,aAAA;IAAAG,IAAA,IAAAF,aAAA,GAAAF,OAAA,CAAAI,IAAA,cAAAF,aAAA,cAAAA,aAAA;IAAAG,MAAA;EACH,IAACf,YAAA;IACH,IAAAgB,QAAA,GAAAjD,kBAAA,CAAA0C,GAAA,CAAAQ,KAAA","ignoreList":[]}
|
package/expo-plugin.cjs
CHANGED
|
@@ -225,13 +225,21 @@ function addDepsPatchToAppBuildGradle(input) {
|
|
|
225
225
|
`
|
|
226
226
|
/**
|
|
227
227
|
* [vxrn/one] ensure patches are applied
|
|
228
|
+
* uses ExecOperations injection (Gradle 9 compatible)
|
|
228
229
|
*/
|
|
230
|
+
interface InjectedExecOps {
|
|
231
|
+
@Inject
|
|
232
|
+
ExecOperations getExecOps()
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
def injected = objects.newInstance(InjectedExecOps)
|
|
236
|
+
|
|
229
237
|
gradle.taskGraph.whenReady { taskGraph ->
|
|
230
238
|
tasks.named("createBundleReleaseJsAndAssets").configure {
|
|
231
239
|
doFirst {
|
|
232
240
|
def vxrnCli = new File(["node", "--print", "require.resolve('vxrn/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/run.mjs"
|
|
233
|
-
exec {
|
|
234
|
-
commandLine vxrnCli, "patch"
|
|
241
|
+
injected.execOps.exec {
|
|
242
|
+
commandLine "node", vxrnCli, "patch"
|
|
235
243
|
}
|
|
236
244
|
}
|
|
237
245
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vxrn",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.8",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -66,17 +66,17 @@
|
|
|
66
66
|
"@hono/node-server": "^1.19.10",
|
|
67
67
|
"@react-native/dev-middleware": "^0.83.4",
|
|
68
68
|
"@rollup/plugin-node-resolve": "^15.3.1",
|
|
69
|
-
"@vxrn/compiler": "1.12.
|
|
70
|
-
"@vxrn/debug": "1.12.
|
|
71
|
-
"@vxrn/query-string": "1.12.
|
|
72
|
-
"@vxrn/react-native-prebuilt": "1.12.
|
|
73
|
-
"@vxrn/resolve": "1.12.
|
|
74
|
-
"@vxrn/safe-area": "1.12.
|
|
75
|
-
"@vxrn/url-parse": "1.12.
|
|
76
|
-
"@vxrn/utils": "1.12.
|
|
77
|
-
"@vxrn/vendor": "1.12.
|
|
78
|
-
"@vxrn/vite-flow": "1.12.
|
|
79
|
-
"@vxrn/vite-plugin-metro": "1.12.
|
|
69
|
+
"@vxrn/compiler": "1.12.8",
|
|
70
|
+
"@vxrn/debug": "1.12.8",
|
|
71
|
+
"@vxrn/query-string": "1.12.8",
|
|
72
|
+
"@vxrn/react-native-prebuilt": "1.12.8",
|
|
73
|
+
"@vxrn/resolve": "1.12.8",
|
|
74
|
+
"@vxrn/safe-area": "1.12.8",
|
|
75
|
+
"@vxrn/url-parse": "1.12.8",
|
|
76
|
+
"@vxrn/utils": "1.12.8",
|
|
77
|
+
"@vxrn/vendor": "1.12.8",
|
|
78
|
+
"@vxrn/vite-flow": "1.12.8",
|
|
79
|
+
"@vxrn/vite-plugin-metro": "1.12.8",
|
|
80
80
|
"citty": "^0.1.6",
|
|
81
81
|
"dotenv": "^17.2.1",
|
|
82
82
|
"dotenv-expand": "^12.0.2",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"devDependencies": {
|
|
99
99
|
"@biomejs/biome": "2.3.3",
|
|
100
100
|
"@react-native-community/cli": "^20.1.2",
|
|
101
|
-
"@tamagui/build": "2.0.0-rc.
|
|
101
|
+
"@tamagui/build": "2.0.0-rc.31",
|
|
102
102
|
"@types/find-node-modules": "^2.1.2",
|
|
103
103
|
"@types/node": "^24.10.0",
|
|
104
104
|
"@types/qrcode-terminal": "^0",
|
|
@@ -14,19 +14,28 @@ export async function getServerOptionsFilled(
|
|
|
14
14
|
const portToUse = requestedPort ?? defaultPort
|
|
15
15
|
const protocol = 'http:' as const
|
|
16
16
|
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
// in cluster worker mode with SO_REUSEPORT, skip the port check —
|
|
18
|
+
// multiple processes intentionally bind the same port
|
|
19
|
+
const isClusterWorker = process.env.ONE_CLUSTER_WORKER === '1'
|
|
20
|
+
|
|
21
|
+
let port: number
|
|
22
|
+
if (isClusterWorker) {
|
|
23
|
+
port = portToUse
|
|
24
|
+
} else {
|
|
25
|
+
// if a specific port was requested, only try that port (strict mode)
|
|
26
|
+
// otherwise, allow finding an available port in a range
|
|
27
|
+
port = await getPort({
|
|
28
|
+
port: portToUse,
|
|
29
|
+
portRange: requestedPort ? [portToUse, portToUse] : [portToUse, portToUse + 100],
|
|
30
|
+
host,
|
|
31
|
+
})
|
|
24
32
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
33
|
+
// if user explicitly requested a port and we couldn't get it, error out
|
|
34
|
+
if (requestedPort && port !== requestedPort) {
|
|
35
|
+
throw new Error(
|
|
36
|
+
`Port ${requestedPort} is already in use. Either free the port or use a different one.`
|
|
37
|
+
)
|
|
38
|
+
}
|
|
30
39
|
}
|
|
31
40
|
|
|
32
41
|
// Use localhost for the URL when host is 0.0.0.0 since that's how clients will access it
|
package/src/serve/node.ts
CHANGED
|
@@ -17,13 +17,17 @@ function getNetworkAddress(): string | undefined {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
const isBun = typeof process.versions.bun !== 'undefined'
|
|
21
|
+
|
|
22
|
+
// linux 3.9+ supports SO_REUSEPORT
|
|
23
|
+
// node 22.12+ exposes reusePort in listen(), bun supports it natively
|
|
21
24
|
const canReusePort =
|
|
22
25
|
!['win32', 'darwin'].includes(platform()) &&
|
|
23
|
-
(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
(isBun ||
|
|
27
|
+
(() => {
|
|
28
|
+
const [major, minor] = process.versions.node.split('.').map(Number)
|
|
29
|
+
return major > 22 || (major === 22 && minor >= 12) || major >= 23
|
|
30
|
+
})())
|
|
27
31
|
|
|
28
32
|
export { canReusePort }
|
|
29
33
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getServerOptionsFilled.d.ts","sourceRoot":"","sources":["../../src/config/getServerOptionsFilled.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEzE,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,EACpC,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"getServerOptionsFilled.d.ts","sourceRoot":"","sources":["../../src/config/getServerOptionsFilled.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEzE,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,EACpC,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,sBAAsB,CAAC,CA8CjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/serve/node.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAEhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/serve/node.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAEhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAgBhD,QAAA,MAAM,YAAY,SAMT,CAAA;AAET,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB,wBAAsB,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,iBAsDvE"}
|