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

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.
@@ -4335,6 +4335,7 @@ var getCurrentAbsoluteMobileProducerContext = () => {
4335
4335
  // src/mobile/pageProtocol.ts
4336
4336
  var ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE = "application/vnd.absolute.page+json";
4337
4337
  var ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION = 1;
4338
+ var ABSOLUTE_NATIVE_ROUTE_DATA_MEDIA_TYPE = "application/vnd.absolute.native-route+json";
4338
4339
  var BAD_REQUEST_STATUS = 400;
4339
4340
  var OK_STATUS = 200;
4340
4341
  var SERVER_ERROR_STATUS = 500;
@@ -4353,6 +4354,11 @@ var acceptsAbsoluteMobilePage = (request) => {
4353
4354
  return false;
4354
4355
  return (request.headers.get("accept") ?? "").split(",").some((value) => parseMediaType(value) === ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE);
4355
4356
  };
4357
+ var acceptsAbsoluteNativeRouteData = (request) => {
4358
+ if (!request)
4359
+ return false;
4360
+ return (request.headers.get("accept") ?? "").split(",").some((value) => parseMediaType(value) === ABSOLUTE_NATIVE_ROUTE_DATA_MEDIA_TYPE);
4361
+ };
4356
4362
  var readRequiredHeader = (request, name) => {
4357
4363
  const value = request.headers.get(name)?.trim();
4358
4364
  return value ? value : undefined;
@@ -4483,6 +4489,32 @@ var finalizeArchivedMobilePage = (context, input) => {
4483
4489
  return createAbsoluteMobilePageErrorResponse(page.pageId);
4484
4490
  }
4485
4491
  };
4492
+ var finalizeAbsoluteNativeRouteDevelopmentPage = (input) => {
4493
+ if (false) {}
4494
+ if (input.request?.method !== "GET") {
4495
+ return createAbsoluteMobileInvalidRequestResponse("Native-route data requests must use GET.");
4496
+ }
4497
+ if (input.request.headers.get(MOBILE_PAGE_REQUEST_HEADERS.protocol) !== String(ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION)) {
4498
+ return createAbsoluteMobileInvalidRequestResponse(`Native-route data requires protocol ${ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION}.`);
4499
+ }
4500
+ const [representation] = input.compatibility.representations;
4501
+ if (!representation) {
4502
+ return createAbsoluteMobilePageErrorResponse(input.compatibility.pageId);
4503
+ }
4504
+ try {
4505
+ return envelopeResponse({
4506
+ contract: representation.contract,
4507
+ framework: input.compatibility.framework,
4508
+ kind: "page",
4509
+ pageId: input.compatibility.pageId,
4510
+ props: normalizeJsonValue(representation.mapProps(input.props)),
4511
+ status: input.status ?? OK_STATUS
4512
+ }, input.status ?? OK_STATUS);
4513
+ } catch (error) {
4514
+ console.error(`[Mobile] Failed to produce development native route ${input.compatibility.pageId}:`, error);
4515
+ return createAbsoluteMobilePageErrorResponse(input.compatibility.pageId);
4516
+ }
4517
+ };
4486
4518
  var createAbsoluteMobileInvalidRequestResponse = (message) => envelopeResponse({ kind: "invalid-request", message }, BAD_REQUEST_STATUS);
4487
4519
  var createAbsoluteMobilePageErrorResponse = (pageId) => envelopeResponse({
4488
4520
  code: "representation-failed",
@@ -4492,6 +4524,9 @@ var createAbsoluteMobilePageErrorResponse = (pageId) => envelopeResponse({
4492
4524
  }, SERVER_ERROR_STATUS);
4493
4525
  var createAbsoluteMobileUpgradeResponse = (result) => envelopeResponse(result, UPGRADE_REQUIRED_STATUS);
4494
4526
  var finalizeAbsoluteMobilePage = (input) => {
4527
+ if (acceptsAbsoluteNativeRouteData(input.request)) {
4528
+ return finalizeAbsoluteNativeRouteDevelopmentPage(input);
4529
+ }
4495
4530
  const parsed = parseAbsoluteMobilePageRequest(input.request);
4496
4531
  if (parsed.kind === "not-mobile")
4497
4532
  return;
@@ -4918,5 +4953,5 @@ export {
4918
4953
  useIslandStore
4919
4954
  };
4920
4955
 
4921
- //# debugId=67AA92D3D752EB1A64756E2164756E21
4956
+ //# debugId=E00833F113ECF61A64756E2164756E21
4922
4957
  //# sourceMappingURL=index.js.map