expo-server 55.0.10 → 55.0.11
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/build/cjs/utils/matchers.js +25 -3
- package/build/cjs/utils/matchers.js.map +1 -1
- package/build/cjs/utils/middleware.d.ts +5 -1
- package/build/cjs/utils/middleware.js +15 -4
- package/build/cjs/utils/middleware.js.map +1 -1
- package/build/cjs/vendor/abstract.js +8 -3
- package/build/cjs/vendor/abstract.js.map +1 -1
- package/build/mjs/utils/matchers.js +25 -3
- package/build/mjs/utils/matchers.js.map +1 -1
- package/build/mjs/utils/middleware.d.ts +5 -1
- package/build/mjs/utils/middleware.js +15 -4
- package/build/mjs/utils/middleware.js.map +1 -1
- package/build/mjs/vendor/abstract.js +8 -3
- package/build/mjs/vendor/abstract.js.map +1 -1
- package/package.json +2 -2
|
@@ -59,6 +59,10 @@ function resolveLoaderContextKey(contextKey, params) {
|
|
|
59
59
|
function getRedirectRewriteLocation(url, request, route) {
|
|
60
60
|
const originalQueryParams = url.searchParams.entries();
|
|
61
61
|
const params = parseParams(request, route);
|
|
62
|
+
// Externality is determined from the *unsubstituted* `route.page` so a
|
|
63
|
+
// substituted catch-all that happens to contain `//host/...` cannot turn an
|
|
64
|
+
// internal redirect into an absolute external one.
|
|
65
|
+
const routePageIsExternal = isAbsoluteHttpUrl(route.page);
|
|
62
66
|
const target = route.page
|
|
63
67
|
.split('/')
|
|
64
68
|
.map((segment) => {
|
|
@@ -66,14 +70,16 @@ function getRedirectRewriteLocation(url, request, route) {
|
|
|
66
70
|
if ((match = matchDynamicName(segment))) {
|
|
67
71
|
const value = params[match];
|
|
68
72
|
delete params[match];
|
|
69
|
-
|
|
73
|
+
const resolved = typeof value === 'string'
|
|
70
74
|
? value.split('/')[0] /* If we are redirecting from a catch-all route, we need to remove the extra segments */
|
|
71
75
|
: (value ?? segment);
|
|
76
|
+
return routePageIsExternal ? resolved : stripLeadingSlashes(resolved);
|
|
72
77
|
}
|
|
73
78
|
else if ((match = matchDeepDynamicRouteName(segment))) {
|
|
74
79
|
const value = params[match];
|
|
75
80
|
delete params[match];
|
|
76
|
-
|
|
81
|
+
const resolved = value ?? segment;
|
|
82
|
+
return routePageIsExternal ? resolved : stripLeadingSlashes(resolved);
|
|
77
83
|
}
|
|
78
84
|
else {
|
|
79
85
|
return segment;
|
|
@@ -94,11 +100,27 @@ function getRedirectRewriteLocation(url, request, route) {
|
|
|
94
100
|
targetUrl.searchParams.append(key, value);
|
|
95
101
|
}
|
|
96
102
|
}
|
|
97
|
-
//
|
|
103
|
+
// Internal routes must never escape to an external host, even if some
|
|
104
|
+
// substitution path slipped through the sanitization above.
|
|
105
|
+
if (!routePageIsExternal) {
|
|
106
|
+
return targetUrl.pathname.replace(/^\/+/, '/') + targetUrl.search;
|
|
107
|
+
}
|
|
98
108
|
return targetUrl.hostname === 'localhost'
|
|
99
109
|
? targetUrl.pathname + targetUrl.search
|
|
100
110
|
: targetUrl.toString();
|
|
101
111
|
}
|
|
112
|
+
function isAbsoluteHttpUrl(value) {
|
|
113
|
+
try {
|
|
114
|
+
const parsed = new URL(value);
|
|
115
|
+
return parsed.protocol === 'http:' || parsed.protocol === 'https:';
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function stripLeadingSlashes(value) {
|
|
122
|
+
return typeof value === 'string' ? value.replace(/^\/+/, '') : value;
|
|
123
|
+
}
|
|
102
124
|
/** Match `[page]` -> `page`
|
|
103
125
|
* @privateRemarks Ported from `expo-router/src/matchers.tsx`
|
|
104
126
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../../src/utils/matchers.ts"],"names":[],"mappings":";;AAEA,gCAEC;AAED,kCAWC;AAaD,0DAyBC;AAED,
|
|
1
|
+
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../../src/utils/matchers.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,9 @@ export interface MiddlewareModule {
|
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
7
|
* Determines whether middleware should run for a given request based on matcher configuration.
|
|
8
|
+
*
|
|
9
|
+
* When `effectivePathname` differs from the raw URL pathname (e.g. the route a
|
|
10
|
+
* `/_expo/loaders/...` request resolves to), patterns are checked against both
|
|
11
|
+
* so route-scoped middleware can't be bypassed via the loader endpoint.
|
|
8
12
|
*/
|
|
9
|
-
export declare function shouldRunMiddleware(request: Request, middleware: MiddlewareModule): boolean;
|
|
13
|
+
export declare function shouldRunMiddleware(request: Request, middleware: MiddlewareModule, effectivePathname?: string): boolean;
|
|
@@ -4,15 +4,17 @@ exports.shouldRunMiddleware = shouldRunMiddleware;
|
|
|
4
4
|
const matchers_1 = require("./matchers");
|
|
5
5
|
/**
|
|
6
6
|
* Determines whether middleware should run for a given request based on matcher configuration.
|
|
7
|
+
*
|
|
8
|
+
* When `effectivePathname` differs from the raw URL pathname (e.g. the route a
|
|
9
|
+
* `/_expo/loaders/...` request resolves to), patterns are checked against both
|
|
10
|
+
* so route-scoped middleware can't be bypassed via the loader endpoint.
|
|
7
11
|
*/
|
|
8
|
-
function shouldRunMiddleware(request, middleware) {
|
|
12
|
+
function shouldRunMiddleware(request, middleware, effectivePathname) {
|
|
9
13
|
const matcher = middleware.unstable_settings?.matcher;
|
|
10
14
|
// No matcher means middleware runs on all requests
|
|
11
15
|
if (!matcher) {
|
|
12
16
|
return true;
|
|
13
17
|
}
|
|
14
|
-
const url = new URL(request.url);
|
|
15
|
-
const pathname = url.pathname;
|
|
16
18
|
// Check HTTP methods, if specified
|
|
17
19
|
if (matcher.methods) {
|
|
18
20
|
const methods = matcher.methods.map((method) => method.toUpperCase());
|
|
@@ -26,7 +28,14 @@ function shouldRunMiddleware(request, middleware) {
|
|
|
26
28
|
if (patterns.length === 0) {
|
|
27
29
|
return false;
|
|
28
30
|
}
|
|
29
|
-
|
|
31
|
+
const rawPathname = new URL(request.url).pathname;
|
|
32
|
+
if (patterns.some((pattern) => matchesPattern(rawPathname, pattern))) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
if (effectivePathname && effectivePathname !== rawPathname) {
|
|
36
|
+
return patterns.some((pattern) => matchesPattern(effectivePathname, pattern));
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
30
39
|
}
|
|
31
40
|
// If neither methods nor patterns are specified, run middleware on all requests
|
|
32
41
|
return true;
|
|
@@ -48,6 +57,8 @@ function matchesPattern(pathname, pattern) {
|
|
|
48
57
|
}
|
|
49
58
|
}
|
|
50
59
|
else if (pattern != null) {
|
|
60
|
+
// Prevent `g`/`y` flags from carrying `lastIndex` state across requests.
|
|
61
|
+
pattern.lastIndex = 0;
|
|
51
62
|
return pattern.test(pathname);
|
|
52
63
|
}
|
|
53
64
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/utils/middleware.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/utils/middleware.ts"],"names":[],"mappings":";;AAeA,kDAsCC;AApDD,yCAAyE;AAOzE;;;;;;GAMG;AACH,SAAgB,mBAAmB,CACjC,OAAgB,EAChB,UAA4B,EAC5B,iBAA0B;IAE1B,MAAM,OAAO,GAAG,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAEtD,mDAAmD;IACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mCAAmC;IACnC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAClD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,iBAAiB,IAAI,iBAAiB,KAAK,WAAW,EAAE,CAAC;YAC3D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gFAAgF;IAChF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,QAAgB,EAAE,OAAwB;IAChE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,yEAAyE;QACzE,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAe;IACzC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QACzC,OAAO,IAAA,2BAAgB,EAAC,OAAO,CAAC,IAAI,IAAA,oCAAyB,EAAC,OAAO,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IAC5D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,IAAI,IAAA,oCAAyB,EAAC,OAAO,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAA,2BAAgB,EAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -5,6 +5,7 @@ exports.createRequestHandler = createRequestHandler;
|
|
|
5
5
|
const ImmutableRequest_1 = require("../ImmutableRequest");
|
|
6
6
|
const matchers_1 = require("../utils/matchers");
|
|
7
7
|
const middleware_1 = require("../utils/middleware");
|
|
8
|
+
const LOADER_PREFIX = '/_expo/loaders';
|
|
8
9
|
/** Internal errors class to indicate that the server has failed
|
|
9
10
|
* @remarks
|
|
10
11
|
* This should be thrown for unexpected errors, so they show up as crashes.
|
|
@@ -45,7 +46,11 @@ function createRequestHandler({ getRoutesManifest, getHtml, getApiRoute, getMidd
|
|
|
45
46
|
let url = new URL(request.url);
|
|
46
47
|
if (manifest.middleware) {
|
|
47
48
|
const middleware = await getMiddleware(manifest.middleware);
|
|
48
|
-
|
|
49
|
+
// Pass the route a loader endpoint resolves to, so matchers can't be bypassed via `/_expo/loaders/...`.
|
|
50
|
+
const effectivePathname = url.pathname.startsWith(LOADER_PREFIX + '/')
|
|
51
|
+
? url.pathname.slice(LOADER_PREFIX.length).replace(/\/index$/, '/')
|
|
52
|
+
: url.pathname;
|
|
53
|
+
if ((0, middleware_1.shouldRunMiddleware)(request, middleware, effectivePathname)) {
|
|
49
54
|
const middlewareResponse = await middleware.default(new ImmutableRequest_1.ImmutableRequest(request));
|
|
50
55
|
if (middlewareResponse instanceof Response) {
|
|
51
56
|
return middlewareResponse;
|
|
@@ -79,9 +84,9 @@ function createRequestHandler({ getRoutesManifest, getHtml, getApiRoute, getMidd
|
|
|
79
84
|
}
|
|
80
85
|
// First, test static routes and loader data requests
|
|
81
86
|
if (request.method === 'GET' || request.method === 'HEAD') {
|
|
82
|
-
const isLoaderRequest = url.pathname.startsWith('/
|
|
87
|
+
const isLoaderRequest = url.pathname.startsWith(LOADER_PREFIX + '/');
|
|
83
88
|
const matchedPath = isLoaderRequest
|
|
84
|
-
? url.pathname.
|
|
89
|
+
? url.pathname.slice(LOADER_PREFIX.length).replace(/\/index$/, '/')
|
|
85
90
|
: url.pathname;
|
|
86
91
|
for (const route of manifest.htmlRoutes) {
|
|
87
92
|
if (!route.namedRegex.test(matchedPath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../src/vendor/abstract.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../src/vendor/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,10 @@ export function resolveLoaderContextKey(contextKey, params) {
|
|
|
51
51
|
export function getRedirectRewriteLocation(url, request, route) {
|
|
52
52
|
const originalQueryParams = url.searchParams.entries();
|
|
53
53
|
const params = parseParams(request, route);
|
|
54
|
+
// Externality is determined from the *unsubstituted* `route.page` so a
|
|
55
|
+
// substituted catch-all that happens to contain `//host/...` cannot turn an
|
|
56
|
+
// internal redirect into an absolute external one.
|
|
57
|
+
const routePageIsExternal = isAbsoluteHttpUrl(route.page);
|
|
54
58
|
const target = route.page
|
|
55
59
|
.split('/')
|
|
56
60
|
.map((segment) => {
|
|
@@ -58,14 +62,16 @@ export function getRedirectRewriteLocation(url, request, route) {
|
|
|
58
62
|
if ((match = matchDynamicName(segment))) {
|
|
59
63
|
const value = params[match];
|
|
60
64
|
delete params[match];
|
|
61
|
-
|
|
65
|
+
const resolved = typeof value === 'string'
|
|
62
66
|
? value.split('/')[0] /* If we are redirecting from a catch-all route, we need to remove the extra segments */
|
|
63
67
|
: (value ?? segment);
|
|
68
|
+
return routePageIsExternal ? resolved : stripLeadingSlashes(resolved);
|
|
64
69
|
}
|
|
65
70
|
else if ((match = matchDeepDynamicRouteName(segment))) {
|
|
66
71
|
const value = params[match];
|
|
67
72
|
delete params[match];
|
|
68
|
-
|
|
73
|
+
const resolved = value ?? segment;
|
|
74
|
+
return routePageIsExternal ? resolved : stripLeadingSlashes(resolved);
|
|
69
75
|
}
|
|
70
76
|
else {
|
|
71
77
|
return segment;
|
|
@@ -86,11 +92,27 @@ export function getRedirectRewriteLocation(url, request, route) {
|
|
|
86
92
|
targetUrl.searchParams.append(key, value);
|
|
87
93
|
}
|
|
88
94
|
}
|
|
89
|
-
//
|
|
95
|
+
// Internal routes must never escape to an external host, even if some
|
|
96
|
+
// substitution path slipped through the sanitization above.
|
|
97
|
+
if (!routePageIsExternal) {
|
|
98
|
+
return targetUrl.pathname.replace(/^\/+/, '/') + targetUrl.search;
|
|
99
|
+
}
|
|
90
100
|
return targetUrl.hostname === 'localhost'
|
|
91
101
|
? targetUrl.pathname + targetUrl.search
|
|
92
102
|
: targetUrl.toString();
|
|
93
103
|
}
|
|
104
|
+
function isAbsoluteHttpUrl(value) {
|
|
105
|
+
try {
|
|
106
|
+
const parsed = new URL(value);
|
|
107
|
+
return parsed.protocol === 'http:' || parsed.protocol === 'https:';
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function stripLeadingSlashes(value) {
|
|
114
|
+
return typeof value === 'string' ? value.replace(/^\/+/, '') : value;
|
|
115
|
+
}
|
|
94
116
|
/** Match `[page]` -> `page`
|
|
95
117
|
* @privateRemarks Ported from `expo-router/src/matchers.tsx`
|
|
96
118
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../../src/utils/matchers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../../src/utils/matchers.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,9 @@ export interface MiddlewareModule {
|
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
7
|
* Determines whether middleware should run for a given request based on matcher configuration.
|
|
8
|
+
*
|
|
9
|
+
* When `effectivePathname` differs from the raw URL pathname (e.g. the route a
|
|
10
|
+
* `/_expo/loaders/...` request resolves to), patterns are checked against both
|
|
11
|
+
* so route-scoped middleware can't be bypassed via the loader endpoint.
|
|
8
12
|
*/
|
|
9
|
-
export declare function shouldRunMiddleware(request: Request, middleware: MiddlewareModule): boolean;
|
|
13
|
+
export declare function shouldRunMiddleware(request: Request, middleware: MiddlewareModule, effectivePathname?: string): boolean;
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { matchDynamicName, matchDeepDynamicRouteName } from './matchers';
|
|
2
2
|
/**
|
|
3
3
|
* Determines whether middleware should run for a given request based on matcher configuration.
|
|
4
|
+
*
|
|
5
|
+
* When `effectivePathname` differs from the raw URL pathname (e.g. the route a
|
|
6
|
+
* `/_expo/loaders/...` request resolves to), patterns are checked against both
|
|
7
|
+
* so route-scoped middleware can't be bypassed via the loader endpoint.
|
|
4
8
|
*/
|
|
5
|
-
export function shouldRunMiddleware(request, middleware) {
|
|
9
|
+
export function shouldRunMiddleware(request, middleware, effectivePathname) {
|
|
6
10
|
const matcher = middleware.unstable_settings?.matcher;
|
|
7
11
|
// No matcher means middleware runs on all requests
|
|
8
12
|
if (!matcher) {
|
|
9
13
|
return true;
|
|
10
14
|
}
|
|
11
|
-
const url = new URL(request.url);
|
|
12
|
-
const pathname = url.pathname;
|
|
13
15
|
// Check HTTP methods, if specified
|
|
14
16
|
if (matcher.methods) {
|
|
15
17
|
const methods = matcher.methods.map((method) => method.toUpperCase());
|
|
@@ -23,7 +25,14 @@ export function shouldRunMiddleware(request, middleware) {
|
|
|
23
25
|
if (patterns.length === 0) {
|
|
24
26
|
return false;
|
|
25
27
|
}
|
|
26
|
-
|
|
28
|
+
const rawPathname = new URL(request.url).pathname;
|
|
29
|
+
if (patterns.some((pattern) => matchesPattern(rawPathname, pattern))) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
if (effectivePathname && effectivePathname !== rawPathname) {
|
|
33
|
+
return patterns.some((pattern) => matchesPattern(effectivePathname, pattern));
|
|
34
|
+
}
|
|
35
|
+
return false;
|
|
27
36
|
}
|
|
28
37
|
// If neither methods nor patterns are specified, run middleware on all requests
|
|
29
38
|
return true;
|
|
@@ -45,6 +54,8 @@ function matchesPattern(pathname, pattern) {
|
|
|
45
54
|
}
|
|
46
55
|
}
|
|
47
56
|
else if (pattern != null) {
|
|
57
|
+
// Prevent `g`/`y` flags from carrying `lastIndex` state across requests.
|
|
58
|
+
pattern.lastIndex = 0;
|
|
48
59
|
return pattern.test(pathname);
|
|
49
60
|
}
|
|
50
61
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/utils/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAOzE
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/utils/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ImmutableRequest } from '../ImmutableRequest';
|
|
2
2
|
import { getRedirectRewriteLocation, isResponse, parseParams } from '../utils/matchers';
|
|
3
3
|
import { shouldRunMiddleware } from '../utils/middleware';
|
|
4
|
+
const LOADER_PREFIX = '/_expo/loaders';
|
|
4
5
|
/** Internal errors class to indicate that the server has failed
|
|
5
6
|
* @remarks
|
|
6
7
|
* This should be thrown for unexpected errors, so they show up as crashes.
|
|
@@ -40,7 +41,11 @@ export function createRequestHandler({ getRoutesManifest, getHtml, getApiRoute,
|
|
|
40
41
|
let url = new URL(request.url);
|
|
41
42
|
if (manifest.middleware) {
|
|
42
43
|
const middleware = await getMiddleware(manifest.middleware);
|
|
43
|
-
|
|
44
|
+
// Pass the route a loader endpoint resolves to, so matchers can't be bypassed via `/_expo/loaders/...`.
|
|
45
|
+
const effectivePathname = url.pathname.startsWith(LOADER_PREFIX + '/')
|
|
46
|
+
? url.pathname.slice(LOADER_PREFIX.length).replace(/\/index$/, '/')
|
|
47
|
+
: url.pathname;
|
|
48
|
+
if (shouldRunMiddleware(request, middleware, effectivePathname)) {
|
|
44
49
|
const middlewareResponse = await middleware.default(new ImmutableRequest(request));
|
|
45
50
|
if (middlewareResponse instanceof Response) {
|
|
46
51
|
return middlewareResponse;
|
|
@@ -74,9 +79,9 @@ export function createRequestHandler({ getRoutesManifest, getHtml, getApiRoute,
|
|
|
74
79
|
}
|
|
75
80
|
// First, test static routes and loader data requests
|
|
76
81
|
if (request.method === 'GET' || request.method === 'HEAD') {
|
|
77
|
-
const isLoaderRequest = url.pathname.startsWith('/
|
|
82
|
+
const isLoaderRequest = url.pathname.startsWith(LOADER_PREFIX + '/');
|
|
78
83
|
const matchedPath = isLoaderRequest
|
|
79
|
-
? url.pathname.
|
|
84
|
+
? url.pathname.slice(LOADER_PREFIX.length).replace(/\/index$/, '/')
|
|
80
85
|
: url.pathname;
|
|
81
86
|
for (const route of manifest.htmlRoutes) {
|
|
82
87
|
if (!route.namedRegex.test(matchedPath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../src/vendor/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAoB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE5E;;;;GAIG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,KAAc;QACtC,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,YAAY,SAAS,CAAC;IAC/C,CAAC;CACF;AAgBD,SAAS,kBAAkB,CACzB,YAA8B,EAC9B,MAAqB;IAErB,OAAO,YAAY,CAAC;AACtB,CAAC;AAqBD,MAAM,UAAU,oBAAoB,CAAC,EACnC,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,aAAa,EACb,aAAa,EACb,mBAAmB,GAAG,kBAAkB,EACxC,cAAc,GAAG,kBAAkB,EACnC,kBAAkB,GAAG,kBAAkB,EACvC,iBAAiB,GAAG,kBAAkB,GACK;IAC3C,IAAI,QAAQ,GAAoB,IAAI,CAAC;IAErC,OAAO,KAAK,UAAU,OAAO,CAAC,OAAgB;QAC5C,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACrC,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,KAAK,UAAU,cAAc,CAAC,eAAwB,EAAE,QAAyB;QAC/E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,qEAAqE;YACrE,gEAAgE;YAChE,mCAAmC;YACnC,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE;gBAC7C,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,IAAI,OAAO,CAAC;oBACnB,cAAc,EAAE,YAAY;iBAC7B,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,GAAG,eAAe,CAAC;QAC9B,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC5D,IAAI,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../src/vendor/abstract.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-server",
|
|
3
|
-
"version": "55.0.
|
|
3
|
+
"version": "55.0.11",
|
|
4
4
|
"description": "Server API for Expo Router projects",
|
|
5
5
|
"main": "build/cjs/index.js",
|
|
6
6
|
"module": "build/mjs/index.js",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"engines": {
|
|
71
71
|
"node": ">=20.16.0"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "bb1d4bd298e5bcaff86b04aabca7c56659e57138"
|
|
74
74
|
}
|