@microsoft/live-share-react 2.0.0-internal.1 → 2.0.0-internal.11

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/LICENSE +64 -61
  2. package/README.md +169 -164
  3. package/bin/cjs/index.d.ts +7 -0
  4. package/bin/cjs/index.d.ts.map +1 -0
  5. package/bin/cjs/index.js +23 -0
  6. package/bin/cjs/index.js.map +1 -0
  7. package/bin/cjs/interfaces/LiveInterfaceExtensions.d.ts +26 -0
  8. package/bin/cjs/interfaces/LiveInterfaceExtensions.d.ts.map +1 -0
  9. package/bin/cjs/interfaces/LiveInterfaceExtensions.js +7 -0
  10. package/bin/cjs/interfaces/LiveInterfaceExtensions.js.map +1 -0
  11. package/bin/cjs/interfaces/index.d.ts +2 -0
  12. package/bin/cjs/interfaces/index.d.ts.map +1 -0
  13. package/bin/cjs/interfaces/index.js +18 -0
  14. package/bin/cjs/interfaces/index.js.map +1 -0
  15. package/bin/cjs/internal/errors.d.ts +41 -0
  16. package/bin/cjs/internal/errors.d.ts.map +1 -0
  17. package/bin/cjs/internal/errors.js +48 -0
  18. package/bin/cjs/internal/errors.js.map +1 -0
  19. package/bin/cjs/internal/index.d.ts +3 -0
  20. package/bin/cjs/internal/index.d.ts.map +1 -0
  21. package/bin/cjs/internal/index.js +19 -0
  22. package/bin/cjs/internal/index.js.map +1 -0
  23. package/bin/cjs/internal/type-guards.d.ts +11 -0
  24. package/bin/cjs/internal/type-guards.d.ts.map +1 -0
  25. package/bin/cjs/internal/type-guards.js +24 -0
  26. package/bin/cjs/internal/type-guards.js.map +1 -0
  27. package/bin/cjs/live-hooks/index.d.ts +8 -0
  28. package/bin/cjs/live-hooks/index.d.ts.map +1 -0
  29. package/bin/cjs/live-hooks/index.js +24 -0
  30. package/bin/cjs/live-hooks/index.js.map +1 -0
  31. package/bin/cjs/live-hooks/useLiveCanvas.d.ts +80 -0
  32. package/bin/cjs/live-hooks/useLiveCanvas.d.ts.map +1 -0
  33. package/bin/cjs/live-hooks/useLiveCanvas.js +244 -0
  34. package/bin/cjs/live-hooks/useLiveCanvas.js.map +1 -0
  35. package/bin/cjs/live-hooks/useLiveEvent.d.ts +59 -0
  36. package/bin/cjs/live-hooks/useLiveEvent.d.ts.map +1 -0
  37. package/bin/cjs/live-hooks/useLiveEvent.js +150 -0
  38. package/bin/cjs/live-hooks/useLiveEvent.js.map +1 -0
  39. package/bin/cjs/live-hooks/useLiveFollowMode.d.ts +163 -0
  40. package/bin/cjs/live-hooks/useLiveFollowMode.d.ts.map +1 -0
  41. package/bin/cjs/live-hooks/useLiveFollowMode.js +360 -0
  42. package/bin/cjs/live-hooks/useLiveFollowMode.js.map +1 -0
  43. package/bin/cjs/live-hooks/useLivePresence.d.ts +76 -0
  44. package/bin/cjs/live-hooks/useLivePresence.d.ts.map +1 -0
  45. package/bin/cjs/live-hooks/useLivePresence.js +170 -0
  46. package/bin/cjs/live-hooks/useLivePresence.js.map +1 -0
  47. package/bin/cjs/live-hooks/useLiveState.d.ts +66 -0
  48. package/bin/cjs/live-hooks/useLiveState.d.ts.map +1 -0
  49. package/bin/cjs/live-hooks/useLiveState.js +134 -0
  50. package/bin/cjs/live-hooks/useLiveState.js.map +1 -0
  51. package/bin/cjs/live-hooks/useLiveTimer.d.ts +80 -0
  52. package/bin/cjs/live-hooks/useLiveTimer.d.ts.map +1 -0
  53. package/bin/cjs/live-hooks/useLiveTimer.js +233 -0
  54. package/bin/cjs/live-hooks/useLiveTimer.js.map +1 -0
  55. package/bin/cjs/live-hooks/useMediaSynchronizer.d.ts +86 -0
  56. package/bin/cjs/live-hooks/useMediaSynchronizer.d.ts.map +1 -0
  57. package/bin/cjs/live-hooks/useMediaSynchronizer.js +301 -0
  58. package/bin/cjs/live-hooks/useMediaSynchronizer.js.map +1 -0
  59. package/bin/cjs/package.json +1 -0
  60. package/bin/cjs/providers/AzureProvider.d.ts +113 -0
  61. package/bin/cjs/providers/AzureProvider.d.ts.map +1 -0
  62. package/bin/cjs/providers/AzureProvider.js +127 -0
  63. package/bin/cjs/providers/AzureProvider.js.map +1 -0
  64. package/bin/cjs/providers/LiveShareProvider.d.ts +193 -0
  65. package/bin/cjs/providers/LiveShareProvider.d.ts.map +1 -0
  66. package/bin/cjs/providers/LiveShareProvider.js +205 -0
  67. package/bin/cjs/providers/LiveShareProvider.js.map +1 -0
  68. package/bin/cjs/providers/index.d.ts +3 -0
  69. package/bin/cjs/providers/index.d.ts.map +1 -0
  70. package/bin/cjs/providers/index.js +19 -0
  71. package/bin/cjs/providers/index.js.map +1 -0
  72. package/bin/cjs/shared-hooks/index.d.ts +7 -0
  73. package/bin/cjs/shared-hooks/index.d.ts.map +1 -0
  74. package/bin/cjs/shared-hooks/index.js +23 -0
  75. package/bin/cjs/shared-hooks/index.js.map +1 -0
  76. package/bin/cjs/shared-hooks/internals/tree-node-constants.d.ts +3 -0
  77. package/bin/cjs/shared-hooks/internals/tree-node-constants.d.ts.map +1 -0
  78. package/bin/cjs/shared-hooks/internals/tree-node-constants.js +6 -0
  79. package/bin/cjs/shared-hooks/internals/tree-node-constants.js.map +1 -0
  80. package/bin/cjs/shared-hooks/internals/tree-node-types.d.ts +10 -0
  81. package/bin/cjs/shared-hooks/internals/tree-node-types.d.ts.map +1 -0
  82. package/bin/cjs/shared-hooks/internals/tree-node-types.js +23 -0
  83. package/bin/cjs/shared-hooks/internals/tree-node-types.js.map +1 -0
  84. package/bin/cjs/shared-hooks/internals/tree-node-utils.d.ts +33 -0
  85. package/bin/cjs/shared-hooks/internals/tree-node-utils.d.ts.map +1 -0
  86. package/bin/cjs/shared-hooks/internals/tree-node-utils.js +193 -0
  87. package/bin/cjs/shared-hooks/internals/tree-node-utils.js.map +1 -0
  88. package/bin/cjs/shared-hooks/useDynamicDDS.d.ts +23 -0
  89. package/bin/cjs/shared-hooks/useDynamicDDS.d.ts.map +1 -0
  90. package/bin/cjs/shared-hooks/useDynamicDDS.js +87 -0
  91. package/bin/cjs/shared-hooks/useDynamicDDS.js.map +1 -0
  92. package/bin/cjs/shared-hooks/useSharedMap.d.ts +25 -0
  93. package/bin/cjs/shared-hooks/useSharedMap.d.ts.map +1 -0
  94. package/bin/cjs/shared-hooks/useSharedMap.js +134 -0
  95. package/bin/cjs/shared-hooks/useSharedMap.js.map +1 -0
  96. package/bin/cjs/shared-hooks/useSharedState.d.ts +22 -0
  97. package/bin/cjs/shared-hooks/useSharedState.d.ts.map +1 -0
  98. package/bin/cjs/shared-hooks/useSharedState.js +80 -0
  99. package/bin/cjs/shared-hooks/useSharedState.js.map +1 -0
  100. package/bin/cjs/shared-hooks/useSharedStateRegistry.d.ts +37 -0
  101. package/bin/cjs/shared-hooks/useSharedStateRegistry.d.ts.map +1 -0
  102. package/bin/cjs/shared-hooks/useSharedStateRegistry.js +120 -0
  103. package/bin/cjs/shared-hooks/useSharedStateRegistry.js.map +1 -0
  104. package/bin/cjs/shared-hooks/useSharedTree.d.ts +57 -0
  105. package/bin/cjs/shared-hooks/useSharedTree.d.ts.map +1 -0
  106. package/bin/cjs/shared-hooks/useSharedTree.js +123 -0
  107. package/bin/cjs/shared-hooks/useSharedTree.js.map +1 -0
  108. package/bin/cjs/shared-hooks/useTreeNode.d.ts +96 -0
  109. package/bin/cjs/shared-hooks/useTreeNode.d.ts.map +1 -0
  110. package/bin/cjs/shared-hooks/useTreeNode.js +135 -0
  111. package/bin/cjs/shared-hooks/useTreeNode.js.map +1 -0
  112. package/bin/cjs/types/ActionTypes.d.ts +112 -0
  113. package/bin/cjs/types/ActionTypes.d.ts.map +1 -0
  114. package/bin/cjs/types/ActionTypes.js +7 -0
  115. package/bin/cjs/types/ActionTypes.js.map +1 -0
  116. package/bin/cjs/types/PropTypes.d.ts +56 -0
  117. package/bin/cjs/types/PropTypes.d.ts.map +1 -0
  118. package/bin/cjs/types/PropTypes.js +7 -0
  119. package/bin/cjs/types/PropTypes.js.map +1 -0
  120. package/bin/cjs/types/ResultTypes.d.ts +334 -0
  121. package/bin/cjs/types/ResultTypes.d.ts.map +1 -0
  122. package/bin/cjs/types/ResultTypes.js +7 -0
  123. package/bin/cjs/types/ResultTypes.js.map +1 -0
  124. package/bin/cjs/types/index.d.ts +4 -0
  125. package/bin/cjs/types/index.d.ts.map +1 -0
  126. package/bin/cjs/types/index.js +20 -0
  127. package/bin/cjs/types/index.js.map +1 -0
  128. package/bin/cjs/utils/index.d.ts +2 -0
  129. package/bin/cjs/utils/index.d.ts.map +1 -0
  130. package/bin/cjs/utils/index.js +18 -0
  131. package/bin/cjs/utils/index.js.map +1 -0
  132. package/bin/cjs/utils/type-check.d.ts +15 -0
  133. package/bin/cjs/utils/type-check.d.ts.map +1 -0
  134. package/bin/cjs/utils/type-check.js +62 -0
  135. package/bin/cjs/utils/type-check.js.map +1 -0
  136. package/bin/esm/index.d.ts +7 -0
  137. package/bin/esm/index.d.ts.map +1 -0
  138. package/bin/esm/index.js +7 -0
  139. package/bin/esm/index.js.map +1 -0
  140. package/bin/esm/interfaces/LiveInterfaceExtensions.d.ts +26 -0
  141. package/bin/esm/interfaces/LiveInterfaceExtensions.d.ts.map +1 -0
  142. package/bin/esm/interfaces/LiveInterfaceExtensions.js +6 -0
  143. package/bin/esm/interfaces/LiveInterfaceExtensions.js.map +1 -0
  144. package/bin/esm/interfaces/index.d.ts +2 -0
  145. package/bin/esm/interfaces/index.d.ts.map +1 -0
  146. package/bin/esm/interfaces/index.js +2 -0
  147. package/bin/esm/interfaces/index.js.map +1 -0
  148. package/bin/esm/internal/errors.d.ts +41 -0
  149. package/bin/esm/internal/errors.d.ts.map +1 -0
  150. package/bin/esm/internal/errors.js +42 -0
  151. package/bin/esm/internal/errors.js.map +1 -0
  152. package/bin/esm/internal/index.d.ts +3 -0
  153. package/bin/esm/internal/index.d.ts.map +1 -0
  154. package/bin/esm/internal/index.js +3 -0
  155. package/bin/esm/internal/index.js.map +1 -0
  156. package/bin/esm/internal/type-guards.d.ts +11 -0
  157. package/bin/esm/internal/type-guards.d.ts.map +1 -0
  158. package/bin/esm/internal/type-guards.js +20 -0
  159. package/bin/esm/internal/type-guards.js.map +1 -0
  160. package/bin/esm/live-hooks/index.d.ts +8 -0
  161. package/bin/esm/live-hooks/index.d.ts.map +1 -0
  162. package/bin/esm/live-hooks/index.js +8 -0
  163. package/bin/esm/live-hooks/index.js.map +1 -0
  164. package/bin/esm/live-hooks/useLiveCanvas.d.ts +80 -0
  165. package/bin/esm/live-hooks/useLiveCanvas.d.ts.map +1 -0
  166. package/bin/esm/live-hooks/useLiveCanvas.js +238 -0
  167. package/bin/esm/live-hooks/useLiveCanvas.js.map +1 -0
  168. package/bin/esm/live-hooks/useLiveEvent.d.ts +59 -0
  169. package/bin/esm/live-hooks/useLiveEvent.d.ts.map +1 -0
  170. package/bin/esm/live-hooks/useLiveEvent.js +144 -0
  171. package/bin/esm/live-hooks/useLiveEvent.js.map +1 -0
  172. package/bin/esm/live-hooks/useLiveFollowMode.d.ts +163 -0
  173. package/bin/esm/live-hooks/useLiveFollowMode.d.ts.map +1 -0
  174. package/bin/esm/live-hooks/useLiveFollowMode.js +354 -0
  175. package/bin/esm/live-hooks/useLiveFollowMode.js.map +1 -0
  176. package/bin/esm/live-hooks/useLivePresence.d.ts +76 -0
  177. package/bin/esm/live-hooks/useLivePresence.d.ts.map +1 -0
  178. package/bin/esm/live-hooks/useLivePresence.js +164 -0
  179. package/bin/esm/live-hooks/useLivePresence.js.map +1 -0
  180. package/bin/esm/live-hooks/useLiveState.d.ts +66 -0
  181. package/bin/esm/live-hooks/useLiveState.d.ts.map +1 -0
  182. package/bin/esm/live-hooks/useLiveState.js +128 -0
  183. package/bin/esm/live-hooks/useLiveState.js.map +1 -0
  184. package/bin/esm/live-hooks/useLiveTimer.d.ts +80 -0
  185. package/bin/esm/live-hooks/useLiveTimer.d.ts.map +1 -0
  186. package/bin/esm/live-hooks/useLiveTimer.js +227 -0
  187. package/bin/esm/live-hooks/useLiveTimer.js.map +1 -0
  188. package/bin/esm/live-hooks/useMediaSynchronizer.d.ts +86 -0
  189. package/bin/esm/live-hooks/useMediaSynchronizer.d.ts.map +1 -0
  190. package/bin/esm/live-hooks/useMediaSynchronizer.js +295 -0
  191. package/bin/esm/live-hooks/useMediaSynchronizer.js.map +1 -0
  192. package/bin/esm/providers/AzureProvider.d.ts +113 -0
  193. package/bin/esm/providers/AzureProvider.d.ts.map +1 -0
  194. package/bin/esm/providers/AzureProvider.js +119 -0
  195. package/bin/esm/providers/AzureProvider.js.map +1 -0
  196. package/bin/esm/providers/LiveShareProvider.d.ts +193 -0
  197. package/bin/esm/providers/LiveShareProvider.d.ts.map +1 -0
  198. package/bin/esm/providers/LiveShareProvider.js +197 -0
  199. package/bin/esm/providers/LiveShareProvider.js.map +1 -0
  200. package/bin/esm/providers/index.d.ts +3 -0
  201. package/bin/esm/providers/index.d.ts.map +1 -0
  202. package/bin/esm/providers/index.js +3 -0
  203. package/bin/esm/providers/index.js.map +1 -0
  204. package/bin/esm/shared-hooks/index.d.ts +7 -0
  205. package/bin/esm/shared-hooks/index.d.ts.map +1 -0
  206. package/bin/esm/shared-hooks/index.js +7 -0
  207. package/bin/esm/shared-hooks/index.js.map +1 -0
  208. package/bin/esm/shared-hooks/internals/tree-node-constants.d.ts +3 -0
  209. package/bin/esm/shared-hooks/internals/tree-node-constants.d.ts.map +1 -0
  210. package/bin/esm/shared-hooks/internals/tree-node-constants.js +3 -0
  211. package/bin/esm/shared-hooks/internals/tree-node-constants.js.map +1 -0
  212. package/bin/esm/shared-hooks/internals/tree-node-types.d.ts +10 -0
  213. package/bin/esm/shared-hooks/internals/tree-node-types.d.ts.map +1 -0
  214. package/bin/esm/shared-hooks/internals/tree-node-types.js +18 -0
  215. package/bin/esm/shared-hooks/internals/tree-node-types.js.map +1 -0
  216. package/bin/esm/shared-hooks/internals/tree-node-utils.d.ts +33 -0
  217. package/bin/esm/shared-hooks/internals/tree-node-utils.d.ts.map +1 -0
  218. package/bin/esm/shared-hooks/internals/tree-node-utils.js +188 -0
  219. package/bin/esm/shared-hooks/internals/tree-node-utils.js.map +1 -0
  220. package/bin/esm/shared-hooks/useDynamicDDS.d.ts +23 -0
  221. package/bin/esm/shared-hooks/useDynamicDDS.d.ts.map +1 -0
  222. package/bin/esm/shared-hooks/useDynamicDDS.js +81 -0
  223. package/bin/esm/shared-hooks/useDynamicDDS.js.map +1 -0
  224. package/bin/esm/shared-hooks/useSharedMap.d.ts +25 -0
  225. package/bin/esm/shared-hooks/useSharedMap.d.ts.map +1 -0
  226. package/bin/esm/shared-hooks/useSharedMap.js +128 -0
  227. package/bin/esm/shared-hooks/useSharedMap.js.map +1 -0
  228. package/bin/esm/shared-hooks/useSharedState.d.ts +22 -0
  229. package/bin/esm/shared-hooks/useSharedState.d.ts.map +1 -0
  230. package/bin/esm/shared-hooks/useSharedState.js +74 -0
  231. package/bin/esm/shared-hooks/useSharedState.js.map +1 -0
  232. package/bin/esm/shared-hooks/useSharedStateRegistry.d.ts +37 -0
  233. package/bin/esm/shared-hooks/useSharedStateRegistry.d.ts.map +1 -0
  234. package/bin/esm/shared-hooks/useSharedStateRegistry.js +113 -0
  235. package/bin/esm/shared-hooks/useSharedStateRegistry.js.map +1 -0
  236. package/bin/esm/shared-hooks/useSharedTree.d.ts +57 -0
  237. package/bin/esm/shared-hooks/useSharedTree.d.ts.map +1 -0
  238. package/bin/esm/shared-hooks/useSharedTree.js +117 -0
  239. package/bin/esm/shared-hooks/useSharedTree.js.map +1 -0
  240. package/bin/esm/shared-hooks/useTreeNode.d.ts +96 -0
  241. package/bin/esm/shared-hooks/useTreeNode.d.ts.map +1 -0
  242. package/bin/esm/shared-hooks/useTreeNode.js +132 -0
  243. package/bin/esm/shared-hooks/useTreeNode.js.map +1 -0
  244. package/bin/esm/types/ActionTypes.d.ts +112 -0
  245. package/bin/esm/types/ActionTypes.d.ts.map +1 -0
  246. package/bin/esm/types/ActionTypes.js +6 -0
  247. package/bin/esm/types/ActionTypes.js.map +1 -0
  248. package/bin/esm/types/PropTypes.d.ts +56 -0
  249. package/bin/esm/types/PropTypes.d.ts.map +1 -0
  250. package/bin/esm/types/PropTypes.js +6 -0
  251. package/bin/esm/types/PropTypes.js.map +1 -0
  252. package/bin/esm/types/ResultTypes.d.ts +334 -0
  253. package/bin/esm/types/ResultTypes.d.ts.map +1 -0
  254. package/bin/esm/types/ResultTypes.js +6 -0
  255. package/bin/esm/types/ResultTypes.js.map +1 -0
  256. package/bin/esm/types/index.d.ts +4 -0
  257. package/bin/esm/types/index.d.ts.map +1 -0
  258. package/bin/esm/types/index.js +4 -0
  259. package/bin/esm/types/index.js.map +1 -0
  260. package/bin/esm/utils/index.d.ts +2 -0
  261. package/bin/esm/utils/index.d.ts.map +1 -0
  262. package/bin/esm/utils/index.js +2 -0
  263. package/bin/esm/utils/index.js.map +1 -0
  264. package/bin/esm/utils/type-check.d.ts +15 -0
  265. package/bin/esm/utils/type-check.d.ts.map +1 -0
  266. package/bin/esm/utils/type-check.js +54 -0
  267. package/bin/esm/utils/type-check.js.map +1 -0
  268. package/bin/live-hooks/useLiveCanvas.js +1 -1
  269. package/bin/live-hooks/useLiveCanvas.js.map +1 -1
  270. package/bin/live-hooks/useLiveState.d.ts.map +1 -1
  271. package/bin/live-hooks/useLiveState.js +6 -2
  272. package/bin/live-hooks/useLiveState.js.map +1 -1
  273. package/bin/live-hooks/useMediaSynchronizer.js +1 -1
  274. package/bin/live-hooks/useMediaSynchronizer.js.map +1 -1
  275. package/bin/providers/AzureProvider.js +2 -2
  276. package/bin/providers/AzureProvider.js.map +1 -1
  277. package/bin/providers/LiveShareProvider.js +3 -3
  278. package/bin/providers/LiveShareProvider.js.map +1 -1
  279. package/package.json +61 -47
  280. package/src/index.ts +6 -6
  281. package/src/interfaces/index.ts +1 -1
  282. package/src/internal/index.ts +2 -2
  283. package/src/internal/type-guards.ts +1 -1
  284. package/src/live-hooks/index.ts +7 -7
  285. package/src/live-hooks/useLiveCanvas.ts +154 -82
  286. package/src/live-hooks/useLiveEvent.ts +43 -7
  287. package/src/live-hooks/useLiveFollowMode.ts +149 -6
  288. package/src/live-hooks/useLivePresence.ts +80 -17
  289. package/src/live-hooks/useLiveState.ts +54 -6
  290. package/src/live-hooks/useLiveTimer.ts +59 -4
  291. package/src/live-hooks/useMediaSynchronizer.ts +71 -6
  292. package/src/providers/AzureProvider.tsx +21 -21
  293. package/src/providers/LiveShareProvider.tsx +115 -13
  294. package/src/providers/index.ts +2 -2
  295. package/src/shared-hooks/index.ts +6 -4
  296. package/src/shared-hooks/internals/tree-node-constants.ts +2 -0
  297. package/src/shared-hooks/internals/tree-node-types.ts +26 -0
  298. package/src/shared-hooks/internals/tree-node-utils.ts +269 -0
  299. package/src/shared-hooks/useDynamicDDS.ts +28 -17
  300. package/src/shared-hooks/useSharedMap.ts +42 -17
  301. package/src/shared-hooks/useSharedState.ts +6 -3
  302. package/src/shared-hooks/useSharedStateRegistry.ts +44 -22
  303. package/src/shared-hooks/useSharedTree.ts +144 -0
  304. package/src/shared-hooks/useTreeNode.ts +147 -0
  305. package/src/types/ActionTypes.ts +13 -9
  306. package/src/types/PropTypes.ts +57 -0
  307. package/src/types/ResultTypes.ts +71 -17
  308. package/src/types/index.ts +3 -3
  309. package/src/utils/index.ts +1 -1
  310. package/tsconfig.cjs.json +14 -0
  311. package/tsconfig.json +65 -70
  312. package/.nycrc.json +0 -10
  313. package/tsconfig.build.json +0 -6
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./AzureProvider.js"), exports);
18
+ __exportStar(require("./LiveShareProvider.js"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,yDAAuC"}
@@ -0,0 +1,7 @@
1
+ export * from "./useSharedState.js";
2
+ export * from "./useSharedMap.js";
3
+ export * from "./useDynamicDDS.js";
4
+ export * from "./useSharedStateRegistry.js";
5
+ export * from "./useSharedTree.js";
6
+ export * from "./useTreeNode.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared-hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./useSharedState.js"), exports);
18
+ __exportStar(require("./useSharedMap.js"), exports);
19
+ __exportStar(require("./useDynamicDDS.js"), exports);
20
+ __exportStar(require("./useSharedStateRegistry.js"), exports);
21
+ __exportStar(require("./useSharedTree.js"), exports);
22
+ __exportStar(require("./useTreeNode.js"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared-hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,oDAAkC;AAClC,qDAAmC;AACnC,8DAA4C;AAC5C,qDAAmC;AACnC,mDAAiC"}
@@ -0,0 +1,3 @@
1
+ export declare const rawTNodeKey = "[[FluidTreeNode]]";
2
+ export declare const proxiedChildrenKey = "[[FluidChildNodes]]";
3
+ //# sourceMappingURL=tree-node-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-node-constants.d.ts","sourceRoot":"","sources":["../../../../src/shared-hooks/internals/tree-node-constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,eAAO,MAAM,kBAAkB,wBAAwB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.proxiedChildrenKey = exports.rawTNodeKey = void 0;
4
+ exports.rawTNodeKey = "[[FluidTreeNode]]";
5
+ exports.proxiedChildrenKey = "[[FluidChildNodes]]";
6
+ //# sourceMappingURL=tree-node-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-node-constants.js","sourceRoot":"","sources":["../../../../src/shared-hooks/internals/tree-node-constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,mBAAmB,CAAC;AAClC,QAAA,kBAAkB,GAAG,qBAAqB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { TreeNode } from "fluid-framework";
2
+ import { proxiedChildrenKey, rawTNodeKey } from "./tree-node-constants.js";
3
+ export interface ICustomProxyHandler<TNode extends TreeNode = TreeNode> {
4
+ [rawTNodeKey]: TNode;
5
+ [proxiedChildrenKey]: Record<string, TreeNode>;
6
+ }
7
+ export declare function isProxy(value: any): value is typeof Proxy;
8
+ export declare function isCustomProxyHandler<TNode extends TreeNode = TreeNode>(value: any): value is ICustomProxyHandler<TNode>;
9
+ export declare function isTreeNode(value: any): value is TreeNode;
10
+ //# sourceMappingURL=tree-node-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-node-types.d.ts","sourceRoot":"","sources":["../../../../src/shared-hooks/internals/tree-node-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,WAAW,mBAAmB,CAAC,KAAK,SAAS,QAAQ,GAAG,QAAQ;IAClE,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IACrB,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAClD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,OAAO,KAAK,CAEzD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,QAAQ,GAAG,QAAQ,EAClE,KAAK,EAAE,GAAG,GACX,KAAK,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAErC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,QAAQ,CAOxD"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isProxy = isProxy;
4
+ exports.isCustomProxyHandler = isCustomProxyHandler;
5
+ exports.isTreeNode = isTreeNode;
6
+ const fluid_framework_1 = require("fluid-framework");
7
+ const tree_node_constants_js_1 = require("./tree-node-constants.js");
8
+ function isProxy(value) {
9
+ return value && value["[[Handler]]"];
10
+ }
11
+ function isCustomProxyHandler(value) {
12
+ return (value === null || value === void 0 ? void 0 : value[tree_node_constants_js_1.rawTNodeKey]) !== undefined;
13
+ }
14
+ function isTreeNode(value) {
15
+ try {
16
+ fluid_framework_1.Tree.schema(value);
17
+ return true;
18
+ }
19
+ catch (_) {
20
+ return false;
21
+ }
22
+ }
23
+ //# sourceMappingURL=tree-node-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-node-types.js","sourceRoot":"","sources":["../../../../src/shared-hooks/internals/tree-node-types.ts"],"names":[],"mappings":";;AAQA,0BAEC;AAED,oDAIC;AAED,gCAOC;AAzBD,qDAAiD;AACjD,qEAA2E;AAO3E,SAAgB,OAAO,CAAC,KAAU;IAC9B,OAAO,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,oBAAoB,CAChC,KAAU;IAEV,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,oCAAW,CAAC,MAAK,SAAS,CAAC;AAC9C,CAAC;AAED,SAAgB,UAAU,CAAC,KAAU;IACjC,IAAI,CAAC;QACD,sBAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { TreeNode } from "fluid-framework";
2
+ import { Dispatch, SetStateAction } from "react";
3
+ /**
4
+ * @internal
5
+ * Build a proxied version of a node and set its value to the treeMap provided
6
+ *
7
+ * @param rawNode the raw proxy node exposed by Fluid
8
+ * @param treeMap a map where Fluid's proxy node is mapped to our proxied node
9
+ * @returns TNode instance
10
+ */
11
+ export declare function buildProxy<TNode extends TreeNode = TreeNode>(rawNode: TNode, treeMap: WeakMap<TreeNode, TreeNode>): TNode;
12
+ /**
13
+ * @internal
14
+ * Set up listeners for a given TreeNode.
15
+ * Will recursively call this function for all children nodes of each children until there are no more child nodes.
16
+ *
17
+ * @param parentRawNode raw parent node
18
+ * @param rootNodeForListener root node being listened to in useTreeNode
19
+ * @param treeMap a map where Fluid's proxy node is mapped to our proxied node
20
+ * @param unsubscribeListeners list of unsubscribe listeners, where we set the unsubscribe callbacks
21
+ * @param setProxyNode setter to set the root proxy node listened to in useTreeNode
22
+ */
23
+ export declare function setUpListenersForNodeChildren<TNode extends TreeNode = TreeNode>(parentRawNode: TreeNode, rootNodeForListener: TreeNode, treeMap: WeakMap<TreeNode, TreeNode>, unsubscribeListeners: (() => void)[], setProxyNode: Dispatch<SetStateAction<TNode>>): void;
24
+ /**
25
+ * @internal
26
+ * Fluid only knows how to work with their proxied version of a TreeNode.
27
+ * We store a reference to that node in our proxied instances so we can easily use it when working with Fluid APIs.
28
+ *
29
+ * @param node get the raw node from the proxy
30
+ * @returns the raw proxied node that Fluid expects
31
+ */
32
+ export declare function getRawNode<TNode extends TreeNode | undefined = TreeNode>(node: TNode): TNode;
33
+ //# sourceMappingURL=tree-node-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-node-utils.d.ts","sourceRoot":"","sources":["../../../../src/shared-hooks/internals/tree-node-utils.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAIjD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,SAAS,QAAQ,GAAG,QAAQ,EACxD,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,GACrC,KAAK,CAwCP;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CACzC,KAAK,SAAS,QAAQ,GAAG,QAAQ,EAEjC,aAAa,EAAE,QAAQ,EACvB,mBAAmB,EAAE,QAAQ,EAC7B,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACpC,oBAAoB,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,EACpC,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,QAmChD;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,SAAS,QAAQ,GAAG,SAAS,GAAG,QAAQ,EACpE,IAAI,EAAE,KAAK,GACZ,KAAK,CAKP"}
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildProxy = buildProxy;
4
+ exports.setUpListenersForNodeChildren = setUpListenersForNodeChildren;
5
+ exports.getRawNode = getRawNode;
6
+ const tree_node_constants_js_1 = require("./tree-node-constants.js");
7
+ const tree_node_types_js_1 = require("./tree-node-types.js");
8
+ const fluid_framework_1 = require("fluid-framework");
9
+ // Exported utils
10
+ /**
11
+ * @internal
12
+ * Build a proxied version of a node and set its value to the treeMap provided
13
+ *
14
+ * @param rawNode the raw proxy node exposed by Fluid
15
+ * @param treeMap a map where Fluid's proxy node is mapped to our proxied node
16
+ * @returns TNode instance
17
+ */
18
+ function buildProxy(rawNode, treeMap) {
19
+ var _a;
20
+ const previousProxy = treeMap.get(rawNode);
21
+ const previousProxyHandler = previousProxy
22
+ ? getCustomProxyHandler(previousProxy)
23
+ : undefined;
24
+ const proxyHandler = {
25
+ // Add some extra stuff into the handler so we can store the original Fluid TreeNode and access it later
26
+ // Without overriding the rest of the getters in the object.
27
+ [tree_node_constants_js_1.rawTNodeKey]: rawNode,
28
+ [tree_node_constants_js_1.proxiedChildrenKey]: (_a = previousProxyHandler === null || previousProxyHandler === void 0 ? void 0 : previousProxyHandler[tree_node_constants_js_1.proxiedChildrenKey]) !== null && _a !== void 0 ? _a : {},
29
+ get: (target, prop, _) => {
30
+ if (prop === "[[Handler]]") {
31
+ return proxyHandler;
32
+ }
33
+ if (typeof prop === "string" &&
34
+ proxyHandler[tree_node_constants_js_1.proxiedChildrenKey][prop]) {
35
+ return proxyHandler[tree_node_constants_js_1.proxiedChildrenKey][prop];
36
+ }
37
+ // pass in the rawNode so Fluid doesn't get confused by our proxy object and can find the flex node
38
+ const value = Reflect.get(target, prop, rawNode);
39
+ return typeof value === "function" &&
40
+ typeof prop === "string" &&
41
+ // TODO: need a better way of identifying which types of functions need to be proxied
42
+ // This is because if a developer uses an array prototype function, we need to return proxied
43
+ // objects so React can detect changes to those nodes...
44
+ !["map", "flatMap", "filter", "find", "indexOf"].includes(prop)
45
+ ? value.bind(rawNode)
46
+ : value;
47
+ },
48
+ set(target, p, newValue, _) {
49
+ return Reflect.set(target, p, newValue, rawNode);
50
+ },
51
+ };
52
+ const proxy = new Proxy(rawNode, proxyHandler);
53
+ // Track the proxy for the rawNode
54
+ treeMap.set(rawNode, proxy);
55
+ // Set raw node getter so we can access it before things like Tree.on
56
+ return proxy;
57
+ }
58
+ /**
59
+ * @internal
60
+ * Set up listeners for a given TreeNode.
61
+ * Will recursively call this function for all children nodes of each children until there are no more child nodes.
62
+ *
63
+ * @param parentRawNode raw parent node
64
+ * @param rootNodeForListener root node being listened to in useTreeNode
65
+ * @param treeMap a map where Fluid's proxy node is mapped to our proxied node
66
+ * @param unsubscribeListeners list of unsubscribe listeners, where we set the unsubscribe callbacks
67
+ * @param setProxyNode setter to set the root proxy node listened to in useTreeNode
68
+ */
69
+ function setUpListenersForNodeChildren(parentRawNode, rootNodeForListener, treeMap, unsubscribeListeners, setProxyNode) {
70
+ let entries = Object.entries(parentRawNode);
71
+ for (let i = 0; i < entries.length; i++) {
72
+ const [key, entry] = entries[i];
73
+ if (!entry ||
74
+ ["string", "boolean", "number", "function"].includes(typeof entry) ||
75
+ !(0, tree_node_types_js_1.isTreeNode)(entry)) {
76
+ continue;
77
+ }
78
+ const rawEntry = getRawNode(entry);
79
+ const onNodeChanged = () => {
80
+ onTreeNodeChanged(key, rawEntry, rootNodeForListener, treeMap, setProxyNode);
81
+ };
82
+ const unsubscribe = fluid_framework_1.Tree.on(rawEntry, "nodeChanged", onNodeChanged);
83
+ unsubscribeListeners.push(unsubscribe);
84
+ // Recursively listen to children nodes of this node
85
+ setUpListenersForNodeChildren(rawEntry, rootNodeForListener, treeMap, unsubscribeListeners, setProxyNode);
86
+ }
87
+ }
88
+ /**
89
+ * @internal
90
+ * Fluid only knows how to work with their proxied version of a TreeNode.
91
+ * We store a reference to that node in our proxied instances so we can easily use it when working with Fluid APIs.
92
+ *
93
+ * @param node get the raw node from the proxy
94
+ * @returns the raw proxied node that Fluid expects
95
+ */
96
+ function getRawNode(node) {
97
+ if ((0, tree_node_types_js_1.isProxy)(node)) {
98
+ return getRawNodeFromProxy(node);
99
+ }
100
+ return node;
101
+ }
102
+ // Non public utils
103
+ /**
104
+ * Callback for when a tree node changed
105
+ *
106
+ * @param key key where the object is stored in the parent
107
+ * @param rawNode the raw node that changed
108
+ * @param rootNodeForListener the root node that is being listened to in useTreeNode
109
+ * @param treeMap a map where Fluid's proxy node is mapped to our proxied node
110
+ * @param setProxyNode setter to set the root proxy node listened to in useTreeNode
111
+ */
112
+ function onTreeNodeChanged(key, rawNode, rootNodeForListener, treeMap, setProxyNode) {
113
+ const proxyNode = buildProxy(rawNode, treeMap);
114
+ const parent = fluid_framework_1.Tree.parent(rawNode);
115
+ if (!parent) {
116
+ throw new Error("useTreeNode onTreeNodeChanged: no parent found for rawParentNode");
117
+ }
118
+ proxyParentForNode(key, parent, proxyNode, rootNodeForListener, treeMap, setProxyNode);
119
+ }
120
+ /**
121
+ * Proxies the parent and sets reference to the child node that changed.
122
+ *
123
+ * @param key key where the object is referenced in its parent node
124
+ * @param rawParentNode raw parent tree node
125
+ * @param proxyNode proxied instance of the node that changed
126
+ * @param rootNodeForListener root node listened to in useTreeNode
127
+ * @param treeMap a map where Fluid's proxy node is mapped to our proxied node
128
+ * @param setProxyNode setter to set the root proxy node listened to in useTreeNode
129
+ */
130
+ function proxyParentForNode(key, rawParentNode, proxyNode, rootNodeForListener, treeMap, setProxyNode) {
131
+ const parentProxy = buildProxy(rawParentNode, treeMap);
132
+ let parentProxyHandler = getCustomProxyHandler(parentProxy);
133
+ if (!parentProxyHandler) {
134
+ throw new Error("useTreeNode proxyParentForNode: unexpected error, should always find valid proxy handler");
135
+ }
136
+ parentProxyHandler[tree_node_constants_js_1.proxiedChildrenKey][key] = proxyNode;
137
+ if (rawParentNode === rootNodeForListener) {
138
+ setProxyNode(parentProxy);
139
+ }
140
+ else {
141
+ const parentOfParent = fluid_framework_1.Tree.parent(rawParentNode);
142
+ if (!parentOfParent) {
143
+ throw new Error("useTreeNode proxyParentForNode: no parent found for rawParentNode");
144
+ }
145
+ const parentKey = findKeyOfNode(rawParentNode, parentOfParent);
146
+ proxyParentForNode(parentKey, parentOfParent, parentProxy, rootNodeForListener, treeMap, setProxyNode);
147
+ }
148
+ }
149
+ /**
150
+ * Returns key where parent[key] == nodeToCheck
151
+ *
152
+ * @param nodeToCheck tree node to check
153
+ * @param parent parent node where nodeToCheck is a child of
154
+ * @returns the key for node
155
+ */
156
+ function findKeyOfNode(nodeToCheck, parent) {
157
+ let entries = Object.entries(parent);
158
+ for (let i = 0; i < entries.length; i++) {
159
+ const [key, entry] = entries[i];
160
+ if (!entry ||
161
+ ["string", "boolean", "number", "function"].includes(typeof entry) ||
162
+ !(0, tree_node_types_js_1.isTreeNode)(entry)) {
163
+ continue;
164
+ }
165
+ if (entry === nodeToCheck)
166
+ return key;
167
+ }
168
+ throw new Error("Did not find node as a child of parent");
169
+ }
170
+ // Type utils
171
+ /**
172
+ * Gets the proxy handler for a given TreeNode, assuming `isCustomProxyHandler` returns true.
173
+ * @param proxy the proxied TreeNode to get the handler for.
174
+ * @returns the handler if valid, otherwise undefined
175
+ */
176
+ function getCustomProxyHandler(proxy) {
177
+ const handler = proxy["[[Handler]]"];
178
+ if ((0, tree_node_types_js_1.isCustomProxyHandler)(handler)) {
179
+ return handler;
180
+ }
181
+ return undefined;
182
+ }
183
+ /**
184
+ * Gets the raw node for a given proxied tree node
185
+ *
186
+ * @param proxy the proxied TreeNode to get the raw node for
187
+ * @returns the raw node if valid, otherwise undefined
188
+ */
189
+ function getRawNodeFromProxy(proxy) {
190
+ var _a;
191
+ return (_a = getCustomProxyHandler(proxy)) === null || _a === void 0 ? void 0 : _a[tree_node_constants_js_1.rawTNodeKey];
192
+ }
193
+ //# sourceMappingURL=tree-node-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-node-utils.js","sourceRoot":"","sources":["../../../../src/shared-hooks/internals/tree-node-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
+ */
5
+ import { FluidObject, IFluidLoadable } from "@fluidframework/core-interfaces";
6
+ import { SharedObjectKind } from "fluid-framework";
7
+ /**
8
+ * Hook to gets or creates a DDS that corresponds to a given uniqueKey string.
9
+ *
10
+ * @remarks
11
+ * This hook can only be used in a child component of `<LiveShareProvider>` or `<AzureProvider>`.
12
+ *
13
+ * @template T Type of Fluid SharedObjectKind type to load. Must conform to IFluidLoadable interface.
14
+ * @param uniqueKey uniqueKey value for the data object
15
+ * @param objectKind Fluid SharedObjectKind<T> to create/load.
16
+ * @param onFirstInitialize Optional. Callback function for when the DDS is first loaded
17
+ * @returns the DDS object, which is of type T when loaded and undefined while loading
18
+ */
19
+ export declare function useDynamicDDS<T extends IFluidLoadable = FluidObject<any> & IFluidLoadable>(uniqueKey: string, objectClass: SharedObjectKind<T>, onFirstInitialize?: (dds: T) => void): {
20
+ dds: T | undefined;
21
+ error: Error | undefined;
22
+ };
23
+ //# sourceMappingURL=useDynamicDDS.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDynamicDDS.d.ts","sourceRoot":"","sources":["../../../src/shared-hooks/useDynamicDDS.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CACzB,CAAC,SAAS,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,cAAc,EAE5D,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAChC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,GACrC;IACC,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC5B,CA6DA"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ /*!
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the Microsoft Live Share SDK License.
5
+ */
6
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
+ return new (P || (P = Promise))(function (resolve, reject) {
9
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
13
+ });
14
+ };
15
+ var __importDefault = (this && this.__importDefault) || function (mod) {
16
+ return (mod && mod.__esModule) ? mod : { "default": mod };
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.useDynamicDDS = useDynamicDDS;
20
+ const react_1 = __importDefault(require("react"));
21
+ const AzureProvider_js_1 = require("../providers/AzureProvider.js");
22
+ /**
23
+ * Hook to gets or creates a DDS that corresponds to a given uniqueKey string.
24
+ *
25
+ * @remarks
26
+ * This hook can only be used in a child component of `<LiveShareProvider>` or `<AzureProvider>`.
27
+ *
28
+ * @template T Type of Fluid SharedObjectKind type to load. Must conform to IFluidLoadable interface.
29
+ * @param uniqueKey uniqueKey value for the data object
30
+ * @param objectKind Fluid SharedObjectKind<T> to create/load.
31
+ * @param onFirstInitialize Optional. Callback function for when the DDS is first loaded
32
+ * @returns the DDS object, which is of type T when loaded and undefined while loading
33
+ */
34
+ function useDynamicDDS(uniqueKey, objectClass, onFirstInitialize) {
35
+ const [dds, setDDS] = react_1.default.useState();
36
+ const [error, setError] = react_1.default.useState();
37
+ /**
38
+ * Import container and DDS object register callbacks from AzureProvider.
39
+ */
40
+ const { container, clientRef } = (0, AzureProvider_js_1.useFluidObjectsContext)();
41
+ const mountedRef = react_1.default.useRef(false);
42
+ react_1.default.useEffect(() => {
43
+ mountedRef.current = true;
44
+ return () => {
45
+ mountedRef.current = false;
46
+ };
47
+ }, []);
48
+ const getDDSPromisesRef = react_1.default.useRef(new Map());
49
+ /**
50
+ * Once container is available, this effect will register the setter method so that the DDS loaded
51
+ * from `dynamicObjects` that matches `uniqueKey` can be passed back to this hook. If one does not yet exist,
52
+ * a new DDS is automatically created. If multiple users try to create a DDS at the same time when this component first
53
+ * mounts, `live-share` ensures it will ultimately self correct using last-writer wins.
54
+ */
55
+ react_1.default.useEffect(() => {
56
+ if (container === undefined)
57
+ return;
58
+ // Callback method to set the `initialData` into the map when the DDS is first created.
59
+ const onGetDDS = () => __awaiter(this, void 0, void 0, function* () {
60
+ try {
61
+ let getPromise = getDDSPromisesRef.current.get(uniqueKey);
62
+ if (!getPromise) {
63
+ getPromise = clientRef.current.getDDS(uniqueKey, objectClass, onFirstInitialize);
64
+ getDDSPromisesRef.current.set(uniqueKey, getPromise);
65
+ }
66
+ const dds = yield getPromise;
67
+ if (mountedRef.current) {
68
+ setDDS(dds);
69
+ }
70
+ }
71
+ catch (error) {
72
+ if (error instanceof Error) {
73
+ setError(error);
74
+ }
75
+ else {
76
+ setError(new Error("useDynamicDDS: an unknown error occurred while getting the DDS"));
77
+ }
78
+ }
79
+ });
80
+ onGetDDS();
81
+ }, [container, uniqueKey, onFirstInitialize]);
82
+ return {
83
+ dds,
84
+ error,
85
+ };
86
+ }
87
+ //# sourceMappingURL=useDynamicDDS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDynamicDDS.js","sourceRoot":"","sources":["../../../src/shared-hooks/useDynamicDDS.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;AAmBH,sCAsEC;AAvFD,kDAA0B;AAE1B,oEAAuE;AAGvE;;;;;;;;;;;GAWG;AACH,SAAgB,aAAa,CAGzB,SAAiB,EACjB,WAAgC,EAChC,iBAAoC;IAKpC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,eAAK,CAAC,QAAQ,EAAK,CAAC;IAC1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,eAAK,CAAC,QAAQ,EAAS,CAAC;IAClD;;OAEG;IACH,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAA,yCAAsB,GAAE,CAAC;IAE1D,MAAM,UAAU,GAAG,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,OAAO,GAAG,EAAE;YACR,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;QAC/B,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,iBAAiB,GAAG,eAAK,CAAC,MAAM,CAA0B,IAAI,GAAG,EAAE,CAAC,CAAC;IAE3E;;;;;OAKG;IACH,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO;QACpC,uFAAuF;QACvF,MAAM,QAAQ,GAAG,GAAS,EAAE;YACxB,IAAI,CAAC;gBACD,IAAI,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;oBACd,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CACjC,SAAS,EACT,WAAW,EACX,iBAAiB,CACpB,CAAC;oBACF,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBACzD,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC;gBAC7B,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACrB,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChB,CAAC;YACL,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBACzB,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACJ,QAAQ,CACJ,IAAI,KAAK,CACL,gEAAgE,CACnE,CACJ,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC,CAAA,CAAC;QACF,QAAQ,EAAE,CAAC;IACf,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE9C,OAAO;QACH,GAAG;QACH,KAAK;KACR,CAAC;AACN,CAAC"}
@@ -0,0 +1,25 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the Microsoft Live Share SDK License.
4
+ */
5
+ import { IUseSharedMapResults, SharedMapInitialData } from "../types/index.js";
6
+ /**
7
+ * @deprecated use {@link useSharedTree} instead.
8
+ *
9
+ * React hook for using a Fluid `SharedMap`.
10
+ *
11
+ * @remarks
12
+ * The primary benefit of using the `useSharedMap` hook rather than the Fluid `SharedMap`
13
+ * directly is that it integrates nicely with React state and automates repetitive tasks.
14
+ * If you want to use `SharedMap` this hook creates directly, you can do that as well.
15
+ * This hook can only be used in a child component of `<LiveShareProvider>` or `<AzureProvider>`.
16
+ *
17
+ * @template TData Optional typing for objects stored in the SharedMap. Default is `any` type.
18
+ * @param uniqueKey the unique key for the `SharedMap`. If one does not yet exist, a new `SharedMap`
19
+ * will be created, otherwise it will use the existing one.
20
+ * @param initialData a JS Map, entries array, or JSON object to insert into the `SharedMap` when creating
21
+ * the DDS for the first time.
22
+ * @returns the Fluid `sharedMap`.
23
+ */
24
+ export declare function useSharedMap<TData = any>(uniqueKey: string, initialData?: SharedMapInitialData<TData>): IUseSharedMapResults<TData>;
25
+ //# sourceMappingURL=useSharedMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSharedMap.d.ts","sourceRoot":"","sources":["../../../src/shared-hooks/useSharedMap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAU/E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,KAAK,GAAG,GAAG,EACpC,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAC1C,oBAAoB,CAAC,KAAK,CAAC,CAyH7B"}