@fps-games/editor 0.2.1-beta.1 → 0.2.1-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +1 -1
  2. package/dist/agent-bridge/capabilities/ui-regions.js +16 -0
  3. package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
  4. package/dist/build-info.json +46 -46
  5. package/dist/internal/material-preview.d.ts +22 -0
  6. package/dist/internal/material-preview.d.ts.map +1 -0
  7. package/dist/internal/material-preview.js +186 -0
  8. package/dist/internal/material-preview.js.map +1 -0
  9. package/dist/internal/project-model-preview.d.ts +4 -0
  10. package/dist/internal/project-model-preview.d.ts.map +1 -0
  11. package/dist/internal/project-model-preview.js +359 -0
  12. package/dist/internal/project-model-preview.js.map +1 -0
  13. package/dist/local-editor-agent-context.d.ts +12 -1
  14. package/dist/local-editor-agent-context.d.ts.map +1 -1
  15. package/dist/local-editor-agent-context.js +47 -0
  16. package/dist/local-editor-agent-context.js.map +1 -1
  17. package/dist/local-editor-harness.d.ts +15 -2
  18. package/dist/local-editor-harness.d.ts.map +1 -1
  19. package/dist/local-editor-harness.js +326 -28
  20. package/dist/local-editor-harness.js.map +1 -1
  21. package/dist/local-editor-tools.d.ts +1 -0
  22. package/dist/local-editor-tools.d.ts.map +1 -1
  23. package/dist/local-editor-tools.js +3 -0
  24. package/dist/local-editor-tools.js.map +1 -1
  25. package/dist/playable-babylon-rendering.d.ts +8 -7
  26. package/dist/playable-babylon-rendering.d.ts.map +1 -1
  27. package/dist/playable-babylon-rendering.js +77 -32
  28. package/dist/playable-babylon-rendering.js.map +1 -1
  29. package/dist/playable-local-editor-host.d.ts +4 -0
  30. package/dist/playable-local-editor-host.d.ts.map +1 -1
  31. package/dist/playable-local-editor-host.js +27 -0
  32. package/dist/playable-local-editor-host.js.map +1 -1
  33. package/dist/playable-product-projection-preview.d.ts +2 -0
  34. package/dist/playable-product-projection-preview.d.ts.map +1 -1
  35. package/dist/playable-product-projection-preview.js +7 -4
  36. package/dist/playable-product-projection-preview.js.map +1 -1
  37. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  38. package/dist/playable-product-scene-capabilities.js +9 -3
  39. package/dist/playable-product-scene-capabilities.js.map +1 -1
  40. package/dist/playable-sdk.d.ts +1 -1
  41. package/dist/playable-sdk.d.ts.map +1 -1
  42. package/dist/playable-sdk.js +1 -1
  43. package/dist/playable-sdk.js.map +1 -1
  44. package/dist/playable-standard-project.d.ts +0 -1
  45. package/dist/playable-standard-project.d.ts.map +1 -1
  46. package/dist/playable-standard-project.js +17 -5
  47. package/dist/playable-standard-project.js.map +1 -1
  48. package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.d.ts +4 -2
  49. package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.d.ts.map +1 -1
  50. package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js +301 -121
  51. package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js.map +1 -1
  52. package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js +5 -4
  53. package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js.map +1 -1
  54. package/node_modules/@fps-games/babylon-renderer/dist/environment/types.d.ts +4 -4
  55. package/node_modules/@fps-games/babylon-renderer/dist/environment/types.d.ts.map +1 -1
  56. package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js +1 -1
  57. package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js.map +1 -1
  58. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts +2 -0
  59. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts.map +1 -1
  60. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js +12 -1
  61. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js.map +1 -1
  62. package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts +6 -3
  63. package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts.map +1 -1
  64. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js +100 -39
  65. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
  66. package/node_modules/@fps-games/babylon-renderer/dist/reference.d.ts +1 -3
  67. package/node_modules/@fps-games/babylon-renderer/dist/reference.d.ts.map +1 -1
  68. package/node_modules/@fps-games/babylon-renderer/dist/reference.js.map +1 -1
  69. package/node_modules/@fps-games/babylon-renderer/package.json +11 -8
  70. package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js +24 -0
  71. package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
  72. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +10 -1
  73. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  74. package/node_modules/@fps-games/editor-babylon/dist/projection.js +96 -1
  75. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  76. package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.d.ts.map +1 -1
  77. package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js +85 -22
  78. package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js.map +1 -1
  79. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts +2 -0
  80. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -1
  81. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +150 -4
  82. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -1
  83. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts +1 -0
  84. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts.map +1 -1
  85. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js +249 -15
  86. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
  87. package/node_modules/@fps-games/editor-babylon/dist/types.d.ts +1 -1
  88. package/node_modules/@fps-games/editor-babylon/dist/types.d.ts.map +1 -1
  89. package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -1
  90. package/node_modules/@fps-games/editor-babylon/package.json +6 -6
  91. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +5 -0
  92. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  93. package/node_modules/@fps-games/editor-browser/dist/index.js +3 -0
  94. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  95. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.d.ts +35 -0
  96. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.d.ts.map +1 -0
  97. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.js +136 -0
  98. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.js.map +1 -0
  99. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.d.ts +46 -0
  100. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.d.ts.map +1 -0
  101. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.js +283 -0
  102. package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.js.map +1 -0
  103. package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.d.ts +12 -0
  104. package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.d.ts.map +1 -0
  105. package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.js +67 -0
  106. package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.js.map +1 -0
  107. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.d.ts +6 -0
  108. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.d.ts.map +1 -0
  109. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.js +9 -0
  110. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.js.map +1 -0
  111. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.d.ts +7 -0
  112. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.d.ts.map +1 -0
  113. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.js +20 -0
  114. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.js.map +1 -0
  115. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.d.ts +9 -0
  116. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.d.ts.map +1 -0
  117. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.js +219 -0
  118. package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.js.map +1 -0
  119. package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.d.ts +14 -0
  120. package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.d.ts.map +1 -0
  121. package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.js +42 -0
  122. package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.js.map +1 -0
  123. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts.map +1 -1
  124. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js +2 -0
  125. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
  126. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.d.ts +27 -0
  127. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.d.ts.map +1 -0
  128. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.js +288 -0
  129. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.js.map +1 -0
  130. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
  131. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
  132. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +29 -0
  133. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
  134. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +20 -1
  135. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  136. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +321 -60
  137. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  138. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts +2 -1
  139. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts.map +1 -1
  140. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js +4 -2
  141. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
  142. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +63 -3
  143. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  144. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  145. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts +9 -0
  146. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts.map +1 -1
  147. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js +88 -16
  148. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
  149. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +2 -1
  150. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  151. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +1463 -356
  152. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  153. package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.d.ts +13 -0
  154. package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.d.ts.map +1 -0
  155. package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.js +15 -0
  156. package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.js.map +1 -0
  157. package/node_modules/@fps-games/editor-browser/package.json +7 -7
  158. package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts +1 -0
  159. package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts.map +1 -1
  160. package/node_modules/@fps-games/editor-core/dist/editor-tools.js +3 -1
  161. package/node_modules/@fps-games/editor-core/dist/editor-tools.js.map +1 -1
  162. package/node_modules/@fps-games/editor-core/dist/viewport-tools.d.ts +11 -2
  163. package/node_modules/@fps-games/editor-core/dist/viewport-tools.d.ts.map +1 -1
  164. package/node_modules/@fps-games/editor-core/dist/viewport-tools.js +12 -1
  165. package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
  166. package/node_modules/@fps-games/editor-core/package.json +6 -6
  167. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  168. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.d.ts.map +1 -1
  169. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js +10 -3
  170. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js.map +1 -1
  171. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.d.ts +2 -1
  172. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.d.ts.map +1 -1
  173. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js +1 -1
  174. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js.map +1 -1
  175. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.d.ts +1 -0
  176. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.d.ts.map +1 -1
  177. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js +5 -0
  178. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
  179. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.d.ts +1 -1
  180. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.d.ts.map +1 -1
  181. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js +1 -1
  182. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js.map +1 -1
  183. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.d.ts.map +1 -1
  184. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js +15 -1
  185. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js.map +1 -1
  186. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.d.ts.map +1 -1
  187. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js +3 -0
  188. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js.map +1 -1
  189. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.d.ts +6 -1
  190. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.d.ts.map +1 -1
  191. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.js.map +1 -1
  192. package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts +1 -0
  193. package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts.map +1 -1
  194. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js +1 -0
  195. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
  196. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +1 -1
  197. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
  198. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +4 -0
  199. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
  200. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts +4 -0
  201. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts.map +1 -1
  202. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js +10 -1
  203. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
  204. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.d.ts +4 -0
  205. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.d.ts.map +1 -0
  206. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.js +4 -0
  207. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.js.map +1 -0
  208. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.d.ts +4 -0
  209. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.d.ts.map +1 -0
  210. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.js +86 -0
  211. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.js.map +1 -0
  212. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.d.ts +9 -0
  213. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.d.ts.map +1 -0
  214. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.js +76 -0
  215. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.js.map +1 -0
  216. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.d.ts +34 -0
  217. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.d.ts.map +1 -0
  218. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.js +2 -0
  219. package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.js.map +1 -0
  220. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js +4 -4
  221. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
  222. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts +2 -1
  223. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts.map +1 -1
  224. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
  225. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js +1 -5
  226. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js.map +1 -1
  227. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts +4 -0
  228. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
  229. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +40 -0
  230. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  231. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js +53 -0
  232. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  233. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.d.ts +2 -0
  234. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.d.ts.map +1 -1
  235. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.js.map +1 -1
  236. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts +1 -0
  237. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts.map +1 -1
  238. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js +1 -0
  239. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
  240. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +1 -0
  241. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  242. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +94 -0
  243. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  244. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.d.ts +14 -0
  245. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.d.ts.map +1 -0
  246. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.js +101 -0
  247. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.js.map +1 -0
  248. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.d.ts +23 -0
  249. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.d.ts.map +1 -0
  250. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.js +180 -0
  251. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.js.map +1 -0
  252. package/node_modules/@fps-games/editor-playable-sdk/package.json +6 -6
  253. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts +23 -3
  254. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts.map +1 -1
  255. package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
  256. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  257. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  258. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts.map +1 -1
  259. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js +103 -10
  260. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js.map +1 -1
  261. package/node_modules/@fps-games/editor-ui/package.json +1 -1
  262. package/node_modules/@fps-games/playable-assets/dist/identity.d.ts +1 -0
  263. package/node_modules/@fps-games/playable-assets/dist/identity.d.ts.map +1 -1
  264. package/node_modules/@fps-games/playable-assets/dist/identity.js +1 -1
  265. package/node_modules/@fps-games/playable-assets/dist/identity.js.map +1 -1
  266. package/node_modules/@fps-games/playable-assets/dist/index.d.ts +1 -0
  267. package/node_modules/@fps-games/playable-assets/dist/index.d.ts.map +1 -1
  268. package/node_modules/@fps-games/playable-assets/dist/index.js +1 -0
  269. package/node_modules/@fps-games/playable-assets/dist/index.js.map +1 -1
  270. package/node_modules/@fps-games/playable-assets/dist/resource-resolver.d.ts +46 -0
  271. package/node_modules/@fps-games/playable-assets/dist/resource-resolver.d.ts.map +1 -0
  272. package/node_modules/@fps-games/playable-assets/dist/resource-resolver.js +109 -0
  273. package/node_modules/@fps-games/playable-assets/dist/resource-resolver.js.map +1 -0
  274. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  275. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  276. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  277. package/node_modules/@fps-games/playable-runtime/dist/runtime.d.ts.map +1 -1
  278. package/node_modules/@fps-games/playable-runtime/dist/runtime.js +5 -0
  279. package/node_modules/@fps-games/playable-runtime/dist/runtime.js.map +1 -1
  280. package/node_modules/@fps-games/playable-runtime/dist/types.d.ts +2 -0
  281. package/node_modules/@fps-games/playable-runtime/dist/types.d.ts.map +1 -1
  282. package/node_modules/@fps-games/playable-runtime/dist/types.js.map +1 -1
  283. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  284. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  285. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  286. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  287. package/node_modules/@fps-games/plugin-assets/dist/reference.d.ts.map +1 -1
  288. package/node_modules/@fps-games/plugin-assets/dist/reference.js +11 -4
  289. package/node_modules/@fps-games/plugin-assets/dist/reference.js.map +1 -1
  290. package/node_modules/@fps-games/plugin-assets/dist/renderer.d.ts +8 -0
  291. package/node_modules/@fps-games/plugin-assets/dist/renderer.d.ts.map +1 -0
  292. package/node_modules/@fps-games/plugin-assets/dist/renderer.js +13 -0
  293. package/node_modules/@fps-games/plugin-assets/dist/renderer.js.map +1 -0
  294. package/node_modules/@fps-games/plugin-assets/dist/resources.d.ts +12 -0
  295. package/node_modules/@fps-games/plugin-assets/dist/resources.d.ts.map +1 -0
  296. package/node_modules/@fps-games/plugin-assets/dist/resources.js +8 -0
  297. package/node_modules/@fps-games/plugin-assets/dist/resources.js.map +1 -0
  298. package/node_modules/@fps-games/plugin-assets/dist/runtime.d.ts +2 -1
  299. package/node_modules/@fps-games/plugin-assets/dist/runtime.d.ts.map +1 -1
  300. package/node_modules/@fps-games/plugin-assets/dist/runtime.js +3 -0
  301. package/node_modules/@fps-games/plugin-assets/dist/runtime.js.map +1 -1
  302. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  303. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  304. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  305. package/node_modules/@fps-games/plugin-assets/package.json +32 -8
  306. package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +1 -1
  307. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +1 -1
  308. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -1
  309. package/node_modules/@fps-games/plugin-hierarchy/package.json +5 -5
  310. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  311. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  312. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  313. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  314. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  315. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  316. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  317. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  318. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  319. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  320. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  321. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  322. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  323. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  324. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  325. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  326. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  327. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts +1 -1
  328. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +1 -1
  329. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -1
  330. package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +5 -5
  331. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  332. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  333. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  334. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  335. package/package.json +24 -22
