webstudio 0.301.0 → 0.302.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/lib/cli.js +149 -69
- package/package.json +20 -20
- package/templates/cloudflare/package.json +1 -1
- package/templates/defaults/package.json +8 -8
- package/templates/react-router/package.json +8 -8
- package/templates/react-router-cloudflare/package.json +1 -1
- package/templates/ssg/package.json +6 -6
package/lib/cli.js
CHANGED
|
@@ -38,6 +38,7 @@ import { createServer } from "node:net";
|
|
|
38
38
|
import "detect-port";
|
|
39
39
|
import { Launcher } from "chrome-launcher";
|
|
40
40
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
41
|
+
import semver from "semver";
|
|
41
42
|
import { createRequire } from "node:module";
|
|
42
43
|
import { x as x$6 } from "tinyexec";
|
|
43
44
|
import makeCLI from "yargs";
|
|
@@ -52970,7 +52971,7 @@ const editCustomResponseHeaders = (headers, key2, next) => {
|
|
|
52970
52971
|
(header2) => customResponseHeaderKey(header2) !== key2
|
|
52971
52972
|
);
|
|
52972
52973
|
if (next !== void 0) {
|
|
52973
|
-
updated.
|
|
52974
|
+
updated.push(next);
|
|
52974
52975
|
}
|
|
52975
52976
|
return customResponseHeaders.parse(updated);
|
|
52976
52977
|
};
|
|
@@ -327221,7 +327222,8 @@ const createProjectSessionMcpServer = async ({
|
|
|
327221
327222
|
toolNameFormat = "canonical",
|
|
327222
327223
|
toolHeartbeatIntervalMs = 1e4,
|
|
327223
327224
|
onToolFailure,
|
|
327224
|
-
onToolSuccess
|
|
327225
|
+
onToolSuccess,
|
|
327226
|
+
additionalInstructions
|
|
327225
327227
|
}) => {
|
|
327226
327228
|
const server = new Server(
|
|
327227
327229
|
{ name: "webstudio", version: "0.0.0" },
|
|
@@ -327231,7 +327233,7 @@ const createProjectSessionMcpServer = async ({
|
|
|
327231
327233
|
resources: {},
|
|
327232
327234
|
logging: {}
|
|
327233
327235
|
},
|
|
327234
|
-
instructions: startupGuidance
|
|
327236
|
+
instructions: [startupGuidance, additionalInstructions?.trim()].filter(Boolean).join("\n\n")
|
|
327235
327237
|
}
|
|
327236
327238
|
);
|
|
327237
327239
|
const sendLog = (level, data2) => {
|
|
@@ -332692,7 +332694,7 @@ class HandledCliError extends Error {
|
|
|
332692
332694
|
}
|
|
332693
332695
|
const isHandledCliError = (error) => error instanceof HandledCliError;
|
|
332694
332696
|
const name = "webstudio";
|
|
332695
|
-
const version$1 = "0.
|
|
332697
|
+
const version$1 = "0.302.0";
|
|
332696
332698
|
const description = "Webstudio CLI";
|
|
332697
332699
|
const author = "Webstudio <github@webstudio.is>";
|
|
332698
332700
|
const homepage = "https://webstudio.is";
|
|
@@ -333839,7 +333841,24 @@ const sync = async (options, dependencies2 = defaultSyncDependencies) => {
|
|
|
333839
333841
|
)
|
|
333840
333842
|
});
|
|
333841
333843
|
const isStaticBuild = project.build.deployment?.destination === "static";
|
|
333842
|
-
const
|
|
333844
|
+
const publicationBuild = {
|
|
333845
|
+
...project.build,
|
|
333846
|
+
pages: migratePages(project.build.pages)
|
|
333847
|
+
};
|
|
333848
|
+
const projectCandidates = resolvePublishedMdxAssetCandidates({
|
|
333849
|
+
build: publicationBuild,
|
|
333850
|
+
artifact: project.assetIndex,
|
|
333851
|
+
allowUnresolved: true
|
|
333852
|
+
});
|
|
333853
|
+
const dynamicBlockIds = getDynamicPublishedMdxSourceBlockIds(publicationBuild);
|
|
333854
|
+
const publicationPlan = createPublishedBuildContentCompilationPlan(
|
|
333855
|
+
publicationBuild,
|
|
333856
|
+
projectCandidates
|
|
333857
|
+
);
|
|
333858
|
+
const needsMdxCompilation = dynamicBlockIds.length > 0 || publicationPlan?.queries.some(
|
|
333859
|
+
({ id: id2 }) => id2.startsWith("__content-block-mdx__:")
|
|
333860
|
+
) === true;
|
|
333861
|
+
const assetsToDownload = options.buildId !== void 0 && !isStaticBuild && !needsMdxCompilation ? project.assets.filter(
|
|
333843
333862
|
(asset2) => asset2.format !== "md" && asset2.format !== "mdx"
|
|
333844
333863
|
) : project.assets;
|
|
333845
333864
|
if (assetsToDownload.length > 0) {
|
|
@@ -333863,23 +333882,12 @@ const sync = async (options, dependencies2 = defaultSyncDependencies) => {
|
|
|
333863
333882
|
throw new HandledCliError();
|
|
333864
333883
|
}
|
|
333865
333884
|
}
|
|
333866
|
-
if (options.buildId !== void 0 && isStaticBuild && project.assetIndex === void 0) {
|
|
333867
|
-
const
|
|
333868
|
-
|
|
333869
|
-
pages: migratePages(project.build.pages)
|
|
333870
|
-
};
|
|
333871
|
-
const projectCandidates = resolvePublishedMdxAssetCandidates({
|
|
333872
|
-
build: publicationBuild,
|
|
333873
|
-
allowUnresolved: true
|
|
333874
|
-
});
|
|
333875
|
-
const needsCandidateDiscovery = getDynamicPublishedMdxSourceBlockIds(
|
|
333876
|
-
publicationBuild
|
|
333877
|
-
).some((blockId) => projectCandidates.has(blockId) === false);
|
|
333878
|
-
const candidateDiscoveryPlan = needsCandidateDiscovery ? createBuildContentCompilationPlan(publicationBuild) : void 0;
|
|
333879
|
-
let plan = candidateDiscoveryPlan ?? createPublishedBuildContentCompilationPlan(
|
|
333880
|
-
publicationBuild,
|
|
333881
|
-
projectCandidates
|
|
333885
|
+
if (options.buildId !== void 0 && (isStaticBuild && project.assetIndex === void 0 || needsMdxCompilation)) {
|
|
333886
|
+
const needsCandidateDiscovery = dynamicBlockIds.some(
|
|
333887
|
+
(blockId) => projectCandidates.has(blockId) === false
|
|
333882
333888
|
);
|
|
333889
|
+
const candidateDiscoveryPlan = needsCandidateDiscovery ? createBuildContentCompilationPlan(publicationBuild) : void 0;
|
|
333890
|
+
const plan = candidateDiscoveryPlan ?? publicationPlan;
|
|
333883
333891
|
if (plan !== void 0) {
|
|
333884
333892
|
syncing.message("Preparing local content index");
|
|
333885
333893
|
const source = createContentSource();
|
|
@@ -346947,6 +346955,36 @@ Please check webstudio --help for more details`
|
|
|
346947
346955
|
exit$4(1);
|
|
346948
346956
|
}
|
|
346949
346957
|
}
|
|
346958
|
+
const loadedSiteData = await loadJSONFile(LOCAL_DATA_FILE);
|
|
346959
|
+
if (loadedSiteData === null) {
|
|
346960
|
+
throw new Error(
|
|
346961
|
+
`Project bundle is missing, please make sure the project is synced.`
|
|
346962
|
+
);
|
|
346963
|
+
}
|
|
346964
|
+
const parsedSiteData = publishedProjectBundle.safeParse(loadedSiteData);
|
|
346965
|
+
if (parsedSiteData.success === false) {
|
|
346966
|
+
throw Object.assign(
|
|
346967
|
+
new Error(
|
|
346968
|
+
`Project bundle is invalid, please make sure the project is synced. Invalid fields: ${formatZodIssues(
|
|
346969
|
+
parsedSiteData.error.issues,
|
|
346970
|
+
loadedSiteData
|
|
346971
|
+
)}`
|
|
346972
|
+
),
|
|
346973
|
+
{
|
|
346974
|
+
code: "PROJECT_BUNDLE_INVALID",
|
|
346975
|
+
bundleVersion,
|
|
346976
|
+
issues: getZodValidationIssues(parsedSiteData.error)
|
|
346977
|
+
}
|
|
346978
|
+
);
|
|
346979
|
+
}
|
|
346980
|
+
const siteData = parsedSiteData.data;
|
|
346981
|
+
const pages2 = migratePages(siteData.build.pages);
|
|
346982
|
+
const publicationBuild = { ...siteData.build, pages: pages2 };
|
|
346983
|
+
if (siteData.assetIndex === void 0 && (createPublishedBuildContentCompilationPlan(publicationBuild) !== void 0 || hasDynamicPublishedMdxSources(publicationBuild))) {
|
|
346984
|
+
throw new Error(
|
|
346985
|
+
"Assets queries require a content database. Sync the project again before building."
|
|
346986
|
+
);
|
|
346987
|
+
}
|
|
346950
346988
|
feedback.step("Scaffolding the project files");
|
|
346951
346989
|
if (options.incremental !== true) {
|
|
346952
346990
|
await rm(generatedDir, { recursive: true, force: true });
|
|
@@ -346985,31 +347023,6 @@ Please check webstudio --help for more details`
|
|
|
346985
347023
|
framework = await createFramework$2(frameworkOptions);
|
|
346986
347024
|
}
|
|
346987
347025
|
const assetBaseUrl = await readAssetBaseUrl(join$2(cwd$1(), "app/constants.mjs"));
|
|
346988
|
-
const loadedSiteData = await loadJSONFile(LOCAL_DATA_FILE);
|
|
346989
|
-
if (loadedSiteData === null) {
|
|
346990
|
-
throw new Error(
|
|
346991
|
-
`Project bundle is missing, please make sure the project is synced.`
|
|
346992
|
-
);
|
|
346993
|
-
}
|
|
346994
|
-
const parsedSiteData = publishedProjectBundle.safeParse(loadedSiteData);
|
|
346995
|
-
if (parsedSiteData.success === false) {
|
|
346996
|
-
throw Object.assign(
|
|
346997
|
-
new Error(
|
|
346998
|
-
`Project bundle is invalid, please make sure the project is synced. Invalid fields: ${formatZodIssues(
|
|
346999
|
-
parsedSiteData.error.issues,
|
|
347000
|
-
loadedSiteData
|
|
347001
|
-
)}`
|
|
347002
|
-
),
|
|
347003
|
-
{
|
|
347004
|
-
code: "PROJECT_BUNDLE_INVALID",
|
|
347005
|
-
bundleVersion,
|
|
347006
|
-
issues: getZodValidationIssues(parsedSiteData.error)
|
|
347007
|
-
}
|
|
347008
|
-
);
|
|
347009
|
-
}
|
|
347010
|
-
const siteData = parsedSiteData.data;
|
|
347011
|
-
const pages2 = migratePages(siteData.build.pages);
|
|
347012
|
-
const publicationBuild = { ...siteData.build, pages: pages2 };
|
|
347013
347026
|
let verifiedAssetIndex = siteData.assetIndex === void 0 ? void 0 : await verifyContentArtifact(siteData.assetIndex);
|
|
347014
347027
|
if (verifiedAssetIndex !== void 0 && (options.previewIdentity === true || options.assets === true)) {
|
|
347015
347028
|
verifiedAssetIndex = await hydrateLocalMarkdownContents({
|
|
@@ -347386,6 +347399,9 @@ Please check webstudio --help for more details`
|
|
|
347386
347399
|
...warning2.diagnostic
|
|
347387
347400
|
})
|
|
347388
347401
|
);
|
|
347402
|
+
if (warning2.diagnostic.severity === "error") {
|
|
347403
|
+
throw new Error(warning2.diagnostic.message);
|
|
347404
|
+
}
|
|
347389
347405
|
}
|
|
347390
347406
|
}
|
|
347391
347407
|
pageData.build.instances = Array.from(pageInstances);
|
|
@@ -347659,7 +347675,8 @@ Please check webstudio --help for more details`
|
|
|
347659
347675
|
import type { PageMeta } from "@webstudio-is/sdk";
|
|
347660
347676
|
${generateResources({
|
|
347661
347677
|
scope: scope2,
|
|
347662
|
-
|
|
347678
|
+
// XML generation removes the body wrapper from the instance map.
|
|
347679
|
+
page: { ...page2, rootInstanceId },
|
|
347663
347680
|
dataSources,
|
|
347664
347681
|
props: props2,
|
|
347665
347682
|
resources,
|
|
@@ -354807,6 +354824,35 @@ const withTimeout = async (operation, timeout, createTimeoutError2) => {
|
|
|
354807
354824
|
}
|
|
354808
354825
|
}
|
|
354809
354826
|
};
|
|
354827
|
+
const latestPackageUrl = "https://registry.npmjs.org/webstudio/latest";
|
|
354828
|
+
const requestTimeoutMs = 1500;
|
|
354829
|
+
const checkForCliUpdate = async ({
|
|
354830
|
+
currentVersion,
|
|
354831
|
+
request = fetch
|
|
354832
|
+
}) => {
|
|
354833
|
+
if (semver.valid(currentVersion) === null) {
|
|
354834
|
+
return;
|
|
354835
|
+
}
|
|
354836
|
+
try {
|
|
354837
|
+
const response = await request(latestPackageUrl, {
|
|
354838
|
+
signal: AbortSignal.timeout(requestTimeoutMs)
|
|
354839
|
+
});
|
|
354840
|
+
if (response.ok === false) {
|
|
354841
|
+
return;
|
|
354842
|
+
}
|
|
354843
|
+
const latestPackage = await response.json();
|
|
354844
|
+
if (isPlainRecord(latestPackage) === false) {
|
|
354845
|
+
return;
|
|
354846
|
+
}
|
|
354847
|
+
const latestVersion = typeof latestPackage.version === "string" ? semver.valid(latestPackage.version) : null;
|
|
354848
|
+
if (latestVersion === null || semver.gt(latestVersion, currentVersion) === false) {
|
|
354849
|
+
return;
|
|
354850
|
+
}
|
|
354851
|
+
return { currentVersion, latestVersion };
|
|
354852
|
+
} catch {
|
|
354853
|
+
return;
|
|
354854
|
+
}
|
|
354855
|
+
};
|
|
354810
354856
|
const createProgressProjects = () => /* @__PURE__ */ Object.create(null);
|
|
354811
354857
|
const maximumConcurrency = 16;
|
|
354812
354858
|
const parsePositiveInteger = (value2, fallback) => {
|
|
@@ -355958,14 +356004,32 @@ const createMcpPreviewHandlers = ({
|
|
|
355958
356004
|
quality: input2.quality,
|
|
355959
356005
|
scale: input2.scale
|
|
355960
356006
|
});
|
|
356007
|
+
const captureWhileRouteSettles = async (capture, isGeneratedSite, progress2) => {
|
|
356008
|
+
let result2 = await capture();
|
|
356009
|
+
for (let retry = 0; retry < 2 && !isGeneratedSite(result2); retry += 1) {
|
|
356010
|
+
progress2?.report("tool screenshot waiting for refreshed generated route");
|
|
356011
|
+
await sleep(1e3);
|
|
356012
|
+
result2 = await capture();
|
|
356013
|
+
}
|
|
356014
|
+
return result2;
|
|
356015
|
+
};
|
|
355961
356016
|
const assertGeneratedSiteCapture = (input2, result2) => {
|
|
355962
356017
|
if (input2.path !== void 0 && input2.baseUrl === void 0 && result2.navigation?.generatedSiteRootPresent === false) {
|
|
355963
|
-
|
|
355964
|
-
|
|
355965
|
-
|
|
355966
|
-
|
|
355967
|
-
|
|
355968
|
-
|
|
356018
|
+
const status = result2.navigation.status;
|
|
356019
|
+
const routeFailed = status !== void 0 && status >= 400;
|
|
356020
|
+
const code2 = routeFailed ? "SCREENSHOT_ROUTE_HTTP_ERROR" : "SCREENSHOT_NOT_GENERATED_SITE";
|
|
356021
|
+
const message = routeFailed ? `The generated route returned HTTP ${status} before a Webstudio page could render. Check the preview server output for the route error.` : "The requested route did not render a generated Webstudio page. Check the route and preview server output; a screenshot of the home route does not verify this page.";
|
|
356022
|
+
throw Object.assign(new Error(message), {
|
|
356023
|
+
code: code2,
|
|
356024
|
+
issues: [
|
|
356025
|
+
{
|
|
356026
|
+
code: routeFailed ? "screenshot_route_http_error" : "generated_site_marker_missing",
|
|
356027
|
+
path: [],
|
|
356028
|
+
message,
|
|
356029
|
+
constraint: routeFailed ? `http_status:${status}` : "generated_site_identity_present"
|
|
356030
|
+
}
|
|
356031
|
+
]
|
|
356032
|
+
});
|
|
355969
356033
|
}
|
|
355970
356034
|
return result2;
|
|
355971
356035
|
};
|
|
@@ -356037,17 +356101,11 @@ const createMcpPreviewHandlers = ({
|
|
|
356037
356101
|
return await captureWithSessionReconnect(
|
|
356038
356102
|
input2,
|
|
356039
356103
|
progress2,
|
|
356040
|
-
async (captureSession2) =>
|
|
356041
|
-
|
|
356042
|
-
|
|
356043
|
-
|
|
356044
|
-
|
|
356045
|
-
);
|
|
356046
|
-
await sleep(1e3);
|
|
356047
|
-
captureResult = await captureSession2.capture(captureOptions);
|
|
356048
|
-
}
|
|
356049
|
-
return captureResult;
|
|
356050
|
-
}
|
|
356104
|
+
async (captureSession2) => await captureWhileRouteSettles(
|
|
356105
|
+
() => captureSession2.capture(captureOptions),
|
|
356106
|
+
(result22) => result22.navigation?.generatedSiteRootPresent !== false,
|
|
356107
|
+
progress2
|
|
356108
|
+
)
|
|
356051
356109
|
);
|
|
356052
356110
|
}
|
|
356053
356111
|
return await captureScreenshot2({
|
|
@@ -356106,8 +356164,8 @@ const createMcpPreviewHandlers = ({
|
|
|
356106
356164
|
return await captureWithSessionReconnect(
|
|
356107
356165
|
firstInput,
|
|
356108
356166
|
progress2,
|
|
356109
|
-
async (captureSession2) =>
|
|
356110
|
-
inputs.map((input2, index2) => {
|
|
356167
|
+
async (captureSession2) => {
|
|
356168
|
+
const captureOptions = inputs.map((input2, index2) => {
|
|
356111
356169
|
const url2 = urls[index2];
|
|
356112
356170
|
if (url2 === void 0) {
|
|
356113
356171
|
throw new Error(
|
|
@@ -356115,8 +356173,18 @@ const createMcpPreviewHandlers = ({
|
|
|
356115
356173
|
);
|
|
356116
356174
|
}
|
|
356117
356175
|
return getCaptureOptions(input2, url2);
|
|
356118
|
-
})
|
|
356119
|
-
|
|
356176
|
+
});
|
|
356177
|
+
if (isManagedSessionPreviewCapture(firstInput) === false) {
|
|
356178
|
+
return await captureSession2.capturePage(captureOptions);
|
|
356179
|
+
}
|
|
356180
|
+
return await captureWhileRouteSettles(
|
|
356181
|
+
() => captureSession2.capturePage(captureOptions),
|
|
356182
|
+
(results2) => results2.every(
|
|
356183
|
+
(result2) => result2.navigation?.generatedSiteRootPresent !== false
|
|
356184
|
+
),
|
|
356185
|
+
progress2
|
|
356186
|
+
);
|
|
356187
|
+
}
|
|
356120
356188
|
);
|
|
356121
356189
|
},
|
|
356122
356190
|
timeout,
|
|
@@ -356178,6 +356246,12 @@ const prepareMcpProjectSession = async (session) => {
|
|
|
356178
356246
|
};
|
|
356179
356247
|
const mcpStatusPrefix = "[webstudio mcp]";
|
|
356180
356248
|
const renderedAuditArtifactDirectory = ".webstudio/audits";
|
|
356249
|
+
const getCliUpdateInstructions = (update) => {
|
|
356250
|
+
if (update === void 0) {
|
|
356251
|
+
return;
|
|
356252
|
+
}
|
|
356253
|
+
return `This MCP server runs Webstudio CLI ${update.currentVersion}, but ${update.latestVersion} is available. Tell the user before editing and recommend restarting this MCP server with the latest CLI, for example \`npx -y webstudio@latest mcp\`. Do not try to update or restart the CLI yourself. The existing API compatibility check remains the authority for whether writes are supported.`;
|
|
356254
|
+
};
|
|
356181
356255
|
const formatMcpStatusLine = (message) => `${mcpStatusPrefix} ${message}`;
|
|
356182
356256
|
const createMcpStatusReporter = (write = (line) => {
|
|
356183
356257
|
stderr.write(`${line}
|
|
@@ -357483,7 +357557,7 @@ const createCliMcpHost = async ({
|
|
|
357483
357557
|
const renderedProjectVersion = previewStatus.renderedProjectVersion;
|
|
357484
357558
|
const namespacesByStatus = snapshot === void 0 ? void 0 : (status) => getBuilderStateNamespacesByStatus(snapshot.freshness, status);
|
|
357485
357559
|
return createIssueReportRuntime(failureTracker.get(), {
|
|
357486
|
-
projectId,
|
|
357560
|
+
projectId: connection.projectId,
|
|
357487
357561
|
...namespacesByStatus === void 0 ? {} : {
|
|
357488
357562
|
session: {
|
|
357489
357563
|
staleNamespaces: namespacesByStatus("stale"),
|
|
@@ -358307,6 +358381,9 @@ const mcp = async (options = {}) => {
|
|
|
358307
358381
|
stdin.once("end", reportClose);
|
|
358308
358382
|
stdin.once("close", reportClose);
|
|
358309
358383
|
status.starting();
|
|
358384
|
+
const cliUpdatePromise = checkForCliUpdate({
|
|
358385
|
+
currentVersion: packageJson.version
|
|
358386
|
+
});
|
|
358310
358387
|
const {
|
|
358311
358388
|
host,
|
|
358312
358389
|
toolCount,
|
|
@@ -358318,6 +358395,7 @@ const mcp = async (options = {}) => {
|
|
|
358318
358395
|
} = await createCliMcpHost({
|
|
358319
358396
|
projectId: options.project
|
|
358320
358397
|
});
|
|
358398
|
+
const cliUpdate = await cliUpdatePromise;
|
|
358321
358399
|
disposeHost = dispose;
|
|
358322
358400
|
if (didReportClose) {
|
|
358323
358401
|
await disposeHost().catch(() => void 0);
|
|
@@ -358328,6 +358406,7 @@ const mcp = async (options = {}) => {
|
|
|
358328
358406
|
status.ready(toolCount);
|
|
358329
358407
|
const server = await connectProjectSessionMcpServer({
|
|
358330
358408
|
...host,
|
|
358409
|
+
additionalInstructions: getCliUpdateInstructions(cliUpdate),
|
|
358331
358410
|
toolNameFormat: options.toolNameFormat,
|
|
358332
358411
|
getErrorCode: getStableErrorCode,
|
|
358333
358412
|
onToolFailure: recordToolFailure,
|
|
@@ -358344,6 +358423,7 @@ const mcp = async (options = {}) => {
|
|
|
358344
358423
|
};
|
|
358345
358424
|
const __testing__ = {
|
|
358346
358425
|
getMcpDownloadAsset,
|
|
358426
|
+
getCliUpdateInstructions,
|
|
358347
358427
|
createMcpStatusReporter,
|
|
358348
358428
|
formatMcpStatusLine,
|
|
358349
358429
|
assertSingleOpCallToolSupported,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webstudio",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.302.0",
|
|
4
4
|
"description": "Webstudio CLI",
|
|
5
5
|
"author": "Webstudio <github@webstudio.is>",
|
|
6
6
|
"homepage": "https://webstudio.is",
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
"which": "^5.0.0",
|
|
54
54
|
"yargs": "^17.7.2",
|
|
55
55
|
"zod": "^4.4.3",
|
|
56
|
-
"@webstudio-is/http-client": "0.
|
|
57
|
-
"@webstudio-is/project-migrations": "0.
|
|
58
|
-
"@webstudio-is/protocol": "0.
|
|
56
|
+
"@webstudio-is/http-client": "0.302.0",
|
|
57
|
+
"@webstudio-is/project-migrations": "0.302.0",
|
|
58
|
+
"@webstudio-is/protocol": "0.302.0",
|
|
59
59
|
"@webstudio-is/sync-client": "0.0.0"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
@@ -99,24 +99,24 @@
|
|
|
99
99
|
"vite": "^6.3.4",
|
|
100
100
|
"vitest": "^3.1.2",
|
|
101
101
|
"wrangler": "4.130.0",
|
|
102
|
-
"@webstudio-is/
|
|
103
|
-
"@webstudio-is/
|
|
104
|
-
"@webstudio-is/
|
|
105
|
-
"@webstudio-is/
|
|
106
|
-
"@webstudio-is/
|
|
107
|
-
"@webstudio-is/
|
|
108
|
-
"@webstudio-is/
|
|
109
|
-
"@webstudio-is/sdk": "0.
|
|
110
|
-
"@webstudio-is/sdk-components-
|
|
111
|
-
"@webstudio-is/sdk
|
|
112
|
-
"@webstudio-is/sdk-components-react
|
|
113
|
-
"@webstudio-is/
|
|
114
|
-
"@webstudio-is/sdk-components-react-
|
|
102
|
+
"@webstudio-is/css-engine": "0.302.0",
|
|
103
|
+
"@webstudio-is/content-engine": "0.302.0",
|
|
104
|
+
"@webstudio-is/fonts": "0.302.0",
|
|
105
|
+
"@webstudio-is/expression": "0.302.0",
|
|
106
|
+
"@webstudio-is/image": "0.302.0",
|
|
107
|
+
"@webstudio-is/project-build": "0.0.0",
|
|
108
|
+
"@webstudio-is/query-builder": "0.302.0",
|
|
109
|
+
"@webstudio-is/react-sdk": "0.302.0",
|
|
110
|
+
"@webstudio-is/sdk-components-animation": "0.302.0",
|
|
111
|
+
"@webstudio-is/sdk": "0.302.0",
|
|
112
|
+
"@webstudio-is/sdk-components-react": "0.302.0",
|
|
113
|
+
"@webstudio-is/sdk-components-react-remix": "0.302.0",
|
|
114
|
+
"@webstudio-is/sdk-components-react-radix": "0.302.0",
|
|
115
|
+
"@webstudio-is/sdk-components-react-router": "0.302.0",
|
|
116
|
+
"@webstudio-is/sdk-components-registry": "0.302.0",
|
|
115
117
|
"@webstudio-is/tsconfig": "1.0.7",
|
|
116
118
|
"@webstudio-is/vision": "0.0.0",
|
|
117
|
-
"@webstudio-is/wsauth": "0.
|
|
118
|
-
"@webstudio-is/project-build": "0.0.0",
|
|
119
|
-
"@webstudio-is/sdk-components-registry": "0.301.0"
|
|
119
|
+
"@webstudio-is/wsauth": "0.302.0"
|
|
120
120
|
},
|
|
121
121
|
"scripts": {
|
|
122
122
|
"typecheck": "tsc --noEmit",
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
"@remix-run/node": "2.16.5",
|
|
14
14
|
"@remix-run/react": "2.16.5",
|
|
15
15
|
"@remix-run/server-runtime": "2.16.5",
|
|
16
|
-
"@webstudio-is/image": "0.
|
|
17
|
-
"@webstudio-is/react-sdk": "0.
|
|
18
|
-
"@webstudio-is/sdk": "0.
|
|
19
|
-
"@webstudio-is/sdk-components-react": "0.
|
|
20
|
-
"@webstudio-is/sdk-components-animation": "0.
|
|
21
|
-
"@webstudio-is/sdk-components-react-radix": "0.
|
|
22
|
-
"@webstudio-is/sdk-components-react-remix": "0.
|
|
23
|
-
"@webstudio-is/wsauth": "0.
|
|
16
|
+
"@webstudio-is/image": "0.302.0",
|
|
17
|
+
"@webstudio-is/react-sdk": "0.302.0",
|
|
18
|
+
"@webstudio-is/sdk": "0.302.0",
|
|
19
|
+
"@webstudio-is/sdk-components-react": "0.302.0",
|
|
20
|
+
"@webstudio-is/sdk-components-animation": "0.302.0",
|
|
21
|
+
"@webstudio-is/sdk-components-react-radix": "0.302.0",
|
|
22
|
+
"@webstudio-is/sdk-components-react-remix": "0.302.0",
|
|
23
|
+
"@webstudio-is/wsauth": "0.302.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",
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
"@react-router/fs-routes": "^7.5.3",
|
|
16
16
|
"@react-router/node": "^7.5.3",
|
|
17
17
|
"@react-router/serve": "^7.5.3",
|
|
18
|
-
"@webstudio-is/image": "0.
|
|
19
|
-
"@webstudio-is/react-sdk": "0.
|
|
20
|
-
"@webstudio-is/sdk": "0.
|
|
21
|
-
"@webstudio-is/sdk-components-animation": "0.
|
|
22
|
-
"@webstudio-is/sdk-components-react-radix": "0.
|
|
23
|
-
"@webstudio-is/sdk-components-react-router": "0.
|
|
24
|
-
"@webstudio-is/sdk-components-react": "0.
|
|
25
|
-
"@webstudio-is/wsauth": "0.
|
|
18
|
+
"@webstudio-is/image": "0.302.0",
|
|
19
|
+
"@webstudio-is/react-sdk": "0.302.0",
|
|
20
|
+
"@webstudio-is/sdk": "0.302.0",
|
|
21
|
+
"@webstudio-is/sdk-components-animation": "0.302.0",
|
|
22
|
+
"@webstudio-is/sdk-components-react-radix": "0.302.0",
|
|
23
|
+
"@webstudio-is/sdk-components-react-router": "0.302.0",
|
|
24
|
+
"@webstudio-is/sdk-components-react": "0.302.0",
|
|
25
|
+
"@webstudio-is/wsauth": "0.302.0",
|
|
26
26
|
"isbot": "^5.1.25",
|
|
27
27
|
"react": "18.3.0-canary-14898b6a9-20240318",
|
|
28
28
|
"react-dom": "18.3.0-canary-14898b6a9-20240318",
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@shikijs/langs": "4.4.1",
|
|
13
13
|
"@shikijs/themes": "4.4.1",
|
|
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.
|
|
14
|
+
"@webstudio-is/image": "0.302.0",
|
|
15
|
+
"@webstudio-is/react-sdk": "0.302.0",
|
|
16
|
+
"@webstudio-is/sdk": "0.302.0",
|
|
17
|
+
"@webstudio-is/sdk-components-react": "0.302.0",
|
|
18
|
+
"@webstudio-is/sdk-components-animation": "0.302.0",
|
|
19
|
+
"@webstudio-is/sdk-components-react-radix": "0.302.0",
|
|
20
20
|
"react": "18.3.0-canary-14898b6a9-20240318",
|
|
21
21
|
"react-dom": "18.3.0-canary-14898b6a9-20240318",
|
|
22
22
|
"shiki": "4.4.1",
|