@xrift/world-components 0.46.0 → 0.49.0

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 (313) hide show
  1. package/dist/components/BillboardY/hooks.d.ts +1 -1
  2. package/dist/components/BillboardY/hooks.d.ts.map +1 -1
  3. package/dist/components/BillboardY/index.d.ts +1 -1
  4. package/dist/components/BillboardY/index.d.ts.map +1 -1
  5. package/dist/components/DevEnvironment/components/ControlsHelp.d.ts +1 -1
  6. package/dist/components/DevEnvironment/components/ControlsHelp.d.ts.map +1 -1
  7. package/dist/components/DevEnvironment/components/Crosshair.d.ts +1 -1
  8. package/dist/components/DevEnvironment/components/Crosshair.d.ts.map +1 -1
  9. package/dist/components/DevEnvironment/components/GrabSystem/index.d.ts +1 -1
  10. package/dist/components/DevEnvironment/components/GrabSystem/index.d.ts.map +1 -1
  11. package/dist/components/DevEnvironment/components/PhysicsPlayer.d.ts +1 -1
  12. package/dist/components/DevEnvironment/components/PhysicsPlayer.d.ts.map +1 -1
  13. package/dist/components/DevEnvironment/components/PointerLockStatus.d.ts +1 -1
  14. package/dist/components/DevEnvironment/components/PointerLockStatus.d.ts.map +1 -1
  15. package/dist/components/DevEnvironment/index.d.ts +1 -1
  16. package/dist/components/DevEnvironment/index.d.ts.map +1 -1
  17. package/dist/components/EntryLogBoard/components/AvatarIcon.d.ts +1 -1
  18. package/dist/components/EntryLogBoard/components/AvatarIcon.d.ts.map +1 -1
  19. package/dist/components/EntryLogBoard/components/LogRow.d.ts +1 -1
  20. package/dist/components/EntryLogBoard/components/LogRow.d.ts.map +1 -1
  21. package/dist/components/EntryLogBoard/index.d.ts +1 -1
  22. package/dist/components/EntryLogBoard/index.d.ts.map +1 -1
  23. package/dist/components/LiveVideoPlayer/components/ControlPanel/index.d.ts +1 -1
  24. package/dist/components/LiveVideoPlayer/components/ControlPanel/index.d.ts.map +1 -1
  25. package/dist/components/LiveVideoPlayer/components/LiveVideoTexture.d.ts +1 -1
  26. package/dist/components/LiveVideoPlayer/components/LiveVideoTexture.d.ts.map +1 -1
  27. package/dist/components/LiveVideoPlayer/index.d.ts +1 -1
  28. package/dist/components/LiveVideoPlayer/index.d.ts.map +1 -1
  29. package/dist/components/Mirror/index.d.ts +1 -1
  30. package/dist/components/Mirror/index.d.ts.map +1 -1
  31. package/dist/components/Portal/components/PortalGlow/index.d.ts +1 -1
  32. package/dist/components/Portal/components/PortalGlow/index.d.ts.map +1 -1
  33. package/dist/components/Portal/components/PortalParticles/index.d.ts +1 -1
  34. package/dist/components/Portal/components/PortalParticles/index.d.ts.map +1 -1
  35. package/dist/components/Portal/components/PortalPedestal/index.d.ts +1 -1
  36. package/dist/components/Portal/components/PortalPedestal/index.d.ts.map +1 -1
  37. package/dist/components/Portal/components/PortalThumbnail/index.d.ts +1 -1
  38. package/dist/components/Portal/components/PortalThumbnail/index.d.ts.map +1 -1
  39. package/dist/components/Portal/components/PortalVortex/index.d.ts +1 -1
  40. package/dist/components/Portal/components/PortalVortex/index.d.ts.map +1 -1
  41. package/dist/components/Portal/index.d.ts +1 -1
  42. package/dist/components/Portal/index.d.ts.map +1 -1
  43. package/dist/components/ScreenShareDisplay/index.d.ts +1 -1
  44. package/dist/components/ScreenShareDisplay/index.d.ts.map +1 -1
  45. package/dist/components/Skybox/index.d.ts +1 -1
  46. package/dist/components/Skybox/index.d.ts.map +1 -1
  47. package/dist/components/TagBoard/components/TagChip.d.ts +1 -1
  48. package/dist/components/TagBoard/components/TagChip.d.ts.map +1 -1
  49. package/dist/components/TagBoard/components/TagDisplay/index.d.ts +1 -1
  50. package/dist/components/TagBoard/components/TagDisplay/index.d.ts.map +1 -1
  51. package/dist/components/TagBoard/components/TagSelector/components/ActionButton.d.ts +1 -1
  52. package/dist/components/TagBoard/components/TagSelector/components/ActionButton.d.ts.map +1 -1
  53. package/dist/components/TagBoard/components/TagSelector/components/TagButton.d.ts +1 -1
  54. package/dist/components/TagBoard/components/TagSelector/components/TagButton.d.ts.map +1 -1
  55. package/dist/components/TagBoard/components/TagSelector/index.d.ts +1 -1
  56. package/dist/components/TagBoard/components/TagSelector/index.d.ts.map +1 -1
  57. package/dist/components/TagBoard/index.d.ts +1 -1
  58. package/dist/components/TagBoard/index.d.ts.map +1 -1
  59. package/dist/components/Video180Sphere/EyeView.d.ts +1 -1
  60. package/dist/components/Video180Sphere/EyeView.d.ts.map +1 -1
  61. package/dist/components/Video180Sphere/index.d.ts +1 -1
  62. package/dist/components/Video180Sphere/index.d.ts.map +1 -1
  63. package/dist/components/VideoPlayer/components/ControlPanel.d.ts +1 -1
  64. package/dist/components/VideoPlayer/components/ControlPanel.d.ts.map +1 -1
  65. package/dist/components/VideoPlayer/index.d.ts +1 -1
  66. package/dist/components/VideoPlayer/index.d.ts.map +1 -1
  67. package/dist/components/VideoScreen/constants.d.ts +27 -0
  68. package/dist/components/VideoScreen/constants.d.ts.map +1 -0
  69. package/dist/components/VideoScreen/constants.js +27 -0
  70. package/dist/components/VideoScreen/constants.js.map +1 -0
  71. package/dist/components/VideoScreen/hooks.d.ts +19 -0
  72. package/dist/components/VideoScreen/hooks.d.ts.map +1 -0
  73. package/dist/components/VideoScreen/hooks.js +69 -0
  74. package/dist/components/VideoScreen/hooks.js.map +1 -0
  75. package/dist/components/VideoScreen/index.d.ts +1 -1
  76. package/dist/components/VideoScreen/index.d.ts.map +1 -1
  77. package/dist/components/VideoScreen/index.js +22 -17
  78. package/dist/components/VideoScreen/index.js.map +1 -1
  79. package/dist/components/VideoScreen/types.d.ts +14 -4
  80. package/dist/components/VideoScreen/types.d.ts.map +1 -1
  81. package/dist/components/VideoScreen/utils.d.ts +73 -0
  82. package/dist/components/VideoScreen/utils.d.ts.map +1 -0
  83. package/dist/components/VideoScreen/utils.js +74 -0
  84. package/dist/components/VideoScreen/utils.js.map +1 -0
  85. package/dist/components/commons/IconButton/index.d.ts +1 -1
  86. package/dist/components/commons/IconButton/index.d.ts.map +1 -1
  87. package/dist/components/commons/PlaceholderScreen/index.d.ts +1 -1
  88. package/dist/components/commons/PlaceholderScreen/index.d.ts.map +1 -1
  89. package/dist/components/commons/VideoMesh/index.d.ts +1 -1
  90. package/dist/components/commons/VideoMesh/index.d.ts.map +1 -1
  91. package/dist/components/commons/VolumeControl/index.d.ts +1 -1
  92. package/dist/components/commons/VolumeControl/index.d.ts.map +1 -1
  93. package/dist/contexts/AudioVolumeContext.d.ts +2 -2
  94. package/dist/contexts/AudioVolumeContext.d.ts.map +1 -1
  95. package/dist/contexts/ConfirmContext.d.ts +1 -1
  96. package/dist/contexts/ConfirmContext.d.ts.map +1 -1
  97. package/dist/contexts/FileInputContext.d.ts +1 -1
  98. package/dist/contexts/FileInputContext.d.ts.map +1 -1
  99. package/dist/contexts/GrabbableContext.d.ts +1 -1
  100. package/dist/contexts/GrabbableContext.d.ts.map +1 -1
  101. package/dist/contexts/InstanceContext.d.ts +1 -1
  102. package/dist/contexts/InstanceContext.d.ts.map +1 -1
  103. package/dist/contexts/InstanceEventContext.d.ts +1 -1
  104. package/dist/contexts/InstanceEventContext.d.ts.map +1 -1
  105. package/dist/contexts/InstanceStateContext.d.ts +1 -1
  106. package/dist/contexts/InstanceStateContext.d.ts.map +1 -1
  107. package/dist/contexts/ItemContext.d.ts +23 -3
  108. package/dist/contexts/ItemContext.d.ts.map +1 -1
  109. package/dist/contexts/ItemContext.js +7 -3
  110. package/dist/contexts/ItemContext.js.map +1 -1
  111. package/dist/contexts/PlacementStateContext.d.ts +1 -1
  112. package/dist/contexts/PlacementStateContext.d.ts.map +1 -1
  113. package/dist/contexts/ScreenShareContext.d.ts +1 -1
  114. package/dist/contexts/ScreenShareContext.d.ts.map +1 -1
  115. package/dist/contexts/ServerClockContext.d.ts +108 -0
  116. package/dist/contexts/ServerClockContext.d.ts.map +1 -0
  117. package/dist/contexts/ServerClockContext.js +48 -0
  118. package/dist/contexts/ServerClockContext.js.map +1 -0
  119. package/dist/contexts/SharedFileContext.d.ts +1 -1
  120. package/dist/contexts/SharedFileContext.d.ts.map +1 -1
  121. package/dist/contexts/SpawnPointContext.d.ts +1 -1
  122. package/dist/contexts/SpawnPointContext.d.ts.map +1 -1
  123. package/dist/contexts/TeleportContext.d.ts +1 -1
  124. package/dist/contexts/TeleportContext.d.ts.map +1 -1
  125. package/dist/contexts/TextInputContext.d.ts +1 -1
  126. package/dist/contexts/TextInputContext.d.ts.map +1 -1
  127. package/dist/contexts/UsersContext.d.ts +1 -1
  128. package/dist/contexts/UsersContext.d.ts.map +1 -1
  129. package/dist/contexts/WorldContext.d.ts +1 -1
  130. package/dist/contexts/WorldContext.d.ts.map +1 -1
  131. package/dist/contexts/WorldStorageContext.d.ts +1 -1
  132. package/dist/contexts/WorldStorageContext.d.ts.map +1 -1
  133. package/dist/contexts/XRiftContext.d.ts +7 -1
  134. package/dist/contexts/XRiftContext.d.ts.map +1 -1
  135. package/dist/contexts/XRiftContext.js +5 -1
  136. package/dist/contexts/XRiftContext.js.map +1 -1
  137. package/dist/hooks/useServerClock.d.ts +60 -0
  138. package/dist/hooks/useServerClock.d.ts.map +1 -0
  139. package/dist/hooks/useServerClock.js +58 -0
  140. package/dist/hooks/useServerClock.js.map +1 -0
  141. package/dist/index.d.ts +5 -1
  142. package/dist/index.d.ts.map +1 -1
  143. package/dist/index.js +4 -0
  144. package/dist/index.js.map +1 -1
  145. package/package.json +7 -5
  146. package/dist/components/BillboardY/__tests__/utils.test.d.ts +0 -2
  147. package/dist/components/BillboardY/__tests__/utils.test.d.ts.map +0 -1
  148. package/dist/components/BillboardY/__tests__/utils.test.js +0 -45
  149. package/dist/components/BillboardY/__tests__/utils.test.js.map +0 -1
  150. package/dist/components/DevEnvironment/__tests__/utils.test.d.ts +0 -2
  151. package/dist/components/DevEnvironment/__tests__/utils.test.d.ts.map +0 -1
  152. package/dist/components/DevEnvironment/__tests__/utils.test.js +0 -24
  153. package/dist/components/DevEnvironment/__tests__/utils.test.js.map +0 -1
  154. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/store.test.d.ts +0 -2
  155. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/store.test.d.ts.map +0 -1
  156. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/store.test.js +0 -114
  157. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/store.test.js.map +0 -1
  158. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/utils.test.d.ts +0 -2
  159. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/utils.test.d.ts.map +0 -1
  160. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/utils.test.js +0 -103
  161. package/dist/components/DevEnvironment/components/GrabSystem/__tests__/utils.test.js.map +0 -1
  162. package/dist/components/EntryLogBoard/__tests__/utils.test.d.ts +0 -2
  163. package/dist/components/EntryLogBoard/__tests__/utils.test.d.ts.map +0 -1
  164. package/dist/components/EntryLogBoard/__tests__/utils.test.js +0 -231
  165. package/dist/components/EntryLogBoard/__tests__/utils.test.js.map +0 -1
  166. package/dist/components/Grabbable/__tests__/utils.test.d.ts +0 -2
  167. package/dist/components/Grabbable/__tests__/utils.test.d.ts.map +0 -1
  168. package/dist/components/Grabbable/__tests__/utils.test.js +0 -59
  169. package/dist/components/Grabbable/__tests__/utils.test.js.map +0 -1
  170. package/dist/components/LiveVideoPlayer/components/ControlPanel/LiveIndicator.d.ts +0 -8
  171. package/dist/components/LiveVideoPlayer/components/ControlPanel/LiveIndicator.d.ts.map +0 -1
  172. package/dist/components/LiveVideoPlayer/components/ControlPanel/LiveIndicator.js +0 -11
  173. package/dist/components/LiveVideoPlayer/components/ControlPanel/LiveIndicator.js.map +0 -1
  174. package/dist/components/LiveVideoPlayer/components/index.d.ts +0 -3
  175. package/dist/components/LiveVideoPlayer/components/index.d.ts.map +0 -1
  176. package/dist/components/LiveVideoPlayer/components/index.js +0 -3
  177. package/dist/components/LiveVideoPlayer/components/index.js.map +0 -1
  178. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/__tests__/utils.test.d.ts +0 -2
  179. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/__tests__/utils.test.d.ts.map +0 -1
  180. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/__tests__/utils.test.js +0 -196
  181. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/__tests__/utils.test.js.map +0 -1
  182. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/HlsJsPlayer.test.d.ts +0 -2
  183. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/HlsJsPlayer.test.d.ts.map +0 -1
  184. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/HlsJsPlayer.test.js +0 -146
  185. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/HlsJsPlayer.test.js.map +0 -1
  186. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/NativeHlsPlayer.test.d.ts +0 -2
  187. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/NativeHlsPlayer.test.d.ts.map +0 -1
  188. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/NativeHlsPlayer.test.js +0 -94
  189. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/NativeHlsPlayer.test.js.map +0 -1
  190. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/RecoveryTracker.test.d.ts +0 -2
  191. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/RecoveryTracker.test.d.ts.map +0 -1
  192. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/RecoveryTracker.test.js +0 -74
  193. package/dist/components/LiveVideoPlayer/hooks/useHlsVideo/classes/__tests__/RecoveryTracker.test.js.map +0 -1
  194. package/dist/components/LiveVideoPlayer/hooks/useLiveVideoPlayer/index.d.ts +0 -25
  195. package/dist/components/LiveVideoPlayer/hooks/useLiveVideoPlayer/index.d.ts.map +0 -1
  196. package/dist/components/LiveVideoPlayer/hooks/useLiveVideoPlayer/index.js +0 -97
  197. package/dist/components/LiveVideoPlayer/hooks/useLiveVideoPlayer/index.js.map +0 -1
  198. package/dist/components/Mirror/__tests__/utils.test.d.ts +0 -2
  199. package/dist/components/Mirror/__tests__/utils.test.d.ts.map +0 -1
  200. package/dist/components/Mirror/__tests__/utils.test.js +0 -42
  201. package/dist/components/Mirror/__tests__/utils.test.js.map +0 -1
  202. package/dist/components/MsdfText/index.d.ts +0 -24
  203. package/dist/components/MsdfText/index.d.ts.map +0 -1
  204. package/dist/components/MsdfText/index.js +0 -24
  205. package/dist/components/MsdfText/index.js.map +0 -1
  206. package/dist/components/Portal/__tests__/utils.test.d.ts +0 -2
  207. package/dist/components/Portal/__tests__/utils.test.d.ts.map +0 -1
  208. package/dist/components/Portal/__tests__/utils.test.js +0 -56
  209. package/dist/components/Portal/__tests__/utils.test.js.map +0 -1
  210. package/dist/components/ScreenShareDisplay/__tests__/utils.test.d.ts +0 -2
  211. package/dist/components/ScreenShareDisplay/__tests__/utils.test.d.ts.map +0 -1
  212. package/dist/components/ScreenShareDisplay/__tests__/utils.test.js +0 -47
  213. package/dist/components/ScreenShareDisplay/__tests__/utils.test.js.map +0 -1
  214. package/dist/components/TroikaText/index.d.ts +0 -4
  215. package/dist/components/TroikaText/index.d.ts.map +0 -1
  216. package/dist/components/TroikaText/index.js +0 -50
  217. package/dist/components/TroikaText/index.js.map +0 -1
  218. package/dist/components/TroikaText/types.d.ts +0 -19
  219. package/dist/components/TroikaText/types.d.ts.map +0 -1
  220. package/dist/components/TroikaText/types.js +0 -2
  221. package/dist/components/TroikaText/types.js.map +0 -1
  222. package/dist/components/VideoPlayer/ControlPanel.d.ts +0 -3
  223. package/dist/components/VideoPlayer/ControlPanel.d.ts.map +0 -1
  224. package/dist/components/VideoPlayer/ControlPanel.js +0 -34
  225. package/dist/components/VideoPlayer/ControlPanel.js.map +0 -1
  226. package/dist/components/VideoPlayer/ProgressBar.d.ts +0 -3
  227. package/dist/components/VideoPlayer/ProgressBar.d.ts.map +0 -1
  228. package/dist/components/VideoPlayer/ProgressBar.js +0 -21
  229. package/dist/components/VideoPlayer/ProgressBar.js.map +0 -1
  230. package/dist/components/VideoPlayer/__tests__/utils.test.d.ts +0 -2
  231. package/dist/components/VideoPlayer/__tests__/utils.test.d.ts.map +0 -1
  232. package/dist/components/VideoPlayer/__tests__/utils.test.js +0 -23
  233. package/dist/components/VideoPlayer/__tests__/utils.test.js.map +0 -1
  234. package/dist/components/VideoPlayer/components/ProgressBar.d.ts +0 -12
  235. package/dist/components/VideoPlayer/components/ProgressBar.d.ts.map +0 -1
  236. package/dist/components/VideoPlayer/components/ProgressBar.js +0 -21
  237. package/dist/components/VideoPlayer/components/ProgressBar.js.map +0 -1
  238. package/dist/components/VideoPlayer/components/index.d.ts +0 -3
  239. package/dist/components/VideoPlayer/components/index.d.ts.map +0 -1
  240. package/dist/components/VideoPlayer/components/index.js +0 -3
  241. package/dist/components/VideoPlayer/components/index.js.map +0 -1
  242. package/dist/components/VideoPlayer/types.d.ts +0 -44
  243. package/dist/components/VideoPlayer/types.d.ts.map +0 -1
  244. package/dist/components/VideoPlayer/types.js +0 -2
  245. package/dist/components/VideoPlayer/types.js.map +0 -1
  246. package/dist/components/VideoPlayer/utils.test.d.ts +0 -2
  247. package/dist/components/VideoPlayer/utils.test.d.ts.map +0 -1
  248. package/dist/components/VideoPlayer/utils.test.js +0 -23
  249. package/dist/components/VideoPlayer/utils.test.js.map +0 -1
  250. package/dist/components/commons/utils.test.d.ts +0 -2
  251. package/dist/components/commons/utils.test.d.ts.map +0 -1
  252. package/dist/components/commons/utils.test.js +0 -79
  253. package/dist/components/commons/utils.test.js.map +0 -1
  254. package/dist/contexts/FontContext.d.ts +0 -17
  255. package/dist/contexts/FontContext.d.ts.map +0 -1
  256. package/dist/contexts/FontContext.js +0 -25
  257. package/dist/contexts/FontContext.js.map +0 -1
  258. package/dist/contexts/InstanceInfoContext.d.ts +0 -39
  259. package/dist/contexts/InstanceInfoContext.d.ts.map +0 -1
  260. package/dist/contexts/InstanceInfoContext.js +0 -42
  261. package/dist/contexts/InstanceInfoContext.js.map +0 -1
  262. package/dist/contexts/PortalContext.d.ts +0 -39
  263. package/dist/contexts/PortalContext.d.ts.map +0 -1
  264. package/dist/contexts/PortalContext.js +0 -42
  265. package/dist/contexts/PortalContext.js.map +0 -1
  266. package/dist/contexts/WorldEventContext.d.ts +0 -32
  267. package/dist/contexts/WorldEventContext.d.ts.map +0 -1
  268. package/dist/contexts/WorldEventContext.js +0 -54
  269. package/dist/contexts/WorldEventContext.js.map +0 -1
  270. package/dist/contexts/__tests__/WorldStorageContext.test.d.ts +0 -2
  271. package/dist/contexts/__tests__/WorldStorageContext.test.d.ts.map +0 -1
  272. package/dist/contexts/__tests__/WorldStorageContext.test.js +0 -120
  273. package/dist/contexts/__tests__/WorldStorageContext.test.js.map +0 -1
  274. package/dist/fonts/FontContext.d.ts +0 -9
  275. package/dist/fonts/FontContext.d.ts.map +0 -1
  276. package/dist/fonts/FontContext.js +0 -5
  277. package/dist/fonts/FontContext.js.map +0 -1
  278. package/dist/fonts/FontProvider.d.ts +0 -31
  279. package/dist/fonts/FontProvider.d.ts.map +0 -1
  280. package/dist/fonts/FontProvider.js +0 -40
  281. package/dist/fonts/FontProvider.js.map +0 -1
  282. package/dist/fonts/FontReadyContainer.d.ts +0 -35
  283. package/dist/fonts/FontReadyContainer.d.ts.map +0 -1
  284. package/dist/fonts/FontReadyContainer.js +0 -40
  285. package/dist/fonts/FontReadyContainer.js.map +0 -1
  286. package/dist/fonts/constants.d.ts +0 -5
  287. package/dist/fonts/constants.d.ts.map +0 -1
  288. package/dist/fonts/constants.js +0 -5
  289. package/dist/fonts/constants.js.map +0 -1
  290. package/dist/fonts/loadTTF.d.ts +0 -18
  291. package/dist/fonts/loadTTF.d.ts.map +0 -1
  292. package/dist/fonts/loadTTF.js +0 -36
  293. package/dist/fonts/loadTTF.js.map +0 -1
  294. package/dist/fonts/useTTF.d.ts +0 -7
  295. package/dist/fonts/useTTF.d.ts.map +0 -1
  296. package/dist/fonts/useTTF.js +0 -9
  297. package/dist/fonts/useTTF.js.map +0 -1
  298. package/dist/hooks/useJapaneseFont.d.ts +0 -7
  299. package/dist/hooks/useJapaneseFont.d.ts.map +0 -1
  300. package/dist/hooks/useJapaneseFont.js +0 -25
  301. package/dist/hooks/useJapaneseFont.js.map +0 -1
  302. package/dist/hooks/useMsdfFont.d.ts +0 -11
  303. package/dist/hooks/useMsdfFont.d.ts.map +0 -1
  304. package/dist/hooks/useMsdfFont.js +0 -19
  305. package/dist/hooks/useMsdfFont.js.map +0 -1
  306. package/dist/hooks/usePortalNavigation.d.ts +0 -10
  307. package/dist/hooks/usePortalNavigation.d.ts.map +0 -1
  308. package/dist/hooks/usePortalNavigation.js +0 -46
  309. package/dist/hooks/usePortalNavigation.js.map +0 -1
  310. package/dist/hooks/useWorldEvent.d.ts +0 -25
  311. package/dist/hooks/useWorldEvent.d.ts.map +0 -1
  312. package/dist/hooks/useWorldEvent.js +0 -45
  313. package/dist/hooks/useWorldEvent.js.map +0 -1
