@fps-games/editor 0.2.1-beta.3 → 0.2.1-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 (514) hide show
  1. package/dist/build-info.json +44 -44
  2. package/dist/editor-commands/capabilities/assets.d.ts +8 -0
  3. package/dist/editor-commands/capabilities/assets.d.ts.map +1 -0
  4. package/dist/{agent-bridge → editor-commands}/capabilities/assets.js +41 -41
  5. package/dist/editor-commands/capabilities/assets.js.map +1 -0
  6. package/dist/editor-commands/capabilities/editor-state.d.ts +5 -0
  7. package/dist/editor-commands/capabilities/editor-state.d.ts.map +1 -0
  8. package/dist/{agent-bridge → editor-commands}/capabilities/editor-state.js +22 -22
  9. package/dist/editor-commands/capabilities/editor-state.js.map +1 -0
  10. package/dist/editor-commands/capabilities/hierarchy.d.ts +4 -0
  11. package/dist/editor-commands/capabilities/hierarchy.d.ts.map +1 -0
  12. package/dist/{agent-bridge → editor-commands}/capabilities/hierarchy.js +5 -5
  13. package/dist/editor-commands/capabilities/hierarchy.js.map +1 -0
  14. package/dist/editor-commands/capabilities/host-lifecycle.d.ts +11 -0
  15. package/dist/editor-commands/capabilities/host-lifecycle.d.ts.map +1 -0
  16. package/dist/editor-commands/capabilities/host-lifecycle.js +149 -0
  17. package/dist/editor-commands/capabilities/host-lifecycle.js.map +1 -0
  18. package/dist/editor-commands/capabilities/prefabs.d.ts +5 -0
  19. package/dist/editor-commands/capabilities/prefabs.d.ts.map +1 -0
  20. package/dist/{agent-bridge → editor-commands}/capabilities/prefabs.js +93 -93
  21. package/dist/editor-commands/capabilities/prefabs.js.map +1 -0
  22. package/dist/editor-commands/capabilities/scene-objects.d.ts +8 -0
  23. package/dist/editor-commands/capabilities/scene-objects.d.ts.map +1 -0
  24. package/dist/editor-commands/capabilities/scene-objects.js +480 -0
  25. package/dist/editor-commands/capabilities/scene-objects.js.map +1 -0
  26. package/dist/editor-commands/capabilities/selection.d.ts +5 -0
  27. package/dist/editor-commands/capabilities/selection.d.ts.map +1 -0
  28. package/dist/editor-commands/capabilities/selection.js +60 -0
  29. package/dist/editor-commands/capabilities/selection.js.map +1 -0
  30. package/dist/editor-commands/capabilities/shadows.d.ts +5 -0
  31. package/dist/editor-commands/capabilities/shadows.d.ts.map +1 -0
  32. package/dist/{agent-bridge → editor-commands}/capabilities/shadows.js +74 -74
  33. package/dist/editor-commands/capabilities/shadows.js.map +1 -0
  34. package/dist/editor-commands/capabilities/transform.d.ts +5 -0
  35. package/dist/editor-commands/capabilities/transform.d.ts.map +1 -0
  36. package/dist/editor-commands/capabilities/transform.js +164 -0
  37. package/dist/editor-commands/capabilities/transform.js.map +1 -0
  38. package/dist/editor-commands/capabilities/ui-regions.d.ts +4 -0
  39. package/dist/editor-commands/capabilities/ui-regions.d.ts.map +1 -0
  40. package/dist/{agent-bridge → editor-commands}/capabilities/ui-regions.js +55 -57
  41. package/dist/editor-commands/capabilities/ui-regions.js.map +1 -0
  42. package/dist/editor-commands/capabilities/viewport.d.ts +5 -0
  43. package/dist/editor-commands/capabilities/viewport.d.ts.map +1 -0
  44. package/dist/{agent-bridge → editor-commands}/capabilities/viewport.js +100 -100
  45. package/dist/editor-commands/capabilities/viewport.js.map +1 -0
  46. package/dist/editor-commands/command-sources.d.ts +7 -0
  47. package/dist/editor-commands/command-sources.d.ts.map +1 -0
  48. package/dist/editor-commands/command-sources.js +34 -0
  49. package/dist/editor-commands/command-sources.js.map +1 -0
  50. package/dist/editor-commands/diagnostics.d.ts +12 -0
  51. package/dist/editor-commands/diagnostics.d.ts.map +1 -0
  52. package/dist/{agent-bridge → editor-commands}/diagnostics.js +4 -4
  53. package/dist/editor-commands/diagnostics.js.map +1 -0
  54. package/dist/{agent-bridge → editor-commands}/index.d.ts +1 -1
  55. package/dist/editor-commands/index.d.ts.map +1 -0
  56. package/dist/{agent-bridge → editor-commands}/index.js +1 -1
  57. package/dist/editor-commands/index.js.map +1 -0
  58. package/dist/editor-commands/register.d.ts +4 -0
  59. package/dist/editor-commands/register.d.ts.map +1 -0
  60. package/dist/{agent-bridge → editor-commands}/register.js +323 -286
  61. package/dist/editor-commands/register.js.map +1 -0
  62. package/dist/{agent-bridge → editor-commands}/shared.d.ts +80 -80
  63. package/dist/editor-commands/shared.d.ts.map +1 -0
  64. package/dist/{agent-bridge → editor-commands}/shared.js +29 -29
  65. package/dist/editor-commands/shared.js.map +1 -0
  66. package/dist/editor-commands/source-types.d.ts +110 -0
  67. package/dist/editor-commands/source-types.d.ts.map +1 -0
  68. package/dist/editor-commands/source-types.js.map +1 -0
  69. package/dist/editor-plugin-commands.d.ts +4 -0
  70. package/dist/editor-plugin-commands.d.ts.map +1 -0
  71. package/dist/editor-plugin-commands.js +18 -0
  72. package/dist/editor-plugin-commands.js.map +1 -0
  73. package/dist/index.d.ts +2 -2
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +1 -1
  76. package/dist/index.js.map +1 -1
  77. package/dist/local-editor-commands.d.ts +2 -0
  78. package/dist/local-editor-commands.d.ts.map +1 -0
  79. package/dist/local-editor-commands.js +2 -0
  80. package/dist/local-editor-commands.js.map +1 -0
  81. package/dist/local-editor-harness.d.ts +35 -21
  82. package/dist/local-editor-harness.d.ts.map +1 -1
  83. package/dist/local-editor-harness.js +1721 -367
  84. package/dist/local-editor-harness.js.map +1 -1
  85. package/dist/local-editor-prefab-stage-transaction.d.ts +2 -1
  86. package/dist/local-editor-prefab-stage-transaction.d.ts.map +1 -1
  87. package/dist/local-editor-prefab-stage-transaction.js +6 -5
  88. package/dist/local-editor-prefab-stage-transaction.js.map +1 -1
  89. package/dist/local-editor-scene-view-interaction-runtime.d.ts.map +1 -1
  90. package/dist/local-editor-scene-view-interaction-runtime.js +2 -5
  91. package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
  92. package/dist/playable-local-editor-entry.d.ts +10 -0
  93. package/dist/playable-local-editor-entry.d.ts.map +1 -1
  94. package/dist/playable-local-editor-entry.js +10 -2
  95. package/dist/playable-local-editor-entry.js.map +1 -1
  96. package/dist/playable-local-editor-host.d.ts +3 -32
  97. package/dist/playable-local-editor-host.d.ts.map +1 -1
  98. package/dist/playable-local-editor-host.js +6 -70
  99. package/dist/playable-local-editor-host.js.map +1 -1
  100. package/dist/playable-product-local-editor.d.ts +1 -2
  101. package/dist/playable-product-local-editor.d.ts.map +1 -1
  102. package/dist/playable-product-local-editor.js +0 -1
  103. package/dist/playable-product-local-editor.js.map +1 -1
  104. package/dist/playable-product-projection-preview.d.ts.map +1 -1
  105. package/dist/playable-product-projection-preview.js +1 -1
  106. package/dist/playable-product-projection-preview.js.map +1 -1
  107. package/dist/playable-product-scene-capabilities.d.ts +0 -2
  108. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  109. package/dist/playable-product-scene-capabilities.js +33 -6
  110. package/dist/playable-product-scene-capabilities.js.map +1 -1
  111. package/dist/playable-runtime-babylon.d.ts +4 -0
  112. package/dist/playable-runtime-babylon.d.ts.map +1 -1
  113. package/dist/playable-runtime-babylon.js +4 -0
  114. package/dist/playable-runtime-babylon.js.map +1 -1
  115. package/dist/playable-sdk.d.ts +1 -1
  116. package/dist/playable-sdk.d.ts.map +1 -1
  117. package/dist/playable-sdk.js.map +1 -1
  118. package/dist/playable-standard-project.d.ts +0 -2
  119. package/dist/playable-standard-project.d.ts.map +1 -1
  120. package/dist/playable-standard-project.js +1 -2
  121. package/dist/playable-standard-project.js.map +1 -1
  122. package/dist/project-service-projection.d.ts +16 -0
  123. package/dist/project-service-projection.d.ts.map +1 -0
  124. package/dist/project-service-projection.js +67 -0
  125. package/dist/project-service-projection.js.map +1 -0
  126. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts +18 -0
  127. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts.map +1 -1
  128. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js +54 -18
  129. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
  130. package/node_modules/@fps-games/babylon-renderer/package.json +9 -9
  131. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +1 -0
  132. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  133. package/node_modules/@fps-games/editor-babylon/dist/projection.js +1 -1
  134. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  135. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -1
  136. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +127 -13
  137. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -1
  138. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts.map +1 -1
  139. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js +66 -1
  140. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
  141. package/node_modules/@fps-games/editor-babylon/package.json +6 -6
  142. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.d.ts +32 -0
  143. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.d.ts.map +1 -0
  144. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.js +254 -0
  145. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.js.map +1 -0
  146. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +3 -1
  147. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  148. package/node_modules/@fps-games/editor-browser/dist/index.js +2 -0
  149. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  150. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.d.ts +68 -0
  151. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.d.ts.map +1 -0
  152. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.js +650 -0
  153. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.js.map +1 -0
  154. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts +1 -0
  155. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts.map +1 -1
  156. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js +22 -0
  157. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js.map +1 -1
  158. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +8 -0
  159. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  160. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +117 -6
  161. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  162. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +14 -1
  163. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
  164. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +100 -1
  165. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  166. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +8 -1
  167. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  168. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +75 -2
  169. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  170. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +37 -12
  171. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  172. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  173. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +25 -2
  174. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  175. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +332 -107
  176. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  177. package/node_modules/@fps-games/editor-browser/package.json +7 -7
  178. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.d.ts +107 -0
  179. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.d.ts.map +1 -0
  180. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.js +1211 -0
  181. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.js.map +1 -0
  182. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.d.ts +34 -0
  183. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.d.ts.map +1 -0
  184. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.js +260 -0
  185. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.js.map +1 -0
  186. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.d.ts +9 -0
  187. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.d.ts.map +1 -0
  188. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.js +14 -0
  189. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.js.map +1 -0
  190. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.d.ts +18 -0
  191. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.d.ts.map +1 -0
  192. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.js +113 -0
  193. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.js.map +1 -0
  194. package/node_modules/@fps-games/editor-core/dist/editor-command-system.d.ts +82 -0
  195. package/node_modules/@fps-games/editor-core/dist/editor-command-system.d.ts.map +1 -0
  196. package/node_modules/@fps-games/editor-core/dist/editor-command-system.js +1098 -0
  197. package/node_modules/@fps-games/editor-core/dist/editor-command-system.js.map +1 -0
  198. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts +6 -7
  199. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts.map +1 -1
  200. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js +62 -103
  201. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
  202. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.d.ts +30 -0
  203. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.d.ts.map +1 -0
  204. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.js +540 -0
  205. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.js.map +1 -0
  206. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.d.ts +9 -0
  207. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.d.ts.map +1 -0
  208. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.js +61 -0
  209. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.js.map +1 -0
  210. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +55 -0
  211. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  212. package/node_modules/@fps-games/editor-core/dist/editor-session.js +247 -6
  213. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  214. package/node_modules/@fps-games/editor-core/dist/index.d.ts +6 -2
  215. package/node_modules/@fps-games/editor-core/dist/index.d.ts.map +1 -1
  216. package/node_modules/@fps-games/editor-core/dist/index.js +6 -2
  217. package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
  218. package/node_modules/@fps-games/editor-core/package.json +6 -6
  219. package/node_modules/@fps-games/editor-forge-play/dist/index.d.ts +0 -1
  220. package/node_modules/@fps-games/editor-forge-play/dist/index.d.ts.map +1 -1
  221. package/node_modules/@fps-games/editor-forge-play/dist/index.js +0 -1
  222. package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
  223. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  224. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts +2 -0
  225. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts.map +1 -1
  226. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
  227. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +41 -1
  228. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  229. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +27 -1
  230. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.map +1 -1
  231. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
  232. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
  233. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  234. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +214 -7
  235. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  236. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts +1 -0
  237. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map +1 -1
  238. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js +11 -3
  239. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  240. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +2 -4
  241. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  242. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js +0 -1
  243. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  244. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.d.ts.map +1 -1
  245. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +77 -31
  246. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  247. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts +8 -1
  248. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.map +1 -1
  249. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
  250. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.d.ts +21 -1
  251. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.d.ts.map +1 -1
  252. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js +90 -4
  253. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
  254. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.d.ts +27 -1
  255. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.d.ts.map +1 -1
  256. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js +161 -1
  257. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
  258. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.d.ts +2 -2
  259. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.d.ts.map +1 -1
  260. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js +5 -92
  261. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
  262. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.d.ts +7 -0
  263. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.d.ts.map +1 -1
  264. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js +26 -9
  265. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
  266. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts +9 -0
  267. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
  268. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +19 -8
  269. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
  270. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.d.ts +5 -0
  271. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.d.ts.map +1 -1
  272. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js +16 -4
  273. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
  274. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts +9 -0
  275. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts.map +1 -1
  276. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js +12 -2
  277. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
  278. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.d.ts +2 -1
  279. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.d.ts.map +1 -1
  280. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js +10 -5
  281. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
  282. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts +1 -0
  283. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts.map +1 -1
  284. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js +1 -0
  285. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
  286. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +17 -82
  287. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
  288. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +53 -57
  289. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
  290. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.d.ts.map +1 -1
  291. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js +3 -2
  292. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
  293. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.d.ts +10 -0
  294. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.d.ts.map +1 -0
  295. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.js +256 -0
  296. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.js.map +1 -0
  297. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts.map +1 -1
  298. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js +7 -5
  299. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
  300. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
  301. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +8 -0
  302. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  303. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +1 -0
  304. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
  305. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
  306. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js +134 -12
  307. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  308. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
  309. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js +47 -0
  310. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
  311. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.d.ts +27 -0
  312. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.d.ts.map +1 -0
  313. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.js +592 -0
  314. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.js.map +1 -0
  315. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts +3 -1
  316. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts.map +1 -1
  317. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js +2 -1
  318. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
  319. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
  320. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +61 -6
  321. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
  322. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +0 -2
  323. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
  324. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js +1 -10
  325. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
  326. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  327. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +21 -0
  328. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  329. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.d.ts +13 -0
  330. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.d.ts.map +1 -0
  331. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.js +18 -0
  332. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.js.map +1 -0
  333. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.d.ts +28 -0
  334. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.d.ts.map +1 -0
  335. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.js +863 -0
  336. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.js.map +1 -0
  337. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +2 -0
  338. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
  339. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
  340. package/node_modules/@fps-games/editor-playable-sdk/package.json +6 -6
  341. package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.d.ts +1626 -0
  342. package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.d.ts.map +1 -0
  343. package/node_modules/@fps-games/editor-protocol/dist/{agent-bridge.js → editor-command-capabilities.js} +766 -620
  344. package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.js.map +1 -0
  345. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.d.ts +69 -0
  346. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.d.ts.map +1 -0
  347. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.js +22 -0
  348. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.js.map +1 -0
  349. package/node_modules/@fps-games/editor-protocol/dist/editor-command.d.ts +136 -0
  350. package/node_modules/@fps-games/editor-protocol/dist/editor-command.d.ts.map +1 -0
  351. package/node_modules/@fps-games/editor-protocol/dist/editor-command.js +2 -0
  352. package/node_modules/@fps-games/editor-protocol/dist/editor-command.js.map +1 -0
  353. package/node_modules/@fps-games/editor-protocol/dist/editor-service.d.ts +225 -0
  354. package/node_modules/@fps-games/editor-protocol/dist/editor-service.d.ts.map +1 -0
  355. package/node_modules/@fps-games/editor-protocol/dist/editor-service.js +4 -0
  356. package/node_modules/@fps-games/editor-protocol/dist/editor-service.js.map +1 -0
  357. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +6 -3
  358. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
  359. package/node_modules/@fps-games/editor-protocol/dist/index.js +6 -3
  360. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  361. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  362. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  363. package/node_modules/@fps-games/editor-ui/package.json +1 -1
  364. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  365. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  366. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  367. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  368. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  369. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  370. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  371. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  372. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  373. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  374. package/node_modules/@fps-games/plugin-assets/package.json +6 -6
  375. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts +1 -0
  376. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts.map +1 -1
  377. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js +78 -4
  378. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js.map +1 -1
  379. package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +1 -1
  380. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +1 -1
  381. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -1
  382. package/node_modules/@fps-games/plugin-hierarchy/package.json +5 -5
  383. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  384. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  385. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  386. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  387. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  388. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  389. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  390. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  391. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  392. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  393. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  394. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  395. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  396. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  397. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  398. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  399. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  400. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts +1 -1
  401. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +1 -1
  402. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -1
  403. package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +5 -5
  404. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  405. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  406. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  407. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  408. package/package.json +23 -23
  409. package/dist/agent-bridge/capabilities/assets.d.ts +0 -8
  410. package/dist/agent-bridge/capabilities/assets.d.ts.map +0 -1
  411. package/dist/agent-bridge/capabilities/assets.js.map +0 -1
  412. package/dist/agent-bridge/capabilities/editor-state.d.ts +0 -5
  413. package/dist/agent-bridge/capabilities/editor-state.d.ts.map +0 -1
  414. package/dist/agent-bridge/capabilities/editor-state.js.map +0 -1
  415. package/dist/agent-bridge/capabilities/hierarchy.d.ts +0 -4
  416. package/dist/agent-bridge/capabilities/hierarchy.d.ts.map +0 -1
  417. package/dist/agent-bridge/capabilities/hierarchy.js.map +0 -1
  418. package/dist/agent-bridge/capabilities/host-lifecycle.d.ts +0 -11
  419. package/dist/agent-bridge/capabilities/host-lifecycle.d.ts.map +0 -1
  420. package/dist/agent-bridge/capabilities/host-lifecycle.js +0 -149
  421. package/dist/agent-bridge/capabilities/host-lifecycle.js.map +0 -1
  422. package/dist/agent-bridge/capabilities/prefabs.d.ts +0 -5
  423. package/dist/agent-bridge/capabilities/prefabs.d.ts.map +0 -1
  424. package/dist/agent-bridge/capabilities/prefabs.js.map +0 -1
  425. package/dist/agent-bridge/capabilities/scene-objects.d.ts +0 -8
  426. package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +0 -1
  427. package/dist/agent-bridge/capabilities/scene-objects.js +0 -480
  428. package/dist/agent-bridge/capabilities/scene-objects.js.map +0 -1
  429. package/dist/agent-bridge/capabilities/selection.d.ts +0 -5
  430. package/dist/agent-bridge/capabilities/selection.d.ts.map +0 -1
  431. package/dist/agent-bridge/capabilities/selection.js +0 -60
  432. package/dist/agent-bridge/capabilities/selection.js.map +0 -1
  433. package/dist/agent-bridge/capabilities/shadows.d.ts +0 -5
  434. package/dist/agent-bridge/capabilities/shadows.d.ts.map +0 -1
  435. package/dist/agent-bridge/capabilities/shadows.js.map +0 -1
  436. package/dist/agent-bridge/capabilities/transform.d.ts +0 -5
  437. package/dist/agent-bridge/capabilities/transform.d.ts.map +0 -1
  438. package/dist/agent-bridge/capabilities/transform.js +0 -164
  439. package/dist/agent-bridge/capabilities/transform.js.map +0 -1
  440. package/dist/agent-bridge/capabilities/ui-regions.d.ts +0 -4
  441. package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +0 -1
  442. package/dist/agent-bridge/capabilities/ui-regions.js.map +0 -1
  443. package/dist/agent-bridge/capabilities/viewport.d.ts +0 -5
  444. package/dist/agent-bridge/capabilities/viewport.d.ts.map +0 -1
  445. package/dist/agent-bridge/capabilities/viewport.js.map +0 -1
  446. package/dist/agent-bridge/capability-sources.d.ts +0 -7
  447. package/dist/agent-bridge/capability-sources.d.ts.map +0 -1
  448. package/dist/agent-bridge/capability-sources.js +0 -34
  449. package/dist/agent-bridge/capability-sources.js.map +0 -1
  450. package/dist/agent-bridge/diagnostics.d.ts +0 -12
  451. package/dist/agent-bridge/diagnostics.d.ts.map +0 -1
  452. package/dist/agent-bridge/diagnostics.js.map +0 -1
  453. package/dist/agent-bridge/index.d.ts.map +0 -1
  454. package/dist/agent-bridge/index.js.map +0 -1
  455. package/dist/agent-bridge/register.d.ts +0 -4
  456. package/dist/agent-bridge/register.d.ts.map +0 -1
  457. package/dist/agent-bridge/register.js.map +0 -1
  458. package/dist/agent-bridge/shared.d.ts.map +0 -1
  459. package/dist/agent-bridge/shared.js.map +0 -1
  460. package/dist/agent-bridge/source-types.d.ts +0 -110
  461. package/dist/agent-bridge/source-types.d.ts.map +0 -1
  462. package/dist/agent-bridge/source-types.js.map +0 -1
  463. package/dist/editor-plugin-agent-capabilities.d.ts +0 -4
  464. package/dist/editor-plugin-agent-capabilities.d.ts.map +0 -1
  465. package/dist/editor-plugin-agent-capabilities.js +0 -64
  466. package/dist/editor-plugin-agent-capabilities.js.map +0 -1
  467. package/dist/local-editor-agent-actions.d.ts +0 -43
  468. package/dist/local-editor-agent-actions.d.ts.map +0 -1
  469. package/dist/local-editor-agent-actions.js +0 -321
  470. package/dist/local-editor-agent-actions.js.map +0 -1
  471. package/dist/local-editor-agent-bridge-transport.d.ts +0 -129
  472. package/dist/local-editor-agent-bridge-transport.d.ts.map +0 -1
  473. package/dist/local-editor-agent-bridge-transport.js +0 -403
  474. package/dist/local-editor-agent-bridge-transport.js.map +0 -1
  475. package/dist/local-editor-agent-bridge.d.ts +0 -2
  476. package/dist/local-editor-agent-bridge.d.ts.map +0 -1
  477. package/dist/local-editor-agent-bridge.js +0 -2
  478. package/dist/local-editor-agent-bridge.js.map +0 -1
  479. package/dist/local-editor-agent-context.d.ts +0 -68
  480. package/dist/local-editor-agent-context.d.ts.map +0 -1
  481. package/dist/local-editor-agent-context.js +0 -716
  482. package/dist/local-editor-agent-context.js.map +0 -1
  483. package/node_modules/@fps-games/editor-core/dist/agent-bridge.d.ts +0 -22
  484. package/node_modules/@fps-games/editor-core/dist/agent-bridge.d.ts.map +0 -1
  485. package/node_modules/@fps-games/editor-core/dist/agent-bridge.js +0 -106
  486. package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +0 -1
  487. package/node_modules/@fps-games/editor-core/dist/agent-interaction.d.ts +0 -17
  488. package/node_modules/@fps-games/editor-core/dist/agent-interaction.d.ts.map +0 -1
  489. package/node_modules/@fps-games/editor-core/dist/agent-interaction.js +0 -14
  490. package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +0 -1
  491. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts +0 -23
  492. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts.map +0 -1
  493. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js +0 -47
  494. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +0 -1
  495. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.d.ts +0 -112
  496. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.d.ts.map +0 -1
  497. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js +0 -159
  498. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +0 -1
  499. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.d.ts +0 -15
  500. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.d.ts.map +0 -1
  501. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js +0 -76
  502. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +0 -1
  503. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +0 -1622
  504. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +0 -1
  505. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +0 -1
  506. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.d.ts +0 -68
  507. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.d.ts.map +0 -1
  508. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js +0 -23
  509. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +0 -1
  510. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts +0 -187
  511. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts.map +0 -1
  512. package/node_modules/@fps-games/editor-protocol/dist/agent.js +0 -5
  513. package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +0 -1
  514. /package/dist/{agent-bridge → editor-commands}/source-types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"playable-product-scene-capabilities.js","sourceRoot":"","sources":["../src/playable-product-scene-capabilities.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,2CAA2C,EAC3C,yCAAyC,EACzC,8CAA8C,EAC9C,oCAAoC,EACpC,+BAA+B,EAC/B,mCAAmC,EACnC,gDAAgD,EAChD,wCAAwC,EACxC,kCAAkC,EAClC,8CAA8C,EAC9C,wCAAwC,EACxC,0CAA0C,EAC1C,0CAA0C,EAC1C,oCAAoC,GAMrC,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AAoCxF,MAAM,UAAU,oCAAoC,CAClD,KAAkE;IAElE,OAAO,KAAK,CAAC,0BAA0B,CACrC,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAC3F,CAAC;AACJ,CAAC;AAED,MAAM,wCAAwC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAC7E,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IAC3E,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACpF,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IACtF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;CACnF,CAAC,CAAC;AAEH,MAAM,UAAU,8CAA8C,CAC5D,KAAyE;IAEzE,IAAI,MAAM,GAAa,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,SAAS,GAAG,CAAC,UAAoB,EAAY,EAAE;QACnD,MAAM,GAAG,UAAU,CAAC;QACpB,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,uCAAuC,CAAC,MAAM,CAAC,CAAC,CAAC;QACxF,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,qBAAqB,GAAG,CAAC,QAAmB,EAAE,UAAoB,EAAa,EAAE,CAAC,CACtF,KAAK,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,QAAQ,CAChF,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,QAAmB,EAAE,UAAoB,EAAa,EAAE;QAC/E,IAAI,KAAK,CAAC,eAAe;YAAE,OAAO,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC9E,OAAO,oCAAoC,CAAC;YAC1C,QAAQ;YACR,MAAM,EAAE,UAAU;YAClB,qBAAqB;YACrB,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;YAC1D,0BAA0B,EAAE,KAAK,CAAC,0BAA0B;SAC7D,CAAC,CAAC;IACL,CAAC,CAAC;IACF,OAAO,sCAAsC,CAA0B;QACrE,KAAK;QACL,QAAQ,EAAE;YACR,kBAAkB,EAAE,UAAU,CAAC,qBAAqB;YACpD,iBAAiB,EAAE,CAAC,QAAa,EAAE,EAAU,EAAE,EAAE;gBAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpF,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnF,CAAC;YACD,2BAA2B,EAAE,UAAU,CAAC,2BAA2B;YACnE,yBAAyB,EAAE,UAAU,CAAC,yBAAyB;YAC/D,6BAA6B,EAAE,UAAU,CAAC,6BAA6B;YACvE,oBAAoB,EAAE,CAAC,KAAU,EAAE,OAAY,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;SAC3T;QACD,SAAS,EAAE;YACT,eAAe,EAAE,CAAC,QAAmB,EAAE,UAAoB,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAChH,qBAAqB,EAAE,CAAC,QAAmB,EAAE,UAAoB,EAAE,EAAE;gBACnE,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC7C,OAAO,qBAAqB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YACzD,CAAC;YACD,2BAA2B,EAAE,CAAC,UAAoB,EAAE,MAA2B,EAAE,EAAE;gBACjF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;gBACpH,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBACxB,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,WAAW,KAAK,QAAQ;oBACjE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW;oBAC5B,CAAC,CAAC,SAAS,CAAC;gBACd,OAAO;oBACL,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxC,CAAC;YACJ,CAAC;YACD,kBAAkB,EAAE,CAAC,UAAoB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzE,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;oBACvE,CAAC,CAAC,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE;wBAC/C,CAAC,CAAC,KAAK,CAAC,EAAE;wBACV,CAAC,CAAC,IAAI,CAAC;gBACX,IAAI,CAAC,OAAO;oBAAE,OAAO,EAAE,CAAC;gBACxB,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,WAAW,KAAK,QAAQ;oBACjE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW;oBAC5B,CAAC,CAAC,SAAS,CAAC;gBACd,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAChE,CAAC,CAAC;YACF,qBAAqB,EAAE,CAAC,QAAqC,EAAE,MAA2B,EAAE,EAAE;gBAC5F,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW;qBACrC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,0CAA0C,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;qBACnF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnD,OAAO;oBACL,QAAQ,EAAE,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC;oBACnD,sBAAsB,EAAE,KAAK,CAAC,MAAM,CAClC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EACnF,CAAC,CACF;oBACD,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC9B,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;4BACvC,IAAI,EAAE,KAAK,CAAC,MAAM;4BAClB,YAAY,EAAE,IAAI,CAAC,YAAY;4BAC/B,MAAM,EAAE,KAAK,CAAC,UAAU;4BACxB,eAAe,EAAE,KAAK,CAAC,eAAe;4BACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;yBACzC,CAAC,CAAC;wBACH,GAAG,IAAI,CAAC,MAAM;6BACX,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC;6BAC3D,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;4BACb,IAAI,EAAE,KAAK,CAAC,MAAM;4BAClB,YAAY,EAAE,IAAI,CAAC,YAAY;4BAC/B,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACjD,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC7E,CAAC,CAAC;qBACN,CAAC;iBACH,CAAC;YACJ,CAAC;YACD,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC,SAAS;SAC3C;QACD,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC,uCAAuC,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1G,YAAY,EAAE,KAAK,CAAC,eAAe,CAAC,YAAY;QAChD,YAAY,EAAE,EAAE,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,EAAE;QACtE,WAAW,EAAE;YACX,wBAAwB,EAAE,MAAM,EAAE,aAAa,IAAI,mCAAmC;YACtF,6BAA6B,EAAE,MAAM,EAAE,kBAAkB,IAAI,wCAAwC;YACrG,uBAAuB,EAAE,MAAM,EAAE,YAAY,IAAI,kCAAkC;YACnF,6BAA6B,EAAE,MAAM,EAAE,kBAAkB,IAAI,KAAK,CAAC,6BAA6B;YAChG,+BAA+B,EAAE,MAAM,EAAE,oBAAoB,IAAI,0CAA0C;YAC3G,8BAA8B,EAAE,MAAM,EAAE,mBAAmB,IAAI,gDAAgD;SAChH;QACD,gBAAgB,EAAE;YAChB,UAAU,EAAE,KAAK,CAAC,mBAAmB,IAAI,EAAE;SAC5C;QACD,YAAY,EAAE;YACZ,wBAAwB,EAAE,UAAU,CAAC,2BAA2B;YAChE,kBAAkB,EAAE,CAAC,QAAa,EAAE,EAAE,CAAC,wCAAwC,CAAC,QAAQ,EAAE,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,EAAE,uBAAuB,EAAE,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SACpQ;QACD,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU;QACrC,OAAO,EAAE;YACP,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa;YACpE,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;YAChD,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,EAAE;YAC1D,kBAAkB,EAAE;gBAClB,mBAAmB,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAChM,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU;gBACxC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjH;YACD,YAAY,EAAE;gBACZ,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,gCAAgC,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBACrG,mBAAmB,EAAE,gCAAgC;gBACrD,kBAAkB,EAAE,UAAU,CAAC,2BAA2B;gBAC1D,yBAAyB,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,UAAU,CAAC,+BAA+B,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC5G,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO;gBAChD,kBAAkB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,YAAY,EAAE,8CAA8C,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,oCAAoC,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;aACpiB;YACD,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,UAAU,EAAE,UAAU,CAAC,gBAAgB;YACvC,SAAS,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,wCAAwC,EAAE,uBAAuB,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE;YAC/I,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,yBAAyB,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,yBAAyB,EAAE,KAAK,CAAC,eAAe,CAAC,yBAAyB,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAO,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;SACxU;KACF,CAAC,CAAC;AACL,CAAC;AAmDD,MAAM,UAAU,0CAA0C,CAKxD,KAA2E;IAE3E,MAAM,eAAe,GAAqE;QACxF,GAAG,KAAK,CAAC,QAAQ;KAClB,CAAC;IAEF,OAAO;QACL,eAAe;QACf,YAAY,EAAE;YACZ,iBAAiB,EAAE,KAAK,CAAC,SAAS;YAClC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B;KACF,CAAC;AACJ,CAAC;AAqCD,SAAS,4CAA4C,CACnD,QAA6B,EAC7B,KAA4B;IAE5B,IAAI,CAAC;QACH,yCAAyC,CAAC,QAAQ,CAAC,CAAC;QACpD,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAC/C,CAAC,CAAC,KAA8D;YAChE,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,IAAI,GAAG,OAAO,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,MAAM,IAAI,GAAG,qCAAqC,CAAC,QAAQ,EAAE,IAAI,CAAC;eAC7D,CAAC,OAAO,MAAM,EAAE,IAAI,KAAK,QAAQ;gBAClC,CAAC,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;gBAC/C,CAAC,CAAC,2BAA2B,CAAC,CAAC;QACnC,OAAO,CAAC;gBACN,IAAI;gBACJ,QAAQ,EAAE,OAAO;gBACjB,KAAK;gBACL,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,qBAAqB;gBAC/B,OAAO,EAAE,OAAO,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7E,UAAU,EAAE,IAAI;oBACd,CAAC,CAAC,gBAAgB,IAAI,mBAAmB;oBACzC,CAAC,CAAC,kCAAkC;gBACtC,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;gBAC7B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBACT,OAAO,EAAE,EAAE,IAAI,EAAE;iBAClB,CAAC,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,qCAAqC,CAC5C,QAA6B,EAC7B,IAAwB;IAExB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,UAAU,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,UAAU,IAAI,qBAAqB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,OAAO,6BAA6B,CAAC;IACvC,CAAC;IACD,MAAM,WAAW,GAAG,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,IAAI,WAAW,IAAI,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,OAAO,mCAAmC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAmC,EAAE,KAAa;IAC/E,MAAM,EAAE,GAAG,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,OAAO,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACpE,CAAC;AAmCD,MAAM,UAAU,sCAAsC,CAOpD,KAA8F;IAE9F,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,gBAAgB,GAAG,GAAa,EAAE,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,IAAK,EAAe,CAAC;IAC3F,MAAM,uBAAuB,GAAG,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAClE,MAAM,6BAA6B,GAAsE;QACvG,GAAG,KAAK,CAAC,SAAS;QAClB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;YACvC,GAAG,4CAA4C,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;YACxE,GAAG,CAAC,uBAAuB,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;SACxD;KACF,CAAC;IACF,MAAM,gBAAgB,GAAG,0CAA0C,CAA4B;QAC7F,QAAQ,EAAE;YACR,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,0BAA0B,EAAE,iCAAiC;YAC7D,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB;YACrD,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,iBAAiB;YACnD,2BAA2B,EAAE,KAAK,CAAC,QAAQ,CAAC,2BAA2B;YACvE,yBAAyB,EAAE,KAAK,CAAC,QAAQ,CAAC,yBAAyB;YACnE,6BAA6B,EAAE,KAAK,CAAC,QAAQ,CAAC,6BAA6B;YAC3E,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,oBAAoB;YACzD,6BAA6B,EAAE,KAAK,CAAC,4BAA4B;YACjE,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;SACzD;QACD,SAAS,EAAE,6BAA6B;QACxC,SAAS,EAAE;YACT,YAAY,EAAE,KAAK,CAAC,uBAAuB;YAC3C,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;SACtB;QACD,SAAS,EAAE;YACT,kBAAkB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;YAC5G,uBAAuB,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,uBAAuB,CACzF,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,gBAAgB,EAAE,CACnB;YACD,2BAA2B,EAAE,KAAK,CAAC,2BAA2B;SAC/D;QACD,YAAY,EAAE;YACZ,oBAAoB,EAAE,KAAK,CAAC,uBAAuB;SACpD;QACD,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW,EAAE;YACX,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;YAChD,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;YACpD,+BAA+B,EAAE,KAAK,CAAC,+BAA+B;YACtE,4BAA4B,EAAE,KAAK,CAAC,4BAA4B;YAChE,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;SACrD;QACD,YAAY,EAAE;YACZ,GAAG,KAAK,CAAC,YAAY;YACrB,sBAAsB,EAAE,KAAK,CAAC,YAAY,EAAE,sBAAsB,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBACjF,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG;oBAAE,OAAO,IAAI,CAAC;gBAChD,OAAO,KAAK,CAAC,sBAAsB,CAAC;oBAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,GAAG,EAAE,OAAO,CAAC,GAAU;iBACxB,CAAkD,CAAC;YACtD,CAAC,CAAC;YACF,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE,aAAa,IAAI,8BAA8B;SACnF;QACD,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,iBAAiB,EAAE;YACjB,qCAAqC,CAAC,OAAO;gBAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;uBACvC,OAAO,CAAC,IAAI,KAAK,2CAA2C;uBAC5D,KAAK,CAAC,qCAAqC,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC;YACD,kCAAkC,CAAC,OAAO;gBACxC,MAAM,UAAU,GAAG,KAAK,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;gBACrE,IAAI,UAAU;oBAAE,OAAO,UAAU,CAAC;gBAClC,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC;oBACzE,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,QAAQ;oBACR,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;iBACrB,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACjB,OAAO,8CAA8C,CAAC,OAAO,CAAgE,CAAC;YAChI,CAAC;YACD,+BAA+B,EAAE,OAAO,CAAC,EAAE,CAAC,oCAAoC,CAC9E,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,SAAS,CAClB;YACD,oBAAoB,EAAE,OAAO,CAAC,EAAE,CAAC,+BAA+B,CAAC,OAAc,CAAQ;YACvF,yBAAyB,EAAE,OAAO,CAAC,EAAE,CAAC,oCAAoC,CAAC,OAAc,CAAQ;YACjG,6BAA6B,EAAE,KAAK,CAAC,6BAA6B;SACnE;QACD,UAAU,EAAE;YACV,sBAAsB,EAAE,KAAK,CAAC,gBAAgB;YAC9C,sBAAsB,EAAE,KAAK,CAAC,qBAAqB;YACnD,gCAAgC,EAAE,KAAK,CAAC,sBAAsB;YAC9D,2BAA2B,EAAE,KAAK,CAAC,iBAAiB;YACpD,gCAAgC,EAAE,KAAK,CAAC,sBAAsB;YAC9D,oCAAoC,EAAE,KAAK,CAAC,0BAA0B;YACtE,2BAA2B,EAAE,KAAK,CAAC,wBAAwB;YAC3D,yBAAyB,EAAE,KAAK,CAAC,mBAAmB;YACpD,yBAAyB,EAAE,KAAK,CAAC,wBAAwB;YACzD,mCAAmC,EAAE,KAAK,CAAC,yBAAyB;SACrE;QACD,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;IACH,OAAO;QACL,GAAG,gBAAgB;QACnB,iBAAiB,CAAC,OAAO;YACvB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;YACtG,CAAC;YACD,MAAM,EAAE,SAAS,EAAE,GAAG,kBAAkB,EAAE,GAAG,OAAO,CAAC;YACrD,OAAO;gBACL,GAAG,kBAAkB;gBACrB,GAAG,gBAAgB;gBACnB,kBAAkB,EAAE;oBAClB,GAAG,OAAO,CAAC,kBAAkB;iBAC9B;gBACD,YAAY,EAAE;oBACZ,GAAG,OAAO,CAAC,YAAY;iBACxB;gBACD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;oBACd,SAAS,EAAE;wBACT,GAAG,SAAS;wBACZ,eAAe,EAAE,OAAO,CAAC,yBAAyB;wBAClD,yBAAyB,EAAE,SAAS,CAAC,yBAAyB;4BAC5D,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,yBAAyB,EAAE,CACpD,aAAa,EACb,OAAO,CAAC,mCAAmC,CAC5C;4BACH,CAAC,CAAC,SAAS;wBACb,cAAc,EAAE,SAAS,CAAC,cAAc;4BACtC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;gCACd,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC;gCAC3C,IAAI,CAAC,OAAO;oCAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;gCACzD,OAAO,SAAS,CAAC,cAAe,CAAC,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;4BAChE,CAAC;4BACH,CAAC,CAAC,SAAS;qBACd;iBACF,CAAC,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC,CACxC,OAA2C;IAE3C,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACxC,IAAI,MAAM,EAAE,IAAI,KAAK,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;eACvC,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAA8D,CAAC;IACrF,IAAI,KAAK,EAAE,IAAI,KAAK,uBAAuB,IAAI,KAAK,EAAE,IAAI,KAAK,6BAA6B;QAAE,OAAO,KAAK,CAAC;IAC3G,IAAI,KAAK,EAAE,IAAI,KAAK,mBAAmB;WAClC,KAAK,EAAE,IAAI,KAAK,yBAAyB;WACzC,KAAK,EAAE,IAAI,KAAK,qBAAqB,EAAE,CAAC;QAC3C,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,8BAA8B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,IAAI,CACrC,KAAK,CAAC,IAAI,KAAK,6CAA6C;WACzD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;WAC9C,KAAK,CAAC,IAAI,KAAK,gDAAgD,CACnE;QAAE,OAAO,KAAK,CAAC;IAChB,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAAE,OAAO,IAAI,CAAC;IACjG,IAAI,KAAK,EAAE,IAAI,KAAK,oBAAoB;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,IAAI,CACrC,KAAK,CAAC,IAAI,KAAK,+BAA+B;WAC3C,KAAK,CAAC,IAAI,KAAK,iCAAiC;WAChD,KAAK,CAAC,IAAI,KAAK,oBAAoB;WACnC,KAAK,CAAC,IAAI,KAAK,0BAA0B;WACzC,KAAK,CAAC,IAAI,KAAK,8BAA8B;WAC7C,KAAK,CAAC,IAAI,KAAK,4BAA4B;WAC3C,KAAK,CAAC,IAAI,KAAK,sBAAsB;WACrC,KAAK,CAAC,IAAI,KAAK,4BAA4B;WAC3C,KAAK,CAAC,IAAI,KAAK,6BAA6B,CAChD;QAAE,OAAO,IAAI,CAAC;IACf,IAAI,MAAM,EAAE,IAAI,KAAK,aAAa,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/F,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,8BAA8B,CAAC,IAAY;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,UAAU,KAAK,MAAM;WACvB,UAAU,KAAK,OAAO;WACtB,UAAU,KAAK,UAAU;WACzB,UAAU,KAAK,QAAQ;WACvB,UAAU,KAAK,SAAS;WACxB,UAAU,KAAK,QAAQ;WACvB,UAAU,KAAK,MAAM;WACrB,UAAU,KAAK,eAAe,CAAC;AACtC,CAAC;AAED,SAAS,8BAA8B,CACrC,cAAyB,EACzB,aAAwB;IAExB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,OAAO,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;AACvG,CAAC","sourcesContent":["import type {\n PlayableLocalEditorAssetActionsCapability,\n PlayableLocalEditorAssetBrowserCapability,\n PlayableLocalEditorDocumentCapability,\n PlayableLocalEditorDocumentLifecycleCapability,\n PlayableLocalEditorHierarchyActionsCapability,\n PlayableLocalEditorHostCapabilities,\n PlayableLocalEditorInspectorCapability,\n PlayableLocalEditorMarkerGraphCapability,\n PlayableLocalEditorPatchResult,\n PlayableLocalEditorPrefabStageCapability,\n PlayableLocalEditorRenderingCapability,\n PlayableLocalEditorSceneGraphCapability,\n PlayableLocalEditorSelectionCapability,\n PlayableLocalEditorTransformCommandsCapability,\n PlayableLocalEditorWorldPreviewCapability,\n PlayableLocalEditorHarnessApi,\n} from './playable-local-editor-host.js';\nimport type {\n FpsGameEditorProductLocalEditorContext,\n FpsGameEditorProductLocalEditorHostOptions,\n} from './playable-product-local-editor.js';\nimport type { DocumentCommand } from '@fps-games/editor-core';\nimport {\n EDITOR_SCENE_STATIC_SHADOW_BAKE_ACTION_PATH,\n assertPlayableEditorSceneDocumentContract,\n createEditorSceneSerializedMultiTransformPatch,\n createEditorSceneTransformBatchPatch,\n createEditorSceneTransformPatch,\n getEditorScenePrefabStageDescriptor,\n getEditorScenePrefabStageProjectionNodeIdForNode,\n getEditorScenePrefabStageProjectionNodes,\n getEditorScenePrefabStageStructure,\n resolveEditorSceneAssetLibraryItemRelativePath,\n resolveEditorSceneLightingPreviewProfile,\n resolveEditorSceneMaterialSlotReimportDiff,\n resolveEditorScenePrefabStagePreviewTarget,\n toEditorSceneLocalTransformFromWorld,\n type EditorSceneAssetLibraryItem,\n type EditorSceneDocument,\n type EditorSceneGameObject,\n type EditorSceneMaterialDocument,\n type FpsGameEditorStandardSceneAssembly,\n} from '@fps-games/editor-playable-sdk';\nimport type { EditorDiagnostic, EditorDiagnosticPhase } from '@fps-games/editor-protocol';\nimport { createBabylonEditorPreviewEngine } from './internal/babylon-preview-engine.js';\n\nexport interface FpsGameEditorPlayableProjectHostAssemblyOptions<TDocument, TAsset> {\n scene: any;\n projection: any;\n sceneSource: any;\n rendering: any;\n projectServices: any;\n /** Overrides for projects whose prefab document semantics differ from the standard scene contract. */\n prefab?: Partial<{\n getDescriptor: typeof getEditorScenePrefabStageDescriptor;\n getProjectionNodes: typeof getEditorScenePrefabStageProjectionNodes;\n getStructure: typeof getEditorScenePrefabStageStructure;\n getInspectorObject: FpsGameEditorStandardSceneAssembly<any, any, any, any, any>['getPrefabStageInspectorObject'];\n resolvePreviewTarget: typeof resolveEditorScenePrefabStagePreviewTarget;\n getProjectionNodeId: typeof getEditorScenePrefabStageProjectionNodeIdForNode;\n }>;\n prepareDocument?(document: TDocument, assets: TAsset[]): TDocument;\n createAssetActionPatch(input: any): any;\n hierarchyOperations?: NonNullable<PlayableLocalEditorHierarchyActionsCapability<TDocument, any>['operations']>;\n loadingContent?: any;\n runtimeWindow: Window;\n gameModeEntryVisible?: boolean;\n loadBabylon(): Promise<any>;\n world?: { cameraTarget?: { x: number; y: number; z: number }; cameraRadius?: number; clearColor?: { r: number; g: number; b: number; a: number }; useRightHandedSystem?: boolean; selectionEdgesPrewarm?: 'eager' | 'lazy' };\n reportError?(error: unknown): void;\n}\n\ninterface FpsGameEditorStandardDocumentPreparation<TDocument, TAsset> {\n document: TDocument;\n assets: TAsset[];\n hydrateDocumentAssets(document: TDocument, assets: TAsset[]): TDocument;\n ensureEnvironmentDefaults(document: TDocument): TDocument;\n normalizeHierarchyDocument(document: TDocument): TDocument;\n}\n\nexport function prepareFpsGameEditorStandardDocument<TDocument, TAsset>(\n input: FpsGameEditorStandardDocumentPreparation<TDocument, TAsset>,\n): TDocument {\n return input.normalizeHierarchyDocument(\n input.ensureEnvironmentDefaults(input.hydrateDocumentAssets(input.document, input.assets)),\n );\n}\n\nconst DEFAULT_PLAYABLE_PROJECT_LOADING_CONTENT = Object.freeze({\n enter: Object.freeze({ title: '正在进入编辑界面…', description: '正在加载场景数据和编辑器,请稍候' }),\n saveScene: Object.freeze({ title: '正在保存场景…', description: '正在写入场景数据,请稍候' }),\n saveAndRunGame: Object.freeze({ title: '正在保存并退出…', description: '正在写入场景并返回游戏,请稍候' }),\n discardAndRunGame: Object.freeze({ title: '正在放弃变更并退出…', description: '正在恢复游戏场景,请稍候' }),\n assetImport: Object.freeze({ title: '正在添加资源…', description: '正在检查资产库并实例化资源,请稍候' }),\n});\n\nexport function createFpsGameEditorPlayableProjectHostAssembly<TDocument, TAsset extends EditorSceneAssetLibraryItem>(\n input: FpsGameEditorPlayableProjectHostAssemblyOptions<TDocument, TAsset>,\n) {\n let assets: TAsset[] = [];\n const scene = input.scene;\n const projection = input.projection;\n const prefab = input.prefab;\n const setAssets = (nextAssets: TAsset[]): TAsset[] => {\n assets = nextAssets;\n input.rendering.setTextures(projection.createEditorSceneInspectorTextureAssets(assets));\n return assets;\n };\n const hydrateDocumentAssets = (document: TDocument, nextAssets: TAsset[]): TDocument => (\n input.projectServices.hydrateDocumentAssets?.(document, nextAssets) ?? document\n );\n const prepareDocument = (document: TDocument, nextAssets: TAsset[]): TDocument => {\n if (input.prepareDocument) return input.prepareDocument(document, nextAssets);\n return prepareFpsGameEditorStandardDocument({\n document,\n assets: nextAssets,\n hydrateDocumentAssets,\n ensureEnvironmentDefaults: scene.ensureEnvironmentDefaults,\n normalizeHierarchyDocument: scene.normalizeHierarchyDocument,\n });\n };\n return createFpsGameEditorProductHostAssembly<any, any, any, any, any>({\n scene,\n document: {\n getProjectionNodes: projection.createProjectionNodes,\n getProjectionNode: (document: any, id: string) => {\n const gameObject = document.scene.gameObjects.find((entry: any) => entry.id === id);\n return gameObject ? projection.createProjectionNode(document, gameObject) : null;\n },\n getProjectionNodesForTarget: projection.getProjectionNodesForTarget,\n resolveProjectionTargetId: projection.resolveProjectionTargetId,\n getProjectionSelectionNodeIds: projection.getProjectionSelectionNodeIds,\n createPatchFromAsset: (asset: any, request: any) => ({ label: `Add ${request?.name?.trim() || asset.displayName}`, patch: { kind: 'game-object.create-from-asset', assetItem: asset, ...(request?.name?.trim() ? { name: request.name.trim() } : {}), ...(request?.placement ? { placement: request.placement } : {}) } }),\n },\n lifecycle: {\n prepareDocument: (document: TDocument, nextAssets: TAsset[]) => prepareDocument(document, setAssets(nextAssets)),\n hydrateDocumentAssets: (document: TDocument, nextAssets: TAsset[]) => {\n const hydratedAssets = setAssets(nextAssets);\n return hydrateDocumentAssets(document, hydratedAssets);\n },\n resolveUpdatedAssetSnapshot: (nextAssets: TAsset[], update: { assetId: string }) => {\n const asset = nextAssets.find(candidate => candidate.assetId === update.assetId || candidate.id === update.assetId);\n if (!asset) return null;\n const contentHash = typeof asset.metadata?.contentHash === 'string'\n ? asset.metadata.contentHash\n : undefined;\n return {\n assetId: asset.assetId,\n ...(contentHash ? { contentHash } : {}),\n };\n },\n listAssetSnapshots: (nextAssets: TAsset[]) => nextAssets.flatMap((asset) => {\n const assetId = typeof asset.assetId === 'string' && asset.assetId.trim()\n ? asset.assetId\n : typeof asset.id === 'string' && asset.id.trim()\n ? asset.id\n : null;\n if (!assetId) return [];\n const contentHash = typeof asset.metadata?.contentHash === 'string'\n ? asset.metadata.contentHash\n : undefined;\n return [{ assetId, ...(contentHash ? { contentHash } : {}) }];\n }),\n reconcileUpdatedAsset: (document: EditorSceneMaterialDocument, update: { assetId: string }) => {\n const diffs = document.scene.gameObjects\n .map(gameObject => resolveEditorSceneMaterialSlotReimportDiff(document, gameObject))\n .filter(diff => diff.assetId === update.assetId);\n return {\n document: scene.ensureEnvironmentDefaults(document),\n reconciledBindingCount: diffs.reduce(\n (count, diff) => count + diff.bindingRemaps.length + diff.bindingRemapIssues.length,\n 0,\n ),\n warnings: diffs.flatMap(diff => [\n ...diff.bindingRemapIssues.map(issue => ({\n code: issue.reason,\n gameObjectId: diff.gameObjectId,\n slotId: issue.fromSlotId,\n materialAssetId: issue.materialAssetId,\n candidateSlotIds: issue.candidateSlotIds,\n })),\n ...diff.issues\n .filter(issue => issue.reason === 'source-material-changed')\n .map(issue => ({\n code: issue.reason,\n gameObjectId: diff.gameObjectId,\n ...(issue.slotId ? { slotId: issue.slotId } : {}),\n ...(issue.materialAssetId ? { materialAssetId: issue.materialAssetId } : {}),\n })),\n ]),\n };\n },\n summarize: input.projectServices.summarize,\n },\n getInspectorContext: () => ({ textureAssets: projection.createEditorSceneInspectorTextureAssets(assets) }),\n agentContext: input.projectServices.agentContext,\n assetActions: { createAssetActionPatch: input.createAssetActionPatch },\n prefabStage: {\n getPrefabStageDescriptor: prefab?.getDescriptor ?? getEditorScenePrefabStageDescriptor,\n getPrefabStageProjectionNodes: prefab?.getProjectionNodes ?? getEditorScenePrefabStageProjectionNodes,\n getPrefabStageStructure: prefab?.getStructure ?? getEditorScenePrefabStageStructure,\n getPrefabStageInspectorObject: prefab?.getInspectorObject ?? scene.getPrefabStageInspectorObject,\n resolvePrefabStagePreviewTarget: prefab?.resolvePreviewTarget ?? resolveEditorScenePrefabStagePreviewTarget,\n getPrefabStageProjectionNodeId: prefab?.getProjectionNodeId ?? getEditorScenePrefabStageProjectionNodeIdForNode,\n },\n hierarchyActions: {\n operations: input.hierarchyOperations ?? [],\n },\n worldPreview: {\n getSceneCameraPreviewRig: projection.createSceneCameraPreviewRig,\n getWorldAppearance: (document: any) => resolveEditorSceneLightingPreviewProfile(document, { environmentLightId: 'environment_light', sunLightId: 'sun_light', defaultEnvironmentLight: scene.defaults.environmentLight, defaultSunLight: scene.defaults.sunLight }),\n },\n rendering: input.rendering.capability,\n runtime: {\n localTestActions: input.runtimeWindow.parent === input.runtimeWindow,\n gameModeEntryVisible: input.gameModeEntryVisible,\n authoring: { drivers: [input.sceneSource.createDriver()] },\n persistenceAdapter: {\n loadAuthoringSource: async () => { const loaded = await input.sceneSource.load(); return { source: loaded.source, document: loaded.document, assets: loaded.assets, summary: loaded.summary }; },\n loadAssets: input.sceneSource.loadAssets,\n ...(input.sceneSource.loadProjectFiles ? { loadProjectFiles: input.sceneSource.loadProjectFiles } : {}),\n ...(input.sceneSource.loadProjectFile ? { loadProjectFile: input.sceneSource.loadProjectFile } : {}),\n ...(input.sceneSource.resolveProjectMedia ? { resolveProjectMedia: input.sceneSource.resolveProjectMedia } : {}),\n },\n worldAdapter: {\n loadPreviewEngine: async () => projection.createEditorPreviewBabylonModule(await input.loadBabylon()),\n createPreviewEngine: createBabylonEditorPreviewEngine,\n importPreviewAsset: projection.importEditorProjectionModel,\n resolveMaterialTextureUrl: (texture: unknown) => projection.resolveEditorSceneTextureRefUrl(assets, texture),\n resolveAssetId: (asset: TAsset) => asset.assetId,\n toBrowserAssetItem: (asset: TAsset) => ({ id: asset.assetId, guid: asset.guid, assetId: asset.assetId, kind: asset.kind, label: asset.displayName, relativePath: resolveEditorSceneAssetLibraryItemRelativePath(asset), meta: asset.assetId, external: asset.external, origin: asset.origin, dedupeKey: asset.dedupeKey, contentHash: typeof asset.metadata?.contentHash === 'string' ? asset.metadata.contentHash : undefined, placeable: asset.placeable, preview: projection.createEditorSceneLibraryAssetPreview(asset), disabled: asset.placeable === false }),\n },\n world: input.world,\n createGrid: projection.createEditorGrid,\n lifecycle: { loadingContent: input.loadingContent ?? DEFAULT_PLAYABLE_PROJECT_LOADING_CONTENT, beforeDiscardAndRunGame: input.rendering.reset },\n forgePlay: { window: input.runtimeWindow, hasUnsavedPlatformChanges: input.rendering.isDirty, handleProjectAssetCommand: input.projectServices.handleProjectAssetCommand, exportDocument: ({ harness, payload, saveState }: any) => input.projectServices.exportDocument(harness, payload, saveState), reportError: input.reportError },\n },\n });\n}\n\nexport interface FpsGameEditorProductSceneDocumentAdapter<\n TDocument,\n TPatch,\n TAsset = unknown,\n> extends Pick<\n PlayableLocalEditorDocumentCapability<TDocument, TPatch, TAsset>,\n | 'reduceDocument'\n | 'getHierarchyItems'\n | 'isHierarchyStructureChange'\n | 'getProjectionNodes'\n | 'getProjectionNode'\n | 'getProjectionNodesForTarget'\n | 'resolveProjectionTargetId'\n | 'getProjectionSelectionNodeIds'\n | 'createPatchFromAsset'\n | 'createSerializedPropertyPatch'\n | 'resolveDiagnosticLocator'\n > {}\n\nexport interface FpsGameEditorProductSceneHostOptions<\n TDocument,\n TPatch,\n TAsset = unknown,\n> {\n documentAdapter: PlayableLocalEditorDocumentCapability<TDocument, TPatch, TAsset>;\n capabilities: PlayableLocalEditorHostCapabilities<TDocument, TPatch, TAsset>;\n}\n\nexport interface FpsGameEditorProductSceneHostOptionsInput<\n TDocument,\n TPatch,\n TAsset = unknown,\n> {\n document: FpsGameEditorProductSceneDocumentAdapter<TDocument, TPatch, TAsset>;\n lifecycle?: PlayableLocalEditorDocumentLifecycleCapability<TDocument, TAsset>;\n selection?: PlayableLocalEditorSelectionCapability<TDocument>;\n inspector?: PlayableLocalEditorInspectorCapability<TDocument>;\n assetBrowser?: PlayableLocalEditorAssetBrowserCapability<TDocument>;\n agentContext?: PlayableLocalEditorHostCapabilities<TDocument, TPatch, TAsset>['agentContext'];\n markerGraph?: PlayableLocalEditorMarkerGraphCapability<TDocument, TPatch>;\n assetActions?: PlayableLocalEditorAssetActionsCapability<TDocument, TPatch, TAsset>;\n prefabStage?: PlayableLocalEditorPrefabStageCapability<TDocument, TAsset>;\n transformCommands?: PlayableLocalEditorTransformCommandsCapability<TDocument, TPatch>;\n sceneGraph?: PlayableLocalEditorSceneGraphCapability<TDocument, TPatch>;\n hierarchyActions?: PlayableLocalEditorHierarchyActionsCapability<TDocument, TPatch>;\n worldPreview?: PlayableLocalEditorWorldPreviewCapability<TDocument>;\n rendering?: PlayableLocalEditorRenderingCapability<TDocument, TPatch>;\n}\n\nexport function createFpsGameEditorProductSceneHostOptions<\n TDocument,\n TPatch,\n TAsset = unknown,\n>(\n input: FpsGameEditorProductSceneHostOptionsInput<TDocument, TPatch, TAsset>,\n): FpsGameEditorProductSceneHostOptions<TDocument, TPatch, TAsset> {\n const documentAdapter: PlayableLocalEditorDocumentCapability<TDocument, TPatch, TAsset> = {\n ...input.document,\n };\n\n return {\n documentAdapter,\n capabilities: {\n documentLifecycle: input.lifecycle,\n selection: input.selection,\n inspector: input.inspector,\n assetBrowser: input.assetBrowser,\n agentContext: input.agentContext,\n markerGraph: input.markerGraph,\n assetActions: input.assetActions,\n prefabStage: input.prefabStage,\n transformCommands: input.transformCommands,\n sceneGraph: input.sceneGraph,\n hierarchyActions: input.hierarchyActions,\n worldPreview: input.worldPreview,\n rendering: input.rendering,\n },\n };\n}\n\nexport interface FpsGameEditorProductHostAssemblyInput<\n TDocument extends EditorSceneDocument<TGameObject>,\n TGameObject extends EditorSceneGameObject,\n TPatch,\n TAsset extends EditorSceneAssetLibraryItem,\n TContext,\n> {\n scene: FpsGameEditorStandardSceneAssembly<TDocument, TGameObject, TPatch, TAsset, TContext>;\n document: Pick<\n FpsGameEditorProductSceneDocumentAdapter<TDocument, TPatch, TAsset>,\n | 'getProjectionNodes'\n | 'getProjectionNode'\n | 'getProjectionNodesForTarget'\n | 'resolveProjectionTargetId'\n | 'getProjectionSelectionNodeIds'\n | 'createPatchFromAsset'\n >;\n lifecycle?: PlayableLocalEditorDocumentLifecycleCapability<TDocument, TAsset>;\n getInspectorContext?: () => TContext;\n agentContext?: PlayableLocalEditorHostCapabilities<TDocument, TPatch, TAsset>['agentContext'];\n assetActions?: Pick<\n PlayableLocalEditorAssetActionsCapability<TDocument, TPatch, TAsset>,\n 'createAssetActionPatch' | 'createPlacedAssetPatch' | 'findCreatedId'\n >;\n prefabStage?: PlayableLocalEditorPrefabStageCapability<TDocument, TAsset>;\n hierarchyActions?: PlayableLocalEditorHierarchyActionsCapability<TDocument, TPatch>;\n worldPreview?: PlayableLocalEditorWorldPreviewCapability<TDocument>;\n rendering?: PlayableLocalEditorRenderingCapability<TDocument, TPatch>;\n runtime?: FpsGameEditorProductHostRuntimeOptions<TDocument, TPatch, TAsset>;\n}\n\ntype FpsGameEditorProductForgePlayOptions<TDocument, TPatch, TAsset> = NonNullable<\n FpsGameEditorProductLocalEditorHostOptions<TDocument, TPatch, TAsset>['forgePlay']\n>;\n\nfunction collectProductEditorSceneDocumentDiagnostics(\n document: EditorSceneDocument,\n phase: EditorDiagnosticPhase,\n): EditorDiagnostic[] {\n try {\n assertPlayableEditorSceneDocumentContract(document);\n return [];\n } catch (error) {\n const record = error && typeof error === 'object'\n ? error as { code?: unknown; path?: unknown; message?: unknown }\n : null;\n const path = typeof record?.path === 'string' ? record.path : undefined;\n const code = classifyProductDocumentValidationCode(document, path)\n ?? (typeof record?.code === 'string'\n ? `document-${record.code.replace(/\\./g, '-')}`\n : 'document-contract-invalid');\n return [{\n code,\n severity: 'error',\n phase,\n source: 'document',\n producer: 'document-validation',\n message: typeof record?.message === 'string' ? record.message : String(error),\n suggestion: path\n ? `检查诊断详情中的文档路径 ${path},修复无效或重复的数据后重新验证。`\n : '检查当前 Scene Document 的结构完整性后重新验证。',\n subject: { kind: 'document' },\n ...(path ? {\n details: { path },\n } : {}),\n }];\n }\n}\n\nfunction classifyProductDocumentValidationCode(\n document: EditorSceneDocument,\n path: string | undefined,\n): string | null {\n if (!path) return null;\n const assetMatch = /^\\$\\.assets\\[(\\d+)\\]\\.id$/.exec(path);\n if (assetMatch && hasDuplicateIdAtIndex(document.assets, Number(assetMatch[1]))) {\n return 'document-asset-id-duplicate';\n }\n const objectMatch = /^\\$\\.scene\\.gameObjects\\[(\\d+)\\]\\.id$/.exec(path);\n if (objectMatch && hasDuplicateIdAtIndex(document.scene.gameObjects, Number(objectMatch[1]))) {\n return 'document-game-object-id-duplicate';\n }\n return null;\n}\n\nfunction hasDuplicateIdAtIndex(values: readonly { id?: unknown }[], index: number): boolean {\n const id = typeof values[index]?.id === 'string' ? values[index].id : null;\n return !!id && values.filter(value => value.id === id).length > 1;\n}\n\nexport interface FpsGameEditorProductHostRuntimeOptions<TDocument, TPatch, TAsset> extends Omit<\n FpsGameEditorProductLocalEditorHostOptions<TDocument, TPatch, TAsset>,\n 'documentAdapter' | 'capabilities' | 'persistenceAdapter' | 'worldAdapter' | 'forgePlay'\n> {\n persistenceAdapter: Omit<\n FpsGameEditorProductLocalEditorHostOptions<TDocument, TPatch, TAsset>['persistenceAdapter'],\n 'runGame'\n >;\n worldAdapter: Omit<\n FpsGameEditorProductLocalEditorHostOptions<TDocument, TPatch, TAsset>['worldAdapter'],\n 'disposeWorld' | 'disposeGameWorld' | 'getCanvas'\n >;\n forgePlay?: Omit<\n FpsGameEditorProductForgePlayOptions<TDocument, TPatch, TAsset>,\n 'handleAssetDrop' | 'handleProjectAssetCommand' | 'exportDocument'\n > & {\n handleProjectAssetCommand?: (\n bridgeContext: Parameters<NonNullable<FpsGameEditorProductForgePlayOptions<TDocument, TPatch, TAsset>['handleProjectAssetCommand']>>[0],\n normalizeLoadedPlatformAssetPayload: (payload: Record<string, unknown>) => Record<string, unknown>,\n ) => Promise<void> | void;\n exportDocument?: (input: Parameters<NonNullable<FpsGameEditorProductForgePlayOptions<TDocument, TPatch, TAsset>['exportDocument']>>[0] & {\n harness: PlayableLocalEditorHarnessApi<TDocument>;\n }) => ReturnType<NonNullable<FpsGameEditorProductForgePlayOptions<TDocument, TPatch, TAsset>['exportDocument']>>;\n };\n}\n\nexport interface FpsGameEditorProductHostAssembly<TDocument, TPatch, TAsset>\n extends FpsGameEditorProductSceneHostOptions<TDocument, TPatch, TAsset> {\n createHostOptions(\n context: FpsGameEditorProductLocalEditorContext<TDocument>,\n ): FpsGameEditorProductLocalEditorHostOptions<TDocument, TPatch, TAsset>;\n}\n\nexport function createFpsGameEditorProductHostAssembly<\n TDocument extends EditorSceneDocument<TGameObject>,\n TGameObject extends EditorSceneGameObject,\n TPatch,\n TAsset extends EditorSceneAssetLibraryItem,\n TContext,\n>(\n input: FpsGameEditorProductHostAssemblyInput<TDocument, TGameObject, TPatch, TAsset, TContext>,\n): FpsGameEditorProductHostAssembly<TDocument, TPatch, TAsset> {\n const scene = input.scene;\n const inspectorContext = (): TContext => input.getInspectorContext?.() ?? ({} as TContext);\n const projectValidateDocument = input.lifecycle?.validateDocument;\n const documentLifecycleCapabilities: PlayableLocalEditorDocumentLifecycleCapability<TDocument, TAsset> = {\n ...input.lifecycle,\n validateDocument: (document, context) => [\n ...collectProductEditorSceneDocumentDiagnostics(document, context.phase),\n ...(projectValidateDocument?.(document, context) ?? []),\n ],\n };\n const sceneHostOptions = createFpsGameEditorProductSceneHostOptions<TDocument, TPatch, TAsset>({\n document: {\n reduceDocument: scene.reduceDocument,\n getHierarchyItems: scene.getHierarchyItems,\n isHierarchyStructureChange: isProductHierarchyStructureChange,\n getProjectionNodes: input.document.getProjectionNodes,\n getProjectionNode: input.document.getProjectionNode,\n getProjectionNodesForTarget: input.document.getProjectionNodesForTarget,\n resolveProjectionTargetId: input.document.resolveProjectionTargetId,\n getProjectionSelectionNodeIds: input.document.getProjectionSelectionNodeIds,\n createPatchFromAsset: input.document.createPatchFromAsset,\n createSerializedPropertyPatch: scene.createInspectorPropertyPatch,\n resolveDiagnosticLocator: scene.resolveDiagnosticLocator,\n },\n lifecycle: documentLifecycleCapabilities,\n selection: {\n isSelectable: scene.isSelectableHierarchyId,\n isLocked: () => false,\n },\n inspector: {\n getInspectorObject: (document, activeId) => scene.getInspectorObject(document, activeId, inspectorContext()),\n getInspectorMultiObject: (document, selectedIds, activeId) => scene.getInspectorMultiObject(\n document,\n selectedIds,\n activeId,\n inspectorContext(),\n ),\n getRuntimeInspectorSections: scene.getRuntimeInspectorSections,\n },\n assetBrowser: {\n getBrowserAssetItems: scene.createBrowserAssetItems,\n },\n agentContext: input.agentContext,\n markerGraph: {\n getMarkerGraph: scene.getMarkerGraph,\n getMarkerTypeCatalog: scene.getMarkerTypeCatalog,\n getRelationTypeCatalog: scene.getRelationTypeCatalog,\n getPrefabInstanceMarkerOverlays: scene.getPrefabInstanceMarkerOverlays,\n getPrefabStageMarkerOverlays: scene.getPrefabStageMarkerOverlays,\n createMarkerGraphPatch: scene.createMarkerGraphPatch,\n },\n assetActions: {\n ...input.assetActions,\n createPlacedAssetPatch: input.assetActions?.createPlacedAssetPatch ?? ((command) => {\n if (!command.asset || !command.hit) return null;\n return scene.createPlacedAssetPatch({\n document: command.document,\n asset: command.asset,\n hit: command.hit as any,\n }) as PlayableLocalEditorPatchResult<TPatch> | null;\n }),\n findCreatedId: input.assetActions?.findCreatedId ?? findCreatedEditorSceneObjectId,\n },\n prefabStage: input.prefabStage,\n transformCommands: {\n canCreateSerializedMultiPropertyPatch(command) {\n return command.path.startsWith('transform.')\n || command.path === EDITOR_SCENE_STATIC_SHADOW_BAKE_ACTION_PATH\n || scene.canCreateSerializedMultiPropertyPatch(command);\n },\n createSerializedMultiPropertyPatch(command) {\n const scenePatch = scene.createSerializedMultiPropertyPatch(command);\n if (scenePatch) return scenePatch;\n if (command.targetIds.some(targetId => !scene.createInspectorPropertyPatch({\n document: command.document,\n targetId,\n path: command.path,\n value: command.value,\n }))) return null;\n return createEditorSceneSerializedMultiTransformPatch(command) as ReturnType<typeof scene.createSerializedMultiPropertyPatch>;\n },\n createTransformInspectorPreview: command => toEditorSceneLocalTransformFromWorld(\n command.document,\n command.targetId,\n command.transform,\n ),\n createTransformPatch: command => createEditorSceneTransformPatch(command as any) as any,\n createTransformBatchPatch: command => createEditorSceneTransformBatchPatch(command as any) as any,\n createDuplicateSelectionPatch: scene.createDuplicateSelectionPatch,\n },\n sceneGraph: {\n validateSceneGraphDrop: scene.validateReparent,\n validateSceneGraphMove: scene.validateHierarchyMove,\n validateSceneGraphGroupSelection: scene.validateGroupSelection,\n createSceneGraphRenamePatch: scene.createRenamePatch,\n createSceneGraphCreateGroupPatch: scene.createCreateGroupPatch,\n createSceneGraphCreatePrimitivePatch: scene.createCreatePrimitivePatch,\n createSceneGraphDeletePatch: scene.createDeleteSubtreePatch,\n createSceneGraphDropPatch: scene.createReparentPatch,\n createSceneGraphMovePatch: scene.createHierarchyMovePatch,\n createSceneGraphGroupSelectionPatch: scene.createGroupSelectionPatch,\n },\n hierarchyActions: input.hierarchyActions,\n worldPreview: input.worldPreview,\n rendering: input.rendering,\n });\n return {\n ...sceneHostOptions,\n createHostOptions(context) {\n const runtime = input.runtime;\n if (!runtime) {\n throw new Error('createFpsGameEditorProductHostAssembly requires runtime options before mounting.');\n }\n const { forgePlay, ...runtimeHostOptions } = runtime;\n return {\n ...runtimeHostOptions,\n ...sceneHostOptions,\n persistenceAdapter: {\n ...runtime.persistenceAdapter,\n },\n worldAdapter: {\n ...runtime.worldAdapter,\n },\n ...(forgePlay ? {\n forgePlay: {\n ...forgePlay,\n handleAssetDrop: context.rememberPlatformAssetDrop,\n handleProjectAssetCommand: forgePlay.handleProjectAssetCommand\n ? bridgeContext => forgePlay.handleProjectAssetCommand?.(\n bridgeContext,\n context.normalizeLoadedPlatformAssetPayload,\n )\n : undefined,\n exportDocument: forgePlay.exportDocument\n ? (exportInput) => {\n const harness = context.getHost()?.harness;\n if (!harness) throw new Error('editor_host_unavailable');\n return forgePlay.exportDocument!({ ...exportInput, harness });\n }\n : undefined,\n },\n } : {}),\n };\n },\n };\n}\n\nfunction isProductHierarchyStructureChange<TDocument, TPatch>(\n command: DocumentCommand<TDocument, TPatch>,\n): boolean {\n if (command.type === 'document.replace') return true;\n const impact = command.projectionImpact;\n if (impact?.type === 'incremental') {\n if ((impact.createdNodeIds?.length ?? 0) > 0\n || (impact.deletedNodeIds?.length ?? 0) > 0) {\n return true;\n }\n }\n const patch = command.patch as { kind?: unknown; path?: unknown } | null | undefined;\n if (patch?.kind === 'game-object.transform' || patch?.kind === 'game-object.transform-batch') return false;\n if (patch?.kind === 'game-object.field'\n || patch?.kind === 'game-object.field-batch'\n || patch?.kind === 'serialized-property') {\n return typeof patch.path !== 'string' || isHierarchyVisiblePropertyPath(patch.path);\n }\n if (typeof patch?.kind === 'string' && (\n patch.kind === 'game-object.rendering-alpha-index-migration'\n || patch.kind.startsWith('scene.material-asset.')\n || patch.kind === 'scene.prefab-material-asset.duplicate-and-bind'\n )) return false;\n if (typeof patch?.kind === 'string' && patch.kind.startsWith('scene.prefab-asset.')) return true;\n if (patch?.kind === 'scene.marker-graph') return true;\n if (typeof patch?.kind === 'string' && (\n patch.kind === 'game-object.create-from-asset'\n || patch.kind === 'game-object.duplicate-selection'\n || patch.kind === 'game-object.rename'\n || patch.kind === 'game-object.create-group'\n || patch.kind === 'game-object.create-primitive'\n || patch.kind === 'game-object.delete-subtree'\n || patch.kind === 'game-object.reparent'\n || patch.kind === 'game-object.hierarchy-move'\n || patch.kind === 'game-object.group-selection'\n )) return true;\n if (impact?.type === 'incremental' && (impact.syncTransformIds?.length ?? 0) > 0) return false;\n return true;\n}\n\nfunction isHierarchyVisiblePropertyPath(path: string): boolean {\n const normalized = path.trim();\n return normalized === 'name'\n || normalized === 'label'\n || normalized === 'parentId'\n || normalized === 'active'\n || normalized === 'enabled'\n || normalized === 'locked'\n || normalized === 'kind'\n || normalized === 'transformType';\n}\n\nfunction findCreatedEditorSceneObjectId<TDocument extends EditorSceneDocument>(\n beforeDocument: TDocument,\n afterDocument: TDocument,\n): string | null {\n const beforeIds = new Set(beforeDocument.scene.gameObjects.map(gameObject => gameObject.id));\n return afterDocument.scene.gameObjects.find(gameObject => !beforeIds.has(gameObject.id))?.id ?? null;\n}\n"]}
