webstudio 0.282.1 → 0.283.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.
@@ -4,8 +4,8 @@ import { authenticateRequest } from "@webstudio-is/wsauth";
4
4
  import { projectDomain } from "__CLIENT__";
5
5
  import { getPageMeta, getRemixParams, getResources } from "__SERVER__";
6
6
  import { sitemap } from "__SITEMAP__";
7
- import { assets } from "__ASSETS__";
8
7
  import { authRoutes } from "__AUTH__";
8
+ import { createGeneratedAssetResourceFetch } from "__ASSET_QUERY_RUNTIME__";
9
9
 
10
10
  const authenticateProductionRequest = (request: Request) => {
11
11
  const host =
@@ -53,12 +53,6 @@ const customFetch: typeof fetch = (input, init) => {
53
53
  return Promise.resolve(response);
54
54
  }
55
55
 
56
- if (isLocalResource(input, "assets")) {
57
- const response = new Response(JSON.stringify(assets));
58
- response.headers.set("content-type", "application/json; charset=utf-8");
59
- return Promise.resolve(response);
60
- }
61
-
62
56
  return fetch(input, init);
63
57
  };
64
58
 
@@ -82,9 +76,16 @@ export const loader = async (arg: LoaderFunctionArgs) => {
82
76
  pathname: url.pathname,
83
77
  };
84
78
 
79
+ const generatedFetch = await createGeneratedAssetResourceFetch({
80
+ request: arg.request,
81
+ context: arg.context,
82
+ fallback: customFetch,
83
+ });
85
84
  const resources = await loadResources(
86
- customFetch,
87
- getResources({ system }).data
85
+ generatedFetch,
86
+ getResources({ system }).data,
87
+ url,
88
+ { signal: arg.request.signal }
88
89
  );
89
90
  const pageMeta = getPageMeta({ system, resources });
90
91
 
@@ -10,8 +10,8 @@ import { Page, breakpoints, projectDomain } from "__CLIENT__";
10
10
  import { getPageMeta, getRemixParams, getResources } from "__SERVER__";
11
11
  import { assetBaseUrl, imageLoader } from "__CONSTANTS__";
12
12
  import { sitemap } from "__SITEMAP__";
13
- import { assets } from "__ASSETS__";
14
13
  import { authRoutes } from "__AUTH__";
14
+ import { createGeneratedAssetResourceFetch } from "__ASSET_QUERY_RUNTIME__";
15
15
 
16
16
  const authenticateProductionRequest = (request: Request) => {
17
17
  const host =
@@ -61,12 +61,6 @@ const customFetch: typeof fetch = (input, init) => {
61
61
  return Promise.resolve(response);
62
62
  }
63
63
 
64
- if (isLocalResource(input, "assets")) {
65
- const response = new Response(JSON.stringify(assets));
66
- response.headers.set("content-type", "application/json; charset=utf-8");
67
- return Promise.resolve(response);
68
- }
69
-
70
64
  return fetch(input, init);
71
65
  };
72
66
 
@@ -90,9 +84,16 @@ export const loader = async (arg: LoaderFunctionArgs) => {
90
84
  pathname: url.pathname,
91
85
  };
92
86
 
87
+ const generatedFetch = await createGeneratedAssetResourceFetch({
88
+ request: arg.request,
89
+ context: arg.context,
90
+ fallback: customFetch,
91
+ });
93
92
  const resources = await loadResources(
94
- customFetch,
95
- getResources({ system }).data
93
+ generatedFetch,
94
+ getResources({ system }).data,
95
+ url,
96
+ { signal: arg.request.signal }
96
97
  );
97
98
  const pageMeta = getPageMeta({ system, resources });
98
99
 
@@ -13,14 +13,14 @@
13
13
  "@react-router/fs-routes": "^7.5.3",
14
14
  "@react-router/node": "^7.5.3",
15
15
  "@react-router/serve": "^7.5.3",
16
- "@webstudio-is/image": "0.282.1",
17
- "@webstudio-is/react-sdk": "0.282.1",
18
- "@webstudio-is/sdk": "0.282.1",
19
- "@webstudio-is/sdk-components-animation": "0.282.1",
20
- "@webstudio-is/sdk-components-react-radix": "0.282.1",
21
- "@webstudio-is/sdk-components-react-router": "0.282.1",
22
- "@webstudio-is/sdk-components-react": "0.282.1",
23
- "@webstudio-is/wsauth": "0.282.1",
16
+ "@webstudio-is/image": "0.283.0",
17
+ "@webstudio-is/react-sdk": "0.283.0",
18
+ "@webstudio-is/sdk": "0.283.0",
19
+ "@webstudio-is/sdk-components-animation": "0.283.0",
20
+ "@webstudio-is/sdk-components-react-radix": "0.283.0",
21
+ "@webstudio-is/sdk-components-react-router": "0.283.0",
22
+ "@webstudio-is/sdk-components-react": "0.283.0",
23
+ "@webstudio-is/wsauth": "0.283.0",
24
24
  "isbot": "^5.1.25",
25
25
  "react": "18.3.0-canary-14898b6a9-20240318",
26
26
  "react-dom": "18.3.0-canary-14898b6a9-20240318",
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "dependencies": {
9
9
  "@cloudflare/vite-plugin": "^1.1.0",
10
- "@webstudio-is/wsauth": "0.282.1",
10
+ "@webstudio-is/wsauth": "0.283.0",
11
11
  "wrangler": "^4.14.1"
12
12
  }
