expo-server 0.0.0 → 1.0.0

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.
Files changed (158) hide show
  1. package/README.md +1 -0
  2. package/build/cjs/ImmutableRequest.d.ts +61 -0
  3. package/build/cjs/ImmutableRequest.js +160 -0
  4. package/build/cjs/ImmutableRequest.js.map +1 -0
  5. package/build/cjs/global.types.d.ts +13 -0
  6. package/build/cjs/global.types.js +3 -0
  7. package/build/cjs/global.types.js.map +1 -0
  8. package/build/cjs/index.d.ts +2 -0
  9. package/build/cjs/index.js +18 -0
  10. package/build/cjs/index.js.map +1 -0
  11. package/build/cjs/manifest.d.ts +27 -0
  12. package/build/cjs/manifest.js +3 -0
  13. package/build/cjs/manifest.js.map +1 -0
  14. package/build/cjs/middleware/rsc.d.ts +36 -0
  15. package/build/cjs/middleware/rsc.js +124 -0
  16. package/build/cjs/middleware/rsc.js.map +1 -0
  17. package/build/cjs/private.d.ts +2 -0
  18. package/build/cjs/private.js +6 -0
  19. package/build/cjs/private.js.map +1 -0
  20. package/build/cjs/runtime/api.d.ts +39 -0
  21. package/build/cjs/runtime/api.js +73 -0
  22. package/build/cjs/runtime/api.js.map +1 -0
  23. package/build/cjs/runtime/error.d.ts +36 -0
  24. package/build/cjs/runtime/error.js +86 -0
  25. package/build/cjs/runtime/error.js.map +1 -0
  26. package/build/cjs/runtime/index.d.ts +10 -0
  27. package/build/cjs/runtime/index.js +77 -0
  28. package/build/cjs/runtime/index.js.map +1 -0
  29. package/build/cjs/runtime/scope.d.ts +15 -0
  30. package/build/cjs/runtime/scope.js +12 -0
  31. package/build/cjs/runtime/scope.js.map +1 -0
  32. package/build/cjs/types.d.ts +57 -0
  33. package/build/cjs/types.js +3 -0
  34. package/build/cjs/types.js.map +1 -0
  35. package/build/cjs/utils/createReadableStreamFromReadable.d.ts +15 -0
  36. package/build/cjs/utils/createReadableStreamFromReadable.js +97 -0
  37. package/build/cjs/utils/createReadableStreamFromReadable.js.map +1 -0
  38. package/build/cjs/utils/importMetaRegistry.d.ts +3 -0
  39. package/build/cjs/utils/importMetaRegistry.js +30 -0
  40. package/build/cjs/utils/importMetaRegistry.js.map +1 -0
  41. package/build/cjs/utils/matchers.d.ts +12 -0
  42. package/build/cjs/utils/matchers.js +76 -0
  43. package/build/cjs/utils/matchers.js.map +1 -0
  44. package/build/cjs/utils/middleware.d.ts +9 -0
  45. package/build/cjs/utils/middleware.js +82 -0
  46. package/build/cjs/utils/middleware.js.map +1 -0
  47. package/build/cjs/vendor/abstract.d.ts +40 -0
  48. package/build/cjs/vendor/abstract.js +245 -0
  49. package/build/cjs/vendor/abstract.js.map +1 -0
  50. package/build/cjs/vendor/bun.d.ts +10 -0
  51. package/build/cjs/vendor/bun.js +22 -0
  52. package/build/cjs/vendor/bun.js.map +1 -0
  53. package/build/cjs/vendor/eas.d.ts +10 -0
  54. package/build/cjs/vendor/eas.js +28 -0
  55. package/build/cjs/vendor/eas.js.map +1 -0
  56. package/build/cjs/vendor/environment/common.d.ts +14 -0
  57. package/build/cjs/vendor/environment/common.js +66 -0
  58. package/build/cjs/vendor/environment/common.js.map +1 -0
  59. package/build/cjs/vendor/environment/node.d.ts +14 -0
  60. package/build/cjs/vendor/environment/node.js +55 -0
  61. package/build/cjs/vendor/environment/node.js.map +1 -0
  62. package/build/cjs/vendor/environment/workerd.d.ts +18 -0
  63. package/build/cjs/vendor/environment/workerd.js +72 -0
  64. package/build/cjs/vendor/environment/workerd.js.map +1 -0
  65. package/build/cjs/vendor/express.d.ts +14 -0
  66. package/build/cjs/vendor/express.js +100 -0
  67. package/build/cjs/vendor/express.js.map +1 -0
  68. package/build/cjs/vendor/http.d.ts +15 -0
  69. package/build/cjs/vendor/http.js +103 -0
  70. package/build/cjs/vendor/http.js.map +1 -0
  71. package/build/cjs/vendor/netlify.d.ts +15 -0
  72. package/build/cjs/vendor/netlify.js +46 -0
  73. package/build/cjs/vendor/netlify.js.map +1 -0
  74. package/build/cjs/vendor/vercel.d.ts +13 -0
  75. package/build/cjs/vendor/vercel.js +109 -0
  76. package/build/cjs/vendor/vercel.js.map +1 -0
  77. package/build/cjs/vendor/workerd.d.ts +11 -0
  78. package/build/cjs/vendor/workerd.js +22 -0
  79. package/build/cjs/vendor/workerd.js.map +1 -0
  80. package/build/mjs/ImmutableRequest.d.ts +61 -0
  81. package/build/mjs/ImmutableRequest.js +155 -0
  82. package/build/mjs/ImmutableRequest.js.map +1 -0
  83. package/build/mjs/global.types.d.ts +13 -0
  84. package/build/mjs/global.types.js +2 -0
  85. package/build/mjs/global.types.js.map +1 -0
  86. package/build/mjs/index.d.ts +2 -0
  87. package/build/mjs/index.js +2 -0
  88. package/build/mjs/index.js.map +1 -0
  89. package/build/mjs/manifest.d.ts +27 -0
  90. package/build/mjs/manifest.js +2 -0
  91. package/build/mjs/manifest.js.map +1 -0
  92. package/build/mjs/middleware/rsc.d.ts +36 -0
  93. package/build/mjs/middleware/rsc.js +119 -0
  94. package/build/mjs/middleware/rsc.js.map +1 -0
  95. package/build/mjs/private.d.ts +2 -0
  96. package/build/mjs/private.js +2 -0
  97. package/build/mjs/private.js.map +1 -0
  98. package/build/mjs/runtime/api.d.ts +39 -0
  99. package/build/mjs/runtime/api.js +65 -0
  100. package/build/mjs/runtime/api.js.map +1 -0
  101. package/build/mjs/runtime/error.d.ts +36 -0
  102. package/build/mjs/runtime/error.js +81 -0
  103. package/build/mjs/runtime/error.js.map +1 -0
  104. package/build/mjs/runtime/index.d.ts +10 -0
  105. package/build/mjs/runtime/index.js +74 -0
  106. package/build/mjs/runtime/index.js.map +1 -0
  107. package/build/mjs/runtime/scope.d.ts +15 -0
  108. package/build/mjs/runtime/scope.js +9 -0
  109. package/build/mjs/runtime/scope.js.map +1 -0
  110. package/build/mjs/types.d.ts +57 -0
  111. package/build/mjs/types.js +2 -0
  112. package/build/mjs/types.js.map +1 -0
  113. package/build/mjs/utils/createReadableStreamFromReadable.d.ts +15 -0
  114. package/build/mjs/utils/createReadableStreamFromReadable.js +93 -0
  115. package/build/mjs/utils/createReadableStreamFromReadable.js.map +1 -0
  116. package/build/mjs/utils/importMetaRegistry.d.ts +3 -0
  117. package/build/mjs/utils/importMetaRegistry.js +27 -0
  118. package/build/mjs/utils/importMetaRegistry.js.map +1 -0
  119. package/build/mjs/utils/matchers.d.ts +12 -0
  120. package/build/mjs/utils/matchers.js +69 -0
  121. package/build/mjs/utils/matchers.js.map +1 -0
  122. package/build/mjs/utils/middleware.d.ts +9 -0
  123. package/build/mjs/utils/middleware.js +79 -0
  124. package/build/mjs/utils/middleware.js.map +1 -0
  125. package/build/mjs/vendor/abstract.d.ts +40 -0
  126. package/build/mjs/vendor/abstract.js +240 -0
  127. package/build/mjs/vendor/abstract.js.map +1 -0
  128. package/build/mjs/vendor/bun.d.ts +10 -0
  129. package/build/mjs/vendor/bun.js +17 -0
  130. package/build/mjs/vendor/bun.js.map +1 -0
  131. package/build/mjs/vendor/eas.d.ts +10 -0
  132. package/build/mjs/vendor/eas.js +23 -0
  133. package/build/mjs/vendor/eas.js.map +1 -0
  134. package/build/mjs/vendor/environment/common.d.ts +14 -0
  135. package/build/mjs/vendor/environment/common.js +63 -0
  136. package/build/mjs/vendor/environment/common.js.map +1 -0
  137. package/build/mjs/vendor/environment/node.d.ts +14 -0
  138. package/build/mjs/vendor/environment/node.js +48 -0
  139. package/build/mjs/vendor/environment/node.js.map +1 -0
  140. package/build/mjs/vendor/environment/workerd.d.ts +18 -0
  141. package/build/mjs/vendor/environment/workerd.js +68 -0
  142. package/build/mjs/vendor/environment/workerd.js.map +1 -0
  143. package/build/mjs/vendor/express.d.ts +14 -0
  144. package/build/mjs/vendor/express.js +92 -0
  145. package/build/mjs/vendor/express.js.map +1 -0
  146. package/build/mjs/vendor/http.d.ts +15 -0
  147. package/build/mjs/vendor/http.js +95 -0
  148. package/build/mjs/vendor/http.js.map +1 -0
  149. package/build/mjs/vendor/netlify.d.ts +15 -0
  150. package/build/mjs/vendor/netlify.js +41 -0
  151. package/build/mjs/vendor/netlify.js.map +1 -0
  152. package/build/mjs/vendor/vercel.d.ts +13 -0
  153. package/build/mjs/vendor/vercel.js +101 -0
  154. package/build/mjs/vendor/vercel.js.map +1 -0
  155. package/build/mjs/vendor/workerd.d.ts +11 -0
  156. package/build/mjs/vendor/workerd.js +17 -0
  157. package/build/mjs/vendor/workerd.js.map +1 -0
  158. package/package.json +68 -7