1
+ {"version":3,"file":"playable-product-scene-capabilities.js","sourceRoot":"","sources":["../src/playable-product-scene-capabilities.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n PlayableLocalEditorAssetActionsCapability,\n PlayableLocalEditorAssetBrowserCapability,\n PlayableLocalEditorDocumentCapability,\n PlayableLocalEditorDocumentLifecycleCapability,\n PlayableLocalEditorHierarchyActionsCapability,\n PlayableLocalEditorHostCapabilities,\n PlayableLocalEditorInspectorCapability,\n PlayableLocalEditorMarkerGraphCapability,\n PlayableLocalEditorPatchResult,\n PlayableLocalEditorPrefabStageCapability,\n PlayableLocalEditorRenderingCapability,\n PlayableLocalEditorSceneGraphCapability,\n PlayableLocalEditorSelectionCapability,\n PlayableLocalEditorTransformCommandsCapability,\n PlayableLocalEditorWorldPreviewCapability,\n PlayableLocalEditorHarnessApi,\n} from './playable-local-editor-host.js';\nimport type {\n FpsGameEditorProductLocalEditorContext,\n FpsGameEditorProductLocalEditorHostOptions,\n} from './playable-product-local-editor.js';\nimport type { DocumentCommand } from '@fps-games/editor-core';\nimport {\n EDITOR_SCENE_STATIC_SHADOW_BAKE_ACTION_PATH,\n assertPlayableEditorSceneDocumentContract,\n createEditorSceneSerializedMultiTransformPatch,\n createEditorSceneTransformBatchPatch,\n createEditorSceneTransformPatch,\n cloneEditorSceneDocument,\n getEditorScenePrefabStageDescriptor,\n getEditorScenePrefabStageProjectionNodeIdForNode,\n getEditorScenePrefabStageProjectionNodes,\n getEditorScenePrefabStageStructure,\n resolveEditorSceneAssetLibraryItemRelativePath,\n resolveEditorSceneLightingPreviewProfile,\n resolveEditorSceneMaterialSlotReimportDiff,\n resolveEditorScenePrefabStagePreviewTarget,\n toEditorSceneLocalTransformFromWorld,\n type EditorSceneAssetLibraryItem,\n type EditorSceneDocument,\n type EditorSceneGameObject,\n type EditorSceneMaterialDocument,\n type FpsGameEditorStandardSceneAssembly,\n} from '@fps-games/editor-playable-sdk';\nimport type { EditorDiagnostic, EditorDiagnosticPhase } from '@fps-games/editor-protocol';\nimport { createBabylonEditorPreviewEngine } from './internal/babylon-preview-engine.js';\n\nexport interface FpsGameEditorPlayableProjectHostAssemblyOptions<TDocument, TAsset> {\n scene: any;\n projection: any;\n sceneSource: any;\n rendering: any;\n projectServices: any;\n /** Overrides for projects whose prefab document semantics differ from the standard scene contract. */\n prefab?: Partial<{\n getDescriptor: typeof getEditorScenePrefabStageDescriptor;\n getProjectionNodes: typeof getEditorScenePrefabStageProjectionNodes;\n getStructure: typeof getEditorScenePrefabStageStructure;\n getInspectorObject: FpsGameEditorStandardSceneAssembly<any, any, any, any, any>['getPrefabStageInspectorObject'];\n resolvePreviewTarget: typeof resolveEditorScenePrefabStagePreviewTarget;\n getProjectionNodeId: typeof getEditorScenePrefabStageProjectionNodeIdForNode;\n }>;\n prepareDocument?(document: TDocument, assets: TAsset[]): TDocument;\n createAssetActionPatch(input: any): any;\n hierarchyOperations?: NonNullable<PlayableLocalEditorHierarchyActionsCapability<TDocument, any>['operations']>;\n loadingContent?: any;\n runtimeWindow: Window;\n gameModeEntryVisible?: boolean;\n loadBabylon(): Promise<any>;\n world?: { cameraTarget?: { x: number; y: number; z: number }; cameraRadius?: number; clearColor?: { r: number; g: number; b: number; a: number }; useRightHandedSystem?: boolean; selectionEdgesPrewarm?: 'eager' | 'lazy' };\n reportError?(error: unknown): void;\n}\n\ninterface FpsGameEditorStandardDocumentPreparation<TDocument, TAsset> {\n document: TDocument;\n assets: TAsset[];\n hydrateDocumentAssets(document: TDocument, assets: TAsset[]): TDocument;\n ensureEnvironmentDefaults(document: TDocument): TDocument;\n normalizeHierarchyDocument(document: TDocument): TDocument;\n}\n\nexport function prepareFpsGameEditorStandardDocument<TDocument, TAsset>(\n input: FpsGameEditorStandardDocumentPreparation<TDocument, TAsset>,\n): TDocument {\n return input.normalizeHierarchyDocument(\n input.ensureEnvironmentDefaults(input.hydrateDocumentAssets(input.document, input.assets)),\n );\n}\n\nconst DEFAULT_PLAYABLE_PROJECT_LOADING_CONTENT = Object.freeze({\n enter: Object.freeze({ title: '正在进入编辑界面…', description: '正在加载场景数据和编辑器,请稍候' }),\n saveScene: Object.freeze({ title: '正在保存场景…', description: '正在写入场景数据,请稍候' }),\n saveAndRunGame: Object.freeze({ title: '正在保存并退出…', description: '正在写入场景并返回游戏,请稍候' }),\n discardAndRunGame: Object.freeze({ title: '正在放弃变更并退出…', description: '正在恢复游戏场景,请稍候' }),\n assetImport: Object.freeze({ title: '正在添加资源…', description: '正在检查资产库并实例化资源,请稍候' }),\n});\n\nexport function createFpsGameEditorPlayableProjectHostAssembly<TDocument, TAsset extends EditorSceneAssetLibraryItem>(\n input: FpsGameEditorPlayableProjectHostAssemblyOptions<TDocument, TAsset>,\n) {\n let assets: TAsset[] = [];\n const scene = input.scene;\n const projection = input.projection;\n const prefab = input.prefab;\n const setAssets = (nextAssets: TAsset[]): TAsset[] => {\n assets = nextAssets;\n input.rendering.setTextures(projection.createEditorSceneInspectorTextureAssets(assets));\n return assets;\n };\n const hydrateDocumentAssets = (document: TDocument, nextAssets: TAsset[]): TDocument => (\n input.projectServices.hydrateDocumentAssets?.(document, nextAssets) ?? document\n );\n const prepareDocument = (document: TDocument, nextAssets: TAsset[]): TDocument => {\n if (input.prepareDocument) return input.prepareDocument(document, nextAssets);\n return prepareFpsGameEditorStandardDocument({\n document,\n assets: nextAssets,\n hydrateDocumentAssets,\n ensureEnvironmentDefaults: scene.ensureEnvironmentDefaults,\n normalizeHierarchyDocument: scene.normalizeHierarchyDocument,\n });\n };\n return createFpsGameEditorProductHostAssembly<any, any, any, any, any>({\n scene,\n document: {\n getProjectionNodes: projection.createProjectionNodes,\n getProjectionNode: (document: any, id: string) => {\n const gameObject = document.scene.gameObjects.find((entry: any) => entry.id === id);\n return gameObject ? projection.createProjectionNode(document, gameObject) : null;\n },\n getProjectionNodesForTarget: projection.getProjectionNodesForTarget,\n resolveProjectionTargetId: projection.resolveProjectionTargetId,\n getProjectionSelectionNodeIds: projection.getProjectionSelectionNodeIds,\n createPatchFromAsset: (asset: any, request: any) => ({ label: `Add ${request?.name?.trim() || asset.displayName}`, patch: { kind: 'game-object.create-from-asset', assetItem: asset, ...(request?.name?.trim() ? { name: request.name.trim() } : {}), ...(request?.placement ? { placement: request.placement } : {}) } }),\n },\n lifecycle: {\n prepareDocument: (document: TDocument, nextAssets: TAsset[]) => prepareDocument(document, setAssets(nextAssets)),\n hydrateDocumentAssets: (document: TDocument, nextAssets: TAsset[]) => {\n const hydratedAssets = setAssets(nextAssets);\n return hydrateDocumentAssets(document, hydratedAssets);\n },\n resolveUpdatedAssetSnapshot: (nextAssets: TAsset[], update: { assetId: string }) => {\n const asset = nextAssets.find(candidate => candidate.assetId === update.assetId || candidate.id === update.assetId);\n if (!asset) return null;\n const contentHash = typeof asset.metadata?.contentHash === 'string'\n ? asset.metadata.contentHash\n : undefined;\n return {\n assetId: asset.assetId,\n ...(contentHash ? { contentHash } : {}),\n };\n },\n listAssetSnapshots: (nextAssets: TAsset[]) => nextAssets.flatMap((asset) => {\n const assetId = typeof asset.assetId === 'string' && asset.assetId.trim()\n ? asset.assetId\n : typeof asset.id === 'string' && asset.id.trim()\n ? asset.id\n : null;\n if (!assetId) return [];\n const contentHash = typeof asset.metadata?.contentHash === 'string'\n ? asset.metadata.contentHash\n : undefined;\n return [{ assetId, ...(contentHash ? { contentHash } : {}) }];\n }),\n reconcileUpdatedAsset: (document: EditorSceneMaterialDocument, update: { assetId: string }) => {\n const diffs = document.scene.gameObjects\n .map(gameObject => resolveEditorSceneMaterialSlotReimportDiff(document, gameObject))\n .filter(diff => diff.assetId === update.assetId);\n return {\n document: scene.ensureEnvironmentDefaults(document),\n reconciledBindingCount: diffs.reduce(\n (count, diff) => count + diff.bindingRemaps.length + diff.bindingRemapIssues.length,\n 0,\n ),\n warnings: diffs.flatMap(diff => [\n ...diff.bindingRemapIssues.map(issue => ({\n code: issue.reason,\n gameObjectId: diff.gameObjectId,\n slotId: issue.fromSlotId,\n materialAssetId: issue.materialAssetId,\n candidateSlotIds: issue.candidateSlotIds,\n })),\n ...diff.issues\n .filter(issue => issue.reason === 'source-material-changed')\n .map(issue => ({\n code: issue.reason,\n gameObjectId: diff.gameObjectId,\n ...(issue.slotId ? { slotId: issue.slotId } : {}),\n ...(issue.materialAssetId ? { materialAssetId: issue.materialAssetId } : {}),\n })),\n ]),\n };\n },\n summarize: input.projectServices.summarize,\n },\n getInspectorContext: () => ({\n textureAssets: projection.createEditorSceneInspectorTextureAssets(assets),\n resolveTextureAssetUrl: (textureId: string | null | undefined) => (\n projection.resolveEditorSceneTextureRefUrl(assets, { textureAssetId: textureId })\n ),\n }),\n assetActions: { createAssetActionPatch: input.createAssetActionPatch },\n prefabStage: {\n getPrefabStageDescriptor: prefab?.getDescriptor ?? getEditorScenePrefabStageDescriptor,\n getPrefabStageProjectionNodes: prefab?.getProjectionNodes ?? getEditorScenePrefabStageProjectionNodes,\n getPrefabStageStructure: prefab?.getStructure ?? getEditorScenePrefabStageStructure,\n getPrefabStageInspectorObject: prefab?.getInspectorObject ?? scene.getPrefabStageInspectorObject,\n resolvePrefabStagePreviewTarget: prefab?.resolvePreviewTarget ?? resolveEditorScenePrefabStagePreviewTarget,\n getPrefabStageProjectionNodeId: prefab?.getProjectionNodeId ?? getEditorScenePrefabStageProjectionNodeIdForNode,\n },\n hierarchyActions: {\n operations: input.hierarchyOperations ?? [],\n },\n worldPreview: {\n getSceneCameraPreviewRig: projection.createSceneCameraPreviewRig,\n getWorldAppearance: (document: any) => resolveEditorSceneLightingPreviewProfile(document, { environmentLightId: 'environment_light', sunLightId: 'sun_light', defaultEnvironmentLight: scene.defaults.environmentLight, defaultSunLight: scene.defaults.sunLight }),\n },\n rendering: input.rendering.capability,\n runtime: {\n localTestActions: input.runtimeWindow.parent === input.runtimeWindow,\n gameModeEntryVisible: input.gameModeEntryVisible,\n authoring: { drivers: [input.sceneSource.createDriver()] },\n persistenceAdapter: {\n loadAuthoringSource: async () => { const loaded = await input.sceneSource.load(); return { source: loaded.source, document: loaded.document, assets: loaded.assets, summary: loaded.summary }; },\n loadAssets: input.sceneSource.loadAssets,\n ...(input.sceneSource.loadProjectFiles ? { loadProjectFiles: input.sceneSource.loadProjectFiles } : {}),\n ...(input.sceneSource.loadProjectFile ? { loadProjectFile: input.sceneSource.loadProjectFile } : {}),\n ...(input.sceneSource.resolveProjectMedia ? { resolveProjectMedia: input.sceneSource.resolveProjectMedia } : {}),\n },\n worldAdapter: {\n loadPreviewEngine: async () => projection.createEditorPreviewBabylonModule(await input.loadBabylon()),\n createPreviewEngine: createBabylonEditorPreviewEngine,\n importPreviewAsset: projection.importEditorProjectionModel,\n resolveMaterialTextureUrl: (texture: unknown) => projection.resolveEditorSceneTextureRefUrl(assets, texture),\n resolveAssetId: (asset: TAsset) => asset.assetId,\n toBrowserAssetItem: (asset: TAsset) => ({ id: asset.assetId, guid: asset.guid, assetId: asset.assetId, kind: asset.kind, label: asset.displayName, relativePath: resolveEditorSceneAssetLibraryItemRelativePath(asset), meta: asset.assetId, external: asset.external, origin: asset.origin, dedupeKey: asset.dedupeKey, contentHash: typeof asset.metadata?.contentHash === 'string' ? asset.metadata.contentHash : undefined, placeable: asset.placeable, preview: projection.createEditorSceneLibraryAssetPreview(asset), disabled: asset.placeable === false }),\n },\n world: input.world,\n createGrid: projection.createEditorGrid,\n lifecycle: { loadingContent: input.loadingContent ?? DEFAULT_PLAYABLE_PROJECT_LOADING_CONTENT, beforeDiscardAndRunGame: input.rendering.reset },\n forgePlay: { window: input.runtimeWindow, hasUnsavedPlatformChanges: input.rendering.isDirty, handleProjectAssetCommand: input.projectServices.handleProjectAssetCommand, exportDocument: ({ harness, payload, saveState, postEvent }: any) => input.projectServices.exportDocument(harness, payload, saveState, postEvent), reportError: input.reportError },\n },\n });\n}\n\nexport interface FpsGameEditorProductSceneDocumentAdapter<\n TDocument,\n TPatch,\n TAsset = unknown,\n> extends Pick<\n PlayableLocalEditorDocumentCapability<TDocument, TPatch, TAsset>,\n | 'reduceDocument'\n | 'getHierarchyItems'\n | 'isHierarchyStructureChange'\n | 'getProjectionNodes'\n | 'getProjectionNode'\n | 'getProjectionNodesForTarget'\n | 'resolveProjectionTargetId'\n | 'getProjectionSelectionNodeIds'\n | 'createPatchFromAsset'\n | 'createSerializedPropertyPatch'\n | 'resolveDiagnosticLocator'\n > {}\n\nexport interface FpsGameEditorProductSceneHostOptions<\n TDocument,\n TPatch,\n TAsset = unknown,\n> {\n documentAdapter: PlayableLocalEditorDocumentCapability<TDocument, TPatch, TAsset>;\n capabilities: PlayableLocalEditorHostCapabilities<TDocument, TPatch, TAsset>;\n}\n\nexport interface FpsGameEditorProductSceneHostOptionsInput<\n TDocument,\n TPatch,\n TAsset = unknown,\n> {\n document: FpsGameEditorProductSceneDocumentAdapter<TDocument, TPatch, TAsset>;\n lifecycle?: PlayableLocalEditorDocumentLifecycleCapability<TDocument, TAsset>;\n selection?: PlayableLocalEditorSelectionCapability<TDocument>;\n inspector?: PlayableLocalEditorInspectorCapability<TDocument>;\n assetBrowser?: PlayableLocalEditorAssetBrowserCapability<TDocument>;\n markerGraph?: PlayableLocalEditorMarkerGraphCapability<TDocument, TPatch>;\n assetActions?: PlayableLocalEditorAssetActionsCapability<TDocument, TPatch, TAsset>;\n prefabStage?: PlayableLocalEditorPrefabStageCapability<TDocument, TAsset>;\n transformCommands?: PlayableLocalEditorTransformCommandsCapability<TDocument, TPatch>;\n sceneGraph?: PlayableLocalEditorSceneGraphCapability<TDocument, TPatch>;\n hierarchyActions?: PlayableLocalEditorHierarchyActionsCapability<TDocument, TPatch>;\n worldPreview?: PlayableLocalEditorWorldPreviewCapability<TDocument>;\n rendering?: PlayableLocalEditorRenderingCapability<TDocument, TPatch>;\n}\n\nexport function createFpsGameEditorProductSceneHostOptions<\n TDocument,\n TPatch,\n TAsset = unknown,\n>(\n input: FpsGameEditorProductSceneHostOptionsInput<TDocument, TPatch, TAsset>,\n): FpsGameEditorProductSceneHostOptions<TDocument, TPatch, TAsset> {\n const documentAdapter: PlayableLocalEditorDocumentCapability<TDocument, TPatch, TAsset> = {\n ...input.document,\n };\n\n return {\n documentAdapter,\n capabilities: {\n documentLifecycle: input.lifecycle,\n selection: input.selection,\n inspector: input.inspector,\n assetBrowser: input.assetBrowser,\n markerGraph: input.markerGraph,\n assetActions: input.assetActions,\n prefabStage: input.prefabStage,\n transformCommands: input.transformCommands,\n sceneGraph: input.sceneGraph,\n hierarchyActions: input.hierarchyActions,\n worldPreview: input.worldPreview,\n rendering: input.rendering,\n },\n };\n}\n\nexport interface FpsGameEditorProductHostAssemblyInput<\n TDocument extends EditorSceneDocument<TGameObject>,\n TGameObject extends EditorSceneGameObject,\n TPatch,\n TAsset extends EditorSceneAssetLibraryItem,\n TContext,\n> {\n scene: FpsGameEditorStandardSceneAssembly<TDocument, TGameObject, TPatch, TAsset, TContext>;\n document: Pick<\n FpsGameEditorProductSceneDocumentAdapter<TDocument, TPatch, TAsset>,\n | 'getProjectionNodes'\n | 'getProjectionNode'\n | 'getProjectionNodesForTarget'\n | 'resolveProjectionTargetId'\n | 'getProjectionSelectionNodeIds'\n | 'createPatchFromAsset'\n >;\n lifecycle?: PlayableLocalEditorDocumentLifecycleCapability<TDocument, TAsset>;\n getInspectorContext?: () => TContext;\n assetActions?: Pick<\n PlayableLocalEditorAssetActionsCapability<TDocument, TPatch, TAsset>,\n 'createAssetActionPatch' | 'createPlacedAssetPatch' | 'findCreatedId'\n >;\n prefabStage?: PlayableLocalEditorPrefabStageCapability<TDocument, TAsset>;\n hierarchyActions?: PlayableLocalEditorHierarchyActionsCapability<TDocument, TPatch>;\n worldPreview?: PlayableLocalEditorWorldPreviewCapability<TDocument>;\n rendering?: PlayableLocalEditorRenderingCapability<TDocument, TPatch>;\n runtime?: FpsGameEditorProductHostRuntimeOptions<TDocument, TPatch, TAsset>;\n}\n\ntype FpsGameEditorProductForgePlayOptions<TDocument, TPatch, TAsset> = NonNullable<\n FpsGameEditorProductLocalEditorHostOptions<TDocument, TPatch, TAsset>['forgePlay']\n>;\n\nfunction collectProductEditorSceneDocumentDiagnostics(\n document: EditorSceneDocument,\n phase: EditorDiagnosticPhase,\n): EditorDiagnostic[] {\n try {\n assertPlayableEditorSceneDocumentContract(document);\n return [];\n } catch (error) {\n const record = error && typeof error === 'object'\n ? error as { code?: unknown; path?: unknown; message?: unknown }\n : null;\n const path = typeof record?.path === 'string' ? record.path : undefined;\n const code = classifyProductDocumentValidationCode(document, path)\n ?? (typeof record?.code === 'string'\n ? `document-${record.code.replace(/\\./g, '-')}`\n : 'document-contract-invalid');\n return [{\n code,\n severity: 'error',\n phase,\n source: 'document',\n producer: 'document-validation',\n message: typeof record?.message === 'string' ? record.message : String(error),\n suggestion: path\n ? `检查诊断详情中的文档路径 ${path},修复无效或重复的数据后重新验证。`\n : '检查当前 Scene Document 的结构完整性后重新验证。',\n subject: { kind: 'document' },\n ...(path ? {\n details: { path },\n } : {}),\n }];\n }\n}\n\nfunction classifyProductDocumentValidationCode(\n document: EditorSceneDocument,\n path: string | undefined,\n): string | null {\n if (!path) return null;\n const assetMatch = /^\\$\\.assets\\[(\\d+)\\]\\.id$/.exec(path);\n if (assetMatch && hasDuplicateIdAtIndex(document.assets, Number(assetMatch[1]))) {\n return 'document-asset-id-duplicate';\n }\n const objectMatch = /^\\$\\.scene\\.gameObjects\\[(\\d+)\\]\\.id$/.exec(path);\n if (objectMatch && hasDuplicateIdAtIndex(document.scene.gameObjects, Number(objectMatch[1]))) {\n return 'document-game-object-id-duplicate';\n }\n return null;\n}\n\nfunction hasDuplicateIdAtIndex(values: readonly { id?: unknown }[], index: number): boolean {\n const id = typeof values[index]?.id === 'string' ? values[index].id : null;\n return !!id && values.filter(value => value.id === id).length > 1;\n}\n\nexport interface FpsGameEditorProductHostRuntimeOptions<TDocument, TPatch, TAsset> extends Omit<\n FpsGameEditorProductLocalEditorHostOptions<TDocument, TPatch, TAsset>,\n 'documentAdapter' | 'capabilities' | 'persistenceAdapter' | 'worldAdapter' | 'forgePlay'\n> {\n persistenceAdapter: Omit<\n FpsGameEditorProductLocalEditorHostOptions<TDocument, TPatch, TAsset>['persistenceAdapter'],\n 'runGame'\n >;\n worldAdapter: Omit<\n FpsGameEditorProductLocalEditorHostOptions<TDocument, TPatch, TAsset>['worldAdapter'],\n 'disposeWorld' | 'disposeGameWorld' | 'getCanvas'\n >;\n forgePlay?: Omit<\n FpsGameEditorProductForgePlayOptions<TDocument, TPatch, TAsset>,\n 'handleAssetDrop' | 'handleProjectAssetCommand' | 'exportDocument'\n > & {\n handleProjectAssetCommand?: (\n bridgeContext: Parameters<NonNullable<FpsGameEditorProductForgePlayOptions<TDocument, TPatch, TAsset>['handleProjectAssetCommand']>>[0],\n normalizeLoadedPlatformAssetPayload: (payload: Record<string, unknown>) => Record<string, unknown>,\n ) => Promise<void> | void;\n exportDocument?: (input: Parameters<NonNullable<FpsGameEditorProductForgePlayOptions<TDocument, TPatch, TAsset>['exportDocument']>>[0] & {\n harness: PlayableLocalEditorHarnessApi<TDocument>;\n }) => ReturnType<NonNullable<FpsGameEditorProductForgePlayOptions<TDocument, TPatch, TAsset>['exportDocument']>>;\n };\n}\n\nexport interface FpsGameEditorProductHostAssembly<TDocument, TPatch, TAsset>\n extends FpsGameEditorProductSceneHostOptions<TDocument, TPatch, TAsset> {\n createHostOptions(\n context: FpsGameEditorProductLocalEditorContext<TDocument>,\n ): FpsGameEditorProductLocalEditorHostOptions<TDocument, TPatch, TAsset>;\n}\n\nexport function createFpsGameEditorProductHostAssembly<\n TDocument extends EditorSceneDocument<TGameObject>,\n TGameObject extends EditorSceneGameObject,\n TPatch,\n TAsset extends EditorSceneAssetLibraryItem,\n TContext,\n>(\n input: FpsGameEditorProductHostAssemblyInput<TDocument, TGameObject, TPatch, TAsset, TContext>,\n): FpsGameEditorProductHostAssembly<TDocument, TPatch, TAsset> {\n const scene = input.scene;\n const inspectorContext = (): TContext => input.getInspectorContext?.() ?? ({} as TContext);\n const projectValidateDocument = input.lifecycle?.validateDocument;\n const documentLifecycleCapabilities: PlayableLocalEditorDocumentLifecycleCapability<TDocument, TAsset> = {\n ...input.lifecycle,\n validateDocument: (document, context) => [\n ...collectProductEditorSceneDocumentDiagnostics(document, context.phase),\n ...(projectValidateDocument?.(document, context) ?? []),\n ],\n };\n const sceneHostOptions = createFpsGameEditorProductSceneHostOptions<TDocument, TPatch, TAsset>({\n document: {\n reduceDocument: scene.reduceDocument,\n getHierarchyItems: scene.getHierarchyItems,\n isHierarchyStructureChange: isProductHierarchyStructureChange,\n getProjectionNodes: input.document.getProjectionNodes,\n getProjectionNode: input.document.getProjectionNode,\n getProjectionNodesForTarget: input.document.getProjectionNodesForTarget,\n resolveProjectionTargetId: input.document.resolveProjectionTargetId,\n getProjectionSelectionNodeIds: input.document.getProjectionSelectionNodeIds,\n createPatchFromAsset: input.document.createPatchFromAsset,\n createSerializedPropertyPatch: scene.createInspectorPropertyPatch,\n resolveDiagnosticLocator: scene.resolveDiagnosticLocator,\n },\n lifecycle: documentLifecycleCapabilities,\n selection: {\n isSelectable: scene.isSelectableHierarchyId,\n isLocked: () => false,\n },\n inspector: {\n getInspectorObject: (document, activeId) => scene.getInspectorObject(document, activeId, inspectorContext()),\n getInspectorMultiObject: (document, selectedIds, activeId) => scene.getInspectorMultiObject(\n document,\n selectedIds,\n activeId,\n inspectorContext(),\n ),\n getRuntimeInspectorSections: scene.getRuntimeInspectorSections,\n },\n assetBrowser: {\n getBrowserAssetItems: scene.createBrowserAssetItems,\n },\n markerGraph: {\n getMarkerGraph: scene.getMarkerGraph,\n getMarkerTypeCatalog: scene.getMarkerTypeCatalog,\n getRelationTypeCatalog: scene.getRelationTypeCatalog,\n getPrefabInstanceMarkerOverlays: scene.getPrefabInstanceMarkerOverlays,\n getPrefabStageMarkerOverlays: scene.getPrefabStageMarkerOverlays,\n createMarkerGraphPatch: scene.createMarkerGraphPatch,\n },\n assetActions: {\n ...input.assetActions,\n createPlacedAssetPatch: input.assetActions?.createPlacedAssetPatch ?? ((command) => {\n if (!command.asset || !command.hit) return null;\n return scene.createPlacedAssetPatch({\n document: command.document,\n asset: command.asset,\n hit: command.hit as any,\n }) as PlayableLocalEditorPatchResult<TPatch> | null;\n }),\n findCreatedId: input.assetActions?.findCreatedId ?? findCreatedEditorSceneObjectId,\n },\n prefabStage: input.prefabStage,\n transformCommands: {\n canCreateSerializedMultiPropertyPatch(command) {\n return command.path.startsWith('transform.')\n || command.path === EDITOR_SCENE_STATIC_SHADOW_BAKE_ACTION_PATH\n || scene.canCreateSerializedMultiPropertyPatch(command);\n },\n createSerializedMultiPropertyPatch(command) {\n const scenePatch = scene.createSerializedMultiPropertyPatch(command);\n if (scenePatch) return scenePatch;\n if (command.targetIds.some(targetId => !scene.createInspectorPropertyPatch({\n document: command.document,\n targetId,\n path: command.path,\n value: command.value,\n }))) return null;\n return createEditorSceneSerializedMultiTransformPatch(command) as ReturnType<typeof scene.createSerializedMultiPropertyPatch>;\n },\n createTransformInspectorPreview: command => toEditorSceneLocalTransformFromWorld(\n command.document,\n command.targetId,\n command.transform,\n ),\n createTransformPatch: command => createEditorSceneTransformPatch(command as any) as any,\n createTransformBatchPatch: command => createEditorSceneTransformBatchPatch(command as any) as any,\n createDuplicateSelectionPatch: scene.createDuplicateSelectionPatch,\n },\n sceneGraph: {\n validateSceneGraphDrop: scene.validateReparent,\n validateSceneGraphMove: scene.validateHierarchyMove,\n validateSceneGraphGroupSelection: scene.validateGroupSelection,\n createSceneGraphRenamePatch: scene.createRenamePatch,\n createSceneGraphCreateGroupPatch: scene.createCreateGroupPatch,\n createSceneGraphCreatePrimitivePatch: scene.createCreatePrimitivePatch,\n createSceneGraphDeletePatch: scene.createDeleteSubtreePatch,\n createSceneGraphDropPatch: scene.createReparentPatch,\n createSceneGraphMovePatch: scene.createHierarchyMovePatch,\n createSceneGraphGroupSelectionPatch: scene.createGroupSelectionPatch,\n },\n hierarchyActions: input.hierarchyActions,\n worldPreview: input.worldPreview,\n rendering: input.rendering,\n });\n Object.assign(sceneHostOptions.documentAdapter, {\n cloneDocument: (document: TDocument) => cloneEditorSceneDocument(document),\n });\n return {\n ...sceneHostOptions,\n createHostOptions(context) {\n const runtime = input.runtime;\n if (!runtime) {\n throw new Error('createFpsGameEditorProductHostAssembly requires runtime options before mounting.');\n }\n const { forgePlay, ...runtimeHostOptions } = runtime;\n return {\n ...runtimeHostOptions,\n ...sceneHostOptions,\n persistenceAdapter: {\n ...runtime.persistenceAdapter,\n },\n worldAdapter: {\n ...runtime.worldAdapter,\n },\n ...(forgePlay ? {\n forgePlay: {\n ...forgePlay,\n handleAssetDrop: context.rememberPlatformAssetDrop,\n handleProjectAssetCommand: forgePlay.handleProjectAssetCommand\n ? bridgeContext => forgePlay.handleProjectAssetCommand?.(\n bridgeContext,\n context.normalizeLoadedPlatformAssetPayload,\n )\n : undefined,\n exportDocument: forgePlay.exportDocument\n ? (exportInput) => {\n const harness = context.getHost()?.harness;\n if (!harness) throw new Error('editor_host_unavailable');\n return forgePlay.exportDocument!({ ...exportInput, harness });\n }\n : undefined,\n },\n } : {}),\n };\n },\n };\n}\n\nfunction isProductHierarchyStructureChange<TDocument, TPatch>(\n command: DocumentCommand<TDocument, TPatch>,\n): boolean {\n if (command.type === 'document.replace') return true;\n const impact = command.projectionImpact;\n if (impact?.type === 'incremental') {\n if ((impact.createdNodeIds?.length ?? 0) > 0\n || (impact.deletedNodeIds?.length ?? 0) > 0) {\n return true;\n }\n }\n const patch = command.patch as { kind?: unknown; path?: unknown } | null | undefined;\n if (isBoundedHierarchyLabelOnlyChange(command, patch)) return false;\n if (patch?.kind === 'game-object.transform' || patch?.kind === 'game-object.transform-batch') return false;\n if (patch?.kind === 'game-object.field'\n || patch?.kind === 'game-object.field-batch'\n || patch?.kind === 'serialized-property') {\n return typeof patch.path !== 'string' || isHierarchyVisiblePropertyPath(patch.path);\n }\n if (typeof patch?.kind === 'string' && (\n patch.kind === 'game-object.rendering-alpha-index-migration'\n || patch.kind.startsWith('scene.material-asset.')\n || patch.kind === 'scene.prefab-material-asset.duplicate-and-bind'\n )) return false;\n if (typeof patch?.kind === 'string' && patch.kind.startsWith('scene.prefab-asset.')) return true;\n if (patch?.kind === 'scene.marker-graph') return true;\n if (typeof patch?.kind === 'string' && (\n patch.kind === 'game-object.create-from-asset'\n || patch.kind === 'game-object.duplicate-selection'\n || patch.kind === 'game-object.rename'\n || patch.kind === 'game-object.create-group'\n || patch.kind === 'game-object.create-primitive'\n || patch.kind === 'game-object.delete-subtree'\n || patch.kind === 'game-object.reparent'\n || patch.kind === 'game-object.hierarchy-move'\n || patch.kind === 'game-object.group-selection'\n )) return true;\n if (impact?.type === 'incremental' && (impact.syncTransformIds?.length ?? 0) > 0) return false;\n return true;\n}\n\nfunction isBoundedHierarchyLabelOnlyChange<TDocument, TPatch>(\n command: DocumentCommand<TDocument, TPatch>,\n patch: {\n kind?: unknown;\n path?: unknown;\n targetId?: unknown;\n targetIds?: unknown;\n } | null | undefined,\n): boolean {\n const isLabelOnlyPatch = patch?.kind === 'game-object.rename'\n || ((patch?.kind === 'game-object.field'\n || patch?.kind === 'game-object.field-batch'\n || patch?.kind === 'serialized-property')\n && patch.path === 'name');\n if (!isLabelOnlyPatch) return false;\n const hierarchy = command.presentationImpact?.hierarchy;\n if (!hierarchy || hierarchy === 'full') return false;\n const targetIds = [\n ...(typeof patch.targetId === 'string' ? [patch.targetId] : []),\n ...(Array.isArray(patch.targetIds)\n ? patch.targetIds.filter((id): id is string => typeof id === 'string')\n : []),\n ];\n if (targetIds.length === 0) return false;\n const labelIds = new Set(hierarchy.labelIds);\n return targetIds.every(id => labelIds.has(id));\n}\n\nfunction isHierarchyVisiblePropertyPath(path: string): boolean {\n const normalized = path.trim();\n return normalized === 'name'\n || normalized === 'label'\n || normalized === 'parentId'\n || normalized === 'active'\n || normalized === 'enabled'\n || normalized === 'locked'\n || normalized === 'kind'\n || normalized === 'transformType';\n}\n\nfunction findCreatedEditorSceneObjectId<TDocument extends EditorSceneDocument>(\n beforeDocument: TDocument,\n afterDocument: TDocument,\n): string | null {\n const beforeIds = new Set(beforeDocument.scene.gameObjects.map(gameObject => gameObject.id));\n return afterDocument.scene.gameObjects.find(gameObject => !beforeIds.has(gameObject.id))?.id ?? null;\n}\n"]}
@@ -1,3 +1,7 @@
1
+ import '@babylonjs/core/Shaders/postprocess.vertex.js';
2
+ import '@babylonjs/core/Shaders/pass.fragment.js';
3
+ import '@babylonjs/core/ShadersWGSL/postprocess.vertex.js';
4
+ import '@babylonjs/core/ShadersWGSL/pass.fragment.js';
1
5
  export { createFpsBabylonGameWorldPluginLifecycle, } from '@fps-games/babylon-renderer';
