@absolutejs/absolute 0.19.0-beta.706 → 0.19.0-beta.707
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/angular/components/constants.js +78 -0
- package/dist/angular/components/core/streamingSlotRegistrar.js +58 -0
- package/dist/angular/components/core/streamingSlotRegistry.js +114 -0
- package/dist/angular/components/defer-slot-payload.js +6 -0
- package/dist/angular/components/defer-slot-templates.directive.js +44 -0
- package/dist/angular/components/defer-slot.component.js +149 -0
- package/dist/angular/components/image.component.js +202 -0
- package/dist/angular/components/index.js +4 -0
- package/dist/angular/components/stream-slot.component.js +103 -0
- package/dist/angular/index.js +7 -9
- package/dist/angular/index.js.map +4 -4
- package/dist/angular/server.js +7 -9
- package/dist/angular/server.js.map +4 -4
- package/dist/build.js +19 -26
- package/dist/build.js.map +4 -4
- package/dist/cli/index.js +197 -144
- package/dist/client/index.js +2 -4
- package/dist/client/index.js.map +2 -2
- package/dist/dev/client/constants.ts +26 -0
- package/dist/dev/client/cssUtils.ts +307 -0
- package/dist/dev/client/domDiff.ts +226 -0
- package/dist/dev/client/domState.ts +421 -0
- package/dist/dev/client/domTracker.ts +61 -0
- package/dist/dev/client/errorOverlay.ts +184 -0
- package/dist/dev/client/frameworkDetect.ts +63 -0
- package/dist/dev/client/handlers/angular.ts +572 -0
- package/dist/dev/client/handlers/angularRuntime.ts +226 -0
- package/dist/dev/client/handlers/html.ts +364 -0
- package/dist/dev/client/handlers/htmx.ts +278 -0
- package/dist/dev/client/handlers/react.ts +108 -0
- package/dist/dev/client/handlers/rebuild.ts +153 -0
- package/dist/dev/client/handlers/svelte.ts +334 -0
- package/dist/dev/client/handlers/vue.ts +292 -0
- package/dist/dev/client/headPatch.ts +233 -0
- package/dist/dev/client/hmrClient.ts +273 -0
- package/dist/dev/client/hmrState.ts +14 -0
- package/dist/dev/client/moduleVersions.ts +62 -0
- package/dist/dev/client/reactRefreshSetup.ts +32 -0
- package/dist/index.js +29 -33
- package/dist/index.js.map +5 -5
- package/dist/islands/index.js +6 -8
- package/dist/islands/index.js.map +4 -4
- package/dist/react/browser.js +7 -7
- package/dist/react/browser.js.map +2 -2
- package/dist/react/components/browser/index.js +101 -101
- package/dist/react/components/index.js +104 -104
- package/dist/react/components/index.js.map +2 -2
- package/dist/react/index.js +17 -19
- package/dist/react/index.js.map +4 -4
- package/dist/react/server.js +3 -3
- package/dist/react/server.js.map +3 -3
- package/dist/src/angular/components/constants.d.ts +75 -0
- package/dist/src/angular/components/defer-slot-templates.directive.d.ts +7 -0
- package/dist/src/angular/components/defer-slot.component.d.ts +5 -2
- package/dist/src/angular/components/image.component.d.ts +5 -2
- package/dist/src/angular/components/index.d.ts +4 -4
- package/dist/src/angular/components/stream-slot.component.d.ts +3 -0
- package/dist/src/constants.d.ts +1 -0
- package/dist/svelte/components/AwaitSlot.svelte +39 -0
- package/dist/svelte/components/AwaitSlot.svelte.d.ts +2 -0
- package/dist/svelte/components/Head.svelte +144 -0
- package/dist/svelte/components/Head.svelte.d.ts +2 -0
- package/dist/svelte/components/Image.svelte +164 -0
- package/dist/svelte/components/Image.svelte.d.ts +5 -0
- package/dist/svelte/components/Island.svelte +71 -0
- package/dist/svelte/components/Island.svelte.d.ts +5 -0
- package/dist/svelte/components/JsonLd.svelte +21 -0
- package/dist/svelte/components/JsonLd.svelte.d.ts +2 -0
- package/dist/svelte/components/StreamSlot.svelte +41 -0
- package/dist/svelte/components/StreamSlot.svelte.d.ts +2 -0
- package/dist/svelte/index.js +7 -9
- package/dist/svelte/index.js.map +4 -4
- package/dist/svelte/server.js +4 -4
- package/dist/svelte/server.js.map +3 -3
- package/dist/types/globals.d.ts +122 -0
- package/dist/vue/index.js +7 -9
- package/dist/vue/index.js.map +4 -4
- package/dist/vue/server.js +3 -3
- package/dist/vue/server.js.map +3 -3
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -18,7 +18,7 @@ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
|
18
18
|
var __require = import.meta.require;
|
|
19
19
|
|
|
20
20
|
// src/constants.ts
|
|
21
|
-
var ANSI_ESCAPE_LENGTH = 3, ASCII_SPACE = 32, BASE_36_RADIX = 36, BYTES_PER_KILOBYTE = 1024, CLI_ARGS_OFFSET = 3, DEFAULT_PORT = 3000, HTTP_STATUS_OK = 200, HOURS_IN_DAY = 24, HOURS_IN_HALF_DAY = 12, MAX_ERROR_LENGTH = 200, MILLISECONDS_IN_A_SECOND = 1000, MINUTES_IN_AN_HOUR = 60, SECONDS_IN_A_MINUTE = 60, MILLISECONDS_IN_A_MINUTE, MILLISECONDS_IN_A_DAY, SIGINT_EXIT_CODE = 130, SIGTERM_EXIT_CODE = 143, TIME_PRECISION = 2, TWO_THIRDS, UNFOUND_INDEX = -1, WORKSPACE_COMMAND_ARGS_OFFSET = 3, WORKSPACE_FAILURE_LOG_PRINT_LIMIT = 30, WORKSPACE_FAILURE_RECENT_LOG_LIMIT = 60, WORKSPACE_READY_ATTEMPT_TIMEOUT_MS = 5000, WORKSPACE_READY_PROBE_INTERVAL_MS = 250, WORKSPACE_READY_TIMEOUT_MS = 30000, WORKSPACE_SHUTDOWN_TIMEOUT_MS = 1e4, WORKSPACE_TUI_DEFAULT_HEIGHT = 28, WORKSPACE_TUI_DEFAULT_WIDTH = 100, WORKSPACE_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS = 30, WORKSPACE_TUI_FOOTER_LINE_COUNT = 3, WORKSPACE_TUI_MIN_LOG_HEIGHT = 3, WORKSPACE_TUI_MIN_SERVICE_NAME_WIDTH = 7, WORKSPACE_TUI_MIN_TARGET_WIDTH = 8, WORKSPACE_TUI_MIN_WRAP_WIDTH = 12, WORKSPACE_TUI_PROMPT_CURSOR_OFFSET = 3, WORKSPACE_TUI_RECENT_LOG_LIMIT = 40, WORKSPACE_TUI_RENDER_DEBOUNCE_MS = 16, WORKSPACE_TUI_STATUS_WIDTH = 10, WORKSPACE_TUI_TARGET_PADDING_WIDTH = 6, WORKSPACE_TUI_VISIBILITY_WIDTH = 8;
|
|
21
|
+
var ANSI_ESCAPE_CODE = 27, ANSI_ESCAPE_LENGTH = 3, ASCII_SPACE = 32, BASE_36_RADIX = 36, BYTES_PER_KILOBYTE = 1024, CLI_ARGS_OFFSET = 3, DEFAULT_PORT = 3000, HTTP_STATUS_OK = 200, HOURS_IN_DAY = 24, HOURS_IN_HALF_DAY = 12, MAX_ERROR_LENGTH = 200, MILLISECONDS_IN_A_SECOND = 1000, MINUTES_IN_AN_HOUR = 60, SECONDS_IN_A_MINUTE = 60, MILLISECONDS_IN_A_MINUTE, MILLISECONDS_IN_A_DAY, SIGINT_EXIT_CODE = 130, SIGTERM_EXIT_CODE = 143, TIME_PRECISION = 2, TWO_THIRDS, UNFOUND_INDEX = -1, WORKSPACE_COMMAND_ARGS_OFFSET = 3, WORKSPACE_FAILURE_LOG_PRINT_LIMIT = 30, WORKSPACE_FAILURE_RECENT_LOG_LIMIT = 60, WORKSPACE_READY_ATTEMPT_TIMEOUT_MS = 5000, WORKSPACE_READY_PROBE_INTERVAL_MS = 250, WORKSPACE_READY_TIMEOUT_MS = 30000, WORKSPACE_SHUTDOWN_TIMEOUT_MS = 1e4, WORKSPACE_TUI_DEFAULT_HEIGHT = 28, WORKSPACE_TUI_DEFAULT_WIDTH = 100, WORKSPACE_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS = 30, WORKSPACE_TUI_FOOTER_LINE_COUNT = 3, WORKSPACE_TUI_MIN_LOG_HEIGHT = 3, WORKSPACE_TUI_MIN_SERVICE_NAME_WIDTH = 7, WORKSPACE_TUI_MIN_TARGET_WIDTH = 8, WORKSPACE_TUI_MIN_WRAP_WIDTH = 12, WORKSPACE_TUI_PROMPT_CURSOR_OFFSET = 3, WORKSPACE_TUI_RECENT_LOG_LIMIT = 40, WORKSPACE_TUI_RENDER_DEBOUNCE_MS = 16, WORKSPACE_TUI_STATUS_WIDTH = 10, WORKSPACE_TUI_TARGET_PADDING_WIDTH = 6, WORKSPACE_TUI_VISIBILITY_WIDTH = 8;
|
|
22
22
|
var init_constants = __esm(() => {
|
|
23
23
|
MILLISECONDS_IN_A_MINUTE = MILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE;
|
|
24
24
|
MILLISECONDS_IN_A_DAY = MILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE * MINUTES_IN_AN_HOUR * HOURS_IN_DAY;
|
|
@@ -853,12 +853,15 @@ var cliTag3 = (color, message) => `\x1B[2m${formatTimestamp()}\x1B[0m ${color}[c
|
|
|
853
853
|
return null;
|
|
854
854
|
}
|
|
855
855
|
}, resolveBuildModule2 = async (candidates) => {
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
return mod;
|
|
856
|
+
const [candidate, ...remaining] = candidates;
|
|
857
|
+
if (!candidate) {
|
|
858
|
+
return;
|
|
860
859
|
}
|
|
861
|
-
|
|
860
|
+
const mod = await tryImportBuild2(candidate);
|
|
861
|
+
if (mod) {
|
|
862
|
+
return mod;
|
|
863
|
+
}
|
|
864
|
+
return resolveBuildModule2(remaining);
|
|
862
865
|
}, resolveJsxDevRuntimeCompatPath2 = () => {
|
|
863
866
|
const candidates = [
|
|
864
867
|
resolve7(import.meta.dir, "..", "..", "dist", "react", "jsxDevRuntimeCompat.js"),
|
|
@@ -1203,7 +1206,7 @@ var isCommandService3 = (service) => service.kind === "command" || Array.isArray
|
|
|
1203
1206
|
}, shellEscape = (value) => `'${value.replaceAll("'", "'\\''")}'`, runShell = async (name, command) => run(name, ["/bin/bash", "-lc", command]), findBin = (name) => {
|
|
1204
1207
|
const local = resolve8("node_modules", ".bin", name);
|
|
1205
1208
|
return existsSync10(local) ? local : null;
|
|
1206
|
-
}, stripAnsi3 = (str) => str.replace(
|
|
1209
|
+
}, ANSI_COLOR_REGEX, ANSI_PURPLE_REGEX, ANSI_CYAN_REGEX, ANSI_TOKEN_END_REGEX, stripAnsi3 = (str) => str.replace(ANSI_COLOR_REGEX, ""), formatSvelteOutput = (output) => {
|
|
1207
1210
|
const cwd = `${process.cwd()}/`;
|
|
1208
1211
|
const summaryMatch = stripAnsi3(output).match(/svelte-check found (\d+) error/);
|
|
1209
1212
|
const errorCount = summaryMatch ? parseInt(summaryMatch[1] ?? "0", 10) : 0;
|
|
@@ -1220,10 +1223,10 @@ var isCommandService3 = (service) => service.kind === "command" || Array.isArray
|
|
|
1220
1223
|
`\x1B[96m${pathMatch[1]}\x1B[0m:\x1B[93m${pathMatch[2]}\x1B[0m`
|
|
1221
1224
|
];
|
|
1222
1225
|
}
|
|
1223
|
-
if (result.includes(
|
|
1226
|
+
if (result.includes(ANSI_PURPLE_REGEX)) {
|
|
1224
1227
|
const plainLine = stripAnsi3(result);
|
|
1225
|
-
const before = stripAnsi3(result.split(
|
|
1226
|
-
const token = stripAnsi3((result.split(
|
|
1228
|
+
const before = stripAnsi3(result.split(ANSI_PURPLE_REGEX)[0] ?? "");
|
|
1229
|
+
const token = stripAnsi3((result.split(ANSI_PURPLE_REGEX)[1] ?? "").split(ANSI_TOKEN_END_REGEX)[0] ?? "");
|
|
1227
1230
|
if (!token)
|
|
1228
1231
|
return [result];
|
|
1229
1232
|
const expanded = before.replace(/\t/g, " ");
|
|
@@ -1234,7 +1237,7 @@ var isCommandService3 = (service) => service.kind === "command" || Array.isArray
|
|
|
1234
1237
|
`${" ".repeat(expanded.length)}\x1B[91m${underline}\x1B[0m`
|
|
1235
1238
|
];
|
|
1236
1239
|
}
|
|
1237
|
-
if (
|
|
1240
|
+
if (ANSI_CYAN_REGEX.test(result) && !result.includes("Error") && !result.includes(ANSI_PURPLE_REGEX)) {
|
|
1238
1241
|
return [];
|
|
1239
1242
|
}
|
|
1240
1243
|
return [result];
|
|
@@ -1377,6 +1380,11 @@ Found ${errorCount} error${suffix}.`;
|
|
|
1377
1380
|
};
|
|
1378
1381
|
var init_typecheck = __esm(() => {
|
|
1379
1382
|
init_loadConfig();
|
|
1383
|
+
init_constants();
|
|
1384
|
+
ANSI_COLOR_REGEX = new RegExp(`${String.fromCharCode(ANSI_ESCAPE_CODE)}\\[[0-9;]*m`, "g");
|
|
1385
|
+
ANSI_PURPLE_REGEX = `${String.fromCharCode(ANSI_ESCAPE_CODE)}[35m`;
|
|
1386
|
+
ANSI_CYAN_REGEX = new RegExp(`^${String.fromCharCode(ANSI_ESCAPE_CODE)}\\[36m|\\t`);
|
|
1387
|
+
ANSI_TOKEN_END_REGEX = new RegExp(`${String.fromCharCode(ANSI_ESCAPE_CODE)}\\[3[69]m`);
|
|
1380
1388
|
TYPECHECK_EXCLUDE = [
|
|
1381
1389
|
"../node_modules/**/*",
|
|
1382
1390
|
"../**/.absolutejs/**/*",
|
|
@@ -1431,7 +1439,10 @@ var trySetRawMode = () => {
|
|
|
1431
1439
|
} catch {
|
|
1432
1440
|
return null;
|
|
1433
1441
|
}
|
|
1434
|
-
return
|
|
1442
|
+
return {
|
|
1443
|
+
destroyOnDispose: false,
|
|
1444
|
+
stream: process.stdin
|
|
1445
|
+
};
|
|
1435
1446
|
};
|
|
1436
1447
|
var openTtyStream = () => {
|
|
1437
1448
|
const fromStdin = trySetRawMode();
|
|
@@ -1441,7 +1452,10 @@ var openTtyStream = () => {
|
|
|
1441
1452
|
try {
|
|
1442
1453
|
const ttyStream = new ReadStream(openSync("/dev/tty", "r"));
|
|
1443
1454
|
ttyStream.setRawMode(true);
|
|
1444
|
-
return
|
|
1455
|
+
return {
|
|
1456
|
+
destroyOnDispose: true,
|
|
1457
|
+
stream: ttyStream
|
|
1458
|
+
};
|
|
1445
1459
|
} catch {
|
|
1446
1460
|
return null;
|
|
1447
1461
|
}
|
|
@@ -1633,19 +1647,19 @@ var createInteractiveHandler = (actions) => {
|
|
|
1633
1647
|
processChar(str.charAt(idx));
|
|
1634
1648
|
}
|
|
1635
1649
|
};
|
|
1636
|
-
const
|
|
1637
|
-
const input =
|
|
1650
|
+
const ttyInput = openTtyStream();
|
|
1651
|
+
const input = ttyInput?.stream ?? process.stdin;
|
|
1638
1652
|
input.resume();
|
|
1639
1653
|
input.on("data", onData);
|
|
1640
1654
|
const disposeTtyStream = () => {
|
|
1641
|
-
if (!
|
|
1655
|
+
if (!ttyInput) {
|
|
1642
1656
|
return;
|
|
1643
1657
|
}
|
|
1644
1658
|
try {
|
|
1645
|
-
|
|
1659
|
+
ttyInput.stream.setRawMode?.(false);
|
|
1646
1660
|
} catch {}
|
|
1647
|
-
if (
|
|
1648
|
-
|
|
1661
|
+
if (ttyInput.destroyOnDispose) {
|
|
1662
|
+
ttyInput.stream.destroy?.();
|
|
1649
1663
|
}
|
|
1650
1664
|
};
|
|
1651
1665
|
const dispose = () => {
|
|
@@ -1667,8 +1681,7 @@ init_telemetryEvent();
|
|
|
1667
1681
|
init_loadConfig();
|
|
1668
1682
|
init_utils();
|
|
1669
1683
|
var cliTag = (color, message) => `\x1B[2m${formatTimestamp()}\x1B[0m ${color}[cli]\x1B[0m ${color}${message}\x1B[0m`;
|
|
1670
|
-
var confirmPrompt = (message, defaultYes = true) => {
|
|
1671
|
-
const { promise, resolve: resolve4 } = Promise.withResolvers();
|
|
1684
|
+
var confirmPrompt = (message, defaultYes = true) => new Promise((_resolve) => {
|
|
1672
1685
|
let selected = defaultYes;
|
|
1673
1686
|
const render = () => {
|
|
1674
1687
|
const yes = selected ? "\x1B[36m\u25CF\x1B[0m Yes" : "\x1B[2m\u25CB Yes\x1B[0m";
|
|
@@ -1694,7 +1707,7 @@ var confirmPrompt = (message, defaultYes = true) => {
|
|
|
1694
1707
|
process.stdout.write(`\x1B[2K\x1B[32m\u25C7\x1B[0m ${message}
|
|
1695
1708
|
\x1B[2K \x1B[2m${label}\x1B[0m
|
|
1696
1709
|
\x1B[?25h`);
|
|
1697
|
-
|
|
1710
|
+
_resolve(selected);
|
|
1698
1711
|
} else if (key === "\x03") {
|
|
1699
1712
|
process.stdout.write("\x1B[?25h");
|
|
1700
1713
|
process.stdin.setRawMode(false);
|
|
@@ -1702,8 +1715,7 @@ var confirmPrompt = (message, defaultYes = true) => {
|
|
|
1702
1715
|
}
|
|
1703
1716
|
};
|
|
1704
1717
|
process.stdin.on("data", onData);
|
|
1705
|
-
|
|
1706
|
-
};
|
|
1718
|
+
});
|
|
1707
1719
|
var setupCertWithPrompt = async (ensureDevCert2, setupMkcert2) => {
|
|
1708
1720
|
const install = await confirmPrompt("Install mkcert for trusted HTTPS? (no browser warning)");
|
|
1709
1721
|
if (install) {
|
|
@@ -1929,20 +1941,15 @@ var dev = async (serverEntry, configPath2) => {
|
|
|
1929
1941
|
return true;
|
|
1930
1942
|
};
|
|
1931
1943
|
const monitorServer = async () => {
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
}
|
|
1941
|
-
const shouldContinue = await handleServerExit(exitCode);
|
|
1942
|
-
if (!shouldContinue) {
|
|
1943
|
-
return;
|
|
1944
|
+
while (!cleaning) {
|
|
1945
|
+
const current = serverProcess;
|
|
1946
|
+
const exitCode = await current.exited;
|
|
1947
|
+
if (cleaning || serverProcess !== current)
|
|
1948
|
+
continue;
|
|
1949
|
+
const shouldContinue = await handleServerExit(exitCode);
|
|
1950
|
+
if (!shouldContinue)
|
|
1951
|
+
return;
|
|
1944
1952
|
}
|
|
1945
|
-
await monitorServer();
|
|
1946
1953
|
};
|
|
1947
1954
|
await monitorServer();
|
|
1948
1955
|
};
|
|
@@ -2203,9 +2210,7 @@ var runTool = async (adapter, args) => {
|
|
|
2203
2210
|
batches.push(changed.slice(idx, idx + MAX_FILES_PER_BATCH));
|
|
2204
2211
|
}
|
|
2205
2212
|
const failedFiles = new Set;
|
|
2206
|
-
|
|
2207
|
-
await runBatch(adapter, batch, args, failedFiles);
|
|
2208
|
-
}
|
|
2213
|
+
await batches.reduce((chain, batch) => chain.then(() => runBatch(adapter, batch, args, failedFiles)), Promise.resolve());
|
|
2209
2214
|
for (const file of failedFiles) {
|
|
2210
2215
|
delete cache.files[file];
|
|
2211
2216
|
}
|
|
@@ -2285,13 +2290,15 @@ var readPackageVersion2 = (candidate) => {
|
|
|
2285
2290
|
return null;
|
|
2286
2291
|
};
|
|
2287
2292
|
var resolveBuildModule = async (candidates) => {
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
return mod;
|
|
2292
|
-
}
|
|
2293
|
+
const [candidate, ...remaining] = candidates;
|
|
2294
|
+
if (!candidate) {
|
|
2295
|
+
return;
|
|
2293
2296
|
}
|
|
2294
|
-
|
|
2297
|
+
const mod = await tryImportBuild(candidate);
|
|
2298
|
+
if (mod) {
|
|
2299
|
+
return mod;
|
|
2300
|
+
}
|
|
2301
|
+
return resolveBuildModule(remaining);
|
|
2295
2302
|
};
|
|
2296
2303
|
var tryImportBuild = async (candidate) => {
|
|
2297
2304
|
try {
|
|
@@ -2581,7 +2588,8 @@ import { openSync as openSync2 } from "fs";
|
|
|
2581
2588
|
import { ReadStream as ReadStream2 } from "tty";
|
|
2582
2589
|
var MAX_LOG_ENTRIES = 400;
|
|
2583
2590
|
var ESCAPE = "\x1B";
|
|
2584
|
-
var ANSI_REGEX =
|
|
2591
|
+
var ANSI_REGEX = new RegExp(`${String.fromCharCode(ANSI_ESCAPE_CODE)}\\[[0-?]*[ -/]*[@-~]`, "g");
|
|
2592
|
+
var ANSI_ESCAPE_PREFIX = `${ESCAPE}[`;
|
|
2585
2593
|
var SHORTCUTS2 = new Map([
|
|
2586
2594
|
["c", "clear"],
|
|
2587
2595
|
["h", "help"],
|
|
@@ -2773,6 +2781,17 @@ var getWorkspaceStatus = (services) => {
|
|
|
2773
2781
|
}
|
|
2774
2782
|
return "ready";
|
|
2775
2783
|
};
|
|
2784
|
+
var getVisibleLogContent = (contentLines, logHeight, logScrollOffset) => {
|
|
2785
|
+
const end = Math.max(0, contentLines.length - logScrollOffset);
|
|
2786
|
+
const start2 = Math.max(0, end - logHeight);
|
|
2787
|
+
return contentLines.slice(start2, end);
|
|
2788
|
+
};
|
|
2789
|
+
var isPartialEscapeSequence = (value) => {
|
|
2790
|
+
if (!value.startsWith(ANSI_ESCAPE_PREFIX)) {
|
|
2791
|
+
return false;
|
|
2792
|
+
}
|
|
2793
|
+
return Array.from(value.slice(ANSI_ESCAPE_PREFIX.length)).every((char) => char >= "0" && char <= "9");
|
|
2794
|
+
};
|
|
2776
2795
|
var createWorkspaceTui = ({
|
|
2777
2796
|
actions,
|
|
2778
2797
|
services,
|
|
@@ -2896,11 +2915,7 @@ var createWorkspaceTui = ({
|
|
|
2896
2915
|
lastLogViewportHeight = logHeight;
|
|
2897
2916
|
logScrollOffset = Math.min(logScrollOffset, Math.max(0, contentLines.length - logHeight));
|
|
2898
2917
|
}
|
|
2899
|
-
const visibleContent = helpVisible ? contentLines.slice(0, logHeight) : (
|
|
2900
|
-
const end = Math.max(0, contentLines.length - logScrollOffset);
|
|
2901
|
-
const start3 = Math.max(0, end - logHeight);
|
|
2902
|
-
return contentLines.slice(start3, end);
|
|
2903
|
-
})();
|
|
2918
|
+
const visibleContent = helpVisible ? contentLines.slice(0, logHeight) : getVisibleLogContent(contentLines, logHeight, logScrollOffset);
|
|
2904
2919
|
const maxLogScrollOffset = !helpVisible ? Math.max(0, contentLines.length - logHeight) : 0;
|
|
2905
2920
|
const shouldShowScrollbar = !helpVisible && maxLogScrollOffset > 0;
|
|
2906
2921
|
const scrollbarThumbHeight = shouldShowScrollbar ? Math.max(1, Math.min(logHeight, Math.round(logHeight / contentLines.length * logHeight))) : 0;
|
|
@@ -3093,7 +3108,7 @@ var createWorkspaceTui = ({
|
|
|
3093
3108
|
handleScrollEscape("end");
|
|
3094
3109
|
return;
|
|
3095
3110
|
}
|
|
3096
|
-
if (
|
|
3111
|
+
if (isPartialEscapeSequence(escapeBuffer)) {
|
|
3097
3112
|
armEscapeTimer();
|
|
3098
3113
|
return;
|
|
3099
3114
|
}
|
|
@@ -3161,16 +3176,15 @@ var createWorkspaceTui = ({
|
|
|
3161
3176
|
}
|
|
3162
3177
|
await handlePrintableChar(char);
|
|
3163
3178
|
};
|
|
3179
|
+
const processInputChars = async (chars) => {
|
|
3180
|
+
await Array.from(chars).reduce((chain, char) => chain.then(() => handleChar(char)), Promise.resolve());
|
|
3181
|
+
};
|
|
3164
3182
|
const onResize = () => {
|
|
3165
3183
|
scheduleRender();
|
|
3166
3184
|
};
|
|
3167
3185
|
const onData = (chunk) => {
|
|
3168
3186
|
const chars = chunk.toString();
|
|
3169
|
-
(
|
|
3170
|
-
for (const char of chars) {
|
|
3171
|
-
await handleChar(char);
|
|
3172
|
-
}
|
|
3173
|
-
})();
|
|
3187
|
+
processInputChars(chars);
|
|
3174
3188
|
};
|
|
3175
3189
|
const start2 = () => {
|
|
3176
3190
|
process.stdout.write("\x1B[?1049h\x1B[2J\x1B[H\x1B[?25l");
|
|
@@ -3222,8 +3236,8 @@ var createWorkspaceTui = ({
|
|
|
3222
3236
|
|
|
3223
3237
|
// src/cli/scripts/workspace.ts
|
|
3224
3238
|
init_utils();
|
|
3225
|
-
var ANSI_REGEX2 =
|
|
3226
|
-
var sleep = (
|
|
3239
|
+
var ANSI_REGEX2 = new RegExp(`${String.fromCharCode(ANSI_ESCAPE_CODE)}\\[[0-?]*[ -/]*[@-~]`, "g");
|
|
3240
|
+
var sleep = (durationMs) => Bun.sleep(durationMs);
|
|
3227
3241
|
var stripAnsi2 = (value) => value.replace(ANSI_REGEX2, "");
|
|
3228
3242
|
var sanitizeLogFileName = (value) => value.replace(/[^a-zA-Z0-9._-]/g, "_") || "unknown";
|
|
3229
3243
|
var createWorkspaceLogSink = (appendLog) => {
|
|
@@ -3250,11 +3264,11 @@ var createWorkspaceLogSink = (appendLog) => {
|
|
|
3250
3264
|
appendFileSync(resolve6(logDirectory, "all.log"), line);
|
|
3251
3265
|
};
|
|
3252
3266
|
return {
|
|
3253
|
-
logDirectory,
|
|
3254
3267
|
appendLog: (source, message, level = "info") => {
|
|
3255
3268
|
writeLog(source, message, level);
|
|
3256
3269
|
appendLog(source, message, level);
|
|
3257
|
-
}
|
|
3270
|
+
},
|
|
3271
|
+
logDirectory
|
|
3258
3272
|
};
|
|
3259
3273
|
};
|
|
3260
3274
|
var readPackageVersion3 = (candidate) => {
|
|
@@ -3299,6 +3313,7 @@ var getDefaultReadyConfig = (service) => {
|
|
|
3299
3313
|
return;
|
|
3300
3314
|
};
|
|
3301
3315
|
var normalizeExpectedStatuses = (value) => Array.isArray(value) ? value : [value ?? HTTP_STATUS_OK];
|
|
3316
|
+
var runSequentially = (items, action) => items.reduce((chain, item) => chain.then(() => action(item)), Promise.resolve());
|
|
3302
3317
|
var resolveServiceHttpUrl = (service, path) => {
|
|
3303
3318
|
if (!path.startsWith("/")) {
|
|
3304
3319
|
throw new Error(`ready path must start with "/" for service probes. Received "${path}".`);
|
|
@@ -3310,17 +3325,18 @@ var resolveServiceHttpUrl = (service, path) => {
|
|
|
3310
3325
|
};
|
|
3311
3326
|
var resolveHttpReadyProbe = (service, ready) => {
|
|
3312
3327
|
if (typeof ready === "string") {
|
|
3313
|
-
if (isAbsoluteService(service)) {
|
|
3328
|
+
if (!isAbsoluteService(service)) {
|
|
3314
3329
|
return {
|
|
3315
|
-
type: "http",
|
|
3316
|
-
url: resolveServiceHttpUrl(service, ready),
|
|
3317
|
-
method: "GET",
|
|
3318
3330
|
expectStatus: [HTTP_STATUS_OK],
|
|
3319
3331
|
headers: {},
|
|
3320
3332
|
intervalMs: WORKSPACE_READY_PROBE_INTERVAL_MS,
|
|
3321
|
-
|
|
3333
|
+
method: "GET",
|
|
3334
|
+
timeoutMs: WORKSPACE_READY_TIMEOUT_MS,
|
|
3335
|
+
type: "http",
|
|
3336
|
+
url: ready
|
|
3322
3337
|
};
|
|
3323
3338
|
}
|
|
3339
|
+
const url2 = resolveServiceHttpUrl(service, ready);
|
|
3324
3340
|
return {
|
|
3325
3341
|
expectStatus: [HTTP_STATUS_OK],
|
|
3326
3342
|
headers: {},
|
|
@@ -3328,26 +3344,38 @@ var resolveHttpReadyProbe = (service, ready) => {
|
|
|
3328
3344
|
method: "GET",
|
|
3329
3345
|
timeoutMs: WORKSPACE_READY_TIMEOUT_MS,
|
|
3330
3346
|
type: "http",
|
|
3331
|
-
url:
|
|
3347
|
+
url: url2
|
|
3332
3348
|
};
|
|
3333
3349
|
}
|
|
3334
3350
|
if (ready.path && ready.url) {
|
|
3335
3351
|
throw new Error('ready HTTP probe cannot define both "path" and "url".');
|
|
3336
3352
|
}
|
|
3337
|
-
const url =
|
|
3353
|
+
const url = resolveHttpReadyProbeUrl(service, ready);
|
|
3338
3354
|
if (!url) {
|
|
3339
3355
|
throw new Error('ready HTTP probe requires either "url" or "path".');
|
|
3340
3356
|
}
|
|
3341
3357
|
return {
|
|
3342
|
-
type: "http",
|
|
3343
|
-
url,
|
|
3344
|
-
method: ready.method ?? "GET",
|
|
3345
3358
|
expectStatus: normalizeExpectedStatuses(ready.expectStatus),
|
|
3346
3359
|
headers: ready.headers ?? {},
|
|
3347
3360
|
intervalMs: ready.intervalMs ?? WORKSPACE_READY_PROBE_INTERVAL_MS,
|
|
3348
|
-
|
|
3361
|
+
method: ready.method ?? "GET",
|
|
3362
|
+
timeoutMs: ready.timeoutMs ?? WORKSPACE_READY_TIMEOUT_MS,
|
|
3363
|
+
type: "http",
|
|
3364
|
+
url
|
|
3349
3365
|
};
|
|
3350
3366
|
};
|
|
3367
|
+
var resolveHttpReadyProbeUrl = (service, ready) => {
|
|
3368
|
+
if (ready.path) {
|
|
3369
|
+
return resolveServiceHttpUrl(service, ready.path);
|
|
3370
|
+
}
|
|
3371
|
+
if (ready.url) {
|
|
3372
|
+
return ready.url;
|
|
3373
|
+
}
|
|
3374
|
+
if (isAbsoluteService(service)) {
|
|
3375
|
+
return resolveServiceHttpUrl(service, "/hmr-status");
|
|
3376
|
+
}
|
|
3377
|
+
return null;
|
|
3378
|
+
};
|
|
3351
3379
|
var resolveReadyProbe = (service, ready = service.ready ?? getDefaultReadyConfig(service)) => {
|
|
3352
3380
|
if (ready === false || !ready) {
|
|
3353
3381
|
return null;
|
|
@@ -3357,11 +3385,11 @@ var resolveReadyProbe = (service, ready = service.ready ?? getDefaultReadyConfig
|
|
|
3357
3385
|
}
|
|
3358
3386
|
if (ready.type === "tcp") {
|
|
3359
3387
|
return {
|
|
3360
|
-
type: "tcp",
|
|
3361
3388
|
host: ready.host ?? getServicePublicHost(service),
|
|
3362
|
-
port: ready.port,
|
|
3363
3389
|
intervalMs: ready.intervalMs ?? WORKSPACE_READY_PROBE_INTERVAL_MS,
|
|
3364
|
-
|
|
3390
|
+
port: ready.port,
|
|
3391
|
+
timeoutMs: ready.timeoutMs ?? WORKSPACE_READY_TIMEOUT_MS,
|
|
3392
|
+
type: "tcp"
|
|
3365
3393
|
};
|
|
3366
3394
|
}
|
|
3367
3395
|
if (ready.type === "command") {
|
|
@@ -3381,14 +3409,16 @@ var resolveReadyProbe = (service, ready = service.ready ?? getDefaultReadyConfig
|
|
|
3381
3409
|
return resolveHttpReadyProbe(service, ready);
|
|
3382
3410
|
};
|
|
3383
3411
|
var probeHttpReady = async (ready) => {
|
|
3412
|
+
const signal = AbortSignal.timeout(Math.min(ready.timeoutMs, WORKSPACE_READY_ATTEMPT_TIMEOUT_MS));
|
|
3384
3413
|
const response = await fetch(ready.url, {
|
|
3385
|
-
method: ready.method,
|
|
3386
3414
|
headers: ready.headers,
|
|
3387
|
-
|
|
3415
|
+
method: ready.method,
|
|
3416
|
+
signal
|
|
3388
3417
|
});
|
|
3389
3418
|
return ready.expectStatus.includes(response.status);
|
|
3390
3419
|
};
|
|
3391
|
-
var probeTcpReady = async (ready) =>
|
|
3420
|
+
var probeTcpReady = async (ready) => {
|
|
3421
|
+
const { promise, resolve: resolveProbe } = Promise.withResolvers();
|
|
3392
3422
|
const socket = createConnection({
|
|
3393
3423
|
host: ready.host,
|
|
3394
3424
|
port: ready.port
|
|
@@ -3407,7 +3437,8 @@ var probeTcpReady = async (ready) => new Promise((resolveProbe) => {
|
|
|
3407
3437
|
socket.destroy();
|
|
3408
3438
|
resolveProbe(false);
|
|
3409
3439
|
});
|
|
3410
|
-
|
|
3440
|
+
return promise;
|
|
3441
|
+
};
|
|
3411
3442
|
var probeCommandReady = async (ready, service) => {
|
|
3412
3443
|
const processHandle = Bun.spawn(ready.command, {
|
|
3413
3444
|
cwd: service.cwd,
|
|
@@ -3437,14 +3468,30 @@ var waitForReady = async (service) => {
|
|
|
3437
3468
|
await sleep(resolved.ms);
|
|
3438
3469
|
return;
|
|
3439
3470
|
}
|
|
3440
|
-
const
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
return;
|
|
3444
|
-
}
|
|
3445
|
-
await sleep(resolved.intervalMs);
|
|
3471
|
+
const isReady = await pollReady(resolved, service, Date.now());
|
|
3472
|
+
if (isReady) {
|
|
3473
|
+
return;
|
|
3446
3474
|
}
|
|
3447
|
-
throw new Error(
|
|
3475
|
+
throw new Error(formatReadyTimeoutMessage(resolved));
|
|
3476
|
+
};
|
|
3477
|
+
var pollReady = async (resolved, service, startedAt) => {
|
|
3478
|
+
if (Date.now() - startedAt >= resolved.timeoutMs) {
|
|
3479
|
+
return false;
|
|
3480
|
+
}
|
|
3481
|
+
if (await probeReady(resolved, service)) {
|
|
3482
|
+
return true;
|
|
3483
|
+
}
|
|
3484
|
+
await sleep(resolved.intervalMs);
|
|
3485
|
+
return pollReady(resolved, service, startedAt);
|
|
3486
|
+
};
|
|
3487
|
+
var formatReadyTimeoutMessage = (resolved) => {
|
|
3488
|
+
if (resolved.type === "http") {
|
|
3489
|
+
return `service did not become ready within ${resolved.timeoutMs}ms (${resolved.url})`;
|
|
3490
|
+
}
|
|
3491
|
+
if (resolved.type === "tcp") {
|
|
3492
|
+
return `service did not become ready within ${resolved.timeoutMs}ms (tcp://${resolved.host}:${resolved.port})`;
|
|
3493
|
+
}
|
|
3494
|
+
return `service did not become ready within ${resolved.timeoutMs}ms (${resolved.command.join(" ")})`;
|
|
3448
3495
|
};
|
|
3449
3496
|
var probeReady = async (resolved, service) => {
|
|
3450
3497
|
try {
|
|
@@ -3533,13 +3580,17 @@ var pipeProcessLogs = (name, processHandle, appendLog) => {
|
|
|
3533
3580
|
const forward = async (stream, level) => {
|
|
3534
3581
|
let buffer = "";
|
|
3535
3582
|
const reader = stream.getReader();
|
|
3536
|
-
|
|
3537
|
-
|
|
3583
|
+
const forwardNextChunk = async () => {
|
|
3584
|
+
const chunk = await readLogChunk(reader);
|
|
3585
|
+
if (chunk === null) {
|
|
3586
|
+
appendRemainingLogBuffer(buffer, name, level, appendLog);
|
|
3587
|
+
reader.releaseLock();
|
|
3588
|
+
return;
|
|
3589
|
+
}
|
|
3538
3590
|
buffer = appendLogChunk(buffer, chunk, name, level, appendLog);
|
|
3539
|
-
|
|
3540
|
-
}
|
|
3541
|
-
|
|
3542
|
-
reader.releaseLock();
|
|
3591
|
+
await forwardNextChunk();
|
|
3592
|
+
};
|
|
3593
|
+
await forwardNextChunk();
|
|
3543
3594
|
};
|
|
3544
3595
|
forward(processHandle.stdout, "info");
|
|
3545
3596
|
forward(processHandle.stderr, "error");
|
|
@@ -3575,7 +3626,7 @@ var getServicePublicHost = (service) => {
|
|
|
3575
3626
|
var getServiceProtocol = (service) => service.env?.ABSOLUTE_HTTPS === "true" || process.env.ABSOLUTE_HTTPS === "true" ? "https" : "http";
|
|
3576
3627
|
var createWorkspaceServiceEnv = (services) => {
|
|
3577
3628
|
const workspaceEnv = {};
|
|
3578
|
-
for (const [name, service] of Object.entries(services).filter(([,
|
|
3629
|
+
for (const [name, service] of Object.entries(services).filter(([, filteredService]) => Boolean(filteredService.port))) {
|
|
3579
3630
|
const envKey = `ABSOLUTE_SERVICE_${name.toUpperCase().replace(/[^A-Z0-9]+/g, "_")}_URL`;
|
|
3580
3631
|
workspaceEnv[envKey] = `${getServiceProtocol(service)}://${getServicePublicHost(service)}:${service.port}`;
|
|
3581
3632
|
}
|
|
@@ -3690,9 +3741,7 @@ var workspace = async (subcommand, options) => {
|
|
|
3690
3741
|
running.length = 0;
|
|
3691
3742
|
snapshot.forEach((service) => killProcess(service));
|
|
3692
3743
|
await Promise.all(snapshot.map((service) => service.process.exited));
|
|
3693
|
-
|
|
3694
|
-
await runShutdownHookSafely(service);
|
|
3695
|
-
}
|
|
3744
|
+
await runSequentially(snapshot.reverse(), runShutdownHookSafely);
|
|
3696
3745
|
};
|
|
3697
3746
|
const appendRecentLogs = (lines, logsToPrint) => {
|
|
3698
3747
|
if (logsToPrint.length === 0) {
|
|
@@ -3778,54 +3827,58 @@ var workspace = async (subcommand, options) => {
|
|
|
3778
3827
|
await killProcesses();
|
|
3779
3828
|
process.exit(exitCode);
|
|
3780
3829
|
};
|
|
3830
|
+
const handleServiceExit = (runningService, exitCode) => {
|
|
3831
|
+
if (shuttingDown || restarting) {
|
|
3832
|
+
return;
|
|
3833
|
+
}
|
|
3834
|
+
if (!running.includes(runningService)) {
|
|
3835
|
+
return;
|
|
3836
|
+
}
|
|
3837
|
+
const serviceName = runningService.name;
|
|
3838
|
+
const normalizedExitCode = exitCode || 1;
|
|
3839
|
+
tui.setServiceStatus(serviceName, "error", `exit code ${normalizedExitCode}`);
|
|
3840
|
+
readyServiceNames.delete(serviceName);
|
|
3841
|
+
addLog("workspace", `${serviceName} exited with code ${normalizedExitCode}. Shutting down workspace.`, "error");
|
|
3842
|
+
shutdown(normalizedExitCode);
|
|
3843
|
+
};
|
|
3844
|
+
const startService = async (name) => {
|
|
3845
|
+
const service = services[name];
|
|
3846
|
+
if (!service) {
|
|
3847
|
+
throw new Error(`services is missing "${name}"`);
|
|
3848
|
+
}
|
|
3849
|
+
const resolved = resolveService(name, service, workspaceEnv, options);
|
|
3850
|
+
const port = (resolved.service.port ?? Number(resolved.env.PORT ?? "")) || DEFAULT_PORT;
|
|
3851
|
+
killStaleServicePort(port);
|
|
3852
|
+
if (isAbsoluteService(resolved.service) && resolved.configPath && !existsSync8(resolved.configPath)) {
|
|
3853
|
+
throw new Error(`${name} references missing config "${resolved.configPath}"`);
|
|
3854
|
+
}
|
|
3855
|
+
serviceBootStartedAt.set(name, performance.now());
|
|
3856
|
+
readyServiceNames.delete(name);
|
|
3857
|
+
tui.setServiceStatus(name, restarting ? "restarting" : "starting");
|
|
3858
|
+
const processHandle = Bun.spawn(resolved.command, {
|
|
3859
|
+
cwd: resolved.cwd,
|
|
3860
|
+
env: resolved.env,
|
|
3861
|
+
stderr: "pipe",
|
|
3862
|
+
stdin: "ignore",
|
|
3863
|
+
stdout: "pipe"
|
|
3864
|
+
});
|
|
3865
|
+
pipeProcessLogs(name, processHandle, addLog);
|
|
3866
|
+
const runningService = {
|
|
3867
|
+
name,
|
|
3868
|
+
process: processHandle,
|
|
3869
|
+
resolved
|
|
3870
|
+
};
|
|
3871
|
+
running.push(runningService);
|
|
3872
|
+
processHandle.exited.then(handleServiceExit.bind(null, runningService));
|
|
3873
|
+
await waitForReady(resolved);
|
|
3874
|
+
const startedAt = serviceBootStartedAt.get(name);
|
|
3875
|
+
const readyDuration = typeof startedAt === "number" ? `ready in ${getDurationString(performance.now() - startedAt)}` : undefined;
|
|
3876
|
+
readyServiceNames.add(name);
|
|
3877
|
+
tui.setServiceStatus(name, "ready", readyDuration);
|
|
3878
|
+
};
|
|
3781
3879
|
const startServices = async () => {
|
|
3782
3880
|
tui.setReadyDuration(null);
|
|
3783
|
-
|
|
3784
|
-
const service = services[name];
|
|
3785
|
-
if (!service) {
|
|
3786
|
-
throw new Error(`services is missing "${name}"`);
|
|
3787
|
-
}
|
|
3788
|
-
const resolved = resolveService(name, service, workspaceEnv, options);
|
|
3789
|
-
const port = (resolved.service.port ?? Number(resolved.env.PORT ?? "")) || DEFAULT_PORT;
|
|
3790
|
-
killStaleServicePort(port);
|
|
3791
|
-
if (isAbsoluteService(resolved.service) && resolved.configPath && !existsSync8(resolved.configPath)) {
|
|
3792
|
-
throw new Error(`${name} references missing config "${resolved.configPath}"`);
|
|
3793
|
-
}
|
|
3794
|
-
serviceBootStartedAt.set(name, performance.now());
|
|
3795
|
-
readyServiceNames.delete(name);
|
|
3796
|
-
tui.setServiceStatus(name, restarting ? "restarting" : "starting");
|
|
3797
|
-
const processHandle = Bun.spawn(resolved.command, {
|
|
3798
|
-
cwd: resolved.cwd,
|
|
3799
|
-
env: resolved.env,
|
|
3800
|
-
stderr: "pipe",
|
|
3801
|
-
stdin: "ignore",
|
|
3802
|
-
stdout: "pipe"
|
|
3803
|
-
});
|
|
3804
|
-
pipeProcessLogs(name, processHandle, addLog);
|
|
3805
|
-
const runningService = {
|
|
3806
|
-
name,
|
|
3807
|
-
process: processHandle,
|
|
3808
|
-
resolved
|
|
3809
|
-
};
|
|
3810
|
-
running.push(runningService);
|
|
3811
|
-
processHandle.exited.then((exitCode) => {
|
|
3812
|
-
if (shuttingDown || restarting) {
|
|
3813
|
-
return;
|
|
3814
|
-
}
|
|
3815
|
-
if (!running.includes(runningService)) {
|
|
3816
|
-
return;
|
|
3817
|
-
}
|
|
3818
|
-
tui.setServiceStatus(name, "error", `exit code ${exitCode || 1}`);
|
|
3819
|
-
readyServiceNames.delete(name);
|
|
3820
|
-
addLog("workspace", `${name} exited with code ${exitCode || 1}. Shutting down workspace.`, "error");
|
|
3821
|
-
shutdown(exitCode || 1);
|
|
3822
|
-
});
|
|
3823
|
-
await waitForReady(resolved);
|
|
3824
|
-
const startedAt = serviceBootStartedAt.get(name);
|
|
3825
|
-
const readyDuration = typeof startedAt === "number" ? `ready in ${getDurationString(performance.now() - startedAt)}` : undefined;
|
|
3826
|
-
readyServiceNames.add(name);
|
|
3827
|
-
tui.setServiceStatus(name, "ready", readyDuration);
|
|
3828
|
-
}
|
|
3881
|
+
await runSequentially(orderedNames, startService);
|
|
3829
3882
|
};
|
|
3830
3883
|
const restartWorkspace = async () => {
|
|
3831
3884
|
if (shuttingDown || restarting) {
|
|
@@ -3910,7 +3963,7 @@ var workspace = async (subcommand, options) => {
|
|
|
3910
3963
|
tui.start();
|
|
3911
3964
|
await startServices();
|
|
3912
3965
|
tui.setReadyDuration(performance.now() - workspaceBootStartedAt);
|
|
3913
|
-
await
|
|
3966
|
+
await Promise.withResolvers().promise;
|
|
3914
3967
|
};
|
|
3915
3968
|
|
|
3916
3969
|
// src/cli/index.ts
|
package/dist/client/index.js
CHANGED
|
@@ -341,9 +341,7 @@ var initDominoAdapter = (platformServer) => {
|
|
|
341
341
|
import(resolveAngularPackage("@angular/common")),
|
|
342
342
|
import(resolveAngularPackage("@angular/core"))
|
|
343
343
|
]);
|
|
344
|
-
if (
|
|
345
|
-
core.enableProdMode();
|
|
346
|
-
}
|
|
344
|
+
if (false) {}
|
|
347
345
|
initDominoAdapter(platformServer);
|
|
348
346
|
return {
|
|
349
347
|
APP_BASE_HREF: common.APP_BASE_HREF,
|
|
@@ -1166,5 +1164,5 @@ export {
|
|
|
1166
1164
|
createIslandManifestResolver
|
|
1167
1165
|
};
|
|
1168
1166
|
|
|
1169
|
-
//# debugId=
|
|
1167
|
+
//# debugId=367CE8509FAAC2E564756E2164756E21
|
|
1170
1168
|
//# sourceMappingURL=index.js.map
|