@@ -1,14 +1,34 @@
1
1
  import { type ReactNode } from 'react';
2
+ /** アイテムを設置したユーザー */
3
+ export type ItemPlacer = {
4
+ /** 設置者の userId。サーバーが確定した値で、常に入る */
5
+ id: string;
6
+ /** 表示名。設置者が退室済みなどでプロフィールを解決できない場合は null */
7
+ displayName: string | null;
8
+ /** アイコン URL。解決できない場合は null */
9
+ avatarUrl: string | null;
10
+ /** 自分(ローカルユーザー)が設置したものか */
11
+ isLocalUser: boolean;
12
+ };
2
13
  export type ItemContextValue = {
14
+ /** 配置オブジェクトの固有ID */
3
15
  id: string;
16
+ /**
17
+ * 設置者。プラットフォームはプレビュー中(配置前)に自分を渡す想定。
18
+ * 設置者を特定できない場合(永続シーン由来、Provider に渡されていない)は null
19
+ */
20
+ placedBy: ItemPlacer | null;
4
21
  };
5
- export declare function ItemProvider({ id, children, }: {
22
+ interface Props {
6
23
  id: string;
24
+ placedBy?: ItemPlacer | null;
7
25
  children: ReactNode;
8
- }): import("react/jsx-runtime").JSX.Element;
26
+ }
27
+ export declare function ItemProvider({ id, placedBy, children }: Props): import("react").JSX.Element;
9
28
  /**
10
- * 配置されたアイテムの固有IDを取得するhook
29
+ * 配置されたアイテムの固有IDと設置者情報を取得するhook
11
30
  * Provider 外では例外をスローする
12
31
  */
