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

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 (652) hide show
  1. package/dist/agent-bridge/capabilities/assets.js.map +1 -1
  2. package/dist/agent-bridge/capabilities/editor-state.d.ts.map +1 -1
  3. package/dist/agent-bridge/capabilities/editor-state.js +26 -17
  4. package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
  5. package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -1
  6. package/dist/agent-bridge/capabilities/prefabs.d.ts.map +1 -1
  7. package/dist/agent-bridge/capabilities/prefabs.js +61 -13
  8. package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
  9. package/dist/agent-bridge/capabilities/scene-objects.d.ts +1 -1
  10. package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +1 -1
  11. package/dist/agent-bridge/capabilities/scene-objects.js +110 -25
  12. package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
  13. package/dist/agent-bridge/capabilities/selection.d.ts.map +1 -1
  14. package/dist/agent-bridge/capabilities/selection.js +8 -5
  15. package/dist/agent-bridge/capabilities/selection.js.map +1 -1
  16. package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -1
  17. package/dist/agent-bridge/capabilities/shadows.js +11 -2
  18. package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
  19. package/dist/agent-bridge/capabilities/transform.d.ts.map +1 -1
  20. package/dist/agent-bridge/capabilities/transform.js +6 -4
  21. package/dist/agent-bridge/capabilities/transform.js.map +1 -1
  22. package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
  23. package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -1
  24. package/dist/agent-bridge/capabilities/viewport.js +79 -47
  25. package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
  26. package/dist/agent-bridge/capability-sources.js.map +1 -1
  27. package/dist/agent-bridge/diagnostics.js.map +1 -1
  28. package/dist/agent-bridge/index.js.map +1 -1
  29. package/dist/agent-bridge/register.js.map +1 -1
  30. package/dist/agent-bridge/shared.d.ts +8 -3
  31. package/dist/agent-bridge/shared.d.ts.map +1 -1
  32. package/dist/agent-bridge/shared.js +32 -0
  33. package/dist/agent-bridge/shared.js.map +1 -1
  34. package/dist/agent-bridge/source-types.js.map +1 -1
  35. package/dist/authoring-apply.js.map +1 -1
  36. package/dist/build-info.json +48 -48
  37. package/dist/editor-plugin-agent-capabilities.js.map +1 -1
  38. package/dist/editor-plugin-hierarchy-command.js.map +1 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/internal/local-editor-lifecycle-operations.js.map +1 -1
  41. package/dist/local-editor-agent-actions.d.ts.map +1 -1
  42. package/dist/local-editor-agent-actions.js +9 -5
  43. package/dist/local-editor-agent-actions.js.map +1 -1
  44. package/dist/local-editor-agent-bridge-transport.js.map +1 -1
  45. package/dist/local-editor-agent-bridge.js.map +1 -1
  46. package/dist/local-editor-agent-context.js.map +1 -1
  47. package/dist/local-editor-harness.d.ts +57 -1
  48. package/dist/local-editor-harness.d.ts.map +1 -1
  49. package/dist/local-editor-harness.js +393 -41
  50. package/dist/local-editor-harness.js.map +1 -1
  51. package/dist/local-editor-marker-graph.js.map +1 -1
  52. package/dist/local-editor-performance-stats.js.map +1 -1
  53. package/dist/local-editor-plugin-inspector.js.map +1 -1
  54. package/dist/local-editor-plugin-panel.js.map +1 -1
  55. package/dist/local-editor-scene-render-scheduler.js.map +1 -1
  56. package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
  57. package/dist/local-editor-viewport-render-coordinator.js.map +1 -1
  58. package/dist/playable-babylon-facade.js.map +1 -1
  59. package/dist/playable-babylon-outline-inspector.js.map +1 -1
  60. package/dist/playable-babylon-outline-runtime.js.map +1 -1
  61. package/dist/playable-babylon-rendering.js.map +1 -1
  62. package/dist/playable-local-editor-host.d.ts +36 -0
  63. package/dist/playable-local-editor-host.d.ts.map +1 -1
  64. package/dist/playable-local-editor-host.js.map +1 -1
  65. package/dist/playable-product-local-editor.js.map +1 -1
  66. package/dist/playable-product-projection-preview.js.map +1 -1
  67. package/dist/playable-product-rendering.js.map +1 -1
  68. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  69. package/dist/playable-product-scene-capabilities.js +49 -2
  70. package/dist/playable-product-scene-capabilities.js.map +1 -1
  71. package/dist/playable-runtime-babylon.js.map +1 -1
  72. package/dist/playable-runtime.js.map +1 -1
  73. package/dist/playable-sdk-upgrade-doctor.js.map +1 -1
  74. package/dist/playable-sdk-vite.js.map +1 -1
  75. package/dist/playable-sdk.js.map +1 -1
  76. package/dist/playable-standard-project.js.map +1 -1
  77. package/dist/static-shadow-cpu-worker.js.map +1 -1
  78. package/dist/vite.js.map +1 -1
  79. package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js.map +1 -1
  80. package/node_modules/@fps-games/babylon-renderer/dist/environment/index.js.map +1 -1
  81. package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js.map +1 -1
  82. package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js.map +1 -1
  83. package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
  84. package/node_modules/@fps-games/babylon-renderer/dist/lighting/directional-light-angles.js.map +1 -1
  85. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/apply.js.map +1 -1
  86. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/index.js.map +1 -1
  87. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/types.js.map +1 -1
  88. package/node_modules/@fps-games/babylon-renderer/dist/outlines/index.js.map +1 -1
  89. package/node_modules/@fps-games/babylon-renderer/dist/outlines/types.js.map +1 -1
  90. package/node_modules/@fps-games/babylon-renderer/dist/placement/index.js.map +1 -1
  91. package/node_modules/@fps-games/babylon-renderer/dist/placement/runtime-drop-position.js.map +1 -1
  92. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
  93. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
  94. package/node_modules/@fps-games/babylon-renderer/dist/post-process/index.js.map +1 -1
  95. package/node_modules/@fps-games/babylon-renderer/dist/post-process/profile.js.map +1 -1
  96. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
  97. package/node_modules/@fps-games/babylon-renderer/dist/post-process/volume-stack.js.map +1 -1
  98. package/node_modules/@fps-games/babylon-renderer/dist/reference.js.map +1 -1
  99. package/node_modules/@fps-games/babylon-renderer/dist/rendering/index.js.map +1 -1
  100. package/node_modules/@fps-games/babylon-renderer/dist/rendering/node-rendering.js.map +1 -1
  101. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js.map +1 -1
  102. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js.map +1 -1
  103. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
  104. package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-shaders.js.map +1 -1
  105. package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js.map +1 -1
  106. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js.map +1 -1
  107. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js.map +1 -1
  108. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js.map +1 -1
  109. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map +1 -1
  110. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-options.js.map +1 -1
  111. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js.map +1 -1
  112. package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js.map +1 -1
  113. package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
  114. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
  115. package/node_modules/@fps-games/editor-babylon/dist/edit-session.js.map +1 -1
  116. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js.map +1 -1
  117. package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -1
  118. package/node_modules/@fps-games/editor-babylon/dist/event-guard.js.map +1 -1
  119. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
  120. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid-layer.js.map +1 -1
  121. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js.map +1 -1
  122. package/node_modules/@fps-games/editor-babylon/dist/input-controller.js.map +1 -1
  123. package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.js.map +1 -1
  124. package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js.map +1 -1
  125. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
  126. package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
  127. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
  128. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
  129. package/node_modules/@fps-games/editor-babylon/dist/monitor.js.map +1 -1
  130. package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.js.map +1 -1
  131. package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js.map +1 -1
  132. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +1 -1
  133. package/node_modules/@fps-games/editor-babylon/dist/primitive-projection-instancing.js.map +1 -1
  134. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
  135. package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.js.map +1 -1
  136. package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js.map +1 -1
  137. package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.js.map +1 -1
  138. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  139. package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.js.map +1 -1
  140. package/node_modules/@fps-games/editor-babylon/dist/scene-camera-preview.js.map +1 -1
  141. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
  142. package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js.map +1 -1
  143. package/node_modules/@fps-games/editor-babylon/dist/scene-view-measurement-controller.js.map +1 -1
  144. package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js.map +1 -1
  145. package/node_modules/@fps-games/editor-babylon/dist/selection-controller.js.map +1 -1
  146. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
  147. package/node_modules/@fps-games/editor-babylon/dist/tool-controller.js.map +1 -1
  148. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
  149. package/node_modules/@fps-games/editor-babylon/dist/transform-solver.js.map +1 -1
  150. package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -1
  151. package/node_modules/@fps-games/editor-babylon/package.json +5 -5
  152. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +3 -1
  153. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  154. package/node_modules/@fps-games/editor-browser/dist/index.js +2 -0
  155. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  156. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-clipboard.js.map +1 -1
  157. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
  158. package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js.map +1 -1
  159. package/node_modules/@fps-games/editor-browser/dist/local-editor-root-ownership.js.map +1 -1
  160. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
  161. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
  162. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
  163. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
  164. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +1 -1
  165. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-auto-scroll.js.map +1 -1
  166. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +1 -1
  167. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +2 -1
  168. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  169. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +260 -94
  170. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  171. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
  172. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts +7 -0
  173. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts.map +1 -0
  174. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js +186 -0
  175. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js.map +1 -0
  176. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts +2 -2
  177. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +1 -1
  178. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +14 -8
  179. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +1 -1
  180. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +1 -1
  181. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +23 -7
  182. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -1
  183. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  184. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
  185. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
  186. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +6 -0
  187. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
  188. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts +3 -0
  189. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
  190. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +60 -13
  191. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
  192. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
  193. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js.map +1 -1
  194. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  195. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-plugin-panel.js.map +1 -1
  196. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
  197. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
  198. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
  199. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
  200. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts +24 -0
  201. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts.map +1 -0
  202. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js +69 -0
  203. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js.map +1 -0
  204. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-auto-scroll.js.map +1 -1
  205. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
  206. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-preview.js.map +1 -1
  207. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-session.js.map +1 -1
  208. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
  209. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
  210. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +58 -14
  211. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  212. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  213. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
  214. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +1 -1
  215. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  216. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +196 -11
  217. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  218. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
  219. package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.js.map +1 -1
  220. package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.js.map +1 -1
  221. package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.js.map +1 -1
  222. package/node_modules/@fps-games/editor-browser/package.json +4 -4
  223. package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +1 -1
  224. package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +1 -1
  225. package/node_modules/@fps-games/editor-core/dist/authoring-source.js.map +1 -1
  226. package/node_modules/@fps-games/editor-core/dist/document-adapter.js.map +1 -1
  227. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
  228. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +9 -1
  229. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  230. package/node_modules/@fps-games/editor-core/dist/editor-session.js +18 -0
  231. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  232. package/node_modules/@fps-games/editor-core/dist/events.d.ts +1 -1
  233. package/node_modules/@fps-games/editor-core/dist/events.d.ts.map +1 -1
  234. package/node_modules/@fps-games/editor-core/dist/events.js.map +1 -1
  235. package/node_modules/@fps-games/editor-core/dist/field-schema/index.js.map +1 -1
  236. package/node_modules/@fps-games/editor-core/dist/field-schema/resolver.js.map +1 -1
  237. package/node_modules/@fps-games/editor-core/dist/field-schema/schema.js.map +1 -1
  238. package/node_modules/@fps-games/editor-core/dist/field-schema/types.js.map +1 -1
  239. package/node_modules/@fps-games/editor-core/dist/field-schema/validators.js.map +1 -1
  240. package/node_modules/@fps-games/editor-core/dist/host-services.js.map +1 -1
  241. package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
  242. package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
  243. package/node_modules/@fps-games/editor-core/dist/lifecycle.js.map +1 -1
  244. package/node_modules/@fps-games/editor-core/dist/marker-graph.js.map +1 -1
  245. package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
  246. package/node_modules/@fps-games/editor-core/dist/scene-view-input.js.map +1 -1
  247. package/node_modules/@fps-games/editor-core/dist/selection-strategy.js.map +1 -1
  248. package/node_modules/@fps-games/editor-core/dist/serialized-object.js.map +1 -1
  249. package/node_modules/@fps-games/editor-core/dist/transform-command.js.map +1 -1
  250. package/node_modules/@fps-games/editor-core/dist/transform-gizmo.js.map +1 -1
  251. package/node_modules/@fps-games/editor-core/dist/transform-operation-policy.js.map +1 -1
  252. package/node_modules/@fps-games/editor-core/dist/transform-operations.js.map +1 -1
  253. package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
  254. package/node_modules/@fps-games/editor-core/package.json +6 -6
  255. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +1 -1
  256. package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
  257. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  258. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/drop-cache.js.map +1 -1
  259. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/index.js.map +1 -1
  260. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.d.ts.map +1 -1
  261. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js +28 -5
  262. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js.map +1 -1
  263. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts +1 -0
  264. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts.map +1 -1
  265. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.js.map +1 -1
  266. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.js.map +1 -1
  267. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js.map +1 -1
  268. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js.map +1 -1
  269. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/managed-facade.js.map +1 -1
  270. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.d.ts.map +1 -1
  271. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js +13 -1
  272. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js.map +1 -1
  273. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
  274. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
  275. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +1 -0
  276. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
  277. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +58 -23
  278. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
  279. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.js.map +1 -1
  280. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
  281. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
  282. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js.map +1 -1
  283. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.js.map +1 -1
  284. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js.map +1 -1
  285. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/identity.js.map +1 -1
  286. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js.map +1 -1
  287. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/managed-runtime-instance.js.map +1 -1
  288. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js.map +1 -1
  289. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/runtime-scene.js.map +1 -1
  290. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/types.js.map +1 -1
  291. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/index.js.map +1 -1
  292. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.d.ts.map +1 -1
  293. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js +3 -0
  294. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js.map +1 -1
  295. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/transport.js.map +1 -1
  296. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts +1 -0
  297. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts.map +1 -1
  298. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.js.map +1 -1
  299. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts +1 -0
  300. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts.map +1 -1
  301. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js +7 -1
  302. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js.map +1 -1
  303. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/constants.js.map +1 -1
  304. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/drift.js.map +1 -1
  305. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/index.js.map +1 -1
  306. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/runtime-transform-patch.js.map +1 -1
  307. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/source.js.map +1 -1
  308. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/client.js.map +1 -1
  309. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/index.js.map +1 -1
  310. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/types.js.map +1 -1
  311. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js.map +1 -1
  312. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/index.js.map +1 -1
  313. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/payload.js.map +1 -1
  314. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/response.js.map +1 -1
  315. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js.map +1 -1
  316. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.js.map +1 -1
  317. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/adapter-dispatcher.js.map +1 -1
  318. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/index.js.map +1 -1
  319. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/payload.js.map +1 -1
  320. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/project-asset-adapter.js.map +1 -1
  321. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.js.map +1 -1
  322. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/readers.js.map +1 -1
  323. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/types.js.map +1 -1
  324. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/binding.js.map +1 -1
  325. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/fields.js.map +1 -1
  326. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/index.js.map +1 -1
  327. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/math.js.map +1 -1
  328. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/pan.js.map +1 -1
  329. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-format.js.map +1 -1
  330. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-state.js.map +1 -1
  331. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-storage.js.map +1 -1
  332. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-text.js.map +1 -1
  333. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/rig.js.map +1 -1
  334. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/save-patch.js.map +1 -1
  335. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/snapshot.js.map +1 -1
  336. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/types.js.map +1 -1
  337. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/index.js.map +1 -1
  338. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/transform.js.map +1 -1
  339. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/types.js.map +1 -1
  340. package/node_modules/@fps-games/editor-playable-sdk/dist/core-contracts/index.js.map +1 -1
  341. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  342. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
  343. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
  344. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js.map +1 -1
  345. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/resolver.js.map +1 -1
  346. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js.map +1 -1
  347. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/types.js.map +1 -1
  348. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js.map +1 -1
  349. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
  350. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/camera-section.js.map +1 -1
  351. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-property.js.map +1 -1
  352. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
  353. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/format.js.map +1 -1
  354. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js.map +1 -1
  355. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-fields.js.map +1 -1
  356. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-sections.js.map +1 -1
  357. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/marker-section.js.map +1 -1
  358. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/object-assembly.js.map +1 -1
  359. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/readonly.js.map +1 -1
  360. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-sections.js.map +1 -1
  361. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-summary.js.map +1 -1
  362. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime.js.map +1 -1
  363. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/safe-value.js.map +1 -1
  364. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/types.js.map +1 -1
  365. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/validation.js.map +1 -1
  366. package/node_modules/@fps-games/editor-playable-sdk/dist/internal/local-harness.js.map +1 -1
  367. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/binding.js.map +1 -1
  368. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/fields.js.map +1 -1
  369. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/index.js.map +1 -1
  370. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.js.map +1 -1
  371. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/save-patch.js.map +1 -1
  372. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/snapshot.js.map +1 -1
  373. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/storage.js.map +1 -1
  374. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/text.js.map +1 -1
  375. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/types.js.map +1 -1
  376. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/index.js.map +1 -1
  377. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/math.js.map +1 -1
  378. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/profile.js.map +1 -1
  379. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/types.js.map +1 -1
  380. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +1 -1
  381. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
  382. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
  383. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  384. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +5 -0
  385. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  386. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  387. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +1 -1
  388. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  389. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  390. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  391. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/loading-overlay.js.map +1 -1
  392. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +18 -0
  393. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
  394. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +60 -1
  395. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
  396. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/timing.js.map +1 -1
  397. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
  398. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/facade.js.map +1 -1
  399. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/game-objects.js.map +1 -1
  400. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/geometry.js.map +1 -1
  401. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/index.js.map +1 -1
  402. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
  403. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
  404. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/default-assets.js.map +1 -1
  405. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.d.ts.map +1 -1
  406. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js +28 -2
  407. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js.map +1 -1
  408. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/duplicate.js.map +1 -1
  409. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/index.js.map +1 -1
  410. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
  411. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/paths.js.map +1 -1
  412. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/preview.js.map +1 -1
  413. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/profile.js.map +1 -1
  414. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.d.ts.map +1 -1
  415. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js +26 -9
  416. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js.map +1 -1
  417. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/resolver.js.map +1 -1
  418. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
  419. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
  420. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +0 -3
  421. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
  422. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/text.js.map +1 -1
  423. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts +8 -1
  424. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts.map +1 -1
  425. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.js.map +1 -1
  426. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
  427. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.js.map +1 -1
  428. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/json-field.js.map +1 -1
  429. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
  430. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.js.map +1 -1
  431. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/transform.js.map +1 -1
  432. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.js.map +1 -1
  433. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +1 -1
  434. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
  435. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +18 -1
  436. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
  437. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/index.js.map +1 -1
  438. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts +2 -0
  439. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts.map +1 -1
  440. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.js.map +1 -1
  441. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
  442. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
  443. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
  444. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
  445. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
  446. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/shadow-inspector.js.map +1 -1
  447. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/source-structure-inspector.js.map +1 -1
  448. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
  449. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/structure.js.map +1 -1
  450. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/types.js.map +1 -1
  451. package/node_modules/@fps-games/editor-playable-sdk/dist/product/asset-manager.js.map +1 -1
  452. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal-scene-feature.js.map +1 -1
  453. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
  454. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
  455. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +1 -0
  456. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
  457. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +3 -1
  458. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
  459. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
  460. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
  461. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-asset-actions.js.map +1 -1
  462. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
  463. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/draft.js.map +1 -1
  464. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/index.js.map +1 -1
  465. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
  466. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/route.js.map +1 -1
  467. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
  468. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js.map +1 -1
  469. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.js.map +1 -1
  470. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/index.js.map +1 -1
  471. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
  472. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
  473. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +13 -1
  474. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
  475. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
  476. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
  477. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
  478. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/artifacts.js.map +1 -1
  479. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  480. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.js.map +1 -1
  481. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
  482. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/index.js.map +1 -1
  483. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
  484. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
  485. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/validation.js.map +1 -1
  486. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js.map +1 -1
  487. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.js.map +1 -1
  488. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
  489. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js.map +1 -1
  490. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/patch.js.map +1 -1
  491. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/types.js.map +1 -1
  492. package/node_modules/@fps-games/editor-playable-sdk/dist/session/classification.js.map +1 -1
  493. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
  494. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js.map +1 -1
  495. package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.js.map +1 -1
  496. package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.js.map +1 -1
  497. package/node_modules/@fps-games/editor-playable-sdk/dist/session/object-command-facade.js.map +1 -1
  498. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
  499. package/node_modules/@fps-games/editor-playable-sdk/dist/session/property-patches.js.map +1 -1
  500. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
  501. package/node_modules/@fps-games/editor-playable-sdk/dist/session/system-defaults.js.map +1 -1
  502. package/node_modules/@fps-games/editor-playable-sdk/dist/session/transform.js.map +1 -1
  503. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
  504. package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.js.map +1 -1
  505. package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.js.map +1 -1
  506. package/node_modules/@fps-games/editor-playable-sdk/dist/shared/http.js.map +1 -1
  507. package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.js.map +1 -1
  508. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js.map +1 -1
  509. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js.map +1 -1
  510. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/host.js.map +1 -1
  511. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js.map +1 -1
  512. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  513. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/report.js.map +1 -1
  514. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.js.map +1 -1
  515. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/asset-authoring.js.map +1 -1
  516. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts +1 -0
  517. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts.map +1 -1
  518. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js +1 -0
  519. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js.map +1 -1
  520. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js.map +1 -1
  521. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js.map +1 -1
  522. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +6 -5
  523. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
  524. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
  525. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
  526. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts +3 -1
  527. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts.map +1 -1
  528. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js +37 -8
  529. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js.map +1 -1
  530. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/path-write-coordinator.js.map +1 -1
  531. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts +4 -3
  532. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
  533. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +14 -1
  534. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
  535. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +5 -4
  536. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
  537. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
  538. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +3 -2
  539. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
  540. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +2 -11
  541. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
  542. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +8 -7
  543. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  544. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +84 -6
  545. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  546. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts +2 -1
  547. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts.map +1 -1
  548. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.js.map +1 -1
  549. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +4 -3
  550. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
  551. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +1 -4
  552. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
  553. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +1 -1
  554. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +0 -33
  555. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
  556. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
  557. package/node_modules/@fps-games/editor-playable-sdk/package.json +9 -6
  558. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
  559. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +1 -1
  560. package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
  561. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  562. package/node_modules/@fps-games/editor-protocol/dist/marker-graph.js.map +1 -1
  563. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  564. package/node_modules/@fps-games/editor-tooling/dist/contributions.js.map +1 -1
  565. package/node_modules/@fps-games/editor-tooling/dist/data-object.js.map +1 -1
  566. package/node_modules/@fps-games/editor-tooling/dist/index.js.map +1 -1
  567. package/node_modules/@fps-games/editor-tooling/dist/migration.js.map +1 -1
  568. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
  569. package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
  570. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  571. package/node_modules/@fps-games/playable-assets/dist/identity.js.map +1 -1
  572. package/node_modules/@fps-games/playable-assets/dist/index.d.ts +1 -0
  573. package/node_modules/@fps-games/playable-assets/dist/index.d.ts.map +1 -1
  574. package/node_modules/@fps-games/playable-assets/dist/index.js +1 -0
  575. package/node_modules/@fps-games/playable-assets/dist/index.js.map +1 -1
  576. package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts +2 -0
  577. package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts.map +1 -0
  578. package/node_modules/@fps-games/playable-assets/dist/portable-path.js +25 -0
  579. package/node_modules/@fps-games/playable-assets/dist/portable-path.js.map +1 -0
  580. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  581. package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
  582. package/node_modules/@fps-games/playable-contracts/dist/marker-graph-validation.js.map +1 -1
  583. package/node_modules/@fps-games/playable-contracts/dist/marker-graph.js.map +1 -1
  584. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  585. package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
  586. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-authoring.js.map +1 -1
  587. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-types.js.map +1 -1
  588. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
  589. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-values.js.map +1 -1
  590. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile.js.map +1 -1
  591. package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
  592. package/node_modules/@fps-games/playable-rendering/dist/shadow-quality.js.map +1 -1
  593. package/node_modules/@fps-games/playable-rendering/dist/shadow-runtime.js.map +1 -1
  594. package/node_modules/@fps-games/playable-rendering/dist/shadow-settings.js.map +1 -1
  595. package/node_modules/@fps-games/playable-rendering/dist/shadow-types.js.map +1 -1
  596. package/node_modules/@fps-games/playable-rendering/dist/shadow-validation.js.map +1 -1
  597. package/node_modules/@fps-games/playable-rendering/dist/value.js.map +1 -1
  598. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  599. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
  600. package/node_modules/@fps-games/playable-runtime/dist/index.js.map +1 -1
  601. package/node_modules/@fps-games/playable-runtime/dist/runtime-data.js.map +1 -1
  602. package/node_modules/@fps-games/playable-runtime/dist/runtime.js.map +1 -1
  603. package/node_modules/@fps-games/playable-runtime/dist/standard-plugins.js.map +1 -1
  604. package/node_modules/@fps-games/playable-runtime/dist/tokens.js.map +1 -1
  605. package/node_modules/@fps-games/playable-runtime/dist/types.js.map +1 -1
  606. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  607. package/node_modules/@fps-games/playable-runtime-data/dist/index.js.map +1 -1
  608. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  609. package/node_modules/@fps-games/playable-scene/dist/index.js.map +1 -1
  610. package/node_modules/@fps-games/playable-scene/dist/transform-math.js.map +1 -1
  611. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  612. package/node_modules/@fps-games/plugin-api/dist/index.js.map +1 -1
  613. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  614. package/node_modules/@fps-games/plugin-assets/dist/reference.js.map +1 -1
  615. package/node_modules/@fps-games/plugin-assets/dist/runtime.js.map +1 -1
  616. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  617. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  618. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  619. package/node_modules/@fps-games/plugin-assets/package.json +5 -5
  620. package/node_modules/@fps-games/plugin-host/dist/index.js.map +1 -1
  621. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  622. package/node_modules/@fps-games/plugin-markers/dist/reference.js.map +1 -1
  623. package/node_modules/@fps-games/plugin-markers/dist/runtime.js.map +1 -1
  624. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  625. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  626. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  627. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  628. package/node_modules/@fps-games/plugin-materials/dist/reference.js.map +1 -1
  629. package/node_modules/@fps-games/plugin-materials/dist/runtime.js.map +1 -1
  630. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  631. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  632. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  633. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  634. package/node_modules/@fps-games/plugin-rendering/dist/reference.js.map +1 -1
  635. package/node_modules/@fps-games/plugin-rendering/dist/runtime.js.map +1 -1
  636. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  637. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  638. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  639. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  640. package/node_modules/@fps-games/plugin-scene/dist/reference.js.map +1 -1
  641. package/node_modules/@fps-games/plugin-scene/dist/runtime.js.map +1 -1
  642. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  643. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  644. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  645. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  646. package/node_modules/@fps-games/plugin-shadows/dist/reference.js.map +1 -1
  647. package/node_modules/@fps-games/plugin-shadows/dist/runtime.js.map +1 -1
  648. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  649. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  650. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  651. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  652. package/package.json +27 -19
