@pixi-ui-editor/schema 0.4.0 → 0.5.1

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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Type, type Static, type TSchema } from \"@sinclair/typebox\";\r\nimport Ajv from \"ajv\";\r\nimport addFormats from \"ajv-formats\";\r\nimport type { ErrorObject } from \"ajv\";\r\nimport { applyPrefabNodePatch, materializePrefabInstance, PREFAB_NODE_PATH_SEPARATOR, resolveOwnerNodeGraph, resolvePrefabInstanceBaseNodes } from \"./prefabs.js\";\r\nimport { collectBindingKeys, collectBindingKeyScopes } from \"./bindingKeys.js\";\r\nimport { collectLocalizationIssues, createDefaultLocalization, LocalizationSchema } from \"./localization.js\";\r\n\r\nexport { collectBindingKeys, collectBindingKeyScopes, OWNER_BINDING_KEY_SCOPE } from \"./bindingKeys.js\";\r\n\r\nexport const CURRENT_SCHEMA_VERSION = 28 as const;\r\nconst Id = Type.String({ format: \"uuid\" });\r\nconst Name = Type.String({ minLength: 1 });\r\n/**\r\n * Ссылка на узел внутри инстанса пресета: собственный id узла либо путь по вложенным пресетам\r\n * (`idA::prefab-node::idB`). Обычная нода сцены всегда использует первую форму; вторая появляется\r\n * только у `parentId` локально добавленного узла и у `nodeId` property override. Разрешимость\r\n * адреса проверяет семантическая валидация, структурная — только его форму.\r\n */\r\nconst NodeAddress = Type.Union([Id, Type.String({ pattern: `^.+${PREFAB_NODE_PATH_SEPARATOR}.+$` })]);\r\nexport const LayoutProfileIdSchema = Type.Union([Type.Literal(\"desktop\"), Type.Literal(\"mobile\")]);\r\nexport type LayoutProfileId = Static<typeof LayoutProfileIdSchema>;\r\n// Unity RectTransform semantics in logical Canvas units: x/y are anchoredPosition and width/height\r\n// are sizeDelta. A point axis needs a positive sizeDelta; a stretched axis may use negative insets.\r\nconst Transform = Type.Object({ x: Type.Number(), y: Type.Number(), width: Type.Number(), height: Type.Number(), scaleX: Type.Number(), scaleY: Type.Number(), rotation: Type.Number(), pivotX: Type.Optional(Type.Number({ minimum: 0, maximum: 1 })), pivotY: Type.Optional(Type.Number({ minimum: 0, maximum: 1 })), anchorMinX: Type.Optional(Type.Number({ minimum: 0, maximum: 1 })), anchorMinY: Type.Optional(Type.Number({ minimum: 0, maximum: 1 })), anchorMaxX: Type.Optional(Type.Number({ minimum: 0, maximum: 1 })), anchorMaxY: Type.Optional(Type.Number({ minimum: 0, maximum: 1 })) });\r\nconst Alignment = Type.Union([Type.Literal(\"upper-left\"), Type.Literal(\"upper-center\"), Type.Literal(\"upper-right\"), Type.Literal(\"middle-left\"), Type.Literal(\"middle-center\"), Type.Literal(\"middle-right\"), Type.Literal(\"lower-left\"), Type.Literal(\"lower-center\"), Type.Literal(\"lower-right\")]);\r\nexport type LayoutAlignment = Static<typeof Alignment>;\r\nconst Padding = Type.Object({ left: Type.Number({ minimum: 0 }), right: Type.Number({ minimum: 0 }), top: Type.Number({ minimum: 0 }), bottom: Type.Number({ minimum: 0 }) });\r\nexport type LayoutPadding = Static<typeof Padding>;\r\nconst LayoutItem = Type.Object({ flexGrow: Type.Number({ minimum: 0 }), flexShrink: Type.Number({ minimum: 0 }), flexBasis: Type.Optional(Type.Number({ exclusiveMinimum: 0 })), alignSelf: Type.Optional(Type.Union([Type.Literal(\"auto\"), Type.Literal(\"flex-start\"), Type.Literal(\"center\"), Type.Literal(\"flex-end\"), Type.Literal(\"stretch\")])) });\r\nexport type LayoutItemDefinition = Static<typeof LayoutItem>;\r\nconst LinearLayoutSettings = Type.Object({ padding: Padding, spacing: Type.Number({ minimum: 0 }), childAlignment: Alignment, reverseOrder: Type.Boolean(), controlChildWidth: Type.Boolean(), controlChildHeight: Type.Boolean(), forceExpandWidth: Type.Boolean(), forceExpandHeight: Type.Boolean() });\r\nexport type LinearLayoutSettings = Static<typeof LinearLayoutSettings>;\r\nconst GridLayoutSettings = Type.Object({ padding: Padding, spacingX: Type.Number({ minimum: 0 }), spacingY: Type.Number({ minimum: 0 }), cellWidth: Type.Number({ exclusiveMinimum: 0 }), cellHeight: Type.Number({ exclusiveMinimum: 0 }), startCorner: Type.Union([Type.Literal(\"upper-left\"), Type.Literal(\"upper-right\"), Type.Literal(\"lower-left\"), Type.Literal(\"lower-right\")]), startAxis: Type.Union([Type.Literal(\"horizontal\"), Type.Literal(\"vertical\")]), childAlignment: Alignment, constraint: Type.Union([Type.Literal(\"flexible\"), Type.Literal(\"fixed-column-count\"), Type.Literal(\"fixed-row-count\")]), constraintCount: Type.Optional(Type.Number({ exclusiveMinimum: 0 })) });\r\nexport type GridLayoutSettings = Static<typeof GridLayoutSettings>;\r\nconst ProfiledLayout = <T extends TSchema>(settings: T) => Type.Object({ base: settings, overrides: Type.Optional(Type.Partial(Type.Object({ desktop: Type.Partial(settings), mobile: Type.Partial(settings) }))) });\r\nconst Override = Type.Object({ visible: Type.Optional(Type.Boolean()), transform: Type.Optional(Type.Partial(Transform)) });\r\n// `editorOnly` and `locked` are authoring metadata. `locked` protects the node and its descendants\r\n// from editor mutations but deliberately has no runtime rendering semantics.\r\n// `bindingKey` — публичный семантический ключ ноды для игрового кода: он не меняется при rename,\r\n// перемещении и замене ассета. Ключ необязателен, а его уникальность проверяется в пределах\r\n// materialized-графа владельца (`collectBindingKeys`), поэтому нода внутри одного prefab-инстанса\r\n// получает собственный ключ, не задевая другой инстанс того же пресета.\r\nconst NodeBase = Type.Object({ id: Id, name: Name, parentId: Type.Union([NodeAddress, Type.Null()]), children: Type.Array(Id), visible: Type.Boolean(), editorOnly: Type.Optional(Type.Boolean()), locked: Type.Optional(Type.Boolean()), transform: Transform, layoutOverrides: Type.Optional(Type.Partial(Type.Object({ desktop: Override, mobile: Override }))), layoutItem: Type.Optional(LayoutItem), bindingKey: Type.Optional(Type.String()) });\r\nconst Container = Type.Composite([NodeBase, Type.Object({ type: Type.Literal(\"container\") })]);\r\n// A mask clips its complete child subtree to its resolved layout rectangle. The rectangular shape\r\n// deliberately has no serialized settings: RectTransform is the single source of truth for it.\r\nconst Mask = Type.Composite([NodeBase, Type.Object({ type: Type.Literal(\"mask\") })]);\r\nconst HorizontalLayout = Type.Composite([NodeBase, Type.Object({ type: Type.Literal(\"horizontal-layout\"), backgroundAssetId: Type.Optional(Id), layoutGroup: ProfiledLayout(LinearLayoutSettings) })]);\r\nconst VerticalLayout = Type.Composite([NodeBase, Type.Object({ type: Type.Literal(\"vertical-layout\"), backgroundAssetId: Type.Optional(Id), layoutGroup: ProfiledLayout(LinearLayoutSettings) })]);\r\nconst GridLayout = Type.Composite([NodeBase, Type.Object({ type: Type.Literal(\"grid-layout\"), backgroundAssetId: Type.Optional(Id), layoutGroup: ProfiledLayout(GridLayoutSettings) })]);\r\n// assetId отсутствует — нода без источника: рантайм и редактор рисуют белый прямоугольник её размера.\r\n// `nineSlice` отсутствует — обычный Sprite, растянутый по transform (старое поведение, без миграции).\r\n// При наличии — рамки в пикселях источника (как @pixi/ui fillPadding), не сериализованные проценты:\r\n// нода `NineSliceSprite`, углы/края не искажаются при растяжении.\r\nconst Image = Type.Composite([NodeBase, Type.Object({ type: Type.Literal(\"image\"), assetId: Type.Optional(Id), opacity: Type.Optional(Type.Number({ minimum: 0, maximum: 1 })), nineSlice: Type.Optional(Padding) })]);\r\nconst TextStroke = Type.Object({ color: Type.String({ pattern: \"^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$\" }), width: Type.Number({ minimum: 0 }) });\r\n// Числовые начертания соответствуют CSS/PIXI `font-weight` напрямую (без адаптера): у каждого\r\n// значения должен быть загружен свой файл шрифта с тем же `family` (см. FontAsset.weight), иначе\r\n// в отсутствие соответствующего `FontFace` браузер молча использует единственное загруженное\r\n// начертание — визуально вес не поменяется, что бы тут ни было выбрано.\r\nexport const TextStyleDefinitionSchema = Type.Object({ fontAssetId: Type.Optional(Id), fontFamily: Type.String({ minLength: 1 }), fontSize: Type.Number({ exclusiveMinimum: 0 }), fontWeight: Type.Union([Type.Literal(\"300\"), Type.Literal(\"normal\"), Type.Literal(\"500\"), Type.Literal(\"600\"), Type.Literal(\"bold\"), Type.Literal(\"800\")]), fontStyle: Type.Union([Type.Literal(\"normal\"), Type.Literal(\"italic\")]), fill: Type.String({ pattern: \"^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$\" }), align: Type.Union([Type.Literal(\"left\"), Type.Literal(\"center\"), Type.Literal(\"right\"), Type.Literal(\"justify\")]), verticalAlign: Type.Union([Type.Literal(\"top\"), Type.Literal(\"middle\"), Type.Literal(\"bottom\")]), wordWrap: Type.Boolean(), breakWords: Type.Boolean(), lineHeight: Type.Optional(Type.Number({ exclusiveMinimum: 0 })), letterSpacing: Type.Number(), stroke: Type.Optional(TextStroke) });\r\nexport type TextStyleDefinition = Static<typeof TextStyleDefinitionSchema>;\r\nconst TextStyleOverrides = Type.Partial(Type.Object({ desktop: Type.Partial(TextStyleDefinitionSchema), mobile: Type.Partial(TextStyleDefinitionSchema) }));\r\n// `textKey` — единственная ссылка локализации, и она живёт именно на `Text`, а не на `NodeBase`:\r\n// несовместимая нода структурно не может получить localization key. `text` остаётся обязательной\r\n// авторской строкой, ручным режимом и последним содержательным fallback.\r\n// `autoSize`/`minFontSize` mirror `bitmap-text` (ADR 0027): the resolved `style.fontSize` stays the\r\n// authored upper bound, and with `autoSize: true` the runtime shrinks down to `minFontSize` (default\r\n// 1) to keep the rendered text inside the resolved rectangle. Both live on the node itself, not inside\r\n// `style`/`textStyleOverrides`: shrinking is a runtime fit computed from the resolved box at render\r\n// time, not an authored per-orientation style choice, the same reasoning bitmap text's fields follow.\r\nconst Text = Type.Composite([NodeBase, Type.Object({ type: Type.Literal(\"text\"), text: Type.String(), textKey: Type.Optional(Type.String()), style: Type.Optional(TextStyleDefinitionSchema), textStyleOverrides: Type.Optional(TextStyleOverrides), autoSize: Type.Optional(Type.Boolean()), minFontSize: Type.Optional(Type.Number({ exclusiveMinimum: 0 })) })]);\r\n// Optional preserves existing documents; omitted animationSpeed is interpreted as 1 by every runtime.\r\n// `autoplay` is the serialized initial playback decision. Older documents are migrated to true,\r\n// preserving the runtime behavior they had before this field became explicit.\r\nconst SpineProfileSettings = Type.Object({\r\n // `null` explicitly removes an inherited base animation; an absent key inherits it.\r\n animation: Type.Union([Type.String({ minLength: 1 }), Type.Null()]),\r\n autoplay: Type.Boolean(),\r\n loop: Type.Boolean(),\r\n animationSpeed: Type.Number({ exclusiveMinimum: 0 }),\r\n});\r\nconst SpineOverrides = Type.Partial(Type.Object({ desktop: Type.Partial(SpineProfileSettings), mobile: Type.Partial(SpineProfileSettings) }));\r\nconst Spine = Type.Composite([NodeBase, Type.Object({ type: Type.Literal(\"spine\"), assetId: Id, animation: Type.Optional(Type.String({ minLength: 1 })), autoplay: Type.Optional(Type.Boolean()), loop: Type.Optional(Type.Boolean()), animationSpeed: Type.Optional(Type.Number({ exclusiveMinimum: 0 })), spineOverrides: Type.Optional(SpineOverrides) })]);\r\nconst BitmapTextAlign = Type.Union([Type.Literal(\"left\"), Type.Literal(\"center\"), Type.Literal(\"right\")]);\r\n// A bitmap font's glyphs come pre-rendered from its texture, so unlike `Text` there is no system\r\n// fallback: `assetId` is required (like Spine's), and the \"Bitmap Text\" add-node entry stays disabled\r\n// until at least one `bitmapFont` asset exists — a bitmap-text node with no asset has nothing to draw.\r\nconst BitmapText = Type.Composite([NodeBase, Type.Object({\r\n type: Type.Literal(\"bitmap-text\"),\r\n text: Type.String(),\r\n assetId: Id,\r\n // The authored/preferred size. With `autoSize` on, this doubles as the upper bound the runtime\r\n // shrinks down from — never grows past it — the same \"Best Fit\" contract Unity's legacy Text uses.\r\n fontSize: Type.Number({ exclusiveMinimum: 0 }),\r\n fill: Type.String({ pattern: \"^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$\" }),\r\n align: BitmapTextAlign,\r\n verticalAlign: Type.Union([Type.Literal(\"top\"), Type.Literal(\"middle\"), Type.Literal(\"bottom\")]),\r\n letterSpacing: Type.Number(),\r\n wordWrap: Type.Boolean(),\r\n // Omitted/false keeps the historical behavior: fixed `fontSize`, overflow simply clips/overruns.\r\n autoSize: Type.Optional(Type.Boolean()),\r\n // The floor `autoSize` won't shrink past; omitted defaults to 1 at the runtime/view layer, not here,\r\n // so old documents (no `autoSize`, no `minFontSize`) stay byte-for-byte meaningful without migration.\r\n minFontSize: Type.Optional(Type.Number({ exclusiveMinimum: 0 })),\r\n})]);\r\nexport const PrefabNodeOverrideSchema = Type.Object({\r\n /** Адрес переопределяемого узла внутри инстанса; для вложенных пресетов это путь. */\r\n nodeId: NodeAddress,\r\n /**\r\n * RFC-7396-like merge patch. Semantic validation rejects structural fields and validates the\r\n * effective node after applying it to the referenced prefab-definition node.\r\n */\r\n patch: Type.Record(Type.String(), Type.Unknown()),\r\n});\r\nexport type PrefabNodeOverride = Static<typeof PrefabNodeOverrideSchema>;\r\n/** Состояния кнопки. `normal` обязателен; остальные при отсутствии используют его изображение. */\r\nexport const BUTTON_STATE_KEYS = [\"normal\", \"hover\", \"pressed\", \"disabled\"] as const;\r\nexport type ButtonStateKey = (typeof BUTTON_STATE_KEYS)[number];\r\n/** Discriminated transition: в v0 поддержан только `instant`, чтобы позже добавить bump/slide/fade без неявных полей. */\r\nconst ButtonTransition = Type.Object({ kind: Type.Literal(\"instant\") });\r\nconst ButtonStates = Type.Object({ normalAssetId: Id, hoverAssetId: Type.Optional(Id), pressedAssetId: Type.Optional(Id), disabledAssetId: Type.Optional(Id) });\r\nconst ButtonSounds = Type.Object({ pressAssetId: Type.Optional(Id), hoverAssetId: Type.Optional(Id) });\r\nconst ButtonTransitions = Type.Partial(Type.Object({ normal: ButtonTransition, hover: ButtonTransition, pressed: ButtonTransition, disabled: ButtonTransition }));\r\n// `enabled` — сериализованное начальное presentation-состояние; runtime setter документ не меняет.\r\n// `nineSlice` — общие для всех 4 состояний границы (как у Image): рамка кнопки обычно одной формы\r\n// независимо от того, какая картинка сейчас показана.\r\nconst Button = Type.Composite([NodeBase, Type.Object({ type: Type.Literal(\"button\"), states: ButtonStates, sounds: Type.Optional(ButtonSounds), enabled: Type.Boolean(), transitions: Type.Optional(ButtonTransitions), nineSlice: Type.Optional(Padding) })]);\r\n// A staged button is a separate component, not a generalization of `button`: it reuses `ButtonStates`\r\n// (and `BUTTON_STATE_KEYS`) so a stage's own normal/hover/pressed/disabled fallback rule stays the\r\n// single existing definition, but owns its own node type, view class and Inspector section.\r\n// \"How many stages\" is the length of `stages`, not a parallel count field: a count without artwork is\r\n// meaningless and two independent fields would inevitably drift apart. `value` is an arbitrary author\r\n// string for game code; its uniqueness is not required — `id` uniqueness is, since it is what\r\n// `defaultStageId` and runtime addressing key off. `nineSlice`/`sounds` are shared across every stage,\r\n// like `nineSlice` is shared across a button's four states.\r\nconst StagedButtonStage = Type.Object({ id: Id, value: Type.String(), states: ButtonStates });\r\nconst StagedButton = Type.Composite([NodeBase, Type.Object({ type: Type.Literal(\"staged-button\"), stages: Type.Array(StagedButtonStage, { minItems: 1 }), defaultStageId: Id, wrap: Type.Boolean(), enabled: Type.Boolean(), sounds: Type.Optional(ButtonSounds), nineSlice: Type.Optional(Padding) })]);\r\n// Базовые unchecked/checked обязательны — в отличие от кнопки, тут нет запасного normal. Hover-пара\r\n// опциональна и при отсутствии падает обратно на свою базовую картинку (как hover/pressed у кнопки).\r\nexport const CHECKBOX_STATE_KEYS = [\"unchecked\", \"checked\", \"uncheckedHover\", \"checkedHover\"] as const;\r\nexport type CheckboxStateKey = (typeof CHECKBOX_STATE_KEYS)[number];\r\nconst CheckboxStates = Type.Object({ uncheckedAssetId: Id, checkedAssetId: Id, uncheckedHoverAssetId: Type.Optional(Id), checkedHoverAssetId: Type.Optional(Id) });\r\nconst CheckboxSounds = Type.Object({ checkAssetId: Type.Optional(Id), uncheckAssetId: Type.Optional(Id) });\r\n// `group` — необязательный radio-scope: при клике рантайм снимает `checked` у остальных чекбоксов\r\n// с тем же `parentId` и тем же `group` (см. `wireCheckboxGroups` в runtime-pixi). Без `group` узел\r\n// ведёт себя как независимый toggle. `defaultChecked` — сериализованное начальное состояние, как\r\n// `enabled` у кнопки: рантайм-переключение документ не меняет.\r\nconst Checkbox = Type.Composite([NodeBase, Type.Object({ type: Type.Literal(\"checkbox\"), states: CheckboxStates, sounds: Type.Optional(CheckboxSounds), enabled: Type.Boolean(), defaultChecked: Type.Boolean(), group: Type.Optional(Type.String({ minLength: 1 })) })]);\r\n// Прямые children — scroll items; их позицию владеет `@pixi/ui` List, поэтому per-profile overrides\r\n// настроек не нужны (как у text style) — только собственные transform/visibility остаются profile-aware.\r\nconst ScrollViewDirection = Type.Union([Type.Literal(\"vertical\"), Type.Literal(\"horizontal\"), Type.Literal(\"both\")]);\r\nexport type ScrollViewDirection = Static<typeof ScrollViewDirection>;\r\nconst ScrollViewSettings = Type.Object({\r\n direction: ScrollViewDirection,\r\n padding: Padding,\r\n itemSpacing: Type.Number({ minimum: 0 }),\r\n backgroundColor: Type.Optional(Type.String({ pattern: \"^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$\" })),\r\n cornerRadius: Type.Number({ minimum: 0 }),\r\n easingEnabled: Type.Boolean(),\r\n // Значим только при direction \"horizontal\"; для остальных направлений безопасно игнорируется.\r\n shiftWheelHorizontal: Type.Optional(Type.Boolean()),\r\n});\r\nexport type ScrollViewSettings = Static<typeof ScrollViewSettings>;\r\nconst ScrollView = Type.Composite([NodeBase, Type.Object({ type: Type.Literal(\"scroll-view\"), scrollView: ScrollViewSettings })]);\r\nconst InputAlign = Type.Union([Type.Literal(\"left\"), Type.Literal(\"center\"), Type.Literal(\"right\")]);\r\nexport type InputAlign = Static<typeof InputAlign>;\r\n// Reuses the shared `TextStyleDefinition` (TASK-029) so an input never grows an incompatible parallel\r\n// font/style field set; fields that don't apply to a single line (wordWrap, verticalAlign, ...) are\r\n// simply ignored by the runtime view, the same way a button ignores unused optional state assets.\r\nconst Input = Type.Composite([NodeBase, Type.Object({\r\n type: Type.Literal(\"input\"),\r\n backgroundAssetId: Type.Optional(Id),\r\n placeholder: Type.String(),\r\n defaultValue: Type.String(),\r\n // Positive integer: a character-count limit can't be fractional or non-positive.\r\n maxLength: Type.Optional(Type.Integer({ exclusiveMinimum: 0 })),\r\n secure: Type.Boolean(),\r\n align: InputAlign,\r\n padding: Padding,\r\n cleanOnFocus: Type.Boolean(),\r\n clipText: Type.Boolean(),\r\n textStyle: TextStyleDefinitionSchema,\r\n})]);\r\nconst Slider = Type.Composite([NodeBase, Type.Object({\r\n type: Type.Literal(\"slider\"),\r\n backgroundAssetId: Id,\r\n fillAssetId: Id,\r\n handleAssetId: Id,\r\n min: Type.Number(),\r\n max: Type.Number(),\r\n step: Type.Number(),\r\n defaultValue: Type.Number(),\r\n fillPadding: Padding,\r\n showValue: Type.Optional(Type.Boolean()),\r\n valueTextStyle: Type.Optional(TextStyleDefinitionSchema),\r\n})]);\r\nconst ProgressBar = Type.Composite([NodeBase, Type.Object({\r\n type: Type.Literal(\"progress-bar\"),\r\n backgroundAssetId: Id,\r\n fillAssetId: Id,\r\n defaultProgress: Type.Number(),\r\n fillPadding: Padding,\r\n})]);\r\nconst Range = Type.Object({ min: Type.Number(), max: Type.Number() });\r\nconst PositiveRange = Type.Object({ min: Type.Number({ exclusiveMinimum: 0 }), max: Type.Number({ exclusiveMinimum: 0 }) });\r\nconst Color = Type.String({ pattern: \"^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$\" });\r\nconst ParticleSource = Type.Union([\r\n Type.Object({ type: Type.Literal(\"single\"), assetId: Id }),\r\n Type.Object({ type: Type.Literal(\"random\"), assetIds: Type.Array(Id, { minItems: 1 }) }),\r\n Type.Object({ type: Type.Literal(\"sequence\"), assetIds: Type.Array(Id, { minItems: 1 }), fps: Type.Number({ exclusiveMinimum: 0 }), loop: Type.Boolean(), randomStartFrame: Type.Boolean() }),\r\n]);\r\nexport const EffectDefinitionSchema = Type.Union([Type.Object({\r\n id: Id, name: Name, type: Type.Literal(\"particles\"), maxParticles: Type.Integer({ minimum: 1, maximum: 10000 }), seed: Type.Integer({ minimum: 0, maximum: 4294967295 }),\r\n emission: Type.Object({ delay: Type.Number({ minimum: 0 }), duration: Type.Number({ exclusiveMinimum: 0 }), loop: Type.Boolean(), rate: Type.Number({ minimum: 0 }), bursts: Type.Array(Type.Object({ time: Type.Number({ minimum: 0 }), count: Type.Integer({ minimum: 1 }) })) }),\r\n particle: Type.Object({\r\n lifetime: PositiveRange,\r\n spawnShape: Type.Object({ type: Type.Union([Type.Literal(\"point\"), Type.Literal(\"rectangle\"), Type.Literal(\"circle\")]) }),\r\n movement: Type.Object({ speed: Range, directionDegrees: Type.Number({ minimum: 0, maximum: 360 }), spreadDegrees: Type.Number({ minimum: 0, maximum: 360 }), accelerationX: Type.Number(), accelerationY: Type.Number(), drag: Type.Number({ minimum: 0 }) }),\r\n visual: Type.Object({ source: ParticleSource, alpha: Type.Object({ start: Type.Number({ minimum: 0, maximum: 1 }), end: Type.Number({ minimum: 0, maximum: 1 }) }), scale: Type.Object({ start: PositiveRange, end: PositiveRange }), tint: Type.Object({ start: Color, end: Color }), rotation: Type.Object({ initialDegrees: Range, angularVelocityDegrees: Range }), blendMode: Type.Union([Type.Literal(\"normal\"), Type.Literal(\"add\"), Type.Literal(\"multiply\"), Type.Literal(\"screen\")]) }),\r\n }),\r\n})]);\r\nexport type EffectDefinition = Static<typeof EffectDefinitionSchema>;\r\nexport type ParticleEffectDefinition = Extract<EffectDefinition, { type: \"particles\" }>;\r\nexport function isParticleEffect(effect: EffectDefinition): effect is ParticleEffectDefinition { return effect.type === \"particles\"; }\r\nconst ParticleEmitter = Type.Composite([NodeBase, Type.Object({ type: Type.Literal(\"particle-emitter\"), effectId: Id, autoplay: Type.Boolean(), simulationSpace: Type.Union([Type.Literal(\"local\"), Type.Literal(\"world\")]) })]);\r\n/**\r\n * Локальное добавление внутри инстанса — обычный узел любого типа, включая другой инстанс пресета\r\n * (как added GameObject в Unity). Поэтому схема узла рекурсивна: `prefab-instance` содержит массив\r\n * таких же узлов.\r\n */\r\nconst UI_NODE_SCHEMA_ID = \"UINode\";\r\nexport const UINodeSchema = Type.Recursive((Self) => Type.Union([Container, Mask, HorizontalLayout, VerticalLayout, GridLayout, Image, Text, BitmapText, Spine, Button, StagedButton, Checkbox, Type.Composite([NodeBase, Type.Object({\r\n type: Type.Literal(\"prefab-instance\"),\r\n prefabId: Id,\r\n propertyOverrides: Type.Optional(Type.Array(PrefabNodeOverrideSchema)),\r\n locallyAddedNodes: Type.Optional(Type.Array(Self)),\r\n})]), ScrollView, Input, Slider, ProgressBar, ParticleEmitter]), { $id: UI_NODE_SCHEMA_ID });\r\nexport type UINode = Static<typeof UINodeSchema>;\r\n/**\r\n * Ссылка на схему узла для владельцев (сцена, пресет). Встроить рекурсивную схему дважды нельзя:\r\n * её `$id` оказался бы в документе в двух местах, и Ajv не смог бы разрешить внутренние `$ref`.\r\n * Поэтому схема узла регистрируется в Ajv один раз, а владельцы ссылаются на неё.\r\n */\r\nconst UINodeRef = Type.Unsafe<UINode>({ $ref: UI_NODE_SCHEMA_ID });\r\n/** Исторический псевдоним: локальное добавление больше ничем не ограничено по сравнению с узлом сцены. */\r\nexport const LocallyAddedNodeSchema = UINodeSchema;\r\nexport type LocallyAddedNode = UINode;\r\nexport type LayoutGroupNode = Extract<UINode, { type: \"horizontal-layout\" | \"vertical-layout\" | \"grid-layout\" }>;\r\nexport function isLayoutGroup(node: UINode): node is LayoutGroupNode { return node.type === \"horizontal-layout\" || node.type === \"vertical-layout\" || node.type === \"grid-layout\"; }\r\nexport function resolveLayoutGroupSettings<T extends LayoutGroupNode[\"layoutGroup\"][\"base\"]>(node: LayoutGroupNode, profile: LayoutProfileId): T {\r\n return { ...node.layoutGroup.base, ...node.layoutGroup.overrides?.[profile] } as T;\r\n}\r\nexport type ScrollViewNode = Extract<UINode, { type: \"scroll-view\" }>;\r\nexport function isScrollView(node: UINode): node is ScrollViewNode { return node.type === \"scroll-view\"; }\r\n/** A direct child of this node does not own its own position: a layout group's Yoga solver or a scroll-view's `@pixi/ui` List does. */\r\nexport function isPositionManagingContainer(node: UINode): boolean { return isLayoutGroup(node) || isScrollView(node); }\r\nexport type TextNode = Extract<UINode, { type: \"text\" }>;\r\nexport function isTextNode(node: UINode): node is TextNode { return node.type === \"text\"; }\r\nexport type BitmapTextNode = Extract<UINode, { type: \"bitmap-text\" }>;\r\nexport type ImageNode = Extract<UINode, { type: \"image\" }>;\r\nexport type InputNode = Extract<UINode, { type: \"input\" }>;\r\nexport type CheckboxNode = Extract<UINode, { type: \"checkbox\" }>;\r\nexport type SliderNode = Extract<UINode, { type: \"slider\" }>;\r\nexport type ProgressBarNode = Extract<UINode, { type: \"progress-bar\" }>;\r\nexport type ParticleEmitterNode = Extract<UINode, { type: \"particle-emitter\" }>;\r\nexport type StagedButtonNode = Extract<UINode, { type: \"staged-button\" }>;\r\nexport function isParticleEmitterNode(node: UINode): node is ParticleEmitterNode { return node.type === \"particle-emitter\"; }\r\nconst Viewport = Type.Object({ width: Type.Number({ exclusiveMinimum: 0 }), height: Type.Number({ exclusiveMinimum: 0 }) });\r\nconst SceneAudio = Type.Object({ backgroundMusicAssetId: Type.Optional(Id), volume: Type.Optional(Type.Number({ minimum: 0, maximum: 1 })) });\r\nexport const SceneSchema = Type.Object({ id: Id, name: Name, rootNodeIds: Type.Array(Id), nodes: Type.Array(UINodeRef), layout: Type.Object({ referenceViewports: Type.Object({ desktop: Viewport, mobile: Viewport }), preferredViewports: Type.Object({ desktop: Viewport, mobile: Viewport }) }), audio: Type.Optional(SceneAudio) });\r\nexport type Scene = Static<typeof SceneSchema>;\r\nexport const AssetFileSchema = Type.Object({ name: Name, uri: Type.String({ minLength: 1 }), mediaType: Type.String({ minLength: 1 }) });\r\nexport type AssetFile = Static<typeof AssetFileSchema>;\r\nconst ImageAsset = Type.Object({ id: Id, name: Name, type: Type.Literal(\"image\"), source: Type.Object({ uri: Type.String({ minLength: 1 }), mediaType: Type.String({ minLength: 1 }), version: Type.Optional(Type.String({ minLength: 1 })) }) });\r\nexport const SpineReferenceFrameSchema = Type.Object({\r\n x: Type.Number(),\r\n y: Type.Number(),\r\n width: Type.Number({ exclusiveMinimum: 0 }),\r\n height: Type.Number({ exclusiveMinimum: 0 }),\r\n});\r\nexport type SpineReferenceFrame = Static<typeof SpineReferenceFrameSchema>;\r\nconst SpineAsset = Type.Object({ id: Id, name: Name, type: Type.Literal(\"spine\"), files: Type.Object({ skeleton: AssetFileSchema, atlas: AssetFileSchema, textures: Type.Array(AssetFileSchema, { minItems: 1 }) }), referenceFrame: Type.Optional(SpineReferenceFrameSchema) });\r\n// `weight`/`style` описывают начертание, которое реально содержит загруженный файл (см.\r\n// TextStyleDefinitionSchema.fontWeight выше): загрузка того же `family` под разными весами\r\n// регистрирует несколько `FontFace` и позволяет тексту переключаться между ними.\r\nconst FontAsset = Type.Object({ id: Id, name: Name, type: Type.Literal(\"font\"), family: Name, weight: Type.Union([Type.Literal(\"300\"), Type.Literal(\"normal\"), Type.Literal(\"500\"), Type.Literal(\"600\"), Type.Literal(\"bold\"), Type.Literal(\"800\")]), style: Type.Union([Type.Literal(\"normal\"), Type.Literal(\"italic\")]), source: Type.Object({ uri: Type.String({ minLength: 1 }), mediaType: Type.String({ minLength: 1 }), version: Type.Optional(Type.String({ minLength: 1 })) }) });\r\n// Имя фрейма из spritesheet JSON → стабильный id фрейма; nodes ссылаются на этот id как на обычный image assetId.\r\nconst AtlasAsset = Type.Object({ id: Id, name: Name, type: Type.Literal(\"atlas\"), files: Type.Object({ json: AssetFileSchema, texture: AssetFileSchema }), frames: Type.Record(Type.String({ minLength: 1 }), Id) });\r\nconst SoundAsset = Type.Object({ id: Id, name: Name, type: Type.Literal(\"sound\"), source: Type.Object({ uri: Type.String({ minLength: 1 }), mediaType: Type.String({ minLength: 1 }), version: Type.Optional(Type.String({ minLength: 1 })) }) });\r\n// A BMFont/XML export: `xml` carries the glyph layout (`<info>`/`<chars>`), `texture` the glyph sheet\r\n// it describes. Unlike a TTF/OTF `FontAsset`, one bitmap font is one fixed rendered appearance —\r\n// there is no separate weight/style to tag, so a bold or condensed variant is just another asset.\r\n// `frames` mirrors `AtlasAsset.frames`: glyph name (e.g. a digit) → stable id, cropped from the same\r\n// texture at import time from the parsed BMFont `<chars>` list. Nodes reference a frame id exactly\r\n// like a normal image assetId, so one glyph can be reused directly in an Image/Button/etc. `Optional`\r\n// (unlike atlas, which never predates this) because it was added after `bitmapFont` already shipped:\r\n// existing assets simply have none, same as an atlas would if all its frames were deleted.\r\nconst BitmapFontAsset = Type.Object({ id: Id, name: Name, type: Type.Literal(\"bitmapFont\"), files: Type.Object({ xml: AssetFileSchema, texture: AssetFileSchema }), frames: Type.Optional(Type.Record(Type.String({ minLength: 1 }), Id)) });\r\nexport const AssetSchema = Type.Union([ImageAsset, SpineAsset, FontAsset, AtlasAsset, SoundAsset, BitmapFontAsset]);\r\nexport type Asset = Static<typeof AssetSchema>;\r\nexport const PrefabDefinitionSchema = Type.Object({ id: Id, name: Name, rootNodeIds: Type.Array(Id), nodes: Type.Array(UINodeRef), exposedProperties: Type.Array(Type.Object({ name: Name, type: Type.Union([Type.Literal(\"string\"), Type.Literal(\"number\"), Type.Literal(\"boolean\"), Type.Literal(\"asset\"), Type.Literal(\"visibility\")]) })) });\r\nexport type PrefabDefinition = Static<typeof PrefabDefinitionSchema>;\r\nexport const ProjectDocumentSchema = Type.Object({ schemaVersion: Type.Literal(CURRENT_SCHEMA_VERSION), project: Type.Object({ id: Id, name: Name }), settings: Type.Object({ layoutProfileSelection: Type.Object({ mode: Type.Literal(\"aspect-ratio\"), mobileMaxAspectRatio: Type.Number({ exclusiveMinimum: 0 }) }) }), localization: LocalizationSchema, assets: Type.Array(AssetSchema), effects: Type.Array(EffectDefinitionSchema), prefabs: Type.Array(PrefabDefinitionSchema), scenes: Type.Array(SceneSchema) });\r\nexport type ProjectDocument = Static<typeof ProjectDocumentSchema>;\r\n\r\nexport type ValidationIssue = { code: string; path: string; message: string; severity: \"error\" | \"warning\" };\r\n/** `valid` означает отсутствие issues с severity `error`, а не пустой массив: warnings сохраняемы. */\r\nexport type ValidationResult = { valid: boolean; issues: ValidationIssue[] };\r\nexport class ProjectDocumentMigrationError extends Error { readonly code = \"UNSUPPORTED_SCHEMA_VERSION\"; constructor(message: string) { super(message); this.name = \"ProjectDocumentMigrationError\"; } }\r\nconst AjvConstructor = Ajv as unknown as typeof import(\"ajv\").default;\r\nconst addAjvFormats = addFormats as unknown as typeof import(\"ajv-formats\").default;\r\nconst createAjv = () => { const instance = new AjvConstructor({ allErrors: true, strict: false }); addAjvFormats(instance); return instance; };\r\n// Рекурсивная схема узла несёт собственный `$id`, поэтому её нельзя компилировать дважды в одном\r\n// экземпляре Ajv: документ уже зарегистрировал этот `$id` внутри себя.\r\nconst documentAjv = createAjv(); documentAjv.addSchema(UINodeSchema);\r\nconst structural = documentAjv.compile(ProjectDocumentSchema); const structuralNode = createAjv().compile(UINodeSchema);\r\nexport function createStableId(): string { return crypto.randomUUID(); }\r\nconst add = (issues: ValidationIssue[], code: string, path: string, message: string) => issues.push({ code, path, message, severity: \"error\" });\r\n\r\n/** Общая проверка владельца: одинаковые issue получают и сцена, и определение пресета. */\r\nfunction checkBindingKeys(document: ProjectDocument, owner: Owner, path: string, issues: ValidationIssue[]): void {\r\n const graph = resolveOwnerNodeGraph(document, owner);\r\n // Пустой ключ не зависит от области: это дефект самой ноды, и сообщить о нём нужно ровно один раз.\r\n if (graph.nodes.some((node) => node.bindingKey !== undefined && node.bindingKey.trim() === \"\")) {\r\n add(issues, \"EMPTY_BINDING_KEY\", `${path}/bindingKey`, \"A binding key must not be empty after trimming.\");\r\n }\r\n const reported = new Set<string>();\r\n collectBindingKeyScopes(graph).forEach((nodes) => {\r\n collectBindingKeys(nodes).forEach((nodeIds, key) => {\r\n if (key === \"\" || nodeIds.length <= 1 || reported.has(key)) return;\r\n reported.add(key);\r\n add(issues, \"DUPLICATE_BINDING_KEY\", `${path}/bindingKey/${key}`, `Binding key '${key}' is used by ${nodeIds.length} nodes here.`);\r\n });\r\n });\r\n}\r\n\r\ntype Owner = { rootNodeIds: string[]; nodes: UINode[] };\r\ntype TransformData = Static<typeof Transform>;\r\n/** A point-anchor sizeDelta is the whole rect and must be positive; stretch sizeDelta may be negative. */\r\nfunction checkResolvedSizes(node: UINode, nodePath: string, issues: ValidationIssue[]): void {\r\n for (const profile of [\"desktop\", \"mobile\"] as const) {\r\n const merged: TransformData = { ...node.transform, ...node.layoutOverrides?.[profile]?.transform };\r\n const minX = merged.anchorMinX ?? 0;\r\n const minY = merged.anchorMinY ?? 0;\r\n const maxX = merged.anchorMaxX ?? minX;\r\n const maxY = merged.anchorMaxY ?? minY;\r\n if (maxX === minX && merged.width <= 0) add(issues, \"NON_POSITIVE_SIZE\", `${nodePath}/transform/width`, `Width must be positive on a non-stretched axis in the '${profile}' profile.`);\r\n if (maxY === minY && merged.height <= 0) add(issues, \"NON_POSITIVE_SIZE\", `${nodePath}/transform/height`, `Height must be positive on a non-stretched axis in the '${profile}' profile.`);\r\n }\r\n}\r\nfunction particleAssetIds(effect: ParticleEffectDefinition): string[] { const source = effect.particle.visual.source; return source.type === \"single\" ? [source.assetId] : source.assetIds; }\r\nexport function collectEffectAssetIds(effect: EffectDefinition): string[] { return isParticleEffect(effect) ? particleAssetIds(effect) : []; }\r\nfunction hierarchy(owner: Owner, path: string, assets: Map<string, Asset>, prefabs: Set<string>, effects: Map<string, EffectDefinition>, issues: ValidationIssue[]): void {\r\n const nodes = new Map<string, UINode>();\r\n owner.nodes.forEach((node, i) => { if (nodes.has(node.id)) add(issues, \"DUPLICATE_ID\", `${path}/nodes/${i}/id`, `Duplicate node ID '${node.id}'.`); nodes.set(node.id, node); });\r\n const childOwners = new Map<string, string>();\r\n owner.rootNodeIds.forEach((id, i) => { const node = nodes.get(id); if (!node) add(issues, \"MISSING_NODE_REFERENCE\", `${path}/rootNodeIds/${i}`, `Root node '${id}' does not exist.`); else if (node.parentId !== null) add(issues, \"HIERARCHY_PARENT_MISMATCH\", `${path}/rootNodeIds/${i}`, \"A root node must have parentId null.\"); });\r\n owner.nodes.forEach((node, i) => {\r\n const nodePath = `${path}/nodes/${i}`;\r\n if (node.parentId !== null && !nodes.has(node.parentId)) add(issues, \"MISSING_PARENT_REFERENCE\", `${nodePath}/parentId`, `Parent '${node.parentId}' does not exist.`);\r\n node.children.forEach((childId, childIndex) => { const child = nodes.get(childId), childPath = `${nodePath}/children/${childIndex}`; if (!child) add(issues, \"MISSING_CHILD_REFERENCE\", childPath, `Child '${childId}' does not exist.`); else { const prior = childOwners.get(childId); if (prior && prior !== node.id) add(issues, \"MULTIPLE_PARENTS\", childPath, `Node '${childId}' belongs to more than one parent.`); childOwners.set(childId, node.id); if (child.parentId !== node.id) add(issues, \"HIERARCHY_PARENT_MISMATCH\", childPath, `Child '${childId}' does not point back to parent '${node.id}'.`); } });\r\n if (node.parentId !== null) { const parent = nodes.get(node.parentId); if (parent && !parent.children.includes(node.id)) add(issues, \"HIERARCHY_CHILD_MISMATCH\", `${nodePath}/parentId`, `Parent '${node.parentId}' does not list node '${node.id}'.`); }\r\n if ((node.type === \"image\" || node.type === \"spine\") && node.assetId !== undefined) { const asset = assets.get(node.assetId); if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", `${nodePath}/assetId`, `Asset '${node.assetId}' does not exist.`); else if (asset.type !== node.type) add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", `${nodePath}/assetId`, `A ${node.type} node requires a ${node.type} asset.`); }\r\n if (isLayoutGroup(node) && node.backgroundAssetId !== undefined) { const asset = assets.get(node.backgroundAssetId); if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", `${nodePath}/backgroundAssetId`, `Background asset '${node.backgroundAssetId}' does not exist.`); else if (asset.type !== \"image\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", `${nodePath}/backgroundAssetId`, \"A layout group background requires an image asset.\"); }\r\n // Путь ошибки сохраняется до конкретного state field, чтобы Inspector мог подсветить нужный picker.\r\n if (node.type === \"button\") BUTTON_STATE_KEYS.forEach((state) => { const field = `${state}AssetId` as const; const assetId = node.states[field]; if (assetId === undefined) return; const asset = assets.get(assetId), path = `${nodePath}/states/${field}`; if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", path, `Asset '${assetId}' does not exist.`); else if (asset.type !== \"image\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", path, `A button '${state}' state requires an image asset.`); });\r\n if (node.type === \"button\") for (const field of [\"pressAssetId\", \"hoverAssetId\"] as const) { const assetId = node.sounds?.[field]; if (assetId === undefined) continue; const asset = assets.get(assetId), soundPath = `${nodePath}/sounds/${field}`; if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", soundPath, `Asset '${assetId}' does not exist.`); else if (asset.type !== \"sound\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", soundPath, `A button ${field} requires a sound asset.`); }\r\n if (node.type === \"staged-button\") {\r\n const stageIds = new Set<string>();\r\n node.stages.forEach((stage, stageIndex) => {\r\n if (stageIds.has(stage.id)) add(issues, \"DUPLICATE_STAGE_ID\", `${nodePath}/stages/${stageIndex}/id`, `Duplicate stage ID '${stage.id}'.`);\r\n stageIds.add(stage.id);\r\n BUTTON_STATE_KEYS.forEach((state) => { const field = `${state}AssetId` as const; const assetId = stage.states[field]; if (assetId === undefined) return; const asset = assets.get(assetId), statePath = `${nodePath}/stages/${stageIndex}/states/${field}`; if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", statePath, `Asset '${assetId}' does not exist.`); else if (asset.type !== \"image\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", statePath, `A staged button stage '${state}' state requires an image asset.`); });\r\n });\r\n if (!node.stages.some((stage) => stage.id === node.defaultStageId)) add(issues, \"MISSING_STAGE_REFERENCE\", `${nodePath}/defaultStageId`, `Default stage '${node.defaultStageId}' does not exist.`);\r\n for (const field of [\"pressAssetId\", \"hoverAssetId\"] as const) { const assetId = node.sounds?.[field]; if (assetId === undefined) continue; const asset = assets.get(assetId), soundPath = `${nodePath}/sounds/${field}`; if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", soundPath, `Asset '${assetId}' does not exist.`); else if (asset.type !== \"sound\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", soundPath, `A staged button ${field} requires a sound asset.`); }\r\n }\r\n if (node.type === \"checkbox\") CHECKBOX_STATE_KEYS.forEach((state) => { const field = `${state}AssetId` as const; const assetId = node.states[field]; if (assetId === undefined) return; const asset = assets.get(assetId), path = `${nodePath}/states/${field}`; if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", path, `Asset '${assetId}' does not exist.`); else if (asset.type !== \"image\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", path, `A checkbox '${state}' state requires an image asset.`); });\r\n if (node.type === \"checkbox\") for (const field of [\"checkAssetId\", \"uncheckAssetId\"] as const) { const assetId = node.sounds?.[field]; if (assetId === undefined) continue; const asset = assets.get(assetId), soundPath = `${nodePath}/sounds/${field}`; if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", soundPath, `Asset '${assetId}' does not exist.`); else if (asset.type !== \"sound\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", soundPath, `A checkbox ${field} requires a sound asset.`); }\r\n if (node.type === \"bitmap-text\") { const asset = assets.get(node.assetId); if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", `${nodePath}/assetId`, `Asset '${node.assetId}' does not exist.`); else if (asset.type !== \"bitmapFont\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", `${nodePath}/assetId`, \"A bitmap text node requires a bitmap font asset.\"); }\r\n if (node.type === \"text\") {\r\n const fontReferences = [\r\n [node.style?.fontAssetId, `${nodePath}/style/fontAssetId`],\r\n [node.textStyleOverrides?.desktop?.fontAssetId, `${nodePath}/textStyleOverrides/desktop/fontAssetId`],\r\n [node.textStyleOverrides?.mobile?.fontAssetId, `${nodePath}/textStyleOverrides/mobile/fontAssetId`],\r\n ] as const;\r\n for (const [fontAssetId, fontPath] of fontReferences) {\r\n if (fontAssetId === undefined) continue;\r\n const asset = assets.get(fontAssetId);\r\n if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", fontPath, `Asset '${fontAssetId}' does not exist.`);\r\n else if (asset.type !== \"font\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", fontPath, \"A text node fontAssetId requires a font asset.\");\r\n }\r\n }\r\n if (node.type === \"input\" && node.backgroundAssetId !== undefined) { const asset = assets.get(node.backgroundAssetId); if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", `${nodePath}/backgroundAssetId`, `Background asset '${node.backgroundAssetId}' does not exist.`); else if (asset.type !== \"image\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", `${nodePath}/backgroundAssetId`, \"An input background requires an image asset.\"); }\r\n if (node.type === \"input\" && node.textStyle.fontAssetId !== undefined) { const asset = assets.get(node.textStyle.fontAssetId), path = `${nodePath}/textStyle/fontAssetId`; if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", path, `Asset '${node.textStyle.fontAssetId}' does not exist.`); else if (asset.type !== \"font\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", path, \"An input node textStyle fontAssetId requires a font asset.\"); }\r\n if (node.type === \"slider\" || node.type === \"progress-bar\") {\r\n const imageReferences: [string, string][] = [[\"backgroundAssetId\", node.backgroundAssetId], [\"fillAssetId\", node.fillAssetId]];\r\n if (node.type === \"slider\") imageReferences.push([\"handleAssetId\", node.handleAssetId]);\r\n for (const [field, assetId] of imageReferences) {\r\n const asset = assets.get(assetId);\r\n const assetPath = `${nodePath}/${field}`;\r\n if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", assetPath, `Asset '${assetId}' does not exist.`);\r\n else if (asset.type !== \"image\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", assetPath, `A ${node.type} ${field} requires an image asset.`);\r\n }\r\n }\r\n if (node.type === \"slider\") {\r\n if (!(node.min < node.max) || !(node.step > 0)) add(issues, \"INVALID_VALUE_RANGE\", nodePath, \"A slider requires min < max and step > 0.\");\r\n if (node.defaultValue < node.min || node.defaultValue > node.max) add(issues, \"VALUE_OUT_OF_RANGE\", `${nodePath}/defaultValue`, \"Slider defaultValue must be inside the inclusive min/max range.\");\r\n if (node.valueTextStyle?.fontAssetId !== undefined) { const asset = assets.get(node.valueTextStyle.fontAssetId), fontPath = `${nodePath}/valueTextStyle/fontAssetId`; if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", fontPath, `Asset '${node.valueTextStyle.fontAssetId}' does not exist.`); else if (asset.type !== \"font\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", fontPath, \"A slider valueTextStyle fontAssetId requires a font asset.\"); }\r\n }\r\n if (node.type === \"progress-bar\" && (node.defaultProgress < 0 || node.defaultProgress > 100)) add(issues, \"VALUE_OUT_OF_RANGE\", `${nodePath}/defaultProgress`, \"Progress bar defaultProgress must be inside the inclusive 0..100 range.\");\r\n if (node.type === \"prefab-instance\" && !prefabs.has(node.prefabId)) add(issues, \"MISSING_PREFAB_REFERENCE\", `${nodePath}/prefabId`, `Prefab '${node.prefabId}' does not exist.`);\r\n if (node.type === \"particle-emitter\") { const effect = effects.get(node.effectId); if (!effect) add(issues, \"MISSING_EFFECT_REFERENCE\", `${nodePath}/effectId`, `Effect '${node.effectId}' does not exist.`); else if (effect.type !== \"particles\") add(issues, \"INCOMPATIBLE_EFFECT_REFERENCE\", `${nodePath}/effectId`, \"Particle emitter requires a particle effect.\"); }\r\n if (node.type === \"grid-layout\" && node.layoutGroup.base.constraint !== \"flexible\" && node.layoutGroup.base.constraintCount === undefined) add(issues, \"MISSING_GRID_CONSTRAINT_COUNT\", `${nodePath}/layoutGroup/base/constraintCount`, \"A fixed grid constraint requires constraintCount.\");\r\n for (const profile of [\"desktop\", \"mobile\"] as const) {\r\n const grid = node.type === \"grid-layout\" ? { ...node.layoutGroup.base, ...node.layoutGroup.overrides?.[profile] } : undefined;\r\n if (grid !== undefined && grid.constraint !== \"flexible\" && grid.constraintCount === undefined) add(issues, \"MISSING_GRID_CONSTRAINT_COUNT\", `${nodePath}/layoutGroup/overrides/${profile}/constraintCount`, \"A fixed grid constraint requires constraintCount.\");\r\n }\r\n checkResolvedSizes(node, nodePath, issues);\r\n });\r\n const visiting = new Set<string>(), visited = new Set<string>(); const visit = (id: string): void => { if (visiting.has(id)) { add(issues, \"HIERARCHY_CYCLE\", path, `Hierarchy contains a cycle through '${id}'.`); return; } if (visited.has(id)) return; const node = nodes.get(id); if (!node) return; visiting.add(id); node.children.forEach(visit); visiting.delete(id); visited.add(id); }; nodes.forEach((_, id) => visit(id));\r\n}\r\nfunction semantic(document: ProjectDocument): ValidationIssue[] {\r\n const issues: ValidationIssue[] = [], ids = new Set<string>(), register = (id: string, path: string) => { if (ids.has(id)) add(issues, \"DUPLICATE_ID\", path, `Duplicate entity ID '${id}'.`); ids.add(id); };\r\n register(document.project.id, \"/project/id\"); const assets = new Map<string, Asset>(), prefabs = new Set<string>(), effects = new Map<string, EffectDefinition>();\r\n const fontMediaTypes = new Set([\"font/woff2\", \"font/woff\", \"font/ttf\", \"font/otf\", \"application/font-woff\", \"application/x-font-ttf\", \"application/x-font-opentype\"]);\r\n document.assets.forEach((asset, i) => { register(asset.id, `/assets/${i}/id`); assets.set(asset.id, asset); if (asset.type === \"font\" && !fontMediaTypes.has(asset.source.mediaType)) add(issues, \"INVALID_FONT_MEDIA_TYPE\", `/assets/${i}/source/mediaType`, `Unsupported font media type '${asset.source.mediaType}'.`); });\r\n // Каждый atlas-фрейм и bitmap-font glyph-фрейм ведёт себя как обычный image-ассет во всех местах, где\r\n // нода ссылается на assetId: виртуальная запись позволяет существующим\r\n // MISSING_ASSET_REFERENCE/INCOMPATIBLE_ASSET_REFERENCE проверкам работать без изменений в каждой ветке hierarchy().\r\n document.assets.forEach((asset) => {\r\n const frames = asset.type === \"atlas\" ? asset.frames : asset.type === \"bitmapFont\" ? asset.frames ?? {} : undefined;\r\n if (frames === undefined) return;\r\n for (const frameId of Object.values(frames)) { if (!assets.has(frameId)) assets.set(frameId, { id: frameId, name: frameId, type: \"image\", source: { uri: \"\", mediaType: \"image/png\" } }); }\r\n });\r\n document.effects.forEach((effect, i) => { register(effect.id, `/effects/${i}/id`); effects.set(effect.id, effect); if (!isParticleEffect(effect)) return; const p = `/effects/${i}`, e = effect.emission, v = effect.particle.visual; const ranges: [string, { min: number; max: number }][] = [[\"particle/lifetime\", effect.particle.lifetime], [\"particle/movement/speed\", effect.particle.movement.speed], [\"particle/visual/scale/start\", v.scale.start], [\"particle/visual/scale/end\", v.scale.end], [\"particle/visual/rotation/initialDegrees\", v.rotation.initialDegrees], [\"particle/visual/rotation/angularVelocityDegrees\", v.rotation.angularVelocityDegrees]]; ranges.forEach(([field, range]) => { if (range.min > range.max) add(issues, \"INVALID_PARTICLE_RANGE\", `${p}/${field}`, \"Particle range min must not exceed max.\"); }); if (e.rate === 0 && e.bursts.length === 0) add(issues, \"EMPTY_PARTICLE_EMISSION\", `${p}/emission`, \"Particle emission needs a rate or a burst.\"); e.bursts.forEach((burst, j) => { if (burst.time > e.duration) add(issues, \"PARTICLE_BURST_OUTSIDE_DURATION\", `${p}/emission/bursts/${j}/time`, \"Particle burst time must be inside emission duration.\"); }); const source = v.source; particleAssetIds(effect).forEach((id, j) => { const asset = assets.get(id), sourcePath = source.type === \"single\" ? `${p}/particle/visual/source/assetId` : `${p}/particle/visual/source/assetIds/${j}`; if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", sourcePath, `Asset '${id}' does not exist.`); else if (asset.type !== \"image\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", sourcePath, \"Particle visual source requires an image asset or atlas frame.\"); }); });\r\n document.prefabs.forEach((prefab, i) => { register(prefab.id, `/prefabs/${i}/id`); prefabs.add(prefab.id); }); document.scenes.forEach((scene, i) => register(scene.id, `/scenes/${i}/id`));\r\n const prefabById = new Map(document.prefabs.map((prefab) => [prefab.id, prefab]));\r\n const validateInstance = (instance: Extract<UINode, { type: \"prefab-instance\" }>, path: string, checkHierarchy = true): void => {\r\n const prefab = prefabById.get(instance.prefabId);\r\n if (prefab === undefined) return;\r\n // База адресуется путём: у вложенных пресетов переопределяемый узел живёт не в `prefab.nodes`,\r\n // а глубже, поэтому цель override резолвится через тот же материализатор.\r\n const definitionNodes = resolvePrefabInstanceBaseNodes(document, instance);\r\n const overridden = new Set<string>();\r\n for (const [index, override] of (instance.propertyOverrides ?? []).entries()) {\r\n const overridePath = `${path}/propertyOverrides/${index}`;\r\n if (overridden.has(override.nodeId)) add(issues, \"DUPLICATE_PREFAB_NODE_OVERRIDE\", `${overridePath}/nodeId`, `Prefab node '${override.nodeId}' has more than one property override.`);\r\n overridden.add(override.nodeId);\r\n const definitionNode = definitionNodes.get(override.nodeId);\r\n if (definitionNode === undefined) {\r\n add(issues, \"MISSING_PREFAB_OVERRIDE_TARGET\", `${overridePath}/nodeId`, `Prefab node '${override.nodeId}' does not exist in definition '${prefab.id}'.`);\r\n continue;\r\n }\r\n for (const key of [\"id\", \"type\", \"parentId\", \"children\", \"editorOnly\", \"locked\", \"prefabId\", \"propertyOverrides\", \"locallyAddedNodes\"]) {\r\n if (Object.hasOwn(override.patch, key)) add(issues, \"STRUCTURAL_PREFAB_OVERRIDE\", `${overridePath}/patch/${key}`, `Prefab instances cannot override structural field '${key}'.`);\r\n }\r\n // База развёрнута, поэтому несёт instance-scoped id и связи. Патч их менять не может, а\r\n // структурная схема требует обычных uuid, поэтому идентичность подменяется на нейтральную.\r\n const effective = applyPrefabNodePatch({ ...definitionNode, id: instance.id, parentId: null, children: [] } as UINode, override.patch);\r\n if (!structuralNode(effective)) add(issues, \"INVALID_PREFAB_NODE_OVERRIDE\", `${overridePath}/patch`, \"The property override produces an invalid UI node.\");\r\n }\r\n // Локально добавленный инстанс сам владеет своей конфигурацией, поэтому проверяется рекурсивно.\r\n // Иерархию при этом сверяет только внешний инстанс: его материализация уже включает вложенные.\r\n for (const [index, localNode] of (instance.locallyAddedNodes ?? []).entries()) {\r\n const localPath = `${path}/locallyAddedNodes/${index}`;\r\n register(localNode.id, `${localPath}/id`);\r\n if (localNode.type === \"prefab-instance\") validateInstance(localNode, localPath, false);\r\n }\r\n if (!checkHierarchy) return;\r\n const materialized = materializePrefabInstance(document, instance);\r\n if (materialized !== undefined) hierarchy(materialized, `${path}/materialized`, assets, prefabs, effects, issues);\r\n };\r\n document.prefabs.forEach((prefab, i) => { prefab.nodes.forEach((node, j) => register(node.id, `/prefabs/${i}/nodes/${j}/id`)); hierarchy(prefab, `/prefabs/${i}`, assets, prefabs, effects, issues); });\r\n document.prefabs.forEach((prefab, i) => { prefab.nodes.forEach((node, j) => { if (node.type === \"prefab-instance\") validateInstance(node, `/prefabs/${i}/nodes/${j}`); }); checkBindingKeys(document, prefab, `/prefabs/${i}`, issues); });\r\n document.scenes.forEach((scene, i) => { scene.nodes.forEach((node, j) => register(node.id, `/scenes/${i}/nodes/${j}/id`)); hierarchy(scene, `/scenes/${i}`, assets, prefabs, effects, issues); scene.nodes.forEach((node, j) => { if (node.type === \"prefab-instance\") validateInstance(node, `/scenes/${i}/nodes/${j}`); }); const musicAssetId = scene.audio?.backgroundMusicAssetId; if (musicAssetId !== undefined) { const asset = assets.get(musicAssetId), musicPath = `/scenes/${i}/audio/backgroundMusicAssetId`; if (!asset) add(issues, \"MISSING_ASSET_REFERENCE\", musicPath, `Asset '${musicAssetId}' does not exist.`); else if (asset.type !== \"sound\") add(issues, \"INCOMPATIBLE_ASSET_REFERENCE\", musicPath, \"Background music requires a sound asset.\"); } checkBindingKeys(document, scene, `/scenes/${i}`, issues); });\r\n // Каталог локализации проверяет единственный модуль: структурные ошибки делают документ невалидным,\r\n // authoring diagnostics приходят warnings и не мешают заполнять переводы постепенно.\r\n issues.push(...collectLocalizationIssues(document));\r\n return issues;\r\n}\r\nfunction collectNonFiniteNumbers(input: unknown, path: string, issues: ValidationIssue[]): void {\r\n if (typeof input === \"number\") {\r\n if (!Number.isFinite(input)) add(issues, \"NON_FINITE_NUMBER\", path, \"Numbers must be finite.\");\r\n return;\r\n }\r\n if (Array.isArray(input)) input.forEach((value, index) => collectNonFiniteNumbers(value, `${path}/${index}`, issues));\r\n else if (typeof input === \"object\" && input !== null) Object.entries(input).forEach(([key, value]) => collectNonFiniteNumbers(value, `${path}/${key}`, issues));\r\n}\r\nexport function validateProjectDocument(input: unknown): ValidationResult { if (!structural(input)) return { valid: false, issues: (structural.errors ?? []).map((error: ErrorObject) => ({ code: \"STRUCTURAL_SCHEMA\", path: error.instancePath || \"/\", message: error.message ?? \"Invalid document structure.\", severity: \"error\" })) }; const issues: ValidationIssue[] = []; collectNonFiniteNumbers(input, \"\", issues); issues.push(...semantic(input as ProjectDocument)); return { valid: !issues.some((issue) => issue.severity === \"error\"), issues }; }\r\nexport function assertProjectDocument(input: unknown): asserts input is ProjectDocument { const result = validateProjectDocument(input); if (!result.valid) throw new TypeError(`Invalid ProjectDocument: ${result.issues.filter((x) => x.severity === \"error\").map((x) => `${x.code} at ${x.path}`).join(\", \")}`); }\r\n/** v1 хранил точечный якорь anchorX/anchorY; v2 заменяет его парой anchorMin/anchorMax с тем же значением. */\r\nfunction migrateTransformV1(transform: Record<string, unknown>): void {\r\n for (const axis of [\"X\", \"Y\"] as const) {\r\n const value = transform[`anchor${axis}`];\r\n delete transform[`anchor${axis}`];\r\n if (typeof value !== \"number\") continue;\r\n transform[`anchorMin${axis}`] = value;\r\n transform[`anchorMax${axis}`] = value;\r\n }\r\n}\r\nfunction migrateV1ToV2(document: Record<string, unknown>): void {\r\n const owners = [...(document.scenes as { nodes: unknown[] }[] ?? []), ...(document.prefabs as { nodes: unknown[] }[] ?? [])];\r\n for (const owner of owners) {\r\n for (const node of owner.nodes as Record<string, unknown>[]) {\r\n if (typeof node.transform === \"object\" && node.transform !== null) migrateTransformV1(node.transform as Record<string, unknown>);\r\n const overrides = node.layoutOverrides as Record<string, { transform?: Record<string, unknown> }> | undefined;\r\n for (const profile of [\"desktop\", \"mobile\"]) {\r\n const transform = overrides?.[profile]?.transform;\r\n if (typeof transform === \"object\" && transform !== null) migrateTransformV1(transform);\r\n }\r\n }\r\n }\r\n}\r\n\r\ntype MigratingTransform = Record<string, unknown> & { x: number; y: number; width: number; height: number };\r\ntype MigratingNode = {\r\n id: string;\r\n parentId: string | null;\r\n children: string[];\r\n transform: MigratingTransform;\r\n layoutOverrides?: Record<string, { transform?: Record<string, unknown> }>;\r\n};\r\ntype MigratingSize = { width: number; height: number };\r\n\r\nfunction migrateOwnerToPreferredRects(\r\n owner: { rootNodeIds: string[]; nodes: MigratingNode[] },\r\n viewports?: { referenceViewports: Record<\"desktop\" | \"mobile\", MigratingSize>; preferredViewports: Record<\"desktop\" | \"mobile\", MigratingSize> },\r\n source: \"legacy\" | \"v9\" = \"legacy\",\r\n): void {\r\n const originalNodes = structuredClone(owner.nodes);\r\n const nodesById = new Map(originalNodes.map((node) => [node.id, node]));\r\n const convertedByProfile = new Map<\"desktop\" | \"mobile\", Map<string, { transform: MigratingTransform; currentSize: MigratingSize; preferredSize: MigratingSize }>>();\r\n\r\n for (const profile of [\"desktop\", \"mobile\"] as const) {\r\n const converted = new Map<string, { transform: MigratingTransform; currentSize: MigratingSize; preferredSize: MigratingSize }>();\r\n const visiting = new Set<string>();\r\n const visit = (nodeId: string): { transform: MigratingTransform; currentSize: MigratingSize; preferredSize: MigratingSize } | undefined => {\r\n const cached = converted.get(nodeId);\r\n if (cached !== undefined) return cached;\r\n if (visiting.has(nodeId)) return undefined;\r\n const node = nodesById.get(nodeId);\r\n if (node === undefined) return undefined;\r\n visiting.add(nodeId);\r\n const parent = node.parentId === null ? undefined : nodesById.get(node.parentId);\r\n const convertedParent = parent === undefined ? undefined : visit(parent.id);\r\n visiting.delete(nodeId);\r\n\r\n const referenceRoot = viewports?.referenceViewports[profile];\r\n const preferredRoot = viewports?.preferredViewports[profile];\r\n const usesSceneBoundary = viewports !== undefined && parent?.parentId === null;\r\n const currentParent = node.parentId === null || usesSceneBoundary ? referenceRoot : convertedParent?.currentSize;\r\n const preferredParent = node.parentId === null || usesSceneBoundary ? preferredRoot : convertedParent?.preferredSize;\r\n const override = node.layoutOverrides?.[profile]?.transform;\r\n const merged = { ...node.transform, ...override } as MigratingTransform;\r\n const minX = typeof merged.anchorMinX === \"number\" ? merged.anchorMinX : 0;\r\n const maxX = typeof merged.anchorMaxX === \"number\" ? merged.anchorMaxX : minX;\r\n const minY = typeof merged.anchorMinY === \"number\" ? merged.anchorMinY : 0;\r\n const maxY = typeof merged.anchorMaxY === \"number\" ? merged.anchorMaxY : minY;\r\n const stretchX = maxX > minX;\r\n const stretchY = maxY > minY;\r\n const legacyResponsive = typeof merged.responsiveSize === \"object\" && merged.responsiveSize !== null\r\n ? merged.responsiveSize as { referenceParentWidth?: unknown; referenceParentHeight?: unknown }\r\n : undefined;\r\n const fallbackWidth = typeof legacyResponsive?.referenceParentWidth === \"number\" ? legacyResponsive.referenceParentWidth : 1;\r\n const fallbackHeight = typeof legacyResponsive?.referenceParentHeight === \"number\" ? legacyResponsive.referenceParentHeight : 1;\r\n const current = currentParent ?? { width: fallbackWidth, height: fallbackHeight };\r\n const preferred = preferredParent ?? current;\r\n const oldScaleX = source === \"v9\"\r\n ? stretchX ? current.width / preferred.width : 1\r\n : stretchX && typeof legacyResponsive?.referenceParentWidth === \"number\"\r\n ? current.width / legacyResponsive.referenceParentWidth\r\n : 1;\r\n const oldScaleY = source === \"v9\"\r\n ? stretchY ? current.height / preferred.height : 1\r\n : stretchY && typeof legacyResponsive?.referenceParentHeight === \"number\"\r\n ? current.height / legacyResponsive.referenceParentHeight\r\n : 1;\r\n const renderedOffsetX = stretchX ? merged.x * oldScaleX : merged.x;\r\n const renderedOffsetY = stretchY ? merged.y * oldScaleY : merged.y;\r\n const renderedWidth = stretchX\r\n ? source === \"v9\" || legacyResponsive !== undefined\r\n ? merged.width * oldScaleX\r\n : merged.width + (maxX - minX) * current.width\r\n : merged.width;\r\n const renderedHeight = stretchY\r\n ? source === \"v9\" || legacyResponsive !== undefined\r\n ? merged.height * oldScaleY\r\n : merged.height + (maxY - minY) * current.height\r\n : merged.height;\r\n const currentWidth = current.width > 0 ? current.width : preferred.width;\r\n const currentHeight = current.height > 0 ? current.height : preferred.height;\r\n const next = { ...merged };\r\n delete next.responsiveSize;\r\n next.x = renderedOffsetX * preferred.width / currentWidth;\r\n next.y = renderedOffsetY * preferred.height / currentHeight;\r\n next.width = renderedWidth * preferred.width / currentWidth;\r\n next.height = renderedHeight * preferred.height / currentHeight;\r\n const result = {\r\n transform: next,\r\n currentSize: {\r\n width: next.width * currentWidth / preferred.width,\r\n height: next.height * currentHeight / preferred.height,\r\n },\r\n preferredSize: { width: next.width, height: next.height },\r\n };\r\n converted.set(nodeId, result);\r\n return result;\r\n };\r\n owner.rootNodeIds.forEach(visit);\r\n originalNodes.forEach((node) => visit(node.id));\r\n convertedByProfile.set(profile, converted);\r\n }\r\n\r\n for (const node of owner.nodes) {\r\n const desktop = convertedByProfile.get(\"desktop\")?.get(node.id)?.transform;\r\n const mobile = convertedByProfile.get(\"mobile\")?.get(node.id)?.transform;\r\n if (desktop !== undefined) node.transform = desktop;\r\n if (mobile !== undefined) {\r\n const mobilePatch = Object.fromEntries(\r\n Object.entries(mobile).filter(([key, value]) => !Object.is(value, desktop?.[key])),\r\n );\r\n const existingMobile = node.layoutOverrides?.mobile;\r\n if (Object.keys(mobilePatch).length > 0 || existingMobile !== undefined) {\r\n node.layoutOverrides ??= {};\r\n node.layoutOverrides.mobile ??= {};\r\n if (Object.keys(mobilePatch).length > 0) node.layoutOverrides.mobile.transform = mobilePatch;\r\n else delete node.layoutOverrides.mobile.transform;\r\n if (Object.keys(node.layoutOverrides.mobile).length === 0) delete node.layoutOverrides.mobile;\r\n if (Object.keys(node.layoutOverrides).length === 0) delete node.layoutOverrides;\r\n }\r\n }\r\n const desktopOverride = node.layoutOverrides?.desktop?.transform;\r\n if (desktopOverride !== undefined) delete desktopOverride.responsiveSize;\r\n }\r\n}\r\n\r\nfunction migrateToV10(document: Record<string, unknown>, source: \"legacy\" | \"v9\"): void {\r\n for (const scene of document.scenes as Array<{ rootNodeIds: string[]; nodes: MigratingNode[]; layout: { referenceViewports: Record<\"desktop\" | \"mobile\", MigratingSize>; preferredViewports: Record<\"desktop\" | \"mobile\", MigratingSize> } }> ?? []) {\r\n migrateOwnerToPreferredRects(scene, scene.layout, source);\r\n }\r\n for (const prefab of document.prefabs as Array<{ rootNodeIds: string[]; nodes: MigratingNode[] }> ?? []) {\r\n migrateOwnerToPreferredRects(prefab, undefined, source);\r\n }\r\n}\r\n\r\n/** Converts v10 absolute preferred-space rects to anchoredPosition/sizeDelta without a visual jump. */\r\nfunction migrateOwnerV10ToV11(\r\n owner: { rootNodeIds: string[]; nodes: MigratingNode[] },\r\n preferredViewports?: Record<\"desktop\" | \"mobile\", MigratingSize>,\r\n): void {\r\n const originalNodes = structuredClone(owner.nodes);\r\n const nodesById = new Map(originalNodes.map((node) => [node.id, node]));\r\n const convertedByProfile = new Map<\"desktop\" | \"mobile\", Map<string, MigratingTransform>>();\r\n\r\n for (const profile of [\"desktop\", \"mobile\"] as const) {\r\n const converted = new Map<string, MigratingTransform>();\r\n const visit = (nodeId: string): MigratingTransform | undefined => {\r\n const cached = converted.get(nodeId);\r\n if (cached !== undefined) return cached;\r\n const node = nodesById.get(nodeId);\r\n if (node === undefined) return undefined;\r\n const parent = node.parentId === null ? undefined : nodesById.get(node.parentId);\r\n const convertedParent = parent === undefined ? undefined : visit(parent.id);\r\n const merged = { ...node.transform, ...node.layoutOverrides?.[profile]?.transform } as MigratingTransform;\r\n const sceneBoundary = preferredViewports?.[profile];\r\n const parentSize = sceneBoundary !== undefined && (node.parentId === null || parent?.parentId === null)\r\n ? sceneBoundary\r\n : convertedParent === undefined\r\n ? { width: merged.width, height: merged.height }\r\n : {\r\n width: typeof convertedParent.__resolvedWidth === \"number\" ? convertedParent.__resolvedWidth : convertedParent.width,\r\n height: typeof convertedParent.__resolvedHeight === \"number\" ? convertedParent.__resolvedHeight : convertedParent.height,\r\n };\r\n const minX = typeof merged.anchorMinX === \"number\" ? merged.anchorMinX : 0;\r\n const minY = typeof merged.anchorMinY === \"number\" ? merged.anchorMinY : 0;\r\n const maxX = typeof merged.anchorMaxX === \"number\" ? merged.anchorMaxX : minX;\r\n const maxY = typeof merged.anchorMaxY === \"number\" ? merged.anchorMaxY : minY;\r\n const pivotX = typeof merged.pivotX === \"number\" ? merged.pivotX : 0;\r\n const pivotY = typeof merged.pivotY === \"number\" ? merged.pivotY : 0;\r\n const resolvedWidth = merged.width;\r\n const resolvedHeight = merged.height;\r\n const next = {\r\n ...merged,\r\n x: merged.x - (maxX - minX) * pivotX * parentSize.width,\r\n y: merged.y - (maxY - minY) * pivotY * parentSize.height,\r\n width: resolvedWidth - (maxX - minX) * parentSize.width,\r\n height: resolvedHeight - (maxY - minY) * parentSize.height,\r\n __resolvedWidth: resolvedWidth,\r\n __resolvedHeight: resolvedHeight,\r\n };\r\n converted.set(nodeId, next);\r\n return next;\r\n };\r\n owner.rootNodeIds.forEach(visit);\r\n originalNodes.forEach((node) => visit(node.id));\r\n convertedByProfile.set(profile, converted);\r\n }\r\n\r\n for (const node of owner.nodes) {\r\n const stripInternal = (transform: MigratingTransform | undefined): MigratingTransform | undefined => {\r\n if (transform === undefined) return undefined;\r\n const next = { ...transform };\r\n delete next.__resolvedWidth;\r\n delete next.__resolvedHeight;\r\n return next;\r\n };\r\n const desktop = stripInternal(convertedByProfile.get(\"desktop\")?.get(node.id));\r\n const mobile = stripInternal(convertedByProfile.get(\"mobile\")?.get(node.id));\r\n if (desktop === undefined || mobile === undefined) continue;\r\n node.transform = desktop;\r\n const desktopOverride = node.layoutOverrides?.desktop;\r\n if (desktopOverride !== undefined) {\r\n delete desktopOverride.transform;\r\n if (Object.keys(desktopOverride).length === 0 && node.layoutOverrides !== undefined) delete node.layoutOverrides.desktop;\r\n }\r\n const mobilePatch = Object.fromEntries(Object.entries(mobile).filter(([key, value]) => !Object.is(value, desktop[key])));\r\n if (Object.keys(mobilePatch).length > 0) {\r\n node.layoutOverrides ??= {};\r\n node.layoutOverrides.mobile ??= {};\r\n node.layoutOverrides.mobile.transform = mobilePatch;\r\n } else if (node.layoutOverrides?.mobile !== undefined) {\r\n delete node.layoutOverrides.mobile.transform;\r\n if (Object.keys(node.layoutOverrides.mobile).length === 0) delete node.layoutOverrides.mobile;\r\n }\r\n if (node.layoutOverrides !== undefined && Object.keys(node.layoutOverrides).length === 0) delete node.layoutOverrides;\r\n }\r\n}\r\n\r\nfunction migrateV10ToV11(document: Record<string, unknown>): void {\r\n for (const scene of document.scenes as Array<{ rootNodeIds: string[]; nodes: MigratingNode[]; layout: { preferredViewports: Record<\"desktop\" | \"mobile\", MigratingSize> } }> ?? []) {\r\n migrateOwnerV10ToV11(scene, scene.layout.preferredViewports);\r\n }\r\n for (const prefab of document.prefabs as Array<{ rootNodeIds: string[]; nodes: MigratingNode[] }> ?? []) {\r\n migrateOwnerV10ToV11(prefab);\r\n }\r\n}\r\n\r\n/** v15 makes Spine's initial playback explicit; previous runtime behavior always started it. */\r\nfunction migrateV14ToV15(document: Record<string, unknown>): void {\r\n const visit = (node: Record<string, unknown>): void => {\r\n if (node.type === \"spine\" && typeof node.autoplay !== \"boolean\") node.autoplay = true;\r\n const localNodes = node.locallyAddedNodes;\r\n if (Array.isArray(localNodes)) for (const localNode of localNodes) if (typeof localNode === \"object\" && localNode !== null) visit(localNode as Record<string, unknown>);\r\n };\r\n const owners = [...(document.scenes as { nodes?: unknown[] }[] ?? []), ...(document.prefabs as { nodes?: unknown[] }[] ?? [])];\r\n for (const owner of owners) for (const node of owner.nodes ?? []) if (typeof node === \"object\" && node !== null) visit(node as Record<string, unknown>);\r\n}\r\n\r\n/**\r\n * v19 adds optional, sparse presentation overrides. v18 values already are the canonical base values,\r\n * including nodes nested in prefab instances, so conversion deliberately preserves the complete node\r\n * graph byte-for-byte and only the caller advances schemaVersion after this explicit migration step.\r\n */\r\nfunction migrateV18ToV19(_document: Record<string, unknown>): void {}\r\n\r\n/**\r\n * v20 добавляет каталог локализации. Старому документу достаётся базовая локаль `en` и пустой\r\n * `entries`; `textKey` существующим `Text` не добавляется, поэтому визуально документ не меняется:\r\n * нода без ключа локализацию не запрашивает вовсе.\r\n */\r\nfunction migrateV19ToV20(document: Record<string, unknown>): void {\r\n if (typeof document.localization !== \"object\" || document.localization === null) document.localization = createDefaultLocalization();\r\n}\r\n\r\n/** v21 adds the optional `mask` node variant; every v20 document is already valid without it. */\r\nfunction migrateV20ToV21(_document: Record<string, unknown>): void {}\r\n\r\n/**\r\n * v22 переименовывает `UINode.binding` в `bindingKey`. Смысл поля не меняется — это тот же публичный\r\n * ключ ноды для игрового кода, — но имя `binding` путалось с keyboard bindings редактора.\r\n *\r\n * Значение переносится как есть, включая override-патчи внутри prefab-инстансов и локально\r\n * добавленные узлы: патч — RFC-7396-like merge patch, поэтому в нём переименовывается сам ключ\r\n * свойства вместе с его значением, в том числе `null` (снятие ключа). Конфликты, возникшие в старых\r\n * документах, не исправляются молча — после миграции они становятся обычными validation errors.\r\n */\r\nfunction migrateV21ToV22(document: Record<string, unknown>): void {\r\n const rename = (record: Record<string, unknown>): void => {\r\n if (!Object.hasOwn(record, \"binding\")) return;\r\n record.bindingKey = record.binding;\r\n delete record.binding;\r\n };\r\n const visit = (node: Record<string, unknown>): void => {\r\n rename(node);\r\n const overrides = node.propertyOverrides;\r\n if (Array.isArray(overrides)) for (const override of overrides) {\r\n const patch = (override as { patch?: unknown }).patch;\r\n if (typeof patch === \"object\" && patch !== null) rename(patch as Record<string, unknown>);\r\n }\r\n const localNodes = node.locallyAddedNodes;\r\n if (Array.isArray(localNodes)) for (const localNode of localNodes) if (typeof localNode === \"object\" && localNode !== null) visit(localNode as Record<string, unknown>);\r\n };\r\n const owners = [...(document.scenes as { nodes?: unknown[] }[] ?? []), ...(document.prefabs as { nodes?: unknown[] }[] ?? [])];\r\n for (const owner of owners) for (const node of owner.nodes ?? []) if (typeof node === \"object\" && node !== null) visit(node as Record<string, unknown>);\r\n}\r\n\r\n/**\r\n * v23 добавляет промежуточные веса шрифта (300/500/600/800) к прежним `normal`/`bold`. Прежние\r\n * значения остаются в новом union без изменений, поэтому переписывать документ не нужно.\r\n */\r\nfunction migrateV22ToV23(_document: Record<string, unknown>): void {}\r\n\r\n/** v24 adds the `bitmapFont` asset type and the `bitmap-text` node variant; every v23 document is already valid without them. */\r\nfunction migrateV23ToV24(_document: Record<string, unknown>): void {}\r\n\r\n/** v25 adds optional `bitmap-text` auto-size (`autoSize`/`minFontSize`); every v24 document is already valid without them. */\r\nfunction migrateV24ToV25(_document: Record<string, unknown>): void {}\r\n\r\n/** v26 adds optional `bitmapFont.frames` (reusable glyph crops); every v25 document is already valid without them. */\r\nfunction migrateV25ToV26(_document: Record<string, unknown>): void {}\r\n\r\n/** v27 adds optional `text` auto-size (`autoSize`/`minFontSize`), mirroring bitmap-text (ADR 0027); every v26 document is already valid without them. */\r\nfunction migrateV26ToV27(_document: Record<string, unknown>): void {}\r\n\r\n/** v28 adds the optional `staged-button` node variant; every v27 document is already valid without it. */\r\nfunction migrateV27ToV28(_document: Record<string, unknown>): void {}\r\n\r\nexport function migrateProjectDocument(input: unknown): ProjectDocument { if (typeof input !== \"object\" || input === null || !Object.hasOwn(input, \"schemaVersion\")) throw new ProjectDocumentMigrationError(\"A schemaVersion is required for migration.\"); const version = (input as { schemaVersion?: unknown }).schemaVersion; if (typeof version !== \"number\" || !Number.isInteger(version) || version < 1 || version > CURRENT_SCHEMA_VERSION) throw new ProjectDocumentMigrationError(`Unsupported schemaVersion '${String(version)}'.`); const migrated = structuredClone(input) as Record<string, unknown>; if (version <= 1) migrateV1ToV2(migrated); if (version <= 6) migrated.effects = []; if (version <= 7) for (const scene of migrated.scenes as { layout?: Record<string, unknown> }[] ?? []) { const layout = scene.layout; if (layout?.referenceViewports !== undefined) layout.preferredViewports = structuredClone(layout.referenceViewports); } if (version <= 9) migrateToV10(migrated, version === 9 ? \"v9\" : \"legacy\"); if (version <= 10) migrateV10ToV11(migrated); if (version <= 14) migrateV14ToV15(migrated); if (version <= 18) migrateV18ToV19(migrated); if (version <= 19) migrateV19ToV20(migrated); if (version <= 20) migrateV20ToV21(migrated); if (version <= 21) migrateV21ToV22(migrated); if (version <= 22) migrateV22ToV23(migrated); if (version <= 23) migrateV23ToV24(migrated); if (version <= 24) migrateV24ToV25(migrated); if (version <= 25) migrateV25ToV26(migrated); if (version <= 26) migrateV26ToV27(migrated); if (version <= 27) migrateV27ToV28(migrated);\r\n // v17 → v18 (image без assetId) тоже не требует переписывания данных: старый формат — строгое\r\n // подмножество нового, у каждой существующей image-ноды assetId просто остаётся на месте.\r\n // v15 → v16 (вложенные пресеты) не требует переписывания данных: новый формат — надмножество\r\n // старого. `propertyOverrides[].nodeId` и `parentId` локального узла стали путями, а путь длиной в\r\n // один сегмент — это ровно прежний id узла определения; вложенных инстансов в `locallyAddedNodes`\r\n // v15 хранить не мог, поэтому запрещённых значений в старых документах не бывает.\r\n migrated.schemaVersion = CURRENT_SCHEMA_VERSION; assertProjectDocument(migrated); return migrated; }\r\nfunction canonicalizeJson(value: unknown): unknown {\r\n if (Array.isArray(value)) return value.map(canonicalizeJson);\r\n if (typeof value === \"object\" && value !== null) return Object.fromEntries(Object.keys(value).sort().map((key) => [key, canonicalizeJson((value as Record<string, unknown>)[key])]));\r\n return value;\r\n}\r\nexport function serializeProjectDocument(document: ProjectDocument): string { assertProjectDocument(document); return `${JSON.stringify(canonicalizeJson(document))}\\n`; }\r\n\r\nexport * from \"./assetPaths.js\";\r\nexport * from \"./localization.js\";\r\nexport * from \"./manifest.js\";\r\nexport * from \"./prefabs.js\";\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.test-fixtures.js","sourceRoot":"","sources":["../src/index.test-fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test-fixtures.js","sourceRoot":"","sources":["../src/index.test-fixtures.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n BUTTON_STATE_KEYS,\r\n createDefaultLocalization,\r\n CURRENT_SCHEMA_VERSION,\r\n validateProjectDocument,\r\n type ProjectDocument,\r\n type UINode,\r\n type ValidationResult,\r\n} from \"./index.js\";\r\n\r\nexport type ButtonNode = Extract<UINode, { type: \"button\" }>;\r\n\r\n/** Appends a button whose four states each reference their own image asset, wired into the fixture's scene root. */\r\nexport function addButtonNode(document: ProjectDocument): ButtonNode {\r\n const scene = document.scenes[0]!;\r\n const root = scene.nodes[0]!;\r\n const assetIds = BUTTON_STATE_KEYS.map((state, index) => {\r\n const id = stableId(10 + index);\r\n document.assets.push({ id, name: `Button ${state}`, type: \"image\", source: { uri: `assets/button-${state}.png`, mediaType: \"image/png\" } });\r\n return id;\r\n });\r\n\r\n const button: ButtonNode = {\r\n id: stableId(20),\r\n name: \"Play\",\r\n type: \"button\",\r\n parentId: root.id,\r\n children: [],\r\n visible: true,\r\n enabled: true,\r\n states: { normalAssetId: assetIds[0]!, hoverAssetId: assetIds[1]!, pressedAssetId: assetIds[2]!, disabledAssetId: assetIds[3]! },\r\n transform: { x: 0, y: 0, width: 120, height: 40, scaleX: 1, scaleY: 1, rotation: 0 },\r\n };\r\n root.children.push(button.id);\r\n scene.nodes.push(button);\r\n return button;\r\n}\r\n\r\nexport type CheckboxNode = Extract<UINode, { type: \"checkbox\" }>;\r\n\r\n/** Appends a checkbox whose required unchecked/checked states each reference their own image asset. */\r\nexport function addCheckboxNode(document: ProjectDocument): CheckboxNode {\r\n const scene = document.scenes[0]!;\r\n const root = scene.nodes[0]!;\r\n const uncheckedAssetId = stableId(70);\r\n const checkedAssetId = stableId(71);\r\n document.assets.push({ id: uncheckedAssetId, name: \"Checkbox unchecked\", type: \"image\", source: { uri: \"assets/checkbox-unchecked.png\", mediaType: \"image/png\" } });\r\n document.assets.push({ id: checkedAssetId, name: \"Checkbox checked\", type: \"image\", source: { uri: \"assets/checkbox-checked.png\", mediaType: \"image/png\" } });\r\n\r\n const checkbox: CheckboxNode = {\r\n id: stableId(72),\r\n name: \"Agree\",\r\n type: \"checkbox\",\r\n parentId: root.id,\r\n children: [],\r\n visible: true,\r\n enabled: true,\r\n defaultChecked: false,\r\n states: { uncheckedAssetId, checkedAssetId },\r\n transform: { x: 0, y: 0, width: 32, height: 32, scaleX: 1, scaleY: 1, rotation: 0 },\r\n };\r\n root.children.push(checkbox.id);\r\n scene.nodes.push(checkbox);\r\n return checkbox;\r\n}\r\n\r\nexport const stableId = (value: number): string =>\r\n `00000000-0000-4000-8000-${String(value).padStart(12, \"0\")}`;\r\n\r\n/** Appends an atlas asset with one named frame and points an existing image node at that frame id. */\r\nexport function addAtlasAssetWithFrame(document: ProjectDocument): { atlasId: string; frameId: string } {\r\n const atlasId = stableId(40);\r\n const frameId = stableId(41);\r\n document.assets.push({\r\n id: atlasId,\r\n name: \"Atlas\",\r\n type: \"atlas\",\r\n files: {\r\n json: { name: \"atlas.json\", uri: \"assets/atlas.json\", mediaType: \"application/json\" },\r\n texture: { name: \"atlas.png\", uri: \"assets/atlas.png\", mediaType: \"image/png\" },\r\n },\r\n frames: { \"icon.png\": frameId },\r\n });\r\n (document.scenes[0]!.nodes[1] as { assetId: string }).assetId = frameId;\r\n return { atlasId, frameId };\r\n}\r\n\r\nexport function createProjectDocumentFixture(): ProjectDocument {\r\n const project = stableId(1);\r\n const scene = stableId(2);\r\n const root = stableId(3);\r\n const image = stableId(4);\r\n const asset = stableId(5);\r\n const prefab = stableId(6);\r\n\r\n return {\r\n schemaVersion: CURRENT_SCHEMA_VERSION,\r\n project: { id: project, name: \"Project\" },\r\n settings: {\r\n layoutProfileSelection: { mode: \"aspect-ratio\", mobileMaxAspectRatio: 1 },\r\n },\r\n localization: createDefaultLocalization(),\r\n assets: [\r\n {\r\n id: asset,\r\n name: \"Logo\",\r\n type: \"image\",\r\n source: { uri: \"assets/logo.png\", mediaType: \"image/png\" },\r\n },\r\n ],\r\n effects: [],\r\n prefabs: [\r\n {\r\n id: prefab,\r\n name: \"Badge\",\r\n rootNodeIds: [],\r\n nodes: [],\r\n exposedProperties: [],\r\n },\r\n ],\r\n scenes: [\r\n {\r\n id: scene,\r\n name: \"Main\",\r\n rootNodeIds: [root],\r\n layout: {\r\n referenceViewports: {\r\n desktop: { width: 1920, height: 1080 },\r\n mobile: { width: 390, height: 844 },\r\n },\r\n preferredViewports: {\r\n desktop: { width: 1920, height: 1080 },\r\n mobile: { width: 390, height: 844 },\r\n },\r\n },\r\n nodes: [\r\n {\r\n id: root,\r\n name: \"Root\",\r\n type: \"container\",\r\n parentId: null,\r\n children: [image],\r\n visible: true,\r\n transform: {\r\n x: 0,\r\n y: 0,\r\n width: 100,\r\n height: 100,\r\n scaleX: 1,\r\n scaleY: 1,\r\n rotation: 0,\r\n },\r\n },\r\n {\r\n id: image,\r\n name: \"Logo\",\r\n type: \"image\",\r\n assetId: asset,\r\n parentId: root,\r\n children: [],\r\n visible: true,\r\n transform: {\r\n x: 0,\r\n y: 0,\r\n width: 10,\r\n height: 10,\r\n scaleX: 1,\r\n scaleY: 1,\r\n rotation: 0,\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n };\r\n}\r\n\r\nexport function validateFixtureMutation(mutate: (document: ProjectDocument) => void): ValidationResult {\r\n const document = createProjectDocumentFixture();\r\n mutate(document);\r\n return validateProjectDocument(document);\r\n}\r\n"]}