@absolutejs/absolute 0.19.0-beta.1074 → 0.19.0-beta.1076

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/angular/browser.js +2 -2
  2. package/dist/angular/browser.js.map +3 -3
  3. package/dist/angular/components/constants.js +10 -0
  4. package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
  5. package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
  6. package/dist/angular/index.js +6 -4
  7. package/dist/angular/index.js.map +4 -4
  8. package/dist/angular/server.js +6 -4
  9. package/dist/angular/server.js.map +4 -4
  10. package/dist/build.js +6 -4
  11. package/dist/build.js.map +4 -4
  12. package/dist/cli/config/server.js +7 -3
  13. package/dist/cli/index.js +15 -1
  14. package/dist/index.js +23 -4
  15. package/dist/index.js.map +5 -5
  16. package/dist/islands/index.js +2 -2
  17. package/dist/islands/index.js.map +3 -3
  18. package/dist/react/components/index.js +2 -2
  19. package/dist/react/components/index.js.map +3 -3
  20. package/dist/react/index.js +9 -5
  21. package/dist/react/index.js.map +5 -5
  22. package/dist/react/server.js +9 -5
  23. package/dist/react/server.js.map +5 -5
  24. package/dist/src/angular/components/constants.d.ts +2 -0
  25. package/dist/src/constants.d.ts +2 -0
  26. package/dist/src/core/pageResponseCache.d.ts +16 -2
  27. package/dist/src/react/pageHandler.d.ts +5 -0
  28. package/dist/src/svelte/pageHandler.d.ts +5 -0
  29. package/dist/src/vue/pageHandler.d.ts +5 -0
  30. package/dist/svelte/index.js +9 -5
  31. package/dist/svelte/index.js.map +5 -5
  32. package/dist/svelte/server.js +9 -5
  33. package/dist/svelte/server.js.map +5 -5
  34. package/dist/vue/components/Image.js +2 -2
  35. package/dist/vue/components/Image.js.map +3 -3
  36. package/dist/vue/components/index.js +2 -2
  37. package/dist/vue/components/index.js.map +3 -3
  38. package/dist/vue/index.js +9 -5
  39. package/dist/vue/index.js.map +5 -5
  40. package/dist/vue/server.js +9 -5
  41. package/dist/vue/server.js.map +5 -5
  42. package/package.json +1 -1
@@ -37373,11 +37373,12 @@ var streamingPageHeaders = (extra) => {
37373
37373
  return headers;
37374
37374
  };
37375
37375
  var computeEtag = (html) => `W/"${createHash("sha1").update(html).digest("base64url")}"`;
