Regenerate route fixtures for shared authentication helper

This commit is contained in:
Oleg Isonen committed 2026-10-02 12:37:27 +01:00
1 parent 5e6cb90f7b
commit 53a23ed18e
24 files changed
+167 -503

No files matched your search

@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -1,7 +1,7 @@
import { renderToString } from "react-dom/server";
import { type LoaderFunctionArgs, redirect } from "react-router";
import { isLocalResource, loadResources } from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
xmlNodeTagSuffix,
@@ -21,24 +21,6 @@ import { sitemap } from "../__generated__/$resources.sitemap.xml";
import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return fetch(input, init);
@@ -73,7 +55,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);
@@ -18,7 +18,7 @@ import {
formBotFieldName,
cachedFetch,
} from "@webstudio-is/sdk/runtime";
import { authenticateRequest } from "@webstudio-is/wsauth";
import { authenticateProjectRequest } from "@webstudio-is/wsauth";
import {
ReactSdkContext,
PageSettingsMeta,
@@ -47,24 +47,6 @@ import { authRoutes } from "../__generated__/$resources.wsauth.server";
import { createGeneratedAssetResourceFetch } from "../__generated__/$resources.asset-query-runtime";
import { assetUrlsByPath } from "../__generated__/$resources.assets";
const authenticateProductionRequest = (request: Request) => {
const host =
request.headers.get("x-forwarded-host") ||
request.headers.get("host") ||
"";
const requestHost = host.split(":")[0];
if (
projectDomain !== undefined &&
(requestHost === projectDomain ||
requestHost.startsWith(`${projectDomain}.`))
) {
return;
}
return authenticateRequest(request, authRoutes);
};
const customFetch: typeof fetch = (input, init) => {
if (typeof input !== "string") {
return cachedFetch(projectId, input, init);
@@ -99,7 +81,11 @@ const customFetch: typeof fetch = (input, init) => {
};
export const loader = async (arg: LoaderFunctionArgs) => {
const authRoute = authenticateProductionRequest(arg.request);
const authRoute = authenticateProjectRequest(
arg.request,
authRoutes,
projectDomain
);
const url = new URL(arg.request.url);
const host =
@@ -259,7 +245,7 @@ export const action = async ({
}: ActionFunctionArgs): Promise<
{ success: true } | { success: false; errors: string[] }
> => {
authenticateProductionRequest(request);
authenticateProjectRequest(request, authRoutes, projectDomain);
try {
const url = new URL(request.url);