@tanstack/start-server-core cria o defaultCsrfMiddleware de forma incondicional assim que o módulo carrega. Isso caía numa corrida de inicialização com o import circular que o nitro gera nos chunks de SSR (server-D-dARpA7.mjs <-> server-D-dARpA72.mjs), fazendo toda requisição no build de produção falhar com "createCsrfMiddleware is not a function". Reproduzido de forma determinística tanto com preset node-server quanto cloudflare-module, e com múltiplas versões do nitro — não é regressão de versão, é a inicialização eager em si colidindo com a ordem de avaliação do ciclo. Patch (via patch-package, reaplicado no postinstall) adia a criação do defaultCsrfMiddleware para dentro de uma função, eliminando a corrida sem mudar nenhum comportamento. Validado com reinstalação limpa de node_modules + build + smoke test em /healthz, / e /auth.
27 lines
1.5 KiB
Diff
27 lines
1.5 KiB
Diff
diff --git a/node_modules/@tanstack/start-server-core/dist/esm/createStartHandler.js b/node_modules/@tanstack/start-server-core/dist/esm/createStartHandler.js
|
|
index 34a1602..24ad3c6 100644
|
|
--- a/node_modules/@tanstack/start-server-core/dist/esm/createStartHandler.js
|
|
+++ b/node_modules/@tanstack/start-server-core/dist/esm/createStartHandler.js
|
|
@@ -18,7 +18,11 @@ function getStartResponseHeaders(opts) {
|
|
}
|
|
var entriesPromise;
|
|
var hasWarnedMissingCsrfMiddleware = false;
|
|
-var defaultCsrfMiddleware = createCsrfMiddleware({ filter: (ctx) => ctx.handlerType === "serverFn" });
|
|
+var _defaultCsrfMiddleware;
|
|
+function getDefaultCsrfMiddleware() {
|
|
+ if (!_defaultCsrfMiddleware) _defaultCsrfMiddleware = createCsrfMiddleware({ filter: (ctx) => ctx.handlerType === "serverFn" });
|
|
+ return _defaultCsrfMiddleware;
|
|
+}
|
|
var getCachedBaseManifest = createCachedBaseManifestLoader(() => getStartManifest());
|
|
var getProdBaseManifest = () => getCachedBaseManifest();
|
|
var getBaseManifest = process.env.TSS_DEV_SERVER === "true" ? getStartManifest : getProdBaseManifest;
|
|
@@ -235,7 +239,7 @@ function createStartHandler(cbOrOptions) {
|
|
];
|
|
const requestStartOptions = {
|
|
...startOptions,
|
|
- requestMiddleware: hasStartInstance ? startOptions.requestMiddleware : [defaultCsrfMiddleware],
|
|
+ requestMiddleware: hasStartInstance ? startOptions.requestMiddleware : [getDefaultCsrfMiddleware()],
|
|
serializationAdapters
|
|
};
|
|
const flattenedRequestMiddlewares = requestStartOptions.requestMiddleware ? flattenMiddlewares(requestStartOptions.requestMiddleware) : [];
|