@fps-games/editor 0.2.0-beta.2 → 0.2.0-beta.3

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.
Files changed (602) hide show
  1. package/dist/agent-bridge/capabilities/assets.js.map +1 -1
  2. package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
  3. package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -1
  4. package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
  5. package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
  6. package/dist/agent-bridge/capabilities/selection.js.map +1 -1
  7. package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
  8. package/dist/agent-bridge/capabilities/transform.js.map +1 -1
  9. package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
  10. package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
  11. package/dist/agent-bridge/capability-sources.js.map +1 -1
  12. package/dist/agent-bridge/diagnostics.js.map +1 -1
  13. package/dist/agent-bridge/index.js.map +1 -1
  14. package/dist/agent-bridge/register.js.map +1 -1
  15. package/dist/agent-bridge/shared.js.map +1 -1
  16. package/dist/agent-bridge/source-types.js.map +1 -1
  17. package/dist/authoring-apply.js.map +1 -1
  18. package/dist/build-info.json +48 -48
  19. package/dist/editor-plugin-agent-capabilities.js.map +1 -1
  20. package/dist/editor-plugin-hierarchy-command.js.map +1 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/internal/local-editor-lifecycle-operations.js.map +1 -1
  23. package/dist/local-editor-agent-actions.js.map +1 -1
  24. package/dist/local-editor-agent-bridge-transport.js.map +1 -1
  25. package/dist/local-editor-agent-bridge.js.map +1 -1
  26. package/dist/local-editor-agent-context.js.map +1 -1
  27. package/dist/local-editor-harness.d.ts +57 -1
  28. package/dist/local-editor-harness.d.ts.map +1 -1
  29. package/dist/local-editor-harness.js +129 -0
  30. package/dist/local-editor-harness.js.map +1 -1
  31. package/dist/local-editor-marker-graph.js.map +1 -1
  32. package/dist/local-editor-performance-stats.js.map +1 -1
  33. package/dist/local-editor-plugin-inspector.js.map +1 -1
  34. package/dist/local-editor-plugin-panel.js.map +1 -1
  35. package/dist/local-editor-scene-render-scheduler.js.map +1 -1
  36. package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
  37. package/dist/local-editor-viewport-render-coordinator.js.map +1 -1
  38. package/dist/playable-babylon-facade.js.map +1 -1
  39. package/dist/playable-babylon-outline-inspector.js.map +1 -1
  40. package/dist/playable-babylon-outline-runtime.js.map +1 -1
  41. package/dist/playable-babylon-rendering.js.map +1 -1
  42. package/dist/playable-local-editor-host.d.ts +36 -0
  43. package/dist/playable-local-editor-host.d.ts.map +1 -1
  44. package/dist/playable-local-editor-host.js.map +1 -1
  45. package/dist/playable-product-local-editor.js.map +1 -1
  46. package/dist/playable-product-projection-preview.js.map +1 -1
  47. package/dist/playable-product-rendering.js.map +1 -1
  48. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  49. package/dist/playable-product-scene-capabilities.js +49 -2
  50. package/dist/playable-product-scene-capabilities.js.map +1 -1
  51. package/dist/playable-runtime-babylon.js.map +1 -1
  52. package/dist/playable-runtime.js.map +1 -1
  53. package/dist/playable-sdk-upgrade-doctor.js.map +1 -1
  54. package/dist/playable-sdk-vite.js.map +1 -1
  55. package/dist/playable-sdk.js.map +1 -1
  56. package/dist/playable-standard-project.js.map +1 -1
  57. package/dist/static-shadow-cpu-worker.js.map +1 -1
  58. package/dist/vite.js.map +1 -1
  59. package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js.map +1 -1
  60. package/node_modules/@fps-games/babylon-renderer/dist/environment/index.js.map +1 -1
  61. package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js.map +1 -1
  62. package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js.map +1 -1
  63. package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
  64. package/node_modules/@fps-games/babylon-renderer/dist/lighting/directional-light-angles.js.map +1 -1
  65. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/apply.js.map +1 -1
  66. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/index.js.map +1 -1
  67. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/types.js.map +1 -1
  68. package/node_modules/@fps-games/babylon-renderer/dist/outlines/index.js.map +1 -1
  69. package/node_modules/@fps-games/babylon-renderer/dist/outlines/types.js.map +1 -1
  70. package/node_modules/@fps-games/babylon-renderer/dist/placement/index.js.map +1 -1
  71. package/node_modules/@fps-games/babylon-renderer/dist/placement/runtime-drop-position.js.map +1 -1
  72. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
  73. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
  74. package/node_modules/@fps-games/babylon-renderer/dist/post-process/index.js.map +1 -1
  75. package/node_modules/@fps-games/babylon-renderer/dist/post-process/profile.js.map +1 -1
  76. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
  77. package/node_modules/@fps-games/babylon-renderer/dist/post-process/volume-stack.js.map +1 -1
  78. package/node_modules/@fps-games/babylon-renderer/dist/reference.js.map +1 -1
  79. package/node_modules/@fps-games/babylon-renderer/dist/rendering/index.js.map +1 -1
  80. package/node_modules/@fps-games/babylon-renderer/dist/rendering/node-rendering.js.map +1 -1
  81. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js.map +1 -1
  82. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js.map +1 -1
  83. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
  84. package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-shaders.js.map +1 -1
  85. package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js.map +1 -1
  86. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js.map +1 -1
  87. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js.map +1 -1
  88. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js.map +1 -1
  89. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map +1 -1
  90. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-options.js.map +1 -1
  91. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js.map +1 -1
  92. package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js.map +1 -1
  93. package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
  94. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
  95. package/node_modules/@fps-games/editor-babylon/dist/edit-session.js.map +1 -1
  96. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js.map +1 -1
  97. package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -1
  98. package/node_modules/@fps-games/editor-babylon/dist/event-guard.js.map +1 -1
  99. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
  100. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid-layer.js.map +1 -1
  101. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js.map +1 -1
  102. package/node_modules/@fps-games/editor-babylon/dist/input-controller.js.map +1 -1
  103. package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.js.map +1 -1
  104. package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js.map +1 -1
  105. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
  106. package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
  107. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
  108. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
  109. package/node_modules/@fps-games/editor-babylon/dist/monitor.js.map +1 -1
  110. package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.js.map +1 -1
  111. package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js.map +1 -1
  112. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +1 -1
  113. package/node_modules/@fps-games/editor-babylon/dist/primitive-projection-instancing.js.map +1 -1
  114. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
  115. package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.js.map +1 -1
  116. package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js.map +1 -1
  117. package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.js.map +1 -1
  118. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  119. package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.js.map +1 -1
  120. package/node_modules/@fps-games/editor-babylon/dist/scene-camera-preview.js.map +1 -1
  121. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
  122. package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js.map +1 -1
  123. package/node_modules/@fps-games/editor-babylon/dist/scene-view-measurement-controller.js.map +1 -1
  124. package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js.map +1 -1
  125. package/node_modules/@fps-games/editor-babylon/dist/selection-controller.js.map +1 -1
  126. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
  127. package/node_modules/@fps-games/editor-babylon/dist/tool-controller.js.map +1 -1
  128. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
  129. package/node_modules/@fps-games/editor-babylon/dist/transform-solver.js.map +1 -1
  130. package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -1
  131. package/node_modules/@fps-games/editor-babylon/package.json +5 -5
  132. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  133. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-clipboard.js.map +1 -1
  134. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
  135. package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js.map +1 -1
  136. package/node_modules/@fps-games/editor-browser/dist/local-editor-root-ownership.js.map +1 -1
  137. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
  138. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
  139. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
  140. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
  141. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +1 -1
  142. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-auto-scroll.js.map +1 -1
  143. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +1 -1
  144. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  145. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
  146. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +1 -1
  147. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -1
  148. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  149. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
  150. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
  151. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
  152. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js.map +1 -1
  153. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  154. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-plugin-panel.js.map +1 -1
  155. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
  156. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
  157. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
  158. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
  159. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-auto-scroll.js.map +1 -1
  160. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
  161. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-preview.js.map +1 -1
  162. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-session.js.map +1 -1
  163. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
  164. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
  165. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  166. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
  167. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  168. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
  169. package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.js.map +1 -1
  170. package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.js.map +1 -1
  171. package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.js.map +1 -1
  172. package/node_modules/@fps-games/editor-browser/package.json +4 -4
  173. package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +1 -1
  174. package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +1 -1
  175. package/node_modules/@fps-games/editor-core/dist/authoring-source.js.map +1 -1
  176. package/node_modules/@fps-games/editor-core/dist/document-adapter.js.map +1 -1
  177. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
  178. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +6 -1
  179. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  180. package/node_modules/@fps-games/editor-core/dist/editor-session.js +9 -0
  181. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  182. package/node_modules/@fps-games/editor-core/dist/events.d.ts +1 -1
  183. package/node_modules/@fps-games/editor-core/dist/events.d.ts.map +1 -1
  184. package/node_modules/@fps-games/editor-core/dist/events.js.map +1 -1
  185. package/node_modules/@fps-games/editor-core/dist/field-schema/index.js.map +1 -1
  186. package/node_modules/@fps-games/editor-core/dist/field-schema/resolver.js.map +1 -1
  187. package/node_modules/@fps-games/editor-core/dist/field-schema/schema.js.map +1 -1
  188. package/node_modules/@fps-games/editor-core/dist/field-schema/types.js.map +1 -1
  189. package/node_modules/@fps-games/editor-core/dist/field-schema/validators.js.map +1 -1
  190. package/node_modules/@fps-games/editor-core/dist/host-services.js.map +1 -1
  191. package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
  192. package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
  193. package/node_modules/@fps-games/editor-core/dist/lifecycle.js.map +1 -1
  194. package/node_modules/@fps-games/editor-core/dist/marker-graph.js.map +1 -1
  195. package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
  196. package/node_modules/@fps-games/editor-core/dist/scene-view-input.js.map +1 -1
  197. package/node_modules/@fps-games/editor-core/dist/selection-strategy.js.map +1 -1
  198. package/node_modules/@fps-games/editor-core/dist/serialized-object.js.map +1 -1
  199. package/node_modules/@fps-games/editor-core/dist/transform-command.js.map +1 -1
  200. package/node_modules/@fps-games/editor-core/dist/transform-gizmo.js.map +1 -1
  201. package/node_modules/@fps-games/editor-core/dist/transform-operation-policy.js.map +1 -1
  202. package/node_modules/@fps-games/editor-core/dist/transform-operations.js.map +1 -1
  203. package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
  204. package/node_modules/@fps-games/editor-core/package.json +6 -6
  205. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +1 -1
  206. package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
  207. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  208. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/drop-cache.js.map +1 -1
  209. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/index.js.map +1 -1
  210. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.d.ts.map +1 -1
  211. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js +28 -5
  212. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js.map +1 -1
  213. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts +1 -0
  214. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts.map +1 -1
  215. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.js.map +1 -1
  216. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.js.map +1 -1
  217. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js.map +1 -1
  218. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js.map +1 -1
  219. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/managed-facade.js.map +1 -1
  220. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.d.ts.map +1 -1
  221. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js +13 -1
  222. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js.map +1 -1
  223. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
  224. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
  225. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +1 -0
  226. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
  227. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +58 -23
  228. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
  229. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.js.map +1 -1
  230. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
  231. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
  232. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js.map +1 -1
  233. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.js.map +1 -1
  234. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js.map +1 -1
  235. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/identity.js.map +1 -1
  236. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js.map +1 -1
  237. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/managed-runtime-instance.js.map +1 -1
  238. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js.map +1 -1
  239. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/runtime-scene.js.map +1 -1
  240. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/types.js.map +1 -1
  241. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/index.js.map +1 -1
  242. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.d.ts.map +1 -1
  243. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js +3 -0
  244. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js.map +1 -1
  245. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/transport.js.map +1 -1
  246. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts +1 -0
  247. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts.map +1 -1
  248. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.js.map +1 -1
  249. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts +1 -0
  250. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts.map +1 -1
  251. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js +7 -1
  252. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js.map +1 -1
  253. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/constants.js.map +1 -1
  254. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/drift.js.map +1 -1
  255. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/index.js.map +1 -1
  256. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/runtime-transform-patch.js.map +1 -1
  257. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/source.js.map +1 -1
  258. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/client.js.map +1 -1
  259. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/index.js.map +1 -1
  260. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/types.js.map +1 -1
  261. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js.map +1 -1
  262. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/index.js.map +1 -1
  263. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/payload.js.map +1 -1
  264. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/response.js.map +1 -1
  265. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js.map +1 -1
  266. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.js.map +1 -1
  267. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/adapter-dispatcher.js.map +1 -1
  268. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/index.js.map +1 -1
  269. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/payload.js.map +1 -1
  270. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/project-asset-adapter.js.map +1 -1
  271. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.js.map +1 -1
  272. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/readers.js.map +1 -1
  273. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/types.js.map +1 -1
  274. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/binding.js.map +1 -1
  275. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/fields.js.map +1 -1
  276. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/index.js.map +1 -1
  277. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/math.js.map +1 -1
  278. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/pan.js.map +1 -1
  279. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-format.js.map +1 -1
  280. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-state.js.map +1 -1
  281. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-storage.js.map +1 -1
  282. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-text.js.map +1 -1
  283. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/rig.js.map +1 -1
  284. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/save-patch.js.map +1 -1
  285. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/snapshot.js.map +1 -1
  286. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/types.js.map +1 -1
  287. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/index.js.map +1 -1
  288. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/transform.js.map +1 -1
  289. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/types.js.map +1 -1
  290. package/node_modules/@fps-games/editor-playable-sdk/dist/core-contracts/index.js.map +1 -1
  291. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  292. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
  293. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
  294. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js.map +1 -1
  295. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/resolver.js.map +1 -1
  296. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js.map +1 -1
  297. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/types.js.map +1 -1
  298. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js.map +1 -1
  299. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
  300. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/camera-section.js.map +1 -1
  301. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-property.js.map +1 -1
  302. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
  303. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/format.js.map +1 -1
  304. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js.map +1 -1
  305. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-fields.js.map +1 -1
  306. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-sections.js.map +1 -1
  307. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/marker-section.js.map +1 -1
  308. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/object-assembly.js.map +1 -1
  309. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/readonly.js.map +1 -1
  310. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-sections.js.map +1 -1
  311. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-summary.js.map +1 -1
  312. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime.js.map +1 -1
  313. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/safe-value.js.map +1 -1
  314. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/types.js.map +1 -1
  315. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/validation.js.map +1 -1
  316. package/node_modules/@fps-games/editor-playable-sdk/dist/internal/local-harness.js.map +1 -1
  317. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/binding.js.map +1 -1
  318. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/fields.js.map +1 -1
  319. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/index.js.map +1 -1
  320. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.js.map +1 -1
  321. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/save-patch.js.map +1 -1
  322. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/snapshot.js.map +1 -1
  323. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/storage.js.map +1 -1
  324. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/text.js.map +1 -1
  325. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/types.js.map +1 -1
  326. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/index.js.map +1 -1
  327. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/math.js.map +1 -1
  328. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/profile.js.map +1 -1
  329. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/types.js.map +1 -1
  330. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +1 -1
  331. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
  332. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
  333. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  334. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +5 -0
  335. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  336. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  337. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +1 -1
  338. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  339. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  340. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  341. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/loading-overlay.js.map +1 -1
  342. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +18 -0
  343. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
  344. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +60 -1
  345. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
  346. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/timing.js.map +1 -1
  347. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
  348. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/facade.js.map +1 -1
  349. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/game-objects.js.map +1 -1
  350. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/geometry.js.map +1 -1
  351. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/index.js.map +1 -1
  352. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
  353. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
  354. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/default-assets.js.map +1 -1
  355. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.d.ts.map +1 -1
  356. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js +28 -2
  357. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js.map +1 -1
  358. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/duplicate.js.map +1 -1
  359. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/index.js.map +1 -1
  360. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
  361. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/paths.js.map +1 -1
  362. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/preview.js.map +1 -1
  363. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/profile.js.map +1 -1
  364. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.d.ts.map +1 -1
  365. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js +26 -9
  366. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js.map +1 -1
  367. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/resolver.js.map +1 -1
  368. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
  369. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
  370. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +0 -3
  371. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
  372. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/text.js.map +1 -1
  373. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts +8 -1
  374. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts.map +1 -1
  375. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.js.map +1 -1
  376. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
  377. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.js.map +1 -1
  378. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/json-field.js.map +1 -1
  379. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
  380. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.js.map +1 -1
  381. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/transform.js.map +1 -1
  382. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.js.map +1 -1
  383. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +1 -1
  384. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
  385. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +18 -1
  386. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
  387. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/index.js.map +1 -1
  388. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts +2 -0
  389. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts.map +1 -1
  390. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.js.map +1 -1
  391. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
  392. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
  393. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
  394. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
  395. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
  396. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/shadow-inspector.js.map +1 -1
  397. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/source-structure-inspector.js.map +1 -1
  398. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
  399. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/structure.js.map +1 -1
  400. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/types.js.map +1 -1
  401. package/node_modules/@fps-games/editor-playable-sdk/dist/product/asset-manager.js.map +1 -1
  402. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal-scene-feature.js.map +1 -1
  403. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
  404. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
  405. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +1 -0
  406. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
  407. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +3 -1
  408. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
  409. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
  410. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
  411. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-asset-actions.js.map +1 -1
  412. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
  413. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/draft.js.map +1 -1
  414. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/index.js.map +1 -1
  415. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
  416. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/route.js.map +1 -1
  417. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
  418. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js.map +1 -1
  419. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.js.map +1 -1
  420. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/index.js.map +1 -1
  421. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
  422. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
  423. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +13 -1
  424. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
  425. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
  426. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
  427. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
  428. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/artifacts.js.map +1 -1
  429. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  430. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.js.map +1 -1
  431. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
  432. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/index.js.map +1 -1
  433. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
  434. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
  435. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/validation.js.map +1 -1
  436. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js.map +1 -1
  437. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.js.map +1 -1
  438. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
  439. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js.map +1 -1
  440. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/patch.js.map +1 -1
  441. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/types.js.map +1 -1
  442. package/node_modules/@fps-games/editor-playable-sdk/dist/session/classification.js.map +1 -1
  443. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
  444. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js.map +1 -1
  445. package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.js.map +1 -1
  446. package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.js.map +1 -1
  447. package/node_modules/@fps-games/editor-playable-sdk/dist/session/object-command-facade.js.map +1 -1
  448. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
  449. package/node_modules/@fps-games/editor-playable-sdk/dist/session/property-patches.js.map +1 -1
  450. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
  451. package/node_modules/@fps-games/editor-playable-sdk/dist/session/system-defaults.js.map +1 -1
  452. package/node_modules/@fps-games/editor-playable-sdk/dist/session/transform.js.map +1 -1
  453. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
  454. package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.js.map +1 -1
  455. package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.js.map +1 -1
  456. package/node_modules/@fps-games/editor-playable-sdk/dist/shared/http.js.map +1 -1
  457. package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.js.map +1 -1
  458. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js.map +1 -1
  459. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js.map +1 -1
  460. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/host.js.map +1 -1
  461. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js.map +1 -1
  462. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  463. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/report.js.map +1 -1
  464. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.js.map +1 -1
  465. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/asset-authoring.js.map +1 -1
  466. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts +1 -0
  467. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts.map +1 -1
  468. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js +1 -0
  469. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js.map +1 -1
  470. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js.map +1 -1
  471. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js.map +1 -1
  472. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +6 -5
  473. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
  474. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
  475. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
  476. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts +3 -1
  477. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts.map +1 -1
  478. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js +37 -8
  479. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js.map +1 -1
  480. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/path-write-coordinator.js.map +1 -1
  481. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts +4 -3
  482. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
  483. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +14 -1
  484. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
  485. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +5 -4
  486. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
  487. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
  488. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +3 -2
  489. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
  490. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +2 -11
  491. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
  492. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +8 -7
  493. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  494. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +84 -6
  495. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  496. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts +2 -1
  497. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts.map +1 -1
  498. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.js.map +1 -1
  499. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +4 -3
  500. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
  501. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +1 -4
  502. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
  503. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +1 -1
  504. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +0 -33
  505. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
  506. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
  507. package/node_modules/@fps-games/editor-playable-sdk/package.json +9 -6
  508. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
  509. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +1 -1
  510. package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
  511. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  512. package/node_modules/@fps-games/editor-protocol/dist/marker-graph.js.map +1 -1
  513. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  514. package/node_modules/@fps-games/editor-tooling/dist/contributions.js.map +1 -1
  515. package/node_modules/@fps-games/editor-tooling/dist/data-object.js.map +1 -1
  516. package/node_modules/@fps-games/editor-tooling/dist/index.js.map +1 -1
  517. package/node_modules/@fps-games/editor-tooling/dist/migration.js.map +1 -1
  518. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
  519. package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
  520. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  521. package/node_modules/@fps-games/playable-assets/dist/identity.js.map +1 -1
  522. package/node_modules/@fps-games/playable-assets/dist/index.d.ts +1 -0
  523. package/node_modules/@fps-games/playable-assets/dist/index.d.ts.map +1 -1
  524. package/node_modules/@fps-games/playable-assets/dist/index.js +1 -0
  525. package/node_modules/@fps-games/playable-assets/dist/index.js.map +1 -1
  526. package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts +2 -0
  527. package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts.map +1 -0
  528. package/node_modules/@fps-games/playable-assets/dist/portable-path.js +25 -0
  529. package/node_modules/@fps-games/playable-assets/dist/portable-path.js.map +1 -0
  530. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  531. package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
  532. package/node_modules/@fps-games/playable-contracts/dist/marker-graph-validation.js.map +1 -1
  533. package/node_modules/@fps-games/playable-contracts/dist/marker-graph.js.map +1 -1
  534. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  535. package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
  536. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-authoring.js.map +1 -1
  537. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-types.js.map +1 -1
  538. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
  539. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-values.js.map +1 -1
  540. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile.js.map +1 -1
  541. package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
  542. package/node_modules/@fps-games/playable-rendering/dist/shadow-quality.js.map +1 -1
  543. package/node_modules/@fps-games/playable-rendering/dist/shadow-runtime.js.map +1 -1
  544. package/node_modules/@fps-games/playable-rendering/dist/shadow-settings.js.map +1 -1
  545. package/node_modules/@fps-games/playable-rendering/dist/shadow-types.js.map +1 -1
  546. package/node_modules/@fps-games/playable-rendering/dist/shadow-validation.js.map +1 -1
  547. package/node_modules/@fps-games/playable-rendering/dist/value.js.map +1 -1
  548. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  549. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
  550. package/node_modules/@fps-games/playable-runtime/dist/index.js.map +1 -1
  551. package/node_modules/@fps-games/playable-runtime/dist/runtime-data.js.map +1 -1
  552. package/node_modules/@fps-games/playable-runtime/dist/runtime.js.map +1 -1
  553. package/node_modules/@fps-games/playable-runtime/dist/standard-plugins.js.map +1 -1
  554. package/node_modules/@fps-games/playable-runtime/dist/tokens.js.map +1 -1
  555. package/node_modules/@fps-games/playable-runtime/dist/types.js.map +1 -1
  556. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  557. package/node_modules/@fps-games/playable-runtime-data/dist/index.js.map +1 -1
  558. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  559. package/node_modules/@fps-games/playable-scene/dist/index.js.map +1 -1
  560. package/node_modules/@fps-games/playable-scene/dist/transform-math.js.map +1 -1
  561. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  562. package/node_modules/@fps-games/plugin-api/dist/index.js.map +1 -1
  563. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  564. package/node_modules/@fps-games/plugin-assets/dist/reference.js.map +1 -1
  565. package/node_modules/@fps-games/plugin-assets/dist/runtime.js.map +1 -1
  566. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  567. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  568. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  569. package/node_modules/@fps-games/plugin-assets/package.json +5 -5
  570. package/node_modules/@fps-games/plugin-host/dist/index.js.map +1 -1
  571. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  572. package/node_modules/@fps-games/plugin-markers/dist/reference.js.map +1 -1
  573. package/node_modules/@fps-games/plugin-markers/dist/runtime.js.map +1 -1
  574. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  575. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  576. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  577. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  578. package/node_modules/@fps-games/plugin-materials/dist/reference.js.map +1 -1
  579. package/node_modules/@fps-games/plugin-materials/dist/runtime.js.map +1 -1
  580. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  581. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  582. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  583. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  584. package/node_modules/@fps-games/plugin-rendering/dist/reference.js.map +1 -1
  585. package/node_modules/@fps-games/plugin-rendering/dist/runtime.js.map +1 -1
  586. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  587. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  588. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  589. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  590. package/node_modules/@fps-games/plugin-scene/dist/reference.js.map +1 -1
  591. package/node_modules/@fps-games/plugin-scene/dist/runtime.js.map +1 -1
  592. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  593. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  594. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  595. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  596. package/node_modules/@fps-games/plugin-shadows/dist/reference.js.map +1 -1
  597. package/node_modules/@fps-games/plugin-shadows/dist/runtime.js.map +1 -1
  598. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  599. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  600. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  601. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  602. package/package.json +27 -19
