@fps-games/editor 0.2.0-beta.4 → 0.2.1-beta.2
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/agent-bridge/capabilities/editor-state.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/editor-state.js +12 -6
- package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
- package/dist/agent-bridge/capabilities/hierarchy.d.ts +4 -0
- package/dist/agent-bridge/capabilities/hierarchy.d.ts.map +1 -0
- package/dist/agent-bridge/capabilities/hierarchy.js +209 -0
- package/dist/agent-bridge/capabilities/hierarchy.js.map +1 -0
- package/dist/agent-bridge/capabilities/prefabs.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/prefabs.js +208 -73
- package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.d.ts +3 -4
- package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.js +24 -23
- package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.js +829 -66
- package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
- package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/ui-regions.js +19 -1
- package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
- package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/viewport.js +22 -9
- package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
- package/dist/agent-bridge/capability-sources.d.ts.map +1 -1
- package/dist/agent-bridge/capability-sources.js +2 -0
- package/dist/agent-bridge/capability-sources.js.map +1 -1
- package/dist/agent-bridge/register.d.ts.map +1 -1
- package/dist/agent-bridge/register.js +194 -0
- package/dist/agent-bridge/register.js.map +1 -1
- package/dist/agent-bridge/shared.d.ts +231 -11
- package/dist/agent-bridge/shared.d.ts.map +1 -1
- package/dist/agent-bridge/shared.js +162 -20
- package/dist/agent-bridge/shared.js.map +1 -1
- package/dist/agent-bridge/source-types.d.ts +17 -1
- package/dist/agent-bridge/source-types.d.ts.map +1 -1
- package/dist/agent-bridge/source-types.js.map +1 -1
- package/dist/build-info.json +57 -42
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/internal/babylon-preview-engine.d.ts +3 -0
- package/dist/internal/babylon-preview-engine.d.ts.map +1 -0
- package/dist/internal/babylon-preview-engine.js +11 -0
- package/dist/internal/babylon-preview-engine.js.map +1 -0
- package/dist/internal/material-preview.d.ts +22 -0
- package/dist/internal/material-preview.d.ts.map +1 -0
- package/dist/internal/material-preview.js +186 -0
- package/dist/internal/material-preview.js.map +1 -0
- package/dist/internal/product-local-editor-cleanup.d.ts +5 -0
- package/dist/internal/product-local-editor-cleanup.d.ts.map +1 -0
- package/dist/internal/product-local-editor-cleanup.js +20 -0
- package/dist/internal/product-local-editor-cleanup.js.map +1 -0
- package/dist/internal/project-model-preview.d.ts +4 -0
- package/dist/internal/project-model-preview.d.ts.map +1 -0
- package/dist/internal/project-model-preview.js +359 -0
- package/dist/internal/project-model-preview.js.map +1 -0
- package/dist/local-editor-agent-actions.d.ts +2 -4
- package/dist/local-editor-agent-actions.d.ts.map +1 -1
- package/dist/local-editor-agent-actions.js +56 -32
- package/dist/local-editor-agent-actions.js.map +1 -1
- package/dist/local-editor-agent-context.d.ts +17 -6
- package/dist/local-editor-agent-context.d.ts.map +1 -1
- package/dist/local-editor-agent-context.js +47 -0
- package/dist/local-editor-agent-context.js.map +1 -1
- package/dist/local-editor-harness.d.ts +353 -35
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +4115 -1313
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/local-editor-marker-graph.d.ts +15 -15
- package/dist/local-editor-marker-graph.d.ts.map +1 -1
- package/dist/local-editor-marker-graph.js +3 -0
- package/dist/local-editor-marker-graph.js.map +1 -1
- package/dist/local-editor-performance-stats.d.ts +3 -2
- package/dist/local-editor-performance-stats.d.ts.map +1 -1
- package/dist/local-editor-performance-stats.js.map +1 -1
- package/dist/local-editor-prefab-stage-transaction.d.ts +19 -0
- package/dist/local-editor-prefab-stage-transaction.d.ts.map +1 -0
- package/dist/local-editor-prefab-stage-transaction.js +45 -0
- package/dist/local-editor-prefab-stage-transaction.js.map +1 -0
- package/dist/local-editor-scene-view-interaction-runtime.d.ts +3 -1
- package/dist/local-editor-scene-view-interaction-runtime.d.ts.map +1 -1
- package/dist/local-editor-scene-view-interaction-runtime.js +24 -0
- package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
- package/dist/local-editor-tools.d.ts +19 -0
- package/dist/local-editor-tools.d.ts.map +1 -0
- package/dist/local-editor-tools.js +56 -0
- package/dist/local-editor-tools.js.map +1 -0
- package/dist/playable-babylon-rendering.d.ts +9 -0
- package/dist/playable-babylon-rendering.d.ts.map +1 -1
- package/dist/playable-babylon-rendering.js +162 -6
- package/dist/playable-babylon-rendering.js.map +1 -1
- package/dist/playable-local-editor-entry.d.ts +68 -0
- package/dist/playable-local-editor-entry.d.ts.map +1 -0
- package/dist/playable-local-editor-entry.js +424 -0
- package/dist/playable-local-editor-entry.js.map +1 -0
- package/dist/playable-local-editor-host.d.ts +55 -29
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js +50 -11
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-product-local-editor.d.ts +10 -12
- package/dist/playable-product-local-editor.d.ts.map +1 -1
- package/dist/playable-product-local-editor.js +178 -85
- package/dist/playable-product-local-editor.js.map +1 -1
- package/dist/playable-product-projection-preview.d.ts +4 -1
- package/dist/playable-product-projection-preview.d.ts.map +1 -1
- package/dist/playable-product-projection-preview.js +122 -5
- package/dist/playable-product-projection-preview.js.map +1 -1
- package/dist/playable-product-rendering.d.ts +12 -0
- package/dist/playable-product-rendering.d.ts.map +1 -1
- package/dist/playable-product-rendering.js +128 -6
- package/dist/playable-product-rendering.js.map +1 -1
- package/dist/playable-product-scene-capabilities.d.ts +24 -7
- package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
- package/dist/playable-product-scene-capabilities.js +180 -17
- package/dist/playable-product-scene-capabilities.js.map +1 -1
- package/dist/playable-project-mode.d.ts +17 -0
- package/dist/playable-project-mode.d.ts.map +1 -0
- package/dist/playable-project-mode.js +2 -0
- package/dist/playable-project-mode.js.map +1 -0
- package/dist/playable-runtime-babylon.d.ts +3 -6
- package/dist/playable-runtime-babylon.d.ts.map +1 -1
- package/dist/playable-runtime-babylon.js +1 -5
- package/dist/playable-runtime-babylon.js.map +1 -1
- package/dist/playable-sdk.d.ts +16 -9
- package/dist/playable-sdk.d.ts.map +1 -1
- package/dist/playable-sdk.js +6 -4
- package/dist/playable-sdk.js.map +1 -1
- package/dist/playable-standard-project.d.ts +23 -14
- package/dist/playable-standard-project.d.ts.map +1 -1
- package/dist/playable-standard-project.js +57 -20
- package/dist/playable-standard-project.js.map +1 -1
- package/dist/vite-client.d.ts +4 -0
- package/node_modules/@babel/helper-string-parser/lib/index.js +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/identifier.js +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/index.js +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/keyword.js +0 -1
- package/node_modules/@babel/parser/lib/index.js +0 -1
- package/node_modules/@babel/types/lib/asserts/assertNode.js +0 -1
- package/node_modules/@babel/types/lib/asserts/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/ast-types/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js +0 -1
- package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js +0 -1
- package/node_modules/@babel/types/lib/builders/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/builders/generated/lowercase.js +0 -1
- package/node_modules/@babel/types/lib/builders/generated/uppercase.js +0 -1
- package/node_modules/@babel/types/lib/builders/productions.js +0 -1
- package/node_modules/@babel/types/lib/builders/react/buildChildren.js +0 -1
- package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js +0 -1
- package/node_modules/@babel/types/lib/builders/validateNode.js +0 -1
- package/node_modules/@babel/types/lib/clone/clone.js +0 -1
- package/node_modules/@babel/types/lib/clone/cloneDeep.js +0 -1
- package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js +0 -1
- package/node_modules/@babel/types/lib/clone/cloneNode.js +0 -1
- package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js +0 -1
- package/node_modules/@babel/types/lib/comments/addComment.js +0 -1
- package/node_modules/@babel/types/lib/comments/addComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/inheritInnerComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/inheritsComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/removeComments.js +0 -1
- package/node_modules/@babel/types/lib/constants/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/constants/index.js +0 -1
- package/node_modules/@babel/types/lib/converters/ensureBlock.js +0 -1
- package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js +0 -1
- package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js +0 -1
- package/node_modules/@babel/types/lib/converters/toBlock.js +0 -1
- package/node_modules/@babel/types/lib/converters/toComputedKey.js +0 -1
- package/node_modules/@babel/types/lib/converters/toExpression.js +0 -1
- package/node_modules/@babel/types/lib/converters/toIdentifier.js +0 -1
- package/node_modules/@babel/types/lib/converters/toKeyAlias.js +0 -1
- package/node_modules/@babel/types/lib/converters/toSequenceExpression.js +0 -1
- package/node_modules/@babel/types/lib/converters/toStatement.js +0 -1
- package/node_modules/@babel/types/lib/converters/valueToNode.js +0 -1
- package/node_modules/@babel/types/lib/definitions/core.js +0 -1
- package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js +0 -1
- package/node_modules/@babel/types/lib/definitions/experimental.js +0 -1
- package/node_modules/@babel/types/lib/definitions/flow.js +0 -1
- package/node_modules/@babel/types/lib/definitions/index.js +0 -1
- package/node_modules/@babel/types/lib/definitions/jsx.js +0 -1
- package/node_modules/@babel/types/lib/definitions/misc.js +0 -1
- package/node_modules/@babel/types/lib/definitions/placeholders.js +0 -1
- package/node_modules/@babel/types/lib/definitions/typescript.js +0 -1
- package/node_modules/@babel/types/lib/definitions/utils.js +0 -1
- package/node_modules/@babel/types/lib/index.js +0 -1
- package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js +0 -1
- package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js +0 -1
- package/node_modules/@babel/types/lib/modifications/inherits.js +0 -1
- package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js +0 -1
- package/node_modules/@babel/types/lib/modifications/removeProperties.js +0 -1
- package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js +0 -1
- package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js +0 -1
- package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js +0 -1
- package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +0 -1
- package/node_modules/@babel/types/lib/retrievers/getFunctionName.js +0 -1
- package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js +0 -1
- package/node_modules/@babel/types/lib/traverse/traverse.js +0 -1
- package/node_modules/@babel/types/lib/traverse/traverseFast.js +0 -1
- package/node_modules/@babel/types/lib/utils/deprecationWarning.js +0 -1
- package/node_modules/@babel/types/lib/utils/inherit.js +0 -1
- package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js +0 -1
- package/node_modules/@babel/types/lib/utils/shallowEqual.js +0 -1
- package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js +0 -1
- package/node_modules/@babel/types/lib/validators/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/validators/is.js +0 -1
- package/node_modules/@babel/types/lib/validators/isBinding.js +0 -1
- package/node_modules/@babel/types/lib/validators/isBlockScoped.js +0 -1
- package/node_modules/@babel/types/lib/validators/isImmutable.js +0 -1
- package/node_modules/@babel/types/lib/validators/isLet.js +0 -1
- package/node_modules/@babel/types/lib/validators/isNode.js +0 -1
- package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js +0 -1
- package/node_modules/@babel/types/lib/validators/isPlaceholderType.js +0 -1
- package/node_modules/@babel/types/lib/validators/isReferenced.js +0 -1
- package/node_modules/@babel/types/lib/validators/isScope.js +0 -1
- package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js +0 -1
- package/node_modules/@babel/types/lib/validators/isType.js +0 -1
- package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js +0 -1
- package/node_modules/@babel/types/lib/validators/isValidIdentifier.js +0 -1
- package/node_modules/@babel/types/lib/validators/isVar.js +0 -1
- package/node_modules/@babel/types/lib/validators/matchesPattern.js +0 -1
- package/node_modules/@babel/types/lib/validators/react/isCompatTag.js +0 -1
- package/node_modules/@babel/types/lib/validators/react/isReactComponent.js +0 -1
- package/node_modules/@babel/types/lib/validators/validate.js +0 -1
- package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.d.ts +69 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.js +132 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.d.ts +8 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.js +7 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhLoader.d.ts +14 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhLoader.js +328 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.d.ts +9 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.js +1 -0
- package/node_modules/@babylonjs/loaders/BVH/index.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/BVH/index.js +3 -0
- package/node_modules/@babylonjs/loaders/OBJ/index.d.ts +4 -0
- package/node_modules/@babylonjs/loaders/OBJ/index.js +4 -0
- package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.d.ts +41 -0
- package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.js +230 -0
- package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.d.ts +136 -0
- package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.js +317 -0
- package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.d.ts +4 -0
- package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.js +4 -0
- package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.d.ts +47 -0
- package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.js +1 -0
- package/node_modules/@babylonjs/loaders/OBJ/solidParser.d.ts +175 -0
- package/node_modules/@babylonjs/loaders/OBJ/solidParser.js +903 -0
- package/node_modules/@babylonjs/loaders/SPLAT/index.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/SPLAT/index.js +3 -0
- package/node_modules/@babylonjs/loaders/SPLAT/sog.d.ts +84 -0
- package/node_modules/@babylonjs/loaders/SPLAT/sog.js +294 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.d.ts +26 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.js +10 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.d.ts +100 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.js +536 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.d.ts +20 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.js +15 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.d.ts +33 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.js +1 -0
- package/node_modules/@babylonjs/loaders/SPLAT/spz.d.ts +11 -0
- package/node_modules/@babylonjs/loaders/SPLAT/spz.js +168 -0
- package/node_modules/@babylonjs/loaders/STL/index.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/STL/index.js +1 -0
- package/node_modules/@babylonjs/loaders/STL/stlFileLoader.d.ts +78 -0
- package/node_modules/@babylonjs/loaders/STL/stlFileLoader.js +238 -0
- package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.d.ts +8 -0
- package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.js +7 -0
- package/node_modules/@babylonjs/loaders/bvh/license.md +21 -0
- package/node_modules/@babylonjs/loaders/dynamic.d.ts +5 -0
- package/node_modules/@babylonjs/loaders/dynamic.js +56 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.d.ts +16 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.js +64 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.d.ts +144 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.js +1841 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.d.ts +412 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.js +95 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.d.ts +71 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.js +254 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.d.ts +13 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.js +130 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/index.d.ts +5 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/index.js +5 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.d.ts +41 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.js +93 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.d.ts +41 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.js +83 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.d.ts +48 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.js +115 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.d.ts +39 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js +94 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.d.ts +39 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.js +50 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.d.ts +34 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.js +38 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.d.ts +33 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.js +37 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.d.ts +53 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.js +73 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.d.ts +47 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.js +251 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.js +77 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.d.ts +47 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.js +92 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.d.ts +355 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.js +1678 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.d.ts +33 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.js +19 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.d.ts +3 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.js +3 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.d.ts +70 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.js +438 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.d.ts +38 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.js +150 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.d.ts +41 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.js +91 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.js +65 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.js +79 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.d.ts +49 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.js +119 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.js +58 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js +69 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.js +56 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.js +47 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.js +77 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.d.ts +46 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.js +54 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.js +68 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js +80 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.js +73 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.js +76 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.js +303 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.js +66 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.d.ts +112 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.js +262 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.js +82 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.d.ts +45 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.js +109 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.d.ts +29 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.js +22 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.d.ts +31 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.js +189 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.d.ts +30 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.js +123 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.d.ts +30 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.js +66 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.d.ts +33 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.js +37 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.d.ts +37 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.js +58 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.d.ts +39 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.js +47 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.d.ts +56 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.js +228 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.d.ts +104 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.js +337 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.d.ts +27 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.js +39 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.d.ts +27 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.js +38 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.d.ts +4 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.js +212 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.d.ts +45 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.js +100 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.js +44 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.d.ts +306 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.js +884 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.d.ts +450 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.js +2485 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.js +79 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.d.ts +165 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.js +1 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.d.ts +25 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.js +32 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.d.ts +262 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.js +1 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/index.d.ts +8 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/index.js +9 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.d.ts +364 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.js +1 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.d.ts +674 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.js +1034 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.d.ts +705 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.js +1126 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.d.ts +553 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.js +998 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.d.ts +15 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.js +17 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFValidation.d.ts +35 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFValidation.js +131 -0
- package/node_modules/@babylonjs/loaders/glTF/index.d.ts +5 -0
- package/node_modules/@babylonjs/loaders/glTF/index.js +6 -0
- package/node_modules/@babylonjs/loaders/index.d.ts +6 -0
- package/node_modules/@babylonjs/loaders/index.js +7 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.js +15 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.js +13 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.js +18 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.js +15 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.js +3 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.js +34 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.js +3 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.d.ts +3 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.js +4 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.js +15 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.js +15 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy.d.ts +8 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy.js +10 -0
- package/node_modules/@babylonjs/loaders/license.md +71 -0
- package/node_modules/@babylonjs/loaders/package.json +49 -0
- package/node_modules/@babylonjs/loaders/readme.md +23 -0
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts +22 -0
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js +187 -0
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts +3 -0
- package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/index.js +3 -0
- package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts +19 -0
- package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js +212 -0
- package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts +17 -2
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.js +192 -17
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts +2 -0
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js +139 -3
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.d.ts +4 -0
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.d.ts +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.d.ts +14 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js +14 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts +59 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js +725 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts +136 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js +2735 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.d.ts +2 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.js +2 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts +2 -0
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js +59 -6
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js +24 -0
- package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js +81 -11
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js +2 -8
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +26 -5
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js +396 -363
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts +4 -0
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js +76 -10
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js +85 -22
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.d.ts +46 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js +304 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts +87 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +1746 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts +11 -3
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js +105 -15
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js +249 -15
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/types.d.ts +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts +25 -0
- package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js +44 -0
- package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js.map +1 -0
- package/node_modules/@fps-games/editor-babylon/package.json +6 -5
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts +13 -11
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/index.js +9 -9
- package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.d.ts +35 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.js +136 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.d.ts +46 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.js +283 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts +2 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js +36 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts +2 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js +17 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.d.ts +12 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.js +67 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.d.ts +6 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.js +9 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.d.ts +7 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.js +20 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.d.ts +9 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.js +219 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.d.ts +14 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.js +42 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js +8 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.d.ts +27 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.js +288 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js +157 -77
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js +27 -21
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts +19 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js +44 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +36 -6
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +829 -866
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.d.ts +8 -7
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js +1 -7
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.d.ts +7 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js +20 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +6 -7
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +266 -114
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +34 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +3 -17
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts +14 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js +44 -62
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +30 -8
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +911 -698
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts +10 -37
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js +29 -105
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js +29 -110
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts +1 -3
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js +6 -90
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js +9 -54
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts +16 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js +44 -39
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts +4 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js +44 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js +35 -44
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js +40 -24
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js +2 -20
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +114 -343
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts +13 -14
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js +120 -134
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +6 -10
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +2019 -861
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.d.ts +13 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.js +15 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.d.ts +2 -3
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js +0 -180
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts +5 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js +5 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/package.json +15 -4
- package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts +22 -0
- package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js +226 -0
- package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts +6 -1
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js +94 -2
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +24 -2
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.js +70 -10
- package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts +113 -0
- package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-tools.js +615 -0
- package/node_modules/@fps-games/editor-core/dist/editor-tools.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/inspector.d.ts +46 -0
- package/node_modules/@fps-games/editor-core/dist/inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/inspector.js +62 -0
- package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts +1 -0
- package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.d.ts +11 -2
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.js +12 -1
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
- package/node_modules/@fps-games/editor-core/package.json +14 -6
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js +14 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +14 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +49 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js +63 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js +48 -6
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js +15 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.d.ts +6 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts +28 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +314 -6
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.d.ts +11 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js +27 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js +285 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts +7 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js +7 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js +23 -81
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.d.ts +41 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js +93 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts +29 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js +77 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts +51 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js +105 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts +60 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js +287 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +6 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +53 -17
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts +16 -8
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js +10 -6
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +5 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +134 -66
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +11 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +21 -14
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts +17 -9
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js +20 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js +49 -10
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +18 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.d.ts +7 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js +130 -20
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js +12 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.d.ts +11 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js +136 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.d.ts +36 -51
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js +40 -65
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts +5 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js +207 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +18 -7
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +110 -18
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts +9 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js +16 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts +5 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js +22 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.js +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.js +86 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.d.ts +9 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.js +76 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.d.ts +34 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.js +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js +144 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts +16 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +241 -13
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.d.ts +31 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js +170 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts +153 -13
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts +17 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js +1295 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +54 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js +57 -34
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js +4 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js +20 -198
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js +5 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js +144 -8
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js +30 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.d.ts +6 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js +31 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +5 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js +40 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +116 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +17 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +50 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +101 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +5 -6
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +31 -17
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.d.ts +14 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.js +101 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.d.ts +23 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.js +180 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +6 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/package.json +6 -6
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +417 -2
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js +692 -2
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts +23 -3
- package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts +55 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js +2 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +3 -18
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.js +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/package.json +2 -2
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js +5 -0
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/vite.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/vite.js +151 -5
- package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/package.json +3 -3
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.d.ts +107 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js +770 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts +21 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js +172 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts +14 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js +32 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts +3 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js +746 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts +3 -0
- package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/gallery.js +3 -0
- package/node_modules/@fps-games/editor-ui/dist/gallery.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/index.d.ts +5 -0
- package/node_modules/@fps-games/editor-ui/dist/index.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/index.js +5 -0
- package/node_modules/@fps-games/editor-ui/dist/index.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts +7 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js +29 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts +2 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js +95 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts +28 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js +387 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/package.json +23 -0
- package/node_modules/@fps-games/playable-assets/package.json +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/index.d.ts +1 -0
- package/node_modules/@fps-games/playable-contracts/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/index.js +1 -0
- package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts +116 -0
- package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-contracts/dist/material-owner.js +403 -0
- package/node_modules/@fps-games/playable-contracts/dist/material-owner.js.map +1 -0
- package/node_modules/@fps-games/playable-contracts/package.json +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/index.d.ts +3 -0
- package/node_modules/@fps-games/playable-rendering/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/index.js +3 -0
- package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js +5 -25
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts +3 -0
- package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/runtime.js +3 -0
- package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts +61 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js +176 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts +84 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js +362 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts +167 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js +484 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js.map +1 -0
- package/node_modules/@fps-games/playable-rendering/package.json +2 -2
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts +5 -0
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js +1 -0
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/package.json +12 -12
- package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
- package/node_modules/@fps-games/playable-scene/package.json +2 -2
- package/node_modules/@fps-games/plugin-api/package.json +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/package.json +5 -5
- package/node_modules/@fps-games/plugin-hierarchy/dist/editor.d.ts +6 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/editor.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js +16 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts +7 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js +47 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts +306 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js +1237 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts +8 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js +32 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +2 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +2 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/package.json +57 -0
- package/node_modules/@fps-games/plugin-host/package.json +2 -2
- package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/package.json +5 -5
- package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/package.json +5 -5
- package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
- package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/package.json +5 -5
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.d.ts +8 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js +35 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts +11 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js +14 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts +2 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +2 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +53 -0
- package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
- package/node_modules/@playcanvas/observer/LICENSE +19 -0
- package/node_modules/@playcanvas/observer/README.md +72 -0
- package/node_modules/@playcanvas/observer/dist/index.cjs +2033 -0
- package/node_modules/@playcanvas/observer/dist/index.js +2039 -0
- package/node_modules/@playcanvas/observer/dist/index.mjs +2026 -0
- package/node_modules/@playcanvas/observer/package.json +78 -0
- package/node_modules/@playcanvas/observer/types/event-handle.d.ts +41 -0
- package/node_modules/@playcanvas/observer/types/events.d.ts +162 -0
- package/node_modules/@playcanvas/observer/types/history.d.ts +123 -0
- package/node_modules/@playcanvas/observer/types/index.d.ts +15 -0
- package/node_modules/@playcanvas/observer/types/observer-history.d.ts +32 -0
- package/node_modules/@playcanvas/observer/types/observer-list.d.ts +39 -0
- package/node_modules/@playcanvas/observer/types/observer.d.ts +157 -0
- package/node_modules/@playcanvas/observer/types/utils.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/LICENSE +19 -0
- package/node_modules/@playcanvas/pcui/README.md +164 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/Math/color-value.mjs +77 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingBase/index.mjs +215 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/class.mjs +19 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/ArrayInput/index.mjs +498 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/BooleanInput/index.mjs +122 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Button/index.mjs +119 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Canvas/index.mjs +104 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Code/index.mjs +43 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/ColorPicker/index.mjs +619 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Container/index.mjs +642 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Divider/index.mjs +20 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Element/index.mjs +829 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/GradientPicker/index.mjs +1136 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/GridView/index.mjs +448 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/GridViewItem/index.mjs +152 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/InfoBox/index.mjs +90 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/InputElement/index.mjs +186 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Label/index.mjs +124 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/LabelGroup/index.mjs +74 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Menu/index.mjs +174 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/MenuItem/index.mjs +223 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/NumericInput/index.mjs +400 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Overlay/index.mjs +108 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Panel/index.mjs +400 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Progress/index.mjs +45 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/RadioButton/index.mjs +113 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/SelectInput/index.mjs +1085 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/SliderInput/index.mjs +333 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Spinner/index.mjs +34 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/TextAreaInput/index.mjs +50 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/TextInput/index.mjs +98 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeView/index.mjs +1131 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeViewItem/index.mjs +500 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/VectorInput/index.mjs +366 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/helpers/search.mjs +194 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/helpers/utils.mjs +43 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/index.mjs +56 -0
- package/node_modules/@playcanvas/pcui/dist/pcui-theme-green.scss +2798 -0
- package/node_modules/@playcanvas/pcui/dist/pcui-theme-grey.scss +2798 -0
- package/node_modules/@playcanvas/pcui/package.json +150 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/Math/color-value.mjs +77 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingBase/index.mjs +215 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/class.mjs +19 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/index.mjs +498 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/index.mjs +122 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/index.mjs +119 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/index.mjs +104 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/index.mjs +43 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/index.mjs +619 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/component.mjs +36 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/index.mjs +642 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/index.mjs +20 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/component.mjs +107 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/index.mjs +829 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/index.mjs +1136 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/component.mjs +38 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/index.mjs +448 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/index.mjs +152 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/index.mjs +90 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InputElement/index.mjs +186 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/index.mjs +124 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/component.mjs +42 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/index.mjs +74 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/component.mjs +23 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/index.mjs +174 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/MenuItem/index.mjs +223 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/index.mjs +400 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/index.mjs +108 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/component.mjs +32 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/index.mjs +400 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/index.mjs +45 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/index.mjs +113 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/component.mjs +21 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/index.mjs +1085 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/component.mjs +12 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/index.mjs +333 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/index.mjs +34 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/index.mjs +50 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/component.mjs +23 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/index.mjs +98 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/component.mjs +52 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/index.mjs +1131 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/component.mjs +33 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/index.mjs +500 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/index.mjs +366 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/search.mjs +194 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/utils.mjs +43 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/index.mjs +39 -0
- package/node_modules/@playcanvas/pcui/react/package.json +18 -0
- package/node_modules/@playcanvas/pcui/react/types/Math/color-value.d.ts +3 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/BindingBase/index.d.ts +178 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/BindingElementToObservers/index.d.ts +24 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/BindingObserversToElement/index.d.ts +40 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/BindingTwoWay/index.d.ts +54 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/index.d.ts +5 -0
- package/node_modules/@playcanvas/pcui/react/types/class.d.ts +17 -0
- package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/index.d.ts +140 -0
- package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/index.d.ts +41 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Button/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Button/index.d.ts +75 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Canvas/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Canvas/index.d.ts +61 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Code/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Code/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/index.d.ts +99 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Container/component.d.ts +15 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Container/index.d.ts +292 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Divider/component.d.ts +10 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Divider/index.d.ts +13 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Element/component.d.ts +23 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Element/index.d.ts +671 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/index.d.ts +152 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GridView/component.d.ts +14 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GridView/index.d.ts +103 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/index.d.ts +82 -0
- package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/index.d.ts +71 -0
- package/node_modules/@playcanvas/pcui/react/types/components/InputElement/index.d.ts +84 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Label/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Label/index.d.ts +85 -0
- package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/component.d.ts +10 -0
- package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/index.d.ts +62 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Menu/component.d.ts +14 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Menu/index.d.ts +70 -0
- package/node_modules/@playcanvas/pcui/react/types/components/MenuItem/index.d.ts +139 -0
- package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/index.d.ts +173 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Overlay/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Overlay/index.d.ts +53 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Panel/component.d.ts +16 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Panel/index.d.ts +178 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Progress/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Progress/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/component.d.ts +12 -0
- package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/index.d.ts +278 -0
- package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/component.d.ts +10 -0
- package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/index.d.ts +133 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Spinner/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Spinner/index.d.ts +27 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/index.d.ts +24 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TextInput/component.d.ts +12 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TextInput/index.d.ts +40 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TreeView/component.d.ts +17 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TreeView/index.d.ts +359 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/component.d.ts +13 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/index.d.ts +224 -0
- package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/index.d.ts +176 -0
- package/node_modules/@playcanvas/pcui/react/types/components/components.d.ts +30 -0
- package/node_modules/@playcanvas/pcui/react/types/components/index.d.ts +32 -0
- package/node_modules/@playcanvas/pcui/react/types/helpers/search.d.ts +31 -0
- package/node_modules/@playcanvas/pcui/react/types/helpers/utils.d.ts +2 -0
- package/node_modules/@playcanvas/pcui/react/types/index.d.ts +4 -0
- package/node_modules/@playcanvas/pcui/styles/dist/index.mjs +11 -0
- package/node_modules/@playcanvas/pcui/styles/package.json +17 -0
- package/node_modules/@playcanvas/pcui/types/Math/color-value.d.ts +3 -0
- package/node_modules/@playcanvas/pcui/types/binding/BindingBase/index.d.ts +178 -0
- package/node_modules/@playcanvas/pcui/types/binding/BindingElementToObservers/index.d.ts +24 -0
- package/node_modules/@playcanvas/pcui/types/binding/BindingObserversToElement/index.d.ts +40 -0
- package/node_modules/@playcanvas/pcui/types/binding/BindingTwoWay/index.d.ts +54 -0
- package/node_modules/@playcanvas/pcui/types/binding/index.d.ts +5 -0
- package/node_modules/@playcanvas/pcui/types/class.d.ts +17 -0
- package/node_modules/@playcanvas/pcui/types/components/ArrayInput/index.d.ts +140 -0
- package/node_modules/@playcanvas/pcui/types/components/BooleanInput/index.d.ts +41 -0
- package/node_modules/@playcanvas/pcui/types/components/Button/index.d.ts +75 -0
- package/node_modules/@playcanvas/pcui/types/components/Canvas/index.d.ts +61 -0
- package/node_modules/@playcanvas/pcui/types/components/Code/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/types/components/ColorPicker/index.d.ts +99 -0
- package/node_modules/@playcanvas/pcui/types/components/Container/index.d.ts +292 -0
- package/node_modules/@playcanvas/pcui/types/components/Divider/index.d.ts +13 -0
- package/node_modules/@playcanvas/pcui/types/components/Element/index.d.ts +671 -0
- package/node_modules/@playcanvas/pcui/types/components/GradientPicker/index.d.ts +152 -0
- package/node_modules/@playcanvas/pcui/types/components/GridView/index.d.ts +103 -0
- package/node_modules/@playcanvas/pcui/types/components/GridViewItem/index.d.ts +82 -0
- package/node_modules/@playcanvas/pcui/types/components/InfoBox/index.d.ts +71 -0
- package/node_modules/@playcanvas/pcui/types/components/InputElement/index.d.ts +84 -0
- package/node_modules/@playcanvas/pcui/types/components/Label/index.d.ts +85 -0
- package/node_modules/@playcanvas/pcui/types/components/LabelGroup/index.d.ts +62 -0
- package/node_modules/@playcanvas/pcui/types/components/Menu/index.d.ts +70 -0
- package/node_modules/@playcanvas/pcui/types/components/MenuItem/index.d.ts +139 -0
- package/node_modules/@playcanvas/pcui/types/components/NumericInput/index.d.ts +173 -0
- package/node_modules/@playcanvas/pcui/types/components/Overlay/index.d.ts +53 -0
- package/node_modules/@playcanvas/pcui/types/components/Panel/index.d.ts +178 -0
- package/node_modules/@playcanvas/pcui/types/components/Progress/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/types/components/RadioButton/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/types/components/SelectInput/index.d.ts +278 -0
- package/node_modules/@playcanvas/pcui/types/components/SliderInput/index.d.ts +133 -0
- package/node_modules/@playcanvas/pcui/types/components/Spinner/index.d.ts +27 -0
- package/node_modules/@playcanvas/pcui/types/components/TextAreaInput/index.d.ts +24 -0
- package/node_modules/@playcanvas/pcui/types/components/TextInput/index.d.ts +40 -0
- package/node_modules/@playcanvas/pcui/types/components/TreeView/index.d.ts +359 -0
- package/node_modules/@playcanvas/pcui/types/components/TreeViewItem/index.d.ts +224 -0
- package/node_modules/@playcanvas/pcui/types/components/VectorInput/index.d.ts +176 -0
- package/node_modules/@playcanvas/pcui/types/components/index.d.ts +32 -0
- package/node_modules/@playcanvas/pcui/types/helpers/search.d.ts +31 -0
- package/node_modules/@playcanvas/pcui/types/helpers/utils.d.ts +2 -0
- package/node_modules/@playcanvas/pcui/types/index.d.ts +20 -0
- package/node_modules/babylonjs-gltf2interface/babylon.glTF2Interface.d.ts +1655 -0
- package/node_modules/babylonjs-gltf2interface/license.md +71 -0
- package/node_modules/babylonjs-gltf2interface/package.json +26 -0
- package/package.json +31 -19
- package/dist/editor-plugin-hierarchy-command.d.ts +0 -19
- package/dist/editor-plugin-hierarchy-command.d.ts.map +0 -1
- package/dist/editor-plugin-hierarchy-command.js +0 -119
- package/dist/editor-plugin-hierarchy-command.js.map +0 -1
- package/node_modules/@babel/helper-string-parser/lib/index.js.map +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/index.js.map +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map +0 -1
- package/node_modules/@babel/parser/lib/index.js.map +0 -1
- package/node_modules/@babel/types/lib/asserts/assertNode.js.map +0 -1
- package/node_modules/@babel/types/lib/asserts/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/ast-types/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/generated/lowercase.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/generated/uppercase.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/productions.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/react/buildChildren.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/validateNode.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/clone.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/cloneDeep.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/cloneNode.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/addComment.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/addComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/inheritInnerComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/inheritsComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/removeComments.js.map +0 -1
- package/node_modules/@babel/types/lib/constants/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/constants/index.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/ensureBlock.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toBlock.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toComputedKey.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toIdentifier.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toKeyAlias.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toStatement.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/valueToNode.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/core.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/experimental.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/flow.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/index.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/jsx.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/misc.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/placeholders.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/typescript.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/utils.js.map +0 -1
- package/node_modules/@babel/types/lib/index.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/inherits.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/removeProperties.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map +0 -1
- package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js.map +0 -1
- package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +0 -1
- package/node_modules/@babel/types/lib/retrievers/getFunctionName.js.map +0 -1
- package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map +0 -1
- package/node_modules/@babel/types/lib/traverse/traverse.js.map +0 -1
- package/node_modules/@babel/types/lib/traverse/traverseFast.js.map +0 -1
- package/node_modules/@babel/types/lib/utils/deprecationWarning.js.map +0 -1
- package/node_modules/@babel/types/lib/utils/inherit.js.map +0 -1
- package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map +0 -1
- package/node_modules/@babel/types/lib/utils/shallowEqual.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/is.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isBinding.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isBlockScoped.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isImmutable.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isLet.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isNode.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isPlaceholderType.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isReferenced.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isScope.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isType.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isValidIdentifier.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isVar.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/matchesPattern.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/react/isCompatTag.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/validate.js.map +0 -1
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts +0 -37
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js +0 -451
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts +0 -49
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js +0 -627
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts +0 -52
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js +0 -450
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts +0 -21
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js +0 -75
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts +0 -7
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js +0 -186
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts +0 -5
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +0 -98
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts +0 -63
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +0 -301
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/document/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n mergeArtistMaterialProfiles,\n type ArtistMaterialProfile,\n} from '@fps-games/editor-protocol';\nimport type {\n EditorSceneMaterialBinding,\n} from '../material-binding/types';\nimport {\n isEditorSceneArtistMaterialPatchPath,\n normalizeEditorSceneMaterialSlotOwnerPath,\n readEditorSceneMaterialSlotBindingSlotId,\n} from '../material-binding/paths';\nimport {\n readEditorSceneMaterialBindingConfig,\n} from '../material-binding/binding';\nimport type {\n EditorSceneComponent,\n EditorSceneAsset,\n EditorSceneDocument,\n EditorSceneGameObject,\n EditorSceneGameObjectRenderingGroupId,\n EditorSceneModelRendererComponent,\n EditorSceneNodeKind,\n EditorScenePrefabNode,\n EditorScenePrefabDefaults,\n EditorScenePrefabDefinition,\n EditorScenePrefabAgentSummary,\n EditorScenePrefabAgentMaterialTarget,\n EditorScenePrefabMutationDiagnostic,\n EditorScenePrefabMutationResult,\n EditorScenePrefabOverrides,\n EditorScenePrefabInstanceRelation,\n EditorScenePrefabRelationDiagnostic,\n EditorScenePrefabInstance,\n EditorSceneResolvedGameObjectRendering,\n EditorSceneTransformComponent,\n} from './types';\nimport type { EditorShadowSettings } from '@fps-games/playable-rendering';\n\nexport const EDITOR_SCENE_PREFAB_COMPOSITION_VERSION = 1;\nexport const EDITOR_SCENE_PREFAB_DEFAULT_ROOT_NODE_ID = 'prefab-root';\nexport const EDITOR_SCENE_PREFAB_DEFAULT_MODEL_NODE_ID = 'prefab-model';\n\nconst EDITOR_SCENE_PREFAB_OVERRIDE_FIELD_PATH_PREFIX = 'prefab.';\nconst EDITOR_SCENE_PREFAB_CORE_MATERIAL_OVERRIDE_PROFILE_FIELD_PATHS = new Set([\n 'profile.baseColor.color',\n 'profile.baseColor.texture.textureAssetId',\n 'profile.normal.texture.textureAssetId',\n 'profile.normal.strength',\n 'profile.metallic',\n 'profile.roughness',\n 'profile.emission.color',\n 'profile.emission.intensity',\n 'profile.emission.texture.textureAssetId',\n]);\n\nexport function cloneEditorSceneDocument<TDocument extends EditorSceneDocument>(\n document: TDocument,\n): TDocument {\n return structuredClone(document) as TDocument;\n}\n\nexport function findEditorSceneTransform(\n gameObject: Pick<EditorSceneGameObject, 'components'>,\n): EditorSceneTransformComponent | null {\n return gameObject.components.find(isEditorSceneTransformComponent) ?? null;\n}\n\nexport function findEditorSceneModelRenderer(\n gameObject: Pick<EditorSceneGameObject, 'components'>,\n): EditorSceneModelRendererComponent | null {\n return gameObject.components.find(isEditorSceneModelRendererComponent) ?? null;\n}\n\nexport function isEditorScenePrefabAsset(\n asset: Pick<EditorSceneAsset, 'type' | 'prefab'> | null | undefined,\n): asset is Pick<EditorSceneAsset, 'type'> & { prefab: EditorScenePrefabDefinition } {\n return asset?.type === 'prefab' && readEditorSceneNonEmptyString(asset.prefab?.sourceAssetId) != null;\n}\n\nexport function findEditorScenePrefabAsset<TAsset extends EditorSceneAsset = EditorSceneAsset>(\n document: Pick<EditorSceneDocument<EditorSceneGameObject, TAsset>, 'assets'>,\n assetId: string,\n): TAsset | null {\n const asset = document.assets.find(candidate => candidate.id === assetId);\n return asset && isEditorScenePrefabAsset(asset) ? asset : null;\n}\n\nexport function hasEditorScenePrefabForSourceAsset(\n document: Pick<EditorSceneDocument, 'assets'>,\n sourceAssetId: unknown,\n): boolean {\n return typeof sourceAssetId === 'string' && sourceAssetId.trim().length > 0\n ? document.assets.some(asset => isEditorScenePrefabAsset(asset) && asset.prefab.sourceAssetId === sourceAssetId)\n : false;\n}\n\nexport function isEditorScenePrefabInstance(\n gameObject: Pick<EditorSceneGameObject, 'prefab'> | null | undefined,\n): gameObject is Pick<EditorSceneGameObject, 'prefab'> & { prefab: EditorScenePrefabInstance } {\n return readEditorSceneNonEmptyString(gameObject?.prefab?.prefabId) != null;\n}\n\nexport function resolveEditorScenePrefabSourceAssetId(\n prefabAsset: Pick<EditorSceneAsset, 'prefab'> | null | undefined,\n): string | null {\n return readEditorSceneNonEmptyString(prefabAsset?.prefab?.sourceAssetId);\n}\n\nexport function readEditorScenePrefabRootNodeId(\n prefabAsset: Pick<EditorSceneAsset, 'prefab' | 'displayName'> | null | undefined,\n): string | null {\n if (!prefabAsset?.prefab) return null;\n const nodes = readEditorScenePrefabExplicitNodes(prefabAsset.prefab);\n const explicitRootNodeId = readEditorSceneNonEmptyString(prefabAsset.prefab.rootNodeId);\n if (explicitRootNodeId && nodes.some(node => node.id === explicitRootNodeId)) return explicitRootNodeId;\n const explicitRoot = nodes.find(node => node.kind === 'root' && !node.parentId);\n if (explicitRoot) return explicitRoot.id;\n return null;\n}\n\nexport function readEditorScenePrefabNodes(\n prefabAsset: Pick<EditorSceneAsset, 'prefab' | 'displayName'> | null | undefined,\n): EditorScenePrefabNode[] {\n if (!prefabAsset?.prefab) return [];\n return readEditorScenePrefabExplicitNodes(prefabAsset.prefab);\n}\n\nexport function findEditorScenePrefabNode(\n prefabAsset: Pick<EditorSceneAsset, 'prefab' | 'displayName'> | null | undefined,\n nodeId: string,\n): EditorScenePrefabNode | null {\n const normalizedNodeId = readEditorSceneNonEmptyString(nodeId);\n if (!normalizedNodeId) return null;\n return readEditorScenePrefabNodes(prefabAsset).find(node => node.id === normalizedNodeId) ?? null;\n}\n\nexport function readEditorScenePrefabNodeChildren(\n prefabAsset: Pick<EditorSceneAsset, 'prefab' | 'displayName'> | null | undefined,\n parentNodeId: string | null | undefined,\n): EditorScenePrefabNode[] {\n const normalizedParentId = readEditorSceneNonEmptyString(parentNodeId);\n return readEditorScenePrefabNodes(prefabAsset).filter((node) => {\n const parentId = readEditorSceneNonEmptyString(node.parentId);\n return normalizedParentId ? parentId === normalizedParentId : !parentId;\n });\n}\n\nexport function ensureEditorScenePrefabComposition<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n): EditorScenePrefabMutationResult<TAsset> {\n if (!isEditorScenePrefabAsset(prefabAsset)) {\n return createEditorScenePrefabMutationResult(prefabAsset, false, null, [{\n code: 'prefab.invalidDefinition',\n severity: 'error',\n message: `Asset \"${prefabAsset.id}\" is not a valid prefab definition.`,\n assetId: prefabAsset.id,\n }]);\n }\n\n const nodes = readEditorScenePrefabExplicitNodes(prefabAsset.prefab);\n const rootNodeId = readEditorScenePrefabRootNodeId(prefabAsset);\n if (prefabAsset.prefab.compositionVersion !== EDITOR_SCENE_PREFAB_COMPOSITION_VERSION\n || nodes.length === 0\n || !rootNodeId) {\n return createEditorScenePrefabMutationResult(prefabAsset, false, null, [{\n code: 'schema.unsupportedVersion',\n severity: 'error',\n message: `Prefab asset \"${prefabAsset.id}\" must use composition version ${EDITOR_SCENE_PREFAB_COMPOSITION_VERSION} with an explicit root node.`,\n assetId: prefabAsset.id,\n }]);\n }\n\n const next = cloneEditorScenePrefabAssetWithComposition(prefabAsset);\n return createEditorScenePrefabMutationResult(next, JSON.stringify(next.prefab) !== JSON.stringify(prefabAsset.prefab));\n}\n\nexport function selectEditorScenePrefabNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const normalizedNodeId = readEditorSceneNonEmptyString(nodeId);\n const node = normalizedNodeId ? findEditorScenePrefabNode(prepared.prefabAsset, normalizedNodeId) : null;\n if (!node) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.nodeNotFound',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" was not found.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, node, [], {\n selectedNodeId: node.id,\n });\n}\n\nexport function renameEditorScenePrefabAsset<\n TDocument extends Pick<EditorSceneDocument, 'assets'>,\n>(\n document: TDocument,\n assetId: string,\n displayName: unknown,\n): EditorScenePrefabMutationResult<EditorSceneAsset> {\n const normalizedAssetId = readEditorSceneNonEmptyString(assetId);\n const prefabAsset = normalizedAssetId\n ? document.assets.find(asset => asset.id === normalizedAssetId && isEditorScenePrefabAsset(asset))\n : null;\n if (!prefabAsset) {\n return createEditorScenePrefabMutationResult({\n id: normalizedAssetId ?? String(assetId ?? ''),\n type: 'prefab',\n prefab: { sourceAssetId: '' },\n }, false, null, [{\n code: 'prefab.invalidDefinition',\n severity: 'error',\n message: `Prefab asset \"${assetId}\" was not found.`,\n assetId,\n }]);\n }\n const nameResult = normalizeEditorScenePrefabEditableName(displayName);\n if (!nameResult.ok) {\n return createEditorScenePrefabMutationResult(prefabAsset, false, null, [{\n code: 'prefab.invalidName',\n severity: 'error',\n message: nameResult.message,\n assetId: prefabAsset.id,\n }]);\n }\n const normalizedDisplayName = nameResult.name;\n const lowerName = normalizedDisplayName.toLowerCase();\n const conflict = document.assets.find(candidate => (\n candidate.id !== prefabAsset.id\n && isEditorScenePrefabAsset(candidate)\n && readEditorSceneNonEmptyString(candidate.displayName)?.toLowerCase() === lowerName\n ));\n if (conflict) {\n return createEditorScenePrefabMutationResult(prefabAsset, false, null, [{\n code: 'prefab.nameConflict',\n severity: 'error',\n message: `Prefab asset name \"${normalizedDisplayName}\" is already used by \"${conflict.id}\".`,\n assetId: prefabAsset.id,\n }]);\n }\n if (prefabAsset.displayName === normalizedDisplayName) {\n return createEditorScenePrefabMutationResult(prefabAsset, false);\n }\n const next = cloneEditorScenePrefabAssetWithComposition({\n ...structuredClone(prefabAsset),\n displayName: normalizedDisplayName,\n });\n const rootNodeId = readEditorScenePrefabRootNodeId(next);\n if (rootNodeId && Array.isArray(next.prefab?.nodes)) {\n const rootIndex = next.prefab.nodes.findIndex(node => node.id === rootNodeId);\n if (rootIndex >= 0) {\n next.prefab.nodes = [...next.prefab.nodes];\n next.prefab.nodes[rootIndex] = {\n ...structuredClone(next.prefab.nodes[rootIndex]!),\n name: normalizedDisplayName,\n };\n }\n }\n return createEditorScenePrefabMutationResult(next, true);\n}\n\nexport function renameEditorScenePrefabNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n name: unknown,\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const normalizedNodeId = readEditorSceneNonEmptyString(nodeId);\n const node = normalizedNodeId ? findEditorScenePrefabNode(prepared.prefabAsset, normalizedNodeId) : null;\n if (!node) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.nodeNotFound',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" was not found.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n const rootNodeId = readEditorScenePrefabRootNodeId(prepared.prefabAsset);\n if (node.id === rootNodeId) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, node, [{\n code: 'prefab.rootRenameRejected',\n severity: 'error',\n message: 'Prefab root node name follows the prefab asset displayName; use prefab.asset.rename instead.',\n assetId: prefabAsset.id,\n nodeId: node.id,\n }]);\n }\n const nameResult = normalizeEditorScenePrefabEditableName(name);\n if (!nameResult.ok) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, node, [{\n code: 'prefab.invalidName',\n severity: 'error',\n message: nameResult.message,\n assetId: prefabAsset.id,\n nodeId: node.id,\n }]);\n }\n const normalizedName = nameResult.name;\n const siblings = readEditorScenePrefabNodeChildren(prepared.prefabAsset, node.parentId);\n const conflict = siblings.find(candidate => (\n candidate.id !== node.id\n && readEditorSceneNonEmptyString(candidate.name)?.toLowerCase() === normalizedName.toLowerCase()\n ));\n if (conflict) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, node, [{\n code: 'prefab.nameConflict',\n severity: 'error',\n message: `Prefab node name \"${normalizedName}\" is already used by sibling \"${conflict.id}\".`,\n assetId: prefabAsset.id,\n nodeId: node.id,\n parentId: node.parentId,\n }]);\n }\n return updateEditorScenePrefabNode(prepared.prefabAsset, node.id, (candidate) => ({\n ...candidate,\n name: normalizedName,\n }));\n}\n\nexport function createEditorScenePrefabNodeFromAsset<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n asset: EditorSceneAsset,\n options: {\n id?: string;\n guid?: string;\n name?: string;\n parentId?: string;\n transform?: EditorSceneTransformComponent;\n sourceNodePath?: string;\n } = {},\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n if (asset.id === prefabAsset.id) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.selfReferenceRejected',\n severity: 'error',\n message: `Prefab \"${prefabAsset.id}\" cannot contain itself directly.`,\n assetId: asset.id,\n }]);\n }\n\n const parentResult = resolveEditorScenePrefabMutationParent(prepared.prefabAsset, options.parentId);\n if (!parentResult.ok) return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, parentResult.diagnostics);\n\n const nodes = readEditorScenePrefabNodes(prepared.prefabAsset);\n const isChildPrefab = isEditorScenePrefabAsset(asset);\n const isModel = asset.type !== 'prefab' && (asset.type === 'glb' || asset.type === 'model' || asset.type === 'gltf');\n if (!isChildPrefab && !isModel) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.assetUnsupported',\n severity: 'error',\n message: `Asset \"${asset.id}\" cannot be added to a prefab composition.`,\n assetId: asset.id,\n }]);\n }\n\n const node: EditorScenePrefabNode = {\n id: options.id ?? createUniqueEditorScenePrefabNodeId(nodes, `${isChildPrefab ? 'prefab' : 'model'}-${asset.id}`),\n ...(options.guid ? { guid: options.guid } : {}),\n name: options.name ?? asset.displayName ?? asset.id,\n parentId: parentResult.parentId,\n kind: isChildPrefab ? 'prefabInstance' : 'model',\n ...(options.transform ? { transform: structuredClone(options.transform) } : {}),\n ...(isChildPrefab ? { childPrefabId: asset.id } : { sourceAssetId: asset.id }),\n ...(readEditorSceneNonEmptyString(options.sourceNodePath) ? { sourceNodePath: readEditorSceneNonEmptyString(options.sourceNodePath)! } : {}),\n };\n return appendEditorScenePrefabNode(prepared.prefabAsset, node);\n}\n\nexport function createEditorScenePrefabPrimitiveNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n options: {\n id?: string;\n guid?: string;\n name?: string;\n parentId?: string;\n shape: string;\n transform?: EditorSceneTransformComponent;\n },\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const parentResult = resolveEditorScenePrefabMutationParent(prepared.prefabAsset, options.parentId);\n if (!parentResult.ok) return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, parentResult.diagnostics);\n const shape = readEditorSceneNonEmptyString(options.shape);\n if (!shape) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.assetUnsupported',\n severity: 'error',\n message: 'Prefab primitive shape must be a non-empty string.',\n assetId: prefabAsset.id,\n }]);\n }\n const nodes = readEditorScenePrefabNodes(prepared.prefabAsset);\n const node: EditorScenePrefabNode = {\n id: options.id ?? createUniqueEditorScenePrefabNodeId(nodes, `primitive-${shape}`),\n ...(options.guid ? { guid: options.guid } : {}),\n name: options.name ?? `${shape[0]!.toUpperCase()}${shape.slice(1)}`,\n parentId: parentResult.parentId,\n kind: 'primitive',\n primitive: { shape },\n ...(options.transform ? { transform: structuredClone(options.transform) } : {}),\n };\n return appendEditorScenePrefabNode(prepared.prefabAsset, node);\n}\n\nexport function createEditorScenePrefabGroupNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n options: {\n id?: string;\n guid?: string;\n name?: string;\n parentId?: string;\n transform?: EditorSceneTransformComponent;\n } = {},\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const parentResult = resolveEditorScenePrefabMutationParent(prepared.prefabAsset, options.parentId);\n if (!parentResult.ok) return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, parentResult.diagnostics);\n const nodes = readEditorScenePrefabNodes(prepared.prefabAsset);\n const node: EditorScenePrefabNode = {\n id: options.id ?? createUniqueEditorScenePrefabNodeId(nodes, 'group'),\n ...(options.guid ? { guid: options.guid } : {}),\n name: options.name ?? 'Empty',\n parentId: parentResult.parentId,\n kind: 'group',\n ...(options.transform ? { transform: structuredClone(options.transform) } : {}),\n };\n return appendEditorScenePrefabNode(prepared.prefabAsset, node);\n}\n\nexport function setEditorScenePrefabNodeTransform<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n transform: EditorSceneTransformComponent,\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n if (!transform || transform.type !== 'Transform') {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.invalidTransform',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" requires a Transform component payload.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n return updateEditorScenePrefabNode(prepared.prefabAsset, nodeId, (node) => ({\n ...node,\n transform: structuredClone(transform),\n }));\n}\n\nexport function setEditorScenePrefabNodeShadow<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n shadow: EditorShadowSettings | null | undefined,\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n return updateEditorScenePrefabNode(prepared.prefabAsset, nodeId, (node) => {\n const defaults = { ...(node.defaults ?? {}) };\n if (shadow && Object.keys(shadow).length > 0) defaults.shadow = structuredClone(shadow);\n else delete defaults.shadow;\n if (Object.keys(defaults).length > 0) return { ...node, defaults };\n const { defaults: _defaults, ...rest } = node;\n return rest;\n });\n}\n\nexport function reparentEditorScenePrefabNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n parentId: string,\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const rootNodeId = readEditorScenePrefabRootNodeId(prepared.prefabAsset);\n if (nodeId === rootNodeId) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.rootReparentRejected',\n severity: 'error',\n message: 'Prefab root node cannot be reparented.',\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n const nodes = readEditorScenePrefabNodes(prepared.prefabAsset);\n if (!nodes.some(node => node.id === nodeId)) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.nodeNotFound',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" was not found.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n if (!nodes.some(node => node.id === parentId)) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.parentNotFound',\n severity: 'error',\n message: `Prefab parent node \"${parentId}\" was not found.`,\n assetId: prefabAsset.id,\n nodeId,\n parentId,\n }]);\n }\n if (nodeId === parentId || isEditorScenePrefabNodeDescendant(nodes, parentId, nodeId)) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.cycleReparentRejected',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" cannot be parented under its own descendant \"${parentId}\".`,\n assetId: prefabAsset.id,\n nodeId,\n parentId,\n }]);\n }\n return updateEditorScenePrefabNode(prepared.prefabAsset, nodeId, (node) => ({\n ...node,\n parentId,\n }));\n}\n\nexport function deleteEditorScenePrefabNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const rootNodeId = readEditorScenePrefabRootNodeId(prepared.prefabAsset);\n if (nodeId === rootNodeId) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.rootDeleteRejected',\n severity: 'error',\n message: 'Prefab root node cannot be deleted.',\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n const nodes = readEditorScenePrefabNodes(prepared.prefabAsset);\n const target = nodes.find(node => node.id === nodeId);\n if (!target) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.nodeNotFound',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" was not found.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n const deleted = new Set<string>();\n collectEditorScenePrefabNodeSubtree(nodes, nodeId, deleted);\n const next = structuredClone(prepared.prefabAsset) as TAsset;\n next.prefab = structuredClone(next.prefab);\n next.prefab!.nodes = nodes.filter(node => !deleted.has(node.id));\n return createEditorScenePrefabMutationResult(next, true, target, [], {\n deletedNodeIds: [...deleted],\n });\n}\n\nfunction createEditorScenePrefabMutationResult<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n changed: boolean,\n node: EditorScenePrefabNode | null = null,\n diagnostics: EditorScenePrefabMutationDiagnostic[] = [],\n extra: Partial<Pick<EditorScenePrefabMutationResult<TAsset>, 'selectedNodeId' | 'createdNodeId' | 'deletedNodeIds'>> = {},\n): EditorScenePrefabMutationResult<TAsset> {\n return {\n ok: diagnostics.every(diagnostic => diagnostic.severity !== 'error'),\n changed,\n prefabAsset,\n ...(extra.selectedNodeId ? { selectedNodeId: extra.selectedNodeId } : {}),\n ...(extra.createdNodeId ? { createdNodeId: extra.createdNodeId } : {}),\n ...(extra.deletedNodeIds ? { deletedNodeIds: [...extra.deletedNodeIds] } : {}),\n ...(node ? { node: structuredClone(node) } : {}),\n diagnostics: diagnostics.map(diagnostic => ({ ...diagnostic })),\n };\n}\n\nfunction cloneEditorScenePrefabAssetWithComposition<TAsset extends EditorSceneAsset>(prefabAsset: TAsset): TAsset {\n const next = structuredClone(prefabAsset) as TAsset;\n const nodes = readEditorScenePrefabNodes(prefabAsset);\n next.prefab = structuredClone(next.prefab);\n next.prefab!.compositionVersion = EDITOR_SCENE_PREFAB_COMPOSITION_VERSION;\n next.prefab!.nodes = nodes;\n const rootNodeId = readEditorScenePrefabRootNodeId({ ...prefabAsset, prefab: { ...prefabAsset.prefab!, nodes } });\n if (rootNodeId) next.prefab!.rootNodeId = rootNodeId;\n else delete next.prefab!.rootNodeId;\n return next;\n}\n\nfunction resolveEditorScenePrefabMutationParent<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n parentId: string | null | undefined,\n): { ok: true; parentId: string } | { ok: false; diagnostics: EditorScenePrefabMutationDiagnostic[] } {\n const rootNodeId = readEditorScenePrefabRootNodeId(prefabAsset);\n const normalizedParentId = readEditorSceneNonEmptyString(parentId) ?? rootNodeId;\n if (!normalizedParentId || !findEditorScenePrefabNode(prefabAsset, normalizedParentId)) {\n return {\n ok: false,\n diagnostics: [{\n code: 'prefab.parentNotFound',\n severity: 'error',\n message: `Prefab parent node \"${normalizedParentId ?? parentId ?? 'root'}\" was not found.`,\n assetId: prefabAsset.id,\n ...(normalizedParentId ? { parentId: normalizedParentId } : {}),\n }],\n };\n }\n return { ok: true, parentId: normalizedParentId };\n}\n\nfunction appendEditorScenePrefabNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n node: EditorScenePrefabNode,\n): EditorScenePrefabMutationResult<TAsset> {\n const next = structuredClone(prefabAsset) as TAsset;\n const nodes = readEditorScenePrefabNodes(prefabAsset);\n const nodeId = createUniqueEditorScenePrefabNodeId(nodes, node.id);\n const nextNode: EditorScenePrefabNode = {\n ...structuredClone(node),\n id: nodeId,\n };\n next.prefab = structuredClone(next.prefab);\n next.prefab!.compositionVersion = EDITOR_SCENE_PREFAB_COMPOSITION_VERSION;\n const rootNodeId = readEditorScenePrefabRootNodeId(prefabAsset);\n if (rootNodeId) next.prefab!.rootNodeId = rootNodeId;\n else delete next.prefab!.rootNodeId;\n next.prefab!.nodes = [...nodes, nextNode];\n return createEditorScenePrefabMutationResult(next, true, nextNode, [], {\n createdNodeId: nextNode.id,\n selectedNodeId: nextNode.id,\n });\n}\n\nfunction updateEditorScenePrefabNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n update: (node: EditorScenePrefabNode) => EditorScenePrefabNode,\n): EditorScenePrefabMutationResult<TAsset> {\n const nodes = readEditorScenePrefabNodes(prefabAsset);\n const index = nodes.findIndex(node => node.id === nodeId);\n if (index < 0) {\n return createEditorScenePrefabMutationResult(prefabAsset, false, null, [{\n code: 'prefab.nodeNotFound',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" was not found.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n const updated = update(structuredClone(nodes[index]!));\n const nextNodes = [...nodes];\n nextNodes[index] = updated;\n const next = structuredClone(prefabAsset) as TAsset;\n next.prefab = structuredClone(next.prefab);\n next.prefab!.compositionVersion = EDITOR_SCENE_PREFAB_COMPOSITION_VERSION;\n const rootNodeId = readEditorScenePrefabRootNodeId(prefabAsset);\n if (rootNodeId) next.prefab!.rootNodeId = rootNodeId;\n else delete next.prefab!.rootNodeId;\n next.prefab!.nodes = nextNodes;\n return createEditorScenePrefabMutationResult(next, JSON.stringify(nodes[index]) !== JSON.stringify(updated), updated, [], {\n selectedNodeId: updated.id,\n });\n}\n\nfunction createUniqueEditorScenePrefabNodeId(nodes: readonly EditorScenePrefabNode[], preferredId: string): string {\n const used = new Set(nodes.map(node => node.id));\n const base = normalizeEditorScenePrefabIdentifierPart(preferredId) ?? 'prefab_node';\n if (!used.has(base)) return base;\n let suffix = 1;\n let candidate = `${base}_${suffix}`;\n while (used.has(candidate)) {\n suffix += 1;\n candidate = `${base}_${suffix}`;\n }\n return candidate;\n}\n\nfunction isEditorScenePrefabNodeDescendant(\n nodes: readonly EditorScenePrefabNode[],\n candidateNodeId: string,\n ancestorNodeId: string,\n): boolean {\n let current = nodes.find(node => node.id === candidateNodeId);\n const visited = new Set<string>();\n while (current?.parentId) {\n if (current.parentId === ancestorNodeId) return true;\n if (visited.has(current.parentId)) return false;\n visited.add(current.parentId);\n current = nodes.find(node => node.id === current?.parentId);\n }\n return false;\n}\n\nfunction collectEditorScenePrefabNodeSubtree(\n nodes: readonly EditorScenePrefabNode[],\n nodeId: string,\n output: Set<string>,\n): void {\n if (output.has(nodeId)) return;\n output.add(nodeId);\n for (const child of nodes.filter(node => node.parentId === nodeId)) {\n collectEditorScenePrefabNodeSubtree(nodes, child.id, output);\n }\n}\n\nexport function createEditorScenePrefabDefinitionFromAsset<\n TAsset extends Pick<EditorSceneAsset, 'id' | 'guid' | 'displayName'>,\n>(\n sourceAsset: TAsset,\n options: {\n id?: string;\n guid?: string;\n displayName?: string;\n category?: string;\n defaults?: EditorScenePrefabDefaults;\n metadata?: Record<string, unknown>;\n } = {},\n): EditorSceneAsset<unknown> {\n return {\n id: options.id ?? `${sourceAsset.id}-prefab`,\n ...(options.guid ? { guid: options.guid } : {}),\n type: 'prefab',\n displayName: options.displayName ?? createEditorScenePrefabDisplayName(sourceAsset),\n category: options.category ?? 'Prefab',\n prefab: {\n sourceAssetId: sourceAsset.id,\n ...(sourceAsset.guid ? { sourceAssetGuid: sourceAsset.guid } : {}),\n ...(options.defaults ? { defaults: { ...options.defaults } } : {}),\n compositionVersion: EDITOR_SCENE_PREFAB_COMPOSITION_VERSION,\n rootNodeId: EDITOR_SCENE_PREFAB_DEFAULT_ROOT_NODE_ID,\n nodes: [\n {\n id: EDITOR_SCENE_PREFAB_DEFAULT_ROOT_NODE_ID,\n name: options.displayName ?? createEditorScenePrefabDisplayName(sourceAsset),\n kind: 'root',\n ...(options.defaults ? { defaults: { ...options.defaults } } : {}),\n },\n {\n id: EDITOR_SCENE_PREFAB_DEFAULT_MODEL_NODE_ID,\n name: sourceAsset.displayName ?? sourceAsset.id,\n parentId: EDITOR_SCENE_PREFAB_DEFAULT_ROOT_NODE_ID,\n kind: 'model',\n sourceAssetId: sourceAsset.id,\n },\n ],\n },\n ...(options.metadata ? { metadata: { ...options.metadata } } : {}),\n };\n}\n\nfunction readEditorScenePrefabExplicitNodes(\n prefab: Pick<EditorScenePrefabDefinition, 'nodes'>,\n): EditorScenePrefabNode[] {\n if (!Array.isArray(prefab.nodes)) return [];\n const nodes: EditorScenePrefabNode[] = [];\n for (const rawNode of prefab.nodes) {\n const node = readEditorScenePrefabNode(rawNode);\n if (node && !nodes.some(existing => existing.id === node.id)) nodes.push(node);\n }\n return structuredClone(nodes);\n}\n\nfunction readEditorScenePrefabNode(value: unknown): EditorScenePrefabNode | null {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return null;\n const record = value as Partial<EditorScenePrefabNode>;\n const id = readEditorSceneNonEmptyString(record.id);\n if (!id || !isEditorScenePrefabNodeKind(record.kind)) return null;\n return {\n id,\n ...(readEditorSceneNonEmptyString(record.guid) ? { guid: readEditorSceneNonEmptyString(record.guid)! } : {}),\n ...(readEditorSceneNonEmptyString(record.name) ? { name: readEditorSceneNonEmptyString(record.name)! } : {}),\n ...(readEditorSceneNonEmptyString(record.parentId) ? { parentId: readEditorSceneNonEmptyString(record.parentId)! } : {}),\n kind: record.kind,\n ...(record.transform ? { transform: structuredClone(record.transform) } : {}),\n ...(readEditorSceneNonEmptyString(record.sourceAssetId) ? { sourceAssetId: readEditorSceneNonEmptyString(record.sourceAssetId)! } : {}),\n ...(readEditorSceneNonEmptyString(record.sourceNodePath) ? { sourceNodePath: readEditorSceneNonEmptyString(record.sourceNodePath)! } : {}),\n ...(readEditorSceneNonEmptyString(record.childPrefabId) ? { childPrefabId: readEditorSceneNonEmptyString(record.childPrefabId)! } : {}),\n ...(record.primitive ? { primitive: structuredClone(record.primitive) } : {}),\n ...(record.light ? { light: structuredClone(record.light) } : {}),\n ...(record.defaults ? { defaults: structuredClone(record.defaults) } : {}),\n ...(record.overrides ? { overrides: structuredClone(record.overrides) } : {}),\n ...(record.metadata ? { metadata: structuredClone(record.metadata) } : {}),\n };\n}\n\nfunction isEditorScenePrefabNodeKind(value: unknown): value is EditorScenePrefabNode['kind'] {\n return value === 'root'\n || value === 'group'\n || value === 'model'\n || value === 'primitive'\n || value === 'light'\n || value === 'prefabInstance'\n || value === 'collision';\n}\n\nexport function createEditorScenePrefabInstanceGameObject(input: {\n id: string;\n guid?: string;\n name?: string;\n parentId?: string;\n prefabAsset: Pick<EditorSceneAsset, 'id' | 'guid' | 'displayName' | 'prefab'>;\n transform: EditorSceneTransformComponent;\n active?: boolean;\n shadow?: EditorScenePrefabDefaults['shadow'];\n metadata?: Record<string, unknown>;\n overrides?: unknown;\n}): EditorSceneGameObject {\n const sourceAssetId = resolveEditorScenePrefabSourceAssetId(input.prefabAsset);\n if (!sourceAssetId) {\n throw new Error(`Prefab asset \"${input.prefabAsset.id}\" does not define a source asset.`);\n }\n\n const defaults = input.prefabAsset.prefab?.defaults;\n return {\n id: input.id,\n ...(input.guid ? { guid: input.guid } : {}),\n name: input.name ?? input.prefabAsset.displayName ?? input.prefabAsset.id,\n kind: 'instance',\n ...(input.parentId ? { parentId: input.parentId } : {}),\n active: input.active ?? defaults?.active ?? true,\n ...(input.shadow ?? defaults?.shadow ? { shadow: structuredClone(input.shadow ?? defaults?.shadow) } : {}),\n prefab: {\n prefabId: input.prefabAsset.id,\n ...(input.prefabAsset.guid ? { prefabGuid: input.prefabAsset.guid } : {}),\n sourceAssetId,\n },\n ...(input.metadata ? { metadata: { ...input.metadata } } : {}),\n ...(input.overrides !== undefined ? { overrides: input.overrides } : {}),\n components: [\n input.transform,\n {\n type: 'ModelRenderer',\n assetId: sourceAssetId,\n },\n ],\n };\n}\n\nexport function createEditorScenePrefabDefinitionFromGameObject<\n TDocument extends EditorSceneDocument,\n>(\n document: TDocument,\n gameObjectId: string,\n options: {\n id?: string;\n guid?: string;\n createGuid?: () => string;\n displayName?: string;\n category?: string;\n defaults?: EditorScenePrefabDefaults;\n metadata?: Record<string, unknown>;\n } = {},\n): EditorSceneAsset<unknown> | null {\n const gameObject = findEditorSceneGameObject(document, gameObjectId);\n if (!gameObject) return null;\n const modelRenderer = findEditorSceneModelRenderer(gameObject);\n const sourceAssetId = readEditorSceneNonEmptyString(modelRenderer?.assetId);\n if (!sourceAssetId) return null;\n const sourceAsset = document.assets.find(asset => asset.id === sourceAssetId);\n if (!sourceAsset || isEditorScenePrefabAsset(sourceAsset)) return null;\n\n const displayName = options.displayName\n ?? createEditorScenePrefabDisplayName({ id: gameObject.id, displayName: gameObject.name ?? sourceAsset.displayName });\n return createEditorScenePrefabDefinitionFromAsset(sourceAsset, {\n id: options.id ?? createUniqueEditorScenePrefabAssetId(document, `${gameObject.id}-prefab`),\n guid: options.guid ?? options.createGuid?.() ?? createEditorScenePrefabGuid(),\n displayName,\n category: options.category,\n defaults: options.defaults,\n metadata: options.metadata,\n });\n}\n\nexport function createEditorSceneDuplicatedPrefabDefinition<\n TDocument extends EditorSceneDocument,\n>(\n document: TDocument,\n prefabAssetId: string,\n options: {\n id?: string;\n guid?: string;\n createGuid?: () => string;\n displayName?: string;\n category?: string;\n metadata?: Record<string, unknown>;\n } = {},\n): EditorSceneAsset<unknown> | null {\n const source = document.assets.find(asset => asset.id === prefabAssetId);\n if (!source || !isEditorScenePrefabAsset(source)) return null;\n const sourcePrefab = structuredClone(source.prefab);\n const displayName = options.displayName\n ?? createUniqueEditorScenePrefabDisplayName(\n document.assets.map(asset => asset.displayName ?? asset.id),\n `${source.displayName ?? source.id} Copy`,\n );\n return {\n ...structuredClone(source),\n id: options.id ?? createUniqueEditorScenePrefabAssetId(document, `${source.id}_copy`),\n guid: options.guid ?? options.createGuid?.() ?? createEditorScenePrefabGuid(),\n displayName,\n category: options.category ?? source.category,\n prefab: {\n ...sourcePrefab,\n ...(sourcePrefab.defaults ? { defaults: { ...sourcePrefab.defaults } } : {}),\n },\n ...(options.metadata ? { metadata: { ...options.metadata } } : {}),\n };\n}\n\nexport function readEditorScenePrefabOverrideMaterialPath(path: string): string | null {\n if (!path.startsWith(EDITOR_SCENE_PREFAB_OVERRIDE_FIELD_PATH_PREFIX)) return null;\n const materialPath = path.slice(EDITOR_SCENE_PREFAB_OVERRIDE_FIELD_PATH_PREFIX.length);\n return isEditorSceneArtistMaterialPatchPath(materialPath) ? materialPath : null;\n}\n\nexport function isEditorScenePrefabOverridePath(path: string): boolean {\n return readEditorScenePrefabOverrideMaterialPath(path) != null;\n}\n\nexport function isEditorScenePrefabCoreMaterialOverridePath(path: string): boolean {\n const materialPath = readEditorScenePrefabOverrideMaterialPath(path);\n if (!materialPath) return false;\n if (materialPath.endsWith('.materialAssetId')) return true;\n const profilePath = readEditorScenePrefabOverrideProfileFieldPath(path);\n return profilePath != null && EDITOR_SCENE_PREFAB_CORE_MATERIAL_OVERRIDE_PROFILE_FIELD_PATHS.has(profilePath);\n}\n\nexport function isEditorScenePrefabMaterialAssetIdOverridePath(path: string): boolean {\n return path.startsWith(EDITOR_SCENE_PREFAB_OVERRIDE_FIELD_PATH_PREFIX)\n && path.endsWith('.materialAssetId')\n && isEditorScenePrefabCoreMaterialOverridePath(path);\n}\n\nexport function readEditorScenePrefabMaterialOverrideBinding<\n TBinding extends EditorSceneMaterialBinding = EditorSceneMaterialBinding,\n>(\n prefabAsset: Pick<EditorSceneAsset, 'prefab'>,\n target: { slotId?: string; ownerNodePath?: string },\n): TBinding | undefined {\n if (target.slotId) {\n return readEditorSceneMaterialBindingConfig<TBinding>(prefabAsset.prefab?.overrides?.materialSlotBindings?.[target.slotId]);\n }\n return undefined;\n}\n\nexport function readEditorScenePrefabOverrideProfileFieldPath(path: string): string | null {\n const materialPath = readEditorScenePrefabOverrideMaterialPath(path);\n if (!materialPath) return null;\n const marker = '.override.';\n const markerIndex = materialPath.lastIndexOf(marker);\n if (markerIndex < 0) return null;\n const profilePath = materialPath.slice(markerIndex + marker.length);\n return profilePath ? `profile.${profilePath}` : null;\n}\n\nexport function patchEditorScenePrefabOverride<\n TAsset extends EditorSceneAsset = EditorSceneAsset,\n>(\n prefabAsset: TAsset,\n path: string,\n value: unknown,\n): TAsset {\n const materialPath = readEditorScenePrefabOverrideMaterialPath(path);\n if (!materialPath || !isEditorScenePrefabAsset(prefabAsset)) return prefabAsset;\n const segments = splitEditorScenePrefabOverrideFieldPath(materialPath);\n if (!segments) return prefabAsset;\n\n const next = structuredClone(prefabAsset) as TAsset;\n next.prefab = structuredClone(next.prefab ?? prefabAsset.prefab);\n applyEditorScenePrefabOverrideJsonPatch(next.prefab as unknown as Record<string, unknown>, segments, value);\n const prunedOverrides = pruneEditorScenePrefabOverrides(next.prefab?.overrides);\n if (prunedOverrides) {\n next.prefab!.overrides = prunedOverrides;\n } else {\n delete next.prefab!.overrides;\n }\n return JSON.stringify(next) === JSON.stringify(prefabAsset) ? prefabAsset : next;\n}\n\nexport function mergeEditorSceneMaterialBindingOverrides<TOverride = unknown>(\n base: EditorSceneMaterialBinding<TOverride> | null | undefined,\n override: EditorSceneMaterialBinding<TOverride> | null | undefined,\n): EditorSceneMaterialBinding<TOverride> | undefined {\n const baseMaterialAssetId = readEditorSceneNonEmptyString(base?.materialAssetId);\n const overrideMaterialAssetId = readEditorSceneNonEmptyString(override?.materialAssetId);\n const profile = mergeArtistMaterialProfiles(\n base?.override as ArtistMaterialProfile | null | undefined,\n override?.override as ArtistMaterialProfile | null | undefined,\n ) as TOverride;\n return pruneEditorSceneMaterialBinding({\n ...(overrideMaterialAssetId ?? baseMaterialAssetId\n ? { materialAssetId: overrideMaterialAssetId ?? baseMaterialAssetId }\n : {}),\n ...(hasEditorSceneObjectFields(profile) ? { override: profile } : {}),\n });\n}\n\nexport function mergeEditorScenePrefabOverrides<TOverride = unknown>(\n base: EditorScenePrefabOverrides<TOverride> | null | undefined,\n override: EditorScenePrefabOverrides<TOverride> | null | undefined,\n): EditorScenePrefabOverrides<TOverride> | undefined {\n const next: EditorScenePrefabOverrides<TOverride> = {};\n const materialBinding = mergeEditorSceneMaterialBindingOverrides(base?.materialBinding, override?.materialBinding);\n if (materialBinding) next.materialBinding = materialBinding;\n\n const materialSlotBindings = mergeEditorSceneMaterialBindingRecords(\n base?.materialSlotBindings,\n override?.materialSlotBindings,\n );\n if (materialSlotBindings) next.materialSlotBindings = materialSlotBindings;\n\n return hasEditorSceneObjectFields(next) ? next : undefined;\n}\n\nexport function resolveEditorScenePrefabInstanceEffectiveOverrides<\n TDocument extends EditorSceneDocument,\n>(\n document: TDocument,\n gameObjectId: string,\n): EditorScenePrefabOverrides | undefined {\n const relation = resolveEditorScenePrefabInstanceRelation(document, gameObjectId);\n if (!relation.gameObject || !relation.prefab) return undefined;\n return mergeEditorScenePrefabOverrides(\n relation.definition?.prefab?.overrides,\n readEditorScenePrefabOverrides(relation.gameObject.overrides),\n );\n}\n\nexport function createEditorScenePrefabAgentSummary<\n TDocument extends EditorSceneDocument,\n>(\n document: TDocument,\n gameObjectId: string,\n): EditorScenePrefabAgentSummary | null {\n const relation = resolveEditorScenePrefabInstanceRelation(document, gameObjectId);\n if (!relation.gameObject || !relation.prefab) return null;\n const errorCount = relation.diagnostics.filter(diagnostic => diagnostic.severity === 'error').length;\n const warningCount = relation.diagnostics.filter(diagnostic => diagnostic.severity === 'warning').length;\n const sourceAssetId = resolveEditorScenePrefabSourceAssetId(relation.definition)\n ?? readEditorSceneNonEmptyString(relation.prefab.sourceAssetId)\n ?? undefined;\n const effectiveOverrides = resolveEditorScenePrefabInstanceEffectiveOverrides(document, gameObjectId);\n const summary: EditorScenePrefabAgentSummary = {\n kind: 'prefab-instance',\n status: errorCount > 0 ? 'error' : warningCount > 0 ? 'warning' : 'ok',\n prefabId: relation.prefab.prefabId,\n ...(relation.prefab.prefabGuid ? { prefabGuid: relation.prefab.prefabGuid } : {}),\n ...(readEditorSceneNonEmptyString(relation.definition?.displayName)\n ? { prefabDisplayName: readEditorSceneNonEmptyString(relation.definition?.displayName)! }\n : {}),\n ...(sourceAssetId ? { sourceAssetId } : {}),\n ...(readEditorSceneNonEmptyString(relation.sourceAsset?.guid) ? { sourceAssetGuid: readEditorSceneNonEmptyString(relation.sourceAsset?.guid)! } : {}),\n ...(readEditorSceneNonEmptyString(relation.sourceAsset?.displayName)\n ? { sourceAssetDisplayName: readEditorSceneNonEmptyString(relation.sourceAsset?.displayName)! }\n : {}),\n ...(readEditorSceneNonEmptyString(relation.prefab.sourceAssetId) ? { instanceSourceAssetId: readEditorSceneNonEmptyString(relation.prefab.sourceAssetId)! } : {}),\n diagnostics: relation.diagnostics.map(diagnostic => ({ ...diagnostic })),\n materialTargets: createEditorScenePrefabAgentMaterialTargets(relation.sourceAsset),\n ...(effectiveOverrides ? { effectiveOverrides } : {}),\n };\n return summary;\n}\n\nexport function resolveEditorScenePrefabInstanceRelation<\n TDocument extends EditorSceneDocument,\n>(\n document: TDocument,\n gameObjectId: string,\n): EditorScenePrefabInstanceRelation<TDocument['scene']['gameObjects'][number], TDocument['assets'][number]> {\n const gameObject = findEditorSceneGameObject(document, gameObjectId) as TDocument['scene']['gameObjects'][number] | null;\n const diagnostics: EditorScenePrefabRelationDiagnostic[] = [];\n const prefab = isEditorScenePrefabInstance(gameObject) ? gameObject.prefab : null;\n if (!gameObject || !prefab) {\n diagnostics.push({\n code: 'not-prefab-instance',\n severity: 'info',\n message: gameObject\n ? `GameObject \"${gameObject.id}\" is not a prefab instance.`\n : `GameObject \"${gameObjectId}\" was not found.`,\n });\n return {\n gameObject,\n prefab: null,\n definition: null,\n sourceAsset: null,\n diagnostics,\n };\n }\n\n const definition = document.assets.find(asset => asset.id === prefab.prefabId && isEditorScenePrefabAsset(asset)) as (\n TDocument['assets'][number] | undefined\n );\n if (!definition) {\n diagnostics.push({\n code: 'missing-prefab-definition',\n severity: 'error',\n message: `Prefab definition \"${prefab.prefabId}\" was not found.`,\n prefabId: prefab.prefabId,\n });\n }\n\n const expectedSourceAssetId = resolveEditorScenePrefabSourceAssetId(definition) ?? readEditorSceneNonEmptyString(prefab.sourceAssetId);\n if (definition && prefab.sourceAssetId && expectedSourceAssetId && prefab.sourceAssetId !== expectedSourceAssetId) {\n diagnostics.push({\n code: 'source-asset-mismatch',\n severity: 'warning',\n message: `Prefab instance source \"${prefab.sourceAssetId}\" does not match definition source \"${expectedSourceAssetId}\".`,\n prefabId: prefab.prefabId,\n expectedSourceAssetId,\n actualSourceAssetId: prefab.sourceAssetId,\n });\n }\n\n const sourceAsset = expectedSourceAssetId\n ? document.assets.find(asset => asset.id === expectedSourceAssetId) as (TDocument['assets'][number] | undefined)\n : undefined;\n if (expectedSourceAssetId && !sourceAsset) {\n diagnostics.push({\n code: 'missing-source-asset',\n severity: 'error',\n message: `Prefab source asset \"${expectedSourceAssetId}\" was not found.`,\n prefabId: prefab.prefabId,\n sourceAssetId: expectedSourceAssetId,\n });\n }\n\n if (expectedSourceAssetId) {\n const sourcePrefabIds = document.assets\n .filter(asset => isEditorScenePrefabAsset(asset) && resolveEditorScenePrefabSourceAssetId(asset) === expectedSourceAssetId)\n .map(asset => asset.id);\n if (sourcePrefabIds.length > 1) {\n diagnostics.push({\n code: 'duplicate-source-prefab',\n severity: 'info',\n message: `Source asset \"${expectedSourceAssetId}\" is referenced by ${sourcePrefabIds.length} prefab definitions.`,\n prefabId: prefab.prefabId,\n sourceAssetId: expectedSourceAssetId,\n });\n }\n }\n\n return {\n gameObject,\n prefab,\n definition: definition ?? null,\n sourceAsset: sourceAsset ?? null,\n diagnostics,\n };\n}\n\nfunction createEditorScenePrefabAgentMaterialTargets(\n sourceAsset: EditorSceneAsset | null,\n): EditorScenePrefabAgentMaterialTarget[] {\n const rawSlots = Array.isArray(sourceAsset?.metadata?.materialSlots) ? sourceAsset.metadata.materialSlots : [];\n const targets: EditorScenePrefabAgentMaterialTarget[] = [];\n for (const [index, rawSlot] of rawSlots.entries()) {\n const slot = readEditorScenePrefabAgentMaterialSlot(rawSlot);\n if (!slot) continue;\n const bindingPath = `prefab.overrides.materialSlotBindings.${slot.slotId}`;\n targets.push({\n kind: 'material-slot',\n label: slot.label ?? slot.materialName ?? slot.ownerNodePath ?? `Material Slot ${index + 1}`,\n bindingPath,\n materialAssetIdPath: `${bindingPath}.materialAssetId`,\n overridePath: `${bindingPath}.override`,\n slotId: slot.slotId,\n ownerNodePath: slot.ownerNodePath,\n ...(slot.sourceMaterialIndex != null ? { sourceMaterialIndex: slot.sourceMaterialIndex } : {}),\n ...(slot.materialName ? { sourceMaterialName: slot.materialName } : {}),\n });\n }\n return targets;\n}\n\nfunction readEditorScenePrefabAgentMaterialSlot(value: unknown): {\n slotId: string;\n ownerNodePath: string;\n label?: string;\n materialName?: string;\n sourceMaterialIndex?: number;\n} | null {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return null;\n const record = value as Record<string, unknown>;\n const ownerNodePath = normalizeEditorSceneMaterialSlotOwnerPath(\n readEditorSceneNonEmptyString(record.ownerNodePath) ?? '',\n );\n const slotId = readEditorSceneNonEmptyString(record.slotId);\n if (!slotId || !ownerNodePath) return null;\n const label = readEditorSceneNonEmptyString(record.label) ?? undefined;\n const materialName = readEditorSceneNonEmptyString(record.materialName) ?? undefined;\n const sourceMaterialIndex = Number.isInteger(record.sourceMaterialIndex) ? record.sourceMaterialIndex as number : undefined;\n return {\n slotId,\n ownerNodePath,\n ...(label ? { label } : {}),\n ...(materialName ? { materialName } : {}),\n ...(sourceMaterialIndex != null ? { sourceMaterialIndex } : {}),\n };\n}\n\nexport function readEditorSceneNodeKind(gameObject: EditorSceneGameObject): EditorSceneNodeKind {\n if (\n gameObject.kind === 'group'\n || gameObject.kind === 'instance'\n || gameObject.kind === 'transform'\n || gameObject.kind === 'primitive'\n ) {\n return gameObject.kind;\n }\n if (isEditorScenePrefabInstance(gameObject)) return 'instance';\n if (gameObject.primitive) return 'primitive';\n if (findEditorSceneModelRenderer(gameObject)) return 'instance';\n if (gameObject.transformType) return 'transform';\n return 'group';\n}\n\nexport function resolveEditorSceneGameObjectRendering(\n gameObject: Pick<EditorSceneGameObject, 'rendering'>,\n): EditorSceneResolvedGameObjectRendering | undefined {\n const rendering = gameObject.rendering && typeof gameObject.rendering === 'object' && !Array.isArray(gameObject.rendering)\n ? gameObject.rendering\n : undefined;\n const renderingGroupId = readEditorSceneGameObjectRenderingGroupId(rendering?.renderingGroupId);\n const alphaIndex = readEditorSceneFiniteNumber(rendering?.alphaIndex);\n const resolved: EditorSceneResolvedGameObjectRendering = {};\n if (renderingGroupId != null) resolved.renderingGroupId = renderingGroupId;\n if (alphaIndex != null) resolved.alphaIndex = alphaIndex;\n return Object.keys(resolved).length > 0 ? resolved : undefined;\n}\n\nexport function readEditorSceneGameObjectRenderingGroupId(\n value: unknown,\n): EditorSceneGameObjectRenderingGroupId | null {\n return value === 0 || value === 1 || value === 2 || value === 3 ? value : null;\n}\n\nexport function readEditorSceneGameObjectAlphaIndex(value: unknown): number | null {\n return readEditorSceneFiniteNumber(value);\n}\n\nfunction isEditorSceneTransformComponent(\n component: EditorSceneComponent,\n): component is EditorSceneTransformComponent {\n return component.type === 'Transform';\n}\n\nfunction isEditorSceneModelRendererComponent(\n component: EditorSceneComponent,\n): component is EditorSceneModelRendererComponent {\n return component.type === 'ModelRenderer';\n}\n\nfunction readEditorSceneFiniteNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n}\n\nfunction readEditorSceneNonEmptyString(value: unknown): string | null {\n return typeof value === 'string' && value.trim().length > 0 ? value.trim() : null;\n}\n\nfunction normalizeEditorScenePrefabEditableName(value: unknown): { ok: true; name: string } | { ok: false; message: string } {\n if (typeof value !== 'string') return { ok: false, message: 'Prefab name must be a string.' };\n const name = value.trim();\n if (!name) return { ok: false, message: 'Prefab name cannot be empty.' };\n if (name.length > 80) return { ok: false, message: 'Prefab name cannot be longer than 80 characters.' };\n if (/[\\u0000-\\u001f\\u007f/\\\\]/u.test(name)) {\n return { ok: false, message: 'Prefab name cannot contain control characters, /, or \\\\.' };\n }\n return { ok: true, name };\n}\n\nfunction findEditorSceneGameObject(\n document: EditorSceneDocument,\n gameObjectId: string,\n): EditorSceneGameObject | null {\n return document.scene.gameObjects.find(gameObject => gameObject.id === gameObjectId) ?? null;\n}\n\nfunction createEditorScenePrefabDisplayName(sourceAsset: Pick<EditorSceneAsset, 'id' | 'displayName'>): string {\n const displayName = readEditorSceneNonEmptyString(sourceAsset.displayName)\n ?? readEditorSceneNonEmptyString(sourceAsset.id)\n ?? 'Prefab';\n return `${displayName} Prefab`;\n}\n\nexport function createEditorScenePrefabGuid(): string {\n const randomId = globalThis.crypto?.randomUUID?.() ?? `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;\n return `prefab_${randomId}`;\n}\n\nexport function createUniqueEditorScenePrefabAssetId(\n document: EditorSceneDocument,\n preferredId: string,\n): string {\n const used = new Set(document.assets.map(asset => asset.id));\n const base = normalizeEditorScenePrefabIdentifierPart(preferredId) ?? 'prefab';\n if (!used.has(base)) return base;\n let suffix = 1;\n let candidate = `${base}_${suffix}`;\n while (used.has(candidate)) {\n suffix += 1;\n candidate = `${base}_${suffix}`;\n }\n return candidate;\n}\n\nfunction createUniqueEditorScenePrefabDisplayName(\n existingNames: readonly unknown[],\n preferredName: string,\n): string {\n const used = new Set(\n existingNames\n .map(name => readEditorSceneNonEmptyString(name))\n .filter((name): name is string => !!name),\n );\n if (!used.has(preferredName)) return preferredName;\n let suffix = 1;\n let candidate = `${preferredName} ${suffix}`;\n while (used.has(candidate)) {\n suffix += 1;\n candidate = `${preferredName} ${suffix}`;\n }\n return candidate;\n}\n\nexport function normalizeEditorScenePrefabIdentifierPart(value: unknown): string | null {\n const raw = readEditorSceneNonEmptyString(value);\n if (!raw) return null;\n const normalized = raw\n .replace(/\\s+/g, '_')\n .replace(/[^a-zA-Z0-9_:-]/g, '_')\n .replace(/_+/g, '_')\n .replace(/^_+|_+$/g, '');\n return normalized || null;\n}\n\nfunction splitEditorScenePrefabOverrideFieldPath(path: string): string[] | null {\n if (path === 'overrides.materialBinding.materialAssetId') {\n return ['overrides', 'materialBinding', 'materialAssetId'];\n }\n const rootOverridePrefix = 'overrides.materialBinding.override.';\n if (path.startsWith(rootOverridePrefix)) {\n const profilePath = path.slice(rootOverridePrefix.length);\n return splitEditorScenePrefabProfilePath(['overrides', 'materialBinding', 'override'], profilePath);\n }\n\n const slotMaterialAssetId = readEditorSceneMaterialSlotBindingSlotId(path, 'materialAssetId');\n if (slotMaterialAssetId) {\n return ['overrides', 'materialSlotBindings', slotMaterialAssetId, 'materialAssetId'];\n }\n const slotOverrideId = readEditorSceneMaterialSlotBindingSlotId(path, 'override');\n if (slotOverrideId) {\n const profilePath = readEditorSceneBindingOverrideProfilePath(path);\n return profilePath\n ? splitEditorScenePrefabProfilePath(['overrides', 'materialSlotBindings', slotOverrideId, 'override'], profilePath)\n : null;\n }\n\n return null;\n}\n\nfunction readEditorSceneBindingOverrideProfilePath(path: string): string | null {\n const marker = '.override.';\n const markerIndex = path.lastIndexOf(marker);\n if (markerIndex < 0) return null;\n const profilePath = path.slice(markerIndex + marker.length);\n return profilePath ? profilePath : null;\n}\n\nfunction splitEditorScenePrefabProfilePath(prefix: string[], profilePath: string): string[] | null {\n const profileSegments = profilePath.split('.').filter(Boolean);\n if (profileSegments.length === 0 || profileSegments.some(isUnsafeEditorScenePrefabOverridePathSegment)) return null;\n return [...prefix, ...profileSegments];\n}\n\nfunction applyEditorScenePrefabOverrideJsonPatch(\n target: Record<string, unknown>,\n segments: string[],\n value: unknown,\n): void {\n if (segments.some(isUnsafeEditorScenePrefabOverridePathSegment)) return;\n let cursor = target;\n for (const segment of segments.slice(0, -1)) {\n const current = cursor[segment];\n if (!current || typeof current !== 'object' || Array.isArray(current)) {\n cursor[segment] = {};\n }\n cursor = cursor[segment] as Record<string, unknown>;\n }\n const leaf = segments[segments.length - 1];\n if (!leaf) return;\n if (value == null) delete cursor[leaf];\n else cursor[leaf] = structuredClone(value);\n}\n\nfunction pruneEditorScenePrefabOverrides<TOverride = unknown>(\n overrides: unknown,\n): EditorScenePrefabOverrides<TOverride> | undefined {\n if (!overrides || typeof overrides !== 'object' || Array.isArray(overrides)) return undefined;\n const source = overrides as EditorScenePrefabOverrides<TOverride>;\n const next: EditorScenePrefabOverrides<TOverride> = {};\n\n const materialBinding = pruneEditorSceneMaterialBinding<TOverride>(source.materialBinding);\n if (materialBinding) next.materialBinding = materialBinding;\n\n const materialSlotBindings = pruneEditorSceneMaterialBindingRecord<TOverride>(source.materialSlotBindings);\n if (materialSlotBindings) next.materialSlotBindings = materialSlotBindings;\n\n return hasEditorSceneObjectFields(next) ? next : undefined;\n}\n\nfunction pruneEditorSceneMaterialBinding<TOverride = unknown>(\n binding: unknown,\n): EditorSceneMaterialBinding<TOverride> | undefined {\n if (!binding || typeof binding !== 'object' || Array.isArray(binding)) return undefined;\n const source = binding as EditorSceneMaterialBinding<TOverride>;\n const materialAssetId = readEditorSceneNonEmptyString(source.materialAssetId);\n const profile = mergeArtistMaterialProfiles(source.override as ArtistMaterialProfile | null | undefined) as TOverride;\n const next: EditorSceneMaterialBinding<TOverride> = {\n ...(materialAssetId ? { materialAssetId } : {}),\n ...(hasEditorSceneObjectFields(profile) ? { override: profile } : {}),\n };\n return hasEditorSceneObjectFields(next) ? next : undefined;\n}\n\nfunction pruneEditorSceneMaterialBindingRecord<TOverride = unknown>(\n record: unknown,\n): Record<string, EditorSceneMaterialBinding<TOverride>> | undefined {\n if (!record || typeof record !== 'object' || Array.isArray(record)) return undefined;\n const next: Record<string, EditorSceneMaterialBinding<TOverride>> = {};\n for (const [key, binding] of Object.entries(record)) {\n const normalizedKey = readEditorSceneNonEmptyString(key);\n if (!normalizedKey) continue;\n const prunedBinding = pruneEditorSceneMaterialBinding<TOverride>(binding);\n if (prunedBinding) next[normalizedKey] = prunedBinding;\n }\n return hasEditorSceneObjectFields(next) ? next : undefined;\n}\n\nfunction mergeEditorSceneMaterialBindingRecords<TOverride = unknown>(\n base: Record<string, EditorSceneMaterialBinding<TOverride> | undefined> | null | undefined,\n override: Record<string, EditorSceneMaterialBinding<TOverride> | undefined> | null | undefined,\n): Record<string, EditorSceneMaterialBinding<TOverride>> | undefined {\n const keys = new Set([\n ...Object.keys(base ?? {}),\n ...Object.keys(override ?? {}),\n ]);\n const next: Record<string, EditorSceneMaterialBinding<TOverride>> = {};\n for (const key of keys) {\n const binding = mergeEditorSceneMaterialBindingOverrides(base?.[key], override?.[key]);\n if (binding) next[key] = binding;\n }\n return hasEditorSceneObjectFields(next) ? next : undefined;\n}\n\nfunction readEditorScenePrefabOverrides(value: unknown): EditorScenePrefabOverrides | undefined {\n return pruneEditorScenePrefabOverrides(value);\n}\n\nfunction hasEditorSceneObjectFields(value: unknown): boolean {\n return !!value && typeof value === 'object' && !Array.isArray(value) && Object.keys(value).length > 0;\n}\n\nfunction isUnsafeEditorScenePrefabOverridePathSegment(segment: string): boolean {\n return segment === '__proto__' || segment === 'prototype' || segment === 'constructor';\n}\n"]}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/document/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n mergeArtistMaterialProfiles,\n type ArtistMaterialProfile,\n type SpatialMarkerTargetRef,\n type SpatialMarkerTypeDefinition,\n} from '@fps-games/editor-protocol';\nimport type {\n EditorSceneMaterialBinding,\n} from '../material-binding/types';\nimport {\n isEditorSceneArtistMaterialPatchPath,\n normalizeEditorSceneMaterialSlotOwnerPath,\n readEditorSceneMaterialSlotBindingSlotId,\n} from '../material-binding/paths';\nimport {\n readEditorSceneMaterialBindingConfig,\n} from '../material-binding/binding';\nimport type {\n EditorSceneComponent,\n EditorSceneAsset,\n EditorSceneDocument,\n EditorSceneGameObject,\n EditorSceneGameObjectRenderingGroupId,\n EditorSceneMarkerConfig,\n EditorSceneModelRendererComponent,\n EditorSceneNodeKind,\n EditorScenePrefabNode,\n EditorScenePrefabDefaults,\n EditorScenePrefabDefinition,\n EditorScenePrefabAgentSummary,\n EditorScenePrefabAgentMaterialTarget,\n EditorScenePrefabMutationDiagnostic,\n EditorScenePrefabMutationResult,\n EditorScenePrefabOverrides,\n EditorScenePrefabInstanceRelation,\n EditorScenePrefabRelationDiagnostic,\n EditorScenePrefabInstance,\n EditorSceneResolvedGameObjectRendering,\n EditorSceneTransformComponent,\n EditorSceneColorRgb,\n} from './types';\nimport type {\n EditorShadowMapExperimentObjectOverride,\n EditorShadowSettings,\n} from '@fps-games/playable-rendering';\n\nexport const EDITOR_SCENE_PREFAB_COMPOSITION_VERSION = 1;\nexport const EDITOR_SCENE_PREFAB_DEFAULT_ROOT_NODE_ID = 'prefab-root';\nexport const EDITOR_SCENE_PREFAB_DEFAULT_MODEL_NODE_ID = 'prefab-model';\n\nconst EDITOR_SCENE_PREFAB_OVERRIDE_FIELD_PATH_PREFIX = 'prefab.';\nconst EDITOR_SCENE_PREFAB_CORE_MATERIAL_OVERRIDE_PROFILE_FIELD_PATHS = new Set([\n 'profile.baseColor.color',\n 'profile.baseColor.texture.textureAssetId',\n 'profile.normal.texture.textureAssetId',\n 'profile.normal.strength',\n 'profile.metallic',\n 'profile.roughness',\n 'profile.emission.color',\n 'profile.emission.intensity',\n 'profile.emission.texture.textureAssetId',\n]);\n\nexport function cloneEditorSceneDocument<TDocument extends EditorSceneDocument>(\n document: TDocument,\n): TDocument {\n return structuredClone(document) as TDocument;\n}\n\nexport function findEditorSceneTransform(\n gameObject: Pick<EditorSceneGameObject, 'components'>,\n): EditorSceneTransformComponent | null {\n return gameObject.components.find(isEditorSceneTransformComponent) ?? null;\n}\n\nexport function findEditorSceneModelRenderer(\n gameObject: Pick<EditorSceneGameObject, 'components'>,\n): EditorSceneModelRendererComponent | null {\n return gameObject.components.find(isEditorSceneModelRendererComponent) ?? null;\n}\n\nexport function isEditorScenePrefabAsset(\n asset: Pick<EditorSceneAsset, 'type' | 'prefab'> | null | undefined,\n): asset is Pick<EditorSceneAsset, 'type'> & { prefab: EditorScenePrefabDefinition } {\n return asset?.type === 'prefab' && readEditorSceneNonEmptyString(asset.prefab?.sourceAssetId) != null;\n}\n\nexport function findEditorScenePrefabAsset<TAsset extends EditorSceneAsset = EditorSceneAsset>(\n document: Pick<EditorSceneDocument<EditorSceneGameObject, TAsset>, 'assets'>,\n assetId: string,\n): TAsset | null {\n const asset = document.assets.find(candidate => candidate.id === assetId);\n return asset && isEditorScenePrefabAsset(asset) ? asset : null;\n}\n\nexport function hasEditorScenePrefabForSourceAsset(\n document: Pick<EditorSceneDocument, 'assets'>,\n sourceAssetId: unknown,\n): boolean {\n return typeof sourceAssetId === 'string' && sourceAssetId.trim().length > 0\n ? document.assets.some(asset => isEditorScenePrefabAsset(asset) && asset.prefab.sourceAssetId === sourceAssetId)\n : false;\n}\n\nexport function isEditorScenePrefabInstance(\n gameObject: Pick<EditorSceneGameObject, 'prefab'> | null | undefined,\n): gameObject is Pick<EditorSceneGameObject, 'prefab'> & { prefab: EditorScenePrefabInstance } {\n return readEditorSceneNonEmptyString(gameObject?.prefab?.prefabId) != null;\n}\n\nexport function resolveEditorScenePrefabSourceAssetId(\n prefabAsset: Pick<EditorSceneAsset, 'prefab'> | null | undefined,\n): string | null {\n return readEditorSceneNonEmptyString(prefabAsset?.prefab?.sourceAssetId);\n}\n\nexport function readEditorScenePrefabRootNodeId(\n prefabAsset: Pick<EditorSceneAsset, 'prefab' | 'displayName'> | null | undefined,\n): string | null {\n if (!prefabAsset?.prefab) return null;\n const nodes = readEditorScenePrefabExplicitNodes(prefabAsset.prefab);\n const explicitRootNodeId = readEditorSceneNonEmptyString(prefabAsset.prefab.rootNodeId);\n if (explicitRootNodeId && nodes.some(node => node.id === explicitRootNodeId)) return explicitRootNodeId;\n const explicitRoot = nodes.find(node => node.kind === 'root' && !node.parentId);\n if (explicitRoot) return explicitRoot.id;\n return null;\n}\n\nexport function readEditorScenePrefabNodes(\n prefabAsset: Pick<EditorSceneAsset, 'prefab' | 'displayName'> | null | undefined,\n): EditorScenePrefabNode[] {\n if (!prefabAsset?.prefab) return [];\n return readEditorScenePrefabExplicitNodes(prefabAsset.prefab);\n}\n\nexport function findEditorScenePrefabNode(\n prefabAsset: Pick<EditorSceneAsset, 'prefab' | 'displayName'> | null | undefined,\n nodeId: string,\n): EditorScenePrefabNode | null {\n const normalizedNodeId = readEditorSceneNonEmptyString(nodeId);\n if (!normalizedNodeId) return null;\n return readEditorScenePrefabNodes(prefabAsset).find(node => node.id === normalizedNodeId) ?? null;\n}\n\nexport function readEditorScenePrefabNodeChildren(\n prefabAsset: Pick<EditorSceneAsset, 'prefab' | 'displayName'> | null | undefined,\n parentNodeId: string | null | undefined,\n): EditorScenePrefabNode[] {\n const normalizedParentId = readEditorSceneNonEmptyString(parentNodeId);\n return readEditorScenePrefabNodes(prefabAsset).filter((node) => {\n const parentId = readEditorSceneNonEmptyString(node.parentId);\n return normalizedParentId ? parentId === normalizedParentId : !parentId;\n });\n}\n\nexport function ensureEditorScenePrefabComposition<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n): EditorScenePrefabMutationResult<TAsset> {\n if (!isEditorScenePrefabAsset(prefabAsset)) {\n return createEditorScenePrefabMutationResult(prefabAsset, false, null, [{\n code: 'prefab.invalidDefinition',\n severity: 'error',\n message: `Asset \"${prefabAsset.id}\" is not a valid prefab definition.`,\n assetId: prefabAsset.id,\n }]);\n }\n\n const nodes = readEditorScenePrefabExplicitNodes(prefabAsset.prefab);\n const rootNodeId = readEditorScenePrefabRootNodeId(prefabAsset);\n if (prefabAsset.prefab.compositionVersion !== EDITOR_SCENE_PREFAB_COMPOSITION_VERSION\n || nodes.length === 0\n || !rootNodeId) {\n return createEditorScenePrefabMutationResult(prefabAsset, false, null, [{\n code: 'schema.unsupportedVersion',\n severity: 'error',\n message: `Prefab asset \"${prefabAsset.id}\" must use composition version ${EDITOR_SCENE_PREFAB_COMPOSITION_VERSION} with an explicit root node.`,\n assetId: prefabAsset.id,\n }]);\n }\n\n const next = cloneEditorScenePrefabAssetWithComposition(prefabAsset);\n return createEditorScenePrefabMutationResult(next, JSON.stringify(next.prefab) !== JSON.stringify(prefabAsset.prefab));\n}\n\nexport function selectEditorScenePrefabNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const normalizedNodeId = readEditorSceneNonEmptyString(nodeId);\n const node = normalizedNodeId ? findEditorScenePrefabNode(prepared.prefabAsset, normalizedNodeId) : null;\n if (!node) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.nodeNotFound',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" was not found.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, node, [], {\n selectedNodeId: node.id,\n });\n}\n\nexport function renameEditorScenePrefabAsset<\n TDocument extends Pick<EditorSceneDocument, 'assets'>,\n>(\n document: TDocument,\n assetId: string,\n displayName: unknown,\n): EditorScenePrefabMutationResult<EditorSceneAsset> {\n const normalizedAssetId = readEditorSceneNonEmptyString(assetId);\n const prefabAsset = normalizedAssetId\n ? document.assets.find(asset => asset.id === normalizedAssetId && isEditorScenePrefabAsset(asset))\n : null;\n if (!prefabAsset) {\n return createEditorScenePrefabMutationResult({\n id: normalizedAssetId ?? String(assetId ?? ''),\n type: 'prefab',\n prefab: { sourceAssetId: '' },\n }, false, null, [{\n code: 'prefab.invalidDefinition',\n severity: 'error',\n message: `Prefab asset \"${assetId}\" was not found.`,\n assetId,\n }]);\n }\n const nameResult = normalizeEditorScenePrefabEditableName(displayName);\n if (!nameResult.ok) {\n return createEditorScenePrefabMutationResult(prefabAsset, false, null, [{\n code: 'prefab.invalidName',\n severity: 'error',\n message: nameResult.message,\n assetId: prefabAsset.id,\n }]);\n }\n const normalizedDisplayName = nameResult.name;\n const lowerName = normalizedDisplayName.toLowerCase();\n const conflict = document.assets.find(candidate => (\n candidate.id !== prefabAsset.id\n && isEditorScenePrefabAsset(candidate)\n && readEditorSceneNonEmptyString(candidate.displayName)?.toLowerCase() === lowerName\n ));\n if (conflict) {\n return createEditorScenePrefabMutationResult(prefabAsset, false, null, [{\n code: 'prefab.nameConflict',\n severity: 'error',\n message: `Prefab asset name \"${normalizedDisplayName}\" is already used by \"${conflict.id}\".`,\n assetId: prefabAsset.id,\n }]);\n }\n if (prefabAsset.displayName === normalizedDisplayName) {\n return createEditorScenePrefabMutationResult(prefabAsset, false);\n }\n const next = cloneEditorScenePrefabAssetWithComposition({\n ...structuredClone(prefabAsset),\n displayName: normalizedDisplayName,\n });\n const rootNodeId = readEditorScenePrefabRootNodeId(next);\n if (rootNodeId && Array.isArray(next.prefab?.nodes)) {\n const rootIndex = next.prefab.nodes.findIndex(node => node.id === rootNodeId);\n if (rootIndex >= 0) {\n next.prefab.nodes = [...next.prefab.nodes];\n next.prefab.nodes[rootIndex] = {\n ...structuredClone(next.prefab.nodes[rootIndex]!),\n name: normalizedDisplayName,\n };\n }\n }\n return createEditorScenePrefabMutationResult(next, true);\n}\n\nexport function renameEditorScenePrefabNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n name: unknown,\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const normalizedNodeId = readEditorSceneNonEmptyString(nodeId);\n const node = normalizedNodeId ? findEditorScenePrefabNode(prepared.prefabAsset, normalizedNodeId) : null;\n if (!node) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.nodeNotFound',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" was not found.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n const rootNodeId = readEditorScenePrefabRootNodeId(prepared.prefabAsset);\n if (node.id === rootNodeId) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, node, [{\n code: 'prefab.rootRenameRejected',\n severity: 'error',\n message: 'Prefab root node name follows the prefab asset displayName; use prefab.asset.rename instead.',\n assetId: prefabAsset.id,\n nodeId: node.id,\n }]);\n }\n const nameResult = normalizeEditorScenePrefabEditableName(name);\n if (!nameResult.ok) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, node, [{\n code: 'prefab.invalidName',\n severity: 'error',\n message: nameResult.message,\n assetId: prefabAsset.id,\n nodeId: node.id,\n }]);\n }\n const normalizedName = nameResult.name;\n const siblings = readEditorScenePrefabNodeChildren(prepared.prefabAsset, node.parentId);\n const conflict = siblings.find(candidate => (\n candidate.id !== node.id\n && readEditorSceneNonEmptyString(candidate.name)?.toLowerCase() === normalizedName.toLowerCase()\n ));\n if (conflict) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, node, [{\n code: 'prefab.nameConflict',\n severity: 'error',\n message: `Prefab node name \"${normalizedName}\" is already used by sibling \"${conflict.id}\".`,\n assetId: prefabAsset.id,\n nodeId: node.id,\n parentId: node.parentId,\n }]);\n }\n return updateEditorScenePrefabNode(prepared.prefabAsset, node.id, (candidate) => ({\n ...candidate,\n name: normalizedName,\n }));\n}\n\nexport function createEditorScenePrefabNodeFromAsset<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n asset: EditorSceneAsset,\n options: {\n id?: string;\n guid?: string;\n name?: string;\n parentId?: string;\n transform?: EditorSceneTransformComponent;\n sourceNodePath?: string;\n } = {},\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n if (asset.id === prefabAsset.id) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.selfReferenceRejected',\n severity: 'error',\n message: `Prefab \"${prefabAsset.id}\" cannot contain itself directly.`,\n assetId: asset.id,\n }]);\n }\n\n const parentResult = resolveEditorScenePrefabMutationParent(prepared.prefabAsset, options.parentId);\n if (!parentResult.ok) return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, parentResult.diagnostics);\n\n const nodes = readEditorScenePrefabNodes(prepared.prefabAsset);\n const isChildPrefab = isEditorScenePrefabAsset(asset);\n const isModel = asset.type !== 'prefab' && (asset.type === 'glb' || asset.type === 'model' || asset.type === 'gltf');\n if (!isChildPrefab && !isModel) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.assetUnsupported',\n severity: 'error',\n message: `Asset \"${asset.id}\" cannot be added to a prefab composition.`,\n assetId: asset.id,\n }]);\n }\n\n const node: EditorScenePrefabNode = {\n id: options.id ?? createUniqueEditorScenePrefabNodeId(nodes, `${isChildPrefab ? 'prefab' : 'model'}-${asset.id}`),\n ...(options.guid ? { guid: options.guid } : {}),\n name: options.name ?? asset.displayName ?? asset.id,\n parentId: parentResult.parentId,\n kind: isChildPrefab ? 'prefabInstance' : 'model',\n ...(options.transform ? { transform: structuredClone(options.transform) } : {}),\n ...(isChildPrefab ? { childPrefabId: asset.id } : { sourceAssetId: asset.id }),\n ...(readEditorSceneNonEmptyString(options.sourceNodePath) ? { sourceNodePath: readEditorSceneNonEmptyString(options.sourceNodePath)! } : {}),\n };\n return appendEditorScenePrefabNode(prepared.prefabAsset, node);\n}\n\nexport function createEditorScenePrefabPrimitiveNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n options: {\n id?: string;\n guid?: string;\n name?: string;\n parentId?: string;\n shape: string;\n transform?: EditorSceneTransformComponent;\n },\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const parentResult = resolveEditorScenePrefabMutationParent(prepared.prefabAsset, options.parentId);\n if (!parentResult.ok) return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, parentResult.diagnostics);\n const shape = readEditorSceneNonEmptyString(options.shape);\n if (!shape) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.assetUnsupported',\n severity: 'error',\n message: 'Prefab primitive shape must be a non-empty string.',\n assetId: prefabAsset.id,\n }]);\n }\n const nodes = readEditorScenePrefabNodes(prepared.prefabAsset);\n const node: EditorScenePrefabNode = {\n id: options.id ?? createUniqueEditorScenePrefabNodeId(nodes, `primitive-${shape}`),\n ...(options.guid ? { guid: options.guid } : {}),\n name: options.name ?? `${shape[0]!.toUpperCase()}${shape.slice(1)}`,\n parentId: parentResult.parentId,\n kind: 'primitive',\n primitive: { shape },\n ...(options.transform ? { transform: structuredClone(options.transform) } : {}),\n };\n return appendEditorScenePrefabNode(prepared.prefabAsset, node);\n}\n\nexport function createEditorScenePrefabGroupNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n options: {\n id?: string;\n guid?: string;\n name?: string;\n parentId?: string;\n transform?: EditorSceneTransformComponent;\n } = {},\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const parentResult = resolveEditorScenePrefabMutationParent(prepared.prefabAsset, options.parentId);\n if (!parentResult.ok) return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, parentResult.diagnostics);\n const nodes = readEditorScenePrefabNodes(prepared.prefabAsset);\n const node: EditorScenePrefabNode = {\n id: options.id ?? createUniqueEditorScenePrefabNodeId(nodes, 'group'),\n ...(options.guid ? { guid: options.guid } : {}),\n name: options.name ?? 'Empty',\n parentId: parentResult.parentId,\n kind: 'group',\n ...(options.transform ? { transform: structuredClone(options.transform) } : {}),\n };\n return appendEditorScenePrefabNode(prepared.prefabAsset, node);\n}\n\nexport function createEditorScenePrefabMarkerNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n options: {\n id?: string;\n guid?: string;\n name?: string;\n parentId?: string;\n markerType: SpatialMarkerTypeDefinition;\n target?: SpatialMarkerTargetRef | null;\n tags?: string[];\n note?: string;\n color?: EditorSceneColorRgb;\n transform?: EditorSceneTransformComponent;\n },\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const markerType = readEditorScenePrefabMarkerTypeDefinition(options.markerType);\n if (!markerType) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.invalidMarkerType',\n severity: 'error',\n message: 'Prefab Marker type must be a valid catalog definition.',\n assetId: prefabAsset.id,\n }]);\n }\n const parentResult = resolveEditorScenePrefabMutationParent(prepared.prefabAsset, options.parentId);\n if (!parentResult.ok) return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, parentResult.diagnostics);\n const nodes = readEditorScenePrefabNodes(prepared.prefabAsset);\n const nodeId = createUniqueEditorScenePrefabNodeId(nodes, options.id ?? `marker-${markerType.type}`);\n const targetResult = resolveEditorScenePrefabMarkerTarget(nodes, nodeId, options.target ?? null);\n if (!targetResult.ok) return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [targetResult.diagnostic]);\n const valuesResult = readEditorScenePrefabMarkerValues(options);\n if (!valuesResult.ok) return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [valuesResult.diagnostic]);\n const marker = createEditorScenePrefabMarkerConfig(markerType, targetResult.target, valuesResult.values);\n const node: EditorScenePrefabNode = {\n id: nodeId,\n ...(options.guid ? { guid: options.guid } : {}),\n name: options.name?.trim() || markerType.label,\n parentId: parentResult.parentId,\n kind: 'marker',\n transform: structuredClone(options.transform ?? createIdentityEditorSceneTransform()),\n marker,\n };\n return appendEditorScenePrefabNode(prepared.prefabAsset, node);\n}\n\nexport function setEditorScenePrefabNodeMarker<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n patch: {\n markerType?: SpatialMarkerTypeDefinition;\n target?: SpatialMarkerTargetRef | null;\n tags?: string[];\n note?: string | null;\n color?: EditorSceneColorRgb | null;\n },\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const nodes = readEditorScenePrefabNodes(prepared.prefabAsset);\n const currentNode = nodes.find(node => node.id === nodeId);\n if (!currentNode) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.nodeNotFound',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" was not found.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n if (currentNode.kind !== 'marker' || !currentNode.marker) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.markerNodeRequired',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" is not a Marker node.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n const markerType = patch.markerType === undefined\n ? { type: currentNode.marker.type, label: currentNode.name ?? currentNode.marker.type, kind: currentNode.marker.kind }\n : readEditorScenePrefabMarkerTypeDefinition(patch.markerType);\n if (!markerType) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.invalidMarkerType',\n severity: 'error',\n message: 'Prefab Marker type must be a valid catalog definition.',\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n const currentTarget = readEditorScenePrefabMarkerConfigTarget(currentNode.marker);\n const targetResult = Object.prototype.hasOwnProperty.call(patch, 'target')\n ? resolveEditorScenePrefabMarkerTarget(nodes, nodeId, patch.target ?? null)\n : { ok: true as const, target: currentTarget };\n if (!targetResult.ok) return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [targetResult.diagnostic]);\n const valuesResult = readEditorScenePrefabMarkerValues({\n ...(Object.prototype.hasOwnProperty.call(patch, 'tags') ? { tags: patch.tags } : {}),\n ...(patch.note !== null && Object.prototype.hasOwnProperty.call(patch, 'note') ? { note: patch.note } : {}),\n ...(patch.color !== null && Object.prototype.hasOwnProperty.call(patch, 'color') ? { color: patch.color } : {}),\n });\n if (!valuesResult.ok) return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [valuesResult.diagnostic]);\n return updateEditorScenePrefabNode(prepared.prefabAsset, nodeId, node => ({\n ...node,\n marker: patchEditorScenePrefabMarkerConfig(node.marker!, markerType, targetResult.target, patch),\n }));\n}\n\nfunction patchEditorScenePrefabMarkerConfig(\n current: EditorSceneMarkerConfig,\n markerType: SpatialMarkerTypeDefinition,\n target: SpatialMarkerTargetRef | null,\n patch: {\n markerType?: SpatialMarkerTypeDefinition;\n target?: SpatialMarkerTargetRef | null;\n tags?: string[];\n note?: string | null;\n color?: EditorSceneColorRgb | null;\n },\n): EditorSceneMarkerConfig {\n const next = structuredClone(current);\n if (patch.markerType !== undefined || Object.prototype.hasOwnProperty.call(patch, 'target')) {\n const derived = createEditorScenePrefabMarkerConfig(markerType, target, {});\n next.schemaVersion = derived.schemaVersion;\n next.type = derived.type;\n next.kind = derived.kind;\n next.geometry = derived.geometry;\n if (derived.target) next.target = derived.target;\n else delete next.target;\n }\n if (Object.prototype.hasOwnProperty.call(patch, 'tags')) {\n const tags = patch.tags?.map(tag => tag.trim()).filter(Boolean) ?? [];\n if (tags.length > 0) next.tags = tags;\n else delete next.tags;\n }\n if (Object.prototype.hasOwnProperty.call(patch, 'note')) {\n if (patch.note !== null) next.note = patch.note;\n else delete next.note;\n }\n if (Object.prototype.hasOwnProperty.call(patch, 'color')) {\n if (patch.color != null) next.color = { ...patch.color };\n else delete next.color;\n }\n return next;\n}\n\nfunction createEditorScenePrefabMarkerConfig(\n markerType: SpatialMarkerTypeDefinition,\n target: SpatialMarkerTargetRef | null,\n values: { tags?: string[]; note?: string; color?: EditorSceneColorRgb },\n): EditorSceneMarkerConfig {\n const kind = normalizeEditorScenePrefabMarkerKind(markerType.kind);\n const targetRef = target ? structuredClone(target) : null;\n const geometry: EditorSceneMarkerConfig['geometry'] = kind === 'region'\n ? { kind: 'box' }\n : kind === 'object' && targetRef\n ? { kind: 'object-bounds', target: structuredClone(targetRef) }\n : { kind: 'point', ...(targetRef ? { target: structuredClone(targetRef) } : {}) };\n return {\n schemaVersion: 1,\n type: markerType.type,\n kind,\n ...(values.tags?.length ? { tags: [...values.tags] } : {}),\n ...(values.note !== undefined ? { note: values.note } : {}),\n ...(values.color ? { color: { ...values.color } } : {}),\n ...(targetRef ? { target: targetRef } : {}),\n geometry,\n };\n}\n\nfunction readEditorScenePrefabMarkerTypeDefinition(\n value: SpatialMarkerTypeDefinition | null | undefined,\n): SpatialMarkerTypeDefinition | null {\n const type = readEditorSceneNonEmptyString(value?.type);\n const label = readEditorSceneNonEmptyString(value?.label);\n if (!type || !label) return null;\n return {\n type,\n label,\n kind: normalizeEditorScenePrefabMarkerKind(value?.kind),\n };\n}\n\nfunction normalizeEditorScenePrefabMarkerKind(value: unknown): string {\n const kind = readEditorSceneNonEmptyString(value);\n if (kind === 'object-bound' || kind === 'object-bounds') return 'object';\n return kind ?? 'point';\n}\n\nfunction resolveEditorScenePrefabMarkerTarget(\n nodes: readonly EditorScenePrefabNode[],\n markerNodeId: string,\n target: SpatialMarkerTargetRef | null,\n): { ok: true; target: SpatialMarkerTargetRef | null } | { ok: false; diagnostic: EditorScenePrefabMutationDiagnostic } {\n if (!target) return { ok: true, target: null };\n const targetId = readEditorSceneNonEmptyString(target.id);\n const targetNode = targetId ? nodes.find(node => node.id === targetId) : null;\n const expectedKind = targetNode?.kind === 'marker' ? 'marker' : 'scene-object';\n if (!targetId || !targetNode || targetId === markerNodeId || target.kind !== expectedKind) {\n return {\n ok: false,\n diagnostic: {\n code: 'prefab.invalidMarkerTarget',\n severity: 'error',\n message: `Prefab Marker target \"${targetId ?? ''}\" must resolve to another node in the same composition.`,\n nodeId: markerNodeId,\n ...(targetId ? { parentId: targetId } : {}),\n },\n };\n }\n return {\n ok: true,\n target: {\n kind: expectedKind,\n id: targetId,\n ...(typeof target.label === 'string' ? { label: target.label } : {}),\n },\n };\n}\n\nfunction readEditorScenePrefabMarkerConfigTarget(marker: EditorSceneMarkerConfig): SpatialMarkerTargetRef | null {\n if (marker.target) return structuredClone(marker.target);\n if (marker.geometry.kind === 'point' && marker.geometry.target) return structuredClone(marker.geometry.target);\n if (marker.geometry.kind === 'object-bounds') return structuredClone(marker.geometry.target);\n return null;\n}\n\nfunction readEditorScenePrefabMarkerValues(value: {\n tags?: unknown;\n note?: unknown;\n color?: unknown;\n}): { ok: true; values: { tags?: string[]; note?: string; color?: EditorSceneColorRgb } } | { ok: false; diagnostic: EditorScenePrefabMutationDiagnostic } {\n const tags = value.tags === undefined\n ? undefined\n : Array.isArray(value.tags) && value.tags.every(tag => typeof tag === 'string')\n ? value.tags.map(tag => tag.trim()).filter(Boolean)\n : null;\n const note = value.note === undefined ? undefined : typeof value.note === 'string' ? value.note : null;\n const color = value.color === undefined ? undefined : readEditorScenePrefabMarkerColor(value.color);\n if (tags === null || note === null || (value.color !== undefined && !color)) {\n return {\n ok: false,\n diagnostic: {\n code: 'prefab.invalidMarkerValue',\n severity: 'error',\n message: 'Prefab Marker tags, note, or color payload is invalid.',\n },\n };\n }\n return {\n ok: true,\n values: {\n ...(tags?.length ? { tags } : {}),\n ...(note !== undefined ? { note } : {}),\n ...(color ? { color } : {}),\n },\n };\n}\n\nfunction readEditorScenePrefabMarkerColor(value: unknown): EditorSceneColorRgb | null {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return null;\n const color = value as Partial<EditorSceneColorRgb>;\n const { r, g, b } = color;\n return isEditorSceneMarkerColorChannel(r)\n && isEditorSceneMarkerColorChannel(g)\n && isEditorSceneMarkerColorChannel(b)\n ? { r, g, b }\n : null;\n}\n\nfunction isEditorSceneMarkerColorChannel(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value) && value >= 0 && value <= 1;\n}\n\nfunction createIdentityEditorSceneTransform(): EditorSceneTransformComponent {\n return {\n type: 'Transform',\n position: { x: 0, y: 0, z: 0 },\n rotation: { x: 0, y: 0, z: 0 },\n scale: { x: 1, y: 1, z: 1 },\n };\n}\n\nexport function setEditorScenePrefabNodeTransform<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n transform: EditorSceneTransformComponent,\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n if (!transform || transform.type !== 'Transform') {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.invalidTransform',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" requires a Transform component payload.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n return updateEditorScenePrefabNode(prepared.prefabAsset, nodeId, (node) => ({\n ...node,\n transform: structuredClone(transform),\n }));\n}\n\nexport function setEditorScenePrefabNodeShadow<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n shadow: EditorShadowSettings | null | undefined,\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const node = findEditorScenePrefabNode(prepared.prefabAsset, nodeId);\n if (node?.kind === 'marker') {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, node, [{\n code: 'prefab.markerShadowUnsupported',\n severity: 'error',\n message: `Prefab Marker node \"${nodeId}\" does not support shadow defaults.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n return updateEditorScenePrefabNode(prepared.prefabAsset, nodeId, (node) => {\n const defaults = { ...(node.defaults ?? {}) };\n if (shadow && Object.keys(shadow).length > 0) defaults.shadow = structuredClone(shadow);\n else delete defaults.shadow;\n if (Object.keys(defaults).length > 0) return { ...node, defaults };\n const { defaults: _defaults, ...rest } = node;\n return rest;\n });\n}\n\nexport function setEditorScenePrefabNodeShadowMapExperiment<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n profile: EditorShadowMapExperimentObjectOverride | null | undefined,\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n return updateEditorScenePrefabNode(prepared.prefabAsset, nodeId, (node) => {\n const defaults = { ...(node.defaults ?? {}) };\n if (profile?.behaviorProfile) defaults.shadowMapExperiment = structuredClone(profile);\n else delete defaults.shadowMapExperiment;\n if (Object.keys(defaults).length > 0) return { ...node, defaults };\n const { defaults: _defaults, ...rest } = node;\n return rest;\n });\n}\n\nexport function reparentEditorScenePrefabNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n parentId: string,\n options: {\n placement?: 'inside' | 'before' | 'after' | 'root';\n beforeId?: string | null;\n afterId?: string | null;\n } = {},\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const rootNodeId = readEditorScenePrefabRootNodeId(prepared.prefabAsset);\n if (nodeId === rootNodeId) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.rootReparentRejected',\n severity: 'error',\n message: 'Prefab root node cannot be reparented.',\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n const nodes = readEditorScenePrefabNodes(prepared.prefabAsset);\n const sourceNode = nodes.find(node => node.id === nodeId);\n if (!sourceNode) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.nodeNotFound',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" was not found.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n if (!nodes.some(node => node.id === parentId)) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.parentNotFound',\n severity: 'error',\n message: `Prefab parent node \"${parentId}\" was not found.`,\n assetId: prefabAsset.id,\n nodeId,\n parentId,\n }]);\n }\n if (nodeId === parentId || isEditorScenePrefabNodeDescendant(nodes, parentId, nodeId)) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.cycleReparentRejected',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" cannot be parented under its own descendant \"${parentId}\".`,\n assetId: prefabAsset.id,\n nodeId,\n parentId,\n }]);\n }\n const beforeId = options.beforeId ?? null;\n const afterId = options.afterId ?? null;\n if (beforeId && afterId) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, sourceNode, [{\n code: 'prefab.moveAnchorAmbiguous',\n severity: 'error',\n message: 'Prefab node move accepts either beforeId or afterId, not both.',\n assetId: prefabAsset.id,\n nodeId,\n parentId,\n }]);\n }\n const anchorId = beforeId ?? afterId;\n const anchorNode = anchorId ? nodes.find(node => node.id === anchorId) : null;\n if (anchorId && (!anchorNode || anchorNode.id === nodeId || anchorNode.parentId !== parentId)) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, sourceNode, [{\n code: 'prefab.moveAnchorInvalid',\n severity: 'error',\n message: `Prefab move anchor \"${anchorId}\" is not a sibling under parent \"${parentId}\".`,\n assetId: prefabAsset.id,\n nodeId,\n parentId,\n }]);\n }\n if (!anchorId && options.placement === undefined) {\n return updateEditorScenePrefabNode(prepared.prefabAsset, nodeId, node => ({ ...node, parentId }));\n }\n\n const movedNode = { ...structuredClone(sourceNode), parentId };\n const nextNodes = nodes.filter(node => node.id !== nodeId);\n const insertionIndex = anchorId\n ? nextNodes.findIndex(node => node.id === anchorId) + (afterId ? 1 : 0)\n : nextNodes.length;\n nextNodes.splice(insertionIndex, 0, movedNode);\n const next = structuredClone(prepared.prefabAsset) as TAsset;\n next.prefab = structuredClone(next.prefab);\n next.prefab!.compositionVersion = EDITOR_SCENE_PREFAB_COMPOSITION_VERSION;\n next.prefab!.nodes = nextNodes;\n return createEditorScenePrefabMutationResult(\n next,\n JSON.stringify(nodes) !== JSON.stringify(nextNodes),\n movedNode,\n [],\n { selectedNodeId: nodeId },\n );\n}\n\nexport function deleteEditorScenePrefabNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n): EditorScenePrefabMutationResult<TAsset> {\n const prepared = ensureEditorScenePrefabComposition(prefabAsset);\n if (!prepared.ok) return prepared;\n const rootNodeId = readEditorScenePrefabRootNodeId(prepared.prefabAsset);\n if (nodeId === rootNodeId) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.rootDeleteRejected',\n severity: 'error',\n message: 'Prefab root node cannot be deleted.',\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n const nodes = readEditorScenePrefabNodes(prepared.prefabAsset);\n const target = nodes.find(node => node.id === nodeId);\n if (!target) {\n return createEditorScenePrefabMutationResult(prepared.prefabAsset, false, null, [{\n code: 'prefab.nodeNotFound',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" was not found.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n const deleted = new Set<string>();\n collectEditorScenePrefabNodeSubtree(nodes, nodeId, deleted);\n const next = structuredClone(prepared.prefabAsset) as TAsset;\n next.prefab = structuredClone(next.prefab);\n next.prefab!.nodes = nodes.filter(node => !deleted.has(node.id));\n return createEditorScenePrefabMutationResult(next, true, target, [], {\n deletedNodeIds: [...deleted],\n });\n}\n\nfunction createEditorScenePrefabMutationResult<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n changed: boolean,\n node: EditorScenePrefabNode | null = null,\n diagnostics: EditorScenePrefabMutationDiagnostic[] = [],\n extra: Partial<Pick<EditorScenePrefabMutationResult<TAsset>, 'selectedNodeId' | 'createdNodeId' | 'deletedNodeIds'>> = {},\n): EditorScenePrefabMutationResult<TAsset> {\n return {\n ok: diagnostics.every(diagnostic => diagnostic.severity !== 'error'),\n changed,\n prefabAsset,\n ...(extra.selectedNodeId ? { selectedNodeId: extra.selectedNodeId } : {}),\n ...(extra.createdNodeId ? { createdNodeId: extra.createdNodeId } : {}),\n ...(extra.deletedNodeIds ? { deletedNodeIds: [...extra.deletedNodeIds] } : {}),\n ...(node ? { node: structuredClone(node) } : {}),\n diagnostics: diagnostics.map(diagnostic => ({ ...diagnostic })),\n };\n}\n\nfunction cloneEditorScenePrefabAssetWithComposition<TAsset extends EditorSceneAsset>(prefabAsset: TAsset): TAsset {\n const next = structuredClone(prefabAsset) as TAsset;\n const nodes = readEditorScenePrefabNodes(prefabAsset);\n next.prefab = structuredClone(next.prefab);\n next.prefab!.compositionVersion = EDITOR_SCENE_PREFAB_COMPOSITION_VERSION;\n next.prefab!.nodes = nodes;\n const rootNodeId = readEditorScenePrefabRootNodeId({ ...prefabAsset, prefab: { ...prefabAsset.prefab!, nodes } });\n if (rootNodeId) next.prefab!.rootNodeId = rootNodeId;\n else delete next.prefab!.rootNodeId;\n return next;\n}\n\nfunction resolveEditorScenePrefabMutationParent<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n parentId: string | null | undefined,\n): { ok: true; parentId: string } | { ok: false; diagnostics: EditorScenePrefabMutationDiagnostic[] } {\n const rootNodeId = readEditorScenePrefabRootNodeId(prefabAsset);\n const normalizedParentId = readEditorSceneNonEmptyString(parentId) ?? rootNodeId;\n if (!normalizedParentId || !findEditorScenePrefabNode(prefabAsset, normalizedParentId)) {\n return {\n ok: false,\n diagnostics: [{\n code: 'prefab.parentNotFound',\n severity: 'error',\n message: `Prefab parent node \"${normalizedParentId ?? parentId ?? 'root'}\" was not found.`,\n assetId: prefabAsset.id,\n ...(normalizedParentId ? { parentId: normalizedParentId } : {}),\n }],\n };\n }\n return { ok: true, parentId: normalizedParentId };\n}\n\nfunction appendEditorScenePrefabNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n node: EditorScenePrefabNode,\n): EditorScenePrefabMutationResult<TAsset> {\n const next = structuredClone(prefabAsset) as TAsset;\n const nodes = readEditorScenePrefabNodes(prefabAsset);\n const nodeId = createUniqueEditorScenePrefabNodeId(nodes, node.id);\n const nextNode: EditorScenePrefabNode = {\n ...structuredClone(node),\n id: nodeId,\n };\n next.prefab = structuredClone(next.prefab);\n next.prefab!.compositionVersion = EDITOR_SCENE_PREFAB_COMPOSITION_VERSION;\n const rootNodeId = readEditorScenePrefabRootNodeId(prefabAsset);\n if (rootNodeId) next.prefab!.rootNodeId = rootNodeId;\n else delete next.prefab!.rootNodeId;\n next.prefab!.nodes = [...nodes, nextNode];\n return createEditorScenePrefabMutationResult(next, true, nextNode, [], {\n createdNodeId: nextNode.id,\n selectedNodeId: nextNode.id,\n });\n}\n\nfunction updateEditorScenePrefabNode<TAsset extends EditorSceneAsset>(\n prefabAsset: TAsset,\n nodeId: string,\n update: (node: EditorScenePrefabNode) => EditorScenePrefabNode,\n): EditorScenePrefabMutationResult<TAsset> {\n const nodes = readEditorScenePrefabNodes(prefabAsset);\n const index = nodes.findIndex(node => node.id === nodeId);\n if (index < 0) {\n return createEditorScenePrefabMutationResult(prefabAsset, false, null, [{\n code: 'prefab.nodeNotFound',\n severity: 'error',\n message: `Prefab node \"${nodeId}\" was not found.`,\n assetId: prefabAsset.id,\n nodeId,\n }]);\n }\n const updated = update(structuredClone(nodes[index]!));\n const nextNodes = [...nodes];\n nextNodes[index] = updated;\n const next = structuredClone(prefabAsset) as TAsset;\n next.prefab = structuredClone(next.prefab);\n next.prefab!.compositionVersion = EDITOR_SCENE_PREFAB_COMPOSITION_VERSION;\n const rootNodeId = readEditorScenePrefabRootNodeId(prefabAsset);\n if (rootNodeId) next.prefab!.rootNodeId = rootNodeId;\n else delete next.prefab!.rootNodeId;\n next.prefab!.nodes = nextNodes;\n return createEditorScenePrefabMutationResult(next, JSON.stringify(nodes[index]) !== JSON.stringify(updated), updated, [], {\n selectedNodeId: updated.id,\n });\n}\n\nfunction createUniqueEditorScenePrefabNodeId(nodes: readonly EditorScenePrefabNode[], preferredId: string): string {\n const used = new Set(nodes.map(node => node.id));\n const base = normalizeEditorScenePrefabIdentifierPart(preferredId) ?? 'prefab_node';\n if (!used.has(base)) return base;\n let suffix = 1;\n let candidate = `${base}_${suffix}`;\n while (used.has(candidate)) {\n suffix += 1;\n candidate = `${base}_${suffix}`;\n }\n return candidate;\n}\n\nfunction isEditorScenePrefabNodeDescendant(\n nodes: readonly EditorScenePrefabNode[],\n candidateNodeId: string,\n ancestorNodeId: string,\n): boolean {\n let current = nodes.find(node => node.id === candidateNodeId);\n const visited = new Set<string>();\n while (current?.parentId) {\n if (current.parentId === ancestorNodeId) return true;\n if (visited.has(current.parentId)) return false;\n visited.add(current.parentId);\n current = nodes.find(node => node.id === current?.parentId);\n }\n return false;\n}\n\nfunction collectEditorScenePrefabNodeSubtree(\n nodes: readonly EditorScenePrefabNode[],\n nodeId: string,\n output: Set<string>,\n): void {\n if (output.has(nodeId)) return;\n output.add(nodeId);\n for (const child of nodes.filter(node => node.parentId === nodeId)) {\n collectEditorScenePrefabNodeSubtree(nodes, child.id, output);\n }\n}\n\nexport function createEditorScenePrefabDefinitionFromAsset<\n TAsset extends Pick<EditorSceneAsset, 'id' | 'guid' | 'displayName'>,\n>(\n sourceAsset: TAsset,\n options: {\n id?: string;\n guid?: string;\n displayName?: string;\n category?: string;\n defaults?: EditorScenePrefabDefaults;\n metadata?: Record<string, unknown>;\n } = {},\n): EditorSceneAsset<unknown> {\n return {\n id: options.id ?? `${sourceAsset.id}-prefab`,\n ...(options.guid ? { guid: options.guid } : {}),\n type: 'prefab',\n displayName: options.displayName ?? createEditorScenePrefabDisplayName(sourceAsset),\n category: options.category ?? 'Prefab',\n prefab: {\n sourceAssetId: sourceAsset.id,\n ...(sourceAsset.guid ? { sourceAssetGuid: sourceAsset.guid } : {}),\n ...(options.defaults ? { defaults: { ...options.defaults } } : {}),\n compositionVersion: EDITOR_SCENE_PREFAB_COMPOSITION_VERSION,\n rootNodeId: EDITOR_SCENE_PREFAB_DEFAULT_ROOT_NODE_ID,\n nodes: [\n {\n id: EDITOR_SCENE_PREFAB_DEFAULT_ROOT_NODE_ID,\n name: options.displayName ?? createEditorScenePrefabDisplayName(sourceAsset),\n kind: 'root',\n ...(options.defaults ? { defaults: { ...options.defaults } } : {}),\n },\n {\n id: EDITOR_SCENE_PREFAB_DEFAULT_MODEL_NODE_ID,\n name: sourceAsset.displayName ?? sourceAsset.id,\n parentId: EDITOR_SCENE_PREFAB_DEFAULT_ROOT_NODE_ID,\n kind: 'model',\n sourceAssetId: sourceAsset.id,\n },\n ],\n },\n ...(options.metadata ? { metadata: { ...options.metadata } } : {}),\n };\n}\n\nfunction readEditorScenePrefabExplicitNodes(\n prefab: Pick<EditorScenePrefabDefinition, 'nodes'>,\n): EditorScenePrefabNode[] {\n if (!Array.isArray(prefab.nodes)) return [];\n const nodes: EditorScenePrefabNode[] = [];\n for (const rawNode of prefab.nodes) {\n const node = readEditorScenePrefabNode(rawNode);\n if (node && !nodes.some(existing => existing.id === node.id)) nodes.push(node);\n }\n return structuredClone(nodes);\n}\n\nfunction readEditorScenePrefabNode(value: unknown): EditorScenePrefabNode | null {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return null;\n const record = value as Partial<EditorScenePrefabNode>;\n const id = readEditorSceneNonEmptyString(record.id);\n if (!id || !isEditorScenePrefabNodeKind(record.kind)) return null;\n return {\n id,\n ...(readEditorSceneNonEmptyString(record.guid) ? { guid: readEditorSceneNonEmptyString(record.guid)! } : {}),\n ...(readEditorSceneNonEmptyString(record.name) ? { name: readEditorSceneNonEmptyString(record.name)! } : {}),\n ...(readEditorSceneNonEmptyString(record.parentId) ? { parentId: readEditorSceneNonEmptyString(record.parentId)! } : {}),\n kind: record.kind,\n ...(record.transform ? { transform: structuredClone(record.transform) } : {}),\n ...(readEditorSceneNonEmptyString(record.sourceAssetId) ? { sourceAssetId: readEditorSceneNonEmptyString(record.sourceAssetId)! } : {}),\n ...(readEditorSceneNonEmptyString(record.sourceNodePath) ? { sourceNodePath: readEditorSceneNonEmptyString(record.sourceNodePath)! } : {}),\n ...(readEditorSceneNonEmptyString(record.childPrefabId) ? { childPrefabId: readEditorSceneNonEmptyString(record.childPrefabId)! } : {}),\n ...(record.primitive ? { primitive: structuredClone(record.primitive) } : {}),\n ...(record.light ? { light: structuredClone(record.light) } : {}),\n ...(record.marker ? { marker: structuredClone(record.marker) } : {}),\n ...(record.defaults ? { defaults: structuredClone(record.defaults) } : {}),\n ...(record.overrides ? { overrides: structuredClone(record.overrides) } : {}),\n ...(record.metadata ? { metadata: structuredClone(record.metadata) } : {}),\n };\n}\n\nfunction isEditorScenePrefabNodeKind(value: unknown): value is EditorScenePrefabNode['kind'] {\n return value === 'root'\n || value === 'group'\n || value === 'model'\n || value === 'primitive'\n || value === 'light'\n || value === 'prefabInstance'\n || value === 'marker'\n || value === 'collision';\n}\n\nexport function createEditorScenePrefabInstanceGameObject(input: {\n id: string;\n guid?: string;\n name?: string;\n parentId?: string;\n prefabAsset: Pick<EditorSceneAsset, 'id' | 'guid' | 'displayName' | 'prefab'>;\n transform: EditorSceneTransformComponent;\n active?: boolean;\n shadow?: EditorScenePrefabDefaults['shadow'];\n metadata?: Record<string, unknown>;\n overrides?: unknown;\n}): EditorSceneGameObject {\n const sourceAssetId = resolveEditorScenePrefabSourceAssetId(input.prefabAsset);\n if (!sourceAssetId) {\n throw new Error(`Prefab asset \"${input.prefabAsset.id}\" does not define a source asset.`);\n }\n\n const defaults = input.prefabAsset.prefab?.defaults;\n return {\n id: input.id,\n ...(input.guid ? { guid: input.guid } : {}),\n name: input.name ?? input.prefabAsset.displayName ?? input.prefabAsset.id,\n kind: 'instance',\n ...(input.parentId ? { parentId: input.parentId } : {}),\n active: input.active ?? defaults?.active ?? true,\n ...(input.shadow ?? defaults?.shadow ? { shadow: structuredClone(input.shadow ?? defaults?.shadow) } : {}),\n prefab: {\n prefabId: input.prefabAsset.id,\n ...(input.prefabAsset.guid ? { prefabGuid: input.prefabAsset.guid } : {}),\n sourceAssetId,\n },\n ...(input.metadata ? { metadata: { ...input.metadata } } : {}),\n ...(input.overrides !== undefined ? { overrides: input.overrides } : {}),\n components: [\n input.transform,\n {\n type: 'ModelRenderer',\n assetId: sourceAssetId,\n },\n ],\n };\n}\n\nexport function createEditorScenePrefabDefinitionFromGameObject<\n TDocument extends EditorSceneDocument,\n>(\n document: TDocument,\n gameObjectId: string,\n options: {\n id?: string;\n guid?: string;\n createGuid?: () => string;\n displayName?: string;\n category?: string;\n defaults?: EditorScenePrefabDefaults;\n metadata?: Record<string, unknown>;\n } = {},\n): EditorSceneAsset<unknown> | null {\n const gameObject = findEditorSceneGameObject(document, gameObjectId);\n if (!gameObject) return null;\n const modelRenderer = findEditorSceneModelRenderer(gameObject);\n const sourceAssetId = readEditorSceneNonEmptyString(modelRenderer?.assetId);\n if (!sourceAssetId) return null;\n const sourceAsset = document.assets.find(asset => asset.id === sourceAssetId);\n if (!sourceAsset || isEditorScenePrefabAsset(sourceAsset)) return null;\n\n const displayName = options.displayName\n ?? createEditorScenePrefabDisplayName({ id: gameObject.id, displayName: gameObject.name ?? sourceAsset.displayName });\n return createEditorScenePrefabDefinitionFromAsset(sourceAsset, {\n id: options.id ?? createUniqueEditorScenePrefabAssetId(document, `${gameObject.id}-prefab`),\n guid: options.guid ?? options.createGuid?.() ?? createEditorScenePrefabGuid(),\n displayName,\n category: options.category,\n defaults: options.defaults,\n metadata: options.metadata,\n });\n}\n\nexport function createEditorSceneDuplicatedPrefabDefinition<\n TDocument extends EditorSceneDocument,\n>(\n document: TDocument,\n prefabAssetId: string,\n options: {\n id?: string;\n guid?: string;\n createGuid?: () => string;\n displayName?: string;\n category?: string;\n metadata?: Record<string, unknown>;\n } = {},\n): EditorSceneAsset<unknown> | null {\n const source = document.assets.find(asset => asset.id === prefabAssetId);\n if (!source || !isEditorScenePrefabAsset(source)) return null;\n const sourcePrefab = structuredClone(source.prefab);\n const displayName = options.displayName\n ?? createUniqueEditorScenePrefabDisplayName(\n document.assets.map(asset => asset.displayName ?? asset.id),\n `${source.displayName ?? source.id} Copy`,\n );\n return {\n ...structuredClone(source),\n id: options.id ?? createUniqueEditorScenePrefabAssetId(document, `${source.id}_copy`),\n guid: options.guid ?? options.createGuid?.() ?? createEditorScenePrefabGuid(),\n displayName,\n category: options.category ?? source.category,\n prefab: {\n ...sourcePrefab,\n ...(sourcePrefab.defaults ? { defaults: { ...sourcePrefab.defaults } } : {}),\n },\n ...(options.metadata ? { metadata: { ...options.metadata } } : {}),\n };\n}\n\nexport function readEditorScenePrefabOverrideMaterialPath(path: string): string | null {\n if (!path.startsWith(EDITOR_SCENE_PREFAB_OVERRIDE_FIELD_PATH_PREFIX)) return null;\n const materialPath = path.slice(EDITOR_SCENE_PREFAB_OVERRIDE_FIELD_PATH_PREFIX.length);\n return isEditorSceneArtistMaterialPatchPath(materialPath) ? materialPath : null;\n}\n\nexport function isEditorScenePrefabOverridePath(path: string): boolean {\n return readEditorScenePrefabOverrideMaterialPath(path) != null;\n}\n\nexport function isEditorScenePrefabCoreMaterialOverridePath(path: string): boolean {\n const materialPath = readEditorScenePrefabOverrideMaterialPath(path);\n if (!materialPath) return false;\n if (materialPath.endsWith('.materialAssetId')) return true;\n const profilePath = readEditorScenePrefabOverrideProfileFieldPath(path);\n return profilePath != null && EDITOR_SCENE_PREFAB_CORE_MATERIAL_OVERRIDE_PROFILE_FIELD_PATHS.has(profilePath);\n}\n\nexport function isEditorScenePrefabMaterialAssetIdOverridePath(path: string): boolean {\n return path.startsWith(EDITOR_SCENE_PREFAB_OVERRIDE_FIELD_PATH_PREFIX)\n && path.endsWith('.materialAssetId')\n && isEditorScenePrefabCoreMaterialOverridePath(path);\n}\n\nexport function readEditorScenePrefabMaterialOverrideBinding<\n TBinding extends EditorSceneMaterialBinding = EditorSceneMaterialBinding,\n>(\n prefabAsset: Pick<EditorSceneAsset, 'prefab'>,\n target: { slotId?: string; ownerNodePath?: string },\n): TBinding | undefined {\n if (target.slotId) {\n return readEditorSceneMaterialBindingConfig<TBinding>(prefabAsset.prefab?.overrides?.materialSlotBindings?.[target.slotId]);\n }\n return undefined;\n}\n\nexport function readEditorScenePrefabOverrideProfileFieldPath(path: string): string | null {\n const materialPath = readEditorScenePrefabOverrideMaterialPath(path);\n if (!materialPath) return null;\n const marker = '.override.';\n const markerIndex = materialPath.lastIndexOf(marker);\n if (markerIndex < 0) return null;\n const profilePath = materialPath.slice(markerIndex + marker.length);\n return profilePath ? `profile.${profilePath}` : null;\n}\n\nexport function patchEditorScenePrefabOverride<\n TAsset extends EditorSceneAsset = EditorSceneAsset,\n>(\n prefabAsset: TAsset,\n path: string,\n value: unknown,\n): TAsset {\n const materialPath = readEditorScenePrefabOverrideMaterialPath(path);\n if (!materialPath || !isEditorScenePrefabAsset(prefabAsset)) return prefabAsset;\n const segments = splitEditorScenePrefabOverrideFieldPath(materialPath);\n if (!segments) return prefabAsset;\n\n const next = structuredClone(prefabAsset) as TAsset;\n next.prefab = structuredClone(next.prefab ?? prefabAsset.prefab);\n applyEditorScenePrefabOverrideJsonPatch(next.prefab as unknown as Record<string, unknown>, segments, value);\n const prunedOverrides = pruneEditorScenePrefabOverrides(next.prefab?.overrides);\n if (prunedOverrides) {\n next.prefab!.overrides = prunedOverrides;\n } else {\n delete next.prefab!.overrides;\n }\n return JSON.stringify(next) === JSON.stringify(prefabAsset) ? prefabAsset : next;\n}\n\nexport function mergeEditorSceneMaterialBindingOverrides<TOverride = unknown>(\n base: EditorSceneMaterialBinding<TOverride> | null | undefined,\n override: EditorSceneMaterialBinding<TOverride> | null | undefined,\n): EditorSceneMaterialBinding<TOverride> | undefined {\n const baseMaterialAssetId = readEditorSceneNonEmptyString(base?.materialAssetId);\n const overrideMaterialAssetId = readEditorSceneNonEmptyString(override?.materialAssetId);\n const profile = mergeArtistMaterialProfiles(\n base?.override as ArtistMaterialProfile | null | undefined,\n override?.override as ArtistMaterialProfile | null | undefined,\n ) as TOverride;\n return pruneEditorSceneMaterialBinding({\n ...(overrideMaterialAssetId ?? baseMaterialAssetId\n ? { materialAssetId: overrideMaterialAssetId ?? baseMaterialAssetId }\n : {}),\n ...(hasEditorSceneObjectFields(profile) ? { override: profile } : {}),\n });\n}\n\nexport function mergeEditorScenePrefabOverrides<TOverride = unknown>(\n base: EditorScenePrefabOverrides<TOverride> | null | undefined,\n override: EditorScenePrefabOverrides<TOverride> | null | undefined,\n): EditorScenePrefabOverrides<TOverride> | undefined {\n const next: EditorScenePrefabOverrides<TOverride> = {};\n const materialBinding = mergeEditorSceneMaterialBindingOverrides(base?.materialBinding, override?.materialBinding);\n if (materialBinding) next.materialBinding = materialBinding;\n\n const materialSlotBindings = mergeEditorSceneMaterialBindingRecords(\n base?.materialSlotBindings,\n override?.materialSlotBindings,\n );\n if (materialSlotBindings) next.materialSlotBindings = materialSlotBindings;\n\n return hasEditorSceneObjectFields(next) ? next : undefined;\n}\n\nexport function resolveEditorScenePrefabInstanceEffectiveOverrides<\n TDocument extends EditorSceneDocument,\n>(\n document: TDocument,\n gameObjectId: string,\n): EditorScenePrefabOverrides | undefined {\n const relation = resolveEditorScenePrefabInstanceRelation(document, gameObjectId);\n if (!relation.gameObject || !relation.prefab) return undefined;\n return mergeEditorScenePrefabOverrides(\n relation.definition?.prefab?.overrides,\n readEditorScenePrefabOverrides(relation.gameObject.overrides),\n );\n}\n\nexport function createEditorScenePrefabAgentSummary<\n TDocument extends EditorSceneDocument,\n>(\n document: TDocument,\n gameObjectId: string,\n): EditorScenePrefabAgentSummary | null {\n const relation = resolveEditorScenePrefabInstanceRelation(document, gameObjectId);\n if (!relation.gameObject || !relation.prefab) return null;\n const errorCount = relation.diagnostics.filter(diagnostic => diagnostic.severity === 'error').length;\n const warningCount = relation.diagnostics.filter(diagnostic => diagnostic.severity === 'warning').length;\n const sourceAssetId = resolveEditorScenePrefabSourceAssetId(relation.definition)\n ?? readEditorSceneNonEmptyString(relation.prefab.sourceAssetId)\n ?? undefined;\n const effectiveOverrides = resolveEditorScenePrefabInstanceEffectiveOverrides(document, gameObjectId);\n const summary: EditorScenePrefabAgentSummary = {\n kind: 'prefab-instance',\n status: errorCount > 0 ? 'error' : warningCount > 0 ? 'warning' : 'ok',\n prefabId: relation.prefab.prefabId,\n ...(relation.prefab.prefabGuid ? { prefabGuid: relation.prefab.prefabGuid } : {}),\n ...(readEditorSceneNonEmptyString(relation.definition?.displayName)\n ? { prefabDisplayName: readEditorSceneNonEmptyString(relation.definition?.displayName)! }\n : {}),\n ...(sourceAssetId ? { sourceAssetId } : {}),\n ...(readEditorSceneNonEmptyString(relation.sourceAsset?.guid) ? { sourceAssetGuid: readEditorSceneNonEmptyString(relation.sourceAsset?.guid)! } : {}),\n ...(readEditorSceneNonEmptyString(relation.sourceAsset?.displayName)\n ? { sourceAssetDisplayName: readEditorSceneNonEmptyString(relation.sourceAsset?.displayName)! }\n : {}),\n ...(readEditorSceneNonEmptyString(relation.prefab.sourceAssetId) ? { instanceSourceAssetId: readEditorSceneNonEmptyString(relation.prefab.sourceAssetId)! } : {}),\n diagnostics: relation.diagnostics.map(diagnostic => ({ ...diagnostic })),\n materialTargets: createEditorScenePrefabAgentMaterialTargets(relation.sourceAsset),\n ...(effectiveOverrides ? { effectiveOverrides } : {}),\n };\n return summary;\n}\n\nexport function resolveEditorScenePrefabInstanceRelation<\n TDocument extends EditorSceneDocument,\n>(\n document: TDocument,\n gameObjectId: string,\n): EditorScenePrefabInstanceRelation<TDocument['scene']['gameObjects'][number], TDocument['assets'][number]> {\n const gameObject = findEditorSceneGameObject(document, gameObjectId) as TDocument['scene']['gameObjects'][number] | null;\n const diagnostics: EditorScenePrefabRelationDiagnostic[] = [];\n const prefab = isEditorScenePrefabInstance(gameObject) ? gameObject.prefab : null;\n if (!gameObject || !prefab) {\n diagnostics.push({\n code: 'not-prefab-instance',\n severity: 'info',\n message: gameObject\n ? `GameObject \"${gameObject.id}\" is not a prefab instance.`\n : `GameObject \"${gameObjectId}\" was not found.`,\n });\n return {\n gameObject,\n prefab: null,\n definition: null,\n sourceAsset: null,\n diagnostics,\n };\n }\n\n const definition = document.assets.find(asset => asset.id === prefab.prefabId && isEditorScenePrefabAsset(asset)) as (\n TDocument['assets'][number] | undefined\n );\n if (!definition) {\n diagnostics.push({\n code: 'missing-prefab-definition',\n severity: 'error',\n message: `Prefab definition \"${prefab.prefabId}\" was not found.`,\n prefabId: prefab.prefabId,\n });\n }\n\n const expectedSourceAssetId = resolveEditorScenePrefabSourceAssetId(definition) ?? readEditorSceneNonEmptyString(prefab.sourceAssetId);\n if (definition && prefab.sourceAssetId && expectedSourceAssetId && prefab.sourceAssetId !== expectedSourceAssetId) {\n diagnostics.push({\n code: 'source-asset-mismatch',\n severity: 'warning',\n message: `Prefab instance source \"${prefab.sourceAssetId}\" does not match definition source \"${expectedSourceAssetId}\".`,\n prefabId: prefab.prefabId,\n expectedSourceAssetId,\n actualSourceAssetId: prefab.sourceAssetId,\n });\n }\n\n const sourceAsset = expectedSourceAssetId\n ? document.assets.find(asset => asset.id === expectedSourceAssetId) as (TDocument['assets'][number] | undefined)\n : undefined;\n if (expectedSourceAssetId && !sourceAsset) {\n diagnostics.push({\n code: 'missing-source-asset',\n severity: 'error',\n message: `Prefab source asset \"${expectedSourceAssetId}\" was not found.`,\n prefabId: prefab.prefabId,\n sourceAssetId: expectedSourceAssetId,\n });\n }\n\n if (expectedSourceAssetId) {\n const sourcePrefabIds = document.assets\n .filter(asset => isEditorScenePrefabAsset(asset) && resolveEditorScenePrefabSourceAssetId(asset) === expectedSourceAssetId)\n .map(asset => asset.id);\n if (sourcePrefabIds.length > 1) {\n diagnostics.push({\n code: 'duplicate-source-prefab',\n severity: 'info',\n message: `Source asset \"${expectedSourceAssetId}\" is referenced by ${sourcePrefabIds.length} prefab definitions.`,\n prefabId: prefab.prefabId,\n sourceAssetId: expectedSourceAssetId,\n });\n }\n }\n\n return {\n gameObject,\n prefab,\n definition: definition ?? null,\n sourceAsset: sourceAsset ?? null,\n diagnostics,\n };\n}\n\nfunction createEditorScenePrefabAgentMaterialTargets(\n sourceAsset: EditorSceneAsset | null,\n): EditorScenePrefabAgentMaterialTarget[] {\n const rawSlots = Array.isArray(sourceAsset?.metadata?.materialSlots) ? sourceAsset.metadata.materialSlots : [];\n const targets: EditorScenePrefabAgentMaterialTarget[] = [];\n for (const [index, rawSlot] of rawSlots.entries()) {\n const slot = readEditorScenePrefabAgentMaterialSlot(rawSlot);\n if (!slot) continue;\n const bindingPath = `prefab.overrides.materialSlotBindings.${slot.slotId}`;\n targets.push({\n kind: 'material-slot',\n label: slot.label ?? slot.materialName ?? slot.ownerNodePath ?? `Material Slot ${index + 1}`,\n bindingPath,\n materialAssetIdPath: `${bindingPath}.materialAssetId`,\n overridePath: `${bindingPath}.override`,\n slotId: slot.slotId,\n ownerNodePath: slot.ownerNodePath,\n ...(slot.sourceMaterialIndex != null ? { sourceMaterialIndex: slot.sourceMaterialIndex } : {}),\n ...(slot.materialName ? { sourceMaterialName: slot.materialName } : {}),\n });\n }\n return targets;\n}\n\nfunction readEditorScenePrefabAgentMaterialSlot(value: unknown): {\n slotId: string;\n ownerNodePath: string;\n label?: string;\n materialName?: string;\n sourceMaterialIndex?: number;\n} | null {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return null;\n const record = value as Record<string, unknown>;\n const ownerNodePath = normalizeEditorSceneMaterialSlotOwnerPath(\n readEditorSceneNonEmptyString(record.ownerNodePath) ?? '',\n );\n const slotId = readEditorSceneNonEmptyString(record.slotId);\n if (!slotId || !ownerNodePath) return null;\n const label = readEditorSceneNonEmptyString(record.label) ?? undefined;\n const materialName = readEditorSceneNonEmptyString(record.materialName) ?? undefined;\n const sourceMaterialIndex = Number.isInteger(record.sourceMaterialIndex) ? record.sourceMaterialIndex as number : undefined;\n return {\n slotId,\n ownerNodePath,\n ...(label ? { label } : {}),\n ...(materialName ? { materialName } : {}),\n ...(sourceMaterialIndex != null ? { sourceMaterialIndex } : {}),\n };\n}\n\nexport function readEditorSceneNodeKind(gameObject: EditorSceneGameObject): EditorSceneNodeKind {\n if (\n gameObject.kind === 'group'\n || gameObject.kind === 'instance'\n || gameObject.kind === 'transform'\n || gameObject.kind === 'primitive'\n ) {\n return gameObject.kind;\n }\n if (isEditorScenePrefabInstance(gameObject)) return 'instance';\n if (gameObject.primitive) return 'primitive';\n if (findEditorSceneModelRenderer(gameObject)) return 'instance';\n if (gameObject.transformType) return 'transform';\n return 'group';\n}\n\nexport function resolveEditorSceneGameObjectRendering(\n gameObject: Pick<EditorSceneGameObject, 'rendering'>,\n): EditorSceneResolvedGameObjectRendering | undefined {\n const rendering = gameObject.rendering && typeof gameObject.rendering === 'object' && !Array.isArray(gameObject.rendering)\n ? gameObject.rendering\n : undefined;\n const renderingGroupId = readEditorSceneGameObjectRenderingGroupId(rendering?.renderingGroupId);\n const alphaIndex = readEditorSceneFiniteNumber(rendering?.alphaIndex);\n const resolved: EditorSceneResolvedGameObjectRendering = {};\n if (renderingGroupId != null) resolved.renderingGroupId = renderingGroupId;\n if (alphaIndex != null) resolved.alphaIndex = alphaIndex;\n return Object.keys(resolved).length > 0 ? resolved : undefined;\n}\n\nexport function readEditorSceneGameObjectRenderingGroupId(\n value: unknown,\n): EditorSceneGameObjectRenderingGroupId | null {\n return value === 0 || value === 1 || value === 2 || value === 3 ? value : null;\n}\n\nexport function readEditorSceneGameObjectAlphaIndex(value: unknown): number | null {\n return readEditorSceneFiniteNumber(value);\n}\n\nfunction isEditorSceneTransformComponent(\n component: EditorSceneComponent,\n): component is EditorSceneTransformComponent {\n return component.type === 'Transform';\n}\n\nfunction isEditorSceneModelRendererComponent(\n component: EditorSceneComponent,\n): component is EditorSceneModelRendererComponent {\n return component.type === 'ModelRenderer';\n}\n\nfunction readEditorSceneFiniteNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n}\n\nfunction readEditorSceneNonEmptyString(value: unknown): string | null {\n return typeof value === 'string' && value.trim().length > 0 ? value.trim() : null;\n}\n\nfunction normalizeEditorScenePrefabEditableName(value: unknown): { ok: true; name: string } | { ok: false; message: string } {\n if (typeof value !== 'string') return { ok: false, message: 'Prefab name must be a string.' };\n const name = value.trim();\n if (!name) return { ok: false, message: 'Prefab name cannot be empty.' };\n if (name.length > 80) return { ok: false, message: 'Prefab name cannot be longer than 80 characters.' };\n if (/[\\u0000-\\u001f\\u007f/\\\\]/u.test(name)) {\n return { ok: false, message: 'Prefab name cannot contain control characters, /, or \\\\.' };\n }\n return { ok: true, name };\n}\n\nfunction findEditorSceneGameObject(\n document: EditorSceneDocument,\n gameObjectId: string,\n): EditorSceneGameObject | null {\n return document.scene.gameObjects.find(gameObject => gameObject.id === gameObjectId) ?? null;\n}\n\nfunction createEditorScenePrefabDisplayName(sourceAsset: Pick<EditorSceneAsset, 'id' | 'displayName'>): string {\n const displayName = readEditorSceneNonEmptyString(sourceAsset.displayName)\n ?? readEditorSceneNonEmptyString(sourceAsset.id)\n ?? 'Prefab';\n return `${displayName} Prefab`;\n}\n\nexport function createEditorScenePrefabGuid(): string {\n const randomId = globalThis.crypto?.randomUUID?.() ?? `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;\n return `prefab_${randomId}`;\n}\n\nexport function createUniqueEditorScenePrefabAssetId(\n document: EditorSceneDocument,\n preferredId: string,\n): string {\n const used = new Set(document.assets.map(asset => asset.id));\n const base = normalizeEditorScenePrefabIdentifierPart(preferredId) ?? 'prefab';\n if (!used.has(base)) return base;\n let suffix = 1;\n let candidate = `${base}_${suffix}`;\n while (used.has(candidate)) {\n suffix += 1;\n candidate = `${base}_${suffix}`;\n }\n return candidate;\n}\n\nfunction createUniqueEditorScenePrefabDisplayName(\n existingNames: readonly unknown[],\n preferredName: string,\n): string {\n const used = new Set(\n existingNames\n .map(name => readEditorSceneNonEmptyString(name))\n .filter((name): name is string => !!name),\n );\n if (!used.has(preferredName)) return preferredName;\n let suffix = 1;\n let candidate = `${preferredName} ${suffix}`;\n while (used.has(candidate)) {\n suffix += 1;\n candidate = `${preferredName} ${suffix}`;\n }\n return candidate;\n}\n\nexport function normalizeEditorScenePrefabIdentifierPart(value: unknown): string | null {\n const raw = readEditorSceneNonEmptyString(value);\n if (!raw) return null;\n const normalized = raw\n .replace(/\\s+/g, '_')\n .replace(/[^a-zA-Z0-9_:-]/g, '_')\n .replace(/_+/g, '_')\n .replace(/^_+|_+$/g, '');\n return normalized || null;\n}\n\nfunction splitEditorScenePrefabOverrideFieldPath(path: string): string[] | null {\n if (path === 'overrides.materialBinding.materialAssetId') {\n return ['overrides', 'materialBinding', 'materialAssetId'];\n }\n const rootOverridePrefix = 'overrides.materialBinding.override.';\n if (path.startsWith(rootOverridePrefix)) {\n const profilePath = path.slice(rootOverridePrefix.length);\n return splitEditorScenePrefabProfilePath(['overrides', 'materialBinding', 'override'], profilePath);\n }\n\n const slotMaterialAssetId = readEditorSceneMaterialSlotBindingSlotId(path, 'materialAssetId');\n if (slotMaterialAssetId) {\n return ['overrides', 'materialSlotBindings', slotMaterialAssetId, 'materialAssetId'];\n }\n const slotOverrideId = readEditorSceneMaterialSlotBindingSlotId(path, 'override');\n if (slotOverrideId) {\n const profilePath = readEditorSceneBindingOverrideProfilePath(path);\n return profilePath\n ? splitEditorScenePrefabProfilePath(['overrides', 'materialSlotBindings', slotOverrideId, 'override'], profilePath)\n : null;\n }\n\n return null;\n}\n\nfunction readEditorSceneBindingOverrideProfilePath(path: string): string | null {\n const marker = '.override.';\n const markerIndex = path.lastIndexOf(marker);\n if (markerIndex < 0) return null;\n const profilePath = path.slice(markerIndex + marker.length);\n return profilePath ? profilePath : null;\n}\n\nfunction splitEditorScenePrefabProfilePath(prefix: string[], profilePath: string): string[] | null {\n const profileSegments = profilePath.split('.').filter(Boolean);\n if (profileSegments.length === 0 || profileSegments.some(isUnsafeEditorScenePrefabOverridePathSegment)) return null;\n return [...prefix, ...profileSegments];\n}\n\nfunction applyEditorScenePrefabOverrideJsonPatch(\n target: Record<string, unknown>,\n segments: string[],\n value: unknown,\n): void {\n if (segments.some(isUnsafeEditorScenePrefabOverridePathSegment)) return;\n let cursor = target;\n for (const segment of segments.slice(0, -1)) {\n const current = cursor[segment];\n if (!current || typeof current !== 'object' || Array.isArray(current)) {\n cursor[segment] = {};\n }\n cursor = cursor[segment] as Record<string, unknown>;\n }\n const leaf = segments[segments.length - 1];\n if (!leaf) return;\n if (value == null) delete cursor[leaf];\n else cursor[leaf] = structuredClone(value);\n}\n\nfunction pruneEditorScenePrefabOverrides<TOverride = unknown>(\n overrides: unknown,\n): EditorScenePrefabOverrides<TOverride> | undefined {\n if (!overrides || typeof overrides !== 'object' || Array.isArray(overrides)) return undefined;\n const source = overrides as EditorScenePrefabOverrides<TOverride>;\n const next: EditorScenePrefabOverrides<TOverride> = {};\n\n const materialBinding = pruneEditorSceneMaterialBinding<TOverride>(source.materialBinding);\n if (materialBinding) next.materialBinding = materialBinding;\n\n const materialSlotBindings = pruneEditorSceneMaterialBindingRecord<TOverride>(source.materialSlotBindings);\n if (materialSlotBindings) next.materialSlotBindings = materialSlotBindings;\n\n return hasEditorSceneObjectFields(next) ? next : undefined;\n}\n\nfunction pruneEditorSceneMaterialBinding<TOverride = unknown>(\n binding: unknown,\n): EditorSceneMaterialBinding<TOverride> | undefined {\n if (!binding || typeof binding !== 'object' || Array.isArray(binding)) return undefined;\n const source = binding as EditorSceneMaterialBinding<TOverride>;\n const materialAssetId = readEditorSceneNonEmptyString(source.materialAssetId);\n const profile = mergeArtistMaterialProfiles(source.override as ArtistMaterialProfile | null | undefined) as TOverride;\n const next: EditorSceneMaterialBinding<TOverride> = {\n ...(materialAssetId ? { materialAssetId } : {}),\n ...(hasEditorSceneObjectFields(profile) ? { override: profile } : {}),\n };\n return hasEditorSceneObjectFields(next) ? next : undefined;\n}\n\nfunction pruneEditorSceneMaterialBindingRecord<TOverride = unknown>(\n record: unknown,\n): Record<string, EditorSceneMaterialBinding<TOverride>> | undefined {\n if (!record || typeof record !== 'object' || Array.isArray(record)) return undefined;\n const next: Record<string, EditorSceneMaterialBinding<TOverride>> = {};\n for (const [key, binding] of Object.entries(record)) {\n const normalizedKey = readEditorSceneNonEmptyString(key);\n if (!normalizedKey) continue;\n const prunedBinding = pruneEditorSceneMaterialBinding<TOverride>(binding);\n if (prunedBinding) next[normalizedKey] = prunedBinding;\n }\n return hasEditorSceneObjectFields(next) ? next : undefined;\n}\n\nfunction mergeEditorSceneMaterialBindingRecords<TOverride = unknown>(\n base: Record<string, EditorSceneMaterialBinding<TOverride> | undefined> | null | undefined,\n override: Record<string, EditorSceneMaterialBinding<TOverride> | undefined> | null | undefined,\n): Record<string, EditorSceneMaterialBinding<TOverride>> | undefined {\n const keys = new Set([\n ...Object.keys(base ?? {}),\n ...Object.keys(override ?? {}),\n ]);\n const next: Record<string, EditorSceneMaterialBinding<TOverride>> = {};\n for (const key of keys) {\n const binding = mergeEditorSceneMaterialBindingOverrides(base?.[key], override?.[key]);\n if (binding) next[key] = binding;\n }\n return hasEditorSceneObjectFields(next) ? next : undefined;\n}\n\nfunction readEditorScenePrefabOverrides(value: unknown): EditorScenePrefabOverrides | undefined {\n return pruneEditorScenePrefabOverrides(value);\n}\n\nfunction hasEditorSceneObjectFields(value: unknown): boolean {\n return !!value && typeof value === 'object' && !Array.isArray(value) && Object.keys(value).length > 0;\n}\n\nfunction isUnsafeEditorScenePrefabOverridePathSegment(segment: string): boolean {\n return segment === '__proto__' || segment === 'prototype' || segment === 'constructor';\n}\n"]}
|