@absolutejs/absolute 0.20.0-beta.46 → 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.
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/angular/index.js +36 -1
- package/dist/angular/index.js.map +3 -3
- package/dist/angular/server.js +36 -1
- package/dist/angular/server.js.map +3 -3
- package/dist/cli/config/server.js +36 -0
- package/dist/cli/index.js +354 -104
- package/dist/index.js +79 -5
- package/dist/index.js.map +4 -4
- package/dist/mobile/browser.js +38 -1
- package/dist/mobile/browser.js.map +3 -3
- package/dist/mobile/index.js +336 -43
- package/dist/mobile/index.js.map +6 -6
- package/dist/mobile/remoteMacAgentEntry.js +292 -144
- package/dist/mobile/shellExpoAuth.js +3 -3
- package/dist/mobile/shellExpoDevices.js +3 -3
- package/dist/react/index.js +36 -1
- package/dist/react/index.js.map +3 -3
- package/dist/react/server.js +36 -1
- package/dist/react/server.js.map +3 -3
- package/dist/src/mobile/index.d.ts +1 -0
- package/dist/src/mobile/nativeRoute.d.ts +13 -0
- package/dist/src/mobile/pageProtocol.d.ts +2 -0
- package/dist/svelte/index.js +36 -1
- package/dist/svelte/index.js.map +3 -3
- package/dist/svelte/server.js +36 -1
- package/dist/svelte/server.js.map +3 -3
- package/dist/types/build.d.ts +4 -1
- package/dist/vue/index.js +36 -1
- package/dist/vue/index.js.map +3 -3
- package/dist/vue/server.js +36 -1
- package/dist/vue/server.js.map +3 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -9034,7 +9034,7 @@ var init_loadConfig = __esm(() => {
|
|
|
9034
9034
|
|
|
9035
9035
|
// src/mobile/config.ts
|
|
9036
9036
|
import { resolve as resolve11 } from "path";
|
|
9037
|
-
var APP_ID_PATTERN, SCHEME_PATTERN, APPLE_APP_ID_PREFIX_PATTERN, CERTIFICATE_FINGERPRINT_PATTERN, HOSTNAME_PATTERN, resolveProjectPath = (projectRoot, value, field) => {
|
|
9037
|
+
var APP_ID_PATTERN, SCHEME_PATTERN, APPLE_APP_ID_PREFIX_PATTERN, CERTIFICATE_FINGERPRINT_PATTERN, HOSTNAME_PATTERN, EXPO_RESERVED_ROUTE_PREFIXES, resolveProjectPath = (projectRoot, value, field) => {
|
|
9038
9038
|
const root = resolve11(projectRoot);
|
|
9039
9039
|
const path = resolve11(root, value);
|
|
9040
9040
|
if (path !== root && !path.startsWith(`${root}/`)) {
|
|
@@ -9107,11 +9107,31 @@ var APP_ID_PATTERN, SCHEME_PATTERN, APPLE_APP_ID_PREFIX_PATTERN, CERTIFICATE_FIN
|
|
|
9107
9107
|
}
|
|
9108
9108
|
return value.match(/.{2}/g)?.join(":") ?? value;
|
|
9109
9109
|
}))
|
|
9110
|
-
].sort(),
|
|
9110
|
+
].sort(), validateExpoNativeRouteSegment = (path, segment, index, count, parameters) => {
|
|
9111
|
+
if (segment === "*" && (index !== count - 1 || count === 1)) {
|
|
9112
|
+
throw new TypeError(`mobile.routes.native route ${path} must use * once, as the final segment after a static or parameterized prefix.`);
|
|
9113
|
+
}
|
|
9114
|
+
if (segment === "*")
|
|
9115
|
+
return;
|
|
9116
|
+
if (!segment.startsWith(":") && (segment.includes("*") || segment.includes(":"))) {
|
|
9117
|
+
throw new TypeError(`mobile.routes.native route ${path} contains invalid segment ${segment}.`);
|
|
9118
|
+
}
|
|
9119
|
+
if (!segment.startsWith(":"))
|
|
9120
|
+
return;
|
|
9121
|
+
const name = segment.slice(1);
|
|
9122
|
+
if (!/^[A-Za-z][A-Za-z0-9_]*$/u.test(name)) {
|
|
9123
|
+
throw new TypeError(`mobile.routes.native route ${path} has invalid parameter ${segment}.`);
|
|
9124
|
+
}
|
|
9125
|
+
if (parameters.has(name)) {
|
|
9126
|
+
throw new TypeError(`mobile.routes.native route ${path} repeats parameter ${segment}.`);
|
|
9127
|
+
}
|
|
9128
|
+
parameters.add(name);
|
|
9129
|
+
}, normalizeExpoNativeRoutes = (config, projectRoot) => {
|
|
9111
9130
|
if (config.engine !== "expo")
|
|
9112
9131
|
return {};
|
|
9113
9132
|
const routes = config.routes?.native ?? {};
|
|
9114
9133
|
const normalized = {};
|
|
9134
|
+
const ownership = new Map;
|
|
9115
9135
|
for (const [route, module] of Object.entries(routes)) {
|
|
9116
9136
|
const path = normalizeEntry(route);
|
|
9117
9137
|
if (path.includes("?") || path.includes("#") || path !== "/" && path.endsWith("/")) {
|
|
@@ -9120,9 +9140,18 @@ var APP_ID_PATTERN, SCHEME_PATTERN, APPLE_APP_ID_PREFIX_PATTERN, CERTIFICATE_FIN
|
|
|
9120
9140
|
if (path === "/__absolute/native") {
|
|
9121
9141
|
throw new TypeError("mobile.routes.native reserves /__absolute/native for the Expo diagnostic screen.");
|
|
9122
9142
|
}
|
|
9123
|
-
|
|
9124
|
-
|
|
9143
|
+
const segments = path.split("/").filter(Boolean);
|
|
9144
|
+
if (segments[0] && EXPO_RESERVED_ROUTE_PREFIXES.has(segments[0])) {
|
|
9145
|
+
throw new TypeError(`mobile.routes.native route ${path} conflicts with an Expo Router or Metro reserved path.`);
|
|
9146
|
+
}
|
|
9147
|
+
const parameters = new Set;
|
|
9148
|
+
segments.forEach((segment, index) => validateExpoNativeRouteSegment(path, segment, index, segments.length, parameters));
|
|
9149
|
+
const signature = segments.map((segment) => segment.startsWith(":") ? ":" : segment).join("/");
|
|
9150
|
+
const existing = ownership.get(signature);
|
|
9151
|
+
if (existing) {
|
|
9152
|
+
throw new TypeError(`mobile.routes.native routes ${existing} and ${path} claim the same Expo route pattern.`);
|
|
9125
9153
|
}
|
|
9154
|
+
ownership.set(signature, path);
|
|
9126
9155
|
normalized[path] = resolveProjectPath(projectRoot, requireText(module, `mobile.routes.native[${path}]`), `mobile.routes.native[${path}]`);
|
|
9127
9156
|
}
|
|
9128
9157
|
return Object.fromEntries(Object.entries(normalized).sort(([left], [right]) => left.localeCompare(right)));
|
|
@@ -9161,6 +9190,16 @@ var init_config = __esm(() => {
|
|
|
9161
9190
|
APPLE_APP_ID_PREFIX_PATTERN = /^[A-Z0-9]{10}$/;
|
|
9162
9191
|
CERTIFICATE_FINGERPRINT_PATTERN = /^[0-9A-F]{64}$/;
|
|
9163
9192
|
HOSTNAME_PATTERN = /^(?=.{1,253}$)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(?:\.(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?))*$/;
|
|
9193
|
+
EXPO_RESERVED_ROUTE_PREFIXES = new Set([
|
|
9194
|
+
"_expo",
|
|
9195
|
+
"_flight",
|
|
9196
|
+
"_sitemap",
|
|
9197
|
+
"assets",
|
|
9198
|
+
"expo-dev-plugins",
|
|
9199
|
+
"inspector",
|
|
9200
|
+
"manifest",
|
|
9201
|
+
"public"
|
|
9202
|
+
]);
|
|
9164
9203
|
});
|
|
9165
9204
|
|
|
9166
9205
|
// src/cli/scripts/telemetry.ts
|
|
@@ -32235,6 +32274,7 @@ var getCurrentAbsoluteMobileProducerContext = () => {
|
|
|
32235
32274
|
// src/mobile/pageProtocol.ts
|
|
32236
32275
|
var ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE = "application/vnd.absolute.page+json";
|
|
32237
32276
|
var ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION = 1;
|
|
32277
|
+
var ABSOLUTE_NATIVE_ROUTE_DATA_MEDIA_TYPE = "application/vnd.absolute.native-route+json";
|
|
32238
32278
|
var BAD_REQUEST_STATUS = 400;
|
|
32239
32279
|
var OK_STATUS = 200;
|
|
32240
32280
|
var SERVER_ERROR_STATUS = 500;
|
|
@@ -32253,6 +32293,11 @@ var acceptsAbsoluteMobilePage = (request) => {
|
|
|
32253
32293
|
return false;
|
|
32254
32294
|
return (request.headers.get("accept") ?? "").split(",").some((value) => parseMediaType(value) === ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE);
|
|
32255
32295
|
};
|
|
32296
|
+
var acceptsAbsoluteNativeRouteData = (request) => {
|
|
32297
|
+
if (!request)
|
|
32298
|
+
return false;
|
|
32299
|
+
return (request.headers.get("accept") ?? "").split(",").some((value) => parseMediaType(value) === ABSOLUTE_NATIVE_ROUTE_DATA_MEDIA_TYPE);
|
|
32300
|
+
};
|
|
32256
32301
|
var readRequiredHeader = (request, name) => {
|
|
32257
32302
|
const value = request.headers.get(name)?.trim();
|
|
32258
32303
|
return value ? value : undefined;
|
|
@@ -32383,6 +32428,32 @@ var finalizeArchivedMobilePage = (context, input) => {
|
|
|
32383
32428
|
return createAbsoluteMobilePageErrorResponse(page.pageId);
|
|
32384
32429
|
}
|
|
32385
32430
|
};
|
|
32431
|
+
var finalizeAbsoluteNativeRouteDevelopmentPage = (input) => {
|
|
32432
|
+
if (false) {}
|
|
32433
|
+
if (input.request?.method !== "GET") {
|
|
32434
|
+
return createAbsoluteMobileInvalidRequestResponse("Native-route data requests must use GET.");
|
|
32435
|
+
}
|
|
32436
|
+
if (input.request.headers.get(MOBILE_PAGE_REQUEST_HEADERS.protocol) !== String(ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION)) {
|
|
32437
|
+
return createAbsoluteMobileInvalidRequestResponse(`Native-route data requires protocol ${ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION}.`);
|
|
32438
|
+
}
|
|
32439
|
+
const [representation] = input.compatibility.representations;
|
|
32440
|
+
if (!representation) {
|
|
32441
|
+
return createAbsoluteMobilePageErrorResponse(input.compatibility.pageId);
|
|
32442
|
+
}
|
|
32443
|
+
try {
|
|
32444
|
+
return envelopeResponse({
|
|
32445
|
+
contract: representation.contract,
|
|
32446
|
+
framework: input.compatibility.framework,
|
|
32447
|
+
kind: "page",
|
|
32448
|
+
pageId: input.compatibility.pageId,
|
|
32449
|
+
props: normalizeJsonValue(representation.mapProps(input.props)),
|
|
32450
|
+
status: input.status ?? OK_STATUS
|
|
32451
|
+
}, input.status ?? OK_STATUS);
|
|
32452
|
+
} catch (error) {
|
|
32453
|
+
console.error(`[Mobile] Failed to produce development native route ${input.compatibility.pageId}:`, error);
|
|
32454
|
+
return createAbsoluteMobilePageErrorResponse(input.compatibility.pageId);
|
|
32455
|
+
}
|
|
32456
|
+
};
|
|
32386
32457
|
var createAbsoluteMobileInvalidRequestResponse = (message) => envelopeResponse({ kind: "invalid-request", message }, BAD_REQUEST_STATUS);
|
|
32387
32458
|
var createAbsoluteMobilePageErrorResponse = (pageId) => envelopeResponse({
|
|
32388
32459
|
code: "representation-failed",
|
|
@@ -32392,6 +32463,9 @@ var createAbsoluteMobilePageErrorResponse = (pageId) => envelopeResponse({
|
|
|
32392
32463
|
}, SERVER_ERROR_STATUS);
|
|
32393
32464
|
var createAbsoluteMobileUpgradeResponse = (result) => envelopeResponse(result, UPGRADE_REQUIRED_STATUS);
|
|
32394
32465
|
var finalizeAbsoluteMobilePage = (input) => {
|
|
32466
|
+
if (acceptsAbsoluteNativeRouteData(input.request)) {
|
|
32467
|
+
return finalizeAbsoluteNativeRouteDevelopmentPage(input);
|
|
32468
|
+
}
|
|
32395
32469
|
const parsed = parseAbsoluteMobilePageRequest(input.request);
|
|
32396
32470
|
if (parsed.kind === "not-mobile")
|
|
32397
32471
|
return;
|
|
@@ -41040,5 +41114,5 @@ export {
|
|
|
41040
41114
|
wrapPageHandlerWithStreamingSlots
|
|
41041
41115
|
};
|
|
41042
41116
|
|
|
41043
|
-
//# debugId=
|
|
41117
|
+
//# debugId=B3A531CE0B0E139B64756E2164756E21
|
|
41044
41118
|
//# sourceMappingURL=index.js.map
|