mirror of
https://github.com/webstudio-is/webstudio.git
synced 2026-10-30 00:27:43 +09:00
## Summary Fixes the reproducible MCP regressions reported today: - validate font upload metadata locally instead of surfacing an HTTP 500 - replace only the addressed child when `insertIndex` is supplied - support cross-parent duplication - bind data-variable assignments in actions - reject string-valued `style` bindings - include descriptions for every advertised MCP tool - preserve resource data-source exposure on full updates - render mixed expression/element children in the Builder canvas - preserve explicit outer Collection references in nested scopes - reject unsupported `update-page-settings` fields instead of dropping them - reject unavailable asset-query variables and log server error details Closes #6390 Closes #6391 Closes #6392 Closes #6393 Closes #6394 Closes #6395 Closes #6398 Closes #6399 Closes #6401 Closes #6404 Closes #6405 ## Verification - 484 project-build tests - 62 CLI tests - 35 Builder browser tests - 25 SDK tests - project-build, Builder, CLI, and SDK type checks - root lint and generated runtime contracts
23 lines
819 B
TypeScript
23 lines
819 B
TypeScript
import { ROOT_INSTANCE_ID } from "@webstudio-is/sdk";
|
|
import type { InstanceSelector } from "@webstudio-is/project-build/runtime";
|
|
|
|
export const getInstanceVariableValues = (
|
|
valuesByInstanceSelector: ReadonlyMap<string, ReadonlyMap<string, unknown>>,
|
|
instanceSelector: InstanceSelector,
|
|
fallbackValues?: ReadonlyMap<string, unknown>
|
|
) => {
|
|
const scopedValues =
|
|
valuesByInstanceSelector.get(JSON.stringify(instanceSelector)) ??
|
|
valuesByInstanceSelector.get(
|
|
JSON.stringify(
|
|
instanceSelector.at(-1) === ROOT_INSTANCE_ID
|
|
? instanceSelector
|
|
: [...instanceSelector, ROOT_INSTANCE_ID]
|
|
)
|
|
);
|
|
if (fallbackValues === undefined || scopedValues === undefined) {
|
|
return scopedValues ?? fallbackValues;
|
|
}
|
|
return new Map([...fallbackValues, ...scopedValues]);
|
|
};
|