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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (652) hide show
  1. package/dist/agent-bridge/capabilities/assets.js.map +1 -1
  2. package/dist/agent-bridge/capabilities/editor-state.d.ts.map +1 -1
  3. package/dist/agent-bridge/capabilities/editor-state.js +26 -17
  4. package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
  5. package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -1
  6. package/dist/agent-bridge/capabilities/prefabs.d.ts.map +1 -1
  7. package/dist/agent-bridge/capabilities/prefabs.js +61 -13
  8. package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
  9. package/dist/agent-bridge/capabilities/scene-objects.d.ts +1 -1
  10. package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +1 -1
  11. package/dist/agent-bridge/capabilities/scene-objects.js +110 -25
  12. package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
  13. package/dist/agent-bridge/capabilities/selection.d.ts.map +1 -1
  14. package/dist/agent-bridge/capabilities/selection.js +8 -5
  15. package/dist/agent-bridge/capabilities/selection.js.map +1 -1
  16. package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -1
  17. package/dist/agent-bridge/capabilities/shadows.js +11 -2
  18. package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
  19. package/dist/agent-bridge/capabilities/transform.d.ts.map +1 -1
  20. package/dist/agent-bridge/capabilities/transform.js +6 -4
  21. package/dist/agent-bridge/capabilities/transform.js.map +1 -1
  22. package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
  23. package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -1
  24. package/dist/agent-bridge/capabilities/viewport.js +79 -47
  25. package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
  26. package/dist/agent-bridge/capability-sources.js.map +1 -1
  27. package/dist/agent-bridge/diagnostics.js.map +1 -1
  28. package/dist/agent-bridge/index.js.map +1 -1
  29. package/dist/agent-bridge/register.js.map +1 -1
  30. package/dist/agent-bridge/shared.d.ts +8 -3
  31. package/dist/agent-bridge/shared.d.ts.map +1 -1
  32. package/dist/agent-bridge/shared.js +32 -0
  33. package/dist/agent-bridge/shared.js.map +1 -1
  34. package/dist/agent-bridge/source-types.js.map +1 -1
  35. package/dist/authoring-apply.js.map +1 -1
  36. package/dist/build-info.json +48 -48
  37. package/dist/editor-plugin-agent-capabilities.js.map +1 -1
  38. package/dist/editor-plugin-hierarchy-command.js.map +1 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/internal/local-editor-lifecycle-operations.js.map +1 -1
  41. package/dist/local-editor-agent-actions.d.ts.map +1 -1
  42. package/dist/local-editor-agent-actions.js +9 -5
  43. package/dist/local-editor-agent-actions.js.map +1 -1
  44. package/dist/local-editor-agent-bridge-transport.js.map +1 -1
  45. package/dist/local-editor-agent-bridge.js.map +1 -1
  46. package/dist/local-editor-agent-context.js.map +1 -1
  47. package/dist/local-editor-harness.d.ts +57 -1
  48. package/dist/local-editor-harness.d.ts.map +1 -1
  49. package/dist/local-editor-harness.js +393 -41
  50. package/dist/local-editor-harness.js.map +1 -1
  51. package/dist/local-editor-marker-graph.js.map +1 -1
  52. package/dist/local-editor-performance-stats.js.map +1 -1
  53. package/dist/local-editor-plugin-inspector.js.map +1 -1
  54. package/dist/local-editor-plugin-panel.js.map +1 -1
  55. package/dist/local-editor-scene-render-scheduler.js.map +1 -1
  56. package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
  57. package/dist/local-editor-viewport-render-coordinator.js.map +1 -1
  58. package/dist/playable-babylon-facade.js.map +1 -1
  59. package/dist/playable-babylon-outline-inspector.js.map +1 -1
  60. package/dist/playable-babylon-outline-runtime.js.map +1 -1
  61. package/dist/playable-babylon-rendering.js.map +1 -1
  62. package/dist/playable-local-editor-host.d.ts +36 -0
  63. package/dist/playable-local-editor-host.d.ts.map +1 -1
  64. package/dist/playable-local-editor-host.js.map +1 -1
  65. package/dist/playable-product-local-editor.js.map +1 -1
  66. package/dist/playable-product-projection-preview.js.map +1 -1
  67. package/dist/playable-product-rendering.js.map +1 -1
  68. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  69. package/dist/playable-product-scene-capabilities.js +49 -2
  70. package/dist/playable-product-scene-capabilities.js.map +1 -1
  71. package/dist/playable-runtime-babylon.js.map +1 -1
  72. package/dist/playable-runtime.js.map +1 -1
  73. package/dist/playable-sdk-upgrade-doctor.js.map +1 -1
  74. package/dist/playable-sdk-vite.js.map +1 -1
  75. package/dist/playable-sdk.js.map +1 -1
  76. package/dist/playable-standard-project.js.map +1 -1
  77. package/dist/static-shadow-cpu-worker.js.map +1 -1
  78. package/dist/vite.js.map +1 -1
  79. package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js.map +1 -1
  80. package/node_modules/@fps-games/babylon-renderer/dist/environment/index.js.map +1 -1
  81. package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js.map +1 -1
  82. package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js.map +1 -1
  83. package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
  84. package/node_modules/@fps-games/babylon-renderer/dist/lighting/directional-light-angles.js.map +1 -1
  85. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/apply.js.map +1 -1
  86. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/index.js.map +1 -1
  87. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/types.js.map +1 -1
  88. package/node_modules/@fps-games/babylon-renderer/dist/outlines/index.js.map +1 -1
  89. package/node_modules/@fps-games/babylon-renderer/dist/outlines/types.js.map +1 -1
  90. package/node_modules/@fps-games/babylon-renderer/dist/placement/index.js.map +1 -1
  91. package/node_modules/@fps-games/babylon-renderer/dist/placement/runtime-drop-position.js.map +1 -1
  92. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
  93. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
  94. package/node_modules/@fps-games/babylon-renderer/dist/post-process/index.js.map +1 -1
  95. package/node_modules/@fps-games/babylon-renderer/dist/post-process/profile.js.map +1 -1
  96. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
  97. package/node_modules/@fps-games/babylon-renderer/dist/post-process/volume-stack.js.map +1 -1
  98. package/node_modules/@fps-games/babylon-renderer/dist/reference.js.map +1 -1
  99. package/node_modules/@fps-games/babylon-renderer/dist/rendering/index.js.map +1 -1
  100. package/node_modules/@fps-games/babylon-renderer/dist/rendering/node-rendering.js.map +1 -1
  101. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js.map +1 -1
  102. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js.map +1 -1
  103. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
  104. package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-shaders.js.map +1 -1
  105. package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js.map +1 -1
  106. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js.map +1 -1
  107. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js.map +1 -1
  108. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js.map +1 -1
  109. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map +1 -1
  110. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-options.js.map +1 -1
  111. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js.map +1 -1
  112. package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js.map +1 -1
  113. package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
  114. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
  115. package/node_modules/@fps-games/editor-babylon/dist/edit-session.js.map +1 -1
  116. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js.map +1 -1
  117. package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -1
  118. package/node_modules/@fps-games/editor-babylon/dist/event-guard.js.map +1 -1
  119. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
  120. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid-layer.js.map +1 -1
  121. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js.map +1 -1
  122. package/node_modules/@fps-games/editor-babylon/dist/input-controller.js.map +1 -1
  123. package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.js.map +1 -1
  124. package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js.map +1 -1
  125. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
  126. package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
  127. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
  128. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
  129. package/node_modules/@fps-games/editor-babylon/dist/monitor.js.map +1 -1
  130. package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.js.map +1 -1
  131. package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js.map +1 -1
  132. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +1 -1
  133. package/node_modules/@fps-games/editor-babylon/dist/primitive-projection-instancing.js.map +1 -1
  134. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
  135. package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.js.map +1 -1
  136. package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js.map +1 -1
  137. package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.js.map +1 -1
  138. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  139. package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.js.map +1 -1
  140. package/node_modules/@fps-games/editor-babylon/dist/scene-camera-preview.js.map +1 -1
  141. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
  142. package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js.map +1 -1
  143. package/node_modules/@fps-games/editor-babylon/dist/scene-view-measurement-controller.js.map +1 -1
  144. package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js.map +1 -1
  145. package/node_modules/@fps-games/editor-babylon/dist/selection-controller.js.map +1 -1
  146. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
  147. package/node_modules/@fps-games/editor-babylon/dist/tool-controller.js.map +1 -1
  148. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
  149. package/node_modules/@fps-games/editor-babylon/dist/transform-solver.js.map +1 -1
  150. package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -1
  151. package/node_modules/@fps-games/editor-babylon/package.json +5 -5
  152. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +3 -1
  153. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  154. package/node_modules/@fps-games/editor-browser/dist/index.js +2 -0
  155. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  156. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-clipboard.js.map +1 -1
  157. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
  158. package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js.map +1 -1
  159. package/node_modules/@fps-games/editor-browser/dist/local-editor-root-ownership.js.map +1 -1
  160. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
  161. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
  162. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
  163. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
  164. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +1 -1
  165. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-auto-scroll.js.map +1 -1
  166. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +1 -1
  167. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +2 -1
  168. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  169. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +260 -94
  170. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  171. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
  172. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts +7 -0
  173. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts.map +1 -0
  174. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js +186 -0
  175. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js.map +1 -0
  176. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts +2 -2
  177. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +1 -1
  178. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +14 -8
  179. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +1 -1
  180. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +1 -1
  181. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +23 -7
  182. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -1
  183. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  184. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
  185. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
  186. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +6 -0
  187. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
  188. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts +3 -0
  189. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
  190. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +60 -13
  191. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
  192. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
  193. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js.map +1 -1
  194. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  195. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-plugin-panel.js.map +1 -1
  196. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
  197. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
  198. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
  199. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
  200. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts +24 -0
  201. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts.map +1 -0
  202. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js +69 -0
  203. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js.map +1 -0
  204. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-auto-scroll.js.map +1 -1
  205. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
  206. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-preview.js.map +1 -1
  207. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-session.js.map +1 -1
  208. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
  209. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
  210. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +58 -14
  211. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  212. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  213. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
  214. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +1 -1
  215. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  216. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +196 -11
  217. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  218. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
  219. package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.js.map +1 -1
  220. package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.js.map +1 -1
  221. package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.js.map +1 -1
  222. package/node_modules/@fps-games/editor-browser/package.json +4 -4
  223. package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +1 -1
  224. package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +1 -1
  225. package/node_modules/@fps-games/editor-core/dist/authoring-source.js.map +1 -1
  226. package/node_modules/@fps-games/editor-core/dist/document-adapter.js.map +1 -1
  227. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
  228. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +9 -1
  229. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  230. package/node_modules/@fps-games/editor-core/dist/editor-session.js +18 -0
  231. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  232. package/node_modules/@fps-games/editor-core/dist/events.d.ts +1 -1
  233. package/node_modules/@fps-games/editor-core/dist/events.d.ts.map +1 -1
  234. package/node_modules/@fps-games/editor-core/dist/events.js.map +1 -1
  235. package/node_modules/@fps-games/editor-core/dist/field-schema/index.js.map +1 -1
  236. package/node_modules/@fps-games/editor-core/dist/field-schema/resolver.js.map +1 -1
  237. package/node_modules/@fps-games/editor-core/dist/field-schema/schema.js.map +1 -1
  238. package/node_modules/@fps-games/editor-core/dist/field-schema/types.js.map +1 -1
  239. package/node_modules/@fps-games/editor-core/dist/field-schema/validators.js.map +1 -1
  240. package/node_modules/@fps-games/editor-core/dist/host-services.js.map +1 -1
  241. package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
  242. package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
  243. package/node_modules/@fps-games/editor-core/dist/lifecycle.js.map +1 -1
  244. package/node_modules/@fps-games/editor-core/dist/marker-graph.js.map +1 -1
  245. package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
  246. package/node_modules/@fps-games/editor-core/dist/scene-view-input.js.map +1 -1
  247. package/node_modules/@fps-games/editor-core/dist/selection-strategy.js.map +1 -1
  248. package/node_modules/@fps-games/editor-core/dist/serialized-object.js.map +1 -1
  249. package/node_modules/@fps-games/editor-core/dist/transform-command.js.map +1 -1
  250. package/node_modules/@fps-games/editor-core/dist/transform-gizmo.js.map +1 -1
  251. package/node_modules/@fps-games/editor-core/dist/transform-operation-policy.js.map +1 -1
  252. package/node_modules/@fps-games/editor-core/dist/transform-operations.js.map +1 -1
  253. package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
  254. package/node_modules/@fps-games/editor-core/package.json +6 -6
  255. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +1 -1
  256. package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
  257. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  258. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/drop-cache.js.map +1 -1
  259. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/index.js.map +1 -1
  260. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.d.ts.map +1 -1
  261. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js +28 -5
  262. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js.map +1 -1
  263. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts +1 -0
  264. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts.map +1 -1
  265. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.js.map +1 -1
  266. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.js.map +1 -1
  267. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js.map +1 -1
  268. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js.map +1 -1
  269. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/managed-facade.js.map +1 -1
  270. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.d.ts.map +1 -1
  271. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js +13 -1
  272. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js.map +1 -1
  273. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
  274. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
  275. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +1 -0
  276. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
  277. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +58 -23
  278. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
  279. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.js.map +1 -1
  280. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
  281. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
  282. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js.map +1 -1
  283. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.js.map +1 -1
  284. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js.map +1 -1
  285. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/identity.js.map +1 -1
  286. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js.map +1 -1
  287. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/managed-runtime-instance.js.map +1 -1
  288. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js.map +1 -1
  289. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/runtime-scene.js.map +1 -1
  290. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/types.js.map +1 -1
  291. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/index.js.map +1 -1
  292. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.d.ts.map +1 -1
  293. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js +3 -0
  294. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js.map +1 -1
  295. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/transport.js.map +1 -1
  296. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts +1 -0
  297. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts.map +1 -1
  298. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.js.map +1 -1
  299. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts +1 -0
  300. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts.map +1 -1
  301. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js +7 -1
  302. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js.map +1 -1
  303. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/constants.js.map +1 -1
  304. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/drift.js.map +1 -1
  305. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/index.js.map +1 -1
  306. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/runtime-transform-patch.js.map +1 -1
  307. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/source.js.map +1 -1
  308. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/client.js.map +1 -1
  309. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/index.js.map +1 -1
  310. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/types.js.map +1 -1
  311. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js.map +1 -1
  312. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/index.js.map +1 -1
  313. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/payload.js.map +1 -1
  314. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/response.js.map +1 -1
  315. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js.map +1 -1
  316. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.js.map +1 -1
  317. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/adapter-dispatcher.js.map +1 -1
  318. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/index.js.map +1 -1
  319. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/payload.js.map +1 -1
  320. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/project-asset-adapter.js.map +1 -1
  321. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.js.map +1 -1
  322. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/readers.js.map +1 -1
  323. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/types.js.map +1 -1
  324. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/binding.js.map +1 -1
  325. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/fields.js.map +1 -1
  326. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/index.js.map +1 -1
  327. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/math.js.map +1 -1
  328. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/pan.js.map +1 -1
  329. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-format.js.map +1 -1
  330. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-state.js.map +1 -1
  331. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-storage.js.map +1 -1
  332. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-text.js.map +1 -1
  333. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/rig.js.map +1 -1
  334. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/save-patch.js.map +1 -1
  335. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/snapshot.js.map +1 -1
  336. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/types.js.map +1 -1
  337. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/index.js.map +1 -1
  338. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/transform.js.map +1 -1
  339. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/types.js.map +1 -1
  340. package/node_modules/@fps-games/editor-playable-sdk/dist/core-contracts/index.js.map +1 -1
  341. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  342. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
  343. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
  344. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js.map +1 -1
  345. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/resolver.js.map +1 -1
  346. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js.map +1 -1
  347. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/types.js.map +1 -1
  348. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js.map +1 -1
  349. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
  350. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/camera-section.js.map +1 -1
  351. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-property.js.map +1 -1
  352. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
  353. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/format.js.map +1 -1
  354. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js.map +1 -1
  355. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-fields.js.map +1 -1
  356. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-sections.js.map +1 -1
  357. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/marker-section.js.map +1 -1
  358. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/object-assembly.js.map +1 -1
  359. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/readonly.js.map +1 -1
  360. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-sections.js.map +1 -1
  361. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-summary.js.map +1 -1
  362. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime.js.map +1 -1
  363. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/safe-value.js.map +1 -1
  364. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/types.js.map +1 -1
  365. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/validation.js.map +1 -1
  366. package/node_modules/@fps-games/editor-playable-sdk/dist/internal/local-harness.js.map +1 -1
  367. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/binding.js.map +1 -1
  368. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/fields.js.map +1 -1
  369. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/index.js.map +1 -1
  370. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.js.map +1 -1
  371. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/save-patch.js.map +1 -1
  372. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/snapshot.js.map +1 -1
  373. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/storage.js.map +1 -1
  374. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/text.js.map +1 -1
  375. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/types.js.map +1 -1
  376. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/index.js.map +1 -1
  377. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/math.js.map +1 -1
  378. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/profile.js.map +1 -1
  379. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/types.js.map +1 -1
  380. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +1 -1
  381. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
  382. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
  383. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  384. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +5 -0
  385. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  386. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  387. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +1 -1
  388. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  389. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  390. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  391. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/loading-overlay.js.map +1 -1
  392. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +18 -0
  393. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
  394. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +60 -1
  395. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
  396. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/timing.js.map +1 -1
  397. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
  398. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/facade.js.map +1 -1
  399. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/game-objects.js.map +1 -1
  400. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/geometry.js.map +1 -1
  401. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/index.js.map +1 -1
  402. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
  403. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
  404. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/default-assets.js.map +1 -1
  405. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.d.ts.map +1 -1
  406. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js +28 -2
  407. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js.map +1 -1
  408. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/duplicate.js.map +1 -1
  409. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/index.js.map +1 -1
  410. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
  411. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/paths.js.map +1 -1
  412. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/preview.js.map +1 -1
  413. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/profile.js.map +1 -1
  414. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.d.ts.map +1 -1
  415. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js +26 -9
  416. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js.map +1 -1
  417. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/resolver.js.map +1 -1
  418. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
  419. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
  420. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +0 -3
  421. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
  422. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/text.js.map +1 -1
  423. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts +8 -1
  424. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts.map +1 -1
  425. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.js.map +1 -1
  426. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
  427. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.js.map +1 -1
  428. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/json-field.js.map +1 -1
  429. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
  430. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.js.map +1 -1
  431. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/transform.js.map +1 -1
  432. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.js.map +1 -1
  433. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +1 -1
  434. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
  435. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +18 -1
  436. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
  437. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/index.js.map +1 -1
  438. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts +2 -0
  439. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts.map +1 -1
  440. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.js.map +1 -1
  441. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
  442. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
  443. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
  444. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
  445. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
  446. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/shadow-inspector.js.map +1 -1
  447. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/source-structure-inspector.js.map +1 -1
  448. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
  449. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/structure.js.map +1 -1
  450. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/types.js.map +1 -1
  451. package/node_modules/@fps-games/editor-playable-sdk/dist/product/asset-manager.js.map +1 -1
  452. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal-scene-feature.js.map +1 -1
  453. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
  454. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
  455. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +1 -0
  456. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
  457. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +3 -1
  458. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
  459. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
  460. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
  461. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-asset-actions.js.map +1 -1
  462. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
  463. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/draft.js.map +1 -1
  464. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/index.js.map +1 -1
  465. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
  466. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/route.js.map +1 -1
  467. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
  468. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js.map +1 -1
  469. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.js.map +1 -1
  470. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/index.js.map +1 -1
  471. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
  472. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
  473. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +13 -1
  474. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
  475. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
  476. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
  477. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
  478. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/artifacts.js.map +1 -1
  479. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  480. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.js.map +1 -1
  481. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
  482. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/index.js.map +1 -1
  483. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
  484. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
  485. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/validation.js.map +1 -1
  486. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js.map +1 -1
  487. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.js.map +1 -1
  488. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
  489. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js.map +1 -1
  490. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/patch.js.map +1 -1
  491. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/types.js.map +1 -1
  492. package/node_modules/@fps-games/editor-playable-sdk/dist/session/classification.js.map +1 -1
  493. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
  494. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js.map +1 -1
  495. package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.js.map +1 -1
  496. package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.js.map +1 -1
  497. package/node_modules/@fps-games/editor-playable-sdk/dist/session/object-command-facade.js.map +1 -1
  498. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
  499. package/node_modules/@fps-games/editor-playable-sdk/dist/session/property-patches.js.map +1 -1
  500. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
  501. package/node_modules/@fps-games/editor-playable-sdk/dist/session/system-defaults.js.map +1 -1
  502. package/node_modules/@fps-games/editor-playable-sdk/dist/session/transform.js.map +1 -1
  503. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
  504. package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.js.map +1 -1
  505. package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.js.map +1 -1
  506. package/node_modules/@fps-games/editor-playable-sdk/dist/shared/http.js.map +1 -1
  507. package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.js.map +1 -1
  508. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js.map +1 -1
  509. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js.map +1 -1
  510. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/host.js.map +1 -1
  511. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js.map +1 -1
  512. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  513. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/report.js.map +1 -1
  514. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.js.map +1 -1
  515. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/asset-authoring.js.map +1 -1
  516. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts +1 -0
  517. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts.map +1 -1
  518. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js +1 -0
  519. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js.map +1 -1
  520. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js.map +1 -1
  521. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js.map +1 -1
  522. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +6 -5
  523. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
  524. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
  525. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
  526. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts +3 -1
  527. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts.map +1 -1
  528. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js +37 -8
  529. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js.map +1 -1
  530. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/path-write-coordinator.js.map +1 -1
  531. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts +4 -3
  532. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
  533. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +14 -1
  534. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
  535. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +5 -4
  536. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
  537. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
  538. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +3 -2
  539. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
  540. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +2 -11
  541. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
  542. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +8 -7
  543. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  544. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +84 -6
  545. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  546. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts +2 -1
  547. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts.map +1 -1
  548. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.js.map +1 -1
  549. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +4 -3
  550. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
  551. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +1 -4
  552. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
  553. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +1 -1
  554. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +0 -33
  555. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
  556. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
  557. package/node_modules/@fps-games/editor-playable-sdk/package.json +9 -6
  558. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
  559. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +1 -1
  560. package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
  561. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  562. package/node_modules/@fps-games/editor-protocol/dist/marker-graph.js.map +1 -1
  563. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  564. package/node_modules/@fps-games/editor-tooling/dist/contributions.js.map +1 -1
  565. package/node_modules/@fps-games/editor-tooling/dist/data-object.js.map +1 -1
  566. package/node_modules/@fps-games/editor-tooling/dist/index.js.map +1 -1
  567. package/node_modules/@fps-games/editor-tooling/dist/migration.js.map +1 -1
  568. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
  569. package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
  570. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  571. package/node_modules/@fps-games/playable-assets/dist/identity.js.map +1 -1
  572. package/node_modules/@fps-games/playable-assets/dist/index.d.ts +1 -0
  573. package/node_modules/@fps-games/playable-assets/dist/index.d.ts.map +1 -1
  574. package/node_modules/@fps-games/playable-assets/dist/index.js +1 -0
  575. package/node_modules/@fps-games/playable-assets/dist/index.js.map +1 -1
  576. package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts +2 -0
  577. package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts.map +1 -0
  578. package/node_modules/@fps-games/playable-assets/dist/portable-path.js +25 -0
  579. package/node_modules/@fps-games/playable-assets/dist/portable-path.js.map +1 -0
  580. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  581. package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
  582. package/node_modules/@fps-games/playable-contracts/dist/marker-graph-validation.js.map +1 -1
  583. package/node_modules/@fps-games/playable-contracts/dist/marker-graph.js.map +1 -1
  584. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  585. package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
  586. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-authoring.js.map +1 -1
  587. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-types.js.map +1 -1
  588. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
  589. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-values.js.map +1 -1
  590. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile.js.map +1 -1
  591. package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
  592. package/node_modules/@fps-games/playable-rendering/dist/shadow-quality.js.map +1 -1
  593. package/node_modules/@fps-games/playable-rendering/dist/shadow-runtime.js.map +1 -1
  594. package/node_modules/@fps-games/playable-rendering/dist/shadow-settings.js.map +1 -1
  595. package/node_modules/@fps-games/playable-rendering/dist/shadow-types.js.map +1 -1
  596. package/node_modules/@fps-games/playable-rendering/dist/shadow-validation.js.map +1 -1
  597. package/node_modules/@fps-games/playable-rendering/dist/value.js.map +1 -1
  598. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  599. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
  600. package/node_modules/@fps-games/playable-runtime/dist/index.js.map +1 -1
  601. package/node_modules/@fps-games/playable-runtime/dist/runtime-data.js.map +1 -1
  602. package/node_modules/@fps-games/playable-runtime/dist/runtime.js.map +1 -1
  603. package/node_modules/@fps-games/playable-runtime/dist/standard-plugins.js.map +1 -1
  604. package/node_modules/@fps-games/playable-runtime/dist/tokens.js.map +1 -1
  605. package/node_modules/@fps-games/playable-runtime/dist/types.js.map +1 -1
  606. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  607. package/node_modules/@fps-games/playable-runtime-data/dist/index.js.map +1 -1
  608. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  609. package/node_modules/@fps-games/playable-scene/dist/index.js.map +1 -1
  610. package/node_modules/@fps-games/playable-scene/dist/transform-math.js.map +1 -1
  611. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  612. package/node_modules/@fps-games/plugin-api/dist/index.js.map +1 -1
  613. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  614. package/node_modules/@fps-games/plugin-assets/dist/reference.js.map +1 -1
  615. package/node_modules/@fps-games/plugin-assets/dist/runtime.js.map +1 -1
  616. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  617. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  618. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  619. package/node_modules/@fps-games/plugin-assets/package.json +5 -5
  620. package/node_modules/@fps-games/plugin-host/dist/index.js.map +1 -1
  621. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  622. package/node_modules/@fps-games/plugin-markers/dist/reference.js.map +1 -1
  623. package/node_modules/@fps-games/plugin-markers/dist/runtime.js.map +1 -1
  624. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  625. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  626. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  627. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  628. package/node_modules/@fps-games/plugin-materials/dist/reference.js.map +1 -1
  629. package/node_modules/@fps-games/plugin-materials/dist/runtime.js.map +1 -1
  630. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  631. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  632. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  633. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  634. package/node_modules/@fps-games/plugin-rendering/dist/reference.js.map +1 -1
  635. package/node_modules/@fps-games/plugin-rendering/dist/runtime.js.map +1 -1
  636. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  637. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  638. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  639. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  640. package/node_modules/@fps-games/plugin-scene/dist/reference.js.map +1 -1
  641. package/node_modules/@fps-games/plugin-scene/dist/runtime.js.map +1 -1
  642. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  643. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  644. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  645. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  646. package/node_modules/@fps-games/plugin-shadows/dist/reference.js.map +1 -1
  647. package/node_modules/@fps-games/plugin-shadows/dist/runtime.js.map +1 -1
  648. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  649. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  650. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  651. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  652. package/package.json +27 -19
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n FpsCommand, FpsCommandRegistry, FpsDiagnostic, FpsDisposer, FpsEvent, FpsEventRegistry,\n FpsPluginContext, FpsPluginEntry, FpsPluginEnvironment, FpsPluginManifest, FpsPluginScope,\n FpsPluginEnvironmentModule,\n FpsServiceRegistry, FpsServiceToken,\n} from '@fps-games/plugin-api';\nimport {\n defineFpsPluginEntry,\n defineFpsPluginManifest,\n defineFpsServiceToken,\n getFpsPluginEventNamespace,\n resolveFpsPluginEnvironmentProvides,\n resolveFpsPluginEnvironmentRequirements,\n snapshotFpsPluginConfig,\n} from '@fps-games/plugin-api';\nimport semver from 'semver';\n\nconst { satisfies, valid, validRange } = semver;\n\nexport type FpsPluginHostState = 'created' | 'registered' | 'started' | 'stopped' | 'cleanup-failed' | 'disposed';\nexport type FpsPluginLifecycleState = 'unavailable' | 'discovered' | 'registered' | 'started' | 'stopped' | 'disposed';\nexport interface FpsPluginTeardownReservation extends FpsDisposer {\n assertReady(): void;\n}\nexport type FpsPluginInspectionDiagnostic = Readonly<Pick<\n FpsDiagnostic,\n 'code' | 'message' | 'severity' | 'pluginId'\n>>;\n\nexport interface FpsPluginInspection {\n readonly manifest: FpsPluginManifest;\n readonly lifecycle: FpsPluginLifecycleState;\n readonly compatible: boolean;\n}\n\nexport interface FpsPluginHostInspection {\n readonly environment: FpsPluginEnvironment;\n readonly apiVersion: number;\n readonly scope: FpsPluginScope;\n readonly state: FpsPluginHostState;\n readonly transitioning: boolean;\n readonly plugins: readonly FpsPluginInspection[];\n readonly diagnostics: readonly FpsPluginInspectionDiagnostic[];\n}\n\ntype PluginRecord = {\n manifest: FpsPluginManifest;\n entry: FpsPluginEntry;\n context: FpsPluginContext;\n disposers: FpsDisposer[];\n started: boolean;\n disposeCompleted: boolean;\n};\n\nfunction combineErrors(errors: readonly unknown[], message: string): Error {\n const details = errors.map(error => error instanceof Error ? error.message : String(error)).join('; ');\n const combined = new Error(`${message} ${details}`);\n Object.assign(combined, { errors: [...errors] });\n return combined;\n}\n\nclass Services implements FpsServiceRegistry {\n private readonly values = new Map<string, { value: unknown; owner: string }>();\n private active = true;\n constructor(private readonly parent?: Services) {}\n private assertActive(): void { if (!this.active) throw new Error('Service registry is disposed.'); }\n register<T>(token: FpsServiceToken<T>, value: T): FpsDisposer {\n return this.registerOwned(token, value, 'host');\n }\n registerOwned<T>(token: FpsServiceToken<T>, value: T, owner: string): FpsDisposer {\n this.assertActive();\n if (this.values.has(token.id)) throw new Error(`Service already registered in this scope: ${token.id}`);\n const registration = { value, owner };\n this.values.set(token.id, registration);\n return () => { if (this.values.get(token.id) === registration) this.values.delete(token.id); };\n }\n has<T>(token: FpsServiceToken<T>): boolean { this.assertActive(); return this.hasId(token.id); }\n get<T>(token: FpsServiceToken<T>): T {\n this.assertActive();\n const registration = this.resolve(token.id);\n if (!registration) throw new Error(`Service not registered: ${token.id}`);\n return registration.value as T;\n }\n getOptional<T>(token: FpsServiceToken<T>): T | undefined {\n this.assertActive();\n return this.resolve(token.id)?.value as T | undefined;\n }\n private resolve(id: string): { value: unknown; owner: string } | undefined { return this.values.get(id) ?? this.parent?.resolve(id); }\n hasId(id: string): boolean { return this.resolve(id) !== undefined; }\n hasLocalId(id: string, owner?: string): boolean { const value = this.values.get(id); return value !== undefined && (owner === undefined || value.owner === owner); }\n deactivate(): void { this.values.clear(); this.active = false; }\n}\n\nclass PluginServices implements FpsServiceRegistry {\n private readonly readable: ReadonlySet<string>;\n private readonly writable: ReadonlySet<string>;\n constructor(\n private readonly services: Services,\n private readonly manifest: FpsPluginManifest,\n environment: FpsPluginEnvironment,\n ) {\n const requires = resolveFpsPluginEnvironmentRequirements(manifest, environment);\n const provides = resolveFpsPluginEnvironmentProvides(manifest, environment);\n this.writable = new Set(provides.services ?? []);\n this.readable = new Set([...(requires.services ?? []), ...this.writable]);\n }\n private assertReadable<T>(token: FpsServiceToken<T>): void {\n if (!this.readable.has(token.id)) throw new Error(`Plugin accessed undeclared service: ${this.manifest.id} -> ${token.id}`);\n }\n register<T>(token: FpsServiceToken<T>, value: T): FpsDisposer {\n if (!this.writable.has(token.id)) throw new Error(`Plugin registered undeclared service: ${this.manifest.id} -> ${token.id}`);\n return this.services.registerOwned(token, value, this.manifest.id);\n }\n has<T>(token: FpsServiceToken<T>): boolean { this.assertReadable(token); return this.services.has(token); }\n get<T>(token: FpsServiceToken<T>): T { this.assertReadable(token); return this.services.get(token); }\n getOptional<T>(token: FpsServiceToken<T>): T | undefined { this.assertReadable(token); return this.services.getOptional(token); }\n}\n\nclass Commands implements FpsCommandRegistry {\n private readonly handlers = new Map<string, (input: unknown) => unknown>();\n private readonly activeExecutions = new Map<number, string>();\n private nextExecutionId = 1;\n private active = true;\n constructor(\n private readonly parent?: Commands,\n private readonly assertExecutionAvailable?: () => void,\n ) {}\n private assertActive(): void { if (!this.active) throw new Error('Command registry is disposed.'); }\n register<TInput, TOutput>(command: FpsCommand<TInput, TOutput>, handler: (input: TInput) => TOutput | Promise<TOutput>): FpsDisposer {\n this.assertActive();\n if (this.handlers.has(command.id)) throw new Error(`Command already registered in this scope: ${command.id}`);\n this.handlers.set(command.id, handler as (input: unknown) => unknown);\n return () => { if (this.handlers.get(command.id) === handler) this.handlers.delete(command.id); };\n }\n async execute<TInput, TOutput>(command: FpsCommand<TInput, TOutput>, input: TInput): Promise<TOutput> {\n return this.executeWithAuthorization(command, input, false);\n }\n private async executeWithAuthorization<TInput, TOutput>(\n command: FpsCommand<TInput, TOutput>,\n input: TInput,\n authorized: boolean,\n ): Promise<TOutput> {\n this.assertActive();\n if (!authorized) this.assertExecutionAvailable?.();\n const handler = this.handlers.get(command.id);\n if (handler) {\n const executionId = this.nextExecutionId++;\n this.activeExecutions.set(executionId, command.id);\n try { return await handler(input) as TOutput; }\n finally { this.activeExecutions.delete(executionId); }\n }\n if (this.parent) return this.parent.executeWithAuthorization(command, input, true);\n throw new Error(`Command not registered: ${command.id}`);\n }\n listActiveExecutions(): readonly string[] { return [...this.activeExecutions.values()]; }\n deactivate(): void { this.handlers.clear(); this.active = false; }\n}\n\nclass Events implements FpsEventRegistry {\n private readonly listeners = new Map<string, Set<(payload: unknown) => unknown>>();\n private active = true;\n constructor(\n private readonly parent: Events | undefined,\n private readonly report: (diagnostic: FpsDiagnostic) => void,\n ) {}\n private assertActive(): void { if (!this.active) throw new Error('Event registry is disposed.'); }\n subscribe<T>(event: FpsEvent<T>, listener: (payload: T) => void | Promise<void>): FpsDisposer {\n this.assertActive();\n const set = this.listeners.get(event.id) ?? new Set();\n set.add(listener as (payload: unknown) => unknown);\n this.listeners.set(event.id, set);\n return () => { set.delete(listener as (payload: unknown) => unknown); if (!set.size) this.listeners.delete(event.id); };\n }\n private async deliver<T>(event: FpsEvent<T>, payload: T, errors: unknown[]): Promise<void> {\n for (const listener of [...(this.listeners.get(event.id) ?? [])]) {\n try { await listener(payload); }\n catch (error) { errors.push(error); }\n }\n await this.parent?.deliver(event, payload, errors);\n }\n async publish<T>(event: FpsEvent<T>, payload: T): Promise<void> {\n this.assertActive();\n const errors: unknown[] = [];\n await this.deliver(event, payload, errors);\n if (errors.length === 0) return;\n const messages = errors.map(error => error instanceof Error ? error.message : String(error));\n try {\n this.report({\n code: 'plugin.event.deliveryFailed',\n message: `Event ${event.id} reported ${errors.length} listener error(s).`,\n severity: 'error',\n details: Object.freeze({\n eventId: event.id,\n listenerErrorCount: errors.length,\n listenerErrorMessages: Object.freeze(messages),\n }),\n });\n } catch (reportError) {\n errors.push(reportError);\n }\n const deliveryError = combineErrors(errors, `Event delivery failed: ${event.id}.`);\n deliveryError.name = 'FpsEventDeliveryError';\n throw deliveryError;\n }\n deactivate(): void { this.listeners.clear(); this.active = false; }\n}\n\nfunction createPluginEventRegistry(events: FpsEventRegistry, pluginId: string): FpsEventRegistry {\n const namespace = getFpsPluginEventNamespace(pluginId);\n return Object.freeze({\n subscribe<T>(event: FpsEvent<T>, listener: (payload: T) => void | Promise<void>) {\n return events.subscribe(event, listener);\n },\n publish<T>(event: FpsEvent<T>, payload: T) {\n if (event.ownerPluginId !== pluginId || !event.id.startsWith(namespace)) {\n return Promise.reject(new Error(\n `Plugin ${pluginId} may only publish events in namespace ${namespace}*; got ${event.id}`,\n ));\n }\n return events.publish(event, payload);\n },\n });\n}\n\nconst compareIds = (a: { id: string }, b: { id: string }): number => a.id < b.id ? -1 : a.id > b.id ? 1 : 0;\n\nfunction validateVersion(version: string, range: string | undefined, consumerId: string, dependencyId: string): void {\n if (!valid(version)) throw new Error(`Invalid plugin version: ${dependencyId}@${version}`);\n const normalizedRange = range ?? '*';\n if (!validRange(normalizedRange)) throw new Error(`Invalid plugin version range: ${consumerId} requires ${dependencyId}@${normalizedRange}`);\n if (!satisfies(version, normalizedRange)) throw new Error(`Plugin version mismatch: ${consumerId} requires ${dependencyId}@${normalizedRange}`);\n}\n\nfunction order(\n manifests: readonly FpsPluginManifest[],\n environment: FpsPluginEnvironment,\n inheritedServices: Services | undefined,\n inheritedPlugin?: (id: string) => FpsPluginManifest | undefined,\n): FpsPluginManifest[] {\n const allById = new Map<string, FpsPluginManifest>();\n const byId = new Map<string, FpsPluginManifest>();\n const serviceProviders = new Map<string, FpsPluginManifest>();\n for (const manifest of manifests) {\n const inherited = inheritedPlugin?.(manifest.id);\n if (inherited && (inherited.version !== manifest.version || inherited.apiVersion !== manifest.apiVersion)) {\n throw new Error(`Plugin identity mismatch across scopes: ${manifest.id}`);\n }\n if (allById.has(manifest.id)) throw new Error(`Duplicate plugin id: ${manifest.id}`);\n allById.set(manifest.id, manifest);\n if (!manifest.entries[environment]) continue;\n if (!valid(manifest.version)) throw new Error(`Invalid plugin version: ${manifest.id}@${manifest.version}`);\n byId.set(manifest.id, manifest);\n const provides = resolveFpsPluginEnvironmentProvides(manifest, environment);\n for (const serviceId of provides.services ?? []) {\n const previous = serviceProviders.get(serviceId);\n if (previous) throw new Error(`Duplicate service provider: ${serviceId} (${previous.id}, ${manifest.id})`);\n if (inheritedServices?.hasLocalId(serviceId)\n && !inheritedServices.hasLocalId(serviceId, manifest.id)) {\n throw new Error(`Duplicate service provider: ${serviceId} (host, ${manifest.id})`);\n }\n serviceProviders.set(serviceId, manifest);\n }\n }\n\n const dependencies = (manifest: FpsPluginManifest): FpsPluginManifest[] => {\n const result = new Map<string, FpsPluginManifest>();\n const requires = resolveFpsPluginEnvironmentRequirements(manifest, environment);\n for (const requirement of requires.plugins ?? []) {\n const dependency = byId.get(requirement.id);\n if (!dependency) {\n const inherited = inheritedPlugin?.(requirement.id);\n if (inherited) {\n validateVersion(inherited.version, requirement.range, manifest.id, requirement.id);\n continue;\n }\n const suffix = allById.has(requirement.id) ? ` (${environment} entry unavailable)` : '';\n throw new Error(`Missing plugin dependency: ${manifest.id} -> ${requirement.id}${suffix}`);\n }\n validateVersion(dependency.version, requirement.range, manifest.id, requirement.id);\n result.set(dependency.id, dependency);\n }\n for (const serviceId of requires.services ?? []) {\n const provider = serviceProviders.get(serviceId);\n if (provider) result.set(provider.id, provider);\n else if (!inheritedServices?.hasId(serviceId)) throw new Error(`Missing required service: ${manifest.id} -> ${serviceId}`);\n }\n return [...result.values()].sort(compareIds);\n };\n\n const visiting = new Set<string>();\n const visited = new Set<string>();\n const result: FpsPluginManifest[] = [];\n const visit = (manifest: FpsPluginManifest) => {\n if (visiting.has(manifest.id)) throw new Error(`Plugin dependency cycle at: ${manifest.id}`);\n if (visited.has(manifest.id)) return;\n visiting.add(manifest.id);\n for (const dependency of dependencies(manifest)) visit(dependency);\n visiting.delete(manifest.id);\n visited.add(manifest.id);\n result.push(manifest);\n };\n for (const manifest of [...byId.values()].sort(compareIds)) visit(manifest);\n return result;\n}\n\nexport interface FpsPluginManifestOrderOptions {\n readonly environment: FpsPluginEnvironment;\n readonly apiVersion: number;\n readonly manifests: readonly FpsPluginManifest[];\n readonly initialServiceIds?: readonly string[];\n}\n\nexport function resolveFpsPluginManifestOrder(\n options: FpsPluginManifestOrderOptions,\n): readonly FpsPluginManifest[] {\n if (!Number.isInteger(options.apiVersion) || options.apiVersion < 1) {\n throw new Error('Plugin Host apiVersion must be a positive integer.');\n }\n const manifests = options.manifests.map(manifest => defineFpsPluginManifest(manifest));\n const initialServices = new Services();\n for (const serviceId of options.initialServiceIds ?? []) {\n initialServices.register(defineFpsServiceToken(serviceId), null);\n }\n const result = order(manifests, options.environment, initialServices);\n for (const manifest of result) {\n if (manifest.apiVersion !== options.apiVersion) {\n throw new Error(`Plugin API mismatch: ${manifest.id}`);\n }\n }\n return Object.freeze([...result]);\n}\n\nexport interface FpsPluginHostOptions {\n environment: FpsPluginEnvironment;\n apiVersion: number;\n scope?: FpsPluginScope;\n manifests: readonly FpsPluginManifest[];\n pluginConfigs?: Readonly<Record<string, unknown>>;\n loadEntry(manifest: FpsPluginManifest, environment: FpsPluginEnvironment): Promise<FpsPluginEntry | null>;\n report?(diagnostic: FpsDiagnostic): void;\n initialServices?: readonly { token: FpsServiceToken<unknown>; value: unknown }[];\n}\n\nexport interface FpsPluginChildScopeOptions {\n scope: Exclude<FpsPluginScope, 'application'>;\n manifests?: readonly FpsPluginManifest[];\n pluginConfigs?: Readonly<Record<string, unknown>>;\n loadEntry?(manifest: FpsPluginManifest, environment: FpsPluginEnvironment): Promise<FpsPluginEntry | null>;\n initialServices?: readonly { token: FpsServiceToken<unknown>; value: unknown }[];\n}\n\nexport interface FpsPluginHost {\n readonly state: FpsPluginHostState;\n readonly transitioning: boolean;\n readonly scope: FpsPluginScope;\n readonly services: FpsServiceRegistry;\n readonly commands: FpsCommandRegistry;\n readonly events: FpsEventRegistry;\n inspect(): FpsPluginHostInspection;\n createScope(options: FpsPluginChildScopeOptions): FpsPluginHost;\n start(): Promise<void>;\n stop(): Promise<void>;\n dispose(): Promise<void>;\n reserveTeardown(): FpsPluginTeardownReservation;\n}\n\ntype ChildHost = {\n host: FpsPluginHost;\n hasTransitionInTree(): boolean;\n hasCleanupFailureInTree(): boolean;\n hasTeardownReservationInTree(): boolean;\n listActiveCommandsInTree(): readonly string[];\n stopFromParent(): Promise<void>;\n disposeFromParent(): Promise<void>;\n};\n\ntype ParentHost = {\n services: Services;\n commands: Commands;\n events: Events;\n getState(): FpsPluginHostState;\n isTransitioningTree(): boolean;\n hasCleanupFailureInTree(): boolean;\n isTeardownReservedTree(): boolean;\n listActiveCommandsInLineage(): readonly string[];\n resolvePlugin(id: string): FpsPluginManifest | undefined;\n addChild(child: ChildHost): void;\n removeChild(child: FpsPluginHost): void;\n};\n\nfunction createHost(options: FpsPluginHostOptions, parent?: ParentHost): FpsPluginHost {\n const pluginConfigs = Object.freeze(Object.fromEntries(Object.entries(options.pluginConfigs ?? {}).map(\n ([pluginId, config]) => [pluginId, snapshotFpsPluginConfig(config, `Plugin config ${pluginId}`)],\n )));\n options = {\n ...options,\n manifests: options.manifests.map(manifest => defineFpsPluginManifest(manifest)),\n pluginConfigs,\n };\n const services = new Services(parent?.services);\n const commands = new Commands(parent?.commands, () => assertCommandExecutionAvailable());\n const records: PluginRecord[] = [];\n const diagnostics: FpsPluginInspectionDiagnostic[] = [];\n const pluginLifecycles = new Map<string, FpsPluginLifecycleState>(options.manifests.map(manifest => [\n manifest.id,\n manifest.entries[options.environment] ? 'discovered' : 'unavailable',\n ] satisfies [string, FpsPluginLifecycleState]));\n const children: ChildHost[] = [];\n const scope = options.scope ?? 'application';\n let state: FpsPluginHostState = 'created';\n let host: FpsPluginHost;\n let transitioning = false;\n let teardownReservationCount = 0;\n let cleanupMode: 'stop' | 'dispose' | null = null;\n let activeLifecyclePluginId: string | undefined;\n const localPlugins = new Map(\n options.manifests\n .filter(manifest => manifest.entries[options.environment])\n .map(manifest => [manifest.id, manifest]),\n );\n const resolvePlugin = (id: string): FpsPluginManifest | undefined => localPlugins.get(id) ?? parent?.resolvePlugin(id);\n const retainDiagnostic = (diagnostic: FpsDiagnostic): void => {\n diagnostics.push(Object.freeze({\n code: diagnostic.code,\n message: diagnostic.message,\n severity: diagnostic.severity,\n ...(diagnostic.pluginId ? { pluginId: diagnostic.pluginId } : {}),\n } satisfies FpsDiagnostic));\n if (diagnostics.length > 200) diagnostics.shift();\n };\n const report = (diagnostic: FpsDiagnostic, forward = true): void => {\n retainDiagnostic(diagnostic);\n if (!forward || !options.report) return;\n try { options.report(diagnostic); }\n catch (error) {\n retainDiagnostic({\n code: 'plugin.report.observerFailed',\n message: error instanceof Error ? error.message : String(error),\n severity: 'error',\n ...(diagnostic.pluginId ? { pluginId: diagnostic.pluginId } : {}),\n });\n }\n };\n const events = new Events(parent?.events, diagnostic => report(diagnostic));\n const hasTransitionInTree = (): boolean => transitioning || children.some(child => child.hasTransitionInTree());\n const isTransitioningTree = (): boolean => hasTransitionInTree() || parent?.isTransitioningTree() === true;\n const hasCleanupFailureInTree = (): boolean => (\n state === 'cleanup-failed'\n || children.some(child => child.hasCleanupFailureInTree())\n );\n const isCleanupFailedTree = (): boolean => (\n hasCleanupFailureInTree()\n || parent?.hasCleanupFailureInTree() === true\n );\n const hasTeardownReservationInTree = (): boolean => (\n teardownReservationCount > 0\n || children.some(child => child.hasTeardownReservationInTree())\n );\n const isTeardownReservedTree = (): boolean => (\n hasTeardownReservationInTree()\n || parent?.isTeardownReservedTree() === true\n );\n const listActiveCommandsInTree = (): readonly string[] => Object.freeze([\n ...commands.listActiveExecutions(),\n ...children.flatMap(child => child.listActiveCommandsInTree()),\n ]);\n const listActiveCommandsInLineage = (): readonly string[] => Object.freeze([\n ...commands.listActiveExecutions(),\n ...(parent?.listActiveCommandsInLineage() ?? []),\n ]);\n const assertNoActiveCommandsForTeardown = (operation: string): void => {\n const activeCommands = Object.freeze([\n ...(parent?.listActiveCommandsInLineage() ?? []),\n ...listActiveCommandsInTree(),\n ]);\n if (activeCommands.length === 0) return;\n throw new Error(`Cannot ${operation} Plugin Host while commands are active: ${activeCommands.join(', ')}`);\n };\n function assertCommandExecutionAvailable(): void {\n if (isTeardownReservedTree()) {\n throw new Error('Plugin host disposal has been requested; command execution is unavailable.');\n }\n if (isCleanupFailedTree()) {\n throw new Error('Plugin host cleanup is incomplete; command execution is unavailable.');\n }\n const treeTransitioning = isTransitioningTree();\n const starting = state === 'registered' && transitioning && cleanupMode === null;\n if ((state !== 'started' || treeTransitioning) && !starting) {\n throw new Error(\n `Plugin host command execution requires an idle started host, got: ${state}${treeTransitioning ? ' (transitioning)' : ''}.`,\n );\n }\n }\n const assertPublicOperationsAvailable = (): void => {\n if (isTeardownReservedTree()) {\n throw new Error('Plugin host disposal has been requested; public operations are unavailable.');\n }\n if (isCleanupFailedTree()) {\n throw new Error('Plugin host cleanup is incomplete; only stop or dispose may be retried.');\n }\n const treeTransitioning = isTransitioningTree();\n if (state !== 'started' || treeTransitioning) {\n throw new Error(\n `Plugin host public operations require an idle started host, got: ${state}${treeTransitioning ? ' (transitioning)' : ''}.`,\n );\n }\n };\n const publicServices: FpsServiceRegistry = {\n register<T>(token: FpsServiceToken<T>, value: T) {\n assertPublicOperationsAvailable();\n return services.register(token, value);\n },\n has<T>(token: FpsServiceToken<T>) {\n assertPublicOperationsAvailable();\n return services.has(token);\n },\n get<T>(token: FpsServiceToken<T>) {\n assertPublicOperationsAvailable();\n return services.get(token);\n },\n getOptional<T>(token: FpsServiceToken<T>) {\n assertPublicOperationsAvailable();\n return services.getOptional(token);\n },\n };\n const publicCommands: FpsCommandRegistry = {\n register<TInput, TOutput>(command: FpsCommand<TInput, TOutput>, handler: (input: TInput) => TOutput | Promise<TOutput>) {\n assertPublicOperationsAvailable();\n return commands.register(command, handler);\n },\n execute<TInput, TOutput>(command: FpsCommand<TInput, TOutput>, input: TInput) {\n assertPublicOperationsAvailable();\n return commands.execute(command, input);\n },\n };\n const publicEvents: FpsEventRegistry = {\n subscribe<T>(event: FpsEvent<T>, listener: (payload: T) => void | Promise<void>) {\n assertPublicOperationsAvailable();\n return events.subscribe(event, listener);\n },\n publish<T>(event: FpsEvent<T>, payload: T) {\n assertPublicOperationsAvailable();\n return events.publish(event, payload);\n },\n };\n const inspect = (): FpsPluginHostInspection => {\n const plugins = options.manifests\n .map(manifest => {\n const lifecycle = pluginLifecycles.get(manifest.id) ?? 'unavailable';\n return Object.freeze({\n manifest,\n lifecycle,\n compatible: manifest.apiVersion === options.apiVersion,\n });\n })\n .sort((left, right) => compareIds(left.manifest, right.manifest));\n return Object.freeze({\n environment: options.environment,\n apiVersion: options.apiVersion,\n scope,\n state: hasCleanupFailureInTree() ? 'cleanup-failed' : state,\n transitioning: isTransitioningTree() || isTeardownReservedTree(),\n plugins: Object.freeze(plugins),\n diagnostics: Object.freeze([...diagnostics]),\n });\n };\n\n const runTransition = async <T>(operation: () => Promise<T>, allowAncestorTransition = false): Promise<T> => {\n if (transitioning) throw new Error('Plugin host lifecycle transition already in progress.');\n if (!allowAncestorTransition && parent?.isTransitioningTree()) throw new Error('Ancestor plugin scope lifecycle transition already in progress.');\n transitioning = true;\n try { return await operation(); }\n finally { transitioning = false; }\n };\n\n for (const initial of options.initialServices ?? []) services.register(initial.token, initial.value);\n\n const disposeRecord = async (record: PluginRecord, errors: unknown[]): Promise<boolean> => {\n if (!record.disposeCompleted) {\n try {\n await record.entry.dispose?.(record.context);\n record.disposeCompleted = true;\n } catch (error) {\n errors.push(error);\n return false;\n }\n }\n for (let index = record.disposers.length - 1; index >= 0; index -= 1) {\n try {\n await record.disposers[index]!();\n record.disposers.splice(index, 1);\n } catch (error) {\n errors.push(error);\n break;\n }\n }\n const disposed = record.disposeCompleted && record.disposers.length === 0;\n if (disposed) pluginLifecycles.set(record.manifest.id, 'disposed');\n return disposed;\n };\n const stopRecords = async (errors: unknown[]) => {\n for (const record of [...records].reverse()) {\n if (!record.started) continue;\n try {\n await record.entry.stop?.(record.context);\n record.started = false;\n pluginLifecycles.set(record.manifest.id, 'stopped');\n } catch (error) {\n errors.push(error);\n break;\n }\n }\n };\n const cleanup = async (hasCause: boolean, cause?: unknown) => {\n cleanupMode = 'dispose';\n const cleanupErrors: unknown[] = [];\n for (const child of [...children].reverse()) {\n try { await child.disposeFromParent(); }\n catch (error) {\n cleanupErrors.push(error);\n break;\n }\n }\n if (cleanupErrors.length === 0) {\n await stopRecords(cleanupErrors);\n if (cleanupErrors.length === 0) {\n for (let index = records.length - 1; index >= 0; index -= 1) {\n const record = records[index]!;\n if (record.started) continue;\n if (await disposeRecord(record, cleanupErrors)) records.splice(index, 1);\n else break;\n }\n }\n }\n if (cleanupErrors.length === 0) {\n services.deactivate();\n commands.deactivate();\n events.deactivate();\n state = 'disposed';\n cleanupMode = null;\n parent?.removeChild(host);\n } else {\n state = 'cleanup-failed';\n }\n const errors: unknown[] = [\n ...(hasCause ? [cause] : []),\n ...cleanupErrors,\n ];\n if (errors.length === 1) throw errors[0];\n if (errors.length > 1) throw combineErrors(errors, 'Plugin host lifecycle failed and cleanup reported errors:');\n };\n\n host = {\n get state() { return hasCleanupFailureInTree() ? 'cleanup-failed' : state; },\n get transitioning() { return isTransitioningTree() || isTeardownReservedTree(); },\n scope,\n services: publicServices,\n commands: publicCommands,\n events: publicEvents,\n inspect,\n createScope(childOptions) {\n if (isTeardownReservedTree()) {\n throw new Error('Cannot create a child scope while Plugin Host teardown is reserved.');\n }\n if (isCleanupFailedTree()) {\n throw new Error('Cannot create a child scope while Plugin Host tree is cleanup-failed (cleanup is incomplete).');\n }\n const treeTransitioning = isTransitioningTree();\n if (state !== 'started' || treeTransitioning) throw new Error(`Cannot create a child scope from plugin host state: ${state}${treeTransitioning ? ' (transitioning)' : ''}`);\n const child = createHost({\n ...options,\n scope: childOptions.scope,\n manifests: childOptions.manifests ?? options.manifests,\n pluginConfigs: childOptions.pluginConfigs ?? options.pluginConfigs,\n loadEntry: childOptions.loadEntry ?? options.loadEntry,\n initialServices: childOptions.initialServices,\n }, {\n services,\n commands,\n events,\n getState: () => state,\n isTransitioningTree,\n hasCleanupFailureInTree,\n isTeardownReservedTree,\n listActiveCommandsInLineage,\n resolvePlugin,\n addChild: value => children.push(value),\n removeChild: value => { const index = children.findIndex(childRecord => childRecord.host === value); if (index >= 0) children.splice(index, 1); },\n });\n return child;\n },\n start() { return runTransition(async () => {\n if (isTeardownReservedTree()) throw new Error('Plugin host cannot start while teardown is reserved.');\n if (state !== 'created') throw new Error(`Plugin host cannot start from state: ${state}`);\n if (parent && parent.getState() !== 'started') throw new Error(`Child plugin scope cannot start while parent is: ${parent.getState()}`);\n if (parent?.hasCleanupFailureInTree()) throw new Error('Child plugin scope cannot start while the Plugin Host tree cleanup is incomplete.');\n try {\n const manifests = order(options.manifests, options.environment, services, parent?.resolvePlugin);\n for (const manifest of manifests) {\n activeLifecyclePluginId = manifest.id;\n if (manifest.apiVersion !== options.apiVersion) throw new Error(`Plugin API mismatch: ${manifest.id}`);\n if (!manifest.entries[options.environment]) continue;\n const loadedEntry = await options.loadEntry(manifest, options.environment);\n if (!loadedEntry) throw new Error(`Plugin entry could not be loaded: ${manifest.id} (${options.environment})`);\n const entry = defineFpsPluginEntry(loadedEntry);\n if (entry.pluginId !== manifest.id || entry.environment !== options.environment) throw new Error(`Plugin entry mismatch: ${manifest.id}`);\n const record: PluginRecord = {\n manifest,\n entry,\n context: undefined as unknown as FpsPluginContext,\n disposers: [],\n started: false,\n disposeCompleted: false,\n };\n record.context = {\n environment: options.environment,\n pluginId: manifest.id,\n config: options.pluginConfigs?.[manifest.id],\n scope,\n services: new PluginServices(services, manifest, options.environment),\n commands,\n events: createPluginEventRegistry(events, manifest.id),\n report: diagnostic => report({ ...diagnostic, pluginId: manifest.id }),\n add: disposer => record.disposers.push(disposer),\n };\n records.push(record);\n const registered = await entry.register(record.context);\n if (registered) record.disposers.push(registered);\n const provides = resolveFpsPluginEnvironmentProvides(manifest, options.environment);\n for (const serviceId of provides.services ?? []) {\n if (!services.hasLocalId(serviceId, manifest.id)) throw new Error(`Plugin did not register declared service: ${manifest.id} -> ${serviceId}`);\n }\n pluginLifecycles.set(manifest.id, 'registered');\n }\n for (const manifest of manifests) {\n if (!manifest.entries[options.environment]) continue;\n const requires = resolveFpsPluginEnvironmentRequirements(manifest, options.environment);\n for (const serviceId of requires.services ?? []) {\n if (!services.hasId(serviceId)) throw new Error(`Required service not registered: ${manifest.id} -> ${serviceId}`);\n }\n }\n state = 'registered';\n for (const record of records) {\n activeLifecyclePluginId = record.manifest.id;\n record.started = true;\n await record.entry.start?.(record.context);\n pluginLifecycles.set(record.manifest.id, 'started');\n }\n activeLifecyclePluginId = undefined;\n state = 'started';\n } catch (error) {\n report({\n code: 'plugin.lifecycle.failed',\n message: error instanceof Error ? error.message : String(error),\n severity: 'error',\n ...(activeLifecyclePluginId ? { pluginId: activeLifecyclePluginId } : {}),\n }, false);\n const activeCommands = listActiveCommandsInTree();\n if (activeCommands.length > 0) {\n cleanupMode = 'dispose';\n state = 'cleanup-failed';\n throw combineErrors([\n error,\n new Error(`Plugin start rollback is waiting for active commands: ${activeCommands.join(', ')}`),\n ], 'Plugin host start failed and cleanup is pending:');\n }\n await cleanup(true, error);\n }\n }); },\n stop() {\n assertNoActiveCommandsForTeardown('stop');\n return runTransition(async () => {\n if (state !== 'started' && state !== 'cleanup-failed') return;\n if (state === 'cleanup-failed' && cleanupMode === 'dispose') {\n throw new Error('Plugin host disposal cleanup is incomplete; dispose must be retried.');\n }\n cleanupMode = 'stop';\n const transitioningChild = children.find(child => child.hasTransitionInTree());\n if (transitioningChild) throw new Error(`Child plugin scope lifecycle transition already in progress: ${transitioningChild.host.scope}`);\n const errors: unknown[] = [];\n for (const child of [...children].reverse()) {\n try { await child.stopFromParent(); }\n catch (error) {\n errors.push(error);\n break;\n }\n }\n if (errors.length === 0) await stopRecords(errors);\n if (errors.length > 0 || records.some(record => record.started)) state = 'cleanup-failed';\n else {\n state = 'stopped';\n cleanupMode = null;\n }\n if (errors.length === 1) throw errors[0];\n if (errors.length > 1) throw combineErrors(errors, 'Plugin host stop reported errors:');\n });\n },\n dispose() {\n assertNoActiveCommandsForTeardown('dispose');\n return runTransition(async () => {\n if (state === 'disposed') return;\n const transitioningChild = children.find(child => child.hasTransitionInTree());\n if (transitioningChild) throw new Error(`Child plugin scope lifecycle transition already in progress: ${transitioningChild.host.scope}`);\n await cleanup(false);\n });\n },\n reserveTeardown() {\n if (state === 'disposed') {\n return Object.assign(() => {}, { assertReady: () => {} });\n }\n teardownReservationCount += 1;\n let active = true;\n const release = () => {\n if (!active) return;\n active = false;\n teardownReservationCount -= 1;\n };\n return Object.assign(release, {\n assertReady: () => assertNoActiveCommandsForTeardown('reserve teardown for'),\n });\n },\n };\n parent?.addChild({\n host,\n hasTransitionInTree,\n hasCleanupFailureInTree,\n hasTeardownReservationInTree,\n listActiveCommandsInTree,\n stopFromParent: () => runTransition(async () => {\n assertNoActiveCommandsForTeardown('stop');\n if (state !== 'started' && state !== 'cleanup-failed') return;\n if (state === 'cleanup-failed' && cleanupMode === 'dispose') {\n throw new Error('Plugin host disposal cleanup is incomplete; dispose must be retried.');\n }\n cleanupMode = 'stop';\n const transitioningChild = children.find(child => child.hasTransitionInTree());\n if (transitioningChild) throw new Error(`Child plugin scope lifecycle transition already in progress: ${transitioningChild.host.scope}`);\n const errors: unknown[] = [];\n for (const child of [...children].reverse()) {\n try { await child.stopFromParent(); }\n catch (error) {\n errors.push(error);\n break;\n }\n }\n if (errors.length === 0) await stopRecords(errors);\n if (errors.length > 0 || records.some(record => record.started)) state = 'cleanup-failed';\n else {\n state = 'stopped';\n cleanupMode = null;\n }\n if (errors.length === 1) throw errors[0];\n if (errors.length > 1) throw combineErrors(errors, 'Plugin host stop reported errors:');\n }, true),\n disposeFromParent: () => runTransition(async () => {\n assertNoActiveCommandsForTeardown('dispose');\n if (state === 'disposed') return;\n const transitioningChild = children.find(child => child.hasTransitionInTree());\n if (transitioningChild) throw new Error(`Child plugin scope lifecycle transition already in progress: ${transitioningChild.host.scope}`);\n await cleanup(false);\n }, true),\n });\n return host;\n}\n\nexport function createFpsPluginHost(options: FpsPluginHostOptions): FpsPluginHost {\n return createHost(options);\n}\n\nexport interface FpsPluginEnvironmentModuleHostOptions {\n readonly module: FpsPluginEnvironmentModule;\n readonly apiVersion: number;\n readonly scope?: FpsPluginScope;\n readonly initialServices?: readonly { token: FpsServiceToken<unknown>; value: unknown }[];\n readonly report?: (diagnostic: FpsDiagnostic) => void;\n}\n\nexport function createFpsPluginHostFromEnvironmentModule(\n options: FpsPluginEnvironmentModuleHostOptions,\n): FpsPluginHost {\n const entries = new Map<string, FpsPluginEnvironmentModule['entries'][number]>();\n for (const entry of options.module.entries) {\n if (entries.has(entry.pluginId)) throw new Error(`Duplicate Plugin environment module entry: ${entry.pluginId}`);\n entries.set(entry.pluginId, entry);\n }\n return createFpsPluginHost({\n environment: options.module.environment,\n apiVersion: options.apiVersion,\n scope: options.scope,\n manifests: options.module.manifests,\n pluginConfigs: options.module.pluginConfigs,\n initialServices: options.initialServices,\n report: options.report,\n async loadEntry(manifest) {\n const entry = entries.get(manifest.id);\n if (!entry) throw new Error(`Plugin environment module entry is missing: ${manifest.id}`);\n return entry.load();\n },\n });\n}\n\nexport interface FpsPluginEnvironmentLifecycle {\n readonly host: FpsPluginHost | null;\n start(): Promise<void>;\n dispose(): Promise<void>;\n}\n\nexport function createFpsPluginEnvironmentLifecycle(\n options: FpsPluginEnvironmentModuleHostOptions,\n): FpsPluginEnvironmentLifecycle {\n let host: FpsPluginHost | null = null;\n let operationInProgress: 'start' | 'dispose' | null = null;\n const assertIdle = (operation: 'start' | 'dispose'): void => {\n if (!operationInProgress) return;\n throw new Error(\n `Plugin environment lifecycle cannot ${operation} while ${operationInProgress} is in progress.`,\n );\n };\n return {\n get host() { return host; },\n start: () => {\n try { assertIdle('start'); }\n catch (error) { return Promise.reject(error); }\n operationInProgress = 'start';\n return (async () => {\n if (host) {\n if (host.state === 'started') return;\n throw new Error(`Plugin environment lifecycle retained a ${host.state} Host; dispose it before restarting.`);\n }\n const nextHost = createFpsPluginHostFromEnvironmentModule(options);\n host = nextHost;\n try {\n await nextHost.start();\n } catch (error) {\n if (host === nextHost && nextHost.state === 'disposed') host = null;\n throw error;\n }\n })().finally(() => { operationInProgress = null; });\n },\n dispose: () => {\n try { assertIdle('dispose'); }\n catch (error) { return Promise.reject(error); }\n operationInProgress = 'dispose';\n return (async () => {\n const currentHost = host;\n if (!currentHost) return;\n try {\n await currentHost.dispose();\n } finally {\n if (host === currentHost && currentHost.state === 'disposed') host = null;\n }\n })().finally(() => { operationInProgress = null; });\n },\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fps-games/plugin-host",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.4",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Lifecycle, dependency, scope, and registry runtime for fps-games plugins.",
@@ -14,7 +14,7 @@
14
14
  }
15
15
  },
