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

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 (39) 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 +51 -8
  7. package/dist/angular/index.js.map +7 -6
  8. package/dist/angular/server.js +51 -8
  9. package/dist/angular/server.js.map +7 -6
  10. package/dist/build.js +44 -7
  11. package/dist/build.js.map +6 -5
  12. package/dist/cli/config/server.js +49 -7
  13. package/dist/cli/index.js +15 -2
  14. package/dist/index.js +62 -12
  15. package/dist/index.js.map +9 -8
  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 +52 -11
  21. package/dist/react/index.js.map +7 -6
  22. package/dist/react/server.js +50 -9
  23. package/dist/react/server.js.map +7 -6
  24. package/dist/src/angular/components/constants.d.ts +1 -0
  25. package/dist/src/constants.d.ts +1 -0
  26. package/dist/src/core/pageResponseCache.d.ts +9 -0
  27. package/dist/svelte/index.js +50 -9
  28. package/dist/svelte/index.js.map +7 -6
  29. package/dist/svelte/server.js +50 -9
  30. package/dist/svelte/server.js.map +7 -6
  31. package/dist/vue/components/Image.js +2 -2
  32. package/dist/vue/components/Image.js.map +3 -3
  33. package/dist/vue/components/index.js +2 -2
  34. package/dist/vue/components/index.js.map +3 -3
  35. package/dist/vue/index.js +52 -11
  36. package/dist/vue/index.js.map +7 -6
  37. package/dist/vue/server.js +50 -9
  38. package/dist/vue/server.js.map +7 -6
  39. package/package.json +5 -1
@@ -94,7 +94,7 @@ var ABSOLUTE_HTTP_TRANSFER_CACHE_SKIP_HEADER = "x-skip-transfer-cache", buildAbs
94
94
  };
95
95
 
96
96
  // src/constants.ts
97
- 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, 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;
97
+ 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;
98
98
  var init_constants = __esm(() => {
99
99
  TAILWIND_BUN_CSS_WARNING_PATTERN = /invalid @ rule encountered: '@(theme|tailwind|source|utility|variant|custom-variant|apply|reference|plugin|config)'/;
100
100
  IMAGE_DEFAULT_DEVICE_SIZES = [
@@ -2471,6 +2471,41 @@ var init_devRouteRegistrationCallsite = __esm(() => {
2471
2471
  pageHandlerWrappers = new WeakMap;
2472
2472
  });
2473
2473
 
2474
+ // src/core/pageResponseCache.ts
2475
+ import { createHash as createHash2 } from "crypto";
2476
+ var STREAMING_PAGE_HEADER = "x-absolute-stream", HTML_CONTENT_TYPE = "text/html", streamingPageHeaders = (extra) => {
2477
+ const headers = new Headers(extra);
2478
+ headers.set("content-type", HTML_CONTENT_TYPE);
2479
+ headers.set(STREAMING_PAGE_HEADER, "1");
2480
+ return headers;
2481
+ }, computeEtag = (html) => `W/"${createHash2("sha1").update(html).digest("base64url")}"`, withPageCacheHeaders = async (response, request) => {
2482
+ const contentType = response.headers.get("content-type") ?? "";
2483
+ if (!contentType.includes(HTML_CONTENT_TYPE))
2484
+ return response;
2485
+ if (response.headers.get(STREAMING_PAGE_HEADER) === "1" || !response.body) {
2486
+ response.headers.delete(STREAMING_PAGE_HEADER);
2487
+ response.headers.set("cache-control", "no-cache");
2488
+ return response;
2489
+ }
2490
+ const html = await response.text();
2491
+ const etag = computeEtag(html);
2492
+ if (request?.headers.get("if-none-match") === etag) {
2493
+ return new Response(null, {
2494
+ headers: { "cache-control": "no-cache", etag },
2495
+ status: 304
2496
+ });
2497
+ }
2498
+ const headers = new Headers(response.headers);
2499
+ headers.set("cache-control", "no-cache");
2500
+ headers.set("etag", etag);
2501
+ return new Response(html, {
2502
+ headers,
2503
+ status: response.status,
2504
+ statusText: response.statusText
2505
+ });
2506
+ };
2507
+ var init_pageResponseCache = () => {};
2508
+
2474
2509
  // src/client/streamSwap.ts
2475
2510
  var streamSwapRuntime = () => {
2476
2511
  const absoluteWindow = window;
@@ -6084,8 +6119,12 @@ var resetSsrSanitizer = () => {
6084
6119
  ssrSanitizer = null;
6085
6120
  };
6086
6121
 
6122
+ // src/angular/pageHandler.ts
6123
+ init_pageResponseCache();
6124
+
6087
6125
  // src/core/responseEnhancers.ts
6088
6126
  init_streamingSlots();
6127
+ init_pageResponseCache();
6089
6128
  var toResponse = async (responseLike) => responseLike;
6090
6129
  var cloneHeaders = (response) => {
6091
6130
  const headers = new Headers(response.headers);
@@ -6109,8 +6148,10 @@ var enhanceHtmlResponseWithStreamingSlots = (response, {
6109
6148
  runtimePlacement,
6110
6149
  runtimePreludeScript
6111
6150
  });
6151
+ const headers = cloneHeaders(response);
6152
+ headers.set(STREAMING_PAGE_HEADER, "1");
6112
6153
  return new Response(body, {
6113
- headers: cloneHeaders(response),
6154
+ headers,
6114
6155
  status: response.status,
6115
6156
  statusText: response.statusText
6116
6157
  });
@@ -6371,17 +6412,19 @@ var handleAngularPageRequest = async (input) => {
6371
6412
  const html = injectIslandPageContext(injectSsrScripts(htmlWithLoweredIslands, requestId, resolvedIndexPath, maybeRequestContext), { hasIslands: shouldProcessIslands });
6372
6413
  return new Response(html, withHtmlContentType(responseInit));
6373
6414
  };
6374
- return await runWithStreamingSlotWarningScope(() => options?.collectStreamingSlots === true ? withRegisteredStreamingSlots(renderPageResponse, options) : renderPageResponse(), { handlerCallsite });
6415
+ const pageResponse = await runWithStreamingSlotWarningScope(() => options?.collectStreamingSlots === true ? withRegisteredStreamingSlots(renderPageResponse, options) : renderPageResponse(), { handlerCallsite });
6416
+ return withPageCacheHeaders(pageResponse, input.request);
6375
6417
  } catch (error) {
6376
6418
  console.error("[SSR] Angular render error:", error);
6377
6419
  const pageName = derivePageName(resolvedPagePath);
6378
6420
  const conventionResponse = await renderConventionError("angular", pageName, error);
6379
- if (conventionResponse)
6380
- return conventionResponse;
6381
- return new Response(ssrErrorPage("angular", error), {
6421
+ if (conventionResponse) {
6422
+ return withPageCacheHeaders(conventionResponse, input.request);
6423
+ }
6424
+ return withPageCacheHeaders(new Response(ssrErrorPage("angular", error), {
6382
6425
  headers: { "Content-Type": "text/html" },
6383
6426
  status: 500
6384
- });
6427
+ }), input.request);
6385
6428
  }
6386
6429
  });
6387
6430
  };
@@ -6407,5 +6450,5 @@ export {
6407
6450
  ABSOLUTE_HTTP_TRANSFER_CACHE_SKIP_HEADER
6408
6451
  };
6409
6452
 
6410
- //# debugId=53845EF8C006ECF964756E2164756E21
6453
+ //# debugId=F341C201FBD8A0F864756E2164756E21
6411
6454
  //# sourceMappingURL=server.js.map