13
32
  export declare function useItem(): ItemContextValue;
33
+ export {};
14
34
  //# sourceMappingURL=ItemContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ItemContext.d.ts","sourceRoot":"","sources":["../../src/contexts/ItemContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAE1E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAID,wBAAgB,YAAY,CAAC,EAC3B,EAAE,EACF,QAAQ,GACT,EAAE;IACD,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,SAAS,CAAA;CACpB,2CAGA;AAED;;;GAGG;AACH,wBAAgB,OAAO,IAAI,gBAAgB,CAI1C"}
1
+ {"version":3,"file":"ItemContext.d.ts","sourceRoot":"","sources":["../../src/contexts/ItemContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAE1E,oBAAoB;AACpB,MAAM,MAAM,UAAU,GAAG;IACvB,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,2CAA2C;IAC3C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,8BAA8B;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,2BAA2B;IAC3B,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAA;IACV;;;OAGG;IACH,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAA;CAC5B,CAAA;AAID,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC5B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,EAAE,QAAe,EAAE,QAAQ,EAAE,EAAE,KAAK,+BAUpE;AAED;;;GAGG;AACH,wBAAgB,OAAO,IAAI,gBAAgB,CAI1C"}
@@ -1,12 +1,16 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { createContext, useContext, useMemo } from 'react';
3
3
  const ItemContext = createContext(null);
4
- export function ItemProvider({ id, children, }) {
5
- const value = useMemo(() => ({ id }), [id]);
4
+ export function ItemProvider({ id, placedBy = null, children }) {
5
+ // placedBy はプラットフォーム側で毎レンダー組み直される可能性があるため、
6
+ // オブジェクト参照ではなく各フィールドの値を依存にして安定化する
7
+ const value = useMemo(() => ({ id, placedBy }),
8
+ // eslint 未導入のため exhaustive-deps の警告は出ない。ItemPlacer にフィールドを足したらここにも追加する
9
+ [id, placedBy?.id, placedBy?.displayName, placedBy?.avatarUrl, placedBy?.isLocalUser]);
6
10
  return _jsx(ItemContext.Provider, { value: value, children: children });
7
11
  }
8
12
  /**
9
- * 配置されたアイテムの固有IDを取得するhook
13
+ * 配置されたアイテムの固有IDと設置者情報を取得するhook
10
14
  * Provider 外では例外をスローする
11
15
  */
12
16
  export function useItem() {
@@ -1 +1 @@
1
- {"version":3,"file":"ItemContext.js","sourceRoot":"","sources":["../../src/contexts/ItemContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAM1E,MAAM,WAAW,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAA;AAEhE,MAAM,UAAU,YAAY,CAAC,EAC3B,EAAE,EACF,QAAQ,GAIT;IACC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3C,OAAO,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAwB,CAAA;AAC9E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO;IACrB,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IACnC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IACrE,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"ItemContext.js","sourceRoot":"","sources":["../../src/contexts/ItemContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAwB1E,MAAM,WAAW,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAA;AAQhE,MAAM,UAAU,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,EAAS;IACnE,2CAA2C;IAC3C,kCAAkC;IAClC,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IACxB,uEAAuE;IACvE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CACtF,CAAA;IAED,OAAO,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAwB,CAAA;AAC9E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO;IACrB,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IACnC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IACrE,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -6,7 +6,7 @@ export type PlacementStateContextValue = {
6
6
  export declare function PlacementStateProvider({ mode, children, }: {
7
7
  mode: PlacementMode;
8
8
  children: ReactNode;
9
- }): import("react/jsx-runtime").JSX.Element;
9
+ }): import("react").JSX.Element;
10
10
  /**
11
11
  * アイテムの配置状態を取得するhook
12
12
  * Provider 外では 'placed' をフォールバック
@@ -1 +1 @@
1
- {"version":3,"file":"PlacementStateContext.d.ts","sourceRoot":"","sources":["../../src/contexts/PlacementStateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAE1E,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEhD,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,aAAa,CAAA;CACpB,CAAA;AAMD,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,aAAa,CAAA;IACnB,QAAQ,EAAE,SAAS,CAAA;CACpB,2CAOA;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,0BAA0B,CAI9D"}
1
+ {"version":3,"file":"PlacementStateContext.d.ts","sourceRoot":"","sources":["../../src/contexts/PlacementStateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAE1E,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEhD,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,aAAa,CAAA;CACpB,CAAA;AAMD,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,aAAa,CAAA;IACnB,QAAQ,EAAE,SAAS,CAAA;CACpB,+BAOA;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,0BAA0B,CAI9D"}
@@ -23,7 +23,7 @@ interface Props {
23
23
  /**
24
24
  * 画面共有の状態を提供するContextProvider
25
25
  */
26
- export declare const ScreenShareProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
26
+ export declare const ScreenShareProvider: ({ value, children }: Props) => import("react").JSX.Element;
27
27
  /**
28
28
  * 画面共有の状態を取得するhook
29
29
  * @throws {Error} ScreenShareProvider の外で呼び出された場合
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenShareContext.d.ts","sourceRoot":"","sources":["../../src/contexts/ScreenShareContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAEjE,MAAM,WAAW,uBAAuB;IACtC,qBAAqB;IACrB,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAA;IACrC,cAAc;IACd,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW;IACX,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B,WAAW;IACX,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,gBAAgB;IAChB,eAAe,EAAE,OAAO,CAAA;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,yDAAsD,CAAA;AAErF,UAAU,KAAK;IACb,KAAK,EAAE,uBAAuB,CAAA;IAC9B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,qBAAqB,KAAK,4CAE7D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAO,uBAMxC,CAAA"}
1
+ {"version":3,"file":"ScreenShareContext.d.ts","sourceRoot":"","sources":["../../src/contexts/ScreenShareContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAEjE,MAAM,WAAW,uBAAuB;IACtC,qBAAqB;IACrB,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAA;IACrC,cAAc;IACd,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW;IACX,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B,WAAW;IACX,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,gBAAgB;IAChB,eAAe,EAAE,OAAO,CAAA;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,yDAAsD,CAAA;AAErF,UAAU,KAAK;IACb,KAAK,EAAE,uBAAuB,CAAA;IAC9B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,qBAAqB,KAAK,gCAE7D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAO,uBAMxC,CAAA"}
@@ -0,0 +1,108 @@
1
+ import { type ReactNode } from 'react';
2
+ /**
3
+ * 用途ごとに要求する時刻精度のプリセット
4
+ *
5
+ * - `media`: 動画・音楽の再生位置合わせ。数百 ms のズレは体感しにくい
6
+ * - `motion`: 決定論的アニメーション(動く床・観覧車)、アバター補間
7
+ *
8
+ * 早押しやゴール判定のような**公平性が要る用途のプリセットは用意していない**。
9
+ * 経路の往復が非対称なぶんの誤差はクライアント側から検出できず、しかも
10
+ * セッション中ほぼ一定なので繰り返しても平均化されない(=同じ人が毎回勝ち、
11
+ * 同じ人が毎回負ける)。判定はサーバー側で裁定すること。
12
+ */
13
+ export type ServerClockAccuracy = 'media' | 'motion';
14
+ /** プリセットが要求する `uncertainty` の上限(ms) */
15
+ export declare const SERVER_CLOCK_ACCURACY_THRESHOLD: Record<ServerClockAccuracy, number>;
16
+ /**
17
+ * 共有時計の Context 値
18
+ *
19
+ * **注入側(プラットフォーム)への契約:**
20
+ *
21
+ * `uncertainty` / `synced` / `timeJumpCount` はただの値なので、この Context の
22
+ * reactivity は「注入側が**新しいオブジェクトに差し替えること**」に全面的に依存する。
23
+ * 同じオブジェクトを持ち続けると(getter 付きの可変オブジェクトを1個渡す等)、
24
+ * 一度レンダーした値のまま永久に更新されず、**下のフックの使用例が黙って壊れる**
25
+ * (飛びを観測できないので基準を取り直せない)。
26
+ *
27
+ * 差し替えるタイミング:
28
+ * 1. オフセットを採用したとき(≒45秒ごとの再同期)
29
+ * 2. `synced` が変化したとき
30
+ * 3. 時刻が飛んだとき
31
+ *
32
+ * この頻度なら `uncertainty` の鮮度は最大45秒遅れ = ドリフト換算で +2ms 程度。
33
+ * しきい値(100 / 300ms)に対して無視できる。
34
+ */
35
+ export interface ServerClockContextValue {
36
+ /**
37
+ * サーバ時刻の推定値(ms)
38
+ *
39
+ * 値ではなく関数。`useFrame` の中から再レンダーなしで呼べる。
40
+ * 一度も同期していなければ `Date.now()` にフォールバックする。
41
+ */
42
+ now: () => number;
43
+ /**
44
+ * 推定誤差の上界(ms)。一度も同期していなければ Infinity
45
+ *
46
+ * 経過時間による劣化を含む値。往路と復路が非対称だった場合の誤差上界であり、
47
+ * 実際の再現性はこれよりずっと良いことが多い(実測で 2 桁違う)。
48
+ * ただしその差はクライアント側からは検出できないため、これが唯一の保証値になる。
49
+ */
50
+ uncertainty: number;
51
+ /**
52
+ * いま同期が有効か
53
+ *
54
+ * 切断中は false になるが `now()` は直前の推定を返し続ける(通信が切れただけで
55
+ * 端末の時計は動いているため)。切断が続くと `uncertainty` が膨らんでいく。
56
+ */
57
+ synced: boolean;
58
+ /**
59
+ * `now()` のタイムラインが飛んだ回数
60
+ *
61
+ * 通常の補正は徐々に寄せる(時刻は巻き戻らない)が、次の場合だけは飛ぶ。
62
+ * 1. 端末のスリープ等で推定を捨てたとき
63
+ * 2. フォールバックから推定へ戻ったとき(初回同期・採り直しの完了)
64
+ * 3. 補正量が大きすぎて徐々に寄せられないとき
65
+ *
66
+ * **時刻から位置を計算しているワールドは、この値の変化を見て基準を取り直すこと。**
67
+ * 取り直さないと、飛んだぶんだけオブジェクトがワープしたまま戻らない。
68
+ *
69
+ * 名前はプラットフォーム側の実装(`ServerClock.timeJumpCount`)と一致させてある。
70
+ * あちらの `discontinuityCount` は「端末時計の不連続の**検出**回数」という別物なので、
71
+ * 注入するときに取り違えないこと。
72
+ */
73
+ timeJumpCount: number;
74
+ /** 直近に飛んだ量(ms)。負なら時刻が戻った */
75
+ lastTimeJumpMs: number;
76
+ }
77
+ /**
78
+ * デフォルト実装(プラットフォームが実装を注入しない場合に使用される)
79
+ *
80
+ * 端末のローカル時計をそのまま返す。他の端末とは 0.1〜数秒ずれている前提なので、
81
+ * `synced` は false・`uncertainty` は Infinity で「信用できない」ことを明示する。
82
+ */
83
+ export declare const createDefaultServerClockImplementation: () => ServerClockContextValue;
84
+ /**
85
+ * 用途に対して時刻が十分な精度かを判定する
86
+ *
87
+ * false のときの振る舞いはワールドの判断。動画なら同期を諦める(再生継続を優先)、
88
+ * 決定論的アニメーションなら合わせにいかずそのまま動かす、など。
89
+ */
90
+ export declare const isServerClockAccurateEnough: (clock: Pick<ServerClockContextValue, "synced" | "uncertainty">, accuracy: ServerClockAccuracy) => boolean;
91
+ /**
92
+ * インスタンス共有時計(サーバ時刻)を提供する Context
93
+ * xrift-frontend 側で実装を注入し、ワールド側で利用できる
94
+ */
95
+ export declare const ServerClockContext: import("react").Context<ServerClockContextValue | null>;
96
+ interface Props {
97
+ value: ServerClockContextValue;
98
+ children: ReactNode;
99
+ }
100
+ /** 共有時計を提供する ContextProvider */
101
+ export declare const ServerClockProvider: ({ value, children }: Props) => import("react").JSX.Element;
102
+ /**
103
+ * 共有時計の Context を取得する hook
104
+ * @throws {Error} ServerClockProvider の外で呼び出された場合
105
+ */
106
+ export declare const useServerClockContext: () => ServerClockContextValue;
107
+ export {};
108
+ //# sourceMappingURL=ServerClockContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerClockContext.d.ts","sourceRoot":"","sources":["../../src/contexts/ServerClockContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAEjE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEpD,uCAAuC;AACvC,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAG/E,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,GAAG,EAAE,MAAM,MAAM,CAAA;IACjB;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;;;;;;;;;;;;;OAcG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB,4BAA4B;IAC5B,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;;;;GAKG;AACH,eAAO,MAAM,sCAAsC,QAAO,uBAMxD,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GACtC,OAAO,IAAI,CAAC,uBAAuB,EAAE,QAAQ,GAAG,aAAa,CAAC,EAC9D,UAAU,mBAAmB,KAC5B,OAAyF,CAAA;AAE5F;;;GAGG;AACH,eAAO,MAAM,kBAAkB,yDAAsD,CAAA;AAErF,UAAU,KAAK;IACb,KAAK,EAAE,uBAAuB,CAAA;IAC9B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,gCAAgC;AAChC,eAAO,MAAM,mBAAmB,GAAI,qBAAqB,KAAK,gCAE7D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAO,uBAMxC,CAAA"}
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from 'react';
3
+ /** プリセットが要求する `uncertainty` の上限(ms) */
4
+ export const SERVER_CLOCK_ACCURACY_THRESHOLD = {
5
+ media: 300,
6
+ motion: 100,
7
+ };
8
+ /**
9
+ * デフォルト実装(プラットフォームが実装を注入しない場合に使用される)
10
+ *
11
+ * 端末のローカル時計をそのまま返す。他の端末とは 0.1〜数秒ずれている前提なので、
12
+ * `synced` は false・`uncertainty` は Infinity で「信用できない」ことを明示する。
13
+ */
14
+ export const createDefaultServerClockImplementation = () => ({
15
+ now: () => Date.now(),
16
+ uncertainty: Number.POSITIVE_INFINITY,
17
+ synced: false,
18
+ timeJumpCount: 0,
19
+ lastTimeJumpMs: 0,
20
+ });
21
+ /**
22
+ * 用途に対して時刻が十分な精度かを判定する
23
+ *
24
+ * false のときの振る舞いはワールドの判断。動画なら同期を諦める(再生継続を優先)、
25
+ * 決定論的アニメーションなら合わせにいかずそのまま動かす、など。
26
+ */
27
+ export const isServerClockAccurateEnough = (clock, accuracy) => clock.synced && clock.uncertainty <= SERVER_CLOCK_ACCURACY_THRESHOLD[accuracy];
28
+ /**
29
+ * インスタンス共有時計(サーバ時刻)を提供する Context
30
+ * xrift-frontend 側で実装を注入し、ワールド側で利用できる
31
+ */
32
+ export const ServerClockContext = createContext(null);
33
+ /** 共有時計を提供する ContextProvider */
34
+ export const ServerClockProvider = ({ value, children }) => {
35
+ return _jsx(ServerClockContext.Provider, { value: value, children: children });
36
+ };
37
+ /**
38
+ * 共有時計の Context を取得する hook
39
+ * @throws {Error} ServerClockProvider の外で呼び出された場合
40
+ */
41
+ export const useServerClockContext = () => {
42
+ const context = useContext(ServerClockContext);
43
+ if (!context) {
44
+ throw new Error('useServerClockContext must be used within ServerClockProvider');
45
+ }
46
+ return context;
47
+ };
48
+ //# sourceMappingURL=ServerClockContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerClockContext.js","sourceRoot":"","sources":["../../src/contexts/ServerClockContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,MAAM,OAAO,CAAA;AAejE,uCAAuC;AACvC,MAAM,CAAC,MAAM,+BAA+B,GAAwC;IAClF,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;CACZ,CAAA;AAgED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,GAA4B,EAAE,CAAC,CAAC;IACpF,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IACrB,WAAW,EAAE,MAAM,CAAC,iBAAiB;IACrC,MAAM,EAAE,KAAK;IACb,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;CAClB,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,KAA8D,EAC9D,QAA6B,EACpB,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,+BAA+B,CAAC,QAAQ,CAAC,CAAA;AAE5F;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAiC,IAAI,CAAC,CAAA;AAOrF,gCAAgC;AAChC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAS,EAAE,EAAE;IAChE,OAAO,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA+B,CAAA;AAC5F,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAA4B,EAAE;IACjE,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAA;IAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;IAClF,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -74,7 +74,7 @@ interface Props {
74
74
  /**
75
75
  * 共有ファイルのContextProvider
76
76
  */
77
- export declare const SharedFileProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
77
+ export declare const SharedFileProvider: ({ value, children }: Props) => import("react").JSX.Element;
78
78
  /**
79
79
  * 共有ファイルの機能を取得するhook
80
80
  *
@@ -1 +1 @@
1
- {"version":3,"file":"SharedFileContext.d.ts","sourceRoot":"","sources":["../../src/contexts/SharedFileContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IACvC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,gBAAgB,EAAE,CAChB,IAAI,EAAE,IAAI,EACV,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,OAAO,CAAC,EAAE,uBAAuB,KAC9B,OAAO,CAAC,cAAc,CAAC,CAAA;IAC5B;;OAEG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAC/C;;OAEG;IACH,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;IAC/E;;;OAGG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9F;;;OAGG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD;AAED;;;GAGG;AACH,eAAO,MAAM,qCAAqC,QAAO,sBAkDvD,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,wDAAqD,CAAA;AAEnF,UAAU,KAAK;IACb,KAAK,EAAE,sBAAsB,CAAA;IAC7B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,qBAAqB,KAAK,4CAE5D,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,QAAO,sBAQvC,CAAA"}
1
+ {"version":3,"file":"SharedFileContext.d.ts","sourceRoot":"","sources":["../../src/contexts/SharedFileContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IACvC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,gBAAgB,EAAE,CAChB,IAAI,EAAE,IAAI,EACV,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,OAAO,CAAC,EAAE,uBAAuB,KAC9B,OAAO,CAAC,cAAc,CAAC,CAAA;IAC5B;;OAEG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAC/C;;OAEG;IACH,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;IAC/E;;;OAGG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9F;;;OAGG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD;AAED;;;GAGG;AACH,eAAO,MAAM,qCAAqC,QAAO,sBAkDvD,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,wDAAqD,CAAA;AAEnF,UAAU,KAAK;IACb,KAAK,EAAE,sBAAsB,CAAA;IAC7B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,qBAAqB,KAAK,gCAE5D,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,QAAO,sBAQvC,CAAA"}
@@ -43,7 +43,7 @@ interface Props {
43
43
  * <WorldComponent />
44
44
  * </SpawnPointProvider>
45
45
  */
46
- export declare const SpawnPointProvider: ({ implementation, children }: Props) => import("react/jsx-runtime").JSX.Element;
46
+ export declare const SpawnPointProvider: ({ implementation, children }: Props) => import("react").JSX.Element;
47
47
  /**
48
48
  * スポーン地点のContextを取得するhook
49
49
  * 通常、ワールド作成者は直接このhookを使用せず、useSpawnPointを使用する
@@ -1 +1 @@
1
- {"version":3,"file":"SpawnPointContext.d.ts","sourceRoot":"","sources":["../../src/contexts/SpawnPointContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAqC,MAAM,OAAO,CAAA;AAExF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,2BAA2B;IAC3B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IAC7B,kBAAkB;IAClB,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CAC3C;AAkBD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,iDAE7B,CAAA;AAED,UAAU,KAAK;IACb;;;OAGG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAA;IACvC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAAI,8BAA8B,KAAK,4CAkBrE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAO,sBAEvC,CAAA"}
1
+ {"version":3,"file":"SpawnPointContext.d.ts","sourceRoot":"","sources":["../../src/contexts/SpawnPointContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAqC,MAAM,OAAO,CAAA;AAExF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,2BAA2B;IAC3B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IAC7B,kBAAkB;IAClB,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CAC3C;AAkBD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,iDAE7B,CAAA;AAED,UAAU,KAAK;IACb;;;OAGG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAA;IACvC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAAI,8BAA8B,KAAK,gCAkBrE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAO,sBAEvC,CAAA"}
@@ -24,7 +24,7 @@ interface Props {
24
24
  /**
25
25
  * テレポート機能を提供する ContextProvider
26
26
  */
27
- export declare const TeleportProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
27
+ export declare const TeleportProvider: ({ value, children }: Props) => import("react").JSX.Element;
28
28
  /**
29
29
  * テレポートの Context を取得する hook
30
30
  * @throws {Error} TeleportProvider の外で呼び出された場合
@@ -1 +1 @@
1
- {"version":3,"file":"TeleportContext.d.ts","sourceRoot":"","sources":["../../src/contexts/TeleportContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAEjE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,CAAC,WAAW,EAAE,mBAAmB,KAAK,IAAI,CAAA;CACrD;AAED;;;GAGG;AACH,eAAO,MAAM,mCAAmC,QAAO,oBAGrD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,sDAAmD,CAAA;AAE/E,UAAU,KAAK;IACb,KAAK,EAAE,oBAAoB,CAAA;IAC3B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,qBAAqB,KAAK,4CAE1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,oBAMrC,CAAA"}
1
+ {"version":3,"file":"TeleportContext.d.ts","sourceRoot":"","sources":["../../src/contexts/TeleportContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAEjE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,CAAC,WAAW,EAAE,mBAAmB,KAAK,IAAI,CAAA;CACrD;AAED;;;GAGG;AACH,eAAO,MAAM,mCAAmC,QAAO,oBAGrD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,sDAAmD,CAAA;AAE/E,UAAU,KAAK;IACb,KAAK,EAAE,oBAAoB,CAAA;IAC3B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,qBAAqB,KAAK,gCAE1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,oBAMrC,CAAA"}
@@ -46,7 +46,7 @@ interface Props {
46
46
  /**
47
47
  * テキスト入力のContextProvider
48
48
  */
49
- export declare const TextInputProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
49
+ export declare const TextInputProvider: ({ value, children }: Props) => import("react").JSX.Element;
50
50
  /**
51
51
  * テキスト入力の機能を取得するhook
52
52
  *
@@ -1 +1 @@
1
- {"version":3,"file":"TextInputContext.d.ts","sourceRoot":"","sources":["../../src/contexts/TextInputContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU;IACV,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mBAAmB;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACrD;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,oCAAoC,QAAO,qBAYtD,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,uDAAoD,CAAA;AAEjF,UAAU,KAAK;IACb,KAAK,EAAE,qBAAqB,CAAA;IAC5B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,qBAAqB,KAAK,4CAE3D,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,QAAO,qBAQtC,CAAA"}
1
+ {"version":3,"file":"TextInputContext.d.ts","sourceRoot":"","sources":["../../src/contexts/TextInputContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU;IACV,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mBAAmB;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACrD;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,oCAAoC,QAAO,qBAYtD,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,uDAAoD,CAAA;AAEjF,UAAU,KAAK;IACb,KAAK,EAAE,qBAAqB,CAAA;IAC5B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,qBAAqB,KAAK,gCAE3D,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,QAAO,qBAQtC,CAAA"}
@@ -71,7 +71,7 @@ interface Props {
71
71
  * <WorldComponent />
72
72
  * </UsersProvider>
73
73
  */
74
- export declare const UsersProvider: ({ implementation, children }: Props) => import("react/jsx-runtime").JSX.Element;
74
+ export declare const UsersProvider: ({ implementation, children }: Props) => import("react").JSX.Element;
75
75
  /**
76
76
  * ユーザー情報を取得するhook
77
77
  * ワールド作成者が現在のユーザー情報(自分+他の参加者)を取得するために使用
@@ -1 +1 @@
1
- {"version":3,"file":"UsersContext.d.ts","sourceRoot":"","sources":["../../src/contexts/UsersContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,cAAc;IACd,OAAO,EAAE,OAAO,CAAA;CACjB;AAuBD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,mBAAmB;IACnB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,sBAAsB;IACtB,WAAW,EAAE,IAAI,EAAE,CAAA;IACnB;;;;;OAKG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAA;IAC3D;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,cAAc,CAAA;IACtC;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAA;IAC9D;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,YAAY,CAAA;CAC1C;AAeD;;;GAGG;AACH,eAAO,MAAM,YAAY,4CAExB,CAAA;AAED,UAAU,KAAK;IACb;;;OAGG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAClC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAI,8BAA8B,KAAK,4CAQhE,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,QAAQ,QAAO,iBAE3B,CAAA"}
1
+ {"version":3,"file":"UsersContext.d.ts","sourceRoot":"","sources":["../../src/contexts/UsersContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,cAAc;IACd,OAAO,EAAE,OAAO,CAAA;CACjB;AAuBD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,mBAAmB;IACnB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,sBAAsB;IACtB,WAAW,EAAE,IAAI,EAAE,CAAA;IACnB;;;;;OAKG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAA;IAC3D;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,cAAc,CAAA;IACtC;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAA;IAC9D;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,YAAY,CAAA;CAC1C;AAeD;;;GAGG;AACH,eAAO,MAAM,YAAY,4CAExB,CAAA;AAED,UAAU,KAAK;IACb;;;OAGG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAClC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAI,8BAA8B,KAAK,gCAQhE,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,QAAQ,QAAO,iBAE3B,CAAA"}
@@ -36,7 +36,7 @@ interface Props {
36
36
  /**
37
37
  * ワールド情報の取得機能を提供する ContextProvider
38
38
  */
39
- export declare const WorldProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
39
+ export declare const WorldProvider: ({ value, children }: Props) => import("react").JSX.Element;
40
40
  /**
41
41
  * ワールドの Context を取得する hook
42
42
  * @throws {Error} WorldProvider の外で呼び出された場合
@@ -1 +1 @@
1
- {"version":3,"file":"WorldContext.d.ts","sourceRoot":"","sources":["../../src/contexts/WorldContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAEjE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE;QACN,EAAE,EAAE,MAAM,CAAA;QACV,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;CACF;AAED,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;CACtD;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,QAAO,iBAelD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,mDAAgD,CAAA;AAEzE,UAAU,KAAK;IACb,KAAK,EAAE,iBAAiB,CAAA;IACxB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,qBAAqB,KAAK,4CAEvD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,iBAMlC,CAAA"}
1
+ {"version":3,"file":"WorldContext.d.ts","sourceRoot":"","sources":["../../src/contexts/WorldContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAEjE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE;QACN,EAAE,EAAE,MAAM,CAAA;QACV,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;CACF;AAED,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;CACtD;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,QAAO,iBAelD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,mDAAgD,CAAA;AAEzE,UAAU,KAAK;IACb,KAAK,EAAE,iBAAiB,CAAA;IACxB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,qBAAqB,KAAK,gCAEvD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,iBAMlC,CAAA"}
@@ -130,7 +130,7 @@ interface Props {
130
130
  /**
131
131
  * World Storage を提供する ContextProvider
132
132
  */
133
- export declare const WorldStorageProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
133
+ export declare const WorldStorageProvider: ({ value, children }: Props) => import("react").JSX.Element;
134
134
  /**
135
135
  * World Storage の Context を取得する hook
136
136
  * @throws {Error} WorldStorageProvider の外で呼び出された場合
@@ -1 +1 @@
1
- {"version":3,"file":"WorldStorageContext.d.ts","sourceRoot":"","sources":["../../src/contexts/WorldStorageContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorldStorageContext.d.ts","sourceRoot":"","sources":["../../src/contexts/WorldStorageContext.tsx"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import { type PlacementMode } from './PlacementStateContext';
16
16
  import { type AudioVolumeContextValue } from './AudioVolumeContext';
17
17
  import { type SharedFileContextValue } from './SharedFileContext';
18
18
  import { type WorldStorageContextValue } from './WorldStorageContext';
19
+ import { type ServerClockContextValue } from './ServerClockContext';
19
20
  export interface XRiftContextValue {
20
21
  /**
21
22
  * ワールドのベースURL(CDNのディレクトリパス)
@@ -118,6 +119,11 @@ interface Props {
118
119
  * 指定しない場合はデフォルト実装(インメモリ・リロードで消える)が使用される
119
120
  */
120
121
  worldStorageImplementation?: WorldStorageContextValue;
122
+ /**
123
+ * インスタンス共有時計(サーバ時刻)の実装(オプション)
124
+ * 指定しない場合はデフォルト実装(端末のローカル時計・synced=false)が使用される
125
+ */
126
+ serverClockImplementation?: ServerClockContextValue;
121
127
  /**
122
128
  * アイテムの配置状態(オプション)
123
129
  * 'preview': プレビュー中、'placed': 設置済み
@@ -131,7 +137,7 @@ interface Props {
131
137
  * Module Federationで動的にロードされたワールドコンポーネントに
132
138
  * 必要な情報を注入するために使用
133
139
  */
134
- export declare const XRiftProvider: ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, instanceEventImplementation, audioVolumeImplementation, fileInputImplementation, sharedFileImplementation, grabbableImplementation, worldStorageImplementation, placementMode, children, }: Props) => import("react/jsx-runtime").JSX.Element;
140
+ export declare const XRiftProvider: ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, instanceEventImplementation, audioVolumeImplementation, fileInputImplementation, sharedFileImplementation, grabbableImplementation, worldStorageImplementation, serverClockImplementation, placementMode, children, }: Props) => React.JSX.Element;
135
141
  /**
136
142
  * XRift ワールドの情報を取得するhook
137
143
  * ワールドプロジェクト側でアセットの相対パスを絶対パスに変換する際に使用
@@ -1 +1 @@
1
- {"version":3,"file":"XRiftContext.d.ts","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XRiftContext.d.ts","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import { PlacementStateProvider } from './PlacementStateContext';
16
16
  import { AudioVolumeProvider, createDefaultAudioVolumeImplementation, } from './AudioVolumeContext';
17
17
  import { SharedFileProvider, createDefaultSharedFileImplementation, } from './SharedFileContext';
18
18
  import { WorldStorageProvider, createDefaultWorldStorageImplementation, } from './WorldStorageContext';
19
+ import { ServerClockProvider, createDefaultServerClockImplementation, } from './ServerClockContext';
19
20
  // デフォルトの画面共有実装(開発環境用)
20
21
  const createDefaultScreenShareImplementation = () => ({
21
22
  videoElement: null,
@@ -39,7 +40,7 @@ const composeProviders = (providers, children) => providers.reduceRight((acc, [P
39
40
  * Module Federationで動的にロードされたワールドコンポーネントに
40
41
  * 必要な情報を注入するために使用
41
42
  */