@@ -0,0 +1,40 @@
1
+ import type { Manifest, MiddlewareInfo, Route } from '../manifest';
2
+ import { MiddlewareModule } from '../utils/middleware';
3
+ /** Internal errors class to indicate that the server has failed
4
+ * @remarks
5
+ * This should be thrown for unexpected errors, so they show up as crashes.
6
+ * Typically malformed project structure, missing manifest, html or other files.
7
+ */
8
+ export declare class ExpoError extends Error {
9
+ constructor(message: string);
10
+ static isExpoError(error: unknown): error is ExpoError;
11
+ }
12
+ type ResponseInitLike = Omit<ResponseInit, 'headers'> & {
13
+ headers: Headers;
14
+ cf?: unknown;
15
+ webSocket?: unknown;
16
+ };
17
+ type CallbackRouteType = 'html' | 'api' | 'notFoundHtml' | 'notAllowedApi';
18
+ type CallbackRoute = (Route & {
19
+ type: CallbackRouteType;
20
+ }) | {
21
+ type: null;
22
+ };
23
+ type BeforeResponseCallback = (responseInit: ResponseInitLike, route: CallbackRoute) => ResponseInitLike;
24
+ export interface RequestHandlerParams {
25
+ getHtml: (request: Request, route: Route) => Promise<string | Response | null>;
26
+ getRoutesManifest: () => Promise<Manifest | null>;
27
+ getApiRoute: (route: Route) => Promise<any>;
28
+ getMiddleware: (route: MiddlewareInfo) => Promise<MiddlewareModule>;
29
+ handleRouteError: (error: Error) => Promise<Response>;
30
+ /** Before handler response 4XX, not before unhandled error */
31
+ beforeErrorResponse?: BeforeResponseCallback;
32
+ /** Before handler responses */
33
+ beforeResponse?: BeforeResponseCallback;
34
+ /** Before handler HTML responses, not before 404 HTML */
35
+ beforeHTMLResponse?: BeforeResponseCallback;
36
+ /** Before handler API responses */
37
+ beforeAPIResponse?: BeforeResponseCallback;
38
+ }
39
+ export declare function createRequestHandler({ getRoutesManifest, getHtml, getApiRoute, handleRouteError, getMiddleware, beforeErrorResponse, beforeResponse, beforeHTMLResponse, beforeAPIResponse, }: RequestHandlerParams): (request: Request) => Promise<Response>;
40
+ export {};
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpoError = void 0;
4
+ exports.createRequestHandler = createRequestHandler;
5
+ const ImmutableRequest_1 = require("../ImmutableRequest");
6
+ const matchers_1 = require("../utils/matchers");
7
+ const middleware_1 = require("../utils/middleware");
8
+ /** Internal errors class to indicate that the server has failed
9
+ * @remarks
10
+ * This should be thrown for unexpected errors, so they show up as crashes.
11
+ * Typically malformed project structure, missing manifest, html or other files.
12
+ */
13
+ class ExpoError extends Error {
14
+ constructor(message) {
15
+ super(message);
16
+ this.name = 'ExpoError';
17
+ }
18
+ static isExpoError(error) {
19
+ return !!error && error instanceof ExpoError;
20
+ }
21
+ }
22
+ exports.ExpoError = ExpoError;
23
+ function noopBeforeResponse(responseInit, _route) {
24
+ return responseInit;
25
+ }
26
+ function createRequestHandler({ getRoutesManifest, getHtml, getApiRoute, handleRouteError, getMiddleware, beforeErrorResponse = noopBeforeResponse, beforeResponse = noopBeforeResponse, beforeHTMLResponse = noopBeforeResponse, beforeAPIResponse = noopBeforeResponse, }) {
27
+ let manifest = null;
28
+ return async function handler(request) {
29
+ if (!manifest) {
30
+ manifest = await getRoutesManifest();
31
+ }
32
+ return requestHandler(request, manifest);
33
+ };
34
+ async function requestHandler(incomingRequest, manifest) {
35
+ if (!manifest) {
36
+ // NOTE(@EvanBacon): Development error when Expo Router is not setup.
37
+ // NOTE(@kitten): If the manifest is not found, we treat this as
38
+ // an SSG deployment and do nothing
39
+ return createResponse(null, null, 'Not found', {
40
+ status: 404,
41
+ headers: new Headers({
42
+ 'Content-Type': 'text/plain',
43
+ }),
44
+ });
45
+ }
46
+ let request = incomingRequest;
47
+ let url = new URL(request.url);
48
+ if (manifest.middleware) {
49
+ try {
50
+ const middleware = await getMiddleware(manifest.middleware);
51
+ if ((0, middleware_1.shouldRunMiddleware)(request, middleware)) {
52
+ const middlewareResponse = await middleware.default(new ImmutableRequest_1.ImmutableRequest(request));
53
+ if (middlewareResponse instanceof Response) {
54
+ return middlewareResponse;
55
+ }
56
+ // If middleware returns undefined/void, continue to route matching
57
+ }
58
+ }
59
+ catch (error) {
60
+ // Shows RedBox in development
61
+ return handleRouteError(error);
62
+ }
63
+ }
64
+ if (manifest.redirects) {
65
+ for (const route of manifest.redirects) {
66
+ if (!route.namedRegex.test(url.pathname)) {
67
+ continue;
68
+ }
69
+ if (route.methods && !route.methods.includes(request.method)) {
70
+ continue;
71
+ }
72
+ return respondRedirect(url, request, route);
73
+ }
74
+ }
75
+ if (manifest.rewrites) {
76
+ for (const route of manifest.rewrites) {
77
+ if (!route.namedRegex.test(url.pathname)) {
78
+ continue;
79
+ }
80
+ if (route.methods && !route.methods.includes(request.method)) {
81
+ continue;
82
+ }
83
+ // Replace URL and Request with rewrite target
84
+ url = (0, matchers_1.getRedirectRewriteLocation)(url, request, route);
85
+ request = new Request(url, request);
86
+ }
87
+ }
88
+ // First, test static routes
89
+ if (request.method === 'GET' || request.method === 'HEAD') {
90
+ for (const route of manifest.htmlRoutes) {
91
+ if (!route.namedRegex.test(url.pathname)) {
92
+ continue;
93
+ }
94
+ try {
95
+ const html = await getHtml(request, route);
96
+ return respondHTML(html, route);
97
+ }
98
+ catch (error) {
99
+ // Shows RedBox in development
100
+ return handleRouteError(error);
101
+ }
102
+ }
103
+ }
104
+ // Next, test API routes
105
+ for (const route of manifest.apiRoutes) {
106
+ if (!route.namedRegex.test(url.pathname)) {
107
+ continue;
108
+ }
109
+ try {
110
+ const mod = await getApiRoute(route);
111
+ return await respondAPI(mod, request, route);
112
+ }
113
+ catch (error) {
114
+ // Shows RedBox in development
115
+ return handleRouteError(error);
116
+ }
117
+ }
118
+ // Finally, test 404 routes
119
+ if (request.method === 'GET' || request.method === 'HEAD') {
120
+ for (const route of manifest.notFoundRoutes) {
121
+ if (!route.namedRegex.test(url.pathname)) {
122
+ continue;
123
+ }
124
+ try {
125
+ const contents = await getHtml(request, route);
126
+ return respondNotFoundHTML(contents, route);
127
+ }
128
+ catch {
129
+ // NOTE(@krystofwoldrich): Should we show a dismissible RedBox in development?
130
+ // Handle missing/corrupted not found route files
131
+ continue;
132
+ }
133
+ }
134
+ }
135
+ // 404
136
+ return createResponse(null, null, 'Not found', {
137
+ status: 404,
138
+ headers: new Headers({ 'Content-Type': 'text/plain' }),
139
+ });
140
+ }
141
+ function createResponse(routeType = null, route, bodyInit, responseInit) {
142
+ const originalStatus = responseInit.status;
143
+ let callbackRoute;
144
+ if (route && routeType) {
145
+ route.type = routeType;
146
+ callbackRoute = route;
147
+ }
148
+ else {
149
+ callbackRoute = { type: null };
150
+ }
151
+ let modifiedResponseInit = responseInit;
152
+ // Callback call order matters, general rule is to call more specific callbacks first.
153
+ if (routeType === 'html') {
154
+ modifiedResponseInit = beforeHTMLResponse(modifiedResponseInit, callbackRoute);
155
+ }
156
+ if (routeType === 'api') {
157
+ modifiedResponseInit = beforeAPIResponse(modifiedResponseInit, callbackRoute);
158
+ }
159
+ // Second to last is error response callback
160
+ if (originalStatus && originalStatus > 399) {
161
+ modifiedResponseInit = beforeErrorResponse(modifiedResponseInit, callbackRoute);
162
+ }
163
+ // Generic before response callback last
164
+ modifiedResponseInit = beforeResponse(modifiedResponseInit, callbackRoute);
165
+ return new Response(bodyInit, modifiedResponseInit);
166
+ }
167
+ function createResponseFrom(routeType = null, route, response) {
168
+ const modifiedResponseInit = {
169
+ headers: new Headers(response.headers),
170
+ status: response.status,
171
+ statusText: response.statusText,
172
+ cf: response.cf,
173
+ webSocket: response.webSocket,
174
+ };
175
+ return createResponse(routeType, route, response.body, modifiedResponseInit);
176
+ }
177
+ async function respondNotFoundHTML(html, route) {
178
+ if (typeof html === 'string') {
179
+ return createResponse('notFoundHtml', route, html, {
180
+ status: 404,
181
+ headers: new Headers({
182
+ 'Content-Type': 'text/html',
183
+ }),
184
+ });
185
+ }
186
+ if ((0, matchers_1.isResponse)(html)) {
187
+ // Only used for development errors
188
+ return html;
189
+ }
190
+ throw new ExpoError(`HTML route file ${route.page}.html could not be loaded`);
191
+ }
192
+ async function respondAPI(mod, request, route) {
193
+ if (!mod || typeof mod !== 'object') {
194
+ throw new ExpoError(`API route module ${route.page} could not be loaded`);
195
+ }
196
+ if ((0, matchers_1.isResponse)(mod)) {
197
+ // Only used for development API route bundling errors
198
+ return mod;
199
+ }
200
+ const handler = mod[request.method];
201
+ if (!handler || typeof handler !== 'function') {
202
+ return createResponse('notAllowedApi', route, 'Method not allowed', {
203
+ status: 405,
204
+ headers: new Headers({
205
+ 'Content-Type': 'text/plain',
206
+ }),
207
+ });
208
+ }
209
+ const params = (0, matchers_1.parseParams)(request, route);
210
+ const response = await handler(request, params);
211
+ if (!(0, matchers_1.isResponse)(response)) {
212
+ throw new ExpoError(`API route ${request.method} handler ${route.page} resolved to a non-Response result`);
213
+ }
214
+ return createResponseFrom('api', route, response);
215
+ }
216
+ function respondHTML(html, route) {
217
+ if (typeof html === 'string') {
218
+ return createResponse('html', route, html, {
219
+ status: 200,
220
+ headers: new Headers({
221
+ 'Content-Type': 'text/html',
222
+ }),
223
+ });
224
+ }
225
+ if ((0, matchers_1.isResponse)(html)) {
226
+ // Only used for development error responses
227
+ return html;
228
+ }
229
+ throw new ExpoError(`HTML route file ${route.page}.html could not be loaded`);
230
+ }
231
+ function respondRedirect(url, request, route) {
232
+ // NOTE(@krystofwoldrich): @expo/server would not redirect when location was empty,
233
+ // it would keep searching for match and eventually return 404. Worker redirects to origin.
234
+ const target = (0, matchers_1.getRedirectRewriteLocation)(url, request, route);
235
+ let status;
236
+ if (request.method === 'GET' || request.method === 'HEAD') {
237
+ status = route.permanent ? 301 : 302;
238
+ }
239
+ else {
240
+ status = route.permanent ? 308 : 307;
241
+ }
242
+ return Response.redirect(target, status);
243
+ }
244
+ }
245
+ //# sourceMappingURL=abstract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../src/vendor/abstract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type RequestHandlerParams } from './abstract';
2
+ export { ExpoError } from './abstract';
3
+ export type RequestHandler = (req: Request) => Promise<Response>;
4
+ /**
5
+ * Returns a request handler for Express that serves the response using Remix.
6
+ */
7
+ export declare function createRequestHandler(params: {
8
+ build: string;
9
+ environment?: string | null;
10
+ }, setup?: Partial<RequestHandlerParams>): RequestHandler;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpoError = void 0;
4
+ exports.createRequestHandler = createRequestHandler;
5
+ const node_async_hooks_1 = require("node:async_hooks");
6
+ const abstract_1 = require("./abstract");
7
+ const node_1 = require("./environment/node");
8
+ var abstract_2 = require("./abstract");
9
+ Object.defineProperty(exports, "ExpoError", { enumerable: true, get: function () { return abstract_2.ExpoError; } });
10
+ const STORE = new node_async_hooks_1.AsyncLocalStorage();
11
+ /**
12
+ * Returns a request handler for Express that serves the response using Remix.
13
+ */
14
+ function createRequestHandler(params, setup) {
15
+ const run = (0, node_1.createNodeRequestScope)(STORE, params);
16
+ const onRequest = (0, abstract_1.createRequestHandler)({
17
+ ...(0, node_1.createNodeEnv)(params),
18
+ ...setup,
19
+ });
20
+ return (request) => run(onRequest, request);
21
+ }
22
+ //# sourceMappingURL=bun.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bun.js","sourceRoot":"","sources":["../../../src/vendor/bun.ts"],"names":[],"mappings":";;;AAcA,oDAUC;AAxBD,uDAAqD;AAErD,yCAAkG;AAClG,6CAA2E;AAE3E,uCAAuC;AAA9B,qGAAA,SAAS,OAAA;AAIlB,MAAM,KAAK,GAAG,IAAI,oCAAiB,EAAE,CAAC;AAEtC;;GAEG;AACH,SAAgB,oBAAoB,CAClC,MAAsD,EACtD,KAAqC;IAErC,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;IACH,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type RequestHandlerParams } from './abstract';
2
+ import { ExecutionContext } from './environment/workerd';
3
+ export { ExpoError } from './abstract';
4
+ export type RequestHandler<Env = unknown> = (req: Request, env: Env, ctx: ExecutionContext) => Promise<Response>;
5
+ /**
6
+ * Returns a request handler for EAS Hosting deployments.
7
+ */
8
+ export declare function createRequestHandler<Env = unknown>(params: {
9
+ build?: string;
10
+ }, setup?: Partial<RequestHandlerParams>): RequestHandler<Env>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpoError = void 0;
4
+ exports.createRequestHandler = createRequestHandler;
5
+ const node_async_hooks_1 = require("node:async_hooks");
6
+ const runtime_1 = require("../runtime");
7
+ const abstract_1 = require("./abstract");
8
+ const workerd_1 = require("./environment/workerd");
9
+ var abstract_2 = require("./abstract");
10
+ Object.defineProperty(exports, "ExpoError", { enumerable: true, get: function () { return abstract_2.ExpoError; } });
11
+ const STORE = new node_async_hooks_1.AsyncLocalStorage();
12
+ /**
13
+ * Returns a request handler for EAS Hosting deployments.
14
+ */
15
+ function createRequestHandler(params, setup) {
16
+ const makeRequestAPISetup = (request, _env, ctx) => ({
17
+ origin: request.headers.get('Origin') || 'null',
18
+ environment: request.headers.get('eas-environment') || null,
19
+ waitUntil: ctx.waitUntil?.bind(ctx),
20
+ });
21
+ const run = (0, runtime_1.createRequestScope)(STORE, makeRequestAPISetup);
22
+ const onRequest = (0, abstract_1.createRequestHandler)({
23
+ ...(0, workerd_1.createWorkerdEnv)(params),
24
+ ...setup,
25
+ });
26
+ return (request, env, ctx) => run(onRequest, request, env, ctx);
27
+ }
28
+ //# sourceMappingURL=eas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eas.js","sourceRoot":"","sources":["../../../src/vendor/eas.ts"],"names":[],"mappings":";;;AAmBA,oDAeC;AAlCD,uDAAqD;AAErD,wCAAgD;AAChD,yCAAkG;AAClG,mDAA2E;AAE3E,uCAAuC;AAA9B,qGAAA,SAAS,OAAA;AAQlB,MAAM,KAAK,GAAG,IAAI,oCAAiB,EAAE,CAAC;AAEtC;;GAEG;AACH,SAAgB,oBAAoB,CAClC,MAA0B,EAC1B,KAAqC;IAErC,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,MAAM;QAC/C,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,IAAA,4BAAkB,EAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAA,+BAAiB,EAAC;QAClC,GAAG,IAAA,0BAAgB,EAAC,MAAM,CAAC;QAC3B,GAAG,KAAK;KACT,CAAC,CAAC;IACH,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAClE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Manifest, MiddlewareInfo, Route } from '../../manifest';
2
+ interface EnvironmentInput {
3
+ readText(request: string): Promise<string | null>;
4
+ readJson(request: string): Promise<unknown>;
5
+ loadModule(request: string): Promise<unknown>;
6
+ }
7
+ export declare function createEnvironment(input: EnvironmentInput): {
8
+ getRoutesManifest(): Promise<Manifest>;
9
+ getHtml(_request: Request, route: Route): Promise<string | Response | null>;
10
+ getApiRoute(route: Route): Promise<unknown>;
11
+ getMiddleware(middleware: MiddlewareInfo): Promise<any>;
12
+ handleRouteError(error: Error): Promise<Response>;
13
+ };
14
+ export {};
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createEnvironment = createEnvironment;
4
+ function initManifestRegExp(manifest) {
5
+ return {
6
+ ...manifest,
7
+ htmlRoutes: manifest.htmlRoutes.map((route) => ({
8
+ ...route,
9
+ namedRegex: new RegExp(route.namedRegex),
10
+ })),
11
+ apiRoutes: manifest.apiRoutes.map((route) => ({
12
+ ...route,
13
+ namedRegex: new RegExp(route.namedRegex),
14
+ })),
15
+ notFoundRoutes: manifest.notFoundRoutes.map((route) => ({
16
+ ...route,
17
+ namedRegex: new RegExp(route.namedRegex),
18
+ })),
19
+ redirects: manifest.redirects?.map((route) => ({
20
+ ...route,
21
+ namedRegex: new RegExp(route.namedRegex),
22
+ })),
23
+ rewrites: manifest.rewrites?.map((route) => ({
24
+ ...route,
25
+ namedRegex: new RegExp(route.namedRegex),
26
+ })),
27
+ };
28
+ }
29
+ function createEnvironment(input) {
30
+ return {
31
+ async getRoutesManifest() {
32
+ const json = await input.readJson('_expo/routes.json');
33
+ return initManifestRegExp(json);
34
+ },
35
+ async getHtml(_request, route) {
36
+ let html;
37
+ if ((html = await input.readText(route.page + '.html')) != null) {
38
+ return html;
39
+ }
40
+ // Serve a static file by route name with hoisted index
41
+ // See: https://github.com/expo/expo/pull/27935
42
+ const INDEX_PATH = '/index';
43
+ if (route.page.endsWith(INDEX_PATH) && route.page.length > INDEX_PATH.length) {
44
+ const page = route.page.slice(0, -INDEX_PATH.length);
45
+ if ((html = await input.readText(page + '.html')) != null) {
46
+ return html;
47
+ }
48
+ }
49
+ return null;
50
+ },
51
+ async getApiRoute(route) {
52
+ return input.loadModule(route.file);
53
+ },
54
+ async getMiddleware(middleware) {
55
+ const mod = (await input.loadModule(middleware.file));
56
+ if (typeof mod?.default !== 'function') {
57
+ return null;
58
+ }
59
+ return mod;
60
+ },
61
+ handleRouteError(error) {
62
+ throw error;
63
+ },
64
+ };
65
+ }
66
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/vendor/environment/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { ScopeDefinition } from '../../runtime/scope';
2
+ interface NodeEnvParams {
3
+ build: string;
4
+ environment?: string | null;
5
+ }
6
+ export declare function createNodeEnv(params: NodeEnvParams): {
7
+ getRoutesManifest(): Promise<import("../../manifest").Manifest>;
8
+ getHtml(_request: Request, route: import("../../manifest").Route): Promise<string | Response | null>;
9
+ getApiRoute(route: import("../../manifest").Route): Promise<unknown>;
10
+ getMiddleware(middleware: import("../../manifest").MiddlewareInfo): Promise<any>;
11
+ handleRouteError(error: Error): Promise<Response>;
12
+ };
13
+ export declare function createNodeRequestScope(scopeDefinition: ScopeDefinition, params: NodeEnvParams): (fn: (request: Request) => Promise<Response>, request: Request) => Promise<Response>;
14
+ export {};
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createNodeEnv = createNodeEnv;
7
+ exports.createNodeRequestScope = createNodeRequestScope;
8
+ const node_fs_1 = __importDefault(require("node:fs"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const common_1 = require("./common");
11
+ const ImmutableRequest_1 = require("../../ImmutableRequest");
12
+ const runtime_1 = require("../../runtime");
13
+ function createNodeEnv(params) {
14
+ (0, ImmutableRequest_1.assertRuntimeFetchAPISupport)();
15
+ async function readText(request) {
16
+ const filePath = node_path_1.default.join(params.build, request);
17
+ if (!node_fs_1.default.existsSync(filePath)) {
18
+ return null;
19
+ }
20
+ try {
21
+ return await node_fs_1.default.promises.readFile(filePath, 'utf-8');
22
+ }
23
+ catch {
24
+ return null;
25
+ }
26
+ }
27
+ async function readJson(request) {
28
+ const json = await readText(request);
29
+ return json != null ? JSON.parse(json) : null;
30
+ }
31
+ async function loadModule(request) {
32
+ const filePath = node_path_1.default.join(params.build, request);
33
+ if (!node_fs_1.default.existsSync(filePath)) {
34
+ return null;
35
+ }
36
+ else if (/\.c?js$/.test(filePath)) {
37
+ return require(filePath);
38
+ }
39
+ else {
40
+ return await import(filePath);
41
+ }
42
+ }
43
+ return (0, common_1.createEnvironment)({
44
+ readText,
45
+ readJson,
46
+ loadModule,
47
+ });
48
+ }
49
+ function createNodeRequestScope(scopeDefinition, params) {
50
+ return (0, runtime_1.createRequestScope)(scopeDefinition, (request) => ({
51
+ origin: request.headers.get('Origin') || 'null',
52
+ environment: params.environment ?? process.env.NODE_ENV,
53
+ }));
54
+ }
55
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../src/vendor/environment/node.ts"],"names":[],"mappings":";;;;;AAaA,sCAoCC;AAED,wDAKC;AAxDD,sDAAyB;AACzB,0DAA6B;AAE7B,qCAA6C;AAC7C,6DAAsE;AACtE,2CAAmD;AAQnD,SAAgB,aAAa,CAAC,MAAqB;IACjD,IAAA,+CAA4B,GAAE,CAAC;IAE/B,KAAK,UAAU,QAAQ,CAAC,OAAe;QACrC,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,iBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,OAAe;QACrC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,KAAK,UAAU,UAAU,CAAC,OAAe;QACvC,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,IAAA,0BAAiB,EAAC;QACvB,QAAQ;QACR,QAAQ;QACR,UAAU;KACX,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,sBAAsB,CAAC,eAAgC,EAAE,MAAqB;IAC5F,OAAO,IAAA,4BAAkB,EAAC,eAAe,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM;QAC/C,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ;KACxD,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ScopeDefinition } from '../../runtime/scope';
2
+ interface WorkerdEnvParams {
3
+ build?: string;
4
+ environment?: string | null;
5
+ }
6
+ export declare function createWorkerdEnv(params: WorkerdEnvParams): {
7
+ getRoutesManifest(): Promise<import("../../manifest").Manifest>;
8
+ getHtml(_request: Request, route: import("../../manifest").Route): Promise<string | Response | null>;
9
+ getApiRoute(route: import("../../manifest").Route): Promise<unknown>;
10
+ getMiddleware(middleware: import("../../manifest").MiddlewareInfo): Promise<any>;
11
+ handleRouteError(error: Error): Promise<Response>;
12
+ };
13
+ export interface ExecutionContext {
14
+ waitUntil?(promise: Promise<any>): void;
15
+ props?: any;
16
+ }
17
+ export declare function createWorkerdRequestScope<Env = unknown>(scopeDefinition: ScopeDefinition, params: WorkerdEnvParams): (fn: (request: Request, _env: Env, ctx: ExecutionContext) => Promise<Response>, request: Request, _env: Env, ctx: ExecutionContext) => Promise<Response>;
18
+ export {};
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWorkerdEnv = createWorkerdEnv;
4
+ exports.createWorkerdRequestScope = createWorkerdRequestScope;
5
+ const common_1 = require("./common");
6
+ const runtime_1 = require("../../runtime");
7
+ const createCachedImport = () => {
8
+ const importCache = new Map();
9
+ return async function importCached(request) {
10
+ let result = importCache.get(request);
11
+ if (!result) {
12
+ try {
13
+ result = { type: 'success', value: await import(request) };
14
+ }
15
+ catch (error) {
16
+ result = { type: 'error', value: error };
17
+ }
18
+ importCache.set(request, result);
19
+ }
20
+ if (result.type === 'success') {
21
+ return result.value;
22
+ }
23
+ else {
24
+ throw result.value;
25
+ }
26
+ };
27
+ };
28
+ function createWorkerdEnv(params) {
29
+ const build = params.build || '.';
30
+ const importCached = createCachedImport();
31
+ async function readText(request) {
32
+ try {
33
+ const mod = await importCached(`${build}/${request}`);
34
+ return mod.default;
35
+ }
36
+ catch {
37
+ return null;
38
+ }
39
+ }
40
+ async function readJson(request) {
41
+ try {
42
+ const mod = await importCached(`${build}/${request}`);
43
+ if (typeof mod.default === 'string' && mod.default[0] === '{') {
44
+ return JSON.parse(mod.default);
45
+ }
46
+ else {
47
+ return mod.default;
48
+ }
49
+ }
50
+ catch {
51
+ return null;
52
+ }
53
+ }
54
+ async function loadModule(request) {
55
+ const target = `${build}/${request}`;
56
+ return (await import(target)).default;
57
+ }
58
+ return (0, common_1.createEnvironment)({
59
+ readText,
60
+ readJson,
61
+ loadModule,
62
+ });
63
+ }
64
+ function createWorkerdRequestScope(scopeDefinition, params) {
65
+ const makeRequestAPISetup = (request, _env, ctx) => ({
66
+ origin: request.headers.get('Origin') || 'null',
67
+ environment: params.environment ?? null,
68
+ waitUntil: ctx.waitUntil?.bind(ctx),
69
+ });
70
+ return (0, runtime_1.createRequestScope)(scopeDefinition, makeRequestAPISetup);
71
+ }
72
+ //# sourceMappingURL=workerd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workerd.js","sourceRoot":"","sources":["../../../../src/vendor/environment/workerd.ts"],"names":[],"mappings":"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"}