13
13
  }
@@ -0,0 +1,19 @@
1
+ // Generated only for projects whose SSG build uses an Assets query.
2
+ // @ts-expect-error The CLI template is typechecked before the generated module exists.
3
+ import { createPublishedAssetResourceFetch } from "./__generated__/$resources.asset-query-vendor.js";
4
+
5
+ export const createSsgAssetResourceFetch = ({
6
+ deploymentId,
7
+ artifact,
8
+ runtimeAssets,
9
+ }: {
10
+ deploymentId: string;
11
+ artifact: unknown;
12
+ runtimeAssets: Record<string, { url: string; width?: number; height?: number }>;
13
+ }) =>
14
+ createPublishedAssetResourceFetch({
15
+ baseUrl: "https://webstudio.local",
16
+ deploymentId,
17
+ artifact,
18
+ runtimeAssets,
19
+ });
@@ -2,8 +2,26 @@ import type { PageContextServer } from "vike/types";
2
2
  import { isLocalResource, loadResources } from "@webstudio-is/sdk/runtime";
3
3
  import { getPageMeta, getResources } from "__SERVER__";
4
4
  import { assets } from "__ASSETS__";
5
+ import {
6
+ assetQueryDeploymentId,
7
+ assetQueryDatabase,
8
+ } from "__ASSET_QUERY_MANIFEST__";
9
+ import { createSsgAssetResourceFetch } from "__ASSET_RESOURCE_FETCH__";
5
10
 
6
- const customFetch: typeof fetch = (input, init) => {
11
+ const fetchAssetResource =
12
+ assetQueryDatabase === undefined
13
+ ? undefined
14
+ : createSsgAssetResourceFetch({
15
+ deploymentId: assetQueryDeploymentId,
16
+ artifact: assetQueryDatabase,
17
+ runtimeAssets: assets,
18
+ });
19
+
20
+ const customFetch: typeof fetch = async (input, init) => {
21
+ const assetResourceResponse = await fetchAssetResource?.(input, init);
22
+ if (assetResourceResponse !== undefined) {
23
+ return assetResourceResponse;
24
+ }
7
25
  if (typeof input !== "string") {
8
26
  return fetch(input, init);
9
27
  }
@@ -23,13 +41,7 @@ const customFetch: typeof fetch = (input, init) => {
23
41
  };
24
42
  const response = new Response(JSON.stringify(data));
25
43
  response.headers.set("content-type", "application/json; charset=utf-8");
26
- return Promise.resolve(response);
27
- }
28
-
29
- if (isLocalResource(input, "assets")) {
30
- const response = new Response(JSON.stringify(assets));
31
- response.headers.set("content-type", "application/json; charset=utf-8");
32
- return Promise.resolve(response);
44
+ return response;
33
45
  }
34
46
 
35
47
  return fetch(input, init);
@@ -52,7 +64,8 @@ export const data = async (pageContext: PageContextServer) => {
52
64
 
53
65
  const resources = await loadResources(
54
66
  customFetch,
55
- getResources({ system }).data
67
+ getResources({ system }).data,
68
+ url
56
69
  );
57
70
  const pageMeta = getPageMeta({ system, resources });
58
71
 
@@ -9,12 +9,12 @@
9
9
  "typecheck": "tsc --noEmit"
10
10
  },
11
11
  "dependencies": {
12
- "@webstudio-is/image": "0.282.1",
13
- "@webstudio-is/react-sdk": "0.282.1",
14
- "@webstudio-is/sdk": "0.282.1",
15
- "@webstudio-is/sdk-components-react": "0.282.1",
16
- "@webstudio-is/sdk-components-animation": "0.282.1",
17
- "@webstudio-is/sdk-components-react-radix": "0.282.1",
12
+ "@webstudio-is/image": "0.283.0",
13
+ "@webstudio-is/react-sdk": "0.283.0",
14
+ "@webstudio-is/sdk": "0.283.0",
15
+ "@webstudio-is/sdk-components-react": "0.283.0",
16
+ "@webstudio-is/sdk-components-animation": "0.283.0",
17
+ "@webstudio-is/sdk-components-react-radix": "0.283.0",
18
18
  "react": "18.3.0-canary-14898b6a9-20240318",
19
19
  "react-dom": "18.3.0-canary-14898b6a9-20240318",
20
20
  "vike": "^0.4.229"
@@ -2,14 +2,17 @@ import { defineConfig } from "vite";
2
2
  import react from "@vitejs/plugin-react";
3
3
  import vike from "vike/plugin";
4
4
 
5
+ const sourceConditions =
6
+ process.env.WEBSTUDIO_LOCAL_CLI_BOOTSTRAPPED === "1" ? ["webstudio"] : [];
7
+
5
8
  export default defineConfig({
6
9
  plugins: [react(), vike()],
7
10
  resolve: {
8
- conditions: ["browser", "development|production"],
11
+ conditions: [...sourceConditions, "browser", "development|production"],
9
12
  },
10
13
  ssr: {
11
14
  resolve: {
12
- conditions: ["node", "development|production"],
15
+ conditions: [...sourceConditions, "node", "development|production"],
13
16
  },
14
17
  },
15
18
  });