@@ -153,7 +153,7 @@ export interface EditorSceneRenderingPanelOptions {
153
153
  export interface EditorSceneRenderingTextureAsset {
154
154
  id: string;
155
155
  label: string;
156
- url: string;
156
+ resource: PlayableResolvedAssetResource;
157
157
  meta?: string;
158
158
  usage?: 'material' | 'environment' | (string & {});
159
159
  capabilities?: {
@@ -185,4 +185,5 @@ export interface EditorSceneRenderingProfileAuthoringHandlers {
185
185
  summary: EditorSceneRenderingProfileSummary;
186
186
  }) => Record<string, unknown> | Promise<Record<string, unknown>>;
187
187
  }
188
+ import type { PlayableResolvedAssetResource } from '@fps-games/playable-assets';
188
189
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/rendering-profile/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/rendering-profile/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/rendering-profile/types.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC","sourcesContent":["import type { EditorSceneRenderingProfile, EditorSceneRenderingProfileSummary } from '@fps-games/playable-rendering';\nexport * from '@fps-games/playable-rendering';\n\nexport type EditorSceneRenderingPropertyValueType =\n | 'string'\n | 'number'\n | 'boolean'\n | 'enum'\n | 'asset'\n | 'color'\n | 'string-list'\n | 'unknown';\n\nexport type EditorSceneRenderingPropertyControlKind =\n | 'readonly'\n | 'string'\n | 'number'\n | 'boolean'\n | 'enum'\n | 'asset-picker-card'\n | 'color'\n | 'string-list';\n\nexport type EditorSceneRenderingPropertyCommitMode = 'live' | 'blur' | 'change' | 'immediate';\n\nexport type EditorSceneRenderingSystemKind =\n | 'environment'\n | 'rendering-group'\n | 'blob-shadow'\n | 'static-projected-shadow'\n | 'planar-shadow'\n | 'csm-shadow'\n | 'custom';\n\nexport type EditorSceneRenderingStatusTone = 'default' | 'success' | 'warning' | 'error';\n\nexport type EditorSceneRenderingPanelLanguage = 'zh' | 'en';\n\nexport type EditorSceneRenderingSectionLayout = 'cards' | 'list';\n\nexport interface EditorSceneRenderingProperty {\n path: string;\n label: string;\n valueType: EditorSceneRenderingPropertyValueType;\n control: EditorSceneRenderingPropertyControlKind;\n value: unknown;\n readOnly?: boolean;\n disabled?: boolean;\n disabledReason?: string;\n tooltip?: string;\n unit?: string;\n min?: number;\n max?: number;\n step?: number;\n options?: readonly EditorSceneRenderingPropertyEnumOption[];\n controlOptions?: Record<string, unknown>;\n placeholder?: string;\n commitMode?: EditorSceneRenderingPropertyCommitMode;\n tags?: readonly string[];\n actions?: readonly EditorSceneRenderingPanelAction[];\n}\n\nexport interface EditorSceneRenderingPropertyEnumOption {\n label: string;\n value: string | number | boolean;\n disabled?: boolean;\n}\n\nexport interface EditorSceneRenderingSystem {\n id: string;\n label: string;\n kind: EditorSceneRenderingSystemKind;\n group?: EditorSceneRenderingSystemGroup;\n active?: boolean;\n readOnly?: boolean;\n summary?: string;\n status?: string;\n details?: readonly EditorSceneRenderingSystemDetail[];\n progress?: EditorSceneRenderingProgress;\n collapsedByDefault?: boolean;\n properties: readonly EditorSceneRenderingProperty[];\n actions?: readonly EditorSceneRenderingPanelAction[];\n}\n\nexport interface EditorSceneRenderingSystemGroup {\n id: string;\n label: string;\n summary?: string;\n}\n\nexport interface EditorSceneRenderingSystemDetail {\n label: string;\n value: string;\n tone?: EditorSceneRenderingStatusTone;\n}\n\nexport interface EditorSceneRenderingProgress {\n label: string;\n value?: number;\n indeterminate?: boolean;\n}\n\nexport interface EditorSceneRenderingSection {\n id: string;\n title: string;\n summary?: string;\n collapsedByDefault?: boolean;\n systemsCollapsible?: boolean;\n layout?: EditorSceneRenderingSectionLayout;\n systems: EditorSceneRenderingSystem[];\n}\n\nexport interface EditorSceneRenderingPanelAction {\n id: string;\n label: string;\n icon?: 'undo' | 'save' | 'world' | 'status' | 'plus' | 'trash';\n disabled?: boolean;\n tooltip?: string;\n params?: Record<string, unknown>;\n}\n\nexport interface EditorSceneRenderingPanelState {\n title?: string;\n summary?: string;\n dirty?: boolean;\n status?: string;\n statusTone?: EditorSceneRenderingStatusTone;\n actions?: EditorSceneRenderingPanelAction[];\n sections: EditorSceneRenderingSection[];\n}\n\nexport type EditorSceneStaticShadowBakeLifecycleStatus =\n | 'disabled'\n | 'baking'\n | 'missing'\n | 'preview-unsaved'\n | 'up-to-date'\n | 'out-of-date'\n | 'invalid';\n\nexport interface EditorSceneStaticShadowBakeStats {\n phase?: 'collect' | 'reuse' | 'chunk' | 'sdf' | 'pack' | 'encode' | 'complete' | (string & {});\n sourceRootCount?: number;\n sourceMeshCount?: number;\n attemptedChunkCount?: number;\n chunkCount?: number;\n textureCount?: number;\n skippedChunkCount?: number;\n pageCount?: number;\n resolution?: number;\n chunkSize?: number;\n atlasSize?: number;\n atlasUsedPixels?: number;\n atlasAllocatedPixels?: number;\n atlasOccupancy?: number;\n texelsPerMeter?: number;\n effectiveTexelsPerMeter?: number;\n maxAtlasPages?: number;\n sdfRadiusPx?: number;\n spatialChunkSize?: number;\n effectiveSpatialChunkSize?: number;\n targetChunkCount?: number;\n bakedChunkCount?: number;\n reusedChunkCount?: number;\n durationMs?: number;\n currentChunkId?: string;\n}\n\nexport interface EditorSceneStaticShadowBakeLifecycleState {\n status: EditorSceneStaticShadowBakeLifecycleStatus;\n chunkCount?: number;\n reason?: string | null;\n generatedAt?: string | null;\n stats?: EditorSceneStaticShadowBakeStats | null;\n progress?: EditorSceneRenderingProgress | null;\n}\n\nexport interface EditorSceneRenderingPanelStateInput {\n dirty?: boolean;\n lastError?: string | null;\n staticShadowBake?: EditorSceneStaticShadowBakeLifecycleState | null;\n shadowMapExperiment?: EditorSceneShadowMapExperimentPanelState | null;\n}\n\nexport interface EditorSceneShadowMapExperimentPanelState {\n configured: boolean;\n enabled: boolean;\n qualityProfileId: string | null;\n qualityProfileIds: readonly string[];\n maps?: {\n staticResolution: number;\n dynamicResolution: number;\n compositeResolution: number;\n } | null;\n filter?: string | null;\n bias?: number | null;\n normalBias?: number | null;\n darkness?: number | null;\n}\n\nexport interface EditorSceneRenderingPanelOptions {\n language?: EditorSceneRenderingPanelLanguage;\n textureAssets?: readonly EditorSceneRenderingTextureAsset[];\n}\n\nexport interface EditorSceneRenderingTextureAsset {\n id: string;\n label: string;\n url: string;\n meta?: string;\n usage?: 'material' | 'environment' | (string & {});\n capabilities?: {\n materialTexture?: boolean;\n environmentTexture?: boolean;\n };\n}\n\nexport interface EditorSceneRenderingProfileDraftState {\n savedConfig: Record<string, unknown>;\n draftConfig: Record<string, unknown>;\n dirty: boolean;\n lastError: string | null;\n}\n\nexport interface EditorSceneRenderingProfileAuthoringRequest {\n method?: string;\n body?: Record<string, unknown>;\n}\n\nexport interface EditorSceneRenderingProfileAuthoringLoadResult {\n renderingConfig: unknown;\n response?: Record<string, unknown>;\n}\n\nexport interface EditorSceneRenderingProfileAuthoringHandlers {\n readBody?: (\n request: EditorSceneRenderingProfileAuthoringRequest,\n ) => Record<string, unknown> | Promise<Record<string, unknown>>;\n loadConfig?: () => unknown | EditorSceneRenderingProfileAuthoringLoadResult | Promise<unknown | EditorSceneRenderingProfileAuthoringLoadResult>;\n saveConfig?: (input: {\n body: Record<string, unknown>;\n renderingConfig: Record<string, unknown>;\n normalized: EditorSceneRenderingProfile;\n summary: EditorSceneRenderingProfileSummary;\n }) => Record<string, unknown> | Promise<Record<string, unknown>>;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/rendering-profile/types.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC","sourcesContent":["import type { EditorSceneRenderingProfile, EditorSceneRenderingProfileSummary } from '@fps-games/playable-rendering';\nexport * from '@fps-games/playable-rendering';\n\nexport type EditorSceneRenderingPropertyValueType =\n | 'string'\n | 'number'\n | 'boolean'\n | 'enum'\n | 'asset'\n | 'color'\n | 'string-list'\n | 'unknown';\n\nexport type EditorSceneRenderingPropertyControlKind =\n | 'readonly'\n | 'string'\n | 'number'\n | 'boolean'\n | 'enum'\n | 'asset-picker-card'\n | 'color'\n | 'string-list';\n\nexport type EditorSceneRenderingPropertyCommitMode = 'live' | 'blur' | 'change' | 'immediate';\n\nexport type EditorSceneRenderingSystemKind =\n | 'environment'\n | 'rendering-group'\n | 'blob-shadow'\n | 'static-projected-shadow'\n | 'planar-shadow'\n | 'csm-shadow'\n | 'custom';\n\nexport type EditorSceneRenderingStatusTone = 'default' | 'success' | 'warning' | 'error';\n\nexport type EditorSceneRenderingPanelLanguage = 'zh' | 'en';\n\nexport type EditorSceneRenderingSectionLayout = 'cards' | 'list';\n\nexport interface EditorSceneRenderingProperty {\n path: string;\n label: string;\n valueType: EditorSceneRenderingPropertyValueType;\n control: EditorSceneRenderingPropertyControlKind;\n value: unknown;\n readOnly?: boolean;\n disabled?: boolean;\n disabledReason?: string;\n tooltip?: string;\n unit?: string;\n min?: number;\n max?: number;\n step?: number;\n options?: readonly EditorSceneRenderingPropertyEnumOption[];\n controlOptions?: Record<string, unknown>;\n placeholder?: string;\n commitMode?: EditorSceneRenderingPropertyCommitMode;\n tags?: readonly string[];\n actions?: readonly EditorSceneRenderingPanelAction[];\n}\n\nexport interface EditorSceneRenderingPropertyEnumOption {\n label: string;\n value: string | number | boolean;\n disabled?: boolean;\n}\n\nexport interface EditorSceneRenderingSystem {\n id: string;\n label: string;\n kind: EditorSceneRenderingSystemKind;\n group?: EditorSceneRenderingSystemGroup;\n active?: boolean;\n readOnly?: boolean;\n summary?: string;\n status?: string;\n details?: readonly EditorSceneRenderingSystemDetail[];\n progress?: EditorSceneRenderingProgress;\n collapsedByDefault?: boolean;\n properties: readonly EditorSceneRenderingProperty[];\n actions?: readonly EditorSceneRenderingPanelAction[];\n}\n\nexport interface EditorSceneRenderingSystemGroup {\n id: string;\n label: string;\n summary?: string;\n}\n\nexport interface EditorSceneRenderingSystemDetail {\n label: string;\n value: string;\n tone?: EditorSceneRenderingStatusTone;\n}\n\nexport interface EditorSceneRenderingProgress {\n label: string;\n value?: number;\n indeterminate?: boolean;\n}\n\nexport interface EditorSceneRenderingSection {\n id: string;\n title: string;\n summary?: string;\n collapsedByDefault?: boolean;\n systemsCollapsible?: boolean;\n layout?: EditorSceneRenderingSectionLayout;\n systems: EditorSceneRenderingSystem[];\n}\n\nexport interface EditorSceneRenderingPanelAction {\n id: string;\n label: string;\n icon?: 'undo' | 'save' | 'world' | 'status' | 'plus' | 'trash';\n disabled?: boolean;\n tooltip?: string;\n params?: Record<string, unknown>;\n}\n\nexport interface EditorSceneRenderingPanelState {\n title?: string;\n summary?: string;\n dirty?: boolean;\n status?: string;\n statusTone?: EditorSceneRenderingStatusTone;\n actions?: EditorSceneRenderingPanelAction[];\n sections: EditorSceneRenderingSection[];\n}\n\nexport type EditorSceneStaticShadowBakeLifecycleStatus =\n | 'disabled'\n | 'baking'\n | 'missing'\n | 'preview-unsaved'\n | 'up-to-date'\n | 'out-of-date'\n | 'invalid';\n\nexport interface EditorSceneStaticShadowBakeStats {\n phase?: 'collect' | 'reuse' | 'chunk' | 'sdf' | 'pack' | 'encode' | 'complete' | (string & {});\n sourceRootCount?: number;\n sourceMeshCount?: number;\n attemptedChunkCount?: number;\n chunkCount?: number;\n textureCount?: number;\n skippedChunkCount?: number;\n pageCount?: number;\n resolution?: number;\n chunkSize?: number;\n atlasSize?: number;\n atlasUsedPixels?: number;\n atlasAllocatedPixels?: number;\n atlasOccupancy?: number;\n texelsPerMeter?: number;\n effectiveTexelsPerMeter?: number;\n maxAtlasPages?: number;\n sdfRadiusPx?: number;\n spatialChunkSize?: number;\n effectiveSpatialChunkSize?: number;\n targetChunkCount?: number;\n bakedChunkCount?: number;\n reusedChunkCount?: number;\n durationMs?: number;\n currentChunkId?: string;\n}\n\nexport interface EditorSceneStaticShadowBakeLifecycleState {\n status: EditorSceneStaticShadowBakeLifecycleStatus;\n chunkCount?: number;\n reason?: string | null;\n generatedAt?: string | null;\n stats?: EditorSceneStaticShadowBakeStats | null;\n progress?: EditorSceneRenderingProgress | null;\n}\n\nexport interface EditorSceneRenderingPanelStateInput {\n dirty?: boolean;\n lastError?: string | null;\n staticShadowBake?: EditorSceneStaticShadowBakeLifecycleState | null;\n shadowMapExperiment?: EditorSceneShadowMapExperimentPanelState | null;\n}\n\nexport interface EditorSceneShadowMapExperimentPanelState {\n configured: boolean;\n enabled: boolean;\n qualityProfileId: string | null;\n qualityProfileIds: readonly string[];\n maps?: {\n staticResolution: number;\n dynamicResolution: number;\n compositeResolution: number;\n } | null;\n filter?: string | null;\n bias?: number | null;\n normalBias?: number | null;\n darkness?: number | null;\n}\n\nexport interface EditorSceneRenderingPanelOptions {\n language?: EditorSceneRenderingPanelLanguage;\n textureAssets?: readonly EditorSceneRenderingTextureAsset[];\n}\n\nexport interface EditorSceneRenderingTextureAsset {\n id: string;\n label: string;\n resource: PlayableResolvedAssetResource;\n meta?: string;\n usage?: 'material' | 'environment' | (string & {});\n capabilities?: {\n materialTexture?: boolean;\n environmentTexture?: boolean;\n };\n}\n\nexport interface EditorSceneRenderingProfileDraftState {\n savedConfig: Record<string, unknown>;\n draftConfig: Record<string, unknown>;\n dirty: boolean;\n lastError: string | null;\n}\n\nexport interface EditorSceneRenderingProfileAuthoringRequest {\n method?: string;\n body?: Record<string, unknown>;\n}\n\nexport interface EditorSceneRenderingProfileAuthoringLoadResult {\n renderingConfig: unknown;\n response?: Record<string, unknown>;\n}\n\nexport interface EditorSceneRenderingProfileAuthoringHandlers {\n readBody?: (\n request: EditorSceneRenderingProfileAuthoringRequest,\n ) => Record<string, unknown> | Promise<Record<string, unknown>>;\n loadConfig?: () => unknown | EditorSceneRenderingProfileAuthoringLoadResult | Promise<unknown | EditorSceneRenderingProfileAuthoringLoadResult>;\n saveConfig?: (input: {\n body: Record<string, unknown>;\n renderingConfig: Record<string, unknown>;\n normalized: EditorSceneRenderingProfile;\n summary: EditorSceneRenderingProfileSummary;\n }) => Record<string, unknown> | Promise<Record<string, unknown>>;\n}\nimport type { PlayableResolvedAssetResource } from '@fps-games/playable-assets';\n"]}
@@ -76,11 +76,7 @@ function resolveStaticEditorSceneRuntimePreviewAssetUrl(assetsModule, assetId, k
76
76
  ? assetsModule.resolveTextureAssetUrl
77
77
  : assetsModule.resolveModelAssetUrl;
78
78
  const typedUrl = typeof typedResolver === 'function' ? typedResolver(assetId) : null;
79
- const fallbackUrl = typeof assetsModule.resolveAssetUrl === 'function'
80
- ? assetsModule.resolveAssetUrl(assetId)
81
- : null;
82
- return resolveEditorSceneRuntimePreviewAssetUrlCandidate(typedUrl)
83
- ?? resolveEditorSceneRuntimePreviewAssetUrlCandidate(fallbackUrl);
79
+ return resolveEditorSceneRuntimePreviewAssetUrlCandidate(typedUrl);
84
80
  }
85
81
  function resolveGeneratedEditorSceneRuntimePreviewAssetRelativeUrl(relativePath) {
86
82
  const directProjectUrl = normalizeEditorSceneRuntimePreviewProjectUrlPath(relativePath);
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/runtime-preview/assets.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n EditorSceneRuntimePreviewAssetsModule,\n EditorSceneRuntimePreviewKind,\n} from './types';\n\nexport function readEditorSceneRuntimePreviewAssetId(asset: unknown): string {\n const value = readRecord(asset);\n return readOptionalString(value.assetId)\n ?? readOptionalString(value.id)\n ?? '';\n}\n\nexport function readEditorSceneRuntimePreviewAssetKind(asset: unknown): EditorSceneRuntimePreviewKind | null {\n const metadata = readEditorSceneRuntimePreviewAssetMetadata(asset);\n const raw = readOptionalString(metadata.type)\n ?? readOptionalString(metadata.assetType)\n ?? readOptionalString(readRecord(asset).kind);\n if (raw === 'texture') return 'texture';\n if (raw === 'model') return 'model';\n return null;\n}\n\nexport function readEditorSceneRuntimePreviewAssetMetadata(asset: unknown): Record<string, unknown> {\n return readRecord(readRecord(asset).metadata);\n}\n\nexport function resolveEditorSceneRuntimePreviewAssetUrl(\n assetsModule: EditorSceneRuntimePreviewAssetsModule,\n asset: unknown,\n kind: EditorSceneRuntimePreviewKind,\n): string | null {\n const assetId = readEditorSceneRuntimePreviewAssetId(asset);\n const metadata = readEditorSceneRuntimePreviewAssetMetadata(asset);\n const candidates: unknown[] = [];\n\n if (assetId) {\n candidates.push(resolveStaticEditorSceneRuntimePreviewAssetUrl(assetsModule, assetId, kind));\n\n const catalogEntry = readRecord(readRecord(assetsModule.ASSET_CATALOG)[assetId]);\n const catalogExternal = readRecord(catalogEntry.external);\n candidates.push(\n catalogEntry.url,\n catalogEntry.relativePath,\n catalogExternal.assetUrl,\n catalogExternal.assetPath,\n );\n }\n\n const metadataExternal = readRecord(metadata.external);\n candidates.push(\n metadata.assetUrl,\n metadata.relativePath,\n metadata.assetPath,\n metadataExternal.assetUrl,\n metadataExternal.assetPath,\n );\n\n for (const candidate of candidates) {\n const url = resolveEditorSceneRuntimePreviewAssetUrlCandidate(candidate);\n if (url) return url;\n }\n\n return null;\n}\n\nexport function resolveEditorSceneRuntimePreviewAssetUrlCandidate(value: unknown): string | null {\n const raw = readOptionalString(value);\n if (!raw) return null;\n const candidate = raw.replace(/\\\\/g, '/');\n if (/^(https?:|data:|blob:)/i.test(candidate)) return candidate;\n if (candidate.startsWith('/@fs/')) return candidate;\n if (candidate.startsWith('/src/')) return candidate;\n if (candidate.startsWith('/')) return candidate;\n\n const projectUrl = normalizeEditorSceneRuntimePreviewProjectUrlPath(candidate);\n if (projectUrl) return projectUrl;\n\n const [pathname, suffix] = splitEditorSceneRuntimePreviewAssetUrlPathAndSuffix(candidate);\n if (pathname.startsWith('/') && pathname.includes('/src/assets/')) return `/@fs${pathname}${suffix}`;\n\n return resolveGeneratedEditorSceneRuntimePreviewAssetRelativeUrl(candidate);\n}\n\nexport function normalizeEditorSceneRuntimePreviewProjectUrlPath(path: string): string | null {\n const [pathname, suffix] = splitEditorSceneRuntimePreviewAssetUrlPathAndSuffix(path.replace(/\\\\/g, '/'));\n const withoutDot = pathname.startsWith('./') ? pathname.slice(2) : pathname;\n if (withoutDot.startsWith('/src/')) return formatEditorSceneRuntimePreviewProjectAssetUrl(withoutDot.slice(1), suffix);\n if (withoutDot.startsWith('src/')) return formatEditorSceneRuntimePreviewProjectAssetUrl(withoutDot, suffix);\n if (withoutDot.startsWith('assets/')) return formatEditorSceneRuntimePreviewProjectAssetUrl(`src/${withoutDot}`, suffix);\n if (withoutDot.startsWith('imported/')) return formatEditorSceneRuntimePreviewProjectAssetUrl(`src/assets/${withoutDot}`, suffix);\n return null;\n}\n\nfunction resolveStaticEditorSceneRuntimePreviewAssetUrl(\n assetsModule: EditorSceneRuntimePreviewAssetsModule,\n assetId: string,\n kind: EditorSceneRuntimePreviewKind,\n): string | null {\n const typedResolver = kind === 'texture'\n ? assetsModule.resolveTextureAssetUrl\n : assetsModule.resolveModelAssetUrl;\n const typedUrl = typeof typedResolver === 'function' ? typedResolver(assetId) : null;\n const fallbackUrl = typeof assetsModule.resolveAssetUrl === 'function'\n ? assetsModule.resolveAssetUrl(assetId)\n : null;\n return resolveEditorSceneRuntimePreviewAssetUrlCandidate(typedUrl)\n ?? resolveEditorSceneRuntimePreviewAssetUrlCandidate(fallbackUrl);\n}\n\nfunction resolveGeneratedEditorSceneRuntimePreviewAssetRelativeUrl(relativePath: string): string | null {\n const directProjectUrl = normalizeEditorSceneRuntimePreviewProjectUrlPath(relativePath);\n if (directProjectUrl) return directProjectUrl;\n\n const [pathname, suffix] = splitEditorSceneRuntimePreviewAssetUrlPathAndSuffix(relativePath.replace(/\\\\/g, '/'));\n if (!pathname || pathname.startsWith('/') || /^[a-z][a-z0-9+.-]*:/i.test(pathname)) return null;\n\n const normalized = normalizeEditorSceneRuntimePreviewUrlPathParts(`src/assets/generated/${pathname}`);\n return normalized ? `/${normalized}${suffix}` : null;\n}\n\nfunction formatEditorSceneRuntimePreviewProjectAssetUrl(path: string, suffix: string): string | null {\n const normalized = normalizeEditorSceneRuntimePreviewUrlPathParts(path);\n return normalized ? `/${normalized}${suffix}` : null;\n}\n\nfunction splitEditorSceneRuntimePreviewAssetUrlPathAndSuffix(value: string): [string, string] {\n const suffixIndex = value.search(/[?#]/);\n return suffixIndex === -1 ? [value, ''] : [value.slice(0, suffixIndex), value.slice(suffixIndex)];\n}\n\nfunction normalizeEditorSceneRuntimePreviewUrlPathParts(path: string): string | null {\n const stack: string[] = [];\n for (const part of path.split('/')) {\n if (!part || part === '.') continue;\n if (part === '..') {\n if (!stack.length) return null;\n stack.pop();\n continue;\n }\n stack.push(part);\n }\n return stack.length ? stack.join('/') : null;\n}\n\nfunction readOptionalString(value: unknown): string | undefined {\n return typeof value === 'string' && value.trim() ? value.trim() : undefined;\n}\n\nfunction readRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' && !Array.isArray(value) ? value as Record<string, unknown> : {};\n}\n"]}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/runtime-preview/assets.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n EditorSceneRuntimePreviewAssetsModule,\n EditorSceneRuntimePreviewKind,\n} from './types';\n\nexport function readEditorSceneRuntimePreviewAssetId(asset: unknown): string {\n const value = readRecord(asset);\n return readOptionalString(value.assetId)\n ?? readOptionalString(value.id)\n ?? '';\n}\n\nexport function readEditorSceneRuntimePreviewAssetKind(asset: unknown): EditorSceneRuntimePreviewKind | null {\n const metadata = readEditorSceneRuntimePreviewAssetMetadata(asset);\n const raw = readOptionalString(metadata.type)\n ?? readOptionalString(metadata.assetType)\n ?? readOptionalString(readRecord(asset).kind);\n if (raw === 'texture') return 'texture';\n if (raw === 'model') return 'model';\n return null;\n}\n\nexport function readEditorSceneRuntimePreviewAssetMetadata(asset: unknown): Record<string, unknown> {\n return readRecord(readRecord(asset).metadata);\n}\n\nexport function resolveEditorSceneRuntimePreviewAssetUrl(\n assetsModule: EditorSceneRuntimePreviewAssetsModule,\n asset: unknown,\n kind: EditorSceneRuntimePreviewKind,\n): string | null {\n const assetId = readEditorSceneRuntimePreviewAssetId(asset);\n const metadata = readEditorSceneRuntimePreviewAssetMetadata(asset);\n const candidates: unknown[] = [];\n\n if (assetId) {\n candidates.push(resolveStaticEditorSceneRuntimePreviewAssetUrl(assetsModule, assetId, kind));\n\n const catalogEntry = readRecord(readRecord(assetsModule.ASSET_CATALOG)[assetId]);\n const catalogExternal = readRecord(catalogEntry.external);\n candidates.push(\n catalogEntry.url,\n catalogEntry.relativePath,\n catalogExternal.assetUrl,\n catalogExternal.assetPath,\n );\n }\n\n const metadataExternal = readRecord(metadata.external);\n candidates.push(\n metadata.assetUrl,\n metadata.relativePath,\n metadata.assetPath,\n metadataExternal.assetUrl,\n metadataExternal.assetPath,\n );\n\n for (const candidate of candidates) {\n const url = resolveEditorSceneRuntimePreviewAssetUrlCandidate(candidate);\n if (url) return url;\n }\n\n return null;\n}\n\nexport function resolveEditorSceneRuntimePreviewAssetUrlCandidate(value: unknown): string | null {\n const raw = readOptionalString(value);\n if (!raw) return null;\n const candidate = raw.replace(/\\\\/g, '/');\n if (/^(https?:|data:|blob:)/i.test(candidate)) return candidate;\n if (candidate.startsWith('/@fs/')) return candidate;\n if (candidate.startsWith('/src/')) return candidate;\n if (candidate.startsWith('/')) return candidate;\n\n const projectUrl = normalizeEditorSceneRuntimePreviewProjectUrlPath(candidate);\n if (projectUrl) return projectUrl;\n\n const [pathname, suffix] = splitEditorSceneRuntimePreviewAssetUrlPathAndSuffix(candidate);\n if (pathname.startsWith('/') && pathname.includes('/src/assets/')) return `/@fs${pathname}${suffix}`;\n\n return resolveGeneratedEditorSceneRuntimePreviewAssetRelativeUrl(candidate);\n}\n\nexport function normalizeEditorSceneRuntimePreviewProjectUrlPath(path: string): string | null {\n const [pathname, suffix] = splitEditorSceneRuntimePreviewAssetUrlPathAndSuffix(path.replace(/\\\\/g, '/'));\n const withoutDot = pathname.startsWith('./') ? pathname.slice(2) : pathname;\n if (withoutDot.startsWith('/src/')) return formatEditorSceneRuntimePreviewProjectAssetUrl(withoutDot.slice(1), suffix);\n if (withoutDot.startsWith('src/')) return formatEditorSceneRuntimePreviewProjectAssetUrl(withoutDot, suffix);\n if (withoutDot.startsWith('assets/')) return formatEditorSceneRuntimePreviewProjectAssetUrl(`src/${withoutDot}`, suffix);\n if (withoutDot.startsWith('imported/')) return formatEditorSceneRuntimePreviewProjectAssetUrl(`src/assets/${withoutDot}`, suffix);\n return null;\n}\n\nfunction resolveStaticEditorSceneRuntimePreviewAssetUrl(\n assetsModule: EditorSceneRuntimePreviewAssetsModule,\n assetId: string,\n kind: EditorSceneRuntimePreviewKind,\n): string | null {\n const typedResolver = kind === 'texture'\n ? assetsModule.resolveTextureAssetUrl\n : assetsModule.resolveModelAssetUrl;\n const typedUrl = typeof typedResolver === 'function' ? typedResolver(assetId) : null;\n return resolveEditorSceneRuntimePreviewAssetUrlCandidate(typedUrl);\n}\n\nfunction resolveGeneratedEditorSceneRuntimePreviewAssetRelativeUrl(relativePath: string): string | null {\n const directProjectUrl = normalizeEditorSceneRuntimePreviewProjectUrlPath(relativePath);\n if (directProjectUrl) return directProjectUrl;\n\n const [pathname, suffix] = splitEditorSceneRuntimePreviewAssetUrlPathAndSuffix(relativePath.replace(/\\\\/g, '/'));\n if (!pathname || pathname.startsWith('/') || /^[a-z][a-z0-9+.-]*:/i.test(pathname)) return null;\n\n const normalized = normalizeEditorSceneRuntimePreviewUrlPathParts(`src/assets/generated/${pathname}`);\n return normalized ? `/${normalized}${suffix}` : null;\n}\n\nfunction formatEditorSceneRuntimePreviewProjectAssetUrl(path: string, suffix: string): string | null {\n const normalized = normalizeEditorSceneRuntimePreviewUrlPathParts(path);\n return normalized ? `/${normalized}${suffix}` : null;\n}\n\nfunction splitEditorSceneRuntimePreviewAssetUrlPathAndSuffix(value: string): [string, string] {\n const suffixIndex = value.search(/[?#]/);\n return suffixIndex === -1 ? [value, ''] : [value.slice(0, suffixIndex), value.slice(suffixIndex)];\n}\n\nfunction normalizeEditorSceneRuntimePreviewUrlPathParts(path: string): string | null {\n const stack: string[] = [];\n for (const part of path.split('/')) {\n if (!part || part === '.') continue;\n if (part === '..') {\n if (!stack.length) return null;\n stack.pop();\n continue;\n }\n stack.push(part);\n }\n return stack.length ? stack.join('/') : null;\n}\n\nfunction readOptionalString(value: unknown): string | undefined {\n return typeof value === 'string' && value.trim() ? value.trim() : undefined;\n}\n\nfunction readRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' && !Array.isArray(value) ? value as Record<string, unknown> : {};\n}\n"]}
@@ -1,6 +1,10 @@
1
1
  import type { EditorSceneAssetLibraryItem, EditorSceneDocument } from '../document';
2
+ import { type EditorProjectFileContent, type EditorProjectFileSnapshot, type EditorProjectMediaSource } from '../project-files/index';
2
3
  import type { SceneMainSourceClientOptions, SceneMainSourceDriverLoadResult, SceneMainSourceSaveOptions, SceneMainSourceSaveResult, SceneSourceFetchJson } from './types';
3
4
  export declare function loadSceneMainSource<TDocument extends EditorSceneDocument = EditorSceneDocument>(options?: SceneMainSourceClientOptions | SceneSourceFetchJson): Promise<SceneMainSourceDriverLoadResult<TDocument>>;
4
5
  export declare function saveSceneMainSource<TDocument extends EditorSceneDocument = EditorSceneDocument>(editorScene: TDocument, options?: SceneMainSourceSaveOptions): Promise<SceneMainSourceSaveResult<TDocument>>;
5
6
  export declare function loadEditorAssetLibrary(options?: SceneMainSourceClientOptions | SceneSourceFetchJson): Promise<EditorSceneAssetLibraryItem[]>;
7
+ export declare function loadEditorProjectFiles(options?: SceneMainSourceClientOptions | SceneSourceFetchJson): Promise<EditorProjectFileSnapshot>;
8
+ export declare function loadEditorProjectFile(path: string, options?: SceneMainSourceClientOptions | SceneSourceFetchJson): Promise<EditorProjectFileContent>;
9
+ export declare function resolveEditorProjectMediaSource(path: string, options?: Pick<SceneMainSourceClientOptions, 'endpointBase'>): EditorProjectMediaSource | null;
6
10
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/scene-source/client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,2BAA2B,EAC3B,mBAAmB,EACpB,MAAM,aAAa,CAAC;AA0BrB,OAAO,KAAK,EACV,4BAA4B,EAC5B,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,wBAAsB,mBAAmB,CACvC,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,EAE3D,OAAO,CAAC,EAAE,4BAA4B,GAAG,oBAAoB,GAC5D,OAAO,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC,CAuBrD;AAED,wBAAsB,mBAAmB,CACvC,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,EAE3D,WAAW,EAAE,SAAS,EACtB,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CA+B/C;AAuBD,wBAAsB,sBAAsB,CAC1C,OAAO,CAAC,EAAE,4BAA4B,GAAG,oBAAoB,GAC5D,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAIxC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/scene-source/client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,2BAA2B,EAC3B,mBAAmB,EACpB,MAAM,aAAa,CAAC;AA0BrB,OAAO,EAKL,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,4BAA4B,EAC5B,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,wBAAsB,mBAAmB,CACvC,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,EAE3D,OAAO,CAAC,EAAE,4BAA4B,GAAG,oBAAoB,GAC5D,OAAO,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC,CAuBrD;AAED,wBAAsB,mBAAmB,CACvC,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,EAE3D,WAAW,EAAE,SAAS,EACtB,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CA+B/C;AAuBD,wBAAsB,sBAAsB,CAC1C,OAAO,CAAC,EAAE,4BAA4B,GAAG,oBAAoB,GAC5D,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAIxC;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,CAAC,EAAE,4BAA4B,GAAG,oBAAoB,GAC5D,OAAO,CAAC,yBAAyB,CAAC,CAIpC;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,4BAA4B,GAAG,oBAAoB,GAC5D,OAAO,CAAC,wBAAwB,CAAC,CAKnC;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,IAAI,CAAC,4BAA4B,EAAE,cAAc,CAAC,GAC3D,wBAAwB,GAAG,IAAI,CAgBjC"}
@@ -6,6 +6,7 @@ import { createSceneMainSourceSaveCompanionConfigPayload, readSceneMainSourceSav
6
6
  import { readEditorAssetLibrary, readEditorScene, readRuntimeInputDrift, summarizeEditorSceneSource, } from './protocol.js';
7
7
  import { assertPlayableEditorSceneDocumentContract } from '../scene-compiler/validation.js';
8
8
  import { assertShadowMapExperimentConfig, } from '@fps-games/playable-rendering';
9
+ import { resolveEditorProjectFileExtension, resolveEditorProjectMediaSupport, readEditorProjectFileContent, readEditorProjectFileSnapshot, } from '../project-files/index.js';
9
10
  export async function loadSceneMainSource(options) {
10
11
  const client = resolveClientOptions(options);
11
12
  const json = await client.fetchJson(joinEndpoint(client.endpointBase, '/editor-scene'));
@@ -85,6 +86,45 @@ export async function loadEditorAssetLibrary(options) {
85
86
  const json = await client.fetchJson(joinEndpoint(client.endpointBase, '/editor-asset-library'));
86
87
  return readEditorAssetLibrary(json.assets);
87
88
  }
89
+ export async function loadEditorProjectFiles(options) {
90
+ const client = resolveClientOptions(options);
91
+ const json = await client.fetchJson(joinEndpoint(client.endpointBase, '/project-files'));
92
+ return readEditorProjectFileSnapshot(json);
93
+ }
94
+ export async function loadEditorProjectFile(path, options) {
95
+ const client = resolveClientOptions(options);
96
+ const endpoint = joinEndpoint(client.endpointBase, `/project-file?path=${encodeURIComponent(path)}`);
97
+ const json = await client.fetchJson(endpoint);
98
+ return readEditorProjectFileContent(json);
99
+ }
100
+ export function resolveEditorProjectMediaSource(path, options) {
101
+ const relativePath = normalizeEditorProjectClientPath(path);
102
+ if (!relativePath)
103
+ return null;
104
+ const support = resolveEditorProjectMediaSupport(relativePath);
105
+ if (!support)
106
+ return null;
107
+ const endpointBase = options?.endpointBase ?? PLAYABLE_AUTHORING_API_BASE;
108
+ const pathSegments = relativePath.split('/');
109
+ const name = pathSegments[pathSegments.length - 1] ?? relativePath;
110
+ return {
111
+ path: relativePath,
112
+ name,
113
+ extension: resolveEditorProjectFileExtension(name),
114
+ kind: support.kind,
115
+ mimeType: support.mimeType,
116
+ url: joinEndpoint(endpointBase, `/project-media?path=${encodeURIComponent(relativePath)}`),
117
+ };
118
+ }
119
+ function normalizeEditorProjectClientPath(value) {
120
+ const normalized = value.trim().replace(/\\/g, '/').replace(/^\/+/, '');
121
+ if (!normalized || /^[A-Za-z]:\//.test(normalized))
122
+ return null;
123
+ const segments = normalized.split('/');
124
+ return segments.some(segment => !segment || segment === '.' || segment === '..')
125
+ ? null
126
+ : segments.join('/');
127
+ }
88
128
  function resolveClientOptions(options) {
89
129
  if (typeof options === 'function') {
90
130
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/scene-source/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createEditorSceneAuthoringSourceDescriptor,\n ensureEditorSceneAuthoringSource,\n} from '../authoring';\nimport type {\n EditorSceneAssetLibraryItem,\n EditorSceneDocument,\n} from '../document';\nimport {\n fetchJson,\n joinEndpoint,\n PLAYABLE_AUTHORING_API_BASE,\n} from '../shared/http';\nimport { readString } from '../shared/json';\nimport {\n readCompiledRuntimeSceneArtifact,\n summarizeSaveResult,\n} from './artifacts';\nimport {\n createSceneMainSourceSaveCompanionConfigPayload,\n readSceneMainSourceSaveCompanionConfigs,\n} from './companion-configs';\nimport {\n readEditorAssetLibrary,\n readEditorScene,\n readRuntimeInputDrift,\n summarizeEditorSceneSource,\n} from './protocol';\nimport { assertPlayableEditorSceneDocumentContract } from '../scene-compiler/validation';\nimport {\n assertShadowMapExperimentConfig,\n type ShadowMapExperimentConfig,\n} from '@fps-games/playable-rendering';\nimport type {\n SceneMainSourceClientOptions,\n SceneMainSourceDriverLoadResult,\n SceneMainSourceSaveOptions,\n SceneMainSourceSaveResult,\n SceneSourceFetchJson,\n} from './types';\n\nexport async function loadSceneMainSource<\n TDocument extends EditorSceneDocument = EditorSceneDocument,\n>(\n options?: SceneMainSourceClientOptions | SceneSourceFetchJson,\n): Promise<SceneMainSourceDriverLoadResult<TDocument>> {\n const client = resolveClientOptions(options);\n const json = await client.fetchJson(joinEndpoint(client.endpointBase, '/editor-scene'));\n const editorScene = readEditorScene<TDocument>(json.editorScene);\n if (!editorScene) throw new Error('project authoring endpoint did not return editorScene');\n const document = ensureEditorSceneAuthoringSource(editorScene);\n const drift = readRuntimeInputDrift(json.drift);\n const companionConfigs = readSceneMainSourceSaveCompanionConfigs(json);\n const renderingConfig = companionConfigs.rendering ?? undefined;\n const shadowMapExperimentConfig = readSceneMainSourceShadowMapExperimentConfig(json);\n const assets = Object.prototype.hasOwnProperty.call(json, 'assets')\n ? readEditorAssetLibrary(json.assets)\n : undefined;\n return {\n source: createEditorSceneAuthoringSourceDescriptor(document, readString(json.editorScenePath)),\n document,\n ...(assets ? { assets } : {}),\n drift,\n companionConfigs,\n ...(renderingConfig ? { renderingConfig } : {}),\n ...(shadowMapExperimentConfig ? { shadowMapExperimentConfig } : {}),\n summary: summarizeEditorSceneSource(document, drift),\n };\n}\n\nexport async function saveSceneMainSource<\n TDocument extends EditorSceneDocument = EditorSceneDocument,\n>(\n editorScene: TDocument,\n options?: SceneMainSourceSaveOptions,\n): Promise<SceneMainSourceSaveResult<TDocument>> {\n const client = resolveClientOptions(options);\n assertPlayableEditorSceneDocumentContract(editorScene);\n const saved = await client.fetchJson(joinEndpoint(client.endpointBase, '/save-editor-scene'), {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n editorScene,\n mode: options?.mode ?? 'local-commit-save',\n ...createSceneMainSourceSaveCompanionConfigPayload(options),\n }),\n });\n const document = Object.prototype.hasOwnProperty.call(saved, 'editorScene')\n ? readRequiredEditorScene<TDocument>(saved.editorScene, '$.editorScene')\n : editorScene;\n const source = createEditorSceneAuthoringSourceDescriptor(document, readString(saved.editorScenePath));\n const compiledArtifact = readCompiledRuntimeSceneArtifact(saved, source);\n const companionConfigs = readSceneMainSourceSaveCompanionConfigs(saved);\n const renderingConfig = companionConfigs.rendering ?? undefined;\n const shadowMapExperimentConfig = readSceneMainSourceShadowMapExperimentConfig(saved);\n return {\n source,\n document,\n summary: summarizeSaveResult(saved),\n compiledArtifact,\n companionConfigs,\n expectedVersion: typeof saved.expectedVersion === 'number' ? saved.expectedVersion : undefined,\n renderingConfig,\n ...(shadowMapExperimentConfig ? { shadowMapExperimentConfig } : {}),\n sceneJsonText: typeof saved.sceneJsonText === 'string' ? saved.sceneJsonText : undefined,\n };\n}\n\nfunction readSceneMainSourceShadowMapExperimentConfig(\n value: Record<string, unknown>,\n): ShadowMapExperimentConfig | undefined {\n if (!Object.prototype.hasOwnProperty.call(value, 'shadowMapExperimentConfig')) return undefined;\n const config = value.shadowMapExperimentConfig;\n if (config == null) return undefined;\n assertShadowMapExperimentConfig(config);\n return structuredClone(config);\n}\n\nfunction readRequiredEditorScene<TDocument extends EditorSceneDocument>(\n value: unknown,\n path: string,\n): TDocument {\n const document = readEditorScene<TDocument>(value);\n if (document) return document;\n const error = new Error(`schema.invalidType: ${path}`);\n Object.assign(error, { code: 'schema.invalidType', path });\n throw error;\n}\n\nexport async function loadEditorAssetLibrary(\n options?: SceneMainSourceClientOptions | SceneSourceFetchJson,\n): Promise<EditorSceneAssetLibraryItem[]> {\n const client = resolveClientOptions(options);\n const json = await client.fetchJson(joinEndpoint(client.endpointBase, '/editor-asset-library'));\n return readEditorAssetLibrary(json.assets);\n}\n\nfunction resolveClientOptions(\n options?: SceneMainSourceClientOptions | SceneSourceFetchJson,\n): Required<SceneMainSourceClientOptions> {\n if (typeof options === 'function') {\n return {\n endpointBase: PLAYABLE_AUTHORING_API_BASE,\n fetchJson: options,\n };\n }\n return {\n endpointBase: options?.endpointBase ?? PLAYABLE_AUTHORING_API_BASE,\n fetchJson: options?.fetchJson ?? fetchJson,\n };\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/scene-source/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0CAA0C,EAC1C,gCAAgC,GACjC,MAAM,cAAc,CAAC;AAKtB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,gCAAgC,EAChC,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,+CAA+C,EAC/C,uCAAuC,GACxC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,yCAAyC,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EACL,+BAA+B,GAEhC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,iCAAiC,EACjC,gCAAgC,EAChC,4BAA4B,EAC5B,6BAA6B,GAI9B,MAAM,wBAAwB,CAAC;AAShC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAGvC,OAA6D;IAE7D,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;IACxF,MAAM,WAAW,GAAG,eAAe,CAAY,IAAI,CAAC,WAAW,CAAC,CAAC;IACjE,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3F,MAAM,QAAQ,GAAG,gCAAgC,CAAC,WAAW,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,uCAAuC,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,gBAAgB,CAAC,SAAS,IAAI,SAAS,CAAC;IAChE,MAAM,yBAAyB,GAAG,4CAA4C,CAAC,IAAI,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;QACjE,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC;IACd,OAAO;QACL,MAAM,EAAE,0CAA0C,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9F,QAAQ;QACR,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK;QACL,gBAAgB;QAChB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,0BAA0B,CAAC,QAAQ,EAAE,KAAK,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAGvC,WAAsB,EACtB,OAAoC;IAEpC,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,yCAAyC,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAE;QAC5F,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,WAAW;YACX,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,mBAAmB;YAC1C,GAAG,+CAA+C,CAAC,OAAO,CAAC;SAC5D,CAAC;KACH,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC;QACzE,CAAC,CAAC,uBAAuB,CAAY,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC;QACxE,CAAC,CAAC,WAAW,CAAC;IAChB,MAAM,MAAM,GAAG,0CAA0C,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IACvG,MAAM,gBAAgB,GAAG,gCAAgC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzE,MAAM,gBAAgB,GAAG,uCAAuC,CAAC,KAAK,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,gBAAgB,CAAC,SAAS,IAAI,SAAS,CAAC;IAChE,MAAM,yBAAyB,GAAG,4CAA4C,CAAC,KAAK,CAAC,CAAC;IACtF,OAAO;QACL,MAAM;QACN,QAAQ;QACR,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC;QACnC,gBAAgB;QAChB,gBAAgB;QAChB,eAAe,EAAE,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;QAC9F,eAAe;QACf,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,aAAa,EAAE,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;KACzF,CAAC;AACJ,CAAC;AAED,SAAS,4CAA4C,CACnD,KAA8B;IAE9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,2BAA2B,CAAC;QAAE,OAAO,SAAS,CAAC;IAChG,MAAM,MAAM,GAAG,KAAK,CAAC,yBAAyB,CAAC;IAC/C,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACrC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAc,EACd,IAAY;IAEZ,MAAM,QAAQ,GAAG,eAAe,CAAY,KAAK,CAAC,CAAC;IACnD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,KAAK,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAA6D;IAE7D,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAChG,OAAO,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAA6D;IAE7D,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACzF,OAAO,6BAA6B,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAY,EACZ,OAA6D;IAE7D,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,sBAAsB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrG,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9C,OAAO,4BAA4B,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,IAAY,EACZ,OAA4D;IAE5D,MAAM,YAAY,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,OAAO,GAAG,gCAAgC,CAAC,YAAY,CAAC,CAAC;IAC/D,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,2BAA2B,CAAC;IAC1E,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC;IACnE,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,IAAI;QACJ,SAAS,EAAE,iCAAiC,CAAC,IAAI,CAAC;QAClD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,EAAE,YAAY,CAAC,YAAY,EAAE,uBAAuB,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;KAC3F,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CAAC,KAAa;IACrD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC;QAC9E,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAA6D;IAE7D,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO;YACL,YAAY,EAAE,2BAA2B;YACzC,SAAS,EAAE,OAAO;SACnB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,2BAA2B;QAClE,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,SAAS;KAC3C,CAAC;AACJ,CAAC","sourcesContent":["import {\n createEditorSceneAuthoringSourceDescriptor,\n ensureEditorSceneAuthoringSource,\n} from '../authoring';\nimport type {\n EditorSceneAssetLibraryItem,\n EditorSceneDocument,\n} from '../document';\nimport {\n fetchJson,\n joinEndpoint,\n PLAYABLE_AUTHORING_API_BASE,\n} from '../shared/http';\nimport { readString } from '../shared/json';\nimport {\n readCompiledRuntimeSceneArtifact,\n summarizeSaveResult,\n} from './artifacts';\nimport {\n createSceneMainSourceSaveCompanionConfigPayload,\n readSceneMainSourceSaveCompanionConfigs,\n} from './companion-configs';\nimport {\n readEditorAssetLibrary,\n readEditorScene,\n readRuntimeInputDrift,\n summarizeEditorSceneSource,\n} from './protocol';\nimport { assertPlayableEditorSceneDocumentContract } from '../scene-compiler/validation';\nimport {\n assertShadowMapExperimentConfig,\n type ShadowMapExperimentConfig,\n} from '@fps-games/playable-rendering';\nimport {\n resolveEditorProjectFileExtension,\n resolveEditorProjectMediaSupport,\n readEditorProjectFileContent,\n readEditorProjectFileSnapshot,\n type EditorProjectFileContent,\n type EditorProjectFileSnapshot,\n type EditorProjectMediaSource,\n} from '../project-files/index';\nimport type {\n SceneMainSourceClientOptions,\n SceneMainSourceDriverLoadResult,\n SceneMainSourceSaveOptions,\n SceneMainSourceSaveResult,\n SceneSourceFetchJson,\n} from './types';\n\nexport async function loadSceneMainSource<\n TDocument extends EditorSceneDocument = EditorSceneDocument,\n>(\n options?: SceneMainSourceClientOptions | SceneSourceFetchJson,\n): Promise<SceneMainSourceDriverLoadResult<TDocument>> {\n const client = resolveClientOptions(options);\n const json = await client.fetchJson(joinEndpoint(client.endpointBase, '/editor-scene'));\n const editorScene = readEditorScene<TDocument>(json.editorScene);\n if (!editorScene) throw new Error('project authoring endpoint did not return editorScene');\n const document = ensureEditorSceneAuthoringSource(editorScene);\n const drift = readRuntimeInputDrift(json.drift);\n const companionConfigs = readSceneMainSourceSaveCompanionConfigs(json);\n const renderingConfig = companionConfigs.rendering ?? undefined;\n const shadowMapExperimentConfig = readSceneMainSourceShadowMapExperimentConfig(json);\n const assets = Object.prototype.hasOwnProperty.call(json, 'assets')\n ? readEditorAssetLibrary(json.assets)\n : undefined;\n return {\n source: createEditorSceneAuthoringSourceDescriptor(document, readString(json.editorScenePath)),\n document,\n ...(assets ? { assets } : {}),\n drift,\n companionConfigs,\n ...(renderingConfig ? { renderingConfig } : {}),\n ...(shadowMapExperimentConfig ? { shadowMapExperimentConfig } : {}),\n summary: summarizeEditorSceneSource(document, drift),\n };\n}\n\nexport async function saveSceneMainSource<\n TDocument extends EditorSceneDocument = EditorSceneDocument,\n>(\n editorScene: TDocument,\n options?: SceneMainSourceSaveOptions,\n): Promise<SceneMainSourceSaveResult<TDocument>> {\n const client = resolveClientOptions(options);\n assertPlayableEditorSceneDocumentContract(editorScene);\n const saved = await client.fetchJson(joinEndpoint(client.endpointBase, '/save-editor-scene'), {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n editorScene,\n mode: options?.mode ?? 'local-commit-save',\n ...createSceneMainSourceSaveCompanionConfigPayload(options),\n }),\n });\n const document = Object.prototype.hasOwnProperty.call(saved, 'editorScene')\n ? readRequiredEditorScene<TDocument>(saved.editorScene, '$.editorScene')\n : editorScene;\n const source = createEditorSceneAuthoringSourceDescriptor(document, readString(saved.editorScenePath));\n const compiledArtifact = readCompiledRuntimeSceneArtifact(saved, source);\n const companionConfigs = readSceneMainSourceSaveCompanionConfigs(saved);\n const renderingConfig = companionConfigs.rendering ?? undefined;\n const shadowMapExperimentConfig = readSceneMainSourceShadowMapExperimentConfig(saved);\n return {\n source,\n document,\n summary: summarizeSaveResult(saved),\n compiledArtifact,\n companionConfigs,\n expectedVersion: typeof saved.expectedVersion === 'number' ? saved.expectedVersion : undefined,\n renderingConfig,\n ...(shadowMapExperimentConfig ? { shadowMapExperimentConfig } : {}),\n sceneJsonText: typeof saved.sceneJsonText === 'string' ? saved.sceneJsonText : undefined,\n };\n}\n\nfunction readSceneMainSourceShadowMapExperimentConfig(\n value: Record<string, unknown>,\n): ShadowMapExperimentConfig | undefined {\n if (!Object.prototype.hasOwnProperty.call(value, 'shadowMapExperimentConfig')) return undefined;\n const config = value.shadowMapExperimentConfig;\n if (config == null) return undefined;\n assertShadowMapExperimentConfig(config);\n return structuredClone(config);\n}\n\nfunction readRequiredEditorScene<TDocument extends EditorSceneDocument>(\n value: unknown,\n path: string,\n): TDocument {\n const document = readEditorScene<TDocument>(value);\n if (document) return document;\n const error = new Error(`schema.invalidType: ${path}`);\n Object.assign(error, { code: 'schema.invalidType', path });\n throw error;\n}\n\nexport async function loadEditorAssetLibrary(\n options?: SceneMainSourceClientOptions | SceneSourceFetchJson,\n): Promise<EditorSceneAssetLibraryItem[]> {\n const client = resolveClientOptions(options);\n const json = await client.fetchJson(joinEndpoint(client.endpointBase, '/editor-asset-library'));\n return readEditorAssetLibrary(json.assets);\n}\n\nexport async function loadEditorProjectFiles(\n options?: SceneMainSourceClientOptions | SceneSourceFetchJson,\n): Promise<EditorProjectFileSnapshot> {\n const client = resolveClientOptions(options);\n const json = await client.fetchJson(joinEndpoint(client.endpointBase, '/project-files'));\n return readEditorProjectFileSnapshot(json);\n}\n\nexport async function loadEditorProjectFile(\n path: string,\n options?: SceneMainSourceClientOptions | SceneSourceFetchJson,\n): Promise<EditorProjectFileContent> {\n const client = resolveClientOptions(options);\n const endpoint = joinEndpoint(client.endpointBase, `/project-file?path=${encodeURIComponent(path)}`);\n const json = await client.fetchJson(endpoint);\n return readEditorProjectFileContent(json);\n}\n\nexport function resolveEditorProjectMediaSource(\n path: string,\n options?: Pick<SceneMainSourceClientOptions, 'endpointBase'>,\n): EditorProjectMediaSource | null {\n const relativePath = normalizeEditorProjectClientPath(path);\n if (!relativePath) return null;\n const support = resolveEditorProjectMediaSupport(relativePath);\n if (!support) return null;\n const endpointBase = options?.endpointBase ?? PLAYABLE_AUTHORING_API_BASE;\n const pathSegments = relativePath.split('/');\n const name = pathSegments[pathSegments.length - 1] ?? relativePath;\n return {\n path: relativePath,\n name,\n extension: resolveEditorProjectFileExtension(name),\n kind: support.kind,\n mimeType: support.mimeType,\n url: joinEndpoint(endpointBase, `/project-media?path=${encodeURIComponent(relativePath)}`),\n };\n}\n\nfunction normalizeEditorProjectClientPath(value: string): string | null {\n const normalized = value.trim().replace(/\\\\/g, '/').replace(/^\\/+/, '');\n if (!normalized || /^[A-Za-z]:\\//.test(normalized)) return null;\n const segments = normalized.split('/');\n return segments.some(segment => !segment || segment === '.' || segment === '..')\n ? null\n : segments.join('/');\n}\n\nfunction resolveClientOptions(\n options?: SceneMainSourceClientOptions | SceneSourceFetchJson,\n): Required<SceneMainSourceClientOptions> {\n if (typeof options === 'function') {\n return {\n endpointBase: PLAYABLE_AUTHORING_API_BASE,\n fetchJson: options,\n };\n }\n return {\n endpointBase: options?.endpointBase ?? PLAYABLE_AUTHORING_API_BASE,\n fetchJson: options?.fetchJson ?? fetchJson,\n };\n}\n"]}
@@ -162,6 +162,7 @@ export function inspectPlayableEditorUpgradeReadiness(input = {}) {
162
162
  function inspectMigrationReadinessFile(file, options) {
163
163
  const diagnostics = [];
164
164
  const content = file.content;
165
+ const environmentResourceHardCutSeverity = options.environmentResourceHardCutSeverity ?? 'error';
165
166
  if (/\bassertRuntimeSceneConfig(?:ModulePath|ExportName)\b/.test(content)) {
166
167
  diagnostics.push({
167
168
  severity: 'warning',
@@ -241,8 +242,60 @@ function inspectMigrationReadinessFile(file, options) {
241
242
  message: 'Projection import logic is present without the SDK runtime preview import plan helper; verify asset URL and projection diagnostics during migration.',
242
243
  });
243
244
  }
245
+ diagnostics.push(...collectEnvironmentResourceHardCutDiagnostics(file.filePath, content, environmentResourceHardCutSeverity));
244
246
  return diagnostics;
245
247
  }
248
+ /**
249
+ * These checks intentionally inspect only project-side migration snapshots. They
250
+ * flag retired public integration shapes, not generic material texture fields or
251
+ * plugin registration order; those are validated by the product contract tests.
252
+ */
253
+ function collectEnvironmentResourceHardCutDiagnostics(filePath, content, severity) {
254
+ const diagnostics = [];
255
+ const add = (code, message) => diagnostics.push({
256
+ severity,
257
+ code,
258
+ path: filePath,
259
+ message,
260
+ });
261
+ const hasBabylonRendererSurface = /\b(?:FpsBabylonRendererContext|FpsBabylonRendererPluginConfig|BabylonEnvironmentTexture(?:Profile|Factory)|createFpsBabylon(?:GameWorldPluginLifecycle|RendererHost))\b/.test(content);
262
+ if (/\bresolveAssetUrl\b/.test(content) && hasBabylonRendererSurface) {
263
+ add('hard-cut.environment-resource.resolve-asset-url-removed', 'Removed Babylon resolveAssetUrl integration detected; pass the generated asset catalog to the Host and resolve a PlayableResolvedAssetResource through the Assets Plugin service.');
264
+ }
265
+ if (/\bFpsBabylonRendererPluginConfig\b/.test(content) && /\benvironmentTexture\s*:/.test(content)) {
266
+ add('hard-cut.environment-resource.renderer-environment-texture-removed', 'Removed FpsBabylonRendererPluginConfig.environmentTexture fallback detected; authored rendering must resolve through the catalog-backed resource service.');
267
+ }
268
+ if (/\bBabylonEnvironmentTextureProfile\s*\{[^}]*\btextureUrl\b/.test(content)) {
269
+ add('hard-cut.environment-resource.profile-texture-url-removed', 'Removed BabylonEnvironmentTextureProfile.textureUrl shape detected; use profile.texture: PlayableResolvedAssetResource | null.');
270
+ }
271
+ if (/\bBabylonEnvironmentTextureFactory\b/.test(content) && /\b(?:textureUrl|url)\s*:\s*(?:string|String)\b/.test(content)) {
272
+ add('hard-cut.environment-resource.url-factory-removed', 'Removed URL-only BabylonEnvironmentTextureFactory contract detected; the factory must receive a PlayableResolvedAssetResource so it can preserve the asset format.');
273
+ }
274
+ if (/\bresolvePlayableBabylonRenderingEnvironmentTextureUrl\b/.test(content)) {
275
+ add('hard-cut.environment-resource.resolve-url-helper-removed', 'Removed resolvePlayableBabylonRenderingEnvironmentTextureUrl helper detected; use resolvePlayableBabylonRenderingEnvironmentTextureResource.');
276
+ }
277
+ if (isGeneratedAssetCatalogFile(filePath, content) && !hasGeneratedAssetCatalogFormat(content)) {
278
+ add('hard-cut.environment-resource.generated-catalog-format-missing', 'Generated asset catalog is missing the required format field; regenerate it with the current playable SDK instead of editing catalog output by hand.');
279
+ }
280
+ if (hasBabylonHostFactoryCall(content) && !hasCatalogSourceReference(content)) {
281
+ add('hard-cut.environment-resource.host-catalog-source-missing', 'Babylon Runtime/Renderer Host construction has no generated asset catalog input; pass the catalog source so plugin-assets can provide the shared resource resolver.');
282
+ }
283
+ return diagnostics;
284
+ }
285
+ function isGeneratedAssetCatalogFile(filePath, content) {
286
+ return /(?:^|\/)asset-catalog(?:\.generated)?\.[cm]?[jt]s$/i.test(normalizeFilePath(filePath))
287
+ || (/\binterface\s+GeneratedAssetCatalogEntry\b/.test(content)
288
+ && /\b(?:export\s+)?const\s+GENERATED_ASSET_CATALOG\b/.test(content));
289
+ }
290
+ function hasGeneratedAssetCatalogFormat(content) {
291
+ return /\bformat\s*:\s*(?:string|["'`][^"'`]+["'`])/.test(content);
292
+ }
293
+ function hasBabylonHostFactoryCall(content) {
294
+ return /\b(?:createFpsRuntime|createFpsBabylonGameWorldPluginLifecycle|createFpsBabylonRendererHost)\s*\(/.test(content);
295
+ }
296
+ function hasCatalogSourceReference(content) {
297
+ return /\b(?:assetCatalog(?:Source)?|generatedAssetCatalog|GENERATED_ASSET_CATALOG)\b/.test(content);
298
+ }
246
299
  function collectDeprecatedAuthoredFields(filePath, content) {
247
300
  if (/\.json$/i.test(filePath)) {
248
301
  try {