@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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from \"vitest\";\r\nimport {\r\n CURRENT_SCHEMA_VERSION,\r\n createStableId,\r\n migrateProjectDocument,\r\n serializeProjectDocument,\r\n validateProjectDocument,\r\n type ProjectDocument,\r\n} from \"./index.js\";\r\nimport {\r\n addAtlasAssetWithFrame,\r\n addButtonNode,\r\n addCheckboxNode,\r\n createProjectDocumentFixture,\r\n stableId,\r\n validateFixtureMutation,\r\n} from \"./index.test-fixtures.js\";\r\n\r\ndescribe(\"schema v1\", () => {\r\n it(\"generates independent UUID stable IDs\", () => {\r\n const first = createStableId();\r\n const second = createStableId();\r\n expect(first).toMatch(/^[0-9a-f]{8}-/i);\r\n expect(first).not.toBe(second);\r\n });\r\n\r\n it(\"accepts a minimal valid document\", () => {\r\n expect(validateProjectDocument(createProjectDocumentFixture())).toEqual({ valid: true, issues: [] });\r\n });\r\n\r\n it(\"accepts a rectangular mask node and migrates v20 without rewriting its graph\", () => {\r\n const document = createProjectDocumentFixture();\r\n const scene = document.scenes[0]!;\r\n const root = scene.nodes[0]!;\r\n const mask = {\r\n id: stableId(90),\r\n name: \"Viewport mask\",\r\n type: \"mask\" as const,\r\n parentId: root.id,\r\n children: [],\r\n visible: true,\r\n transform: { x: 0, y: 0, width: 320, height: 180, scaleX: 1, scaleY: 1, rotation: 0 },\r\n };\r\n root.children.push(mask.id);\r\n scene.nodes.push(mask);\r\n expect(validateProjectDocument(document)).toEqual({ valid: true, issues: [] });\r\n\r\n (document as { schemaVersion: number }).schemaVersion = 20;\r\n const before = structuredClone({ scenes: document.scenes, prefabs: document.prefabs });\r\n const migrated = migrateProjectDocument(document);\r\n expect(migrated.schemaVersion).toBe(CURRENT_SCHEMA_VERSION);\r\n expect({ scenes: migrated.scenes, prefabs: migrated.prefabs }).toEqual(before);\r\n });\r\n\r\n it(\"accepts prefab property overrides and local children while rejecting structural inherited edits\", () => {\r\n const document = createProjectDocumentFixture();\r\n const prefab = document.prefabs[0]!;\r\n const definitionNode = structuredClone(document.scenes[0]!.nodes[1]!);\r\n definitionNode.id = stableId(60);\r\n definitionNode.parentId = null;\r\n prefab.rootNodeIds = [definitionNode.id];\r\n prefab.nodes = [definitionNode];\r\n const root = document.scenes[0]!.nodes[0]!;\r\n const instanceId = stableId(61);\r\n root.children.push(instanceId);\r\n document.scenes[0]!.nodes.push({\r\n id: instanceId,\r\n name: \"Badge\",\r\n type: \"prefab-instance\",\r\n prefabId: prefab.id,\r\n parentId: root.id,\r\n children: [],\r\n visible: true,\r\n transform: { x: 0, y: 0, width: 100, height: 100, scaleX: 1, scaleY: 1, rotation: 0 },\r\n propertyOverrides: [{ nodeId: definitionNode.id, patch: { name: \"Configured badge\" } }],\r\n locallyAddedNodes: [{\r\n id: stableId(62), name: \"Caption\", type: \"text\", text: \"Local\", parentId: definitionNode.id, children: [], visible: true,\r\n transform: { x: 0, y: 0, width: 80, height: 20, scaleX: 1, scaleY: 1, rotation: 0 },\r\n }],\r\n });\r\n expect(validateProjectDocument(document).valid).toBe(true);\r\n\r\n const instance = document.scenes[0]!.nodes.at(-1)!;\r\n if (instance.type !== \"prefab-instance\") throw new Error(\"Expected prefab instance.\");\r\n instance.propertyOverrides![0]!.patch.children = [];\r\n expect(validateProjectDocument(document).issues.some((issue) => issue.code === \"STRUCTURAL_PREFAB_OVERRIDE\")).toBe(true);\r\n });\r\n\r\n it(\"accepts normalized anchors and rejects values outside the parent rectangle\", () => {\r\n const document = createProjectDocumentFixture();\r\n document.scenes[0]!.nodes[1]!.transform.anchorMinX = 0.5;\r\n document.scenes[0]!.nodes[1]!.transform.anchorMinY = 1;\r\n expect(validateProjectDocument(document).valid).toBe(true);\r\n\r\n document.scenes[0]!.nodes[1]!.transform.anchorMinX = 1.1;\r\n expect(validateProjectDocument(document).issues[0]!.code).toBe(\"STRUCTURAL_SCHEMA\");\r\n });\r\n\r\n it(\"requires positive sizeDelta on a point-anchor axis\", () => {\r\n const document = createProjectDocumentFixture();\r\n const transform = document.scenes[0]!.nodes[1]!.transform;\r\n transform.width = -20;\r\n expect(validateProjectDocument(document).issues[0]!.code).toBe(\"NON_POSITIVE_SIZE\");\r\n\r\n });\r\n\r\n it(\"migrates v1 point anchors to v2 anchorMin/anchorMax pairs\", () => {\r\n const document = createProjectDocumentFixture() as unknown as Record<string, unknown>;\r\n document.schemaVersion = 1;\r\n const v1Document = document as unknown as ProjectDocument;\r\n const transform = v1Document.scenes[0]!.nodes[1]!.transform as Record<string, unknown>;\r\n transform.anchorX = 0.5;\r\n transform.anchorY = 1;\r\n v1Document.scenes[0]!.nodes[1]!.layoutOverrides = { mobile: { transform: { anchorX: 0.25 } as never } };\r\n\r\n const migrated = migrateProjectDocument(document);\r\n expect(migrated.schemaVersion).toBe(CURRENT_SCHEMA_VERSION);\r\n expect(migrated.scenes[0]!.nodes[1]!.transform).toMatchObject({ anchorMinX: 0.5, anchorMaxX: 0.5, anchorMinY: 1, anchorMaxY: 1 });\r\n expect(migrated.scenes[0]!.nodes[1]!.transform).not.toHaveProperty(\"anchorX\");\r\n expect(migrated.scenes[0]!.nodes[1]!.layoutOverrides?.mobile?.transform).toEqual({ anchorMinX: 0.25, anchorMaxX: 0.25 });\r\n });\r\n\r\n it(\"accepts a button whose four states reference image assets\", () => {\r\n const document = createProjectDocumentFixture();\r\n addButtonNode(document);\r\n expect(validateProjectDocument(document)).toEqual({ valid: true, issues: [] });\r\n });\r\n\r\n it(\"reports the offending state field when a button state references a non-image asset\", () => {\r\n const document = createProjectDocumentFixture();\r\n const button = addButtonNode(document);\r\n const spineAsset = stableId(30);\r\n document.assets.push({\r\n id: spineAsset,\r\n name: \"Hero\",\r\n type: \"spine\",\r\n files: {\r\n skeleton: { name: \"hero.json\", uri: \"assets/hero.json\", mediaType: \"application/json\" },\r\n atlas: { name: \"hero.atlas\", uri: \"assets/hero.atlas\", mediaType: \"text/plain\" },\r\n textures: [{ name: \"hero.png\", uri: \"assets/hero.png\", mediaType: \"image/png\" }],\r\n },\r\n });\r\n button.states.pressedAssetId = spineAsset;\r\n\r\n const result = validateProjectDocument(document);\r\n expect(result.issues).toMatchObject([{ code: \"INCOMPATIBLE_ASSET_REFERENCE\", path: \"/scenes/0/nodes/2/states/pressedAssetId\" }]);\r\n });\r\n\r\n it(\"accepts a checkbox without hover states, and accepts one with valid hover states\", () => {\r\n const document = createProjectDocumentFixture();\r\n const checkbox = addCheckboxNode(document);\r\n expect(validateProjectDocument(document)).toEqual({ valid: true, issues: [] });\r\n\r\n checkbox.states.uncheckedHoverAssetId = checkbox.states.uncheckedAssetId;\r\n checkbox.states.checkedHoverAssetId = checkbox.states.checkedAssetId;\r\n expect(validateProjectDocument(document)).toEqual({ valid: true, issues: [] });\r\n });\r\n\r\n it(\"reports the offending state field when a checkbox hover state references a non-image asset\", () => {\r\n const document = createProjectDocumentFixture();\r\n const checkbox = addCheckboxNode(document);\r\n const spineAsset = stableId(31);\r\n document.assets.push({\r\n id: spineAsset,\r\n name: \"Hero\",\r\n type: \"spine\",\r\n files: {\r\n skeleton: { name: \"hero.json\", uri: \"assets/hero.json\", mediaType: \"application/json\" },\r\n atlas: { name: \"hero.atlas\", uri: \"assets/hero.atlas\", mediaType: \"text/plain\" },\r\n textures: [{ name: \"hero.png\", uri: \"assets/hero.png\", mediaType: \"image/png\" }],\r\n },\r\n });\r\n checkbox.states.checkedHoverAssetId = spineAsset;\r\n\r\n const result = validateProjectDocument(document);\r\n expect(result.issues).toMatchObject([{ code: \"INCOMPATIBLE_ASSET_REFERENCE\", path: \"/scenes/0/nodes/2/states/checkedHoverAssetId\" }]);\r\n });\r\n\r\n it(\"migrates a v2 document to v3 without changing its existing nodes\", () => {\r\n const document = createProjectDocumentFixture();\r\n const v2Nodes = structuredClone(document.scenes[0]!.nodes);\r\n (document as { schemaVersion: number }).schemaVersion = 2;\r\n\r\n const migrated = migrateProjectDocument(document);\r\n expect(migrated.schemaVersion).toBe(CURRENT_SCHEMA_VERSION);\r\n expect(migrated.scenes[0]!.nodes).toEqual(v2Nodes);\r\n });\r\n\r\n it(\"migrates a v3 document to v4 without changing its existing assets or nodes\", () => {\r\n const document = createProjectDocumentFixture();\r\n const v3Assets = structuredClone(document.assets);\r\n const v3Nodes = structuredClone(document.scenes[0]!.nodes);\r\n (document as { schemaVersion: number }).schemaVersion = 3;\r\n\r\n const migrated = migrateProjectDocument(document);\r\n expect(migrated.schemaVersion).toBe(CURRENT_SCHEMA_VERSION);\r\n expect(migrated.assets).toEqual(v3Assets);\r\n expect(migrated.scenes[0]!.nodes).toEqual(v3Nodes);\r\n });\r\n\r\n it(\"migrates a v4 document to v5 without changing its existing assets or nodes\", () => {\r\n const document = createProjectDocumentFixture();\r\n const v4Assets = structuredClone(document.assets);\r\n const v4Nodes = structuredClone(document.scenes[0]!.nodes);\r\n (document as { schemaVersion: number }).schemaVersion = 4;\r\n\r\n const migrated = migrateProjectDocument(document);\r\n expect(migrated.schemaVersion).toBe(CURRENT_SCHEMA_VERSION);\r\n expect(migrated.assets).toEqual(v4Assets);\r\n expect(migrated.scenes[0]!.nodes).toEqual(v4Nodes);\r\n });\r\n\r\n it(\"rejects a sound asset with an empty source uri\", () => {\r\n const result = validateFixtureMutation((document) => {\r\n document.assets.push({\r\n id: stableId(45),\r\n name: \"Click\",\r\n type: \"sound\",\r\n source: { uri: \"\", mediaType: \"audio/wav\" },\r\n });\r\n });\r\n expect(result.issues.some((issue) => issue.code === \"STRUCTURAL_SCHEMA\")).toBe(true);\r\n });\r\n\r\n it(\"allows zero or negative sizeDelta on a stretched axis\", () => {\r\n const document = createProjectDocumentFixture();\r\n const transform = document.scenes[0]!.nodes[1]!.transform;\r\n transform.anchorMinY = 0;\r\n transform.anchorMaxY = 1;\r\n transform.height = 0;\r\n expect(validateProjectDocument(document).valid).toBe(true);\r\n transform.height = -100;\r\n expect(validateProjectDocument(document).valid).toBe(true);\r\n });\r\n\r\n it(\"migrates v7 reference viewports through the v11 Unity sizeDelta contract\", () => {\r\n const document = createProjectDocumentFixture();\r\n const referenceViewports = structuredClone(document.scenes[0]!.layout.referenceViewports);\r\n const transform = document.scenes[0]!.nodes[1]!.transform;\r\n transform.anchorMinX = 0;\r\n transform.anchorMaxX = 1;\r\n transform.width = 50 - referenceViewports.desktop.width;\r\n (document as { schemaVersion: number }).schemaVersion = 7;\r\n delete (document.scenes[0]!.layout as Partial<typeof document.scenes[0][\"layout\"]>).preferredViewports;\r\n\r\n const migrated = migrateProjectDocument(document);\r\n\r\n expect(migrated.scenes[0]!.layout.preferredViewports).toEqual(referenceViewports);\r\n expect(migrated.scenes[0]!.nodes[1]!.transform.width).toBe(50 - referenceViewports.desktop.width);\r\n });\r\n\r\n it(\"removes the v8 responsive toggle while preserving its preferred-space rect\", () => {\r\n const document = createProjectDocumentFixture() as unknown as Record<string, unknown>;\r\n document.schemaVersion = 8;\r\n const typed = document as unknown as ProjectDocument;\r\n const transform = typed.scenes[0]!.nodes[1]!.transform as unknown as Record<string, unknown>;\r\n transform.anchorMinY = 0;\r\n transform.anchorMaxY = 1;\r\n transform.y = 515;\r\n transform.width = 50;\r\n transform.height = 50;\r\n transform.responsiveSize = {\r\n mode: \"scale-stretched-axes\",\r\n referenceParentWidth: 1920,\r\n referenceParentHeight: 1080,\r\n };\r\n\r\n const migrated = migrateProjectDocument(document);\r\n const migratedTransform = migrated.scenes[0]!.nodes[1]!.transform as unknown as Record<string, unknown>;\r\n\r\n expect(migratedTransform).not.toHaveProperty(\"responsiveSize\");\r\n expect(migratedTransform).toMatchObject({ y: 515, width: 50, height: 50 - 1080 });\r\n });\r\n\r\n it(\"migrates v9 point-anchor rects into the preferred coordinate space\", () => {\r\n const document = createProjectDocumentFixture();\r\n (document as { schemaVersion: number }).schemaVersion = 9;\r\n document.scenes[0]!.layout.referenceViewports.desktop = { width: 3840, height: 2160 };\r\n document.scenes[0]!.layout.preferredViewports.desktop = { width: 1920, height: 1080 };\r\n const transform = document.scenes[0]!.nodes[1]!.transform;\r\n transform.x = 100;\r\n transform.y = 200;\r\n transform.width = 50;\r\n transform.height = 80;\r\n\r\n const migrated = migrateProjectDocument(document);\r\n\r\n expect(migrated.scenes[0]!.nodes[1]!.transform).toMatchObject({\r\n x: 50,\r\n y: 100,\r\n width: 25,\r\n height: 40,\r\n });\r\n });\r\n\r\n it(\"migrates a v10 absolute stretch rect to anchoredPosition and sizeDelta\", () => {\r\n const document = createProjectDocumentFixture();\r\n (document as { schemaVersion: number }).schemaVersion = 10;\r\n const transform = document.scenes[0]!.nodes[1]!.transform;\r\n transform.anchorMinX = 0;\r\n transform.anchorMaxX = 1;\r\n transform.pivotX = 0.5;\r\n transform.x = 25;\r\n transform.width = 50;\r\n\r\n const migrated = migrateProjectDocument(document);\r\n\r\n expect(migrated.scenes[0]!.nodes[1]!.transform).toMatchObject({\r\n x: 25 - 1920 * 0.5,\r\n width: 50 - 1920,\r\n });\r\n });\r\n\r\n it(\"migrates v11 documents with editor-only disabled by default\", () => {\r\n const document = createProjectDocumentFixture();\r\n (document as { schemaVersion: number }).schemaVersion = 11;\r\n\r\n const migrated = migrateProjectDocument(document);\r\n\r\n expect(migrated.schemaVersion).toBe(CURRENT_SCHEMA_VERSION);\r\n expect(migrated.scenes[0]!.nodes[0]!.editorOnly).toBeUndefined();\r\n expect(validateProjectDocument(migrated).valid).toBe(true);\r\n });\r\n\r\n it(\"migrates v18 base presentation values without changing scene, prefab, or local nodes\", () => {\r\n const document = createProjectDocumentFixture();\r\n const prefab = document.prefabs[0]!;\r\n const definitionId = stableId(70);\r\n prefab.rootNodeIds = [definitionId];\r\n prefab.nodes = [{\r\n id: definitionId, name: \"Definition label\", type: \"text\", text: \"Definition\", parentId: null, children: [], visible: true,\r\n style: { fontFamily: \"Arial\", fontSize: 20, fontWeight: \"normal\", fontStyle: \"normal\", fill: \"#FFFFFF\", align: \"left\", verticalAlign: \"top\", wordWrap: false, breakWords: false, letterSpacing: 0 },\r\n transform: { x: 0, y: 0, width: 100, height: 30, scaleX: 1, scaleY: 1, rotation: 0 },\r\n }];\r\n const root = document.scenes[0]!.nodes[0]!;\r\n const instanceId = stableId(71);\r\n root.children.push(instanceId);\r\n document.scenes[0]!.nodes.push({\r\n id: instanceId, name: \"Instance\", type: \"prefab-instance\", prefabId: prefab.id, parentId: root.id, children: [], visible: true,\r\n transform: { x: 0, y: 0, width: 100, height: 30, scaleX: 1, scaleY: 1, rotation: 0 },\r\n locallyAddedNodes: [{\r\n id: stableId(72), name: \"Local label\", type: \"text\", text: \"Local\", parentId: definitionId, children: [], visible: true,\r\n style: { fontFamily: \"Arial\", fontSize: 18, fontWeight: \"bold\", fontStyle: \"normal\", fill: \"#FFFFFF\", align: \"center\", verticalAlign: \"middle\", wordWrap: false, breakWords: false, letterSpacing: 1 },\r\n transform: { x: 0, y: 0, width: 80, height: 20, scaleX: 1, scaleY: 1, rotation: 0 },\r\n }],\r\n });\r\n const previousOwners = structuredClone({ scenes: document.scenes, prefabs: document.prefabs });\r\n (document as { schemaVersion: number }).schemaVersion = 18;\r\n\r\n const migrated = migrateProjectDocument(document);\r\n\r\n expect(migrated.schemaVersion).toBe(CURRENT_SCHEMA_VERSION);\r\n expect({ scenes: migrated.scenes, prefabs: migrated.prefabs }).toEqual(previousOwners);\r\n expect(validateProjectDocument(migrated)).toEqual({ valid: true, issues: [] });\r\n });\r\n\r\n it(\"validates sparse text and Spine presentation overrides\", () => {\r\n const document = createProjectDocumentFixture();\r\n const root = document.scenes[0]!.nodes[0]!;\r\n const textId = stableId(73);\r\n root.children.push(textId);\r\n document.scenes[0]!.nodes.push({\r\n id: textId, name: \"Responsive label\", type: \"text\", text: \"Label\", parentId: root.id, children: [], visible: true,\r\n style: { fontFamily: \"Arial\", fontSize: 24, fontWeight: \"normal\", fontStyle: \"normal\", fill: \"#FFFFFF\", align: \"left\", verticalAlign: \"top\", wordWrap: false, breakWords: false, letterSpacing: 0 },\r\n textStyleOverrides: { mobile: { fontSize: 36, align: \"center\" } },\r\n transform: { x: 0, y: 0, width: 200, height: 60, scaleX: 1, scaleY: 1, rotation: 0 },\r\n });\r\n const spineAssetId = stableId(74);\r\n document.assets.push({ id: spineAssetId, name: \"Hero\", type: \"spine\", files: { skeleton: { name: \"hero.json\", uri: \"assets/hero.json\", mediaType: \"application/json\" }, atlas: { name: \"hero.atlas\", uri: \"assets/hero.atlas\", mediaType: \"text/plain\" }, textures: [{ name: \"hero.png\", uri: \"assets/hero.png\", mediaType: \"image/png\" }] } });\r\n const spineId = stableId(75);\r\n root.children.push(spineId);\r\n document.scenes[0]!.nodes.push({\r\n id: spineId, name: \"Hero\", type: \"spine\", assetId: spineAssetId, animation: \"idle\", autoplay: true, loop: true, animationSpeed: 1,\r\n spineOverrides: { mobile: { animation: \"portrait-idle\", loop: false, animationSpeed: 0.8 } },\r\n parentId: root.id, children: [], visible: true, transform: { x: 0, y: 0, width: 200, height: 200, scaleX: 1, scaleY: 1, rotation: 0 },\r\n });\r\n\r\n expect(validateProjectDocument(document)).toEqual({ valid: true, issues: [] });\r\n });\r\n\r\n it(\"accepts persistent editor lock metadata without changing runtime node fields\", () => {\r\n const document = createProjectDocumentFixture();\r\n document.scenes[0]!.nodes[0]!.locked = true;\r\n\r\n expect(validateProjectDocument(document).valid).toBe(true);\r\n expect(migrateProjectDocument(document).scenes[0]!.nodes[0]!.locked).toBe(true);\r\n });\r\n\r\n it(\"rejects a button press sound that references an image asset\", () => {\r\n const document = createProjectDocumentFixture();\r\n const button = addButtonNode(document);\r\n button.sounds = { pressAssetId: button.states.normalAssetId };\r\n\r\n const result = validateProjectDocument(document);\r\n expect(result.issues).toMatchObject([{ code: \"INCOMPATIBLE_ASSET_REFERENCE\", path: \"/scenes/0/nodes/2/sounds/pressAssetId\" }]);\r\n });\r\n\r\n it(\"accepts an image node whose assetId is an atlas frame id\", () => {\r\n const document = createProjectDocumentFixture();\r\n addAtlasAssetWithFrame(document);\r\n expect(validateProjectDocument(document)).toEqual({ valid: true, issues: [] });\r\n });\r\n\r\n it(\"rejects an atlas asset with an incomplete files object\", () => {\r\n const result = validateFixtureMutation((document) => {\r\n document.assets.push({\r\n id: stableId(42),\r\n name: \"Broken atlas\",\r\n type: \"atlas\",\r\n files: { json: { name: \"atlas.json\", uri: \"assets/atlas.json\", mediaType: \"application/json\" } },\r\n frames: { \"icon.png\": stableId(43) },\r\n } as never);\r\n });\r\n expect(result.issues.some((issue) => issue.code === \"STRUCTURAL_SCHEMA\")).toBe(true);\r\n });\r\n\r\n it(\"rejects an atlas asset without a frames map\", () => {\r\n const result = validateFixtureMutation((document) => {\r\n document.assets.push({\r\n id: stableId(44),\r\n name: \"Broken 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 } as never);\r\n });\r\n expect(result.issues.some((issue) => issue.code === \"STRUCTURAL_SCHEMA\")).toBe(true);\r\n });\r\n\r\n it.each([\"desktop\", \"mobile\"])(\"rejects missing %s viewport\", (profile) => {\r\n const result = validateFixtureMutation((document) => {\r\n delete (document.scenes[0]!.layout.referenceViewports as Record<string, unknown>)[profile];\r\n });\r\n expect(result.issues[0]!.code).toBe(\"STRUCTURAL_SCHEMA\");\r\n });\r\n\r\n it(\"reports duplicate IDs\", () => {\r\n const result = validateFixtureMutation((document) => {\r\n document.scenes[0]!.nodes[1]!.id = document.scenes[0]!.nodes[0]!.id;\r\n });\r\n expect(result.issues.some((issue) => issue.code === \"DUPLICATE_ID\")).toBe(true);\r\n });\r\n\r\n it(\"reports missing child and asset references\", () => {\r\n const result = validateFixtureMutation((document) => {\r\n document.scenes[0]!.nodes[0]!.children = [stableId(99)];\r\n (document.scenes[0]!.nodes[1] as { assetId: string }).assetId = stableId(98);\r\n });\r\n expect(result.issues.map((issue) => issue.code)).toEqual(\r\n expect.arrayContaining([\"MISSING_CHILD_REFERENCE\", \"MISSING_ASSET_REFERENCE\"]),\r\n );\r\n });\r\n\r\n it(\"reports missing prefab references\", () => {\r\n const result = validateFixtureMutation((document) => {\r\n document.scenes[0]!.nodes[1] = {\r\n ...document.scenes[0]!.nodes[1]!,\r\n type: \"prefab-instance\",\r\n prefabId: stableId(99),\r\n };\r\n });\r\n expect(result.issues.some((issue) => issue.code === \"MISSING_PREFAB_REFERENCE\")).toBe(true);\r\n });\r\n\r\n it(\"reports inconsistent parent and children\", () => {\r\n const result = validateFixtureMutation((document) => {\r\n document.scenes[0]!.nodes[1]!.parentId = null;\r\n });\r\n expect(result.issues.some((issue) => issue.code === \"HIERARCHY_PARENT_MISMATCH\")).toBe(true);\r\n });\r\n\r\n it(\"reports cycles\", () => {\r\n const result = validateFixtureMutation((document) => {\r\n const nodes = document.scenes[0]!.nodes;\r\n nodes[0]!.parentId = nodes[1]!.id;\r\n nodes[1]!.children = [nodes[0]!.id];\r\n });\r\n expect(result.issues.some((issue) => issue.code === \"HIERARCHY_CYCLE\")).toBe(true);\r\n });\r\n\r\n it(\"reports duplicate binding keys\", () => {\r\n const result = validateFixtureMutation((document) => {\r\n document.scenes[0]!.nodes[0]!.bindingKey = \"target\";\r\n document.scenes[0]!.nodes[1]!.bindingKey = \"target\";\r\n });\r\n expect(result.issues.some((issue) => issue.code === \"DUPLICATE_BINDING_KEY\")).toBe(true);\r\n });\r\n\r\n it(\"rejects an incomplete spine asset\", () => {\r\n const result = validateFixtureMutation((document) => {\r\n document.assets[0] = {\r\n id: stableId(5),\r\n name: \"Hero\",\r\n type: \"spine\",\r\n files: {\r\n skeleton: { name: \"hero.json\", uri: \"hero.json\", mediaType: \"application/json\" },\r\n textures: [{ name: \"hero.png\", uri: \"hero.png\", mediaType: \"image/png\" }],\r\n },\r\n } as never;\r\n });\r\n expect(result.issues.some((issue) => issue.code === \"STRUCTURAL_SCHEMA\")).toBe(true);\r\n });\r\n\r\n it(\"rejects unknown profile keys and schema versions\", () => {\r\n const result = validateFixtureMutation((document) => {\r\n document.scenes[0]!.nodes[0]!.layoutOverrides = { tablet: {} } as never;\r\n (document as { schemaVersion: number }).schemaVersion = 0;\r\n });\r\n expect(result.issues.some((issue) => issue.code === \"STRUCTURAL_SCHEMA\")).toBe(true);\r\n });\r\n\r\n it(\"clones and validates the current version without mutating input\", () => {\r\n const input = createProjectDocumentFixture();\r\n const output = migrateProjectDocument(input);\r\n expect(output).toEqual(input);\r\n expect(output).not.toBe(input);\r\n output.project.name = \"Changed\";\r\n expect(input.project.name).toBe(\"Project\");\r\n });\r\n\r\n it(\"rejects non-finite numbers\", () => {\r\n const result = validateFixtureMutation((document) => {\r\n document.scenes[0]!.nodes[0]!.transform.x = Number.NaN;\r\n });\r\n expect(result.issues.some((issue) => issue.code === \"NON_FINITE_NUMBER\")).toBe(true);\r\n });\r\n\r\n it(\"serializes deterministically without mutating the document\", () => {\r\n const input = createProjectDocumentFixture();\r\n const before = structuredClone(input);\r\n const reordered = Object.fromEntries(Object.entries(input).reverse()) as ProjectDocument;\r\n\r\n expect(serializeProjectDocument(input)).toBe(serializeProjectDocument(reordered));\r\n expect(serializeProjectDocument(input).endsWith(\"\\n\")).toBe(true);\r\n expect(input).toEqual(before);\r\n });\r\n});\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"localization.js","sourceRoot":"","sources":["../src/localization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localization.js","sourceRoot":"","sources":["../src/localization.ts"],"names":[],"mappings":"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","sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\r\nimport type { ProjectDocument, UINode, ValidationIssue } from \"./index.js\";\r\nimport { materializedPrefabNodeId } from \"./prefabs.js\";\r\n\r\n/**\r\n * Единственная реализация локализации документа: контракт каталога, канонизация locale ID,\r\n * fallback-цепочка, интерполяция параметров, сбор ссылок `Text.textKey`, покрытие и диагностики.\r\n *\r\n * Runtime, экспорт, редактор и демо обязаны переиспользовать именно её: дублирование fallback- или\r\n * interpolation-логики в другом слое немедленно расходится по поведению.\r\n */\r\n\r\nconst LocaleIdSchema = Type.String({ minLength: 1 });\r\nexport const LocalizationLocaleSchema = Type.Object({ id: LocaleIdSchema, label: Type.String({ minLength: 1 }) });\r\nexport type LocalizationLocale = Static<typeof LocalizationLocaleSchema>;\r\n/**\r\n * `entries[key][localeId]` — плоская строка перевода. Отсутствующий перевод — это отсутствие\r\n * свойства локали, а не пустая строка: `\"\"` является валидным заполненным переводом и обрывает\r\n * fallback, поэтому резолвер нигде не проверяет значения через truthiness.\r\n */\r\nexport const LocalizationSchema = Type.Object({\r\n baseLocale: LocaleIdSchema,\r\n locales: Type.Array(LocalizationLocaleSchema),\r\n entries: Type.Record(Type.String({ minLength: 1 }), Type.Record(Type.String({ minLength: 1 }), Type.String())),\r\n});\r\nexport type LocalizationCatalog = Static<typeof LocalizationSchema>;\r\n\r\nexport const DEFAULT_LOCALE_ID = \"en\";\r\n/** Каталог, который получает документ v19 при миграции и любой новый проект. */\r\nexport function createDefaultLocalization(): LocalizationCatalog {\r\n return { baseLocale: DEFAULT_LOCALE_ID, locales: [{ id: DEFAULT_LOCALE_ID, label: \"English\" }], entries: {} };\r\n}\r\n\r\n/**\r\n * Каноническая BCP-47 форма: `en`, `en-US`, `pt-BR`, `zh-Hant`, `zh-Hant-TW`.\r\n *\r\n * Грамматика намеренно узкая — только буквы, три цифры региона и дефис. Поэтому канонический ID\r\n * автоматически является безопасным сегментом пути `locales/<locale>.json`: в нём не может быть\r\n * ни `/`, ни `\\`, ни `.`, ни `..`.\r\n */\r\nexport function canonicalizeLocaleId(input: string): string | undefined {\r\n const parts = input.trim().split(\"-\");\r\n const language = parts[0];\r\n if (language === undefined || !/^[A-Za-z]{2,3}$/.test(language)) return undefined;\r\n const segments = [language.toLowerCase()];\r\n let index = 1;\r\n const script = parts[index];\r\n if (script !== undefined && /^[A-Za-z]{4}$/.test(script)) { segments.push(`${script[0]!.toUpperCase()}${script.slice(1).toLowerCase()}`); index += 1; }\r\n const region = parts[index];\r\n if (region !== undefined) {\r\n if (/^[A-Za-z]{2}$/.test(region)) segments.push(region.toUpperCase());\r\n else if (/^[0-9]{3}$/.test(region)) segments.push(region);\r\n else return undefined;\r\n index += 1;\r\n }\r\n return index === parts.length ? segments.join(\"-\") : undefined;\r\n}\r\n\r\nexport function isCanonicalLocaleId(id: string): boolean { return canonicalizeLocaleId(id) === id; }\r\n\r\n/**\r\n * Справочник популярных локалей для UI выбора языка: готовый ID в канонической форме плюс\r\n * английский display label. Он живёт рядом с `canonicalizeLocaleId`, потому что это часть\r\n * локализационной модели, а не украшение панели: каждая запись обязана удовлетворять\r\n * `canonicalizeLocaleId(id) === id`, иначе выбор из списка создал бы невалидный документ.\r\n *\r\n * Список намеренно неполон — он покрывает частые случаи и снимает ручной ввод, а редкая локаль\r\n * по-прежнему добавляется вводом канонического BCP-47 идентификатора вручную.\r\n */\r\nexport const COMMON_LOCALES: readonly { id: string; label: string }[] = [\r\n { id: \"en\", label: \"English\" },\r\n { id: \"en-US\", label: \"English (United States)\" },\r\n { id: \"en-GB\", label: \"English (United Kingdom)\" },\r\n { id: \"ru\", label: \"Russian\" },\r\n { id: \"ru-RU\", label: \"Russian (Russia)\" },\r\n { id: \"uk\", label: \"Ukrainian\" },\r\n { id: \"de\", label: \"German\" },\r\n { id: \"fr\", label: \"French\" },\r\n { id: \"fr-CA\", label: \"French (Canada)\" },\r\n { id: \"es\", label: \"Spanish\" },\r\n { id: \"es-ES\", label: \"Spanish (Spain)\" },\r\n { id: \"es-419\", label: \"Spanish (Latin America)\" },\r\n { id: \"pt-BR\", label: \"Portuguese (Brazil)\" },\r\n { id: \"pt-PT\", label: \"Portuguese (Portugal)\" },\r\n { id: \"it\", label: \"Italian\" },\r\n { id: \"pl\", label: \"Polish\" },\r\n { id: \"tr\", label: \"Turkish\" },\r\n { id: \"nl\", label: \"Dutch\" },\r\n { id: \"sv\", label: \"Swedish\" },\r\n { id: \"da\", label: \"Danish\" },\r\n { id: \"nb\", label: \"Norwegian Bokmal\" },\r\n { id: \"fi\", label: \"Finnish\" },\r\n { id: \"cs\", label: \"Czech\" },\r\n { id: \"sk\", label: \"Slovak\" },\r\n { id: \"hu\", label: \"Hungarian\" },\r\n { id: \"ro\", label: \"Romanian\" },\r\n { id: \"bg\", label: \"Bulgarian\" },\r\n { id: \"el\", label: \"Greek\" },\r\n { id: \"sr\", label: \"Serbian\" },\r\n { id: \"hr\", label: \"Croatian\" },\r\n { id: \"ar\", label: \"Arabic\" },\r\n { id: \"he\", label: \"Hebrew\" },\r\n { id: \"fa\", label: \"Persian\" },\r\n { id: \"hi\", label: \"Hindi\" },\r\n { id: \"th\", label: \"Thai\" },\r\n { id: \"vi\", label: \"Vietnamese\" },\r\n { id: \"id\", label: \"Indonesian\" },\r\n { id: \"ms\", label: \"Malay\" },\r\n { id: \"tl\", label: \"Filipino\" },\r\n { id: \"ja\", label: \"Japanese\" },\r\n { id: \"ko\", label: \"Korean\" },\r\n { id: \"zh-Hans\", label: \"Chinese (Simplified)\" },\r\n { id: \"zh-Hant\", label: \"Chinese (Traditional)\" },\r\n];\r\n\r\n/**\r\n * Порядок локалей для любого UI: base locale первой, остальные сохраняют порядок объявления.\r\n * Правило одно на весь редактор, поэтому и живёт оно здесь, а не копией в каждой панели.\r\n */\r\nexport function orderLocalesForDisplay(catalog: LocalizationCatalog): LocalizationLocale[] {\r\n return [\r\n ...catalog.locales.filter((locale) => locale.id === catalog.baseLocale),\r\n ...catalog.locales.filter((locale) => locale.id !== catalog.baseLocale),\r\n ];\r\n}\r\n\r\nexport const LOCALIZATION_DIRECTORY = \"locales\";\r\nexport const LOCALIZATION_COVERAGE_FILE = `${LOCALIZATION_DIRECTORY}/coverage.json`;\r\n/** Путь словаря внутри пакета. Безопасность сегмента гарантирует канонический ID. */\r\nexport function localeFilePath(localeId: string): string { return `${LOCALIZATION_DIRECTORY}/${localeId}.json`; }\r\n\r\nexport type LocalizationParams = Readonly<Record<string, string | number>>;\r\nconst PARAM_PATTERN = /\\{([A-Za-z0-9_.-]+)\\}/g;\r\n\r\n/** Имена runtime-параметров `{name}` внутри значения перевода, детерминированно отсортированные. */\r\nexport function collectLocalizationParams(value: string): string[] {\r\n return [...new Set([...value.matchAll(PARAM_PATTERN)].map((match) => match[1]!))].sort();\r\n}\r\n\r\n/** Неизвестный параметр остаётся видимым в фигурных скобках — это признак незаполненного значения. */\r\nexport function interpolateLocalizedText(value: string, params?: LocalizationParams): string {\r\n if (params === undefined) return value;\r\n return value.replace(PARAM_PATTERN, (match, name: string) => (Object.hasOwn(params, name) ? String(params[name]) : match));\r\n}\r\n\r\nexport type LocalizationTranslateContext = { key: string; locale: string; baseLocale: string; params?: LocalizationParams };\r\n/** Внешний переводчик потребителя. `undefined` означает «нет мнения» и не обрывает fallback. */\r\nexport type TranslateFn = (key: string, context: LocalizationTranslateContext) => string | undefined;\r\n\r\nexport type ResolveLocalizedTextInput = {\r\n /** Авторская строка `Text.text`: ручной режим и последний содержательный fallback. */\r\n text: string;\r\n textKey?: string;\r\n catalog?: LocalizationCatalog;\r\n locale?: string;\r\n translate?: TranslateFn;\r\n params?: LocalizationParams;\r\n};\r\n\r\n/** Откуда взялась итоговая строка. `literal` — у ноды нет ключа и локализация не участвовала вообще. */\r\nexport type LocalizedTextSource = \"literal\" | \"translate\" | \"locale\" | \"baseLocale\" | \"text\" | \"key\";\r\nexport type LocalizedTextResolution = { value: string; source: LocalizedTextSource };\r\n\r\n/**\r\n * Единственная fallback-цепочка: внешний `translate` → выбранная локаль → базовая локаль →\r\n * `Text.text` → сам ключ. Нода без `textKey` не обращается к локализации вообще, поэтому документ\r\n * без ключей выглядит ровно как до появления каталога.\r\n *\r\n * Возвращает и значение, и источник: редактору нужно показать, почему на макете именно эта строка,\r\n * и он обязан читать это из той же реализации, а не выводить цепочку заново.\r\n */\r\nexport function describeLocalizedText(input: ResolveLocalizedTextInput): LocalizedTextResolution {\r\n const key = input.textKey?.trim();\r\n if (key === undefined || key === \"\") return { value: input.text, source: \"literal\" };\r\n const baseLocale = input.catalog?.baseLocale ?? DEFAULT_LOCALE_ID;\r\n const locale = input.locale ?? baseLocale;\r\n const entry = input.catalog?.entries[key];\r\n const external = input.translate?.(key, { key, locale, baseLocale, params: input.params });\r\n const resolution: LocalizedTextResolution = external !== undefined\r\n ? { value: external, source: \"translate\" }\r\n : entry !== undefined && Object.hasOwn(entry, locale) ? { value: entry[locale]!, source: \"locale\" }\r\n : entry !== undefined && Object.hasOwn(entry, baseLocale) ? { value: entry[baseLocale]!, source: \"baseLocale\" }\r\n : input.text.length > 0 ? { value: input.text, source: \"text\" } : { value: key, source: \"key\" };\r\n return { value: interpolateLocalizedText(resolution.value, input.params), source: resolution.source };\r\n}\r\n\r\nexport function resolveLocalizedText(input: ResolveLocalizedTextInput): string {\r\n return describeLocalizedText(input).value;\r\n}\r\n\r\n/** Владелец иерархии, в которой найдена ссылка: сцена или определение пресета. */\r\nexport type LocalizationReferenceOwner = { kind: \"scene\"; id: string } | { kind: \"prefab\"; id: string };\r\nexport type LocalizationKeyReference = {\r\n key: string;\r\n path: string;\r\n owner: LocalizationReferenceOwner;\r\n /**\r\n * Адрес узла в терминах редактора: собственный id персистентного/локального узла либо\r\n * materialized-адрес `instanceId::prefab-node::nodePath` для property override.\r\n */\r\n nodeId: string;\r\n};\r\n/** Ссылка вместе с записью значения: одна и та же реализация обхода читает и переименовывает ключи. */\r\nexport type LocalizationKeyReferenceSite = LocalizationKeyReference & { setKey(next: string): void };\r\n\r\n/**\r\n * Все ссылки `Text.textKey` документа: сцены, определения пресетов, локально добавленные узлы любой\r\n * вложенности и persisted property overrides. Унаследованные узлы инстанса ключ не «размножают»:\r\n * их источником является узел определения, уже посчитанный обходом `document.prefabs`.\r\n *\r\n * Обход единственный: `collectTextKeyReferences` только собирает результат, а rename каталога\r\n * переписывает ключи через `setKey`, поэтому «где живут ссылки» описано ровно в одном месте.\r\n */\r\nexport function forEachTextKeyReference(document: ProjectDocument, visit: (site: LocalizationKeyReferenceSite) => void): void {\r\n const visitNode = (node: UINode, path: string, owner: LocalizationReferenceOwner): void => {\r\n if (node.type === \"text\" && node.textKey !== undefined) {\r\n visit({ key: node.textKey, path: `${path}/textKey`, owner, nodeId: node.id, setKey: (next) => { node.textKey = next; } });\r\n }\r\n if (node.type !== \"prefab-instance\") return;\r\n (node.propertyOverrides ?? []).forEach((override, index) => {\r\n const value = override.patch.textKey;\r\n if (typeof value !== \"string\") return;\r\n visit({\r\n key: value,\r\n path: `${path}/propertyOverrides/${index}/patch/textKey`,\r\n owner,\r\n nodeId: materializedPrefabNodeId(node.id, override.nodeId),\r\n setKey: (next) => { override.patch.textKey = next; },\r\n });\r\n });\r\n (node.locallyAddedNodes ?? []).forEach((local, index) => visitNode(local, `${path}/locallyAddedNodes/${index}`, owner));\r\n };\r\n document.scenes.forEach((scene, sceneIndex) => scene.nodes.forEach((node, nodeIndex) => visitNode(node, `/scenes/${sceneIndex}/nodes/${nodeIndex}`, { kind: \"scene\", id: scene.id })));\r\n document.prefabs.forEach((prefab, prefabIndex) => prefab.nodes.forEach((node, nodeIndex) => visitNode(node, `/prefabs/${prefabIndex}/nodes/${nodeIndex}`, { kind: \"prefab\", id: prefab.id })));\r\n}\r\n\r\nexport function collectTextKeyReferences(document: ProjectDocument): LocalizationKeyReference[] {\r\n const references: LocalizationKeyReference[] = [];\r\n forEachTextKeyReference(document, ({ key, path, owner, nodeId }) => references.push({ key, path, owner, nodeId }));\r\n return references;\r\n}\r\n\r\nexport type LocalizationLocaleCoverage = { id: string; label: string; isBase: boolean; translated: number; missingKeys: string[] };\r\nexport type LocalizationCoverage = {\r\n baseLocale: string;\r\n /** Все ключи каталога — покрытие считается по каталогу, а не по текущему usage. */\r\n keys: string[];\r\n keyCount: number;\r\n locales: LocalizationLocaleCoverage[];\r\n usedKeys: string[];\r\n unusedKeys: string[];\r\n /** Ключи, на которые ссылается `Text`, но которых нет в каталоге. */\r\n missingKeys: string[];\r\n};\r\n\r\n/** Детерминированное покрытие: и ключи, и локали, и списки отсортированы. */\r\nexport function computeLocalizationCoverage(document: ProjectDocument): LocalizationCoverage {\r\n const catalog = document.localization;\r\n const keys = Object.keys(catalog.entries).sort();\r\n const referenced = new Set(collectTextKeyReferences(document).map((reference) => reference.key.trim()).filter((key) => key !== \"\"));\r\n const usedKeys = keys.filter((key) => referenced.has(key));\r\n return {\r\n baseLocale: catalog.baseLocale,\r\n keys,\r\n keyCount: keys.length,\r\n locales: catalog.locales.map((locale) => {\r\n const missingKeys = keys.filter((key) => !Object.hasOwn(catalog.entries[key]!, locale.id));\r\n return { id: locale.id, label: locale.label, isBase: locale.id === catalog.baseLocale, translated: keys.length - missingKeys.length, missingKeys };\r\n }),\r\n usedKeys,\r\n unusedKeys: keys.filter((key) => !referenced.has(key)),\r\n missingKeys: [...referenced].filter((key) => !Object.hasOwn(catalog.entries, key)).sort(),\r\n };\r\n}\r\n\r\nconst issue = (code: string, path: string, message: string, severity: ValidationIssue[\"severity\"]): ValidationIssue => ({ code, path, message, severity });\r\n\r\n/**\r\n * Structural/semantic ошибки каталога: они делают документ невалидным.\r\n *\r\n * Здесь только то, что нельзя доставить ни при каком заполнении переводов: неканоничный или\r\n * дублирующийся locale ID, неизвестная base locale и пустая ссылка на ключ.\r\n */\r\nexport function collectLocalizationErrors(document: ProjectDocument): ValidationIssue[] {\r\n const issues: ValidationIssue[] = [];\r\n const catalog = document.localization;\r\n const seen = new Set<string>();\r\n catalog.locales.forEach((locale, index) => {\r\n const path = `/localization/locales/${index}/id`;\r\n if (!isCanonicalLocaleId(locale.id)) issues.push(issue(\"INVALID_LOCALE_ID\", path, `Locale '${locale.id}' is not a canonical BCP-47 identifier.`, \"error\"));\r\n if (seen.has(locale.id)) issues.push(issue(\"DUPLICATE_LOCALE\", path, `Locale '${locale.id}' is declared more than once.`, \"error\"));\r\n seen.add(locale.id);\r\n });\r\n if (!seen.has(catalog.baseLocale)) issues.push(issue(\"UNKNOWN_BASE_LOCALE\", \"/localization/baseLocale\", `Base locale '${catalog.baseLocale}' is not declared.`, \"error\"));\r\n for (const key of Object.keys(catalog.entries)) {\r\n if (key.trim() === \"\") issues.push(issue(\"EMPTY_LOCALIZATION_KEY\", `/localization/entries/${key}`, \"A localization key must not be blank.\", \"error\"));\r\n }\r\n for (const reference of collectTextKeyReferences(document)) {\r\n if (reference.key.trim() === \"\") issues.push(issue(\"EMPTY_LOCALIZATION_KEY\", reference.path, \"A textKey reference must not be blank.\", \"error\"));\r\n }\r\n return issues;\r\n}\r\n\r\n/**\r\n * Authoring diagnostics: каталог заполняется постепенно, поэтому всё это — warnings, и документ с\r\n * ними остаётся валидным и сохраняемым.\r\n */\r\nexport function collectLocalizationWarnings(document: ProjectDocument): ValidationIssue[] {\r\n const issues: ValidationIssue[] = [];\r\n const catalog = document.localization;\r\n const coverage = computeLocalizationCoverage(document);\r\n const declared = new Set(catalog.locales.map((locale) => locale.id));\r\n for (const reference of collectTextKeyReferences(document)) {\r\n const key = reference.key.trim();\r\n if (key !== \"\" && !Object.hasOwn(catalog.entries, key)) issues.push(issue(\"MISSING_LOCALIZATION_ENTRY\", reference.path, `Localization key '${key}' is not in the catalog.`, \"warning\"));\r\n }\r\n for (const key of coverage.keys) {\r\n const entry = catalog.entries[key]!;\r\n if (!Object.hasOwn(entry, catalog.baseLocale)) issues.push(issue(\"MISSING_BASE_TRANSLATION\", `/localization/entries/${key}`, `Key '${key}' has no '${catalog.baseLocale}' translation.`, \"warning\"));\r\n const baseParams = Object.hasOwn(entry, catalog.baseLocale) ? collectLocalizationParams(entry[catalog.baseLocale]!).join(\",\") : undefined;\r\n for (const localeId of Object.keys(entry).sort()) {\r\n if (!declared.has(localeId)) { issues.push(issue(\"UNKNOWN_TRANSLATION_LOCALE\", `/localization/entries/${key}/${localeId}`, `Locale '${localeId}' is not declared and will not be exported.`, \"warning\")); continue; }\r\n if (baseParams === undefined || localeId === catalog.baseLocale) continue;\r\n if (collectLocalizationParams(entry[localeId]!).join(\",\") !== baseParams) issues.push(issue(\"PARAM_MISMATCH\", `/localization/entries/${key}/${localeId}`, `Translation '${key}' for '${localeId}' uses different runtime parameters than the base locale.`, \"warning\"));\r\n }\r\n }\r\n for (const locale of coverage.locales) {\r\n if (locale.isBase || locale.missingKeys.length === 0) continue;\r\n issues.push(issue(\"INCOMPLETE_LOCALE\", `/localization/locales/${catalog.locales.findIndex((candidate) => candidate.id === locale.id)}`, `Locale '${locale.id}' is missing ${locale.missingKeys.length} translation(s).`, \"warning\"));\r\n }\r\n for (const key of coverage.unusedKeys) {\r\n issues.push(issue(\"UNUSED_LOCALIZATION_KEY\", `/localization/entries/${key}`, `Key '${key}' is not referenced by any delivered Text node.`, \"warning\"));\r\n }\r\n return issues;\r\n}\r\n\r\nexport function collectLocalizationIssues(document: ProjectDocument): ValidationIssue[] {\r\n return [...collectLocalizationErrors(document), ...collectLocalizationWarnings(document)];\r\n}\r\n\r\n/**\r\n * Строгая export-проверка: то же состояние, что в авторинге является warning, для пакета является\r\n * блокирующей ошибкой, если ключ каталога вообще нельзя доставить — у него нет base translation.\r\n * Неполные secondary locales и unused keys экспорт не блокируют и живут в coverage-отчёте.\r\n */\r\nexport function collectLocalizationExportErrors(document: ProjectDocument): ValidationIssue[] {\r\n const catalog = document.localization;\r\n const issues = collectLocalizationErrors(document);\r\n for (const key of Object.keys(catalog.entries).sort()) {\r\n if (!Object.hasOwn(catalog.entries[key]!, catalog.baseLocale)) issues.push(issue(\"MISSING_BASE_TRANSLATION\", `/localization/entries/${key}`, `Key '${key}' cannot be delivered: it has no '${catalog.baseLocale}' translation.`, \"error\"));\r\n }\r\n return issues;\r\n}\r\n\r\n/**\r\n * Словарь одной локали: плоский `Record<string, string>` без metadata wrapper, готовый любому\r\n * внешнему i18n. Ключ попадает в файл только если у него есть значение именно этой локали;\r\n * отсутствующий перевод не превращается в `\"\"`, а остаётся отмеченным в coverage.\r\n */\r\nexport function buildLocaleDictionary(catalog: LocalizationCatalog, localeId: string): Record<string, string> {\r\n const dictionary: Record<string, string> = {};\r\n for (const key of Object.keys(catalog.entries).sort()) {\r\n const entry = catalog.entries[key]!;\r\n if (Object.hasOwn(entry, localeId)) dictionary[key] = entry[localeId]!;\r\n }\r\n return dictionary;\r\n}\r\n\r\nexport function buildLocaleDictionaries(catalog: LocalizationCatalog): Record<string, Record<string, string>> {\r\n return Object.fromEntries(catalog.locales.map((locale) => [locale.id, buildLocaleDictionary(catalog, locale.id)]));\r\n}\r\n\r\nexport type LocalizationCoverageReport = LocalizationCoverage & { warnings: ValidationIssue[] };\r\n/** Отчёт покрытия пакета: он дополняет словари, а не заменяет их. */\r\nexport function buildLocalizationCoverageReport(document: ProjectDocument): LocalizationCoverageReport {\r\n return { ...computeLocalizationCoverage(document), warnings: collectLocalizationWarnings(document) };\r\n}\r\n\r\n/**\r\n * Localization-часть пакета: по одному плоскому словарю на каждую объявленную локаль плюс отчёт\r\n * покрытия. Каталог экспортируется целиком: unused-ключ может быть контрактом игрового кода, а\r\n * usage текущей иерархии не доказывает, что он не нужен.\r\n *\r\n * Раскладка описана здесь и только здесь: и ZIP-экспорт редактора, и фикстура демо обязаны звать\r\n * эту функцию, иначе демо проверяло бы не тот контракт. Документ ожидается уже подготовленным к\r\n * доставке (без `editorOnly` поддеревьев), потому что coverage говорит о доставляемых `Text`.\r\n */\r\nexport function collectPackageLocaleEntries(document: ProjectDocument): Record<string, string> {\r\n const entries: Record<string, string> = {};\r\n for (const locale of document.localization.locales) {\r\n entries[localeFilePath(locale.id)] = `${JSON.stringify(buildLocaleDictionary(document.localization, locale.id), null, 2)}\\n`;\r\n }\r\n entries[LOCALIZATION_COVERAGE_FILE] = `${JSON.stringify(buildLocalizationCoverageReport(document), null, 2)}\\n`;\r\n return entries;\r\n}\r\n\r\n/**\r\n * Блокировка экспорта каталогом. Сообщение формируется ровно здесь, чтобы UI показывал ту же\r\n * диагностику, что попадает в консоль, а не собственную формулировку.\r\n */\r\nexport class LocalizationExportError extends Error {\r\n readonly issues: ValidationIssue[];\r\n\r\n constructor(issues: ValidationIssue[]) {\r\n super(`The localization catalog cannot be packaged:\\n${issues.map((item) => `• ${item.message} (${item.code} at ${item.path})`).join(\"\\n\")}`);\r\n this.name = \"LocalizationExportError\";\r\n this.issues = issues;\r\n }\r\n}\r\n\r\n/**\r\n * Строгий pre-export gate. То, что в авторинге остаётся warning, здесь блокирует пакет, если ключ\r\n * невозможно доставить вообще: у него нет перевода базовой локали. Неполные secondary locales и\r\n * unused keys экспорт не останавливают и попадают только в `locales/coverage.json`.\r\n */\r\nexport function assertExportableLocalization(document: ProjectDocument): void {\r\n const errors = collectLocalizationExportErrors(document);\r\n if (errors.length > 0) throw new LocalizationExportError(errors);\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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","sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\r\nimport Ajv from \"ajv\";\r\nimport addFormats from \"ajv-formats\";\r\n\r\n/**\r\n * `manifest.json`: the project folder's own identity, separate from `project.json`'s `ProjectDocument`.\r\n * No save timestamp is stored on purpose (git-diff-friendly: `manifest.json` only changes when the\r\n * project identity, name, or editor version actually changes, not on every save).\r\n */\r\nexport const PROJECT_MANIFEST_FORMAT_VERSION = 1 as const;\r\n\r\nconst ProjectManifestSchema = Type.Object({\r\n formatVersion: Type.Literal(PROJECT_MANIFEST_FORMAT_VERSION),\r\n projectId: Type.String({ format: \"uuid\" }),\r\n name: Type.String({ minLength: 1 }),\r\n createdAt: Type.String({ format: \"date-time\" }),\r\n editorVersion: Type.String({ minLength: 1 }),\r\n});\r\nexport type ProjectManifest = Static<typeof ProjectManifestSchema>;\r\n\r\nexport type ProjectManifestErrorCode = \"INVALID_MANIFEST_SHAPE\" | \"UNSUPPORTED_MANIFEST_VERSION\";\r\n\r\nexport class ProjectManifestError extends Error {\r\n constructor(readonly code: ProjectManifestErrorCode, message: string) {\r\n super(message);\r\n this.name = \"ProjectManifestError\";\r\n }\r\n}\r\n\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 manifestAjv = new AjvConstructor({ allErrors: true, strict: false });\r\naddAjvFormats(manifestAjv);\r\nconst structuralManifest = manifestAjv.compile(ProjectManifestSchema);\r\n\r\n/** Parses/validates an already-`JSON.parse`d manifest value (mirrors `assertProjectDocument`'s `unknown`-in contract). */\r\nexport function parseProjectManifest(input: unknown): ProjectManifest {\r\n if (typeof input !== \"object\" || input === null) throw new ProjectManifestError(\"INVALID_MANIFEST_SHAPE\", \"A project manifest must be an object.\");\r\n const formatVersion = (input as { formatVersion?: unknown }).formatVersion;\r\n if (typeof formatVersion === \"number\" && formatVersion > PROJECT_MANIFEST_FORMAT_VERSION) {\r\n throw new ProjectManifestError(\"UNSUPPORTED_MANIFEST_VERSION\", `Unsupported manifest formatVersion '${formatVersion}'. This editor supports up to ${PROJECT_MANIFEST_FORMAT_VERSION}.`);\r\n }\r\n if (!structuralManifest(input)) {\r\n const detail = (structuralManifest.errors ?? []).map((error) => `${error.instancePath || \"/\"} ${error.message ?? \"\"}`).join(\", \");\r\n throw new ProjectManifestError(\"INVALID_MANIFEST_SHAPE\", `Invalid project manifest: ${detail || \"does not match the expected shape.\"}`);\r\n }\r\n return input as ProjectManifest;\r\n}\r\n\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\n\r\n/** Deterministic, human-diffable form for `manifest.json`: sorted keys, 2-space indent, trailing newline. */\r\nexport function serializeProjectManifest(manifest: ProjectManifest): string {\r\n const validated = parseProjectManifest(manifest);\r\n return `${JSON.stringify(canonicalizeJson(validated), null, 2)}\\n`;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.test.js","sourceRoot":"","sources":["../src/manifest.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,wBAAwB,EAAwB,MAAM,eAAe,CAAC;AAE3H,MAAM,aAAa,GAAoB;IACrC,aAAa,EAAE,CAAC;IAChB,SAAS,EAAE,sCAAsC;IACjD,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,0BAA0B;IACrC,aAAa,EAAE,OAAO;CACvB,CAAC;AAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAoB,CAAC;QAEjG,MAAM,UAAU,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAC3D,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAElD,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;QACN,CAAC,wBAAwB,EAAE,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;QACzE,CAAC,wBAAwB,EAAE,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC1D,CAAC,8BAA8B,EAAE,EAAE,GAAG,aAAa,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;KAChE,CAAC,CAAC,0CAA0C,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACxE,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC1E,IAAI,CAAC;YACH,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;YACnD,MAAM,CAAE,KAA8B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"manifest.test.js","sourceRoot":"","sources":["../src/manifest.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,wBAAwB,EAAwB,MAAM,eAAe,CAAC;AAE3H,MAAM,aAAa,GAAoB;IACrC,aAAa,EAAE,CAAC;IAChB,SAAS,EAAE,sCAAsC;IACjD,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,0BAA0B;IACrC,aAAa,EAAE,OAAO;CACvB,CAAC;AAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAoB,CAAC;QAEjG,MAAM,UAAU,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAC3D,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAElD,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;QACN,CAAC,wBAAwB,EAAE,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;QACzE,CAAC,wBAAwB,EAAE,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC1D,CAAC,8BAA8B,EAAE,EAAE,GAAG,aAAa,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;KAChE,CAAC,CAAC,0CAA0C,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACxE,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC1E,IAAI,CAAC;YACH,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;YACnD,MAAM,CAAE,KAA8B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe, expect, it } from \"vitest\";\r\nimport { parseProjectManifest, ProjectManifestError, serializeProjectManifest, type ProjectManifest } from \"./manifest.js\";\r\n\r\nconst validManifest: ProjectManifest = {\r\n formatVersion: 1,\r\n projectId: \"40000000-0000-4000-8000-000000000001\",\r\n name: \"Demo Project\",\r\n createdAt: \"2026-01-01T00:00:00.000Z\",\r\n editorVersion: \"0.0.0\",\r\n};\r\n\r\ndescribe(\"project manifest\", () => {\r\n it(\"round-trips a valid manifest deterministically regardless of key order\", () => {\r\n const reordered = Object.fromEntries(Object.entries(validManifest).reverse()) as ProjectManifest;\r\n\r\n const serialized = serializeProjectManifest(validManifest);\r\n expect(serialized).toBe(serializeProjectManifest(reordered));\r\n expect(serialized.endsWith(\"\\n\")).toBe(true);\r\n expect(serialized).toContain(\"\\n \\\"createdAt\\\"\");\r\n\r\n expect(parseProjectManifest(JSON.parse(serialized))).toEqual(validManifest);\r\n });\r\n\r\n it.each([\r\n [\"INVALID_MANIFEST_SHAPE\", { ...validManifest, projectId: \"not-a-uuid\" }],\r\n [\"INVALID_MANIFEST_SHAPE\", { ...validManifest, name: \"\" }],\r\n [\"UNSUPPORTED_MANIFEST_VERSION\", { ...validManifest, formatVersion: 2 }],\r\n ] as const)(\"rejects an invalid manifest with code %s\", (code, invalid) => {\r\n expect(() => parseProjectManifest(invalid)).toThrow(ProjectManifestError);\r\n try {\r\n parseProjectManifest(invalid);\r\n expect.unreachable();\r\n } catch (error) {\r\n expect(error).toBeInstanceOf(ProjectManifestError);\r\n expect((error as ProjectManifestError).code).toBe(code);\r\n }\r\n });\r\n});\r\n"]}
package/dist/prefabs.d.ts CHANGED
@@ -53,6 +53,17 @@ export declare function materializePrefabInstance(document: ProjectDocument, ins
53
53
  */
54
54
  export declare function resolvePrefabInstanceBaseNodes(document: ProjectDocument, instance: PrefabInstanceNode): Map<string, UINode>;
55
55
  export declare function normalizePrefabNodeOverrides(document: ProjectDocument, instance: PrefabInstanceNode): void;
56
+ /**
57
+ * Переносит конфигурацию инстанса (overrides и локально добавленные узлы) в его определение.
58
+ *
59
+ * Прямые overrides переписывают узлы определения, вложенные — становятся конфигурацией того
60
+ * persisted-инстанса, к которому относятся, а локальные поддеревья переезжают целиком, сохраняя
61
+ * stable ID. Сам инстанс после успешного переноса теряет конфигурацию: она уже в определении.
62
+ *
63
+ * Это же преобразование лежит в основе распаковки инстанса (`unpackPrefabInstances`): там оно
64
+ * применяется к одноразовой копии определения, которая потом встраивается в сцену как обычные узлы.
65
+ */
66
+ export declare function applyPrefabInstanceConfiguration(document: ProjectDocument, instance: PrefabInstanceNode): boolean;
56
67
  /** Обходит все персистентные инстансы владельца, включая локально добавленные. */
57
68
  export declare function forEachPrefabInstanceInOwner(owner: {
58
69
  readonly nodes: readonly UINode[];
@@ -71,12 +82,21 @@ export declare function findPrefabInstance(document: ProjectDocument, instanceId
71
82
  export declare function prefabReferencesPrefab(document: ProjectDocument, prefabId: string, searchedPrefabId: string): boolean;
72
83
  /** Сколько раз пресет используется в документе, включая вложенные и локально добавленные инстансы. */
73
84
  export declare function countPrefabInstances(document: ProjectDocument, prefabId: string): number;
85
+ export type PrefabUnpackResult = {
86
+ instances: number;
87
+ droppedBindingKeys: string[];
88
+ };
74
89
  /**
75
- * Плоский граф авторинга владельца: его собственные узлы плюс развёрнутые поддеревья всех инстансов.
90
+ * Разворачивает все инстансы пресета обратно в обычные узлы своих владельцев.
91
+ *
92
+ * Так удаление пресета перестаёт зависеть от того, используется он или нет: сцена сохраняет ровно то
93
+ * же изображение, но её узлы больше не ссылаются на определение. Операция идёт по документу целиком —
94
+ * сцены, определения других пресетов и локально добавленные поддеревья внутри инстансов.
76
95
  *
77
- * Единственный резолвер иерархии: им пользуются и редактор (иерархия, selection, gizmos), и runtime
78
- * (сборка Pixi-дерева, сбор ассетов), поэтому расхождений между ними быть не может.
96
+ * `undefined` означает, что конфигурация одного из инстансов не разложилась на узлы; вызывающий
97
+ * должен отбросить весь кандидат-документ, а не применять его частично.
79
98
  */
99
+ export declare function unpackPrefabInstances(document: ProjectDocument, prefabId: string, createId: () => string): PrefabUnpackResult | undefined;
80
100
  export declare function resolveOwnerNodeGraph(document: ProjectDocument, owner: {
81
101
  readonly rootNodeIds: readonly string[];
82
102
  readonly nodes: readonly UINode[];
@@ -1 +1 @@
1
- {"version":3,"file":"prefabs.d.ts","sourceRoot":"","sources":["../src/prefabs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefabs.d.ts","sourceRoot":"","sources":["../src/prefabs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwC,eAAe,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAKhG;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAE5D,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,MAAM,4BAA4B,GACpC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;CACpD,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErF;AAED,oFAAoF;AACpF,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAI9G;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7E;AAMD,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAYnG;AAED,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiB9F;AA0ID,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,SAAS,CAEjI;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAS3H;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAe1G;AAuBD;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAsEjH;AAED,kFAAkF;AAClF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI,CAS9I;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI,CAEpH;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,EAAE,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAM1I;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAMhH;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAarH;AAED,sGAAsG;AACtG,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMxF;AA+GD,MAAM,MAAM,kBAAkB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAErF;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAczI;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACpF;IAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAA;CAAE,CAoBhG"}