expo-server 55.0.3 → 55.0.5
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/manifest.d.ts +1 -0
- package/build/cjs/private.d.ts +1 -0
- package/build/cjs/private.js +3 -1
- package/build/cjs/private.js.map +1 -1
- package/build/cjs/rendering.d.ts +1 -0
- package/build/cjs/runtime/api.d.ts +4 -3
- package/build/cjs/runtime/api.js +4 -3
- package/build/cjs/runtime/api.js.map +1 -1
- package/build/cjs/runtime/index.d.ts +1 -1
- package/build/cjs/runtime/index.js +14 -1
- package/build/cjs/runtime/index.js.map +1 -1
- package/build/cjs/runtime/scope.d.ts +1 -1
- package/build/cjs/utils/matchers.d.ts +12 -0
- package/build/cjs/utils/matchers.js +36 -0
- package/build/cjs/utils/matchers.js.map +1 -1
- package/build/cjs/vendor/eas.d.ts +4 -1
- package/build/cjs/vendor/eas.js +8 -6
- package/build/cjs/vendor/eas.js.map +1 -1
- package/build/cjs/vendor/environment/common.d.ts +5 -3
- package/build/cjs/vendor/environment/common.js +46 -22
- package/build/cjs/vendor/environment/common.js.map +1 -1
- package/build/cjs/vendor/environment/node.d.ts +2 -7
- package/build/cjs/vendor/environment/node.js +10 -1
- package/build/cjs/vendor/environment/node.js.map +1 -1
- package/build/cjs/vendor/environment/workerd.d.ts +2 -7
- package/build/cjs/vendor/environment/workerd.js +10 -1
- package/build/cjs/vendor/environment/workerd.js.map +1 -1
- package/build/cjs/vendor/express.d.ts +1 -3
- package/build/cjs/vendor/express.js +7 -67
- package/build/cjs/vendor/express.js.map +1 -1
- package/build/cjs/vendor/http.d.ts +4 -2
- package/build/cjs/vendor/http.js +33 -33
- package/build/cjs/vendor/http.js.map +1 -1
- package/build/cjs/vendor/netlify.js +1 -1
- package/build/cjs/vendor/netlify.js.map +1 -1
- package/build/cjs/vendor/vercel.js +1 -1
- package/build/cjs/vendor/vercel.js.map +1 -1
- package/build/cjs/vendor/workerd.d.ts +4 -1
- package/build/cjs/vendor/workerd.js +7 -5
- package/build/cjs/vendor/workerd.js.map +1 -1
- package/build/mjs/manifest.d.ts +1 -0
- package/build/mjs/private.d.ts +1 -0
- package/build/mjs/private.js +1 -0
- package/build/mjs/private.js.map +1 -1
- package/build/mjs/rendering.d.ts +1 -0
- package/build/mjs/runtime/api.d.ts +4 -3
- package/build/mjs/runtime/api.js +4 -3
- package/build/mjs/runtime/api.js.map +1 -1
- package/build/mjs/runtime/index.d.ts +1 -1
- package/build/mjs/runtime/index.js +14 -1
- package/build/mjs/runtime/index.js.map +1 -1
- package/build/mjs/runtime/scope.d.ts +1 -1
- package/build/mjs/utils/matchers.d.ts +12 -0
- package/build/mjs/utils/matchers.js +35 -0
- package/build/mjs/utils/matchers.js.map +1 -1
- package/build/mjs/vendor/eas.d.ts +4 -1
- package/build/mjs/vendor/eas.js +8 -6
- package/build/mjs/vendor/eas.js.map +1 -1
- package/build/mjs/vendor/environment/common.d.ts +5 -3
- package/build/mjs/vendor/environment/common.js +47 -23
- package/build/mjs/vendor/environment/common.js.map +1 -1
- package/build/mjs/vendor/environment/node.d.ts +2 -7
- package/build/mjs/vendor/environment/node.js +10 -1
- package/build/mjs/vendor/environment/node.js.map +1 -1
- package/build/mjs/vendor/environment/workerd.d.ts +2 -7
- package/build/mjs/vendor/environment/workerd.js +10 -1
- package/build/mjs/vendor/environment/workerd.js.map +1 -1
- package/build/mjs/vendor/express.d.ts +1 -3
- package/build/mjs/vendor/express.js +2 -61
- package/build/mjs/vendor/express.js.map +1 -1
- package/build/mjs/vendor/http.d.ts +4 -2
- package/build/mjs/vendor/http.js +33 -32
- package/build/mjs/vendor/http.js.map +1 -1
- package/build/mjs/vendor/netlify.js +1 -1
- package/build/mjs/vendor/netlify.js.map +1 -1
- package/build/mjs/vendor/vercel.js +1 -1
- package/build/mjs/vendor/vercel.js.map +1 -1
- package/build/mjs/vendor/workerd.d.ts +4 -1
- package/build/mjs/vendor/workerd.js +7 -5
- package/build/mjs/vendor/workerd.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExpoError = void 0;
|
|
3
|
+
exports.respond = exports.convertRequest = exports.ExpoError = void 0;
|
|
4
4
|
exports.createRequestHandler = createRequestHandler;
|
|
5
|
-
exports.convertHeaders = convertHeaders;
|
|
6
|
-
exports.convertRequest = convertRequest;
|
|
7
|
-
exports.respond = respond;
|
|
8
5
|
const node_async_hooks_1 = require("node:async_hooks");
|
|
9
|
-
const node_stream_1 = require("node:stream");
|
|
10
|
-
const promises_1 = require("node:stream/promises");
|
|
11
6
|
const abstract_1 = require("./abstract");
|
|
12
7
|
const node_1 = require("./environment/node");
|
|
8
|
+
const http_1 = require("./http");
|
|
13
9
|
var abstract_2 = require("./abstract");
|
|
14
10
|
Object.defineProperty(exports, "ExpoError", { enumerable: true, get: function () { return abstract_2.ExpoError; } });
|
|
15
11
|
const STORE = new node_async_hooks_1.AsyncLocalStorage();
|
|
@@ -44,9 +40,9 @@ function createRequestHandler(params, setup) {
|
|
|
44
40
|
return next();
|
|
45
41
|
}
|
|
46
42
|
try {
|
|
47
|
-
const request = convertRequest(req, res);
|
|
43
|
+
const request = (0, http_1.convertRequest)(req, res);
|
|
48
44
|
const response = await requestHandler(request);
|
|
49
|
-
await respond(res, response);
|
|
45
|
+
await (0, http_1.respond)(res, response);
|
|
50
46
|
}
|
|
51
47
|
catch (error) {
|
|
52
48
|
// Express doesn't support async functions, so we have to pass along the
|
|
@@ -55,63 +51,7 @@ function createRequestHandler(params, setup) {
|
|
|
55
51
|
}
|
|
56
52
|
};
|
|
57
53
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (values) {
|
|
62
|
-
if (Array.isArray(values)) {
|
|
63
|
-
for (const value of values) {
|
|
64
|
-
headers.append(key, value);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
headers.set(key, values);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return headers;
|
|
73
|
-
}
|
|
74
|
-
function convertRawHeaders(requestHeaders) {
|
|
75
|
-
const headers = new Headers();
|
|
76
|
-
for (let index = 0; index < requestHeaders.length; index += 2) {
|
|
77
|
-
headers.append(requestHeaders[index], requestHeaders[index + 1]);
|
|
78
|
-
}
|
|
79
|
-
return headers;
|
|
80
|
-
}
|
|
81
|
-
function convertRequest(req, res) {
|
|
82
|
-
const url = new URL(`${req.protocol}://${req.get('host')}${req.url}`);
|
|
83
|
-
// Abort action/loaders once we can no longer write a response
|
|
84
|
-
const controller = new AbortController();
|
|
85
|
-
res.on('close', () => controller.abort());
|
|
86
|
-
const init = {
|
|
87
|
-
method: req.method,
|
|
88
|
-
headers: convertRawHeaders(req.rawHeaders),
|
|
89
|
-
// Cast until reason/throwIfAborted added
|
|
90
|
-
// https://github.com/mysticatea/abort-controller/issues/36
|
|
91
|
-
signal: controller.signal,
|
|
92
|
-
};
|
|
93
|
-
if (req.method !== 'GET' && req.method !== 'HEAD') {
|
|
94
|
-
init.body = node_stream_1.Readable.toWeb(req);
|
|
95
|
-
init.duplex = 'half';
|
|
96
|
-
}
|
|
97
|
-
return new Request(url.href, init);
|
|
98
|
-
}
|
|
99
|
-
async function respond(res, expoRes) {
|
|
100
|
-
res.statusMessage = expoRes.statusText;
|
|
101
|
-
res.status(expoRes.status);
|
|
102
|
-
if (typeof res.setHeaders === 'function') {
|
|
103
|
-
res.setHeaders(expoRes.headers);
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
for (const [key, value] of expoRes.headers.entries()) {
|
|
107
|
-
res.appendHeader(key, value);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
if (expoRes.body) {
|
|
111
|
-
await (0, promises_1.pipeline)(node_stream_1.Readable.fromWeb(expoRes.body), res);
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
res.end();
|
|
115
|
-
}
|
|
116
|
-
}
|
|
54
|
+
var http_2 = require("./http");
|
|
55
|
+
Object.defineProperty(exports, "convertRequest", { enumerable: true, get: function () { return http_2.convertRequest; } });
|
|
56
|
+
Object.defineProperty(exports, "respond", { enumerable: true, get: function () { return http_2.respond; } });
|
|
117
57
|
//# sourceMappingURL=express.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.js","sourceRoot":"","sources":["../../../src/vendor/express.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"express.js","sourceRoot":"","sources":["../../../src/vendor/express.ts"],"names":[],"mappings":";;;AA8BA,oDAwCC;AArED,uDAAqD;AAErD,yCAIoB;AACpB,6CAA2E;AAC3E,iCAAiD;AAEjD,uCAAuC;AAA9B,qGAAA,SAAS,OAAA;AAQlB,MAAM,KAAK,GAAG,IAAI,oCAAiB,EAAE,CAAC;AAQtC;;GAEG;AACH,SAAgB,oBAAoB,CAClC,MAAsD,EACtD,KAA4B;IAE5B,MAAM,GAAG,GAAG,IAAA,6BAAsB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAA,+BAAiB,EAAC;QAClC,GAAG,IAAA,oBAAa,EAAC,MAAM,CAAC;QACxB,GAAG,KAAK;KACT,CAAC,CAAC;IAEH,KAAK,UAAU,cAAc,CAAC,OAAgB;QAC5C,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,gBAAgB,GAAG,KAAK,EAAE,gBAAgB,CAAC;YACjD,IAAI,gBAAgB,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACnE,IAAI,CAAC;oBACH,OAAO,MAAM,gBAAgB,CAAC,KAAc,CAAC,CAAC;gBAChD,CAAC;gBAAC,MAAM,CAAC;oBACP,+BAA+B;gBACjC,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,EAAE,GAAoB,EAAE,GAAqB,EAAE,IAA0B,EAAE,EAAE;QACvF,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAC7B,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,qBAAc,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,IAAA,cAAO,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,wEAAwE;YACxE,+BAA+B;YAC/B,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,+BAAiD;AAAxC,sGAAA,cAAc,OAAA;AAAE,+FAAA,OAAO,OAAA"}
|
|
@@ -15,5 +15,7 @@ export declare function createRequestHandler(params: {
|
|
|
15
15
|
isDevelopment?: boolean;
|
|
16
16
|
}, setup?: Partial<RequestHandlerParams>): RequestHandler;
|
|
17
17
|
export declare function convertRequest(req: http.IncomingMessage, res: http.ServerResponse): Request;
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
interface RespondOptions {
|
|
19
|
+
signal?: AbortSignal;
|
|
20
|
+
}
|
|
21
|
+
export declare function respond(nodeResponse: http.ServerResponse, webResponse: Response, options?: RespondOptions): Promise<void>;
|
package/build/cjs/vendor/http.js
CHANGED
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ExpoError = void 0;
|
|
4
4
|
exports.createRequestHandler = createRequestHandler;
|
|
5
5
|
exports.convertRequest = convertRequest;
|
|
6
|
-
exports.convertHeaders = convertHeaders;
|
|
7
6
|
exports.respond = respond;
|
|
8
7
|
const node_async_hooks_1 = require("node:async_hooks");
|
|
9
8
|
const node_stream_1 = require("node:stream");
|
|
@@ -46,7 +45,7 @@ function createRequestHandler(params, setup) {
|
|
|
46
45
|
try {
|
|
47
46
|
const request = convertRequest(req, res);
|
|
48
47
|
const response = await requestHandler(request);
|
|
49
|
-
await respond(res, response);
|
|
48
|
+
await respond(res, response, { signal: request.signal });
|
|
50
49
|
}
|
|
51
50
|
catch (error) {
|
|
52
51
|
// http doesn't support async functions, so we have to pass along the
|
|
@@ -65,14 +64,14 @@ function convertRawHeaders(requestHeaders) {
|
|
|
65
64
|
// Convert an http request to an expo request
|
|
66
65
|
function convertRequest(req, res) {
|
|
67
66
|
const url = new URL(req.url, `http://${req.headers.host}`);
|
|
68
|
-
// Abort action/loaders once we can no longer write a response
|
|
67
|
+
// Abort action/loaders once we can no longer write a response or request aborts
|
|
69
68
|
const controller = new AbortController();
|
|
70
|
-
res.
|
|
69
|
+
res.once('close', () => controller.abort());
|
|
70
|
+
res.once('error', (err) => controller.abort(err));
|
|
71
|
+
req.once('error', (err) => controller.abort(err));
|
|
71
72
|
const init = {
|
|
72
73
|
method: req.method,
|
|
73
74
|
headers: convertRawHeaders(req.rawHeaders),
|
|
74
|
-
// Cast until reason/throwIfAborted added
|
|
75
|
-
// https://github.com/mysticatea/abort-controller/issues/36
|
|
76
75
|
signal: controller.signal,
|
|
77
76
|
};
|
|
78
77
|
if (req.method !== 'GET' && req.method !== 'HEAD') {
|
|
@@ -81,39 +80,40 @@ function convertRequest(req, res) {
|
|
|
81
80
|
}
|
|
82
81
|
return new Request(url.href, init);
|
|
83
82
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
83
|
+
/** Assign Headers to a Node.js OutgoingMessage (request) */
|
|
84
|
+
const assignOutgoingMessageHeaders = (outgoing, headers) => {
|
|
85
|
+
// Preassemble array headers, mostly only for Set-Cookie
|
|
86
|
+
// We're avoiding `getSetCookie` since support is unclear in Node 18
|
|
87
|
+
const collection = {};
|
|
88
|
+
for (const [key, value] of headers) {
|
|
89
|
+
if (Array.isArray(collection[key])) {
|
|
90
|
+
collection[key].push(value);
|
|
91
|
+
}
|
|
92
|
+
else if (collection[key] != null) {
|
|
93
|
+
collection[key] = [collection[key], value];
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
collection[key] = value;
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
res.statusMessage = expoRes.statusText;
|
|
103
|
-
res.statusCode = expoRes.status;
|
|
104
|
-
if (typeof res.setHeaders === 'function') {
|
|
105
|
-
res.setHeaders(expoRes.headers);
|
|
99
|
+
// We don't use `setHeaders` due to a Bun bug (Fix: https://github.com/oven-sh/bun/pull/27050)
|
|
100
|
+
for (const key in collection) {
|
|
101
|
+
outgoing.setHeader(key, collection[key]);
|
|
106
102
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
103
|
+
};
|
|
104
|
+
async function respond(nodeResponse, webResponse, options) {
|
|
105
|
+
if (nodeResponse.writableEnded || nodeResponse.destroyed) {
|
|
106
|
+
return;
|
|
111
107
|
}
|
|
112
|
-
|
|
113
|
-
|
|
108
|
+
nodeResponse.statusMessage = webResponse.statusText;
|
|
109
|
+
nodeResponse.statusCode = webResponse.status;
|
|
110
|
+
assignOutgoingMessageHeaders(nodeResponse, webResponse.headers);
|
|
111
|
+
if (webResponse.body && !options?.signal?.aborted) {
|
|
112
|
+
const body = node_stream_1.Readable.fromWeb(webResponse.body);
|
|
113
|
+
await (0, promises_1.pipeline)(body, nodeResponse, { signal: options?.signal });
|
|
114
114
|
}
|
|
115
115
|
else {
|
|
116
|
-
|
|
116
|
+
nodeResponse.end();
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
//# sourceMappingURL=http.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/vendor/http.ts"],"names":[],"mappings":";;;AAkCA,oDAwCC;AAWD,wCAqBC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/vendor/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ const STORE = {
|
|
|
29
29
|
};
|
|
30
30
|
function createRequestHandler(params) {
|
|
31
31
|
const makeRequestAPISetup = (request, context) => ({
|
|
32
|
-
origin: (context ?? getContext()).site?.url || request.headers.get('Origin') ||
|
|
32
|
+
origin: (context ?? getContext()).site?.url || request.headers.get('Origin') || null,
|
|
33
33
|
environment: (context ?? getContext()).deploy?.context || null,
|
|
34
34
|
waitUntil: (context ?? getContext()).waitUntil,
|
|
35
35
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"netlify.js","sourceRoot":"","sources":["../../../src/vendor/netlify.ts"],"names":[],"mappings":";;;AAyCA,oDAiBC;AA1DD,yCAAuE;AACvE,wCAAgD;AAChD,6CAAmD;AAGnD,uCAAuC;AAA9B,qGAAA,SAAS,OAAA;AAElB,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AASlD,yFAAyF;AACzF,SAAS,UAAU;IACjB,MAAM,UAAU,GAEZ,UAAU,CAAC;IACf,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,iDAAiD;YAC/C,gEAAgE;YAChE,wFAAwF,CAC3F,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,kFAAkF;AAClF,mCAAmC;AACnC,MAAM,KAAK,GAAoB;IAC7B,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC;IACzC,GAAG,CAAC,KAAU,EAAE,MAA+B,EAAE,GAAG,IAAW;QAC7D,UAAU,EAAE,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;QAClC,OAAO,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACzB,CAAC;CACF,CAAC;AAEF,SAAgB,oBAAoB,CAAC,MAAyB;IAC5D,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,OAAwB,EAAE,EAAE,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"netlify.js","sourceRoot":"","sources":["../../../src/vendor/netlify.ts"],"names":[],"mappings":";;;AAyCA,oDAiBC;AA1DD,yCAAuE;AACvE,wCAAgD;AAChD,6CAAmD;AAGnD,uCAAuC;AAA9B,qGAAA,SAAS,OAAA;AAElB,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AASlD,yFAAyF;AACzF,SAAS,UAAU;IACjB,MAAM,UAAU,GAEZ,UAAU,CAAC;IACf,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,iDAAiD;YAC/C,gEAAgE;YAChE,wFAAwF,CAC3F,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,kFAAkF;AAClF,mCAAmC;AACnC,MAAM,KAAK,GAAoB;IAC7B,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC;IACzC,GAAG,CAAC,KAAU,EAAE,MAA+B,EAAE,GAAG,IAAW;QAC7D,UAAU,EAAE,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;QAClC,OAAO,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACzB,CAAC;CACF,CAAC;AAEF,SAAgB,oBAAoB,CAAC,MAAyB;IAC5D,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,OAAwB,EAAE,EAAE,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI;QACpF,WAAW,EAAE,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,IAAI,IAAI;QAC9D,SAAS,EAAE,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC,SAAS;KAC/C,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAA,4BAAkB,EAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAA,+BAAiB,EAAC,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,OAAO,KAAK,EAAE,GAAY,EAAE,GAAoB,EAAE,EAAE;QAClD,IAAI,mBAAmB,IAAI,GAAG,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,6EAA6E;gBAC3E,wFAAwF,CAC3F,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -38,7 +38,7 @@ function createRequestHandler(params) {
|
|
|
38
38
|
const host = request.headers.get('host');
|
|
39
39
|
const proto = request.headers.get('x-forwarded-proto') || 'https';
|
|
40
40
|
return {
|
|
41
|
-
origin: host ? `${proto}://${host}` :
|
|
41
|
+
origin: host ? `${proto}://${host}` : null,
|
|
42
42
|
// See: https://github.com/vercel/vercel/blob/b189b39/packages/functions/src/get-env.ts#L25C3-L25C13
|
|
43
43
|
environment: process.env.VERCEL_ENV ?? process.env.NODE_ENV,
|
|
44
44
|
waitUntil: getContext().waitUntil,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vercel.js","sourceRoot":"","sources":["../../../src/vendor/vercel.ts"],"names":[],"mappings":";;;AAiDA,oDAgBC;AAED,wCAcC;AAUD,wCA0BC;AAED,0BAQC;AA3HD,6CAAuC;AACvC,mDAAgD;AAGhD,yCAAuE;AACvE,wCAAgD;AAChD,6CAAmD;AAEnD,gGAA6F;AAE7F,uCAAuC;AAA9B,qGAAA,SAAS,OAAA;AAIlB,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAOlD,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAErE,+FAA+F;AAC/F,SAAS,UAAU;IACjB,MAAM,UAAU,GAEZ,UAAU,CAAC;IACf,OAAO,UAAU,CAAC,sBAAsB,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3D,CAAC;AAED,gFAAgF;AAChF,mCAAmC;AACnC,MAAM,KAAK,GAAoB;IAC7B,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC;IACzC,GAAG,CAAC,KAAU,EAAE,MAA+B,EAAE,GAAG,IAAW;QAC7D,UAAU,EAAE,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;QAClC,OAAO,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACzB,CAAC;CACF,CAAC;AAEF;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,MAAyB;IAC5D,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,EAAE;QAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC;QAClE,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"vercel.js","sourceRoot":"","sources":["../../../src/vendor/vercel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { type RequestHandlerParams } from './abstract';
|
|
2
2
|
import { ExecutionContext } from './environment/workerd';
|
|
3
3
|
export { ExpoError } from './abstract';
|
|
4
|
-
export
|
|
4
|
+
export interface RequestHandler<Env = unknown> {
|
|
5
|
+
(req: Request, env: Env, ctx: ExecutionContext): Promise<Response>;
|
|
6
|
+
preload(): Promise<void>;
|
|
7
|
+
}
|
|
5
8
|
/**
|
|
6
9
|
* Returns a request handler for Workerd deployments.
|
|
7
10
|
*/
|
|
@@ -13,10 +13,12 @@ const STORE = new node_async_hooks_1.AsyncLocalStorage();
|
|
|
13
13
|
*/
|
|
14
14
|
function createRequestHandler(params, setup) {
|
|
15
15
|
const run = (0, workerd_1.createWorkerdRequestScope)(STORE, params);
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
const common = (0, workerd_1.createWorkerdEnv)(params);
|
|
17
|
+
const onRequest = (0, abstract_1.createRequestHandler)({ ...common, ...setup });
|
|
18
|
+
function handler(request, env, ctx) {
|
|
19
|
+
return run(onRequest, request, env, ctx);
|
|
20
|
+
}
|
|
21
|
+
handler.preload = common.preload;
|
|
22
|
+
return handler;
|
|
21
23
|
}
|
|
22
24
|
//# sourceMappingURL=workerd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerd.js","sourceRoot":"","sources":["../../../src/vendor/workerd.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"workerd.js","sourceRoot":"","sources":["../../../src/vendor/workerd.ts"],"names":[],"mappings":";;;AAqBA,oDAcC;AAnCD,uDAAqD;AAErD,yCAAkG;AAClG,mDAI+B;AAE/B,uCAAuC;AAA9B,qGAAA,SAAS,OAAA;AAOlB,MAAM,KAAK,GAAG,IAAI,oCAAiB,EAAE,CAAC;AAEtC;;GAEG;AACH,SAAgB,oBAAoB,CAClC,MAAsD,EACtD,KAA4B;IAE5B,MAAM,GAAG,GAAG,IAAA,mCAAyB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAA,0BAAgB,EAAC,MAAM,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,IAAA,+BAAiB,EAAC,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAE7D,SAAS,OAAO,CAAC,OAAgB,EAAE,GAAQ,EAAE,GAAqB;QAChE,OAAO,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/build/mjs/manifest.d.ts
CHANGED
package/build/mjs/private.d.ts
CHANGED
package/build/mjs/private.js
CHANGED
package/build/mjs/private.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private.js","sourceRoot":"","sources":["../../src/private.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAsB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"private.js","sourceRoot":"","sources":["../../src/private.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAsB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/build/mjs/rendering.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ImmutableHeaders } from '../ImmutableRequest';
|
|
2
2
|
export { StatusError } from './error';
|
|
3
|
-
/** Returns the current request's
|
|
3
|
+
/** Returns the current request's URL.
|
|
4
4
|
*
|
|
5
|
-
* This typically returns the request's
|
|
6
|
-
*
|
|
5
|
+
* This typically returns the request's URL, or on certain platform,
|
|
6
|
+
* the origin of the request. This does not use the `Origin` header
|
|
7
|
+
* in development as it may contain an untrusted value.
|
|
7
8
|
* @returns A request origin
|
|
8
9
|
*/
|
|
9
10
|
export declare function origin(): string | null;
|
package/build/mjs/runtime/api.js
CHANGED
|
@@ -17,10 +17,11 @@ function assertSupport(name, v) {
|
|
|
17
17
|
return v;
|
|
18
18
|
}
|
|
19
19
|
export { StatusError } from './error';
|
|
20
|
-
/** Returns the current request's
|
|
20
|
+
/** Returns the current request's URL.
|
|
21
21
|
*
|
|
22
|
-
* This typically returns the request's
|
|
23
|
-
*
|
|
22
|
+
* This typically returns the request's URL, or on certain platform,
|
|
23
|
+
* the origin of the request. This does not use the `Origin` header
|
|
24
|
+
* in development as it may contain an untrusted value.
|
|
24
25
|
* @returns A request origin
|
|
25
26
|
*/
|
|
26
27
|
export function origin() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/runtime/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAmB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEpD,SAAS,oBAAoB;IAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,6FAA6F;YAC3F,sDAAsD;YACtD,6EAA6E;YAC7E,4DAA4D,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAI,IAAY,EAAE,CAAgB;IACtD,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,wCAAwC,IAAI,0DAA0D,CACvG,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/runtime/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAmB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEpD,SAAS,oBAAoB;IAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,6FAA6F;YAC3F,sDAAsD;YACtD,6EAA6E;YAC7E,4DAA4D,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAI,IAAY,EAAE,CAAgB;IACtD,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,wCAAwC,IAAI,0DAA0D,CACvG,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;;;;GAMG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,aAAa,CAAC,UAAU,EAAE,oBAAoB,EAAE,CAAC,MAAM,CAAC,CAAC;AAClE,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,aAAa,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,CAAC,cAAc,CAAC,CAAC;IACvF,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,aAAa,CAAC,eAAe,EAAE,oBAAoB,EAAE,CAAC,WAAW,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAC,EAA0B;IAChD,aAAa,CAAC,WAAW,EAAE,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,EAAiC;IACzD,aAAa,CAAC,aAAa,EAAE,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,aAG0C;IAE1C,aAAa,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,CAAC;AAClG,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ScopeDefinition, type RequestAPI } from './scope';
|
|
2
2
|
export interface RequestAPISetup extends RequestAPI {
|
|
3
|
-
origin?: string;
|
|
3
|
+
origin?: string | null;
|
|
4
4
|
environment?: string | null;
|
|
5
5
|
requestHeaders?: Headers;
|
|
6
6
|
waitUntil?(promise: Promise<unknown>): void;
|
|
@@ -7,7 +7,9 @@ function setupRuntime() {
|
|
|
7
7
|
enumerable: true,
|
|
8
8
|
configurable: true,
|
|
9
9
|
get() {
|
|
10
|
-
|
|
10
|
+
// NOTE(@kitten): By convention, this property must be a string, and runtimes typically
|
|
11
|
+
// choose to stringify "null" when the value is not available
|
|
12
|
+
return scopeRef.current?.getStore()?.origin ?? 'null';
|
|
11
13
|
},
|
|
12
14
|
});
|
|
13
15
|
}
|
|
@@ -73,6 +75,17 @@ export function createRequestScope(scopeDefinition, makeRequestAPISetup) {
|
|
|
73
75
|
throw error;
|
|
74
76
|
}
|
|
75
77
|
}
|
|
78
|
+
// Recreate the response with mutable headers, since the original response
|
|
79
|
+
// may have an immutable headers guard (like from `Response.redirect()`)
|
|
80
|
+
result = new Response(result.body, {
|
|
81
|
+
...result,
|
|
82
|
+
status: result.status,
|
|
83
|
+
statusText: result.statusText,
|
|
84
|
+
headers: result.headers,
|
|
85
|
+
// Cloudflare-specific response properties
|
|
86
|
+
cf: result.cf,
|
|
87
|
+
webSocket: result.webSocket,
|
|
88
|
+
});
|
|
76
89
|
deferredTasks.forEach((fn) => {
|
|
77
90
|
const maybePromise = fn();
|
|
78
91
|
if (maybePromise != null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type UpdateResponseHeaders = Headers | Record<string, string | string[]> | ((headers: Headers) => Headers | void);
|
|
2
2
|
export interface RequestAPI {
|
|
3
|
-
origin?: string;
|
|
3
|
+
origin?: string | null;
|
|
4
4
|
environment?: string | null;
|
|
5
5
|
requestHeaders?: Headers;
|
|
6
6
|
waitUntil?(promise: Promise<unknown>): void;
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import type { Route } from '../manifest';
|
|
2
2
|
export declare function isResponse(input: unknown): input is Response;
|
|
3
3
|
export declare function parseParams(request: Request, route: Route): Record<string, string>;
|
|
4
|
+
/**
|
|
5
|
+
* Resolves a route's context key into a concrete path by substituting dynamic segments
|
|
6
|
+
* with actual param values.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* resolveLoaderContextKey('/users/[id]`, { id: '123' }) // /users/123
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @see import('expo-router/src/utils/matchers').getSingularId
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveLoaderContextKey(contextKey: string, params: Record<string, string | string[]>): string;
|
|
4
16
|
export declare function getRedirectRewriteLocation(url: URL, request: Request, route: Route): URL;
|
|
5
17
|
/** Match `[page]` -> `page`
|
|
6
18
|
* @privateRemarks Ported from `expo-router/src/matchers.tsx`
|
|
@@ -13,6 +13,41 @@ export function parseParams(request, route) {
|
|
|
13
13
|
}
|
|
14
14
|
return params;
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Resolves a route's context key into a concrete path by substituting dynamic segments
|
|
18
|
+
* with actual param values.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* resolveLoaderContextKey('/users/[id]`, { id: '123' }) // /users/123
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @see import('expo-router/src/utils/matchers').getSingularId
|
|
26
|
+
*/
|
|
27
|
+
export function resolveLoaderContextKey(contextKey, params) {
|
|
28
|
+
const normalizedKey = contextKey.startsWith('/') ? contextKey.slice(1) : contextKey;
|
|
29
|
+
// TODO(@hassankhan): Extract this logic into its own function and share with getRedirectRewriteLocation() below
|
|
30
|
+
const resolved = normalizedKey
|
|
31
|
+
.split('/')
|
|
32
|
+
.map((segment) => {
|
|
33
|
+
let match;
|
|
34
|
+
if ((match = matchDeepDynamicRouteName(segment))) {
|
|
35
|
+
const value = params[match];
|
|
36
|
+
if (value == null)
|
|
37
|
+
return segment;
|
|
38
|
+
return Array.isArray(value) ? value.join('/') : value;
|
|
39
|
+
}
|
|
40
|
+
if ((match = matchDynamicName(segment))) {
|
|
41
|
+
const value = params[match];
|
|
42
|
+
if (value == null)
|
|
43
|
+
return segment;
|
|
44
|
+
return Array.isArray(value) ? value.join('/') : value;
|
|
45
|
+
}
|
|
46
|
+
return segment;
|
|
47
|
+
})
|
|
48
|
+
.join('/');
|
|
49
|
+
return `/${resolved}`;
|
|
50
|
+
}
|
|
16
51
|
export function getRedirectRewriteLocation(url, request, route) {
|
|
17
52
|
const originalQueryParams = url.searchParams.entries();
|
|
18
53
|
const params = parseParams(request, route);
|
|
@@ -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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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { type RequestHandlerParams } from './abstract';
|
|
2
2
|
import { ExecutionContext } from './environment/workerd';
|
|
3
3
|
export { ExpoError } from './abstract';
|
|
4
|
-
export
|
|
4
|
+
export interface RequestHandler<Env = unknown> {
|
|
5
|
+
(req: Request, env: Env, ctx: ExecutionContext): Promise<Response>;
|
|
6
|
+
preload(): Promise<void>;
|
|
7
|
+
}
|
|
5
8
|
/**
|
|
6
9
|
* Returns a request handler for EAS Hosting deployments.
|
|
7
10
|
*/
|
package/build/mjs/vendor/eas.js
CHANGED
|
@@ -9,15 +9,17 @@ const STORE = new AsyncLocalStorage();
|
|
|
9
9
|
*/
|
|
10
10
|
export function createRequestHandler(params, setup) {
|
|
11
11
|
const makeRequestAPISetup = (request, _env, ctx) => ({
|
|
12
|
-
origin: request.headers.get('Origin') ||
|
|
12
|
+
origin: request.headers.get('Origin') || null,
|
|
13
13
|
environment: request.headers.get('eas-environment') || null,
|
|
14
14
|
waitUntil: ctx.waitUntil?.bind(ctx),
|
|
15
15
|
});
|
|
16
16
|
const run = createRequestScope(STORE, makeRequestAPISetup);
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
const common = createWorkerdEnv(params);
|
|
18
|
+
const onRequest = createExpoHandler({ ...common, ...setup });
|
|
19
|
+
function handler(request, env, ctx) {
|
|
20
|
+
return run(onRequest, request, env, ctx);
|
|
21
|
+
}
|
|
22
|
+
handler.preload = common.preload;
|
|
23
|
+
return handler;
|
|
22
24
|
}
|
|
23
25
|
//# sourceMappingURL=eas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eas.js","sourceRoot":"","sources":["../../../src/vendor/eas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,oBAAoB,IAAI,iBAAiB,EAA6B,MAAM,YAAY,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAoB,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"eas.js","sourceRoot":"","sources":["../../../src/vendor/eas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,oBAAoB,IAAI,iBAAiB,EAA6B,MAAM,YAAY,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAoB,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAOvC,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAA0B,EAC1B,KAA4B;IAE5B,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,IAAS,EAAE,GAAqB,EAAE,EAAE,CAAC,CAAC;QACnF,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI;QAC7C,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI;QAC3D,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC;KACpC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAE7D,SAAS,OAAO,CAAC,OAAgB,EAAE,GAAQ,EAAE,GAAqB;QAChE,OAAO,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|