@@ -1 +1 @@
1
- {"version":3,"file":"forge-play.js","sourceRoot":"","sources":["../../src/local-harness/forge-play.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forge-play.js","sourceRoot":"","sources":["../../src/local-harness/forge-play.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n waitForPlayableLocalEditorPaint,\n} from './timing';\nimport type {\n PlayableForgePlayBridgeInstallOptions,\n PlayableForgePlayHistoryOperation,\n PlayableForgePlayHistoryOperationOptions,\n PlayableForgePlayHistoryOperationResult,\n PlayableForgePlayMessageEvent,\n PlayableForgePlayMode,\n PlayableForgePlayModeBridge,\n PlayableForgePlaySaveState,\n PlayableForgePlayWindowLike,\n} from './forge-play-types';\nimport type {\n PlayableLocalEditorDataSafetyOperation,\n PlayableLocalEditorSaveFailureInput,\n PlayableLocalEditorSaveFailureState,\n PlayableLocalEditorUnsavedChangesState,\n} from './types';\n\nexport const PLAYABLE_FORGE_PLAY_BRIDGE_SOURCE = 'forge-play-game-bridge';\n\nexport const PLAYABLE_FORGE_PLAY_POST_MESSAGE = {\n EVENT: 'event',\n COMMAND: 'command',\n} as const;\n\nexport const PLAYABLE_FORGE_PLAY_COMMAND = {\n MODE_CHANGE: 'mode.change',\n UNDO: 'history.undo',\n REDO: 'history.redo',\n DOCUMENT_EXPORT: 'document.export',\n DOCUMENT_COMMIT: 'document.commit',\n ASSET_IMPORT: 'asset.import',\n ASSET_UPDATE: 'asset.update',\n ASSET_LIBRARY_REFRESH: 'asset.library.refresh',\n EDITOR_ASSET_PLACE: 'editor.asset.place',\n ASSETS_DROP: 'assets.drop',\n ASSETS_LOADED: 'assets.loaded',\n} as const;\n\nexport const PLAYABLE_FORGE_PLAY_EVENT = {\n SCENE_READY: 'scene.ready',\n FIRST_FRAME: 'scene.first_frame',\n MODE_CHANGE: 'mode.change',\n HISTORY_UNDO_RESULT: 'history.undo.result',\n HISTORY_REDO_RESULT: 'history.redo.result',\n DOCUMENT_EXPORTED: 'document.exported',\n ASSET_IMPORT_RESULT: 'asset.import.result',\n ASSET_UPDATE_RESULT: 'asset.update.result',\n ASSET_LIBRARY_REFRESHED: 'asset.library.refreshed',\n EDITOR_ASSET_PLACE_RESULT: 'editor.asset.place.result',\n SYSTEM_ERROR: 'system.error',\n} as const;\n\nexport const PLAYABLE_FORGE_PLAY_EVENT_ALIASES: Record<string, readonly string[]> = {\n [PLAYABLE_FORGE_PLAY_EVENT.SCENE_READY]: ['scene:ready', 'lifecycle:ready'],\n [PLAYABLE_FORGE_PLAY_EVENT.FIRST_FRAME]: ['scene:first_frame', 'lifecycle:firstFrame'],\n [PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE]: ['mode:change', 'mode:changed'],\n [PLAYABLE_FORGE_PLAY_EVENT.HISTORY_UNDO_RESULT]: ['history:undo:result'],\n [PLAYABLE_FORGE_PLAY_EVENT.HISTORY_REDO_RESULT]: ['history:redo:result'],\n [PLAYABLE_FORGE_PLAY_EVENT.DOCUMENT_EXPORTED]: ['document:exported'],\n [PLAYABLE_FORGE_PLAY_EVENT.ASSET_IMPORT_RESULT]: ['asset:import:result'],\n [PLAYABLE_FORGE_PLAY_EVENT.ASSET_UPDATE_RESULT]: ['asset:update:result'],\n [PLAYABLE_FORGE_PLAY_EVENT.ASSET_LIBRARY_REFRESHED]: ['asset:library:refreshed'],\n [PLAYABLE_FORGE_PLAY_EVENT.EDITOR_ASSET_PLACE_RESULT]: ['editor:asset:place:result'],\n [PLAYABLE_FORGE_PLAY_EVENT.SYSTEM_ERROR]: ['system:error'],\n};\n\nexport const PLAYABLE_FORGE_PLAY_COMMAND_ALIASES: Record<string, string> = {\n 'mode:change': PLAYABLE_FORGE_PLAY_COMMAND.MODE_CHANGE,\n 'history:undo': PLAYABLE_FORGE_PLAY_COMMAND.UNDO,\n 'history:redo': PLAYABLE_FORGE_PLAY_COMMAND.REDO,\n 'document:export': PLAYABLE_FORGE_PLAY_COMMAND.DOCUMENT_EXPORT,\n 'document:commit': PLAYABLE_FORGE_PLAY_COMMAND.DOCUMENT_COMMIT,\n 'asset:import': PLAYABLE_FORGE_PLAY_COMMAND.ASSET_IMPORT,\n 'asset:update': PLAYABLE_FORGE_PLAY_COMMAND.ASSET_UPDATE,\n 'asset:library:refresh': PLAYABLE_FORGE_PLAY_COMMAND.ASSET_LIBRARY_REFRESH,\n 'editor:asset:place': PLAYABLE_FORGE_PLAY_COMMAND.EDITOR_ASSET_PLACE,\n 'assets:drop': PLAYABLE_FORGE_PLAY_COMMAND.ASSETS_DROP,\n 'assets:loaded': PLAYABLE_FORGE_PLAY_COMMAND.ASSETS_LOADED,\n};\n\nexport const PLAYABLE_FORGE_PLAY_PROJECT_ASSET_COMMANDS = new Set<string>([\n PLAYABLE_FORGE_PLAY_COMMAND.ASSET_IMPORT,\n PLAYABLE_FORGE_PLAY_COMMAND.ASSET_UPDATE,\n PLAYABLE_FORGE_PLAY_COMMAND.ASSET_LIBRARY_REFRESH,\n PLAYABLE_FORGE_PLAY_COMMAND.EDITOR_ASSET_PLACE,\n PLAYABLE_FORGE_PLAY_COMMAND.ASSETS_LOADED,\n]);\n\nexport const PLAYABLE_FORGE_PLAY_HISTORY_COMMANDS = new Set<string>([\n PLAYABLE_FORGE_PLAY_COMMAND.UNDO,\n PLAYABLE_FORGE_PLAY_COMMAND.REDO,\n]);\n\nexport function createPlayableForgePlaySaveState(): PlayableForgePlaySaveState {\n return {\n preparedRevision: 0,\n committedRevision: 0,\n };\n}\n\nexport function normalizePlayableForgePlayCommandName(value: unknown): string | null {\n if (typeof value !== 'string') return null;\n return PLAYABLE_FORGE_PLAY_COMMAND_ALIASES[value] ?? value;\n}\n\nexport function readPlayableForgePlayRequestId(payload: Record<string, unknown>): string | undefined {\n return typeof payload.requestId === 'string' && payload.requestId.trim()\n ? payload.requestId.trim()\n : undefined;\n}\n\nexport function readPlayableForgePlayHistoryOperationOptions(\n payload: Record<string, unknown>,\n): PlayableForgePlayHistoryOperationOptions {\n return {\n origin: readPlayableForgePlayHistoryOrigin(payload.origin),\n waitForProjection: payload.waitForProjection === 'settled' ? 'settled' : 'none',\n };\n}\n\nexport function getPlayableForgePlayHistoryResultEventName(\n operation: PlayableForgePlayHistoryOperation,\n): string {\n return operation === 'undo'\n ? PLAYABLE_FORGE_PLAY_EVENT.HISTORY_UNDO_RESULT\n : PLAYABLE_FORGE_PLAY_EVENT.HISTORY_REDO_RESULT;\n}\n\nexport function postPlayableForgePlayEvent(\n windowLike: Pick<PlayableForgePlayWindowLike, 'parent'>,\n name: string,\n payload: Record<string, unknown> = {},\n): void {\n if (!windowLike.parent || windowLike.parent === (windowLike as unknown)) return;\n const post = (eventName: string): void => {\n windowLike.parent?.postMessage({\n source: PLAYABLE_FORGE_PLAY_BRIDGE_SOURCE,\n type: PLAYABLE_FORGE_PLAY_POST_MESSAGE.EVENT,\n payload: { ...payload, name: eventName },\n timestamp: Date.now(),\n }, '*');\n };\n post(name);\n for (const alias of PLAYABLE_FORGE_PLAY_EVENT_ALIASES[name] ?? []) {\n if (alias !== name) post(alias);\n }\n}\n\nfunction readPlayableForgePlayHistoryOrigin(value: unknown): PlayableForgePlayHistoryOperationOptions['origin'] {\n return value === 'user' || value === 'system' || value === 'agent'\n ? value\n : 'agent';\n}\n\nexport function installPlayableForgePlayModeBridge(\n options: PlayableForgePlayBridgeInstallOptions,\n): PlayableForgePlayModeBridge {\n let currentMode = options.initialMode ?? 'play';\n let inFlight: Promise<void> | null = null;\n const saveState = createPlayableForgePlaySaveState();\n let preparedDocumentFingerprint: string | null = null;\n let committedDocumentFingerprint: string | null = null;\n let preparedRequestId: string | null = null;\n let commitInFlight: { requestId: string; promise: Promise<void> } | null = null;\n let overlayHideTimer: unknown = null;\n const waitForPaint = options.waitForPaint ?? waitForPlayableLocalEditorPaint;\n const overlayHideDelayMs = options.overlayHideDelayMs ?? 3000;\n const readMode = (): PlayableForgePlayMode => options.readMode?.() ?? currentMode;\n const invalidatePreparedPlatformSave = (): void => {\n saveState.preparedRevision = saveState.committedRevision;\n preparedDocumentFingerprint = null;\n preparedRequestId = null;\n };\n const postEvent = (name: string, payload: Record<string, unknown> = {}): void => {\n postPlayableForgePlayEvent(options.window, name, payload);\n };\n\n const notifySaveFailed = async (\n operation: PlayableLocalEditorDataSafetyOperation,\n error?: unknown,\n ): Promise<void> => {\n const notify = options.interactions?.notifySaveFailed;\n if (!notify) return;\n let state: PlayableLocalEditorSaveFailureState | null | undefined;\n try {\n state = options.harness.getSaveFailureState?.();\n } catch (stateError) {\n console.error('[PlayableForgePlayBridge] save failure state unavailable', stateError);\n }\n const input: PlayableLocalEditorSaveFailureInput = {\n operation,\n status: state?.status ?? (error instanceof Error ? error.message : undefined),\n details: state?.details,\n error: error ?? state?.error,\n };\n try {\n await notify(input);\n } catch (notifyError) {\n console.error('[PlayableForgePlayBridge] save failure notification failed', notifyError);\n }\n };\n\n const saveScene = async (\n operation: PlayableLocalEditorDataSafetyOperation,\n ): Promise<boolean> => {\n if (options.saveDocument) return options.saveDocument(operation);\n try {\n const saved = await options.harness.saveScene();\n if (!saved) await notifySaveFailed(operation);\n return saved;\n } catch (error) {\n await notifySaveFailed(operation, error);\n throw error;\n }\n };\n\n const readUnsavedChangesState = (): PlayableLocalEditorUnsavedChangesState => {\n const fallbackHasWorkingDocument = options.harness.getWorkingDocument() !== null;\n try {\n return options.harness.getUnsavedChangesState?.() ?? {\n dirty: false,\n hasWorkingDocument: fallbackHasWorkingDocument,\n };\n } catch (error) {\n console.error('[PlayableForgePlayBridge] unsaved changes state unavailable', error);\n return {\n dirty: false,\n hasWorkingDocument: fallbackHasWorkingDocument,\n };\n }\n };\n\n const confirmDiscardIfNeeded = async (\n operation: PlayableLocalEditorDataSafetyOperation,\n ): Promise<boolean> => {\n const unsavedChanges = readUnsavedChangesState();\n if (!unsavedChanges.dirty || !unsavedChanges.hasWorkingDocument) return true;\n try {\n return await options.interactions?.confirmDiscardUnsavedChanges?.({\n operation,\n unsavedChanges,\n }) !== false;\n } catch (error) {\n console.error('[PlayableForgePlayBridge] discard confirmation failed', error);\n return false;\n }\n };\n\n const clearOverlayHideTimer = (): void => {\n if (overlayHideTimer == null) return;\n options.window.clearTimeout(overlayHideTimer);\n overlayHideTimer = null;\n };\n\n const showSaveOverlay = (content: PlayableForgePlayBridgeInstallOptions['loadingContent']['saveScene']): void => {\n clearOverlayHideTimer();\n options.loadingOverlay.show(content);\n };\n\n const scheduleSaveOverlayHide = (): void => {\n clearOverlayHideTimer();\n overlayHideTimer = options.window.setTimeout(() => {\n overlayHideTimer = null;\n options.loadingOverlay.hide();\n }, overlayHideDelayMs);\n };\n\n const reportModeChangeError = (error: unknown, fallbackMode: PlayableForgePlayMode): void => {\n options.reportError?.(error);\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.SYSTEM_ERROR, {\n kind: 'rejection',\n message: error instanceof Error ? error.message : String(error),\n });\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: fallbackMode });\n };\n\n const postHistoryOperationResult = (\n operation: PlayableForgePlayHistoryOperation,\n payload: Record<string, unknown>,\n result: PlayableForgePlayHistoryOperationResult,\n ): void => {\n const requestId = readPlayableForgePlayRequestId(payload);\n postEvent(getPlayableForgePlayHistoryResultEventName(operation), {\n ...result,\n ...(requestId ? { requestId } : {}),\n });\n };\n\n const switchMode = async (\n mode: PlayableForgePlayMode,\n switchOptions: { save?: boolean } = {},\n ): Promise<void> => {\n const exitLoadingContent = mode === 'play' && !options.exitEditor\n ? switchOptions.save === true\n ? options.loadingContent.saveAndRunGame\n : options.loadingContent.discardAndRunGame\n : null;\n const shouldRunExit = (): boolean => mode === 'play' && options.harness.getWorkingDocument() !== null;\n\n if (inFlight) await inFlight;\n if (readMode() === mode && !shouldRunExit()) {\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode });\n return;\n }\n\n inFlight = (async () => {\n if (mode === 'play' && switchOptions.save !== true && shouldRunExit() && !options.exitEditor) {\n const confirmed = await confirmDiscardIfNeeded('forge-play-mode-change');\n if (!confirmed) {\n currentMode = 'edit';\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: 'edit' });\n return;\n }\n }\n if (exitLoadingContent) {\n showSaveOverlay(exitLoadingContent);\n await waitForPaint();\n }\n try {\n if (mode === 'edit') {\n saveState.preparedRevision = 0;\n saveState.committedRevision = 0;\n preparedDocumentFingerprint = null;\n committedDocumentFingerprint = null;\n preparedRequestId = null;\n await options.harness.enterEditor();\n if (options.renderAfterEnter !== false) options.harness.render();\n currentMode = 'edit';\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: 'edit' });\n return;\n }\n\n if (switchOptions.save === true) {\n const hasPendingPlatformCommit = saveState.preparedRevision > saveState.committedRevision;\n if (hasPendingPlatformCommit) {\n if (exitLoadingContent) options.loadingOverlay.hide();\n currentMode = 'edit';\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: 'edit' });\n return;\n }\n const hasPlatformCommit = saveState.preparedRevision > 0\n && saveState.preparedRevision === saveState.committedRevision;\n const currentDocumentFingerprint = createPlayableForgePlayDocumentFingerprint(\n options.harness.getWorkingDocument(),\n );\n const platformCommitAlreadySaved = hasPlatformCommit\n && committedDocumentFingerprint !== null\n && currentDocumentFingerprint === committedDocumentFingerprint\n && options.hasUnsavedPlatformChanges?.() !== true;\n if (hasPlatformCommit && !platformCommitAlreadySaved) {\n if (exitLoadingContent) options.loadingOverlay.hide();\n currentMode = 'edit';\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: 'edit' });\n return;\n }\n if (!platformCommitAlreadySaved) {\n const saved = await saveScene('forge-play-mode-change');\n if (!saved) {\n if (exitLoadingContent) options.loadingOverlay.hide();\n currentMode = 'edit';\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: 'edit' });\n return;\n }\n }\n }\n\n if (options.exitEditor) {\n const exited = await options.exitEditor(switchOptions.save === true ? 'save' : 'discard');\n if (!exited) {\n currentMode = 'edit';\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: 'edit' });\n return;\n }\n } else {\n await options.harness.discardAndRunGame();\n }\n if (exitLoadingContent) options.loadingOverlay.hide();\n currentMode = 'play';\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: 'play' });\n } catch (error) {\n if (exitLoadingContent) options.loadingOverlay.hide();\n throw error;\n }\n })();\n\n try {\n await inFlight;\n } finally {\n inFlight = null;\n }\n };\n\n const commitPlatformSave = async (payload: Record<string, unknown> = {}): Promise<void> => {\n if (inFlight) await inFlight;\n const requestId = readPlayableForgePlayRequestId(payload) ?? null;\n if (!requestId || !preparedRequestId || requestId !== preparedRequestId) return;\n if (commitInFlight) {\n if (commitInFlight.requestId === requestId) return commitInFlight.promise;\n await commitInFlight.promise;\n return commitPlatformSave(payload);\n }\n if (saveState.preparedRevision <= saveState.committedRevision) return;\n\n const commitOperation = (async () => {\n try {\n const currentDocumentFingerprint = createPlayableForgePlayDocumentFingerprint(\n options.harness.getWorkingDocument(),\n );\n if (currentDocumentFingerprint !== preparedDocumentFingerprint) {\n throw new Error('Editor document changed after export; prepare a new export before commit.');\n }\n await options.commitDocument?.({\n payload,\n saveState,\n documentFingerprint: preparedDocumentFingerprint,\n });\n saveState.committedRevision = saveState.preparedRevision;\n committedDocumentFingerprint = preparedDocumentFingerprint;\n } catch (error) {\n invalidatePreparedPlatformSave();\n throw error;\n }\n })();\n commitInFlight = { requestId, promise: commitOperation };\n try {\n await commitOperation;\n } finally {\n if (commitInFlight?.promise === commitOperation) commitInFlight = null;\n }\n };\n\n const runHistoryOperation = async (\n operation: PlayableForgePlayHistoryOperation,\n payload: Record<string, unknown>,\n ): Promise<void> => {\n const historyOptions = readPlayableForgePlayHistoryOperationOptions(payload);\n try {\n if (readMode() !== 'edit') await switchMode('edit');\n const handler = operation === 'undo' ? options.harness.undo : options.harness.redo;\n if (!handler) {\n postHistoryOperationResult(operation, payload, createPlayableForgePlayHistoryUnavailableResult(\n operation,\n historyOptions,\n options.harness.getWorkingDocument(),\n ));\n return;\n }\n const result = await handler.call(options.harness, historyOptions);\n postHistoryOperationResult(operation, payload, result);\n } catch (error) {\n options.reportError?.(error);\n postHistoryOperationResult(operation, payload, createPlayableForgePlayHistoryUnavailableResult(\n operation,\n historyOptions,\n options.harness.getWorkingDocument(),\n error,\n ));\n }\n };\n\n const onMessage = (event: PlayableForgePlayMessageEvent): void => {\n if (event.source !== options.window.parent) return;\n const message = readRecord(event.data);\n if (message.source !== PLAYABLE_FORGE_PLAY_BRIDGE_SOURCE) return;\n if (message.type !== PLAYABLE_FORGE_PLAY_POST_MESSAGE.COMMAND) return;\n const payload = readRecord(message.payload);\n const commandName = normalizePlayableForgePlayCommandName(payload.name);\n\n if (commandName === PLAYABLE_FORGE_PLAY_COMMAND.ASSETS_DROP) {\n options.handleAssetDrop?.(payload);\n return;\n }\n if (commandName && PLAYABLE_FORGE_PLAY_PROJECT_ASSET_COMMANDS.has(commandName)) {\n event.stopImmediatePropagation?.();\n const handled = options.handleProjectAssetCommand\n ? options.handleProjectAssetCommand(commandName, payload)\n : Promise.resolve();\n void handled.catch((error) => {\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.SYSTEM_ERROR, {\n kind: 'rejection',\n message: error instanceof Error ? error.message : String(error),\n });\n });\n return;\n }\n if (commandName && PLAYABLE_FORGE_PLAY_HISTORY_COMMANDS.has(commandName)) {\n event.stopImmediatePropagation?.();\n void runHistoryOperation(\n commandName === PLAYABLE_FORGE_PLAY_COMMAND.UNDO ? 'undo' : 'redo',\n payload,\n );\n return;\n }\n if (commandName === PLAYABLE_FORGE_PLAY_COMMAND.DOCUMENT_EXPORT) {\n showSaveOverlay(options.loadingContent.saveScene);\n const requestId = readPlayableForgePlayRequestId(payload);\n if (!requestId) {\n scheduleSaveOverlayHide();\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.DOCUMENT_EXPORTED, {\n error: 'document_export_request_id_required',\n });\n return;\n }\n if (inFlight || saveState.preparedRevision > saveState.committedRevision) {\n scheduleSaveOverlayHide();\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.DOCUMENT_EXPORTED, {\n requestId,\n error: inFlight ? 'document_export_in_progress' : 'document_export_not_committed',\n });\n return;\n }\n const exportDocument = options.exportDocument;\n const revisionBeforeExport = saveState.preparedRevision;\n const committedRevisionBeforeExport = saveState.committedRevision;\n const preparedFingerprintBeforeExport = preparedDocumentFingerprint;\n const committedFingerprintBeforeExport = committedDocumentFingerprint;\n const preparedRequestIdBeforeExport = preparedRequestId;\n const exportedDocumentFingerprint = createPlayableForgePlayDocumentFingerprint(\n options.harness.getWorkingDocument(),\n );\n const exported = exportDocument\n ? Promise.resolve().then(() => exportDocument({ payload, saveState, postEvent }))\n : Promise.resolve();\n const exportOperation = exported.then(() => {\n if (saveState.preparedRevision > revisionBeforeExport) {\n preparedDocumentFingerprint = exportedDocumentFingerprint;\n committedDocumentFingerprint = null;\n preparedRequestId = requestId;\n }\n }).catch(async (error) => {\n saveState.preparedRevision = revisionBeforeExport;\n saveState.committedRevision = committedRevisionBeforeExport;\n preparedDocumentFingerprint = preparedFingerprintBeforeExport;\n committedDocumentFingerprint = committedFingerprintBeforeExport;\n preparedRequestId = preparedRequestIdBeforeExport;\n options.loadingOverlay.hide();\n await notifySaveFailed('forge-play-document-export', error);\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.DOCUMENT_EXPORTED, {\n ...(readPlayableForgePlayRequestId(payload) ? { requestId: readPlayableForgePlayRequestId(payload) } : {}),\n error: error instanceof Error ? error.message : String(error),\n });\n }).then(() => {\n scheduleSaveOverlayHide();\n }).finally(() => {\n if (inFlight === exportOperation) inFlight = null;\n });\n inFlight = exportOperation;\n return;\n }\n if (commandName === PLAYABLE_FORGE_PLAY_COMMAND.DOCUMENT_COMMIT) {\n showSaveOverlay(options.loadingContent.saveScene);\n void commitPlatformSave(payload).catch((error) => {\n options.loadingOverlay.hide();\n reportModeChangeError(error, readMode());\n }).then(() => {\n scheduleSaveOverlayHide();\n });\n return;\n }\n if (commandName !== PLAYABLE_FORGE_PLAY_COMMAND.MODE_CHANGE) return;\n\n const mode = payload.mode === 'edit' ? 'edit' : payload.mode === 'play' ? 'play' : null;\n if (!mode) return;\n const save = mode === 'play' ? payload.save !== false : false;\n\n void switchMode(mode, { save }).catch((error) => {\n reportModeChangeError(error, readMode());\n });\n };\n\n options.window.addEventListener('message', onMessage, { capture: true });\n const postReadyEvents = (): void => {\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.SCENE_READY, { mode: readMode() });\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.FIRST_FRAME);\n postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: readMode() });\n };\n if (options.window.queueMicrotask) options.window.queueMicrotask(postReadyEvents);\n else postReadyEvents();\n\n return {\n switchMode,\n commitPlatformSave,\n getMode() {\n return readMode();\n },\n getSaveState() {\n return saveState;\n },\n dispose() {\n clearOverlayHideTimer();\n options.window.removeEventListener('message', onMessage, { capture: true });\n },\n };\n}\n\nfunction createPlayableForgePlayDocumentFingerprint(document: unknown): string | null {\n if (document == null) return null;\n try {\n return JSON.stringify(document);\n } catch {\n return null;\n }\n}\n\nfunction readRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' && !Array.isArray(value)\n ? value as Record<string, unknown>\n : {};\n}\n\nfunction readOptionalRecord(value: unknown): Record<string, unknown> | null {\n return value && typeof value === 'object' && !Array.isArray(value)\n ? value as Record<string, unknown>\n : null;\n}\n\nfunction createPlayableForgePlayHistoryUnavailableResult(\n operation: PlayableForgePlayHistoryOperation,\n options: PlayableForgePlayHistoryOperationOptions,\n workingDocument: unknown | null,\n error?: unknown,\n): PlayableForgePlayHistoryOperationResult {\n const waitForProjection = options.waitForProjection ?? 'none';\n const failed = error != null;\n return {\n ok: false,\n operation,\n origin: options.origin ?? 'agent',\n waitForProjection,\n documentChanged: false,\n transactionLabel: null,\n workingDocument,\n dirty: false,\n history: { canUndo: false, canRedo: false },\n status: failed\n ? `${operation === 'undo' ? 'Undo' : 'Redo'} failed`\n : `${operation === 'undo' ? 'Undo' : 'Redo'} unavailable`,\n projection: {\n waitPolicy: waitForProjection,\n idle: true,\n activeBatchIds: [],\n lastBatch: null,\n },\n error: failed\n ? error instanceof Error ? error.message : String(error)\n : `Harness ${operation} is not available.`,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"host-controller.js","sourceRoot":"","sources":["../../src/local-harness/host-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-controller.js","sourceRoot":"","sources":["../../src/local-harness/host-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n installPlayableForgePlayModeBridge,\n postPlayableForgePlayEvent,\n} from './forge-play';\nimport type {\n PlayableForgePlayBridgeInstallOptions,\n PlayableForgePlayModeBridge,\n PlayableForgePlaySaveState,\n PlayableForgePlayWindowLike,\n} from './forge-play-types';\nimport {\n createPlayableLocalEditorLifecycleController,\n} from './lifecycle';\nimport type {\n PlayableLocalEditorLifecycleContent,\n PlayableLocalEditorLifecycleController,\n PlayableLocalEditorLifecycleOperations,\n PlayableLocalEditorLifecycleHarness,\n PlayableLocalEditorLifecycleScopeHost,\n PlayableLocalEditorInteractionPolicy,\n PlayableLocalEditorLoadingOverlayContent,\n PlayableLocalEditorLoadingOverlayController,\n PlayableLocalEditorPreparedRun,\n} from './types';\nimport type { FpsEditorEventPublisher } from '@fps-games/editor-core/events';\nimport type { FpsDiagnostic } from '@fps-games/plugin-api';\n\nexport interface PlayableLocalEditorHostHarness\n extends PlayableLocalEditorLifecycleHarness {\n getWorkingDocument(): unknown | null;\n}\n\nexport interface PlayableLocalEditorHostLoadingContent\n extends PlayableLocalEditorLifecycleContent {\n saveScene: PlayableLocalEditorLoadingOverlayContent;\n}\n\nexport interface PlayableLocalEditorHostBridgeContext<\n THarness extends PlayableLocalEditorHostHarness = PlayableLocalEditorHostHarness,\n> {\n name: string;\n payload: Record<string, unknown>;\n harness: THarness;\n ensureEditorMode: () => Promise<void>;\n runWithAssetLoadingOverlay: <T>(operation: () => Promise<T>) => Promise<T>;\n postEvent: (name: string, payload?: Record<string, unknown>) => void;\n getBridge: () => PlayableForgePlayModeBridge | null;\n}\n\nexport interface PlayableLocalEditorHostControllerOptions<\n THarness extends PlayableLocalEditorHostHarness = PlayableLocalEditorHostHarness,\n> {\n harness: THarness;\n lifecycleOperations: PlayableLocalEditorLifecycleOperations;\n lifecycleScopeHost?: PlayableLocalEditorLifecycleScopeHost;\n eventPublisher?: FpsEditorEventPublisher;\n reportDiagnostic?: (diagnostic: FpsDiagnostic) => void;\n loadingOverlay: Pick<PlayableLocalEditorLoadingOverlayController, 'show' | 'hide' | 'isVisible'> & {\n dispose?: () => void;\n };\n loadingContent: PlayableLocalEditorHostLoadingContent;\n beforeDiscardAndRunGame?: () => void | Promise<void>;\n waitForPaint?: () => Promise<void>;\n waitForMilliseconds?: (milliseconds: number) => Promise<void>;\n now?: () => number;\n minAssetLoadingOverlayMs?: number;\n viewportRevealReason?: string;\n renderAfterEnter?: boolean;\n interactions?: PlayableLocalEditorInteractionPolicy;\n forgePlay?: {\n enabled?: boolean;\n window?: PlayableForgePlayWindowLike;\n initialMode?: PlayableForgePlayBridgeInstallOptions['initialMode'];\n overlayHideDelayMs?: number;\n hasUnsavedPlatformChanges?: () => boolean;\n reportError?: (error: unknown) => void;\n handleAssetDrop?: (\n payload: Record<string, unknown>,\n context: Omit<PlayableLocalEditorHostBridgeContext<THarness>, 'name'>,\n ) => void;\n handleProjectAssetCommand?: (\n context: PlayableLocalEditorHostBridgeContext<THarness>,\n ) => Promise<void> | void;\n exportDocument?: (input: {\n payload: Record<string, unknown>;\n saveState: PlayableForgePlaySaveState;\n postEvent: (name: string, payload?: Record<string, unknown>) => void;\n context: Omit<PlayableLocalEditorHostBridgeContext<THarness>, 'name' | 'payload'>;\n }) => Promise<void> | void;\n };\n}\n\nexport interface PlayableLocalEditorHostController<\n THarness extends PlayableLocalEditorHostHarness = PlayableLocalEditorHostHarness,\n> {\n harness: THarness;\n lifecycle: PlayableLocalEditorLifecycleController;\n getBridge(): PlayableForgePlayModeBridge | null;\n enterEditor(): Promise<void>;\n saveScene(): Promise<boolean>;\n prepareSaveAndRunGame(): Promise<PlayableLocalEditorPreparedRun>;\n prepareDiscardAndRunGame(): Promise<PlayableLocalEditorPreparedRun>;\n saveAndRunGame(): Promise<boolean>;\n discardAndRunGame(): Promise<boolean>;\n runWithAssetLoadingOverlay<T>(operation: () => Promise<T>): Promise<T>;\n dispose(): Promise<void>;\n}\n\nexport function createPlayableLocalEditorHostController<\n THarness extends PlayableLocalEditorHostHarness = PlayableLocalEditorHostHarness,\n>(\n options: PlayableLocalEditorHostControllerOptions<THarness>,\n): PlayableLocalEditorHostController<THarness> {\n let bridge: PlayableForgePlayModeBridge | null = null;\n let disposal: Promise<void> | null = null;\n let lifecycleDisposed = false;\n let loadingOverlayDisposed = false;\n const loadingOverlay = createScopedLoadingOverlay(options.loadingOverlay);\n const lifecycleLoadingOverlay = loadingOverlay.createScope();\n const forgePlayLoadingOverlay = loadingOverlay.createScope();\n const harness = options.harness;\n const lifecycleOperations = createLifecycleOperations(\n options.lifecycleOperations,\n options.beforeDiscardAndRunGame,\n );\n\n const lifecycle = createPlayableLocalEditorLifecycleController({\n harness,\n operations: lifecycleOperations,\n scopeHost: options.lifecycleScopeHost,\n eventPublisher: options.eventPublisher,\n reportDiagnostic: options.reportDiagnostic,\n loadingOverlay: lifecycleLoadingOverlay,\n content: options.loadingContent,\n interactions: options.interactions,\n waitForPaint: options.waitForPaint,\n waitForMilliseconds: options.waitForMilliseconds,\n now: options.now,\n minAssetLoadingOverlayMs: options.minAssetLoadingOverlayMs,\n viewportRevealReason: options.viewportRevealReason,\n renderAfterEnter: options.renderAfterEnter,\n initialMode: options.forgePlay?.initialMode,\n });\n\n const runWithAssetLoadingOverlay = <T>(operation: () => Promise<T>): Promise<T> => (\n lifecycle.runWithAssetLoadingOverlay(operation)\n );\n const lifecycleHarness = createLifecycleHarness(harness, lifecycle);\n\n const ensureEditorMode = async (): Promise<void> => {\n if (!bridge || bridge.getMode() === 'edit') return;\n await bridge.switchMode('edit');\n };\n\n const postEvent = (name: string, payload: Record<string, unknown> = {}): void => {\n const windowLike = options.forgePlay?.window;\n if (!windowLike) return;\n postPlayableForgePlayEvent(windowLike, name, payload);\n };\n\n const createBridgeContext = (\n name: string,\n payload: Record<string, unknown>,\n ): PlayableLocalEditorHostBridgeContext<THarness> => ({\n name,\n payload,\n harness: lifecycleHarness,\n ensureEditorMode,\n runWithAssetLoadingOverlay,\n postEvent,\n getBridge: () => bridge,\n });\n\n if (options.forgePlay?.enabled !== false && options.forgePlay?.window) {\n bridge = installPlayableForgePlayModeBridge({\n window: options.forgePlay.window,\n harness: lifecycleHarness,\n loadingOverlay: forgePlayLoadingOverlay,\n loadingContent: {\n saveScene: options.loadingContent.saveScene,\n saveAndRunGame: options.loadingContent.saveAndRunGame,\n discardAndRunGame: options.loadingContent.discardAndRunGame,\n },\n initialMode: options.forgePlay.initialMode,\n overlayHideDelayMs: options.forgePlay.overlayHideDelayMs,\n waitForPaint: options.waitForPaint,\n renderAfterEnter: false,\n readMode: () => {\n const mode = lifecycle.lifecycle.getSnapshot().mode;\n if (mode === 'edit' || mode === 'exiting-edit') return 'edit';\n if (mode === 'play' || mode === 'entering-edit') return 'play';\n return options.forgePlay?.initialMode ?? 'play';\n },\n hasUnsavedPlatformChanges: options.forgePlay.hasUnsavedPlatformChanges,\n reportError: options.forgePlay.reportError,\n interactions: options.interactions,\n handleAssetDrop: options.forgePlay.handleAssetDrop\n ? payload => {\n options.forgePlay?.handleAssetDrop?.(payload, createBridgeContext('', payload));\n }\n : undefined,\n handleProjectAssetCommand: options.forgePlay.handleProjectAssetCommand\n ? async (name, payload) => {\n await options.forgePlay?.handleProjectAssetCommand?.(createBridgeContext(name, payload));\n }\n : undefined,\n exportDocument: options.forgePlay.exportDocument\n ? async ({ payload, saveState, postEvent: bridgePostEvent }) => {\n await lifecycle.prepareDocumentSave(async () => {\n await options.forgePlay?.exportDocument?.({\n payload,\n saveState,\n postEvent: bridgePostEvent,\n context: createBridgeContext('', payload),\n });\n });\n }\n : undefined,\n saveDocument: operation => lifecycle.saveScene(operation),\n commitDocument: options.forgePlay.exportDocument\n ? async ({ documentFingerprint }) => lifecycle.commitDocumentSave(async () => {\n await lifecycleOperations.markDocumentCommitted?.(documentFingerprint);\n })\n : undefined,\n exitEditor: async reason => {\n if (reason === 'discard') return lifecycle.discardAndRunGame();\n await lifecycle.runCommittedDocument();\n return true;\n },\n });\n }\n\n return {\n harness: lifecycleHarness,\n lifecycle,\n getBridge() {\n return bridge;\n },\n enterEditor: lifecycle.enterEditor,\n saveScene: () => lifecycle.saveScene('save-scene'),\n prepareSaveAndRunGame: lifecycle.prepareSaveAndRunGame,\n prepareDiscardAndRunGame: lifecycle.prepareDiscardAndRunGame,\n saveAndRunGame: lifecycle.saveAndRunGame,\n discardAndRunGame: lifecycle.discardAndRunGame,\n runWithAssetLoadingOverlay,\n async dispose() {\n if (disposal) return disposal;\n const pending = (async () => {\n if (!lifecycleDisposed) {\n await lifecycle.dispose();\n lifecycleDisposed = true;\n }\n const errors: unknown[] = [];\n if (bridge) {\n try {\n bridge.dispose();\n bridge = null;\n } catch (error) { errors.push(error); }\n }\n if (!loadingOverlayDisposed) {\n try {\n loadingOverlay.dispose();\n loadingOverlayDisposed = true;\n } catch (error) { errors.push(error); }\n }\n if (errors.length === 1) throw errors[0];\n if (errors.length > 1) {\n const error = new Error('Playable Local Editor Host cleanup failed.') as Error & { errors: unknown[] };\n error.errors = errors;\n throw error;\n }\n })();\n disposal = pending;\n void pending.catch(() => {\n if (disposal === pending) disposal = null;\n });\n return pending;\n },\n };\n}\n\nfunction createLifecycleHarness<\n THarness extends PlayableLocalEditorHostHarness,\n>(\n harness: THarness,\n lifecycle: Pick<\n PlayableLocalEditorLifecycleController,\n 'enterEditor' | 'saveScene' | 'saveAndRunGame' | 'discardAndRunGame'\n >,\n): THarness {\n const enterEditor = lifecycle.enterEditor;\n const saveScene = () => lifecycle.saveScene('save-scene');\n const saveAndRunGame = lifecycle.saveAndRunGame;\n const discardAndRunGame = lifecycle.discardAndRunGame;\n const hiddenOperations = new Set<PropertyKey>([\n 'runGame',\n 'setAgentLifecycleController',\n 'setLifecycleController',\n 'getLocalEditorHarnessLifecycleOperations',\n 'dispose',\n ]);\n return new Proxy(harness, {\n get(target, property) {\n if (hiddenOperations.has(property)) return undefined;\n if (property === 'enterEditor') return enterEditor;\n if (property === 'saveScene') return saveScene;\n if (property === 'saveAndRunGame') return saveAndRunGame;\n if (property === 'discardAndRunGame') return discardAndRunGame;\n const value = Reflect.get(target, property, target);\n return typeof value === 'function' ? value.bind(target) : value;\n },\n has(target, property) {\n return !hiddenOperations.has(property) && Reflect.has(target, property);\n },\n ownKeys(target) {\n return Reflect.ownKeys(target).filter(property => !hiddenOperations.has(property));\n },\n getOwnPropertyDescriptor(target, property) {\n if (hiddenOperations.has(property)) return undefined;\n return Reflect.getOwnPropertyDescriptor(target, property);\n },\n }) as THarness;\n}\n\nfunction createScopedLoadingOverlay(\n loadingOverlay: Pick<PlayableLocalEditorLoadingOverlayController, 'show' | 'hide' | 'isVisible'> & {\n dispose?: () => void;\n },\n) {\n let owner: symbol | null = null;\n return {\n createScope() {\n const scopeOwner = Symbol('playable-local-editor-loading-overlay-scope');\n return {\n show(content: PlayableLocalEditorLoadingOverlayContent): void {\n owner = scopeOwner;\n loadingOverlay.show(content);\n },\n hide(): void {\n if (owner !== scopeOwner) return;\n owner = null;\n loadingOverlay.hide();\n },\n isVisible(): boolean {\n return loadingOverlay.isVisible();\n },\n isOwned(): boolean {\n return owner === scopeOwner;\n },\n };\n },\n dispose(): void {\n owner = null;\n loadingOverlay.dispose?.();\n },\n };\n}\n\nfunction createLifecycleOperations(\n operations: PlayableLocalEditorLifecycleOperations,\n beforeDiscardAndRunGame: (() => void | Promise<void>) | undefined,\n): PlayableLocalEditorLifecycleOperations {\n return {\n ...operations,\n async runGame(reason) {\n await beforeDiscardAndRunGame?.();\n await operations.runGame(reason);\n },\n };\n}\n"]}
@@ -2,7 +2,7 @@ export type { PlayableEditorAgentAssetLike, PlayableEditorAgentGameObjectLike, P
2
2
  export type { PlayableLocalEditorHostBridgeContext, PlayableLocalEditorHostLoadingContent, } from './host-controller';
3
3
  export type { PlayableForgePlayBridgeHarness, PlayableForgePlayBridgeInstallOptions, PlayableForgePlayBridgeLoadingOverlay, PlayableForgePlayHistoryOperation, PlayableForgePlayHistoryOperationOptions, PlayableForgePlayHistoryOperationResult, PlayableForgePlayHistoryProjectionResult, PlayableForgePlayHistoryStateResult, PlayableForgePlayMessageEvent, PlayableForgePlayMode, PlayableForgePlayModeBridge, PlayableForgePlayOperationOrigin, PlayableForgePlayProjectionWaitPolicy, PlayableForgePlaySaveState, PlayableForgePlayWindowLike, } from './forge-play-types';
4
4
  export type { PlayableLocalEditorLifecycleContent, PlayableLocalEditorDataSafetyOperation, PlayableLocalEditorDiscardConfirmationInput, PlayableLocalEditorInteractionPolicy, PlayableLocalEditorLoadingOverlayContent, PlayableLocalEditorLoadingOverlayController, PlayableLocalEditorLoadingOverlayPresentation, PlayableLocalEditorSaveFailureInput, PlayableLocalEditorSaveFailureState, PlayableLocalEditorUnsavedChangesState, } from './types';
5
- export type { PlayableProjectAssetCommandAsset, PlayableProjectAssetCommandCreateResult, PlayableProjectAssetCommandHandler, PlayableProjectAssetCommandHandlerOptions, PlayableProjectAssetCommandHarness, PlayableProjectAssetCommandReloadResult, } from './project-asset-commands';
5
+ export type { PlayableProjectAssetCommandAsset, PlayableProjectAssetCommandCreateResult, PlayableProjectAssetCommandHandler, PlayableProjectAssetCommandHandlerOptions, PlayableProjectAssetCommandHarness, PlayableProjectAssetCommandReloadResult, PlayableProjectAssetCommandUpdateRefreshResult, } from './project-asset-commands';
6
6
  export { describePlayableEditorAgentObject, describePlayableEditorAgentObjectSet, describePlayableEditorAgentRegionBinding, } from './agent-descriptions';
7
7
  export { createPlayableProjectAssetCommandHandler, } from './project-asset-commands';
8
8
  export { createPlayableLocalEditorLoadingOverlay, } from './loading-overlay';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/local-harness/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,4BAA4B,EAC5B,iCAAiC,EACjC,6BAA6B,EAC7B,4BAA4B,EAC5B,4CAA4C,EAC5C,2CAA2C,EAC3C,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,oCAAoC,EACpC,qCAAqC,GACtC,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,8BAA8B,EAC9B,qCAAqC,EACrC,qCAAqC,EACrC,iCAAiC,EACjC,wCAAwC,EACxC,uCAAuC,EACvC,wCAAwC,EACxC,mCAAmC,EACnC,6BAA6B,EAC7B,qBAAqB,EACrB,2BAA2B,EAC3B,gCAAgC,EAChC,qCAAqC,EACrC,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mCAAmC,EACnC,sCAAsC,EACtC,2CAA2C,EAC3C,oCAAoC,EACpC,wCAAwC,EACxC,2CAA2C,EAC3C,6CAA6C,EAC7C,mCAAmC,EACnC,mCAAmC,EACnC,sCAAsC,GACvC,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,gCAAgC,EAChC,uCAAuC,EACvC,kCAAkC,EAClC,yCAAyC,EACzC,kCAAkC,EAClC,uCAAuC,GACxC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iCAAiC,EACjC,oCAAoC,EACpC,wCAAwC,GACzC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wCAAwC,GACzC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uCAAuC,GACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gCAAgC,EAChC,0CAA0C,EAC1C,kCAAkC,EAClC,qCAAqC,EACrC,iCAAiC,EACjC,2BAA2B,EAC3B,mCAAmC,EACnC,yBAAyB,EACzB,iCAAiC,EACjC,oCAAoC,EACpC,gCAAgC,EAChC,0CAA0C,EAC1C,0BAA0B,EAC1B,4CAA4C,EAC5C,8BAA8B,GAC/B,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/local-harness/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,4BAA4B,EAC5B,iCAAiC,EACjC,6BAA6B,EAC7B,4BAA4B,EAC5B,4CAA4C,EAC5C,2CAA2C,EAC3C,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,oCAAoC,EACpC,qCAAqC,GACtC,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,8BAA8B,EAC9B,qCAAqC,EACrC,qCAAqC,EACrC,iCAAiC,EACjC,wCAAwC,EACxC,uCAAuC,EACvC,wCAAwC,EACxC,mCAAmC,EACnC,6BAA6B,EAC7B,qBAAqB,EACrB,2BAA2B,EAC3B,gCAAgC,EAChC,qCAAqC,EACrC,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mCAAmC,EACnC,sCAAsC,EACtC,2CAA2C,EAC3C,oCAAoC,EACpC,wCAAwC,EACxC,2CAA2C,EAC3C,6CAA6C,EAC7C,mCAAmC,EACnC,mCAAmC,EACnC,sCAAsC,GACvC,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,gCAAgC,EAChC,uCAAuC,EACvC,kCAAkC,EAClC,yCAAyC,EACzC,kCAAkC,EAClC,uCAAuC,EACvC,8CAA8C,GAC/C,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iCAAiC,EACjC,oCAAoC,EACpC,wCAAwC,GACzC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wCAAwC,GACzC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uCAAuC,GACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gCAAgC,EAChC,0CAA0C,EAC1C,kCAAkC,EAClC,qCAAqC,EACrC,iCAAiC,EACjC,2BAA2B,EAC3B,mCAAmC,EACnC,yBAAyB,EACzB,iCAAiC,EACjC,oCAAoC,EACpC,gCAAgC,EAChC,0CAA0C,EAC1C,0BAA0B,EAC1B,4CAA4C,EAC5C,8BAA8B,GAC/B,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-harness/index.ts"],"names":[],"mappings":"AAkDA,OAAO,EACL,iCAAiC,EACjC,oCAAoC,EACpC,wCAAwC,GACzC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wCAAwC,GACzC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uCAAuC,GACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gCAAgC,EAChC,0CAA0C,EAC1C,kCAAkC,EAClC,qCAAqC,EACrC,iCAAiC,EACjC,2BAA2B,EAC3B,mCAAmC,EACnC,yBAAyB,EACzB,iCAAiC,EACjC,oCAAoC,EACpC,gCAAgC,EAChC,0CAA0C,EAC1C,0BAA0B,EAC1B,4CAA4C,EAC5C,8BAA8B,GAC/B,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-harness/index.ts"],"names":[],"mappings":"AAmDA,OAAO,EACL,iCAAiC,EACjC,oCAAoC,EACpC,wCAAwC,GACzC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wCAAwC,GACzC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uCAAuC,GACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gCAAgC,EAChC,0CAA0C,EAC1C,kCAAkC,EAClC,qCAAqC,EACrC,iCAAiC,EACjC,2BAA2B,EAC3B,mCAAmC,EACnC,yBAAyB,EACzB,iCAAiC,EACjC,oCAAoC,EACpC,gCAAgC,EAChC,0CAA0C,EAC1C,0BAA0B,EAC1B,4CAA4C,EAC5C,8BAA8B,GAC/B,MAAM,cAAc,CAAC","sourcesContent":["export type {\n PlayableEditorAgentAssetLike,\n PlayableEditorAgentGameObjectLike,\n PlayableEditorAgentJsonObject,\n PlayableEditorAgentJsonValue,\n PlayableEditorAgentObjectDescriptionServices,\n PlayableEditorAgentPrefabMaterialTargetLike,\n PlayableEditorAgentPrefabSummaryLike,\n} from './agent-descriptions';\nexport type {\n PlayableLocalEditorHostBridgeContext,\n PlayableLocalEditorHostLoadingContent,\n} from './host-controller';\nexport type {\n PlayableForgePlayBridgeHarness,\n PlayableForgePlayBridgeInstallOptions,\n PlayableForgePlayBridgeLoadingOverlay,\n PlayableForgePlayHistoryOperation,\n PlayableForgePlayHistoryOperationOptions,\n PlayableForgePlayHistoryOperationResult,\n PlayableForgePlayHistoryProjectionResult,\n PlayableForgePlayHistoryStateResult,\n PlayableForgePlayMessageEvent,\n PlayableForgePlayMode,\n PlayableForgePlayModeBridge,\n PlayableForgePlayOperationOrigin,\n PlayableForgePlayProjectionWaitPolicy,\n PlayableForgePlaySaveState,\n PlayableForgePlayWindowLike,\n} from './forge-play-types';\nexport type {\n PlayableLocalEditorLifecycleContent,\n PlayableLocalEditorDataSafetyOperation,\n PlayableLocalEditorDiscardConfirmationInput,\n PlayableLocalEditorInteractionPolicy,\n PlayableLocalEditorLoadingOverlayContent,\n PlayableLocalEditorLoadingOverlayController,\n PlayableLocalEditorLoadingOverlayPresentation,\n PlayableLocalEditorSaveFailureInput,\n PlayableLocalEditorSaveFailureState,\n PlayableLocalEditorUnsavedChangesState,\n} from './types';\nexport type {\n PlayableProjectAssetCommandAsset,\n PlayableProjectAssetCommandCreateResult,\n PlayableProjectAssetCommandHandler,\n PlayableProjectAssetCommandHandlerOptions,\n PlayableProjectAssetCommandHarness,\n PlayableProjectAssetCommandReloadResult,\n PlayableProjectAssetCommandUpdateRefreshResult,\n} from './project-asset-commands';\nexport {\n describePlayableEditorAgentObject,\n describePlayableEditorAgentObjectSet,\n describePlayableEditorAgentRegionBinding,\n} from './agent-descriptions';\nexport {\n createPlayableProjectAssetCommandHandler,\n} from './project-asset-commands';\nexport {\n createPlayableLocalEditorLoadingOverlay,\n} from './loading-overlay';\nexport {\n waitForPlayableLocalEditorPaint,\n waitForPlayableMilliseconds,\n} from './timing';\nexport {\n createPlayableForgePlaySaveState,\n getPlayableForgePlayHistoryResultEventName,\n installPlayableForgePlayModeBridge,\n normalizePlayableForgePlayCommandName,\n PLAYABLE_FORGE_PLAY_BRIDGE_SOURCE,\n PLAYABLE_FORGE_PLAY_COMMAND,\n PLAYABLE_FORGE_PLAY_COMMAND_ALIASES,\n PLAYABLE_FORGE_PLAY_EVENT,\n PLAYABLE_FORGE_PLAY_EVENT_ALIASES,\n PLAYABLE_FORGE_PLAY_HISTORY_COMMANDS,\n PLAYABLE_FORGE_PLAY_POST_MESSAGE,\n PLAYABLE_FORGE_PLAY_PROJECT_ASSET_COMMANDS,\n postPlayableForgePlayEvent,\n readPlayableForgePlayHistoryOperationOptions,\n readPlayableForgePlayRequestId,\n} from './forge-play';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/local-harness/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/local-harness/lifecycle.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createFpsEditorLifecycleCoordinator,\n} from '@fps-games/editor-core/lifecycle';\nimport type { FpsEditorEventRoute } from '@fps-games/editor-core/events';\nimport {\n waitForPlayableLocalEditorPaint,\n waitForPlayableMilliseconds,\n} from './timing';\nimport type {\n PlayableLocalEditorDataSafetyOperation,\n PlayableLocalEditorLifecycleController,\n PlayableLocalEditorLifecycleControllerOptions,\n PlayableLocalEditorLifecycleOperationContext,\n PlayableLocalEditorLoadingOverlayContent,\n PlayableLocalEditorPreparedRun,\n PlayableLocalEditorLifecycleScopeInput,\n PlayableLocalEditorSaveFailureState,\n PlayableLocalEditorSaveFailureInput,\n PlayableLocalEditorUnsavedChangesState,\n} from './types';\n\nexport const PLAYABLE_LOCAL_EDITOR_APPLICATION_SCOPE_ID = 'editor:application';\nexport const PLAYABLE_LOCAL_EDITOR_PROJECT_SCOPE_ID = 'editor:project';\nexport const PLAYABLE_LOCAL_EDITOR_MAIN_DOCUMENT_SCOPE_ID = 'editor:document:main';\nexport const PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID = 'editor:session:main';\nexport const PLAYABLE_LOCAL_EDITOR_MAIN_PREVIEW_SCOPE_ID = 'editor:preview:main';\n\ntype LifecycleScopeRecord = {\n readonly input: PlayableLocalEditorLifecycleScopeInput;\n readonly disposers: Set<() => void | Promise<void>>;\n ready: Promise<void>;\n closing: Promise<void> | null;\n failed: boolean;\n backingOpened: boolean;\n lifecycleOpened: boolean;\n closeRequested: boolean;\n closeEventRoute: FpsEditorEventRoute | null;\n};\n\nclass PlayableLocalEditorSaveRejectedError extends Error {\n constructor() {\n super('Local editor save was rejected.');\n this.name = 'PlayableLocalEditorSaveRejectedError';\n }\n}\n\nexport function createPlayableLocalEditorLifecycleController(\n options: PlayableLocalEditorLifecycleControllerOptions,\n): PlayableLocalEditorLifecycleController {\n const waitForPaint = options.waitForPaint ?? waitForPlayableLocalEditorPaint;\n const waitForMilliseconds = options.waitForMilliseconds ?? waitForPlayableMilliseconds;\n const now = options.now ?? (() => Date.now());\n const minAssetLoadingOverlayMs = options.minAssetLoadingOverlayMs ?? 500;\n const viewportRevealReason = options.viewportRevealReason ?? 'editor-loading-overlay-hidden';\n const renderAfterEnter = options.renderAfterEnter ?? true;\n const initialUnsavedChanges = options.harness.getUnsavedChangesState?.();\n const initialCoordinatorProfile = options.initialMode === 'edit'\n && initialUnsavedChanges?.hasWorkingDocument === true\n ? initialUnsavedChanges.dirty ? 'editing-dirty' : 'editing-clean'\n : 'created';\n const coordinator = createFpsEditorLifecycleCoordinator({\n now,\n initialState: initialCoordinatorProfile,\n eventPublisher: options.eventPublisher,\n report: options.reportDiagnostic,\n });\n const lifecycle = Object.freeze({\n getSnapshot: coordinator.getSnapshot,\n subscribe: coordinator.subscribe,\n });\n const scopes = new Map<string, LifecycleScopeRecord>();\n const pendingScopeResources = new Map<string, Set<() => void | Promise<void>>>();\n const assertScopeCanOpen = (input: PlayableLocalEditorLifecycleScopeInput): void => {\n const lifecycleSnapshot = coordinator.getSnapshot();\n if (lifecycleSnapshot.transitioning || lifecycleSnapshot.application !== 'ready') {\n throw new Error(`Editor lifecycle cannot open a scope while application is ${lifecycleSnapshot.application}.`);\n }\n let parentId = input.parentId;\n while (parentId) {\n const parent = scopes.get(parentId);\n if (!parent || parent.closing || parent.failed) {\n throw new Error(`Editor lifecycle scope parent is not open: ${parentId}`);\n }\n parentId = parent.input.parentId;\n }\n };\n const openScope = async (input: PlayableLocalEditorLifecycleScopeInput): Promise<void> => {\n assertScopeCanOpen(input);\n const existing = scopes.get(input.id);\n if (existing) {\n if (existing.input.scope !== input.scope || existing.input.parentId !== input.parentId) {\n throw new Error(`Editor lifecycle scope identity conflicts with the existing scope: ${input.id}`);\n }\n if (existing.closing) throw new Error(`Editor lifecycle scope is closing: ${input.id}`);\n if (existing.failed) {\n await closeScope(input.id);\n return openScope(input);\n }\n return existing.ready;\n }\n const record: LifecycleScopeRecord = {\n input: Object.freeze({ ...input }),\n disposers: pendingScopeResources.get(input.id) ?? new Set(),\n ready: Promise.resolve(),\n closing: null,\n failed: false,\n backingOpened: false,\n lifecycleOpened: false,\n closeRequested: false,\n closeEventRoute: null,\n };\n pendingScopeResources.delete(input.id);\n scopes.set(input.id, record);\n record.ready = (async () => {\n if (input.parentId) {\n const parent = scopes.get(input.parentId);\n if (!parent) throw new Error(`Editor lifecycle scope parent is not open: ${input.parentId}`);\n await parent.ready;\n assertScopeCanOpen(input);\n }\n if (record.closeRequested) return;\n // A backing host may retain a partially-started scope when its rollback\n // cleanup fails. Reserve that ownership before awaiting so closeScope can\n // retry cleanup even when openScope rejects.\n record.backingOpened = options.scopeHost !== undefined;\n await options.scopeHost?.openScope(input);\n if (record.closeRequested) return;\n coordinator.openScope(input);\n record.lifecycleOpened = true;\n })();\n try {\n await record.ready;\n } catch (error) {\n let cleanupError: unknown;\n try { await closeScope(input.id); } catch (caught) { cleanupError = caught; }\n if (cleanupError) {\n const combined = new Error(`Editor lifecycle scope open and cleanup failed: ${input.id}`) as Error & { errors: unknown[] };\n combined.errors = [error, cleanupError];\n throw combined;\n }\n throw error;\n }\n };\n const addScopeResource = (scopeId: string, disposer: () => void | Promise<void>): (() => void) => {\n const record = scopes.get(scopeId);\n if (record?.closing || record?.failed) throw new Error(`Editor lifecycle scope is not open: ${scopeId}`);\n if (!record && scopeId !== PLAYABLE_LOCAL_EDITOR_APPLICATION_SCOPE_ID) {\n throw new Error(`Editor lifecycle scope is not open: ${scopeId}`);\n }\n const resources = record?.disposers ?? pendingScopeResources.get(scopeId) ?? new Set();\n if (!record) pendingScopeResources.set(scopeId, resources);\n resources.add(disposer);\n let active = true;\n return () => {\n if (!active) return;\n active = false;\n resources.delete(disposer);\n if (!record && resources.size === 0) pendingScopeResources.delete(scopeId);\n };\n };\n const closeScope = async (scopeId: string): Promise<void> => {\n const record = scopes.get(scopeId);\n if (!record) {\n const pendingResources = pendingScopeResources.get(scopeId);\n if (!pendingResources) return;\n for (const disposer of [...pendingResources].reverse()) {\n await disposer();\n pendingResources.delete(disposer);\n }\n pendingScopeResources.delete(scopeId);\n return;\n }\n if (record.closing) return record.closing;\n record.closeEventRoute ??= options.eventPublisher?.captureRoute({\n scope: record.input.scope,\n scopeId,\n }) ?? null;\n record.closeRequested = true;\n let backingReservationError: unknown;\n if (record.backingOpened) {\n try { options.scopeHost?.reserveScopeClose(scopeId); }\n catch (error) { backingReservationError = error; }\n }\n record.closing = (async () => {\n const errors: unknown[] = [];\n try { await record.ready; }\n catch { /* The open caller owns and reports setup failures. */ }\n if (backingReservationError) errors.push(backingReservationError);\n if (errors.length === 0) {\n const children = [...scopes.values()]\n .filter(candidate => candidate.input.parentId === scopeId)\n .reverse();\n for (const child of children) {\n try { await closeScope(child.input.id); }\n catch (error) {\n errors.push(error);\n break;\n }\n }\n }\n const remainingChildren = [...scopes.values()].filter(candidate => candidate.input.parentId === scopeId);\n if (errors.length === 0 && remainingChildren.length > 0) {\n errors.push(new Error(`Editor lifecycle scope still has open children: ${scopeId}`));\n }\n if (errors.length === 0 && record.backingOpened) {\n try {\n await options.scopeHost?.closeScope(scopeId);\n record.backingOpened = false;\n } catch (error) { errors.push(error); }\n }\n if (errors.length === 0 && remainingChildren.length === 0) {\n for (const disposer of [...record.disposers].reverse()) {\n try {\n await disposer();\n record.disposers.delete(disposer);\n }\n catch (error) {\n // Preserve dependency order: untouched earlier resources stay owned\n // until the failed later resource can be released on a retry.\n errors.push(error);\n break;\n }\n }\n }\n if (errors.length === 0 && record.lifecycleOpened) {\n try {\n coordinator.closeScope(scopeId, record.closeEventRoute ?? undefined);\n record.lifecycleOpened = false;\n } catch (error) { errors.push(error); }\n }\n if (errors.length > 0) {\n record.failed = true;\n coordinator.failScope(scopeId);\n const error = new Error(`Editor lifecycle scope cleanup failed: ${scopeId}`) as Error & { errors: unknown[] };\n error.errors = errors;\n throw error;\n }\n scopes.delete(scopeId);\n })().finally(() => {\n if (scopes.get(scopeId) === record) record.closing = null;\n });\n return record.closing;\n };\n let assetLoadingCount = 0;\n let assetLoadingOverlayOwned = false;\n let assetLoadingOverlayWaiting = false;\n let assetLoadingOverlayShownAt = 0;\n let preparationEpoch = 0;\n let lifecycleOverlayOwner: number | null = null;\n let pendingLifecycleOverlay: {\n epoch: number;\n content: PlayableLocalEditorLoadingOverlayContent;\n } | null = null;\n let pendingDocumentDirty: boolean | undefined;\n let documentSynchronization: Promise<void> | null = null;\n\n const readLifecycleRevision = (): number => coordinator.getSnapshot().revision;\n\n const ensureApplicationAndProject = async (\n context?: PlayableLocalEditorLifecycleOperationContext,\n ): Promise<void> => {\n let current = coordinator.getSnapshot();\n if (current.transitioning) throw new Error('Editor lifecycle transition already in progress.');\n if (current.application === 'created') {\n await coordinator.transition({ type: 'application.start', ...context });\n current = coordinator.getSnapshot();\n }\n if (current.application !== 'ready') {\n throw new Error(`Editor application is not ready: ${current.application}.`);\n }\n await openScope({ id: PLAYABLE_LOCAL_EDITOR_APPLICATION_SCOPE_ID, scope: 'application' });\n options.operations.attachApplicationAuthority?.();\n if (current.project === 'closed') {\n await coordinator.transition({ type: 'project.open', ...context });\n }\n await openScope({\n id: PLAYABLE_LOCAL_EDITOR_PROJECT_SCOPE_ID,\n scope: 'project',\n parentId: PLAYABLE_LOCAL_EDITOR_APPLICATION_SCOPE_ID,\n });\n };\n\n const ensureEditingState = async (\n load: (() => Promise<void>) | undefined = options.operations.loadDocument,\n enter: (() => Promise<void>) | undefined = options.operations.enterWorld,\n context?: PlayableLocalEditorLifecycleOperationContext,\n ): Promise<void> => {\n await ensureApplicationAndProject(context);\n let current = coordinator.getSnapshot();\n const workingDocumentAvailable = readUnsavedChangesState().hasWorkingDocument;\n await openScope({\n id: PLAYABLE_LOCAL_EDITOR_MAIN_DOCUMENT_SCOPE_ID,\n scope: 'document',\n parentId: PLAYABLE_LOCAL_EDITOR_PROJECT_SCOPE_ID,\n });\n await openScope({\n id: PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID,\n scope: 'session',\n parentId: PLAYABLE_LOCAL_EDITOR_MAIN_DOCUMENT_SCOPE_ID,\n });\n if (current.document === 'unloaded' || (current.document === 'failed' && !workingDocumentAvailable)) {\n try {\n await coordinator.transition({ type: 'document.load', ...context, ...(load ? { operation: load } : {}) });\n options.operations.attachSessionAuthority?.();\n current = coordinator.getSnapshot();\n } catch (error) {\n await closeScope(PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID);\n await closeScope(PLAYABLE_LOCAL_EDITOR_MAIN_DOCUMENT_SCOPE_ID);\n throw error;\n }\n } else {\n options.operations.attachSessionAuthority?.();\n }\n try {\n await openScope({\n id: PLAYABLE_LOCAL_EDITOR_MAIN_PREVIEW_SCOPE_ID,\n scope: 'preview',\n parentId: PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID,\n });\n } catch (error) {\n // A failed Preview rollback remains a child of Session and owns the\n // loaded document graph. Do not retry that same cleanup indirectly by\n // tearing down its ancestors in the same enter attempt.\n if (scopes.has(PLAYABLE_LOCAL_EDITOR_MAIN_PREVIEW_SCOPE_ID)) throw error;\n await closeScope(PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID);\n await closeScope(PLAYABLE_LOCAL_EDITOR_MAIN_DOCUMENT_SCOPE_ID);\n throw error;\n }\n if (current.mode === 'failed') {\n try {\n if (current.preview === 'failed') await disposePreview(context);\n await coordinator.transition({ type: 'mode.recoverEdit', ...context, ...(enter ? { operation: enter } : {}) });\n } catch (error) {\n await closeScope(PLAYABLE_LOCAL_EDITOR_MAIN_PREVIEW_SCOPE_ID);\n await closeScope(PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID);\n throw error;\n }\n current = coordinator.getSnapshot();\n }\n if (current.mode === 'play') {\n try {\n await coordinator.transition({ type: 'mode.enterEdit', ...context, ...(enter ? { operation: enter } : {}) });\n } catch (error) {\n await closeScope(PLAYABLE_LOCAL_EDITOR_MAIN_PREVIEW_SCOPE_ID);\n await closeScope(PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID);\n throw error;\n }\n current = coordinator.getSnapshot();\n }\n if (current.mode !== 'edit') throw new Error(`Editor mode is not ready: ${current.mode}.`);\n if (current.preview === 'absent') {\n await coordinator.transition({ type: 'preview.create', ...context });\n current = coordinator.getSnapshot();\n }\n if (current.document === 'failed') {\n await coordinator.transition({\n type: readUnsavedChangesState().dirty ? 'document.markDirty' : 'document.markClean',\n ...context,\n });\n }\n };\n\n const disposePreview = async (\n context?: PlayableLocalEditorLifecycleOperationContext,\n ): Promise<void> => {\n const current = coordinator.getSnapshot();\n if (current.preview === 'active' || current.preview === 'failed') {\n await coordinator.transition({\n type: 'preview.dispose',\n ...context,\n operation: () => closeScope(PLAYABLE_LOCAL_EDITOR_MAIN_PREVIEW_SCOPE_ID),\n });\n return;\n }\n await closeScope(PLAYABLE_LOCAL_EDITOR_MAIN_PREVIEW_SCOPE_ID);\n };\n\n const closeEditingScopes = async (): Promise<void> => {\n await closeScope(PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID);\n await closeScope(PLAYABLE_LOCAL_EDITOR_MAIN_DOCUMENT_SCOPE_ID);\n };\n\n const runGameAfterReleasingPluginScopes = async (reason: 'save' | 'discard'): Promise<void> => {\n // Replacement runtimes use the same stable Plugin scope ids. Release the\n // complete old scope tree before restart can mount the replacement editor.\n await closeScope(PLAYABLE_LOCAL_EDITOR_APPLICATION_SCOPE_ID);\n await options.operations.runGame(reason);\n };\n\n const waitForLifecycleIdle = async (): Promise<void> => {\n if (!coordinator.getSnapshot().transitioning) return;\n await new Promise<void>(resolve => {\n const dispose = coordinator.subscribe(snapshot => {\n if (snapshot.transitioning) return;\n dispose();\n resolve();\n });\n if (!coordinator.getSnapshot().transitioning) {\n dispose();\n resolve();\n }\n });\n };\n\n const reconcileDocumentState = async (dirty: boolean): Promise<void> => {\n await waitForLifecycleIdle();\n const current = coordinator.getSnapshot();\n if (current.project !== 'open' || current.mode !== 'edit') return;\n if (dirty && current.document !== 'dirty') {\n if (current.document === 'clean' || current.document === 'committing') {\n await coordinator.transition({ type: 'document.markDirty' });\n }\n return;\n }\n if (!dirty && current.document === 'dirty') {\n await coordinator.transition({ type: 'document.markClean' });\n }\n };\n\n const drainDocumentSynchronization = async (): Promise<void> => {\n while (pendingDocumentDirty !== undefined) {\n const dirty = pendingDocumentDirty;\n pendingDocumentDirty = undefined;\n try {\n await reconcileDocumentState(dirty);\n } catch (error) {\n if (!coordinator.getSnapshot().transitioning) throw error;\n pendingDocumentDirty = dirty;\n }\n }\n };\n\n const synchronizeDocumentState = (dirty: boolean): Promise<void> => {\n pendingDocumentDirty = dirty;\n if (!documentSynchronization) {\n documentSynchronization = drainDocumentSynchronization().finally(() => {\n documentSynchronization = null;\n if (pendingDocumentDirty !== undefined) void synchronizeDocumentState(pendingDocumentDirty);\n });\n }\n return documentSynchronization;\n };\n\n const waitForDocumentSynchronization = async (): Promise<void> => {\n if (documentSynchronization) await documentSynchronization;\n };\n\n const notifySaveFailed = async (\n operation: PlayableLocalEditorDataSafetyOperation,\n error?: unknown,\n ): Promise<void> => {\n const notify = options.interactions?.notifySaveFailed;\n if (!notify) return;\n let state: PlayableLocalEditorSaveFailureState | null | undefined;\n try {\n state = options.harness.getSaveFailureState?.();\n } catch (stateError) {\n console.error('[PlayableLocalEditorLifecycle] save failure state unavailable', stateError);\n }\n const input: PlayableLocalEditorSaveFailureInput = {\n operation,\n status: state?.status ?? (error instanceof Error ? error.message : undefined),\n details: state?.details,\n error: error ?? state?.error,\n };\n try {\n await notify(input);\n } catch (notifyError) {\n console.error('[PlayableLocalEditorLifecycle] save failure notification failed', notifyError);\n }\n };\n\n const prepareDocumentSave = async (\n save: () => Promise<void>,\n context?: PlayableLocalEditorLifecycleOperationContext,\n ): Promise<void> => {\n await waitForDocumentSynchronization();\n await ensureEditingState(undefined, undefined, context);\n await synchronizeDocumentState(readUnsavedChangesState().dirty);\n await coordinator.transition({ type: 'document.prepareSave', ...context, operation: save });\n };\n\n const commitDocumentSave = async (\n commit?: () => Promise<void>,\n context?: PlayableLocalEditorLifecycleOperationContext,\n ): Promise<void> => {\n await coordinator.transition({ type: 'document.commit', ...context, ...(commit ? { operation: commit } : {}) });\n };\n\n const saveScene = async (\n operation: PlayableLocalEditorDataSafetyOperation = 'save-scene',\n context?: PlayableLocalEditorLifecycleOperationContext,\n ): Promise<boolean> => {\n let saved = false;\n try {\n await prepareDocumentSave(async () => {\n saved = await options.harness.saveScene();\n if (!saved) throw new PlayableLocalEditorSaveRejectedError();\n }, context);\n await commitDocumentSave(undefined, context);\n return true;\n } catch (error) {\n if (error instanceof PlayableLocalEditorSaveRejectedError) {\n await notifySaveFailed(operation);\n return false;\n }\n await notifySaveFailed(operation, error);\n throw error;\n }\n };\n\n const readUnsavedChangesState = (): PlayableLocalEditorUnsavedChangesState => (\n options.harness.getUnsavedChangesState?.() ?? {\n dirty: false,\n hasWorkingDocument: false,\n }\n );\n\n const confirmDiscardIfNeeded = async (\n operation: PlayableLocalEditorDataSafetyOperation,\n ): Promise<boolean> => {\n const unsavedChanges = readUnsavedChangesState();\n if (!unsavedChanges.dirty || !unsavedChanges.hasWorkingDocument) return true;\n try {\n return await options.interactions?.confirmDiscardUnsavedChanges?.({\n operation,\n unsavedChanges,\n }) !== false;\n } catch (error) {\n console.error('[PlayableLocalEditorLifecycle] discard confirmation failed', error);\n return false;\n }\n };\n\n const beginPreparation = (): { epoch: number; revision: number } => {\n pendingLifecycleOverlay = null;\n if (lifecycleOverlayOwner !== null) {\n lifecycleOverlayOwner = null;\n const ownsOverlay = options.loadingOverlay.isOwned?.() !== false;\n if (ownsOverlay && assetLoadingCount > 0 && assetLoadingOverlayWaiting) {\n assetLoadingOverlayWaiting = false;\n assetLoadingOverlayOwned = true;\n assetLoadingOverlayShownAt = now();\n options.loadingOverlay.show(options.content.assetImport);\n } else if (ownsOverlay) {\n options.loadingOverlay.hide();\n }\n }\n return { epoch: ++preparationEpoch, revision: readLifecycleRevision() };\n };\n\n const showLifecycleOverlay = (\n preparation: { epoch: number },\n content: PlayableLocalEditorLoadingOverlayContent,\n ): void => {\n if (options.loadingOverlay.isVisible()) {\n if (options.loadingOverlay.isOwned?.() !== false) {\n pendingLifecycleOverlay = { epoch: preparation.epoch, content };\n }\n return;\n }\n options.loadingOverlay.show(content);\n lifecycleOverlayOwner = preparation.epoch;\n };\n\n const hideLifecycleOverlay = (epoch: number): void => {\n if (pendingLifecycleOverlay?.epoch === epoch) pendingLifecycleOverlay = null;\n if (lifecycleOverlayOwner !== epoch) return;\n lifecycleOverlayOwner = null;\n if (options.loadingOverlay.isOwned?.() === false) return;\n if (assetLoadingCount > 0 && assetLoadingOverlayWaiting) {\n assetLoadingOverlayWaiting = false;\n assetLoadingOverlayOwned = true;\n assetLoadingOverlayShownAt = now();\n options.loadingOverlay.show(options.content.assetImport);\n return;\n }\n options.loadingOverlay.hide();\n };\n\n const isPreparationCurrent = (preparation: { epoch: number; revision: number }): boolean => (\n preparation.epoch === preparationEpoch\n && preparation.revision === readLifecycleRevision()\n );\n\n const createPreparedRun = (\n preparation: { epoch: number; revision: number },\n run: () => Promise<void>,\n ): PlayableLocalEditorPreparedRun => {\n let consumed = false;\n return {\n accepted: true,\n async run() {\n if (consumed) throw new Error('Prepared editor lifecycle operation was already consumed.');\n if (!isPreparationCurrent(preparation)) {\n consumed = true;\n hideLifecycleOverlay(preparation.epoch);\n throw new Error('Prepared editor lifecycle operation is stale.');\n }\n consumed = true;\n await run();\n },\n };\n };\n\n const prepareSaveAndRunGame = async (\n context?: PlayableLocalEditorLifecycleOperationContext,\n ): Promise<PlayableLocalEditorPreparedRun> => {\n const preparation = beginPreparation();\n showLifecycleOverlay(preparation, options.content.saveAndRunGame);\n try {\n await waitForPaint();\n const saved = await saveScene('save-and-run-game', context);\n if (!saved || preparation.epoch !== preparationEpoch) {\n hideLifecycleOverlay(preparation.epoch);\n return { accepted: false };\n }\n preparation.revision = readLifecycleRevision();\n return createPreparedRun(preparation, async () => {\n try {\n await disposePreview(context);\n await coordinator.transition({\n type: 'mode.exitEdit',\n ...context,\n operation: () => runGameAfterReleasingPluginScopes('save'),\n });\n await closeEditingScopes();\n } finally {\n hideLifecycleOverlay(preparation.epoch);\n }\n });\n } catch (error) {\n hideLifecycleOverlay(preparation.epoch);\n throw error;\n }\n };\n\n const prepareDiscardAndRunGame = async (\n context?: PlayableLocalEditorLifecycleOperationContext,\n ): Promise<PlayableLocalEditorPreparedRun> => {\n await waitForDocumentSynchronization();\n await ensureEditingState(undefined, undefined, context);\n await synchronizeDocumentState(readUnsavedChangesState().dirty);\n const preparation = beginPreparation();\n if (!await confirmDiscardIfNeeded('discard-and-run-game')\n || !isPreparationCurrent(preparation)) return { accepted: false };\n showLifecycleOverlay(preparation, options.content.discardAndRunGame);\n try {\n await waitForPaint();\n if (!isPreparationCurrent(preparation)) {\n hideLifecycleOverlay(preparation.epoch);\n return { accepted: false };\n }\n return createPreparedRun(preparation, async () => {\n try {\n await coordinator.transition({\n type: 'document.discard',\n ...context,\n ...(options.operations?.restoreDocument\n ? { operation: options.operations.restoreDocument }\n : {}),\n });\n await disposePreview(context);\n await coordinator.transition({\n type: 'mode.exitEdit',\n ...context,\n operation: () => runGameAfterReleasingPluginScopes('discard'),\n });\n await closeEditingScopes();\n } finally {\n hideLifecycleOverlay(preparation.epoch);\n }\n });\n } catch (error) {\n hideLifecycleOverlay(preparation.epoch);\n throw error;\n }\n };\n\n return {\n lifecycle,\n registerParticipant: coordinator.registerParticipant,\n async enterEditor(context) {\n const preparation = beginPreparation();\n showLifecycleOverlay(preparation, {\n ...options.content.enter,\n presentation: 'editor-shell',\n });\n let entered = false;\n try {\n await waitForPaint();\n const before = coordinator.getSnapshot();\n const load = options.operations.loadDocument;\n const enter = options.operations.enterWorld\n ?? options.harness.enterEditor.bind(options.harness);\n await ensureEditingState(load, enter, context);\n entered = before.mode !== 'edit';\n if (renderAfterEnter) options.harness.render();\n await waitForPaint();\n } finally {\n hideLifecycleOverlay(preparation.epoch);\n if (entered) options.harness.notifyViewportRevealed?.(viewportRevealReason);\n }\n },\n saveScene,\n synchronizeDocumentState,\n prepareDocumentSave,\n commitDocumentSave,\n async runCommittedDocument(context) {\n await ensureEditingState(undefined, undefined, context);\n await synchronizeDocumentState(readUnsavedChangesState().dirty);\n const current = coordinator.getSnapshot();\n if (current.document !== 'clean') {\n throw new Error(`Cannot run an uncommitted editor document: ${current.document}.`);\n }\n await disposePreview(context);\n await coordinator.transition({\n type: 'mode.exitEdit',\n ...context,\n operation: () => runGameAfterReleasingPluginScopes('save'),\n });\n await closeEditingScopes();\n },\n prepareSaveAndRunGame,\n prepareDiscardAndRunGame,\n async saveAndRunGame(context) {\n const prepared = await prepareSaveAndRunGame(context);\n if (!prepared.accepted) return false;\n await prepared.run();\n return true;\n },\n async discardAndRunGame(context) {\n const prepared = await prepareDiscardAndRunGame(context);\n if (prepared.accepted) {\n await prepared.run();\n }\n return prepared.accepted;\n },\n openScope,\n addScopeResource,\n closeScope,\n async dispose(context) {\n if (coordinator.getSnapshot().application === 'disposed') return;\n await coordinator.transition({\n type: 'application.dispose',\n ...context,\n operation: () => closeScope(PLAYABLE_LOCAL_EDITOR_APPLICATION_SCOPE_ID),\n });\n },\n async runWithAssetLoadingOverlay(operation) {\n const shouldShowAssetLoading = !options.loadingOverlay.isVisible() && !assetLoadingOverlayOwned;\n assetLoadingCount += 1;\n if (shouldShowAssetLoading) {\n assetLoadingOverlayOwned = true;\n assetLoadingOverlayShownAt = now();\n options.loadingOverlay.show(options.content.assetImport);\n await waitForPaint();\n } else if (options.loadingOverlay.isVisible() && !assetLoadingOverlayOwned) {\n assetLoadingOverlayWaiting = true;\n }\n\n try {\n return await operation();\n } finally {\n assetLoadingCount = Math.max(0, assetLoadingCount - 1);\n if (assetLoadingCount === 0 && assetLoadingOverlayOwned) {\n const remaining = minAssetLoadingOverlayMs - (now() - assetLoadingOverlayShownAt);\n if (remaining > 0) await waitForMilliseconds(remaining);\n if (assetLoadingCount === 0 && assetLoadingOverlayOwned) {\n assetLoadingOverlayOwned = false;\n if (options.loadingOverlay.isOwned?.() === false) {\n pendingLifecycleOverlay = null;\n } else if (pendingLifecycleOverlay) {\n const pending = pendingLifecycleOverlay;\n pendingLifecycleOverlay = null;\n lifecycleOverlayOwner = pending.epoch;\n options.loadingOverlay.show(pending.content);\n } else {\n options.loadingOverlay.hide();\n }\n }\n }\n if (assetLoadingCount === 0) assetLoadingOverlayWaiting = false;\n }\n },\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"loading-overlay.js","sourceRoot":"","sources":["../../src/local-harness/loading-overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loading-overlay.js","sourceRoot":"","sources":["../../src/local-harness/loading-overlay.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n PlayableLocalEditorLoadingOverlayContent,\n PlayableLocalEditorLoadingOverlayController,\n} from './types';\n\nexport function createPlayableLocalEditorLoadingOverlay(\n root: HTMLElement,\n): PlayableLocalEditorLoadingOverlayController {\n const shellFadeMilliseconds = 250;\n const ownerDocument = root.ownerDocument ?? document;\n const host = ownerDocument.body ?? root;\n const overlay = ownerDocument.createElement('div');\n overlay.style.position = 'fixed';\n overlay.style.inset = '0';\n overlay.style.zIndex = '2147483000';\n overlay.style.display = 'none';\n overlay.style.alignItems = 'center';\n overlay.style.justifyContent = 'center';\n overlay.style.background = 'rgba(7, 11, 20, 0.72)';\n overlay.style.backdropFilter = 'blur(3px)';\n overlay.style.color = '#f8fbff';\n overlay.style.fontFamily = 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif';\n overlay.style.pointerEvents = 'auto';\n overlay.style.opacity = '1';\n overlay.setAttribute('role', 'status');\n overlay.setAttribute('aria-live', 'polite');\n\n const panel = ownerDocument.createElement('div');\n panel.style.minWidth = '260px';\n panel.style.maxWidth = 'min(420px, calc(100vw - 48px))';\n panel.style.padding = '24px 28px';\n panel.style.borderRadius = '18px';\n panel.style.background = 'rgba(15, 23, 42, 0.92)';\n panel.style.boxShadow = '0 18px 60px rgba(0, 0, 0, 0.38)';\n panel.style.border = '1px solid rgba(148, 163, 184, 0.26)';\n panel.style.textAlign = 'center';\n\n const spinner = ownerDocument.createElement('div');\n spinner.style.width = '38px';\n spinner.style.height = '38px';\n spinner.style.margin = '0 auto 16px';\n spinner.style.borderRadius = '999px';\n spinner.style.border = '4px solid rgba(148, 163, 184, 0.28)';\n spinner.style.borderTopColor = '#60a5fa';\n spinner.style.animation = 'playable-local-editor-loading-spin 0.82s linear infinite';\n\n const title = ownerDocument.createElement('div');\n title.style.fontSize = '18px';\n title.style.fontWeight = '700';\n title.style.letterSpacing = '0.02em';\n\n const desc = ownerDocument.createElement('div');\n desc.style.marginTop = '8px';\n desc.style.fontSize = '13px';\n desc.style.lineHeight = '1.5';\n desc.style.color = 'rgba(226, 232, 240, 0.82)';\n\n const style = ownerDocument.createElement('style');\n style.textContent = '@keyframes playable-local-editor-loading-spin { to { transform: rotate(360deg); } }';\n\n panel.append(spinner, title, desc);\n overlay.append(panel);\n\n let attached = false;\n let visible = false;\n let disposed = false;\n let hideGeneration = 0;\n let hideTimer: ReturnType<typeof setTimeout> | null = null;\n let presentation: NonNullable<PlayableLocalEditorLoadingOverlayContent['presentation']> = 'panel';\n\n const cancelPendingHide = (): void => {\n hideGeneration += 1;\n if (hideTimer !== null) {\n globalThis.clearTimeout(hideTimer);\n hideTimer = null;\n }\n };\n\n const finishHide = (generation: number): void => {\n if (generation !== hideGeneration || visible || disposed) return;\n hideTimer = null;\n overlay.style.display = 'none';\n overlay.style.transition = 'none';\n overlay.style.opacity = '1';\n };\n\n const prefersReducedMotion = (): boolean => (\n ownerDocument.defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)').matches === true\n );\n\n const applyPresentation = (\n nextPresentation: NonNullable<PlayableLocalEditorLoadingOverlayContent['presentation']>,\n ): void => {\n presentation = nextPresentation;\n const isShell = presentation === 'editor-shell';\n overlay.style.background = isShell ? '#0e121a' : 'rgba(7, 11, 20, 0.72)';\n overlay.style.backdropFilter = isShell ? 'none' : 'blur(3px)';\n panel.style.background = isShell ? 'transparent' : 'rgba(15, 23, 42, 0.92)';\n panel.style.boxShadow = isShell ? 'none' : '0 18px 60px rgba(0, 0, 0, 0.38)';\n panel.style.border = isShell ? '1px solid transparent' : '1px solid rgba(148, 163, 184, 0.26)';\n panel.style.borderRadius = isShell ? '0' : '18px';\n };\n\n const ensureAttached = (): void => {\n if (attached) return;\n host.append(style, overlay);\n attached = true;\n };\n\n const setContent = (content: PlayableLocalEditorLoadingOverlayContent): void => {\n title.textContent = content.title;\n desc.textContent = content.description;\n };\n\n return {\n show(content) {\n if (disposed) return;\n cancelPendingHide();\n ensureAttached();\n setContent(content);\n applyPresentation(content.presentation ?? 'panel');\n overlay.style.transition = 'none';\n overlay.style.opacity = '1';\n overlay.style.display = 'flex';\n visible = true;\n },\n hide() {\n if (!visible) return;\n visible = false;\n cancelPendingHide();\n const generation = hideGeneration;\n if (presentation !== 'editor-shell' || prefersReducedMotion()) {\n finishHide(generation);\n return;\n }\n overlay.style.transition = `opacity ${shellFadeMilliseconds}ms ease`;\n overlay.style.opacity = '0';\n hideTimer = globalThis.setTimeout(() => finishHide(generation), shellFadeMilliseconds);\n },\n isVisible() {\n return visible;\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n visible = false;\n cancelPendingHide();\n overlay.remove();\n style.remove();\n attached = false;\n },\n };\n}\n"]}
@@ -3,6 +3,7 @@ import type { PlayableLocalEditorHostBridgeContext, PlayableLocalEditorHostHarne
3
3
  export interface PlayableProjectAssetCommandAsset {
4
4
  guid?: string;
5
5
  assetId: string;
6
+ contentHash?: string;
6
7
  external?: PlayablePlatformAssetExternal;
7
8
  }
8
9
  export interface PlayableProjectAssetCommandReloadResult {
@@ -10,6 +11,18 @@ export interface PlayableProjectAssetCommandReloadResult {
10
11
  assetCount: number;
11
12
  status: string;
12
13
  }
14
+ export interface PlayableProjectAssetCommandUpdateRefreshResult extends PlayableProjectAssetCommandReloadResult {
15
+ assetId: string;
16
+ reconciledBindingCount: number;
17
+ warnings: Array<{
18
+ code: string;
19
+ gameObjectId?: string;
20
+ slotId?: string;
21
+ materialAssetId?: string;
22
+ candidateSlotIds?: string[];
23
+ }>;
24
+ error?: string;
25
+ }
13
26
  export interface PlayableProjectAssetCommandCreateResult {
14
27
  ok: boolean;
15
28
  assetId: string;
@@ -20,6 +33,10 @@ export interface PlayableProjectAssetCommandCreateResult {
20
33
  }
21
34
  export interface PlayableProjectAssetCommandHarness extends PlayableLocalEditorHostHarness {
22
35
  reloadAssets(): Promise<PlayableProjectAssetCommandReloadResult>;
36
+ refreshUpdatedAsset(input: {
37
+ assetId: string;
38
+ expectedContentHash: string;
39
+ }): Promise<PlayableProjectAssetCommandUpdateRefreshResult>;
23
40
  createAssetFromAssetId(assetId: string, options?: {
24
41
  placement?: unknown;
25
42
  }): PlayableProjectAssetCommandCreateResult;
@@ -27,6 +44,7 @@ export interface PlayableProjectAssetCommandHarness extends PlayableLocalEditorH
27
44
  export interface PlayableProjectAssetCommandHandlerOptions {
28
45
  normalizePayload?: (payload: Record<string, unknown>) => Record<string, unknown>;
29
46
  registerAssetIfNeeded?: (payload: Record<string, unknown>) => PlayableProjectAssetCommandAsset | Promise<PlayableProjectAssetCommandAsset>;
47
+ registerAsset?: (payload: Record<string, unknown>) => PlayableProjectAssetCommandAsset | Promise<PlayableProjectAssetCommandAsset>;
30
48
  resolveAssetId?: (payload: Record<string, unknown>) => string | Promise<string>;
31
49
  placement?: PlayablePlatformAssetPlacementOptions;
32
50
  readPlacement?: (payload: Record<string, unknown>) => unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"project-asset-commands.d.ts","sourceRoot":"","sources":["../../src/local-harness/project-asset-commands.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,6BAA6B,EAC7B,qCAAqC,EACtC,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EACV,oCAAoC,EACpC,8BAA8B,EAC/B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gCAAgC;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,6BAA6B,CAAC;CAC1C;AAED,MAAM,WAAW,uCAAuC;IACtD,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uCAAuC;IACtD,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kCAAmC,SAAQ,8BAA8B;IACxF,YAAY,IAAI,OAAO,CAAC,uCAAuC,CAAC,CAAC;IACjE,sBAAsB,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAChC,uCAAuC,CAAC;CAC5C;AAED,MAAM,WAAW,yCAAyC;IACxD,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjF,qBAAqB,CAAC,EAAE,CACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,gCAAgC,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAClF,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChF,SAAS,CAAC,EAAE,qCAAqC,CAAC;IAClD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IAC9D,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,kCAAkC,CAC5C,QAAQ,SAAS,kCAAkC,GAAG,kCAAkC,IACtF,CAAC,OAAO,EAAE,oCAAoC,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/E,wBAAgB,wCAAwC,CACtD,QAAQ,SAAS,kCAAkC,GAAG,kCAAkC,EAExF,OAAO,GAAE,yCAA8C,GACtD,kCAAkC,CAAC,QAAQ,CAAC,CAe9C"}
1
+ {"version":3,"file":"project-asset-commands.d.ts","sourceRoot":"","sources":["../../src/local-harness/project-asset-commands.ts"],"names":[],"mappings":"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"}