webstudio 0.282.1 → 0.284.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.
- package/README.md +5 -1
- package/lib/cli.js +194593 -158891
- package/lib/content-runtime.js +194 -0
- package/package.json +23 -18
- package/templates/cloudflare/package.json +1 -1
- package/templates/defaults/app/route-templates/html.tsx +10 -9
- package/templates/defaults/app/route-templates/text.tsx +10 -9
- package/templates/defaults/app/route-templates/xml.tsx +10 -9
- package/templates/defaults/package.json +8 -8
- package/templates/react-router/app/route-templates/html.tsx +10 -9
- package/templates/react-router/app/route-templates/text.tsx +10 -9
- package/templates/react-router/app/route-templates/xml.tsx +10 -9
- package/templates/react-router/package.json +8 -8
- package/templates/react-router/vite.config.ts +1 -0
- package/templates/react-router-cloudflare/package.json +1 -1
- package/templates/ssg/app/asset-resource-fetch.ts +22 -0
- package/templates/ssg/app/route-templates/html/+data.ts +22 -9
- package/templates/ssg/package.json +6 -6
- package/templates/ssg/vite.config.ts +5 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webstudio",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.284.0",
|
|
4
4
|
"description": "Webstudio CLI",
|
|
5
5
|
"author": "Webstudio <github@webstudio.is>",
|
|
6
6
|
"homepage": "https://webstudio.is",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"warn-once": "^0.1.1",
|
|
45
45
|
"yargs": "^17.7.2",
|
|
46
46
|
"zod": "^4.4.3",
|
|
47
|
-
"@webstudio-is/
|
|
48
|
-
"@webstudio-is/
|
|
49
|
-
"@webstudio-is/
|
|
47
|
+
"@webstudio-is/http-client": "0.284.0",
|
|
48
|
+
"@webstudio-is/project-migrations": "0.284.0",
|
|
49
|
+
"@webstudio-is/protocol": "0.284.0",
|
|
50
50
|
"@webstudio-is/sync-client": "0.0.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
@@ -85,26 +85,31 @@
|
|
|
85
85
|
"vite": "^6.3.4",
|
|
86
86
|
"vitest": "^3.1.2",
|
|
87
87
|
"wrangler": "^3.63.2",
|
|
88
|
-
"@webstudio-is/
|
|
89
|
-
"@webstudio-is/
|
|
90
|
-
"@webstudio-is/
|
|
88
|
+
"@webstudio-is/css-engine": "0.284.0",
|
|
89
|
+
"@webstudio-is/content-engine": "0.284.0",
|
|
90
|
+
"@webstudio-is/fonts": "0.284.0",
|
|
91
|
+
"@webstudio-is/expression": "0.284.0",
|
|
92
|
+
"@webstudio-is/image": "0.284.0",
|
|
91
93
|
"@webstudio-is/project-build": "0.0.0",
|
|
92
|
-
"@webstudio-is/
|
|
93
|
-
"@webstudio-is/sdk
|
|
94
|
-
"@webstudio-is/sdk
|
|
95
|
-
"@webstudio-is/
|
|
96
|
-
"@webstudio-is/sdk-components-react
|
|
97
|
-
"@webstudio-is/sdk-components-react-radix": "0.
|
|
94
|
+
"@webstudio-is/query-builder": "0.284.0",
|
|
95
|
+
"@webstudio-is/react-sdk": "0.284.0",
|
|
96
|
+
"@webstudio-is/sdk": "0.284.0",
|
|
97
|
+
"@webstudio-is/sdk-components-animation": "0.284.0",
|
|
98
|
+
"@webstudio-is/sdk-components-react": "0.284.0",
|
|
99
|
+
"@webstudio-is/sdk-components-react-radix": "0.284.0",
|
|
100
|
+
"@webstudio-is/sdk-components-react-remix": "0.284.0",
|
|
101
|
+
"@webstudio-is/sdk-components-registry": "0.284.0",
|
|
98
102
|
"@webstudio-is/tsconfig": "1.0.7",
|
|
99
|
-
"@webstudio-is/sdk-components-
|
|
100
|
-
"@webstudio-is/wsauth": "0.
|
|
101
|
-
"@webstudio-is/sdk-components-react-remix": "0.282.1"
|
|
103
|
+
"@webstudio-is/sdk-components-react-router": "0.284.0",
|
|
104
|
+
"@webstudio-is/wsauth": "0.284.0"
|
|
102
105
|
},
|
|
103
106
|
"scripts": {
|
|
104
107
|
"typecheck": "tsc --noEmit",
|
|
105
108
|
"generate-docs": "tsx scripts/generate-docs.ts && oxfmt src/docs.generated.ts",
|
|
106
|
-
"build": "
|
|
107
|
-
"
|
|
109
|
+
"build:content-runtime": "esbuild @webstudio-is/content-engine/runtime --bundle --format=esm --platform=browser --target=es2022 --conditions=webstudio --minify --outfile=lib/content-runtime.js",
|
|
110
|
+
"build": "pnpm generate-docs && rm -rf lib && vite build && pnpm build:content-runtime",
|
|
111
|
+
"pretest": "mkdir -p lib && pnpm build:content-runtime",
|
|
112
|
+
"evaluations": "tsx --import ../../scripts/register-react-global.ts --conditions=webstudio evaluations/high-impact/run-local-agent.ts",
|
|
108
113
|
"test": "vitest run",
|
|
109
114
|
"test:release-smoke": "pnpm build && tsx --conditions=webstudio scripts/release-smoke.ts",
|
|
110
115
|
"test:release-smoke:model": "WEBSTUDIO_RELEASE_SMOKE_MODEL_EVAL_REQUIRED=1 pnpm test:release-smoke",
|
|
@@ -44,8 +44,8 @@ import {
|
|
|
44
44
|
import * as constants from "__CONSTANTS__";
|
|
45
45
|
import css from "__CSS__?url";
|
|
46
46
|
import { sitemap } from "__SITEMAP__";
|
|
47
|
-
import { assets } from "__ASSETS__";
|
|
48
47
|
import { authRoutes } from "__AUTH__";
|
|
48
|
+
import { createGeneratedAssetResourceFetch } from "__ASSET_QUERY_RUNTIME__";
|
|
49
49
|
|
|
50
50
|
const authenticateProductionRequest = (request: Request) => {
|
|
51
51
|
const host =
|
|
@@ -95,12 +95,6 @@ const customFetch: typeof fetch = (input, init) => {
|
|
|
95
95
|
return Promise.resolve(response);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
if (isLocalResource(input, "assets")) {
|
|
99
|
-
const response = new Response(JSON.stringify(assets));
|
|
100
|
-
response.headers.set("content-type", "application/json; charset=utf-8");
|
|
101
|
-
return Promise.resolve(response);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
98
|
return cachedFetch(projectId, input, init);
|
|
105
99
|
};
|
|
106
100
|
|
|
@@ -123,9 +117,16 @@ export const loader = async (arg: LoaderFunctionArgs) => {
|
|
|
123
117
|
pathname: url.pathname,
|
|
124
118
|
};
|
|
125
119
|
|
|
120
|
+
const generatedFetch = await createGeneratedAssetResourceFetch({
|
|
121
|
+
request: arg.request,
|
|
122
|
+
context: arg.context,
|
|
123
|
+
fallback: customFetch,
|
|
124
|
+
});
|
|
126
125
|
const resources = await loadResources(
|
|
127
|
-
|
|
128
|
-
getResources({ system }).data
|
|
126
|
+
generatedFetch,
|
|
127
|
+
getResources({ system }).data,
|
|
128
|
+
url,
|
|
129
|
+
{ signal: arg.request.signal }
|
|
129
130
|
);
|
|
130
131
|
const pageMeta = getPageMeta({ system, resources });
|
|
131
132
|
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
"@remix-run/node": "2.16.5",
|
|
12
12
|
"@remix-run/react": "2.16.5",
|
|
13
13
|
"@remix-run/server-runtime": "2.16.5",
|
|
14
|
-
"@webstudio-is/image": "0.
|
|
15
|
-
"@webstudio-is/react-sdk": "0.
|
|
16
|
-
"@webstudio-is/sdk": "0.
|
|
17
|
-
"@webstudio-is/sdk-components-react": "0.
|
|
18
|
-
"@webstudio-is/sdk-components-animation": "0.
|
|
19
|
-
"@webstudio-is/sdk-components-react-radix": "0.
|
|
20
|
-
"@webstudio-is/sdk-components-react-remix": "0.
|
|
21
|
-
"@webstudio-is/wsauth": "0.
|
|
14
|
+
"@webstudio-is/image": "0.284.0",
|
|
15
|
+
"@webstudio-is/react-sdk": "0.284.0",
|
|
16
|
+
"@webstudio-is/sdk": "0.284.0",
|
|
17
|
+
"@webstudio-is/sdk-components-react": "0.284.0",
|
|
18
|
+
"@webstudio-is/sdk-components-animation": "0.284.0",
|
|
19
|
+
"@webstudio-is/sdk-components-react-radix": "0.284.0",
|
|
20
|
+
"@webstudio-is/sdk-components-react-remix": "0.284.0",
|
|
21
|
+
"@webstudio-is/wsauth": "0.284.0",
|
|
22
22
|
"isbot": "^5.1.25",
|
|
23
23
|
"react": "18.3.0-canary-14898b6a9-20240318",
|
|
24
24
|
"react-dom": "18.3.0-canary-14898b6a9-20240318"
|
|
@@ -43,8 +43,8 @@ import {
|
|
|
43
43
|
import * as constants from "__CONSTANTS__";
|
|
44
44
|
import css from "__CSS__?url";
|
|
45
45
|
import { sitemap } from "__SITEMAP__";
|
|
46
|
-
import { assets } from "__ASSETS__";
|
|
47
46
|
import { authRoutes } from "__AUTH__";
|
|
47
|
+
import { createGeneratedAssetResourceFetch } from "__ASSET_QUERY_RUNTIME__";
|
|
48
48
|
|
|
49
49
|
const authenticateProductionRequest = (request: Request) => {
|
|
50
50
|
const host =
|
|
@@ -94,12 +94,6 @@ const customFetch: typeof fetch = (input, init) => {
|
|
|
94
94
|
return Promise.resolve(response);
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
if (isLocalResource(input, "assets")) {
|
|
98
|
-
const response = new Response(JSON.stringify(assets));
|
|
99
|
-
response.headers.set("content-type", "application/json; charset=utf-8");
|
|
100
|
-
return Promise.resolve(response);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
97
|
return cachedFetch(projectId, input, init);
|
|
104
98
|
};
|
|
105
99
|
|
|
@@ -122,9 +116,16 @@ export const loader = async (arg: LoaderFunctionArgs) => {
|
|
|
122
116
|
pathname: url.pathname,
|
|
123
117
|
};
|
|
124
118
|
|
|
119
|
+
const generatedFetch = await createGeneratedAssetResourceFetch({
|
|
120
|
+
request: arg.request,
|
|
121
|
+
context: arg.context,
|
|
122
|
+
fallback: customFetch,
|
|
123
|
+
});
|
|
125
124
|
const resources = await loadResources(
|
|
126
|
-
|
|
127
|
-
getResources({ system }).data
|
|
125
|
+
generatedFetch,
|
|
126
|
+
getResources({ system }).data,
|
|
127
|
+
url,
|
|
128
|
+
{ signal: arg.request.signal }
|
|
128
129
|
);
|
|
129
130
|
const pageMeta = getPageMeta({ system, resources });
|
|
130
131
|
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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.
|
|
17
|
-
"@webstudio-is/react-sdk": "0.
|
|
18
|
-
"@webstudio-is/sdk": "0.
|
|
19
|
-
"@webstudio-is/sdk-components-animation": "0.
|
|
20
|
-
"@webstudio-is/sdk-components-react-radix": "0.
|
|
21
|
-
"@webstudio-is/sdk-components-react-router": "0.
|
|
22
|
-
"@webstudio-is/sdk-components-react": "0.
|
|
23
|
-
"@webstudio-is/wsauth": "0.
|
|
16
|
+
"@webstudio-is/image": "0.284.0",
|
|
17
|
+
"@webstudio-is/react-sdk": "0.284.0",
|
|
18
|
+
"@webstudio-is/sdk": "0.284.0",
|
|
19
|
+
"@webstudio-is/sdk-components-animation": "0.284.0",
|
|
20
|
+
"@webstudio-is/sdk-components-react-radix": "0.284.0",
|
|
21
|
+
"@webstudio-is/sdk-components-react-router": "0.284.0",
|
|
22
|
+
"@webstudio-is/sdk-components-react": "0.284.0",
|
|
23
|
+
"@webstudio-is/wsauth": "0.284.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",
|
|
@@ -0,0 +1,22 @@
|
|
|
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<
|
|
13
|
+
string,
|
|
14
|
+
{ url: string; contentRef?: string; width?: number; height?: number }
|
|
15
|
+
>;
|
|
16
|
+
}) =>
|
|
17
|
+
createPublishedAssetResourceFetch({
|
|
18
|
+
baseUrl: "https://webstudio.local",
|
|
19
|
+
deploymentId,
|
|
20
|
+
artifact,
|
|
21
|
+
runtimeAssets,
|
|
22
|
+
});
|
|
@@ -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
|
|
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
|
|
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.
|
|
13
|
-
"@webstudio-is/react-sdk": "0.
|
|
14
|
-
"@webstudio-is/sdk": "0.
|
|
15
|
-
"@webstudio-is/sdk-components-react": "0.
|
|
16
|
-
"@webstudio-is/sdk-components-animation": "0.
|
|
17
|
-
"@webstudio-is/sdk-components-react-radix": "0.
|
|
12
|
+
"@webstudio-is/image": "0.284.0",
|
|
13
|
+
"@webstudio-is/react-sdk": "0.284.0",
|
|
14
|
+
"@webstudio-is/sdk": "0.284.0",
|
|
15
|
+
"@webstudio-is/sdk-components-react": "0.284.0",
|
|
16
|
+
"@webstudio-is/sdk-components-animation": "0.284.0",
|
|
17
|
+
"@webstudio-is/sdk-components-react-radix": "0.284.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
|
});
|