2
6
  export type { FpsBabylonGameWorldPluginLifecycle, FpsBabylonGameWorldPluginLifecycleOptions, FpsBabylonRendererContext, FpsBabylonRendererService, FpsBabylonRendererShadowService, BabylonShadowMapExperimentEvidence, BabylonRuntimeShadowObjectActivityDescriptor, BabylonRuntimeShadowObjectRegistration, BabylonRuntimeShadowObjectRenderable, BabylonRuntimeShadowObjectsOwner, BabylonRuntimeShadowObjectsRegistration, BabylonRuntimeShadowObjectsSnapshot, } from '@fps-games/babylon-renderer';
3
7
  export type { ShadowMapExperimentActivityKind, ShadowMapExperimentActivitySourceController, } from '@fps-games/playable-rendering/runtime';
@@ -1 +1 @@
1
- {"version":3,"file":"playable-runtime-babylon.d.ts","sourceRoot":"","sources":["../src/playable-runtime-babylon.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wCAAwC,GACzC,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,kCAAkC,EAClC,yCAAyC,EACzC,yBAAyB,EACzB,yBAAyB,EACzB,+BAA+B,EAC/B,kCAAkC,EAClC,4CAA4C,EAC5C,sCAAsC,EACtC,oCAAoC,EACpC,gCAAgC,EAChC,uCAAuC,EACvC,mCAAmC,GACpC,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,+BAA+B,EAC/B,2CAA2C,GAC5C,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"playable-runtime-babylon.d.ts","sourceRoot":"","sources":["../src/playable-runtime-babylon.ts"],"names":[],"mappings":"AAAA,OAAO,+CAA+C,CAAC;AACvD,OAAO,0CAA0C,CAAC;AAClD,OAAO,mDAAmD,CAAC;AAC3D,OAAO,8CAA8C,CAAC;AAEtD,OAAO,EACL,wCAAwC,GACzC,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,kCAAkC,EAClC,yCAAyC,EACzC,yBAAyB,EACzB,yBAAyB,EACzB,+BAA+B,EAC/B,kCAAkC,EAClC,4CAA4C,EAC5C,sCAAsC,EACtC,oCAAoC,EACpC,gCAAgC,EAChC,uCAAuC,EACvC,mCAAmC,GACpC,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,+BAA+B,EAC/B,2CAA2C,GAC5C,MAAM,uCAAuC,CAAC"}
@@ -1,2 +1,6 @@
1
+ import '@babylonjs/core/Shaders/postprocess.vertex.js';
2
+ import '@babylonjs/core/Shaders/pass.fragment.js';
3
+ import '@babylonjs/core/ShadersWGSL/postprocess.vertex.js';
4
+ import '@babylonjs/core/ShadersWGSL/pass.fragment.js';
1
5
  export { createFpsBabylonGameWorldPluginLifecycle, } from '@fps-games/babylon-renderer';
2
6
  //# sourceMappingURL=playable-runtime-babylon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"playable-runtime-babylon.js","sourceRoot":"","sources":["../src/playable-runtime-babylon.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wCAAwC,GACzC,MAAM,6BAA6B,CAAC","sourcesContent":["export {\n createFpsBabylonGameWorldPluginLifecycle,\n} from '@fps-games/babylon-renderer';\nexport type {\n FpsBabylonGameWorldPluginLifecycle,\n FpsBabylonGameWorldPluginLifecycleOptions,\n FpsBabylonRendererContext,\n FpsBabylonRendererService,\n FpsBabylonRendererShadowService,\n BabylonShadowMapExperimentEvidence,\n BabylonRuntimeShadowObjectActivityDescriptor,\n BabylonRuntimeShadowObjectRegistration,\n BabylonRuntimeShadowObjectRenderable,\n BabylonRuntimeShadowObjectsOwner,\n BabylonRuntimeShadowObjectsRegistration,\n BabylonRuntimeShadowObjectsSnapshot,\n} from '@fps-games/babylon-renderer';\nexport type {\n ShadowMapExperimentActivityKind,\n ShadowMapExperimentActivitySourceController,\n} from '@fps-games/playable-rendering/runtime';\n"]}
1
+ {"version":3,"file":"playable-runtime-babylon.js","sourceRoot":"","sources":["../src/playable-runtime-babylon.ts"],"names":[],"mappings":"AAAA,OAAO,+CAA+C,CAAC;AACvD,OAAO,0CAA0C,CAAC;AAClD,OAAO,mDAAmD,CAAC;AAC3D,OAAO,8CAA8C,CAAC;AAEtD,OAAO,EACL,wCAAwC,GACzC,MAAM,6BAA6B,CAAC","sourcesContent":["import '@babylonjs/core/Shaders/postprocess.vertex.js';\nimport '@babylonjs/core/Shaders/pass.fragment.js';\nimport '@babylonjs/core/ShadersWGSL/postprocess.vertex.js';\nimport '@babylonjs/core/ShadersWGSL/pass.fragment.js';\n\nexport {\n createFpsBabylonGameWorldPluginLifecycle,\n} from '@fps-games/babylon-renderer';\nexport type {\n FpsBabylonGameWorldPluginLifecycle,\n FpsBabylonGameWorldPluginLifecycleOptions,\n FpsBabylonRendererContext,\n FpsBabylonRendererService,\n FpsBabylonRendererShadowService,\n BabylonShadowMapExperimentEvidence,\n BabylonRuntimeShadowObjectActivityDescriptor,\n BabylonRuntimeShadowObjectRegistration,\n BabylonRuntimeShadowObjectRenderable,\n BabylonRuntimeShadowObjectsOwner,\n BabylonRuntimeShadowObjectsRegistration,\n BabylonRuntimeShadowObjectsSnapshot,\n} from '@fps-games/babylon-renderer';\nexport type {\n ShadowMapExperimentActivityKind,\n ShadowMapExperimentActivitySourceController,\n} from '@fps-games/playable-rendering/runtime';\n"]}
@@ -25,7 +25,7 @@ export type { FpsGameEditorStandardLocalEditorEnvironmentModuleOptions, FpsGameE
25
25
  export type { FpsGameEditorProductRenderingRuntimeOptions } from './playable-product-rendering.js';
26
26
  export type { ShadowMapExperimentConfig } from '@fps-games/playable-rendering/runtime';
27
27
  export type { FpsGameEditorProductBabylonModule, FpsGameEditorProductProjectionGroundDecalHooks, FpsGameEditorProductProjectionImportStats, FpsGameEditorProductProjectionPreview, FpsGameEditorProductProjectionPreviewOptions, } from './playable-product-projection-preview.js';
28
- export type { FpsGameEditorLocalEditorHostOptions, FpsGameEditorLocalEditorHostResult, PlayableLocalEditorAuthoringHostLike, PlayableLocalEditorAuthoringSourceDriverLike, PlayableLocalEditorAssetCreationOptions, PlayableLocalEditorAssetCreationResult, PlayableLocalEditorAssetReloadResult, PlayableLocalEditorAgentContextCapability, PlayableLocalEditorAgentContextObjectInput, PlayableLocalEditorAgentContextObjectSetInput, PlayableLocalEditorAgentContextRegionBindingInput, PlayableLocalEditorAssetActionsCapability, PlayableLocalEditorAssetBrowserCapability, PlayableLocalEditorDocumentLifecycleCapability, PlayableLocalEditorHostCompatibilityDiagnostic, PlayableLocalEditorHostCompatibilityReport, PlayableLocalEditorHostCompatibilitySeverity, PlayableLocalEditorHost, PlayableLocalEditorHostCapabilities, PlayableLocalEditorHostManifest, PlayableLocalEditorHostManifestMetadata, PlayableLocalEditorDocumentCapability, PlayableLocalEditorGridContext, PlayableLocalEditorGridFactory, PlayableLocalEditorHarnessApi, PlayableLocalEditorHistoryOperation, PlayableLocalEditorHistoryOperationOptions, PlayableLocalEditorHistoryOperationResult, PlayableLocalEditorHistoryProjectionResult, PlayableLocalEditorHistoryStateResult, PlayableLocalEditorHierarchyActionsCapability, PlayableLocalEditorMarkerGraphCapability, PlayableLocalEditorMarkerGraphCommand, PlayableLocalEditorMultiPropertyCapabilityInput, PlayableLocalEditorMultiPropertyPatchInput, PlayableLocalEditorPatchResult, PlayableLocalEditorPersistenceCapability, PlayableLocalEditorPropertyPatchInput, PlayableLocalEditorOperationOrigin, PlayableLocalEditorPrefabStageCapability, PlayableLocalEditorPrefabStageDescriptor, PlayableLocalEditorPrefabStageInput, PlayableLocalEditorProjectionImpact, PlayableLocalEditorProjectionWaitPolicy, PlayableLocalEditorRenderingCapability, PlayableLocalEditorRenderingPropertyChangeResult, PlayableLocalEditorRuntimeInspectorContext, PlayableLocalEditorSceneGraphCapability, PlayableLocalEditorSelectionCapability, PlayableLocalEditorTransformBatchPatchInput, PlayableLocalEditorTransformCommandsCapability, PlayableLocalEditorTransformInspectorPreviewInput, PlayableLocalEditorTransformPatchInput, PlayableLocalEditorWorldCapability, PlayableLocalEditorWorldOptions, PlayableLocalEditorWorldPreviewCapability, PlayableLocalEditorInspectorCapability, } from './playable-local-editor-host.js';
28
+ export type { FpsGameEditorLocalEditorHostOptions, FpsGameEditorLocalEditorHostResult, PlayableLocalEditorAuthoringHostLike, PlayableLocalEditorAuthoringSourceDriverLike, PlayableLocalEditorAssetCreationOptions, PlayableLocalEditorAssetCreationResult, PlayableLocalEditorAssetReloadResult, PlayableLocalEditorAssetActionsCapability, PlayableLocalEditorAssetBrowserCapability, PlayableLocalEditorDocumentLifecycleCapability, PlayableLocalEditorHostCompatibilityDiagnostic, PlayableLocalEditorHostCompatibilityReport, PlayableLocalEditorHostCompatibilitySeverity, PlayableLocalEditorHost, PlayableLocalEditorHostCapabilities, PlayableLocalEditorHostManifest, PlayableLocalEditorHostManifestMetadata, PlayableLocalEditorDocumentCapability, PlayableLocalEditorGridContext, PlayableLocalEditorGridFactory, PlayableLocalEditorHarnessApi, PlayableLocalEditorHistoryOperation, PlayableLocalEditorHistoryOperationOptions, PlayableLocalEditorHistoryOperationResult, PlayableLocalEditorHistoryProjectionResult, PlayableLocalEditorHistoryStateResult, PlayableLocalEditorHierarchyActionsCapability, PlayableLocalEditorMarkerGraphCapability, PlayableLocalEditorMarkerGraphCommand, PlayableLocalEditorMultiPropertyCapabilityInput, PlayableLocalEditorMultiPropertyPatchInput, PlayableLocalEditorPatchResult, PlayableLocalEditorPersistenceCapability, PlayableLocalEditorPropertyPatchInput, PlayableLocalEditorOperationOrigin, PlayableLocalEditorPrefabStageCapability, PlayableLocalEditorPrefabStageDescriptor, PlayableLocalEditorPrefabStageInput, PlayableLocalEditorProjectionImpact, PlayableLocalEditorProjectionWaitPolicy, PlayableLocalEditorRenderingCapability, PlayableLocalEditorRenderingPropertyChangeResult, PlayableLocalEditorRuntimeInspectorContext, PlayableLocalEditorSceneGraphCapability, PlayableLocalEditorSelectionCapability, PlayableLocalEditorTransformBatchPatchInput, PlayableLocalEditorTransformCommandsCapability, PlayableLocalEditorTransformInspectorPreviewInput, PlayableLocalEditorTransformPatchInput, PlayableLocalEditorWorldCapability, PlayableLocalEditorWorldOptions, PlayableLocalEditorWorldPreviewCapability, PlayableLocalEditorInspectorCapability, } from './playable-local-editor-host.js';
29
29
  export type { FpsGameEditorProductLocalEditorContext, FpsGameEditorProductLocalEditorHostOptions, FpsGameEditorProductLocalEditorModeSwitcher, FpsGameEditorProductLocalEditorOptions, FpsGameEditorProductProjectModeTransitions, FpsGameEditorProductWindowLike, } from './playable-product-local-editor.js';
30
30
  export type { FpsGameEditorProductHostAssembly, FpsGameEditorProductHostAssemblyInput, FpsGameEditorPlayableProjectHostAssemblyOptions, FpsGameEditorProductHostRuntimeOptions, FpsGameEditorProductSceneDocumentAdapter, FpsGameEditorProductSceneHostOptions, FpsGameEditorProductSceneHostOptionsInput, } from './playable-product-scene-capabilities.js';
31
31
  //# sourceMappingURL=playable-sdk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"playable-sdk.d.ts","sourceRoot":"","sources":["../src/playable-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playable-sdk.d.ts","sourceRoot":"","sources":["../src/playable-sdk.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"playable-sdk.js","sourceRoot":"","sources":["../src/playable-sdk.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,qCAAqC,EACrC,8BAA8B,EAC9B,+BAA+B,EAC/B,kCAAkC,EAClC,8BAA8B,EAC9B,iCAAiC,GAClC,MAAM,6BAA6B,CAAC;AAYrC,OAAO,EACL,wCAAwC,EACxC,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAavC,OAAO,EACL,kCAAkC,EAClC,iCAAiC,EACjC,oCAAoC,GACrC,MAAM,yCAAyC,CAAC;AAgBjD,OAAO,EACL,+BAA+B,EAC/B,6CAA6C,EAC7C,oDAAoD,EACpD,2CAA2C,EAC3C,mCAAmC,EACnC,+BAA+B,EAC/B,mCAAmC,EACnC,wBAAwB,EACxB,6BAA6B,EAC7B,4BAA4B,EAC5B,8BAA8B,EAC9B,0BAA0B,EAC1B,8BAA8B,EAC9B,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,yCAAyC,EACzC,iDAAiD,EACjD,sBAAsB,EACtB,yBAAyB,EACzB,qCAAqC,EACrC,sCAAsC,EACtC,yCAAyC,EACzC,4CAA4C,EAC5C,mDAAmD,EACnD,0CAA0C,EAC1C,yCAAyC,EACzC,gDAAgD,EAChD,kDAAkD,EAClD,wBAAwB,EACxB,yCAAyC,EACzC,yCAAyC,EACzC,6CAA6C,EAC7C,2CAA2C,GAC5C,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,wCAAwC,EACxC,8CAA8C,EAC9C,sDAAsD,EACtD,mCAAmC,EACnC,wCAAwC,EACxC,8CAA8C,EAC9C,yCAAyC,EACzC,gDAAgD,EAChD,uCAAuC,EACvC,wCAAwC,EACxC,4CAA4C,EAC5C,+CAA+C,EAC/C,wCAAwC,EACxC,uCAAuC,EACvC,sCAAsC,EACtC,qCAAqC,EACrC,iDAAiD,EACjD,wDAAwD,EACxD,yDAAyD,EACzD,2DAA2D,EAC3D,iDAAiD,EACjD,oDAAoD,GACrD,MAAM,iCAAiC,CAAC;AA4EzC,OAAO,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AAkBjF,OAAO,EACL,kCAAkC,EAClC,0CAA0C,EAC1C,6BAA6B,EAC7B,gDAAgD,EAChD,sCAAsC,EACtC,2CAA2C,EAC3C,4CAA4C,GAC7C,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,oCAAoC,EACpC,yDAAyD,GAC1D,MAAM,oCAAoC,CAAC;AAI5C,OAAO,EACL,kCAAkC,GACnC,MAAM,kCAAkC,CAAC;AAc1C,OAAO,EACL,sCAAsC,EACtC,8CAA8C,EAC9C,0CAA0C,GAC3C,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,2CAA2C,GAC5C,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,0CAA0C,EAAE,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EACL,yCAAyC,EACzC,0DAA0D,EAC1D,iCAAiC,GAClC,MAAM,gCAAgC,CAAC","sourcesContent":["export * from '@fps-games/editor-playable-sdk';\nexport {\n applyBabylonRenderingToMesh,\n applyBabylonRenderingToNodeTree,\n collectBabylonMaterialOwnerCandidates,\n collectRenderableBabylonMeshes,\n isBabylonRuntimeDropSurfaceMesh,\n normalizeBabylonPointerCoordinates,\n readBabylonRuntimeDropPosition,\n resolveBabylonRuntimeDropPosition,\n} from '@fps-games/babylon-renderer';\nexport type {\n BabylonRuntimeDropInput,\n BabylonRuntimeDropPosition,\n BabylonRuntimeDropPositionOptions,\n BabylonRenderableMesh,\n BabylonRenderableNode,\n BabylonMaterialOwnerTarget,\n CollectBabylonMaterialOwnerCandidatesOptions,\n BabylonRenderingRestore,\n BabylonRenderingSettings,\n} from '@fps-games/babylon-renderer';\nexport {\n isMaterialOwnerResolutionPointerVerified,\n resolveMaterialOwner,\n} from '@fps-games/playable-contracts';\nexport type {\n MaterialOwnerCandidate,\n MaterialOwnerCandidateSummary,\n MaterialOwnerDescriptor,\n MaterialOwnerMatchKind,\n MaterialOwnerResolvedIdentity,\n MaterialOwnerResolvedIdentityStrategy,\n MaterialOwnerResolvedPointerIdentity,\n MaterialOwnerResolution,\n MaterialOwnerResolutionDiagnostic,\n ResolveMaterialOwnerOptions,\n} from '@fps-games/playable-contracts';\nexport {\n mountEditorRuntimeCameraDebugPanel,\n mountEditorRuntimeDebugPanelShell,\n mountEditorRuntimeLightingDebugPanel,\n} from '@fps-games/editor-browser/runtime-debug';\nexport type {\n EditorRuntimeCameraDebugPanel,\n EditorRuntimeCameraDebugPanelOptions,\n EditorRuntimeCameraDebugPanInput,\n EditorRuntimeCameraDebugScreenPoint,\n EditorRuntimeCameraDebugViewportRect,\n EditorRuntimeDebugPanelLanguage,\n EditorRuntimeDebugPanelMode,\n EditorRuntimeDebugPanelPlacement,\n EditorRuntimeDebugPanelShell,\n EditorRuntimeDebugPanelShellOptions,\n EditorRuntimeDebugPanelStatusOptions,\n EditorRuntimeLightingDebugPanel,\n EditorRuntimeLightingDebugPanelOptions,\n} from '@fps-games/editor-browser/runtime-debug';\nexport {\n createPlayableBabylonEditorGrid,\n createBabylonAssetContainerProjectionImporter,\n createBabylonPrimitiveProjectionInstancingController,\n applyArtistMaterialProfileToRuntimeMaterial,\n applyMaterialValueToRuntimeMaterial,\n applyMaterialValueToRuntimeNode,\n createMaterialSlotOwnerPathMatchKey,\n resolveMaterialOwnerNode,\n resolveMaterialSlotOwnerNodes,\n isMaterialSlotOwnerPathMatch,\n normalizeMaterialSlotOwnerPath,\n resolveMaterialRuntimeKind,\n applyOutlineValueToRuntimeNode,\n resolveOutlineOwnerNode,\n resolveOutlineTarget,\n applyBabylonDefaultOutline,\n createBabylonEnvironmentTextureController,\n createBabylonDefaultPostProcessPipelineController,\n createBlobShadowSystem,\n createDynamicShadowSystem,\n createStaticProjectedShadowBakeHashes,\n createStaticProjectedShadowProfileHash,\n createStaticProjectedShadowArtifactSystem,\n createPlayableBabylonOutlineInspectorSection,\n createPlayableBabylonOutlineInspectorSeedPatchValue,\n isPlayableBabylonOutlineInspectorPatchPath,\n PLAYABLE_BABYLON_DEFAULT_OUTLINE_OVERRIDE,\n applyPlayableBabylonOutlineOverrideToRuntimeNode,\n applyPlayableBabylonOutlineOverrideToRuntimeTarget,\n createPlanarShadowSystem,\n normalizeBabylonEnvironmentTextureProfile,\n normalizeBabylonDefaultPostProcessProfile,\n normalizeBabylonDefaultPostProcessVolumeStack,\n resolveBabylonDefaultPostProcessVolumeStack,\n} from './playable-babylon-facade.js';\nexport {\n createPlayableBabylonRenderingCapability,\n createPlayableBabylonRenderingCapabilityFacade,\n createPlayableBabylonRenderingAlphaIndexMigrationPatch,\n createPlayableBabylonWorldRendering,\n createPlayableBabylonRenderingPanelState,\n createPlayableBabylonEnvironmentTextureProfile,\n createPlayableBabylonRenderingDiagnostics,\n createPlayableBabylonRuntimeRenderingControllers,\n createPlayableBabylonPlanarShadowPolicy,\n resolvePlayableBabylonPlanarShadowPolicy,\n createPlayableBabylonPlanarShadowPolicyInput,\n createPlayableBabylonPlanarShadowPreviewOptions,\n createPlayableBabylonPlanarShadowOptions,\n createPlayableBabylonPlanarShadowSystem,\n createPlayableBabylonBlobShadowOptions,\n createPlayableBabylonBlobShadowSystem,\n createPlayableBabylonStaticProjectedShadowOptions,\n createPlayableBabylonStaticProjectedShadowArtifactSystem,\n resolvePlayableBabylonRenderingEnvironmentTextureResource,\n resolvePlayableBabylonRenderingEnvironmentTextureDiagnostic,\n isPlayableBabylonRenderingEnvironmentTextureAsset,\n isPlayableBabylonRenderingEnvironmentTextureResource,\n} from './playable-babylon-rendering.js';\nexport type {\n PlayableBabylonProjectionImportContext,\n PlayableBabylonProjectionImportResult,\n PlayableBabylonProjectionNode,\n PlayableBabylonSceneCameraPreviewRig,\n BabylonAssetContainerProjectionContainer,\n BabylonAssetContainerProjectionImportEvent,\n BabylonAssetContainerProjectionImporterOptions,\n BabylonAssetContainerProjectionInstantiatedEntries,\n BabylonPrimitiveProjectionInstancingController,\n BabylonPrimitiveProjectionInstancingControllerOptions,\n BabylonPrimitiveProjectionMaterialKind,\n BabylonPrimitiveProjectionNodeLike,\n BabylonPrimitiveProjectionShape,\n CanonicalMaterialChange,\n CanonicalOutlineChange,\n BabylonDefaultOutlineOptions,\n BabylonRendererOutlineStrategy,\n BabylonEnvironmentTextureController,\n BabylonEnvironmentTextureProfile,\n PlayableBabylonOutlineInspectorLanguage,\n PlayableBabylonOutlineInspectorSectionInput,\n PlayableBabylonOutlineInspectorSeedPatchInput,\n PlayableBabylonOutlineOverrideConfig,\n PlayableBabylonOutlineStrategy,\n PlayableBabylonOutlineRuntimeApplyResult,\n PlayableBabylonOutlineRuntimeOverride,\n BlobShadowOptions,\n BlobShadowSystem,\n DynamicShadowDiagnostics,\n DynamicShadowOptions,\n DynamicShadowParams,\n DynamicShadowSystem,\n PlanarShadowOptions,\n PlanarShadowSystem,\n StaticProjectedShadowArtifact,\n StaticProjectedShadowArtifactDiagnostic,\n StaticProjectedShadowArtifactHashInput,\n StaticProjectedShadowArtifactOptions,\n StaticProjectedShadowArtifactSystem,\n StaticProjectedShadowOptions,\n BabylonDefaultPostProcessPipelineController,\n BabylonDefaultPostProcessProfile,\n BabylonDefaultPostProcessResolveInput,\n BabylonDefaultPostProcessResolveResult,\n BabylonDefaultPostProcessResolvedVolume,\n BabylonDefaultPostProcessSamples,\n BabylonDefaultPostProcessVolume,\n BabylonDefaultPostProcessVolumeStack,\n BabylonDefaultToneMappingType,\n PostProcessVolumeShape,\n} from './playable-babylon-facade.js';\nexport type {\n PlayableBabylonRenderingCapabilityOptions,\n PlayableBabylonRenderingCapabilityFacade,\n PlayableBabylonRenderingCapabilityFacadeOptions,\n PlayableBabylonRenderingAlphaIndexMigrationPatchInput,\n PlayableBabylonRenderingContext,\n PlayableBabylonRenderingDocumentInput,\n PlayableBabylonRenderingDiagnostics,\n PlayableBabylonRenderingEnvironmentTextureDiagnostic,\n PlayableBabylonRenderingEnvironmentTextureDiagnosticStatus,\n PlayableBabylonRuntimeRenderingControllerOptions,\n PlayableBabylonRuntimeRenderingControllers,\n PlayableBabylonPlanarShadowPolicy,\n PlayableBabylonPlanarShadowPolicyInput,\n PlayableBabylonBlobShadowPolicyInput,\n PlayableBabylonStaticProjectedShadowPolicyInput,\n PlayableBabylonResolvedPlanarShadowPolicy,\n PlayableBabylonRenderingSetConfigInput,\n PlayableBabylonRenderingShadowPreviewOptions,\n PlayableBabylonRenderingStatusTone,\n PlayableBabylonRenderingValueResolver,\n PlayableBabylonWorldRendering,\n} from './playable-babylon-rendering.js';\nexport { SPATIAL_MARKER_GRAPH_SCHEMA_VERSION } from '@fps-games/editor-protocol';\nexport type {\n AgentReadableSpatialFacts,\n ResolvedSpatialMarkerGraph,\n ResolvedSpatialMarkerNode,\n SpatialMarkerBounds,\n SpatialMarkerGeometry,\n SpatialMarkerGraph,\n SpatialMarkerJsonObject,\n SpatialMarkerLocalFrame,\n SpatialMarkerNode,\n SpatialMarkerTargetRef,\n SpatialMarkerTypeDefinition,\n SpatialMarkerVec3,\n SpatialRelation,\n SpatialRelationEndpoint,\n SpatialRelationTypeDefinition,\n} from '@fps-games/editor-protocol';\nexport {\n createFpsGameEditorLocalEditorHost,\n createFpsGameEditorLocalEditorHostManifest,\n createPlayableLocalEditorHost,\n formatPlayableLocalEditorHostCompatibilityReport,\n inspectPlayableLocalEditorHostManifest,\n PLAYABLE_LOCAL_EDITOR_HOST_MANIFEST_VERSION,\n PLAYABLE_LOCAL_EDITOR_HOST_REQUIRED_CONTRACT,\n} from './playable-local-editor-host.js';\nexport {\n mountFpsGameEditorProductLocalEditor,\n mountFpsGameEditorProductLocalEditorFromEnvironmentModule,\n} from './playable-product-local-editor.js';\nexport type {\n FpsGameEditorProductLocalEditorEnvironmentModuleOptions,\n} from './playable-product-local-editor.js';\nexport {\n mountFpsGameEditorLocalEditorEntry,\n} from './playable-local-editor-entry.js';\nexport type {\n FpsGameEditorLocalEditorEntry,\n FpsGameEditorLocalEditorEntryContent,\n FpsGameEditorLocalEditorEntryDiagnostics,\n FpsGameEditorLocalEditorEntryModeSwitcher,\n FpsGameEditorLocalEditorEntryMountOptions,\n FpsGameEditorLocalEditorEntryOptions,\n FpsGameEditorLocalEditorEntryViewState,\n} from './playable-local-editor-entry.js';\nexport type {\n FpsGameEditorProjectModeContext,\n FpsGameEditorProjectModeTransitions,\n} from './playable-project-mode.js';\nexport {\n createFpsGameEditorProductHostAssembly,\n createFpsGameEditorPlayableProjectHostAssembly,\n createFpsGameEditorProductSceneHostOptions,\n} from './playable-product-scene-capabilities.js';\nexport {\n createFpsGameEditorProductProjectionPreview,\n} from './playable-product-projection-preview.js';\nexport { createFpsGameEditorProductRenderingRuntime } from './playable-product-rendering.js';\nexport {\n createFpsGameEditorStandardProjectRuntime,\n mountFpsGameEditorStandardLocalEditorFromEnvironmentModule,\n mountFpsGameEditorStandardProject,\n} from './playable-standard-project.js';\nexport type {\n FpsGameEditorStandardLocalEditorEnvironmentModuleOptions,\n FpsGameEditorStandardProjectMountOptions,\n} from './playable-standard-project.js';\nexport type { FpsGameEditorProductRenderingRuntimeOptions } from './playable-product-rendering.js';\nexport type { ShadowMapExperimentConfig } from '@fps-games/playable-rendering/runtime';\nexport type {\n FpsGameEditorProductBabylonModule,\n FpsGameEditorProductProjectionGroundDecalHooks,\n FpsGameEditorProductProjectionImportStats,\n FpsGameEditorProductProjectionPreview,\n FpsGameEditorProductProjectionPreviewOptions,\n} from './playable-product-projection-preview.js';\nexport type {\n FpsGameEditorLocalEditorHostOptions,\n FpsGameEditorLocalEditorHostResult,\n PlayableLocalEditorAuthoringHostLike,\n PlayableLocalEditorAuthoringSourceDriverLike,\n PlayableLocalEditorAssetCreationOptions,\n PlayableLocalEditorAssetCreationResult,\n PlayableLocalEditorAssetReloadResult,\n PlayableLocalEditorAgentContextCapability,\n PlayableLocalEditorAgentContextObjectInput,\n PlayableLocalEditorAgentContextObjectSetInput,\n PlayableLocalEditorAgentContextRegionBindingInput,\n PlayableLocalEditorAssetActionsCapability,\n PlayableLocalEditorAssetBrowserCapability,\n PlayableLocalEditorDocumentLifecycleCapability,\n PlayableLocalEditorHostCompatibilityDiagnostic,\n PlayableLocalEditorHostCompatibilityReport,\n PlayableLocalEditorHostCompatibilitySeverity,\n PlayableLocalEditorHost,\n PlayableLocalEditorHostCapabilities,\n PlayableLocalEditorHostManifest,\n PlayableLocalEditorHostManifestMetadata,\n PlayableLocalEditorDocumentCapability,\n PlayableLocalEditorGridContext,\n PlayableLocalEditorGridFactory,\n PlayableLocalEditorHarnessApi,\n PlayableLocalEditorHistoryOperation,\n PlayableLocalEditorHistoryOperationOptions,\n PlayableLocalEditorHistoryOperationResult,\n PlayableLocalEditorHistoryProjectionResult,\n PlayableLocalEditorHistoryStateResult,\n PlayableLocalEditorHierarchyActionsCapability,\n PlayableLocalEditorMarkerGraphCapability,\n PlayableLocalEditorMarkerGraphCommand,\n PlayableLocalEditorMultiPropertyCapabilityInput,\n PlayableLocalEditorMultiPropertyPatchInput,\n PlayableLocalEditorPatchResult,\n PlayableLocalEditorPersistenceCapability,\n PlayableLocalEditorPropertyPatchInput,\n PlayableLocalEditorOperationOrigin,\n PlayableLocalEditorPrefabStageCapability,\n PlayableLocalEditorPrefabStageDescriptor,\n PlayableLocalEditorPrefabStageInput,\n PlayableLocalEditorProjectionImpact,\n PlayableLocalEditorProjectionWaitPolicy,\n PlayableLocalEditorRenderingCapability,\n PlayableLocalEditorRenderingPropertyChangeResult,\n PlayableLocalEditorRuntimeInspectorContext,\n PlayableLocalEditorSceneGraphCapability,\n PlayableLocalEditorSelectionCapability,\n PlayableLocalEditorTransformBatchPatchInput,\n PlayableLocalEditorTransformCommandsCapability,\n PlayableLocalEditorTransformInspectorPreviewInput,\n PlayableLocalEditorTransformPatchInput,\n PlayableLocalEditorWorldCapability,\n PlayableLocalEditorWorldOptions,\n PlayableLocalEditorWorldPreviewCapability,\n PlayableLocalEditorInspectorCapability,\n} from './playable-local-editor-host.js';\nexport type {\n FpsGameEditorProductLocalEditorContext,\n FpsGameEditorProductLocalEditorHostOptions,\n FpsGameEditorProductLocalEditorModeSwitcher,\n FpsGameEditorProductLocalEditorOptions,\n FpsGameEditorProductProjectModeTransitions,\n FpsGameEditorProductWindowLike,\n} from './playable-product-local-editor.js';\nexport type {\n FpsGameEditorProductHostAssembly,\n FpsGameEditorProductHostAssemblyInput,\n FpsGameEditorPlayableProjectHostAssemblyOptions,\n FpsGameEditorProductHostRuntimeOptions,\n FpsGameEditorProductSceneDocumentAdapter,\n FpsGameEditorProductSceneHostOptions,\n FpsGameEditorProductSceneHostOptionsInput,\n} from './playable-product-scene-capabilities.js';\n"]}
1
+ {"version":3,"file":"playable-sdk.js","sourceRoot":"","sources":["../src/playable-sdk.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,qCAAqC,EACrC,8BAA8B,EAC9B,+BAA+B,EAC/B,kCAAkC,EAClC,8BAA8B,EAC9B,iCAAiC,GAClC,MAAM,6BAA6B,CAAC;AAYrC,OAAO,EACL,wCAAwC,EACxC,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAavC,OAAO,EACL,kCAAkC,EAClC,iCAAiC,EACjC,oCAAoC,GACrC,MAAM,yCAAyC,CAAC;AAgBjD,OAAO,EACL,+BAA+B,EAC/B,6CAA6C,EAC7C,oDAAoD,EACpD,2CAA2C,EAC3C,mCAAmC,EACnC,+BAA+B,EAC/B,mCAAmC,EACnC,wBAAwB,EACxB,6BAA6B,EAC7B,4BAA4B,EAC5B,8BAA8B,EAC9B,0BAA0B,EAC1B,8BAA8B,EAC9B,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,yCAAyC,EACzC,iDAAiD,EACjD,sBAAsB,EACtB,yBAAyB,EACzB,qCAAqC,EACrC,sCAAsC,EACtC,yCAAyC,EACzC,4CAA4C,EAC5C,mDAAmD,EACnD,0CAA0C,EAC1C,yCAAyC,EACzC,gDAAgD,EAChD,kDAAkD,EAClD,wBAAwB,EACxB,yCAAyC,EACzC,yCAAyC,EACzC,6CAA6C,EAC7C,2CAA2C,GAC5C,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,wCAAwC,EACxC,8CAA8C,EAC9C,sDAAsD,EACtD,mCAAmC,EACnC,wCAAwC,EACxC,8CAA8C,EAC9C,yCAAyC,EACzC,gDAAgD,EAChD,uCAAuC,EACvC,wCAAwC,EACxC,4CAA4C,EAC5C,+CAA+C,EAC/C,wCAAwC,EACxC,uCAAuC,EACvC,sCAAsC,EACtC,qCAAqC,EACrC,iDAAiD,EACjD,wDAAwD,EACxD,yDAAyD,EACzD,2DAA2D,EAC3D,iDAAiD,EACjD,oDAAoD,GACrD,MAAM,iCAAiC,CAAC;AA4EzC,OAAO,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AAkBjF,OAAO,EACL,kCAAkC,EAClC,0CAA0C,EAC1C,6BAA6B,EAC7B,gDAAgD,EAChD,sCAAsC,EACtC,2CAA2C,EAC3C,4CAA4C,GAC7C,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,oCAAoC,EACpC,yDAAyD,GAC1D,MAAM,oCAAoC,CAAC;AAI5C,OAAO,EACL,kCAAkC,GACnC,MAAM,kCAAkC,CAAC;AAc1C,OAAO,EACL,sCAAsC,EACtC,8CAA8C,EAC9C,0CAA0C,GAC3C,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,2CAA2C,GAC5C,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,0CAA0C,EAAE,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EACL,yCAAyC,EACzC,0DAA0D,EAC1D,iCAAiC,GAClC,MAAM,gCAAgC,CAAC","sourcesContent":["export * from '@fps-games/editor-playable-sdk';\nexport {\n applyBabylonRenderingToMesh,\n applyBabylonRenderingToNodeTree,\n collectBabylonMaterialOwnerCandidates,\n collectRenderableBabylonMeshes,\n isBabylonRuntimeDropSurfaceMesh,\n normalizeBabylonPointerCoordinates,\n readBabylonRuntimeDropPosition,\n resolveBabylonRuntimeDropPosition,\n} from '@fps-games/babylon-renderer';\nexport type {\n BabylonRuntimeDropInput,\n BabylonRuntimeDropPosition,\n BabylonRuntimeDropPositionOptions,\n BabylonRenderableMesh,\n BabylonRenderableNode,\n BabylonMaterialOwnerTarget,\n CollectBabylonMaterialOwnerCandidatesOptions,\n BabylonRenderingRestore,\n BabylonRenderingSettings,\n} from '@fps-games/babylon-renderer';\nexport {\n isMaterialOwnerResolutionPointerVerified,\n resolveMaterialOwner,\n} from '@fps-games/playable-contracts';\nexport type {\n MaterialOwnerCandidate,\n MaterialOwnerCandidateSummary,\n MaterialOwnerDescriptor,\n MaterialOwnerMatchKind,\n MaterialOwnerResolvedIdentity,\n MaterialOwnerResolvedIdentityStrategy,\n MaterialOwnerResolvedPointerIdentity,\n MaterialOwnerResolution,\n MaterialOwnerResolutionDiagnostic,\n ResolveMaterialOwnerOptions,\n} from '@fps-games/playable-contracts';\nexport {\n mountEditorRuntimeCameraDebugPanel,\n mountEditorRuntimeDebugPanelShell,\n mountEditorRuntimeLightingDebugPanel,\n} from '@fps-games/editor-browser/runtime-debug';\nexport type {\n EditorRuntimeCameraDebugPanel,\n EditorRuntimeCameraDebugPanelOptions,\n EditorRuntimeCameraDebugPanInput,\n EditorRuntimeCameraDebugScreenPoint,\n EditorRuntimeCameraDebugViewportRect,\n EditorRuntimeDebugPanelLanguage,\n EditorRuntimeDebugPanelMode,\n EditorRuntimeDebugPanelPlacement,\n EditorRuntimeDebugPanelShell,\n EditorRuntimeDebugPanelShellOptions,\n EditorRuntimeDebugPanelStatusOptions,\n EditorRuntimeLightingDebugPanel,\n EditorRuntimeLightingDebugPanelOptions,\n} from '@fps-games/editor-browser/runtime-debug';\nexport {\n createPlayableBabylonEditorGrid,\n createBabylonAssetContainerProjectionImporter,\n createBabylonPrimitiveProjectionInstancingController,\n applyArtistMaterialProfileToRuntimeMaterial,\n applyMaterialValueToRuntimeMaterial,\n applyMaterialValueToRuntimeNode,\n createMaterialSlotOwnerPathMatchKey,\n resolveMaterialOwnerNode,\n resolveMaterialSlotOwnerNodes,\n isMaterialSlotOwnerPathMatch,\n normalizeMaterialSlotOwnerPath,\n resolveMaterialRuntimeKind,\n applyOutlineValueToRuntimeNode,\n resolveOutlineOwnerNode,\n resolveOutlineTarget,\n applyBabylonDefaultOutline,\n createBabylonEnvironmentTextureController,\n createBabylonDefaultPostProcessPipelineController,\n createBlobShadowSystem,\n createDynamicShadowSystem,\n createStaticProjectedShadowBakeHashes,\n createStaticProjectedShadowProfileHash,\n createStaticProjectedShadowArtifactSystem,\n createPlayableBabylonOutlineInspectorSection,\n createPlayableBabylonOutlineInspectorSeedPatchValue,\n isPlayableBabylonOutlineInspectorPatchPath,\n PLAYABLE_BABYLON_DEFAULT_OUTLINE_OVERRIDE,\n applyPlayableBabylonOutlineOverrideToRuntimeNode,\n applyPlayableBabylonOutlineOverrideToRuntimeTarget,\n createPlanarShadowSystem,\n normalizeBabylonEnvironmentTextureProfile,\n normalizeBabylonDefaultPostProcessProfile,\n normalizeBabylonDefaultPostProcessVolumeStack,\n resolveBabylonDefaultPostProcessVolumeStack,\n} from './playable-babylon-facade.js';\nexport {\n createPlayableBabylonRenderingCapability,\n createPlayableBabylonRenderingCapabilityFacade,\n createPlayableBabylonRenderingAlphaIndexMigrationPatch,\n createPlayableBabylonWorldRendering,\n createPlayableBabylonRenderingPanelState,\n createPlayableBabylonEnvironmentTextureProfile,\n createPlayableBabylonRenderingDiagnostics,\n createPlayableBabylonRuntimeRenderingControllers,\n createPlayableBabylonPlanarShadowPolicy,\n resolvePlayableBabylonPlanarShadowPolicy,\n createPlayableBabylonPlanarShadowPolicyInput,\n createPlayableBabylonPlanarShadowPreviewOptions,\n createPlayableBabylonPlanarShadowOptions,\n createPlayableBabylonPlanarShadowSystem,\n createPlayableBabylonBlobShadowOptions,\n createPlayableBabylonBlobShadowSystem,\n createPlayableBabylonStaticProjectedShadowOptions,\n createPlayableBabylonStaticProjectedShadowArtifactSystem,\n resolvePlayableBabylonRenderingEnvironmentTextureResource,\n resolvePlayableBabylonRenderingEnvironmentTextureDiagnostic,\n isPlayableBabylonRenderingEnvironmentTextureAsset,\n isPlayableBabylonRenderingEnvironmentTextureResource,\n} from './playable-babylon-rendering.js';\nexport type {\n PlayableBabylonProjectionImportContext,\n PlayableBabylonProjectionImportResult,\n PlayableBabylonProjectionNode,\n PlayableBabylonSceneCameraPreviewRig,\n BabylonAssetContainerProjectionContainer,\n BabylonAssetContainerProjectionImportEvent,\n BabylonAssetContainerProjectionImporterOptions,\n BabylonAssetContainerProjectionInstantiatedEntries,\n BabylonPrimitiveProjectionInstancingController,\n BabylonPrimitiveProjectionInstancingControllerOptions,\n BabylonPrimitiveProjectionMaterialKind,\n BabylonPrimitiveProjectionNodeLike,\n BabylonPrimitiveProjectionShape,\n CanonicalMaterialChange,\n CanonicalOutlineChange,\n BabylonDefaultOutlineOptions,\n BabylonRendererOutlineStrategy,\n BabylonEnvironmentTextureController,\n BabylonEnvironmentTextureProfile,\n PlayableBabylonOutlineInspectorLanguage,\n PlayableBabylonOutlineInspectorSectionInput,\n PlayableBabylonOutlineInspectorSeedPatchInput,\n PlayableBabylonOutlineOverrideConfig,\n PlayableBabylonOutlineStrategy,\n PlayableBabylonOutlineRuntimeApplyResult,\n PlayableBabylonOutlineRuntimeOverride,\n BlobShadowOptions,\n BlobShadowSystem,\n DynamicShadowDiagnostics,\n DynamicShadowOptions,\n DynamicShadowParams,\n DynamicShadowSystem,\n PlanarShadowOptions,\n PlanarShadowSystem,\n StaticProjectedShadowArtifact,\n StaticProjectedShadowArtifactDiagnostic,\n StaticProjectedShadowArtifactHashInput,\n StaticProjectedShadowArtifactOptions,\n StaticProjectedShadowArtifactSystem,\n StaticProjectedShadowOptions,\n BabylonDefaultPostProcessPipelineController,\n BabylonDefaultPostProcessProfile,\n BabylonDefaultPostProcessResolveInput,\n BabylonDefaultPostProcessResolveResult,\n BabylonDefaultPostProcessResolvedVolume,\n BabylonDefaultPostProcessSamples,\n BabylonDefaultPostProcessVolume,\n BabylonDefaultPostProcessVolumeStack,\n BabylonDefaultToneMappingType,\n PostProcessVolumeShape,\n} from './playable-babylon-facade.js';\nexport type {\n PlayableBabylonRenderingCapabilityOptions,\n PlayableBabylonRenderingCapabilityFacade,\n PlayableBabylonRenderingCapabilityFacadeOptions,\n PlayableBabylonRenderingAlphaIndexMigrationPatchInput,\n PlayableBabylonRenderingContext,\n PlayableBabylonRenderingDocumentInput,\n PlayableBabylonRenderingDiagnostics,\n PlayableBabylonRenderingEnvironmentTextureDiagnostic,\n PlayableBabylonRenderingEnvironmentTextureDiagnosticStatus,\n PlayableBabylonRuntimeRenderingControllerOptions,\n PlayableBabylonRuntimeRenderingControllers,\n PlayableBabylonPlanarShadowPolicy,\n PlayableBabylonPlanarShadowPolicyInput,\n PlayableBabylonBlobShadowPolicyInput,\n PlayableBabylonStaticProjectedShadowPolicyInput,\n PlayableBabylonResolvedPlanarShadowPolicy,\n PlayableBabylonRenderingSetConfigInput,\n PlayableBabylonRenderingShadowPreviewOptions,\n PlayableBabylonRenderingStatusTone,\n PlayableBabylonRenderingValueResolver,\n PlayableBabylonWorldRendering,\n} from './playable-babylon-rendering.js';\nexport { SPATIAL_MARKER_GRAPH_SCHEMA_VERSION } from '@fps-games/editor-protocol';\nexport type {\n AgentReadableSpatialFacts,\n ResolvedSpatialMarkerGraph,\n ResolvedSpatialMarkerNode,\n SpatialMarkerBounds,\n SpatialMarkerGeometry,\n SpatialMarkerGraph,\n SpatialMarkerJsonObject,\n SpatialMarkerLocalFrame,\n SpatialMarkerNode,\n SpatialMarkerTargetRef,\n SpatialMarkerTypeDefinition,\n SpatialMarkerVec3,\n SpatialRelation,\n SpatialRelationEndpoint,\n SpatialRelationTypeDefinition,\n} from '@fps-games/editor-protocol';\nexport {\n createFpsGameEditorLocalEditorHost,\n createFpsGameEditorLocalEditorHostManifest,\n createPlayableLocalEditorHost,\n formatPlayableLocalEditorHostCompatibilityReport,\n inspectPlayableLocalEditorHostManifest,\n PLAYABLE_LOCAL_EDITOR_HOST_MANIFEST_VERSION,\n PLAYABLE_LOCAL_EDITOR_HOST_REQUIRED_CONTRACT,\n} from './playable-local-editor-host.js';\nexport {\n mountFpsGameEditorProductLocalEditor,\n mountFpsGameEditorProductLocalEditorFromEnvironmentModule,\n} from './playable-product-local-editor.js';\nexport type {\n FpsGameEditorProductLocalEditorEnvironmentModuleOptions,\n} from './playable-product-local-editor.js';\nexport {\n mountFpsGameEditorLocalEditorEntry,\n} from './playable-local-editor-entry.js';\nexport type {\n FpsGameEditorLocalEditorEntry,\n FpsGameEditorLocalEditorEntryContent,\n FpsGameEditorLocalEditorEntryDiagnostics,\n FpsGameEditorLocalEditorEntryModeSwitcher,\n FpsGameEditorLocalEditorEntryMountOptions,\n FpsGameEditorLocalEditorEntryOptions,\n FpsGameEditorLocalEditorEntryViewState,\n} from './playable-local-editor-entry.js';\nexport type {\n FpsGameEditorProjectModeContext,\n FpsGameEditorProjectModeTransitions,\n} from './playable-project-mode.js';\nexport {\n createFpsGameEditorProductHostAssembly,\n createFpsGameEditorPlayableProjectHostAssembly,\n createFpsGameEditorProductSceneHostOptions,\n} from './playable-product-scene-capabilities.js';\nexport {\n createFpsGameEditorProductProjectionPreview,\n} from './playable-product-projection-preview.js';\nexport { createFpsGameEditorProductRenderingRuntime } from './playable-product-rendering.js';\nexport {\n createFpsGameEditorStandardProjectRuntime,\n mountFpsGameEditorStandardLocalEditorFromEnvironmentModule,\n mountFpsGameEditorStandardProject,\n} from './playable-standard-project.js';\nexport type {\n FpsGameEditorStandardLocalEditorEnvironmentModuleOptions,\n FpsGameEditorStandardProjectMountOptions,\n} from './playable-standard-project.js';\nexport type { FpsGameEditorProductRenderingRuntimeOptions } from './playable-product-rendering.js';\nexport type { ShadowMapExperimentConfig } from '@fps-games/playable-rendering/runtime';\nexport type {\n FpsGameEditorProductBabylonModule,\n FpsGameEditorProductProjectionGroundDecalHooks,\n FpsGameEditorProductProjectionImportStats,\n FpsGameEditorProductProjectionPreview,\n FpsGameEditorProductProjectionPreviewOptions,\n} from './playable-product-projection-preview.js';\nexport type {\n FpsGameEditorLocalEditorHostOptions,\n FpsGameEditorLocalEditorHostResult,\n PlayableLocalEditorAuthoringHostLike,\n PlayableLocalEditorAuthoringSourceDriverLike,\n PlayableLocalEditorAssetCreationOptions,\n PlayableLocalEditorAssetCreationResult,\n PlayableLocalEditorAssetReloadResult,\n PlayableLocalEditorAssetActionsCapability,\n PlayableLocalEditorAssetBrowserCapability,\n PlayableLocalEditorDocumentLifecycleCapability,\n PlayableLocalEditorHostCompatibilityDiagnostic,\n PlayableLocalEditorHostCompatibilityReport,\n PlayableLocalEditorHostCompatibilitySeverity,\n PlayableLocalEditorHost,\n PlayableLocalEditorHostCapabilities,\n PlayableLocalEditorHostManifest,\n PlayableLocalEditorHostManifestMetadata,\n PlayableLocalEditorDocumentCapability,\n PlayableLocalEditorGridContext,\n PlayableLocalEditorGridFactory,\n PlayableLocalEditorHarnessApi,\n PlayableLocalEditorHistoryOperation,\n PlayableLocalEditorHistoryOperationOptions,\n PlayableLocalEditorHistoryOperationResult,\n PlayableLocalEditorHistoryProjectionResult,\n PlayableLocalEditorHistoryStateResult,\n PlayableLocalEditorHierarchyActionsCapability,\n PlayableLocalEditorMarkerGraphCapability,\n PlayableLocalEditorMarkerGraphCommand,\n PlayableLocalEditorMultiPropertyCapabilityInput,\n PlayableLocalEditorMultiPropertyPatchInput,\n PlayableLocalEditorPatchResult,\n PlayableLocalEditorPersistenceCapability,\n PlayableLocalEditorPropertyPatchInput,\n PlayableLocalEditorOperationOrigin,\n PlayableLocalEditorPrefabStageCapability,\n PlayableLocalEditorPrefabStageDescriptor,\n PlayableLocalEditorPrefabStageInput,\n PlayableLocalEditorProjectionImpact,\n PlayableLocalEditorProjectionWaitPolicy,\n PlayableLocalEditorRenderingCapability,\n PlayableLocalEditorRenderingPropertyChangeResult,\n PlayableLocalEditorRuntimeInspectorContext,\n PlayableLocalEditorSceneGraphCapability,\n PlayableLocalEditorSelectionCapability,\n PlayableLocalEditorTransformBatchPatchInput,\n PlayableLocalEditorTransformCommandsCapability,\n PlayableLocalEditorTransformInspectorPreviewInput,\n PlayableLocalEditorTransformPatchInput,\n PlayableLocalEditorWorldCapability,\n PlayableLocalEditorWorldOptions,\n PlayableLocalEditorWorldPreviewCapability,\n PlayableLocalEditorInspectorCapability,\n} from './playable-local-editor-host.js';\nexport type {\n FpsGameEditorProductLocalEditorContext,\n FpsGameEditorProductLocalEditorHostOptions,\n FpsGameEditorProductLocalEditorModeSwitcher,\n FpsGameEditorProductLocalEditorOptions,\n FpsGameEditorProductProjectModeTransitions,\n FpsGameEditorProductWindowLike,\n} from './playable-product-local-editor.js';\nexport type {\n FpsGameEditorProductHostAssembly,\n FpsGameEditorProductHostAssemblyInput,\n FpsGameEditorPlayableProjectHostAssemblyOptions,\n FpsGameEditorProductHostRuntimeOptions,\n FpsGameEditorProductSceneDocumentAdapter,\n FpsGameEditorProductSceneHostOptions,\n FpsGameEditorProductSceneHostOptionsInput,\n} from './playable-product-scene-capabilities.js';\n"]}
@@ -3,7 +3,6 @@ import { type FpsGameEditorProductLocalEditorEnvironmentModuleOptions, type FpsG
3
3
  export interface FpsGameEditorStandardProjectMountOptions {
4
4
  root?: HTMLElement;
5
5
  window?: Window;
6
- agentBridgeSessionMetadata?: Record<string, unknown>;
7
6
  }
8
7
  export interface FpsGameEditorStandardLocalEditorEnvironmentModuleOptions extends FpsGameEditorStandardProjectMountOptions {
9
8
  projectMode: FpsGameEditorProductProjectModeTransitions;
@@ -16,7 +15,6 @@ export declare function createFpsGameEditorStandardProjectRuntime(project: FpsGa
16
15
  project: FpsGameEditorProjectDefinition<import("@fps-games/editor-playable-sdk").FpsGameEditorFeature<unknown, FpsGameEditorRuntimeHooks<unknown, unknown>, unknown>>;
17
16
  root: HTMLElement | undefined;
18
17
  window: Window;
19
- agentBridgeSessionMetadata: Record<string, unknown> | undefined;
20
18
  projectMode: {
21
19
  enterEditorMode: () => Promise<void>;
22
20
  enterPlayMode: (context: any) => void | Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"playable-standard-project.d.ts","sourceRoot":"","sources":["../src/playable-standard-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC/B,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EAGL,KAAK,uDAAuD,EAC5D,KAAK,2CAA2C,EAChD,KAAK,0CAA0C,EAChD,MAAM,oCAAoC,CAAC;AAG5C,MAAM,WAAW,wCAAwC;IACvD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,wDACf,SAAQ,wCAAwC;IAChD,WAAW,EAAE,0CAA0C,CAAC;IACxD,YAAY,EAAE,uDAAuD,CACnE,mBAAmB,EACnB,GAAG,EACH,2BAA2B,CAC5B,CAAC,cAAc,CAAC,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;CAC5C;AAED,kHAAkH;AAClH,wBAAgB,yCAAyC,CACvD,OAAO,EAAE,8BAA8B,EACvC,YAAY,EAAE,yBAAyB,EACvC,OAAO,GAAE,wCAA6C;;;;;;;;qCAcrB,GAAG;;yBAIU,iBAAiB,GAAG,IAAI;;;;;;;;;;;;;gBAkJiwF,CAAC;;;;EA7Iz0F;AAsGD,wBAAgB,0DAA0D,CACxE,OAAO,EAAE,8BAA8B,EACvC,OAAO,EAAE,wDAAwD,GAChE,OAAO,CAAC,2CAA2C,CAAC,mBAAmB,CAAC,CAAC,CAY3E;AAED,kHAAkH;AAClH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,8BAA8B,EACvC,YAAY,EAAE,yBAAyB,EACvC,OAAO,GAAE,wCAA6C,GACrD,2CAA2C,CAAC,mBAAmB,CAAC,CAGlE"}
1
+ {"version":3,"file":"playable-standard-project.d.ts","sourceRoot":"","sources":["../src/playable-standard-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC/B,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EAGL,KAAK,uDAAuD,EAC5D,KAAK,2CAA2C,EAChD,KAAK,0CAA0C,EAChD,MAAM,oCAAoC,CAAC;AAG5C,MAAM,WAAW,wCAAwC;IACvD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wDACf,SAAQ,wCAAwC;IAChD,WAAW,EAAE,0CAA0C,CAAC;IACxD,YAAY,EAAE,uDAAuD,CACnE,mBAAmB,EACnB,GAAG,EACH,2BAA2B,CAC5B,CAAC,cAAc,CAAC,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;CAC5C;AAED,kHAAkH;AAClH,wBAAgB,yCAAyC,CACvD,OAAO,EAAE,8BAA8B,EACvC,YAAY,EAAE,yBAAyB,EACvC,OAAO,GAAE,wCAA6C;;;;;;;qCAarB,GAAG;;yBAIU,iBAAiB,GAAG,IAAI;;;;;;;;;;;;;gBAoJwxF,CAAC;;;;EA/Ih2F;AAyGD,wBAAgB,0DAA0D,CACxE,OAAO,EAAE,8BAA8B,EACvC,OAAO,EAAE,wDAAwD,GAChE,OAAO,CAAC,2CAA2C,CAAC,mBAAmB,CAAC,CAAC,CAW3E;AAED,kHAAkH;AAClH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,8BAA8B,EACvC,YAAY,EAAE,yBAAyB,EACvC,OAAO,GAAE,wCAA6C,GACrD,2CAA2C,CAAC,mBAAmB,CAAC,CAGlE"}
@@ -14,7 +14,6 @@ export function createFpsGameEditorStandardProjectRuntime(project, runtimeHooks,
14
14
  const runtimeWindow = options.window ?? window;
15
15
  return {
16
16
  project, root: options.root, window: runtimeWindow,
17
- agentBridgeSessionMetadata: options.agentBridgeSessionMetadata,
18
17
  projectMode: {
19
18
  enterEditorMode: () => adapter.disposeGameWorld(),
20
19
  enterPlayMode: (context) => typeof runtimeHooks.restartGame === 'function'
@@ -93,6 +92,7 @@ function createFpsGameEditorStandardLocalEditorAssembly(project, options) {
93
92
  } },
94
93
  getInspectorContext: () => ({
95
94
  textureAssets: projection.createEditorSceneInspectorTextureAssets(assets),
95
+ resolveTextureAssetUrl: (textureId) => (projection.resolveEditorSceneTextureRefUrl(assets, { textureAssetId: textureId })),
96
96
  }),
97
97
  runtime: {
98
98
  lifecycle: { loadingContent: {
@@ -131,7 +131,6 @@ export function mountFpsGameEditorStandardLocalEditorFromEnvironmentModule(proje
131
131
  project,
132
132
  root: options.root,
133
133
  window: options.window,
134
- agentBridgeSessionMetadata: options.agentBridgeSessionMetadata,
135
134
  projectMode: options.projectMode,
136
135
  pluginModule: options.pluginModule,
137
136
  getCanvas: options.getCanvas,
@@ -1 +1 @@
1
- {"version":3,"file":"playable-standard-project.js","sourceRoot":"","sources":["../src/playable-standard-project.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createFpsGameEditorAdapter,\n createFpsGameEditorStandardSceneAssembly,\n enrichEditorSceneDocumentAssets,\n loadEditorAssetLibrary,\n loadEditorProjectFile,\n loadEditorProjectFiles,\n loadSceneMainSource,\n getPlayableAssetFormat,\n resolveEditorProjectMediaSource,\n resolveEditorSceneAssetLibraryItemRelativePath,\n saveSceneMainSource,\n type EditorSceneAssetLibraryItem,\n type EditorSceneDocument,\n type FpsGameEditorProjectDefinition,\n type FpsGameEditorRuntimeHooks,\n} from '@fps-games/editor-playable-sdk';\nimport { createBabylonEditorPreviewEngine } from './internal/babylon-preview-engine.js';\nimport {\n createFpsGameEditorProductHostAssembly,\n prepareFpsGameEditorStandardDocument,\n} from './playable-product-scene-capabilities.js';\nimport {\n mountFpsGameEditorProductLocalEditor,\n mountFpsGameEditorProductLocalEditorFromEnvironmentModule,\n type FpsGameEditorProductLocalEditorEnvironmentModuleOptions,\n type FpsGameEditorProductLocalEditorModeSwitcher,\n type FpsGameEditorProductProjectModeTransitions,\n} from './playable-product-local-editor.js';\nimport { createFpsGameEditorProductProjectionPreview } from './playable-product-projection-preview.js';\n\nexport interface FpsGameEditorStandardProjectMountOptions {\n root?: HTMLElement;\n window?: Window;\n agentBridgeSessionMetadata?: Record<string, unknown>;\n}\n\nexport interface FpsGameEditorStandardLocalEditorEnvironmentModuleOptions\n extends FpsGameEditorStandardProjectMountOptions {\n projectMode: FpsGameEditorProductProjectModeTransitions;\n pluginModule: FpsGameEditorProductLocalEditorEnvironmentModuleOptions<\n EditorSceneDocument,\n any,\n EditorSceneAssetLibraryItem\n >['pluginModule'];\n getCanvas?: () => HTMLCanvasElement | null;\n}\n\n/** @deprecated Projects own Runtime lifecycle. Use mountFpsGameEditorStandardLocalEditorFromEnvironmentModule. */\nexport function createFpsGameEditorStandardProjectRuntime(\n project: FpsGameEditorProjectDefinition,\n runtimeHooks: FpsGameEditorRuntimeHooks,\n options: FpsGameEditorStandardProjectMountOptions = {},\n) {\n const adapter = createFpsGameEditorAdapter(project, runtimeHooks);\n const assembly = createFpsGameEditorStandardLocalEditorAssembly(project, options);\n return {\n adapter,\n ...assembly,\n createMountOptions() {\n const runtimeWindow = options.window ?? window;\n return {\n project, root: options.root, window: runtimeWindow,\n agentBridgeSessionMetadata: options.agentBridgeSessionMetadata,\n projectMode: {\n enterEditorMode: () => adapter.disposeGameWorld(),\n enterPlayMode: (context: any) => typeof runtimeHooks.restartGame === 'function'\n ? adapter.restartGame(context)\n : runtimeWindow.location.reload(),\n },\n getCanvas: () => adapter.getCanvas() as HTMLCanvasElement | null,\n hostAssembly: assembly.hostAssembly,\n };\n },\n };\n}\n\nfunction createFpsGameEditorStandardLocalEditorAssembly(\n project: FpsGameEditorProjectDefinition,\n options: FpsGameEditorStandardProjectMountOptions,\n) {\n const scene = createFpsGameEditorStandardSceneAssembly<any, any, any, any, any>({\n features: project.features,\n markerTypes: [],\n relationTypes: [],\n getRenderingProfile: () => ({ shadows: { defaultMode: 'none' } } as any),\n createPatch: {\n gameObjectField: (targetId, path, value) => ({ kind: 'game-object.field', targetId, path, value }),\n gameObjectFieldBatch: fields => ({ kind: 'game-object.field-batch', fields }),\n materialAssetField: (materialAssetId, path, value) => ({ kind: 'scene.material-asset.field', materialAssetId, path, value }),\n markerGraph: command => ({ kind: 'scene.marker-graph', command }),\n },\n });\n const assetCatalog: Record<string, unknown> = {};\n const assetsModule = {\n ASSET_CATALOG: assetCatalog,\n };\n let assets: EditorSceneAssetLibraryItem[] = [];\n const projection = createFpsGameEditorProductProjectionPreview<any, any, any>({\n assetsModule,\n defaultCamera: scene.defaults.camera,\n async resolveModelPathAndFile(value) {\n const url = new URL(value, (options.window ?? window).location.href);\n const slash = url.href.lastIndexOf('/');\n return { path: url.href.slice(0, slash + 1), filename: url.href.slice(slash + 1) };\n },\n });\n const hostAssembly = createFpsGameEditorProductHostAssembly<any, any, any, any, any>({\n scene,\n document: {\n getProjectionNodes: projection.createProjectionNodes,\n getProjectionNode: (document: EditorSceneDocument, id: string) => {\n const object = document.scene.gameObjects.find(entry => entry.id === id);\n return object ? projection.createProjectionNode(document, object) : null;\n },\n getProjectionNodesForTarget: projection.getProjectionNodesForTarget,\n resolveProjectionTargetId: projection.resolveProjectionTargetId,\n getProjectionSelectionNodeIds: projection.getProjectionSelectionNodeIds,\n createPatchFromAsset: (asset: EditorSceneAssetLibraryItem, input: any) => ({ label: `Add ${input?.name || asset.displayName}`, patch: { kind: 'game-object.create-from-asset', assetItem: asset, ...(input?.name ? { name: input.name } : {}), ...(input?.placement ? { placement: input.placement } : {}) } }),\n },\n lifecycle: { prepareDocument: (document, nextAssets) => {\n assets = nextAssets as EditorSceneAssetLibraryItem[];\n for (const key of Object.keys(assetCatalog)) delete assetCatalog[key];\n for (const asset of assets as EditorSceneAssetLibraryItem[]) {\n const relativePath = resolveEditorSceneAssetLibraryItemRelativePath(asset);\n const format = getPlayableAssetFormat(relativePath);\n if (!format) throw new Error(`Asset format is required for generated catalog resource: ${asset.assetId}`);\n assetCatalog[asset.assetId] = {\n ...asset,\n url: resolveStandardProjectAssetUrl(project, asset),\n format,\n relativePath,\n };\n }\n return prepareFpsGameEditorStandardDocument({\n document,\n assets,\n hydrateDocumentAssets: enrichEditorSceneDocumentAssets,\n ensureEnvironmentDefaults: scene.ensureEnvironmentDefaults,\n normalizeHierarchyDocument: scene.normalizeHierarchyDocument,\n });\n } },\n getInspectorContext: () => ({\n textureAssets: projection.createEditorSceneInspectorTextureAssets(assets),\n }),\n runtime: {\n lifecycle: { loadingContent: {\n enter: { title: 'Entering editor', description: 'Loading the editable scene.' },\n saveScene: { title: 'Saving scene', description: 'Writing authored scene data.' },\n saveAndRunGame: { title: 'Saving scene', description: 'Returning to the game.' },\n discardAndRunGame: { title: 'Discarding changes', description: 'Returning to the game.' },\n assetImport: { title: 'Importing asset', description: 'Updating the project asset library.' },\n } },\n persistenceAdapter: {\n loadAuthoringSource: async () => { const loaded = await loadSceneMainSource(); return { source: loaded.source, document: loaded.document, assets: loaded.assets, summary: loaded.summary }; },\n loadAssets: loadEditorAssetLibrary,\n loadProjectFiles: loadEditorProjectFiles,\n loadProjectFile: loadEditorProjectFile,\n resolveProjectMedia: resolveEditorProjectMediaSource,\n },\n worldAdapter: {\n loadPreviewEngine: () => import('@babylonjs/core'),\n createPreviewEngine: createBabylonEditorPreviewEngine,\n importPreviewAsset: projection.importEditorProjectionModel,\n resolveMaterialTextureUrl: (texture: any) => projection.resolveEditorSceneTextureRefUrl(assets, texture),\n resolveAssetId: (asset: EditorSceneAssetLibraryItem) => asset.assetId,\n toBrowserAssetItem: (asset: EditorSceneAssetLibraryItem) => ({ id: asset.assetId, label: asset.displayName, kind: asset.kind, relativePath: resolveEditorSceneAssetLibraryItemRelativePath(asset), origin: asset.origin, contentHash: typeof asset.metadata?.contentHash === 'string' ? asset.metadata.contentHash : undefined, placeable: asset.placeable, preview: projection.createEditorSceneLibraryAssetPreview(asset) }),\n },\n createGrid: projection.createEditorGrid,\n authoring: { drivers: [{ sourceType: 'scene', load: loadSceneMainSource, save: saveSceneMainSource } as any] },\n },\n });\n return {\n assetsModule, hostAssembly, projection, scene,\n };\n}\n\nexport function mountFpsGameEditorStandardLocalEditorFromEnvironmentModule(\n project: FpsGameEditorProjectDefinition,\n options: FpsGameEditorStandardLocalEditorEnvironmentModuleOptions,\n): Promise<FpsGameEditorProductLocalEditorModeSwitcher<EditorSceneDocument>> {\n const assembly = createFpsGameEditorStandardLocalEditorAssembly(project, options);\n return mountFpsGameEditorProductLocalEditorFromEnvironmentModule({\n project,\n root: options.root,\n window: options.window,\n agentBridgeSessionMetadata: options.agentBridgeSessionMetadata,\n projectMode: options.projectMode,\n pluginModule: options.pluginModule,\n getCanvas: options.getCanvas,\n hostAssembly: assembly.hostAssembly,\n });\n}\n\n/** @deprecated Projects own Runtime lifecycle. Use mountFpsGameEditorStandardLocalEditorFromEnvironmentModule. */\nexport function mountFpsGameEditorStandardProject(\n project: FpsGameEditorProjectDefinition,\n runtimeHooks: FpsGameEditorRuntimeHooks,\n options: FpsGameEditorStandardProjectMountOptions = {},\n): FpsGameEditorProductLocalEditorModeSwitcher<EditorSceneDocument> {\n const runtime = createFpsGameEditorStandardProjectRuntime(project, runtimeHooks, options);\n return mountFpsGameEditorProductLocalEditor(runtime.createMountOptions());\n}\n\nfunction resolveStandardProjectAssetUrl(project: FpsGameEditorProjectDefinition, asset: EditorSceneAssetLibraryItem): string | null {\n const metadata = (asset.metadata ?? {}) as Record<string, unknown>;\n const external = (asset.external ?? {}) as Record<string, unknown>;\n const raw = [metadata.url, metadata.assetUrl, metadata.relativePath, external.assetUrl, external.assetPath]\n .find(value => typeof value === 'string' && value.trim()) as string | undefined;\n if (!raw) return null;\n if (/^(https?:|data:|blob:|\\/)/i.test(raw)) return raw;\n const normalized = raw.replace(/\\\\/g, '/');\n const importedMarker = normalized.lastIndexOf('/imported/');\n const relative = importedMarker >= 0 ? normalized.slice(importedMarker + '/imported/'.length) : normalized.replace(/^\\.\\.\\//, '');\n return `${project.assets.publicBase.replace(/\\/$/, '')}/${relative.replace(/^\\//, '')}`;\n}\n"]}
1
+ {"version":3,"file":"playable-standard-project.js","sourceRoot":"","sources":["../src/playable-standard-project.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,wCAAwC,EACxC,+BAA+B,EAC/B,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,+BAA+B,EAC/B,8CAA8C,EAC9C,mBAAmB,GAKpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EACL,sCAAsC,EACtC,oCAAoC,GACrC,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,oCAAoC,EACpC,yDAAyD,GAI1D,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,2CAA2C,EAAE,MAAM,0CAA0C,CAAC;AAkBvG,kHAAkH;AAClH,MAAM,UAAU,yCAAyC,CACvD,OAAuC,EACvC,YAAuC,EACvC,UAAoD,EAAE;IAEtD,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,8CAA8C,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClF,OAAO;QACL,OAAO;QACP,GAAG,QAAQ;QACX,kBAAkB;YAChB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;YAC/C,OAAO;gBACL,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa;gBAClD,WAAW,EAAE;oBACX,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE;oBACjD,aAAa,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,YAAY,CAAC,WAAW,KAAK,UAAU;wBAC7E,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;wBAC9B,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;iBACpC;gBACD,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAA8B;gBAChE,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,8CAA8C,CACrD,OAAuC,EACvC,OAAiD;IAEjD,MAAM,KAAK,GAAG,wCAAwC,CAA0B;QAC9E,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,EAAE;QACf,aAAa,EAAE,EAAE;QACjB,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAU,CAAA;QACxE,WAAW,EAAE;YACX,eAAe,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAClG,oBAAoB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,CAAC;YAC7E,kBAAkB,EAAE,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAC5H,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC;SAClE;KACF,CAAC,CAAC;IACH,MAAM,YAAY,GAA4B,EAAE,CAAC;IACjD,MAAM,YAAY,GAAG;QACnB,aAAa,EAAE,YAAY;KAC5B,CAAC;IACF,IAAI,MAAM,GAAkC,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,2CAA2C,CAAgB;QAC5E,YAAY;QACZ,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;QACpC,KAAK,CAAC,uBAAuB,CAAC,KAAK;YACjC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrE,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACxC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QACrF,CAAC;KACF,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,sCAAsC,CAA0B;QACnF,KAAK;QACL,QAAQ,EAAE;YACR,kBAAkB,EAAE,UAAU,CAAC,qBAAqB;YACpD,iBAAiB,EAAE,CAAC,QAA6B,EAAE,EAAU,EAAE,EAAE;gBAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzE,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3E,CAAC;YACD,2BAA2B,EAAE,UAAU,CAAC,2BAA2B;YACnE,yBAAyB,EAAE,UAAU,CAAC,yBAAyB;YAC/D,6BAA6B,EAAE,UAAU,CAAC,6BAA6B;YACvE,oBAAoB,EAAE,CAAC,KAAkC,EAAE,KAAU,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;SAChT;QACD,SAAS,EAAE,EAAE,eAAe,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE;gBACrD,MAAM,GAAG,UAA2C,CAAC;gBACrD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;oBAAE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;gBACtE,KAAK,MAAM,KAAK,IAAI,MAAuC,EAAE,CAAC;oBAC5D,MAAM,YAAY,GAAG,8CAA8C,CAAC,KAAK,CAAC,CAAC;oBAC3E,MAAM,MAAM,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;oBACpD,IAAI,CAAC,MAAM;wBAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC1G,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;wBAC5B,GAAG,KAAK;wBACR,GAAG,EAAE,8BAA8B,CAAC,OAAO,EAAE,KAAK,CAAC;wBACnD,MAAM;wBACN,YAAY;qBACb,CAAC;gBACJ,CAAC;gBACD,OAAO,oCAAoC,CAAC;oBAC1C,QAAQ;oBACR,MAAM;oBACN,qBAAqB,EAAE,+BAA+B;oBACtD,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;oBAC1D,0BAA0B,EAAE,KAAK,CAAC,0BAA0B;iBAC7D,CAAC,CAAC;YACL,CAAC,EAAE;QACH,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1B,aAAa,EAAE,UAAU,CAAC,uCAAuC,CAAC,MAAM,CAAC;YACzE,sBAAsB,EAAE,CAAC,SAAoC,EAAE,EAAE,CAAC,CAChE,UAAU,CAAC,+BAA+B,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAClF;SACF,CAAC;QACF,OAAO,EAAE;YACP,SAAS,EAAE,EAAE,cAAc,EAAE;oBAC3B,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,6BAA6B,EAAE;oBAC/E,SAAS,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,8BAA8B,EAAE;oBACjF,cAAc,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,wBAAwB,EAAE;oBAChF,iBAAiB,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,wBAAwB,EAAE;oBACzF,WAAW,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,qCAAqC,EAAE;iBAC9F,EAAE;YACH,kBAAkB,EAAE;gBAClB,mBAAmB,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC7L,UAAU,EAAE,sBAAsB;gBAClC,gBAAgB,EAAE,sBAAsB;gBACxC,eAAe,EAAE,qBAAqB;gBACtC,mBAAmB,EAAE,+BAA+B;aACrD;YACD,YAAY,EAAE;gBACZ,iBAAiB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBAClD,mBAAmB,EAAE,gCAAgC;gBACrD,kBAAkB,EAAE,UAAU,CAAC,2BAA2B;gBAC1D,yBAAyB,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,UAAU,CAAC,+BAA+B,CAAC,MAAM,EAAE,OAAO,CAAC;gBACxG,cAAc,EAAE,CAAC,KAAkC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO;gBACrE,kBAAkB,EAAE,CAAC,KAAkC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,8CAA8C,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,oCAAoC,CAAC,KAAK,CAAC,EAAE,CAAC;aAC/Z;YACD,UAAU,EAAE,UAAU,CAAC,gBAAgB;YACvC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB,EAAS,CAAC,EAAE;SAC/G;KACF,CAAC,CAAC;IACH,OAAO;QACL,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0DAA0D,CACxE,OAAuC,EACvC,OAAiE;IAEjE,MAAM,QAAQ,GAAG,8CAA8C,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClF,OAAO,yDAAyD,CAAC;QAC/D,OAAO;QACP,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY,EAAE,QAAQ,CAAC,YAAY;KACpC,CAAC,CAAC;AACL,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,iCAAiC,CAC/C,OAAuC,EACvC,YAAuC,EACvC,UAAoD,EAAE;IAEtD,MAAM,OAAO,GAAG,yCAAyC,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC1F,OAAO,oCAAoC,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,8BAA8B,CAAC,OAAuC,EAAE,KAAkC;IACjH,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;IACnE,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;IACnE,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC;SACxG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAuB,CAAC;IAClF,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACvD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAClI,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;AAC1F,CAAC","sourcesContent":["import {\n createFpsGameEditorAdapter,\n createFpsGameEditorStandardSceneAssembly,\n enrichEditorSceneDocumentAssets,\n loadEditorAssetLibrary,\n loadEditorProjectFile,\n loadEditorProjectFiles,\n loadSceneMainSource,\n getPlayableAssetFormat,\n resolveEditorProjectMediaSource,\n resolveEditorSceneAssetLibraryItemRelativePath,\n saveSceneMainSource,\n type EditorSceneAssetLibraryItem,\n type EditorSceneDocument,\n type FpsGameEditorProjectDefinition,\n type FpsGameEditorRuntimeHooks,\n} from '@fps-games/editor-playable-sdk';\nimport { createBabylonEditorPreviewEngine } from './internal/babylon-preview-engine.js';\nimport {\n createFpsGameEditorProductHostAssembly,\n prepareFpsGameEditorStandardDocument,\n} from './playable-product-scene-capabilities.js';\nimport {\n mountFpsGameEditorProductLocalEditor,\n mountFpsGameEditorProductLocalEditorFromEnvironmentModule,\n type FpsGameEditorProductLocalEditorEnvironmentModuleOptions,\n type FpsGameEditorProductLocalEditorModeSwitcher,\n type FpsGameEditorProductProjectModeTransitions,\n} from './playable-product-local-editor.js';\nimport { createFpsGameEditorProductProjectionPreview } from './playable-product-projection-preview.js';\n\nexport interface FpsGameEditorStandardProjectMountOptions {\n root?: HTMLElement;\n window?: Window;\n}\n\nexport interface FpsGameEditorStandardLocalEditorEnvironmentModuleOptions\n extends FpsGameEditorStandardProjectMountOptions {\n projectMode: FpsGameEditorProductProjectModeTransitions;\n pluginModule: FpsGameEditorProductLocalEditorEnvironmentModuleOptions<\n EditorSceneDocument,\n any,\n EditorSceneAssetLibraryItem\n >['pluginModule'];\n getCanvas?: () => HTMLCanvasElement | null;\n}\n\n/** @deprecated Projects own Runtime lifecycle. Use mountFpsGameEditorStandardLocalEditorFromEnvironmentModule. */\nexport function createFpsGameEditorStandardProjectRuntime(\n project: FpsGameEditorProjectDefinition,\n runtimeHooks: FpsGameEditorRuntimeHooks,\n options: FpsGameEditorStandardProjectMountOptions = {},\n) {\n const adapter = createFpsGameEditorAdapter(project, runtimeHooks);\n const assembly = createFpsGameEditorStandardLocalEditorAssembly(project, options);\n return {\n adapter,\n ...assembly,\n createMountOptions() {\n const runtimeWindow = options.window ?? window;\n return {\n project, root: options.root, window: runtimeWindow,\n projectMode: {\n enterEditorMode: () => adapter.disposeGameWorld(),\n enterPlayMode: (context: any) => typeof runtimeHooks.restartGame === 'function'\n ? adapter.restartGame(context)\n : runtimeWindow.location.reload(),\n },\n getCanvas: () => adapter.getCanvas() as HTMLCanvasElement | null,\n hostAssembly: assembly.hostAssembly,\n };\n },\n };\n}\n\nfunction createFpsGameEditorStandardLocalEditorAssembly(\n project: FpsGameEditorProjectDefinition,\n options: FpsGameEditorStandardProjectMountOptions,\n) {\n const scene = createFpsGameEditorStandardSceneAssembly<any, any, any, any, any>({\n features: project.features,\n markerTypes: [],\n relationTypes: [],\n getRenderingProfile: () => ({ shadows: { defaultMode: 'none' } } as any),\n createPatch: {\n gameObjectField: (targetId, path, value) => ({ kind: 'game-object.field', targetId, path, value }),\n gameObjectFieldBatch: fields => ({ kind: 'game-object.field-batch', fields }),\n materialAssetField: (materialAssetId, path, value) => ({ kind: 'scene.material-asset.field', materialAssetId, path, value }),\n markerGraph: command => ({ kind: 'scene.marker-graph', command }),\n },\n });\n const assetCatalog: Record<string, unknown> = {};\n const assetsModule = {\n ASSET_CATALOG: assetCatalog,\n };\n let assets: EditorSceneAssetLibraryItem[] = [];\n const projection = createFpsGameEditorProductProjectionPreview<any, any, any>({\n assetsModule,\n defaultCamera: scene.defaults.camera,\n async resolveModelPathAndFile(value) {\n const url = new URL(value, (options.window ?? window).location.href);\n const slash = url.href.lastIndexOf('/');\n return { path: url.href.slice(0, slash + 1), filename: url.href.slice(slash + 1) };\n },\n });\n const hostAssembly = createFpsGameEditorProductHostAssembly<any, any, any, any, any>({\n scene,\n document: {\n getProjectionNodes: projection.createProjectionNodes,\n getProjectionNode: (document: EditorSceneDocument, id: string) => {\n const object = document.scene.gameObjects.find(entry => entry.id === id);\n return object ? projection.createProjectionNode(document, object) : null;\n },\n getProjectionNodesForTarget: projection.getProjectionNodesForTarget,\n resolveProjectionTargetId: projection.resolveProjectionTargetId,\n getProjectionSelectionNodeIds: projection.getProjectionSelectionNodeIds,\n createPatchFromAsset: (asset: EditorSceneAssetLibraryItem, input: any) => ({ label: `Add ${input?.name || asset.displayName}`, patch: { kind: 'game-object.create-from-asset', assetItem: asset, ...(input?.name ? { name: input.name } : {}), ...(input?.placement ? { placement: input.placement } : {}) } }),\n },\n lifecycle: { prepareDocument: (document, nextAssets) => {\n assets = nextAssets as EditorSceneAssetLibraryItem[];\n for (const key of Object.keys(assetCatalog)) delete assetCatalog[key];\n for (const asset of assets as EditorSceneAssetLibraryItem[]) {\n const relativePath = resolveEditorSceneAssetLibraryItemRelativePath(asset);\n const format = getPlayableAssetFormat(relativePath);\n if (!format) throw new Error(`Asset format is required for generated catalog resource: ${asset.assetId}`);\n assetCatalog[asset.assetId] = {\n ...asset,\n url: resolveStandardProjectAssetUrl(project, asset),\n format,\n relativePath,\n };\n }\n return prepareFpsGameEditorStandardDocument({\n document,\n assets,\n hydrateDocumentAssets: enrichEditorSceneDocumentAssets,\n ensureEnvironmentDefaults: scene.ensureEnvironmentDefaults,\n normalizeHierarchyDocument: scene.normalizeHierarchyDocument,\n });\n } },\n getInspectorContext: () => ({\n textureAssets: projection.createEditorSceneInspectorTextureAssets(assets),\n resolveTextureAssetUrl: (textureId: string | null | undefined) => (\n projection.resolveEditorSceneTextureRefUrl(assets, { textureAssetId: textureId })\n ),\n }),\n runtime: {\n lifecycle: { loadingContent: {\n enter: { title: 'Entering editor', description: 'Loading the editable scene.' },\n saveScene: { title: 'Saving scene', description: 'Writing authored scene data.' },\n saveAndRunGame: { title: 'Saving scene', description: 'Returning to the game.' },\n discardAndRunGame: { title: 'Discarding changes', description: 'Returning to the game.' },\n assetImport: { title: 'Importing asset', description: 'Updating the project asset library.' },\n } },\n persistenceAdapter: {\n loadAuthoringSource: async () => { const loaded = await loadSceneMainSource(); return { source: loaded.source, document: loaded.document, assets: loaded.assets, summary: loaded.summary }; },\n loadAssets: loadEditorAssetLibrary,\n loadProjectFiles: loadEditorProjectFiles,\n loadProjectFile: loadEditorProjectFile,\n resolveProjectMedia: resolveEditorProjectMediaSource,\n },\n worldAdapter: {\n loadPreviewEngine: () => import('@babylonjs/core'),\n createPreviewEngine: createBabylonEditorPreviewEngine,\n importPreviewAsset: projection.importEditorProjectionModel,\n resolveMaterialTextureUrl: (texture: any) => projection.resolveEditorSceneTextureRefUrl(assets, texture),\n resolveAssetId: (asset: EditorSceneAssetLibraryItem) => asset.assetId,\n toBrowserAssetItem: (asset: EditorSceneAssetLibraryItem) => ({ id: asset.assetId, label: asset.displayName, kind: asset.kind, relativePath: resolveEditorSceneAssetLibraryItemRelativePath(asset), origin: asset.origin, contentHash: typeof asset.metadata?.contentHash === 'string' ? asset.metadata.contentHash : undefined, placeable: asset.placeable, preview: projection.createEditorSceneLibraryAssetPreview(asset) }),\n },\n createGrid: projection.createEditorGrid,\n authoring: { drivers: [{ sourceType: 'scene', load: loadSceneMainSource, save: saveSceneMainSource } as any] },\n },\n });\n return {\n assetsModule, hostAssembly, projection, scene,\n };\n}\n\nexport function mountFpsGameEditorStandardLocalEditorFromEnvironmentModule(\n project: FpsGameEditorProjectDefinition,\n options: FpsGameEditorStandardLocalEditorEnvironmentModuleOptions,\n): Promise<FpsGameEditorProductLocalEditorModeSwitcher<EditorSceneDocument>> {\n const assembly = createFpsGameEditorStandardLocalEditorAssembly(project, options);\n return mountFpsGameEditorProductLocalEditorFromEnvironmentModule({\n project,\n root: options.root,\n window: options.window,\n projectMode: options.projectMode,\n pluginModule: options.pluginModule,\n getCanvas: options.getCanvas,\n hostAssembly: assembly.hostAssembly,\n });\n}\n\n/** @deprecated Projects own Runtime lifecycle. Use mountFpsGameEditorStandardLocalEditorFromEnvironmentModule. */\nexport function mountFpsGameEditorStandardProject(\n project: FpsGameEditorProjectDefinition,\n runtimeHooks: FpsGameEditorRuntimeHooks,\n options: FpsGameEditorStandardProjectMountOptions = {},\n): FpsGameEditorProductLocalEditorModeSwitcher<EditorSceneDocument> {\n const runtime = createFpsGameEditorStandardProjectRuntime(project, runtimeHooks, options);\n return mountFpsGameEditorProductLocalEditor(runtime.createMountOptions());\n}\n\nfunction resolveStandardProjectAssetUrl(project: FpsGameEditorProjectDefinition, asset: EditorSceneAssetLibraryItem): string | null {\n const metadata = (asset.metadata ?? {}) as Record<string, unknown>;\n const external = (asset.external ?? {}) as Record<string, unknown>;\n const raw = [metadata.url, metadata.assetUrl, metadata.relativePath, external.assetUrl, external.assetPath]\n .find(value => typeof value === 'string' && value.trim()) as string | undefined;\n if (!raw) return null;\n if (/^(https?:|data:|blob:|\\/)/i.test(raw)) return raw;\n const normalized = raw.replace(/\\\\/g, '/');\n const importedMarker = normalized.lastIndexOf('/imported/');\n const relative = importedMarker >= 0 ? normalized.slice(importedMarker + '/imported/'.length) : normalized.replace(/^\\.\\.\\//, '');\n return `${project.assets.publicBase.replace(/\\/$/, '')}/${relative.replace(/^\\//, '')}`;\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import { type EditorSession } from '@fps-games/editor-core';
2
+ import type { EditorAuthoringSnapshot } from '@fps-games/editor-protocol';
3
+ import type { EditorCommandOperationSnapshot, EditorServiceGatewayRequest, EditorServiceGatewayResponse } from '@fps-games/editor-protocol';
4
+ export interface ProjectServiceProjectionSessionAuthority<TDocument, TPatch> {
5
+ replace(session: EditorSession<TDocument, TPatch> | null): void;
6
+ run<TResult>(session: EditorSession<TDocument, TPatch>, mutation: () => TResult): TResult;
7
+ dispose(): void;
8
+ }
9
+ export declare function createProjectServiceProjectionSessionAuthority<TDocument, TPatch>(): ProjectServiceProjectionSessionAuthority<TDocument, TPatch>;
10
+ export declare function classifyProjectServiceSnapshot(projectedServiceInstanceId: string | null, projectedDocumentRevision: number | null, snapshot: Pick<EditorAuthoringSnapshot, 'serviceInstanceId' | 'documentRevision'>): 'service-changed' | 'stale' | 'eligible';
11
+ export declare function shouldReplacePendingProjectServiceSnapshot(pending: Pick<EditorAuthoringSnapshot, 'serviceInstanceId' | 'documentRevision'> | null, snapshot: Pick<EditorAuthoringSnapshot, 'serviceInstanceId' | 'documentRevision'>): boolean;
12
+ export declare function waitForProjectServiceOperation(request: (request: EditorServiceGatewayRequest) => Promise<EditorServiceGatewayResponse>, initialResponse: EditorServiceGatewayResponse, options?: {
13
+ pollIntervalMs?: number;
14
+ wait?: (timeoutMs: number) => Promise<void>;
15
+ }): Promise<EditorCommandOperationSnapshot | null>;
16
+ //# sourceMappingURL=project-service-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-service-projection.d.ts","sourceRoot":"","sources":["../src/project-service-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EACV,8BAA8B,EAC9B,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,wCAAwC,CAAC,SAAS,EAAE,MAAM;IACzE,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAChE,GAAG,CAAC,OAAO,EACT,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,EACzC,QAAQ,EAAE,MAAM,OAAO,GACtB,OAAO,CAAC;IACX,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,8CAA8C,CAAC,SAAS,EAAE,MAAM,KAChF,wCAAwC,CAAC,SAAS,EAAE,MAAM,CAAC,CAkC1D;AAED,wBAAgB,8BAA8B,CAC5C,0BAA0B,EAAE,MAAM,GAAG,IAAI,EACzC,yBAAyB,EAAE,MAAM,GAAG,IAAI,EACxC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,mBAAmB,GAAG,kBAAkB,CAAC,GAChF,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAM1C;AAED,wBAAgB,0CAA0C,CACxD,OAAO,EAAE,IAAI,CAAC,uBAAuB,EAAE,mBAAmB,GAAG,kBAAkB,CAAC,GAAG,IAAI,EACvF,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,mBAAmB,GAAG,kBAAkB,CAAC,GAChF,OAAO,CAIT;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,4BAA4B,CAAC,EACxF,eAAe,EAAE,4BAA4B,EAC7C,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAO,GACrF,OAAO,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAehD"}