@@ -1 +1 @@
1
- {"version":3,"file":"marker-graph.js","sourceRoot":"","sources":["../src/marker-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marker-graph.js","sourceRoot":"","sources":["../src/marker-graph.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n SPATIAL_MARKER_GRAPH_SCHEMA_VERSION,\n type SpatialMarkerGeometry,\n type SpatialMarkerGraph,\n type SpatialMarkerNode,\n type SpatialMarkerTargetRef,\n type SpatialMarkerTypeDefinition,\n type SpatialRelation,\n type SpatialRelationEndpoint,\n type SpatialRelationTypeDefinition,\n} from '@fps-games/editor-protocol';\n\nexport type EditorCoreMarkerGraphCommand =\n | {\n type: 'marker.create-box';\n marker: SpatialMarkerNode;\n parentId?: string | null;\n }\n | {\n type: 'marker.update';\n markerId: string;\n patch: Partial<Omit<SpatialMarkerNode, 'id'>>;\n }\n | {\n type: 'marker.delete';\n markerId: string;\n }\n | {\n type: 'relation.create';\n relation: SpatialRelation;\n }\n | {\n type: 'relation.create-many';\n relations: SpatialRelation[];\n }\n | {\n type: 'relation.delete';\n relationId: string;\n }\n | {\n type: 'relation.delete-many';\n relationIds: string[];\n }\n | {\n type: 'relation.reverse';\n relationId: string;\n }\n | {\n type: 'marker.sync-from-scene';\n reason?: string;\n }\n | {\n type: 'marker-type.create';\n definition: SpatialMarkerTypeDefinition;\n }\n | {\n type: 'marker-type.update';\n typeId: string;\n patch: Partial<Omit<SpatialMarkerTypeDefinition, 'type'>>;\n }\n | {\n type: 'marker-type.delete';\n typeId: string;\n };\n\nexport interface EditorCoreMarkerGraphGameObjectLike {\n id: string;\n name?: string | null;\n parentId?: string | null;\n marker?: unknown;\n}\n\nexport interface EditorCoreMarkerGraphDocumentLike<TGameObject extends EditorCoreMarkerGraphGameObjectLike = EditorCoreMarkerGraphGameObjectLike> {\n scene: {\n gameObjects: readonly TGameObject[];\n markerGraph?: SpatialMarkerGraph | null;\n };\n}\n\nexport interface EditorCoreMarkerGraphCommandNormalizeOptions {\n sanitizeMarkerGameObjectId?: (value: string) => string;\n}\n\nexport interface EditorCoreMarkerGraphTypeCatalogOptions {\n builtInMarkerTypes?: readonly SpatialMarkerTypeDefinition[];\n}\n\nexport interface EditorCoreMarkerGraphRelationCatalogOptions {\n relationTypes?: readonly SpatialRelationTypeDefinition[];\n}\n\nexport interface EditorCoreMarkerGraphReducerOptions extends EditorCoreMarkerGraphTypeCatalogOptions {}\n\nexport interface EditorCoreMarkerGraphCommandSupportOptions<TGameObject extends EditorCoreMarkerGraphGameObjectLike = EditorCoreMarkerGraphGameObjectLike>\n extends EditorCoreMarkerGraphTypeCatalogOptions {\n isMarkerGameObject?: (gameObject: TGameObject | null | undefined) => boolean;\n}\n\nexport function getEditorSceneMarkerTypeCatalogFromGraph(\n graph?: SpatialMarkerGraph | null,\n options: EditorCoreMarkerGraphTypeCatalogOptions = {},\n): SpatialMarkerTypeDefinition[] {\n const definitions = new Map<string, SpatialMarkerTypeDefinition>();\n for (const definition of options.builtInMarkerTypes ?? []) {\n definitions.set(definition.type, cloneBuiltInMarkerTypeDefinition(definition));\n }\n for (const override of readMarkerTypeOverrides(graph)) {\n const builtIn = definitions.get(override.type) ?? null;\n definitions.set(override.type, mergeMarkerTypeDefinition(builtIn, override));\n }\n return [...definitions.values()];\n}\n\nexport function getEditorSceneRelationTypeCatalog(\n options: EditorCoreMarkerGraphRelationCatalogOptions = {},\n): SpatialRelationTypeDefinition[] {\n return (options.relationTypes ?? []).map(definition => ({ ...definition }));\n}\n\nexport function cloneMarkerTypeDefinition(definition: SpatialMarkerTypeDefinition): SpatialMarkerTypeDefinition {\n return structuredClone(definition);\n}\n\nexport function cloneBuiltInMarkerTypeDefinition(definition: SpatialMarkerTypeDefinition): SpatialMarkerTypeDefinition {\n return {\n ...cloneMarkerTypeDefinition(definition),\n metadata: {\n ...(definition.metadata ?? {}),\n builtIn: true,\n },\n };\n}\n\nexport function mergeMarkerTypeDefinition(\n builtIn: SpatialMarkerTypeDefinition | null,\n override: SpatialMarkerTypeDefinition,\n): SpatialMarkerTypeDefinition {\n const base = builtIn ?? null;\n return {\n ...(base ?? {}),\n ...cloneMarkerTypeDefinition(override),\n type: override.type,\n label: override.label || base?.label || override.type,\n metadata: {\n ...(base?.metadata ?? {}),\n ...(override.metadata ?? {}),\n builtIn: base?.metadata?.builtIn === true,\n },\n };\n}\n\nexport function createMarkerType(\n graph: SpatialMarkerGraph,\n definition: SpatialMarkerTypeDefinition,\n options: EditorCoreMarkerGraphTypeCatalogOptions = {},\n): SpatialMarkerGraph {\n if (!isMarkerTypeDefinitionValid(definition)) return graph;\n if (getBuiltInMarkerType(definition.type, options)) return graph;\n const overrides = readMarkerTypeOverrides(graph);\n if (overrides.some(candidate => candidate.type === definition.type)) return graph;\n return writeMarkerTypeOverrides(graph, [\n ...overrides,\n createAuthoredMarkerTypeDefinition(definition, false),\n ]);\n}\n\nexport function updateMarkerType(\n graph: SpatialMarkerGraph,\n typeId: string,\n patch: Partial<Omit<SpatialMarkerTypeDefinition, 'type'>>,\n options: EditorCoreMarkerGraphTypeCatalogOptions = {},\n): SpatialMarkerGraph {\n const normalizedTypeId = typeId.trim();\n if (!normalizedTypeId) return graph;\n const builtIn = getBuiltInMarkerType(normalizedTypeId, options);\n const overrides = readMarkerTypeOverrides(graph);\n const authored = overrides.find(definition => definition.type === normalizedTypeId) ?? null;\n if (!builtIn && !authored) return graph;\n const base = authored ?? builtIn;\n if (!base) return graph;\n const nextDefinition = createAuthoredMarkerTypeDefinition({\n ...base,\n ...patch,\n type: normalizedTypeId,\n label: typeof patch.label === 'string' && patch.label.trim()\n ? patch.label.trim()\n : base.label || normalizedTypeId,\n }, !!builtIn);\n return writeMarkerTypeOverrides(graph, [\n ...overrides.filter(definition => definition.type !== normalizedTypeId),\n nextDefinition,\n ]);\n}\n\nexport function deleteMarkerType(\n graph: SpatialMarkerGraph,\n typeId: string,\n options: EditorCoreMarkerGraphTypeCatalogOptions = {},\n): SpatialMarkerGraph {\n const normalizedTypeId = typeId.trim();\n if (!normalizedTypeId || isBuiltInMarkerType(normalizedTypeId, options)) return graph;\n if (graph.markers.some(marker => marker.markerType === normalizedTypeId)) return graph;\n const overrides = readMarkerTypeOverrides(graph);\n const nextOverrides = overrides.filter(definition => definition.type !== normalizedTypeId);\n return nextOverrides.length === overrides.length\n ? graph\n : writeMarkerTypeOverrides(graph, nextOverrides);\n}\n\nexport function createAuthoredMarkerTypeDefinition(\n definition: SpatialMarkerTypeDefinition,\n overridesBuiltIn: boolean,\n): SpatialMarkerTypeDefinition {\n return {\n type: definition.type.trim(),\n label: definition.label.trim() || definition.type.trim(),\n ...(definition.kind ? { kind: definition.kind } : {}),\n ...(definition.description !== undefined ? { description: definition.description } : {}),\n ...(definition.defaultTags ? { defaultTags: [...definition.defaultTags] } : {}),\n metadata: {\n ...(definition.metadata ?? {}),\n builtIn: false,\n ...(overridesBuiltIn ? { overridesBuiltIn: true } : {}),\n },\n };\n}\n\nexport function readMarkerTypeOverrides(graph: SpatialMarkerGraph | null | undefined): SpatialMarkerTypeDefinition[] {\n const value = graph?.metadata?.markerTypes;\n if (!Array.isArray(value)) return [];\n return value\n .map(readMarkerTypeDefinition)\n .filter((definition): definition is SpatialMarkerTypeDefinition => !!definition);\n}\n\nexport function writeMarkerTypeOverrides(\n graph: SpatialMarkerGraph,\n markerTypes: readonly SpatialMarkerTypeDefinition[],\n): SpatialMarkerGraph {\n const metadata = graph.metadata ? structuredClone(graph.metadata) : {};\n if (markerTypes.length === 0) delete metadata.markerTypes;\n else metadata.markerTypes = markerTypes.map(cloneMarkerTypeDefinition) as any;\n return {\n ...graph,\n metadata: Object.keys(metadata).length > 0 ? metadata : undefined,\n };\n}\n\nexport function readMarkerTypeDefinition(value: unknown): SpatialMarkerTypeDefinition | null {\n if (!value || typeof value !== 'object') return null;\n const candidate = value as Partial<SpatialMarkerTypeDefinition>;\n if (typeof candidate.type !== 'string' || !candidate.type.trim()) return null;\n if (typeof candidate.label !== 'string' || !candidate.label.trim()) return null;\n return createAuthoredMarkerTypeDefinition({\n type: candidate.type.trim(),\n label: candidate.label.trim(),\n ...(typeof candidate.kind === 'string' && candidate.kind ? { kind: candidate.kind } : {}),\n ...(typeof candidate.description === 'string' ? { description: candidate.description } : {}),\n ...(Array.isArray(candidate.defaultTags) ? { defaultTags: candidate.defaultTags.filter(tag => typeof tag === 'string') } : {}),\n ...(candidate.metadata && typeof candidate.metadata === 'object' ? { metadata: candidate.metadata } : {}),\n }, candidate.metadata?.overridesBuiltIn === true);\n}\n\nexport function isMarkerTypeDefinitionValid(definition: SpatialMarkerTypeDefinition): boolean {\n return !!definition.type.trim() && !!definition.label.trim();\n}\n\nexport function getBuiltInMarkerType(\n typeId: string,\n options: EditorCoreMarkerGraphTypeCatalogOptions = {},\n): SpatialMarkerTypeDefinition | null {\n const normalizedTypeId = typeId.trim();\n return options.builtInMarkerTypes?.find(definition => definition.type === normalizedTypeId) ?? null;\n}\n\nexport function isBuiltInMarkerType(\n typeId: string,\n options: EditorCoreMarkerGraphTypeCatalogOptions = {},\n): boolean {\n return !!getBuiltInMarkerType(typeId, options);\n}\n\nexport function cloneMarker(marker: SpatialMarkerNode): SpatialMarkerNode {\n const { spatial: _spatial, ...authoredMarker } = structuredClone(marker);\n return authoredMarker;\n}\n\nexport function cloneRelation(relation: SpatialRelation): SpatialRelation {\n return structuredClone(relation);\n}\n\nexport function rewriteMarkerRelationIds(\n relation: SpatialRelation,\n markerIdMap: ReadonlyMap<string, string>,\n): SpatialRelation {\n return {\n ...cloneRelation(relation),\n from: rewriteMarkerRelationEndpoint(relation.from, markerIdMap),\n to: rewriteMarkerRelationEndpoint(relation.to, markerIdMap),\n };\n}\n\nexport function rewriteSpatialMarkerTargetRefs(\n marker: SpatialMarkerNode,\n markerIdMap: ReadonlyMap<string, string>,\n): SpatialMarkerNode {\n return {\n ...cloneMarker(marker),\n ...(marker.target ? { target: rewriteMarkerTargetRef(marker.target, markerIdMap) } : {}),\n geometry: rewriteSpatialMarkerGeometryTargetRefs(marker.geometry, markerIdMap),\n };\n}\n\nexport function rewriteSpatialMarkerGeometryTargetRefs(\n geometry: SpatialMarkerGeometry,\n markerIdMap: ReadonlyMap<string, string>,\n): SpatialMarkerGeometry {\n switch (geometry.kind) {\n case 'point':\n return {\n ...structuredClone(geometry),\n ...(geometry.target ? { target: rewriteMarkerTargetRef(geometry.target, markerIdMap) } : {}),\n };\n case 'object-bounds':\n return {\n ...structuredClone(geometry),\n target: rewriteMarkerTargetRef(geometry.target, markerIdMap),\n };\n case 'box':\n case 'polyhedron':\n return structuredClone(geometry);\n }\n}\n\nexport function rewriteMarkerTargetRef(\n target: SpatialMarkerTargetRef,\n markerIdMap: ReadonlyMap<string, string>,\n): SpatialMarkerTargetRef {\n if (target.kind !== 'marker') return structuredClone(target);\n return {\n ...structuredClone(target),\n id: markerIdMap.get(target.id) ?? target.id,\n };\n}\n\nexport function rewriteMarkerRelationEndpoint(\n endpoint: SpatialRelationEndpoint,\n markerIdMap: ReadonlyMap<string, string>,\n): SpatialRelationEndpoint {\n if (endpoint.kind !== 'marker') return { ...endpoint };\n return {\n ...endpoint,\n id: markerIdMap.get(endpoint.id) ?? endpoint.id,\n };\n}\n\nexport function collectEditorSceneGameObjectSubtreeIds(\n document: EditorCoreMarkerGraphDocumentLike,\n rootId: string,\n): Set<string> {\n const deleteIds = new Set<string>([rootId]);\n let changed = true;\n while (changed) {\n changed = false;\n for (const gameObject of document.scene.gameObjects) {\n if (!gameObject.parentId || !deleteIds.has(gameObject.parentId) || deleteIds.has(gameObject.id)) continue;\n deleteIds.add(gameObject.id);\n changed = true;\n }\n }\n return deleteIds;\n}\n\nexport function isDeletedRelationEndpoint(endpoint: SpatialRelationEndpoint, deleteIds: ReadonlySet<string>): boolean {\n return (endpoint.kind === 'marker' || endpoint.kind === 'scene-object') && deleteIds.has(endpoint.id);\n}\n\nexport function isTargetRefValid(target: SpatialMarkerTargetRef | undefined, objectIds: Set<string>): boolean {\n return !target || target.kind !== 'scene-object' || objectIds.has(target.id);\n}\n\nexport function isRelationEndpointValid(\n endpoint: SpatialRelationEndpoint,\n objectIds: Set<string>,\n markerIds: Set<string>,\n): boolean {\n if (endpoint.kind === 'marker') return markerIds.has(endpoint.id);\n if (endpoint.kind === 'scene-object') return objectIds.has(endpoint.id);\n return true;\n}\n\nexport function isMarkerEndpoint(endpoint: SpatialRelationEndpoint, markerId: string): boolean {\n return endpoint.kind === 'marker' && endpoint.id === markerId;\n}\n\nexport function normalizeEditorSceneMarkerGraph(graph: SpatialMarkerGraph | null | undefined): SpatialMarkerGraph {\n if (!graph) {\n return {\n schemaVersion: SPATIAL_MARKER_GRAPH_SCHEMA_VERSION,\n markers: [],\n relations: [],\n };\n }\n return {\n schemaVersion: SPATIAL_MARKER_GRAPH_SCHEMA_VERSION,\n markers: graph.markers.map(cloneMarker),\n relations: graph.relations.map(cloneRelation),\n metadata: graph.metadata ? structuredClone(graph.metadata) : undefined,\n };\n}\n\nexport function withEditorSceneMarkerGraph<TDocument extends { scene: object }>(\n document: TDocument,\n markerGraph: SpatialMarkerGraph,\n): TDocument {\n return {\n ...document,\n scene: {\n ...document.scene,\n markerGraph,\n },\n } as TDocument;\n}\n\nfunction upsertMarker(graph: SpatialMarkerGraph, marker: SpatialMarkerNode): SpatialMarkerGraph {\n const nextMarker = cloneMarker(marker);\n const replaced = graph.markers.some(candidate => candidate.id === nextMarker.id);\n return {\n ...graph,\n markers: replaced\n ? graph.markers.map(candidate => candidate.id === nextMarker.id ? nextMarker : candidate)\n : [...graph.markers, nextMarker],\n };\n}\n\nfunction updateMarker(\n graph: SpatialMarkerGraph,\n markerId: string,\n patch: Partial<Omit<SpatialMarkerNode, 'id'>>,\n): SpatialMarkerGraph {\n let changed = false;\n const markers = graph.markers.map((marker) => {\n if (marker.id !== markerId) return marker;\n changed = true;\n return cloneMarker({\n ...marker,\n ...patch,\n id: marker.id,\n });\n });\n return changed ? { ...graph, markers } : graph;\n}\n\nfunction deleteMarker(graph: SpatialMarkerGraph, markerId: string): SpatialMarkerGraph {\n return {\n ...graph,\n markers: graph.markers.filter(marker => marker.id !== markerId),\n relations: graph.relations.filter(relation => (\n !isMarkerEndpoint(relation.from, markerId)\n && !isMarkerEndpoint(relation.to, markerId)\n )),\n };\n}\n\nfunction upsertRelation(graph: SpatialMarkerGraph, relation: SpatialRelation): SpatialMarkerGraph {\n const nextRelation = cloneRelation(relation);\n const replaced = graph.relations.some(candidate => candidate.id === nextRelation.id);\n return {\n ...graph,\n relations: replaced\n ? graph.relations.map(candidate => candidate.id === nextRelation.id ? nextRelation : candidate)\n : [...graph.relations, nextRelation],\n };\n}\n\nfunction reverseRelation(graph: SpatialMarkerGraph, relationId: string): SpatialMarkerGraph {\n let changed = false;\n const relations = graph.relations.map((relation) => {\n if (relation.id !== relationId) return relation;\n changed = true;\n return {\n ...cloneRelation(relation),\n from: { ...relation.to },\n to: { ...relation.from },\n };\n });\n return changed ? { ...graph, relations } : graph;\n}\n\nexport function reduceEditorSceneMarkerGraph(\n graph: SpatialMarkerGraph,\n command: EditorCoreMarkerGraphCommand,\n options: EditorCoreMarkerGraphReducerOptions = {},\n): SpatialMarkerGraph {\n switch (command.type) {\n case 'marker.create-box':\n return upsertMarker(graph, command.marker);\n case 'marker.update':\n return updateMarker(graph, command.markerId, command.patch);\n case 'marker.delete':\n return deleteMarker(graph, command.markerId);\n case 'relation.create':\n return upsertRelation(graph, command.relation);\n case 'relation.create-many':\n return command.relations.reduce((nextGraph, relation) => upsertRelation(nextGraph, relation), graph);\n case 'relation.delete':\n return {\n ...graph,\n relations: graph.relations.filter(relation => relation.id !== command.relationId),\n };\n case 'relation.delete-many': {\n const relationIds = new Set(command.relationIds);\n return {\n ...graph,\n relations: graph.relations.filter(relation => !relationIds.has(relation.id)),\n };\n }\n case 'relation.reverse':\n return reverseRelation(graph, command.relationId);\n case 'marker.sync-from-scene':\n return graph;\n case 'marker-type.create':\n return createMarkerType(graph, command.definition, options);\n case 'marker-type.update':\n return updateMarkerType(graph, command.typeId, command.patch, options);\n case 'marker-type.delete':\n return deleteMarkerType(graph, command.typeId, options);\n }\n}\n\nexport function normalizeEditorSceneMarkerGraphCommand(\n document: EditorCoreMarkerGraphDocumentLike,\n command: EditorCoreMarkerGraphCommand,\n options: EditorCoreMarkerGraphCommandNormalizeOptions = {},\n): EditorCoreMarkerGraphCommand {\n if (command.type !== 'marker.create-box') return command;\n const marker = cloneMarker(command.marker);\n const existingIds = new Set(document.scene.gameObjects.map(gameObject => gameObject.id));\n const existingLabels = new Set(document.scene.gameObjects.map(gameObject => (gameObject.name ?? '').trim()).filter(Boolean));\n if (existingIds.has(marker.id)) {\n marker.id = createUniqueMarkerCreateId(marker.id, existingIds, options.sanitizeMarkerGameObjectId);\n }\n if (!marker.label.trim() || existingLabels.has(marker.label.trim())) {\n marker.label = createUniqueMarkerCreateLabel(marker.label || marker.id, existingLabels);\n }\n return {\n ...command,\n marker,\n };\n}\n\nfunction createUniqueMarkerCreateId(\n baseId: string,\n existingIds: ReadonlySet<string>,\n sanitizeMarkerGameObjectId: ((value: string) => string) | undefined,\n): string {\n const sanitize = sanitizeMarkerGameObjectId ?? defaultSanitizeMarkerGameObjectId;\n const base = sanitize(baseId).replace(/-\\d+$/, '') || 'marker';\n if (!existingIds.has(base)) return base;\n let index = 2;\n while (existingIds.has(`${base}-${index}`)) index += 1;\n return `${base}-${index}`;\n}\n\nfunction defaultSanitizeMarkerGameObjectId(value: string): string {\n return value.trim().toLowerCase().replace(/[^a-z0-9_-]+/g, '-').replace(/^-+|-+$/g, '');\n}\n\nfunction createUniqueMarkerCreateLabel(baseLabel: string, existingLabels: ReadonlySet<string>): string {\n const trimmed = baseLabel.trim() || 'Marker';\n const base = trimmed.replace(/\\s+\\d+$/, '') || 'Marker';\n if (!existingLabels.has(base)) return base;\n let index = 2;\n while (existingLabels.has(`${base} ${index}`)) index += 1;\n return `${base} ${index}`;\n}\n\nexport function isEditorSceneMarkerGraphCommandSupported(\n document: EditorCoreMarkerGraphDocumentLike,\n command: EditorCoreMarkerGraphCommand,\n graph: SpatialMarkerGraph,\n options: EditorCoreMarkerGraphCommandSupportOptions = {},\n): boolean {\n switch (command.type) {\n case 'marker.create-box':\n return isMarkerCreateGeometrySupported(document, command.marker.geometry)\n && !!command.marker.id.trim()\n && !document.scene.gameObjects.some(gameObject => gameObject.id === command.marker.id)\n && isMarkerCreateParentValid(document, command.parentId ?? null, options);\n case 'relation.create-many':\n return command.relations.length > 0;\n case 'relation.delete-many':\n return command.relationIds.length > 0;\n case 'relation.reverse':\n return graph.relations.some(relation => relation.id === command.relationId);\n case 'marker-type.create':\n return isMarkerTypeDefinitionValid(command.definition)\n && !getEditorSceneMarkerTypeCatalogFromGraph(document.scene.markerGraph, options).some(definition => definition.type === command.definition.type);\n case 'marker-type.update':\n return !!command.typeId.trim()\n && getEditorSceneMarkerTypeCatalogFromGraph(document.scene.markerGraph, options).some(definition => definition.type === command.typeId);\n case 'marker-type.delete': {\n const typeId = command.typeId.trim();\n if (!typeId || isBuiltInMarkerType(typeId, options)) return false;\n return !graph.markers.some(marker => marker.markerType === typeId)\n && readMarkerTypeOverrides(graph).some(definition => definition.type === typeId);\n }\n default:\n return true;\n }\n}\n\nfunction isMarkerCreateGeometrySupported(\n document: EditorCoreMarkerGraphDocumentLike,\n geometry: SpatialMarkerGeometry,\n): boolean {\n switch (geometry.kind) {\n case 'box':\n case 'point':\n return true;\n case 'object-bounds':\n return isTargetRefValid(geometry.target, new Set(document.scene.gameObjects.map(gameObject => gameObject.id)));\n case 'polyhedron':\n return false;\n }\n}\n\nfunction isMarkerCreateParentValid(\n document: EditorCoreMarkerGraphDocumentLike,\n parentId: string | null,\n options: EditorCoreMarkerGraphCommandSupportOptions,\n): boolean {\n if (!parentId) return true;\n const parent = document.scene.gameObjects.find(gameObject => gameObject.id === parentId) ?? null;\n return !!parent && !(options.isMarkerGameObject?.(parent) ?? !!parent.marker);\n}\n\nexport function createEditorSceneMarkerGraphPatchLabel(command: EditorCoreMarkerGraphCommand): string {\n switch (command.type) {\n case 'marker.create-box':\n return `Create marker ${command.marker.label}`;\n case 'marker.update':\n return `Update marker ${command.markerId}`;\n case 'marker.delete':\n return `Delete marker ${command.markerId}`;\n case 'relation.create':\n return `Create relation ${command.relation.type}`;\n case 'relation.create-many':\n return `Create ${command.relations.length} relations`;\n case 'relation.delete':\n return `Delete relation ${command.relationId}`;\n case 'relation.delete-many':\n return `Delete ${command.relationIds.length} relations`;\n case 'relation.reverse':\n return `Reverse relation ${command.relationId}`;\n case 'marker.sync-from-scene':\n return 'Sync marker graph';\n case 'marker-type.create':\n return `Create marker type ${command.definition.label}`;\n case 'marker-type.update':\n return `Update marker type ${command.typeId}`;\n case 'marker-type.delete':\n return `Delete marker type ${command.typeId}`;\n }\n}\n\nexport function getEditorSceneMarkerGraphPatchSelection(command: EditorCoreMarkerGraphCommand): {\n changedId?: string;\n changedIds?: string[];\n selectId?: string | null;\n} {\n switch (command.type) {\n case 'marker.create-box':\n return { changedId: command.marker.id, changedIds: [command.marker.id], selectId: command.marker.id };\n case 'marker.update':\n case 'marker.delete':\n return { changedId: command.markerId, changedIds: [command.markerId] };\n case 'relation.create':\n return { changedIds: [command.relation.from.id, command.relation.to.id] };\n case 'relation.create-many':\n return { changedIds: [...new Set(command.relations.flatMap(relation => [relation.from.id, relation.to.id]))] };\n case 'relation.delete':\n case 'relation.delete-many':\n case 'relation.reverse':\n case 'marker.sync-from-scene':\n case 'marker-type.create':\n case 'marker-type.update':\n case 'marker-type.delete':\n return {};\n }\n}\n\nexport function cloneMarkerGraphCommand(command: EditorCoreMarkerGraphCommand): EditorCoreMarkerGraphCommand {\n const nextCommand = structuredClone(command);\n if (nextCommand.type === 'marker.create-box') {\n nextCommand.marker = cloneMarker(nextCommand.marker);\n }\n if (nextCommand.type === 'marker.update') {\n const { spatial: _spatial, ...patch } = nextCommand.patch;\n nextCommand.patch = patch;\n }\n return nextCommand;\n}\n\nexport function areMarkerGraphsEqual(left: SpatialMarkerGraph, right: SpatialMarkerGraph): boolean {\n return JSON.stringify(left) === JSON.stringify(right);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"scene-graph.js","sourceRoot":"","sources":["../src/scene-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene-graph.js","sourceRoot":"","sources":["../src/scene-graph.ts"],"names":[],"mappings":"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","sourcesContent":["export type SceneGraphNodeId = string;\n\nexport type SceneGraphNodeRole = 'root' | 'group' | 'object' | 'marker';\n\nexport type SceneGraphDropPlacement = 'inside' | 'before' | 'after';\n\nexport type SceneGraphMovePlacement = SceneGraphDropPlacement | 'root';\n\nexport type SceneGraphGroupPivot = 'selection-center' | 'active' | 'parent-origin';\n\nexport type SceneGraphPrimitiveShape = 'cube' | 'sphere' | 'plane' | 'capsule';\n\nexport interface SceneGraphTreeItem {\n id: SceneGraphNodeId;\n label: string;\n parentId?: SceneGraphNodeId | null;\n depth?: number;\n role?: SceneGraphNodeRole;\n icon?: string;\n selectable?: boolean;\n enabled?: boolean;\n directEnabled?: boolean;\n canToggleEnabled?: boolean;\n enableToggleDisabledReason?: string;\n locked?: boolean;\n protected?: boolean;\n canHaveChildren?: boolean;\n renamable?: boolean;\n deletable?: boolean;\n draggable?: boolean;\n}\n\nexport interface SceneGraphDropIntent {\n draggedId: SceneGraphNodeId;\n targetId: SceneGraphNodeId;\n placement: SceneGraphDropPlacement;\n preserveWorldTransform?: boolean;\n}\n\nexport interface SceneGraphMoveIntent {\n ids: SceneGraphNodeId[];\n targetId?: SceneGraphNodeId | null;\n placement: SceneGraphMovePlacement;\n parentId?: SceneGraphNodeId | null;\n beforeId?: SceneGraphNodeId | null;\n afterId?: SceneGraphNodeId | null;\n preserveWorldTransform?: boolean;\n}\n\nexport interface SceneGraphGroupSelectionIntent {\n ids: SceneGraphNodeId[];\n parentId?: SceneGraphNodeId | null;\n insertBeforeId?: SceneGraphNodeId | null;\n name?: string;\n pivot?: SceneGraphGroupPivot;\n preserveWorldTransform?: boolean;\n}\n\nexport interface SceneGraphRenameIntent {\n id: SceneGraphNodeId;\n name: string;\n}\n\nexport interface SceneGraphCreateGroupIntent {\n parentId?: SceneGraphNodeId | null;\n activeId?: SceneGraphNodeId | null;\n name?: string;\n}\n\nexport interface SceneGraphCreatePrimitiveIntent {\n parentId?: SceneGraphNodeId | null;\n activeId?: SceneGraphNodeId | null;\n shape: SceneGraphPrimitiveShape;\n name?: string;\n}\n\nexport interface SceneGraphDeleteIntent {\n ids: SceneGraphNodeId[];\n activeId?: SceneGraphNodeId | null;\n}\n\nexport interface SceneGraphValidationResult {\n ok: boolean;\n reason?: string;\n}\n\nexport function validateSceneGraphRename(\n items: readonly SceneGraphTreeItem[],\n intent: SceneGraphRenameIntent,\n): SceneGraphValidationResult {\n const item = findSceneGraphItem(items, intent.id);\n if (!item) return invalidSceneGraphIntent('missing-node');\n if (item.protected) return invalidSceneGraphIntent('node-protected');\n if (item.locked) return invalidSceneGraphIntent('node-locked');\n if (item.renamable === false) return invalidSceneGraphIntent('node-readonly');\n if (!intent.name.trim()) return invalidSceneGraphIntent('empty-name');\n return validSceneGraphIntent();\n}\n\nexport function validateSceneGraphDelete(\n items: readonly SceneGraphTreeItem[],\n intent: SceneGraphDeleteIntent,\n): SceneGraphValidationResult {\n if (intent.ids.length === 0) return invalidSceneGraphIntent('empty-selection');\n for (const id of uniqueSceneGraphNodeIds(intent.ids)) {\n const item = findSceneGraphItem(items, id);\n if (!item) return invalidSceneGraphIntent('missing-node');\n if (item.protected) return invalidSceneGraphIntent('node-protected');\n if (item.locked) return invalidSceneGraphIntent('node-locked');\n if (item.deletable === false) return invalidSceneGraphIntent('node-readonly');\n }\n return validSceneGraphIntent();\n}\n\nexport function validateSceneGraphDrop(\n items: readonly SceneGraphTreeItem[],\n intent: SceneGraphDropIntent,\n): SceneGraphValidationResult {\n const dragged = findSceneGraphItem(items, intent.draggedId);\n if (!dragged) return invalidSceneGraphIntent('missing-dragged-node');\n if (dragged.protected) return invalidSceneGraphIntent('dragged-node-protected');\n if (dragged.locked) return invalidSceneGraphIntent('dragged-node-locked');\n if (dragged.draggable === false) return invalidSceneGraphIntent('dragged-node-readonly');\n const target = findSceneGraphItem(items, intent.targetId);\n if (!target) return invalidSceneGraphIntent('missing-target-node');\n if (target.locked && !target.protected) return invalidSceneGraphIntent('target-node-locked');\n if (intent.draggedId === intent.targetId) return invalidSceneGraphIntent('cannot-parent-to-self');\n if (intent.placement === 'inside' && !canSceneGraphItemHaveChildren(target)) {\n return invalidSceneGraphIntent('target-cannot-have-children');\n }\n if (intent.placement !== 'inside') {\n if (target.protected) return invalidSceneGraphIntent('cannot-reorder-root');\n const parent = findSceneGraphItem(items, target.parentId);\n if (parent?.locked && !parent.protected) return invalidSceneGraphIntent('target-parent-locked');\n }\n if (isSceneGraphDescendant(items, intent.targetId, intent.draggedId)) {\n return invalidSceneGraphIntent('cannot-parent-to-descendant');\n }\n return validSceneGraphIntent();\n}\n\nexport function validateSceneGraphMove(\n items: readonly SceneGraphTreeItem[],\n intent: SceneGraphMoveIntent,\n): SceneGraphValidationResult {\n const uniqueIds = uniqueSceneGraphNodeIds(intent.ids);\n if (uniqueIds.length === 0) return invalidSceneGraphIntent('empty-selection');\n for (const id of uniqueIds) {\n if (!findSceneGraphItem(items, id)) return invalidSceneGraphIntent('missing-node');\n }\n const ids = getTopLevelSceneGraphNodeIds(items, intent.ids);\n if (ids.length === 0) return invalidSceneGraphIntent('empty-selection');\n for (const id of ids) {\n const item = findSceneGraphItem(items, id);\n if (!item) return invalidSceneGraphIntent('missing-node');\n if (!isSceneGraphItemMovable(item)) return invalidSceneGraphIntent(item.protected ? 'node-protected' : item.locked ? 'node-locked' : 'node-readonly');\n }\n if (intent.placement === 'root') {\n if (intent.parentId != null || intent.beforeId != null || intent.afterId != null) return invalidSceneGraphIntent('invalid-root-anchors');\n return validSceneGraphIntent();\n }\n const target = findSceneGraphItem(items, intent.targetId);\n if (!target) return invalidSceneGraphIntent('missing-target-node');\n if (ids.includes(target.id)) return invalidSceneGraphIntent('cannot-parent-to-self');\n if (ids.some(id => isSceneGraphDescendant(items, target.id, id))) return invalidSceneGraphIntent('cannot-parent-to-descendant');\n if (intent.placement === 'inside') {\n if (!canSceneGraphItemHaveChildren(target)) return invalidSceneGraphIntent('target-cannot-have-children');\n if (intent.parentId != null && intent.parentId !== target.id) return invalidSceneGraphIntent('invalid-parent-anchor');\n const parentChildren = getSceneGraphChildIds(items, target.id).filter(id => !ids.includes(id));\n if (intent.beforeId && !parentChildren.includes(intent.beforeId)) return invalidSceneGraphIntent('invalid-before-anchor');\n if (intent.afterId && !parentChildren.includes(intent.afterId)) return invalidSceneGraphIntent('invalid-after-anchor');\n return validSceneGraphIntent();\n }\n if (target.locked && !target.protected) return invalidSceneGraphIntent('target-node-locked');\n if (target.protected) return invalidSceneGraphIntent('cannot-reorder-root');\n const parent = findSceneGraphItem(items, target.parentId);\n if (parent?.locked && !parent.protected) return invalidSceneGraphIntent('target-parent-locked');\n if ((intent.parentId ?? null) !== (target.parentId ?? null)) return invalidSceneGraphIntent('invalid-parent-anchor');\n const siblings = getSceneGraphChildIds(items, target.parentId ?? null).filter(id => !ids.includes(id));\n if (intent.beforeId && !siblings.includes(intent.beforeId)) return invalidSceneGraphIntent('invalid-before-anchor');\n if (intent.afterId && !siblings.includes(intent.afterId)) return invalidSceneGraphIntent('invalid-after-anchor');\n if (intent.placement === 'before' && intent.beforeId !== target.id) return invalidSceneGraphIntent('invalid-before-anchor');\n if (intent.placement === 'after' && intent.afterId !== target.id) return invalidSceneGraphIntent('invalid-after-anchor');\n return validSceneGraphIntent();\n}\n\nexport function validateSceneGraphGroupSelection(\n items: readonly SceneGraphTreeItem[],\n intent: SceneGraphGroupSelectionIntent,\n): SceneGraphValidationResult {\n const uniqueIds = uniqueSceneGraphNodeIds(intent.ids);\n if (uniqueIds.length === 0) return invalidSceneGraphIntent('empty-selection');\n for (const id of uniqueIds) {\n if (!findSceneGraphItem(items, id)) return invalidSceneGraphIntent('missing-node');\n }\n const ids = getTopLevelSceneGraphNodeIds(items, intent.ids);\n if (ids.length === 0) return invalidSceneGraphIntent('empty-selection');\n if (ids.length < 2) return invalidSceneGraphIntent('selection-too-small');\n for (const id of ids) {\n const item = findSceneGraphItem(items, id);\n if (!item) return invalidSceneGraphIntent('missing-node');\n if (!isSceneGraphItemMovable(item)) return invalidSceneGraphIntent(item.protected ? 'node-protected' : item.locked ? 'node-locked' : 'node-readonly');\n }\n const parent = findSceneGraphItem(items, intent.parentId);\n if (intent.parentId && !parent) return invalidSceneGraphIntent('missing-parent-node');\n if (parent && !canSceneGraphItemHaveChildren(parent)) return invalidSceneGraphIntent('parent-cannot-have-children');\n if (parent && ids.some(id => parent.id === id || isSceneGraphDescendant(items, parent.id, id))) {\n return invalidSceneGraphIntent('cannot-parent-to-descendant');\n }\n const siblings = getSceneGraphChildIds(items, intent.parentId ?? null).filter(id => !ids.includes(id));\n if (intent.insertBeforeId) {\n const before = findSceneGraphItem(items, intent.insertBeforeId);\n if (!siblings.includes(intent.insertBeforeId) || before?.protected) return invalidSceneGraphIntent('invalid-before-anchor');\n }\n return validSceneGraphIntent();\n}\n\nexport function findSceneGraphItem(\n items: readonly SceneGraphTreeItem[],\n id: SceneGraphNodeId | null | undefined,\n): SceneGraphTreeItem | null {\n if (!id) return null;\n return items.find(item => item.id === id) ?? null;\n}\n\nexport function uniqueSceneGraphNodeIds(ids: readonly SceneGraphNodeId[]): SceneGraphNodeId[] {\n const result: SceneGraphNodeId[] = [];\n const seen = new Set<SceneGraphNodeId>();\n for (const id of ids) {\n if (!id || seen.has(id)) continue;\n seen.add(id);\n result.push(id);\n }\n return result;\n}\n\nexport function getTopLevelSceneGraphNodeIds(\n items: readonly SceneGraphTreeItem[],\n ids: readonly SceneGraphNodeId[],\n): SceneGraphNodeId[] {\n const uniqueIds = uniqueSceneGraphNodeIds(ids).filter(id => !!findSceneGraphItem(items, id));\n const selected = new Set(uniqueIds);\n return uniqueIds.filter(id => !collectSceneGraphAncestorIds(items, id).some(ancestorId => selected.has(ancestorId)));\n}\n\nexport function getSceneGraphChildIds(\n items: readonly SceneGraphTreeItem[],\n parentId: SceneGraphNodeId | null | undefined,\n): SceneGraphNodeId[] {\n return items\n .filter(item => (item.parentId ?? null) === (parentId ?? null))\n .map(item => item.id);\n}\n\nexport function isSceneGraphDescendant(\n items: readonly SceneGraphTreeItem[],\n candidateId: SceneGraphNodeId,\n ancestorId: SceneGraphNodeId,\n): boolean {\n const byId = new Map(items.map(item => [item.id, item]));\n let cursor = byId.get(candidateId) ?? null;\n const visited = new Set<SceneGraphNodeId>();\n while (cursor?.parentId) {\n if (cursor.parentId === ancestorId) return true;\n if (visited.has(cursor.parentId)) return false;\n visited.add(cursor.parentId);\n cursor = byId.get(cursor.parentId) ?? null;\n }\n return false;\n}\n\nexport function canSceneGraphItemHaveChildren(item: SceneGraphTreeItem | null | undefined): boolean {\n if (!item) return false;\n if (item.locked && !item.protected) return false;\n return item.canHaveChildren === true;\n}\n\nexport function isSceneGraphItemMovable(item: SceneGraphTreeItem | null | undefined): boolean {\n return !!item && item.protected !== true && item.locked !== true && item.draggable !== false;\n}\n\nfunction collectSceneGraphAncestorIds(\n items: readonly SceneGraphTreeItem[],\n id: SceneGraphNodeId,\n): SceneGraphNodeId[] {\n const byId = new Map(items.map(item => [item.id, item]));\n const ancestors: SceneGraphNodeId[] = [];\n const visited = new Set<SceneGraphNodeId>();\n let cursor = byId.get(id) ?? null;\n while (cursor?.parentId && !visited.has(cursor.parentId)) {\n visited.add(cursor.parentId);\n ancestors.push(cursor.parentId);\n cursor = byId.get(cursor.parentId) ?? null;\n }\n return ancestors;\n}\n\nfunction validSceneGraphIntent(): SceneGraphValidationResult {\n return { ok: true };\n}\n\nfunction invalidSceneGraphIntent(reason: string): SceneGraphValidationResult {\n return { ok: false, reason };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"scene-view-input.js","sourceRoot":"","sources":["../src/scene-view-input.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"scene-view-input.js","sourceRoot":"","sources":["../src/scene-view-input.ts"],"names":[],"mappings":"","sourcesContent":["export type SceneViewPointerButton = 'left' | 'middle' | 'right';\n\nexport type SceneViewPointerIntent =\n | 'selection-click'\n | 'box-select'\n | 'gizmo-drag'\n | 'view-plane-move'\n | 'placement'\n | 'measurement'\n | 'orbit'\n | 'pan'\n | 'dolly'\n | 'flythrough';\n\nexport type SceneViewNavigationMode = 'none' | 'orbit' | 'pan' | 'dolly' | 'flythrough';\n\nexport interface SceneViewInputModifiers {\n alt: boolean;\n shift: boolean;\n ctrl: boolean;\n meta: boolean;\n}\n\nexport interface SceneViewMouseBinding {\n button: SceneViewPointerButton;\n alt?: boolean;\n shift?: boolean;\n ctrlOrMeta?: boolean;\n}\n\nexport interface SceneViewPointerState {\n pointerId: number;\n button: SceneViewPointerButton;\n intent: SceneViewPointerIntent;\n start: { x: number; y: number };\n current: { x: number; y: number };\n delta: { x: number; y: number };\n modifiers: SceneViewInputModifiers;\n}\n\nexport interface SceneViewKeyboardCaptureState {\n owner: 'scene-view';\n intent: SceneViewPointerIntent;\n keys: string[];\n pressedKeys: string[];\n}\n\nexport interface SceneViewInputState {\n activeIntent: SceneViewPointerIntent | null;\n navigationMode: SceneViewNavigationMode;\n activePointer: SceneViewPointerState | null;\n keyboardCapture: SceneViewKeyboardCaptureState | null;\n pressedMovementKeys: string[];\n flySpeed: number;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"selection-strategy.js","sourceRoot":"","sources":["../src/selection-strategy.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,6BAA6B,CAC3C,KAAyC;IAEzC,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;YACvD,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IAC3E,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO;YACL,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,SAAS;YACtB,QAAQ;YACR,KAAK,EAAE,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO;YACL,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,SAAS;YACtB,QAAQ;YACR,KAAK,EAAE,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,kBAAkB;SAC7E,CAAC;IACJ,CAAC;IAED,IACE,KAAK,CAAC,OAAO,KAAK,OAAO;WACtB,SAAS,CAAC,MAAM,KAAK,CAAC;WACtB,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,EACtD,CAAC;QACD,OAAO;YACL,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,SAAS;YACtB,KAAK,EAAE,kBAAkB;SAC1B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,SAAS;QACtB,QAAQ;QACR,KAAK,EAAE,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,eAAe;KACvE,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAsB;IAChD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAClC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"selection-strategy.js","sourceRoot":"","sources":["../src/selection-strategy.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,6BAA6B,CAC3C,KAAyC;IAEzC,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;YACvD,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IAC3E,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO;YACL,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,SAAS;YACtB,QAAQ;YACR,KAAK,EAAE,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO;YACL,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,SAAS;YACtB,QAAQ;YACR,KAAK,EAAE,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,kBAAkB;SAC7E,CAAC;IACJ,CAAC;IAED,IACE,KAAK,CAAC,OAAO,KAAK,OAAO;WACtB,SAAS,CAAC,MAAM,KAAK,CAAC;WACtB,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,EACtD,CAAC;QACD,OAAO;YACL,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,SAAS;YACtB,KAAK,EAAE,kBAAkB;SAC1B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,SAAS;QACtB,QAAQ;QACR,KAAK,EAAE,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,eAAe;KACvE,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAsB;IAChD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAClC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import type {\n EditorSelectionState,\n SelectionCommand,\n} from './editor-session';\n\nexport type EditorSelectionGesture = 'click' | 'box';\nexport type EditorSelectionModifier = 'replace' | 'additive' | 'toggle';\n\nexport interface ResolveEditorSelectionCommandInput {\n selection: EditorSelectionState;\n targetIds: readonly string[];\n activeId?: string | null;\n gesture: EditorSelectionGesture;\n modifier: EditorSelectionModifier;\n}\n\nexport function resolveEditorSelectionCommand(\n input: ResolveEditorSelectionCommandInput,\n): SelectionCommand | null {\n const targetIds = uniqueSelectionIds(input.targetIds);\n if (targetIds.length === 0) {\n return input.modifier === 'replace'\n ? { type: 'selection.clear', label: 'Clear Selection' }\n : null;\n }\n\n const activeId = input.activeId ?? targetIds[targetIds.length - 1] ?? null;\n if (input.modifier === 'replace') {\n return {\n type: 'selection.replace',\n selectedIds: targetIds,\n activeId,\n label: input.gesture === 'box' ? 'Box Select' : 'Select Object',\n };\n }\n\n if (input.modifier === 'toggle') {\n return {\n type: 'selection.toggle',\n selectedIds: targetIds,\n activeId,\n label: input.gesture === 'box' ? 'Box Toggle Selection' : 'Toggle Selection',\n };\n }\n\n if (\n input.gesture === 'click'\n && targetIds.length === 1\n && input.selection.selectedIds.includes(targetIds[0]!)\n ) {\n return {\n type: 'selection.remove',\n selectedIds: targetIds,\n label: 'Remove Selection',\n };\n }\n\n return {\n type: 'selection.add',\n selectedIds: targetIds,\n activeId,\n label: input.gesture === 'box' ? 'Box Add Selection' : 'Add Selection',\n };\n}\n\nfunction uniqueSelectionIds(ids: readonly string[]): string[] {\n const result: string[] = [];\n const seen = new Set<string>();\n for (const id of ids) {\n if (!id || seen.has(id)) continue;\n seen.add(id);\n result.push(id);\n }\n return result;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"serialized-object.js","sourceRoot":"","sources":["../src/serialized-object.ts"],"names":[],"mappings":"AAqFA,MAAM,UAAU,sBAAsB,CACpC,OAAiD;IAEjD,MAAM,OAAO,GAA8B;QACzC,GAAG,OAAO,CAAC,OAAO;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACnD,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI;YAC1C,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,SAAS;YAC5C,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC;YACrD,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,UAAU,CAAC,QAAQ,KAAK,UAAU;YACnF,UAAU;SACX,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,QAAmB,EACnB,WAA+D,EAC/D,KAA8B,EAC9B,UAAuD,EAAE;IAEzD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;IAClF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,UAAU,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE;QAChD,GAAG,OAAO;QACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"serialized-object.js","sourceRoot":"","sources":["../src/serialized-object.ts"],"names":[],"mappings":"AAqFA,MAAM,UAAU,sBAAsB,CACpC,OAAiD;IAEjD,MAAM,OAAO,GAA8B;QACzC,GAAG,OAAO,CAAC,OAAO;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACnD,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI;YAC1C,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,SAAS;YAC5C,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC;YACrD,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,UAAU,CAAC,QAAQ,KAAK,UAAU;YACnF,UAAU;SACX,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,QAAmB,EACnB,WAA+D,EAC/D,KAA8B,EAC9B,UAAuD,EAAE;IAEzD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;IAClF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,UAAU,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE;QAChD,GAAG,OAAO;QACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;AACL,CAAC","sourcesContent":["export type SerializedPropertyPath = string;\n\nexport type SerializedPropertyValueType =\n | 'string'\n | 'number'\n | 'boolean'\n | 'enum'\n | 'asset'\n | 'object'\n | 'unknown';\n\nexport interface SerializedPropertyContext {\n targetId?: string;\n [key: string]: unknown;\n}\n\nexport interface SerializedPropertyDescriptor<TDocument = unknown> {\n path: SerializedPropertyPath;\n label?: string;\n valueType?: SerializedPropertyValueType;\n options?: readonly SerializedPropertyOption[];\n readOnly?: boolean;\n getValue(document: TDocument, context: SerializedPropertyContext): unknown;\n setValue?(\n document: TDocument,\n value: unknown,\n context: SerializedPropertyContext,\n ): TDocument;\n}\n\nexport interface SerializedProperty<TDocument = unknown> {\n path: SerializedPropertyPath;\n label: string;\n valueType: SerializedPropertyValueType;\n value: unknown;\n options?: readonly SerializedPropertyOption[];\n mixed?: boolean;\n readOnly: boolean;\n descriptor: SerializedPropertyDescriptor<TDocument>;\n}\n\nexport interface SerializedPropertyOption<TValue = string | number | boolean> {\n label: string;\n value: TValue;\n disabled?: boolean;\n}\n\nexport interface SerializedObject<TDocument = unknown> {\n targetId: string;\n label?: string;\n properties: SerializedProperty<TDocument>[];\n}\n\nexport interface SerializedMultiObject<TDocument = unknown> {\n targetIds: string[];\n activeId: string | null;\n label?: string;\n properties: SerializedProperty<TDocument>[];\n}\n\nexport interface SerializedPropertyPatch {\n targetId: string;\n path: SerializedPropertyPath;\n value: unknown;\n}\n\nexport interface SerializedPropertyAdapter<TDocument = unknown> {\n getSerializedObject(\n document: TDocument,\n targetId: string,\n ): SerializedObject<TDocument> | null;\n applySerializedPropertyPatch(\n document: TDocument,\n patch: SerializedPropertyPatch,\n ): TDocument;\n}\n\nexport interface CreateSerializedObjectOptions<TDocument> {\n document: TDocument;\n targetId: string;\n label?: string;\n descriptors: readonly SerializedPropertyDescriptor<TDocument>[];\n context?: Omit<SerializedPropertyContext, 'targetId'>;\n}\n\nexport function createSerializedObject<TDocument>(\n options: CreateSerializedObjectOptions<TDocument>,\n): SerializedObject<TDocument> {\n const context: SerializedPropertyContext = {\n ...options.context,\n targetId: options.targetId,\n };\n return {\n targetId: options.targetId,\n label: options.label,\n properties: options.descriptors.map((descriptor) => ({\n path: descriptor.path,\n label: descriptor.label ?? descriptor.path,\n valueType: descriptor.valueType ?? 'unknown',\n value: descriptor.getValue(options.document, context),\n options: descriptor.options,\n readOnly: descriptor.readOnly === true || typeof descriptor.setValue !== 'function',\n descriptor,\n })),\n };\n}\n\nexport function applySerializedPropertyPatch<TDocument>(\n document: TDocument,\n descriptors: readonly SerializedPropertyDescriptor<TDocument>[],\n patch: SerializedPropertyPatch,\n context: Omit<SerializedPropertyContext, 'targetId'> = {},\n): TDocument {\n const descriptor = descriptors.find((candidate) => candidate.path === patch.path);\n if (!descriptor) {\n throw new Error(`Serialized property descriptor not found: ${patch.path}`);\n }\n if (descriptor.readOnly === true || typeof descriptor.setValue !== 'function') {\n throw new Error(`Serialized property is read-only: ${patch.path}`);\n }\n return descriptor.setValue(document, patch.value, {\n ...context,\n targetId: patch.targetId,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"transform-command.js","sourceRoot":"","sources":["../src/transform-command.ts"],"names":[],"mappings":"AAiBA,MAAM,iCAAiC,GAAG,iDAAiD,CAAC;AAE5F,MAAM,UAAU,8CAA8C,CAC5D,IAAY,EACZ,KAAc;IAEd,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAoC,CAAC;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAkC,CAAC;IACvD,MAAM,WAAW,GAAG,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9F,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,EAAyC,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"transform-command.js","sourceRoot":"","sources":["../src/transform-command.ts"],"names":[],"mappings":"AAiBA,MAAM,iCAAiC,GAAG,iDAAiD,CAAC;AAE5F,MAAM,UAAU,8CAA8C,CAC5D,IAAY,EACZ,KAAc;IAEd,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAoC,CAAC;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAkC,CAAC;IACvD,MAAM,WAAW,GAAG,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9F,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,EAAyC,CAAC;AAC1F,CAAC","sourcesContent":["import type {\n EditorTransformTrsSnapshot,\n} from './transform-gizmo';\n\nexport type EditorSerializedTransformVector =\n | 'position'\n | 'rotation'\n | 'scale';\n\nexport type EditorSerializedTransformAxis =\n | 'x'\n | 'y'\n | 'z';\n\nexport type EditorSerializedTransformPath =\n `transform.${EditorSerializedTransformVector}.${EditorSerializedTransformAxis}`;\n\nconst SERIALIZED_TRANSFORM_PATH_PATTERN = /^transform\\.(position|rotation|scale)\\.(x|y|z)$/;\n\nexport function createEditorTransformPartialFromSerializedPath(\n path: string,\n value: unknown,\n): Partial<EditorTransformTrsSnapshot> | null {\n const numericValue = Number(value);\n if (!Number.isFinite(numericValue)) return null;\n const match = path.match(SERIALIZED_TRANSFORM_PATH_PATTERN);\n if (!match) return null;\n const vectorName = match[1] as EditorSerializedTransformVector;\n const axis = match[2] as EditorSerializedTransformAxis;\n const storedValue = vectorName === 'rotation' ? (numericValue * Math.PI) / 180 : numericValue;\n return { [vectorName]: { [axis]: storedValue } } as Partial<EditorTransformTrsSnapshot>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"transform-gizmo.js","sourceRoot":"","sources":["../src/transform-gizmo.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAC,MAAM,yCAAyC,GAAG;IACvD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,EAAE;KACZ;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,GAAG;QACb,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE;YACP;gBACE,EAAE,EAAE,WAAW;gBACf,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,eAAe;aAC7B;YACD;gBACE,EAAE,EAAE,YAAY;gBAChB,UAAU,EAAE,OAAO;gBACnB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,kBAAkB;aAChC;YACD;gBACE,EAAE,EAAE,WAAW;gBACf,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,iBAAiB;aAC/B;SACF;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,GAAG;QACb,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE;YACP;gBACE,EAAE,EAAE,aAAa;gBACjB,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,eAAe;aAC7B;SACF;KACF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,GAAG;QACb,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE;YACP;gBACE,EAAE,EAAE,YAAY;gBAChB,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,eAAe;aAC7B;YACD;gBACE,EAAE,EAAE,eAAe;gBACnB,UAAU,EAAE,SAAS;gBACrB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,WAAW;aACzB;SACF;KACF;CACmE,CAAC;AAEvE,MAAM,UAAU,gCAAgC,CAC9C,IAAyB;IAEzB,OAAO,yCAAyC,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,IAAyB,EACzB,UAA6C;IAE7C,MAAM,UAAU,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,CAAC,iBAAiB;QAAE,OAAO,SAAS,CAAC;IACpD,MAAM,UAAU,GAAG,UAAU,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;IACrE,IAAI,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,EAAE,CAAC;QACtF,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,UAAU,CAAC,iBAAiB,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"transform-gizmo.js","sourceRoot":"","sources":["../src/transform-gizmo.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAC,MAAM,yCAAyC,GAAG;IACvD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,EAAE;KACZ;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,GAAG;QACb,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE;YACP;gBACE,EAAE,EAAE,WAAW;gBACf,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,eAAe;aAC7B;YACD;gBACE,EAAE,EAAE,YAAY;gBAChB,UAAU,EAAE,OAAO;gBACnB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,kBAAkB;aAChC;YACD;gBACE,EAAE,EAAE,WAAW;gBACf,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,iBAAiB;aAC/B;SACF;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,GAAG;QACb,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE;YACP;gBACE,EAAE,EAAE,aAAa;gBACjB,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,eAAe;aAC7B;SACF;KACF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,GAAG;QACb,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE;YACP;gBACE,EAAE,EAAE,YAAY;gBAChB,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,eAAe;aAC7B;YACD;gBACE,EAAE,EAAE,eAAe;gBACnB,UAAU,EAAE,SAAS;gBACrB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,WAAW;aACzB;SACF;KACF;CACmE,CAAC;AAEvE,MAAM,UAAU,gCAAgC,CAC9C,IAAyB;IAEzB,OAAO,yCAAyC,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,IAAyB,EACzB,UAA6C;IAE7C,MAAM,UAAU,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,CAAC,iBAAiB;QAAE,OAAO,SAAS,CAAC;IACpD,MAAM,UAAU,GAAG,UAAU,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;IACrE,IAAI,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,EAAE,CAAC;QACtF,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,UAAU,CAAC,iBAAiB,CAAC;AACtC,CAAC","sourcesContent":["export type EditorTransformTool = 'select' | 'move' | 'rotate' | 'scale';\n\n/**\n * Operation-space preference for transform tools.\n *\n * This describes the basis used by a gizmo operation, not the storage space of\n * authored data. Transform commits emitted by the editor framework use\n * world-space snapshots; project adapters are responsible for converting those\n * snapshots back into their document-local representation when needed.\n */\nexport type EditorTransformSpace = 'world' | 'local';\n\nexport type EditorTransformCanonicalConstraint = 'axis' | 'plane' | 'free' | 'uniform';\n\nexport type EditorTransformConstraint = EditorTransformCanonicalConstraint | 'view-plane';\n\nexport type EditorTransformOperationBlockReason =\n | 'non-trs-representable'\n | 'non-invertible-parent'\n | 'unsupported-transform';\n\nexport interface EditorTransformHandleDescriptor {\n id: string;\n constraint: EditorTransformCanonicalConstraint;\n label: string;\n description: string;\n}\n\nexport interface EditorTransformToolDescriptor {\n tool: EditorTransformTool;\n label: string;\n shortcut?: string;\n defaultConstraint?: EditorTransformCanonicalConstraint;\n handles: readonly EditorTransformHandleDescriptor[];\n}\n\nexport const DEFAULT_EDITOR_TRANSFORM_TOOL_DESCRIPTORS = {\n select: {\n tool: 'select',\n label: '选择',\n shortcut: 'Q',\n handles: [],\n },\n move: {\n tool: 'move',\n label: '移动',\n shortcut: 'W',\n defaultConstraint: 'axis',\n handles: [\n {\n id: 'move.axis',\n constraint: 'axis',\n label: '轴向',\n description: '沿 X/Y/Z 单轴移动。',\n },\n {\n id: 'move.plane',\n constraint: 'plane',\n label: '平面',\n description: '沿 XY/XZ/YZ 平面移动。',\n },\n {\n id: 'move.free',\n constraint: 'free',\n label: '自由',\n description: '沿当前摄像机视图平面自由移动。',\n },\n ],\n },\n rotate: {\n tool: 'rotate',\n label: '旋转',\n shortcut: 'E',\n defaultConstraint: 'axis',\n handles: [\n {\n id: 'rotate.axis',\n constraint: 'axis',\n label: '轴向',\n description: '绕 X/Y/Z 单轴旋转。',\n },\n ],\n },\n scale: {\n tool: 'scale',\n label: '缩放',\n shortcut: 'R',\n defaultConstraint: 'axis',\n handles: [\n {\n id: 'scale.axis',\n constraint: 'axis',\n label: '轴向',\n description: '沿 X/Y/Z 单轴缩放。',\n },\n {\n id: 'scale.uniform',\n constraint: 'uniform',\n label: '统一',\n description: '沿所有轴等比缩放。',\n },\n ],\n },\n} satisfies Record<EditorTransformTool, EditorTransformToolDescriptor>;\n\nexport function getEditorTransformToolDescriptor(\n tool: EditorTransformTool,\n): EditorTransformToolDescriptor {\n return DEFAULT_EDITOR_TRANSFORM_TOOL_DESCRIPTORS[tool];\n}\n\nexport function normalizeEditorTransformConstraint(\n tool: EditorTransformTool,\n constraint?: EditorTransformConstraint | null,\n): EditorTransformCanonicalConstraint | undefined {\n const descriptor = getEditorTransformToolDescriptor(tool);\n if (!descriptor.defaultConstraint) return undefined;\n const normalized = constraint === 'view-plane' ? 'free' : constraint;\n if (normalized && descriptor.handles.some(handle => handle.constraint === normalized)) {\n return normalized;\n }\n return descriptor.defaultConstraint;\n}\n\nexport type {\n EditorTransformMatrix,\n EditorTransformMatrixSnapshot,\n EditorTransformSnapshot,\n EditorTransformTrsSnapshot,\n EditorTransformVec3,\n} from '@fps-games/playable-contracts';\nimport type {\n EditorTransformSnapshot,\n EditorTransformVec3,\n} from '@fps-games/playable-contracts';\n\nexport type EditorTransformGizmoDragPhase = 'idle' | 'dragging';\n\nexport interface EditorTransformGizmoState {\n tool: EditorTransformTool;\n space: EditorTransformSpace;\n constraint?: EditorTransformConstraint;\n selectedNodeId: string | null;\n dragPhase: EditorTransformGizmoDragPhase;\n draggingNodeId: string | null;\n}\n\nexport interface EditorTransformGizmoCommit {\n nodeId: string;\n tool: Exclude<EditorTransformTool, 'select'>;\n /** Operation-space preference used to produce the world-space snapshots. */\n space: EditorTransformSpace;\n constraint: EditorTransformCanonicalConstraint;\n /** World-space transform before the drag. */\n before: EditorTransformSnapshot;\n /** World-space transform after the drag. */\n after: EditorTransformSnapshot;\n}\n\nexport interface EditorTransformPivot {\n mode: 'selection-center';\n position: EditorTransformVec3;\n}\n\nexport interface EditorTransformTargetSnapshot {\n id: string;\n /** World-space transform before the batch drag. */\n before: EditorTransformSnapshot;\n /** World-space transform after the batch drag. */\n after: EditorTransformSnapshot;\n}\n\nexport interface EditorTransformBatchCommit {\n targetIds: string[];\n activeId: string | null;\n tool: Exclude<EditorTransformTool, 'select'>;\n /** Operation-space preference used to produce the world-space snapshots. */\n space: EditorTransformSpace;\n constraint: EditorTransformCanonicalConstraint;\n pivot: EditorTransformPivot;\n targets: EditorTransformTargetSnapshot[];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"transform-operation-policy.js","sourceRoot":"","sources":["../src/transform-operation-policy.ts"],"names":[],"mappings":"AAqDA,MAAM,CAAC,MAAM,8CAA8C,GAAwC;IACjG,uBAAuB,EAAE,KAAK;IAC9B,aAAa,EAAE,KAAK;IACpB,uBAAuB,EAAE,KAAK;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,6CAA6C,GAAuC;IAC/F,aAAa,EAAE,IAAI;IACnB,uBAAuB,EAAE,IAAI;CAC9B,CAAC;AAEF,MAAM,UAAU,yCAAyC,CACvD,QAAiD,EAAE;IAEnD,MAAM,mBAAmB,GAAG;QAC1B,GAAG,6CAA6C;QAChD,GAAG,KAAK,CAAC,mBAAmB;KAC7B,CAAC;IACF,OAAO;QACL,mBAAmB,EAAE,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC;eACnD,mBAAmB,CAAC,uBAAuB;eAC3C,mBAAmB,CAAC,aAAa;QACtC,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,KAA0C;IAE1C,MAAM,oBAAoB,GAAG;QAC3B,GAAG,8CAA8C;QACjD,GAAG,KAAK,CAAC,oBAAoB;KAC9B,CAAC;IACF,MAAM,yBAAyB,GAAG,oBAAoB,CAAC,uBAAuB,KAAK,KAAK;WACnF,CAAC,oBAAoB,CAAC,aAAa;WACnC,CAAC,oBAAoB,CAAC,uBAAuB,CAAC;IAEnD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,IAAI,yBAAyB,EAAE,CAAC;QACvF,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;YACjE,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,cAAc,EAAE,OAAO;YACvB,SAAS,EAAE,QAAQ;YACnB,cAAc,EAAE,oBAAoB,CAAC,uBAAuB;YAC5D,MAAM,EAAE,KAAK,CAAC,cAAc,KAAK,OAAO;gBACtC,CAAC,CAAC,2BAA2B;gBAC7B,CAAC,CAAC,6BAA6B;SAClC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,SAAS,EAAE,KAAK,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;QAChE,cAAc,EAAE,oBAAoB,CAAC,uBAAuB;QAC5D,MAAM,EAAE,2BAA2B;KACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"transform-operation-policy.js","sourceRoot":"","sources":["../src/transform-operation-policy.ts"],"names":[],"mappings":"AAqDA,MAAM,CAAC,MAAM,8CAA8C,GAAwC;IACjG,uBAAuB,EAAE,KAAK;IAC9B,aAAa,EAAE,KAAK;IACpB,uBAAuB,EAAE,KAAK;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,6CAA6C,GAAuC;IAC/F,aAAa,EAAE,IAAI;IACnB,uBAAuB,EAAE,IAAI;CAC9B,CAAC;AAEF,MAAM,UAAU,yCAAyC,CACvD,QAAiD,EAAE;IAEnD,MAAM,mBAAmB,GAAG;QAC1B,GAAG,6CAA6C;QAChD,GAAG,KAAK,CAAC,mBAAmB;KAC7B,CAAC;IACF,OAAO;QACL,mBAAmB,EAAE,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC;eACnD,mBAAmB,CAAC,uBAAuB;eAC3C,mBAAmB,CAAC,aAAa;QACtC,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,KAA0C;IAE1C,MAAM,oBAAoB,GAAG;QAC3B,GAAG,8CAA8C;QACjD,GAAG,KAAK,CAAC,oBAAoB;KAC9B,CAAC;IACF,MAAM,yBAAyB,GAAG,oBAAoB,CAAC,uBAAuB,KAAK,KAAK;WACnF,CAAC,oBAAoB,CAAC,aAAa;WACnC,CAAC,oBAAoB,CAAC,uBAAuB,CAAC;IAEnD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,IAAI,yBAAyB,EAAE,CAAC;QACvF,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;YACjE,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,cAAc,EAAE,OAAO;YACvB,SAAS,EAAE,QAAQ;YACnB,cAAc,EAAE,oBAAoB,CAAC,uBAAuB;YAC5D,MAAM,EAAE,KAAK,CAAC,cAAc,KAAK,OAAO;gBACtC,CAAC,CAAC,2BAA2B;gBAC7B,CAAC,CAAC,6BAA6B;SAClC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,SAAS,EAAE,KAAK,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;QAChE,cAAc,EAAE,oBAAoB,CAAC,uBAAuB;QAC5D,MAAM,EAAE,2BAA2B;KACpC,CAAC;AACJ,CAAC","sourcesContent":["import type {\n EditorTransformCanonicalConstraint,\n EditorTransformSpace,\n EditorTransformTool,\n} from './transform-gizmo';\n\nexport type EditorTransformRepresentation = 'trs' | 'matrix';\n\nexport type EditorTransformAxisFrame = 'world' | 'object';\n\nexport type EditorTransformOperationPolicyStatus = 'allowed' | 'remapped' | 'blocked';\n\nexport type EditorTransformOperationPolicyReason =\n | 'requested-space-supported'\n | 'trs-axis-scale-object-space';\n\nexport interface EditorTransformDocumentCapabilities {\n transformRepresentation: EditorTransformRepresentation;\n supportsShear: boolean;\n supportsMatrixTransform: boolean;\n}\n\nexport interface EditorTransformStorageCapabilities {\n supportsShear: boolean;\n supportsMatrixTransform: boolean;\n}\n\nexport interface EditorTransformOperationPolicyInput {\n tool: Exclude<EditorTransformTool, 'select'>;\n constraint: EditorTransformCanonicalConstraint;\n requestedSpace: EditorTransformSpace;\n documentCapabilities?: Partial<EditorTransformDocumentCapabilities>;\n}\n\nexport interface EditorTransformOperationPolicy {\n status: EditorTransformOperationPolicyStatus;\n requestedSpace: EditorTransformSpace;\n effectiveSpace: EditorTransformSpace;\n axisFrame: EditorTransformAxisFrame;\n representation: EditorTransformRepresentation;\n reason: EditorTransformOperationPolicyReason;\n}\n\nexport interface EditorTransformPreserveWorldPolicyInput {\n allowMatrixFallback?: boolean;\n storageCapabilities?: Partial<EditorTransformStorageCapabilities>;\n}\n\nexport interface EditorTransformPreserveWorldPolicy {\n allowMatrixFallback: boolean;\n storageCapabilities: EditorTransformStorageCapabilities;\n}\n\nexport const DEFAULT_EDITOR_TRANSFORM_DOCUMENT_CAPABILITIES: EditorTransformDocumentCapabilities = {\n transformRepresentation: 'trs',\n supportsShear: false,\n supportsMatrixTransform: false,\n};\n\nexport const DEFAULT_EDITOR_TRANSFORM_STORAGE_CAPABILITIES: EditorTransformStorageCapabilities = {\n supportsShear: true,\n supportsMatrixTransform: true,\n};\n\nexport function resolveEditorTransformPreserveWorldPolicy(\n input: EditorTransformPreserveWorldPolicyInput = {},\n): EditorTransformPreserveWorldPolicy {\n const storageCapabilities = {\n ...DEFAULT_EDITOR_TRANSFORM_STORAGE_CAPABILITIES,\n ...input.storageCapabilities,\n };\n return {\n allowMatrixFallback: (input.allowMatrixFallback ?? true)\n && storageCapabilities.supportsMatrixTransform\n && storageCapabilities.supportsShear,\n storageCapabilities,\n };\n}\n\nexport function resolveEditorTransformOperationPolicy(\n input: EditorTransformOperationPolicyInput,\n): EditorTransformOperationPolicy {\n const documentCapabilities = {\n ...DEFAULT_EDITOR_TRANSFORM_DOCUMENT_CAPABILITIES,\n ...input.documentCapabilities,\n };\n const usesTrsOnlyRepresentation = documentCapabilities.transformRepresentation === 'trs'\n && !documentCapabilities.supportsShear\n && !documentCapabilities.supportsMatrixTransform;\n\n if (input.tool === 'scale' && input.constraint === 'axis' && usesTrsOnlyRepresentation) {\n return {\n status: input.requestedSpace === 'local' ? 'allowed' : 'remapped',\n requestedSpace: input.requestedSpace,\n effectiveSpace: 'local',\n axisFrame: 'object',\n representation: documentCapabilities.transformRepresentation,\n reason: input.requestedSpace === 'local'\n ? 'requested-space-supported'\n : 'trs-axis-scale-object-space',\n };\n }\n\n return {\n status: 'allowed',\n requestedSpace: input.requestedSpace,\n effectiveSpace: input.requestedSpace,\n axisFrame: input.requestedSpace === 'local' ? 'object' : 'world',\n representation: documentCapabilities.transformRepresentation,\n reason: 'requested-space-supported',\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"transform-operations.js","sourceRoot":"","sources":["../src/transform-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform-operations.js","sourceRoot":"","sources":["../src/transform-operations.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n EditorTransformSnapshot,\n EditorTransformTrsSnapshot,\n EditorTransformTool,\n EditorTransformVec3,\n EditorTransformTargetSnapshot,\n} from './transform-gizmo';\nimport {\n cloneEditorTransformSnapshot,\n isEditorTransformTrsSnapshot,\n} from '@fps-games/playable-scene';\n\nexport interface EditorTransformSnapSettings {\n enabled: boolean;\n moveStep: number;\n rotateStepDegrees: number;\n scaleStep: number;\n}\n\nexport type EditorPlacementMode = 'off' | 'ground' | 'surface';\n\nexport interface EditorPlacementHit {\n mode: Exclude<EditorPlacementMode, 'off'>;\n position: EditorTransformVec3;\n normal?: EditorTransformVec3;\n nodeId?: string | null;\n}\n\nexport interface EditorTransformOperationSettings {\n snap: EditorTransformSnapSettings;\n placementMode: EditorPlacementMode;\n}\n\nexport type EditorTransformAction =\n | 'align-x'\n | 'align-y'\n | 'align-z'\n | 'align-all'\n | 'distribute-x'\n | 'distribute-y'\n | 'distribute-z';\n\nexport interface EditorTransformActionTarget {\n id: string;\n transform: EditorTransformSnapshot;\n}\n\nexport interface EditorTransformActionInput {\n action: EditorTransformAction;\n activeId: string | null;\n targets: readonly EditorTransformActionTarget[];\n}\n\ninterface EditorTransformTrsTargetSnapshot {\n id: string;\n before: EditorTransformTrsSnapshot;\n after: EditorTransformTrsSnapshot;\n}\n\nexport const DEFAULT_EDITOR_TRANSFORM_OPERATION_SETTINGS: EditorTransformOperationSettings = {\n snap: {\n enabled: false,\n moveStep: 0.5,\n rotateStepDegrees: 15,\n scaleStep: 0.1,\n },\n placementMode: 'off',\n};\n\nexport function snapEditorTransformSnapshot(\n before: EditorTransformSnapshot,\n after: EditorTransformSnapshot,\n tool: Exclude<EditorTransformTool, 'select'>,\n settings: EditorTransformSnapSettings,\n): EditorTransformSnapshot {\n if (!settings.enabled || !isEditorTransformTrsSnapshot(before) || !isEditorTransformTrsSnapshot(after)) {\n return cloneEditorTransformSnapshot(after);\n }\n if (tool === 'move') {\n return {\n position: snapVec3Delta(before.position, after.position, settings.moveStep),\n rotation: cloneVec3(after.rotation),\n scale: cloneVec3(after.scale),\n };\n }\n if (tool === 'rotate') {\n return {\n position: cloneVec3(after.position),\n rotation: snapVec3Delta(before.rotation, after.rotation, degreesToRadians(settings.rotateStepDegrees)),\n scale: cloneVec3(after.scale),\n };\n }\n return {\n position: cloneVec3(after.position),\n rotation: cloneVec3(after.rotation),\n scale: snapVec3Delta(before.scale, after.scale, settings.scaleStep),\n };\n}\n\nexport function computeEditorTransformActionTargets(\n input: EditorTransformActionInput,\n): EditorTransformTargetSnapshot[] {\n const targets = input.targets\n .filter(target => !!target.id)\n .filter((target): target is EditorTransformActionTarget & { transform: EditorTransformTrsSnapshot } => (\n isEditorTransformTrsSnapshot(target.transform)\n ))\n .map(target => ({\n id: target.id,\n before: cloneTrsTransformSnapshot(target.transform),\n after: cloneTrsTransformSnapshot(target.transform),\n }));\n if (targets.length === 0) return [];\n if (input.action.startsWith('align-')) {\n return computeAlignTargets(input.action, input.activeId, targets);\n }\n return computeDistributeTargets(input.action, targets);\n}\n\nfunction computeAlignTargets(\n action: EditorTransformAction,\n activeId: string | null,\n targets: EditorTransformTrsTargetSnapshot[],\n): EditorTransformTargetSnapshot[] {\n if (targets.length < 2 || !activeId) return [];\n const active = targets.find(target => target.id === activeId);\n if (!active) return [];\n const axes = action === 'align-all' ? ['x', 'y', 'z'] as const : [action.slice(-1) as 'x' | 'y' | 'z'];\n return targets.map((target) => {\n const position = cloneVec3(target.after.position);\n for (const axis of axes) position[axis] = active.before.position[axis];\n return {\n ...target,\n after: {\n ...target.after,\n position,\n },\n };\n });\n}\n\nfunction computeDistributeTargets(\n action: EditorTransformAction,\n targets: EditorTransformTrsTargetSnapshot[],\n): EditorTransformTargetSnapshot[] {\n if (targets.length < 3) return [];\n const axis = action.slice(-1) as 'x' | 'y' | 'z';\n const sorted = [...targets].sort((left, right) => left.before.position[axis] - right.before.position[axis]);\n const first = sorted[0]!;\n const last = sorted[sorted.length - 1]!;\n const step = (last.before.position[axis] - first.before.position[axis]) / (sorted.length - 1);\n return sorted.map((target, index) => {\n const position = cloneVec3(target.after.position);\n position[axis] = sanitizeNumber(first.before.position[axis] + step * index);\n return {\n ...target,\n after: {\n ...target.after,\n position,\n },\n };\n });\n}\n\nfunction snapVec3Delta(\n before: EditorTransformVec3,\n after: EditorTransformVec3,\n step: number,\n): EditorTransformVec3 {\n if (!Number.isFinite(step) || step <= 0) return cloneVec3(after);\n return {\n x: snapDeltaComponent(before.x, after.x, step),\n y: snapDeltaComponent(before.y, after.y, step),\n z: snapDeltaComponent(before.z, after.z, step),\n };\n}\n\nfunction snapDeltaComponent(before: number, after: number, step: number): number {\n const delta = after - before;\n return sanitizeNumber(before + Math.round(delta / step) * step);\n}\n\nfunction degreesToRadians(degrees: number): number {\n return (degrees * Math.PI) / 180;\n}\n\nfunction cloneTrsTransformSnapshot(transform: EditorTransformTrsSnapshot): EditorTransformTrsSnapshot {\n return {\n ...(transform.mode === 'trs' ? { mode: 'trs' as const } : {}),\n position: cloneVec3(transform.position),\n rotation: cloneVec3(transform.rotation),\n scale: cloneVec3(transform.scale),\n };\n}\n\nfunction cloneVec3(value: EditorTransformVec3): EditorTransformVec3 {\n return {\n x: value.x,\n y: value.y,\n z: value.z,\n };\n}\n\nfunction sanitizeNumber(value: number): number {\n if (!Number.isFinite(value)) return value;\n return Math.abs(value) < 0.000000000001\n ? 0\n : Number(value.toFixed(12));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"viewport-tools.js","sourceRoot":"","sources":["../src/viewport-tools.ts"],"names":[],"mappings":"AAiGA,MAAM,CAAC,MAAM,wCAAwC,GAAG;IACtD,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE,KAAK;CAC0B,CAAC;AAE1C,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,UAAU,EAAE,aAAa;IACzB,cAAc,EAAE,aAAa;IAC7B,iBAAiB,EAAE,MAAM;IACzB,cAAc,EAAE,IAAI;IACpB,OAAO,EAAE,wCAAwC;CAChB,CAAC;AAEpC,MAAM,UAAU,kCAAkC,CAChD,QAAuC;IAEvC,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAA8B;IAE9B,OAAO;QACL,GAAG,KAAK;QACR,OAAO,EAAE,kCAAkC,CAAC,KAAK,CAAC,OAAO,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sCAAsC,CACpD,KAAwC;IAExC,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YAClB,CAAC,CAAC;gBACE,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC5B,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC5B,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;gBAClC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;aAC/B;YACH,CAAC,CAAC,IAAI;QACR,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;QACjD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,GAAG,IAAI;YACP,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;YACxB,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC,CAAC;QACH,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACjD,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpC,GAAG,MAAM;YACT,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE;SACjC,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4CAA4C;IAC1D,OAAO;QACL,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"viewport-tools.js","sourceRoot":"","sources":["../src/viewport-tools.ts"],"names":[],"mappings":"AAiGA,MAAM,CAAC,MAAM,wCAAwC,GAAG;IACtD,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE,KAAK;CAC0B,CAAC;AAE1C,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,UAAU,EAAE,aAAa;IACzB,cAAc,EAAE,aAAa;IAC7B,iBAAiB,EAAE,MAAM;IACzB,cAAc,EAAE,IAAI;IACpB,OAAO,EAAE,wCAAwC;CAChB,CAAC;AAEpC,MAAM,UAAU,kCAAkC,CAChD,QAAuC;IAEvC,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAA8B;IAE9B,OAAO;QACL,GAAG,KAAK;QACR,OAAO,EAAE,kCAAkC,CAAC,KAAK,CAAC,OAAO,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sCAAsC,CACpD,KAAwC;IAExC,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YAClB,CAAC,CAAC;gBACE,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC5B,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC5B,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;gBAClC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;aAC/B;YACH,CAAC,CAAC,IAAI;QACR,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;QACjD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,GAAG,IAAI;YACP,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;YACxB,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC,CAAC;QACH,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACjD,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpC,GAAG,MAAM;YACT,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE;SACjC,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4CAA4C;IAC1D,OAAO;QACL,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC","sourcesContent":["import type { EditorTransformVec3 } from './transform-gizmo';\n\nexport type EditorViewportViewPreset =\n | 'perspective'\n | 'top'\n | 'bottom'\n | 'front'\n | 'back'\n | 'left'\n | 'right'\n | 'iso'\n | 'threeQuarterTop';\n\nexport type EditorViewportProjectionMode = 'perspective' | 'orthographic';\n\nexport type EditorViewportUtilityTool = 'none' | 'measure-distance';\n\nexport interface EditorViewportOverlaySettings {\n bounds: boolean;\n dimensions: boolean;\n edgeLengths: boolean;\n anchor: boolean;\n}\n\nexport interface EditorViewportToolState {\n viewPreset: EditorViewportViewPreset;\n projectionMode: EditorViewportProjectionMode;\n activeUtilityTool: EditorViewportUtilityTool;\n markersVisible: boolean;\n overlay: EditorViewportOverlaySettings;\n}\n\nexport interface EditorViewportGroundMeasurement {\n active: boolean;\n start: EditorTransformVec3 | null;\n end: EditorTransformVec3 | null;\n preview: EditorTransformVec3 | null;\n distance: number | null;\n screenStart?: EditorViewportScreenPoint | null;\n screenEnd?: EditorViewportScreenPoint | null;\n screenPreview?: EditorViewportScreenPoint | null;\n label?: {\n text: string;\n x: number;\n y: number;\n } | null;\n}\n\nexport interface EditorViewportBounds {\n min: EditorTransformVec3;\n max: EditorTransformVec3;\n center: EditorTransformVec3;\n size: EditorTransformVec3;\n}\n\nexport interface EditorViewportScreenPoint {\n x: number;\n y: number;\n depth: number;\n}\n\nexport type EditorViewportSpatialOverlayLineKind = 'bounds';\n\nexport interface EditorViewportSpatialOverlayLine {\n id: string;\n kind: EditorViewportSpatialOverlayLineKind;\n start: EditorViewportScreenPoint;\n end: EditorViewportScreenPoint;\n}\n\nexport type EditorViewportSpatialOverlayLabelKind = 'dimension' | 'edge-length' | 'anchor';\n\nexport interface EditorViewportSpatialOverlayLabel {\n id: string;\n kind: EditorViewportSpatialOverlayLabelKind;\n text: string;\n x: number;\n y: number;\n}\n\nexport interface EditorViewportSpatialOverlayMarker {\n id: string;\n kind: 'anchor';\n position: EditorViewportScreenPoint;\n label: string;\n}\n\nexport interface EditorViewportSpatialOverlayState {\n active: boolean;\n nodeId: string | null;\n bounds: EditorViewportBounds | null;\n anchor: EditorTransformVec3 | null;\n lines: EditorViewportSpatialOverlayLine[];\n labels: EditorViewportSpatialOverlayLabel[];\n markers: EditorViewportSpatialOverlayMarker[];\n}\n\nexport const DEFAULT_EDITOR_VIEWPORT_OVERLAY_SETTINGS = {\n bounds: false,\n dimensions: false,\n edgeLengths: false,\n anchor: false,\n} satisfies EditorViewportOverlaySettings;\n\nexport const DEFAULT_EDITOR_VIEWPORT_TOOL_STATE = {\n viewPreset: 'perspective',\n projectionMode: 'perspective',\n activeUtilityTool: 'none',\n markersVisible: true,\n overlay: DEFAULT_EDITOR_VIEWPORT_OVERLAY_SETTINGS,\n} satisfies EditorViewportToolState;\n\nexport function cloneEditorViewportOverlaySettings(\n settings: EditorViewportOverlaySettings,\n): EditorViewportOverlaySettings {\n return { ...settings };\n}\n\nexport function cloneEditorViewportToolState(\n state: EditorViewportToolState,\n): EditorViewportToolState {\n return {\n ...state,\n overlay: cloneEditorViewportOverlaySettings(state.overlay),\n };\n}\n\nexport function cloneEditorViewportSpatialOverlayState(\n state: EditorViewportSpatialOverlayState,\n): EditorViewportSpatialOverlayState {\n return {\n active: state.active,\n nodeId: state.nodeId,\n bounds: state.bounds\n ? {\n min: { ...state.bounds.min },\n max: { ...state.bounds.max },\n center: { ...state.bounds.center },\n size: { ...state.bounds.size },\n }\n : null,\n anchor: state.anchor ? { ...state.anchor } : null,\n lines: state.lines.map(line => ({\n ...line,\n start: { ...line.start },\n end: { ...line.end },\n })),\n labels: state.labels.map(label => ({ ...label })),\n markers: state.markers.map(marker => ({\n ...marker,\n position: { ...marker.position },\n })),\n };\n}\n\nexport function createEmptyEditorViewportSpatialOverlayState(): EditorViewportSpatialOverlayState {\n return {\n active: false,\n nodeId: null,\n bounds: null,\n anchor: null,\n lines: [],\n labels: [],\n markers: [],\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fps-games/editor-core",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.3",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Core runtime shell and adapter contracts for fps-game-editor.",
@@ -30,10 +30,10 @@
30
30
  }
31
31
  },
32
32
  "dependencies": {
33
- "@fps-games/plugin-api": "0.2.0-beta.2",
34
- "@fps-games/plugin-host": "0.2.0-beta.2",
35
- "@fps-games/playable-contracts": "0.2.0-beta.2",
36
- "@fps-games/playable-scene": "0.2.0-beta.2",
37
- "@fps-games/editor-protocol": "0.2.0-beta.2"
33
+ "@fps-games/plugin-api": "0.2.0-beta.3",
34
+ "@fps-games/plugin-host": "0.2.0-beta.3",
35
+ "@fps-games/playable-contracts": "0.2.0-beta.3",
36
+ "@fps-games/playable-scene": "0.2.0-beta.3",
37
+ "@fps-games/editor-protocol": "0.2.0-beta.3"
38
38
  }
39
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-transport.js","sourceRoot":"","sources":["../src/agent-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,GAExB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,CAAC,MAAM,8BAA8B,GAAG,wBAAiC,CAAC;AAChF,MAAM,CAAC,MAAM,mCAAmC,GAAG,OAAgB,CAAC;AAyBpE,SAAS,gBAAgB;IACvB,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,GAA6C;IAClE,IAAI,CAAC,GAAG,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,UAA0C,EAAE;IAE5C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;IACjD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC;IACjD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACpC,OAAO;QACL,WAAW,CAAC,OAAO;YACjB,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAC;YACzF,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;YACxB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;YAC7D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAyC,EACzC,OAA2B,EAC3B,YAAoB,EACpB,SAAiB;IAEjB,MAAM,CAAC,WAAW,CAAC;QACjB,MAAM,EAAE,8BAA8B;QACtC,IAAI,EAAE,mCAAmC;QACzC,OAAO,EAAE;YACP,IAAI,EAAE,uBAAuB,CAAC,WAAW;YACzC,OAAO;SACR;QACD,SAAS;KACV,EAAE,YAAY,CAAC,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"agent-transport.js","sourceRoot":"","sources":["../src/agent-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,GAExB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,CAAC,MAAM,8BAA8B,GAAG,wBAAiC,CAAC;AAChF,MAAM,CAAC,MAAM,mCAAmC,GAAG,OAAgB,CAAC;AAyBpE,SAAS,gBAAgB;IACvB,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,GAA6C;IAClE,IAAI,CAAC,GAAG,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,UAA0C,EAAE;IAE5C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;IACjD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC;IACjD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACpC,OAAO;QACL,WAAW,CAAC,OAAO;YACjB,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAC;YACzF,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;YACxB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;YAC7D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAyC,EACzC,OAA2B,EAC3B,YAAoB,EACpB,SAAiB;IAEjB,MAAM,CAAC,WAAW,CAAC;QACjB,MAAM,EAAE,8BAA8B;QACtC,IAAI,EAAE,mCAAmC;QACzC,OAAO,EAAE;YACP,IAAI,EAAE,uBAAuB,CAAC,WAAW;YACzC,OAAO;SACR;QACD,SAAS;KACV,EAAE,YAAY,CAAC,CAAC;AACnB,CAAC","sourcesContent":["import {\n EDITOR_AGENT_EVENT_NAME,\n type EditorAgentContext,\n} from '@fps-games/editor-protocol';\n\nexport const FORGE_PLAY_AGENT_BRIDGE_SOURCE = 'forge-play-game-bridge' as const;\nexport const FORGE_PLAY_AGENT_POST_MESSAGE_EVENT = 'event' as const;\n\nexport interface ForgePlayAgentTransportParentLike {\n postMessage(message: unknown, targetOrigin: string): void;\n}\n\nexport interface ForgePlayAgentTransportWindowLike {\n parent?: ForgePlayAgentTransportParentLike | null;\n}\n\nexport interface ForgePlayAgentTransportOptions {\n window?: ForgePlayAgentTransportWindowLike | null;\n targetOrigin?: string;\n now?: () => number;\n}\n\nexport interface ForgePlayAgentTransportResult {\n sent: boolean;\n reason?: string;\n}\n\nexport interface ForgePlayAgentTransport {\n sendContext(context: EditorAgentContext): ForgePlayAgentTransportResult;\n}\n\nfunction getDefaultWindow(): ForgePlayAgentTransportWindowLike | null {\n if (typeof window === 'undefined') return null;\n return window;\n}\n\nfunction resolveParent(win: ForgePlayAgentTransportWindowLike | null): ForgePlayAgentTransportParentLike | null {\n if (!win?.parent) return null;\n try {\n if (win.parent === win) return null;\n } catch {\n return null;\n }\n return win.parent;\n}\n\nexport function createForgePlayAgentTransport(\n options: ForgePlayAgentTransportOptions = {},\n): ForgePlayAgentTransport {\n const win = options.window ?? getDefaultWindow();\n const targetOrigin = options.targetOrigin ?? '*';\n const now = options.now ?? Date.now;\n return {\n sendContext(context) {\n const parent = resolveParent(win);\n if (!parent) return { sent: false, reason: 'No Forge Play parent window is available.' };\n const timestamp = now();\n postAgentContextV1(parent, context, targetOrigin, timestamp);\n return { sent: true };\n },\n };\n}\n\nfunction postAgentContextV1(\n parent: ForgePlayAgentTransportParentLike,\n context: EditorAgentContext,\n targetOrigin: string,\n timestamp: number,\n): void {\n parent.postMessage({\n source: FORGE_PLAY_AGENT_BRIDGE_SOURCE,\n type: FORGE_PLAY_AGENT_POST_MESSAGE_EVENT,\n payload: {\n name: EDITOR_AGENT_EVENT_NAME.CONTEXT_ADD,\n context,\n },\n timestamp,\n }, targetOrigin);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,cAAc,mBAAmB,CAAC;AA6BlC,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,cAAc;IACd,uBAAuB;IACvB,oBAAoB;CACZ,CAAC;AAEX,SAAS,gBAAgB;IACvB,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,MAA+B,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAsC,EAAE;IACzE,OAAO,OAAO,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAsC,EAAE;IACzE,OAAO,kBAAkB,CAAC,OAAO,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAsC,EAAE;IAC5E,OAAO,kBAAkB,CAAC,OAAO,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,MAAoB,EACpB,UAAsC,EAAE;IAExC,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,GAAG;QAAE,GAAG,CAAC,qBAAqB,GAAG,MAAM,CAAC;IAE5C,MAAM,MAAM,GAAG,GAAG,EAAE,QAAQ,IAAI,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,oBAAoB,CAAC;IAC9C,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,OAAsB,EACtB,UAAsC,EAAE;IAExC,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,GAAG;QAAE,GAAG,CAAC,sBAAsB,GAAG,OAAO,CAAC;IAE9C,MAAM,MAAM,GAAG,GAAG,EAAE,QAAQ,IAAI,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,qBAAqB,CAAC;IAC/C,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,OAAgC,EAChC,UAAsC,EAAE;IAExC,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IACpD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAAY,EACZ,OAAgC,EAChC,UAAsC,EAAE;IAExC,MAAM,IAAI,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,0CAA0C,CACxD,UAA6C,EAAE;IAE/C,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;IAC7C,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,MAAM,QAAQ,GAAG,GAAY,EAAE;QAC7B,MAAM,MAAM,GAAI,GAAG,CAAC,QAAgB,EAAE,MAAM,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,QAAQ,GAAG,WAAW,EAAE,CAAC;gBAC3B,QAAQ,IAAI,CAAC,CAAC;gBACd,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAM,CAAC,wCAAwC;YAAE,OAAO,IAAI,CAAC;QAEjE,MAAM,oBAAoB,GAAG,KAAK,IAAI,EAAE;YACtC,MAAM,oBAAoB,GAAI,GAAW,CAAC,oBAAoB,CAAC;YAC/D,MAAM,cAAc,GAAG,OAAO,oBAAoB,KAAK,UAAU;gBAC/D,CAAC,CAAC,MAAM,oBAAoB,EAAE;gBAC9B,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,cAAc,EAAE,aAAa,EAAE,CAAC;gBACjC,GAAW,CAAC,SAAS,GAAG,cAAc,CAAC;YAC1C,CAAC;YACD,OAAO,cAAc,CAAC;QACxB,CAAC,CAAC;QAEF,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YAC/C,MAAM,qBAAqB,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChE,MAAM,CAAC,aAAa,GAAG,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBAClD,MAAM,oBAAoB,EAAE,CAAC;gBAC7B,OAAO,qBAAqB,CAAC,GAAG,IAAI,CAAC,CAAC;YACxC,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACxC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBAC3C,MAAM,cAAc,GAAG,MAAM,oBAAoB,EAAE,CAAC;gBACpD,IAAI,cAAc,EAAE,aAAa;oBAAE,OAAO,cAAc,CAAC;gBACzD,OAAO,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;YACjC,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,wCAAwC,GAAG,IAAI,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,QAAQ,EAAE,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n EditorBridgeLike,\n EditorMessenger,\n EditorPlugin,\n EditorRuntime,\n} from '@fps-games/editor-protocol';\n\nexport * from './agent-transport';\n\nexport interface ForgePlayEditorWindow extends Window {\n __bridge?: EditorBridgeLike;\n __pendingEditorPlugin?: EditorPlugin;\n __pendingEditorRuntime?: EditorRuntime;\n}\n\nexport interface ForgePlayBridgeHostOptions {\n window?: ForgePlayEditorWindow;\n}\n\nexport interface RegisterEditorPluginResult {\n bridge: EditorBridgeLike | null;\n registered: boolean;\n pending: boolean;\n}\n\nexport interface RegisterEditorRuntimeResult {\n bridge: EditorBridgeLike | null;\n registered: boolean;\n pending: boolean;\n}\n\nexport interface BridgeInspectorLoaderPatchOptions extends ForgePlayBridgeHostOptions {\n maxAttempts?: number;\n intervalMs?: number;\n}\n\nexport const DEFAULT_PROJECT_OWNED_COMMANDS = [\n 'asset.import',\n 'asset.library.refresh',\n 'editor.asset.place',\n] as const;\n\nfunction getDefaultWindow(): ForgePlayEditorWindow | null {\n if (typeof window === 'undefined') return null;\n return window as ForgePlayEditorWindow;\n}\n\nexport function getForgePlayWindow(options: ForgePlayBridgeHostOptions = {}): ForgePlayEditorWindow | null {\n return options.window ?? getDefaultWindow();\n}\n\nexport function getForgePlayBridge(options: ForgePlayBridgeHostOptions = {}): EditorBridgeLike | null {\n return getForgePlayWindow(options)?.__bridge ?? null;\n}\n\nexport function getForgePlayMessenger(options: ForgePlayBridgeHostOptions = {}): EditorMessenger | null {\n return getForgePlayBridge(options)?.messenger ?? null;\n}\n\nexport function registerForgePlayEditorPlugin(\n plugin: EditorPlugin,\n options: ForgePlayBridgeHostOptions = {},\n): RegisterEditorPluginResult {\n const win = getForgePlayWindow(options);\n if (win) win.__pendingEditorPlugin = plugin;\n\n const bridge = win?.__bridge ?? null;\n const register = bridge?.registerEditorPlugin;\n if (register) {\n register(plugin);\n return { bridge, registered: true, pending: true };\n }\n return { bridge, registered: false, pending: Boolean(win) };\n}\n\nexport function registerForgePlayEditorRuntime(\n runtime: EditorRuntime,\n options: ForgePlayBridgeHostOptions = {},\n): RegisterEditorRuntimeResult {\n const win = getForgePlayWindow(options);\n if (win) win.__pendingEditorRuntime = runtime;\n\n const bridge = win?.__bridge ?? null;\n const register = bridge?.registerEditorRuntime;\n if (register) {\n register(runtime);\n return { bridge, registered: true, pending: true };\n }\n return { bridge, registered: false, pending: Boolean(win) };\n}\n\nexport function emitForgePlayBridgeEvent(\n eventName: string,\n payload: Record<string, unknown>,\n options: ForgePlayBridgeHostOptions = {},\n): boolean {\n const event = getForgePlayMessenger(options)?.event;\n if (!event) return false;\n event(eventName, payload);\n return true;\n}\n\nexport function sendForgePlayBridgeMessage(\n type: string,\n payload: Record<string, unknown>,\n options: ForgePlayBridgeHostOptions = {},\n): boolean {\n const send = getForgePlayMessenger(options)?.send;\n if (!send) return false;\n send(type, payload);\n return true;\n}\n\nexport function installForgePlayBridgeInspectorLoaderPatch(\n options: BridgeInspectorLoaderPatchOptions = {},\n): boolean {\n const win = getForgePlayWindow(options);\n if (!win) return false;\n\n const maxAttempts = options.maxAttempts ?? 120;\n const intervalMs = options.intervalMs ?? 250;\n let attempts = 0;\n\n const tryPatch = (): boolean => {\n const editor = (win.__bridge as any)?.editor;\n if (!editor) {\n if (attempts < maxAttempts) {\n attempts += 1;\n win.setTimeout?.(tryPatch, intervalMs);\n }\n return false;\n }\n\n if (editor.__fpsGameEditorLocalInspectorLoadPatched) return true;\n\n const ensureLocalInspector = async () => {\n const ensureInspectorReady = (win as any).ensureInspectorReady;\n const localInspector = typeof ensureInspectorReady === 'function'\n ? await ensureInspectorReady()\n : null;\n if (localInspector?.ShowInspector) {\n (win as any).INSPECTOR = localInspector;\n }\n return localInspector;\n };\n\n if (typeof editor.showInspector === 'function') {\n const originalShowInspector = editor.showInspector.bind(editor);\n editor.showInspector = async (...args: unknown[]) => {\n await ensureLocalInspector();\n return originalShowInspector(...args);\n };\n }\n\n if (typeof editor.loadV2 === 'function') {\n const originalLoadV2 = editor.loadV2.bind(editor);\n editor.loadV2 = async (...args: unknown[]) => {\n const localInspector = await ensureLocalInspector();\n if (localInspector?.ShowInspector) return localInspector;\n return originalLoadV2(...args);\n };\n }\n\n editor.__fpsGameEditorLocalInspectorLoadPatched = true;\n return true;\n };\n\n return tryPatch();\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fps-games/editor-forge-play",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.3",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Forge Play bridge adapter for fps-game-editor.",
@@ -14,6 +14,6 @@
14
14
  }
15
15
  },
16
16
  "dependencies": {
17
- "@fps-games/editor-protocol": "0.2.0-beta.2"
17
+ "@fps-games/editor-protocol": "0.2.0-beta.3"
18
18
  }
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"drop-cache.js","sourceRoot":"","sources":["../../src/asset-bridge/drop-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drop-cache.js","sourceRoot":"","sources":["../../src/asset-bridge/drop-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,WAAW,CAAC;AAQnB,MAAM,UAAU,oCAAoC,CAClD,UAAiD,EAAE;IAEnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA+C,CAAC;IAEjF,OAAO;QACL,QAAQ,CAAC,OAAO;YACd,MAAM,KAAK,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;YACrD,KAAK,MAAM,KAAK,IAAI,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,GAAG,qCAAqC,CAAC,KAAK,CAAC,CAAC;gBAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAChC,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC;gBACrE,KAAK,MAAM,GAAG,IAAI,IAAI;oBAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YACD,mBAAmB,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,SAAS,CAAC,OAAO;YACf,mBAAmB,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK;gBAAE,OAAO,OAAO,CAAC;YAC3B,MAAM,IAAI,GAAG,qCAAqC,CAAC,KAAK,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAgD,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;YAC7I,KAAK,MAAM,GAAG,IAAI,IAAI;gBAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtD,OAAO,qCAAqC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;QACD,YAAY;YACV,mBAAmB,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,OAAgC,EAChC,OAAoD;IAEpD,MAAM,KAAK,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAC3B,MAAM,YAAY,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG;QACb,GAAG,YAAY;QACf,GAAG,KAAK;QACR,GAAG,OAAO;KACX,CAAC;IACF,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC;WAClD,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC;WACnC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;WAC9B,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC;WAC1C,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC;WAClD,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC;WACnC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;WAC9B,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC;WAC1C,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC;WAChD,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC;WAClC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;WAC7B,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC;WACzC,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO;QACL,GAAG,MAAM;QACT,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9F,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,OAAyD,EACzD,KAAa,EACb,GAAW;IAEX,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QAClC,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK;YAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,OAAgC;IACrE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,qCAAqC,CAAC,KAA8B;IAC3E,OAAO;QACL,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC;QACzC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC;KAClC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAmB,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC","sourcesContent":["import {\n readPlayablePlatformAssetRecord,\n readPlayablePlatformAssetRecords,\n} from './payload';\nimport type {\n PlayablePlatformAssetDropCache,\n PlayablePlatformAssetDropCacheEntry,\n PlayablePlatformAssetDropCacheOptions,\n PlayablePlatformAssetDropPoint,\n} from './types';\n\nexport function createPlayablePlatformAssetDropCache(\n options: PlayablePlatformAssetDropCacheOptions = {},\n): PlayablePlatformAssetDropCache {\n const ttlMs = options.ttlMs ?? 30000;\n const now = options.now ?? (() => Date.now());\n const pendingAssetDrops = new Map<string, PlayablePlatformAssetDropCacheEntry>();\n\n return {\n remember(payload) {\n const point = readPlayablePlatformDropPoint(payload);\n for (const asset of readPlayablePlatformAssetRecords(payload)) {\n const keys = readPlayablePlatformAssetIdentityKeys(asset);\n if (keys.length === 0) continue;\n const entry = { point: point ?? undefined, asset, timestamp: now() };\n for (const key of keys) pendingAssetDrops.set(key, entry);\n }\n clearExpiredEntries(pendingAssetDrops, ttlMs, now());\n },\n normalize(payload) {\n clearExpiredEntries(pendingAssetDrops, ttlMs, now());\n const asset = readPlayablePlatformAssetRecord(payload);\n if (!asset) return payload;\n const keys = readPlayablePlatformAssetIdentityKeys(asset);\n const pending = keys.map((key) => pendingAssetDrops.get(key)).find((entry): entry is PlayablePlatformAssetDropCacheEntry => !!entry) ?? null;\n for (const key of keys) pendingAssetDrops.delete(key);\n return normalizePlayablePlatformAssetPayload(payload, pending);\n },\n clearExpired() {\n clearExpiredEntries(pendingAssetDrops, ttlMs, now());\n },\n };\n}\n\nexport function normalizePlayablePlatformAssetPayload(\n payload: Record<string, unknown>,\n pending?: PlayablePlatformAssetDropCacheEntry | null,\n): Record<string, unknown> {\n const asset = readPlayablePlatformAssetRecord(payload);\n if (!asset) return payload;\n const pendingAsset = pending?.asset ?? {};\n const merged = {\n ...pendingAsset,\n ...asset,\n ...payload,\n };\n const assetName = readOptionalString(payload.assetName)\n ?? readOptionalString(asset.assetName)\n ?? readOptionalString(asset.name)\n ?? readOptionalString(pendingAsset.assetName)\n ?? readOptionalString(pendingAsset.name);\n const assetPath = readOptionalString(payload.assetPath)\n ?? readOptionalString(asset.assetPath)\n ?? readOptionalString(asset.path)\n ?? readOptionalString(pendingAsset.assetPath)\n ?? readOptionalString(pendingAsset.path);\n const assetUrl = readOptionalString(payload.assetUrl)\n ?? readOptionalString(asset.assetUrl)\n ?? readOptionalString(asset.url)\n ?? readOptionalString(pendingAsset.assetUrl)\n ?? readOptionalString(pendingAsset.url);\n return {\n ...merged,\n ...(assetName ? { assetName } : {}),\n ...(assetPath ? { assetPath } : {}),\n ...(assetUrl ? { assetUrl } : {}),\n ...(pending?.point && !readPlayablePlatformDropPoint(merged) ? { point: pending.point } : {}),\n };\n}\n\nfunction clearExpiredEntries(\n entries: Map<string, PlayablePlatformAssetDropCacheEntry>,\n ttlMs: number,\n now: number,\n): void {\n for (const [id, entry] of entries) {\n if (now - entry.timestamp > ttlMs) entries.delete(id);\n }\n}\n\nfunction readPlayablePlatformDropPoint(payload: Record<string, unknown>): PlayablePlatformAssetDropPoint | null {\n const point = payload.point;\n if (!point || typeof point !== 'object') return null;\n const record = point as Record<string, unknown>;\n const x = typeof record.x === 'number' && Number.isFinite(record.x) ? record.x : null;\n const y = typeof record.y === 'number' && Number.isFinite(record.y) ? record.y : null;\n return x == null || y == null ? null : { x, y };\n}\n\nfunction readPlayablePlatformAssetIdentityKeys(asset: Record<string, unknown>): string[] {\n return [\n readOptionalString(asset.id),\n readOptionalString(asset.platformAssetId),\n readOptionalString(asset.assetId),\n ].filter((value, index, values): value is string => !!value && values.indexOf(value) === index);\n}\n\nfunction readOptionalString(value: unknown): string | undefined {\n return typeof value === 'string' && value.trim() ? value.trim() : undefined;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/asset-bridge/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/asset-bridge/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC","sourcesContent":["export * from './types';\nexport * from './payload';\nexport * from './drop-cache';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/asset-bridge/payload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAEV,6BAA6B,EAC7B,yBAAyB,EACzB,qCAAqC,EACrC,wCAAwC,EACxC,+CAA+C,EAChD,MAAM,SAAS,CAAC;AAEjB,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEhH;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAI5G;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAazG;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAU7F;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAG5F;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAG7F;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAQ9F;AAED,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,6BAA6B,GAAG,SAAS,CAU3C;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,GAAE,qCAA0C,GAClD,uBAAuB,GAAG,SAAS,CAQrC;AAED,wBAAgB,8CAA8C,CAC5D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,GAAE,+CAAoD,GAC5D,wCAAwC,CAuC1C;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D"}
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/asset-bridge/payload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAEV,6BAA6B,EAC7B,yBAAyB,EACzB,qCAAqC,EACrC,wCAAwC,EACxC,+CAA+C,EAChD,MAAM,SAAS,CAAC;AAGjB,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEhH;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAI5G;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAazG;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAU7F;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAG5F;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAG7F;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAQ9F;AAED,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,6BAA6B,GAAG,SAAS,CAmB3C;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,GAAE,qCAA0C,GAClD,uBAAuB,GAAG,SAAS,CAQrC;AAED,wBAAgB,8CAA8C,CAC5D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,GAAE,+CAAoD,GAC5D,wCAAwC,CA4C1C;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D"}