devflare 1.0.0-next.69 → 1.0.0-next.70
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/_chunks/{cli-3RIFRu7O.js → cli-ZJYtm-lW.js} +1 -1
- package/dist/_chunks/{dev-D8JuhNjD.js → dev-BagtFegV.js} +197 -2
- package/dist/cli/index.js +1 -1
- package/dist/dev-server/runtime-health.d.ts +79 -0
- package/dist/dev-server/runtime-health.d.ts.map +1 -0
- package/dist/dev-server/server.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -1140,7 +1140,7 @@ async function runInit(parsed, logger, options) {
|
|
|
1140
1140
|
return runInitCommand(parsed, logger, options);
|
|
1141
1141
|
}
|
|
1142
1142
|
async function runDev(parsed, logger, options) {
|
|
1143
|
-
const { runDevCommand } = await import("./dev-
|
|
1143
|
+
const { runDevCommand } = await import("./dev-BagtFegV.js");
|
|
1144
1144
|
return runDevCommand(parsed, logger, options);
|
|
1145
1145
|
}
|
|
1146
1146
|
async function runWorkspace(parsed, logger, options) {
|
|
@@ -12,6 +12,7 @@ import { r as stopSpawnedProcessTree, t as detectViteProject } from "./vite-util
|
|
|
12
12
|
import { dirname, relative, resolve } from "pathe";
|
|
13
13
|
import { exec } from "node:child_process";
|
|
14
14
|
import { createConsola } from "consola";
|
|
15
|
+
import { connect } from "node:net";
|
|
15
16
|
import { promisify } from "node:util";
|
|
16
17
|
//#region src/bridge/miniflare.ts
|
|
17
18
|
function isIgnorableMiniflareDisposeError(error) {
|
|
@@ -204,6 +205,123 @@ function createReloadQueue({ reload, logger }) {
|
|
|
204
205
|
};
|
|
205
206
|
}
|
|
206
207
|
//#endregion
|
|
208
|
+
//#region src/dev-server/runtime-health.ts
|
|
209
|
+
/** How often the runtime is probed. Cheap enough to be free, quick enough to catch a death between requests. */
|
|
210
|
+
const RUNTIME_PROBE_INTERVAL_MS = 2e3;
|
|
211
|
+
/** How long a single probe waits for the connection before counting as a failure. */
|
|
212
|
+
const RUNTIME_PROBE_TIMEOUT_MS = 1e3;
|
|
213
|
+
/**
|
|
214
|
+
* Whether something is accepting connections at this address.
|
|
215
|
+
*
|
|
216
|
+
* A plain TCP connect, deliberately: the bridge only needs the listener to exist, and an HTTP request
|
|
217
|
+
* would need a route that is meaningful for every app shape — a worker that 500s, hangs, or has no
|
|
218
|
+
* matching route would then read as "dead" and have its runtime rebuilt underneath it. The tradeoff
|
|
219
|
+
* is that a FOREIGN listener on the same port reads as alive; that only matters if something else
|
|
220
|
+
* seizes the port while the runtime is down, in which case the rebuild fails on the address anyway
|
|
221
|
+
* and the attempt limit reports it.
|
|
222
|
+
*
|
|
223
|
+
* @param options - `host`/`port` of the runtime, and how long to wait before giving up on the connect.
|
|
224
|
+
* @returns true when the connection was accepted.
|
|
225
|
+
*/
|
|
226
|
+
function probeTcpReachable(options) {
|
|
227
|
+
const { host, port, timeoutMs = RUNTIME_PROBE_TIMEOUT_MS } = options;
|
|
228
|
+
return new Promise((resolve) => {
|
|
229
|
+
let settled = false;
|
|
230
|
+
const settle = (reachable) => {
|
|
231
|
+
if (settled) return;
|
|
232
|
+
settled = true;
|
|
233
|
+
socket.destroy();
|
|
234
|
+
resolve(reachable);
|
|
235
|
+
};
|
|
236
|
+
const socket = connect({
|
|
237
|
+
host,
|
|
238
|
+
port
|
|
239
|
+
});
|
|
240
|
+
socket.setTimeout(timeoutMs);
|
|
241
|
+
socket.once("connect", () => settle(true));
|
|
242
|
+
socket.once("timeout", () => settle(false));
|
|
243
|
+
socket.on("error", () => settle(false));
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* A connect target that is dialable regardless of the address the runtime was bound to.
|
|
248
|
+
*
|
|
249
|
+
* A wildcard bind is not itself a valid destination on every platform, so probe the loopback address
|
|
250
|
+
* of the SAME family. The families do not cross: a `::` bind is reachable on `::1` and NOT on
|
|
251
|
+
* `127.0.0.1`, so collapsing both wildcards to the IPv4 loopback makes a healthy IPv6 runtime look
|
|
252
|
+
* dead — and the watchdog would then kill and rebuild it on a loop.
|
|
253
|
+
*
|
|
254
|
+
* @param host - the configured Miniflare host.
|
|
255
|
+
* @returns a host that can be connected to.
|
|
256
|
+
*/
|
|
257
|
+
function dialableHost(host) {
|
|
258
|
+
if (host === "::") return "::1";
|
|
259
|
+
if (host === "0.0.0.0") return "127.0.0.1";
|
|
260
|
+
return host;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Watch a runtime and report it lost when it stops answering.
|
|
264
|
+
*
|
|
265
|
+
* The next probe is scheduled only once the previous one (and any rebuild it triggered) has finished,
|
|
266
|
+
* so a slow rebuild cannot stack up signals. Reaching the threshold resets the failure count, which
|
|
267
|
+
* spaces successive rebuild attempts a full threshold apart instead of firing on every probe.
|
|
268
|
+
*
|
|
269
|
+
* @param options - see {@link RuntimeWatchdogOptions}.
|
|
270
|
+
* @returns a handle whose `stop()` ends the watch.
|
|
271
|
+
*/
|
|
272
|
+
function createRuntimeWatchdog(options) {
|
|
273
|
+
const { probe, onRuntimeLost, intervalMs = RUNTIME_PROBE_INTERVAL_MS, failureThreshold = 3, recoveryAttemptLimit = 3, setTimer = (fn, ms) => setTimeout(fn, ms), clearTimer = (handle) => clearTimeout(handle), logger } = options;
|
|
274
|
+
let stopped = false;
|
|
275
|
+
let timer = null;
|
|
276
|
+
let consecutiveFailures = 0;
|
|
277
|
+
let recoveryAttempts = 0;
|
|
278
|
+
function scheduleNext() {
|
|
279
|
+
if (stopped) return;
|
|
280
|
+
timer = setTimer(() => {
|
|
281
|
+
tick();
|
|
282
|
+
}, intervalMs);
|
|
283
|
+
}
|
|
284
|
+
async function tick() {
|
|
285
|
+
if (stopped) return;
|
|
286
|
+
const reachable = await probe().catch(() => false);
|
|
287
|
+
if (stopped) return;
|
|
288
|
+
if (reachable) {
|
|
289
|
+
consecutiveFailures = 0;
|
|
290
|
+
recoveryAttempts = 0;
|
|
291
|
+
scheduleNext();
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
consecutiveFailures++;
|
|
295
|
+
if (consecutiveFailures < failureThreshold) {
|
|
296
|
+
scheduleNext();
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
recoveryAttempts++;
|
|
300
|
+
if (recoveryAttempts > recoveryAttemptLimit) {
|
|
301
|
+
logger?.error(`The local runtime keeps going away after ${recoveryAttemptLimit} rebuild attempts. Giving up so the real error stays visible — restart \`devflare dev\` once it is resolved.`);
|
|
302
|
+
stop();
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
try {
|
|
306
|
+
await onRuntimeLost();
|
|
307
|
+
} catch (error) {
|
|
308
|
+
logger?.error("[devflare dev] runtime rebuild failed:", error);
|
|
309
|
+
}
|
|
310
|
+
consecutiveFailures = 0;
|
|
311
|
+
scheduleNext();
|
|
312
|
+
}
|
|
313
|
+
function stop() {
|
|
314
|
+
if (stopped) return;
|
|
315
|
+
stopped = true;
|
|
316
|
+
if (timer !== null) {
|
|
317
|
+
clearTimer(timer);
|
|
318
|
+
timer = null;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
scheduleNext();
|
|
322
|
+
return { stop };
|
|
323
|
+
}
|
|
324
|
+
//#endregion
|
|
207
325
|
//#region src/dev-server/worker-source-watcher.ts
|
|
208
326
|
async function startWorkerSourceWatcher(options) {
|
|
209
327
|
const { watchTargets, resolvedWorkerConfigPath, logger, onConfigChange, onWorkerChange } = options;
|
|
@@ -313,8 +431,55 @@ function createDevServer(options) {
|
|
|
313
431
|
const { cwd, configPath, vitePort = 5173, miniflarePort = 8787, miniflareHost = "127.0.0.1", enableVite: enableViteRequested = true, persist = true, logger, verbose = false, debug = process.env.DEVFLARE_DEBUG === "true" } = options;
|
|
314
432
|
const state = createDevServerState({ enableVite: enableViteRequested });
|
|
315
433
|
const r2PresignSecret = `${crypto.randomUUID()}${crypto.randomUUID()}`;
|
|
434
|
+
/** Whether the local runtime is still accepting connections. */
|
|
435
|
+
async function isRuntimeReachable() {
|
|
436
|
+
return probeTcpReachable({
|
|
437
|
+
host: dialableHost(miniflareHost),
|
|
438
|
+
port: miniflarePort
|
|
439
|
+
});
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Drop a runtime that has already gone away.
|
|
443
|
+
*
|
|
444
|
+
* Disposing a dead Miniflare routinely throws (its runtime is not there to talk to), which is not a
|
|
445
|
+
* reason to abandon the rebuild — so anything unrecognised is logged rather than propagated.
|
|
446
|
+
*/
|
|
447
|
+
async function discardDeadMiniflare() {
|
|
448
|
+
if (!state.miniflare) return;
|
|
449
|
+
try {
|
|
450
|
+
await state.miniflare.dispose();
|
|
451
|
+
} catch (error) {
|
|
452
|
+
if (!isIgnorableMiniflareDisposeError(error)) logger?.debug("Disposing the dead Miniflare threw (continuing with the rebuild):", error);
|
|
453
|
+
}
|
|
454
|
+
state.miniflare = null;
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Set once {@link stop} begins. A rebuild started just before shutdown would otherwise construct a
|
|
458
|
+
* fresh Miniflare AFTER the teardown disposed the old one, leaking a runtime that outlives the
|
|
459
|
+
* server — which shows up as the next thing to use the port hanging.
|
|
460
|
+
*/
|
|
461
|
+
let isStopping = false;
|
|
462
|
+
/**
|
|
463
|
+
* Set once the runtime has come up at least once. Gates the rebuild path so a reload that arrives
|
|
464
|
+
* before the first start cannot mistake "not started yet" for "died".
|
|
465
|
+
*/
|
|
466
|
+
let hasStartedRuntime = false;
|
|
316
467
|
const reloadQueue = createReloadQueue({
|
|
317
468
|
reload: async () => {
|
|
469
|
+
if (isStopping) return;
|
|
470
|
+
if (hasStartedRuntime && !await isRuntimeReachable()) {
|
|
471
|
+
if (isStopping) return;
|
|
472
|
+
logger?.warn("Local runtime stopped responding — rebuilding it");
|
|
473
|
+
await discardDeadMiniflare();
|
|
474
|
+
await startMiniflare(state.currentDoResult);
|
|
475
|
+
await runD1Migrations({
|
|
476
|
+
cwd,
|
|
477
|
+
config: state.config,
|
|
478
|
+
miniflarePort,
|
|
479
|
+
logger
|
|
480
|
+
});
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
318
483
|
if (!state.miniflare) return;
|
|
319
484
|
const { Log, LogLevel } = await import("miniflare");
|
|
320
485
|
const mfConfig = buildMiniflareConfig(state.currentDoResult);
|
|
@@ -327,6 +492,29 @@ function createDevServer(options) {
|
|
|
327
492
|
},
|
|
328
493
|
logger
|
|
329
494
|
});
|
|
495
|
+
/**
|
|
496
|
+
* Watches the runtime for the rest of the process's life, once it is first up.
|
|
497
|
+
*
|
|
498
|
+
* Held here rather than on {@link DevServerState} because it is pure server orchestration — it owns
|
|
499
|
+
* no resource the teardown sequence has to order around, only a timer.
|
|
500
|
+
*/
|
|
501
|
+
let runtimeWatchdog = null;
|
|
502
|
+
/**
|
|
503
|
+
* Begin watching the runtime, if it is not already being watched.
|
|
504
|
+
*
|
|
505
|
+
* Deliberately idempotent, because `startMiniflare` also runs on the REBUILD path — replacing the
|
|
506
|
+
* watchdog there would hand each rebuild a fresh recovery budget, so a probe that is wrong about a
|
|
507
|
+
* healthy runtime could rebuild it forever without the attempt limit ever biting. One watchdog for
|
|
508
|
+
* the server's lifetime keeps that budget meaningful; only a successful probe clears it.
|
|
509
|
+
*/
|
|
510
|
+
function watchRuntimeHealth() {
|
|
511
|
+
if (isStopping || runtimeWatchdog) return;
|
|
512
|
+
runtimeWatchdog = createRuntimeWatchdog({
|
|
513
|
+
probe: isRuntimeReachable,
|
|
514
|
+
onRuntimeLost: () => reloadQueue.schedule(),
|
|
515
|
+
logger
|
|
516
|
+
});
|
|
517
|
+
}
|
|
330
518
|
async function bundleMainWorker() {
|
|
331
519
|
if (!state.mainWorkerScriptPath || !state.config) {
|
|
332
520
|
state.bundledMainWorkerScriptPath = null;
|
|
@@ -383,10 +571,13 @@ function createDevServer(options) {
|
|
|
383
571
|
mfConfig.handleRuntimeStdio = createRuntimeStdioForwarder(logger);
|
|
384
572
|
const shouldLogMiniflareDiagnostics = verbose || debug;
|
|
385
573
|
if (shouldLogMiniflareDiagnostics) logMiniflareConfigDiagnostics(logger, mfConfig);
|
|
386
|
-
|
|
387
|
-
|
|
574
|
+
const miniflare = new Miniflare(mfConfig);
|
|
575
|
+
state.miniflare = miniflare;
|
|
576
|
+
await miniflare.ready;
|
|
388
577
|
const displayHost = miniflareHost === "0.0.0.0" || miniflareHost === "::" ? "localhost" : miniflareHost;
|
|
389
578
|
logger?.success(`Miniflare ready on http://${displayHost}:${miniflarePort}`);
|
|
579
|
+
hasStartedRuntime = true;
|
|
580
|
+
watchRuntimeHealth();
|
|
390
581
|
if (shouldLogMiniflareDiagnostics) await logMiniflareBindingDiagnostics(logger, state.miniflare, mfConfig);
|
|
391
582
|
}
|
|
392
583
|
/**
|
|
@@ -552,6 +743,10 @@ function createDevServer(options) {
|
|
|
552
743
|
* Stop the dev server
|
|
553
744
|
*/
|
|
554
745
|
async function stop() {
|
|
746
|
+
isStopping = true;
|
|
747
|
+
runtimeWatchdog?.stop();
|
|
748
|
+
runtimeWatchdog = null;
|
|
749
|
+
await reloadQueue.drain();
|
|
555
750
|
await disposeDevServerState(state);
|
|
556
751
|
}
|
|
557
752
|
/**
|
package/dist/cli/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as runCli, t as parseArgs } from "../_chunks/cli-
|
|
1
|
+
import { n as runCli, t as parseArgs } from "../_chunks/cli-ZJYtm-lW.js";
|
|
2
2
|
export { parseArgs, runCli };
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { ConsolaInstance } from 'consola';
|
|
2
|
+
/** How often the runtime is probed. Cheap enough to be free, quick enough to catch a death between requests. */
|
|
3
|
+
export declare const RUNTIME_PROBE_INTERVAL_MS = 2000;
|
|
4
|
+
/**
|
|
5
|
+
* Consecutive failed probes before the runtime is declared gone. More than one so a probe that lands
|
|
6
|
+
* inside a legitimate reload — when the listener is briefly absent — does not trigger a rebuild.
|
|
7
|
+
*/
|
|
8
|
+
export declare const RUNTIME_PROBE_FAILURE_THRESHOLD = 3;
|
|
9
|
+
/** How long a single probe waits for the connection before counting as a failure. */
|
|
10
|
+
export declare const RUNTIME_PROBE_TIMEOUT_MS = 1000;
|
|
11
|
+
/**
|
|
12
|
+
* How many times an outage may be recovered before the watchdog stands down. A runtime that dies
|
|
13
|
+
* immediately on every rebuild is broken in a way retrying cannot fix; looping on it would bury the
|
|
14
|
+
* real error under restart noise.
|
|
15
|
+
*/
|
|
16
|
+
export declare const RUNTIME_RECOVERY_ATTEMPT_LIMIT = 3;
|
|
17
|
+
/**
|
|
18
|
+
* Whether something is accepting connections at this address.
|
|
19
|
+
*
|
|
20
|
+
* A plain TCP connect, deliberately: the bridge only needs the listener to exist, and an HTTP request
|
|
21
|
+
* would need a route that is meaningful for every app shape — a worker that 500s, hangs, or has no
|
|
22
|
+
* matching route would then read as "dead" and have its runtime rebuilt underneath it. The tradeoff
|
|
23
|
+
* is that a FOREIGN listener on the same port reads as alive; that only matters if something else
|
|
24
|
+
* seizes the port while the runtime is down, in which case the rebuild fails on the address anyway
|
|
25
|
+
* and the attempt limit reports it.
|
|
26
|
+
*
|
|
27
|
+
* @param options - `host`/`port` of the runtime, and how long to wait before giving up on the connect.
|
|
28
|
+
* @returns true when the connection was accepted.
|
|
29
|
+
*/
|
|
30
|
+
export declare function probeTcpReachable(options: {
|
|
31
|
+
host: string;
|
|
32
|
+
port: number;
|
|
33
|
+
timeoutMs?: number;
|
|
34
|
+
}): Promise<boolean>;
|
|
35
|
+
/**
|
|
36
|
+
* A connect target that is dialable regardless of the address the runtime was bound to.
|
|
37
|
+
*
|
|
38
|
+
* A wildcard bind is not itself a valid destination on every platform, so probe the loopback address
|
|
39
|
+
* of the SAME family. The families do not cross: a `::` bind is reachable on `::1` and NOT on
|
|
40
|
+
* `127.0.0.1`, so collapsing both wildcards to the IPv4 loopback makes a healthy IPv6 runtime look
|
|
41
|
+
* dead — and the watchdog would then kill and rebuild it on a loop.
|
|
42
|
+
*
|
|
43
|
+
* @param host - the configured Miniflare host.
|
|
44
|
+
* @returns a host that can be connected to.
|
|
45
|
+
*/
|
|
46
|
+
export declare function dialableHost(host: string): string;
|
|
47
|
+
export interface RuntimeWatchdogOptions {
|
|
48
|
+
/** Answers "is the runtime still there?"; injected so the schedule can be tested without sockets. */
|
|
49
|
+
probe: () => Promise<boolean>;
|
|
50
|
+
/** Invoked once per outage, after {@link RUNTIME_PROBE_FAILURE_THRESHOLD} consecutive failures. */
|
|
51
|
+
onRuntimeLost: () => Promise<void>;
|
|
52
|
+
/** Probe period. */
|
|
53
|
+
intervalMs?: number;
|
|
54
|
+
/** Consecutive failures that constitute an outage. */
|
|
55
|
+
failureThreshold?: number;
|
|
56
|
+
/** Consecutive unrecovered outages before the watchdog stands down. */
|
|
57
|
+
recoveryAttemptLimit?: number;
|
|
58
|
+
/** Schedules the next probe; injected so tests can drive the clock. */
|
|
59
|
+
setTimer?: (fn: () => void, ms: number) => unknown;
|
|
60
|
+
/** Cancels a scheduled probe. */
|
|
61
|
+
clearTimer?: (handle: unknown) => void;
|
|
62
|
+
logger?: ConsolaInstance;
|
|
63
|
+
}
|
|
64
|
+
export interface RuntimeWatchdog {
|
|
65
|
+
/** Stop probing. Idempotent. */
|
|
66
|
+
stop(): void;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Watch a runtime and report it lost when it stops answering.
|
|
70
|
+
*
|
|
71
|
+
* The next probe is scheduled only once the previous one (and any rebuild it triggered) has finished,
|
|
72
|
+
* so a slow rebuild cannot stack up signals. Reaching the threshold resets the failure count, which
|
|
73
|
+
* spaces successive rebuild attempts a full threshold apart instead of firing on every probe.
|
|
74
|
+
*
|
|
75
|
+
* @param options - see {@link RuntimeWatchdogOptions}.
|
|
76
|
+
* @returns a handle whose `stop()` ends the watch.
|
|
77
|
+
*/
|
|
78
|
+
export declare function createRuntimeWatchdog(options: RuntimeWatchdogOptions): RuntimeWatchdog;
|
|
79
|
+
//# sourceMappingURL=runtime-health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-health.d.ts","sourceRoot":"","sources":["../../src/dev-server/runtime-health.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,gHAAgH;AAChH,eAAO,MAAM,yBAAyB,OAAO,CAAA;AAC7C;;;GAGG;AACH,eAAO,MAAM,+BAA+B,IAAI,CAAA;AAChD,qFAAqF;AACrF,eAAO,MAAM,wBAAwB,OAAO,CAAA;AAC5C;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,IAAI,CAAA;AAE/C;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,MAAM,WAAW,sBAAsB;IACtC,qGAAqG;IACrG,KAAK,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,mGAAmG;IACnG,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,oBAAoB;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAA;IAClD,iCAAiC;IACjC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,MAAM,CAAC,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,eAAe;IAC/B,gCAAgC;IAChC,IAAI,IAAI,IAAI,CAAA;CACZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CA+EtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/dev-server/server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/dev-server/server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,WAAW,CAAA;AAwD3D,MAAM,WAAW,gBAAgB;IAChC,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,sBAAsB;IACtB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,SAAS;IACzB,2BAA2B;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,0BAA0B;IAC1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,yCAAyC;IACzC,YAAY,IAAI,aAAa,GAAG,IAAI,CAAA;CACpC;AAMD,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CA0epE"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,6 @@ import { a as ConfigResourceResolutionError, d as configSchema, n as ConfigValid
|
|
|
5
5
|
import { n as compileConfig, s as stringifyConfig } from "./_chunks/compiler-UxXQgEPq.js";
|
|
6
6
|
import { t as workerName } from "./_chunks/workerName-kEXwmV2m.js";
|
|
7
7
|
import { n as getDurableObjectOptions, t as durableObject } from "./_chunks/decorators-eXNZ1S0N.js";
|
|
8
|
-
import { n as runCli, t as parseArgs } from "./_chunks/cli-
|
|
8
|
+
import { n as runCli, t as parseArgs } from "./_chunks/cli-ZJYtm-lW.js";
|
|
9
9
|
import { i as vars, r as env } from "./_chunks/env-D4uJqqgu.js";
|
|
10
10
|
export { ConfigNotFoundError, ConfigResourceResolutionError, ConfigValidationError, compileConfig, configSchema, defineConfig as default, defineConfig, defineWorkspace, durableObject, env, getDurableObjectOptions, loadConfig, loadResolvedConfig, parseArgs, preview, ref, runCli, stringifyConfig, vars, workerName };
|
package/package.json
CHANGED