42
- export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, instanceEventImplementation, audioVolumeImplementation, fileInputImplementation, sharedFileImplementation, grabbableImplementation, worldStorageImplementation, placementMode, children, }) => {
43
+ export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, instanceEventImplementation, audioVolumeImplementation, fileInputImplementation, sharedFileImplementation, grabbableImplementation, worldStorageImplementation, serverClockImplementation, placementMode, children, }) => {
43
44
  // インタラクト可能なオブジェクトの管理
44
45
  const [interactableObjects] = useState(() => new Set());
45
46
  // 画面共有の実装(指定がない場合はデフォルト実装を使用)
@@ -64,6 +65,8 @@ export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImp
64
65
  const sharedFileImpl = useMemo(() => sharedFileImplementation ?? createDefaultSharedFileImplementation(), [sharedFileImplementation]);
65
66
  // World Storage の実装(指定がない場合はデフォルト実装を使用)
66
67
  const worldStorageImpl = useMemo(() => worldStorageImplementation ?? createDefaultWorldStorageImplementation(), [worldStorageImplementation]);
68
+ // 共有時計の実装(指定がない場合はデフォルト実装 = 端末のローカル時計を使用)
69
+ const serverClockImpl = useMemo(() => serverClockImplementation ?? createDefaultServerClockImplementation(), [serverClockImplementation]);
67
70
  // オブジェクトの登録
68
71
  const registerInteractable = useCallback((object) => {
69
72
  interactableObjects.add(object);
@@ -94,6 +97,7 @@ export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImp
94
97
  [InstanceProvider, { value: instanceImpl }],
95
98
  [AudioVolumeProvider, { value: audioVolumeImpl }],
96
99
  [WorldStorageProvider, { value: worldStorageImpl }],
100
+ [ServerClockProvider, { value: serverClockImpl }],
97
101
  ];
98
102
  if (placementMode) {
99
103
  providers.push([PlacementStateProvider, { mode: placementMode }]);
@@ -1 +1 @@
1
- {"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { type ServerClockAccuracy, type ServerClockContextValue } from '../contexts/ServerClockContext';
2
+ export interface UseServerClockResult extends ServerClockContextValue {
3
+ /**
4
+ * `require` で指定した用途に対して時刻が十分な精度か。
5
+ * `require` を指定しない場合は `synced` と同じ。
6
+ */
7
+ trustworthy: boolean;
8
+ }
9
+ /**
10
+ * インスタンス内の全端末で共有できる時計(サーバ時刻)を提供するフック
11
+ *
12
+ * 端末の `Date.now()` は互いに 0.1〜数秒ずれているため、動画の再生位置同期・
13
+ * カウントダウン・同時演出・決定論的アニメーションはこれを使う。
14
+ *
15
+ * 指針:
16
+ * - **`now` は関数**。値ではないので `useFrame` の中から再レンダーなしで呼べる
17
+ * - **`timeJumpCount` の変化を見て基準を取り直す。** 通常は時刻が巻き戻らない
18
+ * よう徐々に補正するが、スリープ復帰などでは飛ぶ。時刻から位置を計算している
19
+ * ワールドは、飛んだときに基準を取り直さないとワープしたままになる
20
+ * - **補正のコストが誤差より大きいなら補正しない。** 動画で言えば、ズレを直すために
21
+ * シークしてバッファが切れるくらいなら、ズレたまま再生を続けるほうが体験は良い
22
+ * - 早押し・ゴール判定のような**公平性が要る用途には使わない**。経路の非対称ぶんの
23
+ * 誤差は検出できず、繰り返しても平均化されない(同じ人が毎回勝つ)
24
+ *
25
+ * @example
26
+ * // 動画の再生位置を合わせる
27
+ * const clock = useServerClock({ require: 'media' })
28
+ *
29
+ * useFrame(() => {
30
+ * if (!clock.trustworthy) return // 精度が出ていないなら諦める
31
+ * const target = (clock.now() - epoch) / 1000 % duration
32
+ * const diff = target - video.currentTime
33
+ * if (Math.abs(diff) < 0.3) {
34
+ * video.playbackRate = 1 // dead band。戻し忘れると振動し続ける
35
+ * return
36
+ * }
37
+ * if (Math.abs(diff) < 5) video.playbackRate = 1 + Math.sign(diff) * 0.05
38
+ * else if (isBuffered(video, target)) video.currentTime = target
39
+ * // バッファ外なら何もしない(同期より再生継続を優先)
40
+ * })
41
+ *
42
+ * @example
43
+ * // 全員で一致する動く床(通信ゼロ。後から入った人も即座に正しい位置になる)
44
+ * const { now, timeJumpCount } = useServerClock()
45
+ * const seen = useRef(timeJumpCount)
46
+ *
47
+ * useFrame(() => {
48
+ * if (seen.current !== timeJumpCount) {
49
+ * seen.current = timeJumpCount
50
+ * resetBaseline() // 時刻が飛んだので基準を取り直す
51
+ * }
52
+ * floor.current.position.y = Math.sin(now() / 1000) * 2
53
+ * })
54
+ *
55
+ * @throws {Error} XRiftProvider の外で呼び出された場合
56
+ */
57
+ export declare const useServerClock: (options?: {
58
+ require?: ServerClockAccuracy;
59
+ }) => UseServerClockResult;
60
+ //# sourceMappingURL=useServerClock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useServerClock.d.ts","sourceRoot":"","sources":["../../src/hooks/useServerClock.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAE7B,MAAM,gCAAgC,CAAA;AAEvC,MAAM,WAAW,oBAAqB,SAAQ,uBAAuB;IACnE;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAAE,KAAG,oBAO5E,CAAA"}