@absolutejs/absolute 0.20.0-beta.47 → 0.20.0-beta.49

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.
@@ -37432,6 +37432,7 @@ var getCurrentAbsoluteMobileProducerContext = () => {
37432
37432
  // src/mobile/pageProtocol.ts
37433
37433
  var ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE = "application/vnd.absolute.page+json";
37434
37434
  var ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION = 1;
37435
+ var ABSOLUTE_NATIVE_ROUTE_DATA_MEDIA_TYPE = "application/vnd.absolute.native-route+json";
37435
37436
  var BAD_REQUEST_STATUS = 400;
37436
37437
  var OK_STATUS = 200;
37437
37438
  var SERVER_ERROR_STATUS = 500;
@@ -37450,6 +37451,11 @@ var acceptsAbsoluteMobilePage = (request) => {
37450
37451
  return false;
37451
37452
  return (request.headers.get("accept") ?? "").split(",").some((value) => parseMediaType(value) === ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE);
37452
37453
  };
37454
+ var acceptsAbsoluteNativeRouteData = (request) => {
37455
+ if (!request)
37456
+ return false;
37457
+ return (request.headers.get("accept") ?? "").split(",").some((value) => parseMediaType(value) === ABSOLUTE_NATIVE_ROUTE_DATA_MEDIA_TYPE);
37458
+ };
37453
37459
  var readRequiredHeader = (request, name) => {
37454
37460
  const value = request.headers.get(name)?.trim();
37455
37461
  return value ? value : undefined;
@@ -37580,6 +37586,33 @@ var finalizeArchivedMobilePage = (context, input) => {
37580
37586
  return createAbsoluteMobilePageErrorResponse(page.pageId);
37581
37587
  }
37582
37588
  };
37589
+ var finalizeAbsoluteNativeRouteDevelopmentPage = (input) => {
37590
+ if (false) {}
37591
+ if (input.request?.method !== "GET") {
37592
+ return createAbsoluteMobileInvalidRequestResponse("Native-route data requests must use GET.");
37593
+ }
37594
+ if (input.request.headers.get(MOBILE_PAGE_REQUEST_HEADERS.protocol) !== String(ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION)) {
37595
+ return createAbsoluteMobileInvalidRequestResponse(`Native-route data requires protocol ${ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION}.`);
37596
+ }
37597
+ const [representation] = input.compatibility.representations;
37598
+ if (!representation) {
37599
+ return createAbsoluteMobilePageErrorResponse(input.compatibility.pageId);
37600
+ }
37601
+ try {
37602
+ return envelopeResponse({
37603
+ contract: representation.contract,
37604
+ framework: input.compatibility.framework,
37605
+ kind: "page",
37606
+ pageId: input.compatibility.pageId,
37607
+ props: normalizeJsonValue(representation.mapProps(input.props)),
37608
+ status: input.status ?? OK_STATUS
37609
+ }, input.status ?? OK_STATUS);
37610
+ } catch (error) {
37611
+ console.error(`[Mobile] Failed to produce development native route ${input.compatibility.pageId}:`, error);
37612
+ return createAbsoluteMobilePageErrorResponse(input.compatibility.pageId);
37613
+ }
37614
+ };
37615
+ var createAbsoluteMobileInvalidRequestResponse = (message) => envelopeResponse({ kind: "invalid-request", message }, BAD_REQUEST_STATUS);
37583
37616
  var createAbsoluteMobilePageErrorResponse = (pageId) => envelopeResponse({
37584
37617
  code: "representation-failed",
37585
37618
  kind: "error",
@@ -37587,6 +37620,9 @@ var createAbsoluteMobilePageErrorResponse = (pageId) => envelopeResponse({
37587
37620
  status: SERVER_ERROR_STATUS
37588
37621
  }, SERVER_ERROR_STATUS);
37589
37622
  var finalizeAbsoluteMobilePage = (input) => {
37623
+ if (acceptsAbsoluteNativeRouteData(input.request)) {
37624
+ return finalizeAbsoluteNativeRouteDevelopmentPage(input);
37625
+ }
37590
37626
  const parsed = parseAbsoluteMobilePageRequest(input.request);
37591
37627
  if (parsed.kind === "not-mobile")
37592
37628
  return;