37376
- var withPageCacheHeaders = async (response, request) => {
37376
+ var withPageCacheHeaders = async (response, request, options) => {
37377
37377
  const contentType = response.headers.get("content-type") ?? "";
37378
37378
  if (!contentType.includes(HTML_CONTENT_TYPE))
37379
37379
  return response;
37380
- if (response.headers.get(STREAMING_PAGE_HEADER) === "1" || !response.body) {
37380
+ const isStreaming = response.headers.get(STREAMING_PAGE_HEADER) === "1";
37381
+ if (isStreaming && !options?.bufferStreamForEtag || !response.body) {
37381
37382
  response.headers.delete(STREAMING_PAGE_HEADER);
37382
37383
  response.headers.set("cache-control", "no-cache");
37383
37384
  return response;
@@ -37391,6 +37392,7 @@ var withPageCacheHeaders = async (response, request) => {
37391
37392
  });
37392
37393
  }
37393
37394
  const headers = new Headers(response.headers);
37395
+ headers.delete(STREAMING_PAGE_HEADER);
37394
37396
  headers.set("cache-control", "no-cache");
37395
37397
  headers.set("etag", etag);
37396
37398
  return new Response(html, {
@@ -38609,7 +38611,9 @@ var handleReactPageRequest = async (input) => {
38609
38611
  });
38610
38612
  };
38611
38613
  const pageResponse = await runWithStreamingSlotWarningScope(() => options?.collectStreamingSlots === true ? withRegisteredStreamingSlots(renderPageResponse, options) : renderPageResponse(), { handlerCallsite });
38612
- return withPageCacheHeaders(pageResponse, input.request);
38614
+ return withPageCacheHeaders(pageResponse, input.request, {
38615
+ bufferStreamForEtag: input.bufferStreamForEtag
38616
+ });
38613
38617
  } catch (error) {
38614
38618
  console.error("[SSR] React render error:", error);
38615
38619
  const conventionResponse = await renderConventionError("react", pageName, error);
package/dist/cli/index.js CHANGED
@@ -48,7 +48,7 @@ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
48
48
  var __require = import.meta.require;
49
49
 
50
50
  // src/constants.ts
51
- 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, EXCLUDE_LAST_OFFSET = -1, HTTP_STATUS_OK = 200, HOURS_IN_DAY = 24, HOURS_IN_HALF_DAY = 12, INSTANCE_PROBE_TIMEOUT_MS = 250, 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, LIST_LOG_TAIL_MAX_BYTES = 65536, LIST_TUI_COLUMN_GAP = 2, LIST_TUI_DEFAULT_HEIGHT = 28, LIST_TUI_DEFAULT_WIDTH = 100, LIST_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS = 30, LIST_TUI_FOOTER_LINE_COUNT = 2, LIST_TUI_MARKER_WIDTH = 2, LIST_TUI_MIN_LOG_HEIGHT = 3, LIST_TUI_MIN_URL_WIDTH = 16, LIST_TUI_RENDER_DEBOUNCE_MS = 16, LIST_TUI_STATUS_MESSAGE_TIMEOUT_MS = 4000, LIST_WATCH_REFRESH_MS = 1000, SIGINT_EXIT_CODE = 130, SIGTERM_EXIT_CODE = 143, TIME_PRECISION = 2, TWO_THIRDS, UNFOUND_INDEX = -1, DEFAULT_WEBSOCKET_IDLE_TIMEOUT_SECONDS = 240, 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;
51
+ 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, EXCLUDE_LAST_OFFSET = -1, HTTP_STATUS_OK = 200, HOURS_IN_DAY = 24, HOURS_IN_HALF_DAY = 12, INSTANCE_PROBE_TIMEOUT_MS = 250, 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, LIST_LOG_TAIL_MAX_BYTES = 65536, LIST_TUI_COLUMN_GAP = 2, LIST_TUI_DEFAULT_HEIGHT = 28, LIST_TUI_DEFAULT_WIDTH = 100, LIST_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS = 30, LIST_TUI_FOOTER_LINE_COUNT = 2, LIST_TUI_MARKER_WIDTH = 2, LIST_TUI_MIN_LOG_HEIGHT = 3, LIST_TUI_MIN_URL_WIDTH = 16, LIST_TUI_RENDER_DEBOUNCE_MS = 16, LIST_TUI_STATUS_MESSAGE_TIMEOUT_MS = 4000, LIST_WATCH_REFRESH_MS = 1000, SIGINT_EXIT_CODE = 130, SIGTERM_EXIT_CODE = 143, TIME_PRECISION = 2, TWO_THIRDS, UNFOUND_INDEX = -1, DEFAULT_WEBSOCKET_IDLE_TIMEOUT_SECONDS = 240, DEFAULT_HTTP_IDLE_TIMEOUT_SECONDS = 240, MAX_HTTP_IDLE_TIMEOUT_SECONDS = 255, 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;
52
52
  var init_constants = __esm(() => {
53
53
  MILLISECONDS_IN_A_MINUTE = MILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE;
54
54
  MILLISECONDS_IN_A_DAY = MILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE * MINUTES_IN_AN_HOUR * HOURS_IN_DAY;
@@ -177179,6 +177179,19 @@ const getMime = (p: string) =>
177179
177179
  // \u2500\u2500 Server \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
177180
177180
  const port = Number(process.env.PORT) || ${DEFAULT_PORT};
177181
177181
 
177182
+ // HTTP idleTimeout (seconds). Bun's 10s default reaps long-lived/streaming
177183
+ // responses (SSE, AI turns, long polls) with no error. Default high and honor
177184
+ // ABSOLUTE_IDLE_TIMEOUT at runtime; 0 disables; clamp to Bun's [1, 255] range.
177185
+ const resolveIdleTimeout = () => {
177186
+ const raw = process.env.ABSOLUTE_IDLE_TIMEOUT;
177187
+ if (raw === undefined || raw.trim() === "") return ${DEFAULT_HTTP_IDLE_TIMEOUT_SECONDS};
177188
+ const parsed = Number(raw);
177189
+ if (!Number.isFinite(parsed) || parsed < 0) return ${DEFAULT_HTTP_IDLE_TIMEOUT_SECONDS};
177190
+ if (parsed === 0) return 0;
177191
+ return Math.min(Math.max(Math.round(parsed), 1), ${MAX_HTTP_IDLE_TIMEOUT_SECONDS});
177192
+ };
177193
+ const idleTimeout = resolveIdleTimeout();
177194
+
177182
177195
  // Uncaught-error safety net for the compiled binary. \`bun --hot\` and
177183
177196
  // \`bun dev\` both keep the process alive on uncaught throws / rejections;
177184
177197
  // a standalone executable has no such wrapper, so a stream-error inside
@@ -177311,6 +177324,7 @@ const getRuntimeFetch = () => {
177311
177324
 
177312
177325
  const server = Bun.serve({
177313
177326
  port,
177327
+ idleTimeout,
177314
177328
  // Registering Elysia's WebSocket dispatcher here (plus assigning app.server in
177315
177329
  // resolveRuntimeFetch) is what makes .ws() routes work in a compiled server \u2014
177316
177330
  // without it, every upgrade request falls through to the 404 below.
package/dist/index.js CHANGED
@@ -5921,7 +5921,7 @@ var init_compileTailwind = __esm(() => {
5921
5921
  });
5922
5922
 
5923
5923
  // src/constants.ts
5924
- var ANGULAR_INIT_TIMEOUT_MS = 500, ANSI_ESCAPE_CODE = 27, ANSI_ESCAPE_LENGTH = 3, ASCII_SPACE = 32, BASE_36_RADIX = 36, BUN_BUILD_WARNING_SUPPRESSION = "wildcard sideEffects are not supported yet", TAILWIND_BUN_CSS_WARNING_PATTERN, BODY_SLICE_LENGTH = 2000, BYTES_PER_KILOBYTE = 1024, CLI_ARGS_OFFSET = 3, CSS_ERROR_RESOLVE_DELAY_MS = 50, CSS_MAX_CHECK_ATTEMPTS = 10, CSS_MAX_PARSE_TIMEOUT_MS = 500, CSS_SHEET_READY_TIMEOUT_MS = 100, DEFAULT_CHUNK_SIZE = 16384, DEFAULT_DEBOUNCE_MS = 15, DEFAULT_PORT = 3000, DEV_SERVER_RESTART_DEBOUNCE_MS = 100, DOM_UPDATE_DELAY_MS = 50, FILE_PROTOCOL_PREFIX_LENGTH = 7, FOCUS_ID_PREFIX_LENGTH = 3, FOCUS_IDX_PREFIX_LENGTH = 4, FOCUS_NAME_PREFIX_LENGTH = 5, ESLINT_STUDIO_DEFAULT_HOST = "eslint.absolute.localhost", ESLINT_STUDIO_DEFAULT_PORT = 4099, CONFIG_DEFAULT_HOST = "config.absolute.localhost", CONFIG_DEFAULT_PORT = 4099, HMR_UPDATE_TIMEOUT_MS = 2000, HOOK_SIGNATURE_LENGTH = 12, EXCLUDE_LAST_OFFSET = -1, HTTP_STATUS_OK = 200, HTTP_STATUS_BAD_REQUEST = 400, HTTP_STATUS_NOT_FOUND = 404, HOURS_IN_DAY = 24, HOURS_IN_HALF_DAY = 12, IMAGE_DEFAULT_DEVICE_SIZES, IMAGE_DEFAULT_IMAGE_SIZES, IMAGE_DEFAULT_QUALITY = 75, IMAGE_GLOB_SUFFIX_LENGTH = 2, INSTANCE_PROBE_TIMEOUT_MS = 250, MAX_ERROR_LENGTH = 200, MAX_RECONNECT_ATTEMPTS = 60, MILLISECONDS_IN_A_SECOND = 1000, MINUTES_IN_AN_HOUR = 60, SECONDS_IN_A_MINUTE = 60, MILLISECONDS_IN_A_MINUTE, MILLISECONDS_IN_A_DAY, OVERLAY_FADE_DURATION_MS = 150, PING_INTERVAL_MS = 30000, LIST_LOG_TAIL_MAX_BYTES = 65536, LIST_TUI_COLUMN_GAP = 2, LIST_TUI_DEFAULT_HEIGHT = 28, LIST_TUI_DEFAULT_WIDTH = 100, LIST_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS = 30, LIST_TUI_FOOTER_LINE_COUNT = 2, LIST_TUI_MARKER_WIDTH = 2, LIST_TUI_MIN_LOG_HEIGHT = 3, LIST_TUI_MIN_URL_WIDTH = 16, LIST_TUI_RENDER_DEBOUNCE_MS = 16, LIST_TUI_STATUS_MESSAGE_TIMEOUT_MS = 4000, LIST_WATCH_REFRESH_MS = 1000, RAF_BATCH_COUNT = 3, RANDOM_ID_END_INDEX = 11, REBUILD_BATCH_DELAY_MS = 10, REBUILD_RELOAD_DELAY_MS = 200, RECONNECT_INITIAL_DELAY_MS = 500, RECONNECT_POLL_INTERVAL_MS = 300, REACT_STREAM_SLOT_FAST_DELAY_MS = 5, REACT_STREAM_SLOT_SLOW_DELAY_MS = 20, SIGINT_EXIT_CODE = 130, SIGTERM_EXIT_CODE = 143, SVELTE_CSS_LOAD_TIMEOUT_MS = 500, TIME_PRECISION = 2, TWO_THIRDS, UNFOUND_INDEX = -1, WEBSOCKET_NORMAL_CLOSURE = 1000, DEFAULT_WEBSOCKET_IDLE_TIMEOUT_SECONDS = 240, 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;
5924
+ var ANGULAR_INIT_TIMEOUT_MS = 500, ANSI_ESCAPE_CODE = 27, ANSI_ESCAPE_LENGTH = 3, ASCII_SPACE = 32, BASE_36_RADIX = 36, BUN_BUILD_WARNING_SUPPRESSION = "wildcard sideEffects are not supported yet", TAILWIND_BUN_CSS_WARNING_PATTERN, BODY_SLICE_LENGTH = 2000, BYTES_PER_KILOBYTE = 1024, CLI_ARGS_OFFSET = 3, CSS_ERROR_RESOLVE_DELAY_MS = 50, CSS_MAX_CHECK_ATTEMPTS = 10, CSS_MAX_PARSE_TIMEOUT_MS = 500, CSS_SHEET_READY_TIMEOUT_MS = 100, DEFAULT_CHUNK_SIZE = 16384, DEFAULT_DEBOUNCE_MS = 15, DEFAULT_PORT = 3000, DEV_SERVER_RESTART_DEBOUNCE_MS = 100, DOM_UPDATE_DELAY_MS = 50, FILE_PROTOCOL_PREFIX_LENGTH = 7, FOCUS_ID_PREFIX_LENGTH = 3, FOCUS_IDX_PREFIX_LENGTH = 4, FOCUS_NAME_PREFIX_LENGTH = 5, ESLINT_STUDIO_DEFAULT_HOST = "eslint.absolute.localhost", ESLINT_STUDIO_DEFAULT_PORT = 4099, CONFIG_DEFAULT_HOST = "config.absolute.localhost", CONFIG_DEFAULT_PORT = 4099, HMR_UPDATE_TIMEOUT_MS = 2000, HOOK_SIGNATURE_LENGTH = 12, EXCLUDE_LAST_OFFSET = -1, HTTP_STATUS_OK = 200, HTTP_STATUS_BAD_REQUEST = 400, HTTP_STATUS_NOT_FOUND = 404, HOURS_IN_DAY = 24, HOURS_IN_HALF_DAY = 12, IMAGE_DEFAULT_DEVICE_SIZES, IMAGE_DEFAULT_IMAGE_SIZES, IMAGE_DEFAULT_QUALITY = 75, IMAGE_GLOB_SUFFIX_LENGTH = 2, INSTANCE_PROBE_TIMEOUT_MS = 250, MAX_ERROR_LENGTH = 200, MAX_RECONNECT_ATTEMPTS = 60, MILLISECONDS_IN_A_SECOND = 1000, MINUTES_IN_AN_HOUR = 60, SECONDS_IN_A_MINUTE = 60, MILLISECONDS_IN_A_MINUTE, MILLISECONDS_IN_A_DAY, OVERLAY_FADE_DURATION_MS = 150, PING_INTERVAL_MS = 30000, LIST_LOG_TAIL_MAX_BYTES = 65536, LIST_TUI_COLUMN_GAP = 2, LIST_TUI_DEFAULT_HEIGHT = 28, LIST_TUI_DEFAULT_WIDTH = 100, LIST_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS = 30, LIST_TUI_FOOTER_LINE_COUNT = 2, LIST_TUI_MARKER_WIDTH = 2, LIST_TUI_MIN_LOG_HEIGHT = 3, LIST_TUI_MIN_URL_WIDTH = 16, LIST_TUI_RENDER_DEBOUNCE_MS = 16, LIST_TUI_STATUS_MESSAGE_TIMEOUT_MS = 4000, LIST_WATCH_REFRESH_MS = 1000, RAF_BATCH_COUNT = 3, RANDOM_ID_END_INDEX = 11, REBUILD_BATCH_DELAY_MS = 10, REBUILD_RELOAD_DELAY_MS = 200, RECONNECT_INITIAL_DELAY_MS = 500, RECONNECT_POLL_INTERVAL_MS = 300, REACT_STREAM_SLOT_FAST_DELAY_MS = 5, REACT_STREAM_SLOT_SLOW_DELAY_MS = 20, SIGINT_EXIT_CODE = 130, SIGTERM_EXIT_CODE = 143, SVELTE_CSS_LOAD_TIMEOUT_MS = 500, TIME_PRECISION = 2, TWO_THIRDS, UNFOUND_INDEX = -1, WEBSOCKET_NORMAL_CLOSURE = 1000, DEFAULT_WEBSOCKET_IDLE_TIMEOUT_SECONDS = 240, DEFAULT_HTTP_IDLE_TIMEOUT_SECONDS = 240, MAX_HTTP_IDLE_TIMEOUT_SECONDS = 255, 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;
5925
5925
  var init_constants = __esm(() => {
5926
5926
  TAILWIND_BUN_CSS_WARNING_PATTERN = /invalid @ rule encountered: '@(theme|tailwind|source|utility|variant|custom-variant|apply|reference|plugin|config)'/;
5927
5927
  IMAGE_DEFAULT_DEVICE_SIZES = [
@@ -8685,11 +8685,12 @@ var STREAMING_PAGE_HEADER = "x-absolute-stream", HTML_CONTENT_TYPE = "text/html"
8685
8685
  headers.set("content-type", HTML_CONTENT_TYPE);
8686
8686
  headers.set(STREAMING_PAGE_HEADER, "1");
8687
8687
  return headers;
8688
- }, computeEtag = (html) => `W/"${createHash3("sha1").update(html).digest("base64url")}"`, withPageCacheHeaders = async (response, request) => {
8688
+ }, computeEtag = (html) => `W/"${createHash3("sha1").update(html).digest("base64url")}"`, withPageCacheHeaders = async (response, request, options) => {
8689
8689
  const contentType = response.headers.get("content-type") ?? "";
8690
8690
  if (!contentType.includes(HTML_CONTENT_TYPE))
8691
8691
  return response;
8692
- if (response.headers.get(STREAMING_PAGE_HEADER) === "1" || !response.body) {
8692
+ const isStreaming = response.headers.get(STREAMING_PAGE_HEADER) === "1";
8693
+ if (isStreaming && !options?.bufferStreamForEtag || !response.body) {
8693
8694
  response.headers.delete(STREAMING_PAGE_HEADER);
8694
8695
  response.headers.set("cache-control", "no-cache");
8695
8696
  return response;
@@ -8703,6 +8704,7 @@ var STREAMING_PAGE_HEADER = "x-absolute-stream", HTML_CONTENT_TYPE = "text/html"
8703
8704
  });
8704
8705
  }
8705
8706
  const headers = new Headers(response.headers);
8707
+ headers.delete(STREAMING_PAGE_HEADER);
8706
8708
  headers.set("cache-control", "no-cache");
8707
8709
  headers.set("etag", etag);
8708
8710
  return new Response(html, {
@@ -40108,6 +40110,20 @@ var loadTls = () => {
40108
40110
  };
40109
40111
  var tls = loadTls();
40110
40112
  var protocol = tls ? "https" : "http";
40113
+ var resolveHttpIdleTimeout = () => {
40114
+ const raw = env4.ABSOLUTE_IDLE_TIMEOUT;
40115
+ if (raw === undefined || raw.trim() === "") {
40116
+ return DEFAULT_HTTP_IDLE_TIMEOUT_SECONDS;
40117
+ }
40118
+ const parsed = Number(raw);
40119
+ if (!Number.isFinite(parsed) || parsed < 0) {
40120
+ return DEFAULT_HTTP_IDLE_TIMEOUT_SECONDS;
40121
+ }
40122
+ if (parsed === 0)
40123
+ return 0;
40124
+ return Math.min(Math.max(Math.round(parsed), 1), MAX_HTTP_IDLE_TIMEOUT_SECONDS);
40125
+ };
40126
+ var httpIdleTimeout = resolveHttpIdleTimeout();
40111
40127
  var selfRegisterInstance = () => {
40112
40128
  if (env4.ABSOLUTE_INSTANCE_MANAGED === "1")
40113
40129
  return;
@@ -40174,6 +40190,7 @@ var networking = (app) => {
40174
40190
  }
40175
40191
  const listened = app.listen({
40176
40192
  hostname: host,
40193
+ idleTimeout: httpIdleTimeout,
40177
40194
  port,
40178
40195
  ...tls ? {
40179
40196
  tls: {
@@ -46656,6 +46673,7 @@ export {
46656
46673
  MILLISECONDS_IN_A_MINUTE,
46657
46674
  MILLISECONDS_IN_A_DAY,
46658
46675
  MAX_RECONNECT_ATTEMPTS,
46676
+ MAX_HTTP_IDLE_TIMEOUT_SECONDS,
46659
46677
  MAX_ERROR_LENGTH,
46660
46678
  LIST_WATCH_REFRESH_MS,
46661
46679
  LIST_TUI_STATUS_MESSAGE_TIMEOUT_MS,
@@ -46692,6 +46710,7 @@ export {
46692
46710
  DEV_SERVER_RESTART_DEBOUNCE_MS,
46693
46711
  DEFAULT_WEBSOCKET_IDLE_TIMEOUT_SECONDS,
46694
46712
  DEFAULT_PORT,
46713
+ DEFAULT_HTTP_IDLE_TIMEOUT_SECONDS,
46695
46714
  DEFAULT_DEBOUNCE_MS,
46696
46715
  DEFAULT_CHUNK_SIZE,
46697
46716
  CSS_SHEET_READY_TIMEOUT_MS,
@@ -46711,5 +46730,5 @@ export {
46711
46730
  ANGULAR_INIT_TIMEOUT_MS
46712
46731
  };
46713
46732
 
46714
- //# debugId=2D1E98E62AB63D3064756E2164756E21
46733
+ //# debugId=EC9A975400DDE1A164756E2164756E21
46715
46734
  //# sourceMappingURL=index.js.map