16
16
  "dependencies": {
17
- "@fps-games/plugin-api": "0.2.0-beta.2",
17
+ "@fps-games/plugin-api": "0.2.0-beta.4",
18
18
  "semver": "^7.8.5"
19
19
  }
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,GAEjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,GAGxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAA6B,CAAC;AAEnE,MAAM,UAAU,aAAa;IAC3B,OAAO,wBAAwB,CAAC;QAC9B,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,qBAAqB;QAC/B,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,OAAO,uBAAuB,CAAC;QAC7B,EAAE,EAAE,qBAAqB;QACzB,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE;QACvC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QACjC,oBAAoB,EAAE;YACpB,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE;gBAC5C,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE;aAChD;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,KAAc;IAC/D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,CAAkC,CAAC;IACxG,gCAAgC,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,kCAAkC,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,GAEjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,GAGxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAA6B,CAAC;AAEnE,MAAM,UAAU,aAAa;IAC3B,OAAO,wBAAwB,CAAC;QAC9B,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,qBAAqB;QAC/B,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,OAAO,uBAAuB,CAAC;QAC7B,EAAE,EAAE,qBAAqB;QACzB,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE;QACvC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QACjC,oBAAoB,EAAE;YACpB,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE;gBAC5C,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE;aAChD;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,KAAc;IAC/D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,CAAkC,CAAC;IACxG,gCAAgC,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,kCAAkC,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC","sourcesContent":["import {\n assertSpatialMarkerGraphContract,\n type SpatialMarkerGraph,\n} from '@fps-games/playable-contracts';\nimport {\n defineFpsPluginManifest,\n defineFpsPluginReference,\n snapshotFpsPluginConfig,\n type FpsPluginManifest,\n type FpsPluginReference,\n} from '@fps-games/plugin-api';\nimport { FPS_PLUGIN_VERSION } from './version.js';\n\nexport const FPS_MARKERS_PLUGIN_ID = 'fps.plugin.markers' as const;\n\nexport function markersPlugin(): Readonly<FpsPluginReference<null>> {\n return defineFpsPluginReference({\n packageName: '@fps-games/plugin-markers',\n pluginId: FPS_MARKERS_PLUGIN_ID,\n config: null,\n hostServices: { runtime: ['fps.runtime.data'] },\n });\n}\n\nexport function createFpsMarkersPluginManifest(): Readonly<FpsPluginManifest> {\n return defineFpsPluginManifest({\n id: FPS_MARKERS_PLUGIN_ID,\n version: FPS_PLUGIN_VERSION,\n apiVersion: 1,\n requires: {},\n provides: { features: ['fps.markers'] },\n entries: { runtime: './runtime' },\n environmentContracts: {\n runtime: {\n requires: { services: ['fps.runtime.data'] },\n provides: { services: ['fps.runtime.markers'] },\n },\n },\n });\n}\n\nexport function createFpsMarkersPluginDataSnapshot(value: unknown): Readonly<SpatialMarkerGraph> {\n const snapshot = snapshotFpsPluginConfig(value, 'Markers Plugin data') as unknown as SpatialMarkerGraph;\n assertSpatialMarkerGraphContract(snapshot);\n return snapshot;\n}\n\nexport function assertFpsMarkersPluginData(value: unknown): void {\n createFpsMarkersPluginDataSnapshot(value);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mCAAmC,GAIpC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EACL,qBAAqB,EACrB,kCAAkC,GACnC,MAAM,gBAAgB,CAAC;AAQxB,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAA0B,qBAAqB,CAAC,CAAC;AAEzG,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;IAC9C,QAAQ,EAAE,qBAAqB;IAC/B,WAAW,EAAE,SAAS;IACtB,QAAQ,CAAC,OAAO;QACd,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAC1G,MAAM,KAAK,GAAG,kCAAkC,CAAC,UAAU,EAAE,IAAI,IAAI;YACnE,aAAa,EAAE,mCAAmC;YAClD,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;SACd,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC;YACvE,KAAK;YACL,SAAS,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI;YAClD,WAAW,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI;SACvD,CAAC,CAAC,CAAC,CAAC;IACP,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mCAAmC,GAIpC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EACL,qBAAqB,EACrB,kCAAkC,GACnC,MAAM,gBAAgB,CAAC;AAQxB,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAA0B,qBAAqB,CAAC,CAAC;AAEzG,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;IAC9C,QAAQ,EAAE,qBAAqB;IAC/B,WAAW,EAAE,SAAS;IACtB,QAAQ,CAAC,OAAO;QACd,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAC1G,MAAM,KAAK,GAAG,kCAAkC,CAAC,UAAU,EAAE,IAAI,IAAI;YACnE,aAAa,EAAE,mCAAmC;YAClD,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;SACd,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC;YACvE,KAAK;YACL,SAAS,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI;YAClD,WAAW,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI;SACvD,CAAC,CAAC,CAAC,CAAC;IACP,CAAC;CACF,CAAC,CAAC","sourcesContent":["import {\n SPATIAL_MARKER_GRAPH_SCHEMA_VERSION,\n type SpatialMarkerGraph,\n type SpatialMarkerNode,\n type SpatialRelation,\n} from '@fps-games/playable-contracts';\nimport { FPS_RUNTIME_DATA, getFpsRuntimePluginData } from '@fps-games/playable-runtime-data';\nimport { defineFpsPluginEntry, defineFpsServiceToken } from '@fps-games/plugin-api';\nimport {\n FPS_MARKERS_PLUGIN_ID,\n createFpsMarkersPluginDataSnapshot,\n} from './reference.js';\n\nexport interface FpsRuntimeMarkerService {\n readonly graph: Readonly<SpatialMarkerGraph>;\n getMarker(id: string): Readonly<SpatialMarkerNode> | null;\n getRelation(id: string): Readonly<SpatialRelation> | null;\n}\n\nexport const FPS_RUNTIME_MARKERS = defineFpsServiceToken<FpsRuntimeMarkerService>('fps.runtime.markers');\n\nexport const pluginEntry = defineFpsPluginEntry({\n pluginId: FPS_MARKERS_PLUGIN_ID,\n environment: 'runtime',\n register(context) {\n const pluginData = getFpsRuntimePluginData(context.services.get(FPS_RUNTIME_DATA), FPS_MARKERS_PLUGIN_ID);\n const graph = createFpsMarkersPluginDataSnapshot(pluginData?.data ?? {\n schemaVersion: SPATIAL_MARKER_GRAPH_SCHEMA_VERSION,\n markers: [],\n relations: [],\n });\n const markers = new Map(graph.markers.map(marker => [marker.id, marker]));\n const relations = new Map(graph.relations.map(relation => [relation.id, relation]));\n context.add(context.services.register(FPS_RUNTIME_MARKERS, Object.freeze({\n graph,\n getMarker: (id: string) => markers.get(id) ?? null,\n getRelation: (id: string) => relations.get(id) ?? null,\n })));\n },\n});\n"]}
@@ -1,2 +1,2 @@
1
- export declare const FPS_PLUGIN_VERSION: "0.2.0-beta.2";
1
+ export declare const FPS_PLUGIN_VERSION: "0.2.0-beta.4";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,2 +1,2 @@
1
- export const FPS_PLUGIN_VERSION = '0.2.0-beta.2';
1
+ export const FPS_PLUGIN_VERSION = '0.2.0-beta.4';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAuB,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAuB,CAAC","sourcesContent":["export const FPS_PLUGIN_VERSION = '0.2.0-beta.4' as const;\n"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fps-games/plugin-markers",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.4",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party Markers Plugin for fps-games runtime and editor hosts.",
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "fpsGamePlugin": {
21
21
  "id": "fps.plugin.markers",
22
- "version": "0.2.0-beta.2",
22
+ "version": "0.2.0-beta.4",
23
23
  "apiVersion": 1,
24
24
  "requires": {},
25
25
  "provides": {
@@ -46,8 +46,8 @@
46
46
  }
47
47
  },
48
48
  "dependencies": {
49
- "@fps-games/playable-contracts": "0.2.0-beta.2",
50
- "@fps-games/playable-runtime-data": "0.2.0-beta.2",
51
- "@fps-games/plugin-api": "0.2.0-beta.2"
49
+ "@fps-games/playable-contracts": "0.2.0-beta.4",
50
+ "@fps-games/playable-runtime-data": "0.2.0-beta.4",
51
+ "@fps-games/plugin-api": "0.2.0-beta.4"
52
52
  }
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GAGzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAA+B,CAAC;AAEvE,MAAM,UAAU,eAAe;IAC7B,OAAO,wBAAwB,CAAC;QAC9B,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,uBAAuB;QACjC,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gCAAgC;IAC9C,OAAO,uBAAuB,CAAC;QAC7B,EAAE,EAAE,uBAAuB;QAC3B,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;QACzC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QACjC,oBAAoB,EAAE;YACpB,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE;gBAC5C,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,uBAAuB,CAAC,EAAE;aAClD;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GAGzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAA+B,CAAC;AAEvE,MAAM,UAAU,eAAe;IAC7B,OAAO,wBAAwB,CAAC;QAC9B,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,uBAAuB;QACjC,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gCAAgC;IAC9C,OAAO,uBAAuB,CAAC;QAC7B,EAAE,EAAE,uBAAuB;QAC3B,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;QACzC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QACjC,oBAAoB,EAAE;YACpB,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE;gBAC5C,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,uBAAuB,CAAC,EAAE;aAClD;SACF;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n defineFpsPluginManifest,\n defineFpsPluginReference,\n type FpsPluginManifest,\n type FpsPluginReference,\n} from '@fps-games/plugin-api';\nimport { FPS_PLUGIN_VERSION } from './version.js';\n\nexport const FPS_MATERIALS_PLUGIN_ID = 'fps.plugin.materials' as const;\n\nexport function materialsPlugin(): Readonly<FpsPluginReference<null>> {\n return defineFpsPluginReference({\n packageName: '@fps-games/plugin-materials',\n pluginId: FPS_MATERIALS_PLUGIN_ID,\n config: null,\n hostServices: { runtime: ['fps.runtime.data'] },\n });\n}\n\nexport function createFpsMaterialsPluginManifest(): Readonly<FpsPluginManifest> {\n return defineFpsPluginManifest({\n id: FPS_MATERIALS_PLUGIN_ID,\n version: FPS_PLUGIN_VERSION,\n apiVersion: 1,\n requires: {},\n provides: { features: ['fps.materials'] },\n entries: { runtime: './runtime' },\n environmentContracts: {\n runtime: {\n requires: { services: ['fps.runtime.data'] },\n provides: { services: ['fps.runtime.materials'] },\n },\n },\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACvG,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAOzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAA4B,uBAAuB,CAAC,CAAC;AAE/G,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;IAC9C,QAAQ,EAAE,uBAAuB;IACjC,WAAW,EAAE,SAAS;IACtB,QAAQ,CAAC,OAAO;QACd,MAAM,SAAS,GAAG,iCAAiC,CACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,SAAS,IAAI,EAAE,CACvD,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC;YACzE,SAAS;YACT,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC,CAAC,CAAC;IACP,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,qBAAqB,CAAO,MAAyB;IAC5D,IAAI,IAAuB,CAAC;IAC5B,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,IAAI,KAAK,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC,GAAG,CAAC,GAAM,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvC,GAAG,CAAC,GAAM,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,KAAK,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,KAAK,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChC,MAAM,KAAK,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,QAA4D,EAAE,OAAiB;YACrF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;KAC1D,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACvG,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAOzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAA4B,uBAAuB,CAAC,CAAC;AAE/G,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;IAC9C,QAAQ,EAAE,uBAAuB;IACjC,WAAW,EAAE,SAAS;IACtB,QAAQ,CAAC,OAAO;QACd,MAAM,SAAS,GAAG,iCAAiC,CACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,SAAS,IAAI,EAAE,CACvD,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC;YACzE,SAAS;YACT,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC,CAAC,CAAC;IACP,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,qBAAqB,CAAO,MAAyB;IAC5D,IAAI,IAAuB,CAAC;IAC5B,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,IAAI,KAAK,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC,GAAG,CAAC,GAAM,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvC,GAAG,CAAC,GAAM,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,KAAK,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,KAAK,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChC,MAAM,KAAK,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,QAA4D,EAAE,OAAiB;YACrF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;KAC1D,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import type { FpsRuntimeMaterial } from '@fps-games/playable-contracts';\nimport { createFpsRuntimeMaterialsSnapshot, FPS_RUNTIME_DATA } from '@fps-games/playable-runtime-data';\nimport { defineFpsPluginEntry, defineFpsServiceToken } from '@fps-games/plugin-api';\nimport { FPS_MATERIALS_PLUGIN_ID } from './reference.js';\n\nexport interface FpsRuntimeMaterialService {\n readonly materials: readonly FpsRuntimeMaterial[];\n readonly byId: ReadonlyMap<string, FpsRuntimeMaterial>;\n}\n\nexport const FPS_RUNTIME_MATERIALS = defineFpsServiceToken<FpsRuntimeMaterialService>('fps.runtime.materials');\n\nexport const pluginEntry = defineFpsPluginEntry({\n pluginId: FPS_MATERIALS_PLUGIN_ID,\n environment: 'runtime',\n register(context) {\n const materials = createFpsRuntimeMaterialsSnapshot(\n context.services.get(FPS_RUNTIME_DATA).materials ?? [],\n );\n const index = new Map(materials.map(material => [material.id, material]));\n context.add(context.services.register(FPS_RUNTIME_MATERIALS, Object.freeze({\n materials,\n byId: createReadonlyMapView(index),\n })));\n },\n});\n\nfunction createReadonlyMapView<K, V>(source: ReadonlyMap<K, V>): ReadonlyMap<K, V> {\n let view: ReadonlyMap<K, V>;\n view = Object.freeze({\n get size() { return source.size; },\n has(key: K) { return source.has(key); },\n get(key: K) { return source.get(key); },\n entries() { return source.entries(); },\n keys() { return source.keys(); },\n values() { return source.values(); },\n forEach(callback: (value: V, key: K, map: ReadonlyMap<K, V>) => void, thisArg?: unknown) {\n source.forEach((value, key) => callback.call(thisArg, value, key, view));\n },\n [Symbol.iterator]() { return source[Symbol.iterator](); },\n });\n return view;\n}\n"]}
@@ -1,2 +1,2 @@
1
- export declare const FPS_PLUGIN_VERSION: "0.2.0-beta.2";
1
+ export declare const FPS_PLUGIN_VERSION: "0.2.0-beta.4";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,2 +1,2 @@
1
- export const FPS_PLUGIN_VERSION = '0.2.0-beta.2';
1
+ export const FPS_PLUGIN_VERSION = '0.2.0-beta.4';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAuB,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAuB,CAAC","sourcesContent":["export const FPS_PLUGIN_VERSION = '0.2.0-beta.4' as const;\n"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fps-games/plugin-materials",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.4",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party Materials Plugin for fps-games runtime and editor hosts.",
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "fpsGamePlugin": {
21
21
  "id": "fps.plugin.materials",
22
- "version": "0.2.0-beta.2",
22
+ "version": "0.2.0-beta.4",
23
23
  "apiVersion": 1,
24
24
  "requires": {},
25
25
  "provides": {
@@ -46,8 +46,8 @@
46
46
  }
47
47
  },
48
48
  "dependencies": {
49
- "@fps-games/playable-contracts": "0.2.0-beta.2",
50
- "@fps-games/playable-runtime-data": "0.2.0-beta.2",
51
- "@fps-games/plugin-api": "0.2.0-beta.2"
49
+ "@fps-games/playable-contracts": "0.2.0-beta.4",
50
+ "@fps-games/playable-runtime-data": "0.2.0-beta.4",
51
+ "@fps-games/plugin-api": "0.2.0-beta.4"
52
52
  }
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GAGzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAA+B,CAAC;AAEvE,MAAM,UAAU,eAAe;IAC7B,OAAO,wBAAwB,CAAC;QAC9B,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,uBAAuB;QACjC,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gCAAgC;IAC9C,OAAO,uBAAuB,CAAC;QAC7B,EAAE,EAAE,uBAAuB;QAC3B,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;QACzC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QACjC,oBAAoB,EAAE;YACpB,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE;gBAC5C,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,uBAAuB,CAAC,EAAE;aAClD;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GAGzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAA+B,CAAC;AAEvE,MAAM,UAAU,eAAe;IAC7B,OAAO,wBAAwB,CAAC;QAC9B,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,uBAAuB;QACjC,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gCAAgC;IAC9C,OAAO,uBAAuB,CAAC;QAC7B,EAAE,EAAE,uBAAuB;QAC3B,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;QACzC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QACjC,oBAAoB,EAAE;YACpB,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE;gBAC5C,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,uBAAuB,CAAC,EAAE;aAClD;SACF;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n defineFpsPluginManifest,\n defineFpsPluginReference,\n type FpsPluginManifest,\n type FpsPluginReference,\n} from '@fps-games/plugin-api';\nimport { FPS_PLUGIN_VERSION } from './version.js';\n\nexport const FPS_RENDERING_PLUGIN_ID = 'fps.plugin.rendering' as const;\n\nexport function renderingPlugin(): Readonly<FpsPluginReference<null>> {\n return defineFpsPluginReference({\n packageName: '@fps-games/plugin-rendering',\n pluginId: FPS_RENDERING_PLUGIN_ID,\n config: null,\n hostServices: { runtime: ['fps.runtime.data'] },\n });\n}\n\nexport function createFpsRenderingPluginManifest(): Readonly<FpsPluginManifest> {\n return defineFpsPluginManifest({\n id: FPS_RENDERING_PLUGIN_ID,\n version: FPS_PLUGIN_VERSION,\n apiVersion: 1,\n requires: {},\n provides: { features: ['fps.rendering'] },\n entries: { runtime: './runtime' },\n environmentContracts: {\n runtime: {\n requires: { services: ['fps.runtime.data'] },\n provides: { services: ['fps.runtime.rendering'] },\n },\n },\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,GAErC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,iCAAiC,EACjC,gBAAgB,GACjB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAMzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CACxD,uBAAuB,CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;IAC9C,QAAQ,EAAE,uBAAuB;IACjC,WAAW,EAAE,SAAS;IACtB,QAAQ,CAAC,OAAO;QACd,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC;QAChE,MAAM,OAAO,GAAG,oCAAoC,CAClD,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAC7E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/F,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAI,KAAQ,EAAE,UAAU,IAAI,OAAO,EAAU;IACpE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAA2B,CAAC;IAClG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU;YAAE,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAuB,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,GAErC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,iCAAiC,EACjC,gBAAgB,GACjB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAMzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CACxD,uBAAuB,CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;IAC9C,QAAQ,EAAE,uBAAuB;IACjC,WAAW,EAAE,SAAS;IACtB,QAAQ,CAAC,OAAO;QACd,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC;QAChE,MAAM,OAAO,GAAG,oCAAoC,CAClD,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAC7E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/F,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAI,KAAQ,EAAE,UAAU,IAAI,OAAO,EAAU;IACpE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAA2B,CAAC;IAClG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU;YAAE,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAuB,CAAC;AACpD,CAAC","sourcesContent":["import {\n normalizeEditorSceneRenderingProfile,\n type EditorSceneRenderingProfile,\n} from '@fps-games/playable-rendering/runtime';\nimport {\n createFpsRuntimeRenderingSnapshot,\n FPS_RUNTIME_DATA,\n} from '@fps-games/playable-runtime-data';\nimport {\n defineFpsPluginEntry,\n defineFpsServiceToken,\n type FpsDeepReadonly,\n} from '@fps-games/plugin-api';\nimport { FPS_RENDERING_PLUGIN_ID } from './reference.js';\n\nexport interface FpsRuntimeRenderingService {\n readonly profile: FpsDeepReadonly<EditorSceneRenderingProfile>;\n}\n\nexport const FPS_RUNTIME_RENDERING = defineFpsServiceToken<FpsRuntimeRenderingService>(\n 'fps.runtime.rendering',\n);\n\nexport const pluginEntry = defineFpsPluginEntry({\n pluginId: FPS_RENDERING_PLUGIN_ID,\n environment: 'runtime',\n register(context) {\n const source = context.services.get(FPS_RUNTIME_DATA).rendering;\n const profile = normalizeEditorSceneRenderingProfile(\n source === undefined ? undefined : createFpsRuntimeRenderingSnapshot(source),\n );\n context.add(context.services.register(FPS_RUNTIME_RENDERING, freezeProjection({ profile })));\n },\n});\n\nfunction freezeProjection<T>(value: T, visited = new WeakSet<object>()): FpsDeepReadonly<T> {\n if (!value || typeof value !== 'object' || visited.has(value)) return value as FpsDeepReadonly<T>;\n visited.add(value);\n for (const key of Reflect.ownKeys(value)) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (descriptor && 'value' in descriptor) freezeProjection(descriptor.value, visited);\n }\n return Object.freeze(value) as FpsDeepReadonly<T>;\n}\n"]}
@@ -1,2 +1,2 @@
1
- export declare const FPS_PLUGIN_VERSION: "0.2.0-beta.2";
1
+ export declare const FPS_PLUGIN_VERSION: "0.2.0-beta.4";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,2 +1,2 @@
1
- export const FPS_PLUGIN_VERSION = '0.2.0-beta.2';
1
+ export const FPS_PLUGIN_VERSION = '0.2.0-beta.4';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAuB,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAuB,CAAC","sourcesContent":["export const FPS_PLUGIN_VERSION = '0.2.0-beta.4' as const;\n"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fps-games/plugin-rendering",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.4",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party Rendering Plugin for fps-games runtime and editor hosts.",
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "fpsGamePlugin": {
21
21
  "id": "fps.plugin.rendering",
22
- "version": "0.2.0-beta.2",
22
+ "version": "0.2.0-beta.4",
23
23
  "apiVersion": 1,
24
24
  "requires": {},
25
25
  "provides": {
@@ -46,8 +46,8 @@
46
46
  }
47
47
  },
48
48
  "dependencies": {
49
- "@fps-games/playable-rendering": "0.2.0-beta.2",
50
- "@fps-games/playable-runtime-data": "0.2.0-beta.2",
51
- "@fps-games/plugin-api": "0.2.0-beta.2"
49
+ "@fps-games/playable-rendering": "0.2.0-beta.4",
50
+ "@fps-games/playable-runtime-data": "0.2.0-beta.4",
51
+ "@fps-games/plugin-api": "0.2.0-beta.4"
52
52
  }
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GAGzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAA2B,CAAC;AAE/D,MAAM,UAAU,WAAW;IACzB,OAAO,wBAAwB,CAAC;QAC9B,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,kBAAkB,CAAC;SAC9B;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO,uBAAuB,CAAC;QAC7B,EAAE,EAAE,mBAAmB;QACvB,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE;QACrC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QACjC,oBAAoB,EAAE;YACpB,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE;gBAC5C,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE;aAC9C;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GAGzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAA2B,CAAC;AAE/D,MAAM,UAAU,WAAW;IACzB,OAAO,wBAAwB,CAAC;QAC9B,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,kBAAkB,CAAC;SAC9B;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO,uBAAuB,CAAC;QAC7B,EAAE,EAAE,mBAAmB;QACvB,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE;QACrC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QACjC,oBAAoB,EAAE;YACpB,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE;gBAC5C,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE;aAC9C;SACF;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n defineFpsPluginManifest,\n defineFpsPluginReference,\n type FpsPluginManifest,\n type FpsPluginReference,\n} from '@fps-games/plugin-api';\nimport { FPS_PLUGIN_VERSION } from './version.js';\n\nexport const FPS_SCENE_PLUGIN_ID = 'fps.plugin.scene' as const;\n\nexport function scenePlugin(): Readonly<FpsPluginReference<null>> {\n return defineFpsPluginReference({\n packageName: '@fps-games/plugin-scene',\n pluginId: FPS_SCENE_PLUGIN_ID,\n config: null,\n hostServices: {\n runtime: ['fps.runtime.data'],\n },\n });\n}\n\nexport function createFpsScenePluginManifest(): Readonly<FpsPluginManifest> {\n return defineFpsPluginManifest({\n id: FPS_SCENE_PLUGIN_ID,\n version: FPS_PLUGIN_VERSION,\n apiVersion: 1,\n requires: {},\n provides: { features: ['fps.scene'] },\n entries: { runtime: './runtime' },\n environmentContracts: {\n runtime: {\n requires: { services: ['fps.runtime.data'] },\n provides: { services: ['fps.runtime.scene'] },\n },\n },\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FpsRuntimeSceneNode } from '@fps-games/playable-contracts';\nimport { FPS_RUNTIME_DATA } from '@fps-games/playable-runtime-data';\nimport { defineFpsPluginEntry, defineFpsServiceToken } from '@fps-games/plugin-api';\nimport { FPS_SCENE_PLUGIN_ID } from './reference.js';\n\nexport interface FpsRuntimeSceneService {\n readonly nodes: readonly FpsRuntimeSceneNode[];\n readonly roots: readonly FpsRuntimeSceneNode[];\n readonly byId: ReadonlyMap<string, FpsRuntimeSceneNode>;\n}\n\nexport const FPS_RUNTIME_SCENE = defineFpsServiceToken<FpsRuntimeSceneService>('fps.runtime.scene');\n\nexport const pluginEntry = defineFpsPluginEntry({\n pluginId: FPS_SCENE_PLUGIN_ID,\n environment: 'runtime',\n register(context) {\n const nodes = context.services.get(FPS_RUNTIME_DATA).scene.nodes;\n const byId = indexById(nodes);\n context.add(context.services.register(FPS_RUNTIME_SCENE, freezeProjection({\n nodes,\n roots: nodes.filter(node => !node.parentId || !byId.has(node.parentId)),\n byId,\n })));\n },\n});\n\nfunction indexById(items: readonly FpsRuntimeSceneNode[]): ReadonlyMap<string, FpsRuntimeSceneNode> {\n const result = new Map<string, FpsRuntimeSceneNode>();\n for (const item of items) {\n if (!item.id.trim()) throw new Error('Runtime scene node id is required.');\n if (result.has(item.id)) throw new Error(`Duplicate runtime scene node id: ${item.id}`);\n result.set(item.id, item);\n }\n return createReadonlyMapView(result);\n}\n\nfunction createReadonlyMapView<K, V>(source: ReadonlyMap<K, V>): ReadonlyMap<K, V> {\n let view: ReadonlyMap<K, V>;\n view = Object.freeze({\n get size() { return source.size; },\n has(key: K) { return source.has(key); },\n get(key: K) { return source.get(key); },\n entries() { return source.entries(); },\n keys() { return source.keys(); },\n values() { return source.values(); },\n forEach(callback: (value: V, key: K, map: ReadonlyMap<K, V>) => void, thisArg?: unknown) {\n source.forEach((value, key) => callback.call(thisArg, value, key, view));\n },\n [Symbol.iterator]() { return source[Symbol.iterator](); },\n });\n return view;\n}\n\nfunction freezeProjection<T>(value: T, visited = new WeakSet<object>()): T {\n if (!value || typeof value !== 'object' || visited.has(value)) return value;\n visited.add(value);\n for (const key of Reflect.ownKeys(value)) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (descriptor && 'value' in descriptor) freezeProjection(descriptor.value, visited);\n }\n return Object.freeze(value);\n}\n"]}
@@ -1,2 +1,2 @@
1
- export declare const FPS_PLUGIN_VERSION: "0.2.0-beta.2";
1
+ export declare const FPS_PLUGIN_VERSION: "0.2.0-beta.4";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,2 +1,2 @@
1
- export const FPS_PLUGIN_VERSION = '0.2.0-beta.2';
1
+ export const FPS_PLUGIN_VERSION = '0.2.0-beta.4';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAuB,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAuB,CAAC","sourcesContent":["export const FPS_PLUGIN_VERSION = '0.2.0-beta.4' as const;\n"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fps-games/plugin-scene",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.4",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party Scene Plugin for fps-games runtime and editor hosts.",
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "fpsGamePlugin": {
21
21
  "id": "fps.plugin.scene",
22
- "version": "0.2.0-beta.2",
22
+ "version": "0.2.0-beta.4",
23
23
  "apiVersion": 1,
24
24
  "requires": {},
25
25
  "provides": {
@@ -46,8 +46,8 @@
46
46
  }
47
47
  },
48
48
  "dependencies": {
49
- "@fps-games/playable-contracts": "0.2.0-beta.2",
50
- "@fps-games/playable-runtime-data": "0.2.0-beta.2",
51
- "@fps-games/plugin-api": "0.2.0-beta.2"
49
+ "@fps-games/playable-contracts": "0.2.0-beta.4",
50
+ "@fps-games/playable-runtime-data": "0.2.0-beta.4",
51
+ "@fps-games/plugin-api": "0.2.0-beta.4"
52
52
  }
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GAGzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAA6B,CAAC;AAEnE,MAAM,UAAU,aAAa;IAC3B,OAAO,wBAAwB,CAAC;QAC9B,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,qBAAqB;QAC/B,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,OAAO,uBAAuB,CAAC;QAC7B,EAAE,EAAE,qBAAqB;QACzB,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE;QACvC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QACjC,oBAAoB,EAAE;YACpB,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,EAAE;gBACtE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE;aAChD;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GAGzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAA6B,CAAC;AAEnE,MAAM,UAAU,aAAa;IAC3B,OAAO,wBAAwB,CAAC;QAC9B,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,qBAAqB;QAC/B,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,OAAO,uBAAuB,CAAC;QAC7B,EAAE,EAAE,qBAAqB;QACzB,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE;QACvC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QACjC,oBAAoB,EAAE;YACpB,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,EAAE;gBACtE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE;aAChD;SACF;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n defineFpsPluginManifest,\n defineFpsPluginReference,\n type FpsPluginManifest,\n type FpsPluginReference,\n} from '@fps-games/plugin-api';\nimport { FPS_PLUGIN_VERSION } from './version.js';\n\nexport const FPS_SHADOWS_PLUGIN_ID = 'fps.plugin.shadows' as const;\n\nexport function shadowsPlugin(): Readonly<FpsPluginReference<null>> {\n return defineFpsPluginReference({\n packageName: '@fps-games/plugin-shadows',\n pluginId: FPS_SHADOWS_PLUGIN_ID,\n config: null,\n });\n}\n\nexport function createFpsShadowsPluginManifest(): Readonly<FpsPluginManifest> {\n return defineFpsPluginManifest({\n id: FPS_SHADOWS_PLUGIN_ID,\n version: FPS_PLUGIN_VERSION,\n apiVersion: 1,\n requires: {},\n provides: { features: ['fps.shadows'] },\n entries: { runtime: './runtime' },\n environmentContracts: {\n runtime: {\n requires: { services: ['fps.runtime.scene', 'fps.runtime.rendering'] },\n provides: { services: ['fps.runtime.shadows'] },\n },\n },\n });\n}\n"]}